diff options
675 files changed, 103502 insertions, 91 deletions
@@ -12,7 +12,6 @@ build/** cmake-build-debug/ # ROM -*.nds *.srl # Tool executables diff --git a/CMakeLists.txt b/CMakeLists.txt index a3b6a82e..27dd07f9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,4 +7,5 @@ enable_language(ASM) file(GLOB_RECURSE SOURCES RELATIVE ${CMAKE_SOURCE_DIR} "*.c") -add_executable(PokeDiamond ${SOURCES})
\ No newline at end of file +add_executable(PokeDiamond ${SOURCES}) +target_include_directories(PokeDiamond PRIVATE nitro) @@ -14,7 +14,12 @@ endif default: all # If you are using WSL, it is recommended you build with NOWINE=1. -NOWINE ?= 0 +WSLENV ?= no +ifeq ($(WSLENV),) +NOWINE = 1 +else +NOWINE = 0 +endif ifeq ($(OS),Windows_NT) EXE := .exe @@ -25,7 +30,7 @@ WINE := wine endif ifeq ($(NOWINE),1) -WINE := +WINE := endif ################ Target Executable and Sources ############### @@ -48,14 +53,6 @@ S_FILES := $(foreach dir,$(ASM_DIRS),$(wildcard $(dir)/*.s)) # Object files O_FILES := $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o)) \ $(foreach file,$(S_FILES),$(BUILD_DIR)/$(file:.s=.o)) \ - -################### Universal Dependencies ################### - -# Make tools if out of date -DUMMY != make -s -C tools/mwasmarm_patcher >&2 || echo FAIL -ifeq ($(DUMMY),FAIL) - $(error Failed to build tools) -endif ##################### Compiler Options ####################### @@ -82,19 +79,39 @@ OBJCOPY := $(CROSS)objcopy # ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm9_thumb.s -o arm9.o ASFLAGS = -proc arm5te -CFLAGS = -O4,p -proc v5te -thumb -fp soft -lang c -Cpp_exceptions off -LDFLAGS = -map -nodead -w off -proc v5te -interworking +CFLAGS = -O4,p -proc v5te -thumb -fp soft -lang c -Cpp_exceptions off -i nitro +LDFLAGS = -map -nodead -w off -proc v5te -interworking -map -symtab -m Entry ####################### Other Tools ######################### # DS TOOLS TOOLS_DIR = tools SHA1SUM = sha1sum -MWASMARM_PATCHER = tools/mwasmarm_patcher/mwasmarm_patcher$(EXE) +JSONPROC = $(TOOLS_DIR)/jsonproc/jsonproc +GFX = $(TOOLS_DIR)/nitrogfx/nitrogfx +MWASMARM_PATCHER = $(TOOLS_DIR)/mwasmarm_patcher/mwasmarm_patcher$(EXE) + +TOOLDIRS = $(filter-out $(TOOLS_DIR)/mwccarm,$(wildcard $(TOOLS_DIR)/*)) +TOOLBASE = $(TOOLDIRS:$(TOOLS_DIR)/%=%) +TOOLS = $(foreach tool,$(TOOLBASE),$(TOOLS_DIR)/$(tool)/$(tool)$(EXE)) ######################### Targets ########################### -all: patch_mwasmarm $(ROM) +infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line)))) + +# Build tools when building the rom +# Disable dependency scanning for clean/tidy/tools +ifeq (,$(filter-out all,$(MAKECMDGOALS))) +$(call infoshell, $(MAKE) tools patch_mwasmarm) +else +NODEP := 1 +endif + +.PHONY: all clean tidy tools $(TOOLDIRS) patch_mwasmarm + +MAKEFLAGS += --no-print-directory + +all: $(ROM) @$(SHA1SUM) -c $(TARGET).sha1 clean: tidy @@ -103,6 +120,13 @@ clean: tidy tidy: $(RM) -r $(BUILD_DIR) +tools: $(TOOLDIRS) + +$(TOOLDIRS): + @$(MAKE) -C $@ + +$(MWASMARM): patch_mwasmarm + patch_mwasmarm: $(MWASMARM_PATCHER) $(MWASMARM) @@ -118,14 +142,31 @@ $(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) undefined_syms.txt $(CPP) $(VERSION_CFLAGS) -MMD -MP -MT $@ -MF $@.d -I include/ -I . -DBUILD_DIR=$(BUILD_DIR) -o $@ $< $(ELF): $(O_FILES) $(BUILD_DIR)/$(LD_SCRIPT) - $(LD) $(BUILD_DIR)/$(LD_SCRIPT) -o $(ELF) $(O_FILES) $(LDFLAGS) + $(LD) $(LDFLAGS) $(BUILD_DIR)/$(LD_SCRIPT) -o $(ELF) $(O_FILES) $(ROM): $(ELF) - $(OBJCOPY) -O binary $< $@ + $(OBJCOPY) -O binary --gap-fill=0xFF --pad-to=0x04000000 $< $@ # Make sure build directory exists before compiling anything DUMMY != mkdir -p $(ALL_DIRS) +%.4bpp: %.png + $(GFX) $< $@ + +%.gbapal: %.png + $(GFX) $< $@ + +%.gbapal: %.pal + $(GFX) $< $@ + +%.lz: % + $(GFX) $< $@ + +%.png: ; +%.pal: ; + +$(BUILD_DIR)/asm/icon.o: graphics/icon.4bpp graphics/icon.gbapal + ### Debug Print ### print-% : ; $(info $* is a $(flavor $*) variable set to [$($*)]) @true diff --git a/asm/FILE_102EC00_poke_shadow.narc.s b/asm/FILE_102EC00_poke_shadow.narc.s new file mode 100644 index 00000000..ddfa26ec --- /dev/null +++ b/asm/FILE_102EC00_poke_shadow.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x102EC00, 0x22C + .balign 512, 255 diff --git a/asm/FILE_102F000_poke_shadow_ofx.narc.s b/asm/FILE_102F000_poke_shadow_ofx.narc.s new file mode 100644 index 00000000..41efe8b7 --- /dev/null +++ b/asm/FILE_102F000_poke_shadow_ofx.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x102F000, 0x22C + .balign 512, 255 diff --git a/asm/FILE_102F400_poke_yofs.narc.s b/asm/FILE_102F400_poke_yofs.narc.s new file mode 100644 index 00000000..9806c8a7 --- /dev/null +++ b/asm/FILE_102F400_poke_yofs.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x102F400, 0x22C + .balign 512, 255 diff --git a/asm/FILE_102F800_pokegra.narc.s b/asm/FILE_102F800_pokegra.narc.s new file mode 100644 index 00000000..6d9bc30b --- /dev/null +++ b/asm/FILE_102F800_pokegra.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x102F800, 0xB3BA74 + .balign 512, 255 diff --git a/asm/FILE_10C400.s b/asm/FILE_10C400.s new file mode 100644 index 00000000..5cf27f33 --- /dev/null +++ b/asm/FILE_10C400.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x10C400, 0x20 + .balign 512, 255 diff --git a/asm/FILE_10C600.s b/asm/FILE_10C600.s new file mode 100644 index 00000000..d2608c8c --- /dev/null +++ b/asm/FILE_10C600.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x10C600, 0x20 + .balign 512, 255 diff --git a/asm/FILE_10C800.s b/asm/FILE_10C800.s new file mode 100644 index 00000000..8cb22116 --- /dev/null +++ b/asm/FILE_10C800.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x10C800, 0x20 + .balign 512, 255 diff --git a/asm/FILE_10CA00.s b/asm/FILE_10CA00.s new file mode 100644 index 00000000..46e1e03b --- /dev/null +++ b/asm/FILE_10CA00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x10CA00, 0x20 + .balign 512, 255 diff --git a/asm/FILE_10CC00.s b/asm/FILE_10CC00.s new file mode 100644 index 00000000..2876942a --- /dev/null +++ b/asm/FILE_10CC00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x10CC00, 0x386E0 + .balign 512, 255 diff --git a/asm/FILE_145400.s b/asm/FILE_145400.s new file mode 100644 index 00000000..31de6e12 --- /dev/null +++ b/asm/FILE_145400.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x145400, 0x261A0 + .balign 512, 255 diff --git a/asm/FILE_16B600.s b/asm/FILE_16B600.s new file mode 100644 index 00000000..33e75c23 --- /dev/null +++ b/asm/FILE_16B600.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x16B600, 0x18D80 + .balign 512, 255 diff --git a/asm/FILE_184400.s b/asm/FILE_184400.s new file mode 100644 index 00000000..936860c0 --- /dev/null +++ b/asm/FILE_184400.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x184400, 0x32E0 + .balign 512, 255 diff --git a/asm/FILE_187800.s b/asm/FILE_187800.s new file mode 100644 index 00000000..38b64eec --- /dev/null +++ b/asm/FILE_187800.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x187800, 0x1B760 + .balign 512, 255 diff --git a/asm/FILE_1A3000.s b/asm/FILE_1A3000.s new file mode 100644 index 00000000..3febcf47 --- /dev/null +++ b/asm/FILE_1A3000.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1A3000, 0xA1A0 + .balign 512, 255 diff --git a/asm/FILE_1AD200.s b/asm/FILE_1AD200.s new file mode 100644 index 00000000..24bfcb9b --- /dev/null +++ b/asm/FILE_1AD200.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1AD200, 0x20 + .balign 512, 255 diff --git a/asm/FILE_1AD400.s b/asm/FILE_1AD400.s new file mode 100644 index 00000000..f66becc6 --- /dev/null +++ b/asm/FILE_1AD400.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1AD400, 0x329E0 + .balign 512, 255 diff --git a/asm/FILE_1B6B400_trbgra.narc.s b/asm/FILE_1B6B400_trbgra.narc.s new file mode 100644 index 00000000..86c8ad19 --- /dev/null +++ b/asm/FILE_1B6B400_trbgra.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1B6B400, 0xCC74 + .balign 512, 255 diff --git a/asm/FILE_1B78200_trfgra.narc.s b/asm/FILE_1B78200_trfgra.narc.s new file mode 100644 index 00000000..3055f21e --- /dev/null +++ b/asm/FILE_1B78200_trfgra.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1B78200, 0x9C644 + .balign 512, 255 diff --git a/asm/FILE_1C14A00_personal.narc.s b/asm/FILE_1C14A00_personal.narc.s new file mode 100644 index 00000000..1bab03d6 --- /dev/null +++ b/asm/FILE_1C14A00_personal.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1C14A00, 0x65F8 + .balign 512, 255 diff --git a/asm/FILE_1C1B000_evo.narc.s b/asm/FILE_1C1B000_evo.narc.s new file mode 100644 index 00000000..50d4d984 --- /dev/null +++ b/asm/FILE_1C1B000_evo.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1C1B000, 0x65F8 + .balign 512, 255 diff --git a/asm/FILE_1C21600_growtbl.narc.s b/asm/FILE_1C21600_growtbl.narc.s new file mode 100644 index 00000000..58e3a62d --- /dev/null +++ b/asm/FILE_1C21600_growtbl.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1C21600, 0xD14 + .balign 512, 255 diff --git a/asm/FILE_1C22400_pms.narc.s b/asm/FILE_1C22400_pms.narc.s new file mode 100644 index 00000000..90c7edcb --- /dev/null +++ b/asm/FILE_1C22400_pms.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1C22400, 0x3EA + .balign 512, 255 diff --git a/asm/FILE_1C22800_wotbl.narc.s b/asm/FILE_1C22800_wotbl.narc.s new file mode 100644 index 00000000..8ccc0c61 --- /dev/null +++ b/asm/FILE_1C22800_wotbl.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1C22800, 0x4940 + .balign 512, 255 diff --git a/asm/FILE_1C27200_trdata.narc.s b/asm/FILE_1C27200_trdata.narc.s new file mode 100644 index 00000000..b480d98e --- /dev/null +++ b/asm/FILE_1C27200_trdata.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1C27200, 0x5D2C + .balign 512, 255 diff --git a/asm/FILE_1C2D000_trpoke.narc.s b/asm/FILE_1C2D000_trpoke.narc.s new file mode 100644 index 00000000..16c6e53b --- /dev/null +++ b/asm/FILE_1C2D000_trpoke.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1C2D000, 0x5594 + .balign 512, 255 diff --git a/asm/FILE_1C32600_trtbl.narc.s b/asm/FILE_1C32600_trtbl.narc.s new file mode 100644 index 00000000..2205a308 --- /dev/null +++ b/asm/FILE_1C32600_trtbl.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1C32600, 0x2584 + .balign 512, 255 diff --git a/asm/FILE_1C34C00_trtblofs.narc.s b/asm/FILE_1C34C00_trtblofs.narc.s new file mode 100644 index 00000000..1c2cc519 --- /dev/null +++ b/asm/FILE_1C34C00_trtblofs.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1C34C00, 0x6E0 + .balign 512, 255 diff --git a/asm/FILE_1C35400_b_bag_gra.narc.s b/asm/FILE_1C35400_b_bag_gra.narc.s new file mode 100644 index 00000000..6a49b07e --- /dev/null +++ b/asm/FILE_1C35400_b_bag_gra.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1C35400, 0x4F04 + .balign 512, 255 diff --git a/asm/FILE_1C3A400_b_plist_gra.narc.s b/asm/FILE_1C3A400_b_plist_gra.narc.s new file mode 100644 index 00000000..f847311f --- /dev/null +++ b/asm/FILE_1C3A400_b_plist_gra.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1C3A400, 0x122A8 + .balign 512, 255 diff --git a/asm/FILE_1C4C800_batt_bg.narc.s b/asm/FILE_1C4C800_batt_bg.narc.s new file mode 100644 index 00000000..29587000 --- /dev/null +++ b/asm/FILE_1C4C800_batt_bg.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1C4C800, 0x9C47C + .balign 512, 255 diff --git a/asm/FILE_1CE8E00_batt_obj.narc.s b/asm/FILE_1CE8E00_batt_obj.narc.s new file mode 100644 index 00000000..ab0415e4 --- /dev/null +++ b/asm/FILE_1CE8E00_batt_obj.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1CE8E00, 0x2025C + .balign 512, 255 diff --git a/asm/FILE_1D09200_vs_demo_gra.narc.s b/asm/FILE_1D09200_vs_demo_gra.narc.s new file mode 100644 index 00000000..f6f5e44f --- /dev/null +++ b/asm/FILE_1D09200_vs_demo_gra.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1D09200, 0x5180 + .balign 512, 255 diff --git a/asm/FILE_1D0E400_we.arc.s b/asm/FILE_1D0E400_we.arc.s new file mode 100644 index 00000000..36dac6ac --- /dev/null +++ b/asm/FILE_1D0E400_we.arc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1D0E400, 0x3E04C + .balign 512, 255 diff --git a/asm/FILE_1D4C600_we_sub.narc.s b/asm/FILE_1D4C600_we_sub.narc.s new file mode 100644 index 00000000..62df3606 --- /dev/null +++ b/asm/FILE_1D4C600_we_sub.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1D4C600, 0x3024 + .balign 512, 255 diff --git a/asm/FILE_1D4F800_be_seq.narc.s b/asm/FILE_1D4F800_be_seq.narc.s new file mode 100644 index 00000000..a8d11b98 --- /dev/null +++ b/asm/FILE_1D4F800_be_seq.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1D4F800, 0x41FC + .balign 512, 255 diff --git a/asm/FILE_1D53A00_sub_seq.narc.s b/asm/FILE_1D53A00_sub_seq.narc.s new file mode 100644 index 00000000..66831deb --- /dev/null +++ b/asm/FILE_1D53A00_sub_seq.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1D53A00, 0xC738 + .balign 512, 255 diff --git a/asm/FILE_1D60200_waza_seq.narc.s b/asm/FILE_1D60200_waza_seq.narc.s new file mode 100644 index 00000000..886ab1d8 --- /dev/null +++ b/asm/FILE_1D60200_waza_seq.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1D60200, 0x1910 + .balign 512, 255 diff --git a/asm/FILE_1D61C00_wecell.narc.s b/asm/FILE_1D61C00_wecell.narc.s new file mode 100644 index 00000000..ee6e1942 --- /dev/null +++ b/asm/FILE_1D61C00_wecell.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1D61C00, 0x14F4 + .balign 512, 255 diff --git a/asm/FILE_1D63200_wecellanm.narc.s b/asm/FILE_1D63200_wecellanm.narc.s new file mode 100644 index 00000000..c2cf1c60 --- /dev/null +++ b/asm/FILE_1D63200_wecellanm.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1D63200, 0x1250 + .balign 512, 255 diff --git a/asm/FILE_1D64600_wechar.narc.s b/asm/FILE_1D64600_wechar.narc.s new file mode 100644 index 00000000..82c5061c --- /dev/null +++ b/asm/FILE_1D64600_wechar.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1D64600, 0x8134 + .balign 512, 255 diff --git a/asm/FILE_1D6C800_wepltt.narc.s b/asm/FILE_1D6C800_wepltt.narc.s new file mode 100644 index 00000000..3b9d6246 --- /dev/null +++ b/asm/FILE_1D6C800_wepltt.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1D6C800, 0x1180 + .balign 512, 255 diff --git a/asm/FILE_1D6DA00_waza_tbl.narc.s b/asm/FILE_1D6DA00_waza_tbl.narc.s new file mode 100644 index 00000000..1a56b290 --- /dev/null +++ b/asm/FILE_1D6DA00_waza_tbl.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1D6DA00, 0x2C5C + .balign 512, 255 diff --git a/asm/FILE_1D70800_scr_seq_release.narc.s b/asm/FILE_1D70800_scr_seq_release.narc.s new file mode 100644 index 00000000..7f2b232a --- /dev/null +++ b/asm/FILE_1D70800_scr_seq_release.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1D70800, 0x359D8 + .balign 512, 255 diff --git a/asm/FILE_1DA6200_bag_gra.narc.s b/asm/FILE_1DA6200_bag_gra.narc.s new file mode 100644 index 00000000..6237286f --- /dev/null +++ b/asm/FILE_1DA6200_bag_gra.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1DA6200, 0x19C74 + .balign 512, 255 diff --git a/asm/FILE_1DC0000_box.narc.s b/asm/FILE_1DC0000_box.narc.s new file mode 100644 index 00000000..cc867323 --- /dev/null +++ b/asm/FILE_1DC0000_box.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1DC0000, 0x1BB20 + .balign 512, 255 diff --git a/asm/FILE_1DDBC00_btower.narc.s b/asm/FILE_1DDBC00_btower.narc.s new file mode 100644 index 00000000..0ca2b2d4 --- /dev/null +++ b/asm/FILE_1DDBC00_btower.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1DDBC00, 0x41F8 + .balign 512, 255 diff --git a/asm/FILE_1DDFE00_config_gra.narc.s b/asm/FILE_1DDFE00_config_gra.narc.s new file mode 100644 index 00000000..870d2e32 --- /dev/null +++ b/asm/FILE_1DDFE00_config_gra.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1DDFE00, 0x2AC + .balign 512, 255 diff --git a/asm/FILE_1DE0200_demo_trade.narc.s b/asm/FILE_1DE0200_demo_trade.narc.s new file mode 100644 index 00000000..0d9e51ed --- /dev/null +++ b/asm/FILE_1DE0200_demo_trade.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1DE0200, 0x7B18 + .balign 512, 255 diff --git a/asm/FILE_1DE7E00_dendou_demo.narc.s b/asm/FILE_1DE7E00_dendou_demo.narc.s new file mode 100644 index 00000000..8ce52132 --- /dev/null +++ b/asm/FILE_1DE7E00_dendou_demo.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1DE7E00, 0x61C + .balign 512, 255 diff --git a/asm/FILE_1DE8600_dendou_pc.narc.s b/asm/FILE_1DE8600_dendou_pc.narc.s new file mode 100644 index 00000000..efc14673 --- /dev/null +++ b/asm/FILE_1DE8600_dendou_pc.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1DE8600, 0x29C + .balign 512, 255 diff --git a/asm/FILE_1DE8A00_ending.narc.s b/asm/FILE_1DE8A00_ending.narc.s new file mode 100644 index 00000000..330bee77 --- /dev/null +++ b/asm/FILE_1DE8A00_ending.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1DE8A00, 0x5169C + .balign 512, 255 diff --git a/asm/FILE_1DFE00.s b/asm/FILE_1DFE00.s new file mode 100644 index 00000000..5e5e8a7c --- /dev/null +++ b/asm/FILE_1DFE00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1DFE00, 0x19260 + .balign 512, 255 diff --git a/asm/FILE_1E3A200_ev_pokeselect.narc.s b/asm/FILE_1E3A200_ev_pokeselect.narc.s new file mode 100644 index 00000000..6e6d923a --- /dev/null +++ b/asm/FILE_1E3A200_ev_pokeselect.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1E3A200, 0x22524 + .balign 512, 255 diff --git a/asm/FILE_1E5C800_f_note_gra.narc.s b/asm/FILE_1E5C800_f_note_gra.narc.s new file mode 100644 index 00000000..fd3e8347 --- /dev/null +++ b/asm/FILE_1E5C800_f_note_gra.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1E5C800, 0x297C + .balign 512, 255 diff --git a/asm/FILE_1E5F200_field_board.narc.s b/asm/FILE_1E5F200_field_board.narc.s new file mode 100644 index 00000000..4b86a6c7 --- /dev/null +++ b/asm/FILE_1E5F200_field_board.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1E5F200, 0xA8FC + .balign 512, 255 diff --git a/asm/FILE_1E69C00_field_encounteffect.narc.s b/asm/FILE_1E69C00_field_encounteffect.narc.s new file mode 100644 index 00000000..abf2641c --- /dev/null +++ b/asm/FILE_1E69C00_field_encounteffect.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1E69C00, 0x9708 + .balign 512, 255 diff --git a/asm/FILE_1E73400_fld_comact.narc.s b/asm/FILE_1E73400_fld_comact.narc.s new file mode 100644 index 00000000..129c7a70 --- /dev/null +++ b/asm/FILE_1E73400_fld_comact.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1E73400, 0x364 + .balign 512, 255 diff --git a/asm/FILE_1E73800_font.narc.s b/asm/FILE_1E73800_font.narc.s new file mode 100644 index 00000000..54f1c3ce --- /dev/null +++ b/asm/FILE_1E73800_font.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1E73800, 0x20E58 + .balign 512, 255 diff --git a/asm/FILE_1E94800_fontoam.narc.s b/asm/FILE_1E94800_fontoam.narc.s new file mode 100644 index 00000000..5b06f825 --- /dev/null +++ b/asm/FILE_1E94800_fontoam.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1E94800, 0x5A4 + .balign 512, 255 diff --git a/asm/FILE_1E94E00_hiden_effect.narc.s b/asm/FILE_1E94E00_hiden_effect.narc.s new file mode 100644 index 00000000..1209ca8b --- /dev/null +++ b/asm/FILE_1E94E00_hiden_effect.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1E94E00, 0x7E14 + .balign 512, 255 diff --git a/asm/FILE_1E9CE00_imageclip.narc.s b/asm/FILE_1E9CE00_imageclip.narc.s new file mode 100644 index 00000000..d3584d27 --- /dev/null +++ b/asm/FILE_1E9CE00_imageclip.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1E9CE00, 0x3E630 + .balign 512, 255 diff --git a/asm/FILE_1EDB600_mail_gra.narc.s b/asm/FILE_1EDB600_mail_gra.narc.s new file mode 100644 index 00000000..7425c33b --- /dev/null +++ b/asm/FILE_1EDB600_mail_gra.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1EDB600, 0x1A130 + .balign 512, 255 diff --git a/asm/FILE_1EF5800_menu_gra.narc.s b/asm/FILE_1EF5800_menu_gra.narc.s new file mode 100644 index 00000000..148e751b --- /dev/null +++ b/asm/FILE_1EF5800_menu_gra.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1EF5800, 0x4B70 + .balign 512, 255 diff --git a/asm/FILE_1EFA400_mysign.narc.s b/asm/FILE_1EFA400_mysign.narc.s new file mode 100644 index 00000000..fdad0c9b --- /dev/null +++ b/asm/FILE_1EFA400_mysign.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1EFA400, 0x10B8 + .balign 512, 255 diff --git a/asm/FILE_1EFB600_mystery.narc.s b/asm/FILE_1EFB600_mystery.narc.s new file mode 100644 index 00000000..c7bc3a16 --- /dev/null +++ b/asm/FILE_1EFB600_mystery.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1EFB600, 0x78C4 + .balign 512, 255 diff --git a/asm/FILE_1F03000_ntag_gra.narc.s b/asm/FILE_1F03000_ntag_gra.narc.s new file mode 100644 index 00000000..b2d38a9c --- /dev/null +++ b/asm/FILE_1F03000_ntag_gra.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1F03000, 0x2CE70 + .balign 512, 255 diff --git a/asm/FILE_1F30000_nutmixer.narc.s b/asm/FILE_1F30000_nutmixer.narc.s new file mode 100644 index 00000000..c48b41b3 --- /dev/null +++ b/asm/FILE_1F30000_nutmixer.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1F30000, 0x2C2F4 + .balign 512, 255 diff --git a/asm/FILE_1F5C400_oekaki.narc.s b/asm/FILE_1F5C400_oekaki.narc.s new file mode 100644 index 00000000..0ddbc601 --- /dev/null +++ b/asm/FILE_1F5C400_oekaki.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1F5C400, 0x1524 + .balign 512, 255 diff --git a/asm/FILE_1F5DA00_opening.narc.s b/asm/FILE_1F5DA00_opening.narc.s new file mode 100644 index 00000000..4e200228 --- /dev/null +++ b/asm/FILE_1F5DA00_opening.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1F5DA00, 0x6BBC + .balign 512, 255 diff --git a/asm/FILE_1F64600_plist_gra.narc.s b/asm/FILE_1F64600_plist_gra.narc.s new file mode 100644 index 00000000..9f665f1c --- /dev/null +++ b/asm/FILE_1F64600_plist_gra.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1F64600, 0x9CAC + .balign 512, 255 diff --git a/asm/FILE_1F6E400_pmsi.narc.s b/asm/FILE_1F6E400_pmsi.narc.s new file mode 100644 index 00000000..4695492b --- /dev/null +++ b/asm/FILE_1F6E400_pmsi.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1F6E400, 0x3164 + .balign 512, 255 diff --git a/asm/FILE_1F71600_poketch.narc.s b/asm/FILE_1F71600_poketch.narc.s new file mode 100644 index 00000000..80c7053c --- /dev/null +++ b/asm/FILE_1F71600_poketch.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1F71600, 0xE5C4 + .balign 512, 255 diff --git a/asm/FILE_1F7FC00_poru_gra.narc.s b/asm/FILE_1F7FC00_poru_gra.narc.s new file mode 100644 index 00000000..a1c43517 --- /dev/null +++ b/asm/FILE_1F7FC00_poru_gra.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1F7FC00, 0x69E4 + .balign 512, 255 diff --git a/asm/FILE_1F86600_poruact.narc.s b/asm/FILE_1F86600_poruact.narc.s new file mode 100644 index 00000000..b5c48ee9 --- /dev/null +++ b/asm/FILE_1F86600_poruact.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1F86600, 0x14AC + .balign 512, 255 diff --git a/asm/FILE_1F87C00_porudemo.narc.s b/asm/FILE_1F87C00_porudemo.narc.s new file mode 100644 index 00000000..75067a1c --- /dev/null +++ b/asm/FILE_1F87C00_porudemo.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1F87C00, 0x226C + .balign 512, 255 diff --git a/asm/FILE_1F8A000_pst_gra.narc.s b/asm/FILE_1F8A000_pst_gra.narc.s new file mode 100644 index 00000000..5557d0bd --- /dev/null +++ b/asm/FILE_1F8A000_pst_gra.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1F8A000, 0x1F0B0 + .balign 512, 255 diff --git a/asm/FILE_1F9200.s b/asm/FILE_1F9200.s new file mode 100644 index 00000000..e2e33721 --- /dev/null +++ b/asm/FILE_1F9200.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1F9200, 0x2EBE0 + .balign 512, 255 diff --git a/asm/FILE_1FA9200_ranking.narc.s b/asm/FILE_1FA9200_ranking.narc.s new file mode 100644 index 00000000..16892925 --- /dev/null +++ b/asm/FILE_1FA9200_ranking.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1FA9200, 0x14C8 + .balign 512, 255 diff --git a/asm/FILE_1FAA800_record.narc.s b/asm/FILE_1FAA800_record.narc.s new file mode 100644 index 00000000..7597ca7d --- /dev/null +++ b/asm/FILE_1FAA800_record.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1FAA800, 0x59C4 + .balign 512, 255 diff --git a/asm/FILE_1FB0200_shop_gra.narc.s b/asm/FILE_1FB0200_shop_gra.narc.s new file mode 100644 index 00000000..7ba5a00c --- /dev/null +++ b/asm/FILE_1FB0200_shop_gra.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1FB0200, 0x2740 + .balign 512, 255 diff --git a/asm/FILE_1FB2A00_tmap_gra.narc.s b/asm/FILE_1FB2A00_tmap_gra.narc.s new file mode 100644 index 00000000..7a4a4ecd --- /dev/null +++ b/asm/FILE_1FB2A00_tmap_gra.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1FB2A00, 0x14F10 + .balign 512, 255 diff --git a/asm/FILE_1FC7A00_touch_subwindow.narc.s b/asm/FILE_1FC7A00_touch_subwindow.narc.s new file mode 100644 index 00000000..4c62e490 --- /dev/null +++ b/asm/FILE_1FC7A00_touch_subwindow.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1FC7A00, 0x998 + .balign 512, 255 diff --git a/asm/FILE_1FC8400_trainer_case.narc.s b/asm/FILE_1FC8400_trainer_case.narc.s new file mode 100644 index 00000000..77df1a4b --- /dev/null +++ b/asm/FILE_1FC8400_trainer_case.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1FC8400, 0x37BE0 + .balign 512, 255 diff --git a/asm/FILE_2000000_unionroom.narc.s b/asm/FILE_2000000_unionroom.narc.s new file mode 100644 index 00000000..e7ec91e7 --- /dev/null +++ b/asm/FILE_2000000_unionroom.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2000000, 0x1210 + .balign 512, 255 diff --git a/asm/FILE_2001400_waza_oshie_gra.narc.s b/asm/FILE_2001400_waza_oshie_gra.narc.s new file mode 100644 index 00000000..7f411170 --- /dev/null +++ b/asm/FILE_2001400_waza_oshie_gra.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2001400, 0x2F34 + .balign 512, 255 diff --git a/asm/FILE_2004400_winframe.narc.s b/asm/FILE_2004400_winframe.narc.s new file mode 100644 index 00000000..938985da --- /dev/null +++ b/asm/FILE_2004400_winframe.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2004400, 0x88E4 + .balign 512, 255 diff --git a/asm/FILE_200CE00_worldtrade.narc.s b/asm/FILE_200CE00_worldtrade.narc.s new file mode 100644 index 00000000..4c439c8e --- /dev/null +++ b/asm/FILE_200CE00_worldtrade.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x200CE00, 0xB6D8 + .balign 512, 255 diff --git a/asm/FILE_2018600_item_data.narc.s b/asm/FILE_2018600_item_data.narc.s new file mode 100644 index 00000000..db934f88 --- /dev/null +++ b/asm/FILE_2018600_item_data.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2018600, 0x4C2C + .balign 512, 255 diff --git a/asm/FILE_201D400_item_icon.narc.s b/asm/FILE_201D400_item_icon.narc.s new file mode 100644 index 00000000..f17e1f6b --- /dev/null +++ b/asm/FILE_201D400_item_icon.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x201D400, 0x608B0 + .balign 512, 255 diff --git a/asm/FILE_207DE00_nuts_data.narc.s b/asm/FILE_207DE00_nuts_data.narc.s new file mode 100644 index 00000000..f846752a --- /dev/null +++ b/asm/FILE_207DE00_nuts_data.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x207DE00, 0x534 + .balign 512, 255 diff --git a/asm/FILE_207E400_poke_icon.narc.s b/asm/FILE_207E400_poke_icon.narc.s new file mode 100644 index 00000000..0f3379b2 --- /dev/null +++ b/asm/FILE_207E400_poke_icon.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x207E400, 0x8D0F0 + .balign 512, 255 diff --git a/asm/FILE_210B600_pokefoot.narc.s b/asm/FILE_210B600_pokefoot.narc.s new file mode 100644 index 00000000..f288e0a7 --- /dev/null +++ b/asm/FILE_210B600_pokefoot.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x210B600, 0xE4EC + .balign 512, 255 diff --git a/asm/FILE_2119C00_mmodel.narc.s b/asm/FILE_2119C00_mmodel.narc.s new file mode 100644 index 00000000..57ad8f82 --- /dev/null +++ b/asm/FILE_2119C00_mmodel.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2119C00, 0x12845C + .balign 512, 255 diff --git a/asm/FILE_2242200_fldeff.narc.s b/asm/FILE_2242200_fldeff.narc.s new file mode 100644 index 00000000..cea9c1f6 --- /dev/null +++ b/asm/FILE_2242200_fldeff.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2242200, 0x1BE98 + .balign 512, 255 diff --git a/asm/FILE_225E200_ball_particle.narc.s b/asm/FILE_225E200_ball_particle.narc.s new file mode 100644 index 00000000..069fe983 --- /dev/null +++ b/asm/FILE_225E200_ball_particle.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x225E200, 0x4E844 + .balign 512, 255 diff --git a/asm/FILE_227E00.s b/asm/FILE_227E00.s new file mode 100644 index 00000000..ab307e3a --- /dev/null +++ b/asm/FILE_227E00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x227E00, 0xF520 + .balign 512, 255 diff --git a/asm/FILE_22ACC00_waza_particle.narc.s b/asm/FILE_22ACC00_waza_particle.narc.s new file mode 100644 index 00000000..f0e8f547 --- /dev/null +++ b/asm/FILE_22ACC00_waza_particle.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x22ACC00, 0x245810 + .balign 512, 255 diff --git a/asm/FILE_237400.s b/asm/FILE_237400.s new file mode 100644 index 00000000..45907862 --- /dev/null +++ b/asm/FILE_237400.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x237400, 0x4680 + .balign 512, 255 diff --git a/asm/FILE_23BC00.s b/asm/FILE_23BC00.s new file mode 100644 index 00000000..72123ecb --- /dev/null +++ b/asm/FILE_23BC00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x23BC00, 0x28500 + .balign 512, 255 diff --git a/asm/FILE_24F2600_debug_particle.narc.s b/asm/FILE_24F2600_debug_particle.narc.s new file mode 100644 index 00000000..ed67d009 --- /dev/null +++ b/asm/FILE_24F2600_debug_particle.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x24F2600, 0xBC8 + .balign 512, 255 diff --git a/asm/FILE_24F3200_zone_event_release.narc.s b/asm/FILE_24F3200_zone_event_release.narc.s new file mode 100644 index 00000000..a4de5996 --- /dev/null +++ b/asm/FILE_24F3200_zone_event_release.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x24F3200, 0x222F4 + .balign 512, 255 diff --git a/asm/FILE_2515600_d_enc_data.narc.s b/asm/FILE_2515600_d_enc_data.narc.s new file mode 100644 index 00000000..d35da219 --- /dev/null +++ b/asm/FILE_2515600_d_enc_data.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2515600, 0x13504 + .balign 512, 255 diff --git a/asm/FILE_2528C00_p_enc_data.narc.s b/asm/FILE_2528C00_p_enc_data.narc.s new file mode 100644 index 00000000..f33130a9 --- /dev/null +++ b/asm/FILE_2528C00_p_enc_data.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2528C00, 0x13504 + .balign 512, 255 diff --git a/asm/FILE_253C200_build_model.narc.s b/asm/FILE_253C200_build_model.narc.s new file mode 100644 index 00000000..84e338f4 --- /dev/null +++ b/asm/FILE_253C200_build_model.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x253C200, 0x1D45CC + .balign 512, 255 diff --git a/asm/FILE_264200.s b/asm/FILE_264200.s new file mode 100644 index 00000000..5e654387 --- /dev/null +++ b/asm/FILE_264200.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x264200, 0x6E80 + .balign 512, 255 diff --git a/asm/FILE_26B200.s b/asm/FILE_26B200.s new file mode 100644 index 00000000..0c91220f --- /dev/null +++ b/asm/FILE_26B200.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x26B200, 0x17CE0 + .balign 512, 255 diff --git a/asm/FILE_2710800_build_model_matshp.dat.s b/asm/FILE_2710800_build_model_matshp.dat.s new file mode 100644 index 00000000..936e81a5 --- /dev/null +++ b/asm/FILE_2710800_build_model_matshp.dat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2710800, 0x1724 + .balign 512, 255 diff --git a/asm/FILE_2712000_map_matrix.narc.s b/asm/FILE_2712000_map_matrix.narc.s new file mode 100644 index 00000000..da488adc --- /dev/null +++ b/asm/FILE_2712000_map_matrix.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2712000, 0x2E18 + .balign 512, 255 diff --git a/asm/FILE_2715000_area_data.narc.s b/asm/FILE_2715000_area_data.narc.s new file mode 100644 index 00000000..41eb45c9 --- /dev/null +++ b/asm/FILE_2715000_area_data.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2715000, 0x3E4 + .balign 512, 255 diff --git a/asm/FILE_2715400_area_build.narc.s b/asm/FILE_2715400_area_build.narc.s new file mode 100644 index 00000000..634bac7b --- /dev/null +++ b/asm/FILE_2715400_area_build.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2715400, 0x1274 + .balign 512, 255 diff --git a/asm/FILE_2716800_areabm_texset.narc.s b/asm/FILE_2716800_areabm_texset.narc.s new file mode 100644 index 00000000..c1fe8ab4 --- /dev/null +++ b/asm/FILE_2716800_areabm_texset.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2716800, 0x1254B4 + .balign 512, 255 diff --git a/asm/FILE_283000.s b/asm/FILE_283000.s new file mode 100644 index 00000000..6b536136 --- /dev/null +++ b/asm/FILE_283000.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x283000, 0x100 + .balign 512, 255 diff --git a/asm/FILE_283200.s b/asm/FILE_283200.s new file mode 100644 index 00000000..461d9ac6 --- /dev/null +++ b/asm/FILE_283200.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x283200, 0x2400 + .balign 512, 255 diff --git a/asm/FILE_283BE00_map_tex_set.narc.s b/asm/FILE_283BE00_map_tex_set.narc.s new file mode 100644 index 00000000..1fad421a --- /dev/null +++ b/asm/FILE_283BE00_map_tex_set.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x283BE00, 0x132D50 + .balign 512, 255 diff --git a/asm/FILE_285600.s b/asm/FILE_285600.s new file mode 100644 index 00000000..02c6eb09 --- /dev/null +++ b/asm/FILE_285600.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x285600, 0x5C0 + .balign 512, 255 diff --git a/asm/FILE_285C00.s b/asm/FILE_285C00.s new file mode 100644 index 00000000..70fab4a8 --- /dev/null +++ b/asm/FILE_285C00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x285C00, 0xF00 + .balign 512, 255 diff --git a/asm/FILE_286C00.s b/asm/FILE_286C00.s new file mode 100644 index 00000000..7d4ff42d --- /dev/null +++ b/asm/FILE_286C00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x286C00, 0x1900 + .balign 512, 255 diff --git a/asm/FILE_288600.s b/asm/FILE_288600.s new file mode 100644 index 00000000..cdb33573 --- /dev/null +++ b/asm/FILE_288600.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x288600, 0x9A0 + .balign 512, 255 diff --git a/asm/FILE_289000.s b/asm/FILE_289000.s new file mode 100644 index 00000000..0d794c29 --- /dev/null +++ b/asm/FILE_289000.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x289000, 0x560 + .balign 512, 255 diff --git a/asm/FILE_289600.s b/asm/FILE_289600.s new file mode 100644 index 00000000..813f71fe --- /dev/null +++ b/asm/FILE_289600.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x289600, 0x800 + .balign 512, 255 diff --git a/asm/FILE_289E00.s b/asm/FILE_289E00.s new file mode 100644 index 00000000..34da6195 --- /dev/null +++ b/asm/FILE_289E00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x289E00, 0xBA0 + .balign 512, 255 diff --git a/asm/FILE_28AA00.s b/asm/FILE_28AA00.s new file mode 100644 index 00000000..d8827a3a --- /dev/null +++ b/asm/FILE_28AA00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x28AA00, 0x1780 + .balign 512, 255 diff --git a/asm/FILE_28C200.s b/asm/FILE_28C200.s new file mode 100644 index 00000000..b69d6856 --- /dev/null +++ b/asm/FILE_28C200.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x28C200, 0x900 + .balign 512, 255 diff --git a/asm/FILE_28CC00.s b/asm/FILE_28CC00.s new file mode 100644 index 00000000..8b411001 --- /dev/null +++ b/asm/FILE_28CC00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x28CC00, 0x600 + .balign 512, 255 diff --git a/asm/FILE_28D200.s b/asm/FILE_28D200.s new file mode 100644 index 00000000..fe324802 --- /dev/null +++ b/asm/FILE_28D200.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x28D200, 0x600 + .balign 512, 255 diff --git a/asm/FILE_28D800.s b/asm/FILE_28D800.s new file mode 100644 index 00000000..f787e794 --- /dev/null +++ b/asm/FILE_28D800.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x28D800, 0x4A0 + .balign 512, 255 diff --git a/asm/FILE_28DE00.s b/asm/FILE_28DE00.s new file mode 100644 index 00000000..6658c9fc --- /dev/null +++ b/asm/FILE_28DE00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x28DE00, 0x320 + .balign 512, 255 diff --git a/asm/FILE_28E200.s b/asm/FILE_28E200.s new file mode 100644 index 00000000..d36e77ce --- /dev/null +++ b/asm/FILE_28E200.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x28E200, 0x4C0 + .balign 512, 255 diff --git a/asm/FILE_28E800.s b/asm/FILE_28E800.s new file mode 100644 index 00000000..bdc1ef52 --- /dev/null +++ b/asm/FILE_28E800.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x28E800, 0x9A0 + .balign 512, 255 diff --git a/asm/FILE_28F200.s b/asm/FILE_28F200.s new file mode 100644 index 00000000..f8b95b6a --- /dev/null +++ b/asm/FILE_28F200.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x28F200, 0xCC0 + .balign 512, 255 diff --git a/asm/FILE_290000.s b/asm/FILE_290000.s new file mode 100644 index 00000000..7e15ff90 --- /dev/null +++ b/asm/FILE_290000.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x290000, 0x560 + .balign 512, 255 diff --git a/asm/FILE_290600.s b/asm/FILE_290600.s new file mode 100644 index 00000000..fda50640 --- /dev/null +++ b/asm/FILE_290600.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x290600, 0xB40 + .balign 512, 255 diff --git a/asm/FILE_291200.s b/asm/FILE_291200.s new file mode 100644 index 00000000..ce12a90a --- /dev/null +++ b/asm/FILE_291200.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x291200, 0xCC0 + .balign 512, 255 diff --git a/asm/FILE_292000.s b/asm/FILE_292000.s new file mode 100644 index 00000000..d50a3ef1 --- /dev/null +++ b/asm/FILE_292000.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x292000, 0xC60 + .balign 512, 255 diff --git a/asm/FILE_292E00.s b/asm/FILE_292E00.s new file mode 100644 index 00000000..b5a8d36d --- /dev/null +++ b/asm/FILE_292E00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x292E00, 0x1140 + .balign 512, 255 diff --git a/asm/FILE_294000.s b/asm/FILE_294000.s new file mode 100644 index 00000000..8a03373c --- /dev/null +++ b/asm/FILE_294000.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x294000, 0x900 + .balign 512, 255 diff --git a/asm/FILE_294A00.s b/asm/FILE_294A00.s new file mode 100644 index 00000000..452c8165 --- /dev/null +++ b/asm/FILE_294A00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x294A00, 0x9C0 + .balign 512, 255 diff --git a/asm/FILE_295400.s b/asm/FILE_295400.s new file mode 100644 index 00000000..b21be08b --- /dev/null +++ b/asm/FILE_295400.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x295400, 0x4A0 + .balign 512, 255 diff --git a/asm/FILE_295A00.s b/asm/FILE_295A00.s new file mode 100644 index 00000000..1017f6aa --- /dev/null +++ b/asm/FILE_295A00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x295A00, 0x940 + .balign 512, 255 diff --git a/asm/FILE_296400.s b/asm/FILE_296400.s new file mode 100644 index 00000000..118ca39a --- /dev/null +++ b/asm/FILE_296400.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x296400, 0x320 + .balign 512, 255 diff --git a/asm/FILE_296800.s b/asm/FILE_296800.s new file mode 100644 index 00000000..68ac75b9 --- /dev/null +++ b/asm/FILE_296800.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x296800, 0xCA0 + .balign 512, 255 diff --git a/asm/FILE_296EC00_move_model_list.narc.s b/asm/FILE_296EC00_move_model_list.narc.s new file mode 100644 index 00000000..895eb509 --- /dev/null +++ b/asm/FILE_296EC00_move_model_list.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x296EC00, 0x4D8 + .balign 512, 255 diff --git a/asm/FILE_296F200_land_data_release.narc.s b/asm/FILE_296F200_land_data_release.narc.s new file mode 100644 index 00000000..f5b6e6e4 --- /dev/null +++ b/asm/FILE_296F200_land_data_release.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x296F200, 0xE17F2C + .balign 512, 255 diff --git a/asm/FILE_297600.s b/asm/FILE_297600.s new file mode 100644 index 00000000..1887c4af --- /dev/null +++ b/asm/FILE_297600.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x297600, 0x8A0 + .balign 512, 255 diff --git a/asm/FILE_298000.s b/asm/FILE_298000.s new file mode 100644 index 00000000..ffdcde2a --- /dev/null +++ b/asm/FILE_298000.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x298000, 0x600 + .balign 512, 255 diff --git a/asm/FILE_298600.s b/asm/FILE_298600.s new file mode 100644 index 00000000..d4bef86c --- /dev/null +++ b/asm/FILE_298600.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x298600, 0x320 + .balign 512, 255 diff --git a/asm/FILE_298A00.s b/asm/FILE_298A00.s new file mode 100644 index 00000000..258432c2 --- /dev/null +++ b/asm/FILE_298A00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x298A00, 0xFC0 + .balign 512, 255 diff --git a/asm/FILE_299A00.s b/asm/FILE_299A00.s new file mode 100644 index 00000000..71432656 --- /dev/null +++ b/asm/FILE_299A00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x299A00, 0x400 + .balign 512, 255 diff --git a/asm/FILE_299E00.s b/asm/FILE_299E00.s new file mode 100644 index 00000000..4fb90fe1 --- /dev/null +++ b/asm/FILE_299E00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x299E00, 0x2480 + .balign 512, 255 diff --git a/asm/FILE_29C400.s b/asm/FILE_29C400.s new file mode 100644 index 00000000..3b880c03 --- /dev/null +++ b/asm/FILE_29C400.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x29C400, 0x2380 + .balign 512, 255 diff --git a/asm/FILE_29E800.s b/asm/FILE_29E800.s new file mode 100644 index 00000000..f3cf72cb --- /dev/null +++ b/asm/FILE_29E800.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x29E800, 0x3040 + .balign 512, 255 diff --git a/asm/FILE_2A1A00.s b/asm/FILE_2A1A00.s new file mode 100644 index 00000000..d917b776 --- /dev/null +++ b/asm/FILE_2A1A00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2A1A00, 0x47A0 + .balign 512, 255 diff --git a/asm/FILE_2A6200.s b/asm/FILE_2A6200.s new file mode 100644 index 00000000..ae62fcc6 --- /dev/null +++ b/asm/FILE_2A6200.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2A6200, 0x2540 + .balign 512, 255 diff --git a/asm/FILE_2A8800.s b/asm/FILE_2A8800.s new file mode 100644 index 00000000..967d96f3 --- /dev/null +++ b/asm/FILE_2A8800.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2A8800, 0x15A0 + .balign 512, 255 diff --git a/asm/FILE_2A9E00.s b/asm/FILE_2A9E00.s new file mode 100644 index 00000000..21839769 --- /dev/null +++ b/asm/FILE_2A9E00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2A9E00, 0x2C20 + .balign 512, 255 diff --git a/asm/FILE_2ACC00.s b/asm/FILE_2ACC00.s new file mode 100644 index 00000000..2068bd4c --- /dev/null +++ b/asm/FILE_2ACC00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2ACC00, 0xD00 + .balign 512, 255 diff --git a/asm/FILE_2ADA00.s b/asm/FILE_2ADA00.s new file mode 100644 index 00000000..9f464dac --- /dev/null +++ b/asm/FILE_2ADA00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2ADA00, 0x1080 + .balign 512, 255 diff --git a/asm/FILE_2AEC00.s b/asm/FILE_2AEC00.s new file mode 100644 index 00000000..e6a54fb3 --- /dev/null +++ b/asm/FILE_2AEC00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2AEC00, 0x3DE0 + .balign 512, 255 diff --git a/asm/FILE_2B2A00.s b/asm/FILE_2B2A00.s new file mode 100644 index 00000000..44eba0d2 --- /dev/null +++ b/asm/FILE_2B2A00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2B2A00, 0x4AC0 + .balign 512, 255 diff --git a/asm/FILE_2B7600.s b/asm/FILE_2B7600.s new file mode 100644 index 00000000..8258b44e --- /dev/null +++ b/asm/FILE_2B7600.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2B7600, 0x1C40 + .balign 512, 255 diff --git a/asm/FILE_2B9400.s b/asm/FILE_2B9400.s new file mode 100644 index 00000000..17ffa8d8 --- /dev/null +++ b/asm/FILE_2B9400.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2B9400, 0x3000 + .balign 512, 255 diff --git a/asm/FILE_2BC400.s b/asm/FILE_2BC400.s new file mode 100644 index 00000000..e34ef7f4 --- /dev/null +++ b/asm/FILE_2BC400.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2BC400, 0x2660 + .balign 512, 255 diff --git a/asm/FILE_2BEC00.s b/asm/FILE_2BEC00.s new file mode 100644 index 00000000..c229a70e --- /dev/null +++ b/asm/FILE_2BEC00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2BEC00, 0x2440 + .balign 512, 255 diff --git a/asm/FILE_2C1200.s b/asm/FILE_2C1200.s new file mode 100644 index 00000000..f357627d --- /dev/null +++ b/asm/FILE_2C1200.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2C1200, 0x1600 + .balign 512, 255 diff --git a/asm/FILE_2C2800.s b/asm/FILE_2C2800.s new file mode 100644 index 00000000..bddd6f01 --- /dev/null +++ b/asm/FILE_2C2800.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2C2800, 0x23A0 + .balign 512, 255 diff --git a/asm/FILE_2C4C00.s b/asm/FILE_2C4C00.s new file mode 100644 index 00000000..d41910b0 --- /dev/null +++ b/asm/FILE_2C4C00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2C4C00, 0xE20 + .balign 512, 255 diff --git a/asm/FILE_2C5C00.s b/asm/FILE_2C5C00.s new file mode 100644 index 00000000..c24ed641 --- /dev/null +++ b/asm/FILE_2C5C00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2C5C00, 0x3EC0 + .balign 512, 255 diff --git a/asm/FILE_2C9C00.s b/asm/FILE_2C9C00.s new file mode 100644 index 00000000..72b30caa --- /dev/null +++ b/asm/FILE_2C9C00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2C9C00, 0x20 + .balign 512, 255 diff --git a/asm/FILE_2C9E00.s b/asm/FILE_2C9E00.s new file mode 100644 index 00000000..91cc4599 --- /dev/null +++ b/asm/FILE_2C9E00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2C9E00, 0x4AE0 + .balign 512, 255 diff --git a/asm/FILE_2CEA00.s b/asm/FILE_2CEA00.s new file mode 100644 index 00000000..e9a4ed70 --- /dev/null +++ b/asm/FILE_2CEA00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2CEA00, 0x1220 + .balign 512, 255 diff --git a/asm/FILE_2CFE00.s b/asm/FILE_2CFE00.s new file mode 100644 index 00000000..513e7dea --- /dev/null +++ b/asm/FILE_2CFE00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2CFE00, 0x5DE0 + .balign 512, 255 diff --git a/asm/FILE_2D5C00.s b/asm/FILE_2D5C00.s new file mode 100644 index 00000000..adc46cc2 --- /dev/null +++ b/asm/FILE_2D5C00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2D5C00, 0x1E20 + .balign 512, 255 diff --git a/asm/FILE_2D7C00.s b/asm/FILE_2D7C00.s new file mode 100644 index 00000000..4fc876ea --- /dev/null +++ b/asm/FILE_2D7C00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2D7C00, 0x1BE0 + .balign 512, 255 diff --git a/asm/FILE_2D9800.s b/asm/FILE_2D9800.s new file mode 100644 index 00000000..772b6549 --- /dev/null +++ b/asm/FILE_2D9800.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2D9800, 0x460 + .balign 512, 255 diff --git a/asm/FILE_2D9E00.s b/asm/FILE_2D9E00.s new file mode 100644 index 00000000..934f9168 --- /dev/null +++ b/asm/FILE_2D9E00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2D9E00, 0x52C0 + .balign 512, 255 diff --git a/asm/FILE_2DF200.s b/asm/FILE_2DF200.s new file mode 100644 index 00000000..b5761253 --- /dev/null +++ b/asm/FILE_2DF200.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2DF200, 0xA720 + .balign 512, 255 diff --git a/asm/FILE_2E9A00.s b/asm/FILE_2E9A00.s new file mode 100644 index 00000000..8b6338f7 --- /dev/null +++ b/asm/FILE_2E9A00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2E9A00, 0x5580 + .balign 512, 255 diff --git a/asm/FILE_2EF000.s b/asm/FILE_2EF000.s new file mode 100644 index 00000000..b8304264 --- /dev/null +++ b/asm/FILE_2EF000.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2EF000, 0x2540 + .balign 512, 255 diff --git a/asm/FILE_2F1600.s b/asm/FILE_2F1600.s new file mode 100644 index 00000000..643b88fc --- /dev/null +++ b/asm/FILE_2F1600.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2F1600, 0xE2A0 + .balign 512, 255 diff --git a/asm/FILE_2FFA00.s b/asm/FILE_2FFA00.s new file mode 100644 index 00000000..8fb7cb9c --- /dev/null +++ b/asm/FILE_2FFA00.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2FFA00, 0x3920 + .balign 512, 255 diff --git a/asm/FILE_303400.s b/asm/FILE_303400.s new file mode 100644 index 00000000..a180411b --- /dev/null +++ b/asm/FILE_303400.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x303400, 0x9100 + .balign 512, 255 diff --git a/asm/FILE_30C600.s b/asm/FILE_30C600.s new file mode 100644 index 00000000..72531ed0 --- /dev/null +++ b/asm/FILE_30C600.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x30C600, 0x820 + .balign 512, 255 diff --git a/asm/FILE_339000_UTF16.dat.s b/asm/FILE_339000_UTF16.dat.s new file mode 100644 index 00000000..16d336a2 --- /dev/null +++ b/asm/FILE_339000_UTF16.dat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x339000, 0x1EA + .balign 512, 255 diff --git a/asm/FILE_339200_area00light.txt.s b/asm/FILE_339200_area00light.txt.s new file mode 100644 index 00000000..483806b2 --- /dev/null +++ b/asm/FILE_339200_area00light.txt.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x339200, 0x822 + .balign 512, 255 diff --git a/asm/FILE_339C00_area01light.txt.s b/asm/FILE_339C00_area01light.txt.s new file mode 100644 index 00000000..79c1ce88 --- /dev/null +++ b/asm/FILE_339C00_area01light.txt.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x339C00, 0x7E8 + .balign 512, 255 diff --git a/asm/FILE_33A400_area02light.txt.s b/asm/FILE_33A400_area02light.txt.s new file mode 100644 index 00000000..9de6f141 --- /dev/null +++ b/asm/FILE_33A400_area02light.txt.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x33A400, 0x842 + .balign 512, 255 diff --git a/asm/FILE_33AE00_battle_win.NSCR.s b/asm/FILE_33AE00_battle_win.NSCR.s new file mode 100644 index 00000000..6be90be0 --- /dev/null +++ b/asm/FILE_33AE00_battle_win.NSCR.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x33AE00, 0x824 + .balign 512, 255 diff --git a/asm/FILE_33B800_btower_canm.resdat.s b/asm/FILE_33B800_btower_canm.resdat.s new file mode 100644 index 00000000..b17d2641 --- /dev/null +++ b/asm/FILE_33B800_btower_canm.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x33B800, 0x34 + .balign 512, 255 diff --git a/asm/FILE_33BA00_btower_celact.cldat.s b/asm/FILE_33BA00_btower_celact.cldat.s new file mode 100644 index 00000000..93b435ba --- /dev/null +++ b/asm/FILE_33BA00_btower_celact.cldat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x33BA00, 0x40 + .balign 512, 255 diff --git a/asm/FILE_33BC00_btower_cell.resdat.s b/asm/FILE_33BC00_btower_cell.resdat.s new file mode 100644 index 00000000..cc8b7a55 --- /dev/null +++ b/asm/FILE_33BC00_btower_cell.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x33BC00, 0x34 + .balign 512, 255 diff --git a/asm/FILE_33BE00_btower_chr.resdat.s b/asm/FILE_33BE00_btower_chr.resdat.s new file mode 100644 index 00000000..0b2584b0 --- /dev/null +++ b/asm/FILE_33BE00_btower_chr.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x33BE00, 0x34 + .balign 512, 255 diff --git a/asm/FILE_33C000_btower_pal.resdat.s b/asm/FILE_33C000_btower_pal.resdat.s new file mode 100644 index 00000000..ae600822 --- /dev/null +++ b/asm/FILE_33C000_btower_pal.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x33C000, 0x34 + .balign 512, 255 diff --git a/asm/FILE_33C200_cell0.NCGR.s b/asm/FILE_33C200_cell0.NCGR.s new file mode 100644 index 00000000..95d21501 --- /dev/null +++ b/asm/FILE_33C200_cell0.NCGR.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x33C200, 0x2030 + .balign 512, 255 diff --git a/asm/FILE_33E400_cell0.NCLR.s b/asm/FILE_33E400_cell0.NCLR.s new file mode 100644 index 00000000..d42a0ffa --- /dev/null +++ b/asm/FILE_33E400_cell0.NCLR.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x33E400, 0x228 + .balign 512, 255 diff --git a/asm/FILE_33E800_clact_default.NANR.s b/asm/FILE_33E800_clact_default.NANR.s new file mode 100644 index 00000000..d29d3e96 --- /dev/null +++ b/asm/FILE_33E800_clact_default.NANR.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x33E800, 0x6F + .balign 512, 255 diff --git a/asm/FILE_33EA00_crystal.nsbmd.s b/asm/FILE_33EA00_crystal.nsbmd.s new file mode 100644 index 00000000..e97ce96a --- /dev/null +++ b/asm/FILE_33EA00_crystal.nsbmd.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x33EA00, 0xD04 + .balign 512, 255 diff --git a/asm/FILE_33F800_demo_climax.narc.s b/asm/FILE_33F800_demo_climax.narc.s new file mode 100644 index 00000000..582a7fab --- /dev/null +++ b/asm/FILE_33F800_demo_climax.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x33F800, 0x7362C + .balign 512, 255 diff --git a/asm/FILE_3787200_contest_bg.narc.s b/asm/FILE_3787200_contest_bg.narc.s new file mode 100644 index 00000000..c1c10ffd --- /dev/null +++ b/asm/FILE_3787200_contest_bg.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3787200, 0x13B44 + .balign 512, 255 diff --git a/asm/FILE_379AE00_contest_obj.narc.s b/asm/FILE_379AE00_contest_obj.narc.s new file mode 100644 index 00000000..88db9e05 --- /dev/null +++ b/asm/FILE_379AE00_contest_obj.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x379AE00, 0x5D24 + .balign 512, 255 diff --git a/asm/FILE_37A0C00_contest_data.narc.s b/asm/FILE_37A0C00_contest_data.narc.s new file mode 100644 index 00000000..f3d08cd2 --- /dev/null +++ b/asm/FILE_37A0C00_contest_data.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x37A0C00, 0x373C + .balign 512, 255 diff --git a/asm/FILE_37A4400_particledata.narc.s b/asm/FILE_37A4400_particledata.narc.s new file mode 100644 index 00000000..00a6f516 --- /dev/null +++ b/asm/FILE_37A4400_particledata.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x37A4400, 0x85FC + .balign 512, 255 diff --git a/asm/FILE_37ACA00_zukan_data.narc.s b/asm/FILE_37ACA00_zukan_data.narc.s new file mode 100644 index 00000000..f72bdccd --- /dev/null +++ b/asm/FILE_37ACA00_zukan_data.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x37ACA00, 0x5818 + .balign 512, 255 diff --git a/asm/FILE_37B2400_wifi_earth.narc.s b/asm/FILE_37B2400_wifi_earth.narc.s new file mode 100644 index 00000000..f99650cc --- /dev/null +++ b/asm/FILE_37B2400_wifi_earth.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x37B2400, 0x25274 + .balign 512, 255 diff --git a/asm/FILE_37D7800_wifi_earth_place.narc.s b/asm/FILE_37D7800_wifi_earth_place.narc.s new file mode 100644 index 00000000..be6cf514 --- /dev/null +++ b/asm/FILE_37D7800_wifi_earth_place.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x37D7800, 0xCC8 + .balign 512, 255 diff --git a/asm/FILE_37D8600_titledemo.narc.s b/asm/FILE_37D8600_titledemo.narc.s new file mode 100644 index 00000000..f4ddf005 --- /dev/null +++ b/asm/FILE_37D8600_titledemo.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x37D8600, 0x37B10 + .balign 512, 255 diff --git a/asm/FILE_3810200_cb_data.narc.s b/asm/FILE_3810200_cb_data.narc.s new file mode 100644 index 00000000..95f495f4 --- /dev/null +++ b/asm/FILE_3810200_cb_data.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3810200, 0xED8C + .balign 512, 255 diff --git a/asm/FILE_381F000_egg_data.narc.s b/asm/FILE_381F000_egg_data.narc.s new file mode 100644 index 00000000..16005f4b --- /dev/null +++ b/asm/FILE_381F000_egg_data.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x381F000, 0x2AFC + .balign 512, 255 diff --git a/asm/FILE_3821C00_egg_demo_particle.narc.s b/asm/FILE_3821C00_egg_demo_particle.narc.s new file mode 100644 index 00000000..766f403b --- /dev/null +++ b/asm/FILE_3821C00_egg_demo_particle.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3821C00, 0x25EC + .balign 512, 255 diff --git a/asm/FILE_3824200_move_model_list.narc.s b/asm/FILE_3824200_move_model_list.narc.s new file mode 100644 index 00000000..e820464d --- /dev/null +++ b/asm/FILE_3824200_move_model_list.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3824200, 0x264 + .balign 512, 255 diff --git a/asm/FILE_3824600_poke_anm.narc.s b/asm/FILE_3824600_poke_anm.narc.s new file mode 100644 index 00000000..bde6ef44 --- /dev/null +++ b/asm/FILE_3824600_poke_anm.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3824600, 0x6344 + .balign 512, 255 diff --git a/asm/FILE_382AA00_tr_ai_seq.narc.s b/asm/FILE_382AA00_tr_ai_seq.narc.s new file mode 100644 index 00000000..85ecaf57 --- /dev/null +++ b/asm/FILE_382AA00_tr_ai_seq.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x382AA00, 0xA5D0 + .balign 512, 255 diff --git a/asm/FILE_3835000_bm_anime.narc.s b/asm/FILE_3835000_bm_anime.narc.s new file mode 100644 index 00000000..bf445ffb --- /dev/null +++ b/asm/FILE_3835000_bm_anime.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3835000, 0x9200 + .balign 512, 255 diff --git a/asm/FILE_383E200_bm_anime_list.narc.s b/asm/FILE_383E200_bm_anime_list.narc.s new file mode 100644 index 00000000..209dfd33 --- /dev/null +++ b/asm/FILE_383E200_bm_anime_list.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x383E200, 0x3AB8 + .balign 512, 255 diff --git a/asm/FILE_3841E00_encdata_ex.narc.s b/asm/FILE_3841E00_encdata_ex.narc.s new file mode 100644 index 00000000..d08d1290 --- /dev/null +++ b/asm/FILE_3841E00_encdata_ex.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3841E00, 0x724 + .balign 512, 255 diff --git a/asm/FILE_3842600_ppark.narc.s b/asm/FILE_3842600_ppark.narc.s new file mode 100644 index 00000000..3db0b2e3 --- /dev/null +++ b/asm/FILE_3842600_ppark.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3842600, 0xBCC + .balign 512, 255 diff --git a/asm/FILE_3843200_ship_demo.narc.s b/asm/FILE_3843200_ship_demo.narc.s new file mode 100644 index 00000000..32b38f1e --- /dev/null +++ b/asm/FILE_3843200_ship_demo.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3843200, 0x17358 + .balign 512, 255 diff --git a/asm/FILE_385A600_tv.narc.s b/asm/FILE_385A600_tv.narc.s new file mode 100644 index 00000000..0d2ffad4 --- /dev/null +++ b/asm/FILE_385A600_tv.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x385A600, 0x380 + .balign 512, 255 diff --git a/asm/FILE_385AA00_mapname.bin.s b/asm/FILE_385AA00_mapname.bin.s new file mode 100644 index 00000000..fb54114e --- /dev/null +++ b/asm/FILE_385AA00_mapname.bin.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x385AA00, 0x22F0 + .balign 512, 255 diff --git a/asm/FILE_385CE00_pokezukan.narc.s b/asm/FILE_385CE00_pokezukan.narc.s new file mode 100644 index 00000000..0918ff54 --- /dev/null +++ b/asm/FILE_385CE00_pokezukan.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x385CE00, 0x418 + .balign 512, 255 diff --git a/asm/FILE_385D400_shinzukan.narc.s b/asm/FILE_385D400_shinzukan.narc.s new file mode 100644 index 00000000..03a18b00 --- /dev/null +++ b/asm/FILE_385D400_shinzukan.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x385D400, 0x16C + .balign 512, 255 diff --git a/asm/FILE_385D600_pokeanm.narc.s b/asm/FILE_385D600_pokeanm.narc.s new file mode 100644 index 00000000..7b3b3333 --- /dev/null +++ b/asm/FILE_385D600_pokeanm.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x385D600, 0x3644 + .balign 512, 255 diff --git a/asm/FILE_3860E00_fld_trade.narc.s b/asm/FILE_3860E00_fld_trade.narc.s new file mode 100644 index 00000000..28a5630a --- /dev/null +++ b/asm/FILE_3860E00_fld_trade.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3860E00, 0x194 + .balign 512, 255 diff --git a/asm/FILE_3861000_shinka_demo_particle.narc.s b/asm/FILE_3861000_shinka_demo_particle.narc.s new file mode 100644 index 00000000..80b46321 --- /dev/null +++ b/asm/FILE_3861000_shinka_demo_particle.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3861000, 0x2494 + .balign 512, 255 diff --git a/asm/FILE_3863600_intro.narc.s b/asm/FILE_3863600_intro.narc.s new file mode 100644 index 00000000..30cb437d --- /dev/null +++ b/asm/FILE_3863600_intro.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3863600, 0x1B38C + .balign 512, 255 diff --git a/asm/FILE_387EA00_intro_tv.narc.s b/asm/FILE_387EA00_intro_tv.narc.s new file mode 100644 index 00000000..ea1a4abe --- /dev/null +++ b/asm/FILE_387EA00_intro_tv.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x387EA00, 0xDFE0 + .balign 512, 255 diff --git a/asm/FILE_388CA00_op_demo.narc.s b/asm/FILE_388CA00_op_demo.narc.s new file mode 100644 index 00000000..e446ca87 --- /dev/null +++ b/asm/FILE_388CA00_op_demo.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x388CA00, 0x97188 + .balign 512, 255 diff --git a/asm/FILE_3923C00_syoujyou.narc.s b/asm/FILE_3923C00_syoujyou.narc.s new file mode 100644 index 00000000..2a2e95a6 --- /dev/null +++ b/asm/FILE_3923C00_syoujyou.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3923C00, 0x64C4 + .balign 512, 255 diff --git a/asm/FILE_392A200_btdpm.narc.s b/asm/FILE_392A200_btdpm.narc.s new file mode 100644 index 00000000..35c54aa9 --- /dev/null +++ b/asm/FILE_392A200_btdpm.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x392A200, 0x595C + .balign 512, 255 diff --git a/asm/FILE_392FC00_btdtr.narc.s b/asm/FILE_392FC00_btdtr.narc.s new file mode 100644 index 00000000..bebc44ee --- /dev/null +++ b/asm/FILE_392FC00_btdtr.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x392FC00, 0x83C0 + .balign 512, 255 diff --git a/asm/FILE_3938000_zukan_enc_diamond.narc.s b/asm/FILE_3938000_zukan_enc_diamond.narc.s new file mode 100644 index 00000000..f54fabcf --- /dev/null +++ b/asm/FILE_3938000_zukan_enc_diamond.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3938000, 0x117E0 + .balign 512, 255 diff --git a/asm/FILE_3949800_zukan_enc_pearl.narc.s b/asm/FILE_3949800_zukan_enc_pearl.narc.s new file mode 100644 index 00000000..e223b2d0 --- /dev/null +++ b/asm/FILE_3949800_zukan_enc_pearl.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3949800, 0x117C8 + .balign 512, 255 diff --git a/asm/FILE_395B000_trial.narc.s b/asm/FILE_395B000_trial.narc.s new file mode 100644 index 00000000..2ee755e2 --- /dev/null +++ b/asm/FILE_395B000_trial.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x395B000, 0xDBE4 + .balign 512, 255 diff --git a/asm/FILE_3968C00_zukan.narc.s b/asm/FILE_3968C00_zukan.narc.s new file mode 100644 index 00000000..428af7f3 --- /dev/null +++ b/asm/FILE_3968C00_zukan.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3968C00, 0x11D1C + .balign 512, 255 diff --git a/asm/FILE_397AA00_utility.bin.s b/asm/FILE_397AA00_utility.bin.s new file mode 100644 index 00000000..4fb3fac0 --- /dev/null +++ b/asm/FILE_397AA00_utility.bin.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x397AA00, 0xDB4C0 + .balign 512, 255 diff --git a/asm/FILE_3B3000_dp_areawindow.NCGR.s b/asm/FILE_3B3000_dp_areawindow.NCGR.s new file mode 100644 index 00000000..8dea4f2d --- /dev/null +++ b/asm/FILE_3B3000_dp_areawindow.NCGR.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3B3000, 0x170 + .balign 512, 255 diff --git a/asm/FILE_3B3200_dp_areawindow.NCLR.s b/asm/FILE_3B3200_dp_areawindow.NCLR.s new file mode 100644 index 00000000..fd3ed204 --- /dev/null +++ b/asm/FILE_3B3200_dp_areawindow.NCLR.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3B3200, 0x228 + .balign 512, 255 diff --git a/asm/FILE_3B3600_dt_test_celact.txt.s b/asm/FILE_3B3600_dt_test_celact.txt.s new file mode 100644 index 00000000..ea4580fc --- /dev/null +++ b/asm/FILE_3B3600_dt_test_celact.txt.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3B3600, 0x36 + .balign 512, 255 diff --git a/asm/FILE_3B3800_dt_test_res_cell.txt.s b/asm/FILE_3B3800_dt_test_res_cell.txt.s new file mode 100644 index 00000000..21597c6c --- /dev/null +++ b/asm/FILE_3B3800_dt_test_res_cell.txt.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3B3800, 0x26 + .balign 512, 255 diff --git a/asm/FILE_3B3A00_dt_test_res_cellanm.txt.s b/asm/FILE_3B3A00_dt_test_res_cellanm.txt.s new file mode 100644 index 00000000..60184524 --- /dev/null +++ b/asm/FILE_3B3A00_dt_test_res_cellanm.txt.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3B3A00, 0x26 + .balign 512, 255 diff --git a/asm/FILE_3B3C00_dt_test_res_char.txt.s b/asm/FILE_3B3C00_dt_test_res_char.txt.s new file mode 100644 index 00000000..75f7de94 --- /dev/null +++ b/asm/FILE_3B3C00_dt_test_res_char.txt.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3B3C00, 0x2B + .balign 512, 255 diff --git a/asm/FILE_3B3E00_dt_test_res_multi.txt.s b/asm/FILE_3B3E00_dt_test_res_multi.txt.s new file mode 100644 index 00000000..40771bc1 --- /dev/null +++ b/asm/FILE_3B3E00_dt_test_res_multi.txt.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3B3E00, 0x10 + .balign 512, 255 diff --git a/asm/FILE_3B4000_dt_test_res_multianm.txt.s b/asm/FILE_3B4000_dt_test_res_multianm.txt.s new file mode 100644 index 00000000..bbb9ce5b --- /dev/null +++ b/asm/FILE_3B4000_dt_test_res_multianm.txt.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3B4000, 0x10 + .balign 512, 255 diff --git a/asm/FILE_3B4200_dt_test_res_pltt.txt.s b/asm/FILE_3B4200_dt_test_res_pltt.txt.s new file mode 100644 index 00000000..2cc62e15 --- /dev/null +++ b/asm/FILE_3B4200_dt_test_res_pltt.txt.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3B4200, 0x2D + .balign 512, 255 diff --git a/asm/FILE_3B4400_dun_sea.nsbtx.s b/asm/FILE_3B4400_dun_sea.nsbtx.s new file mode 100644 index 00000000..09fae4e6 --- /dev/null +++ b/asm/FILE_3B4400_dun_sea.nsbtx.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3B4400, 0x578 + .balign 512, 255 diff --git a/asm/FILE_3B4A00_eoo.dat.s b/asm/FILE_3B4A00_eoo.dat.s new file mode 100644 index 00000000..e1acd422 --- /dev/null +++ b/asm/FILE_3B4A00_eoo.dat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3B4A00, 0x46000 + .balign 512, 255 diff --git a/asm/FILE_3FAA00_exdata.dat.s b/asm/FILE_3FAA00_exdata.dat.s new file mode 100644 index 00000000..915ee755 --- /dev/null +++ b/asm/FILE_3FAA00_exdata.dat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3FAA00, 0x124 + .balign 512, 255 diff --git a/asm/FILE_3FAC00_field_cutin.narc.s b/asm/FILE_3FAC00_field_cutin.narc.s new file mode 100644 index 00000000..f14a2c9b --- /dev/null +++ b/asm/FILE_3FAC00_field_cutin.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3FAC00, 0xD220 + .balign 512, 255 diff --git a/asm/FILE_408000_fld_anime0.bin.s b/asm/FILE_408000_fld_anime0.bin.s new file mode 100644 index 00000000..8f9342ed --- /dev/null +++ b/asm/FILE_408000_fld_anime0.bin.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x408000, 0x48 + .balign 512, 255 diff --git a/asm/FILE_408200_fld_anime1.bin.s b/asm/FILE_408200_fld_anime1.bin.s new file mode 100644 index 00000000..e06ce16d --- /dev/null +++ b/asm/FILE_408200_fld_anime1.bin.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x408200, 0x48 + .balign 512, 255 diff --git a/asm/FILE_408400_fld_anime10.bin.s b/asm/FILE_408400_fld_anime10.bin.s new file mode 100644 index 00000000..48856ecf --- /dev/null +++ b/asm/FILE_408400_fld_anime10.bin.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x408400, 0x48 + .balign 512, 255 diff --git a/asm/FILE_408600_fld_anime2.bin.s b/asm/FILE_408600_fld_anime2.bin.s new file mode 100644 index 00000000..9c96be9f --- /dev/null +++ b/asm/FILE_408600_fld_anime2.bin.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x408600, 0x48 + .balign 512, 255 diff --git a/asm/FILE_408800_fld_anime3.bin.s b/asm/FILE_408800_fld_anime3.bin.s new file mode 100644 index 00000000..ff05c45d --- /dev/null +++ b/asm/FILE_408800_fld_anime3.bin.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x408800, 0x48 + .balign 512, 255 diff --git a/asm/FILE_408A00_fld_anime4.bin.s b/asm/FILE_408A00_fld_anime4.bin.s new file mode 100644 index 00000000..8de311cb --- /dev/null +++ b/asm/FILE_408A00_fld_anime4.bin.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x408A00, 0x48 + .balign 512, 255 diff --git a/asm/FILE_408C00_fld_anime5.bin.s b/asm/FILE_408C00_fld_anime5.bin.s new file mode 100644 index 00000000..2b79d005 --- /dev/null +++ b/asm/FILE_408C00_fld_anime5.bin.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x408C00, 0x48 + .balign 512, 255 diff --git a/asm/FILE_408E00_fld_anime6.bin.s b/asm/FILE_408E00_fld_anime6.bin.s new file mode 100644 index 00000000..d0e21416 --- /dev/null +++ b/asm/FILE_408E00_fld_anime6.bin.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x408E00, 0x48 + .balign 512, 255 diff --git a/asm/FILE_409000_fld_anime7.bin.s b/asm/FILE_409000_fld_anime7.bin.s new file mode 100644 index 00000000..65de7b11 --- /dev/null +++ b/asm/FILE_409000_fld_anime7.bin.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x409000, 0x48 + .balign 512, 255 diff --git a/asm/FILE_409200_fld_anime8.bin.s b/asm/FILE_409200_fld_anime8.bin.s new file mode 100644 index 00000000..16763fc0 --- /dev/null +++ b/asm/FILE_409200_fld_anime8.bin.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x409200, 0x48 + .balign 512, 255 diff --git a/asm/FILE_409400_fld_anime9.bin.s b/asm/FILE_409400_fld_anime9.bin.s new file mode 100644 index 00000000..a9f4a232 --- /dev/null +++ b/asm/FILE_409400_fld_anime9.bin.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x409400, 0x48 + .balign 512, 255 diff --git a/asm/FILE_409600_fs_kanban.nsbca.s b/asm/FILE_409600_fs_kanban.nsbca.s new file mode 100644 index 00000000..6bf0fb8e --- /dev/null +++ b/asm/FILE_409600_fs_kanban.nsbca.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x409600, 0x7F4 + .balign 512, 255 diff --git a/asm/FILE_409E00_ground0.NCGR.s b/asm/FILE_409E00_ground0.NCGR.s new file mode 100644 index 00000000..5ea93acd --- /dev/null +++ b/asm/FILE_409E00_ground0.NCGR.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x409E00, 0x8030 + .balign 512, 255 diff --git a/asm/FILE_412000_ground0.NCLR.s b/asm/FILE_412000_ground0.NCLR.s new file mode 100644 index 00000000..3005a462 --- /dev/null +++ b/asm/FILE_412000_ground0.NCLR.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x412000, 0x228 + .balign 512, 255 diff --git a/asm/FILE_412400_ground0.NSCR.s b/asm/FILE_412400_ground0.NSCR.s new file mode 100644 index 00000000..9b2c5b20 --- /dev/null +++ b/asm/FILE_412400_ground0.NSCR.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x412400, 0x824 + .balign 512, 255 diff --git a/asm/FILE_412E00_kemu_itpconv.dat.s b/asm/FILE_412E00_kemu_itpconv.dat.s new file mode 100644 index 00000000..3828f9a5 --- /dev/null +++ b/asm/FILE_412E00_kemu_itpconv.dat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x412E00, 0x14 + .balign 512, 255 diff --git a/asm/FILE_413000_lake_anim.nsbtx.s b/asm/FILE_413000_lake_anim.nsbtx.s new file mode 100644 index 00000000..7950a6ee --- /dev/null +++ b/asm/FILE_413000_lake_anim.nsbtx.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x413000, 0x1150 + .balign 512, 255 diff --git a/asm/FILE_414200_miniasahamabe.nsbtx.s b/asm/FILE_414200_miniasahamabe.nsbtx.s new file mode 100644 index 00000000..a38928c4 --- /dev/null +++ b/asm/FILE_414200_miniasahamabe.nsbtx.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x414200, 0x1188 + .balign 512, 255 diff --git a/asm/FILE_415400_miniasasea.nsbtx.s b/asm/FILE_415400_miniasasea.nsbtx.s new file mode 100644 index 00000000..66f478a8 --- /dev/null +++ b/asm/FILE_415400_miniasasea.nsbtx.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x415400, 0x578 + .balign 512, 255 diff --git a/asm/FILE_415A00_minihamabe.nsbtx.s b/asm/FILE_415A00_minihamabe.nsbtx.s new file mode 100644 index 00000000..a3ed5509 --- /dev/null +++ b/asm/FILE_415A00_minihamabe.nsbtx.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x415A00, 0x1188 + .balign 512, 255 diff --git a/asm/FILE_416C00_minimum.nsbtx.s b/asm/FILE_416C00_minimum.nsbtx.s new file mode 100644 index 00000000..b8c74dbf --- /dev/null +++ b/asm/FILE_416C00_minimum.nsbtx.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x416C00, 0x578 + .balign 512, 255 diff --git a/asm/FILE_417200_minirhana.nsbtx.s b/asm/FILE_417200_minirhana.nsbtx.s new file mode 100644 index 00000000..fec8e2bc --- /dev/null +++ b/asm/FILE_417200_minirhana.nsbtx.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x417200, 0x2C8 + .balign 512, 255 diff --git a/asm/FILE_417600_namein.narc.s b/asm/FILE_417600_namein.narc.s new file mode 100644 index 00000000..4a18dc46 --- /dev/null +++ b/asm/FILE_417600_namein.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x417600, 0x3F58 + .balign 512, 255 diff --git a/asm/FILE_41B600_nfont.NCGR.s b/asm/FILE_41B600_nfont.NCGR.s new file mode 100644 index 00000000..87741cad --- /dev/null +++ b/asm/FILE_41B600_nfont.NCGR.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x41B600, 0x8030 + .balign 512, 255 diff --git a/asm/FILE_423800_nfont.NCLR.s b/asm/FILE_423800_nfont.NCLR.s new file mode 100644 index 00000000..1f668e48 --- /dev/null +++ b/asm/FILE_423800_nfont.NCLR.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x423800, 0x228 + .balign 512, 255 diff --git a/asm/FILE_423C00_pc.nsbca.s b/asm/FILE_423C00_pc.nsbca.s new file mode 100644 index 00000000..a3fadec8 --- /dev/null +++ b/asm/FILE_423C00_pc.nsbca.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x423C00, 0x18C + .balign 512, 255 diff --git a/asm/FILE_423E00_plist_canm.resdat.s b/asm/FILE_423E00_plist_canm.resdat.s new file mode 100644 index 00000000..3e4631fd --- /dev/null +++ b/asm/FILE_423E00_plist_canm.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x423E00, 0xC4 + .balign 512, 255 diff --git a/asm/FILE_424000_plist_cell.resdat.s b/asm/FILE_424000_plist_cell.resdat.s new file mode 100644 index 00000000..8d73ee6a --- /dev/null +++ b/asm/FILE_424000_plist_cell.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x424000, 0xC4 + .balign 512, 255 diff --git a/asm/FILE_424200_plist_chr.resdat.s b/asm/FILE_424200_plist_chr.resdat.s new file mode 100644 index 00000000..67cb7045 --- /dev/null +++ b/asm/FILE_424200_plist_chr.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x424200, 0x13C + .balign 512, 255 diff --git a/asm/FILE_424400_plist_h.cldat.s b/asm/FILE_424400_plist_h.cldat.s new file mode 100644 index 00000000..2e163ba7 --- /dev/null +++ b/asm/FILE_424400_plist_h.cldat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x424400, 0x1A0 + .balign 512, 255 diff --git a/asm/FILE_424600_plist_pal.resdat.s b/asm/FILE_424600_plist_pal.resdat.s new file mode 100644 index 00000000..794b107c --- /dev/null +++ b/asm/FILE_424600_plist_pal.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x424600, 0x94 + .balign 512, 255 diff --git a/asm/FILE_424800_porucase_canm.resdat.s b/asm/FILE_424800_porucase_canm.resdat.s new file mode 100644 index 00000000..5fb8558e --- /dev/null +++ b/asm/FILE_424800_porucase_canm.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x424800, 0x4C + .balign 512, 255 diff --git a/asm/FILE_424A00_porucase_celact.cldat.s b/asm/FILE_424A00_porucase_celact.cldat.s new file mode 100644 index 00000000..cc8b6f74 --- /dev/null +++ b/asm/FILE_424A00_porucase_celact.cldat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x424A00, 0x60 + .balign 512, 255 diff --git a/asm/FILE_424C00_porucase_cell.resdat.s b/asm/FILE_424C00_porucase_cell.resdat.s new file mode 100644 index 00000000..32c01cc9 --- /dev/null +++ b/asm/FILE_424C00_porucase_cell.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x424C00, 0x4C + .balign 512, 255 diff --git a/asm/FILE_424E00_porucase_chr.resdat.s b/asm/FILE_424E00_porucase_chr.resdat.s new file mode 100644 index 00000000..aa4dd60e --- /dev/null +++ b/asm/FILE_424E00_porucase_chr.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x424E00, 0x4C + .balign 512, 255 diff --git a/asm/FILE_425000_porucase_pal.resdat.s b/asm/FILE_425000_porucase_pal.resdat.s new file mode 100644 index 00000000..f573d330 --- /dev/null +++ b/asm/FILE_425000_porucase_pal.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x425000, 0x34 + .balign 512, 255 diff --git a/asm/FILE_425200_pst_canm.resdat.s b/asm/FILE_425200_pst_canm.resdat.s new file mode 100644 index 00000000..eaff3772 --- /dev/null +++ b/asm/FILE_425200_pst_canm.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x425200, 0x1B4 + .balign 512, 255 diff --git a/asm/FILE_425400_pst_cell.resdat.s b/asm/FILE_425400_pst_cell.resdat.s new file mode 100644 index 00000000..f554a45a --- /dev/null +++ b/asm/FILE_425400_pst_cell.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x425400, 0x1B4 + .balign 512, 255 diff --git a/asm/FILE_425600_pst_chr.resdat.s b/asm/FILE_425600_pst_chr.resdat.s new file mode 100644 index 00000000..a694a18e --- /dev/null +++ b/asm/FILE_425600_pst_chr.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x425600, 0x424 + .balign 512, 255 diff --git a/asm/FILE_425C00_pst_h.cldat.s b/asm/FILE_425C00_pst_h.cldat.s new file mode 100644 index 00000000..5df13ddc --- /dev/null +++ b/asm/FILE_425C00_pst_h.cldat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x425C00, 0x580 + .balign 512, 255 diff --git a/asm/FILE_426200_pst_pal.resdat.s b/asm/FILE_426200_pst_pal.resdat.s new file mode 100644 index 00000000..6f4092ae --- /dev/null +++ b/asm/FILE_426200_pst_pal.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x426200, 0xAC + .balign 512, 255 diff --git a/asm/FILE_426400_shop_canm.resdat.s b/asm/FILE_426400_shop_canm.resdat.s new file mode 100644 index 00000000..4c87b70e --- /dev/null +++ b/asm/FILE_426400_shop_canm.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x426400, 0x64 + .balign 512, 255 diff --git a/asm/FILE_426600_shop_cell.resdat.s b/asm/FILE_426600_shop_cell.resdat.s new file mode 100644 index 00000000..9468b158 --- /dev/null +++ b/asm/FILE_426600_shop_cell.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x426600, 0x64 + .balign 512, 255 diff --git a/asm/FILE_426800_shop_chr.resdat.s b/asm/FILE_426800_shop_chr.resdat.s new file mode 100644 index 00000000..1ebae636 --- /dev/null +++ b/asm/FILE_426800_shop_chr.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x426800, 0x64 + .balign 512, 255 diff --git a/asm/FILE_426A00_shop_h.cldat.s b/asm/FILE_426A00_shop_h.cldat.s new file mode 100644 index 00000000..3b0eebef --- /dev/null +++ b/asm/FILE_426A00_shop_h.cldat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x426A00, 0x80 + .balign 512, 255 diff --git a/asm/FILE_426C00_shop_pal.resdat.s b/asm/FILE_426C00_shop_pal.resdat.s new file mode 100644 index 00000000..5758e1a6 --- /dev/null +++ b/asm/FILE_426C00_shop_pal.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x426C00, 0x4C + .balign 512, 255 diff --git a/asm/FILE_426E00_slot.narc.s b/asm/FILE_426E00_slot.narc.s new file mode 100644 index 00000000..c9b78784 --- /dev/null +++ b/asm/FILE_426E00_slot.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x426E00, 0x15944 + .balign 512, 255 diff --git a/asm/FILE_43C800_smptm_koori.NANR.s b/asm/FILE_43C800_smptm_koori.NANR.s new file mode 100644 index 00000000..5c8c3d3a --- /dev/null +++ b/asm/FILE_43C800_smptm_koori.NANR.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x43C800, 0xA3 + .balign 512, 255 diff --git a/asm/FILE_43CA00_smptm_koori.NCER.s b/asm/FILE_43CA00_smptm_koori.NCER.s new file mode 100644 index 00000000..0dd93c86 --- /dev/null +++ b/asm/FILE_43CA00_smptm_koori.NCER.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x43CA00, 0xD7 + .balign 512, 255 diff --git a/asm/FILE_43CC00_smptm_koori.NCGR.s b/asm/FILE_43CC00_smptm_koori.NCGR.s new file mode 100644 index 00000000..7c3c39c4 --- /dev/null +++ b/asm/FILE_43CC00_smptm_koori.NCGR.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x43CC00, 0xCB0 + .balign 512, 255 diff --git a/asm/FILE_43DA00_smptm_koori.NCLR.s b/asm/FILE_43DA00_smptm_koori.NCLR.s new file mode 100644 index 00000000..60fb05d7 --- /dev/null +++ b/asm/FILE_43DA00_smptm_koori.NCLR.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x43DA00, 0x228 + .balign 512, 255 diff --git a/asm/FILE_43DE00_smptm_nemuri.NANR.s b/asm/FILE_43DE00_smptm_nemuri.NANR.s new file mode 100644 index 00000000..3fd59e27 --- /dev/null +++ b/asm/FILE_43DE00_smptm_nemuri.NANR.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x43DE00, 0x6F + .balign 512, 255 diff --git a/asm/FILE_43E000_smptm_nemuri.NCER.s b/asm/FILE_43E000_smptm_nemuri.NCER.s new file mode 100644 index 00000000..6a733bb4 --- /dev/null +++ b/asm/FILE_43E000_smptm_nemuri.NCER.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x43E000, 0x63 + .balign 512, 255 diff --git a/asm/FILE_43E200_smptm_nemuri.NCGR.s b/asm/FILE_43E200_smptm_nemuri.NCGR.s new file mode 100644 index 00000000..642fd427 --- /dev/null +++ b/asm/FILE_43E200_smptm_nemuri.NCGR.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x43E200, 0x230 + .balign 512, 255 diff --git a/asm/FILE_43E600_smptm_nemuri.NCLR.s b/asm/FILE_43E600_smptm_nemuri.NCLR.s new file mode 100644 index 00000000..178aa359 --- /dev/null +++ b/asm/FILE_43E600_smptm_nemuri.NCLR.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x43E600, 0x228 + .balign 512, 255 diff --git a/asm/FILE_43EA00_t3_fl_b.nsbtx.s b/asm/FILE_43EA00_t3_fl_b.nsbtx.s new file mode 100644 index 00000000..febba0ca --- /dev/null +++ b/asm/FILE_43EA00_t3_fl_b.nsbtx.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x43EA00, 0x250 + .balign 512, 255 diff --git a/asm/FILE_43EE00_t3_fl_p.nsbtx.s b/asm/FILE_43EE00_t3_fl_p.nsbtx.s new file mode 100644 index 00000000..f35a9627 --- /dev/null +++ b/asm/FILE_43EE00_t3_fl_p.nsbtx.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x43EE00, 0x250 + .balign 512, 255 diff --git a/asm/FILE_43F200_t3_fl_r.nsbtx.s b/asm/FILE_43F200_t3_fl_r.nsbtx.s new file mode 100644 index 00000000..d22e3ceb --- /dev/null +++ b/asm/FILE_43F200_t3_fl_r.nsbtx.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x43F200, 0x250 + .balign 512, 255 diff --git a/asm/FILE_43F600_t3_fl_y.nsbtx.s b/asm/FILE_43F600_t3_fl_y.nsbtx.s new file mode 100644 index 00000000..35f002d5 --- /dev/null +++ b/asm/FILE_43F600_t3_fl_y.nsbtx.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x43F600, 0x250 + .balign 512, 255 diff --git a/asm/FILE_43FA00_test.atr.s b/asm/FILE_43FA00_test.atr.s new file mode 100644 index 00000000..3bac3b89 --- /dev/null +++ b/asm/FILE_43FA00_test.atr.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x43FA00, 0x800 + .balign 512, 255 diff --git a/asm/FILE_440200_tmap_block.dat.s b/asm/FILE_440200_tmap_block.dat.s new file mode 100644 index 00000000..98536dbc --- /dev/null +++ b/asm/FILE_440200_tmap_block.dat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x440200, 0x1114 + .balign 512, 255 diff --git a/asm/FILE_441400_tmap_flags.dat.s b/asm/FILE_441400_tmap_flags.dat.s new file mode 100644 index 00000000..601db5ff --- /dev/null +++ b/asm/FILE_441400_tmap_flags.dat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x441400, 0x2DC + .balign 512, 255 diff --git a/asm/FILE_441800_tmapn_canm.resdat.s b/asm/FILE_441800_tmapn_canm.resdat.s new file mode 100644 index 00000000..f5a4904e --- /dev/null +++ b/asm/FILE_441800_tmapn_canm.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x441800, 0x94 + .balign 512, 255 diff --git a/asm/FILE_441A00_tmapn_celact.cldat.s b/asm/FILE_441A00_tmapn_celact.cldat.s new file mode 100644 index 00000000..e3b25824 --- /dev/null +++ b/asm/FILE_441A00_tmapn_celact.cldat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x441A00, 0xC0 + .balign 512, 255 diff --git a/asm/FILE_441C00_tmapn_celact.txt.s b/asm/FILE_441C00_tmapn_celact.txt.s new file mode 100644 index 00000000..390a9c1f --- /dev/null +++ b/asm/FILE_441C00_tmapn_celact.txt.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x441C00, 0x10C + .balign 512, 255 diff --git a/asm/FILE_441E00_tmapn_cell.resdat.s b/asm/FILE_441E00_tmapn_cell.resdat.s new file mode 100644 index 00000000..53cd5d48 --- /dev/null +++ b/asm/FILE_441E00_tmapn_cell.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x441E00, 0x94 + .balign 512, 255 diff --git a/asm/FILE_442000_tmapn_chr.resdat.s b/asm/FILE_442000_tmapn_chr.resdat.s new file mode 100644 index 00000000..94f2cf40 --- /dev/null +++ b/asm/FILE_442000_tmapn_chr.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x442000, 0x94 + .balign 512, 255 diff --git a/asm/FILE_442200_tmapn_pal.resdat.s b/asm/FILE_442200_tmapn_pal.resdat.s new file mode 100644 index 00000000..b5e5d54f --- /dev/null +++ b/asm/FILE_442200_tmapn_pal.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x442200, 0x4C + .balign 512, 255 diff --git a/asm/FILE_442400_tmapn_res_canm.txt.s b/asm/FILE_442400_tmapn_res_canm.txt.s new file mode 100644 index 00000000..497ce204 --- /dev/null +++ b/asm/FILE_442400_tmapn_res_canm.txt.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x442400, 0xAA + .balign 512, 255 diff --git a/asm/FILE_442600_tmapn_res_cell.txt.s b/asm/FILE_442600_tmapn_res_cell.txt.s new file mode 100644 index 00000000..e366791e --- /dev/null +++ b/asm/FILE_442600_tmapn_res_cell.txt.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x442600, 0xBA + .balign 512, 255 diff --git a/asm/FILE_442800_tmapn_res_chr.txt.s b/asm/FILE_442800_tmapn_res_chr.txt.s new file mode 100644 index 00000000..cf0c890b --- /dev/null +++ b/asm/FILE_442800_tmapn_res_chr.txt.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x442800, 0xDC + .balign 512, 255 diff --git a/asm/FILE_442A00_tmapn_res_pal.txt.s b/asm/FILE_442A00_tmapn_res_pal.txt.s new file mode 100644 index 00000000..4ba82de2 --- /dev/null +++ b/asm/FILE_442A00_tmapn_res_pal.txt.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x442A00, 0x95 + .balign 512, 255 diff --git a/asm/FILE_442C00_tradelist.narc.s b/asm/FILE_442C00_tradelist.narc.s new file mode 100644 index 00000000..979b2f70 --- /dev/null +++ b/asm/FILE_442C00_tradelist.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x442C00, 0x2A74 + .balign 512, 255 diff --git a/asm/FILE_445800_trapmark.narc.s b/asm/FILE_445800_trapmark.narc.s new file mode 100644 index 00000000..714ab7c7 --- /dev/null +++ b/asm/FILE_445800_trapmark.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x445800, 0x264 + .balign 512, 255 diff --git a/asm/FILE_445C00_ug_anim.narc.s b/asm/FILE_445C00_ug_anim.narc.s new file mode 100644 index 00000000..bb1cd50d --- /dev/null +++ b/asm/FILE_445C00_ug_anim.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x445C00, 0x5C80 + .balign 512, 255 diff --git a/asm/FILE_44BA00_ug_base_cur.nsbmd.s b/asm/FILE_44BA00_ug_base_cur.nsbmd.s new file mode 100644 index 00000000..b8a7a462 --- /dev/null +++ b/asm/FILE_44BA00_ug_base_cur.nsbmd.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x44BA00, 0x694 + .balign 512, 255 diff --git a/asm/FILE_44C200_ug_boygirl.NCGR.s b/asm/FILE_44C200_ug_boygirl.NCGR.s new file mode 100644 index 00000000..64b547fa --- /dev/null +++ b/asm/FILE_44C200_ug_boygirl.NCGR.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x44C200, 0x1230 + .balign 512, 255 diff --git a/asm/FILE_44D600_ug_boygirl.NCLR.s b/asm/FILE_44D600_ug_boygirl.NCLR.s new file mode 100644 index 00000000..42cb0b77 --- /dev/null +++ b/asm/FILE_44D600_ug_boygirl.NCLR.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x44D600, 0x228 + .balign 512, 255 diff --git a/asm/FILE_44DA00_ug_fossil.narc.s b/asm/FILE_44DA00_ug_fossil.narc.s new file mode 100644 index 00000000..34668152 --- /dev/null +++ b/asm/FILE_44DA00_ug_fossil.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x44DA00, 0x3ED8 + .balign 512, 255 diff --git a/asm/FILE_451A00_ug_hero.NANR.s b/asm/FILE_451A00_ug_hero.NANR.s new file mode 100644 index 00000000..18d614c3 --- /dev/null +++ b/asm/FILE_451A00_ug_hero.NANR.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x451A00, 0xF9 + .balign 512, 255 diff --git a/asm/FILE_451C00_ug_hero.NCER.s b/asm/FILE_451C00_ug_hero.NCER.s new file mode 100644 index 00000000..2e3544bb --- /dev/null +++ b/asm/FILE_451C00_ug_hero.NCER.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x451C00, 0x109 + .balign 512, 255 diff --git a/asm/FILE_451E00_ug_hole.NANR.s b/asm/FILE_451E00_ug_hole.NANR.s new file mode 100644 index 00000000..6d0ffb57 --- /dev/null +++ b/asm/FILE_451E00_ug_hole.NANR.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x451E00, 0xD6 + .balign 512, 255 diff --git a/asm/FILE_452000_ug_hole.NCER.s b/asm/FILE_452000_ug_hole.NCER.s new file mode 100644 index 00000000..9d97706d --- /dev/null +++ b/asm/FILE_452000_ug_hole.NCER.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x452000, 0xA2 + .balign 512, 255 diff --git a/asm/FILE_452200_ug_hole.NCGR.s b/asm/FILE_452200_ug_hole.NCGR.s new file mode 100644 index 00000000..efe2a8f7 --- /dev/null +++ b/asm/FILE_452200_ug_hole.NCGR.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x452200, 0x530 + .balign 512, 255 diff --git a/asm/FILE_452800_ug_parts.narc.s b/asm/FILE_452800_ug_parts.narc.s new file mode 100644 index 00000000..0b7e97b4 --- /dev/null +++ b/asm/FILE_452800_ug_parts.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x452800, 0x2079C + .balign 512, 255 diff --git a/asm/FILE_473000_ug_radar.narc.s b/asm/FILE_473000_ug_radar.narc.s new file mode 100644 index 00000000..021c9214 --- /dev/null +++ b/asm/FILE_473000_ug_radar.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x473000, 0x3868 + .balign 512, 255 diff --git a/asm/FILE_476A00_ug_trap.narc.s b/asm/FILE_476A00_ug_trap.narc.s new file mode 100644 index 00000000..84eb8558 --- /dev/null +++ b/asm/FILE_476A00_ug_trap.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x476A00, 0x1DBAC + .balign 512, 255 diff --git a/asm/FILE_494600_ugeffect_obj_graphic.narc.s b/asm/FILE_494600_ugeffect_obj_graphic.narc.s new file mode 100644 index 00000000..19a9259f --- /dev/null +++ b/asm/FILE_494600_ugeffect_obj_graphic.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x494600, 0x4D68 + .balign 512, 255 diff --git a/asm/FILE_499400_uground_cell.resdat.s b/asm/FILE_499400_uground_cell.resdat.s new file mode 100644 index 00000000..1bcd3095 --- /dev/null +++ b/asm/FILE_499400_uground_cell.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x499400, 0x4C + .balign 512, 255 diff --git a/asm/FILE_499600_uground_cellanm.resdat.s b/asm/FILE_499600_uground_cellanm.resdat.s new file mode 100644 index 00000000..21fbb431 --- /dev/null +++ b/asm/FILE_499600_uground_cellanm.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x499600, 0x4C + .balign 512, 255 diff --git a/asm/FILE_499800_uground_char.resdat.s b/asm/FILE_499800_uground_char.resdat.s new file mode 100644 index 00000000..122f5a92 --- /dev/null +++ b/asm/FILE_499800_uground_char.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x499800, 0x4C + .balign 512, 255 diff --git a/asm/FILE_499A00_uground_char2.resdat.s b/asm/FILE_499A00_uground_char2.resdat.s new file mode 100644 index 00000000..6cd7298d --- /dev/null +++ b/asm/FILE_499A00_uground_char2.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x499A00, 0x4C + .balign 512, 255 diff --git a/asm/FILE_499C00_uground_clact.cldat.s b/asm/FILE_499C00_uground_clact.cldat.s new file mode 100644 index 00000000..79d7f960 --- /dev/null +++ b/asm/FILE_499C00_uground_clact.cldat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x499C00, 0x60 + .balign 512, 255 diff --git a/asm/FILE_499E00_uground_pltt.resdat.s b/asm/FILE_499E00_uground_pltt.resdat.s new file mode 100644 index 00000000..d81f847a --- /dev/null +++ b/asm/FILE_499E00_uground_pltt.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x499E00, 0x34 + .balign 512, 255 diff --git a/asm/FILE_49A000_uground_pltt2.resdat.s b/asm/FILE_49A000_uground_pltt2.resdat.s new file mode 100644 index 00000000..81782bd8 --- /dev/null +++ b/asm/FILE_49A000_uground_pltt2.resdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x49A000, 0x34 + .balign 512, 255 diff --git a/asm/FILE_49A200_underg_radar.narc.s b/asm/FILE_49A200_underg_radar.narc.s new file mode 100644 index 00000000..d184c32c --- /dev/null +++ b/asm/FILE_49A200_underg_radar.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x49A200, 0xA234 + .balign 512, 255 diff --git a/asm/FILE_4A4600_utility.bin.s b/asm/FILE_4A4600_utility.bin.s new file mode 100644 index 00000000..acbbf403 --- /dev/null +++ b/asm/FILE_4A4600_utility.bin.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x4A4600, 0xDB4C0 + .balign 512, 255 diff --git a/asm/FILE_57FC00_weather_sys.narc.s b/asm/FILE_57FC00_weather_sys.narc.s new file mode 100644 index 00000000..40862ee9 --- /dev/null +++ b/asm/FILE_57FC00_weather_sys.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x57FC00, 0xF8A8 + .balign 512, 255 diff --git a/asm/FILE_58F600_wifi.ncgr.s b/asm/FILE_58F600_wifi.ncgr.s new file mode 100644 index 00000000..6ce418e9 --- /dev/null +++ b/asm/FILE_58F600_wifi.ncgr.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x58F600, 0x240 + .balign 512, 255 diff --git a/asm/FILE_58FA00_wifinote.narc.s b/asm/FILE_58FA00_wifinote.narc.s new file mode 100644 index 00000000..e25f6d96 --- /dev/null +++ b/asm/FILE_58FA00_wifinote.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x58FA00, 0x394C + .balign 512, 255 diff --git a/asm/FILE_593400_wifip2pmatch.narc.s b/asm/FILE_593400_wifip2pmatch.narc.s new file mode 100644 index 00000000..0be16531 --- /dev/null +++ b/asm/FILE_593400_wifip2pmatch.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x593400, 0x3E14 + .balign 512, 255 diff --git a/asm/FILE_597400_wm.ncgr.s b/asm/FILE_597400_wm.ncgr.s new file mode 100644 index 00000000..2bc9abdf --- /dev/null +++ b/asm/FILE_597400_wm.ncgr.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x597400, 0x240 + .balign 512, 255 diff --git a/asm/FILE_597800_wm.nclr.s b/asm/FILE_597800_wm.nclr.s new file mode 100644 index 00000000..75830ff4 --- /dev/null +++ b/asm/FILE_597800_wm.nclr.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x597800, 0x228 + .balign 512, 255 diff --git a/asm/FILE_597C00_sound_data.sdat.s b/asm/FILE_597C00_sound_data.sdat.s new file mode 100644 index 00000000..c1134756 --- /dev/null +++ b/asm/FILE_597C00_sound_data.sdat.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x597C00, 0x723560 + .balign 512, 255 diff --git a/asm/FILE_CBB200_msg.narc.s b/asm/FILE_CBB200_msg.narc.s new file mode 100644 index 00000000..8c014c56 --- /dev/null +++ b/asm/FILE_CBB200_msg.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0xCBB200, 0x292010 + .balign 512, 255 diff --git a/asm/FILE_F4D400_scr_msg.narc.s b/asm/FILE_F4D400_scr_msg.narc.s new file mode 100644 index 00000000..0ee7feec --- /dev/null +++ b/asm/FILE_F4D400_scr_msg.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0xF4D400, 0x1A5C + .balign 512, 255 diff --git a/asm/FILE_F4F000_height.narc.s b/asm/FILE_F4F000_height.narc.s new file mode 100644 index 00000000..3d5680c5 --- /dev/null +++ b/asm/FILE_F4F000_height.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0xF4F000, 0x5A44 + .balign 512, 255 diff --git a/asm/FILE_F54C00_height_o.narc.s b/asm/FILE_F54C00_height_o.narc.s new file mode 100644 index 00000000..b3664364 --- /dev/null +++ b/asm/FILE_F54C00_height_o.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0xF54C00, 0x694 + .balign 512, 255 diff --git a/asm/FILE_F55400_otherpoke.narc.s b/asm/FILE_F55400_otherpoke.narc.s new file mode 100644 index 00000000..01f448a2 --- /dev/null +++ b/asm/FILE_F55400_otherpoke.narc.s @@ -0,0 +1,4 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0xF55400, 0xD96EC + .balign 512, 255 diff --git a/asm/arm7_rom.s b/asm/arm7_rom.s index 1a02882d..a18e8565 100644 --- a/asm/arm7_rom.s +++ b/asm/arm7_rom.s @@ -1,6 +1,145 @@ /* arm7_rom.s TODO: Disassemble */ + .include "asm/macros.inc" + .global ARM7AutoLoad .section .text - .global Entry_ARM7 + arm_func_start Entry_ARM7 + Entry_ARM7: - .incbin "baserom.nds", 0x30D000, 0x2931C + mov ip, #67108864 ; 0x4000000 + str ip, [ip, #520] ; 0x208 + ldr r1, _23800cc + mov r0, #58720256 ; 0x3800000 + cmp r0, r1 + movpl r1, r0 + ldr r2, _23800d0 + mov r0, #0 +_02380020: + cmp r1, r2 + stmltia r1!, {r0} + blt _02380020 + mov r0, #19 + msr CPSR_c, r0 + ldr sp, _23800d4 + mov r0, #18 + msr CPSR_c, r0 + ldr r0, _23800d8 + mov sp, r0 + ldr r1, _23800dc + sub r1, r0, r1 + mov r0, #31 + msr CPSR_fsxc, r0 + sub sp, r1, #4 + ldr r0, _23800e0 + ldr r1, _23800e4 + add r2, r1, #352 ; 0x160 +_02380068: + ldr r3, [r0], #4 + str r3, [r1], #4 + cmp r1, r2 + bmi _02380068 + ldr r0, _23800e8 + add r2, r1, #32 +_02380080: + ldr r3, [r0], #4 + str r3, [r1], #4 + cmp r1, r2 + bmi _02380080 + bl FUN_2380100 + ldr r0, _23800ec + ldr r1, [r0, #12] + ldr r2, [r0, #16] + mov r0, #0 +_023800a4: + cmp r1, r2 + strcc r0, [r1], #4 + bcc _023800a4 + bl FUN_238015C + ldr r1, _23800f0 + ldr r0, _23800f4 + str r0, [r1] + ldr r1, _23800f8 + ldr lr, _23800fc + bx r1 +_23800cc: .word UNK_23801B0 +_23800d0: .word 0x0380ff00 +_23800d4: .word 0x0380ffc0 +_23800d8: .word 0x0380ff80 +_23800dc: .word 0x00000400 +_23800e0: .word 0x023fe940 +_23800e4: .word 0x027ffa80 +_23800e8: .word 0x023fe904 +_23800ec: .word _2380198 +_23800f0: .word 0x0380fffc +_23800f4: .word 0x037f853c +_23800f8: .word 0x037f8468 +_23800fc: .word 0xffff0000 + arm_func_end Entry_ARM7 + + arm_func_start FUN_2380100 +FUN_2380100: + ldr r0, _2380154 + ldr r1, [r0] + ldr r2, [r0, #4] + ldr r3, [r0, #8] +_02380110: + cmp r1, r2 + beq _02380150 + ldr r4, [r1], #4 + ldr r5, [r1], #4 + add r6, r4, r5 +_02380124: + cmp r4, r6 + ldrmi r7, [r3], #4 + strmi r7, [r4], #4 + bmi _02380124 + ldr r5, [r1], #4 + add r6, r4, r5 + mov r7, #0 +_02380140: + cmp r4, r6 + strcc r7, [r4], #4 + bcc _02380140 + beq _02380110 +_02380150: + b ARM7AutoLoad +_2380154: .word _2380198 +ARM7AutoLoad: + bx lr + arm_func_end FUN_2380100 + + arm_func_start FUN_238015C +FUN_238015C: + mov r0, #1 + mov r1, #0 + ldr r2, _2380194 + sub r3, r2, #4194304 ; 0x400000 +_0238016c: + strh r1, [r2] + ldrh ip, [r3] + cmp r1, ip + movne r0, #2 + bne _0238018c + add r1, r1, #1 + cmp r1, #2 + bne _0238016c +_0238018c: + strh r0, [r2] + bx lr +_2380194: .word 0x027ffffa +_2380198: + .word UNK_23A92F8 + .word UNK_23A92FC + .word UNK_23801B0 + .word UNK_23801B0 + .word UNK_23801B0 + .word 0x00000000 + arm_func_end FUN_238015C + +UNK_23801B0: + .incbin "baserom.nds", 0x30D1B0, 0x29148 + +UNK_23A92F8: + .incbin "baserom.nds", 0x3362F8, 0x24 + +UNK_23A92FC: diff --git a/asm/arm9overlay.s b/asm/arm9overlay.s new file mode 100644 index 00000000..70356c52 --- /dev/null +++ b/asm/arm9overlay.s @@ -0,0 +1,5 @@ + .text + + .global ARM9Overlay +ARM9Overlay: + .incbin "baserom.nds", 0x10B800, 0xAE0 diff --git a/asm/entry.s b/asm/entry.s index daa3b774..b0f1c340 100644 --- a/asm/entry.s +++ b/asm/entry.s @@ -189,9 +189,10 @@ _02000A50: blt _02000A50 b _02000A0C _02000A6C: - b _2000A74 + b ARM9AutoLoad .pool -_2000A74: + .global ARM9AutoLoad +ARM9AutoLoad: bx lr arm_func_end do_autoload diff --git a/asm/fat.s b/asm/fat.s new file mode 100644 index 00000000..7188a59a --- /dev/null +++ b/asm/fat.s @@ -0,0 +1,359 @@ + .text + .global FileAllocationTable +FileAllocationTable: + .word 0x0010C400, 0x0010C420 + .word 0x0010C600, 0x0010C620 + .word 0x0010C800, 0x0010C820 + .word 0x0010CA00, 0x0010CA20 + .word 0x0010CC00, 0x001452E0 + .word 0x00145400, 0x0016B5A0 + .word 0x0016B600, 0x00184380 + .word 0x00184400, 0x001876E0 + .word 0x00187800, 0x001A2F60 + .word 0x001A3000, 0x001AD1A0 + .word 0x001AD200, 0x001AD220 + .word 0x001AD400, 0x001DFDE0 + .word 0x001DFE00, 0x001F9060 + .word 0x001F9200, 0x00227DE0 + .word 0x00227E00, 0x00237320 + .word 0x00237400, 0x0023BA80 + .word 0x0023BC00, 0x00264100 + .word 0x00264200, 0x0026B080 + .word 0x0026B200, 0x00282EE0 + .word 0x00283000, 0x00283100 + .word 0x00283200, 0x00285600 + .word 0x00285600, 0x00285BC0 + .word 0x00285C00, 0x00286B00 + .word 0x00286C00, 0x00288500 + .word 0x00288600, 0x00288FA0 + .word 0x00289000, 0x00289560 + .word 0x00289600, 0x00289E00 + .word 0x00289E00, 0x0028A9A0 + .word 0x0028AA00, 0x0028C180 + .word 0x0028C200, 0x0028CB00 + .word 0x0028CC00, 0x0028D200 + .word 0x0028D200, 0x0028D800 + .word 0x0028D800, 0x0028DCA0 + .word 0x0028DE00, 0x0028E120 + .word 0x0028E200, 0x0028E6C0 + .word 0x0028E800, 0x0028F1A0 + .word 0x0028F200, 0x0028FEC0 + .word 0x00290000, 0x00290560 + .word 0x00290600, 0x00291140 + .word 0x00291200, 0x00291EC0 + .word 0x00292000, 0x00292C60 + .word 0x00292E00, 0x00293F40 + .word 0x00294000, 0x00294900 + .word 0x00294A00, 0x002953C0 + .word 0x00295400, 0x002958A0 + .word 0x00295A00, 0x00296340 + .word 0x00296400, 0x00296720 + .word 0x00296800, 0x002974A0 + .word 0x00297600, 0x00297EA0 + .word 0x00298000, 0x00298600 + .word 0x00298600, 0x00298920 + .word 0x00298A00, 0x002999C0 + .word 0x00299A00, 0x00299E00 + .word 0x00299E00, 0x0029C280 + .word 0x0029C400, 0x0029E780 + .word 0x0029E800, 0x002A1840 + .word 0x002A1A00, 0x002A61A0 + .word 0x002A6200, 0x002A8740 + .word 0x002A8800, 0x002A9DA0 + .word 0x002A9E00, 0x002ACA20 + .word 0x002ACC00, 0x002AD900 + .word 0x002ADA00, 0x002AEA80 + .word 0x002AEC00, 0x002B29E0 + .word 0x002B2A00, 0x002B74C0 + .word 0x002B7600, 0x002B9240 + .word 0x002B9400, 0x002BC400 + .word 0x002BC400, 0x002BEA60 + .word 0x002BEC00, 0x002C1040 + .word 0x002C1200, 0x002C2800 + .word 0x002C2800, 0x002C4BA0 + .word 0x002C4C00, 0x002C5A20 + .word 0x002C5C00, 0x002C9AC0 + .word 0x002C9C00, 0x002C9C20 + .word 0x002C9E00, 0x002CE8E0 + .word 0x002CEA00, 0x002CFC20 + .word 0x002CFE00, 0x002D5BE0 + .word 0x002D5C00, 0x002D7A20 + .word 0x002D7C00, 0x002D97E0 + .word 0x002D9800, 0x002D9C60 + .word 0x002D9E00, 0x002DF0C0 + .word 0x002DF200, 0x002E9920 + .word 0x002E9A00, 0x002EEF80 + .word 0x002EF000, 0x002F1540 + .word 0x002F1600, 0x002FF8A0 + .word 0x002FFA00, 0x00303320 + .word 0x00303400, 0x0030C500 + .word 0x0030C600, 0x0030CE20 + .word 0x03810200, 0x0381EF8C + .word 0x037B2400, 0x037D7674 + .word 0x037D7800, 0x037D84C8 + .word 0x037ACA00, 0x037B2218 + .word 0x03938000, 0x039497E0 + .word 0x03949800, 0x0395AFC8 + .word 0x03835000, 0x0383E200 + .word 0x0383E200, 0x03841CB8 + .word 0x03841E00, 0x03842524 + .word 0x03842600, 0x038431CC + .word 0x03843200, 0x0385A558 + .word 0x0385A600, 0x0385A980 + .word 0x0392A200, 0x0392FB5C + .word 0x0392FC00, 0x03937FC0 + .word 0x01C35400, 0x01C3A304 + .word 0x01C3A400, 0x01C4C6A8 + .word 0x01C4C800, 0x01CE8C7C + .word 0x01CE8E00, 0x01D0905C + .word 0x01D09200, 0x01D0E380 + .word 0x01D4F800, 0x01D539FC + .word 0x01D53A00, 0x01D60138 + .word 0x01D60200, 0x01D61B10 + .word 0x0382AA00, 0x03834FD0 + .word 0x037A0C00, 0x037A433C + .word 0x03787200, 0x0379AD44 + .word 0x0379AE00, 0x037A0B24 + .word 0x00339200, 0x00339A22 + .word 0x00339C00, 0x0033A3E8 + .word 0x0033A400, 0x0033AC42 + .word 0x0033AE00, 0x0033B624 + .word 0x0033B800, 0x0033B834 + .word 0x0033BA00, 0x0033BA40 + .word 0x0033BC00, 0x0033BC34 + .word 0x0033BE00, 0x0033BE34 + .word 0x0033C000, 0x0033C034 + .word 0x0033C200, 0x0033E230 + .word 0x0033E400, 0x0033E628 + .word 0x0033E800, 0x0033E86F + .word 0x0033EA00, 0x0033F704 + .word 0x0033F800, 0x003B2E2C + .word 0x003B3000, 0x003B3170 + .word 0x003B3200, 0x003B3428 + .word 0x003B3600, 0x003B3636 + .word 0x003B3800, 0x003B3826 + .word 0x003B3A00, 0x003B3A26 + .word 0x003B3C00, 0x003B3C2B + .word 0x003B3E00, 0x003B3E10 + .word 0x003B4000, 0x003B4010 + .word 0x003B4200, 0x003B422D + .word 0x003B4400, 0x003B4978 + .word 0x003B4A00, 0x003FAA00 + .word 0x003FAA00, 0x003FAB24 + .word 0x003FAC00, 0x00407E20 + .word 0x00408000, 0x00408048 + .word 0x00408200, 0x00408248 + .word 0x00408400, 0x00408448 + .word 0x00408600, 0x00408648 + .word 0x00408800, 0x00408848 + .word 0x00408A00, 0x00408A48 + .word 0x00408C00, 0x00408C48 + .word 0x00408E00, 0x00408E48 + .word 0x00409000, 0x00409048 + .word 0x00409200, 0x00409248 + .word 0x00409400, 0x00409448 + .word 0x00409600, 0x00409DF4 + .word 0x00409E00, 0x00411E30 + .word 0x00412000, 0x00412228 + .word 0x00412400, 0x00412C24 + .word 0x00412E00, 0x00412E14 + .word 0x00413000, 0x00414150 + .word 0x00414200, 0x00415388 + .word 0x00415400, 0x00415978 + .word 0x00415A00, 0x00416B88 + .word 0x00416C00, 0x00417178 + .word 0x00417200, 0x004174C8 + .word 0x00417600, 0x0041B558 + .word 0x0041B600, 0x00423630 + .word 0x00423800, 0x00423A28 + .word 0x00423C00, 0x00423D8C + .word 0x00423E00, 0x00423EC4 + .word 0x00424000, 0x004240C4 + .word 0x00424200, 0x0042433C + .word 0x00424400, 0x004245A0 + .word 0x00424600, 0x00424694 + .word 0x00424800, 0x0042484C + .word 0x00424A00, 0x00424A60 + .word 0x00424C00, 0x00424C4C + .word 0x00424E00, 0x00424E4C + .word 0x00425000, 0x00425034 + .word 0x00425200, 0x004253B4 + .word 0x00425400, 0x004255B4 + .word 0x00425600, 0x00425A24 + .word 0x00425C00, 0x00426180 + .word 0x00426200, 0x004262AC + .word 0x00426400, 0x00426464 + .word 0x00426600, 0x00426664 + .word 0x00426800, 0x00426864 + .word 0x00426A00, 0x00426A80 + .word 0x00426C00, 0x00426C4C + .word 0x00426E00, 0x0043C744 + .word 0x0043C800, 0x0043C8A3 + .word 0x0043CA00, 0x0043CAD7 + .word 0x0043CC00, 0x0043D8B0 + .word 0x0043DA00, 0x0043DC28 + .word 0x0043DE00, 0x0043DE6F + .word 0x0043E000, 0x0043E063 + .word 0x0043E200, 0x0043E430 + .word 0x0043E600, 0x0043E828 + .word 0x0043EA00, 0x0043EC50 + .word 0x0043EE00, 0x0043F050 + .word 0x0043F200, 0x0043F450 + .word 0x0043F600, 0x0043F850 + .word 0x0043FA00, 0x00440200 + .word 0x00440200, 0x00441314 + .word 0x00441400, 0x004416DC + .word 0x00441800, 0x00441894 + .word 0x00441A00, 0x00441AC0 + .word 0x00441C00, 0x00441D0C + .word 0x00441E00, 0x00441E94 + .word 0x00442000, 0x00442094 + .word 0x00442200, 0x0044224C + .word 0x00442400, 0x004424AA + .word 0x00442600, 0x004426BA + .word 0x00442800, 0x004428DC + .word 0x00442A00, 0x00442A95 + .word 0x00442C00, 0x00445674 + .word 0x00445800, 0x00445A64 + .word 0x00445C00, 0x0044B880 + .word 0x0044BA00, 0x0044C094 + .word 0x0044C200, 0x0044D430 + .word 0x0044D600, 0x0044D828 + .word 0x0044DA00, 0x004518D8 + .word 0x00451A00, 0x00451AF9 + .word 0x00451C00, 0x00451D09 + .word 0x00451E00, 0x00451ED6 + .word 0x00452000, 0x004520A2 + .word 0x00452200, 0x00452730 + .word 0x00452800, 0x00472F9C + .word 0x00473000, 0x00476868 + .word 0x00476A00, 0x004945AC + .word 0x00494600, 0x00499368 + .word 0x00499400, 0x0049944C + .word 0x00499600, 0x0049964C + .word 0x00499800, 0x0049984C + .word 0x00499A00, 0x00499A4C + .word 0x00499C00, 0x00499C60 + .word 0x00499E00, 0x00499E34 + .word 0x0049A000, 0x0049A034 + .word 0x0049A200, 0x004A4434 + .word 0x00339000, 0x003391EA + .word 0x004A4600, 0x0057FAC0 + .word 0x0057FC00, 0x0058F4A8 + .word 0x0058F600, 0x0058F840 + .word 0x0058FA00, 0x0059334C + .word 0x00593400, 0x00597214 + .word 0x00597400, 0x00597640 + .word 0x00597800, 0x00597A28 + .word 0x02242200, 0x0225E098 + .word 0x02119C00, 0x0224205C + .word 0x00597C00, 0x00CBB160 + .word 0x0381F000, 0x03821AFC + .word 0x03821C00, 0x038241EC + .word 0x03863600, 0x0387E98C + .word 0x0387EA00, 0x0388C9E0 + .word 0x03861000, 0x03863494 + .word 0x03923C00, 0x0392A0C4 + .word 0x0388CA00, 0x03923B88 + .word 0x037D8600, 0x03810110 + .word 0x0397AA00, 0x03A55EC0 + .word 0x02715000, 0x027153E4 + .word 0x02715400, 0x02716674 + .word 0x02716800, 0x0283BCB4 + .word 0x0283BE00, 0x0296EB50 + .word 0x0296EC00, 0x0296F0D8 + .word 0x0253C200, 0x027107CC + .word 0x02710800, 0x02711F24 + .word 0x02515600, 0x02528B04 + .word 0x02528C00, 0x0253C104 + .word 0x024F3200, 0x025154F4 + .word 0x0296F200, 0x0378712C + .word 0x02712000, 0x02714E18 + .word 0x0385AA00, 0x0385CCF0 + .word 0x03824200, 0x03824464 + .word 0x03860E00, 0x03860F94 + .word 0x01D70800, 0x01DA61D8 + .word 0x01DA6200, 0x01DBFE74 + .word 0x01DC0000, 0x01DDBB20 + .word 0x01DDBC00, 0x01DDFDF8 + .word 0x01DDFE00, 0x01DE00AC + .word 0x01DE0200, 0x01DE7D18 + .word 0x01DE7E00, 0x01DE841C + .word 0x01DE8600, 0x01DE889C + .word 0x01DE8A00, 0x01E3A09C + .word 0x01E3A200, 0x01E5C724 + .word 0x01E5C800, 0x01E5F17C + .word 0x01E5F200, 0x01E69AFC + .word 0x01E69C00, 0x01E73308 + .word 0x01E73400, 0x01E73764 + .word 0x01E73800, 0x01E94658 + .word 0x01E94800, 0x01E94DA4 + .word 0x01E94E00, 0x01E9CC14 + .word 0x01E9CE00, 0x01EDB430 + .word 0x01EDB600, 0x01EF5730 + .word 0x01EF5800, 0x01EFA370 + .word 0x01EFA400, 0x01EFB4B8 + .word 0x01EFB600, 0x01F02EC4 + .word 0x01F03000, 0x01F2FE70 + .word 0x01F30000, 0x01F5C2F4 + .word 0x01F5C400, 0x01F5D924 + .word 0x01F5DA00, 0x01F645BC + .word 0x01F64600, 0x01F6E2AC + .word 0x01F6E400, 0x01F71564 + .word 0x01F71600, 0x01F7FBC4 + .word 0x01F7FC00, 0x01F865E4 + .word 0x01F86600, 0x01F87AAC + .word 0x01F87C00, 0x01F89E6C + .word 0x01F8A000, 0x01FA90B0 + .word 0x01FA9200, 0x01FAA6C8 + .word 0x01FAA800, 0x01FB01C4 + .word 0x01FB0200, 0x01FB2940 + .word 0x01FB2A00, 0x01FC7910 + .word 0x01FC7A00, 0x01FC8398 + .word 0x01FC8400, 0x01FFFFE0 + .word 0x02000000, 0x02001210 + .word 0x02001400, 0x02004334 + .word 0x02004400, 0x0200CCE4 + .word 0x0200CE00, 0x020184D8 + .word 0x02018600, 0x0201D22C + .word 0x0201D400, 0x0207DCB0 + .word 0x0207DE00, 0x0207E334 + .word 0x00CBB200, 0x00F4D210 + .word 0x00F4D400, 0x00F4EE5C + .word 0x037A4400, 0x037AC9FC + .word 0x03824600, 0x0382A944 + .word 0x0385CE00, 0x0385D218 + .word 0x0385D400, 0x0385D56C + .word 0x0207E400, 0x0210B4F0 + .word 0x01C1B000, 0x01C215F8 + .word 0x01C21600, 0x01C22314 + .word 0x01C14A00, 0x01C1AFF8 + .word 0x01C22400, 0x01C227EA + .word 0x01C22800, 0x01C27140 + .word 0x0385D600, 0x03860C44 + .word 0x0210B600, 0x02119AEC + .word 0x00F4F000, 0x00F54A44 + .word 0x00F54C00, 0x00F55294 + .word 0x00F55400, 0x0102EAEC + .word 0x0102EC00, 0x0102EE2C + .word 0x0102F000, 0x0102F22C + .word 0x0102F400, 0x0102F62C + .word 0x0102F800, 0x01B6B274 + .word 0x01C27200, 0x01C2CF2C + .word 0x01C2D000, 0x01C32594 + .word 0x01B6B400, 0x01B78074 + .word 0x01B78200, 0x01C14844 + .word 0x01C32600, 0x01C34B84 + .word 0x01C34C00, 0x01C352E0 + .word 0x01D6DA00, 0x01D7065C + .word 0x0395B000, 0x03968BE4 + .word 0x03968C00, 0x0397A91C + .word 0x01D0E400, 0x01D4C44C + .word 0x01D4C600, 0x01D4F624 + .word 0x01D61C00, 0x01D630F4 + .word 0x01D63200, 0x01D64450 + .word 0x01D64600, 0x01D6C734 + .word 0x01D6C800, 0x01D6D980 + .word 0x0225E200, 0x022ACA44 + .word 0x022ACC00, 0x024F2410 + .word 0x024F2600, 0x024F31C8 diff --git a/asm/filenametable.s b/asm/filenametable.s index 4e793e76..c5699171 100644 --- a/asm/filenametable.s +++ b/asm/filenametable.s @@ -1,5 +1,1160 @@ - .section .text - + .section .text .global FileNameTable FileNameTable: - .incbin "baserom.nds", 0x336400, 0x3cc9c00 ; 0x157F + .word 0x00000228 ; offset + .short 0x0057 ; first file + .short 0x0045 ; dir count + .word 0x000002CD ; offset + .short 0x0057 ; first file + .short 0xF000 ; parent id + .word 0x000002F5 ; offset + .short 0x0057 ; first file + .short 0xF001 ; parent id + .word 0x000002FD ; offset + .short 0x0057 ; first file + .short 0xF002 ; parent id + .word 0x0000030B ; offset + .short 0x0058 ; first file + .short 0xF001 ; parent id + .word 0x00000332 ; offset + .short 0x005A ; first file + .short 0xF001 ; parent id + .word 0x0000033E ; offset + .short 0x005A ; first file + .short 0xF005 ; parent id + .word 0x0000037B ; offset + .short 0x005D ; first file + .short 0xF000 ; parent id + .word 0x000003CF ; offset + .short 0x0063 ; first file + .short 0xF000 ; parent id + .word 0x000003F4 ; offset + .short 0x0063 ; first file + .short 0xF008 ; parent id + .word 0x0000040B ; offset + .short 0x0065 ; first file + .short 0xF008 ; parent id + .word 0x00000458 ; offset + .short 0x006A ; first file + .short 0xF008 ; parent id + .word 0x00000480 ; offset + .short 0x006D ; first file + .short 0xF008 ; parent id + .word 0x00000490 ; offset + .short 0x006E ; first file + .short 0xF000 ; parent id + .word 0x000004A2 ; offset + .short 0x006E ; first file + .short 0xF00D ; parent id + .word 0x000004B5 ; offset + .short 0x006F ; first file + .short 0xF00D ; parent id + .word 0x000004D7 ; offset + .short 0x0071 ; first file + .short 0xF000 ; parent id + .word 0x00000D2E ; offset + .short 0x00F4 ; first file + .short 0xF010 ; parent id + .word 0x00000D47 ; offset + .short 0x00F6 ; first file + .short 0xF010 ; parent id + .word 0x00000D58 ; offset + .short 0x00F7 ; first file + .short 0xF000 ; parent id + .word 0x00000D83 ; offset + .short 0x00F7 ; first file + .short 0xF013 ; parent id + .word 0x00000D8B ; offset + .short 0x00F7 ; first file + .short 0xF014 ; parent id + .word 0x00000DA5 ; offset + .short 0x00F8 ; first file + .short 0xF015 ; parent id + .word 0x00000DBD ; offset + .short 0x00F9 ; first file + .short 0xF013 ; parent id + .word 0x00000DD7 ; offset + .short 0x00FB ; first file + .short 0xF013 ; parent id + .word 0x00000DDF ; offset + .short 0x00FB ; first file + .short 0xF018 ; parent id + .word 0x00000DEB ; offset + .short 0x00FB ; first file + .short 0xF019 ; parent id + .word 0x00000E06 ; offset + .short 0x00FC ; first file + .short 0xF013 ; parent id + .word 0x00000E15 ; offset + .short 0x00FD ; first file + .short 0xF013 ; parent id + .word 0x00000E32 ; offset + .short 0x00FF ; first file + .short 0xF000 ; parent id + .word 0x00000E3F ; offset + .short 0x0100 ; first file + .short 0xF000 ; parent id + .word 0x00000EB9 ; offset + .short 0x0100 ; first file + .short 0xF01E ; parent id + .word 0x00000EFD ; offset + .short 0x0101 ; first file + .short 0xF01F ; parent id + .word 0x00000F21 ; offset + .short 0x0103 ; first file + .short 0xF01F ; parent id + .word 0x00000F33 ; offset + .short 0x0104 ; first file + .short 0xF01F ; parent id + .word 0x00000F49 ; offset + .short 0x0105 ; first file + .short 0xF01E ; parent id + .word 0x00000F72 ; offset + .short 0x0107 ; first file + .short 0xF01E ; parent id + .word 0x00000F93 ; offset + .short 0x0109 ; first file + .short 0xF01E ; parent id + .word 0x00000FAC ; offset + .short 0x010A ; first file + .short 0xF01E ; parent id + .word 0x00000FC4 ; offset + .short 0x010B ; first file + .short 0xF01E ; parent id + .word 0x00000FD5 ; offset + .short 0x010C ; first file + .short 0xF01E ; parent id + .word 0x00000FE2 ; offset + .short 0x010D ; first file + .short 0xF01E ; parent id + .word 0x00000FF8 ; offset + .short 0x010E ; first file + .short 0xF01E ; parent id + .word 0x00001008 ; offset + .short 0x010F ; first file + .short 0xF01E ; parent id + .word 0x0000101E ; offset + .short 0x0110 ; first file + .short 0xF000 ; parent id + .word 0x00001285 ; offset + .short 0x013A ; first file + .short 0xF000 ; parent id + .word 0x00001291 ; offset + .short 0x013A ; first file + .short 0xF02D ; parent id + .word 0x000012BF ; offset + .short 0x013D ; first file + .short 0xF000 ; parent id + .word 0x000012D4 ; offset + .short 0x013E ; first file + .short 0xF02F ; parent id + .word 0x000012E2 ; offset + .short 0x013F ; first file + .short 0xF000 ; parent id + .word 0x000012F5 ; offset + .short 0x0140 ; first file + .short 0xF000 ; parent id + .word 0x00001304 ; offset + .short 0x0141 ; first file + .short 0xF000 ; parent id + .word 0x00001378 ; offset + .short 0x0143 ; first file + .short 0xF033 ; parent id + .word 0x00001388 ; offset + .short 0x0144 ; first file + .short 0xF033 ; parent id + .word 0x000013C1 ; offset + .short 0x0149 ; first file + .short 0xF033 ; parent id + .word 0x000013CF ; offset + .short 0x014A ; first file + .short 0xF033 ; parent id + .word 0x000013DE ; offset + .short 0x014B ; first file + .short 0xF033 ; parent id + .word 0x0000144A ; offset + .short 0x0152 ; first file + .short 0xF033 ; parent id + .word 0x00001463 ; offset + .short 0x0154 ; first file + .short 0xF033 ; parent id + .word 0x0000147C ; offset + .short 0x0156 ; first file + .short 0xF033 ; parent id + .word 0x00001496 ; offset + .short 0x0158 ; first file + .short 0xF033 ; parent id + .word 0x000014A5 ; offset + .short 0x0159 ; first file + .short 0xF000 ; parent id + .word 0x000014AC ; offset + .short 0x0159 ; first file + .short 0xF03D ; parent id + .word 0x000014BD ; offset + .short 0x0159 ; first file + .short 0xF03E ; parent id + .word 0x000014C9 ; offset + .short 0x015A ; first file + .short 0xF03E ; parent id + .word 0x000014D5 ; offset + .short 0x015B ; first file + .short 0xF000 ; parent id + .word 0x0000150F ; offset + .short 0x015D ; first file + .short 0xF041 ; parent id + .word 0x00001543 ; offset + .short 0x0161 ; first file + .short 0xF041 ; parent id + .word 0x0000156A ; offset + .short 0x0163 ; first file + .short 0xF041 ; parent id + + ; Directory: / + .byte 11 | 0x80 + .ascii "application" + .byte 0x01, 0xF0 ; dir ID + .byte 3 | 0x80 + .ascii "arc" + .byte 0x07, 0xF0 ; dir ID + .byte 6 | 0x80 + .ascii "battle" + .byte 0x08, 0xF0 ; dir ID + .byte 7 | 0x80 + .ascii "contest" + .byte 0x0D, 0xF0 ; dir ID + .byte 4 | 0x80 + .ascii "data" + .byte 0x10, 0xF0 ; dir ID + .byte 4 | 0x80 + .ascii "demo" + .byte 0x13, 0xF0 ; dir ID + .byte 3 | 0x80 + .ascii "dwc" + .byte 0x1D, 0xF0 ; dir ID + .byte 9 | 0x80 + .ascii "fielddata" + .byte 0x1E, 0xF0 ; dir ID + .byte 7 | 0x80 + .ascii "graphic" + .byte 0x2C, 0xF0 ; dir ID + .byte 8 | 0x80 + .ascii "itemtool" + .byte 0x2D, 0xF0 ; dir ID + .byte 7 | 0x80 + .ascii "msgdata" + .byte 0x2F, 0xF0 ; dir ID + .byte 12 | 0x80 + .ascii "particledata" + .byte 0x31, 0xF0 ; dir ID + .byte 9 | 0x80 + .ascii "pokeanime" + .byte 0x32, 0xF0 ; dir ID + .byte 8 | 0x80 + .ascii "poketool" + .byte 0x33, 0xF0 ; dir ID + .byte 8 | 0x80 + .ascii "resource" + .byte 0x3D, 0xF0 ; dir ID + .byte 10 | 0x80 + .ascii "wazaeffect" + .byte 0x41, 0xF0 ; dir ID + .byte 0 ; end + + ; Directory: /application + .byte 11 | 0x80 + .ascii "custom_ball" + .byte 0x02, 0xF0 ; dir ID + .byte 10 | 0x80 + .ascii "wifi_earth" + .byte 0x04, 0xF0 ; dir ID + .byte 9 | 0x80 + .ascii "zukanlist" + .byte 0x05, 0xF0 ; dir ID + .byte 0 ; end + + ; Directory: /custom_ball + .byte 4 | 0x80 + .ascii "data" + .byte 0x03, 0xF0 ; dir ID + .byte 0 ; end + + ; Directory: /application/data + .byte 12 + .ascii "cb_data.narc" + .byte 0 ; end + + ; Directory: /wifi_earth + .byte 15 + .ascii "wifi_earth.narc" + .byte 21 + .ascii "wifi_earth_place.narc" + .byte 0 ; end + + ; Directory: /zukanlist + .byte 8 | 0x80 + .ascii "zkn_data" + .byte 0x06, 0xF0 ; dir ID + .byte 0 ; end + + ; Directory: /application/zkn_data + .byte 15 + .ascii "zukan_data.narc" + .byte 22 + .ascii "zukan_enc_diamond.narc" + .byte 20 + .ascii "zukan_enc_pearl.narc" + .byte 0 ; end + + ; Directory: /arc + .byte 13 + .ascii "bm_anime.narc" + .byte 18 + .ascii "bm_anime_list.narc" + .byte 15 + .ascii "encdata_ex.narc" + .byte 10 + .ascii "ppark.narc" + .byte 14 + .ascii "ship_demo.narc" + .byte 7 + .ascii "tv.narc" + .byte 0 ; end + + ; Directory: /battle + .byte 7 | 0x80 + .ascii "b_tower" + .byte 0x09, 0xF0 ; dir ID + .byte 7 | 0x80 + .ascii "graphic" + .byte 0x0A, 0xF0 ; dir ID + .byte 5 | 0x80 + .ascii "skill" + .byte 0x0B, 0xF0 ; dir ID + .byte 5 | 0x80 + .ascii "tr_ai" + .byte 0x0C, 0xF0 ; dir ID + .byte 0 ; end + + ; Directory: /b_tower + .byte 10 + .ascii "btdpm.narc" + .byte 10 + .ascii "btdtr.narc" + .byte 0 ; end + + ; Directory: /graphic + .byte 14 + .ascii "b_bag_gra.narc" + .byte 16 + .ascii "b_plist_gra.narc" + .byte 12 + .ascii "batt_bg.narc" + .byte 13 + .ascii "batt_obj.narc" + .byte 16 + .ascii "vs_demo_gra.narc" + .byte 0 ; end + + ; Directory: /skill + .byte 11 + .ascii "be_seq.narc" + .byte 12 + .ascii "sub_seq.narc" + .byte 13 + .ascii "waza_seq.narc" + .byte 0 ; end + + ; Directory: /tr_ai + .byte 14 + .ascii "tr_ai_seq.narc" + .byte 0 ; end + + ; Directory: /contest + .byte 4 | 0x80 + .ascii "data" + .byte 0x0E, 0xF0 ; dir ID + .byte 7 | 0x80 + .ascii "graphic" + .byte 0x0F, 0xF0 ; dir ID + .byte 0 ; end + + ; Directory: /data + .byte 17 + .ascii "contest_data.narc" + .byte 0 ; end + + ; Directory: /graphic + .byte 15 + .ascii "contest_bg.narc" + .byte 16 + .ascii "contest_obj.narc" + .byte 0 ; end + + ; Directory: /data + .byte 15 + .ascii "area00light.txt" + .byte 15 + .ascii "area01light.txt" + .byte 15 + .ascii "area02light.txt" + .byte 15 + .ascii "battle_win.NSCR" + .byte 18 + .ascii "btower_canm.resdat" + .byte 19 + .ascii "btower_celact.cldat" + .byte 18 + .ascii "btower_cell.resdat" + .byte 17 + .ascii "btower_chr.resdat" + .byte 17 + .ascii "btower_pal.resdat" + .byte 10 + .ascii "cell0.NCGR" + .byte 10 + .ascii "cell0.NCLR" + .byte 18 + .ascii "clact_default.NANR" + .byte 13 + .ascii "crystal.nsbmd" + .byte 16 + .ascii "demo_climax.narc" + .byte 18 + .ascii "dp_areawindow.NCGR" + .byte 18 + .ascii "dp_areawindow.NCLR" + .byte 18 + .ascii "dt_test_celact.txt" + .byte 20 + .ascii "dt_test_res_cell.txt" + .byte 23 + .ascii "dt_test_res_cellanm.txt" + .byte 20 + .ascii "dt_test_res_char.txt" + .byte 21 + .ascii "dt_test_res_multi.txt" + .byte 24 + .ascii "dt_test_res_multianm.txt" + .byte 20 + .ascii "dt_test_res_pltt.txt" + .byte 13 + .ascii "dun_sea.nsbtx" + .byte 7 + .ascii "eoo.dat" + .byte 10 + .ascii "exdata.dat" + .byte 16 + .ascii "field_cutin.narc" + .byte 14 + .ascii "fld_anime0.bin" + .byte 14 + .ascii "fld_anime1.bin" + .byte 15 + .ascii "fld_anime10.bin" + .byte 14 + .ascii "fld_anime2.bin" + .byte 14 + .ascii "fld_anime3.bin" + .byte 14 + .ascii "fld_anime4.bin" + .byte 14 + .ascii "fld_anime5.bin" + .byte 14 + .ascii "fld_anime6.bin" + .byte 14 + .ascii "fld_anime7.bin" + .byte 14 + .ascii "fld_anime8.bin" + .byte 14 + .ascii "fld_anime9.bin" + .byte 15 + .ascii "fs_kanban.nsbca" + .byte 12 + .ascii "ground0.NCGR" + .byte 12 + .ascii "ground0.NCLR" + .byte 12 + .ascii "ground0.NSCR" + .byte 16 + .ascii "kemu_itpconv.dat" + .byte 15 + .ascii "lake_anim.nsbtx" + .byte 19 + .ascii "miniasahamabe.nsbtx" + .byte 16 + .ascii "miniasasea.nsbtx" + .byte 16 + .ascii "minihamabe.nsbtx" + .byte 13 + .ascii "minimum.nsbtx" + .byte 15 + .ascii "minirhana.nsbtx" + .byte 11 + .ascii "namein.narc" + .byte 10 + .ascii "nfont.NCGR" + .byte 10 + .ascii "nfont.NCLR" + .byte 8 + .ascii "pc.nsbca" + .byte 17 + .ascii "plist_canm.resdat" + .byte 17 + .ascii "plist_cell.resdat" + .byte 16 + .ascii "plist_chr.resdat" + .byte 13 + .ascii "plist_h.cldat" + .byte 16 + .ascii "plist_pal.resdat" + .byte 20 + .ascii "porucase_canm.resdat" + .byte 21 + .ascii "porucase_celact.cldat" + .byte 20 + .ascii "porucase_cell.resdat" + .byte 19 + .ascii "porucase_chr.resdat" + .byte 19 + .ascii "porucase_pal.resdat" + .byte 15 + .ascii "pst_canm.resdat" + .byte 15 + .ascii "pst_cell.resdat" + .byte 14 + .ascii "pst_chr.resdat" + .byte 11 + .ascii "pst_h.cldat" + .byte 14 + .ascii "pst_pal.resdat" + .byte 16 + .ascii "shop_canm.resdat" + .byte 16 + .ascii "shop_cell.resdat" + .byte 15 + .ascii "shop_chr.resdat" + .byte 12 + .ascii "shop_h.cldat" + .byte 15 + .ascii "shop_pal.resdat" + .byte 9 + .ascii "slot.narc" + .byte 16 + .ascii "smptm_koori.NANR" + .byte 16 + .ascii "smptm_koori.NCER" + .byte 16 + .ascii "smptm_koori.NCGR" + .byte 16 + .ascii "smptm_koori.NCLR" + .byte 17 + .ascii "smptm_nemuri.NANR" + .byte 17 + .ascii "smptm_nemuri.NCER" + .byte 17 + .ascii "smptm_nemuri.NCGR" + .byte 17 + .ascii "smptm_nemuri.NCLR" + .byte 13 + .ascii "t3_fl_b.nsbtx" + .byte 13 + .ascii "t3_fl_p.nsbtx" + .byte 13 + .ascii "t3_fl_r.nsbtx" + .byte 13 + .ascii "t3_fl_y.nsbtx" + .byte 8 + .ascii "test.atr" + .byte 14 + .ascii "tmap_block.dat" + .byte 14 + .ascii "tmap_flags.dat" + .byte 17 + .ascii "tmapn_canm.resdat" + .byte 18 + .ascii "tmapn_celact.cldat" + .byte 16 + .ascii "tmapn_celact.txt" + .byte 17 + .ascii "tmapn_cell.resdat" + .byte 16 + .ascii "tmapn_chr.resdat" + .byte 16 + .ascii "tmapn_pal.resdat" + .byte 18 + .ascii "tmapn_res_canm.txt" + .byte 18 + .ascii "tmapn_res_cell.txt" + .byte 17 + .ascii "tmapn_res_chr.txt" + .byte 17 + .ascii "tmapn_res_pal.txt" + .byte 14 + .ascii "tradelist.narc" + .byte 13 + .ascii "trapmark.narc" + .byte 12 + .ascii "ug_anim.narc" + .byte 17 + .ascii "ug_base_cur.nsbmd" + .byte 15 + .ascii "ug_boygirl.NCGR" + .byte 15 + .ascii "ug_boygirl.NCLR" + .byte 14 + .ascii "ug_fossil.narc" + .byte 12 + .ascii "ug_hero.NANR" + .byte 12 + .ascii "ug_hero.NCER" + .byte 12 + .ascii "ug_hole.NANR" + .byte 12 + .ascii "ug_hole.NCER" + .byte 12 + .ascii "ug_hole.NCGR" + .byte 13 + .ascii "ug_parts.narc" + .byte 13 + .ascii "ug_radar.narc" + .byte 12 + .ascii "ug_trap.narc" + .byte 25 + .ascii "ugeffect_obj_graphic.narc" + .byte 19 + .ascii "uground_cell.resdat" + .byte 22 + .ascii "uground_cellanm.resdat" + .byte 19 + .ascii "uground_char.resdat" + .byte 20 + .ascii "uground_char2.resdat" + .byte 19 + .ascii "uground_clact.cldat" + .byte 19 + .ascii "uground_pltt.resdat" + .byte 20 + .ascii "uground_pltt2.resdat" + .byte 17 + .ascii "underg_radar.narc" + .byte 9 + .ascii "UTF16.dat" + .byte 11 + .ascii "utility.bin" + .byte 16 + .ascii "weather_sys.narc" + .byte 9 + .ascii "wifi.ncgr" + .byte 13 + .ascii "wifinote.narc" + .byte 17 + .ascii "wifip2pmatch.narc" + .byte 7 + .ascii "wm.ncgr" + .byte 7 + .ascii "wm.nclr" + .byte 6 | 0x80 + .ascii "mmodel" + .byte 0x11, 0xF0 ; dir ID + .byte 5 | 0x80 + .ascii "sound" + .byte 0x12, 0xF0 ; dir ID + .byte 0 ; end + + ; Directory: /mmodel + .byte 11 + .ascii "fldeff.narc" + .byte 11 + .ascii "mmodel.narc" + .byte 0 ; end + + ; Directory: /sound + .byte 15 + .ascii "sound_data.sdat" + .byte 0 ; end + + ; Directory: /demo + .byte 3 | 0x80 + .ascii "egg" + .byte 0x14, 0xF0 ; dir ID + .byte 5 | 0x80 + .ascii "intro" + .byte 0x17, 0xF0 ; dir ID + .byte 6 | 0x80 + .ascii "shinka" + .byte 0x18, 0xF0 ; dir ID + .byte 8 | 0x80 + .ascii "syoujyou" + .byte 0x1B, 0xF0 ; dir ID + .byte 5 | 0x80 + .ascii "title" + .byte 0x1C, 0xF0 ; dir ID + .byte 0 ; end + + ; Directory: /egg + .byte 4 | 0x80 + .ascii "data" + .byte 0x15, 0xF0 ; dir ID + .byte 0 ; end + + ; Directory: /demo/data + .byte 13 + .ascii "egg_data.narc" + .byte 8 | 0x80 + .ascii "particle" + .byte 0x16, 0xF0 ; dir ID + .byte 0 ; end + + ; Directory: /egg/particle + .byte 22 + .ascii "egg_demo_particle.narc" + .byte 0 ; end + + ; Directory: /intro + .byte 10 + .ascii "intro.narc" + .byte 13 + .ascii "intro_tv.narc" + .byte 0 ; end + + ; Directory: /shinka + .byte 4 | 0x80 + .ascii "data" + .byte 0x19, 0xF0 ; dir ID + .byte 0 ; end + + ; Directory: /demo/data + .byte 8 | 0x80 + .ascii "particle" + .byte 0x1A, 0xF0 ; dir ID + .byte 0 ; end + + ; Directory: /shinka/particle + .byte 25 + .ascii "shinka_demo_particle.narc" + .byte 0 ; end + + ; Directory: /syoujyou + .byte 13 + .ascii "syoujyou.narc" + .byte 0 ; end + + ; Directory: /title + .byte 12 + .ascii "op_demo.narc" + .byte 14 + .ascii "titledemo.narc" + .byte 0 ; end + + ; Directory: /dwc + .byte 11 + .ascii "utility.bin" + .byte 0 ; end + + ; Directory: /fielddata + .byte 8 | 0x80 + .ascii "areadata" + .byte 0x1F, 0xF0 ; dir ID + .byte 11 | 0x80 + .ascii "build_model" + .byte 0x23, 0xF0 ; dir ID + .byte 11 | 0x80 + .ascii "encountdata" + .byte 0x24, 0xF0 ; dir ID + .byte 9 | 0x80 + .ascii "eventdata" + .byte 0x25, 0xF0 ; dir ID + .byte 9 | 0x80 + .ascii "land_data" + .byte 0x26, 0xF0 ; dir ID + .byte 9 | 0x80 + .ascii "mapmatrix" + .byte 0x27, 0xF0 ; dir ID + .byte 8 | 0x80 + .ascii "maptable" + .byte 0x28, 0xF0 ; dir ID + .byte 7 | 0x80 + .ascii "mm_list" + .byte 0x29, 0xF0 ; dir ID + .byte 13 | 0x80 + .ascii "pokemon_trade" + .byte 0x2A, 0xF0 ; dir ID + .byte 6 | 0x80 + .ascii "script" + .byte 0x2B, 0xF0 ; dir ID + .byte 0 ; end + + ; Directory: /areadata + .byte 14 + .ascii "area_data.narc" + .byte 16 | 0x80 + .ascii "area_build_model" + .byte 0x20, 0xF0 ; dir ID + .byte 12 | 0x80 + .ascii "area_map_tex" + .byte 0x21, 0xF0 ; dir ID + .byte 15 | 0x80 + .ascii "area_move_model" + .byte 0x22, 0xF0 ; dir ID + .byte 0 ; end + + ; Directory: /fielddata/area_build_model + .byte 15 + .ascii "area_build.narc" + .byte 18 + .ascii "areabm_texset.narc" + .byte 0 ; end + + ; Directory: /fielddata/area_map_tex + .byte 16 + .ascii "map_tex_set.narc" + .byte 0 ; end + + ; Directory: /fielddata/area_move_model + .byte 20 + .ascii "move_model_list.narc" + .byte 0 ; end + + ; Directory: /build_model + .byte 16 + .ascii "build_model.narc" + .byte 22 + .ascii "build_model_matshp.dat" + .byte 0 ; end + + ; Directory: /encountdata + .byte 15 + .ascii "d_enc_data.narc" + .byte 15 + .ascii "p_enc_data.narc" + .byte 0 ; end + + ; Directory: /eventdata + .byte 23 + .ascii "zone_event_release.narc" + .byte 0 ; end + + ; Directory: /land_data + .byte 22 + .ascii "land_data_release.narc" + .byte 0 ; end + + ; Directory: /mapmatrix + .byte 15 + .ascii "map_matrix.narc" + .byte 0 ; end + + ; Directory: /maptable + .byte 11 + .ascii "mapname.bin" + .byte 0 ; end + + ; Directory: /mm_list + .byte 20 + .ascii "move_model_list.narc" + .byte 0 ; end + + ; Directory: /pokemon_trade + .byte 14 + .ascii "fld_trade.narc" + .byte 0 ; end + + ; Directory: /script + .byte 20 + .ascii "scr_seq_release.narc" + .byte 0 ; end + + ; Directory: /graphic + .byte 12 + .ascii "bag_gra.narc" + .byte 8 + .ascii "box.narc" + .byte 11 + .ascii "btower.narc" + .byte 15 + .ascii "config_gra.narc" + .byte 15 + .ascii "demo_trade.narc" + .byte 16 + .ascii "dendou_demo.narc" + .byte 14 + .ascii "dendou_pc.narc" + .byte 11 + .ascii "ending.narc" + .byte 18 + .ascii "ev_pokeselect.narc" + .byte 15 + .ascii "f_note_gra.narc" + .byte 16 + .ascii "field_board.narc" + .byte 24 + .ascii "field_encounteffect.narc" + .byte 15 + .ascii "fld_comact.narc" + .byte 9 + .ascii "font.narc" + .byte 12 + .ascii "fontoam.narc" + .byte 17 + .ascii "hiden_effect.narc" + .byte 14 + .ascii "imageclip.narc" + .byte 13 + .ascii "mail_gra.narc" + .byte 13 + .ascii "menu_gra.narc" + .byte 11 + .ascii "mysign.narc" + .byte 12 + .ascii "mystery.narc" + .byte 13 + .ascii "ntag_gra.narc" + .byte 13 + .ascii "nutmixer.narc" + .byte 11 + .ascii "oekaki.narc" + .byte 12 + .ascii "opening.narc" + .byte 14 + .ascii "plist_gra.narc" + .byte 9 + .ascii "pmsi.narc" + .byte 12 + .ascii "poketch.narc" + .byte 13 + .ascii "poru_gra.narc" + .byte 12 + .ascii "poruact.narc" + .byte 13 + .ascii "porudemo.narc" + .byte 12 + .ascii "pst_gra.narc" + .byte 12 + .ascii "ranking.narc" + .byte 11 + .ascii "record.narc" + .byte 13 + .ascii "shop_gra.narc" + .byte 13 + .ascii "tmap_gra.narc" + .byte 20 + .ascii "touch_subwindow.narc" + .byte 17 + .ascii "trainer_case.narc" + .byte 14 + .ascii "unionroom.narc" + .byte 19 + .ascii "waza_oshie_gra.narc" + .byte 13 + .ascii "winframe.narc" + .byte 15 + .ascii "worldtrade.narc" + .byte 0 ; end + + ; Directory: /itemtool + .byte 8 | 0x80 + .ascii "itemdata" + .byte 0x2E, 0xF0 ; dir ID + .byte 0 ; end + + ; Directory: /itemdata + .byte 14 + .ascii "item_data.narc" + .byte 14 + .ascii "item_icon.narc" + .byte 14 + .ascii "nuts_data.narc" + .byte 0 ; end + + ; Directory: /msgdata + .byte 8 + .ascii "msg.narc" + .byte 8 | 0x80 + .ascii "scenario" + .byte 0x30, 0xF0 ; dir ID + .byte 0 ; end + + ; Directory: /scenario + .byte 12 + .ascii "scr_msg.narc" + .byte 0 ; end + + ; Directory: /particledata + .byte 17 + .ascii "particledata.narc" + .byte 0 ; end + + ; Directory: /pokeanime + .byte 13 + .ascii "poke_anm.narc" + .byte 0 ; end + + ; Directory: /poketool + .byte 14 + .ascii "pokezukan.narc" + .byte 14 + .ascii "shinzukan.narc" + .byte 7 | 0x80 + .ascii "icongra" + .byte 0x34, 0xF0 ; dir ID + .byte 8 | 0x80 + .ascii "personal" + .byte 0x35, 0xF0 ; dir ID + .byte 7 | 0x80 + .ascii "pokeanm" + .byte 0x36, 0xF0 ; dir ID + .byte 8 | 0x80 + .ascii "pokefoot" + .byte 0x37, 0xF0 ; dir ID + .byte 7 | 0x80 + .ascii "pokegra" + .byte 0x38, 0xF0 ; dir ID + .byte 7 | 0x80 + .ascii "trainer" + .byte 0x39, 0xF0 ; dir ID + .byte 5 | 0x80 + .ascii "trgra" + .byte 0x3A, 0xF0 ; dir ID + .byte 5 | 0x80 + .ascii "trmsg" + .byte 0x3B, 0xF0 ; dir ID + .byte 4 | 0x80 + .ascii "waza" + .byte 0x3C, 0xF0 ; dir ID + .byte 0 ; end + + ; Directory: /icongra + .byte 14 + .ascii "poke_icon.narc" + .byte 0 ; end + + ; Directory: /personal + .byte 8 + .ascii "evo.narc" + .byte 12 + .ascii "growtbl.narc" + .byte 13 + .ascii "personal.narc" + .byte 8 + .ascii "pms.narc" + .byte 10 + .ascii "wotbl.narc" + .byte 0 ; end + + ; Directory: /pokeanm + .byte 12 + .ascii "pokeanm.narc" + .byte 0 ; end + + ; Directory: /pokefoot + .byte 13 + .ascii "pokefoot.narc" + .byte 0 ; end + + ; Directory: /pokegra + .byte 11 + .ascii "height.narc" + .byte 13 + .ascii "height_o.narc" + .byte 14 + .ascii "otherpoke.narc" + .byte 16 + .ascii "poke_shadow.narc" + .byte 20 + .ascii "poke_shadow_ofx.narc" + .byte 14 + .ascii "poke_yofs.narc" + .byte 12 + .ascii "pokegra.narc" + .byte 0 ; end + + ; Directory: /trainer + .byte 11 + .ascii "trdata.narc" + .byte 11 + .ascii "trpoke.narc" + .byte 0 ; end + + ; Directory: /trgra + .byte 11 + .ascii "trbgra.narc" + .byte 11 + .ascii "trfgra.narc" + .byte 0 ; end + + ; Directory: /trmsg + .byte 10 + .ascii "trtbl.narc" + .byte 13 + .ascii "trtblofs.narc" + .byte 0 ; end + + ; Directory: /waza + .byte 13 + .ascii "waza_tbl.narc" + .byte 0 ; end + + ; Directory: /resource + .byte 3 | 0x80 + .ascii "eng" + .byte 0x3E, 0xF0 ; dir ID + .byte 0 ; end + + ; Directory: /eng + .byte 5 | 0x80 + .ascii "trial" + .byte 0x3F, 0xF0 ; dir ID + .byte 5 | 0x80 + .ascii "zukan" + .byte 0x40, 0xF0 ; dir ID + .byte 0 ; end + + ; Directory: /resource/trial + .byte 10 + .ascii "trial.narc" + .byte 0 ; end + + ; Directory: /resource/zukan + .byte 10 + .ascii "zukan.narc" + .byte 0 ; end + + ; Directory: /wazaeffect + .byte 6 + .ascii "we.arc" + .byte 11 + .ascii "we_sub.narc" + .byte 11 | 0x80 + .ascii "effectclact" + .byte 0x42, 0xF0 ; dir ID + .byte 10 | 0x80 + .ascii "effectdata" + .byte 0x43, 0xF0 ; dir ID + .byte 8 | 0x80 + .ascii "pt_debug" + .byte 0x44, 0xF0 ; dir ID + .byte 0 ; end + + ; Directory: /effectclact + .byte 11 + .ascii "wecell.narc" + .byte 14 + .ascii "wecellanm.narc" + .byte 11 + .ascii "wechar.narc" + .byte 11 + .ascii "wepltt.narc" + .byte 0 ; end + + ; Directory: /effectdata + .byte 18 + .ascii "ball_particle.narc" + .byte 18 + .ascii "waza_particle.narc" + .byte 0 ; end + + ; Directory: /pt_debug + .byte 19 + .ascii "debug_particle.narc" + .byte 0 ; end + .balign 4, 0xFF diff --git a/asm/gap1.s b/asm/gap1.s deleted file mode 100644 index b71ccde3..00000000 --- a/asm/gap1.s +++ /dev/null @@ -1,4 +0,0 @@ - .section .text - .rept 0x1E0 - .byte 0xFF - .endr diff --git a/asm/gap2.s b/asm/gap2.s deleted file mode 100644 index 4af77b6d..00000000 --- a/asm/gap2.s +++ /dev/null @@ -1,4 +0,0 @@ - .text - .rept 0x336400-0x33631c - .byte 255 - .endr diff --git a/asm/icon.s b/asm/icon.s new file mode 100644 index 00000000..976077b0 --- /dev/null +++ b/asm/icon.s @@ -0,0 +1,6 @@ + .text + .short 0x0001 + .short 0x048B + .space 0x1C + .incbin "graphics/icon.4bpp" + .incbin "graphics/icon.gbapal" diff --git a/asm/rom3.s b/asm/rom3.s deleted file mode 100644 index 9bbb7b7a..00000000 --- a/asm/rom3.s +++ /dev/null @@ -1,5 +0,0 @@ -/* rom3.s TODO: Disassemble */ - - .section .text - - .incbin "baserom.nds", 0x10B724, 0x2016FC diff --git a/asm/rom_header.s b/asm/rom_header.s index d28ecb4f..42aeb9e2 100644 --- a/asm/rom_header.s +++ b/asm/rom_header.s @@ -64,25 +64,25 @@ FileNameTableOffset: .word 0x00336400 .global FileNameTableSize FileNameTableSize: - .word 0x0000157F + .word 0x157F .global FATOffset FATOffset: - .word 0x00337A00 + .word 0x337A00 .global FATSize FATSize: - .word 0x00000B20 + .word 0xB20 .global ARM9OverlayOffset ARM9OverlayOffset: - .word 0x0010B800 + .word 0x10B800 .global ARM9OverlaySize ARM9OverlaySize: - .word 0x00000AE0 + .word 0xAE0 .global ARM7OverlayOffset ARM7OverlayOffset: - .word 0x00000000 + .word 0 .global ARM7OverlaySize ARM7OverlaySize: - .word 0x00000000 + .word 0 .global ROMControlInfo1 ROMControlInfo1: .word 0x00416657 @@ -91,7 +91,7 @@ ROMControlInfo2: .word 0x081808F8 .global IconTitleOffset IconTitleOffset: - .word 0x00338600 + .word 0x338600 .global SecureAreaCC SecureAreaCC: .short 0x5931 @@ -100,10 +100,12 @@ ROMControlInfo3: .short 0x0D7E .global ARM9AutoLoadHook ARM9AutoLoadHook: - .word 0x02000A74 + .extern ARM9AutoLoad + .word ARM9AutoLoad .global ARM7AutoLoadHook ARM7AutoLoadHook: - .word 0x02380158 + .extern ARM7AutoLoad + .word ARM7AutoLoad .global SecureAreaDisable SecureAreaDisable: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 diff --git a/asm/title.s b/asm/title.s new file mode 100644 index 00000000..56b16107 --- /dev/null +++ b/asm/title.s @@ -0,0 +1,16 @@ + .text + .global ROMTitles +ROMTitles: + ; UTF16LE has a leading short that should be skipped + .incbin "data/title/title.txt", 2 + .space 0x100-(.-ROMTitles) + .incbin "data/title/title.txt", 2 + .space 0x200-(.-ROMTitles) + .incbin "data/title/title.txt", 2 + .space 0x300-(.-ROMTitles) + .incbin "data/title/title.txt", 2 + .space 0x400-(.-ROMTitles) + .incbin "data/title/title.txt", 2 + .space 0x500-(.-ROMTitles) + .incbin "data/title/title.txt", 2 + .space 0x600-(.-ROMTitles) diff --git a/asm/unk_10b724.s b/asm/unk_10b724.s new file mode 100644 index 00000000..86695021 --- /dev/null +++ b/asm/unk_10b724.s @@ -0,0 +1,2 @@ + .text + .incbin "baserom.nds", 0x10B724, 0xC diff --git a/asm/unk_339000.s b/asm/unk_339000.s new file mode 100644 index 00000000..d2fdcac9 --- /dev/null +++ b/asm/unk_339000.s @@ -0,0 +1,3 @@ + .section .narc.339000
+NARC_339000:
+ .incbin "baserom.nds", 0x339000, 0x6704
diff --git a/data/title/title.txt b/data/title/title.txt Binary files differnew file mode 100644 index 00000000..2d687892 --- /dev/null +++ b/data/title/title.txt diff --git a/graphics/icon.png b/graphics/icon.png Binary files differnew file mode 100644 index 00000000..ecf9a4dc --- /dev/null +++ b/graphics/icon.png diff --git a/ld_script.txt b/ld_script.txt index 10692643..d7f1135a 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -13,13 +13,17 @@ SECTIONS { __romPos = 0; + BEGIN_SEG(ARM7Overlay, 0) + { + } + END_SEG(ARM7Overlay) + BEGIN_SEG(header, 0x0) { build/asm/rom_header.o(.text); - } + . = 0x4000; + } =0 END_SEG(header) - - __romPos += 0x3E00; BEGIN_SEG(arm9, 0x2000000) { @@ -31,35 +35,64 @@ SECTIONS { build/asm/rom2.o(.text); } END_SEG(arm9) - - BEGIN_SEG(rom3, 0x2000000 + SIZEOF(arm9)) + + garbage : { - build/asm/rom3.o(.text); + build/asm/unk_10b724.o(.text); + }=0 + + . = 0x10B800;__romPos = .; + BEGIN_SEG(ARM9Overlay, 0) + { + build/asm/arm9overlay.o(.text); } - END_SEG(rom3) + END_SEG(ARM9Overlay) - BEGIN_SEG(gap1, 0x2000000 + SIZEOF(rom3) + SIZEOF(arm9)) + . = 0x10C400;__romPos = .; + BEGIN_SEG(rom3, 0) /* shrug */ { - build/asm/gap1.o(.text); + build/asm/rom3.o(.text); } - END_SEG(gap1) + END_SEG(rom3) + . = 0x30D000;__romPos = .; BEGIN_SEG(arm7, 0x02380000) { build/asm/arm7_rom.o(.text); } END_SEG(arm7) - BEGIN_SEG(gap2, 0x02380000 + SIZEOF(arm7)) + . = 0x336400;__romPos = .; + BEGIN_SEG(FileNameTable, 0) { - build/asm/gap2.o(.text) + build/asm/filenametable.o(.text); } - END_SEG(gap2) + END_SEG(FileNameTable) - . = 0x336400; - BEGIN_SEG(FileNameTable, 0x02400000) + . = 0x337A00;__romPos = .; + BEGIN_SEG(FileAllocationTable, 0) { - build/asm/filenametable.o(.text); + build/asm/fat.o(.text); } - END_SEG(FileNameTable) + END_SEG(FileAllocationTable) + + . = 0x338600;__romPos = .; + BEGIN_SEG(Icon, __romPos) + { + build/asm/icon.o(.text); + build/asm/title.o(.text); + } + END_SEG(Icon) + + . = 0x339000;__romPos = .; + BEGIN_SEG(NARC, 0) + { + build/asm/narc.o(.text); + } + END_SEG(NARC) + + /DISCARD/ : + { + *(*); + } } diff --git a/narc/application/data/cb_data.narc.s b/narc/application/data/cb_data.narc.s new file mode 100644 index 00000000..24b96e6b --- /dev/null +++ b/narc/application/data/cb_data.narc.s @@ -0,0 +1,616 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0000ED8C ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000944 ; chunk size + .short 295 ; number of files + .balign 4 + .word 0x00000000, 0x0000005C + .word 0x0000005C, 0x000000B8 + .word 0x000000B8, 0x00000114 + .word 0x00000114, 0x00000170 + .word 0x00000170, 0x000001CC + .word 0x000001CC, 0x00000228 + .word 0x00000228, 0x00000284 + .word 0x00000284, 0x000002E0 + .word 0x000002E0, 0x0000033C + .word 0x0000033C, 0x00000398 + .word 0x00000398, 0x000003F4 + .word 0x000003F4, 0x00000450 + .word 0x00000450, 0x000004AC + .word 0x000004AC, 0x00000508 + .word 0x00000508, 0x00000564 + .word 0x00000564, 0x000005C0 + .word 0x000005C0, 0x0000061C + .word 0x0000061C, 0x00000678 + .word 0x00000678, 0x000006D4 + .word 0x000006D4, 0x00000730 + .word 0x00000730, 0x0000078C + .word 0x0000078C, 0x000007E8 + .word 0x000007E8, 0x00000844 + .word 0x00000844, 0x000008A0 + .word 0x000008A0, 0x000008FC + .word 0x000008FC, 0x00000958 + .word 0x00000958, 0x000009B4 + .word 0x000009B4, 0x00000A10 + .word 0x00000A10, 0x00000A6C + .word 0x00000A6C, 0x00000AC8 + .word 0x00000AC8, 0x00000B24 + .word 0x00000B24, 0x00000B80 + .word 0x00000B80, 0x00000BDC + .word 0x00000BDC, 0x00000C38 + .word 0x00000C38, 0x00000C94 + .word 0x00000C94, 0x00000CF0 + .word 0x00000CF0, 0x00000D4C + .word 0x00000D4C, 0x00000DA8 + .word 0x00000DA8, 0x00000E04 + .word 0x00000E04, 0x00000E60 + .word 0x00000E60, 0x00000EBC + .word 0x00000EBC, 0x00000F18 + .word 0x00000F18, 0x00000F74 + .word 0x00000F74, 0x00000FD0 + .word 0x00000FD0, 0x0000102C + .word 0x0000102C, 0x00001088 + .word 0x00001088, 0x000010E4 + .word 0x000010E4, 0x00001140 + .word 0x00001140, 0x0000119C + .word 0x0000119C, 0x000011F8 + .word 0x000011F8, 0x00001254 + .word 0x00001254, 0x000012B0 + .word 0x000012B0, 0x0000130C + .word 0x0000130C, 0x00001368 + .word 0x00001368, 0x000013C4 + .word 0x000013C4, 0x00001420 + .word 0x00001420, 0x0000147C + .word 0x0000147C, 0x000014D8 + .word 0x000014D8, 0x00001534 + .word 0x00001534, 0x00001590 + .word 0x00001590, 0x000015EC + .word 0x000015EC, 0x00001648 + .word 0x00001648, 0x000016A4 + .word 0x000016A4, 0x00001700 + .word 0x00001700, 0x0000175C + .word 0x0000175C, 0x000017B8 + .word 0x000017B8, 0x00001814 + .word 0x00001814, 0x00001870 + .word 0x00001870, 0x000018CC + .word 0x000018CC, 0x00001928 + .word 0x00001928, 0x00001984 + .word 0x00001984, 0x000019E0 + .word 0x000019E0, 0x00001A3C + .word 0x00001A3C, 0x00001A98 + .word 0x00001A98, 0x00001AF4 + .word 0x00001AF4, 0x00001B50 + .word 0x00001B50, 0x00001BAC + .word 0x00001BAC, 0x00001C08 + .word 0x00001C08, 0x00001C64 + .word 0x00001C64, 0x00001CC0 + .word 0x00001CC0, 0x00001D1C + .word 0x00001D1C, 0x00001DB4 + .word 0x00001DB4, 0x00001E20 + .word 0x00001E20, 0x00001E84 + .word 0x00001E84, 0x00001EE8 + .word 0x00001EE8, 0x00001F4C + .word 0x00001F4C, 0x00001FB0 + .word 0x00001FB0, 0x0000201C + .word 0x0000201C, 0x00002078 + .word 0x00002078, 0x000020D4 + .word 0x000020D4, 0x00002130 + .word 0x00002130, 0x0000218C + .word 0x0000218C, 0x000021F4 + .word 0x000021F4, 0x0000225C + .word 0x0000225C, 0x000022C4 + .word 0x000022C4, 0x0000232C + .word 0x0000232C, 0x00002394 + .word 0x00002394, 0x000023FC + .word 0x000023FC, 0x00002464 + .word 0x00002464, 0x000024CC + .word 0x000024CC, 0x00002534 + .word 0x00002534, 0x0000259C + .word 0x0000259C, 0x00002604 + .word 0x00002604, 0x0000266C + .word 0x0000266C, 0x000026D4 + .word 0x000026D4, 0x0000273C + .word 0x0000273C, 0x000027A4 + .word 0x000027A4, 0x0000280C + .word 0x0000280C, 0x00002874 + .word 0x00002874, 0x000028DC + .word 0x000028DC, 0x00002944 + .word 0x00002944, 0x000029AC + .word 0x000029AC, 0x00002A14 + .word 0x00002A14, 0x00002A7C + .word 0x00002A7C, 0x00002AE4 + .word 0x00002AE4, 0x00002B4C + .word 0x00002B4C, 0x00002BB4 + .word 0x00002BB4, 0x00002C1C + .word 0x00002C1C, 0x00002C84 + .word 0x00002C84, 0x00002CEC + .word 0x00002CEC, 0x00002D54 + .word 0x00002D54, 0x00002DBC + .word 0x00002DBC, 0x00002E24 + .word 0x00002E24, 0x00002E8C + .word 0x00002E8C, 0x00002EF4 + .word 0x00002EF4, 0x00002F5C + .word 0x00002F5C, 0x00002FC4 + .word 0x00002FC4, 0x0000302C + .word 0x0000302C, 0x00003094 + .word 0x00003094, 0x000030FC + .word 0x000030FC, 0x00003164 + .word 0x00003164, 0x000031CC + .word 0x000031CC, 0x00003234 + .word 0x00003234, 0x0000329C + .word 0x0000329C, 0x00003304 + .word 0x00003304, 0x0000336C + .word 0x0000336C, 0x000033D4 + .word 0x000033D4, 0x0000343C + .word 0x0000343C, 0x000034A4 + .word 0x000034A4, 0x0000350C + .word 0x0000350C, 0x00003574 + .word 0x00003574, 0x000035DC + .word 0x000035DC, 0x00003644 + .word 0x00003644, 0x000036AC + .word 0x000036AC, 0x00003714 + .word 0x00003714, 0x0000377C + .word 0x0000377C, 0x000037E4 + .word 0x000037E4, 0x0000384C + .word 0x0000384C, 0x000038B4 + .word 0x000038B4, 0x0000391C + .word 0x0000391C, 0x00003984 + .word 0x00003984, 0x000039EC + .word 0x000039EC, 0x00003A54 + .word 0x00003A54, 0x00003ABC + .word 0x00003ABC, 0x00003B24 + .word 0x00003B24, 0x00003B8C + .word 0x00003B8C, 0x00003BF4 + .word 0x00003BF4, 0x00003C5C + .word 0x00003C5C, 0x00003CC4 + .word 0x00003CC4, 0x00003D2C + .word 0x00003D2C, 0x00003D94 + .word 0x00003D94, 0x00003DFC + .word 0x00003DFC, 0x00003E64 + .word 0x00003E64, 0x00003ECC + .word 0x00003ECC, 0x00003F34 + .word 0x00003F34, 0x00003F9C + .word 0x00003F9C, 0x00004004 + .word 0x00004004, 0x0000406C + .word 0x0000406C, 0x000040D4 + .word 0x000040D4, 0x0000413C + .word 0x0000413C, 0x000041A4 + .word 0x000041A4, 0x0000420C + .word 0x0000420C, 0x00004274 + .word 0x00004274, 0x00004370 + .word 0x00004370, 0x000043E8 + .word 0x000043E8, 0x00004454 + .word 0x00004454, 0x000044D8 + .word 0x000044D8, 0x0000456C + .word 0x0000456C, 0x00004600 + .word 0x00004600, 0x00004670 + .word 0x00004670, 0x000046DC + .word 0x000046DC, 0x00004748 + .word 0x00004748, 0x000047B4 + .word 0x000047B4, 0x0000481C + .word 0x0000481C, 0x00004870 + .word 0x00004870, 0x00004978 + .word 0x00004978, 0x00004A90 + .word 0x00004A90, 0x00004B98 + .word 0x00004B98, 0x00004CB4 + .word 0x00004CB4, 0x00004DB8 + .word 0x00004DB8, 0x00004ED4 + .word 0x00004ED4, 0x00004FEC + .word 0x00004FEC, 0x000050F8 + .word 0x000050F8, 0x00005210 + .word 0x00005210, 0x0000531C + .word 0x0000531C, 0x00005434 + .word 0x00005434, 0x00005540 + .word 0x00005540, 0x00005644 + .word 0x00005644, 0x0000574C + .word 0x0000574C, 0x00005854 + .word 0x00005854, 0x0000595C + .word 0x0000595C, 0x00005A58 + .word 0x00005A58, 0x00005B48 + .word 0x00005B48, 0x00005C4C + .word 0x00005C4C, 0x00005D48 + .word 0x00005D48, 0x00005E54 + .word 0x00005E54, 0x00005F64 + .word 0x00005F64, 0x00006078 + .word 0x00006078, 0x0000618C + .word 0x0000618C, 0x00006294 + .word 0x00006294, 0x000063A8 + .word 0x000063A8, 0x000064B0 + .word 0x000064B0, 0x000065C4 + .word 0x000065C4, 0x000066D0 + .word 0x000066D0, 0x000067D4 + .word 0x000067D4, 0x000068E0 + .word 0x000068E0, 0x000069E0 + .word 0x000069E0, 0x00006AFC + .word 0x00006AFC, 0x00006C14 + .word 0x00006C14, 0x00006D2C + .word 0x00006D2C, 0x00006E44 + .word 0x00006E44, 0x00006F48 + .word 0x00006F48, 0x00007044 + .word 0x00007044, 0x00007148 + .word 0x00007148, 0x00007244 + .word 0x00007244, 0x00007348 + .word 0x00007348, 0x00007444 + .word 0x00007444, 0x0000754C + .word 0x0000754C, 0x00007630 + .word 0x00007630, 0x00007718 + .word 0x00007718, 0x00007824 + .word 0x00007824, 0x00007930 + .word 0x00007930, 0x00007A14 + .word 0x00007A14, 0x00007AFC + .word 0x00007AFC, 0x00007BE4 + .word 0x00007BE4, 0x00007CA0 + .word 0x00007CA0, 0x00007D8C + .word 0x00007D8C, 0x00007E60 + .word 0x00007E60, 0x00007F18 + .word 0x00007F18, 0x00007FD0 + .word 0x00007FD0, 0x000080B4 + .word 0x000080B4, 0x0000816C + .word 0x0000816C, 0x000081EC + .word 0x000081EC, 0x000082AC + .word 0x000082AC, 0x00008388 + .word 0x00008388, 0x00008430 + .word 0x00008430, 0x000084F8 + .word 0x000084F8, 0x000085B8 + .word 0x000085B8, 0x000086A4 + .word 0x000086A4, 0x0000876C + .word 0x0000876C, 0x00008854 + .word 0x00008854, 0x00008924 + .word 0x00008924, 0x00008A04 + .word 0x00008A04, 0x00008AB4 + .word 0x00008AB4, 0x00008B84 + .word 0x00008B84, 0x00008C70 + .word 0x00008C70, 0x00008D6C + .word 0x00008D6C, 0x00008E5C + .word 0x00008E5C, 0x00008F34 + .word 0x00008F34, 0x00008FF4 + .word 0x00008FF4, 0x000090A8 + .word 0x000090A8, 0x0000917C + .word 0x0000917C, 0x00009278 + .word 0x00009278, 0x00009364 + .word 0x00009364, 0x00009474 + .word 0x00009474, 0x00009568 + .word 0x00009568, 0x00009884 + .word 0x00009884, 0x00009D04 + .word 0x00009D04, 0x0000BB94 + .word 0x0000BB94, 0x0000BD48 + .word 0x0000BD48, 0x0000BF90 + .word 0x0000BF90, 0x0000C378 + .word 0x0000C378, 0x0000C5B8 + .word 0x0000C5B8, 0x0000C6F4 + .word 0x0000C6F4, 0x0000C82C + .word 0x0000C82C, 0x0000CB58 + .word 0x0000CB58, 0x0000CBFC + .word 0x0000CBFC, 0x0000CCAC + .word 0x0000CCAC, 0x0000CD3C + .word 0x0000CD3C, 0x0000CDE8 + .word 0x0000CDE8, 0x0000CEA8 + .word 0x0000CEA8, 0x0000CF68 + .word 0x0000CF68, 0x0000D254 + .word 0x0000D254, 0x0000D4D0 + .word 0x0000D4D0, 0x0000D604 + .word 0x0000D604, 0x0000D7A8 + .word 0x0000D7A8, 0x0000D9D0 + .word 0x0000D9D0, 0x0000DBF8 + .word 0x0000DBF8, 0x0000DC74 + .word 0x0000DC74, 0x0000DCCE + .word 0x0000DCD0, 0x0000DEF8 + .word 0x0000DEF8, 0x0000E120 + .word 0x0000E120, 0x0000E17A + .word 0x0000E17C, 0x0000E1F8 + .word 0x0000E1F8, 0x0000E420 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0000E428 ; chunk size + .incbin "baserom.nds", 0x0, 0x5C + .incbin "baserom.nds", 0x5C, 0x5C + .incbin "baserom.nds", 0xB8, 0x5C + .incbin "baserom.nds", 0x114, 0x5C + .incbin "baserom.nds", 0x170, 0x5C + .incbin "baserom.nds", 0x1CC, 0x5C + .incbin "baserom.nds", 0x228, 0x5C + .incbin "baserom.nds", 0x284, 0x5C + .incbin "baserom.nds", 0x2E0, 0x5C + .incbin "baserom.nds", 0x33C, 0x5C + .incbin "baserom.nds", 0x398, 0x5C + .incbin "baserom.nds", 0x3F4, 0x5C + .incbin "baserom.nds", 0x450, 0x5C + .incbin "baserom.nds", 0x4AC, 0x5C + .incbin "baserom.nds", 0x508, 0x5C + .incbin "baserom.nds", 0x564, 0x5C + .incbin "baserom.nds", 0x5C0, 0x5C + .incbin "baserom.nds", 0x61C, 0x5C + .incbin "baserom.nds", 0x678, 0x5C + .incbin "baserom.nds", 0x6D4, 0x5C + .incbin "baserom.nds", 0x730, 0x5C + .incbin "baserom.nds", 0x78C, 0x5C + .incbin "baserom.nds", 0x7E8, 0x5C + .incbin "baserom.nds", 0x844, 0x5C + .incbin "baserom.nds", 0x8A0, 0x5C + .incbin "baserom.nds", 0x8FC, 0x5C + .incbin "baserom.nds", 0x958, 0x5C + .incbin "baserom.nds", 0x9B4, 0x5C + .incbin "baserom.nds", 0xA10, 0x5C + .incbin "baserom.nds", 0xA6C, 0x5C + .incbin "baserom.nds", 0xAC8, 0x5C + .incbin "baserom.nds", 0xB24, 0x5C + .incbin "baserom.nds", 0xB80, 0x5C + .incbin "baserom.nds", 0xBDC, 0x5C + .incbin "baserom.nds", 0xC38, 0x5C + .incbin "baserom.nds", 0xC94, 0x5C + .incbin "baserom.nds", 0xCF0, 0x5C + .incbin "baserom.nds", 0xD4C, 0x5C + .incbin "baserom.nds", 0xDA8, 0x5C + .incbin "baserom.nds", 0xE04, 0x5C + .incbin "baserom.nds", 0xE60, 0x5C + .incbin "baserom.nds", 0xEBC, 0x5C + .incbin "baserom.nds", 0xF18, 0x5C + .incbin "baserom.nds", 0xF74, 0x5C + .incbin "baserom.nds", 0xFD0, 0x5C + .incbin "baserom.nds", 0x102C, 0x5C + .incbin "baserom.nds", 0x1088, 0x5C + .incbin "baserom.nds", 0x10E4, 0x5C + .incbin "baserom.nds", 0x1140, 0x5C + .incbin "baserom.nds", 0x119C, 0x5C + .incbin "baserom.nds", 0x11F8, 0x5C + .incbin "baserom.nds", 0x1254, 0x5C + .incbin "baserom.nds", 0x12B0, 0x5C + .incbin "baserom.nds", 0x130C, 0x5C + .incbin "baserom.nds", 0x1368, 0x5C + .incbin "baserom.nds", 0x13C4, 0x5C + .incbin "baserom.nds", 0x1420, 0x5C + .incbin "baserom.nds", 0x147C, 0x5C + .incbin "baserom.nds", 0x14D8, 0x5C + .incbin "baserom.nds", 0x1534, 0x5C + .incbin "baserom.nds", 0x1590, 0x5C + .incbin "baserom.nds", 0x15EC, 0x5C + .incbin "baserom.nds", 0x1648, 0x5C + .incbin "baserom.nds", 0x16A4, 0x5C + .incbin "baserom.nds", 0x1700, 0x5C + .incbin "baserom.nds", 0x175C, 0x5C + .incbin "baserom.nds", 0x17B8, 0x5C + .incbin "baserom.nds", 0x1814, 0x5C + .incbin "baserom.nds", 0x1870, 0x5C + .incbin "baserom.nds", 0x18CC, 0x5C + .incbin "baserom.nds", 0x1928, 0x5C + .incbin "baserom.nds", 0x1984, 0x5C + .incbin "baserom.nds", 0x19E0, 0x5C + .incbin "baserom.nds", 0x1A3C, 0x5C + .incbin "baserom.nds", 0x1A98, 0x5C + .incbin "baserom.nds", 0x1AF4, 0x5C + .incbin "baserom.nds", 0x1B50, 0x5C + .incbin "baserom.nds", 0x1BAC, 0x5C + .incbin "baserom.nds", 0x1C08, 0x5C + .incbin "baserom.nds", 0x1C64, 0x5C + .incbin "baserom.nds", 0x1CC0, 0x5C + .incbin "baserom.nds", 0x1D1C, 0x98 + .incbin "baserom.nds", 0x1DB4, 0x6C + .incbin "baserom.nds", 0x1E20, 0x64 + .incbin "baserom.nds", 0x1E84, 0x64 + .incbin "baserom.nds", 0x1EE8, 0x64 + .incbin "baserom.nds", 0x1F4C, 0x64 + .incbin "baserom.nds", 0x1FB0, 0x6C + .incbin "baserom.nds", 0x201C, 0x5C + .incbin "baserom.nds", 0x2078, 0x5C + .incbin "baserom.nds", 0x20D4, 0x5C + .incbin "baserom.nds", 0x2130, 0x5C + .incbin "baserom.nds", 0x218C, 0x68 + .incbin "baserom.nds", 0x21F4, 0x68 + .incbin "baserom.nds", 0x225C, 0x68 + .incbin "baserom.nds", 0x22C4, 0x68 + .incbin "baserom.nds", 0x232C, 0x68 + .incbin "baserom.nds", 0x2394, 0x68 + .incbin "baserom.nds", 0x23FC, 0x68 + .incbin "baserom.nds", 0x2464, 0x68 + .incbin "baserom.nds", 0x24CC, 0x68 + .incbin "baserom.nds", 0x2534, 0x68 + .incbin "baserom.nds", 0x259C, 0x68 + .incbin "baserom.nds", 0x2604, 0x68 + .incbin "baserom.nds", 0x266C, 0x68 + .incbin "baserom.nds", 0x26D4, 0x68 + .incbin "baserom.nds", 0x273C, 0x68 + .incbin "baserom.nds", 0x27A4, 0x68 + .incbin "baserom.nds", 0x280C, 0x68 + .incbin "baserom.nds", 0x2874, 0x68 + .incbin "baserom.nds", 0x28DC, 0x68 + .incbin "baserom.nds", 0x2944, 0x68 + .incbin "baserom.nds", 0x29AC, 0x68 + .incbin "baserom.nds", 0x2A14, 0x68 + .incbin "baserom.nds", 0x2A7C, 0x68 + .incbin "baserom.nds", 0x2AE4, 0x68 + .incbin "baserom.nds", 0x2B4C, 0x68 + .incbin "baserom.nds", 0x2BB4, 0x68 + .incbin "baserom.nds", 0x2C1C, 0x68 + .incbin "baserom.nds", 0x2C84, 0x68 + .incbin "baserom.nds", 0x2CEC, 0x68 + .incbin "baserom.nds", 0x2D54, 0x68 + .incbin "baserom.nds", 0x2DBC, 0x68 + .incbin "baserom.nds", 0x2E24, 0x68 + .incbin "baserom.nds", 0x2E8C, 0x68 + .incbin "baserom.nds", 0x2EF4, 0x68 + .incbin "baserom.nds", 0x2F5C, 0x68 + .incbin "baserom.nds", 0x2FC4, 0x68 + .incbin "baserom.nds", 0x302C, 0x68 + .incbin "baserom.nds", 0x3094, 0x68 + .incbin "baserom.nds", 0x30FC, 0x68 + .incbin "baserom.nds", 0x3164, 0x68 + .incbin "baserom.nds", 0x31CC, 0x68 + .incbin "baserom.nds", 0x3234, 0x68 + .incbin "baserom.nds", 0x329C, 0x68 + .incbin "baserom.nds", 0x3304, 0x68 + .incbin "baserom.nds", 0x336C, 0x68 + .incbin "baserom.nds", 0x33D4, 0x68 + .incbin "baserom.nds", 0x343C, 0x68 + .incbin "baserom.nds", 0x34A4, 0x68 + .incbin "baserom.nds", 0x350C, 0x68 + .incbin "baserom.nds", 0x3574, 0x68 + .incbin "baserom.nds", 0x35DC, 0x68 + .incbin "baserom.nds", 0x3644, 0x68 + .incbin "baserom.nds", 0x36AC, 0x68 + .incbin "baserom.nds", 0x3714, 0x68 + .incbin "baserom.nds", 0x377C, 0x68 + .incbin "baserom.nds", 0x37E4, 0x68 + .incbin "baserom.nds", 0x384C, 0x68 + .incbin "baserom.nds", 0x38B4, 0x68 + .incbin "baserom.nds", 0x391C, 0x68 + .incbin "baserom.nds", 0x3984, 0x68 + .incbin "baserom.nds", 0x39EC, 0x68 + .incbin "baserom.nds", 0x3A54, 0x68 + .incbin "baserom.nds", 0x3ABC, 0x68 + .incbin "baserom.nds", 0x3B24, 0x68 + .incbin "baserom.nds", 0x3B8C, 0x68 + .incbin "baserom.nds", 0x3BF4, 0x68 + .incbin "baserom.nds", 0x3C5C, 0x68 + .incbin "baserom.nds", 0x3CC4, 0x68 + .incbin "baserom.nds", 0x3D2C, 0x68 + .incbin "baserom.nds", 0x3D94, 0x68 + .incbin "baserom.nds", 0x3DFC, 0x68 + .incbin "baserom.nds", 0x3E64, 0x68 + .incbin "baserom.nds", 0x3ECC, 0x68 + .incbin "baserom.nds", 0x3F34, 0x68 + .incbin "baserom.nds", 0x3F9C, 0x68 + .incbin "baserom.nds", 0x4004, 0x68 + .incbin "baserom.nds", 0x406C, 0x68 + .incbin "baserom.nds", 0x40D4, 0x68 + .incbin "baserom.nds", 0x413C, 0x68 + .incbin "baserom.nds", 0x41A4, 0x68 + .incbin "baserom.nds", 0x420C, 0x68 + .incbin "baserom.nds", 0x4274, 0xFC + .incbin "baserom.nds", 0x4370, 0x78 + .incbin "baserom.nds", 0x43E8, 0x6C + .incbin "baserom.nds", 0x4454, 0x84 + .incbin "baserom.nds", 0x44D8, 0x94 + .incbin "baserom.nds", 0x456C, 0x94 + .incbin "baserom.nds", 0x4600, 0x70 + .incbin "baserom.nds", 0x4670, 0x6C + .incbin "baserom.nds", 0x46DC, 0x6C + .incbin "baserom.nds", 0x4748, 0x6C + .incbin "baserom.nds", 0x47B4, 0x68 + .incbin "baserom.nds", 0x481C, 0x54 + .incbin "baserom.nds", 0x4870, 0x108 + .incbin "baserom.nds", 0x4978, 0x118 + .incbin "baserom.nds", 0x4A90, 0x108 + .incbin "baserom.nds", 0x4B98, 0x11C + .incbin "baserom.nds", 0x4CB4, 0x104 + .incbin "baserom.nds", 0x4DB8, 0x11C + .incbin "baserom.nds", 0x4ED4, 0x118 + .incbin "baserom.nds", 0x4FEC, 0x10C + .incbin "baserom.nds", 0x50F8, 0x118 + .incbin "baserom.nds", 0x5210, 0x10C + .incbin "baserom.nds", 0x531C, 0x118 + .incbin "baserom.nds", 0x5434, 0x10C + .incbin "baserom.nds", 0x5540, 0x104 + .incbin "baserom.nds", 0x5644, 0x108 + .incbin "baserom.nds", 0x574C, 0x108 + .incbin "baserom.nds", 0x5854, 0x108 + .incbin "baserom.nds", 0x595C, 0xFC + .incbin "baserom.nds", 0x5A58, 0xF0 + .incbin "baserom.nds", 0x5B48, 0x104 + .incbin "baserom.nds", 0x5C4C, 0xFC + .incbin "baserom.nds", 0x5D48, 0x10C + .incbin "baserom.nds", 0x5E54, 0x110 + .incbin "baserom.nds", 0x5F64, 0x114 + .incbin "baserom.nds", 0x6078, 0x114 + .incbin "baserom.nds", 0x618C, 0x108 + .incbin "baserom.nds", 0x6294, 0x114 + .incbin "baserom.nds", 0x63A8, 0x108 + .incbin "baserom.nds", 0x64B0, 0x114 + .incbin "baserom.nds", 0x65C4, 0x10C + .incbin "baserom.nds", 0x66D0, 0x104 + .incbin "baserom.nds", 0x67D4, 0x10C + .incbin "baserom.nds", 0x68E0, 0x100 + .incbin "baserom.nds", 0x69E0, 0x11C + .incbin "baserom.nds", 0x6AFC, 0x118 + .incbin "baserom.nds", 0x6C14, 0x118 + .incbin "baserom.nds", 0x6D2C, 0x118 + .incbin "baserom.nds", 0x6E44, 0x104 + .incbin "baserom.nds", 0x6F48, 0xFC + .incbin "baserom.nds", 0x7044, 0x104 + .incbin "baserom.nds", 0x7148, 0xFC + .incbin "baserom.nds", 0x7244, 0x104 + .incbin "baserom.nds", 0x7348, 0xFC + .incbin "baserom.nds", 0x7444, 0x108 + .incbin "baserom.nds", 0x754C, 0xE4 + .incbin "baserom.nds", 0x7630, 0xE8 + .incbin "baserom.nds", 0x7718, 0x10C + .incbin "baserom.nds", 0x7824, 0x10C + .incbin "baserom.nds", 0x7930, 0xE4 + .incbin "baserom.nds", 0x7A14, 0xE8 + .incbin "baserom.nds", 0x7AFC, 0xE8 + .incbin "baserom.nds", 0x7BE4, 0xBC + .incbin "baserom.nds", 0x7CA0, 0xEC + .incbin "baserom.nds", 0x7D8C, 0xD4 + .incbin "baserom.nds", 0x7E60, 0xB8 + .incbin "baserom.nds", 0x7F18, 0xB8 + .incbin "baserom.nds", 0x7FD0, 0xE4 + .incbin "baserom.nds", 0x80B4, 0xB8 + .incbin "baserom.nds", 0x816C, 0x80 + .incbin "baserom.nds", 0x81EC, 0xC0 + .incbin "baserom.nds", 0x82AC, 0xDC + .incbin "baserom.nds", 0x8388, 0xA8 + .incbin "baserom.nds", 0x8430, 0xC8 + .incbin "baserom.nds", 0x84F8, 0xC0 + .incbin "baserom.nds", 0x85B8, 0xEC + .incbin "baserom.nds", 0x86A4, 0xC8 + .incbin "baserom.nds", 0x876C, 0xE8 + .incbin "baserom.nds", 0x8854, 0xD0 + .incbin "baserom.nds", 0x8924, 0xE0 + .incbin "baserom.nds", 0x8A04, 0xB0 + .incbin "baserom.nds", 0x8AB4, 0xD0 + .incbin "baserom.nds", 0x8B84, 0xEC + .incbin "baserom.nds", 0x8C70, 0xFC + .incbin "baserom.nds", 0x8D6C, 0xF0 + .incbin "baserom.nds", 0x8E5C, 0xD8 + .incbin "baserom.nds", 0x8F34, 0xC0 + .incbin "baserom.nds", 0x8FF4, 0xB4 + .incbin "baserom.nds", 0x90A8, 0xD4 + .incbin "baserom.nds", 0x917C, 0xFC + .incbin "baserom.nds", 0x9278, 0xEC + .incbin "baserom.nds", 0x9364, 0x110 + .incbin "baserom.nds", 0x9474, 0xF4 + .incbin "baserom.nds", 0x9568, 0x31C + .incbin "baserom.nds", 0x9884, 0x480 + .incbin "baserom.nds", 0x9D04, 0x1E90 + .incbin "baserom.nds", 0xBB94, 0x1B4 + .incbin "baserom.nds", 0xBD48, 0x248 + .incbin "baserom.nds", 0xBF90, 0x3E8 + .incbin "baserom.nds", 0xC378, 0x240 + .incbin "baserom.nds", 0xC5B8, 0x13C + .incbin "baserom.nds", 0xC6F4, 0x138 + .incbin "baserom.nds", 0xC82C, 0x32C + .incbin "baserom.nds", 0xCB58, 0xA4 + .incbin "baserom.nds", 0xCBFC, 0xB0 + .incbin "baserom.nds", 0xCCAC, 0x90 + .incbin "baserom.nds", 0xCD3C, 0xAC + .incbin "baserom.nds", 0xCDE8, 0xC0 + .incbin "baserom.nds", 0xCEA8, 0xC0 + .incbin "baserom.nds", 0xCF68, 0x2EC + .incbin "baserom.nds", 0xD254, 0x27C + .incbin "baserom.nds", 0xD4D0, 0x134 + .incbin "baserom.nds", 0xD604, 0x1A4 + .incbin "baserom.nds", 0xD7A8, 0x228 + .incbin "baserom.nds", 0xD9D0, 0x228 + .incbin "baserom.nds", 0xDBF8, 0x7C + .incbin "baserom.nds", 0xDC74, 0x5A + .incbin "baserom.nds", 0xDCD0, 0x228 + .incbin "baserom.nds", 0xDEF8, 0x228 + .incbin "baserom.nds", 0xE120, 0x5A + .incbin "baserom.nds", 0xE17C, 0x7C + .incbin "baserom.nds", 0xE1F8, 0x228 + .balign 4, 255 diff --git a/narc/application/zkn_data/zukan_data.narc.s b/narc/application/zkn_data/zukan_data.narc.s new file mode 100644 index 00000000..380ff6d4 --- /dev/null +++ b/narc/application/zkn_data/zukan_data.narc.s @@ -0,0 +1,142 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00005818 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000001DC ; chunk size + .short 58 ; number of files + .balign 4 + .word 0x00000000, 0x000007B8 + .word 0x000007B8, 0x00000F70 + .word 0x00000F70, 0x0000115E + .word 0x00001160, 0x0000153C + .word 0x0000153C, 0x00001918 + .word 0x00001918, 0x00001CF4 + .word 0x00001CF4, 0x000020D0 + .word 0x000020D0, 0x000024AC + .word 0x000024AC, 0x00002888 + .word 0x00002888, 0x00002C64 + .word 0x00002C64, 0x00003040 + .word 0x00003040, 0x0000341A + .word 0x0000341C, 0x0000354A + .word 0x0000354C, 0x00003926 + .word 0x00003928, 0x00003D02 + .word 0x00003D04, 0x000040DE + .word 0x000040E0, 0x000044BA + .word 0x000044BC, 0x00004896 + .word 0x00004898, 0x00004946 + .word 0x00004948, 0x000049AA + .word 0x000049AC, 0x00004A1A + .word 0x00004A1C, 0x00004A74 + .word 0x00004A74, 0x00004AFC + .word 0x00004AFC, 0x00004B6E + .word 0x00004B70, 0x00004C32 + .word 0x00004C34, 0x00004C70 + .word 0x00004C70, 0x00004C7C + .word 0x00004C7C, 0x00004D1C + .word 0x00004D1C, 0x00004D4E + .word 0x00004D50, 0x00004DD0 + .word 0x00004DD0, 0x00004E34 + .word 0x00004E34, 0x00004E92 + .word 0x00004E94, 0x00004EDE + .word 0x00004EE0, 0x00004F3A + .word 0x00004F3C, 0x00004F60 + .word 0x00004F60, 0x00004F92 + .word 0x00004F94, 0x00004FD6 + .word 0x00004FD8, 0x00005090 + .word 0x00005090, 0x000050FE + .word 0x00005100, 0x00005138 + .word 0x00005138, 0x000051A2 + .word 0x000051A4, 0x000051D0 + .word 0x000051D0, 0x000051F6 + .word 0x000051F8, 0x00005226 + .word 0x00005228, 0x000052E0 + .word 0x000052E0, 0x0000537E + .word 0x00005380, 0x00005458 + .word 0x00005458, 0x00005486 + .word 0x00005488, 0x000054A6 + .word 0x000054A8, 0x000054FE + .word 0x00005500, 0x0000552A + .word 0x0000552C, 0x00005548 + .word 0x00005548, 0x00005572 + .word 0x00005574, 0x00005592 + .word 0x00005594, 0x000055A2 + .word 0x000055A4, 0x000055D4 + .word 0x000055D4, 0x00005602 + .word 0x00005604, 0x00005614 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0000561C ; chunk size + .incbin "baserom.nds", 0x0, 0x7B8 + .incbin "baserom.nds", 0x7B8, 0x7B8 + .incbin "baserom.nds", 0xF70, 0x1EE + .incbin "baserom.nds", 0x1160, 0x3DC + .incbin "baserom.nds", 0x153C, 0x3DC + .incbin "baserom.nds", 0x1918, 0x3DC + .incbin "baserom.nds", 0x1CF4, 0x3DC + .incbin "baserom.nds", 0x20D0, 0x3DC + .incbin "baserom.nds", 0x24AC, 0x3DC + .incbin "baserom.nds", 0x2888, 0x3DC + .incbin "baserom.nds", 0x2C64, 0x3DC + .incbin "baserom.nds", 0x3040, 0x3DA + .incbin "baserom.nds", 0x341C, 0x12E + .incbin "baserom.nds", 0x354C, 0x3DA + .incbin "baserom.nds", 0x3928, 0x3DA + .incbin "baserom.nds", 0x3D04, 0x3DA + .incbin "baserom.nds", 0x40E0, 0x3DA + .incbin "baserom.nds", 0x44BC, 0x3DA + .incbin "baserom.nds", 0x4898, 0xAE + .incbin "baserom.nds", 0x4948, 0x62 + .incbin "baserom.nds", 0x49AC, 0x6E + .incbin "baserom.nds", 0x4A1C, 0x58 + .incbin "baserom.nds", 0x4A74, 0x88 + .incbin "baserom.nds", 0x4AFC, 0x72 + .incbin "baserom.nds", 0x4B70, 0xC2 + .incbin "baserom.nds", 0x4C34, 0x3C + .incbin "baserom.nds", 0x4C70, 0xC + .incbin "baserom.nds", 0x4C7C, 0xA0 + .incbin "baserom.nds", 0x4D1C, 0x32 + .incbin "baserom.nds", 0x4D50, 0x80 + .incbin "baserom.nds", 0x4DD0, 0x64 + .incbin "baserom.nds", 0x4E34, 0x5E + .incbin "baserom.nds", 0x4E94, 0x4A + .incbin "baserom.nds", 0x4EE0, 0x5A + .incbin "baserom.nds", 0x4F3C, 0x24 + .incbin "baserom.nds", 0x4F60, 0x32 + .incbin "baserom.nds", 0x4F94, 0x42 + .incbin "baserom.nds", 0x4FD8, 0xB8 + .incbin "baserom.nds", 0x5090, 0x6E + .incbin "baserom.nds", 0x5100, 0x38 + .incbin "baserom.nds", 0x5138, 0x6A + .incbin "baserom.nds", 0x51A4, 0x2C + .incbin "baserom.nds", 0x51D0, 0x26 + .incbin "baserom.nds", 0x51F8, 0x2E + .incbin "baserom.nds", 0x5228, 0xB8 + .incbin "baserom.nds", 0x52E0, 0x9E + .incbin "baserom.nds", 0x5380, 0xD8 + .incbin "baserom.nds", 0x5458, 0x2E + .incbin "baserom.nds", 0x5488, 0x1E + .incbin "baserom.nds", 0x54A8, 0x56 + .incbin "baserom.nds", 0x5500, 0x2A + .incbin "baserom.nds", 0x552C, 0x1C + .incbin "baserom.nds", 0x5548, 0x2A + .incbin "baserom.nds", 0x5574, 0x1E + .incbin "baserom.nds", 0x5594, 0xE + .incbin "baserom.nds", 0x55A4, 0x30 + .incbin "baserom.nds", 0x55D4, 0x2E + .incbin "baserom.nds", 0x5604, 0x10 + .balign 4, 255 diff --git a/narc/application/zkn_data/zukan_enc_diamond.narc.s b/narc/application/zkn_data/zukan_enc_diamond.narc.s new file mode 100644 index 00000000..fa9b05c9 --- /dev/null +++ b/narc/application/zkn_data/zukan_enc_diamond.narc.s @@ -0,0 +1,9934 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x000117E0 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00009ADC ; chunk size + .short 4954 ; number of files + .balign 4 + .word 0x00000000, 0x00000058 + .word 0x00000058, 0x000000B0 + .word 0x000000B0, 0x000007DC + .word 0x000007DC, 0x000008A8 + .word 0x000008A8, 0x000008EC + .word 0x000008EC, 0x000008F0 + .word 0x000008F0, 0x000008F4 + .word 0x000008F4, 0x000008F8 + .word 0x000008F8, 0x000008FC + .word 0x000008FC, 0x00000900 + .word 0x00000900, 0x00000904 + .word 0x00000904, 0x00000908 + .word 0x00000908, 0x0000090C + .word 0x0000090C, 0x00000910 + .word 0x00000910, 0x00000914 + .word 0x00000914, 0x00000918 + .word 0x00000918, 0x0000091C + .word 0x0000091C, 0x00000920 + .word 0x00000920, 0x00000924 + .word 0x00000924, 0x00000928 + .word 0x00000928, 0x0000092C + .word 0x0000092C, 0x00000930 + .word 0x00000930, 0x00000934 + .word 0x00000934, 0x00000938 + .word 0x00000938, 0x0000093C + .word 0x0000093C, 0x00000940 + .word 0x00000940, 0x00000944 + .word 0x00000944, 0x00000948 + .word 0x00000948, 0x0000094C + .word 0x0000094C, 0x00000954 + .word 0x00000954, 0x00000958 + .word 0x00000958, 0x0000095C + .word 0x0000095C, 0x00000960 + .word 0x00000960, 0x00000964 + .word 0x00000964, 0x00000968 + .word 0x00000968, 0x0000096C + .word 0x0000096C, 0x00000970 + .word 0x00000970, 0x00000974 + .word 0x00000974, 0x00000978 + .word 0x00000978, 0x00000980 + .word 0x00000980, 0x00000984 + .word 0x00000984, 0x00000988 + .word 0x00000988, 0x0000098C + .word 0x0000098C, 0x00000990 + .word 0x00000990, 0x00000994 + .word 0x00000994, 0x000009B4 + .word 0x000009B4, 0x000009DC + .word 0x000009DC, 0x000009E0 + .word 0x000009E0, 0x000009E4 + .word 0x000009E4, 0x000009E8 + .word 0x000009E8, 0x000009EC + .word 0x000009EC, 0x000009F0 + .word 0x000009F0, 0x000009F4 + .word 0x000009F4, 0x000009F8 + .word 0x000009F8, 0x000009FC + .word 0x000009FC, 0x00000A00 + .word 0x00000A00, 0x00000A04 + .word 0x00000A04, 0x00000A08 + .word 0x00000A08, 0x00000A24 + .word 0x00000A24, 0x00000A40 + .word 0x00000A40, 0x00000A44 + .word 0x00000A44, 0x00000A48 + .word 0x00000A48, 0x00000A4C + .word 0x00000A4C, 0x00000A50 + .word 0x00000A50, 0x00000A54 + .word 0x00000A54, 0x00000A58 + .word 0x00000A58, 0x00000A5C + .word 0x00000A5C, 0x00000A60 + .word 0x00000A60, 0x00000A68 + .word 0x00000A68, 0x00000A6C + .word 0x00000A6C, 0x00000A74 + .word 0x00000A74, 0x00000A84 + .word 0x00000A84, 0x00000A88 + .word 0x00000A88, 0x00000A8C + .word 0x00000A8C, 0x00000A90 + .word 0x00000A90, 0x00000A94 + .word 0x00000A94, 0x00000A98 + .word 0x00000A98, 0x00000A9C + .word 0x00000A9C, 0x00000AC0 + .word 0x00000AC0, 0x00000AD8 + .word 0x00000AD8, 0x00000ADC + .word 0x00000ADC, 0x00000AE0 + .word 0x00000AE0, 0x00000AE4 + .word 0x00000AE4, 0x00000AE8 + .word 0x00000AE8, 0x00000AEC + .word 0x00000AEC, 0x00000AF0 + .word 0x00000AF0, 0x00000AF4 + .word 0x00000AF4, 0x00000AF8 + .word 0x00000AF8, 0x00000AFC + .word 0x00000AFC, 0x00000B00 + .word 0x00000B00, 0x00000B04 + .word 0x00000B04, 0x00000B08 + .word 0x00000B08, 0x00000B0C + .word 0x00000B0C, 0x00000B10 + .word 0x00000B10, 0x00000B14 + .word 0x00000B14, 0x00000B18 + .word 0x00000B18, 0x00000B24 + .word 0x00000B24, 0x00000B2C + .word 0x00000B2C, 0x00000B30 + .word 0x00000B30, 0x00000B48 + .word 0x00000B48, 0x00000B4C + .word 0x00000B4C, 0x00000B50 + .word 0x00000B50, 0x00000B54 + .word 0x00000B54, 0x00000B58 + .word 0x00000B58, 0x00000B5C + .word 0x00000B5C, 0x00000B60 + .word 0x00000B60, 0x00000B64 + .word 0x00000B64, 0x00000B68 + .word 0x00000B68, 0x00000B6C + .word 0x00000B6C, 0x00000B70 + .word 0x00000B70, 0x00000B74 + .word 0x00000B74, 0x00000B78 + .word 0x00000B78, 0x00000B7C + .word 0x00000B7C, 0x00000B80 + .word 0x00000B80, 0x00000B88 + .word 0x00000B88, 0x00000B8C + .word 0x00000B8C, 0x00000B90 + .word 0x00000B90, 0x00000B94 + .word 0x00000B94, 0x00000B98 + .word 0x00000B98, 0x00000B9C + .word 0x00000B9C, 0x00000BA0 + .word 0x00000BA0, 0x00000BA4 + .word 0x00000BA4, 0x00000BB8 + .word 0x00000BB8, 0x00000BCC + .word 0x00000BCC, 0x00000BD0 + .word 0x00000BD0, 0x00000BD4 + .word 0x00000BD4, 0x00000BD8 + .word 0x00000BD8, 0x00000BDC + .word 0x00000BDC, 0x00000BE0 + .word 0x00000BE0, 0x00000BE4 + .word 0x00000BE4, 0x00000BE8 + .word 0x00000BE8, 0x00000BEC + .word 0x00000BEC, 0x00000BF0 + .word 0x00000BF0, 0x00000C18 + .word 0x00000C18, 0x00000C40 + .word 0x00000C40, 0x00000C48 + .word 0x00000C48, 0x00000C4C + .word 0x00000C4C, 0x00000C50 + .word 0x00000C50, 0x00000C54 + .word 0x00000C54, 0x00000C58 + .word 0x00000C58, 0x00000C5C + .word 0x00000C5C, 0x00000C60 + .word 0x00000C60, 0x00000C64 + .word 0x00000C64, 0x00000C68 + .word 0x00000C68, 0x00000C6C + .word 0x00000C6C, 0x00000C70 + .word 0x00000C70, 0x00000C74 + .word 0x00000C74, 0x00000C78 + .word 0x00000C78, 0x00000C7C + .word 0x00000C7C, 0x00000C80 + .word 0x00000C80, 0x00000C84 + .word 0x00000C84, 0x00000C8C + .word 0x00000C8C, 0x00000C94 + .word 0x00000C94, 0x00000C98 + .word 0x00000C98, 0x00000C9C + .word 0x00000C9C, 0x00000CA0 + .word 0x00000CA0, 0x00000CA4 + .word 0x00000CA4, 0x00000CA8 + .word 0x00000CA8, 0x00000CAC + .word 0x00000CAC, 0x00000CB0 + .word 0x00000CB0, 0x00000CB4 + .word 0x00000CB4, 0x00000CB8 + .word 0x00000CB8, 0x00000CBC + .word 0x00000CBC, 0x00000CC0 + .word 0x00000CC0, 0x00000CC4 + .word 0x00000CC4, 0x00000CC8 + .word 0x00000CC8, 0x00000CCC + .word 0x00000CCC, 0x00000CD0 + .word 0x00000CD0, 0x00000CD4 + .word 0x00000CD4, 0x00000CD8 + .word 0x00000CD8, 0x00000CDC + .word 0x00000CDC, 0x00000CE0 + .word 0x00000CE0, 0x00000CE4 + .word 0x00000CE4, 0x00000CE8 + .word 0x00000CE8, 0x00000CEC + .word 0x00000CEC, 0x00000CF0 + .word 0x00000CF0, 0x00000CF8 + .word 0x00000CF8, 0x00000D00 + .word 0x00000D00, 0x00000D04 + .word 0x00000D04, 0x00000D08 + .word 0x00000D08, 0x00000D0C + .word 0x00000D0C, 0x00000D10 + .word 0x00000D10, 0x00000D14 + .word 0x00000D14, 0x00000D18 + .word 0x00000D18, 0x00000D1C + .word 0x00000D1C, 0x00000D20 + .word 0x00000D20, 0x00000D24 + .word 0x00000D24, 0x00000D2C + .word 0x00000D2C, 0x00000D30 + .word 0x00000D30, 0x00000D34 + .word 0x00000D34, 0x00000D38 + .word 0x00000D38, 0x00000D3C + .word 0x00000D3C, 0x00000D40 + .word 0x00000D40, 0x00000D44 + .word 0x00000D44, 0x00000D48 + .word 0x00000D48, 0x00000D4C + .word 0x00000D4C, 0x00000D50 + .word 0x00000D50, 0x00000D54 + .word 0x00000D54, 0x00000D5C + .word 0x00000D5C, 0x00000D64 + .word 0x00000D64, 0x00000D68 + .word 0x00000D68, 0x00000D6C + .word 0x00000D6C, 0x00000D70 + .word 0x00000D70, 0x00000D74 + .word 0x00000D74, 0x00000D78 + .word 0x00000D78, 0x00000D80 + .word 0x00000D80, 0x00000D84 + .word 0x00000D84, 0x00000D88 + .word 0x00000D88, 0x00000D8C + .word 0x00000D8C, 0x00000D90 + .word 0x00000D90, 0x00000D94 + .word 0x00000D94, 0x00000D98 + .word 0x00000D98, 0x00000DA8 + .word 0x00000DA8, 0x00000DAC + .word 0x00000DAC, 0x00000DB0 + .word 0x00000DB0, 0x00000DB4 + .word 0x00000DB4, 0x00000DB8 + .word 0x00000DB8, 0x00000DBC + .word 0x00000DBC, 0x00000DC0 + .word 0x00000DC0, 0x00000DCC + .word 0x00000DCC, 0x00000DD0 + .word 0x00000DD0, 0x00000DD4 + .word 0x00000DD4, 0x00000DDC + .word 0x00000DDC, 0x00000DE4 + .word 0x00000DE4, 0x00000DE8 + .word 0x00000DE8, 0x00000DEC + .word 0x00000DEC, 0x00000DF0 + .word 0x00000DF0, 0x00000DF4 + .word 0x00000DF4, 0x00000DF8 + .word 0x00000DF8, 0x00000DFC + .word 0x00000DFC, 0x00000E00 + .word 0x00000E00, 0x00000E04 + .word 0x00000E04, 0x00000E08 + .word 0x00000E08, 0x00000E0C + .word 0x00000E0C, 0x00000E10 + .word 0x00000E10, 0x00000E14 + .word 0x00000E14, 0x00000E18 + .word 0x00000E18, 0x00000E1C + .word 0x00000E1C, 0x00000E20 + .word 0x00000E20, 0x00000E24 + .word 0x00000E24, 0x00000E28 + .word 0x00000E28, 0x00000E2C + .word 0x00000E2C, 0x00000E30 + .word 0x00000E30, 0x00000E34 + .word 0x00000E34, 0x00000E38 + .word 0x00000E38, 0x00000E3C + .word 0x00000E3C, 0x00000E40 + .word 0x00000E40, 0x00000E44 + .word 0x00000E44, 0x00000E48 + .word 0x00000E48, 0x00000E4C + .word 0x00000E4C, 0x00000E50 + .word 0x00000E50, 0x00000E54 + .word 0x00000E54, 0x00000E58 + .word 0x00000E58, 0x00000E5C + .word 0x00000E5C, 0x00000E60 + .word 0x00000E60, 0x00000E64 + .word 0x00000E64, 0x00000E68 + .word 0x00000E68, 0x00000E6C + .word 0x00000E6C, 0x00000E70 + .word 0x00000E70, 0x00000E74 + .word 0x00000E74, 0x00000E78 + .word 0x00000E78, 0x00000E7C + .word 0x00000E7C, 0x00000E80 + .word 0x00000E80, 0x00000E84 + .word 0x00000E84, 0x00000E88 + .word 0x00000E88, 0x00000E8C + .word 0x00000E8C, 0x00000E90 + .word 0x00000E90, 0x00000E94 + .word 0x00000E94, 0x00000E98 + .word 0x00000E98, 0x00000EA0 + .word 0x00000EA0, 0x00000EA8 + .word 0x00000EA8, 0x00000EB0 + .word 0x00000EB0, 0x00000EB4 + .word 0x00000EB4, 0x00000EB8 + .word 0x00000EB8, 0x00000EBC + .word 0x00000EBC, 0x00000EC0 + .word 0x00000EC0, 0x00000EC4 + .word 0x00000EC4, 0x00000EC8 + .word 0x00000EC8, 0x00000ECC + .word 0x00000ECC, 0x00000ED0 + .word 0x00000ED0, 0x00000ED4 + .word 0x00000ED4, 0x00000ED8 + .word 0x00000ED8, 0x00000EDC + .word 0x00000EDC, 0x00000EE0 + .word 0x00000EE0, 0x00000EE4 + .word 0x00000EE4, 0x00000EE8 + .word 0x00000EE8, 0x00000EEC + .word 0x00000EEC, 0x00000EF0 + .word 0x00000EF0, 0x00000EF4 + .word 0x00000EF4, 0x00000EF8 + .word 0x00000EF8, 0x00000EFC + .word 0x00000EFC, 0x00000F00 + .word 0x00000F00, 0x00000F04 + .word 0x00000F04, 0x00000F08 + .word 0x00000F08, 0x00000F0C + .word 0x00000F0C, 0x00000F10 + .word 0x00000F10, 0x00000F14 + .word 0x00000F14, 0x00000F18 + .word 0x00000F18, 0x00000F1C + .word 0x00000F1C, 0x00000F20 + .word 0x00000F20, 0x00000F24 + .word 0x00000F24, 0x00000F28 + .word 0x00000F28, 0x00000F30 + .word 0x00000F30, 0x00000F34 + .word 0x00000F34, 0x00000F38 + .word 0x00000F38, 0x00000F3C + .word 0x00000F3C, 0x00000F40 + .word 0x00000F40, 0x00000F44 + .word 0x00000F44, 0x00000F48 + .word 0x00000F48, 0x00000F4C + .word 0x00000F4C, 0x00000F50 + .word 0x00000F50, 0x00000F58 + .word 0x00000F58, 0x00000F64 + .word 0x00000F64, 0x00000F68 + .word 0x00000F68, 0x00000F6C + .word 0x00000F6C, 0x00000F70 + .word 0x00000F70, 0x00000F74 + .word 0x00000F74, 0x00000F78 + .word 0x00000F78, 0x00000F7C + .word 0x00000F7C, 0x00000F84 + .word 0x00000F84, 0x00000F88 + .word 0x00000F88, 0x00000F8C + .word 0x00000F8C, 0x00000F94 + .word 0x00000F94, 0x00000F98 + .word 0x00000F98, 0x00000F9C + .word 0x00000F9C, 0x00000FA0 + .word 0x00000FA0, 0x00000FA4 + .word 0x00000FA4, 0x00000FAC + .word 0x00000FAC, 0x00000FB0 + .word 0x00000FB0, 0x00000FB4 + .word 0x00000FB4, 0x00000FB8 + .word 0x00000FB8, 0x00000FBC + .word 0x00000FBC, 0x00000FC0 + .word 0x00000FC0, 0x00000FC4 + .word 0x00000FC4, 0x00000FC8 + .word 0x00000FC8, 0x00000FCC + .word 0x00000FCC, 0x00000FD0 + .word 0x00000FD0, 0x00000FD4 + .word 0x00000FD4, 0x00000FD8 + .word 0x00000FD8, 0x00000FDC + .word 0x00000FDC, 0x00000FE0 + .word 0x00000FE0, 0x00000FE4 + .word 0x00000FE4, 0x00000FE8 + .word 0x00000FE8, 0x00000FFC + .word 0x00000FFC, 0x00001010 + .word 0x00001010, 0x00001014 + .word 0x00001014, 0x00001018 + .word 0x00001018, 0x0000101C + .word 0x0000101C, 0x00001020 + .word 0x00001020, 0x00001024 + .word 0x00001024, 0x00001028 + .word 0x00001028, 0x0000102C + .word 0x0000102C, 0x00001030 + .word 0x00001030, 0x00001034 + .word 0x00001034, 0x00001038 + .word 0x00001038, 0x0000103C + .word 0x0000103C, 0x00001040 + .word 0x00001040, 0x00001044 + .word 0x00001044, 0x00001048 + .word 0x00001048, 0x0000104C + .word 0x0000104C, 0x00001050 + .word 0x00001050, 0x00001054 + .word 0x00001054, 0x00001060 + .word 0x00001060, 0x00001064 + .word 0x00001064, 0x00001068 + .word 0x00001068, 0x0000106C + .word 0x0000106C, 0x00001070 + .word 0x00001070, 0x00001074 + .word 0x00001074, 0x00001078 + .word 0x00001078, 0x0000107C + .word 0x0000107C, 0x00001080 + .word 0x00001080, 0x00001084 + .word 0x00001084, 0x00001088 + .word 0x00001088, 0x0000108C + .word 0x0000108C, 0x00001090 + .word 0x00001090, 0x00001094 + .word 0x00001094, 0x00001098 + .word 0x00001098, 0x0000109C + .word 0x0000109C, 0x000010A0 + .word 0x000010A0, 0x000010A4 + .word 0x000010A4, 0x000010A8 + .word 0x000010A8, 0x000010AC + .word 0x000010AC, 0x000010B0 + .word 0x000010B0, 0x000010B4 + .word 0x000010B4, 0x000010B8 + .word 0x000010B8, 0x000010BC + .word 0x000010BC, 0x000010C0 + .word 0x000010C0, 0x000010C4 + .word 0x000010C4, 0x000010C8 + .word 0x000010C8, 0x000010CC + .word 0x000010CC, 0x000010D0 + .word 0x000010D0, 0x000010D4 + .word 0x000010D4, 0x000010D8 + .word 0x000010D8, 0x000010DC + .word 0x000010DC, 0x000010E0 + .word 0x000010E0, 0x000010E4 + .word 0x000010E4, 0x000010E8 + .word 0x000010E8, 0x000010EC + .word 0x000010EC, 0x000010F0 + .word 0x000010F0, 0x000010F4 + .word 0x000010F4, 0x00001100 + .word 0x00001100, 0x00001110 + .word 0x00001110, 0x00001114 + .word 0x00001114, 0x00001120 + .word 0x00001120, 0x00001134 + .word 0x00001134, 0x00001138 + .word 0x00001138, 0x00001140 + .word 0x00001140, 0x00001144 + .word 0x00001144, 0x00001148 + .word 0x00001148, 0x0000114C + .word 0x0000114C, 0x00001158 + .word 0x00001158, 0x0000115C + .word 0x0000115C, 0x00001160 + .word 0x00001160, 0x00001164 + .word 0x00001164, 0x00001168 + .word 0x00001168, 0x0000116C + .word 0x0000116C, 0x00001170 + .word 0x00001170, 0x00001174 + .word 0x00001174, 0x00001178 + .word 0x00001178, 0x0000117C + .word 0x0000117C, 0x00001180 + .word 0x00001180, 0x00001184 + .word 0x00001184, 0x00001188 + .word 0x00001188, 0x00001190 + .word 0x00001190, 0x00001194 + .word 0x00001194, 0x00001198 + .word 0x00001198, 0x0000119C + .word 0x0000119C, 0x000011A0 + .word 0x000011A0, 0x000011A4 + .word 0x000011A4, 0x000011A8 + .word 0x000011A8, 0x000011AC + .word 0x000011AC, 0x000011B4 + .word 0x000011B4, 0x000011B8 + .word 0x000011B8, 0x000011BC + .word 0x000011BC, 0x000011C0 + .word 0x000011C0, 0x000011C4 + .word 0x000011C4, 0x000011C8 + .word 0x000011C8, 0x000011D8 + .word 0x000011D8, 0x000011DC + .word 0x000011DC, 0x000011E0 + .word 0x000011E0, 0x000011F0 + .word 0x000011F0, 0x000011FC + .word 0x000011FC, 0x00001200 + .word 0x00001200, 0x00001204 + .word 0x00001204, 0x00001208 + .word 0x00001208, 0x0000120C + .word 0x0000120C, 0x00001210 + .word 0x00001210, 0x00001218 + .word 0x00001218, 0x0000121C + .word 0x0000121C, 0x00001220 + .word 0x00001220, 0x00001224 + .word 0x00001224, 0x00001228 + .word 0x00001228, 0x0000122C + .word 0x0000122C, 0x00001234 + .word 0x00001234, 0x00001238 + .word 0x00001238, 0x0000123C + .word 0x0000123C, 0x00001240 + .word 0x00001240, 0x00001244 + .word 0x00001244, 0x00001248 + .word 0x00001248, 0x0000124C + .word 0x0000124C, 0x00001250 + .word 0x00001250, 0x00001254 + .word 0x00001254, 0x00001258 + .word 0x00001258, 0x00001260 + .word 0x00001260, 0x00001268 + .word 0x00001268, 0x0000126C + .word 0x0000126C, 0x00001270 + .word 0x00001270, 0x00001274 + .word 0x00001274, 0x00001278 + .word 0x00001278, 0x0000127C + .word 0x0000127C, 0x00001280 + .word 0x00001280, 0x00001284 + .word 0x00001284, 0x00001288 + .word 0x00001288, 0x0000128C + .word 0x0000128C, 0x00001290 + .word 0x00001290, 0x00001294 + .word 0x00001294, 0x00001298 + .word 0x00001298, 0x0000129C + .word 0x0000129C, 0x000012A0 + .word 0x000012A0, 0x000012A4 + .word 0x000012A4, 0x000012A8 + .word 0x000012A8, 0x000012AC + .word 0x000012AC, 0x000012B0 + .word 0x000012B0, 0x000012B4 + .word 0x000012B4, 0x000012B8 + .word 0x000012B8, 0x000012BC + .word 0x000012BC, 0x000012C0 + .word 0x000012C0, 0x000012C4 + .word 0x000012C4, 0x000012C8 + .word 0x000012C8, 0x000012CC + .word 0x000012CC, 0x000012D0 + .word 0x000012D0, 0x000012D4 + .word 0x000012D4, 0x000012D8 + .word 0x000012D8, 0x000012DC + .word 0x000012DC, 0x000012E0 + .word 0x000012E0, 0x000012E4 + .word 0x000012E4, 0x000012E8 + .word 0x000012E8, 0x000012EC + .word 0x000012EC, 0x000012F0 + .word 0x000012F0, 0x00001334 + .word 0x00001334, 0x00001338 + .word 0x00001338, 0x0000133C + .word 0x0000133C, 0x00001340 + .word 0x00001340, 0x00001344 + .word 0x00001344, 0x00001348 + .word 0x00001348, 0x0000134C + .word 0x0000134C, 0x00001350 + .word 0x00001350, 0x00001354 + .word 0x00001354, 0x00001358 + .word 0x00001358, 0x0000135C + .word 0x0000135C, 0x00001360 + .word 0x00001360, 0x00001364 + .word 0x00001364, 0x00001368 + .word 0x00001368, 0x0000136C + .word 0x0000136C, 0x00001370 + .word 0x00001370, 0x00001374 + .word 0x00001374, 0x00001378 + .word 0x00001378, 0x0000137C + .word 0x0000137C, 0x00001380 + .word 0x00001380, 0x00001384 + .word 0x00001384, 0x00001388 + .word 0x00001388, 0x0000138C + .word 0x0000138C, 0x00001390 + .word 0x00001390, 0x00001394 + .word 0x00001394, 0x0000139C + .word 0x0000139C, 0x000013A0 + .word 0x000013A0, 0x000013A4 + .word 0x000013A4, 0x000013A8 + .word 0x000013A8, 0x000013AC + .word 0x000013AC, 0x000013B0 + .word 0x000013B0, 0x000013B4 + .word 0x000013B4, 0x000013B8 + .word 0x000013B8, 0x000013BC + .word 0x000013BC, 0x000013C0 + .word 0x000013C0, 0x000013C8 + .word 0x000013C8, 0x000013CC + .word 0x000013CC, 0x000013D0 + .word 0x000013D0, 0x000013D4 + .word 0x000013D4, 0x000013D8 + .word 0x000013D8, 0x000013DC + .word 0x000013DC, 0x000013FC + .word 0x000013FC, 0x00001424 + .word 0x00001424, 0x00001428 + .word 0x00001428, 0x0000142C + .word 0x0000142C, 0x00001430 + .word 0x00001430, 0x00001434 + .word 0x00001434, 0x00001438 + .word 0x00001438, 0x0000143C + .word 0x0000143C, 0x00001440 + .word 0x00001440, 0x00001444 + .word 0x00001444, 0x00001448 + .word 0x00001448, 0x0000144C + .word 0x0000144C, 0x00001450 + .word 0x00001450, 0x0000146C + .word 0x0000146C, 0x00001488 + .word 0x00001488, 0x0000148C + .word 0x0000148C, 0x00001490 + .word 0x00001490, 0x00001494 + .word 0x00001494, 0x00001498 + .word 0x00001498, 0x0000149C + .word 0x0000149C, 0x000014A0 + .word 0x000014A0, 0x000014A4 + .word 0x000014A4, 0x000014A8 + .word 0x000014A8, 0x000014B0 + .word 0x000014B0, 0x000014B4 + .word 0x000014B4, 0x000014BC + .word 0x000014BC, 0x000014CC + .word 0x000014CC, 0x000014D0 + .word 0x000014D0, 0x000014D4 + .word 0x000014D4, 0x000014D8 + .word 0x000014D8, 0x000014DC + .word 0x000014DC, 0x000014E0 + .word 0x000014E0, 0x000014E4 + .word 0x000014E4, 0x00001508 + .word 0x00001508, 0x00001520 + .word 0x00001520, 0x00001524 + .word 0x00001524, 0x00001528 + .word 0x00001528, 0x0000152C + .word 0x0000152C, 0x00001530 + .word 0x00001530, 0x00001534 + .word 0x00001534, 0x00001538 + .word 0x00001538, 0x0000153C + .word 0x0000153C, 0x00001540 + .word 0x00001540, 0x00001544 + .word 0x00001544, 0x00001548 + .word 0x00001548, 0x0000154C + .word 0x0000154C, 0x00001550 + .word 0x00001550, 0x00001554 + .word 0x00001554, 0x00001558 + .word 0x00001558, 0x0000155C + .word 0x0000155C, 0x00001560 + .word 0x00001560, 0x0000156C + .word 0x0000156C, 0x00001574 + .word 0x00001574, 0x00001578 + .word 0x00001578, 0x00001590 + .word 0x00001590, 0x00001594 + .word 0x00001594, 0x00001598 + .word 0x00001598, 0x0000159C + .word 0x0000159C, 0x000015A0 + .word 0x000015A0, 0x000015A4 + .word 0x000015A4, 0x000015A8 + .word 0x000015A8, 0x000015AC + .word 0x000015AC, 0x000015B0 + .word 0x000015B0, 0x000015B4 + .word 0x000015B4, 0x000015B8 + .word 0x000015B8, 0x000015BC + .word 0x000015BC, 0x000015C0 + .word 0x000015C0, 0x000015C4 + .word 0x000015C4, 0x000015C8 + .word 0x000015C8, 0x000015D0 + .word 0x000015D0, 0x000015D4 + .word 0x000015D4, 0x000015D8 + .word 0x000015D8, 0x000015DC + .word 0x000015DC, 0x000015E0 + .word 0x000015E0, 0x000015E4 + .word 0x000015E4, 0x000015E8 + .word 0x000015E8, 0x000015EC + .word 0x000015EC, 0x00001600 + .word 0x00001600, 0x00001614 + .word 0x00001614, 0x00001618 + .word 0x00001618, 0x0000161C + .word 0x0000161C, 0x00001620 + .word 0x00001620, 0x00001624 + .word 0x00001624, 0x00001628 + .word 0x00001628, 0x0000162C + .word 0x0000162C, 0x00001630 + .word 0x00001630, 0x00001634 + .word 0x00001634, 0x00001638 + .word 0x00001638, 0x00001660 + .word 0x00001660, 0x00001688 + .word 0x00001688, 0x00001690 + .word 0x00001690, 0x00001694 + .word 0x00001694, 0x00001698 + .word 0x00001698, 0x0000169C + .word 0x0000169C, 0x000016A0 + .word 0x000016A0, 0x000016A4 + .word 0x000016A4, 0x000016A8 + .word 0x000016A8, 0x000016AC + .word 0x000016AC, 0x000016B0 + .word 0x000016B0, 0x000016B4 + .word 0x000016B4, 0x000016B8 + .word 0x000016B8, 0x000016BC + .word 0x000016BC, 0x000016C0 + .word 0x000016C0, 0x000016C4 + .word 0x000016C4, 0x000016C8 + .word 0x000016C8, 0x000016CC + .word 0x000016CC, 0x000016D4 + .word 0x000016D4, 0x000016DC + .word 0x000016DC, 0x000016E0 + .word 0x000016E0, 0x000016E4 + .word 0x000016E4, 0x000016E8 + .word 0x000016E8, 0x000016EC + .word 0x000016EC, 0x000016F0 + .word 0x000016F0, 0x000016F4 + .word 0x000016F4, 0x000016F8 + .word 0x000016F8, 0x000016FC + .word 0x000016FC, 0x00001700 + .word 0x00001700, 0x00001704 + .word 0x00001704, 0x00001708 + .word 0x00001708, 0x0000170C + .word 0x0000170C, 0x00001710 + .word 0x00001710, 0x00001714 + .word 0x00001714, 0x00001718 + .word 0x00001718, 0x0000171C + .word 0x0000171C, 0x00001720 + .word 0x00001720, 0x00001724 + .word 0x00001724, 0x00001728 + .word 0x00001728, 0x0000172C + .word 0x0000172C, 0x00001730 + .word 0x00001730, 0x00001734 + .word 0x00001734, 0x00001738 + .word 0x00001738, 0x00001740 + .word 0x00001740, 0x00001748 + .word 0x00001748, 0x0000174C + .word 0x0000174C, 0x00001750 + .word 0x00001750, 0x00001754 + .word 0x00001754, 0x00001758 + .word 0x00001758, 0x0000175C + .word 0x0000175C, 0x00001760 + .word 0x00001760, 0x00001764 + .word 0x00001764, 0x00001768 + .word 0x00001768, 0x0000176C + .word 0x0000176C, 0x00001774 + .word 0x00001774, 0x00001778 + .word 0x00001778, 0x0000177C + .word 0x0000177C, 0x00001780 + .word 0x00001780, 0x00001784 + .word 0x00001784, 0x00001788 + .word 0x00001788, 0x0000178C + .word 0x0000178C, 0x00001790 + .word 0x00001790, 0x00001794 + .word 0x00001794, 0x00001798 + .word 0x00001798, 0x0000179C + .word 0x0000179C, 0x000017A4 + .word 0x000017A4, 0x000017AC + .word 0x000017AC, 0x000017B0 + .word 0x000017B0, 0x000017B4 + .word 0x000017B4, 0x000017B8 + .word 0x000017B8, 0x000017BC + .word 0x000017BC, 0x000017C0 + .word 0x000017C0, 0x000017C8 + .word 0x000017C8, 0x000017CC + .word 0x000017CC, 0x000017D0 + .word 0x000017D0, 0x000017D4 + .word 0x000017D4, 0x000017D8 + .word 0x000017D8, 0x000017DC + .word 0x000017DC, 0x000017E0 + .word 0x000017E0, 0x000017F0 + .word 0x000017F0, 0x000017F4 + .word 0x000017F4, 0x000017F8 + .word 0x000017F8, 0x000017FC + .word 0x000017FC, 0x00001800 + .word 0x00001800, 0x00001804 + .word 0x00001804, 0x00001808 + .word 0x00001808, 0x00001814 + .word 0x00001814, 0x00001818 + .word 0x00001818, 0x0000181C + .word 0x0000181C, 0x00001824 + .word 0x00001824, 0x0000182C + .word 0x0000182C, 0x00001830 + .word 0x00001830, 0x00001834 + .word 0x00001834, 0x00001838 + .word 0x00001838, 0x0000183C + .word 0x0000183C, 0x00001840 + .word 0x00001840, 0x00001844 + .word 0x00001844, 0x00001848 + .word 0x00001848, 0x0000184C + .word 0x0000184C, 0x00001850 + .word 0x00001850, 0x00001854 + .word 0x00001854, 0x00001858 + .word 0x00001858, 0x0000185C + .word 0x0000185C, 0x00001860 + .word 0x00001860, 0x00001864 + .word 0x00001864, 0x00001868 + .word 0x00001868, 0x0000186C + .word 0x0000186C, 0x00001870 + .word 0x00001870, 0x00001874 + .word 0x00001874, 0x00001878 + .word 0x00001878, 0x0000187C + .word 0x0000187C, 0x00001880 + .word 0x00001880, 0x00001884 + .word 0x00001884, 0x00001888 + .word 0x00001888, 0x0000188C + .word 0x0000188C, 0x00001890 + .word 0x00001890, 0x00001894 + .word 0x00001894, 0x00001898 + .word 0x00001898, 0x0000189C + .word 0x0000189C, 0x000018A0 + .word 0x000018A0, 0x000018A4 + .word 0x000018A4, 0x000018A8 + .word 0x000018A8, 0x000018AC + .word 0x000018AC, 0x000018B0 + .word 0x000018B0, 0x000018B4 + .word 0x000018B4, 0x000018B8 + .word 0x000018B8, 0x000018BC + .word 0x000018BC, 0x000018C0 + .word 0x000018C0, 0x000018C4 + .word 0x000018C4, 0x000018C8 + .word 0x000018C8, 0x000018CC + .word 0x000018CC, 0x000018D0 + .word 0x000018D0, 0x000018D4 + .word 0x000018D4, 0x000018D8 + .word 0x000018D8, 0x000018DC + .word 0x000018DC, 0x000018E0 + .word 0x000018E0, 0x000018E8 + .word 0x000018E8, 0x000018F0 + .word 0x000018F0, 0x000018F8 + .word 0x000018F8, 0x000018FC + .word 0x000018FC, 0x00001900 + .word 0x00001900, 0x00001904 + .word 0x00001904, 0x00001908 + .word 0x00001908, 0x0000190C + .word 0x0000190C, 0x00001910 + .word 0x00001910, 0x00001914 + .word 0x00001914, 0x00001918 + .word 0x00001918, 0x0000191C + .word 0x0000191C, 0x00001920 + .word 0x00001920, 0x00001924 + .word 0x00001924, 0x00001928 + .word 0x00001928, 0x0000192C + .word 0x0000192C, 0x00001930 + .word 0x00001930, 0x00001934 + .word 0x00001934, 0x00001938 + .word 0x00001938, 0x0000193C + .word 0x0000193C, 0x00001940 + .word 0x00001940, 0x00001944 + .word 0x00001944, 0x00001948 + .word 0x00001948, 0x0000194C + .word 0x0000194C, 0x00001950 + .word 0x00001950, 0x00001954 + .word 0x00001954, 0x00001958 + .word 0x00001958, 0x0000195C + .word 0x0000195C, 0x00001960 + .word 0x00001960, 0x00001964 + .word 0x00001964, 0x00001968 + .word 0x00001968, 0x0000196C + .word 0x0000196C, 0x00001970 + .word 0x00001970, 0x00001978 + .word 0x00001978, 0x0000197C + .word 0x0000197C, 0x00001980 + .word 0x00001980, 0x00001984 + .word 0x00001984, 0x00001988 + .word 0x00001988, 0x0000198C + .word 0x0000198C, 0x00001990 + .word 0x00001990, 0x00001994 + .word 0x00001994, 0x00001998 + .word 0x00001998, 0x000019A0 + .word 0x000019A0, 0x000019AC + .word 0x000019AC, 0x000019B0 + .word 0x000019B0, 0x000019B4 + .word 0x000019B4, 0x000019B8 + .word 0x000019B8, 0x000019BC + .word 0x000019BC, 0x000019C0 + .word 0x000019C0, 0x000019C4 + .word 0x000019C4, 0x000019CC + .word 0x000019CC, 0x000019D0 + .word 0x000019D0, 0x000019D4 + .word 0x000019D4, 0x000019DC + .word 0x000019DC, 0x000019E0 + .word 0x000019E0, 0x000019E4 + .word 0x000019E4, 0x000019E8 + .word 0x000019E8, 0x000019EC + .word 0x000019EC, 0x000019F4 + .word 0x000019F4, 0x000019F8 + .word 0x000019F8, 0x000019FC + .word 0x000019FC, 0x00001A00 + .word 0x00001A00, 0x00001A04 + .word 0x00001A04, 0x00001A08 + .word 0x00001A08, 0x00001A0C + .word 0x00001A0C, 0x00001A10 + .word 0x00001A10, 0x00001A14 + .word 0x00001A14, 0x00001A18 + .word 0x00001A18, 0x00001A1C + .word 0x00001A1C, 0x00001A20 + .word 0x00001A20, 0x00001A24 + .word 0x00001A24, 0x00001A28 + .word 0x00001A28, 0x00001A2C + .word 0x00001A2C, 0x00001A30 + .word 0x00001A30, 0x00001A44 + .word 0x00001A44, 0x00001A58 + .word 0x00001A58, 0x00001A5C + .word 0x00001A5C, 0x00001A60 + .word 0x00001A60, 0x00001A64 + .word 0x00001A64, 0x00001A68 + .word 0x00001A68, 0x00001A6C + .word 0x00001A6C, 0x00001A70 + .word 0x00001A70, 0x00001A74 + .word 0x00001A74, 0x00001A78 + .word 0x00001A78, 0x00001A7C + .word 0x00001A7C, 0x00001A80 + .word 0x00001A80, 0x00001A84 + .word 0x00001A84, 0x00001A88 + .word 0x00001A88, 0x00001A8C + .word 0x00001A8C, 0x00001A90 + .word 0x00001A90, 0x00001A94 + .word 0x00001A94, 0x00001A98 + .word 0x00001A98, 0x00001A9C + .word 0x00001A9C, 0x00001AA8 + .word 0x00001AA8, 0x00001AAC + .word 0x00001AAC, 0x00001AB0 + .word 0x00001AB0, 0x00001AB4 + .word 0x00001AB4, 0x00001AB8 + .word 0x00001AB8, 0x00001ABC + .word 0x00001ABC, 0x00001AC0 + .word 0x00001AC0, 0x00001AC4 + .word 0x00001AC4, 0x00001AC8 + .word 0x00001AC8, 0x00001ACC + .word 0x00001ACC, 0x00001AD0 + .word 0x00001AD0, 0x00001AD4 + .word 0x00001AD4, 0x00001AD8 + .word 0x00001AD8, 0x00001ADC + .word 0x00001ADC, 0x00001AE0 + .word 0x00001AE0, 0x00001AE4 + .word 0x00001AE4, 0x00001AE8 + .word 0x00001AE8, 0x00001AEC + .word 0x00001AEC, 0x00001AF0 + .word 0x00001AF0, 0x00001AF4 + .word 0x00001AF4, 0x00001AF8 + .word 0x00001AF8, 0x00001AFC + .word 0x00001AFC, 0x00001B00 + .word 0x00001B00, 0x00001B04 + .word 0x00001B04, 0x00001B08 + .word 0x00001B08, 0x00001B0C + .word 0x00001B0C, 0x00001B10 + .word 0x00001B10, 0x00001B14 + .word 0x00001B14, 0x00001B18 + .word 0x00001B18, 0x00001B1C + .word 0x00001B1C, 0x00001B20 + .word 0x00001B20, 0x00001B24 + .word 0x00001B24, 0x00001B28 + .word 0x00001B28, 0x00001B2C + .word 0x00001B2C, 0x00001B30 + .word 0x00001B30, 0x00001B34 + .word 0x00001B34, 0x00001B38 + .word 0x00001B38, 0x00001B3C + .word 0x00001B3C, 0x00001B48 + .word 0x00001B48, 0x00001B58 + .word 0x00001B58, 0x00001B5C + .word 0x00001B5C, 0x00001B68 + .word 0x00001B68, 0x00001B7C + .word 0x00001B7C, 0x00001B80 + .word 0x00001B80, 0x00001B88 + .word 0x00001B88, 0x00001B8C + .word 0x00001B8C, 0x00001B90 + .word 0x00001B90, 0x00001B94 + .word 0x00001B94, 0x00001BA0 + .word 0x00001BA0, 0x00001BA4 + .word 0x00001BA4, 0x00001BA8 + .word 0x00001BA8, 0x00001BAC + .word 0x00001BAC, 0x00001BB0 + .word 0x00001BB0, 0x00001BB4 + .word 0x00001BB4, 0x00001BB8 + .word 0x00001BB8, 0x00001BBC + .word 0x00001BBC, 0x00001BC0 + .word 0x00001BC0, 0x00001BC4 + .word 0x00001BC4, 0x00001BC8 + .word 0x00001BC8, 0x00001BCC + .word 0x00001BCC, 0x00001BD0 + .word 0x00001BD0, 0x00001BD8 + .word 0x00001BD8, 0x00001BDC + .word 0x00001BDC, 0x00001BE0 + .word 0x00001BE0, 0x00001BE4 + .word 0x00001BE4, 0x00001BE8 + .word 0x00001BE8, 0x00001BEC + .word 0x00001BEC, 0x00001BF0 + .word 0x00001BF0, 0x00001BF4 + .word 0x00001BF4, 0x00001BFC + .word 0x00001BFC, 0x00001C00 + .word 0x00001C00, 0x00001C04 + .word 0x00001C04, 0x00001C08 + .word 0x00001C08, 0x00001C0C + .word 0x00001C0C, 0x00001C10 + .word 0x00001C10, 0x00001C20 + .word 0x00001C20, 0x00001C24 + .word 0x00001C24, 0x00001C28 + .word 0x00001C28, 0x00001C38 + .word 0x00001C38, 0x00001C44 + .word 0x00001C44, 0x00001C48 + .word 0x00001C48, 0x00001C4C + .word 0x00001C4C, 0x00001C50 + .word 0x00001C50, 0x00001C54 + .word 0x00001C54, 0x00001C58 + .word 0x00001C58, 0x00001C60 + .word 0x00001C60, 0x00001C64 + .word 0x00001C64, 0x00001C68 + .word 0x00001C68, 0x00001C6C + .word 0x00001C6C, 0x00001C70 + .word 0x00001C70, 0x00001C74 + .word 0x00001C74, 0x00001C7C + .word 0x00001C7C, 0x00001C80 + .word 0x00001C80, 0x00001C84 + .word 0x00001C84, 0x00001C88 + .word 0x00001C88, 0x00001C8C + .word 0x00001C8C, 0x00001C90 + .word 0x00001C90, 0x00001C94 + .word 0x00001C94, 0x00001C98 + .word 0x00001C98, 0x00001C9C + .word 0x00001C9C, 0x00001CA0 + .word 0x00001CA0, 0x00001CA8 + .word 0x00001CA8, 0x00001CB0 + .word 0x00001CB0, 0x00001CB4 + .word 0x00001CB4, 0x00001CB8 + .word 0x00001CB8, 0x00001CBC + .word 0x00001CBC, 0x00001CC0 + .word 0x00001CC0, 0x00001CC4 + .word 0x00001CC4, 0x00001CC8 + .word 0x00001CC8, 0x00001CCC + .word 0x00001CCC, 0x00001CD0 + .word 0x00001CD0, 0x00001CD4 + .word 0x00001CD4, 0x00001CD8 + .word 0x00001CD8, 0x00001CDC + .word 0x00001CDC, 0x00001CE0 + .word 0x00001CE0, 0x00001CE4 + .word 0x00001CE4, 0x00001CE8 + .word 0x00001CE8, 0x00001CEC + .word 0x00001CEC, 0x00001CF0 + .word 0x00001CF0, 0x00001CF4 + .word 0x00001CF4, 0x00001CF8 + .word 0x00001CF8, 0x00001CFC + .word 0x00001CFC, 0x00001D00 + .word 0x00001D00, 0x00001D04 + .word 0x00001D04, 0x00001D08 + .word 0x00001D08, 0x00001D0C + .word 0x00001D0C, 0x00001D10 + .word 0x00001D10, 0x00001D14 + .word 0x00001D14, 0x00001D18 + .word 0x00001D18, 0x00001D1C + .word 0x00001D1C, 0x00001D20 + .word 0x00001D20, 0x00001D24 + .word 0x00001D24, 0x00001D28 + .word 0x00001D28, 0x00001D2C + .word 0x00001D2C, 0x00001D30 + .word 0x00001D30, 0x00001D34 + .word 0x00001D34, 0x00001D38 + .word 0x00001D38, 0x00001D7C + .word 0x00001D7C, 0x00001D80 + .word 0x00001D80, 0x00001D84 + .word 0x00001D84, 0x00001D88 + .word 0x00001D88, 0x00001D8C + .word 0x00001D8C, 0x00001D90 + .word 0x00001D90, 0x00001D94 + .word 0x00001D94, 0x00001D98 + .word 0x00001D98, 0x00001D9C + .word 0x00001D9C, 0x00001DA0 + .word 0x00001DA0, 0x00001DA4 + .word 0x00001DA4, 0x00001DA8 + .word 0x00001DA8, 0x00001DAC + .word 0x00001DAC, 0x00001DB0 + .word 0x00001DB0, 0x00001DB4 + .word 0x00001DB4, 0x00001DB8 + .word 0x00001DB8, 0x00001DBC + .word 0x00001DBC, 0x00001DC0 + .word 0x00001DC0, 0x00001DC4 + .word 0x00001DC4, 0x00001DC8 + .word 0x00001DC8, 0x00001DCC + .word 0x00001DCC, 0x00001DD0 + .word 0x00001DD0, 0x00001DD4 + .word 0x00001DD4, 0x00001DD8 + .word 0x00001DD8, 0x00001DDC + .word 0x00001DDC, 0x00001DE4 + .word 0x00001DE4, 0x00001DE8 + .word 0x00001DE8, 0x00001DEC + .word 0x00001DEC, 0x00001DF0 + .word 0x00001DF0, 0x00001DF4 + .word 0x00001DF4, 0x00001DF8 + .word 0x00001DF8, 0x00001DFC + .word 0x00001DFC, 0x00001E00 + .word 0x00001E00, 0x00001E04 + .word 0x00001E04, 0x00001E08 + .word 0x00001E08, 0x00001E10 + .word 0x00001E10, 0x00001E14 + .word 0x00001E14, 0x00001E18 + .word 0x00001E18, 0x00001E1C + .word 0x00001E1C, 0x00001E20 + .word 0x00001E20, 0x00001E24 + .word 0x00001E24, 0x00001E44 + .word 0x00001E44, 0x00001E6C + .word 0x00001E6C, 0x00001E70 + .word 0x00001E70, 0x00001E74 + .word 0x00001E74, 0x00001E78 + .word 0x00001E78, 0x00001E7C + .word 0x00001E7C, 0x00001E80 + .word 0x00001E80, 0x00001E84 + .word 0x00001E84, 0x00001E88 + .word 0x00001E88, 0x00001E8C + .word 0x00001E8C, 0x00001E90 + .word 0x00001E90, 0x00001E94 + .word 0x00001E94, 0x00001E98 + .word 0x00001E98, 0x00001EB4 + .word 0x00001EB4, 0x00001ED0 + .word 0x00001ED0, 0x00001ED4 + .word 0x00001ED4, 0x00001ED8 + .word 0x00001ED8, 0x00001EDC + .word 0x00001EDC, 0x00001EE0 + .word 0x00001EE0, 0x00001EE4 + .word 0x00001EE4, 0x00001EE8 + .word 0x00001EE8, 0x00001EEC + .word 0x00001EEC, 0x00001EF0 + .word 0x00001EF0, 0x00001EF8 + .word 0x00001EF8, 0x00001EFC + .word 0x00001EFC, 0x00001F04 + .word 0x00001F04, 0x00001F14 + .word 0x00001F14, 0x00001F18 + .word 0x00001F18, 0x00001F1C + .word 0x00001F1C, 0x00001F20 + .word 0x00001F20, 0x00001F24 + .word 0x00001F24, 0x00001F28 + .word 0x00001F28, 0x00001F2C + .word 0x00001F2C, 0x00001F50 + .word 0x00001F50, 0x00001F68 + .word 0x00001F68, 0x00001F6C + .word 0x00001F6C, 0x00001F70 + .word 0x00001F70, 0x00001F74 + .word 0x00001F74, 0x00001F78 + .word 0x00001F78, 0x00001F7C + .word 0x00001F7C, 0x00001F80 + .word 0x00001F80, 0x00001F84 + .word 0x00001F84, 0x00001F88 + .word 0x00001F88, 0x00001F8C + .word 0x00001F8C, 0x00001F90 + .word 0x00001F90, 0x00001F94 + .word 0x00001F94, 0x00001F98 + .word 0x00001F98, 0x00001F9C + .word 0x00001F9C, 0x00001FA0 + .word 0x00001FA0, 0x00001FA4 + .word 0x00001FA4, 0x00001FA8 + .word 0x00001FA8, 0x00001FB4 + .word 0x00001FB4, 0x00001FBC + .word 0x00001FBC, 0x00001FC0 + .word 0x00001FC0, 0x00001FD8 + .word 0x00001FD8, 0x00001FDC + .word 0x00001FDC, 0x00001FE0 + .word 0x00001FE0, 0x00001FE4 + .word 0x00001FE4, 0x00001FE8 + .word 0x00001FE8, 0x00001FEC + .word 0x00001FEC, 0x00001FF0 + .word 0x00001FF0, 0x00001FF4 + .word 0x00001FF4, 0x00001FF8 + .word 0x00001FF8, 0x00001FFC + .word 0x00001FFC, 0x00002000 + .word 0x00002000, 0x00002004 + .word 0x00002004, 0x00002008 + .word 0x00002008, 0x0000200C + .word 0x0000200C, 0x00002010 + .word 0x00002010, 0x00002018 + .word 0x00002018, 0x0000201C + .word 0x0000201C, 0x00002020 + .word 0x00002020, 0x00002024 + .word 0x00002024, 0x00002028 + .word 0x00002028, 0x0000202C + .word 0x0000202C, 0x00002030 + .word 0x00002030, 0x00002034 + .word 0x00002034, 0x00002048 + .word 0x00002048, 0x0000205C + .word 0x0000205C, 0x00002060 + .word 0x00002060, 0x00002064 + .word 0x00002064, 0x00002068 + .word 0x00002068, 0x0000206C + .word 0x0000206C, 0x00002070 + .word 0x00002070, 0x00002074 + .word 0x00002074, 0x00002078 + .word 0x00002078, 0x0000207C + .word 0x0000207C, 0x00002080 + .word 0x00002080, 0x000020A8 + .word 0x000020A8, 0x000020D0 + .word 0x000020D0, 0x000020D8 + .word 0x000020D8, 0x000020DC + .word 0x000020DC, 0x000020E0 + .word 0x000020E0, 0x000020E4 + .word 0x000020E4, 0x000020E8 + .word 0x000020E8, 0x000020EC + .word 0x000020EC, 0x000020F0 + .word 0x000020F0, 0x000020F4 + .word 0x000020F4, 0x000020F8 + .word 0x000020F8, 0x000020FC + .word 0x000020FC, 0x00002100 + .word 0x00002100, 0x00002104 + .word 0x00002104, 0x00002108 + .word 0x00002108, 0x0000210C + .word 0x0000210C, 0x00002110 + .word 0x00002110, 0x00002114 + .word 0x00002114, 0x0000211C + .word 0x0000211C, 0x00002124 + .word 0x00002124, 0x00002128 + .word 0x00002128, 0x0000212C + .word 0x0000212C, 0x00002130 + .word 0x00002130, 0x00002134 + .word 0x00002134, 0x00002138 + .word 0x00002138, 0x0000213C + .word 0x0000213C, 0x00002140 + .word 0x00002140, 0x00002144 + .word 0x00002144, 0x00002148 + .word 0x00002148, 0x0000214C + .word 0x0000214C, 0x00002150 + .word 0x00002150, 0x00002154 + .word 0x00002154, 0x00002158 + .word 0x00002158, 0x0000215C + .word 0x0000215C, 0x00002164 + .word 0x00002164, 0x0000217C + .word 0x0000217C, 0x00002180 + .word 0x00002180, 0x00002184 + .word 0x00002184, 0x00002188 + .word 0x00002188, 0x0000218C + .word 0x0000218C, 0x00002190 + .word 0x00002190, 0x00002194 + .word 0x00002194, 0x00002198 + .word 0x00002198, 0x000021A0 + .word 0x000021A0, 0x000021A8 + .word 0x000021A8, 0x000021AC + .word 0x000021AC, 0x000021B0 + .word 0x000021B0, 0x000021B4 + .word 0x000021B4, 0x000021B8 + .word 0x000021B8, 0x000021BC + .word 0x000021BC, 0x000021C0 + .word 0x000021C0, 0x000021C4 + .word 0x000021C4, 0x000021C8 + .word 0x000021C8, 0x000021CC + .word 0x000021CC, 0x000021D4 + .word 0x000021D4, 0x000021D8 + .word 0x000021D8, 0x000021DC + .word 0x000021DC, 0x000021E0 + .word 0x000021E0, 0x000021E4 + .word 0x000021E4, 0x000021E8 + .word 0x000021E8, 0x000021EC + .word 0x000021EC, 0x000021F0 + .word 0x000021F0, 0x000021F4 + .word 0x000021F4, 0x000021F8 + .word 0x000021F8, 0x000021FC + .word 0x000021FC, 0x00002204 + .word 0x00002204, 0x0000220C + .word 0x0000220C, 0x00002210 + .word 0x00002210, 0x00002214 + .word 0x00002214, 0x00002220 + .word 0x00002220, 0x00002224 + .word 0x00002224, 0x00002228 + .word 0x00002228, 0x00002230 + .word 0x00002230, 0x00002234 + .word 0x00002234, 0x00002238 + .word 0x00002238, 0x0000223C + .word 0x0000223C, 0x00002240 + .word 0x00002240, 0x00002244 + .word 0x00002244, 0x00002248 + .word 0x00002248, 0x00002258 + .word 0x00002258, 0x0000225C + .word 0x0000225C, 0x00002260 + .word 0x00002260, 0x00002264 + .word 0x00002264, 0x00002268 + .word 0x00002268, 0x0000226C + .word 0x0000226C, 0x00002270 + .word 0x00002270, 0x0000227C + .word 0x0000227C, 0x00002280 + .word 0x00002280, 0x00002284 + .word 0x00002284, 0x0000228C + .word 0x0000228C, 0x00002294 + .word 0x00002294, 0x00002298 + .word 0x00002298, 0x0000229C + .word 0x0000229C, 0x000022A0 + .word 0x000022A0, 0x000022A4 + .word 0x000022A4, 0x000022A8 + .word 0x000022A8, 0x000022AC + .word 0x000022AC, 0x000022B0 + .word 0x000022B0, 0x000022B4 + .word 0x000022B4, 0x000022B8 + .word 0x000022B8, 0x000022BC + .word 0x000022BC, 0x000022C0 + .word 0x000022C0, 0x000022C4 + .word 0x000022C4, 0x000022C8 + .word 0x000022C8, 0x000022CC + .word 0x000022CC, 0x000022D0 + .word 0x000022D0, 0x000022D4 + .word 0x000022D4, 0x000022D8 + .word 0x000022D8, 0x000022DC + .word 0x000022DC, 0x000022E0 + .word 0x000022E0, 0x000022E4 + .word 0x000022E4, 0x000022E8 + .word 0x000022E8, 0x000022EC + .word 0x000022EC, 0x000022F0 + .word 0x000022F0, 0x000022F4 + .word 0x000022F4, 0x000022F8 + .word 0x000022F8, 0x000022FC + .word 0x000022FC, 0x00002300 + .word 0x00002300, 0x00002304 + .word 0x00002304, 0x00002308 + .word 0x00002308, 0x0000230C + .word 0x0000230C, 0x00002310 + .word 0x00002310, 0x00002314 + .word 0x00002314, 0x00002318 + .word 0x00002318, 0x0000231C + .word 0x0000231C, 0x00002320 + .word 0x00002320, 0x00002324 + .word 0x00002324, 0x00002328 + .word 0x00002328, 0x0000232C + .word 0x0000232C, 0x00002330 + .word 0x00002330, 0x00002334 + .word 0x00002334, 0x00002338 + .word 0x00002338, 0x0000233C + .word 0x0000233C, 0x00002340 + .word 0x00002340, 0x00002344 + .word 0x00002344, 0x00002348 + .word 0x00002348, 0x00002350 + .word 0x00002350, 0x00002358 + .word 0x00002358, 0x00002360 + .word 0x00002360, 0x00002364 + .word 0x00002364, 0x00002368 + .word 0x00002368, 0x0000236C + .word 0x0000236C, 0x00002370 + .word 0x00002370, 0x00002374 + .word 0x00002374, 0x00002378 + .word 0x00002378, 0x0000237C + .word 0x0000237C, 0x00002380 + .word 0x00002380, 0x00002384 + .word 0x00002384, 0x00002388 + .word 0x00002388, 0x0000238C + .word 0x0000238C, 0x00002390 + .word 0x00002390, 0x00002394 + .word 0x00002394, 0x00002398 + .word 0x00002398, 0x0000239C + .word 0x0000239C, 0x000023A0 + .word 0x000023A0, 0x000023A4 + .word 0x000023A4, 0x000023A8 + .word 0x000023A8, 0x000023AC + .word 0x000023AC, 0x000023B0 + .word 0x000023B0, 0x000023B4 + .word 0x000023B4, 0x000023B8 + .word 0x000023B8, 0x000023BC + .word 0x000023BC, 0x000023C0 + .word 0x000023C0, 0x000023C4 + .word 0x000023C4, 0x000023C8 + .word 0x000023C8, 0x000023CC + .word 0x000023CC, 0x000023D0 + .word 0x000023D0, 0x000023D4 + .word 0x000023D4, 0x000023D8 + .word 0x000023D8, 0x000023E0 + .word 0x000023E0, 0x000023E4 + .word 0x000023E4, 0x000023E8 + .word 0x000023E8, 0x000023EC + .word 0x000023EC, 0x000023F0 + .word 0x000023F0, 0x000023F4 + .word 0x000023F4, 0x000023F8 + .word 0x000023F8, 0x000023FC + .word 0x000023FC, 0x00002400 + .word 0x00002400, 0x00002408 + .word 0x00002408, 0x00002414 + .word 0x00002414, 0x00002418 + .word 0x00002418, 0x0000241C + .word 0x0000241C, 0x00002420 + .word 0x00002420, 0x00002424 + .word 0x00002424, 0x00002428 + .word 0x00002428, 0x0000242C + .word 0x0000242C, 0x00002434 + .word 0x00002434, 0x00002438 + .word 0x00002438, 0x0000243C + .word 0x0000243C, 0x00002444 + .word 0x00002444, 0x00002448 + .word 0x00002448, 0x0000244C + .word 0x0000244C, 0x00002450 + .word 0x00002450, 0x00002454 + .word 0x00002454, 0x0000245C + .word 0x0000245C, 0x00002460 + .word 0x00002460, 0x00002464 + .word 0x00002464, 0x00002468 + .word 0x00002468, 0x0000246C + .word 0x0000246C, 0x00002470 + .word 0x00002470, 0x00002474 + .word 0x00002474, 0x00002478 + .word 0x00002478, 0x0000247C + .word 0x0000247C, 0x00002480 + .word 0x00002480, 0x00002484 + .word 0x00002484, 0x00002488 + .word 0x00002488, 0x0000248C + .word 0x0000248C, 0x00002490 + .word 0x00002490, 0x00002494 + .word 0x00002494, 0x00002498 + .word 0x00002498, 0x000024AC + .word 0x000024AC, 0x000024C0 + .word 0x000024C0, 0x000024C4 + .word 0x000024C4, 0x000024C8 + .word 0x000024C8, 0x000024CC + .word 0x000024CC, 0x000024D0 + .word 0x000024D0, 0x000024D4 + .word 0x000024D4, 0x000024D8 + .word 0x000024D8, 0x000024DC + .word 0x000024DC, 0x000024E0 + .word 0x000024E0, 0x000024E4 + .word 0x000024E4, 0x000024E8 + .word 0x000024E8, 0x000024EC + .word 0x000024EC, 0x000024F0 + .word 0x000024F0, 0x000024F4 + .word 0x000024F4, 0x000024F8 + .word 0x000024F8, 0x000024FC + .word 0x000024FC, 0x00002500 + .word 0x00002500, 0x00002504 + .word 0x00002504, 0x00002510 + .word 0x00002510, 0x00002514 + .word 0x00002514, 0x00002518 + .word 0x00002518, 0x0000251C + .word 0x0000251C, 0x00002520 + .word 0x00002520, 0x00002524 + .word 0x00002524, 0x00002528 + .word 0x00002528, 0x0000252C + .word 0x0000252C, 0x00002530 + .word 0x00002530, 0x00002534 + .word 0x00002534, 0x00002538 + .word 0x00002538, 0x0000253C + .word 0x0000253C, 0x00002540 + .word 0x00002540, 0x00002544 + .word 0x00002544, 0x00002548 + .word 0x00002548, 0x0000254C + .word 0x0000254C, 0x00002550 + .word 0x00002550, 0x00002554 + .word 0x00002554, 0x00002558 + .word 0x00002558, 0x0000255C + .word 0x0000255C, 0x00002560 + .word 0x00002560, 0x00002564 + .word 0x00002564, 0x00002568 + .word 0x00002568, 0x0000256C + .word 0x0000256C, 0x00002570 + .word 0x00002570, 0x00002574 + .word 0x00002574, 0x00002578 + .word 0x00002578, 0x0000257C + .word 0x0000257C, 0x00002580 + .word 0x00002580, 0x00002584 + .word 0x00002584, 0x00002588 + .word 0x00002588, 0x0000258C + .word 0x0000258C, 0x00002590 + .word 0x00002590, 0x00002594 + .word 0x00002594, 0x00002598 + .word 0x00002598, 0x0000259C + .word 0x0000259C, 0x000025A0 + .word 0x000025A0, 0x000025A4 + .word 0x000025A4, 0x000025AC + .word 0x000025AC, 0x000025BC + .word 0x000025BC, 0x000025C0 + .word 0x000025C0, 0x000025CC + .word 0x000025CC, 0x000025E0 + .word 0x000025E0, 0x000025E4 + .word 0x000025E4, 0x000025EC + .word 0x000025EC, 0x000025F0 + .word 0x000025F0, 0x000025F4 + .word 0x000025F4, 0x000025F8 + .word 0x000025F8, 0x00002600 + .word 0x00002600, 0x00002604 + .word 0x00002604, 0x00002608 + .word 0x00002608, 0x0000260C + .word 0x0000260C, 0x00002610 + .word 0x00002610, 0x00002614 + .word 0x00002614, 0x00002618 + .word 0x00002618, 0x0000261C + .word 0x0000261C, 0x00002620 + .word 0x00002620, 0x00002624 + .word 0x00002624, 0x00002628 + .word 0x00002628, 0x0000262C + .word 0x0000262C, 0x00002630 + .word 0x00002630, 0x00002638 + .word 0x00002638, 0x0000263C + .word 0x0000263C, 0x00002640 + .word 0x00002640, 0x00002644 + .word 0x00002644, 0x00002648 + .word 0x00002648, 0x0000264C + .word 0x0000264C, 0x00002650 + .word 0x00002650, 0x00002654 + .word 0x00002654, 0x0000265C + .word 0x0000265C, 0x00002660 + .word 0x00002660, 0x00002664 + .word 0x00002664, 0x00002668 + .word 0x00002668, 0x0000266C + .word 0x0000266C, 0x00002670 + .word 0x00002670, 0x00002680 + .word 0x00002680, 0x00002684 + .word 0x00002684, 0x00002688 + .word 0x00002688, 0x00002698 + .word 0x00002698, 0x000026A4 + .word 0x000026A4, 0x000026A8 + .word 0x000026A8, 0x000026AC + .word 0x000026AC, 0x000026B0 + .word 0x000026B0, 0x000026B4 + .word 0x000026B4, 0x000026B8 + .word 0x000026B8, 0x000026C0 + .word 0x000026C0, 0x000026C4 + .word 0x000026C4, 0x000026C8 + .word 0x000026C8, 0x000026CC + .word 0x000026CC, 0x000026D0 + .word 0x000026D0, 0x000026D4 + .word 0x000026D4, 0x000026DC + .word 0x000026DC, 0x000026E0 + .word 0x000026E0, 0x000026E4 + .word 0x000026E4, 0x000026E8 + .word 0x000026E8, 0x000026EC + .word 0x000026EC, 0x000026F0 + .word 0x000026F0, 0x000026F4 + .word 0x000026F4, 0x000026F8 + .word 0x000026F8, 0x000026FC + .word 0x000026FC, 0x00002700 + .word 0x00002700, 0x00002708 + .word 0x00002708, 0x00002710 + .word 0x00002710, 0x00002714 + .word 0x00002714, 0x00002718 + .word 0x00002718, 0x0000271C + .word 0x0000271C, 0x00002720 + .word 0x00002720, 0x00002724 + .word 0x00002724, 0x00002728 + .word 0x00002728, 0x0000272C + .word 0x0000272C, 0x00002730 + .word 0x00002730, 0x00002734 + .word 0x00002734, 0x00002738 + .word 0x00002738, 0x0000273C + .word 0x0000273C, 0x00002740 + .word 0x00002740, 0x00002744 + .word 0x00002744, 0x00002748 + .word 0x00002748, 0x0000274C + .word 0x0000274C, 0x00002750 + .word 0x00002750, 0x00002754 + .word 0x00002754, 0x00002758 + .word 0x00002758, 0x0000275C + .word 0x0000275C, 0x00002760 + .word 0x00002760, 0x00002764 + .word 0x00002764, 0x00002768 + .word 0x00002768, 0x0000276C + .word 0x0000276C, 0x00002770 + .word 0x00002770, 0x00002774 + .word 0x00002774, 0x00002778 + .word 0x00002778, 0x0000277C + .word 0x0000277C, 0x00002780 + .word 0x00002780, 0x00002784 + .word 0x00002784, 0x00002788 + .word 0x00002788, 0x0000278C + .word 0x0000278C, 0x00002790 + .word 0x00002790, 0x00002794 + .word 0x00002794, 0x00002798 + .word 0x00002798, 0x000027EC + .word 0x000027EC, 0x000027F0 + .word 0x000027F0, 0x000027F4 + .word 0x000027F4, 0x000027F8 + .word 0x000027F8, 0x000027FC + .word 0x000027FC, 0x00002800 + .word 0x00002800, 0x00002804 + .word 0x00002804, 0x00002808 + .word 0x00002808, 0x0000280C + .word 0x0000280C, 0x00002810 + .word 0x00002810, 0x00002814 + .word 0x00002814, 0x00002818 + .word 0x00002818, 0x0000281C + .word 0x0000281C, 0x00002820 + .word 0x00002820, 0x00002824 + .word 0x00002824, 0x00002828 + .word 0x00002828, 0x0000282C + .word 0x0000282C, 0x00002830 + .word 0x00002830, 0x00002834 + .word 0x00002834, 0x00002838 + .word 0x00002838, 0x0000283C + .word 0x0000283C, 0x00002840 + .word 0x00002840, 0x00002844 + .word 0x00002844, 0x00002848 + .word 0x00002848, 0x0000284C + .word 0x0000284C, 0x00002850 + .word 0x00002850, 0x00002854 + .word 0x00002854, 0x00002858 + .word 0x00002858, 0x0000285C + .word 0x0000285C, 0x00002860 + .word 0x00002860, 0x00002864 + .word 0x00002864, 0x00002868 + .word 0x00002868, 0x0000286C + .word 0x0000286C, 0x00002870 + .word 0x00002870, 0x00002874 + .word 0x00002874, 0x00002878 + .word 0x00002878, 0x0000287C + .word 0x0000287C, 0x00002880 + .word 0x00002880, 0x00002884 + .word 0x00002884, 0x00002888 + .word 0x00002888, 0x0000288C + .word 0x0000288C, 0x00002890 + .word 0x00002890, 0x00002894 + .word 0x00002894, 0x00002898 + .word 0x00002898, 0x0000289C + .word 0x0000289C, 0x000028A0 + .word 0x000028A0, 0x000028A4 + .word 0x000028A4, 0x000028A8 + .word 0x000028A8, 0x000028AC + .word 0x000028AC, 0x000028B0 + .word 0x000028B0, 0x000028B4 + .word 0x000028B4, 0x000028B8 + .word 0x000028B8, 0x000028BC + .word 0x000028BC, 0x000028C0 + .word 0x000028C0, 0x000028C4 + .word 0x000028C4, 0x000028CC + .word 0x000028CC, 0x000028D0 + .word 0x000028D0, 0x000028D4 + .word 0x000028D4, 0x000028D8 + .word 0x000028D8, 0x000028DC + .word 0x000028DC, 0x000028E0 + .word 0x000028E0, 0x000028E4 + .word 0x000028E4, 0x000028E8 + .word 0x000028E8, 0x000028EC + .word 0x000028EC, 0x000028F0 + .word 0x000028F0, 0x000028F4 + .word 0x000028F4, 0x000028F8 + .word 0x000028F8, 0x000028FC + .word 0x000028FC, 0x00002900 + .word 0x00002900, 0x00002904 + .word 0x00002904, 0x00002908 + .word 0x00002908, 0x0000290C + .word 0x0000290C, 0x00002910 + .word 0x00002910, 0x00002914 + .word 0x00002914, 0x00002918 + .word 0x00002918, 0x0000291C + .word 0x0000291C, 0x00002920 + .word 0x00002920, 0x00002924 + .word 0x00002924, 0x00002928 + .word 0x00002928, 0x0000292C + .word 0x0000292C, 0x00002930 + .word 0x00002930, 0x00002934 + .word 0x00002934, 0x00002938 + .word 0x00002938, 0x0000293C + .word 0x0000293C, 0x00002940 + .word 0x00002940, 0x00002944 + .word 0x00002944, 0x00002948 + .word 0x00002948, 0x0000294C + .word 0x0000294C, 0x00002950 + .word 0x00002950, 0x00002954 + .word 0x00002954, 0x00002958 + .word 0x00002958, 0x0000295C + .word 0x0000295C, 0x00002960 + .word 0x00002960, 0x00002964 + .word 0x00002964, 0x00002968 + .word 0x00002968, 0x0000296C + .word 0x0000296C, 0x00002970 + .word 0x00002970, 0x00002974 + .word 0x00002974, 0x00002978 + .word 0x00002978, 0x0000297C + .word 0x0000297C, 0x00002980 + .word 0x00002980, 0x00002984 + .word 0x00002984, 0x00002988 + .word 0x00002988, 0x0000298C + .word 0x0000298C, 0x00002990 + .word 0x00002990, 0x00002994 + .word 0x00002994, 0x00002998 + .word 0x00002998, 0x0000299C + .word 0x0000299C, 0x000029A0 + .word 0x000029A0, 0x000029A4 + .word 0x000029A4, 0x000029A8 + .word 0x000029A8, 0x000029AC + .word 0x000029AC, 0x000029B0 + .word 0x000029B0, 0x000029B4 + .word 0x000029B4, 0x000029B8 + .word 0x000029B8, 0x000029BC + .word 0x000029BC, 0x000029C0 + .word 0x000029C0, 0x000029C4 + .word 0x000029C4, 0x000029C8 + .word 0x000029C8, 0x000029CC + .word 0x000029CC, 0x000029D0 + .word 0x000029D0, 0x000029D4 + .word 0x000029D4, 0x000029D8 + .word 0x000029D8, 0x000029DC + .word 0x000029DC, 0x000029E0 + .word 0x000029E0, 0x000029E4 + .word 0x000029E4, 0x000029E8 + .word 0x000029E8, 0x000029EC + .word 0x000029EC, 0x000029F0 + .word 0x000029F0, 0x000029F4 + .word 0x000029F4, 0x000029F8 + .word 0x000029F8, 0x000029FC + .word 0x000029FC, 0x00002A00 + .word 0x00002A00, 0x00002A04 + .word 0x00002A04, 0x00002A08 + .word 0x00002A08, 0x00002A0C + .word 0x00002A0C, 0x00002A10 + .word 0x00002A10, 0x00002A14 + .word 0x00002A14, 0x00002A18 + .word 0x00002A18, 0x00002A1C + .word 0x00002A1C, 0x00002A20 + .word 0x00002A20, 0x00002A24 + .word 0x00002A24, 0x00002A28 + .word 0x00002A28, 0x00002A2C + .word 0x00002A2C, 0x00002A30 + .word 0x00002A30, 0x00002A34 + .word 0x00002A34, 0x00002A38 + .word 0x00002A38, 0x00002A3C + .word 0x00002A3C, 0x00002A40 + .word 0x00002A40, 0x00002A44 + .word 0x00002A44, 0x00002A48 + .word 0x00002A48, 0x00002A4C + .word 0x00002A4C, 0x00002A50 + .word 0x00002A50, 0x00002A54 + .word 0x00002A54, 0x00002A58 + .word 0x00002A58, 0x00002A5C + .word 0x00002A5C, 0x00002A60 + .word 0x00002A60, 0x00002A64 + .word 0x00002A64, 0x00002A68 + .word 0x00002A68, 0x00002A6C + .word 0x00002A6C, 0x00002A70 + .word 0x00002A70, 0x00002A74 + .word 0x00002A74, 0x00002A78 + .word 0x00002A78, 0x00002A7C + .word 0x00002A7C, 0x00002A80 + .word 0x00002A80, 0x00002A84 + .word 0x00002A84, 0x00002A88 + .word 0x00002A88, 0x00002A8C + .word 0x00002A8C, 0x00002A90 + .word 0x00002A90, 0x00002A94 + .word 0x00002A94, 0x00002A98 + .word 0x00002A98, 0x00002A9C + .word 0x00002A9C, 0x00002AA0 + .word 0x00002AA0, 0x00002AA4 + .word 0x00002AA4, 0x00002AA8 + .word 0x00002AA8, 0x00002AAC + .word 0x00002AAC, 0x00002AB0 + .word 0x00002AB0, 0x00002AB4 + .word 0x00002AB4, 0x00002AB8 + .word 0x00002AB8, 0x00002ABC + .word 0x00002ABC, 0x00002AC0 + .word 0x00002AC0, 0x00002AC4 + .word 0x00002AC4, 0x00002AC8 + .word 0x00002AC8, 0x00002AD0 + .word 0x00002AD0, 0x00002AD4 + .word 0x00002AD4, 0x00002AD8 + .word 0x00002AD8, 0x00002ADC + .word 0x00002ADC, 0x00002AE0 + .word 0x00002AE0, 0x00002AE4 + .word 0x00002AE4, 0x00002AE8 + .word 0x00002AE8, 0x00002AF0 + .word 0x00002AF0, 0x00002AF4 + .word 0x00002AF4, 0x00002AF8 + .word 0x00002AF8, 0x00002AFC + .word 0x00002AFC, 0x00002B04 + .word 0x00002B04, 0x00002B0C + .word 0x00002B0C, 0x00002B10 + .word 0x00002B10, 0x00002B14 + .word 0x00002B14, 0x00002B18 + .word 0x00002B18, 0x00002B1C + .word 0x00002B1C, 0x00002B20 + .word 0x00002B20, 0x00002B24 + .word 0x00002B24, 0x00002B28 + .word 0x00002B28, 0x00002B2C + .word 0x00002B2C, 0x00002B30 + .word 0x00002B30, 0x00002B34 + .word 0x00002B34, 0x00002B38 + .word 0x00002B38, 0x00002B3C + .word 0x00002B3C, 0x00002B40 + .word 0x00002B40, 0x00002B44 + .word 0x00002B44, 0x00002B48 + .word 0x00002B48, 0x00002B4C + .word 0x00002B4C, 0x00002B50 + .word 0x00002B50, 0x00002B54 + .word 0x00002B54, 0x00002B5C + .word 0x00002B5C, 0x00002B60 + .word 0x00002B60, 0x00002B64 + .word 0x00002B64, 0x00002B68 + .word 0x00002B68, 0x00002B6C + .word 0x00002B6C, 0x00002B70 + .word 0x00002B70, 0x00002B74 + .word 0x00002B74, 0x00002B78 + .word 0x00002B78, 0x00002B7C + .word 0x00002B7C, 0x00002B80 + .word 0x00002B80, 0x00002B84 + .word 0x00002B84, 0x00002B88 + .word 0x00002B88, 0x00002B8C + .word 0x00002B8C, 0x00002B90 + .word 0x00002B90, 0x00002B94 + .word 0x00002B94, 0x00002B98 + .word 0x00002B98, 0x00002B9C + .word 0x00002B9C, 0x00002BA0 + .word 0x00002BA0, 0x00002BA4 + .word 0x00002BA4, 0x00002BA8 + .word 0x00002BA8, 0x00002BAC + .word 0x00002BAC, 0x00002BB0 + .word 0x00002BB0, 0x00002BB4 + .word 0x00002BB4, 0x00002BB8 + .word 0x00002BB8, 0x00002BBC + .word 0x00002BBC, 0x00002BC0 + .word 0x00002BC0, 0x00002BC4 + .word 0x00002BC4, 0x00002BC8 + .word 0x00002BC8, 0x00002BCC + .word 0x00002BCC, 0x00002BD0 + .word 0x00002BD0, 0x00002BD4 + .word 0x00002BD4, 0x00002BD8 + .word 0x00002BD8, 0x00002BDC + .word 0x00002BDC, 0x00002BE0 + .word 0x00002BE0, 0x00002BE4 + .word 0x00002BE4, 0x00002BE8 + .word 0x00002BE8, 0x00002BEC + .word 0x00002BEC, 0x00002BF0 + .word 0x00002BF0, 0x00002BF4 + .word 0x00002BF4, 0x00002BF8 + .word 0x00002BF8, 0x00002BFC + .word 0x00002BFC, 0x00002C00 + .word 0x00002C00, 0x00002C04 + .word 0x00002C04, 0x00002C08 + .word 0x00002C08, 0x00002C0C + .word 0x00002C0C, 0x00002C10 + .word 0x00002C10, 0x00002C14 + .word 0x00002C14, 0x00002C18 + .word 0x00002C18, 0x00002C1C + .word 0x00002C1C, 0x00002C20 + .word 0x00002C20, 0x00002C24 + .word 0x00002C24, 0x00002C2C + .word 0x00002C2C, 0x00002C34 + .word 0x00002C34, 0x00002C38 + .word 0x00002C38, 0x00002C3C + .word 0x00002C3C, 0x00002C40 + .word 0x00002C40, 0x00002C44 + .word 0x00002C44, 0x00002C48 + .word 0x00002C48, 0x00002C4C + .word 0x00002C4C, 0x00002C50 + .word 0x00002C50, 0x00002C54 + .word 0x00002C54, 0x00002C58 + .word 0x00002C58, 0x00002C5C + .word 0x00002C5C, 0x00002C60 + .word 0x00002C60, 0x00002C64 + .word 0x00002C64, 0x00002C68 + .word 0x00002C68, 0x00002C6C + .word 0x00002C6C, 0x00002C70 + .word 0x00002C70, 0x00002C74 + .word 0x00002C74, 0x00002C78 + .word 0x00002C78, 0x00002C7C + .word 0x00002C7C, 0x00002C80 + .word 0x00002C80, 0x00002C84 + .word 0x00002C84, 0x00002C88 + .word 0x00002C88, 0x00002C8C + .word 0x00002C8C, 0x00002C90 + .word 0x00002C90, 0x00002C94 + .word 0x00002C94, 0x00002C98 + .word 0x00002C98, 0x00002C9C + .word 0x00002C9C, 0x00002CA0 + .word 0x00002CA0, 0x00002CA4 + .word 0x00002CA4, 0x00002CA8 + .word 0x00002CA8, 0x00002CAC + .word 0x00002CAC, 0x00002CB0 + .word 0x00002CB0, 0x00002CB8 + .word 0x00002CB8, 0x00002CBC + .word 0x00002CBC, 0x00002CC0 + .word 0x00002CC0, 0x00002CC4 + .word 0x00002CC4, 0x00002CC8 + .word 0x00002CC8, 0x00002CCC + .word 0x00002CCC, 0x00002CD0 + .word 0x00002CD0, 0x00002CD4 + .word 0x00002CD4, 0x00002CD8 + .word 0x00002CD8, 0x00002CDC + .word 0x00002CDC, 0x00002CE0 + .word 0x00002CE0, 0x00002CE4 + .word 0x00002CE4, 0x00002CE8 + .word 0x00002CE8, 0x00002CEC + .word 0x00002CEC, 0x00002CF0 + .word 0x00002CF0, 0x00002CF4 + .word 0x00002CF4, 0x00002CF8 + .word 0x00002CF8, 0x00002D00 + .word 0x00002D00, 0x00002D04 + .word 0x00002D04, 0x00002D08 + .word 0x00002D08, 0x00002D0C + .word 0x00002D0C, 0x00002D10 + .word 0x00002D10, 0x00002D14 + .word 0x00002D14, 0x00002D18 + .word 0x00002D18, 0x00002D1C + .word 0x00002D1C, 0x00002D20 + .word 0x00002D20, 0x00002D24 + .word 0x00002D24, 0x00002D28 + .word 0x00002D28, 0x00002D2C + .word 0x00002D2C, 0x00002D30 + .word 0x00002D30, 0x00002D34 + .word 0x00002D34, 0x00002D38 + .word 0x00002D38, 0x00002D3C + .word 0x00002D3C, 0x00002D40 + .word 0x00002D40, 0x00002D44 + .word 0x00002D44, 0x00002D48 + .word 0x00002D48, 0x00002D4C + .word 0x00002D4C, 0x00002D50 + .word 0x00002D50, 0x00002D54 + .word 0x00002D54, 0x00002D58 + .word 0x00002D58, 0x00002D5C + .word 0x00002D5C, 0x00002D60 + .word 0x00002D60, 0x00002D64 + .word 0x00002D64, 0x00002D68 + .word 0x00002D68, 0x00002D6C + .word 0x00002D6C, 0x00002D70 + .word 0x00002D70, 0x00002D74 + .word 0x00002D74, 0x00002D78 + .word 0x00002D78, 0x00002D7C + .word 0x00002D7C, 0x00002D80 + .word 0x00002D80, 0x00002D84 + .word 0x00002D84, 0x00002D8C + .word 0x00002D8C, 0x00002D90 + .word 0x00002D90, 0x00002D94 + .word 0x00002D94, 0x00002D98 + .word 0x00002D98, 0x00002D9C + .word 0x00002D9C, 0x00002DA0 + .word 0x00002DA0, 0x00002DA4 + .word 0x00002DA4, 0x00002DA8 + .word 0x00002DA8, 0x00002DAC + .word 0x00002DAC, 0x00002DB0 + .word 0x00002DB0, 0x00002DB4 + .word 0x00002DB4, 0x00002DB8 + .word 0x00002DB8, 0x00002DBC + .word 0x00002DBC, 0x00002DC0 + .word 0x00002DC0, 0x00002DC4 + .word 0x00002DC4, 0x00002DC8 + .word 0x00002DC8, 0x00002DCC + .word 0x00002DCC, 0x00002DD0 + .word 0x00002DD0, 0x00002DD4 + .word 0x00002DD4, 0x00002DD8 + .word 0x00002DD8, 0x00002DDC + .word 0x00002DDC, 0x00002DE0 + .word 0x00002DE0, 0x00002DE4 + .word 0x00002DE4, 0x00002DE8 + .word 0x00002DE8, 0x00002DEC + .word 0x00002DEC, 0x00002DF0 + .word 0x00002DF0, 0x00002DF4 + .word 0x00002DF4, 0x00002DF8 + .word 0x00002DF8, 0x00002DFC + .word 0x00002DFC, 0x00002E00 + .word 0x00002E00, 0x00002E04 + .word 0x00002E04, 0x00002E08 + .word 0x00002E08, 0x00002E0C + .word 0x00002E0C, 0x00002E10 + .word 0x00002E10, 0x00002E14 + .word 0x00002E14, 0x00002E18 + .word 0x00002E18, 0x00002E1C + .word 0x00002E1C, 0x00002E20 + .word 0x00002E20, 0x00002E24 + .word 0x00002E24, 0x00002E28 + .word 0x00002E28, 0x00002E2C + .word 0x00002E2C, 0x00002E30 + .word 0x00002E30, 0x00002E34 + .word 0x00002E34, 0x00002E38 + .word 0x00002E38, 0x00002E3C + .word 0x00002E3C, 0x00002E40 + .word 0x00002E40, 0x00002E44 + .word 0x00002E44, 0x00002E48 + .word 0x00002E48, 0x00002E50 + .word 0x00002E50, 0x00002E54 + .word 0x00002E54, 0x00002E5C + .word 0x00002E5C, 0x00002E64 + .word 0x00002E64, 0x00002E68 + .word 0x00002E68, 0x00002E6C + .word 0x00002E6C, 0x00002E70 + .word 0x00002E70, 0x00002E74 + .word 0x00002E74, 0x00002E78 + .word 0x00002E78, 0x00002E7C + .word 0x00002E7C, 0x00002E80 + .word 0x00002E80, 0x00002E84 + .word 0x00002E84, 0x00002E88 + .word 0x00002E88, 0x00002E8C + .word 0x00002E8C, 0x00002E90 + .word 0x00002E90, 0x00002E98 + .word 0x00002E98, 0x00002E9C + .word 0x00002E9C, 0x00002EA0 + .word 0x00002EA0, 0x00002EA8 + .word 0x00002EA8, 0x00002EAC + .word 0x00002EAC, 0x00002EB0 + .word 0x00002EB0, 0x00002EB4 + .word 0x00002EB4, 0x00002EB8 + .word 0x00002EB8, 0x00002EC0 + .word 0x00002EC0, 0x00002EC4 + .word 0x00002EC4, 0x00002EC8 + .word 0x00002EC8, 0x00002ECC + .word 0x00002ECC, 0x00002ED0 + .word 0x00002ED0, 0x00002ED4 + .word 0x00002ED4, 0x00002ED8 + .word 0x00002ED8, 0x00002EDC + .word 0x00002EDC, 0x00002EE0 + .word 0x00002EE0, 0x00002EE4 + .word 0x00002EE4, 0x00002EE8 + .word 0x00002EE8, 0x00002EEC + .word 0x00002EEC, 0x00002EF0 + .word 0x00002EF0, 0x00002EF4 + .word 0x00002EF4, 0x00002EF8 + .word 0x00002EF8, 0x00002EFC + .word 0x00002EFC, 0x00002F00 + .word 0x00002F00, 0x00002F04 + .word 0x00002F04, 0x00002F08 + .word 0x00002F08, 0x00002F0C + .word 0x00002F0C, 0x00002F10 + .word 0x00002F10, 0x00002F14 + .word 0x00002F14, 0x00002F18 + .word 0x00002F18, 0x00002F1C + .word 0x00002F1C, 0x00002F20 + .word 0x00002F20, 0x00002F24 + .word 0x00002F24, 0x00002F28 + .word 0x00002F28, 0x00002F2C + .word 0x00002F2C, 0x00002F30 + .word 0x00002F30, 0x00002F34 + .word 0x00002F34, 0x00002F38 + .word 0x00002F38, 0x00002F40 + .word 0x00002F40, 0x00002F44 + .word 0x00002F44, 0x00002F4C + .word 0x00002F4C, 0x00002F50 + .word 0x00002F50, 0x00002F58 + .word 0x00002F58, 0x00002F5C + .word 0x00002F5C, 0x00002F60 + .word 0x00002F60, 0x00002F64 + .word 0x00002F64, 0x00002F68 + .word 0x00002F68, 0x00002F6C + .word 0x00002F6C, 0x00002F70 + .word 0x00002F70, 0x00002F74 + .word 0x00002F74, 0x00002F78 + .word 0x00002F78, 0x00002F7C + .word 0x00002F7C, 0x00002F80 + .word 0x00002F80, 0x00002F84 + .word 0x00002F84, 0x00002F88 + .word 0x00002F88, 0x00002F8C + .word 0x00002F8C, 0x00002F90 + .word 0x00002F90, 0x00002F94 + .word 0x00002F94, 0x00002F98 + .word 0x00002F98, 0x00002F9C + .word 0x00002F9C, 0x00002FA0 + .word 0x00002FA0, 0x00002FA4 + .word 0x00002FA4, 0x00002FA8 + .word 0x00002FA8, 0x00002FAC + .word 0x00002FAC, 0x00002FB0 + .word 0x00002FB0, 0x00002FB4 + .word 0x00002FB4, 0x00002FB8 + .word 0x00002FB8, 0x00002FBC + .word 0x00002FBC, 0x00002FC0 + .word 0x00002FC0, 0x00002FC4 + .word 0x00002FC4, 0x00002FC8 + .word 0x00002FC8, 0x00002FCC + .word 0x00002FCC, 0x00002FD0 + .word 0x00002FD0, 0x00002FD4 + .word 0x00002FD4, 0x00002FD8 + .word 0x00002FD8, 0x00002FDC + .word 0x00002FDC, 0x00002FE0 + .word 0x00002FE0, 0x00002FE4 + .word 0x00002FE4, 0x00002FE8 + .word 0x00002FE8, 0x00002FEC + .word 0x00002FEC, 0x00002FF0 + .word 0x00002FF0, 0x00002FF4 + .word 0x00002FF4, 0x00002FF8 + .word 0x00002FF8, 0x00002FFC + .word 0x00002FFC, 0x00003000 + .word 0x00003000, 0x00003004 + .word 0x00003004, 0x00003008 + .word 0x00003008, 0x0000300C + .word 0x0000300C, 0x00003010 + .word 0x00003010, 0x00003014 + .word 0x00003014, 0x00003018 + .word 0x00003018, 0x0000301C + .word 0x0000301C, 0x00003020 + .word 0x00003020, 0x00003024 + .word 0x00003024, 0x00003028 + .word 0x00003028, 0x0000302C + .word 0x0000302C, 0x00003030 + .word 0x00003030, 0x00003034 + .word 0x00003034, 0x00003038 + .word 0x00003038, 0x0000303C + .word 0x0000303C, 0x00003040 + .word 0x00003040, 0x00003044 + .word 0x00003044, 0x00003048 + .word 0x00003048, 0x0000304C + .word 0x0000304C, 0x00003050 + .word 0x00003050, 0x00003054 + .word 0x00003054, 0x00003058 + .word 0x00003058, 0x00003060 + .word 0x00003060, 0x00003064 + .word 0x00003064, 0x00003068 + .word 0x00003068, 0x0000306C + .word 0x0000306C, 0x00003070 + .word 0x00003070, 0x00003074 + .word 0x00003074, 0x00003078 + .word 0x00003078, 0x0000307C + .word 0x0000307C, 0x00003080 + .word 0x00003080, 0x00003084 + .word 0x00003084, 0x00003090 + .word 0x00003090, 0x00003094 + .word 0x00003094, 0x00003098 + .word 0x00003098, 0x0000309C + .word 0x0000309C, 0x000030A4 + .word 0x000030A4, 0x000030A8 + .word 0x000030A8, 0x000030C0 + .word 0x000030C0, 0x000030D0 + .word 0x000030D0, 0x000030D4 + .word 0x000030D4, 0x000030D8 + .word 0x000030D8, 0x000030DC + .word 0x000030DC, 0x000030E4 + .word 0x000030E4, 0x000030E8 + .word 0x000030E8, 0x000030EC + .word 0x000030EC, 0x000030F0 + .word 0x000030F0, 0x000030F4 + .word 0x000030F4, 0x000030F8 + .word 0x000030F8, 0x00003100 + .word 0x00003100, 0x00003104 + .word 0x00003104, 0x00003110 + .word 0x00003110, 0x0000311C + .word 0x0000311C, 0x00003120 + .word 0x00003120, 0x00003124 + .word 0x00003124, 0x00003128 + .word 0x00003128, 0x0000312C + .word 0x0000312C, 0x00003130 + .word 0x00003130, 0x00003134 + .word 0x00003134, 0x00003138 + .word 0x00003138, 0x0000313C + .word 0x0000313C, 0x00003144 + .word 0x00003144, 0x00003148 + .word 0x00003148, 0x00003150 + .word 0x00003150, 0x0000315C + .word 0x0000315C, 0x00003160 + .word 0x00003160, 0x00003164 + .word 0x00003164, 0x00003168 + .word 0x00003168, 0x0000316C + .word 0x0000316C, 0x00003170 + .word 0x00003170, 0x00003174 + .word 0x00003174, 0x00003190 + .word 0x00003190, 0x00003198 + .word 0x00003198, 0x0000319C + .word 0x0000319C, 0x000031A0 + .word 0x000031A0, 0x000031A4 + .word 0x000031A4, 0x000031A8 + .word 0x000031A8, 0x000031AC + .word 0x000031AC, 0x000031B0 + .word 0x000031B0, 0x000031B4 + .word 0x000031B4, 0x000031B8 + .word 0x000031B8, 0x000031BC + .word 0x000031BC, 0x000031C0 + .word 0x000031C0, 0x000031C4 + .word 0x000031C4, 0x000031C8 + .word 0x000031C8, 0x000031CC + .word 0x000031CC, 0x000031D0 + .word 0x000031D0, 0x000031D4 + .word 0x000031D4, 0x000031D8 + .word 0x000031D8, 0x000031E4 + .word 0x000031E4, 0x000031EC + .word 0x000031EC, 0x000031F0 + .word 0x000031F0, 0x00003200 + .word 0x00003200, 0x00003204 + .word 0x00003204, 0x00003208 + .word 0x00003208, 0x0000320C + .word 0x0000320C, 0x00003210 + .word 0x00003210, 0x00003214 + .word 0x00003214, 0x00003218 + .word 0x00003218, 0x00003220 + .word 0x00003220, 0x00003224 + .word 0x00003224, 0x00003228 + .word 0x00003228, 0x0000322C + .word 0x0000322C, 0x00003230 + .word 0x00003230, 0x00003234 + .word 0x00003234, 0x00003238 + .word 0x00003238, 0x0000323C + .word 0x0000323C, 0x00003244 + .word 0x00003244, 0x00003248 + .word 0x00003248, 0x0000324C + .word 0x0000324C, 0x00003254 + .word 0x00003254, 0x00003258 + .word 0x00003258, 0x00003260 + .word 0x00003260, 0x00003264 + .word 0x00003264, 0x00003268 + .word 0x00003268, 0x0000326C + .word 0x0000326C, 0x00003270 + .word 0x00003270, 0x00003274 + .word 0x00003274, 0x00003278 + .word 0x00003278, 0x0000327C + .word 0x0000327C, 0x00003280 + .word 0x00003280, 0x00003284 + .word 0x00003284, 0x00003288 + .word 0x00003288, 0x0000328C + .word 0x0000328C, 0x00003290 + .word 0x00003290, 0x00003294 + .word 0x00003294, 0x00003298 + .word 0x00003298, 0x0000329C + .word 0x0000329C, 0x000032A0 + .word 0x000032A0, 0x000032A4 + .word 0x000032A4, 0x000032AC + .word 0x000032AC, 0x000032B0 + .word 0x000032B0, 0x000032B4 + .word 0x000032B4, 0x000032B8 + .word 0x000032B8, 0x000032C0 + .word 0x000032C0, 0x000032C4 + .word 0x000032C4, 0x000032C8 + .word 0x000032C8, 0x000032CC + .word 0x000032CC, 0x000032D0 + .word 0x000032D0, 0x000032D4 + .word 0x000032D4, 0x000032D8 + .word 0x000032D8, 0x000032DC + .word 0x000032DC, 0x000032E0 + .word 0x000032E0, 0x000032E4 + .word 0x000032E4, 0x000032E8 + .word 0x000032E8, 0x000032EC + .word 0x000032EC, 0x000032F0 + .word 0x000032F0, 0x000032F4 + .word 0x000032F4, 0x000032F8 + .word 0x000032F8, 0x000032FC + .word 0x000032FC, 0x00003300 + .word 0x00003300, 0x00003304 + .word 0x00003304, 0x00003308 + .word 0x00003308, 0x0000330C + .word 0x0000330C, 0x00003310 + .word 0x00003310, 0x00003314 + .word 0x00003314, 0x00003318 + .word 0x00003318, 0x0000331C + .word 0x0000331C, 0x00003320 + .word 0x00003320, 0x00003324 + .word 0x00003324, 0x00003328 + .word 0x00003328, 0x0000332C + .word 0x0000332C, 0x00003330 + .word 0x00003330, 0x00003334 + .word 0x00003334, 0x00003338 + .word 0x00003338, 0x0000333C + .word 0x0000333C, 0x00003340 + .word 0x00003340, 0x00003344 + .word 0x00003344, 0x00003348 + .word 0x00003348, 0x00003350 + .word 0x00003350, 0x0000335C + .word 0x0000335C, 0x00003364 + .word 0x00003364, 0x00003368 + .word 0x00003368, 0x0000336C + .word 0x0000336C, 0x00003370 + .word 0x00003370, 0x00003374 + .word 0x00003374, 0x00003378 + .word 0x00003378, 0x0000337C + .word 0x0000337C, 0x00003380 + .word 0x00003380, 0x00003384 + .word 0x00003384, 0x00003390 + .word 0x00003390, 0x00003394 + .word 0x00003394, 0x00003398 + .word 0x00003398, 0x0000339C + .word 0x0000339C, 0x000033A0 + .word 0x000033A0, 0x000033A4 + .word 0x000033A4, 0x000033A8 + .word 0x000033A8, 0x000033B0 + .word 0x000033B0, 0x000033B4 + .word 0x000033B4, 0x000033B8 + .word 0x000033B8, 0x000033C0 + .word 0x000033C0, 0x000033C4 + .word 0x000033C4, 0x000033CC + .word 0x000033CC, 0x000033D0 + .word 0x000033D0, 0x000033D4 + .word 0x000033D4, 0x000033D8 + .word 0x000033D8, 0x000033DC + .word 0x000033DC, 0x000033E0 + .word 0x000033E0, 0x000033E8 + .word 0x000033E8, 0x000033F8 + .word 0x000033F8, 0x000033FC + .word 0x000033FC, 0x00003400 + .word 0x00003400, 0x00003404 + .word 0x00003404, 0x00003408 + .word 0x00003408, 0x0000340C + .word 0x0000340C, 0x00003418 + .word 0x00003418, 0x0000341C + .word 0x0000341C, 0x00003420 + .word 0x00003420, 0x00003424 + .word 0x00003424, 0x00003428 + .word 0x00003428, 0x0000342C + .word 0x0000342C, 0x00003434 + .word 0x00003434, 0x0000343C + .word 0x0000343C, 0x00003440 + .word 0x00003440, 0x00003444 + .word 0x00003444, 0x0000344C + .word 0x0000344C, 0x00003454 + .word 0x00003454, 0x00003458 + .word 0x00003458, 0x0000345C + .word 0x0000345C, 0x00003460 + .word 0x00003460, 0x00003464 + .word 0x00003464, 0x00003468 + .word 0x00003468, 0x0000346C + .word 0x0000346C, 0x00003470 + .word 0x00003470, 0x00003474 + .word 0x00003474, 0x00003478 + .word 0x00003478, 0x0000347C + .word 0x0000347C, 0x00003480 + .word 0x00003480, 0x00003484 + .word 0x00003484, 0x00003488 + .word 0x00003488, 0x0000348C + .word 0x0000348C, 0x00003490 + .word 0x00003490, 0x00003494 + .word 0x00003494, 0x00003498 + .word 0x00003498, 0x0000349C + .word 0x0000349C, 0x000034A0 + .word 0x000034A0, 0x000034A4 + .word 0x000034A4, 0x000034A8 + .word 0x000034A8, 0x000034AC + .word 0x000034AC, 0x000034B0 + .word 0x000034B0, 0x000034B4 + .word 0x000034B4, 0x000034B8 + .word 0x000034B8, 0x000034BC + .word 0x000034BC, 0x000034C0 + .word 0x000034C0, 0x000034C4 + .word 0x000034C4, 0x000034C8 + .word 0x000034C8, 0x000034CC + .word 0x000034CC, 0x000034D0 + .word 0x000034D0, 0x000034D4 + .word 0x000034D4, 0x000034D8 + .word 0x000034D8, 0x000034DC + .word 0x000034DC, 0x000034E0 + .word 0x000034E0, 0x000034E4 + .word 0x000034E4, 0x000034E8 + .word 0x000034E8, 0x000034EC + .word 0x000034EC, 0x000034F0 + .word 0x000034F0, 0x000034F4 + .word 0x000034F4, 0x000034F8 + .word 0x000034F8, 0x000034FC + .word 0x000034FC, 0x00003500 + .word 0x00003500, 0x00003504 + .word 0x00003504, 0x00003508 + .word 0x00003508, 0x00003510 + .word 0x00003510, 0x00003518 + .word 0x00003518, 0x0000351C + .word 0x0000351C, 0x00003520 + .word 0x00003520, 0x00003524 + .word 0x00003524, 0x00003528 + .word 0x00003528, 0x0000352C + .word 0x0000352C, 0x00003530 + .word 0x00003530, 0x00003534 + .word 0x00003534, 0x00003538 + .word 0x00003538, 0x0000353C + .word 0x0000353C, 0x00003540 + .word 0x00003540, 0x00003544 + .word 0x00003544, 0x00003548 + .word 0x00003548, 0x0000354C + .word 0x0000354C, 0x00003550 + .word 0x00003550, 0x00003554 + .word 0x00003554, 0x00003558 + .word 0x00003558, 0x0000355C + .word 0x0000355C, 0x00003560 + .word 0x00003560, 0x00003568 + .word 0x00003568, 0x0000356C + .word 0x0000356C, 0x00003570 + .word 0x00003570, 0x00003574 + .word 0x00003574, 0x00003578 + .word 0x00003578, 0x00003580 + .word 0x00003580, 0x00003584 + .word 0x00003584, 0x00003588 + .word 0x00003588, 0x0000358C + .word 0x0000358C, 0x00003594 + .word 0x00003594, 0x00003598 + .word 0x00003598, 0x0000359C + .word 0x0000359C, 0x000035A0 + .word 0x000035A0, 0x000035AC + .word 0x000035AC, 0x000035B0 + .word 0x000035B0, 0x000035B4 + .word 0x000035B4, 0x000035B8 + .word 0x000035B8, 0x000035BC + .word 0x000035BC, 0x000035C0 + .word 0x000035C0, 0x000035C4 + .word 0x000035C4, 0x000035C8 + .word 0x000035C8, 0x000035CC + .word 0x000035CC, 0x000035D4 + .word 0x000035D4, 0x000035E0 + .word 0x000035E0, 0x000035E4 + .word 0x000035E4, 0x000035E8 + .word 0x000035E8, 0x000035F0 + .word 0x000035F0, 0x000035F8 + .word 0x000035F8, 0x000035FC + .word 0x000035FC, 0x00003600 + .word 0x00003600, 0x0000360C + .word 0x0000360C, 0x00003614 + .word 0x00003614, 0x00003618 + .word 0x00003618, 0x0000361C + .word 0x0000361C, 0x00003620 + .word 0x00003620, 0x00003624 + .word 0x00003624, 0x00003628 + .word 0x00003628, 0x0000362C + .word 0x0000362C, 0x00003630 + .word 0x00003630, 0x00003634 + .word 0x00003634, 0x00003638 + .word 0x00003638, 0x0000363C + .word 0x0000363C, 0x00003640 + .word 0x00003640, 0x00003644 + .word 0x00003644, 0x00003648 + .word 0x00003648, 0x0000364C + .word 0x0000364C, 0x00003650 + .word 0x00003650, 0x00003654 + .word 0x00003654, 0x00003658 + .word 0x00003658, 0x0000365C + .word 0x0000365C, 0x00003660 + .word 0x00003660, 0x00003664 + .word 0x00003664, 0x00003668 + .word 0x00003668, 0x0000366C + .word 0x0000366C, 0x00003670 + .word 0x00003670, 0x00003674 + .word 0x00003674, 0x00003678 + .word 0x00003678, 0x0000367C + .word 0x0000367C, 0x00003680 + .word 0x00003680, 0x00003684 + .word 0x00003684, 0x00003688 + .word 0x00003688, 0x0000368C + .word 0x0000368C, 0x00003690 + .word 0x00003690, 0x00003694 + .word 0x00003694, 0x0000369C + .word 0x0000369C, 0x000036A0 + .word 0x000036A0, 0x000036A8 + .word 0x000036A8, 0x000036AC + .word 0x000036AC, 0x000036B0 + .word 0x000036B0, 0x000036B4 + .word 0x000036B4, 0x000036B8 + .word 0x000036B8, 0x000036BC + .word 0x000036BC, 0x000036C0 + .word 0x000036C0, 0x000036C4 + .word 0x000036C4, 0x000036C8 + .word 0x000036C8, 0x000036CC + .word 0x000036CC, 0x000036D0 + .word 0x000036D0, 0x000036D4 + .word 0x000036D4, 0x000036D8 + .word 0x000036D8, 0x000036DC + .word 0x000036DC, 0x000036E0 + .word 0x000036E0, 0x000036E4 + .word 0x000036E4, 0x000036E8 + .word 0x000036E8, 0x000036EC + .word 0x000036EC, 0x000036F0 + .word 0x000036F0, 0x000036F4 + .word 0x000036F4, 0x000036F8 + .word 0x000036F8, 0x000036FC + .word 0x000036FC, 0x00003700 + .word 0x00003700, 0x00003704 + .word 0x00003704, 0x00003708 + .word 0x00003708, 0x0000370C + .word 0x0000370C, 0x00003710 + .word 0x00003710, 0x00003714 + .word 0x00003714, 0x00003718 + .word 0x00003718, 0x0000371C + .word 0x0000371C, 0x00003720 + .word 0x00003720, 0x00003724 + .word 0x00003724, 0x00003728 + .word 0x00003728, 0x0000372C + .word 0x0000372C, 0x00003730 + .word 0x00003730, 0x00003734 + .word 0x00003734, 0x00003738 + .word 0x00003738, 0x0000373C + .word 0x0000373C, 0x00003740 + .word 0x00003740, 0x00003744 + .word 0x00003744, 0x00003748 + .word 0x00003748, 0x0000374C + .word 0x0000374C, 0x00003750 + .word 0x00003750, 0x00003754 + .word 0x00003754, 0x00003758 + .word 0x00003758, 0x0000375C + .word 0x0000375C, 0x00003768 + .word 0x00003768, 0x0000376C + .word 0x0000376C, 0x00003774 + .word 0x00003774, 0x0000377C + .word 0x0000377C, 0x00003780 + .word 0x00003780, 0x00003788 + .word 0x00003788, 0x0000378C + .word 0x0000378C, 0x00003790 + .word 0x00003790, 0x00003794 + .word 0x00003794, 0x00003798 + .word 0x00003798, 0x0000379C + .word 0x0000379C, 0x000037A0 + .word 0x000037A0, 0x000037A4 + .word 0x000037A4, 0x000037A8 + .word 0x000037A8, 0x000037AC + .word 0x000037AC, 0x000037B4 + .word 0x000037B4, 0x000037B8 + .word 0x000037B8, 0x000037BC + .word 0x000037BC, 0x000037C4 + .word 0x000037C4, 0x000037C8 + .word 0x000037C8, 0x000037CC + .word 0x000037CC, 0x000037D0 + .word 0x000037D0, 0x000037D8 + .word 0x000037D8, 0x000037E0 + .word 0x000037E0, 0x000037E4 + .word 0x000037E4, 0x000037E8 + .word 0x000037E8, 0x000037EC + .word 0x000037EC, 0x000037F0 + .word 0x000037F0, 0x000037F4 + .word 0x000037F4, 0x000037F8 + .word 0x000037F8, 0x000037FC + .word 0x000037FC, 0x00003800 + .word 0x00003800, 0x00003804 + .word 0x00003804, 0x00003808 + .word 0x00003808, 0x0000380C + .word 0x0000380C, 0x00003810 + .word 0x00003810, 0x00003814 + .word 0x00003814, 0x00003818 + .word 0x00003818, 0x0000381C + .word 0x0000381C, 0x0000382C + .word 0x0000382C, 0x00003838 + .word 0x00003838, 0x00003840 + .word 0x00003840, 0x00003848 + .word 0x00003848, 0x00003850 + .word 0x00003850, 0x00003854 + .word 0x00003854, 0x00003858 + .word 0x00003858, 0x00003860 + .word 0x00003860, 0x00003864 + .word 0x00003864, 0x00003868 + .word 0x00003868, 0x0000386C + .word 0x0000386C, 0x00003870 + .word 0x00003870, 0x00003874 + .word 0x00003874, 0x0000387C + .word 0x0000387C, 0x00003880 + .word 0x00003880, 0x00003888 + .word 0x00003888, 0x00003890 + .word 0x00003890, 0x00003898 + .word 0x00003898, 0x000038A0 + .word 0x000038A0, 0x000038A8 + .word 0x000038A8, 0x000038AC + .word 0x000038AC, 0x000038B0 + .word 0x000038B0, 0x000038B4 + .word 0x000038B4, 0x000038B8 + .word 0x000038B8, 0x000038BC + .word 0x000038BC, 0x000038C0 + .word 0x000038C0, 0x000038C4 + .word 0x000038C4, 0x000038C8 + .word 0x000038C8, 0x000038CC + .word 0x000038CC, 0x000038D0 + .word 0x000038D0, 0x000038D4 + .word 0x000038D4, 0x000038D8 + .word 0x000038D8, 0x000038DC + .word 0x000038DC, 0x000038E0 + .word 0x000038E0, 0x000038E4 + .word 0x000038E4, 0x000038E8 + .word 0x000038E8, 0x000038EC + .word 0x000038EC, 0x000038F0 + .word 0x000038F0, 0x000038F4 + .word 0x000038F4, 0x000038F8 + .word 0x000038F8, 0x000038FC + .word 0x000038FC, 0x00003900 + .word 0x00003900, 0x00003904 + .word 0x00003904, 0x00003908 + .word 0x00003908, 0x0000390C + .word 0x0000390C, 0x00003910 + .word 0x00003910, 0x00003914 + .word 0x00003914, 0x00003918 + .word 0x00003918, 0x0000391C + .word 0x0000391C, 0x00003920 + .word 0x00003920, 0x00003924 + .word 0x00003924, 0x00003928 + .word 0x00003928, 0x0000392C + .word 0x0000392C, 0x00003930 + .word 0x00003930, 0x00003934 + .word 0x00003934, 0x00003938 + .word 0x00003938, 0x0000393C + .word 0x0000393C, 0x00003940 + .word 0x00003940, 0x00003944 + .word 0x00003944, 0x000039AC + .word 0x000039AC, 0x000039B0 + .word 0x000039B0, 0x000039B4 + .word 0x000039B4, 0x000039B8 + .word 0x000039B8, 0x000039BC + .word 0x000039BC, 0x000039C0 + .word 0x000039C0, 0x000039C4 + .word 0x000039C4, 0x000039C8 + .word 0x000039C8, 0x000039CC + .word 0x000039CC, 0x000039D0 + .word 0x000039D0, 0x000039D4 + .word 0x000039D4, 0x000039D8 + .word 0x000039D8, 0x000039DC + .word 0x000039DC, 0x000039E0 + .word 0x000039E0, 0x000039E4 + .word 0x000039E4, 0x000039E8 + .word 0x000039E8, 0x000039EC + .word 0x000039EC, 0x000039F0 + .word 0x000039F0, 0x000039F4 + .word 0x000039F4, 0x00003A00 + .word 0x00003A00, 0x00003A0C + .word 0x00003A0C, 0x00003A18 + .word 0x00003A18, 0x00003A2C + .word 0x00003A2C, 0x00003A30 + .word 0x00003A30, 0x00003A34 + .word 0x00003A34, 0x00003A38 + .word 0x00003A38, 0x00003A3C + .word 0x00003A3C, 0x00003A40 + .word 0x00003A40, 0x00003A44 + .word 0x00003A44, 0x00003A48 + .word 0x00003A48, 0x00003A4C + .word 0x00003A4C, 0x00003A50 + .word 0x00003A50, 0x00003A54 + .word 0x00003A54, 0x00003A58 + .word 0x00003A58, 0x00003A5C + .word 0x00003A5C, 0x00003A60 + .word 0x00003A60, 0x00003A64 + .word 0x00003A64, 0x00003A68 + .word 0x00003A68, 0x00003A6C + .word 0x00003A6C, 0x00003A70 + .word 0x00003A70, 0x00003A74 + .word 0x00003A74, 0x00003A78 + .word 0x00003A78, 0x00003A7C + .word 0x00003A7C, 0x00003A88 + .word 0x00003A88, 0x00003A98 + .word 0x00003A98, 0x00003A9C + .word 0x00003A9C, 0x00003AA0 + .word 0x00003AA0, 0x00003AA4 + .word 0x00003AA4, 0x00003AA8 + .word 0x00003AA8, 0x00003AAC + .word 0x00003AAC, 0x00003AB4 + .word 0x00003AB4, 0x00003ABC + .word 0x00003ABC, 0x00003AC0 + .word 0x00003AC0, 0x00003AC4 + .word 0x00003AC4, 0x00003AF8 + .word 0x00003AF8, 0x00003B3C + .word 0x00003B3C, 0x00003B40 + .word 0x00003B40, 0x00003B44 + .word 0x00003B44, 0x00003B48 + .word 0x00003B48, 0x00003B4C + .word 0x00003B4C, 0x00003B5C + .word 0x00003B5C, 0x00003B6C + .word 0x00003B6C, 0x00003B70 + .word 0x00003B70, 0x00003B7C + .word 0x00003B7C, 0x00003B84 + .word 0x00003B84, 0x00003B88 + .word 0x00003B88, 0x00003B98 + .word 0x00003B98, 0x00003BB8 + .word 0x00003BB8, 0x00003BBC + .word 0x00003BBC, 0x00003BC8 + .word 0x00003BC8, 0x00003BD8 + .word 0x00003BD8, 0x00003BDC + .word 0x00003BDC, 0x00003C10 + .word 0x00003C10, 0x00003C5C + .word 0x00003C5C, 0x00003C7C + .word 0x00003C7C, 0x00003C98 + .word 0x00003C98, 0x00003C9C + .word 0x00003C9C, 0x00003CB8 + .word 0x00003CB8, 0x00003CBC + .word 0x00003CBC, 0x00003CC0 + .word 0x00003CC0, 0x00003CC4 + .word 0x00003CC4, 0x00003CC8 + .word 0x00003CC8, 0x00003CCC + .word 0x00003CCC, 0x00003CD0 + .word 0x00003CD0, 0x00003CD4 + .word 0x00003CD4, 0x00003CD8 + .word 0x00003CD8, 0x00003CE4 + .word 0x00003CE4, 0x00003CF0 + .word 0x00003CF0, 0x00003CF4 + .word 0x00003CF4, 0x00003CF8 + .word 0x00003CF8, 0x00003D08 + .word 0x00003D08, 0x00003D0C + .word 0x00003D0C, 0x00003D10 + .word 0x00003D10, 0x00003D14 + .word 0x00003D14, 0x00003D18 + .word 0x00003D18, 0x00003D1C + .word 0x00003D1C, 0x00003D20 + .word 0x00003D20, 0x00003D24 + .word 0x00003D24, 0x00003D28 + .word 0x00003D28, 0x00003D2C + .word 0x00003D2C, 0x00003D30 + .word 0x00003D30, 0x00003D34 + .word 0x00003D34, 0x00003D38 + .word 0x00003D38, 0x00003D3C + .word 0x00003D3C, 0x00003D40 + .word 0x00003D40, 0x00003D44 + .word 0x00003D44, 0x00003D48 + .word 0x00003D48, 0x00003D4C + .word 0x00003D4C, 0x00003D50 + .word 0x00003D50, 0x00003D54 + .word 0x00003D54, 0x00003D60 + .word 0x00003D60, 0x00003D6C + .word 0x00003D6C, 0x00003D7C + .word 0x00003D7C, 0x00003D88 + .word 0x00003D88, 0x00003D8C + .word 0x00003D8C, 0x00003D90 + .word 0x00003D90, 0x00003D98 + .word 0x00003D98, 0x00003DA0 + .word 0x00003DA0, 0x00003DC4 + .word 0x00003DC4, 0x00003DE8 + .word 0x00003DE8, 0x00003DF4 + .word 0x00003DF4, 0x00003DF8 + .word 0x00003DF8, 0x00003E04 + .word 0x00003E04, 0x00003E0C + .word 0x00003E0C, 0x00003E10 + .word 0x00003E10, 0x00003E14 + .word 0x00003E14, 0x00003E18 + .word 0x00003E18, 0x00003E1C + .word 0x00003E1C, 0x00003E20 + .word 0x00003E20, 0x00003EB4 + .word 0x00003EB4, 0x00003F48 + .word 0x00003F48, 0x00003F4C + .word 0x00003F4C, 0x00003F50 + .word 0x00003F50, 0x00003F54 + .word 0x00003F54, 0x00003F58 + .word 0x00003F58, 0x00003F5C + .word 0x00003F5C, 0x00003F60 + .word 0x00003F60, 0x00003F64 + .word 0x00003F64, 0x00003F68 + .word 0x00003F68, 0x00003F6C + .word 0x00003F6C, 0x00003F70 + .word 0x00003F70, 0x00003F74 + .word 0x00003F74, 0x00003F78 + .word 0x00003F78, 0x00003F7C + .word 0x00003F7C, 0x00003F80 + .word 0x00003F80, 0x00003F84 + .word 0x00003F84, 0x00003F88 + .word 0x00003F88, 0x00003F8C + .word 0x00003F8C, 0x00003F90 + .word 0x00003F90, 0x00003F94 + .word 0x00003F94, 0x00003F98 + .word 0x00003F98, 0x00003F9C + .word 0x00003F9C, 0x00003FA0 + .word 0x00003FA0, 0x00003FA4 + .word 0x00003FA4, 0x00003FA8 + .word 0x00003FA8, 0x00003FAC + .word 0x00003FAC, 0x00003FB0 + .word 0x00003FB0, 0x00003FB4 + .word 0x00003FB4, 0x00003FB8 + .word 0x00003FB8, 0x00003FBC + .word 0x00003FBC, 0x00003FC0 + .word 0x00003FC0, 0x00003FC4 + .word 0x00003FC4, 0x00003FC8 + .word 0x00003FC8, 0x00003FCC + .word 0x00003FCC, 0x00003FD0 + .word 0x00003FD0, 0x00003FD4 + .word 0x00003FD4, 0x00003FDC + .word 0x00003FDC, 0x00003FE0 + .word 0x00003FE0, 0x00003FE4 + .word 0x00003FE4, 0x00003FE8 + .word 0x00003FE8, 0x00003FF0 + .word 0x00003FF0, 0x00003FF8 + .word 0x00003FF8, 0x00003FFC + .word 0x00003FFC, 0x00004000 + .word 0x00004000, 0x00004004 + .word 0x00004004, 0x00004008 + .word 0x00004008, 0x0000400C + .word 0x0000400C, 0x00004010 + .word 0x00004010, 0x00004014 + .word 0x00004014, 0x00004018 + .word 0x00004018, 0x0000401C + .word 0x0000401C, 0x00004020 + .word 0x00004020, 0x00004024 + .word 0x00004024, 0x00004028 + .word 0x00004028, 0x0000402C + .word 0x0000402C, 0x00004030 + .word 0x00004030, 0x00004034 + .word 0x00004034, 0x00004038 + .word 0x00004038, 0x0000403C + .word 0x0000403C, 0x00004040 + .word 0x00004040, 0x00004044 + .word 0x00004044, 0x00004048 + .word 0x00004048, 0x0000404C + .word 0x0000404C, 0x00004050 + .word 0x00004050, 0x00004058 + .word 0x00004058, 0x00004060 + .word 0x00004060, 0x00004064 + .word 0x00004064, 0x00004068 + .word 0x00004068, 0x0000406C + .word 0x0000406C, 0x00004070 + .word 0x00004070, 0x00004074 + .word 0x00004074, 0x00004078 + .word 0x00004078, 0x0000407C + .word 0x0000407C, 0x00004088 + .word 0x00004088, 0x0000408C + .word 0x0000408C, 0x00004090 + .word 0x00004090, 0x00004094 + .word 0x00004094, 0x00004098 + .word 0x00004098, 0x0000409C + .word 0x0000409C, 0x000040A0 + .word 0x000040A0, 0x000040A4 + .word 0x000040A4, 0x000040AC + .word 0x000040AC, 0x000040B0 + .word 0x000040B0, 0x000040B4 + .word 0x000040B4, 0x000040B8 + .word 0x000040B8, 0x000040C8 + .word 0x000040C8, 0x000040CC + .word 0x000040CC, 0x000040D0 + .word 0x000040D0, 0x000040D4 + .word 0x000040D4, 0x000040D8 + .word 0x000040D8, 0x000040DC + .word 0x000040DC, 0x000040E0 + .word 0x000040E0, 0x000040E4 + .word 0x000040E4, 0x00004108 + .word 0x00004108, 0x0000412C + .word 0x0000412C, 0x00004130 + .word 0x00004130, 0x00004134 + .word 0x00004134, 0x00004140 + .word 0x00004140, 0x00004144 + .word 0x00004144, 0x00004148 + .word 0x00004148, 0x0000414C + .word 0x0000414C, 0x00004150 + .word 0x00004150, 0x00004154 + .word 0x00004154, 0x00004158 + .word 0x00004158, 0x0000415C + .word 0x0000415C, 0x00004160 + .word 0x00004160, 0x00004164 + .word 0x00004164, 0x00004168 + .word 0x00004168, 0x0000416C + .word 0x0000416C, 0x00004170 + .word 0x00004170, 0x00004174 + .word 0x00004174, 0x00004178 + .word 0x00004178, 0x0000417C + .word 0x0000417C, 0x00004180 + .word 0x00004180, 0x00004184 + .word 0x00004184, 0x00004188 + .word 0x00004188, 0x0000418C + .word 0x0000418C, 0x00004190 + .word 0x00004190, 0x00004194 + .word 0x00004194, 0x00004198 + .word 0x00004198, 0x0000419C + .word 0x0000419C, 0x000041A0 + .word 0x000041A0, 0x000041A4 + .word 0x000041A4, 0x000041A8 + .word 0x000041A8, 0x000041AC + .word 0x000041AC, 0x000041B0 + .word 0x000041B0, 0x000041B4 + .word 0x000041B4, 0x000041B8 + .word 0x000041B8, 0x000041BC + .word 0x000041BC, 0x000041C0 + .word 0x000041C0, 0x000041C4 + .word 0x000041C4, 0x000041C8 + .word 0x000041C8, 0x000041CC + .word 0x000041CC, 0x000041D0 + .word 0x000041D0, 0x000041D4 + .word 0x000041D4, 0x000041D8 + .word 0x000041D8, 0x000041DC + .word 0x000041DC, 0x000041E8 + .word 0x000041E8, 0x000041EC + .word 0x000041EC, 0x000041F0 + .word 0x000041F0, 0x000041F4 + .word 0x000041F4, 0x000041F8 + .word 0x000041F8, 0x000041FC + .word 0x000041FC, 0x00004200 + .word 0x00004200, 0x00004204 + .word 0x00004204, 0x00004208 + .word 0x00004208, 0x0000420C + .word 0x0000420C, 0x00004210 + .word 0x00004210, 0x00004248 + .word 0x00004248, 0x00004298 + .word 0x00004298, 0x0000429C + .word 0x0000429C, 0x000042A0 + .word 0x000042A0, 0x000042A4 + .word 0x000042A4, 0x000042A8 + .word 0x000042A8, 0x000042AC + .word 0x000042AC, 0x000042B0 + .word 0x000042B0, 0x000042B4 + .word 0x000042B4, 0x000042B8 + .word 0x000042B8, 0x000042BC + .word 0x000042BC, 0x000042C0 + .word 0x000042C0, 0x000042C4 + .word 0x000042C4, 0x000042C8 + .word 0x000042C8, 0x000042CC + .word 0x000042CC, 0x000042D0 + .word 0x000042D0, 0x000042D4 + .word 0x000042D4, 0x000042D8 + .word 0x000042D8, 0x000042DC + .word 0x000042DC, 0x000042E0 + .word 0x000042E0, 0x000042E4 + .word 0x000042E4, 0x000042E8 + .word 0x000042E8, 0x000042EC + .word 0x000042EC, 0x000042F0 + .word 0x000042F0, 0x000042F4 + .word 0x000042F4, 0x000042F8 + .word 0x000042F8, 0x000042FC + .word 0x000042FC, 0x00004300 + .word 0x00004300, 0x00004304 + .word 0x00004304, 0x00004324 + .word 0x00004324, 0x00004330 + .word 0x00004330, 0x00004334 + .word 0x00004334, 0x00004338 + .word 0x00004338, 0x0000433C + .word 0x0000433C, 0x00004340 + .word 0x00004340, 0x00004348 + .word 0x00004348, 0x00004350 + .word 0x00004350, 0x0000436C + .word 0x0000436C, 0x00004370 + .word 0x00004370, 0x00004374 + .word 0x00004374, 0x00004378 + .word 0x00004378, 0x00004384 + .word 0x00004384, 0x00004390 + .word 0x00004390, 0x0000439C + .word 0x0000439C, 0x000043A8 + .word 0x000043A8, 0x000043B4 + .word 0x000043B4, 0x000043B8 + .word 0x000043B8, 0x000043BC + .word 0x000043BC, 0x000043C0 + .word 0x000043C0, 0x000043C4 + .word 0x000043C4, 0x000043C8 + .word 0x000043C8, 0x000043CC + .word 0x000043CC, 0x000043D0 + .word 0x000043D0, 0x000043D8 + .word 0x000043D8, 0x000043E0 + .word 0x000043E0, 0x000043E4 + .word 0x000043E4, 0x000043E8 + .word 0x000043E8, 0x000043EC + .word 0x000043EC, 0x000043F0 + .word 0x000043F0, 0x000043F4 + .word 0x000043F4, 0x000043F8 + .word 0x000043F8, 0x0000441C + .word 0x0000441C, 0x00004440 + .word 0x00004440, 0x00004448 + .word 0x00004448, 0x00004450 + .word 0x00004450, 0x00004454 + .word 0x00004454, 0x00004458 + .word 0x00004458, 0x0000445C + .word 0x0000445C, 0x00004460 + .word 0x00004460, 0x00004464 + .word 0x00004464, 0x00004468 + .word 0x00004468, 0x0000446C + .word 0x0000446C, 0x00004470 + .word 0x00004470, 0x00004474 + .word 0x00004474, 0x00004478 + .word 0x00004478, 0x0000447C + .word 0x0000447C, 0x00004480 + .word 0x00004480, 0x00004484 + .word 0x00004484, 0x00004488 + .word 0x00004488, 0x0000448C + .word 0x0000448C, 0x00004490 + .word 0x00004490, 0x00004494 + .word 0x00004494, 0x00004498 + .word 0x00004498, 0x0000449C + .word 0x0000449C, 0x000044A0 + .word 0x000044A0, 0x000044A4 + .word 0x000044A4, 0x000044A8 + .word 0x000044A8, 0x000044AC + .word 0x000044AC, 0x000044B8 + .word 0x000044B8, 0x000044BC + .word 0x000044BC, 0x000044C0 + .word 0x000044C0, 0x000044C8 + .word 0x000044C8, 0x000044D4 + .word 0x000044D4, 0x000044D8 + .word 0x000044D8, 0x000044DC + .word 0x000044DC, 0x000044E0 + .word 0x000044E0, 0x000044E4 + .word 0x000044E4, 0x000044E8 + .word 0x000044E8, 0x000044EC + .word 0x000044EC, 0x000044F0 + .word 0x000044F0, 0x000044F4 + .word 0x000044F4, 0x000044F8 + .word 0x000044F8, 0x000044FC + .word 0x000044FC, 0x00004500 + .word 0x00004500, 0x00004504 + .word 0x00004504, 0x00004508 + .word 0x00004508, 0x0000450C + .word 0x0000450C, 0x00004510 + .word 0x00004510, 0x00004514 + .word 0x00004514, 0x00004518 + .word 0x00004518, 0x0000451C + .word 0x0000451C, 0x00004520 + .word 0x00004520, 0x00004524 + .word 0x00004524, 0x00004528 + .word 0x00004528, 0x0000452C + .word 0x0000452C, 0x00004530 + .word 0x00004530, 0x00004534 + .word 0x00004534, 0x00004538 + .word 0x00004538, 0x00004558 + .word 0x00004558, 0x00004568 + .word 0x00004568, 0x0000456C + .word 0x0000456C, 0x00004598 + .word 0x00004598, 0x000045B0 + .word 0x000045B0, 0x000045CC + .word 0x000045CC, 0x000045EC + .word 0x000045EC, 0x00004604 + .word 0x00004604, 0x0000460C + .word 0x0000460C, 0x00004610 + .word 0x00004610, 0x00004620 + .word 0x00004620, 0x00004624 + .word 0x00004624, 0x00004628 + .word 0x00004628, 0x0000462C + .word 0x0000462C, 0x00004630 + .word 0x00004630, 0x00004634 + .word 0x00004634, 0x00004638 + .word 0x00004638, 0x0000463C + .word 0x0000463C, 0x00004640 + .word 0x00004640, 0x00004644 + .word 0x00004644, 0x00004648 + .word 0x00004648, 0x0000465C + .word 0x0000465C, 0x00004674 + .word 0x00004674, 0x00004694 + .word 0x00004694, 0x00004698 + .word 0x00004698, 0x0000469C + .word 0x0000469C, 0x000046C0 + .word 0x000046C0, 0x000046DC + .word 0x000046DC, 0x000046E0 + .word 0x000046E0, 0x000046E4 + .word 0x000046E4, 0x000046E8 + .word 0x000046E8, 0x000046EC + .word 0x000046EC, 0x000046F0 + .word 0x000046F0, 0x000046F4 + .word 0x000046F4, 0x000046F8 + .word 0x000046F8, 0x000046FC + .word 0x000046FC, 0x00004700 + .word 0x00004700, 0x0000470C + .word 0x0000470C, 0x0000471C + .word 0x0000471C, 0x00004728 + .word 0x00004728, 0x00004730 + .word 0x00004730, 0x00004734 + .word 0x00004734, 0x00004738 + .word 0x00004738, 0x00004744 + .word 0x00004744, 0x00004748 + .word 0x00004748, 0x00004754 + .word 0x00004754, 0x00004758 + .word 0x00004758, 0x0000475C + .word 0x0000475C, 0x00004760 + .word 0x00004760, 0x00004764 + .word 0x00004764, 0x00004768 + .word 0x00004768, 0x0000476C + .word 0x0000476C, 0x00004770 + .word 0x00004770, 0x00004774 + .word 0x00004774, 0x0000477C + .word 0x0000477C, 0x00004780 + .word 0x00004780, 0x00004784 + .word 0x00004784, 0x00004788 + .word 0x00004788, 0x0000478C + .word 0x0000478C, 0x00004790 + .word 0x00004790, 0x000047B8 + .word 0x000047B8, 0x000047E0 + .word 0x000047E0, 0x000047EC + .word 0x000047EC, 0x000047FC + .word 0x000047FC, 0x00004800 + .word 0x00004800, 0x00004804 + .word 0x00004804, 0x00004808 + .word 0x00004808, 0x0000480C + .word 0x0000480C, 0x00004810 + .word 0x00004810, 0x00004814 + .word 0x00004814, 0x00004818 + .word 0x00004818, 0x0000481C + .word 0x0000481C, 0x00004820 + .word 0x00004820, 0x00004824 + .word 0x00004824, 0x00004828 + .word 0x00004828, 0x0000482C + .word 0x0000482C, 0x00004830 + .word 0x00004830, 0x00004834 + .word 0x00004834, 0x00004838 + .word 0x00004838, 0x0000483C + .word 0x0000483C, 0x00004840 + .word 0x00004840, 0x00004844 + .word 0x00004844, 0x00004848 + .word 0x00004848, 0x0000484C + .word 0x0000484C, 0x00004850 + .word 0x00004850, 0x00004854 + .word 0x00004854, 0x00004858 + .word 0x00004858, 0x0000485C + .word 0x0000485C, 0x00004860 + .word 0x00004860, 0x00004864 + .word 0x00004864, 0x00004868 + .word 0x00004868, 0x0000486C + .word 0x0000486C, 0x00004870 + .word 0x00004870, 0x00004874 + .word 0x00004874, 0x00004878 + .word 0x00004878, 0x0000487C + .word 0x0000487C, 0x00004880 + .word 0x00004880, 0x00004884 + .word 0x00004884, 0x00004888 + .word 0x00004888, 0x000048F0 + .word 0x000048F0, 0x000048F4 + .word 0x000048F4, 0x000048F8 + .word 0x000048F8, 0x000048FC + .word 0x000048FC, 0x00004900 + .word 0x00004900, 0x00004904 + .word 0x00004904, 0x00004908 + .word 0x00004908, 0x0000490C + .word 0x0000490C, 0x00004910 + .word 0x00004910, 0x00004914 + .word 0x00004914, 0x00004918 + .word 0x00004918, 0x0000491C + .word 0x0000491C, 0x00004920 + .word 0x00004920, 0x00004924 + .word 0x00004924, 0x00004928 + .word 0x00004928, 0x0000492C + .word 0x0000492C, 0x00004930 + .word 0x00004930, 0x00004934 + .word 0x00004934, 0x00004938 + .word 0x00004938, 0x00004944 + .word 0x00004944, 0x00004950 + .word 0x00004950, 0x0000495C + .word 0x0000495C, 0x00004970 + .word 0x00004970, 0x00004974 + .word 0x00004974, 0x00004978 + .word 0x00004978, 0x0000497C + .word 0x0000497C, 0x00004980 + .word 0x00004980, 0x00004984 + .word 0x00004984, 0x00004988 + .word 0x00004988, 0x0000498C + .word 0x0000498C, 0x00004990 + .word 0x00004990, 0x00004994 + .word 0x00004994, 0x00004998 + .word 0x00004998, 0x0000499C + .word 0x0000499C, 0x000049A0 + .word 0x000049A0, 0x000049A4 + .word 0x000049A4, 0x000049A8 + .word 0x000049A8, 0x000049AC + .word 0x000049AC, 0x000049B0 + .word 0x000049B0, 0x000049B4 + .word 0x000049B4, 0x000049B8 + .word 0x000049B8, 0x000049BC + .word 0x000049BC, 0x000049C0 + .word 0x000049C0, 0x000049CC + .word 0x000049CC, 0x000049DC + .word 0x000049DC, 0x000049E0 + .word 0x000049E0, 0x000049E4 + .word 0x000049E4, 0x000049E8 + .word 0x000049E8, 0x000049EC + .word 0x000049EC, 0x000049F0 + .word 0x000049F0, 0x000049F8 + .word 0x000049F8, 0x00004A00 + .word 0x00004A00, 0x00004A04 + .word 0x00004A04, 0x00004A08 + .word 0x00004A08, 0x00004A3C + .word 0x00004A3C, 0x00004A80 + .word 0x00004A80, 0x00004A84 + .word 0x00004A84, 0x00004A88 + .word 0x00004A88, 0x00004A8C + .word 0x00004A8C, 0x00004A90 + .word 0x00004A90, 0x00004AA0 + .word 0x00004AA0, 0x00004AB0 + .word 0x00004AB0, 0x00004AB4 + .word 0x00004AB4, 0x00004AC0 + .word 0x00004AC0, 0x00004AC8 + .word 0x00004AC8, 0x00004ACC + .word 0x00004ACC, 0x00004ADC + .word 0x00004ADC, 0x00004AFC + .word 0x00004AFC, 0x00004B00 + .word 0x00004B00, 0x00004B0C + .word 0x00004B0C, 0x00004B1C + .word 0x00004B1C, 0x00004B20 + .word 0x00004B20, 0x00004B54 + .word 0x00004B54, 0x00004BA0 + .word 0x00004BA0, 0x00004BC0 + .word 0x00004BC0, 0x00004BDC + .word 0x00004BDC, 0x00004BE0 + .word 0x00004BE0, 0x00004BFC + .word 0x00004BFC, 0x00004C00 + .word 0x00004C00, 0x00004C04 + .word 0x00004C04, 0x00004C08 + .word 0x00004C08, 0x00004C0C + .word 0x00004C0C, 0x00004C10 + .word 0x00004C10, 0x00004C14 + .word 0x00004C14, 0x00004C18 + .word 0x00004C18, 0x00004C1C + .word 0x00004C1C, 0x00004C28 + .word 0x00004C28, 0x00004C34 + .word 0x00004C34, 0x00004C38 + .word 0x00004C38, 0x00004C3C + .word 0x00004C3C, 0x00004C4C + .word 0x00004C4C, 0x00004C50 + .word 0x00004C50, 0x00004C54 + .word 0x00004C54, 0x00004C58 + .word 0x00004C58, 0x00004C5C + .word 0x00004C5C, 0x00004C60 + .word 0x00004C60, 0x00004C64 + .word 0x00004C64, 0x00004C68 + .word 0x00004C68, 0x00004C6C + .word 0x00004C6C, 0x00004C70 + .word 0x00004C70, 0x00004C74 + .word 0x00004C74, 0x00004C78 + .word 0x00004C78, 0x00004C7C + .word 0x00004C7C, 0x00004C80 + .word 0x00004C80, 0x00004C84 + .word 0x00004C84, 0x00004C88 + .word 0x00004C88, 0x00004C8C + .word 0x00004C8C, 0x00004C90 + .word 0x00004C90, 0x00004C94 + .word 0x00004C94, 0x00004C98 + .word 0x00004C98, 0x00004CA4 + .word 0x00004CA4, 0x00004CB0 + .word 0x00004CB0, 0x00004CC0 + .word 0x00004CC0, 0x00004CCC + .word 0x00004CCC, 0x00004CD0 + .word 0x00004CD0, 0x00004CD4 + .word 0x00004CD4, 0x00004CDC + .word 0x00004CDC, 0x00004CE4 + .word 0x00004CE4, 0x00004D08 + .word 0x00004D08, 0x00004D2C + .word 0x00004D2C, 0x00004D38 + .word 0x00004D38, 0x00004D3C + .word 0x00004D3C, 0x00004D48 + .word 0x00004D48, 0x00004D50 + .word 0x00004D50, 0x00004D54 + .word 0x00004D54, 0x00004D58 + .word 0x00004D58, 0x00004D5C + .word 0x00004D5C, 0x00004D60 + .word 0x00004D60, 0x00004D64 + .word 0x00004D64, 0x00004DF8 + .word 0x00004DF8, 0x00004E8C + .word 0x00004E8C, 0x00004E90 + .word 0x00004E90, 0x00004E94 + .word 0x00004E94, 0x00004E98 + .word 0x00004E98, 0x00004E9C + .word 0x00004E9C, 0x00004EA0 + .word 0x00004EA0, 0x00004EA4 + .word 0x00004EA4, 0x00004EA8 + .word 0x00004EA8, 0x00004EAC + .word 0x00004EAC, 0x00004EB0 + .word 0x00004EB0, 0x00004EB4 + .word 0x00004EB4, 0x00004EB8 + .word 0x00004EB8, 0x00004EBC + .word 0x00004EBC, 0x00004EC0 + .word 0x00004EC0, 0x00004EC4 + .word 0x00004EC4, 0x00004EC8 + .word 0x00004EC8, 0x00004ECC + .word 0x00004ECC, 0x00004ED0 + .word 0x00004ED0, 0x00004ED4 + .word 0x00004ED4, 0x00004ED8 + .word 0x00004ED8, 0x00004EDC + .word 0x00004EDC, 0x00004EE0 + .word 0x00004EE0, 0x00004EE4 + .word 0x00004EE4, 0x00004EE8 + .word 0x00004EE8, 0x00004EEC + .word 0x00004EEC, 0x00004EF0 + .word 0x00004EF0, 0x00004EF4 + .word 0x00004EF4, 0x00004EF8 + .word 0x00004EF8, 0x00004EFC + .word 0x00004EFC, 0x00004F00 + .word 0x00004F00, 0x00004F04 + .word 0x00004F04, 0x00004F08 + .word 0x00004F08, 0x00004F0C + .word 0x00004F0C, 0x00004F10 + .word 0x00004F10, 0x00004F14 + .word 0x00004F14, 0x00004F18 + .word 0x00004F18, 0x00004F1C + .word 0x00004F1C, 0x00004F20 + .word 0x00004F20, 0x00004F24 + .word 0x00004F24, 0x00004F28 + .word 0x00004F28, 0x00004F30 + .word 0x00004F30, 0x00004F38 + .word 0x00004F38, 0x00004F3C + .word 0x00004F3C, 0x00004F40 + .word 0x00004F40, 0x00004F44 + .word 0x00004F44, 0x00004F48 + .word 0x00004F48, 0x00004F4C + .word 0x00004F4C, 0x00004F50 + .word 0x00004F50, 0x00004F54 + .word 0x00004F54, 0x00004F58 + .word 0x00004F58, 0x00004F5C + .word 0x00004F5C, 0x00004F60 + .word 0x00004F60, 0x00004F64 + .word 0x00004F64, 0x00004F68 + .word 0x00004F68, 0x00004F6C + .word 0x00004F6C, 0x00004F70 + .word 0x00004F70, 0x00004F74 + .word 0x00004F74, 0x00004F78 + .word 0x00004F78, 0x00004F7C + .word 0x00004F7C, 0x00004F80 + .word 0x00004F80, 0x00004F84 + .word 0x00004F84, 0x00004F88 + .word 0x00004F88, 0x00004F8C + .word 0x00004F8C, 0x00004F90 + .word 0x00004F90, 0x00004F98 + .word 0x00004F98, 0x00004FA0 + .word 0x00004FA0, 0x00004FA4 + .word 0x00004FA4, 0x00004FA8 + .word 0x00004FA8, 0x00004FAC + .word 0x00004FAC, 0x00004FB0 + .word 0x00004FB0, 0x00004FB4 + .word 0x00004FB4, 0x00004FB8 + .word 0x00004FB8, 0x00004FBC + .word 0x00004FBC, 0x00004FC8 + .word 0x00004FC8, 0x00004FCC + .word 0x00004FCC, 0x00004FD0 + .word 0x00004FD0, 0x00004FD4 + .word 0x00004FD4, 0x00004FD8 + .word 0x00004FD8, 0x00004FDC + .word 0x00004FDC, 0x00004FE0 + .word 0x00004FE0, 0x00004FE4 + .word 0x00004FE4, 0x00004FEC + .word 0x00004FEC, 0x00004FF0 + .word 0x00004FF0, 0x00004FF4 + .word 0x00004FF4, 0x00004FF8 + .word 0x00004FF8, 0x00005008 + .word 0x00005008, 0x0000500C + .word 0x0000500C, 0x00005010 + .word 0x00005010, 0x00005014 + .word 0x00005014, 0x00005018 + .word 0x00005018, 0x0000501C + .word 0x0000501C, 0x00005020 + .word 0x00005020, 0x00005024 + .word 0x00005024, 0x00005048 + .word 0x00005048, 0x0000506C + .word 0x0000506C, 0x00005070 + .word 0x00005070, 0x00005074 + .word 0x00005074, 0x00005080 + .word 0x00005080, 0x00005084 + .word 0x00005084, 0x00005088 + .word 0x00005088, 0x0000508C + .word 0x0000508C, 0x00005090 + .word 0x00005090, 0x00005094 + .word 0x00005094, 0x00005098 + .word 0x00005098, 0x0000509C + .word 0x0000509C, 0x000050A0 + .word 0x000050A0, 0x000050A4 + .word 0x000050A4, 0x000050A8 + .word 0x000050A8, 0x000050AC + .word 0x000050AC, 0x000050B0 + .word 0x000050B0, 0x000050B4 + .word 0x000050B4, 0x000050B8 + .word 0x000050B8, 0x000050BC + .word 0x000050BC, 0x000050C0 + .word 0x000050C0, 0x000050C4 + .word 0x000050C4, 0x000050C8 + .word 0x000050C8, 0x000050CC + .word 0x000050CC, 0x000050D0 + .word 0x000050D0, 0x000050D4 + .word 0x000050D4, 0x000050D8 + .word 0x000050D8, 0x000050DC + .word 0x000050DC, 0x000050E0 + .word 0x000050E0, 0x000050E4 + .word 0x000050E4, 0x000050E8 + .word 0x000050E8, 0x000050EC + .word 0x000050EC, 0x000050F0 + .word 0x000050F0, 0x000050F4 + .word 0x000050F4, 0x000050F8 + .word 0x000050F8, 0x000050FC + .word 0x000050FC, 0x00005100 + .word 0x00005100, 0x00005104 + .word 0x00005104, 0x00005108 + .word 0x00005108, 0x0000510C + .word 0x0000510C, 0x00005110 + .word 0x00005110, 0x00005114 + .word 0x00005114, 0x00005118 + .word 0x00005118, 0x0000511C + .word 0x0000511C, 0x00005128 + .word 0x00005128, 0x0000512C + .word 0x0000512C, 0x00005130 + .word 0x00005130, 0x00005134 + .word 0x00005134, 0x00005138 + .word 0x00005138, 0x0000513C + .word 0x0000513C, 0x00005140 + .word 0x00005140, 0x00005144 + .word 0x00005144, 0x00005148 + .word 0x00005148, 0x0000514C + .word 0x0000514C, 0x00005150 + .word 0x00005150, 0x00005188 + .word 0x00005188, 0x000051D8 + .word 0x000051D8, 0x000051DC + .word 0x000051DC, 0x000051E0 + .word 0x000051E0, 0x000051E4 + .word 0x000051E4, 0x000051E8 + .word 0x000051E8, 0x000051EC + .word 0x000051EC, 0x000051F0 + .word 0x000051F0, 0x000051F4 + .word 0x000051F4, 0x000051F8 + .word 0x000051F8, 0x000051FC + .word 0x000051FC, 0x00005200 + .word 0x00005200, 0x00005204 + .word 0x00005204, 0x00005208 + .word 0x00005208, 0x0000520C + .word 0x0000520C, 0x00005210 + .word 0x00005210, 0x00005214 + .word 0x00005214, 0x00005218 + .word 0x00005218, 0x0000521C + .word 0x0000521C, 0x00005220 + .word 0x00005220, 0x00005224 + .word 0x00005224, 0x00005228 + .word 0x00005228, 0x0000522C + .word 0x0000522C, 0x00005230 + .word 0x00005230, 0x00005234 + .word 0x00005234, 0x00005238 + .word 0x00005238, 0x0000523C + .word 0x0000523C, 0x00005240 + .word 0x00005240, 0x00005244 + .word 0x00005244, 0x00005264 + .word 0x00005264, 0x00005270 + .word 0x00005270, 0x00005274 + .word 0x00005274, 0x00005278 + .word 0x00005278, 0x0000527C + .word 0x0000527C, 0x00005280 + .word 0x00005280, 0x00005288 + .word 0x00005288, 0x00005290 + .word 0x00005290, 0x000052AC + .word 0x000052AC, 0x000052B0 + .word 0x000052B0, 0x000052B4 + .word 0x000052B4, 0x000052B8 + .word 0x000052B8, 0x000052C4 + .word 0x000052C4, 0x000052D0 + .word 0x000052D0, 0x000052DC + .word 0x000052DC, 0x000052E8 + .word 0x000052E8, 0x000052F4 + .word 0x000052F4, 0x000052F8 + .word 0x000052F8, 0x000052FC + .word 0x000052FC, 0x00005300 + .word 0x00005300, 0x00005304 + .word 0x00005304, 0x00005308 + .word 0x00005308, 0x0000530C + .word 0x0000530C, 0x00005310 + .word 0x00005310, 0x00005318 + .word 0x00005318, 0x00005320 + .word 0x00005320, 0x00005324 + .word 0x00005324, 0x00005328 + .word 0x00005328, 0x0000532C + .word 0x0000532C, 0x00005330 + .word 0x00005330, 0x00005334 + .word 0x00005334, 0x00005338 + .word 0x00005338, 0x0000535C + .word 0x0000535C, 0x00005380 + .word 0x00005380, 0x00005388 + .word 0x00005388, 0x00005390 + .word 0x00005390, 0x00005394 + .word 0x00005394, 0x00005398 + .word 0x00005398, 0x0000539C + .word 0x0000539C, 0x000053A0 + .word 0x000053A0, 0x000053A4 + .word 0x000053A4, 0x000053A8 + .word 0x000053A8, 0x000053AC + .word 0x000053AC, 0x000053B0 + .word 0x000053B0, 0x000053B4 + .word 0x000053B4, 0x000053B8 + .word 0x000053B8, 0x000053BC + .word 0x000053BC, 0x000053C0 + .word 0x000053C0, 0x000053C4 + .word 0x000053C4, 0x000053C8 + .word 0x000053C8, 0x000053CC + .word 0x000053CC, 0x000053D0 + .word 0x000053D0, 0x000053D4 + .word 0x000053D4, 0x000053D8 + .word 0x000053D8, 0x000053DC + .word 0x000053DC, 0x000053E0 + .word 0x000053E0, 0x000053E4 + .word 0x000053E4, 0x000053E8 + .word 0x000053E8, 0x000053EC + .word 0x000053EC, 0x000053F8 + .word 0x000053F8, 0x000053FC + .word 0x000053FC, 0x00005400 + .word 0x00005400, 0x00005408 + .word 0x00005408, 0x00005414 + .word 0x00005414, 0x00005418 + .word 0x00005418, 0x0000541C + .word 0x0000541C, 0x00005420 + .word 0x00005420, 0x00005424 + .word 0x00005424, 0x00005428 + .word 0x00005428, 0x0000542C + .word 0x0000542C, 0x00005430 + .word 0x00005430, 0x00005434 + .word 0x00005434, 0x00005438 + .word 0x00005438, 0x0000543C + .word 0x0000543C, 0x00005440 + .word 0x00005440, 0x00005444 + .word 0x00005444, 0x00005448 + .word 0x00005448, 0x0000544C + .word 0x0000544C, 0x00005450 + .word 0x00005450, 0x00005454 + .word 0x00005454, 0x00005458 + .word 0x00005458, 0x0000545C + .word 0x0000545C, 0x00005460 + .word 0x00005460, 0x00005464 + .word 0x00005464, 0x00005468 + .word 0x00005468, 0x0000546C + .word 0x0000546C, 0x00005470 + .word 0x00005470, 0x00005474 + .word 0x00005474, 0x00005478 + .word 0x00005478, 0x00005498 + .word 0x00005498, 0x000054A8 + .word 0x000054A8, 0x000054AC + .word 0x000054AC, 0x000054D8 + .word 0x000054D8, 0x000054F0 + .word 0x000054F0, 0x000054F4 + .word 0x000054F4, 0x00005514 + .word 0x00005514, 0x0000552C + .word 0x0000552C, 0x00005534 + .word 0x00005534, 0x00005538 + .word 0x00005538, 0x00005548 + .word 0x00005548, 0x0000554C + .word 0x0000554C, 0x00005550 + .word 0x00005550, 0x00005554 + .word 0x00005554, 0x00005558 + .word 0x00005558, 0x0000555C + .word 0x0000555C, 0x00005560 + .word 0x00005560, 0x00005564 + .word 0x00005564, 0x00005568 + .word 0x00005568, 0x0000556C + .word 0x0000556C, 0x00005570 + .word 0x00005570, 0x00005584 + .word 0x00005584, 0x0000559C + .word 0x0000559C, 0x000055BC + .word 0x000055BC, 0x000055C0 + .word 0x000055C0, 0x000055C4 + .word 0x000055C4, 0x000055E8 + .word 0x000055E8, 0x00005604 + .word 0x00005604, 0x00005608 + .word 0x00005608, 0x0000560C + .word 0x0000560C, 0x00005610 + .word 0x00005610, 0x00005614 + .word 0x00005614, 0x00005618 + .word 0x00005618, 0x0000561C + .word 0x0000561C, 0x00005620 + .word 0x00005620, 0x00005624 + .word 0x00005624, 0x00005628 + .word 0x00005628, 0x00005634 + .word 0x00005634, 0x00005644 + .word 0x00005644, 0x00005650 + .word 0x00005650, 0x00005658 + .word 0x00005658, 0x0000565C + .word 0x0000565C, 0x00005660 + .word 0x00005660, 0x0000566C + .word 0x0000566C, 0x00005670 + .word 0x00005670, 0x0000567C + .word 0x0000567C, 0x00005680 + .word 0x00005680, 0x00005684 + .word 0x00005684, 0x00005688 + .word 0x00005688, 0x0000568C + .word 0x0000568C, 0x00005690 + .word 0x00005690, 0x00005694 + .word 0x00005694, 0x00005698 + .word 0x00005698, 0x0000569C + .word 0x0000569C, 0x000056A4 + .word 0x000056A4, 0x000056A8 + .word 0x000056A8, 0x000056AC + .word 0x000056AC, 0x000056B0 + .word 0x000056B0, 0x000056B4 + .word 0x000056B4, 0x000056B8 + .word 0x000056B8, 0x000056E0 + .word 0x000056E0, 0x00005708 + .word 0x00005708, 0x00005714 + .word 0x00005714, 0x00005724 + .word 0x00005724, 0x00005728 + .word 0x00005728, 0x0000572C + .word 0x0000572C, 0x00005730 + .word 0x00005730, 0x00005734 + .word 0x00005734, 0x00005738 + .word 0x00005738, 0x0000573C + .word 0x0000573C, 0x00005740 + .word 0x00005740, 0x00005744 + .word 0x00005744, 0x00005748 + .word 0x00005748, 0x0000574C + .word 0x0000574C, 0x00005750 + .word 0x00005750, 0x00005754 + .word 0x00005754, 0x00005758 + .word 0x00005758, 0x0000575C + .word 0x0000575C, 0x00005760 + .word 0x00005760, 0x00005764 + .word 0x00005764, 0x00005768 + .word 0x00005768, 0x0000576C + .word 0x0000576C, 0x00005770 + .word 0x00005770, 0x00005774 + .word 0x00005774, 0x00005778 + .word 0x00005778, 0x0000577C + .word 0x0000577C, 0x00005780 + .word 0x00005780, 0x00005784 + .word 0x00005784, 0x00005788 + .word 0x00005788, 0x0000578C + .word 0x0000578C, 0x00005790 + .word 0x00005790, 0x00005794 + .word 0x00005794, 0x00005798 + .word 0x00005798, 0x0000579C + .word 0x0000579C, 0x000057A0 + .word 0x000057A0, 0x000057A4 + .word 0x000057A4, 0x000057A8 + .word 0x000057A8, 0x000057AC + .word 0x000057AC, 0x000057B0 + .word 0x000057B0, 0x00005818 + .word 0x00005818, 0x0000581C + .word 0x0000581C, 0x00005820 + .word 0x00005820, 0x00005824 + .word 0x00005824, 0x00005828 + .word 0x00005828, 0x0000582C + .word 0x0000582C, 0x00005830 + .word 0x00005830, 0x00005834 + .word 0x00005834, 0x00005838 + .word 0x00005838, 0x0000583C + .word 0x0000583C, 0x00005840 + .word 0x00005840, 0x00005844 + .word 0x00005844, 0x00005848 + .word 0x00005848, 0x0000584C + .word 0x0000584C, 0x00005850 + .word 0x00005850, 0x00005854 + .word 0x00005854, 0x00005858 + .word 0x00005858, 0x0000585C + .word 0x0000585C, 0x00005860 + .word 0x00005860, 0x0000586C + .word 0x0000586C, 0x00005878 + .word 0x00005878, 0x00005884 + .word 0x00005884, 0x00005898 + .word 0x00005898, 0x0000589C + .word 0x0000589C, 0x000058A0 + .word 0x000058A0, 0x000058A4 + .word 0x000058A4, 0x000058A8 + .word 0x000058A8, 0x000058AC + .word 0x000058AC, 0x000058B0 + .word 0x000058B0, 0x000058B4 + .word 0x000058B4, 0x000058B8 + .word 0x000058B8, 0x000058BC + .word 0x000058BC, 0x000058C0 + .word 0x000058C0, 0x000058C4 + .word 0x000058C4, 0x000058C8 + .word 0x000058C8, 0x000058CC + .word 0x000058CC, 0x000058D0 + .word 0x000058D0, 0x000058D4 + .word 0x000058D4, 0x000058D8 + .word 0x000058D8, 0x000058DC + .word 0x000058DC, 0x000058E0 + .word 0x000058E0, 0x00005914 + .word 0x00005914, 0x00005920 + .word 0x00005920, 0x0000592C + .word 0x0000592C, 0x0000593C + .word 0x0000593C, 0x00005940 + .word 0x00005940, 0x00005944 + .word 0x00005944, 0x00005948 + .word 0x00005948, 0x0000594C + .word 0x0000594C, 0x00005950 + .word 0x00005950, 0x00005958 + .word 0x00005958, 0x00005960 + .word 0x00005960, 0x00005964 + .word 0x00005964, 0x00005968 + .word 0x00005968, 0x0000599C + .word 0x0000599C, 0x000059E0 + .word 0x000059E0, 0x000059E4 + .word 0x000059E4, 0x000059E8 + .word 0x000059E8, 0x000059EC + .word 0x000059EC, 0x000059F0 + .word 0x000059F0, 0x00005A00 + .word 0x00005A00, 0x00005A10 + .word 0x00005A10, 0x00005A14 + .word 0x00005A14, 0x00005A20 + .word 0x00005A20, 0x00005A28 + .word 0x00005A28, 0x00005A2C + .word 0x00005A2C, 0x00005A3C + .word 0x00005A3C, 0x00005A5C + .word 0x00005A5C, 0x00005A60 + .word 0x00005A60, 0x00005A6C + .word 0x00005A6C, 0x00005A7C + .word 0x00005A7C, 0x00005A80 + .word 0x00005A80, 0x00005AB4 + .word 0x00005AB4, 0x00005B00 + .word 0x00005B00, 0x00005B20 + .word 0x00005B20, 0x00005B3C + .word 0x00005B3C, 0x00005B40 + .word 0x00005B40, 0x00005B5C + .word 0x00005B5C, 0x00005B60 + .word 0x00005B60, 0x00005B64 + .word 0x00005B64, 0x00005B68 + .word 0x00005B68, 0x00005B6C + .word 0x00005B6C, 0x00005B70 + .word 0x00005B70, 0x00005B74 + .word 0x00005B74, 0x00005B78 + .word 0x00005B78, 0x00005B7C + .word 0x00005B7C, 0x00005B88 + .word 0x00005B88, 0x00005B94 + .word 0x00005B94, 0x00005B98 + .word 0x00005B98, 0x00005B9C + .word 0x00005B9C, 0x00005BAC + .word 0x00005BAC, 0x00005BB0 + .word 0x00005BB0, 0x00005BB8 + .word 0x00005BB8, 0x00005BBC + .word 0x00005BBC, 0x00005BC0 + .word 0x00005BC0, 0x00005BC4 + .word 0x00005BC4, 0x00005BC8 + .word 0x00005BC8, 0x00005BCC + .word 0x00005BCC, 0x00005BD0 + .word 0x00005BD0, 0x00005BD4 + .word 0x00005BD4, 0x00005BD8 + .word 0x00005BD8, 0x00005BDC + .word 0x00005BDC, 0x00005BE0 + .word 0x00005BE0, 0x00005BE4 + .word 0x00005BE4, 0x00005BE8 + .word 0x00005BE8, 0x00005BEC + .word 0x00005BEC, 0x00005BF0 + .word 0x00005BF0, 0x00005BF4 + .word 0x00005BF4, 0x00005BF8 + .word 0x00005BF8, 0x00005BFC + .word 0x00005BFC, 0x00005C08 + .word 0x00005C08, 0x00005C14 + .word 0x00005C14, 0x00005C24 + .word 0x00005C24, 0x00005C30 + .word 0x00005C30, 0x00005C34 + .word 0x00005C34, 0x00005C38 + .word 0x00005C38, 0x00005C40 + .word 0x00005C40, 0x00005C48 + .word 0x00005C48, 0x00005C6C + .word 0x00005C6C, 0x00005C90 + .word 0x00005C90, 0x00005C9C + .word 0x00005C9C, 0x00005CA0 + .word 0x00005CA0, 0x00005CAC + .word 0x00005CAC, 0x00005CB4 + .word 0x00005CB4, 0x00005CB8 + .word 0x00005CB8, 0x00005CBC + .word 0x00005CBC, 0x00005CC0 + .word 0x00005CC0, 0x00005CC4 + .word 0x00005CC4, 0x00005CC8 + .word 0x00005CC8, 0x00005D5C + .word 0x00005D5C, 0x00005DF0 + .word 0x00005DF0, 0x00005DF4 + .word 0x00005DF4, 0x00005DF8 + .word 0x00005DF8, 0x00005DFC + .word 0x00005DFC, 0x00005E00 + .word 0x00005E00, 0x00005E04 + .word 0x00005E04, 0x00005E08 + .word 0x00005E08, 0x00005E0C + .word 0x00005E0C, 0x00005E10 + .word 0x00005E10, 0x00005E14 + .word 0x00005E14, 0x00005E18 + .word 0x00005E18, 0x00005E1C + .word 0x00005E1C, 0x00005E20 + .word 0x00005E20, 0x00005E24 + .word 0x00005E24, 0x00005E28 + .word 0x00005E28, 0x00005E2C + .word 0x00005E2C, 0x00005E30 + .word 0x00005E30, 0x00005E34 + .word 0x00005E34, 0x00005E38 + .word 0x00005E38, 0x00005E3C + .word 0x00005E3C, 0x00005E40 + .word 0x00005E40, 0x00005E44 + .word 0x00005E44, 0x00005E48 + .word 0x00005E48, 0x00005E4C + .word 0x00005E4C, 0x00005E50 + .word 0x00005E50, 0x00005E54 + .word 0x00005E54, 0x00005E58 + .word 0x00005E58, 0x00005E5C + .word 0x00005E5C, 0x00005E60 + .word 0x00005E60, 0x00005E64 + .word 0x00005E64, 0x00005E68 + .word 0x00005E68, 0x00005E6C + .word 0x00005E6C, 0x00005E70 + .word 0x00005E70, 0x00005E7C + .word 0x00005E7C, 0x00005E94 + .word 0x00005E94, 0x00005E98 + .word 0x00005E98, 0x00005E9C + .word 0x00005E9C, 0x00005EA0 + .word 0x00005EA0, 0x00005EA8 + .word 0x00005EA8, 0x00005EAC + .word 0x00005EAC, 0x00005EB4 + .word 0x00005EB4, 0x00005EBC + .word 0x00005EBC, 0x00005EC0 + .word 0x00005EC0, 0x00005EC4 + .word 0x00005EC4, 0x00005EC8 + .word 0x00005EC8, 0x00005ECC + .word 0x00005ECC, 0x00005ED0 + .word 0x00005ED0, 0x00005ED4 + .word 0x00005ED4, 0x00005ED8 + .word 0x00005ED8, 0x00005EDC + .word 0x00005EDC, 0x00005EE0 + .word 0x00005EE0, 0x00005EE4 + .word 0x00005EE4, 0x00005EE8 + .word 0x00005EE8, 0x00005EEC + .word 0x00005EEC, 0x00005EF0 + .word 0x00005EF0, 0x00005EF4 + .word 0x00005EF4, 0x00005EF8 + .word 0x00005EF8, 0x00005EFC + .word 0x00005EFC, 0x00005F00 + .word 0x00005F00, 0x00005F04 + .word 0x00005F04, 0x00005F08 + .word 0x00005F08, 0x00005F0C + .word 0x00005F0C, 0x00005F10 + .word 0x00005F10, 0x00005F14 + .word 0x00005F14, 0x00005F1C + .word 0x00005F1C, 0x00005F24 + .word 0x00005F24, 0x00005F28 + .word 0x00005F28, 0x00005F2C + .word 0x00005F2C, 0x00005F30 + .word 0x00005F30, 0x00005F34 + .word 0x00005F34, 0x00005F38 + .word 0x00005F38, 0x00005F3C + .word 0x00005F3C, 0x00005F40 + .word 0x00005F40, 0x00005F4C + .word 0x00005F4C, 0x00005F50 + .word 0x00005F50, 0x00005F54 + .word 0x00005F54, 0x00005F58 + .word 0x00005F58, 0x00005F5C + .word 0x00005F5C, 0x00005F60 + .word 0x00005F60, 0x00005F64 + .word 0x00005F64, 0x00005F68 + .word 0x00005F68, 0x00005F70 + .word 0x00005F70, 0x00005F74 + .word 0x00005F74, 0x00005F78 + .word 0x00005F78, 0x00005F7C + .word 0x00005F7C, 0x00005F8C + .word 0x00005F8C, 0x00005F90 + .word 0x00005F90, 0x00005F94 + .word 0x00005F94, 0x00005F98 + .word 0x00005F98, 0x00005F9C + .word 0x00005F9C, 0x00005FA0 + .word 0x00005FA0, 0x00005FA4 + .word 0x00005FA4, 0x00005FA8 + .word 0x00005FA8, 0x00005FCC + .word 0x00005FCC, 0x00005FF0 + .word 0x00005FF0, 0x00005FF4 + .word 0x00005FF4, 0x00005FF8 + .word 0x00005FF8, 0x00006004 + .word 0x00006004, 0x00006008 + .word 0x00006008, 0x0000600C + .word 0x0000600C, 0x00006010 + .word 0x00006010, 0x00006014 + .word 0x00006014, 0x00006018 + .word 0x00006018, 0x0000601C + .word 0x0000601C, 0x00006020 + .word 0x00006020, 0x00006024 + .word 0x00006024, 0x00006028 + .word 0x00006028, 0x0000602C + .word 0x0000602C, 0x00006030 + .word 0x00006030, 0x00006034 + .word 0x00006034, 0x00006038 + .word 0x00006038, 0x0000603C + .word 0x0000603C, 0x00006040 + .word 0x00006040, 0x00006044 + .word 0x00006044, 0x00006048 + .word 0x00006048, 0x0000604C + .word 0x0000604C, 0x00006050 + .word 0x00006050, 0x00006054 + .word 0x00006054, 0x00006058 + .word 0x00006058, 0x0000605C + .word 0x0000605C, 0x00006060 + .word 0x00006060, 0x00006064 + .word 0x00006064, 0x00006068 + .word 0x00006068, 0x0000606C + .word 0x0000606C, 0x00006070 + .word 0x00006070, 0x00006074 + .word 0x00006074, 0x00006078 + .word 0x00006078, 0x0000607C + .word 0x0000607C, 0x00006080 + .word 0x00006080, 0x00006084 + .word 0x00006084, 0x00006088 + .word 0x00006088, 0x0000608C + .word 0x0000608C, 0x00006090 + .word 0x00006090, 0x00006094 + .word 0x00006094, 0x00006098 + .word 0x00006098, 0x0000609C + .word 0x0000609C, 0x000060A0 + .word 0x000060A0, 0x000060AC + .word 0x000060AC, 0x000060B0 + .word 0x000060B0, 0x000060B4 + .word 0x000060B4, 0x000060B8 + .word 0x000060B8, 0x000060BC + .word 0x000060BC, 0x000060C0 + .word 0x000060C0, 0x000060C4 + .word 0x000060C4, 0x000060C8 + .word 0x000060C8, 0x000060CC + .word 0x000060CC, 0x000060D0 + .word 0x000060D0, 0x000060D4 + .word 0x000060D4, 0x0000610C + .word 0x0000610C, 0x0000615C + .word 0x0000615C, 0x00006160 + .word 0x00006160, 0x00006164 + .word 0x00006164, 0x00006168 + .word 0x00006168, 0x0000616C + .word 0x0000616C, 0x00006170 + .word 0x00006170, 0x00006174 + .word 0x00006174, 0x00006178 + .word 0x00006178, 0x0000617C + .word 0x0000617C, 0x00006180 + .word 0x00006180, 0x00006184 + .word 0x00006184, 0x00006188 + .word 0x00006188, 0x0000618C + .word 0x0000618C, 0x00006190 + .word 0x00006190, 0x00006194 + .word 0x00006194, 0x00006198 + .word 0x00006198, 0x0000619C + .word 0x0000619C, 0x000061A0 + .word 0x000061A0, 0x000061A4 + .word 0x000061A4, 0x000061A8 + .word 0x000061A8, 0x000061AC + .word 0x000061AC, 0x000061B0 + .word 0x000061B0, 0x000061B4 + .word 0x000061B4, 0x000061B8 + .word 0x000061B8, 0x000061BC + .word 0x000061BC, 0x000061C0 + .word 0x000061C0, 0x000061C4 + .word 0x000061C4, 0x000061C8 + .word 0x000061C8, 0x000061E0 + .word 0x000061E0, 0x000061EC + .word 0x000061EC, 0x000061F0 + .word 0x000061F0, 0x000061F4 + .word 0x000061F4, 0x000061F8 + .word 0x000061F8, 0x000061FC + .word 0x000061FC, 0x00006204 + .word 0x00006204, 0x0000620C + .word 0x0000620C, 0x00006228 + .word 0x00006228, 0x0000622C + .word 0x0000622C, 0x00006230 + .word 0x00006230, 0x00006234 + .word 0x00006234, 0x00006240 + .word 0x00006240, 0x0000624C + .word 0x0000624C, 0x00006258 + .word 0x00006258, 0x00006264 + .word 0x00006264, 0x00006270 + .word 0x00006270, 0x00006274 + .word 0x00006274, 0x00006278 + .word 0x00006278, 0x0000627C + .word 0x0000627C, 0x00006280 + .word 0x00006280, 0x00006284 + .word 0x00006284, 0x00006288 + .word 0x00006288, 0x0000628C + .word 0x0000628C, 0x00006294 + .word 0x00006294, 0x0000629C + .word 0x0000629C, 0x000062A0 + .word 0x000062A0, 0x000062A4 + .word 0x000062A4, 0x000062A8 + .word 0x000062A8, 0x000062AC + .word 0x000062AC, 0x000062B0 + .word 0x000062B0, 0x000062B4 + .word 0x000062B4, 0x000062D8 + .word 0x000062D8, 0x000062FC + .word 0x000062FC, 0x00006304 + .word 0x00006304, 0x0000630C + .word 0x0000630C, 0x00006310 + .word 0x00006310, 0x00006314 + .word 0x00006314, 0x00006318 + .word 0x00006318, 0x0000631C + .word 0x0000631C, 0x00006320 + .word 0x00006320, 0x00006324 + .word 0x00006324, 0x00006328 + .word 0x00006328, 0x0000632C + .word 0x0000632C, 0x00006330 + .word 0x00006330, 0x00006334 + .word 0x00006334, 0x00006338 + .word 0x00006338, 0x0000634C + .word 0x0000634C, 0x00006350 + .word 0x00006350, 0x00006354 + .word 0x00006354, 0x00006358 + .word 0x00006358, 0x0000635C + .word 0x0000635C, 0x00006360 + .word 0x00006360, 0x00006364 + .word 0x00006364, 0x00006368 + .word 0x00006368, 0x0000636C + .word 0x0000636C, 0x00006370 + .word 0x00006370, 0x00006374 + .word 0x00006374, 0x00006378 + .word 0x00006378, 0x00006384 + .word 0x00006384, 0x00006388 + .word 0x00006388, 0x0000638C + .word 0x0000638C, 0x00006394 + .word 0x00006394, 0x000063A0 + .word 0x000063A0, 0x000063A4 + .word 0x000063A4, 0x000063A8 + .word 0x000063A8, 0x000063AC + .word 0x000063AC, 0x000063B0 + .word 0x000063B0, 0x000063B4 + .word 0x000063B4, 0x000063B8 + .word 0x000063B8, 0x000063BC + .word 0x000063BC, 0x000063C0 + .word 0x000063C0, 0x000063C4 + .word 0x000063C4, 0x000063C8 + .word 0x000063C8, 0x000063CC + .word 0x000063CC, 0x000063D0 + .word 0x000063D0, 0x000063D4 + .word 0x000063D4, 0x000063D8 + .word 0x000063D8, 0x000063DC + .word 0x000063DC, 0x000063E0 + .word 0x000063E0, 0x000063E4 + .word 0x000063E4, 0x000063E8 + .word 0x000063E8, 0x000063EC + .word 0x000063EC, 0x000063F0 + .word 0x000063F0, 0x000063F4 + .word 0x000063F4, 0x000063F8 + .word 0x000063F8, 0x000063FC + .word 0x000063FC, 0x00006400 + .word 0x00006400, 0x00006404 + .word 0x00006404, 0x00006424 + .word 0x00006424, 0x00006434 + .word 0x00006434, 0x00006438 + .word 0x00006438, 0x00006464 + .word 0x00006464, 0x0000647C + .word 0x0000647C, 0x00006494 + .word 0x00006494, 0x000064B4 + .word 0x000064B4, 0x000064CC + .word 0x000064CC, 0x000064D4 + .word 0x000064D4, 0x000064D8 + .word 0x000064D8, 0x000064E8 + .word 0x000064E8, 0x000064EC + .word 0x000064EC, 0x000064F0 + .word 0x000064F0, 0x000064F4 + .word 0x000064F4, 0x000064F8 + .word 0x000064F8, 0x000064FC + .word 0x000064FC, 0x00006500 + .word 0x00006500, 0x00006504 + .word 0x00006504, 0x00006508 + .word 0x00006508, 0x0000650C + .word 0x0000650C, 0x00006510 + .word 0x00006510, 0x00006524 + .word 0x00006524, 0x0000653C + .word 0x0000653C, 0x0000655C + .word 0x0000655C, 0x00006560 + .word 0x00006560, 0x00006564 + .word 0x00006564, 0x00006588 + .word 0x00006588, 0x000065A4 + .word 0x000065A4, 0x000065A8 + .word 0x000065A8, 0x000065AC + .word 0x000065AC, 0x000065B0 + .word 0x000065B0, 0x000065B4 + .word 0x000065B4, 0x000065B8 + .word 0x000065B8, 0x000065BC + .word 0x000065BC, 0x000065C0 + .word 0x000065C0, 0x000065C4 + .word 0x000065C4, 0x000065C8 + .word 0x000065C8, 0x000065D4 + .word 0x000065D4, 0x000065E4 + .word 0x000065E4, 0x000065F0 + .word 0x000065F0, 0x000065F8 + .word 0x000065F8, 0x000065FC + .word 0x000065FC, 0x00006600 + .word 0x00006600, 0x0000660C + .word 0x0000660C, 0x00006610 + .word 0x00006610, 0x00006614 + .word 0x00006614, 0x00006618 + .word 0x00006618, 0x0000661C + .word 0x0000661C, 0x00006620 + .word 0x00006620, 0x00006624 + .word 0x00006624, 0x00006628 + .word 0x00006628, 0x0000662C + .word 0x0000662C, 0x00006630 + .word 0x00006630, 0x00006634 + .word 0x00006634, 0x0000663C + .word 0x0000663C, 0x00006640 + .word 0x00006640, 0x00006644 + .word 0x00006644, 0x00006648 + .word 0x00006648, 0x0000664C + .word 0x0000664C, 0x00006650 + .word 0x00006650, 0x00006678 + .word 0x00006678, 0x000066A0 + .word 0x000066A0, 0x000066AC + .word 0x000066AC, 0x000066BC + .word 0x000066BC, 0x000066C0 + .word 0x000066C0, 0x000066C4 + .word 0x000066C4, 0x000066C8 + .word 0x000066C8, 0x000066CC + .word 0x000066CC, 0x000066D0 + .word 0x000066D0, 0x000066D4 + .word 0x000066D4, 0x000066D8 + .word 0x000066D8, 0x000066DC + .word 0x000066DC, 0x000066E0 + .word 0x000066E0, 0x000066E4 + .word 0x000066E4, 0x000066E8 + .word 0x000066E8, 0x000066EC + .word 0x000066EC, 0x000066F0 + .word 0x000066F0, 0x000066F4 + .word 0x000066F4, 0x000066F8 + .word 0x000066F8, 0x000066FC + .word 0x000066FC, 0x00006700 + .word 0x00006700, 0x00006704 + .word 0x00006704, 0x00006708 + .word 0x00006708, 0x0000670C + .word 0x0000670C, 0x00006710 + .word 0x00006710, 0x00006714 + .word 0x00006714, 0x00006718 + .word 0x00006718, 0x0000671C + .word 0x0000671C, 0x00006720 + .word 0x00006720, 0x00006724 + .word 0x00006724, 0x00006728 + .word 0x00006728, 0x0000672C + .word 0x0000672C, 0x00006730 + .word 0x00006730, 0x00006734 + .word 0x00006734, 0x00006738 + .word 0x00006738, 0x0000673C + .word 0x0000673C, 0x00006740 + .word 0x00006740, 0x00006744 + .word 0x00006744, 0x00006748 + .word 0x00006748, 0x00006810 + .word 0x00006810, 0x00006814 + .word 0x00006814, 0x00006818 + .word 0x00006818, 0x0000681C + .word 0x0000681C, 0x00006820 + .word 0x00006820, 0x00006824 + .word 0x00006824, 0x00006828 + .word 0x00006828, 0x0000682C + .word 0x0000682C, 0x00006830 + .word 0x00006830, 0x00006834 + .word 0x00006834, 0x00006838 + .word 0x00006838, 0x0000683C + .word 0x0000683C, 0x00006840 + .word 0x00006840, 0x00006844 + .word 0x00006844, 0x00006848 + .word 0x00006848, 0x0000684C + .word 0x0000684C, 0x00006850 + .word 0x00006850, 0x00006854 + .word 0x00006854, 0x00006858 + .word 0x00006858, 0x0000685C + .word 0x0000685C, 0x00006860 + .word 0x00006860, 0x00006864 + .word 0x00006864, 0x00006868 + .word 0x00006868, 0x0000686C + .word 0x0000686C, 0x00006870 + .word 0x00006870, 0x00006874 + .word 0x00006874, 0x00006878 + .word 0x00006878, 0x0000687C + .word 0x0000687C, 0x00006880 + .word 0x00006880, 0x00006884 + .word 0x00006884, 0x00006888 + .word 0x00006888, 0x0000688C + .word 0x0000688C, 0x00006890 + .word 0x00006890, 0x00006894 + .word 0x00006894, 0x00006898 + .word 0x00006898, 0x0000689C + .word 0x0000689C, 0x000068A0 + .word 0x000068A0, 0x000068A4 + .word 0x000068A4, 0x000068A8 + .word 0x000068A8, 0x000068AC + .word 0x000068AC, 0x000068B0 + .word 0x000068B0, 0x000068B4 + .word 0x000068B4, 0x000068B8 + .word 0x000068B8, 0x000068BC + .word 0x000068BC, 0x000068C0 + .word 0x000068C0, 0x000068C4 + .word 0x000068C4, 0x000068C8 + .word 0x000068C8, 0x000068CC + .word 0x000068CC, 0x000068D0 + .word 0x000068D0, 0x000068D4 + .word 0x000068D4, 0x000068D8 + .word 0x000068D8, 0x000068DC + .word 0x000068DC, 0x000068E0 + .word 0x000068E0, 0x000068E4 + .word 0x000068E4, 0x000068E8 + .word 0x000068E8, 0x000068EC + .word 0x000068EC, 0x000068F0 + .word 0x000068F0, 0x000068F4 + .word 0x000068F4, 0x000068F8 + .word 0x000068F8, 0x000068FC + .word 0x000068FC, 0x00006900 + .word 0x00006900, 0x00006904 + .word 0x00006904, 0x00006908 + .word 0x00006908, 0x0000690C + .word 0x0000690C, 0x00006910 + .word 0x00006910, 0x00006914 + .word 0x00006914, 0x00006918 + .word 0x00006918, 0x0000691C + .word 0x0000691C, 0x00006920 + .word 0x00006920, 0x00006924 + .word 0x00006924, 0x00006928 + .word 0x00006928, 0x0000692C + .word 0x0000692C, 0x00006930 + .word 0x00006930, 0x00006934 + .word 0x00006934, 0x00006938 + .word 0x00006938, 0x0000693C + .word 0x0000693C, 0x00006940 + .word 0x00006940, 0x00006944 + .word 0x00006944, 0x00006948 + .word 0x00006948, 0x0000694C + .word 0x0000694C, 0x00006950 + .word 0x00006950, 0x00006954 + .word 0x00006954, 0x00006958 + .word 0x00006958, 0x0000695C + .word 0x0000695C, 0x00006960 + .word 0x00006960, 0x00006964 + .word 0x00006964, 0x00006968 + .word 0x00006968, 0x0000696C + .word 0x0000696C, 0x00006970 + .word 0x00006970, 0x00006974 + .word 0x00006974, 0x00006978 + .word 0x00006978, 0x0000697C + .word 0x0000697C, 0x00006980 + .word 0x00006980, 0x00006984 + .word 0x00006984, 0x00006988 + .word 0x00006988, 0x0000698C + .word 0x0000698C, 0x00006990 + .word 0x00006990, 0x00006994 + .word 0x00006994, 0x00006998 + .word 0x00006998, 0x0000699C + .word 0x0000699C, 0x000069A0 + .word 0x000069A0, 0x000069A4 + .word 0x000069A4, 0x000069A8 + .word 0x000069A8, 0x000069AC + .word 0x000069AC, 0x000069B0 + .word 0x000069B0, 0x000069B4 + .word 0x000069B4, 0x000069B8 + .word 0x000069B8, 0x000069BC + .word 0x000069BC, 0x000069C0 + .word 0x000069C0, 0x000069C4 + .word 0x000069C4, 0x000069C8 + .word 0x000069C8, 0x000069CC + .word 0x000069CC, 0x000069D0 + .word 0x000069D0, 0x000069D4 + .word 0x000069D4, 0x000069D8 + .word 0x000069D8, 0x000069DC + .word 0x000069DC, 0x000069E0 + .word 0x000069E0, 0x000069E4 + .word 0x000069E4, 0x000069E8 + .word 0x000069E8, 0x000069EC + .word 0x000069EC, 0x000069F0 + .word 0x000069F0, 0x000069F4 + .word 0x000069F4, 0x000069F8 + .word 0x000069F8, 0x000069FC + .word 0x000069FC, 0x00006A00 + .word 0x00006A00, 0x00006A04 + .word 0x00006A04, 0x00006A08 + .word 0x00006A08, 0x00006A0C + .word 0x00006A0C, 0x00006A10 + .word 0x00006A10, 0x00006A14 + .word 0x00006A14, 0x00006A18 + .word 0x00006A18, 0x00006A1C + .word 0x00006A1C, 0x00006A20 + .word 0x00006A20, 0x00006A24 + .word 0x00006A24, 0x00006A28 + .word 0x00006A28, 0x00006A2C + .word 0x00006A2C, 0x00006A30 + .word 0x00006A30, 0x00006A34 + .word 0x00006A34, 0x00006A38 + .word 0x00006A38, 0x00006A3C + .word 0x00006A3C, 0x00006A40 + .word 0x00006A40, 0x00006A44 + .word 0x00006A44, 0x00006A48 + .word 0x00006A48, 0x00006A4C + .word 0x00006A4C, 0x00006A50 + .word 0x00006A50, 0x00006A54 + .word 0x00006A54, 0x00006A58 + .word 0x00006A58, 0x00006A5C + .word 0x00006A5C, 0x00006A60 + .word 0x00006A60, 0x00006A64 + .word 0x00006A64, 0x00006A68 + .word 0x00006A68, 0x00006A6C + .word 0x00006A6C, 0x00006A70 + .word 0x00006A70, 0x00006A74 + .word 0x00006A74, 0x00006A78 + .word 0x00006A78, 0x00006A7C + .word 0x00006A7C, 0x00006A80 + .word 0x00006A80, 0x00006A84 + .word 0x00006A84, 0x00006A88 + .word 0x00006A88, 0x00006A8C + .word 0x00006A8C, 0x00006A90 + .word 0x00006A90, 0x00006A94 + .word 0x00006A94, 0x00006A98 + .word 0x00006A98, 0x00006A9C + .word 0x00006A9C, 0x00006AA0 + .word 0x00006AA0, 0x00006AA4 + .word 0x00006AA4, 0x00006AA8 + .word 0x00006AA8, 0x00006AAC + .word 0x00006AAC, 0x00006AB0 + .word 0x00006AB0, 0x00006AB4 + .word 0x00006AB4, 0x00006AB8 + .word 0x00006AB8, 0x00006ABC + .word 0x00006ABC, 0x00006AC0 + .word 0x00006AC0, 0x00006AC4 + .word 0x00006AC4, 0x00006AC8 + .word 0x00006AC8, 0x00006ACC + .word 0x00006ACC, 0x00006AD0 + .word 0x00006AD0, 0x00006AD4 + .word 0x00006AD4, 0x00006AD8 + .word 0x00006AD8, 0x00006ADC + .word 0x00006ADC, 0x00006AE0 + .word 0x00006AE0, 0x00006AE4 + .word 0x00006AE4, 0x00006AE8 + .word 0x00006AE8, 0x00006AEC + .word 0x00006AEC, 0x00006AF0 + .word 0x00006AF0, 0x00006AF4 + .word 0x00006AF4, 0x00006AF8 + .word 0x00006AF8, 0x00006AFC + .word 0x00006AFC, 0x00006B00 + .word 0x00006B00, 0x00006B04 + .word 0x00006B04, 0x00006B58 + .word 0x00006B58, 0x00006B5C + .word 0x00006B5C, 0x00006B60 + .word 0x00006B60, 0x00006B64 + .word 0x00006B64, 0x00006B68 + .word 0x00006B68, 0x00006B6C + .word 0x00006B6C, 0x00006B70 + .word 0x00006B70, 0x00006B74 + .word 0x00006B74, 0x00006B78 + .word 0x00006B78, 0x00006B7C + .word 0x00006B7C, 0x00006B80 + .word 0x00006B80, 0x00006B84 + .word 0x00006B84, 0x00006B88 + .word 0x00006B88, 0x00006B8C + .word 0x00006B8C, 0x00006B90 + .word 0x00006B90, 0x00006B94 + .word 0x00006B94, 0x00006B98 + .word 0x00006B98, 0x00006B9C + .word 0x00006B9C, 0x00006BA0 + .word 0x00006BA0, 0x00006BA4 + .word 0x00006BA4, 0x00006BA8 + .word 0x00006BA8, 0x00006BAC + .word 0x00006BAC, 0x00006BB0 + .word 0x00006BB0, 0x00006BB4 + .word 0x00006BB4, 0x00006C08 + .word 0x00006C08, 0x00006C0C + .word 0x00006C0C, 0x00006C10 + .word 0x00006C10, 0x00006C14 + .word 0x00006C14, 0x00006C18 + .word 0x00006C18, 0x00006C1C + .word 0x00006C1C, 0x00006C20 + .word 0x00006C20, 0x00006C24 + .word 0x00006C24, 0x00006C28 + .word 0x00006C28, 0x00006C2C + .word 0x00006C2C, 0x00006C30 + .word 0x00006C30, 0x00006C34 + .word 0x00006C34, 0x00006C38 + .word 0x00006C38, 0x00006C3C + .word 0x00006C3C, 0x00006C40 + .word 0x00006C40, 0x00006C44 + .word 0x00006C44, 0x00006C48 + .word 0x00006C48, 0x00006C4C + .word 0x00006C4C, 0x00006C50 + .word 0x00006C50, 0x00006C54 + .word 0x00006C54, 0x00006C58 + .word 0x00006C58, 0x00006C5C + .word 0x00006C5C, 0x00006C60 + .word 0x00006C60, 0x00006C64 + .word 0x00006C64, 0x00006C68 + .word 0x00006C68, 0x00006C6C + .word 0x00006C6C, 0x00006C70 + .word 0x00006C70, 0x00006C74 + .word 0x00006C74, 0x00006C78 + .word 0x00006C78, 0x00006C7C + .word 0x00006C7C, 0x00006C80 + .word 0x00006C80, 0x00006C84 + .word 0x00006C84, 0x00006C88 + .word 0x00006C88, 0x00006C8C + .word 0x00006C8C, 0x00006C90 + .word 0x00006C90, 0x00006C94 + .word 0x00006C94, 0x00006C98 + .word 0x00006C98, 0x00006C9C + .word 0x00006C9C, 0x00006CA0 + .word 0x00006CA0, 0x00006CA4 + .word 0x00006CA4, 0x00006CA8 + .word 0x00006CA8, 0x00006CAC + .word 0x00006CAC, 0x00006CB0 + .word 0x00006CB0, 0x00006CB4 + .word 0x00006CB4, 0x00006CB8 + .word 0x00006CB8, 0x00006CBC + .word 0x00006CBC, 0x00006CC0 + .word 0x00006CC0, 0x00006CC4 + .word 0x00006CC4, 0x00006CC8 + .word 0x00006CC8, 0x00006CCC + .word 0x00006CCC, 0x00006CD0 + .word 0x00006CD0, 0x00006D24 + .word 0x00006D24, 0x00006D78 + .word 0x00006D78, 0x00006D7C + .word 0x00006D7C, 0x00006D80 + .word 0x00006D80, 0x00006D84 + .word 0x00006D84, 0x00006D88 + .word 0x00006D88, 0x00006D8C + .word 0x00006D8C, 0x00006D90 + .word 0x00006D90, 0x00006D94 + .word 0x00006D94, 0x00006D98 + .word 0x00006D98, 0x00006D9C + .word 0x00006D9C, 0x00006DA0 + .word 0x00006DA0, 0x00006DA4 + .word 0x00006DA4, 0x00006DA8 + .word 0x00006DA8, 0x00006DAC + .word 0x00006DAC, 0x00006DB0 + .word 0x00006DB0, 0x00006DB4 + .word 0x00006DB4, 0x00006DB8 + .word 0x00006DB8, 0x00006DBC + .word 0x00006DBC, 0x00006DC0 + .word 0x00006DC0, 0x00006DC4 + .word 0x00006DC4, 0x00006DC8 + .word 0x00006DC8, 0x00006DCC + .word 0x00006DCC, 0x00006DD0 + .word 0x00006DD0, 0x00006DD4 + .word 0x00006DD4, 0x00006DD8 + .word 0x00006DD8, 0x00006DDC + .word 0x00006DDC, 0x00006DE0 + .word 0x00006DE0, 0x00006DE4 + .word 0x00006DE4, 0x00006DE8 + .word 0x00006DE8, 0x00006DEC + .word 0x00006DEC, 0x00006DF0 + .word 0x00006DF0, 0x00006DF4 + .word 0x00006DF4, 0x00006DF8 + .word 0x00006DF8, 0x00006DFC + .word 0x00006DFC, 0x00006E00 + .word 0x00006E00, 0x00006E04 + .word 0x00006E04, 0x00006E08 + .word 0x00006E08, 0x00006E0C + .word 0x00006E0C, 0x00006E10 + .word 0x00006E10, 0x00006E14 + .word 0x00006E14, 0x00006E18 + .word 0x00006E18, 0x00006E1C + .word 0x00006E1C, 0x00006E20 + .word 0x00006E20, 0x00006E24 + .word 0x00006E24, 0x00006E28 + .word 0x00006E28, 0x00006E2C + .word 0x00006E2C, 0x00006E30 + .word 0x00006E30, 0x00006E34 + .word 0x00006E34, 0x00006E38 + .word 0x00006E38, 0x00006E3C + .word 0x00006E3C, 0x00006E40 + .word 0x00006E40, 0x00006E44 + .word 0x00006E44, 0x00006E48 + .word 0x00006E48, 0x00006E4C + .word 0x00006E4C, 0x00006E50 + .word 0x00006E50, 0x00006E54 + .word 0x00006E54, 0x00006E58 + .word 0x00006E58, 0x00006E5C + .word 0x00006E5C, 0x00006E60 + .word 0x00006E60, 0x00006E64 + .word 0x00006E64, 0x00006E68 + .word 0x00006E68, 0x00006E6C + .word 0x00006E6C, 0x00006E70 + .word 0x00006E70, 0x00006E74 + .word 0x00006E74, 0x00006E78 + .word 0x00006E78, 0x00006E7C + .word 0x00006E7C, 0x00006E80 + .word 0x00006E80, 0x00006E84 + .word 0x00006E84, 0x00006E88 + .word 0x00006E88, 0x00006E8C + .word 0x00006E8C, 0x00006E90 + .word 0x00006E90, 0x00006E94 + .word 0x00006E94, 0x00006E98 + .word 0x00006E98, 0x00006E9C + .word 0x00006E9C, 0x00006EA0 + .word 0x00006EA0, 0x00006EA4 + .word 0x00006EA4, 0x00006EA8 + .word 0x00006EA8, 0x00006EAC + .word 0x00006EAC, 0x00006EB0 + .word 0x00006EB0, 0x00006EB4 + .word 0x00006EB4, 0x00006EB8 + .word 0x00006EB8, 0x00006EBC + .word 0x00006EBC, 0x00006EC0 + .word 0x00006EC0, 0x00006EC4 + .word 0x00006EC4, 0x00006EC8 + .word 0x00006EC8, 0x00006ECC + .word 0x00006ECC, 0x00006ED0 + .word 0x00006ED0, 0x00006ED4 + .word 0x00006ED4, 0x00006ED8 + .word 0x00006ED8, 0x00006EDC + .word 0x00006EDC, 0x00006EE0 + .word 0x00006EE0, 0x00006EE4 + .word 0x00006EE4, 0x00006EE8 + .word 0x00006EE8, 0x00006EEC + .word 0x00006EEC, 0x00006EF0 + .word 0x00006EF0, 0x00006EF4 + .word 0x00006EF4, 0x00006EF8 + .word 0x00006EF8, 0x00006EFC + .word 0x00006EFC, 0x00006F00 + .word 0x00006F00, 0x00006F04 + .word 0x00006F04, 0x00006F08 + .word 0x00006F08, 0x00006F0C + .word 0x00006F0C, 0x00006F10 + .word 0x00006F10, 0x00006F14 + .word 0x00006F14, 0x00006F18 + .word 0x00006F18, 0x00006F1C + .word 0x00006F1C, 0x00006F20 + .word 0x00006F20, 0x00006F24 + .word 0x00006F24, 0x00006F28 + .word 0x00006F28, 0x00006F2C + .word 0x00006F2C, 0x00006F30 + .word 0x00006F30, 0x00006F34 + .word 0x00006F34, 0x00006F38 + .word 0x00006F38, 0x00006F3C + .word 0x00006F3C, 0x00006F40 + .word 0x00006F40, 0x00006F44 + .word 0x00006F44, 0x00006F48 + .word 0x00006F48, 0x00006F4C + .word 0x00006F4C, 0x00006F50 + .word 0x00006F50, 0x00006F54 + .word 0x00006F54, 0x00006F58 + .word 0x00006F58, 0x00006F5C + .word 0x00006F5C, 0x00006F60 + .word 0x00006F60, 0x00006F64 + .word 0x00006F64, 0x00006F68 + .word 0x00006F68, 0x00006F6C + .word 0x00006F6C, 0x00006F70 + .word 0x00006F70, 0x00006F74 + .word 0x00006F74, 0x00006F78 + .word 0x00006F78, 0x00006F7C + .word 0x00006F7C, 0x00006F80 + .word 0x00006F80, 0x00006F84 + .word 0x00006F84, 0x00006F88 + .word 0x00006F88, 0x00006F8C + .word 0x00006F8C, 0x00006F90 + .word 0x00006F90, 0x00006F94 + .word 0x00006F94, 0x00006F98 + .word 0x00006F98, 0x00006F9C + .word 0x00006F9C, 0x00006FA0 + .word 0x00006FA0, 0x00006FA4 + .word 0x00006FA4, 0x00006FA8 + .word 0x00006FA8, 0x00006FAC + .word 0x00006FAC, 0x00006FB0 + .word 0x00006FB0, 0x00006FB4 + .word 0x00006FB4, 0x00006FB8 + .word 0x00006FB8, 0x00006FBC + .word 0x00006FBC, 0x00007010 + .word 0x00007010, 0x00007014 + .word 0x00007014, 0x00007018 + .word 0x00007018, 0x0000706C + .word 0x0000706C, 0x00007070 + .word 0x00007070, 0x00007074 + .word 0x00007074, 0x00007078 + .word 0x00007078, 0x0000707C + .word 0x0000707C, 0x000070D0 + .word 0x000070D0, 0x000070D4 + .word 0x000070D4, 0x000070D8 + .word 0x000070D8, 0x000070DC + .word 0x000070DC, 0x000070E0 + .word 0x000070E0, 0x000070E4 + .word 0x000070E4, 0x000070E8 + .word 0x000070E8, 0x000070EC + .word 0x000070EC, 0x000070F0 + .word 0x000070F0, 0x000070F4 + .word 0x000070F4, 0x000070F8 + .word 0x000070F8, 0x000070FC + .word 0x000070FC, 0x00007100 + .word 0x00007100, 0x00007104 + .word 0x00007104, 0x00007108 + .word 0x00007108, 0x0000710C + .word 0x0000710C, 0x00007110 + .word 0x00007110, 0x00007114 + .word 0x00007114, 0x00007118 + .word 0x00007118, 0x0000711C + .word 0x0000711C, 0x00007120 + .word 0x00007120, 0x00007124 + .word 0x00007124, 0x00007128 + .word 0x00007128, 0x0000712C + .word 0x0000712C, 0x00007130 + .word 0x00007130, 0x00007134 + .word 0x00007134, 0x00007138 + .word 0x00007138, 0x0000713C + .word 0x0000713C, 0x00007140 + .word 0x00007140, 0x00007144 + .word 0x00007144, 0x00007148 + .word 0x00007148, 0x0000714C + .word 0x0000714C, 0x00007150 + .word 0x00007150, 0x00007154 + .word 0x00007154, 0x00007158 + .word 0x00007158, 0x0000715C + .word 0x0000715C, 0x00007160 + .word 0x00007160, 0x00007164 + .word 0x00007164, 0x00007168 + .word 0x00007168, 0x0000716C + .word 0x0000716C, 0x00007170 + .word 0x00007170, 0x00007174 + .word 0x00007174, 0x00007178 + .word 0x00007178, 0x0000717C + .word 0x0000717C, 0x00007180 + .word 0x00007180, 0x00007184 + .word 0x00007184, 0x00007188 + .word 0x00007188, 0x0000718C + .word 0x0000718C, 0x00007190 + .word 0x00007190, 0x00007194 + .word 0x00007194, 0x00007198 + .word 0x00007198, 0x0000719C + .word 0x0000719C, 0x000071A0 + .word 0x000071A0, 0x000071A4 + .word 0x000071A4, 0x000071A8 + .word 0x000071A8, 0x000071AC + .word 0x000071AC, 0x000071B0 + .word 0x000071B0, 0x000071B4 + .word 0x000071B4, 0x000071B8 + .word 0x000071B8, 0x000071BC + .word 0x000071BC, 0x000071C0 + .word 0x000071C0, 0x000071C4 + .word 0x000071C4, 0x000071C8 + .word 0x000071C8, 0x000071CC + .word 0x000071CC, 0x000071D0 + .word 0x000071D0, 0x000071D4 + .word 0x000071D4, 0x000071D8 + .word 0x000071D8, 0x000071DC + .word 0x000071DC, 0x000071E0 + .word 0x000071E0, 0x000071E4 + .word 0x000071E4, 0x000071E8 + .word 0x000071E8, 0x000071EC + .word 0x000071EC, 0x000071F0 + .word 0x000071F0, 0x000071F4 + .word 0x000071F4, 0x000071F8 + .word 0x000071F8, 0x0000722C + .word 0x0000722C, 0x00007230 + .word 0x00007230, 0x00007234 + .word 0x00007234, 0x00007238 + .word 0x00007238, 0x0000723C + .word 0x0000723C, 0x00007240 + .word 0x00007240, 0x00007244 + .word 0x00007244, 0x00007248 + .word 0x00007248, 0x0000724C + .word 0x0000724C, 0x00007250 + .word 0x00007250, 0x00007254 + .word 0x00007254, 0x00007258 + .word 0x00007258, 0x0000725C + .word 0x0000725C, 0x00007260 + .word 0x00007260, 0x00007264 + .word 0x00007264, 0x00007268 + .word 0x00007268, 0x0000726C + .word 0x0000726C, 0x00007270 + .word 0x00007270, 0x00007274 + .word 0x00007274, 0x00007278 + .word 0x00007278, 0x0000727C + .word 0x0000727C, 0x00007280 + .word 0x00007280, 0x00007284 + .word 0x00007284, 0x00007288 + .word 0x00007288, 0x0000728C + .word 0x0000728C, 0x00007290 + .word 0x00007290, 0x00007294 + .word 0x00007294, 0x00007298 + .word 0x00007298, 0x0000729C + .word 0x0000729C, 0x000072A4 + .word 0x000072A4, 0x000072B0 + .word 0x000072B0, 0x000072B4 + .word 0x000072B4, 0x000072BC + .word 0x000072BC, 0x000072C8 + .word 0x000072C8, 0x000072CC + .word 0x000072CC, 0x000072D0 + .word 0x000072D0, 0x000072D4 + .word 0x000072D4, 0x000072D8 + .word 0x000072D8, 0x000072DC + .word 0x000072DC, 0x000072E0 + .word 0x000072E0, 0x000072E4 + .word 0x000072E4, 0x000072E8 + .word 0x000072E8, 0x000072EC + .word 0x000072EC, 0x000072F0 + .word 0x000072F0, 0x000072F4 + .word 0x000072F4, 0x000072F8 + .word 0x000072F8, 0x000072FC + .word 0x000072FC, 0x00007300 + .word 0x00007300, 0x00007308 + .word 0x00007308, 0x00007310 + .word 0x00007310, 0x00007314 + .word 0x00007314, 0x00007318 + .word 0x00007318, 0x0000731C + .word 0x0000731C, 0x00007320 + .word 0x00007320, 0x00007324 + .word 0x00007324, 0x00007328 + .word 0x00007328, 0x00007334 + .word 0x00007334, 0x00007340 + .word 0x00007340, 0x00007344 + .word 0x00007344, 0x00007348 + .word 0x00007348, 0x0000734C + .word 0x0000734C, 0x00007350 + .word 0x00007350, 0x00007354 + .word 0x00007354, 0x00007358 + .word 0x00007358, 0x0000735C + .word 0x0000735C, 0x00007360 + .word 0x00007360, 0x00007364 + .word 0x00007364, 0x00007368 + .word 0x00007368, 0x0000736C + .word 0x0000736C, 0x00007370 + .word 0x00007370, 0x00007374 + .word 0x00007374, 0x00007378 + .word 0x00007378, 0x0000737C + .word 0x0000737C, 0x00007380 + .word 0x00007380, 0x00007384 + .word 0x00007384, 0x00007388 + .word 0x00007388, 0x0000738C + .word 0x0000738C, 0x00007390 + .word 0x00007390, 0x00007394 + .word 0x00007394, 0x00007398 + .word 0x00007398, 0x0000739C + .word 0x0000739C, 0x000073A0 + .word 0x000073A0, 0x000073A4 + .word 0x000073A4, 0x000073A8 + .word 0x000073A8, 0x000073AC + .word 0x000073AC, 0x000073B0 + .word 0x000073B0, 0x000073B4 + .word 0x000073B4, 0x000073B8 + .word 0x000073B8, 0x000073C0 + .word 0x000073C0, 0x000073C4 + .word 0x000073C4, 0x000073C8 + .word 0x000073C8, 0x000073CC + .word 0x000073CC, 0x000073D0 + .word 0x000073D0, 0x000073D4 + .word 0x000073D4, 0x000073D8 + .word 0x000073D8, 0x000073DC + .word 0x000073DC, 0x000073E0 + .word 0x000073E0, 0x000073E4 + .word 0x000073E4, 0x000073E8 + .word 0x000073E8, 0x000073EC + .word 0x000073EC, 0x000073F0 + .word 0x000073F0, 0x000073F4 + .word 0x000073F4, 0x000073F8 + .word 0x000073F8, 0x000073FC + .word 0x000073FC, 0x00007400 + .word 0x00007400, 0x00007404 + .word 0x00007404, 0x00007408 + .word 0x00007408, 0x0000740C + .word 0x0000740C, 0x00007410 + .word 0x00007410, 0x00007414 + .word 0x00007414, 0x00007418 + .word 0x00007418, 0x0000741C + .word 0x0000741C, 0x00007420 + .word 0x00007420, 0x00007424 + .word 0x00007424, 0x00007428 + .word 0x00007428, 0x0000742C + .word 0x0000742C, 0x00007430 + .word 0x00007430, 0x00007434 + .word 0x00007434, 0x00007438 + .word 0x00007438, 0x0000743C + .word 0x0000743C, 0x00007440 + .word 0x00007440, 0x00007444 + .word 0x00007444, 0x00007448 + .word 0x00007448, 0x0000744C + .word 0x0000744C, 0x00007450 + .word 0x00007450, 0x00007454 + .word 0x00007454, 0x00007458 + .word 0x00007458, 0x0000745C + .word 0x0000745C, 0x00007468 + .word 0x00007468, 0x0000746C + .word 0x0000746C, 0x00007470 + .word 0x00007470, 0x00007474 + .word 0x00007474, 0x0000747C + .word 0x0000747C, 0x00007480 + .word 0x00007480, 0x00007484 + .word 0x00007484, 0x00007488 + .word 0x00007488, 0x0000748C + .word 0x0000748C, 0x00007490 + .word 0x00007490, 0x00007494 + .word 0x00007494, 0x00007498 + .word 0x00007498, 0x0000749C + .word 0x0000749C, 0x000074A0 + .word 0x000074A0, 0x000074A4 + .word 0x000074A4, 0x000074A8 + .word 0x000074A8, 0x000074AC + .word 0x000074AC, 0x000074B0 + .word 0x000074B0, 0x000074B4 + .word 0x000074B4, 0x000074B8 + .word 0x000074B8, 0x000074BC + .word 0x000074BC, 0x000074C0 + .word 0x000074C0, 0x000074C4 + .word 0x000074C4, 0x000074C8 + .word 0x000074C8, 0x000074CC + .word 0x000074CC, 0x000074D0 + .word 0x000074D0, 0x000074D4 + .word 0x000074D4, 0x000074D8 + .word 0x000074D8, 0x000074DC + .word 0x000074DC, 0x000074E0 + .word 0x000074E0, 0x000074E4 + .word 0x000074E4, 0x000074E8 + .word 0x000074E8, 0x000074EC + .word 0x000074EC, 0x000074F4 + .word 0x000074F4, 0x000074F8 + .word 0x000074F8, 0x000074FC + .word 0x000074FC, 0x00007500 + .word 0x00007500, 0x00007504 + .word 0x00007504, 0x00007508 + .word 0x00007508, 0x0000750C + .word 0x0000750C, 0x00007510 + .word 0x00007510, 0x00007514 + .word 0x00007514, 0x00007518 + .word 0x00007518, 0x0000751C + .word 0x0000751C, 0x00007520 + .word 0x00007520, 0x00007524 + .word 0x00007524, 0x00007528 + .word 0x00007528, 0x00007530 + .word 0x00007530, 0x00007534 + .word 0x00007534, 0x00007538 + .word 0x00007538, 0x0000753C + .word 0x0000753C, 0x00007544 + .word 0x00007544, 0x0000754C + .word 0x0000754C, 0x00007550 + .word 0x00007550, 0x00007554 + .word 0x00007554, 0x00007558 + .word 0x00007558, 0x0000755C + .word 0x0000755C, 0x00007560 + .word 0x00007560, 0x00007564 + .word 0x00007564, 0x00007570 + .word 0x00007570, 0x00007578 + .word 0x00007578, 0x0000757C + .word 0x0000757C, 0x000075D0 + .word 0x000075D0, 0x000075D8 + .word 0x000075D8, 0x000075DC + .word 0x000075DC, 0x000075E0 + .word 0x000075E0, 0x000075E4 + .word 0x000075E4, 0x000075E8 + .word 0x000075E8, 0x000075EC + .word 0x000075EC, 0x000075F0 + .word 0x000075F0, 0x000075F4 + .word 0x000075F4, 0x000075F8 + .word 0x000075F8, 0x000075FC + .word 0x000075FC, 0x00007600 + .word 0x00007600, 0x00007604 + .word 0x00007604, 0x00007608 + .word 0x00007608, 0x0000760C + .word 0x0000760C, 0x00007610 + .word 0x00007610, 0x00007614 + .word 0x00007614, 0x00007618 + .word 0x00007618, 0x0000761C + .word 0x0000761C, 0x00007620 + .word 0x00007620, 0x00007624 + .word 0x00007624, 0x00007628 + .word 0x00007628, 0x0000762C + .word 0x0000762C, 0x00007630 + .word 0x00007630, 0x00007684 + .word 0x00007684, 0x00007688 + .word 0x00007688, 0x0000768C + .word 0x0000768C, 0x00007690 + .word 0x00007690, 0x00007694 + .word 0x00007694, 0x00007698 + .word 0x00007698, 0x0000769C + .word 0x0000769C, 0x000076A0 + .word 0x000076A0, 0x000076A4 + .word 0x000076A4, 0x000076A8 + .word 0x000076A8, 0x000076AC + .word 0x000076AC, 0x000076B0 + .word 0x000076B0, 0x000076B4 + .word 0x000076B4, 0x000076B8 + .word 0x000076B8, 0x000076BC + .word 0x000076BC, 0x000076C0 + .word 0x000076C0, 0x000076C4 + .word 0x000076C4, 0x000076C8 + .word 0x000076C8, 0x000076CC + .word 0x000076CC, 0x000076D0 + .word 0x000076D0, 0x000076D4 + .word 0x000076D4, 0x000076DC + .word 0x000076DC, 0x000076E8 + .word 0x000076E8, 0x000076EC + .word 0x000076EC, 0x000076F0 + .word 0x000076F0, 0x000076F4 + .word 0x000076F4, 0x000076F8 + .word 0x000076F8, 0x00007704 + .word 0x00007704, 0x00007708 + .word 0x00007708, 0x0000770C + .word 0x0000770C, 0x00007710 + .word 0x00007710, 0x00007714 + .word 0x00007714, 0x0000771C + .word 0x0000771C, 0x00007720 + .word 0x00007720, 0x00007724 + .word 0x00007724, 0x00007728 + .word 0x00007728, 0x0000772C + .word 0x0000772C, 0x00007730 + .word 0x00007730, 0x00007734 + .word 0x00007734, 0x00007738 + .word 0x00007738, 0x0000773C + .word 0x0000773C, 0x00007740 + .word 0x00007740, 0x00007744 + .word 0x00007744, 0x00007748 + .word 0x00007748, 0x0000774C + .word 0x0000774C, 0x00007750 + .word 0x00007750, 0x00007754 + .word 0x00007754, 0x00007758 + .word 0x00007758, 0x00007764 + .word 0x00007764, 0x00007768 + .word 0x00007768, 0x0000776C + .word 0x0000776C, 0x000077C0 + .word 0x000077C0, 0x00007814 + .word 0x00007814, 0x00007818 + .word 0x00007818, 0x0000781C + .word 0x0000781C, 0x00007820 + .word 0x00007820, 0x00007824 + .word 0x00007824, 0x00007828 + .word 0x00007828, 0x0000782C + .word 0x0000782C, 0x00007830 + .word 0x00007830, 0x00007834 + .word 0x00007834, 0x00007838 + .word 0x00007838, 0x0000783C + .word 0x0000783C, 0x00007844 + .word 0x00007844, 0x00007848 + .word 0x00007848, 0x0000784C + .word 0x0000784C, 0x00007858 + .word 0x00007858, 0x00007864 + .word 0x00007864, 0x00007868 + .word 0x00007868, 0x0000786C + .word 0x0000786C, 0x00007870 + .word 0x00007870, 0x00007874 + .word 0x00007874, 0x00007878 + .word 0x00007878, 0x0000787C + .word 0x0000787C, 0x00007880 + .word 0x00007880, 0x00007884 + .word 0x00007884, 0x00007888 + .word 0x00007888, 0x0000788C + .word 0x0000788C, 0x00007890 + .word 0x00007890, 0x00007894 + .word 0x00007894, 0x00007898 + .word 0x00007898, 0x0000789C + .word 0x0000789C, 0x000078A0 + .word 0x000078A0, 0x000078A4 + .word 0x000078A4, 0x000078A8 + .word 0x000078A8, 0x000078AC + .word 0x000078AC, 0x000078B0 + .word 0x000078B0, 0x000078B4 + .word 0x000078B4, 0x000078B8 + .word 0x000078B8, 0x000078BC + .word 0x000078BC, 0x000078C4 + .word 0x000078C4, 0x000078C8 + .word 0x000078C8, 0x000078CC + .word 0x000078CC, 0x000078D0 + .word 0x000078D0, 0x000078D4 + .word 0x000078D4, 0x000078D8 + .word 0x000078D8, 0x000078DC + .word 0x000078DC, 0x000078E0 + .word 0x000078E0, 0x000078E4 + .word 0x000078E4, 0x000078E8 + .word 0x000078E8, 0x000078EC + .word 0x000078EC, 0x000078F0 + .word 0x000078F0, 0x000078F4 + .word 0x000078F4, 0x000078F8 + .word 0x000078F8, 0x000078FC + .word 0x000078FC, 0x00007900 + .word 0x00007900, 0x00007904 + .word 0x00007904, 0x00007908 + .word 0x00007908, 0x0000790C + .word 0x0000790C, 0x00007910 + .word 0x00007910, 0x0000791C + .word 0x0000791C, 0x00007920 + .word 0x00007920, 0x00007924 + .word 0x00007924, 0x00007928 + .word 0x00007928, 0x00007930 + .word 0x00007930, 0x00007938 + .word 0x00007938, 0x0000793C + .word 0x0000793C, 0x00007940 + .word 0x00007940, 0x00007944 + .word 0x00007944, 0x0000794C + .word 0x0000794C, 0x00007950 + .word 0x00007950, 0x00007954 + .word 0x00007954, 0x00007958 + .word 0x00007958, 0x0000795C + .word 0x0000795C, 0x00007960 + .word 0x00007960, 0x00007964 + .word 0x00007964, 0x00007968 + .word 0x00007968, 0x0000796C + .word 0x0000796C, 0x00007970 + .word 0x00007970, 0x00007978 + .word 0x00007978, 0x0000797C + .word 0x0000797C, 0x00007980 + .word 0x00007980, 0x00007984 + .word 0x00007984, 0x00007988 + .word 0x00007988, 0x0000798C + .word 0x0000798C, 0x00007990 + .word 0x00007990, 0x00007994 + .word 0x00007994, 0x00007998 + .word 0x00007998, 0x000079A0 + .word 0x000079A0, 0x000079A4 + .word 0x000079A4, 0x000079A8 + .word 0x000079A8, 0x000079B0 + .word 0x000079B0, 0x000079B8 + .word 0x000079B8, 0x000079BC + .word 0x000079BC, 0x000079C0 + .word 0x000079C0, 0x000079C4 + .word 0x000079C4, 0x000079C8 + .word 0x000079C8, 0x000079D8 + .word 0x000079D8, 0x000079DC + .word 0x000079DC, 0x000079E0 + .word 0x000079E0, 0x000079E4 + .word 0x000079E4, 0x000079E8 + .word 0x000079E8, 0x000079EC + .word 0x000079EC, 0x000079F0 + .word 0x000079F0, 0x000079F4 + .word 0x000079F4, 0x000079F8 + .word 0x000079F8, 0x000079FC + .word 0x000079FC, 0x00007A00 + .word 0x00007A00, 0x00007A04 + .word 0x00007A04, 0x00007A08 + .word 0x00007A08, 0x00007A0C + .word 0x00007A0C, 0x00007A10 + .word 0x00007A10, 0x00007A14 + .word 0x00007A14, 0x00007A18 + .word 0x00007A18, 0x00007A1C + .word 0x00007A1C, 0x00007A20 + .word 0x00007A20, 0x00007A24 + .word 0x00007A24, 0x00007A28 + .word 0x00007A28, 0x00007A2C + .word 0x00007A2C, 0x00007A30 + .word 0x00007A30, 0x00007A34 + .word 0x00007A34, 0x00007A38 + .word 0x00007A38, 0x00007A3C + .word 0x00007A3C, 0x00007A40 + .word 0x00007A40, 0x00007A44 + .word 0x00007A44, 0x00007A48 + .word 0x00007A48, 0x00007A4C + .word 0x00007A4C, 0x00007A50 + .word 0x00007A50, 0x00007A54 + .word 0x00007A54, 0x00007A58 + .word 0x00007A58, 0x00007A5C + .word 0x00007A5C, 0x00007A60 + .word 0x00007A60, 0x00007A64 + .word 0x00007A64, 0x00007A68 + .word 0x00007A68, 0x00007A6C + .word 0x00007A6C, 0x00007A70 + .word 0x00007A70, 0x00007A74 + .word 0x00007A74, 0x00007A78 + .word 0x00007A78, 0x00007A7C + .word 0x00007A7C, 0x00007A80 + .word 0x00007A80, 0x00007A84 + .word 0x00007A84, 0x00007A88 + .word 0x00007A88, 0x00007A8C + .word 0x00007A8C, 0x00007A90 + .word 0x00007A90, 0x00007A94 + .word 0x00007A94, 0x00007A98 + .word 0x00007A98, 0x00007A9C + .word 0x00007A9C, 0x00007AA0 + .word 0x00007AA0, 0x00007AF4 + .word 0x00007AF4, 0x00007AF8 + .word 0x00007AF8, 0x00007AFC + .word 0x00007AFC, 0x00007B50 + .word 0x00007B50, 0x00007B54 + .word 0x00007B54, 0x00007B58 + .word 0x00007B58, 0x00007B5C + .word 0x00007B5C, 0x00007B60 + .word 0x00007B60, 0x00007BB4 + .word 0x00007BB4, 0x00007BB8 + .word 0x00007BB8, 0x00007BBC + .word 0x00007BBC, 0x00007BC0 + .word 0x00007BC0, 0x00007BC4 + .word 0x00007BC4, 0x00007BC8 + .word 0x00007BC8, 0x00007BCC + .word 0x00007BCC, 0x00007BD0 + .word 0x00007BD0, 0x00007BD4 + .word 0x00007BD4, 0x00007BD8 + .word 0x00007BD8, 0x00007BDC + .word 0x00007BDC, 0x00007BE0 + .word 0x00007BE0, 0x00007BE4 + .word 0x00007BE4, 0x00007BE8 + .word 0x00007BE8, 0x00007BEC + .word 0x00007BEC, 0x00007BF0 + .word 0x00007BF0, 0x00007BF4 + .word 0x00007BF4, 0x00007BF8 + .word 0x00007BF8, 0x00007BFC + .word 0x00007BFC, 0x00007C00 + .word 0x00007C00, 0x00007C04 + .word 0x00007C04, 0x00007C08 + .word 0x00007C08, 0x00007C0C + .word 0x00007C0C, 0x00007C10 + .word 0x00007C10, 0x00007C14 + .word 0x00007C14, 0x00007C18 + .word 0x00007C18, 0x00007C1C + .word 0x00007C1C, 0x00007C20 + .word 0x00007C20, 0x00007C24 + .word 0x00007C24, 0x00007C28 + .word 0x00007C28, 0x00007C2C + .word 0x00007C2C, 0x00007C30 + .word 0x00007C30, 0x00007C34 + .word 0x00007C34, 0x00007C38 + .word 0x00007C38, 0x00007C3C + .word 0x00007C3C, 0x00007C40 + .word 0x00007C40, 0x00007C44 + .word 0x00007C44, 0x00007C48 + .word 0x00007C48, 0x00007C4C + .word 0x00007C4C, 0x00007C50 + .word 0x00007C50, 0x00007C54 + .word 0x00007C54, 0x00007C58 + .word 0x00007C58, 0x00007C5C + .word 0x00007C5C, 0x00007C60 + .word 0x00007C60, 0x00007C64 + .word 0x00007C64, 0x00007C68 + .word 0x00007C68, 0x00007C6C + .word 0x00007C6C, 0x00007C70 + .word 0x00007C70, 0x00007C74 + .word 0x00007C74, 0x00007C78 + .word 0x00007C78, 0x00007C7C + .word 0x00007C7C, 0x00007C80 + .word 0x00007C80, 0x00007C84 + .word 0x00007C84, 0x00007C88 + .word 0x00007C88, 0x00007C8C + .word 0x00007C8C, 0x00007C90 + .word 0x00007C90, 0x00007C94 + .word 0x00007C94, 0x00007C98 + .word 0x00007C98, 0x00007C9C + .word 0x00007C9C, 0x00007CA0 + .word 0x00007CA0, 0x00007CA4 + .word 0x00007CA4, 0x00007CA8 + .word 0x00007CA8, 0x00007CAC + .word 0x00007CAC, 0x00007CB0 + .word 0x00007CB0, 0x00007CB4 + .word 0x00007CB4, 0x00007CB8 + .word 0x00007CB8, 0x00007CBC + .word 0x00007CBC, 0x00007CC0 + .word 0x00007CC0, 0x00007CC4 + .word 0x00007CC4, 0x00007CC8 + .word 0x00007CC8, 0x00007CCC + .word 0x00007CCC, 0x00007CD0 + .word 0x00007CD0, 0x00007CD4 + .word 0x00007CD4, 0x00007CD8 + .word 0x00007CD8, 0x00007CDC + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00007CE4 ; chunk size + .incbin "baserom.nds", 0x0, 0x58 + .incbin "baserom.nds", 0x58, 0x58 + .incbin "baserom.nds", 0xB0, 0x72C + .incbin "baserom.nds", 0x7DC, 0xCC + .incbin "baserom.nds", 0x8A8, 0x44 + .incbin "baserom.nds", 0x8EC, 0x4 + .incbin "baserom.nds", 0x8F0, 0x4 + .incbin "baserom.nds", 0x8F4, 0x4 + .incbin "baserom.nds", 0x8F8, 0x4 + .incbin "baserom.nds", 0x8FC, 0x4 + .incbin "baserom.nds", 0x900, 0x4 + .incbin "baserom.nds", 0x904, 0x4 + .incbin "baserom.nds", 0x908, 0x4 + .incbin "baserom.nds", 0x90C, 0x4 + .incbin "baserom.nds", 0x910, 0x4 + .incbin "baserom.nds", 0x914, 0x4 + .incbin "baserom.nds", 0x918, 0x4 + .incbin "baserom.nds", 0x91C, 0x4 + .incbin "baserom.nds", 0x920, 0x4 + .incbin "baserom.nds", 0x924, 0x4 + .incbin "baserom.nds", 0x928, 0x4 + .incbin "baserom.nds", 0x92C, 0x4 + .incbin "baserom.nds", 0x930, 0x4 + .incbin "baserom.nds", 0x934, 0x4 + .incbin "baserom.nds", 0x938, 0x4 + .incbin "baserom.nds", 0x93C, 0x4 + .incbin "baserom.nds", 0x940, 0x4 + .incbin "baserom.nds", 0x944, 0x4 + .incbin "baserom.nds", 0x948, 0x4 + .incbin "baserom.nds", 0x94C, 0x8 + .incbin "baserom.nds", 0x954, 0x4 + .incbin "baserom.nds", 0x958, 0x4 + .incbin "baserom.nds", 0x95C, 0x4 + .incbin "baserom.nds", 0x960, 0x4 + .incbin "baserom.nds", 0x964, 0x4 + .incbin "baserom.nds", 0x968, 0x4 + .incbin "baserom.nds", 0x96C, 0x4 + .incbin "baserom.nds", 0x970, 0x4 + .incbin "baserom.nds", 0x974, 0x4 + .incbin "baserom.nds", 0x978, 0x8 + .incbin "baserom.nds", 0x980, 0x4 + .incbin "baserom.nds", 0x984, 0x4 + .incbin "baserom.nds", 0x988, 0x4 + .incbin "baserom.nds", 0x98C, 0x4 + .incbin "baserom.nds", 0x990, 0x4 + .incbin "baserom.nds", 0x994, 0x20 + .incbin "baserom.nds", 0x9B4, 0x28 + .incbin "baserom.nds", 0x9DC, 0x4 + .incbin "baserom.nds", 0x9E0, 0x4 + .incbin "baserom.nds", 0x9E4, 0x4 + .incbin "baserom.nds", 0x9E8, 0x4 + .incbin "baserom.nds", 0x9EC, 0x4 + .incbin "baserom.nds", 0x9F0, 0x4 + .incbin "baserom.nds", 0x9F4, 0x4 + .incbin "baserom.nds", 0x9F8, 0x4 + .incbin "baserom.nds", 0x9FC, 0x4 + .incbin "baserom.nds", 0xA00, 0x4 + .incbin "baserom.nds", 0xA04, 0x4 + .incbin "baserom.nds", 0xA08, 0x1C + .incbin "baserom.nds", 0xA24, 0x1C + .incbin "baserom.nds", 0xA40, 0x4 + .incbin "baserom.nds", 0xA44, 0x4 + .incbin "baserom.nds", 0xA48, 0x4 + .incbin "baserom.nds", 0xA4C, 0x4 + .incbin "baserom.nds", 0xA50, 0x4 + .incbin "baserom.nds", 0xA54, 0x4 + .incbin "baserom.nds", 0xA58, 0x4 + .incbin "baserom.nds", 0xA5C, 0x4 + .incbin "baserom.nds", 0xA60, 0x8 + .incbin "baserom.nds", 0xA68, 0x4 + .incbin "baserom.nds", 0xA6C, 0x8 + .incbin "baserom.nds", 0xA74, 0x10 + .incbin "baserom.nds", 0xA84, 0x4 + .incbin "baserom.nds", 0xA88, 0x4 + .incbin "baserom.nds", 0xA8C, 0x4 + .incbin "baserom.nds", 0xA90, 0x4 + .incbin "baserom.nds", 0xA94, 0x4 + .incbin "baserom.nds", 0xA98, 0x4 + .incbin "baserom.nds", 0xA9C, 0x24 + .incbin "baserom.nds", 0xAC0, 0x18 + .incbin "baserom.nds", 0xAD8, 0x4 + .incbin "baserom.nds", 0xADC, 0x4 + .incbin "baserom.nds", 0xAE0, 0x4 + .incbin "baserom.nds", 0xAE4, 0x4 + .incbin "baserom.nds", 0xAE8, 0x4 + .incbin "baserom.nds", 0xAEC, 0x4 + .incbin "baserom.nds", 0xAF0, 0x4 + .incbin "baserom.nds", 0xAF4, 0x4 + .incbin "baserom.nds", 0xAF8, 0x4 + .incbin "baserom.nds", 0xAFC, 0x4 + .incbin "baserom.nds", 0xB00, 0x4 + .incbin "baserom.nds", 0xB04, 0x4 + .incbin "baserom.nds", 0xB08, 0x4 + .incbin "baserom.nds", 0xB0C, 0x4 + .incbin "baserom.nds", 0xB10, 0x4 + .incbin "baserom.nds", 0xB14, 0x4 + .incbin "baserom.nds", 0xB18, 0xC + .incbin "baserom.nds", 0xB24, 0x8 + .incbin "baserom.nds", 0xB2C, 0x4 + .incbin "baserom.nds", 0xB30, 0x18 + .incbin "baserom.nds", 0xB48, 0x4 + .incbin "baserom.nds", 0xB4C, 0x4 + .incbin "baserom.nds", 0xB50, 0x4 + .incbin "baserom.nds", 0xB54, 0x4 + .incbin "baserom.nds", 0xB58, 0x4 + .incbin "baserom.nds", 0xB5C, 0x4 + .incbin "baserom.nds", 0xB60, 0x4 + .incbin "baserom.nds", 0xB64, 0x4 + .incbin "baserom.nds", 0xB68, 0x4 + .incbin "baserom.nds", 0xB6C, 0x4 + .incbin "baserom.nds", 0xB70, 0x4 + .incbin "baserom.nds", 0xB74, 0x4 + .incbin "baserom.nds", 0xB78, 0x4 + .incbin "baserom.nds", 0xB7C, 0x4 + .incbin "baserom.nds", 0xB80, 0x8 + .incbin "baserom.nds", 0xB88, 0x4 + .incbin "baserom.nds", 0xB8C, 0x4 + .incbin "baserom.nds", 0xB90, 0x4 + .incbin "baserom.nds", 0xB94, 0x4 + .incbin "baserom.nds", 0xB98, 0x4 + .incbin "baserom.nds", 0xB9C, 0x4 + .incbin "baserom.nds", 0xBA0, 0x4 + .incbin "baserom.nds", 0xBA4, 0x14 + .incbin "baserom.nds", 0xBB8, 0x14 + .incbin "baserom.nds", 0xBCC, 0x4 + .incbin "baserom.nds", 0xBD0, 0x4 + .incbin "baserom.nds", 0xBD4, 0x4 + .incbin "baserom.nds", 0xBD8, 0x4 + .incbin "baserom.nds", 0xBDC, 0x4 + .incbin "baserom.nds", 0xBE0, 0x4 + .incbin "baserom.nds", 0xBE4, 0x4 + .incbin "baserom.nds", 0xBE8, 0x4 + .incbin "baserom.nds", 0xBEC, 0x4 + .incbin "baserom.nds", 0xBF0, 0x28 + .incbin "baserom.nds", 0xC18, 0x28 + .incbin "baserom.nds", 0xC40, 0x8 + .incbin "baserom.nds", 0xC48, 0x4 + .incbin "baserom.nds", 0xC4C, 0x4 + .incbin "baserom.nds", 0xC50, 0x4 + .incbin "baserom.nds", 0xC54, 0x4 + .incbin "baserom.nds", 0xC58, 0x4 + .incbin "baserom.nds", 0xC5C, 0x4 + .incbin "baserom.nds", 0xC60, 0x4 + .incbin "baserom.nds", 0xC64, 0x4 + .incbin "baserom.nds", 0xC68, 0x4 + .incbin "baserom.nds", 0xC6C, 0x4 + .incbin "baserom.nds", 0xC70, 0x4 + .incbin "baserom.nds", 0xC74, 0x4 + .incbin "baserom.nds", 0xC78, 0x4 + .incbin "baserom.nds", 0xC7C, 0x4 + .incbin "baserom.nds", 0xC80, 0x4 + .incbin "baserom.nds", 0xC84, 0x8 + .incbin "baserom.nds", 0xC8C, 0x8 + .incbin "baserom.nds", 0xC94, 0x4 + .incbin "baserom.nds", 0xC98, 0x4 + .incbin "baserom.nds", 0xC9C, 0x4 + .incbin "baserom.nds", 0xCA0, 0x4 + .incbin "baserom.nds", 0xCA4, 0x4 + .incbin "baserom.nds", 0xCA8, 0x4 + .incbin "baserom.nds", 0xCAC, 0x4 + .incbin "baserom.nds", 0xCB0, 0x4 + .incbin "baserom.nds", 0xCB4, 0x4 + .incbin "baserom.nds", 0xCB8, 0x4 + .incbin "baserom.nds", 0xCBC, 0x4 + .incbin "baserom.nds", 0xCC0, 0x4 + .incbin "baserom.nds", 0xCC4, 0x4 + .incbin "baserom.nds", 0xCC8, 0x4 + .incbin "baserom.nds", 0xCCC, 0x4 + .incbin "baserom.nds", 0xCD0, 0x4 + .incbin "baserom.nds", 0xCD4, 0x4 + .incbin "baserom.nds", 0xCD8, 0x4 + .incbin "baserom.nds", 0xCDC, 0x4 + .incbin "baserom.nds", 0xCE0, 0x4 + .incbin "baserom.nds", 0xCE4, 0x4 + .incbin "baserom.nds", 0xCE8, 0x4 + .incbin "baserom.nds", 0xCEC, 0x4 + .incbin "baserom.nds", 0xCF0, 0x8 + .incbin "baserom.nds", 0xCF8, 0x8 + .incbin "baserom.nds", 0xD00, 0x4 + .incbin "baserom.nds", 0xD04, 0x4 + .incbin "baserom.nds", 0xD08, 0x4 + .incbin "baserom.nds", 0xD0C, 0x4 + .incbin "baserom.nds", 0xD10, 0x4 + .incbin "baserom.nds", 0xD14, 0x4 + .incbin "baserom.nds", 0xD18, 0x4 + .incbin "baserom.nds", 0xD1C, 0x4 + .incbin "baserom.nds", 0xD20, 0x4 + .incbin "baserom.nds", 0xD24, 0x8 + .incbin "baserom.nds", 0xD2C, 0x4 + .incbin "baserom.nds", 0xD30, 0x4 + .incbin "baserom.nds", 0xD34, 0x4 + .incbin "baserom.nds", 0xD38, 0x4 + .incbin "baserom.nds", 0xD3C, 0x4 + .incbin "baserom.nds", 0xD40, 0x4 + .incbin "baserom.nds", 0xD44, 0x4 + .incbin "baserom.nds", 0xD48, 0x4 + .incbin "baserom.nds", 0xD4C, 0x4 + .incbin "baserom.nds", 0xD50, 0x4 + .incbin "baserom.nds", 0xD54, 0x8 + .incbin "baserom.nds", 0xD5C, 0x8 + .incbin "baserom.nds", 0xD64, 0x4 + .incbin "baserom.nds", 0xD68, 0x4 + .incbin "baserom.nds", 0xD6C, 0x4 + .incbin "baserom.nds", 0xD70, 0x4 + .incbin "baserom.nds", 0xD74, 0x4 + .incbin "baserom.nds", 0xD78, 0x8 + .incbin "baserom.nds", 0xD80, 0x4 + .incbin "baserom.nds", 0xD84, 0x4 + .incbin "baserom.nds", 0xD88, 0x4 + .incbin "baserom.nds", 0xD8C, 0x4 + .incbin "baserom.nds", 0xD90, 0x4 + .incbin "baserom.nds", 0xD94, 0x4 + .incbin "baserom.nds", 0xD98, 0x10 + .incbin "baserom.nds", 0xDA8, 0x4 + .incbin "baserom.nds", 0xDAC, 0x4 + .incbin "baserom.nds", 0xDB0, 0x4 + .incbin "baserom.nds", 0xDB4, 0x4 + .incbin "baserom.nds", 0xDB8, 0x4 + .incbin "baserom.nds", 0xDBC, 0x4 + .incbin "baserom.nds", 0xDC0, 0xC + .incbin "baserom.nds", 0xDCC, 0x4 + .incbin "baserom.nds", 0xDD0, 0x4 + .incbin "baserom.nds", 0xDD4, 0x8 + .incbin "baserom.nds", 0xDDC, 0x8 + .incbin "baserom.nds", 0xDE4, 0x4 + .incbin "baserom.nds", 0xDE8, 0x4 + .incbin "baserom.nds", 0xDEC, 0x4 + .incbin "baserom.nds", 0xDF0, 0x4 + .incbin "baserom.nds", 0xDF4, 0x4 + .incbin "baserom.nds", 0xDF8, 0x4 + .incbin "baserom.nds", 0xDFC, 0x4 + .incbin "baserom.nds", 0xE00, 0x4 + .incbin "baserom.nds", 0xE04, 0x4 + .incbin "baserom.nds", 0xE08, 0x4 + .incbin "baserom.nds", 0xE0C, 0x4 + .incbin "baserom.nds", 0xE10, 0x4 + .incbin "baserom.nds", 0xE14, 0x4 + .incbin "baserom.nds", 0xE18, 0x4 + .incbin "baserom.nds", 0xE1C, 0x4 + .incbin "baserom.nds", 0xE20, 0x4 + .incbin "baserom.nds", 0xE24, 0x4 + .incbin "baserom.nds", 0xE28, 0x4 + .incbin "baserom.nds", 0xE2C, 0x4 + .incbin "baserom.nds", 0xE30, 0x4 + .incbin "baserom.nds", 0xE34, 0x4 + .incbin "baserom.nds", 0xE38, 0x4 + .incbin "baserom.nds", 0xE3C, 0x4 + .incbin "baserom.nds", 0xE40, 0x4 + .incbin "baserom.nds", 0xE44, 0x4 + .incbin "baserom.nds", 0xE48, 0x4 + .incbin "baserom.nds", 0xE4C, 0x4 + .incbin "baserom.nds", 0xE50, 0x4 + .incbin "baserom.nds", 0xE54, 0x4 + .incbin "baserom.nds", 0xE58, 0x4 + .incbin "baserom.nds", 0xE5C, 0x4 + .incbin "baserom.nds", 0xE60, 0x4 + .incbin "baserom.nds", 0xE64, 0x4 + .incbin "baserom.nds", 0xE68, 0x4 + .incbin "baserom.nds", 0xE6C, 0x4 + .incbin "baserom.nds", 0xE70, 0x4 + .incbin "baserom.nds", 0xE74, 0x4 + .incbin "baserom.nds", 0xE78, 0x4 + .incbin "baserom.nds", 0xE7C, 0x4 + .incbin "baserom.nds", 0xE80, 0x4 + .incbin "baserom.nds", 0xE84, 0x4 + .incbin "baserom.nds", 0xE88, 0x4 + .incbin "baserom.nds", 0xE8C, 0x4 + .incbin "baserom.nds", 0xE90, 0x4 + .incbin "baserom.nds", 0xE94, 0x4 + .incbin "baserom.nds", 0xE98, 0x8 + .incbin "baserom.nds", 0xEA0, 0x8 + .incbin "baserom.nds", 0xEA8, 0x8 + .incbin "baserom.nds", 0xEB0, 0x4 + .incbin "baserom.nds", 0xEB4, 0x4 + .incbin "baserom.nds", 0xEB8, 0x4 + .incbin "baserom.nds", 0xEBC, 0x4 + .incbin "baserom.nds", 0xEC0, 0x4 + .incbin "baserom.nds", 0xEC4, 0x4 + .incbin "baserom.nds", 0xEC8, 0x4 + .incbin "baserom.nds", 0xECC, 0x4 + .incbin "baserom.nds", 0xED0, 0x4 + .incbin "baserom.nds", 0xED4, 0x4 + .incbin "baserom.nds", 0xED8, 0x4 + .incbin "baserom.nds", 0xEDC, 0x4 + .incbin "baserom.nds", 0xEE0, 0x4 + .incbin "baserom.nds", 0xEE4, 0x4 + .incbin "baserom.nds", 0xEE8, 0x4 + .incbin "baserom.nds", 0xEEC, 0x4 + .incbin "baserom.nds", 0xEF0, 0x4 + .incbin "baserom.nds", 0xEF4, 0x4 + .incbin "baserom.nds", 0xEF8, 0x4 + .incbin "baserom.nds", 0xEFC, 0x4 + .incbin "baserom.nds", 0xF00, 0x4 + .incbin "baserom.nds", 0xF04, 0x4 + .incbin "baserom.nds", 0xF08, 0x4 + .incbin "baserom.nds", 0xF0C, 0x4 + .incbin "baserom.nds", 0xF10, 0x4 + .incbin "baserom.nds", 0xF14, 0x4 + .incbin "baserom.nds", 0xF18, 0x4 + .incbin "baserom.nds", 0xF1C, 0x4 + .incbin "baserom.nds", 0xF20, 0x4 + .incbin "baserom.nds", 0xF24, 0x4 + .incbin "baserom.nds", 0xF28, 0x8 + .incbin "baserom.nds", 0xF30, 0x4 + .incbin "baserom.nds", 0xF34, 0x4 + .incbin "baserom.nds", 0xF38, 0x4 + .incbin "baserom.nds", 0xF3C, 0x4 + .incbin "baserom.nds", 0xF40, 0x4 + .incbin "baserom.nds", 0xF44, 0x4 + .incbin "baserom.nds", 0xF48, 0x4 + .incbin "baserom.nds", 0xF4C, 0x4 + .incbin "baserom.nds", 0xF50, 0x8 + .incbin "baserom.nds", 0xF58, 0xC + .incbin "baserom.nds", 0xF64, 0x4 + .incbin "baserom.nds", 0xF68, 0x4 + .incbin "baserom.nds", 0xF6C, 0x4 + .incbin "baserom.nds", 0xF70, 0x4 + .incbin "baserom.nds", 0xF74, 0x4 + .incbin "baserom.nds", 0xF78, 0x4 + .incbin "baserom.nds", 0xF7C, 0x8 + .incbin "baserom.nds", 0xF84, 0x4 + .incbin "baserom.nds", 0xF88, 0x4 + .incbin "baserom.nds", 0xF8C, 0x8 + .incbin "baserom.nds", 0xF94, 0x4 + .incbin "baserom.nds", 0xF98, 0x4 + .incbin "baserom.nds", 0xF9C, 0x4 + .incbin "baserom.nds", 0xFA0, 0x4 + .incbin "baserom.nds", 0xFA4, 0x8 + .incbin "baserom.nds", 0xFAC, 0x4 + .incbin "baserom.nds", 0xFB0, 0x4 + .incbin "baserom.nds", 0xFB4, 0x4 + .incbin "baserom.nds", 0xFB8, 0x4 + .incbin "baserom.nds", 0xFBC, 0x4 + .incbin "baserom.nds", 0xFC0, 0x4 + .incbin "baserom.nds", 0xFC4, 0x4 + .incbin "baserom.nds", 0xFC8, 0x4 + .incbin "baserom.nds", 0xFCC, 0x4 + .incbin "baserom.nds", 0xFD0, 0x4 + .incbin "baserom.nds", 0xFD4, 0x4 + .incbin "baserom.nds", 0xFD8, 0x4 + .incbin "baserom.nds", 0xFDC, 0x4 + .incbin "baserom.nds", 0xFE0, 0x4 + .incbin "baserom.nds", 0xFE4, 0x4 + .incbin "baserom.nds", 0xFE8, 0x14 + .incbin "baserom.nds", 0xFFC, 0x14 + .incbin "baserom.nds", 0x1010, 0x4 + .incbin "baserom.nds", 0x1014, 0x4 + .incbin "baserom.nds", 0x1018, 0x4 + .incbin "baserom.nds", 0x101C, 0x4 + .incbin "baserom.nds", 0x1020, 0x4 + .incbin "baserom.nds", 0x1024, 0x4 + .incbin "baserom.nds", 0x1028, 0x4 + .incbin "baserom.nds", 0x102C, 0x4 + .incbin "baserom.nds", 0x1030, 0x4 + .incbin "baserom.nds", 0x1034, 0x4 + .incbin "baserom.nds", 0x1038, 0x4 + .incbin "baserom.nds", 0x103C, 0x4 + .incbin "baserom.nds", 0x1040, 0x4 + .incbin "baserom.nds", 0x1044, 0x4 + .incbin "baserom.nds", 0x1048, 0x4 + .incbin "baserom.nds", 0x104C, 0x4 + .incbin "baserom.nds", 0x1050, 0x4 + .incbin "baserom.nds", 0x1054, 0xC + .incbin "baserom.nds", 0x1060, 0x4 + .incbin "baserom.nds", 0x1064, 0x4 + .incbin "baserom.nds", 0x1068, 0x4 + .incbin "baserom.nds", 0x106C, 0x4 + .incbin "baserom.nds", 0x1070, 0x4 + .incbin "baserom.nds", 0x1074, 0x4 + .incbin "baserom.nds", 0x1078, 0x4 + .incbin "baserom.nds", 0x107C, 0x4 + .incbin "baserom.nds", 0x1080, 0x4 + .incbin "baserom.nds", 0x1084, 0x4 + .incbin "baserom.nds", 0x1088, 0x4 + .incbin "baserom.nds", 0x108C, 0x4 + .incbin "baserom.nds", 0x1090, 0x4 + .incbin "baserom.nds", 0x1094, 0x4 + .incbin "baserom.nds", 0x1098, 0x4 + .incbin "baserom.nds", 0x109C, 0x4 + .incbin "baserom.nds", 0x10A0, 0x4 + .incbin "baserom.nds", 0x10A4, 0x4 + .incbin "baserom.nds", 0x10A8, 0x4 + .incbin "baserom.nds", 0x10AC, 0x4 + .incbin "baserom.nds", 0x10B0, 0x4 + .incbin "baserom.nds", 0x10B4, 0x4 + .incbin "baserom.nds", 0x10B8, 0x4 + .incbin "baserom.nds", 0x10BC, 0x4 + .incbin "baserom.nds", 0x10C0, 0x4 + .incbin "baserom.nds", 0x10C4, 0x4 + .incbin "baserom.nds", 0x10C8, 0x4 + .incbin "baserom.nds", 0x10CC, 0x4 + .incbin "baserom.nds", 0x10D0, 0x4 + .incbin "baserom.nds", 0x10D4, 0x4 + .incbin "baserom.nds", 0x10D8, 0x4 + .incbin "baserom.nds", 0x10DC, 0x4 + .incbin "baserom.nds", 0x10E0, 0x4 + .incbin "baserom.nds", 0x10E4, 0x4 + .incbin "baserom.nds", 0x10E8, 0x4 + .incbin "baserom.nds", 0x10EC, 0x4 + .incbin "baserom.nds", 0x10F0, 0x4 + .incbin "baserom.nds", 0x10F4, 0xC + .incbin "baserom.nds", 0x1100, 0x10 + .incbin "baserom.nds", 0x1110, 0x4 + .incbin "baserom.nds", 0x1114, 0xC + .incbin "baserom.nds", 0x1120, 0x14 + .incbin "baserom.nds", 0x1134, 0x4 + .incbin "baserom.nds", 0x1138, 0x8 + .incbin "baserom.nds", 0x1140, 0x4 + .incbin "baserom.nds", 0x1144, 0x4 + .incbin "baserom.nds", 0x1148, 0x4 + .incbin "baserom.nds", 0x114C, 0xC + .incbin "baserom.nds", 0x1158, 0x4 + .incbin "baserom.nds", 0x115C, 0x4 + .incbin "baserom.nds", 0x1160, 0x4 + .incbin "baserom.nds", 0x1164, 0x4 + .incbin "baserom.nds", 0x1168, 0x4 + .incbin "baserom.nds", 0x116C, 0x4 + .incbin "baserom.nds", 0x1170, 0x4 + .incbin "baserom.nds", 0x1174, 0x4 + .incbin "baserom.nds", 0x1178, 0x4 + .incbin "baserom.nds", 0x117C, 0x4 + .incbin "baserom.nds", 0x1180, 0x4 + .incbin "baserom.nds", 0x1184, 0x4 + .incbin "baserom.nds", 0x1188, 0x8 + .incbin "baserom.nds", 0x1190, 0x4 + .incbin "baserom.nds", 0x1194, 0x4 + .incbin "baserom.nds", 0x1198, 0x4 + .incbin "baserom.nds", 0x119C, 0x4 + .incbin "baserom.nds", 0x11A0, 0x4 + .incbin "baserom.nds", 0x11A4, 0x4 + .incbin "baserom.nds", 0x11A8, 0x4 + .incbin "baserom.nds", 0x11AC, 0x8 + .incbin "baserom.nds", 0x11B4, 0x4 + .incbin "baserom.nds", 0x11B8, 0x4 + .incbin "baserom.nds", 0x11BC, 0x4 + .incbin "baserom.nds", 0x11C0, 0x4 + .incbin "baserom.nds", 0x11C4, 0x4 + .incbin "baserom.nds", 0x11C8, 0x10 + .incbin "baserom.nds", 0x11D8, 0x4 + .incbin "baserom.nds", 0x11DC, 0x4 + .incbin "baserom.nds", 0x11E0, 0x10 + .incbin "baserom.nds", 0x11F0, 0xC + .incbin "baserom.nds", 0x11FC, 0x4 + .incbin "baserom.nds", 0x1200, 0x4 + .incbin "baserom.nds", 0x1204, 0x4 + .incbin "baserom.nds", 0x1208, 0x4 + .incbin "baserom.nds", 0x120C, 0x4 + .incbin "baserom.nds", 0x1210, 0x8 + .incbin "baserom.nds", 0x1218, 0x4 + .incbin "baserom.nds", 0x121C, 0x4 + .incbin "baserom.nds", 0x1220, 0x4 + .incbin "baserom.nds", 0x1224, 0x4 + .incbin "baserom.nds", 0x1228, 0x4 + .incbin "baserom.nds", 0x122C, 0x8 + .incbin "baserom.nds", 0x1234, 0x4 + .incbin "baserom.nds", 0x1238, 0x4 + .incbin "baserom.nds", 0x123C, 0x4 + .incbin "baserom.nds", 0x1240, 0x4 + .incbin "baserom.nds", 0x1244, 0x4 + .incbin "baserom.nds", 0x1248, 0x4 + .incbin "baserom.nds", 0x124C, 0x4 + .incbin "baserom.nds", 0x1250, 0x4 + .incbin "baserom.nds", 0x1254, 0x4 + .incbin "baserom.nds", 0x1258, 0x8 + .incbin "baserom.nds", 0x1260, 0x8 + .incbin "baserom.nds", 0x1268, 0x4 + .incbin "baserom.nds", 0x126C, 0x4 + .incbin "baserom.nds", 0x1270, 0x4 + .incbin "baserom.nds", 0x1274, 0x4 + .incbin "baserom.nds", 0x1278, 0x4 + .incbin "baserom.nds", 0x127C, 0x4 + .incbin "baserom.nds", 0x1280, 0x4 + .incbin "baserom.nds", 0x1284, 0x4 + .incbin "baserom.nds", 0x1288, 0x4 + .incbin "baserom.nds", 0x128C, 0x4 + .incbin "baserom.nds", 0x1290, 0x4 + .incbin "baserom.nds", 0x1294, 0x4 + .incbin "baserom.nds", 0x1298, 0x4 + .incbin "baserom.nds", 0x129C, 0x4 + .incbin "baserom.nds", 0x12A0, 0x4 + .incbin "baserom.nds", 0x12A4, 0x4 + .incbin "baserom.nds", 0x12A8, 0x4 + .incbin "baserom.nds", 0x12AC, 0x4 + .incbin "baserom.nds", 0x12B0, 0x4 + .incbin "baserom.nds", 0x12B4, 0x4 + .incbin "baserom.nds", 0x12B8, 0x4 + .incbin "baserom.nds", 0x12BC, 0x4 + .incbin "baserom.nds", 0x12C0, 0x4 + .incbin "baserom.nds", 0x12C4, 0x4 + .incbin "baserom.nds", 0x12C8, 0x4 + .incbin "baserom.nds", 0x12CC, 0x4 + .incbin "baserom.nds", 0x12D0, 0x4 + .incbin "baserom.nds", 0x12D4, 0x4 + .incbin "baserom.nds", 0x12D8, 0x4 + .incbin "baserom.nds", 0x12DC, 0x4 + .incbin "baserom.nds", 0x12E0, 0x4 + .incbin "baserom.nds", 0x12E4, 0x4 + .incbin "baserom.nds", 0x12E8, 0x4 + .incbin "baserom.nds", 0x12EC, 0x4 + .incbin "baserom.nds", 0x12F0, 0x44 + .incbin "baserom.nds", 0x1334, 0x4 + .incbin "baserom.nds", 0x1338, 0x4 + .incbin "baserom.nds", 0x133C, 0x4 + .incbin "baserom.nds", 0x1340, 0x4 + .incbin "baserom.nds", 0x1344, 0x4 + .incbin "baserom.nds", 0x1348, 0x4 + .incbin "baserom.nds", 0x134C, 0x4 + .incbin "baserom.nds", 0x1350, 0x4 + .incbin "baserom.nds", 0x1354, 0x4 + .incbin "baserom.nds", 0x1358, 0x4 + .incbin "baserom.nds", 0x135C, 0x4 + .incbin "baserom.nds", 0x1360, 0x4 + .incbin "baserom.nds", 0x1364, 0x4 + .incbin "baserom.nds", 0x1368, 0x4 + .incbin "baserom.nds", 0x136C, 0x4 + .incbin "baserom.nds", 0x1370, 0x4 + .incbin "baserom.nds", 0x1374, 0x4 + .incbin "baserom.nds", 0x1378, 0x4 + .incbin "baserom.nds", 0x137C, 0x4 + .incbin "baserom.nds", 0x1380, 0x4 + .incbin "baserom.nds", 0x1384, 0x4 + .incbin "baserom.nds", 0x1388, 0x4 + .incbin "baserom.nds", 0x138C, 0x4 + .incbin "baserom.nds", 0x1390, 0x4 + .incbin "baserom.nds", 0x1394, 0x8 + .incbin "baserom.nds", 0x139C, 0x4 + .incbin "baserom.nds", 0x13A0, 0x4 + .incbin "baserom.nds", 0x13A4, 0x4 + .incbin "baserom.nds", 0x13A8, 0x4 + .incbin "baserom.nds", 0x13AC, 0x4 + .incbin "baserom.nds", 0x13B0, 0x4 + .incbin "baserom.nds", 0x13B4, 0x4 + .incbin "baserom.nds", 0x13B8, 0x4 + .incbin "baserom.nds", 0x13BC, 0x4 + .incbin "baserom.nds", 0x13C0, 0x8 + .incbin "baserom.nds", 0x13C8, 0x4 + .incbin "baserom.nds", 0x13CC, 0x4 + .incbin "baserom.nds", 0x13D0, 0x4 + .incbin "baserom.nds", 0x13D4, 0x4 + .incbin "baserom.nds", 0x13D8, 0x4 + .incbin "baserom.nds", 0x13DC, 0x20 + .incbin "baserom.nds", 0x13FC, 0x28 + .incbin "baserom.nds", 0x1424, 0x4 + .incbin "baserom.nds", 0x1428, 0x4 + .incbin "baserom.nds", 0x142C, 0x4 + .incbin "baserom.nds", 0x1430, 0x4 + .incbin "baserom.nds", 0x1434, 0x4 + .incbin "baserom.nds", 0x1438, 0x4 + .incbin "baserom.nds", 0x143C, 0x4 + .incbin "baserom.nds", 0x1440, 0x4 + .incbin "baserom.nds", 0x1444, 0x4 + .incbin "baserom.nds", 0x1448, 0x4 + .incbin "baserom.nds", 0x144C, 0x4 + .incbin "baserom.nds", 0x1450, 0x1C + .incbin "baserom.nds", 0x146C, 0x1C + .incbin "baserom.nds", 0x1488, 0x4 + .incbin "baserom.nds", 0x148C, 0x4 + .incbin "baserom.nds", 0x1490, 0x4 + .incbin "baserom.nds", 0x1494, 0x4 + .incbin "baserom.nds", 0x1498, 0x4 + .incbin "baserom.nds", 0x149C, 0x4 + .incbin "baserom.nds", 0x14A0, 0x4 + .incbin "baserom.nds", 0x14A4, 0x4 + .incbin "baserom.nds", 0x14A8, 0x8 + .incbin "baserom.nds", 0x14B0, 0x4 + .incbin "baserom.nds", 0x14B4, 0x8 + .incbin "baserom.nds", 0x14BC, 0x10 + .incbin "baserom.nds", 0x14CC, 0x4 + .incbin "baserom.nds", 0x14D0, 0x4 + .incbin "baserom.nds", 0x14D4, 0x4 + .incbin "baserom.nds", 0x14D8, 0x4 + .incbin "baserom.nds", 0x14DC, 0x4 + .incbin "baserom.nds", 0x14E0, 0x4 + .incbin "baserom.nds", 0x14E4, 0x24 + .incbin "baserom.nds", 0x1508, 0x18 + .incbin "baserom.nds", 0x1520, 0x4 + .incbin "baserom.nds", 0x1524, 0x4 + .incbin "baserom.nds", 0x1528, 0x4 + .incbin "baserom.nds", 0x152C, 0x4 + .incbin "baserom.nds", 0x1530, 0x4 + .incbin "baserom.nds", 0x1534, 0x4 + .incbin "baserom.nds", 0x1538, 0x4 + .incbin "baserom.nds", 0x153C, 0x4 + .incbin "baserom.nds", 0x1540, 0x4 + .incbin "baserom.nds", 0x1544, 0x4 + .incbin "baserom.nds", 0x1548, 0x4 + .incbin "baserom.nds", 0x154C, 0x4 + .incbin "baserom.nds", 0x1550, 0x4 + .incbin "baserom.nds", 0x1554, 0x4 + .incbin "baserom.nds", 0x1558, 0x4 + .incbin "baserom.nds", 0x155C, 0x4 + .incbin "baserom.nds", 0x1560, 0xC + .incbin "baserom.nds", 0x156C, 0x8 + .incbin "baserom.nds", 0x1574, 0x4 + .incbin "baserom.nds", 0x1578, 0x18 + .incbin "baserom.nds", 0x1590, 0x4 + .incbin "baserom.nds", 0x1594, 0x4 + .incbin "baserom.nds", 0x1598, 0x4 + .incbin "baserom.nds", 0x159C, 0x4 + .incbin "baserom.nds", 0x15A0, 0x4 + .incbin "baserom.nds", 0x15A4, 0x4 + .incbin "baserom.nds", 0x15A8, 0x4 + .incbin "baserom.nds", 0x15AC, 0x4 + .incbin "baserom.nds", 0x15B0, 0x4 + .incbin "baserom.nds", 0x15B4, 0x4 + .incbin "baserom.nds", 0x15B8, 0x4 + .incbin "baserom.nds", 0x15BC, 0x4 + .incbin "baserom.nds", 0x15C0, 0x4 + .incbin "baserom.nds", 0x15C4, 0x4 + .incbin "baserom.nds", 0x15C8, 0x8 + .incbin "baserom.nds", 0x15D0, 0x4 + .incbin "baserom.nds", 0x15D4, 0x4 + .incbin "baserom.nds", 0x15D8, 0x4 + .incbin "baserom.nds", 0x15DC, 0x4 + .incbin "baserom.nds", 0x15E0, 0x4 + .incbin "baserom.nds", 0x15E4, 0x4 + .incbin "baserom.nds", 0x15E8, 0x4 + .incbin "baserom.nds", 0x15EC, 0x14 + .incbin "baserom.nds", 0x1600, 0x14 + .incbin "baserom.nds", 0x1614, 0x4 + .incbin "baserom.nds", 0x1618, 0x4 + .incbin "baserom.nds", 0x161C, 0x4 + .incbin "baserom.nds", 0x1620, 0x4 + .incbin "baserom.nds", 0x1624, 0x4 + .incbin "baserom.nds", 0x1628, 0x4 + .incbin "baserom.nds", 0x162C, 0x4 + .incbin "baserom.nds", 0x1630, 0x4 + .incbin "baserom.nds", 0x1634, 0x4 + .incbin "baserom.nds", 0x1638, 0x28 + .incbin "baserom.nds", 0x1660, 0x28 + .incbin "baserom.nds", 0x1688, 0x8 + .incbin "baserom.nds", 0x1690, 0x4 + .incbin "baserom.nds", 0x1694, 0x4 + .incbin "baserom.nds", 0x1698, 0x4 + .incbin "baserom.nds", 0x169C, 0x4 + .incbin "baserom.nds", 0x16A0, 0x4 + .incbin "baserom.nds", 0x16A4, 0x4 + .incbin "baserom.nds", 0x16A8, 0x4 + .incbin "baserom.nds", 0x16AC, 0x4 + .incbin "baserom.nds", 0x16B0, 0x4 + .incbin "baserom.nds", 0x16B4, 0x4 + .incbin "baserom.nds", 0x16B8, 0x4 + .incbin "baserom.nds", 0x16BC, 0x4 + .incbin "baserom.nds", 0x16C0, 0x4 + .incbin "baserom.nds", 0x16C4, 0x4 + .incbin "baserom.nds", 0x16C8, 0x4 + .incbin "baserom.nds", 0x16CC, 0x8 + .incbin "baserom.nds", 0x16D4, 0x8 + .incbin "baserom.nds", 0x16DC, 0x4 + .incbin "baserom.nds", 0x16E0, 0x4 + .incbin "baserom.nds", 0x16E4, 0x4 + .incbin "baserom.nds", 0x16E8, 0x4 + .incbin "baserom.nds", 0x16EC, 0x4 + .incbin "baserom.nds", 0x16F0, 0x4 + .incbin "baserom.nds", 0x16F4, 0x4 + .incbin "baserom.nds", 0x16F8, 0x4 + .incbin "baserom.nds", 0x16FC, 0x4 + .incbin "baserom.nds", 0x1700, 0x4 + .incbin "baserom.nds", 0x1704, 0x4 + .incbin "baserom.nds", 0x1708, 0x4 + .incbin "baserom.nds", 0x170C, 0x4 + .incbin "baserom.nds", 0x1710, 0x4 + .incbin "baserom.nds", 0x1714, 0x4 + .incbin "baserom.nds", 0x1718, 0x4 + .incbin "baserom.nds", 0x171C, 0x4 + .incbin "baserom.nds", 0x1720, 0x4 + .incbin "baserom.nds", 0x1724, 0x4 + .incbin "baserom.nds", 0x1728, 0x4 + .incbin "baserom.nds", 0x172C, 0x4 + .incbin "baserom.nds", 0x1730, 0x4 + .incbin "baserom.nds", 0x1734, 0x4 + .incbin "baserom.nds", 0x1738, 0x8 + .incbin "baserom.nds", 0x1740, 0x8 + .incbin "baserom.nds", 0x1748, 0x4 + .incbin "baserom.nds", 0x174C, 0x4 + .incbin "baserom.nds", 0x1750, 0x4 + .incbin "baserom.nds", 0x1754, 0x4 + .incbin "baserom.nds", 0x1758, 0x4 + .incbin "baserom.nds", 0x175C, 0x4 + .incbin "baserom.nds", 0x1760, 0x4 + .incbin "baserom.nds", 0x1764, 0x4 + .incbin "baserom.nds", 0x1768, 0x4 + .incbin "baserom.nds", 0x176C, 0x8 + .incbin "baserom.nds", 0x1774, 0x4 + .incbin "baserom.nds", 0x1778, 0x4 + .incbin "baserom.nds", 0x177C, 0x4 + .incbin "baserom.nds", 0x1780, 0x4 + .incbin "baserom.nds", 0x1784, 0x4 + .incbin "baserom.nds", 0x1788, 0x4 + .incbin "baserom.nds", 0x178C, 0x4 + .incbin "baserom.nds", 0x1790, 0x4 + .incbin "baserom.nds", 0x1794, 0x4 + .incbin "baserom.nds", 0x1798, 0x4 + .incbin "baserom.nds", 0x179C, 0x8 + .incbin "baserom.nds", 0x17A4, 0x8 + .incbin "baserom.nds", 0x17AC, 0x4 + .incbin "baserom.nds", 0x17B0, 0x4 + .incbin "baserom.nds", 0x17B4, 0x4 + .incbin "baserom.nds", 0x17B8, 0x4 + .incbin "baserom.nds", 0x17BC, 0x4 + .incbin "baserom.nds", 0x17C0, 0x8 + .incbin "baserom.nds", 0x17C8, 0x4 + .incbin "baserom.nds", 0x17CC, 0x4 + .incbin "baserom.nds", 0x17D0, 0x4 + .incbin "baserom.nds", 0x17D4, 0x4 + .incbin "baserom.nds", 0x17D8, 0x4 + .incbin "baserom.nds", 0x17DC, 0x4 + .incbin "baserom.nds", 0x17E0, 0x10 + .incbin "baserom.nds", 0x17F0, 0x4 + .incbin "baserom.nds", 0x17F4, 0x4 + .incbin "baserom.nds", 0x17F8, 0x4 + .incbin "baserom.nds", 0x17FC, 0x4 + .incbin "baserom.nds", 0x1800, 0x4 + .incbin "baserom.nds", 0x1804, 0x4 + .incbin "baserom.nds", 0x1808, 0xC + .incbin "baserom.nds", 0x1814, 0x4 + .incbin "baserom.nds", 0x1818, 0x4 + .incbin "baserom.nds", 0x181C, 0x8 + .incbin "baserom.nds", 0x1824, 0x8 + .incbin "baserom.nds", 0x182C, 0x4 + .incbin "baserom.nds", 0x1830, 0x4 + .incbin "baserom.nds", 0x1834, 0x4 + .incbin "baserom.nds", 0x1838, 0x4 + .incbin "baserom.nds", 0x183C, 0x4 + .incbin "baserom.nds", 0x1840, 0x4 + .incbin "baserom.nds", 0x1844, 0x4 + .incbin "baserom.nds", 0x1848, 0x4 + .incbin "baserom.nds", 0x184C, 0x4 + .incbin "baserom.nds", 0x1850, 0x4 + .incbin "baserom.nds", 0x1854, 0x4 + .incbin "baserom.nds", 0x1858, 0x4 + .incbin "baserom.nds", 0x185C, 0x4 + .incbin "baserom.nds", 0x1860, 0x4 + .incbin "baserom.nds", 0x1864, 0x4 + .incbin "baserom.nds", 0x1868, 0x4 + .incbin "baserom.nds", 0x186C, 0x4 + .incbin "baserom.nds", 0x1870, 0x4 + .incbin "baserom.nds", 0x1874, 0x4 + .incbin "baserom.nds", 0x1878, 0x4 + .incbin "baserom.nds", 0x187C, 0x4 + .incbin "baserom.nds", 0x1880, 0x4 + .incbin "baserom.nds", 0x1884, 0x4 + .incbin "baserom.nds", 0x1888, 0x4 + .incbin "baserom.nds", 0x188C, 0x4 + .incbin "baserom.nds", 0x1890, 0x4 + .incbin "baserom.nds", 0x1894, 0x4 + .incbin "baserom.nds", 0x1898, 0x4 + .incbin "baserom.nds", 0x189C, 0x4 + .incbin "baserom.nds", 0x18A0, 0x4 + .incbin "baserom.nds", 0x18A4, 0x4 + .incbin "baserom.nds", 0x18A8, 0x4 + .incbin "baserom.nds", 0x18AC, 0x4 + .incbin "baserom.nds", 0x18B0, 0x4 + .incbin "baserom.nds", 0x18B4, 0x4 + .incbin "baserom.nds", 0x18B8, 0x4 + .incbin "baserom.nds", 0x18BC, 0x4 + .incbin "baserom.nds", 0x18C0, 0x4 + .incbin "baserom.nds", 0x18C4, 0x4 + .incbin "baserom.nds", 0x18C8, 0x4 + .incbin "baserom.nds", 0x18CC, 0x4 + .incbin "baserom.nds", 0x18D0, 0x4 + .incbin "baserom.nds", 0x18D4, 0x4 + .incbin "baserom.nds", 0x18D8, 0x4 + .incbin "baserom.nds", 0x18DC, 0x4 + .incbin "baserom.nds", 0x18E0, 0x8 + .incbin "baserom.nds", 0x18E8, 0x8 + .incbin "baserom.nds", 0x18F0, 0x8 + .incbin "baserom.nds", 0x18F8, 0x4 + .incbin "baserom.nds", 0x18FC, 0x4 + .incbin "baserom.nds", 0x1900, 0x4 + .incbin "baserom.nds", 0x1904, 0x4 + .incbin "baserom.nds", 0x1908, 0x4 + .incbin "baserom.nds", 0x190C, 0x4 + .incbin "baserom.nds", 0x1910, 0x4 + .incbin "baserom.nds", 0x1914, 0x4 + .incbin "baserom.nds", 0x1918, 0x4 + .incbin "baserom.nds", 0x191C, 0x4 + .incbin "baserom.nds", 0x1920, 0x4 + .incbin "baserom.nds", 0x1924, 0x4 + .incbin "baserom.nds", 0x1928, 0x4 + .incbin "baserom.nds", 0x192C, 0x4 + .incbin "baserom.nds", 0x1930, 0x4 + .incbin "baserom.nds", 0x1934, 0x4 + .incbin "baserom.nds", 0x1938, 0x4 + .incbin "baserom.nds", 0x193C, 0x4 + .incbin "baserom.nds", 0x1940, 0x4 + .incbin "baserom.nds", 0x1944, 0x4 + .incbin "baserom.nds", 0x1948, 0x4 + .incbin "baserom.nds", 0x194C, 0x4 + .incbin "baserom.nds", 0x1950, 0x4 + .incbin "baserom.nds", 0x1954, 0x4 + .incbin "baserom.nds", 0x1958, 0x4 + .incbin "baserom.nds", 0x195C, 0x4 + .incbin "baserom.nds", 0x1960, 0x4 + .incbin "baserom.nds", 0x1964, 0x4 + .incbin "baserom.nds", 0x1968, 0x4 + .incbin "baserom.nds", 0x196C, 0x4 + .incbin "baserom.nds", 0x1970, 0x8 + .incbin "baserom.nds", 0x1978, 0x4 + .incbin "baserom.nds", 0x197C, 0x4 + .incbin "baserom.nds", 0x1980, 0x4 + .incbin "baserom.nds", 0x1984, 0x4 + .incbin "baserom.nds", 0x1988, 0x4 + .incbin "baserom.nds", 0x198C, 0x4 + .incbin "baserom.nds", 0x1990, 0x4 + .incbin "baserom.nds", 0x1994, 0x4 + .incbin "baserom.nds", 0x1998, 0x8 + .incbin "baserom.nds", 0x19A0, 0xC + .incbin "baserom.nds", 0x19AC, 0x4 + .incbin "baserom.nds", 0x19B0, 0x4 + .incbin "baserom.nds", 0x19B4, 0x4 + .incbin "baserom.nds", 0x19B8, 0x4 + .incbin "baserom.nds", 0x19BC, 0x4 + .incbin "baserom.nds", 0x19C0, 0x4 + .incbin "baserom.nds", 0x19C4, 0x8 + .incbin "baserom.nds", 0x19CC, 0x4 + .incbin "baserom.nds", 0x19D0, 0x4 + .incbin "baserom.nds", 0x19D4, 0x8 + .incbin "baserom.nds", 0x19DC, 0x4 + .incbin "baserom.nds", 0x19E0, 0x4 + .incbin "baserom.nds", 0x19E4, 0x4 + .incbin "baserom.nds", 0x19E8, 0x4 + .incbin "baserom.nds", 0x19EC, 0x8 + .incbin "baserom.nds", 0x19F4, 0x4 + .incbin "baserom.nds", 0x19F8, 0x4 + .incbin "baserom.nds", 0x19FC, 0x4 + .incbin "baserom.nds", 0x1A00, 0x4 + .incbin "baserom.nds", 0x1A04, 0x4 + .incbin "baserom.nds", 0x1A08, 0x4 + .incbin "baserom.nds", 0x1A0C, 0x4 + .incbin "baserom.nds", 0x1A10, 0x4 + .incbin "baserom.nds", 0x1A14, 0x4 + .incbin "baserom.nds", 0x1A18, 0x4 + .incbin "baserom.nds", 0x1A1C, 0x4 + .incbin "baserom.nds", 0x1A20, 0x4 + .incbin "baserom.nds", 0x1A24, 0x4 + .incbin "baserom.nds", 0x1A28, 0x4 + .incbin "baserom.nds", 0x1A2C, 0x4 + .incbin "baserom.nds", 0x1A30, 0x14 + .incbin "baserom.nds", 0x1A44, 0x14 + .incbin "baserom.nds", 0x1A58, 0x4 + .incbin "baserom.nds", 0x1A5C, 0x4 + .incbin "baserom.nds", 0x1A60, 0x4 + .incbin "baserom.nds", 0x1A64, 0x4 + .incbin "baserom.nds", 0x1A68, 0x4 + .incbin "baserom.nds", 0x1A6C, 0x4 + .incbin "baserom.nds", 0x1A70, 0x4 + .incbin "baserom.nds", 0x1A74, 0x4 + .incbin "baserom.nds", 0x1A78, 0x4 + .incbin "baserom.nds", 0x1A7C, 0x4 + .incbin "baserom.nds", 0x1A80, 0x4 + .incbin "baserom.nds", 0x1A84, 0x4 + .incbin "baserom.nds", 0x1A88, 0x4 + .incbin "baserom.nds", 0x1A8C, 0x4 + .incbin "baserom.nds", 0x1A90, 0x4 + .incbin "baserom.nds", 0x1A94, 0x4 + .incbin "baserom.nds", 0x1A98, 0x4 + .incbin "baserom.nds", 0x1A9C, 0xC + .incbin "baserom.nds", 0x1AA8, 0x4 + .incbin "baserom.nds", 0x1AAC, 0x4 + .incbin "baserom.nds", 0x1AB0, 0x4 + .incbin "baserom.nds", 0x1AB4, 0x4 + .incbin "baserom.nds", 0x1AB8, 0x4 + .incbin "baserom.nds", 0x1ABC, 0x4 + .incbin "baserom.nds", 0x1AC0, 0x4 + .incbin "baserom.nds", 0x1AC4, 0x4 + .incbin "baserom.nds", 0x1AC8, 0x4 + .incbin "baserom.nds", 0x1ACC, 0x4 + .incbin "baserom.nds", 0x1AD0, 0x4 + .incbin "baserom.nds", 0x1AD4, 0x4 + .incbin "baserom.nds", 0x1AD8, 0x4 + .incbin "baserom.nds", 0x1ADC, 0x4 + .incbin "baserom.nds", 0x1AE0, 0x4 + .incbin "baserom.nds", 0x1AE4, 0x4 + .incbin "baserom.nds", 0x1AE8, 0x4 + .incbin "baserom.nds", 0x1AEC, 0x4 + .incbin "baserom.nds", 0x1AF0, 0x4 + .incbin "baserom.nds", 0x1AF4, 0x4 + .incbin "baserom.nds", 0x1AF8, 0x4 + .incbin "baserom.nds", 0x1AFC, 0x4 + .incbin "baserom.nds", 0x1B00, 0x4 + .incbin "baserom.nds", 0x1B04, 0x4 + .incbin "baserom.nds", 0x1B08, 0x4 + .incbin "baserom.nds", 0x1B0C, 0x4 + .incbin "baserom.nds", 0x1B10, 0x4 + .incbin "baserom.nds", 0x1B14, 0x4 + .incbin "baserom.nds", 0x1B18, 0x4 + .incbin "baserom.nds", 0x1B1C, 0x4 + .incbin "baserom.nds", 0x1B20, 0x4 + .incbin "baserom.nds", 0x1B24, 0x4 + .incbin "baserom.nds", 0x1B28, 0x4 + .incbin "baserom.nds", 0x1B2C, 0x4 + .incbin "baserom.nds", 0x1B30, 0x4 + .incbin "baserom.nds", 0x1B34, 0x4 + .incbin "baserom.nds", 0x1B38, 0x4 + .incbin "baserom.nds", 0x1B3C, 0xC + .incbin "baserom.nds", 0x1B48, 0x10 + .incbin "baserom.nds", 0x1B58, 0x4 + .incbin "baserom.nds", 0x1B5C, 0xC + .incbin "baserom.nds", 0x1B68, 0x14 + .incbin "baserom.nds", 0x1B7C, 0x4 + .incbin "baserom.nds", 0x1B80, 0x8 + .incbin "baserom.nds", 0x1B88, 0x4 + .incbin "baserom.nds", 0x1B8C, 0x4 + .incbin "baserom.nds", 0x1B90, 0x4 + .incbin "baserom.nds", 0x1B94, 0xC + .incbin "baserom.nds", 0x1BA0, 0x4 + .incbin "baserom.nds", 0x1BA4, 0x4 + .incbin "baserom.nds", 0x1BA8, 0x4 + .incbin "baserom.nds", 0x1BAC, 0x4 + .incbin "baserom.nds", 0x1BB0, 0x4 + .incbin "baserom.nds", 0x1BB4, 0x4 + .incbin "baserom.nds", 0x1BB8, 0x4 + .incbin "baserom.nds", 0x1BBC, 0x4 + .incbin "baserom.nds", 0x1BC0, 0x4 + .incbin "baserom.nds", 0x1BC4, 0x4 + .incbin "baserom.nds", 0x1BC8, 0x4 + .incbin "baserom.nds", 0x1BCC, 0x4 + .incbin "baserom.nds", 0x1BD0, 0x8 + .incbin "baserom.nds", 0x1BD8, 0x4 + .incbin "baserom.nds", 0x1BDC, 0x4 + .incbin "baserom.nds", 0x1BE0, 0x4 + .incbin "baserom.nds", 0x1BE4, 0x4 + .incbin "baserom.nds", 0x1BE8, 0x4 + .incbin "baserom.nds", 0x1BEC, 0x4 + .incbin "baserom.nds", 0x1BF0, 0x4 + .incbin "baserom.nds", 0x1BF4, 0x8 + .incbin "baserom.nds", 0x1BFC, 0x4 + .incbin "baserom.nds", 0x1C00, 0x4 + .incbin "baserom.nds", 0x1C04, 0x4 + .incbin "baserom.nds", 0x1C08, 0x4 + .incbin "baserom.nds", 0x1C0C, 0x4 + .incbin "baserom.nds", 0x1C10, 0x10 + .incbin "baserom.nds", 0x1C20, 0x4 + .incbin "baserom.nds", 0x1C24, 0x4 + .incbin "baserom.nds", 0x1C28, 0x10 + .incbin "baserom.nds", 0x1C38, 0xC + .incbin "baserom.nds", 0x1C44, 0x4 + .incbin "baserom.nds", 0x1C48, 0x4 + .incbin "baserom.nds", 0x1C4C, 0x4 + .incbin "baserom.nds", 0x1C50, 0x4 + .incbin "baserom.nds", 0x1C54, 0x4 + .incbin "baserom.nds", 0x1C58, 0x8 + .incbin "baserom.nds", 0x1C60, 0x4 + .incbin "baserom.nds", 0x1C64, 0x4 + .incbin "baserom.nds", 0x1C68, 0x4 + .incbin "baserom.nds", 0x1C6C, 0x4 + .incbin "baserom.nds", 0x1C70, 0x4 + .incbin "baserom.nds", 0x1C74, 0x8 + .incbin "baserom.nds", 0x1C7C, 0x4 + .incbin "baserom.nds", 0x1C80, 0x4 + .incbin "baserom.nds", 0x1C84, 0x4 + .incbin "baserom.nds", 0x1C88, 0x4 + .incbin "baserom.nds", 0x1C8C, 0x4 + .incbin "baserom.nds", 0x1C90, 0x4 + .incbin "baserom.nds", 0x1C94, 0x4 + .incbin "baserom.nds", 0x1C98, 0x4 + .incbin "baserom.nds", 0x1C9C, 0x4 + .incbin "baserom.nds", 0x1CA0, 0x8 + .incbin "baserom.nds", 0x1CA8, 0x8 + .incbin "baserom.nds", 0x1CB0, 0x4 + .incbin "baserom.nds", 0x1CB4, 0x4 + .incbin "baserom.nds", 0x1CB8, 0x4 + .incbin "baserom.nds", 0x1CBC, 0x4 + .incbin "baserom.nds", 0x1CC0, 0x4 + .incbin "baserom.nds", 0x1CC4, 0x4 + .incbin "baserom.nds", 0x1CC8, 0x4 + .incbin "baserom.nds", 0x1CCC, 0x4 + .incbin "baserom.nds", 0x1CD0, 0x4 + .incbin "baserom.nds", 0x1CD4, 0x4 + .incbin "baserom.nds", 0x1CD8, 0x4 + .incbin "baserom.nds", 0x1CDC, 0x4 + .incbin "baserom.nds", 0x1CE0, 0x4 + .incbin "baserom.nds", 0x1CE4, 0x4 + .incbin "baserom.nds", 0x1CE8, 0x4 + .incbin "baserom.nds", 0x1CEC, 0x4 + .incbin "baserom.nds", 0x1CF0, 0x4 + .incbin "baserom.nds", 0x1CF4, 0x4 + .incbin "baserom.nds", 0x1CF8, 0x4 + .incbin "baserom.nds", 0x1CFC, 0x4 + .incbin "baserom.nds", 0x1D00, 0x4 + .incbin "baserom.nds", 0x1D04, 0x4 + .incbin "baserom.nds", 0x1D08, 0x4 + .incbin "baserom.nds", 0x1D0C, 0x4 + .incbin "baserom.nds", 0x1D10, 0x4 + .incbin "baserom.nds", 0x1D14, 0x4 + .incbin "baserom.nds", 0x1D18, 0x4 + .incbin "baserom.nds", 0x1D1C, 0x4 + .incbin "baserom.nds", 0x1D20, 0x4 + .incbin "baserom.nds", 0x1D24, 0x4 + .incbin "baserom.nds", 0x1D28, 0x4 + .incbin "baserom.nds", 0x1D2C, 0x4 + .incbin "baserom.nds", 0x1D30, 0x4 + .incbin "baserom.nds", 0x1D34, 0x4 + .incbin "baserom.nds", 0x1D38, 0x44 + .incbin "baserom.nds", 0x1D7C, 0x4 + .incbin "baserom.nds", 0x1D80, 0x4 + .incbin "baserom.nds", 0x1D84, 0x4 + .incbin "baserom.nds", 0x1D88, 0x4 + .incbin "baserom.nds", 0x1D8C, 0x4 + .incbin "baserom.nds", 0x1D90, 0x4 + .incbin "baserom.nds", 0x1D94, 0x4 + .incbin "baserom.nds", 0x1D98, 0x4 + .incbin "baserom.nds", 0x1D9C, 0x4 + .incbin "baserom.nds", 0x1DA0, 0x4 + .incbin "baserom.nds", 0x1DA4, 0x4 + .incbin "baserom.nds", 0x1DA8, 0x4 + .incbin "baserom.nds", 0x1DAC, 0x4 + .incbin "baserom.nds", 0x1DB0, 0x4 + .incbin "baserom.nds", 0x1DB4, 0x4 + .incbin "baserom.nds", 0x1DB8, 0x4 + .incbin "baserom.nds", 0x1DBC, 0x4 + .incbin "baserom.nds", 0x1DC0, 0x4 + .incbin "baserom.nds", 0x1DC4, 0x4 + .incbin "baserom.nds", 0x1DC8, 0x4 + .incbin "baserom.nds", 0x1DCC, 0x4 + .incbin "baserom.nds", 0x1DD0, 0x4 + .incbin "baserom.nds", 0x1DD4, 0x4 + .incbin "baserom.nds", 0x1DD8, 0x4 + .incbin "baserom.nds", 0x1DDC, 0x8 + .incbin "baserom.nds", 0x1DE4, 0x4 + .incbin "baserom.nds", 0x1DE8, 0x4 + .incbin "baserom.nds", 0x1DEC, 0x4 + .incbin "baserom.nds", 0x1DF0, 0x4 + .incbin "baserom.nds", 0x1DF4, 0x4 + .incbin "baserom.nds", 0x1DF8, 0x4 + .incbin "baserom.nds", 0x1DFC, 0x4 + .incbin "baserom.nds", 0x1E00, 0x4 + .incbin "baserom.nds", 0x1E04, 0x4 + .incbin "baserom.nds", 0x1E08, 0x8 + .incbin "baserom.nds", 0x1E10, 0x4 + .incbin "baserom.nds", 0x1E14, 0x4 + .incbin "baserom.nds", 0x1E18, 0x4 + .incbin "baserom.nds", 0x1E1C, 0x4 + .incbin "baserom.nds", 0x1E20, 0x4 + .incbin "baserom.nds", 0x1E24, 0x20 + .incbin "baserom.nds", 0x1E44, 0x28 + .incbin "baserom.nds", 0x1E6C, 0x4 + .incbin "baserom.nds", 0x1E70, 0x4 + .incbin "baserom.nds", 0x1E74, 0x4 + .incbin "baserom.nds", 0x1E78, 0x4 + .incbin "baserom.nds", 0x1E7C, 0x4 + .incbin "baserom.nds", 0x1E80, 0x4 + .incbin "baserom.nds", 0x1E84, 0x4 + .incbin "baserom.nds", 0x1E88, 0x4 + .incbin "baserom.nds", 0x1E8C, 0x4 + .incbin "baserom.nds", 0x1E90, 0x4 + .incbin "baserom.nds", 0x1E94, 0x4 + .incbin "baserom.nds", 0x1E98, 0x1C + .incbin "baserom.nds", 0x1EB4, 0x1C + .incbin "baserom.nds", 0x1ED0, 0x4 + .incbin "baserom.nds", 0x1ED4, 0x4 + .incbin "baserom.nds", 0x1ED8, 0x4 + .incbin "baserom.nds", 0x1EDC, 0x4 + .incbin "baserom.nds", 0x1EE0, 0x4 + .incbin "baserom.nds", 0x1EE4, 0x4 + .incbin "baserom.nds", 0x1EE8, 0x4 + .incbin "baserom.nds", 0x1EEC, 0x4 + .incbin "baserom.nds", 0x1EF0, 0x8 + .incbin "baserom.nds", 0x1EF8, 0x4 + .incbin "baserom.nds", 0x1EFC, 0x8 + .incbin "baserom.nds", 0x1F04, 0x10 + .incbin "baserom.nds", 0x1F14, 0x4 + .incbin "baserom.nds", 0x1F18, 0x4 + .incbin "baserom.nds", 0x1F1C, 0x4 + .incbin "baserom.nds", 0x1F20, 0x4 + .incbin "baserom.nds", 0x1F24, 0x4 + .incbin "baserom.nds", 0x1F28, 0x4 + .incbin "baserom.nds", 0x1F2C, 0x24 + .incbin "baserom.nds", 0x1F50, 0x18 + .incbin "baserom.nds", 0x1F68, 0x4 + .incbin "baserom.nds", 0x1F6C, 0x4 + .incbin "baserom.nds", 0x1F70, 0x4 + .incbin "baserom.nds", 0x1F74, 0x4 + .incbin "baserom.nds", 0x1F78, 0x4 + .incbin "baserom.nds", 0x1F7C, 0x4 + .incbin "baserom.nds", 0x1F80, 0x4 + .incbin "baserom.nds", 0x1F84, 0x4 + .incbin "baserom.nds", 0x1F88, 0x4 + .incbin "baserom.nds", 0x1F8C, 0x4 + .incbin "baserom.nds", 0x1F90, 0x4 + .incbin "baserom.nds", 0x1F94, 0x4 + .incbin "baserom.nds", 0x1F98, 0x4 + .incbin "baserom.nds", 0x1F9C, 0x4 + .incbin "baserom.nds", 0x1FA0, 0x4 + .incbin "baserom.nds", 0x1FA4, 0x4 + .incbin "baserom.nds", 0x1FA8, 0xC + .incbin "baserom.nds", 0x1FB4, 0x8 + .incbin "baserom.nds", 0x1FBC, 0x4 + .incbin "baserom.nds", 0x1FC0, 0x18 + .incbin "baserom.nds", 0x1FD8, 0x4 + .incbin "baserom.nds", 0x1FDC, 0x4 + .incbin "baserom.nds", 0x1FE0, 0x4 + .incbin "baserom.nds", 0x1FE4, 0x4 + .incbin "baserom.nds", 0x1FE8, 0x4 + .incbin "baserom.nds", 0x1FEC, 0x4 + .incbin "baserom.nds", 0x1FF0, 0x4 + .incbin "baserom.nds", 0x1FF4, 0x4 + .incbin "baserom.nds", 0x1FF8, 0x4 + .incbin "baserom.nds", 0x1FFC, 0x4 + .incbin "baserom.nds", 0x2000, 0x4 + .incbin "baserom.nds", 0x2004, 0x4 + .incbin "baserom.nds", 0x2008, 0x4 + .incbin "baserom.nds", 0x200C, 0x4 + .incbin "baserom.nds", 0x2010, 0x8 + .incbin "baserom.nds", 0x2018, 0x4 + .incbin "baserom.nds", 0x201C, 0x4 + .incbin "baserom.nds", 0x2020, 0x4 + .incbin "baserom.nds", 0x2024, 0x4 + .incbin "baserom.nds", 0x2028, 0x4 + .incbin "baserom.nds", 0x202C, 0x4 + .incbin "baserom.nds", 0x2030, 0x4 + .incbin "baserom.nds", 0x2034, 0x14 + .incbin "baserom.nds", 0x2048, 0x14 + .incbin "baserom.nds", 0x205C, 0x4 + .incbin "baserom.nds", 0x2060, 0x4 + .incbin "baserom.nds", 0x2064, 0x4 + .incbin "baserom.nds", 0x2068, 0x4 + .incbin "baserom.nds", 0x206C, 0x4 + .incbin "baserom.nds", 0x2070, 0x4 + .incbin "baserom.nds", 0x2074, 0x4 + .incbin "baserom.nds", 0x2078, 0x4 + .incbin "baserom.nds", 0x207C, 0x4 + .incbin "baserom.nds", 0x2080, 0x28 + .incbin "baserom.nds", 0x20A8, 0x28 + .incbin "baserom.nds", 0x20D0, 0x8 + .incbin "baserom.nds", 0x20D8, 0x4 + .incbin "baserom.nds", 0x20DC, 0x4 + .incbin "baserom.nds", 0x20E0, 0x4 + .incbin "baserom.nds", 0x20E4, 0x4 + .incbin "baserom.nds", 0x20E8, 0x4 + .incbin "baserom.nds", 0x20EC, 0x4 + .incbin "baserom.nds", 0x20F0, 0x4 + .incbin "baserom.nds", 0x20F4, 0x4 + .incbin "baserom.nds", 0x20F8, 0x4 + .incbin "baserom.nds", 0x20FC, 0x4 + .incbin "baserom.nds", 0x2100, 0x4 + .incbin "baserom.nds", 0x2104, 0x4 + .incbin "baserom.nds", 0x2108, 0x4 + .incbin "baserom.nds", 0x210C, 0x4 + .incbin "baserom.nds", 0x2110, 0x4 + .incbin "baserom.nds", 0x2114, 0x8 + .incbin "baserom.nds", 0x211C, 0x8 + .incbin "baserom.nds", 0x2124, 0x4 + .incbin "baserom.nds", 0x2128, 0x4 + .incbin "baserom.nds", 0x212C, 0x4 + .incbin "baserom.nds", 0x2130, 0x4 + .incbin "baserom.nds", 0x2134, 0x4 + .incbin "baserom.nds", 0x2138, 0x4 + .incbin "baserom.nds", 0x213C, 0x4 + .incbin "baserom.nds", 0x2140, 0x4 + .incbin "baserom.nds", 0x2144, 0x4 + .incbin "baserom.nds", 0x2148, 0x4 + .incbin "baserom.nds", 0x214C, 0x4 + .incbin "baserom.nds", 0x2150, 0x4 + .incbin "baserom.nds", 0x2154, 0x4 + .incbin "baserom.nds", 0x2158, 0x4 + .incbin "baserom.nds", 0x215C, 0x8 + .incbin "baserom.nds", 0x2164, 0x18 + .incbin "baserom.nds", 0x217C, 0x4 + .incbin "baserom.nds", 0x2180, 0x4 + .incbin "baserom.nds", 0x2184, 0x4 + .incbin "baserom.nds", 0x2188, 0x4 + .incbin "baserom.nds", 0x218C, 0x4 + .incbin "baserom.nds", 0x2190, 0x4 + .incbin "baserom.nds", 0x2194, 0x4 + .incbin "baserom.nds", 0x2198, 0x8 + .incbin "baserom.nds", 0x21A0, 0x8 + .incbin "baserom.nds", 0x21A8, 0x4 + .incbin "baserom.nds", 0x21AC, 0x4 + .incbin "baserom.nds", 0x21B0, 0x4 + .incbin "baserom.nds", 0x21B4, 0x4 + .incbin "baserom.nds", 0x21B8, 0x4 + .incbin "baserom.nds", 0x21BC, 0x4 + .incbin "baserom.nds", 0x21C0, 0x4 + .incbin "baserom.nds", 0x21C4, 0x4 + .incbin "baserom.nds", 0x21C8, 0x4 + .incbin "baserom.nds", 0x21CC, 0x8 + .incbin "baserom.nds", 0x21D4, 0x4 + .incbin "baserom.nds", 0x21D8, 0x4 + .incbin "baserom.nds", 0x21DC, 0x4 + .incbin "baserom.nds", 0x21E0, 0x4 + .incbin "baserom.nds", 0x21E4, 0x4 + .incbin "baserom.nds", 0x21E8, 0x4 + .incbin "baserom.nds", 0x21EC, 0x4 + .incbin "baserom.nds", 0x21F0, 0x4 + .incbin "baserom.nds", 0x21F4, 0x4 + .incbin "baserom.nds", 0x21F8, 0x4 + .incbin "baserom.nds", 0x21FC, 0x8 + .incbin "baserom.nds", 0x2204, 0x8 + .incbin "baserom.nds", 0x220C, 0x4 + .incbin "baserom.nds", 0x2210, 0x4 + .incbin "baserom.nds", 0x2214, 0xC + .incbin "baserom.nds", 0x2220, 0x4 + .incbin "baserom.nds", 0x2224, 0x4 + .incbin "baserom.nds", 0x2228, 0x8 + .incbin "baserom.nds", 0x2230, 0x4 + .incbin "baserom.nds", 0x2234, 0x4 + .incbin "baserom.nds", 0x2238, 0x4 + .incbin "baserom.nds", 0x223C, 0x4 + .incbin "baserom.nds", 0x2240, 0x4 + .incbin "baserom.nds", 0x2244, 0x4 + .incbin "baserom.nds", 0x2248, 0x10 + .incbin "baserom.nds", 0x2258, 0x4 + .incbin "baserom.nds", 0x225C, 0x4 + .incbin "baserom.nds", 0x2260, 0x4 + .incbin "baserom.nds", 0x2264, 0x4 + .incbin "baserom.nds", 0x2268, 0x4 + .incbin "baserom.nds", 0x226C, 0x4 + .incbin "baserom.nds", 0x2270, 0xC + .incbin "baserom.nds", 0x227C, 0x4 + .incbin "baserom.nds", 0x2280, 0x4 + .incbin "baserom.nds", 0x2284, 0x8 + .incbin "baserom.nds", 0x228C, 0x8 + .incbin "baserom.nds", 0x2294, 0x4 + .incbin "baserom.nds", 0x2298, 0x4 + .incbin "baserom.nds", 0x229C, 0x4 + .incbin "baserom.nds", 0x22A0, 0x4 + .incbin "baserom.nds", 0x22A4, 0x4 + .incbin "baserom.nds", 0x22A8, 0x4 + .incbin "baserom.nds", 0x22AC, 0x4 + .incbin "baserom.nds", 0x22B0, 0x4 + .incbin "baserom.nds", 0x22B4, 0x4 + .incbin "baserom.nds", 0x22B8, 0x4 + .incbin "baserom.nds", 0x22BC, 0x4 + .incbin "baserom.nds", 0x22C0, 0x4 + .incbin "baserom.nds", 0x22C4, 0x4 + .incbin "baserom.nds", 0x22C8, 0x4 + .incbin "baserom.nds", 0x22CC, 0x4 + .incbin "baserom.nds", 0x22D0, 0x4 + .incbin "baserom.nds", 0x22D4, 0x4 + .incbin "baserom.nds", 0x22D8, 0x4 + .incbin "baserom.nds", 0x22DC, 0x4 + .incbin "baserom.nds", 0x22E0, 0x4 + .incbin "baserom.nds", 0x22E4, 0x4 + .incbin "baserom.nds", 0x22E8, 0x4 + .incbin "baserom.nds", 0x22EC, 0x4 + .incbin "baserom.nds", 0x22F0, 0x4 + .incbin "baserom.nds", 0x22F4, 0x4 + .incbin "baserom.nds", 0x22F8, 0x4 + .incbin "baserom.nds", 0x22FC, 0x4 + .incbin "baserom.nds", 0x2300, 0x4 + .incbin "baserom.nds", 0x2304, 0x4 + .incbin "baserom.nds", 0x2308, 0x4 + .incbin "baserom.nds", 0x230C, 0x4 + .incbin "baserom.nds", 0x2310, 0x4 + .incbin "baserom.nds", 0x2314, 0x4 + .incbin "baserom.nds", 0x2318, 0x4 + .incbin "baserom.nds", 0x231C, 0x4 + .incbin "baserom.nds", 0x2320, 0x4 + .incbin "baserom.nds", 0x2324, 0x4 + .incbin "baserom.nds", 0x2328, 0x4 + .incbin "baserom.nds", 0x232C, 0x4 + .incbin "baserom.nds", 0x2330, 0x4 + .incbin "baserom.nds", 0x2334, 0x4 + .incbin "baserom.nds", 0x2338, 0x4 + .incbin "baserom.nds", 0x233C, 0x4 + .incbin "baserom.nds", 0x2340, 0x4 + .incbin "baserom.nds", 0x2344, 0x4 + .incbin "baserom.nds", 0x2348, 0x8 + .incbin "baserom.nds", 0x2350, 0x8 + .incbin "baserom.nds", 0x2358, 0x8 + .incbin "baserom.nds", 0x2360, 0x4 + .incbin "baserom.nds", 0x2364, 0x4 + .incbin "baserom.nds", 0x2368, 0x4 + .incbin "baserom.nds", 0x236C, 0x4 + .incbin "baserom.nds", 0x2370, 0x4 + .incbin "baserom.nds", 0x2374, 0x4 + .incbin "baserom.nds", 0x2378, 0x4 + .incbin "baserom.nds", 0x237C, 0x4 + .incbin "baserom.nds", 0x2380, 0x4 + .incbin "baserom.nds", 0x2384, 0x4 + .incbin "baserom.nds", 0x2388, 0x4 + .incbin "baserom.nds", 0x238C, 0x4 + .incbin "baserom.nds", 0x2390, 0x4 + .incbin "baserom.nds", 0x2394, 0x4 + .incbin "baserom.nds", 0x2398, 0x4 + .incbin "baserom.nds", 0x239C, 0x4 + .incbin "baserom.nds", 0x23A0, 0x4 + .incbin "baserom.nds", 0x23A4, 0x4 + .incbin "baserom.nds", 0x23A8, 0x4 + .incbin "baserom.nds", 0x23AC, 0x4 + .incbin "baserom.nds", 0x23B0, 0x4 + .incbin "baserom.nds", 0x23B4, 0x4 + .incbin "baserom.nds", 0x23B8, 0x4 + .incbin "baserom.nds", 0x23BC, 0x4 + .incbin "baserom.nds", 0x23C0, 0x4 + .incbin "baserom.nds", 0x23C4, 0x4 + .incbin "baserom.nds", 0x23C8, 0x4 + .incbin "baserom.nds", 0x23CC, 0x4 + .incbin "baserom.nds", 0x23D0, 0x4 + .incbin "baserom.nds", 0x23D4, 0x4 + .incbin "baserom.nds", 0x23D8, 0x8 + .incbin "baserom.nds", 0x23E0, 0x4 + .incbin "baserom.nds", 0x23E4, 0x4 + .incbin "baserom.nds", 0x23E8, 0x4 + .incbin "baserom.nds", 0x23EC, 0x4 + .incbin "baserom.nds", 0x23F0, 0x4 + .incbin "baserom.nds", 0x23F4, 0x4 + .incbin "baserom.nds", 0x23F8, 0x4 + .incbin "baserom.nds", 0x23FC, 0x4 + .incbin "baserom.nds", 0x2400, 0x8 + .incbin "baserom.nds", 0x2408, 0xC + .incbin "baserom.nds", 0x2414, 0x4 + .incbin "baserom.nds", 0x2418, 0x4 + .incbin "baserom.nds", 0x241C, 0x4 + .incbin "baserom.nds", 0x2420, 0x4 + .incbin "baserom.nds", 0x2424, 0x4 + .incbin "baserom.nds", 0x2428, 0x4 + .incbin "baserom.nds", 0x242C, 0x8 + .incbin "baserom.nds", 0x2434, 0x4 + .incbin "baserom.nds", 0x2438, 0x4 + .incbin "baserom.nds", 0x243C, 0x8 + .incbin "baserom.nds", 0x2444, 0x4 + .incbin "baserom.nds", 0x2448, 0x4 + .incbin "baserom.nds", 0x244C, 0x4 + .incbin "baserom.nds", 0x2450, 0x4 + .incbin "baserom.nds", 0x2454, 0x8 + .incbin "baserom.nds", 0x245C, 0x4 + .incbin "baserom.nds", 0x2460, 0x4 + .incbin "baserom.nds", 0x2464, 0x4 + .incbin "baserom.nds", 0x2468, 0x4 + .incbin "baserom.nds", 0x246C, 0x4 + .incbin "baserom.nds", 0x2470, 0x4 + .incbin "baserom.nds", 0x2474, 0x4 + .incbin "baserom.nds", 0x2478, 0x4 + .incbin "baserom.nds", 0x247C, 0x4 + .incbin "baserom.nds", 0x2480, 0x4 + .incbin "baserom.nds", 0x2484, 0x4 + .incbin "baserom.nds", 0x2488, 0x4 + .incbin "baserom.nds", 0x248C, 0x4 + .incbin "baserom.nds", 0x2490, 0x4 + .incbin "baserom.nds", 0x2494, 0x4 + .incbin "baserom.nds", 0x2498, 0x14 + .incbin "baserom.nds", 0x24AC, 0x14 + .incbin "baserom.nds", 0x24C0, 0x4 + .incbin "baserom.nds", 0x24C4, 0x4 + .incbin "baserom.nds", 0x24C8, 0x4 + .incbin "baserom.nds", 0x24CC, 0x4 + .incbin "baserom.nds", 0x24D0, 0x4 + .incbin "baserom.nds", 0x24D4, 0x4 + .incbin "baserom.nds", 0x24D8, 0x4 + .incbin "baserom.nds", 0x24DC, 0x4 + .incbin "baserom.nds", 0x24E0, 0x4 + .incbin "baserom.nds", 0x24E4, 0x4 + .incbin "baserom.nds", 0x24E8, 0x4 + .incbin "baserom.nds", 0x24EC, 0x4 + .incbin "baserom.nds", 0x24F0, 0x4 + .incbin "baserom.nds", 0x24F4, 0x4 + .incbin "baserom.nds", 0x24F8, 0x4 + .incbin "baserom.nds", 0x24FC, 0x4 + .incbin "baserom.nds", 0x2500, 0x4 + .incbin "baserom.nds", 0x2504, 0xC + .incbin "baserom.nds", 0x2510, 0x4 + .incbin "baserom.nds", 0x2514, 0x4 + .incbin "baserom.nds", 0x2518, 0x4 + .incbin "baserom.nds", 0x251C, 0x4 + .incbin "baserom.nds", 0x2520, 0x4 + .incbin "baserom.nds", 0x2524, 0x4 + .incbin "baserom.nds", 0x2528, 0x4 + .incbin "baserom.nds", 0x252C, 0x4 + .incbin "baserom.nds", 0x2530, 0x4 + .incbin "baserom.nds", 0x2534, 0x4 + .incbin "baserom.nds", 0x2538, 0x4 + .incbin "baserom.nds", 0x253C, 0x4 + .incbin "baserom.nds", 0x2540, 0x4 + .incbin "baserom.nds", 0x2544, 0x4 + .incbin "baserom.nds", 0x2548, 0x4 + .incbin "baserom.nds", 0x254C, 0x4 + .incbin "baserom.nds", 0x2550, 0x4 + .incbin "baserom.nds", 0x2554, 0x4 + .incbin "baserom.nds", 0x2558, 0x4 + .incbin "baserom.nds", 0x255C, 0x4 + .incbin "baserom.nds", 0x2560, 0x4 + .incbin "baserom.nds", 0x2564, 0x4 + .incbin "baserom.nds", 0x2568, 0x4 + .incbin "baserom.nds", 0x256C, 0x4 + .incbin "baserom.nds", 0x2570, 0x4 + .incbin "baserom.nds", 0x2574, 0x4 + .incbin "baserom.nds", 0x2578, 0x4 + .incbin "baserom.nds", 0x257C, 0x4 + .incbin "baserom.nds", 0x2580, 0x4 + .incbin "baserom.nds", 0x2584, 0x4 + .incbin "baserom.nds", 0x2588, 0x4 + .incbin "baserom.nds", 0x258C, 0x4 + .incbin "baserom.nds", 0x2590, 0x4 + .incbin "baserom.nds", 0x2594, 0x4 + .incbin "baserom.nds", 0x2598, 0x4 + .incbin "baserom.nds", 0x259C, 0x4 + .incbin "baserom.nds", 0x25A0, 0x4 + .incbin "baserom.nds", 0x25A4, 0x8 + .incbin "baserom.nds", 0x25AC, 0x10 + .incbin "baserom.nds", 0x25BC, 0x4 + .incbin "baserom.nds", 0x25C0, 0xC + .incbin "baserom.nds", 0x25CC, 0x14 + .incbin "baserom.nds", 0x25E0, 0x4 + .incbin "baserom.nds", 0x25E4, 0x8 + .incbin "baserom.nds", 0x25EC, 0x4 + .incbin "baserom.nds", 0x25F0, 0x4 + .incbin "baserom.nds", 0x25F4, 0x4 + .incbin "baserom.nds", 0x25F8, 0x8 + .incbin "baserom.nds", 0x2600, 0x4 + .incbin "baserom.nds", 0x2604, 0x4 + .incbin "baserom.nds", 0x2608, 0x4 + .incbin "baserom.nds", 0x260C, 0x4 + .incbin "baserom.nds", 0x2610, 0x4 + .incbin "baserom.nds", 0x2614, 0x4 + .incbin "baserom.nds", 0x2618, 0x4 + .incbin "baserom.nds", 0x261C, 0x4 + .incbin "baserom.nds", 0x2620, 0x4 + .incbin "baserom.nds", 0x2624, 0x4 + .incbin "baserom.nds", 0x2628, 0x4 + .incbin "baserom.nds", 0x262C, 0x4 + .incbin "baserom.nds", 0x2630, 0x8 + .incbin "baserom.nds", 0x2638, 0x4 + .incbin "baserom.nds", 0x263C, 0x4 + .incbin "baserom.nds", 0x2640, 0x4 + .incbin "baserom.nds", 0x2644, 0x4 + .incbin "baserom.nds", 0x2648, 0x4 + .incbin "baserom.nds", 0x264C, 0x4 + .incbin "baserom.nds", 0x2650, 0x4 + .incbin "baserom.nds", 0x2654, 0x8 + .incbin "baserom.nds", 0x265C, 0x4 + .incbin "baserom.nds", 0x2660, 0x4 + .incbin "baserom.nds", 0x2664, 0x4 + .incbin "baserom.nds", 0x2668, 0x4 + .incbin "baserom.nds", 0x266C, 0x4 + .incbin "baserom.nds", 0x2670, 0x10 + .incbin "baserom.nds", 0x2680, 0x4 + .incbin "baserom.nds", 0x2684, 0x4 + .incbin "baserom.nds", 0x2688, 0x10 + .incbin "baserom.nds", 0x2698, 0xC + .incbin "baserom.nds", 0x26A4, 0x4 + .incbin "baserom.nds", 0x26A8, 0x4 + .incbin "baserom.nds", 0x26AC, 0x4 + .incbin "baserom.nds", 0x26B0, 0x4 + .incbin "baserom.nds", 0x26B4, 0x4 + .incbin "baserom.nds", 0x26B8, 0x8 + .incbin "baserom.nds", 0x26C0, 0x4 + .incbin "baserom.nds", 0x26C4, 0x4 + .incbin "baserom.nds", 0x26C8, 0x4 + .incbin "baserom.nds", 0x26CC, 0x4 + .incbin "baserom.nds", 0x26D0, 0x4 + .incbin "baserom.nds", 0x26D4, 0x8 + .incbin "baserom.nds", 0x26DC, 0x4 + .incbin "baserom.nds", 0x26E0, 0x4 + .incbin "baserom.nds", 0x26E4, 0x4 + .incbin "baserom.nds", 0x26E8, 0x4 + .incbin "baserom.nds", 0x26EC, 0x4 + .incbin "baserom.nds", 0x26F0, 0x4 + .incbin "baserom.nds", 0x26F4, 0x4 + .incbin "baserom.nds", 0x26F8, 0x4 + .incbin "baserom.nds", 0x26FC, 0x4 + .incbin "baserom.nds", 0x2700, 0x8 + .incbin "baserom.nds", 0x2708, 0x8 + .incbin "baserom.nds", 0x2710, 0x4 + .incbin "baserom.nds", 0x2714, 0x4 + .incbin "baserom.nds", 0x2718, 0x4 + .incbin "baserom.nds", 0x271C, 0x4 + .incbin "baserom.nds", 0x2720, 0x4 + .incbin "baserom.nds", 0x2724, 0x4 + .incbin "baserom.nds", 0x2728, 0x4 + .incbin "baserom.nds", 0x272C, 0x4 + .incbin "baserom.nds", 0x2730, 0x4 + .incbin "baserom.nds", 0x2734, 0x4 + .incbin "baserom.nds", 0x2738, 0x4 + .incbin "baserom.nds", 0x273C, 0x4 + .incbin "baserom.nds", 0x2740, 0x4 + .incbin "baserom.nds", 0x2744, 0x4 + .incbin "baserom.nds", 0x2748, 0x4 + .incbin "baserom.nds", 0x274C, 0x4 + .incbin "baserom.nds", 0x2750, 0x4 + .incbin "baserom.nds", 0x2754, 0x4 + .incbin "baserom.nds", 0x2758, 0x4 + .incbin "baserom.nds", 0x275C, 0x4 + .incbin "baserom.nds", 0x2760, 0x4 + .incbin "baserom.nds", 0x2764, 0x4 + .incbin "baserom.nds", 0x2768, 0x4 + .incbin "baserom.nds", 0x276C, 0x4 + .incbin "baserom.nds", 0x2770, 0x4 + .incbin "baserom.nds", 0x2774, 0x4 + .incbin "baserom.nds", 0x2778, 0x4 + .incbin "baserom.nds", 0x277C, 0x4 + .incbin "baserom.nds", 0x2780, 0x4 + .incbin "baserom.nds", 0x2784, 0x4 + .incbin "baserom.nds", 0x2788, 0x4 + .incbin "baserom.nds", 0x278C, 0x4 + .incbin "baserom.nds", 0x2790, 0x4 + .incbin "baserom.nds", 0x2794, 0x4 + .incbin "baserom.nds", 0x2798, 0x54 + .incbin "baserom.nds", 0x27EC, 0x4 + .incbin "baserom.nds", 0x27F0, 0x4 + .incbin "baserom.nds", 0x27F4, 0x4 + .incbin "baserom.nds", 0x27F8, 0x4 + .incbin "baserom.nds", 0x27FC, 0x4 + .incbin "baserom.nds", 0x2800, 0x4 + .incbin "baserom.nds", 0x2804, 0x4 + .incbin "baserom.nds", 0x2808, 0x4 + .incbin "baserom.nds", 0x280C, 0x4 + .incbin "baserom.nds", 0x2810, 0x4 + .incbin "baserom.nds", 0x2814, 0x4 + .incbin "baserom.nds", 0x2818, 0x4 + .incbin "baserom.nds", 0x281C, 0x4 + .incbin "baserom.nds", 0x2820, 0x4 + .incbin "baserom.nds", 0x2824, 0x4 + .incbin "baserom.nds", 0x2828, 0x4 + .incbin "baserom.nds", 0x282C, 0x4 + .incbin "baserom.nds", 0x2830, 0x4 + .incbin "baserom.nds", 0x2834, 0x4 + .incbin "baserom.nds", 0x2838, 0x4 + .incbin "baserom.nds", 0x283C, 0x4 + .incbin "baserom.nds", 0x2840, 0x4 + .incbin "baserom.nds", 0x2844, 0x4 + .incbin "baserom.nds", 0x2848, 0x4 + .incbin "baserom.nds", 0x284C, 0x4 + .incbin "baserom.nds", 0x2850, 0x4 + .incbin "baserom.nds", 0x2854, 0x4 + .incbin "baserom.nds", 0x2858, 0x4 + .incbin "baserom.nds", 0x285C, 0x4 + .incbin "baserom.nds", 0x2860, 0x4 + .incbin "baserom.nds", 0x2864, 0x4 + .incbin "baserom.nds", 0x2868, 0x4 + .incbin "baserom.nds", 0x286C, 0x4 + .incbin "baserom.nds", 0x2870, 0x4 + .incbin "baserom.nds", 0x2874, 0x4 + .incbin "baserom.nds", 0x2878, 0x4 + .incbin "baserom.nds", 0x287C, 0x4 + .incbin "baserom.nds", 0x2880, 0x4 + .incbin "baserom.nds", 0x2884, 0x4 + .incbin "baserom.nds", 0x2888, 0x4 + .incbin "baserom.nds", 0x288C, 0x4 + .incbin "baserom.nds", 0x2890, 0x4 + .incbin "baserom.nds", 0x2894, 0x4 + .incbin "baserom.nds", 0x2898, 0x4 + .incbin "baserom.nds", 0x289C, 0x4 + .incbin "baserom.nds", 0x28A0, 0x4 + .incbin "baserom.nds", 0x28A4, 0x4 + .incbin "baserom.nds", 0x28A8, 0x4 + .incbin "baserom.nds", 0x28AC, 0x4 + .incbin "baserom.nds", 0x28B0, 0x4 + .incbin "baserom.nds", 0x28B4, 0x4 + .incbin "baserom.nds", 0x28B8, 0x4 + .incbin "baserom.nds", 0x28BC, 0x4 + .incbin "baserom.nds", 0x28C0, 0x4 + .incbin "baserom.nds", 0x28C4, 0x8 + .incbin "baserom.nds", 0x28CC, 0x4 + .incbin "baserom.nds", 0x28D0, 0x4 + .incbin "baserom.nds", 0x28D4, 0x4 + .incbin "baserom.nds", 0x28D8, 0x4 + .incbin "baserom.nds", 0x28DC, 0x4 + .incbin "baserom.nds", 0x28E0, 0x4 + .incbin "baserom.nds", 0x28E4, 0x4 + .incbin "baserom.nds", 0x28E8, 0x4 + .incbin "baserom.nds", 0x28EC, 0x4 + .incbin "baserom.nds", 0x28F0, 0x4 + .incbin "baserom.nds", 0x28F4, 0x4 + .incbin "baserom.nds", 0x28F8, 0x4 + .incbin "baserom.nds", 0x28FC, 0x4 + .incbin "baserom.nds", 0x2900, 0x4 + .incbin "baserom.nds", 0x2904, 0x4 + .incbin "baserom.nds", 0x2908, 0x4 + .incbin "baserom.nds", 0x290C, 0x4 + .incbin "baserom.nds", 0x2910, 0x4 + .incbin "baserom.nds", 0x2914, 0x4 + .incbin "baserom.nds", 0x2918, 0x4 + .incbin "baserom.nds", 0x291C, 0x4 + .incbin "baserom.nds", 0x2920, 0x4 + .incbin "baserom.nds", 0x2924, 0x4 + .incbin "baserom.nds", 0x2928, 0x4 + .incbin "baserom.nds", 0x292C, 0x4 + .incbin "baserom.nds", 0x2930, 0x4 + .incbin "baserom.nds", 0x2934, 0x4 + .incbin "baserom.nds", 0x2938, 0x4 + .incbin "baserom.nds", 0x293C, 0x4 + .incbin "baserom.nds", 0x2940, 0x4 + .incbin "baserom.nds", 0x2944, 0x4 + .incbin "baserom.nds", 0x2948, 0x4 + .incbin "baserom.nds", 0x294C, 0x4 + .incbin "baserom.nds", 0x2950, 0x4 + .incbin "baserom.nds", 0x2954, 0x4 + .incbin "baserom.nds", 0x2958, 0x4 + .incbin "baserom.nds", 0x295C, 0x4 + .incbin "baserom.nds", 0x2960, 0x4 + .incbin "baserom.nds", 0x2964, 0x4 + .incbin "baserom.nds", 0x2968, 0x4 + .incbin "baserom.nds", 0x296C, 0x4 + .incbin "baserom.nds", 0x2970, 0x4 + .incbin "baserom.nds", 0x2974, 0x4 + .incbin "baserom.nds", 0x2978, 0x4 + .incbin "baserom.nds", 0x297C, 0x4 + .incbin "baserom.nds", 0x2980, 0x4 + .incbin "baserom.nds", 0x2984, 0x4 + .incbin "baserom.nds", 0x2988, 0x4 + .incbin "baserom.nds", 0x298C, 0x4 + .incbin "baserom.nds", 0x2990, 0x4 + .incbin "baserom.nds", 0x2994, 0x4 + .incbin "baserom.nds", 0x2998, 0x4 + .incbin "baserom.nds", 0x299C, 0x4 + .incbin "baserom.nds", 0x29A0, 0x4 + .incbin "baserom.nds", 0x29A4, 0x4 + .incbin "baserom.nds", 0x29A8, 0x4 + .incbin "baserom.nds", 0x29AC, 0x4 + .incbin "baserom.nds", 0x29B0, 0x4 + .incbin "baserom.nds", 0x29B4, 0x4 + .incbin "baserom.nds", 0x29B8, 0x4 + .incbin "baserom.nds", 0x29BC, 0x4 + .incbin "baserom.nds", 0x29C0, 0x4 + .incbin "baserom.nds", 0x29C4, 0x4 + .incbin "baserom.nds", 0x29C8, 0x4 + .incbin "baserom.nds", 0x29CC, 0x4 + .incbin "baserom.nds", 0x29D0, 0x4 + .incbin "baserom.nds", 0x29D4, 0x4 + .incbin "baserom.nds", 0x29D8, 0x4 + .incbin "baserom.nds", 0x29DC, 0x4 + .incbin "baserom.nds", 0x29E0, 0x4 + .incbin "baserom.nds", 0x29E4, 0x4 + .incbin "baserom.nds", 0x29E8, 0x4 + .incbin "baserom.nds", 0x29EC, 0x4 + .incbin "baserom.nds", 0x29F0, 0x4 + .incbin "baserom.nds", 0x29F4, 0x4 + .incbin "baserom.nds", 0x29F8, 0x4 + .incbin "baserom.nds", 0x29FC, 0x4 + .incbin "baserom.nds", 0x2A00, 0x4 + .incbin "baserom.nds", 0x2A04, 0x4 + .incbin "baserom.nds", 0x2A08, 0x4 + .incbin "baserom.nds", 0x2A0C, 0x4 + .incbin "baserom.nds", 0x2A10, 0x4 + .incbin "baserom.nds", 0x2A14, 0x4 + .incbin "baserom.nds", 0x2A18, 0x4 + .incbin "baserom.nds", 0x2A1C, 0x4 + .incbin "baserom.nds", 0x2A20, 0x4 + .incbin "baserom.nds", 0x2A24, 0x4 + .incbin "baserom.nds", 0x2A28, 0x4 + .incbin "baserom.nds", 0x2A2C, 0x4 + .incbin "baserom.nds", 0x2A30, 0x4 + .incbin "baserom.nds", 0x2A34, 0x4 + .incbin "baserom.nds", 0x2A38, 0x4 + .incbin "baserom.nds", 0x2A3C, 0x4 + .incbin "baserom.nds", 0x2A40, 0x4 + .incbin "baserom.nds", 0x2A44, 0x4 + .incbin "baserom.nds", 0x2A48, 0x4 + .incbin "baserom.nds", 0x2A4C, 0x4 + .incbin "baserom.nds", 0x2A50, 0x4 + .incbin "baserom.nds", 0x2A54, 0x4 + .incbin "baserom.nds", 0x2A58, 0x4 + .incbin "baserom.nds", 0x2A5C, 0x4 + .incbin "baserom.nds", 0x2A60, 0x4 + .incbin "baserom.nds", 0x2A64, 0x4 + .incbin "baserom.nds", 0x2A68, 0x4 + .incbin "baserom.nds", 0x2A6C, 0x4 + .incbin "baserom.nds", 0x2A70, 0x4 + .incbin "baserom.nds", 0x2A74, 0x4 + .incbin "baserom.nds", 0x2A78, 0x4 + .incbin "baserom.nds", 0x2A7C, 0x4 + .incbin "baserom.nds", 0x2A80, 0x4 + .incbin "baserom.nds", 0x2A84, 0x4 + .incbin "baserom.nds", 0x2A88, 0x4 + .incbin "baserom.nds", 0x2A8C, 0x4 + .incbin "baserom.nds", 0x2A90, 0x4 + .incbin "baserom.nds", 0x2A94, 0x4 + .incbin "baserom.nds", 0x2A98, 0x4 + .incbin "baserom.nds", 0x2A9C, 0x4 + .incbin "baserom.nds", 0x2AA0, 0x4 + .incbin "baserom.nds", 0x2AA4, 0x4 + .incbin "baserom.nds", 0x2AA8, 0x4 + .incbin "baserom.nds", 0x2AAC, 0x4 + .incbin "baserom.nds", 0x2AB0, 0x4 + .incbin "baserom.nds", 0x2AB4, 0x4 + .incbin "baserom.nds", 0x2AB8, 0x4 + .incbin "baserom.nds", 0x2ABC, 0x4 + .incbin "baserom.nds", 0x2AC0, 0x4 + .incbin "baserom.nds", 0x2AC4, 0x4 + .incbin "baserom.nds", 0x2AC8, 0x8 + .incbin "baserom.nds", 0x2AD0, 0x4 + .incbin "baserom.nds", 0x2AD4, 0x4 + .incbin "baserom.nds", 0x2AD8, 0x4 + .incbin "baserom.nds", 0x2ADC, 0x4 + .incbin "baserom.nds", 0x2AE0, 0x4 + .incbin "baserom.nds", 0x2AE4, 0x4 + .incbin "baserom.nds", 0x2AE8, 0x8 + .incbin "baserom.nds", 0x2AF0, 0x4 + .incbin "baserom.nds", 0x2AF4, 0x4 + .incbin "baserom.nds", 0x2AF8, 0x4 + .incbin "baserom.nds", 0x2AFC, 0x8 + .incbin "baserom.nds", 0x2B04, 0x8 + .incbin "baserom.nds", 0x2B0C, 0x4 + .incbin "baserom.nds", 0x2B10, 0x4 + .incbin "baserom.nds", 0x2B14, 0x4 + .incbin "baserom.nds", 0x2B18, 0x4 + .incbin "baserom.nds", 0x2B1C, 0x4 + .incbin "baserom.nds", 0x2B20, 0x4 + .incbin "baserom.nds", 0x2B24, 0x4 + .incbin "baserom.nds", 0x2B28, 0x4 + .incbin "baserom.nds", 0x2B2C, 0x4 + .incbin "baserom.nds", 0x2B30, 0x4 + .incbin "baserom.nds", 0x2B34, 0x4 + .incbin "baserom.nds", 0x2B38, 0x4 + .incbin "baserom.nds", 0x2B3C, 0x4 + .incbin "baserom.nds", 0x2B40, 0x4 + .incbin "baserom.nds", 0x2B44, 0x4 + .incbin "baserom.nds", 0x2B48, 0x4 + .incbin "baserom.nds", 0x2B4C, 0x4 + .incbin "baserom.nds", 0x2B50, 0x4 + .incbin "baserom.nds", 0x2B54, 0x8 + .incbin "baserom.nds", 0x2B5C, 0x4 + .incbin "baserom.nds", 0x2B60, 0x4 + .incbin "baserom.nds", 0x2B64, 0x4 + .incbin "baserom.nds", 0x2B68, 0x4 + .incbin "baserom.nds", 0x2B6C, 0x4 + .incbin "baserom.nds", 0x2B70, 0x4 + .incbin "baserom.nds", 0x2B74, 0x4 + .incbin "baserom.nds", 0x2B78, 0x4 + .incbin "baserom.nds", 0x2B7C, 0x4 + .incbin "baserom.nds", 0x2B80, 0x4 + .incbin "baserom.nds", 0x2B84, 0x4 + .incbin "baserom.nds", 0x2B88, 0x4 + .incbin "baserom.nds", 0x2B8C, 0x4 + .incbin "baserom.nds", 0x2B90, 0x4 + .incbin "baserom.nds", 0x2B94, 0x4 + .incbin "baserom.nds", 0x2B98, 0x4 + .incbin "baserom.nds", 0x2B9C, 0x4 + .incbin "baserom.nds", 0x2BA0, 0x4 + .incbin "baserom.nds", 0x2BA4, 0x4 + .incbin "baserom.nds", 0x2BA8, 0x4 + .incbin "baserom.nds", 0x2BAC, 0x4 + .incbin "baserom.nds", 0x2BB0, 0x4 + .incbin "baserom.nds", 0x2BB4, 0x4 + .incbin "baserom.nds", 0x2BB8, 0x4 + .incbin "baserom.nds", 0x2BBC, 0x4 + .incbin "baserom.nds", 0x2BC0, 0x4 + .incbin "baserom.nds", 0x2BC4, 0x4 + .incbin "baserom.nds", 0x2BC8, 0x4 + .incbin "baserom.nds", 0x2BCC, 0x4 + .incbin "baserom.nds", 0x2BD0, 0x4 + .incbin "baserom.nds", 0x2BD4, 0x4 + .incbin "baserom.nds", 0x2BD8, 0x4 + .incbin "baserom.nds", 0x2BDC, 0x4 + .incbin "baserom.nds", 0x2BE0, 0x4 + .incbin "baserom.nds", 0x2BE4, 0x4 + .incbin "baserom.nds", 0x2BE8, 0x4 + .incbin "baserom.nds", 0x2BEC, 0x4 + .incbin "baserom.nds", 0x2BF0, 0x4 + .incbin "baserom.nds", 0x2BF4, 0x4 + .incbin "baserom.nds", 0x2BF8, 0x4 + .incbin "baserom.nds", 0x2BFC, 0x4 + .incbin "baserom.nds", 0x2C00, 0x4 + .incbin "baserom.nds", 0x2C04, 0x4 + .incbin "baserom.nds", 0x2C08, 0x4 + .incbin "baserom.nds", 0x2C0C, 0x4 + .incbin "baserom.nds", 0x2C10, 0x4 + .incbin "baserom.nds", 0x2C14, 0x4 + .incbin "baserom.nds", 0x2C18, 0x4 + .incbin "baserom.nds", 0x2C1C, 0x4 + .incbin "baserom.nds", 0x2C20, 0x4 + .incbin "baserom.nds", 0x2C24, 0x8 + .incbin "baserom.nds", 0x2C2C, 0x8 + .incbin "baserom.nds", 0x2C34, 0x4 + .incbin "baserom.nds", 0x2C38, 0x4 + .incbin "baserom.nds", 0x2C3C, 0x4 + .incbin "baserom.nds", 0x2C40, 0x4 + .incbin "baserom.nds", 0x2C44, 0x4 + .incbin "baserom.nds", 0x2C48, 0x4 + .incbin "baserom.nds", 0x2C4C, 0x4 + .incbin "baserom.nds", 0x2C50, 0x4 + .incbin "baserom.nds", 0x2C54, 0x4 + .incbin "baserom.nds", 0x2C58, 0x4 + .incbin "baserom.nds", 0x2C5C, 0x4 + .incbin "baserom.nds", 0x2C60, 0x4 + .incbin "baserom.nds", 0x2C64, 0x4 + .incbin "baserom.nds", 0x2C68, 0x4 + .incbin "baserom.nds", 0x2C6C, 0x4 + .incbin "baserom.nds", 0x2C70, 0x4 + .incbin "baserom.nds", 0x2C74, 0x4 + .incbin "baserom.nds", 0x2C78, 0x4 + .incbin "baserom.nds", 0x2C7C, 0x4 + .incbin "baserom.nds", 0x2C80, 0x4 + .incbin "baserom.nds", 0x2C84, 0x4 + .incbin "baserom.nds", 0x2C88, 0x4 + .incbin "baserom.nds", 0x2C8C, 0x4 + .incbin "baserom.nds", 0x2C90, 0x4 + .incbin "baserom.nds", 0x2C94, 0x4 + .incbin "baserom.nds", 0x2C98, 0x4 + .incbin "baserom.nds", 0x2C9C, 0x4 + .incbin "baserom.nds", 0x2CA0, 0x4 + .incbin "baserom.nds", 0x2CA4, 0x4 + .incbin "baserom.nds", 0x2CA8, 0x4 + .incbin "baserom.nds", 0x2CAC, 0x4 + .incbin "baserom.nds", 0x2CB0, 0x8 + .incbin "baserom.nds", 0x2CB8, 0x4 + .incbin "baserom.nds", 0x2CBC, 0x4 + .incbin "baserom.nds", 0x2CC0, 0x4 + .incbin "baserom.nds", 0x2CC4, 0x4 + .incbin "baserom.nds", 0x2CC8, 0x4 + .incbin "baserom.nds", 0x2CCC, 0x4 + .incbin "baserom.nds", 0x2CD0, 0x4 + .incbin "baserom.nds", 0x2CD4, 0x4 + .incbin "baserom.nds", 0x2CD8, 0x4 + .incbin "baserom.nds", 0x2CDC, 0x4 + .incbin "baserom.nds", 0x2CE0, 0x4 + .incbin "baserom.nds", 0x2CE4, 0x4 + .incbin "baserom.nds", 0x2CE8, 0x4 + .incbin "baserom.nds", 0x2CEC, 0x4 + .incbin "baserom.nds", 0x2CF0, 0x4 + .incbin "baserom.nds", 0x2CF4, 0x4 + .incbin "baserom.nds", 0x2CF8, 0x8 + .incbin "baserom.nds", 0x2D00, 0x4 + .incbin "baserom.nds", 0x2D04, 0x4 + .incbin "baserom.nds", 0x2D08, 0x4 + .incbin "baserom.nds", 0x2D0C, 0x4 + .incbin "baserom.nds", 0x2D10, 0x4 + .incbin "baserom.nds", 0x2D14, 0x4 + .incbin "baserom.nds", 0x2D18, 0x4 + .incbin "baserom.nds", 0x2D1C, 0x4 + .incbin "baserom.nds", 0x2D20, 0x4 + .incbin "baserom.nds", 0x2D24, 0x4 + .incbin "baserom.nds", 0x2D28, 0x4 + .incbin "baserom.nds", 0x2D2C, 0x4 + .incbin "baserom.nds", 0x2D30, 0x4 + .incbin "baserom.nds", 0x2D34, 0x4 + .incbin "baserom.nds", 0x2D38, 0x4 + .incbin "baserom.nds", 0x2D3C, 0x4 + .incbin "baserom.nds", 0x2D40, 0x4 + .incbin "baserom.nds", 0x2D44, 0x4 + .incbin "baserom.nds", 0x2D48, 0x4 + .incbin "baserom.nds", 0x2D4C, 0x4 + .incbin "baserom.nds", 0x2D50, 0x4 + .incbin "baserom.nds", 0x2D54, 0x4 + .incbin "baserom.nds", 0x2D58, 0x4 + .incbin "baserom.nds", 0x2D5C, 0x4 + .incbin "baserom.nds", 0x2D60, 0x4 + .incbin "baserom.nds", 0x2D64, 0x4 + .incbin "baserom.nds", 0x2D68, 0x4 + .incbin "baserom.nds", 0x2D6C, 0x4 + .incbin "baserom.nds", 0x2D70, 0x4 + .incbin "baserom.nds", 0x2D74, 0x4 + .incbin "baserom.nds", 0x2D78, 0x4 + .incbin "baserom.nds", 0x2D7C, 0x4 + .incbin "baserom.nds", 0x2D80, 0x4 + .incbin "baserom.nds", 0x2D84, 0x8 + .incbin "baserom.nds", 0x2D8C, 0x4 + .incbin "baserom.nds", 0x2D90, 0x4 + .incbin "baserom.nds", 0x2D94, 0x4 + .incbin "baserom.nds", 0x2D98, 0x4 + .incbin "baserom.nds", 0x2D9C, 0x4 + .incbin "baserom.nds", 0x2DA0, 0x4 + .incbin "baserom.nds", 0x2DA4, 0x4 + .incbin "baserom.nds", 0x2DA8, 0x4 + .incbin "baserom.nds", 0x2DAC, 0x4 + .incbin "baserom.nds", 0x2DB0, 0x4 + .incbin "baserom.nds", 0x2DB4, 0x4 + .incbin "baserom.nds", 0x2DB8, 0x4 + .incbin "baserom.nds", 0x2DBC, 0x4 + .incbin "baserom.nds", 0x2DC0, 0x4 + .incbin "baserom.nds", 0x2DC4, 0x4 + .incbin "baserom.nds", 0x2DC8, 0x4 + .incbin "baserom.nds", 0x2DCC, 0x4 + .incbin "baserom.nds", 0x2DD0, 0x4 + .incbin "baserom.nds", 0x2DD4, 0x4 + .incbin "baserom.nds", 0x2DD8, 0x4 + .incbin "baserom.nds", 0x2DDC, 0x4 + .incbin "baserom.nds", 0x2DE0, 0x4 + .incbin "baserom.nds", 0x2DE4, 0x4 + .incbin "baserom.nds", 0x2DE8, 0x4 + .incbin "baserom.nds", 0x2DEC, 0x4 + .incbin "baserom.nds", 0x2DF0, 0x4 + .incbin "baserom.nds", 0x2DF4, 0x4 + .incbin "baserom.nds", 0x2DF8, 0x4 + .incbin "baserom.nds", 0x2DFC, 0x4 + .incbin "baserom.nds", 0x2E00, 0x4 + .incbin "baserom.nds", 0x2E04, 0x4 + .incbin "baserom.nds", 0x2E08, 0x4 + .incbin "baserom.nds", 0x2E0C, 0x4 + .incbin "baserom.nds", 0x2E10, 0x4 + .incbin "baserom.nds", 0x2E14, 0x4 + .incbin "baserom.nds", 0x2E18, 0x4 + .incbin "baserom.nds", 0x2E1C, 0x4 + .incbin "baserom.nds", 0x2E20, 0x4 + .incbin "baserom.nds", 0x2E24, 0x4 + .incbin "baserom.nds", 0x2E28, 0x4 + .incbin "baserom.nds", 0x2E2C, 0x4 + .incbin "baserom.nds", 0x2E30, 0x4 + .incbin "baserom.nds", 0x2E34, 0x4 + .incbin "baserom.nds", 0x2E38, 0x4 + .incbin "baserom.nds", 0x2E3C, 0x4 + .incbin "baserom.nds", 0x2E40, 0x4 + .incbin "baserom.nds", 0x2E44, 0x4 + .incbin "baserom.nds", 0x2E48, 0x8 + .incbin "baserom.nds", 0x2E50, 0x4 + .incbin "baserom.nds", 0x2E54, 0x8 + .incbin "baserom.nds", 0x2E5C, 0x8 + .incbin "baserom.nds", 0x2E64, 0x4 + .incbin "baserom.nds", 0x2E68, 0x4 + .incbin "baserom.nds", 0x2E6C, 0x4 + .incbin "baserom.nds", 0x2E70, 0x4 + .incbin "baserom.nds", 0x2E74, 0x4 + .incbin "baserom.nds", 0x2E78, 0x4 + .incbin "baserom.nds", 0x2E7C, 0x4 + .incbin "baserom.nds", 0x2E80, 0x4 + .incbin "baserom.nds", 0x2E84, 0x4 + .incbin "baserom.nds", 0x2E88, 0x4 + .incbin "baserom.nds", 0x2E8C, 0x4 + .incbin "baserom.nds", 0x2E90, 0x8 + .incbin "baserom.nds", 0x2E98, 0x4 + .incbin "baserom.nds", 0x2E9C, 0x4 + .incbin "baserom.nds", 0x2EA0, 0x8 + .incbin "baserom.nds", 0x2EA8, 0x4 + .incbin "baserom.nds", 0x2EAC, 0x4 + .incbin "baserom.nds", 0x2EB0, 0x4 + .incbin "baserom.nds", 0x2EB4, 0x4 + .incbin "baserom.nds", 0x2EB8, 0x8 + .incbin "baserom.nds", 0x2EC0, 0x4 + .incbin "baserom.nds", 0x2EC4, 0x4 + .incbin "baserom.nds", 0x2EC8, 0x4 + .incbin "baserom.nds", 0x2ECC, 0x4 + .incbin "baserom.nds", 0x2ED0, 0x4 + .incbin "baserom.nds", 0x2ED4, 0x4 + .incbin "baserom.nds", 0x2ED8, 0x4 + .incbin "baserom.nds", 0x2EDC, 0x4 + .incbin "baserom.nds", 0x2EE0, 0x4 + .incbin "baserom.nds", 0x2EE4, 0x4 + .incbin "baserom.nds", 0x2EE8, 0x4 + .incbin "baserom.nds", 0x2EEC, 0x4 + .incbin "baserom.nds", 0x2EF0, 0x4 + .incbin "baserom.nds", 0x2EF4, 0x4 + .incbin "baserom.nds", 0x2EF8, 0x4 + .incbin "baserom.nds", 0x2EFC, 0x4 + .incbin "baserom.nds", 0x2F00, 0x4 + .incbin "baserom.nds", 0x2F04, 0x4 + .incbin "baserom.nds", 0x2F08, 0x4 + .incbin "baserom.nds", 0x2F0C, 0x4 + .incbin "baserom.nds", 0x2F10, 0x4 + .incbin "baserom.nds", 0x2F14, 0x4 + .incbin "baserom.nds", 0x2F18, 0x4 + .incbin "baserom.nds", 0x2F1C, 0x4 + .incbin "baserom.nds", 0x2F20, 0x4 + .incbin "baserom.nds", 0x2F24, 0x4 + .incbin "baserom.nds", 0x2F28, 0x4 + .incbin "baserom.nds", 0x2F2C, 0x4 + .incbin "baserom.nds", 0x2F30, 0x4 + .incbin "baserom.nds", 0x2F34, 0x4 + .incbin "baserom.nds", 0x2F38, 0x8 + .incbin "baserom.nds", 0x2F40, 0x4 + .incbin "baserom.nds", 0x2F44, 0x8 + .incbin "baserom.nds", 0x2F4C, 0x4 + .incbin "baserom.nds", 0x2F50, 0x8 + .incbin "baserom.nds", 0x2F58, 0x4 + .incbin "baserom.nds", 0x2F5C, 0x4 + .incbin "baserom.nds", 0x2F60, 0x4 + .incbin "baserom.nds", 0x2F64, 0x4 + .incbin "baserom.nds", 0x2F68, 0x4 + .incbin "baserom.nds", 0x2F6C, 0x4 + .incbin "baserom.nds", 0x2F70, 0x4 + .incbin "baserom.nds", 0x2F74, 0x4 + .incbin "baserom.nds", 0x2F78, 0x4 + .incbin "baserom.nds", 0x2F7C, 0x4 + .incbin "baserom.nds", 0x2F80, 0x4 + .incbin "baserom.nds", 0x2F84, 0x4 + .incbin "baserom.nds", 0x2F88, 0x4 + .incbin "baserom.nds", 0x2F8C, 0x4 + .incbin "baserom.nds", 0x2F90, 0x4 + .incbin "baserom.nds", 0x2F94, 0x4 + .incbin "baserom.nds", 0x2F98, 0x4 + .incbin "baserom.nds", 0x2F9C, 0x4 + .incbin "baserom.nds", 0x2FA0, 0x4 + .incbin "baserom.nds", 0x2FA4, 0x4 + .incbin "baserom.nds", 0x2FA8, 0x4 + .incbin "baserom.nds", 0x2FAC, 0x4 + .incbin "baserom.nds", 0x2FB0, 0x4 + .incbin "baserom.nds", 0x2FB4, 0x4 + .incbin "baserom.nds", 0x2FB8, 0x4 + .incbin "baserom.nds", 0x2FBC, 0x4 + .incbin "baserom.nds", 0x2FC0, 0x4 + .incbin "baserom.nds", 0x2FC4, 0x4 + .incbin "baserom.nds", 0x2FC8, 0x4 + .incbin "baserom.nds", 0x2FCC, 0x4 + .incbin "baserom.nds", 0x2FD0, 0x4 + .incbin "baserom.nds", 0x2FD4, 0x4 + .incbin "baserom.nds", 0x2FD8, 0x4 + .incbin "baserom.nds", 0x2FDC, 0x4 + .incbin "baserom.nds", 0x2FE0, 0x4 + .incbin "baserom.nds", 0x2FE4, 0x4 + .incbin "baserom.nds", 0x2FE8, 0x4 + .incbin "baserom.nds", 0x2FEC, 0x4 + .incbin "baserom.nds", 0x2FF0, 0x4 + .incbin "baserom.nds", 0x2FF4, 0x4 + .incbin "baserom.nds", 0x2FF8, 0x4 + .incbin "baserom.nds", 0x2FFC, 0x4 + .incbin "baserom.nds", 0x3000, 0x4 + .incbin "baserom.nds", 0x3004, 0x4 + .incbin "baserom.nds", 0x3008, 0x4 + .incbin "baserom.nds", 0x300C, 0x4 + .incbin "baserom.nds", 0x3010, 0x4 + .incbin "baserom.nds", 0x3014, 0x4 + .incbin "baserom.nds", 0x3018, 0x4 + .incbin "baserom.nds", 0x301C, 0x4 + .incbin "baserom.nds", 0x3020, 0x4 + .incbin "baserom.nds", 0x3024, 0x4 + .incbin "baserom.nds", 0x3028, 0x4 + .incbin "baserom.nds", 0x302C, 0x4 + .incbin "baserom.nds", 0x3030, 0x4 + .incbin "baserom.nds", 0x3034, 0x4 + .incbin "baserom.nds", 0x3038, 0x4 + .incbin "baserom.nds", 0x303C, 0x4 + .incbin "baserom.nds", 0x3040, 0x4 + .incbin "baserom.nds", 0x3044, 0x4 + .incbin "baserom.nds", 0x3048, 0x4 + .incbin "baserom.nds", 0x304C, 0x4 + .incbin "baserom.nds", 0x3050, 0x4 + .incbin "baserom.nds", 0x3054, 0x4 + .incbin "baserom.nds", 0x3058, 0x8 + .incbin "baserom.nds", 0x3060, 0x4 + .incbin "baserom.nds", 0x3064, 0x4 + .incbin "baserom.nds", 0x3068, 0x4 + .incbin "baserom.nds", 0x306C, 0x4 + .incbin "baserom.nds", 0x3070, 0x4 + .incbin "baserom.nds", 0x3074, 0x4 + .incbin "baserom.nds", 0x3078, 0x4 + .incbin "baserom.nds", 0x307C, 0x4 + .incbin "baserom.nds", 0x3080, 0x4 + .incbin "baserom.nds", 0x3084, 0xC + .incbin "baserom.nds", 0x3090, 0x4 + .incbin "baserom.nds", 0x3094, 0x4 + .incbin "baserom.nds", 0x3098, 0x4 + .incbin "baserom.nds", 0x309C, 0x8 + .incbin "baserom.nds", 0x30A4, 0x4 + .incbin "baserom.nds", 0x30A8, 0x18 + .incbin "baserom.nds", 0x30C0, 0x10 + .incbin "baserom.nds", 0x30D0, 0x4 + .incbin "baserom.nds", 0x30D4, 0x4 + .incbin "baserom.nds", 0x30D8, 0x4 + .incbin "baserom.nds", 0x30DC, 0x8 + .incbin "baserom.nds", 0x30E4, 0x4 + .incbin "baserom.nds", 0x30E8, 0x4 + .incbin "baserom.nds", 0x30EC, 0x4 + .incbin "baserom.nds", 0x30F0, 0x4 + .incbin "baserom.nds", 0x30F4, 0x4 + .incbin "baserom.nds", 0x30F8, 0x8 + .incbin "baserom.nds", 0x3100, 0x4 + .incbin "baserom.nds", 0x3104, 0xC + .incbin "baserom.nds", 0x3110, 0xC + .incbin "baserom.nds", 0x311C, 0x4 + .incbin "baserom.nds", 0x3120, 0x4 + .incbin "baserom.nds", 0x3124, 0x4 + .incbin "baserom.nds", 0x3128, 0x4 + .incbin "baserom.nds", 0x312C, 0x4 + .incbin "baserom.nds", 0x3130, 0x4 + .incbin "baserom.nds", 0x3134, 0x4 + .incbin "baserom.nds", 0x3138, 0x4 + .incbin "baserom.nds", 0x313C, 0x8 + .incbin "baserom.nds", 0x3144, 0x4 + .incbin "baserom.nds", 0x3148, 0x8 + .incbin "baserom.nds", 0x3150, 0xC + .incbin "baserom.nds", 0x315C, 0x4 + .incbin "baserom.nds", 0x3160, 0x4 + .incbin "baserom.nds", 0x3164, 0x4 + .incbin "baserom.nds", 0x3168, 0x4 + .incbin "baserom.nds", 0x316C, 0x4 + .incbin "baserom.nds", 0x3170, 0x4 + .incbin "baserom.nds", 0x3174, 0x1C + .incbin "baserom.nds", 0x3190, 0x8 + .incbin "baserom.nds", 0x3198, 0x4 + .incbin "baserom.nds", 0x319C, 0x4 + .incbin "baserom.nds", 0x31A0, 0x4 + .incbin "baserom.nds", 0x31A4, 0x4 + .incbin "baserom.nds", 0x31A8, 0x4 + .incbin "baserom.nds", 0x31AC, 0x4 + .incbin "baserom.nds", 0x31B0, 0x4 + .incbin "baserom.nds", 0x31B4, 0x4 + .incbin "baserom.nds", 0x31B8, 0x4 + .incbin "baserom.nds", 0x31BC, 0x4 + .incbin "baserom.nds", 0x31C0, 0x4 + .incbin "baserom.nds", 0x31C4, 0x4 + .incbin "baserom.nds", 0x31C8, 0x4 + .incbin "baserom.nds", 0x31CC, 0x4 + .incbin "baserom.nds", 0x31D0, 0x4 + .incbin "baserom.nds", 0x31D4, 0x4 + .incbin "baserom.nds", 0x31D8, 0xC + .incbin "baserom.nds", 0x31E4, 0x8 + .incbin "baserom.nds", 0x31EC, 0x4 + .incbin "baserom.nds", 0x31F0, 0x10 + .incbin "baserom.nds", 0x3200, 0x4 + .incbin "baserom.nds", 0x3204, 0x4 + .incbin "baserom.nds", 0x3208, 0x4 + .incbin "baserom.nds", 0x320C, 0x4 + .incbin "baserom.nds", 0x3210, 0x4 + .incbin "baserom.nds", 0x3214, 0x4 + .incbin "baserom.nds", 0x3218, 0x8 + .incbin "baserom.nds", 0x3220, 0x4 + .incbin "baserom.nds", 0x3224, 0x4 + .incbin "baserom.nds", 0x3228, 0x4 + .incbin "baserom.nds", 0x322C, 0x4 + .incbin "baserom.nds", 0x3230, 0x4 + .incbin "baserom.nds", 0x3234, 0x4 + .incbin "baserom.nds", 0x3238, 0x4 + .incbin "baserom.nds", 0x323C, 0x8 + .incbin "baserom.nds", 0x3244, 0x4 + .incbin "baserom.nds", 0x3248, 0x4 + .incbin "baserom.nds", 0x324C, 0x8 + .incbin "baserom.nds", 0x3254, 0x4 + .incbin "baserom.nds", 0x3258, 0x8 + .incbin "baserom.nds", 0x3260, 0x4 + .incbin "baserom.nds", 0x3264, 0x4 + .incbin "baserom.nds", 0x3268, 0x4 + .incbin "baserom.nds", 0x326C, 0x4 + .incbin "baserom.nds", 0x3270, 0x4 + .incbin "baserom.nds", 0x3274, 0x4 + .incbin "baserom.nds", 0x3278, 0x4 + .incbin "baserom.nds", 0x327C, 0x4 + .incbin "baserom.nds", 0x3280, 0x4 + .incbin "baserom.nds", 0x3284, 0x4 + .incbin "baserom.nds", 0x3288, 0x4 + .incbin "baserom.nds", 0x328C, 0x4 + .incbin "baserom.nds", 0x3290, 0x4 + .incbin "baserom.nds", 0x3294, 0x4 + .incbin "baserom.nds", 0x3298, 0x4 + .incbin "baserom.nds", 0x329C, 0x4 + .incbin "baserom.nds", 0x32A0, 0x4 + .incbin "baserom.nds", 0x32A4, 0x8 + .incbin "baserom.nds", 0x32AC, 0x4 + .incbin "baserom.nds", 0x32B0, 0x4 + .incbin "baserom.nds", 0x32B4, 0x4 + .incbin "baserom.nds", 0x32B8, 0x8 + .incbin "baserom.nds", 0x32C0, 0x4 + .incbin "baserom.nds", 0x32C4, 0x4 + .incbin "baserom.nds", 0x32C8, 0x4 + .incbin "baserom.nds", 0x32CC, 0x4 + .incbin "baserom.nds", 0x32D0, 0x4 + .incbin "baserom.nds", 0x32D4, 0x4 + .incbin "baserom.nds", 0x32D8, 0x4 + .incbin "baserom.nds", 0x32DC, 0x4 + .incbin "baserom.nds", 0x32E0, 0x4 + .incbin "baserom.nds", 0x32E4, 0x4 + .incbin "baserom.nds", 0x32E8, 0x4 + .incbin "baserom.nds", 0x32EC, 0x4 + .incbin "baserom.nds", 0x32F0, 0x4 + .incbin "baserom.nds", 0x32F4, 0x4 + .incbin "baserom.nds", 0x32F8, 0x4 + .incbin "baserom.nds", 0x32FC, 0x4 + .incbin "baserom.nds", 0x3300, 0x4 + .incbin "baserom.nds", 0x3304, 0x4 + .incbin "baserom.nds", 0x3308, 0x4 + .incbin "baserom.nds", 0x330C, 0x4 + .incbin "baserom.nds", 0x3310, 0x4 + .incbin "baserom.nds", 0x3314, 0x4 + .incbin "baserom.nds", 0x3318, 0x4 + .incbin "baserom.nds", 0x331C, 0x4 + .incbin "baserom.nds", 0x3320, 0x4 + .incbin "baserom.nds", 0x3324, 0x4 + .incbin "baserom.nds", 0x3328, 0x4 + .incbin "baserom.nds", 0x332C, 0x4 + .incbin "baserom.nds", 0x3330, 0x4 + .incbin "baserom.nds", 0x3334, 0x4 + .incbin "baserom.nds", 0x3338, 0x4 + .incbin "baserom.nds", 0x333C, 0x4 + .incbin "baserom.nds", 0x3340, 0x4 + .incbin "baserom.nds", 0x3344, 0x4 + .incbin "baserom.nds", 0x3348, 0x8 + .incbin "baserom.nds", 0x3350, 0xC + .incbin "baserom.nds", 0x335C, 0x8 + .incbin "baserom.nds", 0x3364, 0x4 + .incbin "baserom.nds", 0x3368, 0x4 + .incbin "baserom.nds", 0x336C, 0x4 + .incbin "baserom.nds", 0x3370, 0x4 + .incbin "baserom.nds", 0x3374, 0x4 + .incbin "baserom.nds", 0x3378, 0x4 + .incbin "baserom.nds", 0x337C, 0x4 + .incbin "baserom.nds", 0x3380, 0x4 + .incbin "baserom.nds", 0x3384, 0xC + .incbin "baserom.nds", 0x3390, 0x4 + .incbin "baserom.nds", 0x3394, 0x4 + .incbin "baserom.nds", 0x3398, 0x4 + .incbin "baserom.nds", 0x339C, 0x4 + .incbin "baserom.nds", 0x33A0, 0x4 + .incbin "baserom.nds", 0x33A4, 0x4 + .incbin "baserom.nds", 0x33A8, 0x8 + .incbin "baserom.nds", 0x33B0, 0x4 + .incbin "baserom.nds", 0x33B4, 0x4 + .incbin "baserom.nds", 0x33B8, 0x8 + .incbin "baserom.nds", 0x33C0, 0x4 + .incbin "baserom.nds", 0x33C4, 0x8 + .incbin "baserom.nds", 0x33CC, 0x4 + .incbin "baserom.nds", 0x33D0, 0x4 + .incbin "baserom.nds", 0x33D4, 0x4 + .incbin "baserom.nds", 0x33D8, 0x4 + .incbin "baserom.nds", 0x33DC, 0x4 + .incbin "baserom.nds", 0x33E0, 0x8 + .incbin "baserom.nds", 0x33E8, 0x10 + .incbin "baserom.nds", 0x33F8, 0x4 + .incbin "baserom.nds", 0x33FC, 0x4 + .incbin "baserom.nds", 0x3400, 0x4 + .incbin "baserom.nds", 0x3404, 0x4 + .incbin "baserom.nds", 0x3408, 0x4 + .incbin "baserom.nds", 0x340C, 0xC + .incbin "baserom.nds", 0x3418, 0x4 + .incbin "baserom.nds", 0x341C, 0x4 + .incbin "baserom.nds", 0x3420, 0x4 + .incbin "baserom.nds", 0x3424, 0x4 + .incbin "baserom.nds", 0x3428, 0x4 + .incbin "baserom.nds", 0x342C, 0x8 + .incbin "baserom.nds", 0x3434, 0x8 + .incbin "baserom.nds", 0x343C, 0x4 + .incbin "baserom.nds", 0x3440, 0x4 + .incbin "baserom.nds", 0x3444, 0x8 + .incbin "baserom.nds", 0x344C, 0x8 + .incbin "baserom.nds", 0x3454, 0x4 + .incbin "baserom.nds", 0x3458, 0x4 + .incbin "baserom.nds", 0x345C, 0x4 + .incbin "baserom.nds", 0x3460, 0x4 + .incbin "baserom.nds", 0x3464, 0x4 + .incbin "baserom.nds", 0x3468, 0x4 + .incbin "baserom.nds", 0x346C, 0x4 + .incbin "baserom.nds", 0x3470, 0x4 + .incbin "baserom.nds", 0x3474, 0x4 + .incbin "baserom.nds", 0x3478, 0x4 + .incbin "baserom.nds", 0x347C, 0x4 + .incbin "baserom.nds", 0x3480, 0x4 + .incbin "baserom.nds", 0x3484, 0x4 + .incbin "baserom.nds", 0x3488, 0x4 + .incbin "baserom.nds", 0x348C, 0x4 + .incbin "baserom.nds", 0x3490, 0x4 + .incbin "baserom.nds", 0x3494, 0x4 + .incbin "baserom.nds", 0x3498, 0x4 + .incbin "baserom.nds", 0x349C, 0x4 + .incbin "baserom.nds", 0x34A0, 0x4 + .incbin "baserom.nds", 0x34A4, 0x4 + .incbin "baserom.nds", 0x34A8, 0x4 + .incbin "baserom.nds", 0x34AC, 0x4 + .incbin "baserom.nds", 0x34B0, 0x4 + .incbin "baserom.nds", 0x34B4, 0x4 + .incbin "baserom.nds", 0x34B8, 0x4 + .incbin "baserom.nds", 0x34BC, 0x4 + .incbin "baserom.nds", 0x34C0, 0x4 + .incbin "baserom.nds", 0x34C4, 0x4 + .incbin "baserom.nds", 0x34C8, 0x4 + .incbin "baserom.nds", 0x34CC, 0x4 + .incbin "baserom.nds", 0x34D0, 0x4 + .incbin "baserom.nds", 0x34D4, 0x4 + .incbin "baserom.nds", 0x34D8, 0x4 + .incbin "baserom.nds", 0x34DC, 0x4 + .incbin "baserom.nds", 0x34E0, 0x4 + .incbin "baserom.nds", 0x34E4, 0x4 + .incbin "baserom.nds", 0x34E8, 0x4 + .incbin "baserom.nds", 0x34EC, 0x4 + .incbin "baserom.nds", 0x34F0, 0x4 + .incbin "baserom.nds", 0x34F4, 0x4 + .incbin "baserom.nds", 0x34F8, 0x4 + .incbin "baserom.nds", 0x34FC, 0x4 + .incbin "baserom.nds", 0x3500, 0x4 + .incbin "baserom.nds", 0x3504, 0x4 + .incbin "baserom.nds", 0x3508, 0x8 + .incbin "baserom.nds", 0x3510, 0x8 + .incbin "baserom.nds", 0x3518, 0x4 + .incbin "baserom.nds", 0x351C, 0x4 + .incbin "baserom.nds", 0x3520, 0x4 + .incbin "baserom.nds", 0x3524, 0x4 + .incbin "baserom.nds", 0x3528, 0x4 + .incbin "baserom.nds", 0x352C, 0x4 + .incbin "baserom.nds", 0x3530, 0x4 + .incbin "baserom.nds", 0x3534, 0x4 + .incbin "baserom.nds", 0x3538, 0x4 + .incbin "baserom.nds", 0x353C, 0x4 + .incbin "baserom.nds", 0x3540, 0x4 + .incbin "baserom.nds", 0x3544, 0x4 + .incbin "baserom.nds", 0x3548, 0x4 + .incbin "baserom.nds", 0x354C, 0x4 + .incbin "baserom.nds", 0x3550, 0x4 + .incbin "baserom.nds", 0x3554, 0x4 + .incbin "baserom.nds", 0x3558, 0x4 + .incbin "baserom.nds", 0x355C, 0x4 + .incbin "baserom.nds", 0x3560, 0x8 + .incbin "baserom.nds", 0x3568, 0x4 + .incbin "baserom.nds", 0x356C, 0x4 + .incbin "baserom.nds", 0x3570, 0x4 + .incbin "baserom.nds", 0x3574, 0x4 + .incbin "baserom.nds", 0x3578, 0x8 + .incbin "baserom.nds", 0x3580, 0x4 + .incbin "baserom.nds", 0x3584, 0x4 + .incbin "baserom.nds", 0x3588, 0x4 + .incbin "baserom.nds", 0x358C, 0x8 + .incbin "baserom.nds", 0x3594, 0x4 + .incbin "baserom.nds", 0x3598, 0x4 + .incbin "baserom.nds", 0x359C, 0x4 + .incbin "baserom.nds", 0x35A0, 0xC + .incbin "baserom.nds", 0x35AC, 0x4 + .incbin "baserom.nds", 0x35B0, 0x4 + .incbin "baserom.nds", 0x35B4, 0x4 + .incbin "baserom.nds", 0x35B8, 0x4 + .incbin "baserom.nds", 0x35BC, 0x4 + .incbin "baserom.nds", 0x35C0, 0x4 + .incbin "baserom.nds", 0x35C4, 0x4 + .incbin "baserom.nds", 0x35C8, 0x4 + .incbin "baserom.nds", 0x35CC, 0x8 + .incbin "baserom.nds", 0x35D4, 0xC + .incbin "baserom.nds", 0x35E0, 0x4 + .incbin "baserom.nds", 0x35E4, 0x4 + .incbin "baserom.nds", 0x35E8, 0x8 + .incbin "baserom.nds", 0x35F0, 0x8 + .incbin "baserom.nds", 0x35F8, 0x4 + .incbin "baserom.nds", 0x35FC, 0x4 + .incbin "baserom.nds", 0x3600, 0xC + .incbin "baserom.nds", 0x360C, 0x8 + .incbin "baserom.nds", 0x3614, 0x4 + .incbin "baserom.nds", 0x3618, 0x4 + .incbin "baserom.nds", 0x361C, 0x4 + .incbin "baserom.nds", 0x3620, 0x4 + .incbin "baserom.nds", 0x3624, 0x4 + .incbin "baserom.nds", 0x3628, 0x4 + .incbin "baserom.nds", 0x362C, 0x4 + .incbin "baserom.nds", 0x3630, 0x4 + .incbin "baserom.nds", 0x3634, 0x4 + .incbin "baserom.nds", 0x3638, 0x4 + .incbin "baserom.nds", 0x363C, 0x4 + .incbin "baserom.nds", 0x3640, 0x4 + .incbin "baserom.nds", 0x3644, 0x4 + .incbin "baserom.nds", 0x3648, 0x4 + .incbin "baserom.nds", 0x364C, 0x4 + .incbin "baserom.nds", 0x3650, 0x4 + .incbin "baserom.nds", 0x3654, 0x4 + .incbin "baserom.nds", 0x3658, 0x4 + .incbin "baserom.nds", 0x365C, 0x4 + .incbin "baserom.nds", 0x3660, 0x4 + .incbin "baserom.nds", 0x3664, 0x4 + .incbin "baserom.nds", 0x3668, 0x4 + .incbin "baserom.nds", 0x366C, 0x4 + .incbin "baserom.nds", 0x3670, 0x4 + .incbin "baserom.nds", 0x3674, 0x4 + .incbin "baserom.nds", 0x3678, 0x4 + .incbin "baserom.nds", 0x367C, 0x4 + .incbin "baserom.nds", 0x3680, 0x4 + .incbin "baserom.nds", 0x3684, 0x4 + .incbin "baserom.nds", 0x3688, 0x4 + .incbin "baserom.nds", 0x368C, 0x4 + .incbin "baserom.nds", 0x3690, 0x4 + .incbin "baserom.nds", 0x3694, 0x8 + .incbin "baserom.nds", 0x369C, 0x4 + .incbin "baserom.nds", 0x36A0, 0x8 + .incbin "baserom.nds", 0x36A8, 0x4 + .incbin "baserom.nds", 0x36AC, 0x4 + .incbin "baserom.nds", 0x36B0, 0x4 + .incbin "baserom.nds", 0x36B4, 0x4 + .incbin "baserom.nds", 0x36B8, 0x4 + .incbin "baserom.nds", 0x36BC, 0x4 + .incbin "baserom.nds", 0x36C0, 0x4 + .incbin "baserom.nds", 0x36C4, 0x4 + .incbin "baserom.nds", 0x36C8, 0x4 + .incbin "baserom.nds", 0x36CC, 0x4 + .incbin "baserom.nds", 0x36D0, 0x4 + .incbin "baserom.nds", 0x36D4, 0x4 + .incbin "baserom.nds", 0x36D8, 0x4 + .incbin "baserom.nds", 0x36DC, 0x4 + .incbin "baserom.nds", 0x36E0, 0x4 + .incbin "baserom.nds", 0x36E4, 0x4 + .incbin "baserom.nds", 0x36E8, 0x4 + .incbin "baserom.nds", 0x36EC, 0x4 + .incbin "baserom.nds", 0x36F0, 0x4 + .incbin "baserom.nds", 0x36F4, 0x4 + .incbin "baserom.nds", 0x36F8, 0x4 + .incbin "baserom.nds", 0x36FC, 0x4 + .incbin "baserom.nds", 0x3700, 0x4 + .incbin "baserom.nds", 0x3704, 0x4 + .incbin "baserom.nds", 0x3708, 0x4 + .incbin "baserom.nds", 0x370C, 0x4 + .incbin "baserom.nds", 0x3710, 0x4 + .incbin "baserom.nds", 0x3714, 0x4 + .incbin "baserom.nds", 0x3718, 0x4 + .incbin "baserom.nds", 0x371C, 0x4 + .incbin "baserom.nds", 0x3720, 0x4 + .incbin "baserom.nds", 0x3724, 0x4 + .incbin "baserom.nds", 0x3728, 0x4 + .incbin "baserom.nds", 0x372C, 0x4 + .incbin "baserom.nds", 0x3730, 0x4 + .incbin "baserom.nds", 0x3734, 0x4 + .incbin "baserom.nds", 0x3738, 0x4 + .incbin "baserom.nds", 0x373C, 0x4 + .incbin "baserom.nds", 0x3740, 0x4 + .incbin "baserom.nds", 0x3744, 0x4 + .incbin "baserom.nds", 0x3748, 0x4 + .incbin "baserom.nds", 0x374C, 0x4 + .incbin "baserom.nds", 0x3750, 0x4 + .incbin "baserom.nds", 0x3754, 0x4 + .incbin "baserom.nds", 0x3758, 0x4 + .incbin "baserom.nds", 0x375C, 0xC + .incbin "baserom.nds", 0x3768, 0x4 + .incbin "baserom.nds", 0x376C, 0x8 + .incbin "baserom.nds", 0x3774, 0x8 + .incbin "baserom.nds", 0x377C, 0x4 + .incbin "baserom.nds", 0x3780, 0x8 + .incbin "baserom.nds", 0x3788, 0x4 + .incbin "baserom.nds", 0x378C, 0x4 + .incbin "baserom.nds", 0x3790, 0x4 + .incbin "baserom.nds", 0x3794, 0x4 + .incbin "baserom.nds", 0x3798, 0x4 + .incbin "baserom.nds", 0x379C, 0x4 + .incbin "baserom.nds", 0x37A0, 0x4 + .incbin "baserom.nds", 0x37A4, 0x4 + .incbin "baserom.nds", 0x37A8, 0x4 + .incbin "baserom.nds", 0x37AC, 0x8 + .incbin "baserom.nds", 0x37B4, 0x4 + .incbin "baserom.nds", 0x37B8, 0x4 + .incbin "baserom.nds", 0x37BC, 0x8 + .incbin "baserom.nds", 0x37C4, 0x4 + .incbin "baserom.nds", 0x37C8, 0x4 + .incbin "baserom.nds", 0x37CC, 0x4 + .incbin "baserom.nds", 0x37D0, 0x8 + .incbin "baserom.nds", 0x37D8, 0x8 + .incbin "baserom.nds", 0x37E0, 0x4 + .incbin "baserom.nds", 0x37E4, 0x4 + .incbin "baserom.nds", 0x37E8, 0x4 + .incbin "baserom.nds", 0x37EC, 0x4 + .incbin "baserom.nds", 0x37F0, 0x4 + .incbin "baserom.nds", 0x37F4, 0x4 + .incbin "baserom.nds", 0x37F8, 0x4 + .incbin "baserom.nds", 0x37FC, 0x4 + .incbin "baserom.nds", 0x3800, 0x4 + .incbin "baserom.nds", 0x3804, 0x4 + .incbin "baserom.nds", 0x3808, 0x4 + .incbin "baserom.nds", 0x380C, 0x4 + .incbin "baserom.nds", 0x3810, 0x4 + .incbin "baserom.nds", 0x3814, 0x4 + .incbin "baserom.nds", 0x3818, 0x4 + .incbin "baserom.nds", 0x381C, 0x10 + .incbin "baserom.nds", 0x382C, 0xC + .incbin "baserom.nds", 0x3838, 0x8 + .incbin "baserom.nds", 0x3840, 0x8 + .incbin "baserom.nds", 0x3848, 0x8 + .incbin "baserom.nds", 0x3850, 0x4 + .incbin "baserom.nds", 0x3854, 0x4 + .incbin "baserom.nds", 0x3858, 0x8 + .incbin "baserom.nds", 0x3860, 0x4 + .incbin "baserom.nds", 0x3864, 0x4 + .incbin "baserom.nds", 0x3868, 0x4 + .incbin "baserom.nds", 0x386C, 0x4 + .incbin "baserom.nds", 0x3870, 0x4 + .incbin "baserom.nds", 0x3874, 0x8 + .incbin "baserom.nds", 0x387C, 0x4 + .incbin "baserom.nds", 0x3880, 0x8 + .incbin "baserom.nds", 0x3888, 0x8 + .incbin "baserom.nds", 0x3890, 0x8 + .incbin "baserom.nds", 0x3898, 0x8 + .incbin "baserom.nds", 0x38A0, 0x8 + .incbin "baserom.nds", 0x38A8, 0x4 + .incbin "baserom.nds", 0x38AC, 0x4 + .incbin "baserom.nds", 0x38B0, 0x4 + .incbin "baserom.nds", 0x38B4, 0x4 + .incbin "baserom.nds", 0x38B8, 0x4 + .incbin "baserom.nds", 0x38BC, 0x4 + .incbin "baserom.nds", 0x38C0, 0x4 + .incbin "baserom.nds", 0x38C4, 0x4 + .incbin "baserom.nds", 0x38C8, 0x4 + .incbin "baserom.nds", 0x38CC, 0x4 + .incbin "baserom.nds", 0x38D0, 0x4 + .incbin "baserom.nds", 0x38D4, 0x4 + .incbin "baserom.nds", 0x38D8, 0x4 + .incbin "baserom.nds", 0x38DC, 0x4 + .incbin "baserom.nds", 0x38E0, 0x4 + .incbin "baserom.nds", 0x38E4, 0x4 + .incbin "baserom.nds", 0x38E8, 0x4 + .incbin "baserom.nds", 0x38EC, 0x4 + .incbin "baserom.nds", 0x38F0, 0x4 + .incbin "baserom.nds", 0x38F4, 0x4 + .incbin "baserom.nds", 0x38F8, 0x4 + .incbin "baserom.nds", 0x38FC, 0x4 + .incbin "baserom.nds", 0x3900, 0x4 + .incbin "baserom.nds", 0x3904, 0x4 + .incbin "baserom.nds", 0x3908, 0x4 + .incbin "baserom.nds", 0x390C, 0x4 + .incbin "baserom.nds", 0x3910, 0x4 + .incbin "baserom.nds", 0x3914, 0x4 + .incbin "baserom.nds", 0x3918, 0x4 + .incbin "baserom.nds", 0x391C, 0x4 + .incbin "baserom.nds", 0x3920, 0x4 + .incbin "baserom.nds", 0x3924, 0x4 + .incbin "baserom.nds", 0x3928, 0x4 + .incbin "baserom.nds", 0x392C, 0x4 + .incbin "baserom.nds", 0x3930, 0x4 + .incbin "baserom.nds", 0x3934, 0x4 + .incbin "baserom.nds", 0x3938, 0x4 + .incbin "baserom.nds", 0x393C, 0x4 + .incbin "baserom.nds", 0x3940, 0x4 + .incbin "baserom.nds", 0x3944, 0x68 + .incbin "baserom.nds", 0x39AC, 0x4 + .incbin "baserom.nds", 0x39B0, 0x4 + .incbin "baserom.nds", 0x39B4, 0x4 + .incbin "baserom.nds", 0x39B8, 0x4 + .incbin "baserom.nds", 0x39BC, 0x4 + .incbin "baserom.nds", 0x39C0, 0x4 + .incbin "baserom.nds", 0x39C4, 0x4 + .incbin "baserom.nds", 0x39C8, 0x4 + .incbin "baserom.nds", 0x39CC, 0x4 + .incbin "baserom.nds", 0x39D0, 0x4 + .incbin "baserom.nds", 0x39D4, 0x4 + .incbin "baserom.nds", 0x39D8, 0x4 + .incbin "baserom.nds", 0x39DC, 0x4 + .incbin "baserom.nds", 0x39E0, 0x4 + .incbin "baserom.nds", 0x39E4, 0x4 + .incbin "baserom.nds", 0x39E8, 0x4 + .incbin "baserom.nds", 0x39EC, 0x4 + .incbin "baserom.nds", 0x39F0, 0x4 + .incbin "baserom.nds", 0x39F4, 0xC + .incbin "baserom.nds", 0x3A00, 0xC + .incbin "baserom.nds", 0x3A0C, 0xC + .incbin "baserom.nds", 0x3A18, 0x14 + .incbin "baserom.nds", 0x3A2C, 0x4 + .incbin "baserom.nds", 0x3A30, 0x4 + .incbin "baserom.nds", 0x3A34, 0x4 + .incbin "baserom.nds", 0x3A38, 0x4 + .incbin "baserom.nds", 0x3A3C, 0x4 + .incbin "baserom.nds", 0x3A40, 0x4 + .incbin "baserom.nds", 0x3A44, 0x4 + .incbin "baserom.nds", 0x3A48, 0x4 + .incbin "baserom.nds", 0x3A4C, 0x4 + .incbin "baserom.nds", 0x3A50, 0x4 + .incbin "baserom.nds", 0x3A54, 0x4 + .incbin "baserom.nds", 0x3A58, 0x4 + .incbin "baserom.nds", 0x3A5C, 0x4 + .incbin "baserom.nds", 0x3A60, 0x4 + .incbin "baserom.nds", 0x3A64, 0x4 + .incbin "baserom.nds", 0x3A68, 0x4 + .incbin "baserom.nds", 0x3A6C, 0x4 + .incbin "baserom.nds", 0x3A70, 0x4 + .incbin "baserom.nds", 0x3A74, 0x4 + .incbin "baserom.nds", 0x3A78, 0x4 + .incbin "baserom.nds", 0x3A7C, 0xC + .incbin "baserom.nds", 0x3A88, 0x10 + .incbin "baserom.nds", 0x3A98, 0x4 + .incbin "baserom.nds", 0x3A9C, 0x4 + .incbin "baserom.nds", 0x3AA0, 0x4 + .incbin "baserom.nds", 0x3AA4, 0x4 + .incbin "baserom.nds", 0x3AA8, 0x4 + .incbin "baserom.nds", 0x3AAC, 0x8 + .incbin "baserom.nds", 0x3AB4, 0x8 + .incbin "baserom.nds", 0x3ABC, 0x4 + .incbin "baserom.nds", 0x3AC0, 0x4 + .incbin "baserom.nds", 0x3AC4, 0x34 + .incbin "baserom.nds", 0x3AF8, 0x44 + .incbin "baserom.nds", 0x3B3C, 0x4 + .incbin "baserom.nds", 0x3B40, 0x4 + .incbin "baserom.nds", 0x3B44, 0x4 + .incbin "baserom.nds", 0x3B48, 0x4 + .incbin "baserom.nds", 0x3B4C, 0x10 + .incbin "baserom.nds", 0x3B5C, 0x10 + .incbin "baserom.nds", 0x3B6C, 0x4 + .incbin "baserom.nds", 0x3B70, 0xC + .incbin "baserom.nds", 0x3B7C, 0x8 + .incbin "baserom.nds", 0x3B84, 0x4 + .incbin "baserom.nds", 0x3B88, 0x10 + .incbin "baserom.nds", 0x3B98, 0x20 + .incbin "baserom.nds", 0x3BB8, 0x4 + .incbin "baserom.nds", 0x3BBC, 0xC + .incbin "baserom.nds", 0x3BC8, 0x10 + .incbin "baserom.nds", 0x3BD8, 0x4 + .incbin "baserom.nds", 0x3BDC, 0x34 + .incbin "baserom.nds", 0x3C10, 0x4C + .incbin "baserom.nds", 0x3C5C, 0x20 + .incbin "baserom.nds", 0x3C7C, 0x1C + .incbin "baserom.nds", 0x3C98, 0x4 + .incbin "baserom.nds", 0x3C9C, 0x1C + .incbin "baserom.nds", 0x3CB8, 0x4 + .incbin "baserom.nds", 0x3CBC, 0x4 + .incbin "baserom.nds", 0x3CC0, 0x4 + .incbin "baserom.nds", 0x3CC4, 0x4 + .incbin "baserom.nds", 0x3CC8, 0x4 + .incbin "baserom.nds", 0x3CCC, 0x4 + .incbin "baserom.nds", 0x3CD0, 0x4 + .incbin "baserom.nds", 0x3CD4, 0x4 + .incbin "baserom.nds", 0x3CD8, 0xC + .incbin "baserom.nds", 0x3CE4, 0xC + .incbin "baserom.nds", 0x3CF0, 0x4 + .incbin "baserom.nds", 0x3CF4, 0x4 + .incbin "baserom.nds", 0x3CF8, 0x10 + .incbin "baserom.nds", 0x3D08, 0x4 + .incbin "baserom.nds", 0x3D0C, 0x4 + .incbin "baserom.nds", 0x3D10, 0x4 + .incbin "baserom.nds", 0x3D14, 0x4 + .incbin "baserom.nds", 0x3D18, 0x4 + .incbin "baserom.nds", 0x3D1C, 0x4 + .incbin "baserom.nds", 0x3D20, 0x4 + .incbin "baserom.nds", 0x3D24, 0x4 + .incbin "baserom.nds", 0x3D28, 0x4 + .incbin "baserom.nds", 0x3D2C, 0x4 + .incbin "baserom.nds", 0x3D30, 0x4 + .incbin "baserom.nds", 0x3D34, 0x4 + .incbin "baserom.nds", 0x3D38, 0x4 + .incbin "baserom.nds", 0x3D3C, 0x4 + .incbin "baserom.nds", 0x3D40, 0x4 + .incbin "baserom.nds", 0x3D44, 0x4 + .incbin "baserom.nds", 0x3D48, 0x4 + .incbin "baserom.nds", 0x3D4C, 0x4 + .incbin "baserom.nds", 0x3D50, 0x4 + .incbin "baserom.nds", 0x3D54, 0xC + .incbin "baserom.nds", 0x3D60, 0xC + .incbin "baserom.nds", 0x3D6C, 0x10 + .incbin "baserom.nds", 0x3D7C, 0xC + .incbin "baserom.nds", 0x3D88, 0x4 + .incbin "baserom.nds", 0x3D8C, 0x4 + .incbin "baserom.nds", 0x3D90, 0x8 + .incbin "baserom.nds", 0x3D98, 0x8 + .incbin "baserom.nds", 0x3DA0, 0x24 + .incbin "baserom.nds", 0x3DC4, 0x24 + .incbin "baserom.nds", 0x3DE8, 0xC + .incbin "baserom.nds", 0x3DF4, 0x4 + .incbin "baserom.nds", 0x3DF8, 0xC + .incbin "baserom.nds", 0x3E04, 0x8 + .incbin "baserom.nds", 0x3E0C, 0x4 + .incbin "baserom.nds", 0x3E10, 0x4 + .incbin "baserom.nds", 0x3E14, 0x4 + .incbin "baserom.nds", 0x3E18, 0x4 + .incbin "baserom.nds", 0x3E1C, 0x4 + .incbin "baserom.nds", 0x3E20, 0x94 + .incbin "baserom.nds", 0x3EB4, 0x94 + .incbin "baserom.nds", 0x3F48, 0x4 + .incbin "baserom.nds", 0x3F4C, 0x4 + .incbin "baserom.nds", 0x3F50, 0x4 + .incbin "baserom.nds", 0x3F54, 0x4 + .incbin "baserom.nds", 0x3F58, 0x4 + .incbin "baserom.nds", 0x3F5C, 0x4 + .incbin "baserom.nds", 0x3F60, 0x4 + .incbin "baserom.nds", 0x3F64, 0x4 + .incbin "baserom.nds", 0x3F68, 0x4 + .incbin "baserom.nds", 0x3F6C, 0x4 + .incbin "baserom.nds", 0x3F70, 0x4 + .incbin "baserom.nds", 0x3F74, 0x4 + .incbin "baserom.nds", 0x3F78, 0x4 + .incbin "baserom.nds", 0x3F7C, 0x4 + .incbin "baserom.nds", 0x3F80, 0x4 + .incbin "baserom.nds", 0x3F84, 0x4 + .incbin "baserom.nds", 0x3F88, 0x4 + .incbin "baserom.nds", 0x3F8C, 0x4 + .incbin "baserom.nds", 0x3F90, 0x4 + .incbin "baserom.nds", 0x3F94, 0x4 + .incbin "baserom.nds", 0x3F98, 0x4 + .incbin "baserom.nds", 0x3F9C, 0x4 + .incbin "baserom.nds", 0x3FA0, 0x4 + .incbin "baserom.nds", 0x3FA4, 0x4 + .incbin "baserom.nds", 0x3FA8, 0x4 + .incbin "baserom.nds", 0x3FAC, 0x4 + .incbin "baserom.nds", 0x3FB0, 0x4 + .incbin "baserom.nds", 0x3FB4, 0x4 + .incbin "baserom.nds", 0x3FB8, 0x4 + .incbin "baserom.nds", 0x3FBC, 0x4 + .incbin "baserom.nds", 0x3FC0, 0x4 + .incbin "baserom.nds", 0x3FC4, 0x4 + .incbin "baserom.nds", 0x3FC8, 0x4 + .incbin "baserom.nds", 0x3FCC, 0x4 + .incbin "baserom.nds", 0x3FD0, 0x4 + .incbin "baserom.nds", 0x3FD4, 0x8 + .incbin "baserom.nds", 0x3FDC, 0x4 + .incbin "baserom.nds", 0x3FE0, 0x4 + .incbin "baserom.nds", 0x3FE4, 0x4 + .incbin "baserom.nds", 0x3FE8, 0x8 + .incbin "baserom.nds", 0x3FF0, 0x8 + .incbin "baserom.nds", 0x3FF8, 0x4 + .incbin "baserom.nds", 0x3FFC, 0x4 + .incbin "baserom.nds", 0x4000, 0x4 + .incbin "baserom.nds", 0x4004, 0x4 + .incbin "baserom.nds", 0x4008, 0x4 + .incbin "baserom.nds", 0x400C, 0x4 + .incbin "baserom.nds", 0x4010, 0x4 + .incbin "baserom.nds", 0x4014, 0x4 + .incbin "baserom.nds", 0x4018, 0x4 + .incbin "baserom.nds", 0x401C, 0x4 + .incbin "baserom.nds", 0x4020, 0x4 + .incbin "baserom.nds", 0x4024, 0x4 + .incbin "baserom.nds", 0x4028, 0x4 + .incbin "baserom.nds", 0x402C, 0x4 + .incbin "baserom.nds", 0x4030, 0x4 + .incbin "baserom.nds", 0x4034, 0x4 + .incbin "baserom.nds", 0x4038, 0x4 + .incbin "baserom.nds", 0x403C, 0x4 + .incbin "baserom.nds", 0x4040, 0x4 + .incbin "baserom.nds", 0x4044, 0x4 + .incbin "baserom.nds", 0x4048, 0x4 + .incbin "baserom.nds", 0x404C, 0x4 + .incbin "baserom.nds", 0x4050, 0x8 + .incbin "baserom.nds", 0x4058, 0x8 + .incbin "baserom.nds", 0x4060, 0x4 + .incbin "baserom.nds", 0x4064, 0x4 + .incbin "baserom.nds", 0x4068, 0x4 + .incbin "baserom.nds", 0x406C, 0x4 + .incbin "baserom.nds", 0x4070, 0x4 + .incbin "baserom.nds", 0x4074, 0x4 + .incbin "baserom.nds", 0x4078, 0x4 + .incbin "baserom.nds", 0x407C, 0xC + .incbin "baserom.nds", 0x4088, 0x4 + .incbin "baserom.nds", 0x408C, 0x4 + .incbin "baserom.nds", 0x4090, 0x4 + .incbin "baserom.nds", 0x4094, 0x4 + .incbin "baserom.nds", 0x4098, 0x4 + .incbin "baserom.nds", 0x409C, 0x4 + .incbin "baserom.nds", 0x40A0, 0x4 + .incbin "baserom.nds", 0x40A4, 0x8 + .incbin "baserom.nds", 0x40AC, 0x4 + .incbin "baserom.nds", 0x40B0, 0x4 + .incbin "baserom.nds", 0x40B4, 0x4 + .incbin "baserom.nds", 0x40B8, 0x10 + .incbin "baserom.nds", 0x40C8, 0x4 + .incbin "baserom.nds", 0x40CC, 0x4 + .incbin "baserom.nds", 0x40D0, 0x4 + .incbin "baserom.nds", 0x40D4, 0x4 + .incbin "baserom.nds", 0x40D8, 0x4 + .incbin "baserom.nds", 0x40DC, 0x4 + .incbin "baserom.nds", 0x40E0, 0x4 + .incbin "baserom.nds", 0x40E4, 0x24 + .incbin "baserom.nds", 0x4108, 0x24 + .incbin "baserom.nds", 0x412C, 0x4 + .incbin "baserom.nds", 0x4130, 0x4 + .incbin "baserom.nds", 0x4134, 0xC + .incbin "baserom.nds", 0x4140, 0x4 + .incbin "baserom.nds", 0x4144, 0x4 + .incbin "baserom.nds", 0x4148, 0x4 + .incbin "baserom.nds", 0x414C, 0x4 + .incbin "baserom.nds", 0x4150, 0x4 + .incbin "baserom.nds", 0x4154, 0x4 + .incbin "baserom.nds", 0x4158, 0x4 + .incbin "baserom.nds", 0x415C, 0x4 + .incbin "baserom.nds", 0x4160, 0x4 + .incbin "baserom.nds", 0x4164, 0x4 + .incbin "baserom.nds", 0x4168, 0x4 + .incbin "baserom.nds", 0x416C, 0x4 + .incbin "baserom.nds", 0x4170, 0x4 + .incbin "baserom.nds", 0x4174, 0x4 + .incbin "baserom.nds", 0x4178, 0x4 + .incbin "baserom.nds", 0x417C, 0x4 + .incbin "baserom.nds", 0x4180, 0x4 + .incbin "baserom.nds", 0x4184, 0x4 + .incbin "baserom.nds", 0x4188, 0x4 + .incbin "baserom.nds", 0x418C, 0x4 + .incbin "baserom.nds", 0x4190, 0x4 + .incbin "baserom.nds", 0x4194, 0x4 + .incbin "baserom.nds", 0x4198, 0x4 + .incbin "baserom.nds", 0x419C, 0x4 + .incbin "baserom.nds", 0x41A0, 0x4 + .incbin "baserom.nds", 0x41A4, 0x4 + .incbin "baserom.nds", 0x41A8, 0x4 + .incbin "baserom.nds", 0x41AC, 0x4 + .incbin "baserom.nds", 0x41B0, 0x4 + .incbin "baserom.nds", 0x41B4, 0x4 + .incbin "baserom.nds", 0x41B8, 0x4 + .incbin "baserom.nds", 0x41BC, 0x4 + .incbin "baserom.nds", 0x41C0, 0x4 + .incbin "baserom.nds", 0x41C4, 0x4 + .incbin "baserom.nds", 0x41C8, 0x4 + .incbin "baserom.nds", 0x41CC, 0x4 + .incbin "baserom.nds", 0x41D0, 0x4 + .incbin "baserom.nds", 0x41D4, 0x4 + .incbin "baserom.nds", 0x41D8, 0x4 + .incbin "baserom.nds", 0x41DC, 0xC + .incbin "baserom.nds", 0x41E8, 0x4 + .incbin "baserom.nds", 0x41EC, 0x4 + .incbin "baserom.nds", 0x41F0, 0x4 + .incbin "baserom.nds", 0x41F4, 0x4 + .incbin "baserom.nds", 0x41F8, 0x4 + .incbin "baserom.nds", 0x41FC, 0x4 + .incbin "baserom.nds", 0x4200, 0x4 + .incbin "baserom.nds", 0x4204, 0x4 + .incbin "baserom.nds", 0x4208, 0x4 + .incbin "baserom.nds", 0x420C, 0x4 + .incbin "baserom.nds", 0x4210, 0x38 + .incbin "baserom.nds", 0x4248, 0x50 + .incbin "baserom.nds", 0x4298, 0x4 + .incbin "baserom.nds", 0x429C, 0x4 + .incbin "baserom.nds", 0x42A0, 0x4 + .incbin "baserom.nds", 0x42A4, 0x4 + .incbin "baserom.nds", 0x42A8, 0x4 + .incbin "baserom.nds", 0x42AC, 0x4 + .incbin "baserom.nds", 0x42B0, 0x4 + .incbin "baserom.nds", 0x42B4, 0x4 + .incbin "baserom.nds", 0x42B8, 0x4 + .incbin "baserom.nds", 0x42BC, 0x4 + .incbin "baserom.nds", 0x42C0, 0x4 + .incbin "baserom.nds", 0x42C4, 0x4 + .incbin "baserom.nds", 0x42C8, 0x4 + .incbin "baserom.nds", 0x42CC, 0x4 + .incbin "baserom.nds", 0x42D0, 0x4 + .incbin "baserom.nds", 0x42D4, 0x4 + .incbin "baserom.nds", 0x42D8, 0x4 + .incbin "baserom.nds", 0x42DC, 0x4 + .incbin "baserom.nds", 0x42E0, 0x4 + .incbin "baserom.nds", 0x42E4, 0x4 + .incbin "baserom.nds", 0x42E8, 0x4 + .incbin "baserom.nds", 0x42EC, 0x4 + .incbin "baserom.nds", 0x42F0, 0x4 + .incbin "baserom.nds", 0x42F4, 0x4 + .incbin "baserom.nds", 0x42F8, 0x4 + .incbin "baserom.nds", 0x42FC, 0x4 + .incbin "baserom.nds", 0x4300, 0x4 + .incbin "baserom.nds", 0x4304, 0x20 + .incbin "baserom.nds", 0x4324, 0xC + .incbin "baserom.nds", 0x4330, 0x4 + .incbin "baserom.nds", 0x4334, 0x4 + .incbin "baserom.nds", 0x4338, 0x4 + .incbin "baserom.nds", 0x433C, 0x4 + .incbin "baserom.nds", 0x4340, 0x8 + .incbin "baserom.nds", 0x4348, 0x8 + .incbin "baserom.nds", 0x4350, 0x1C + .incbin "baserom.nds", 0x436C, 0x4 + .incbin "baserom.nds", 0x4370, 0x4 + .incbin "baserom.nds", 0x4374, 0x4 + .incbin "baserom.nds", 0x4378, 0xC + .incbin "baserom.nds", 0x4384, 0xC + .incbin "baserom.nds", 0x4390, 0xC + .incbin "baserom.nds", 0x439C, 0xC + .incbin "baserom.nds", 0x43A8, 0xC + .incbin "baserom.nds", 0x43B4, 0x4 + .incbin "baserom.nds", 0x43B8, 0x4 + .incbin "baserom.nds", 0x43BC, 0x4 + .incbin "baserom.nds", 0x43C0, 0x4 + .incbin "baserom.nds", 0x43C4, 0x4 + .incbin "baserom.nds", 0x43C8, 0x4 + .incbin "baserom.nds", 0x43CC, 0x4 + .incbin "baserom.nds", 0x43D0, 0x8 + .incbin "baserom.nds", 0x43D8, 0x8 + .incbin "baserom.nds", 0x43E0, 0x4 + .incbin "baserom.nds", 0x43E4, 0x4 + .incbin "baserom.nds", 0x43E8, 0x4 + .incbin "baserom.nds", 0x43EC, 0x4 + .incbin "baserom.nds", 0x43F0, 0x4 + .incbin "baserom.nds", 0x43F4, 0x4 + .incbin "baserom.nds", 0x43F8, 0x24 + .incbin "baserom.nds", 0x441C, 0x24 + .incbin "baserom.nds", 0x4440, 0x8 + .incbin "baserom.nds", 0x4448, 0x8 + .incbin "baserom.nds", 0x4450, 0x4 + .incbin "baserom.nds", 0x4454, 0x4 + .incbin "baserom.nds", 0x4458, 0x4 + .incbin "baserom.nds", 0x445C, 0x4 + .incbin "baserom.nds", 0x4460, 0x4 + .incbin "baserom.nds", 0x4464, 0x4 + .incbin "baserom.nds", 0x4468, 0x4 + .incbin "baserom.nds", 0x446C, 0x4 + .incbin "baserom.nds", 0x4470, 0x4 + .incbin "baserom.nds", 0x4474, 0x4 + .incbin "baserom.nds", 0x4478, 0x4 + .incbin "baserom.nds", 0x447C, 0x4 + .incbin "baserom.nds", 0x4480, 0x4 + .incbin "baserom.nds", 0x4484, 0x4 + .incbin "baserom.nds", 0x4488, 0x4 + .incbin "baserom.nds", 0x448C, 0x4 + .incbin "baserom.nds", 0x4490, 0x4 + .incbin "baserom.nds", 0x4494, 0x4 + .incbin "baserom.nds", 0x4498, 0x4 + .incbin "baserom.nds", 0x449C, 0x4 + .incbin "baserom.nds", 0x44A0, 0x4 + .incbin "baserom.nds", 0x44A4, 0x4 + .incbin "baserom.nds", 0x44A8, 0x4 + .incbin "baserom.nds", 0x44AC, 0xC + .incbin "baserom.nds", 0x44B8, 0x4 + .incbin "baserom.nds", 0x44BC, 0x4 + .incbin "baserom.nds", 0x44C0, 0x8 + .incbin "baserom.nds", 0x44C8, 0xC + .incbin "baserom.nds", 0x44D4, 0x4 + .incbin "baserom.nds", 0x44D8, 0x4 + .incbin "baserom.nds", 0x44DC, 0x4 + .incbin "baserom.nds", 0x44E0, 0x4 + .incbin "baserom.nds", 0x44E4, 0x4 + .incbin "baserom.nds", 0x44E8, 0x4 + .incbin "baserom.nds", 0x44EC, 0x4 + .incbin "baserom.nds", 0x44F0, 0x4 + .incbin "baserom.nds", 0x44F4, 0x4 + .incbin "baserom.nds", 0x44F8, 0x4 + .incbin "baserom.nds", 0x44FC, 0x4 + .incbin "baserom.nds", 0x4500, 0x4 + .incbin "baserom.nds", 0x4504, 0x4 + .incbin "baserom.nds", 0x4508, 0x4 + .incbin "baserom.nds", 0x450C, 0x4 + .incbin "baserom.nds", 0x4510, 0x4 + .incbin "baserom.nds", 0x4514, 0x4 + .incbin "baserom.nds", 0x4518, 0x4 + .incbin "baserom.nds", 0x451C, 0x4 + .incbin "baserom.nds", 0x4520, 0x4 + .incbin "baserom.nds", 0x4524, 0x4 + .incbin "baserom.nds", 0x4528, 0x4 + .incbin "baserom.nds", 0x452C, 0x4 + .incbin "baserom.nds", 0x4530, 0x4 + .incbin "baserom.nds", 0x4534, 0x4 + .incbin "baserom.nds", 0x4538, 0x20 + .incbin "baserom.nds", 0x4558, 0x10 + .incbin "baserom.nds", 0x4568, 0x4 + .incbin "baserom.nds", 0x456C, 0x2C + .incbin "baserom.nds", 0x4598, 0x18 + .incbin "baserom.nds", 0x45B0, 0x1C + .incbin "baserom.nds", 0x45CC, 0x20 + .incbin "baserom.nds", 0x45EC, 0x18 + .incbin "baserom.nds", 0x4604, 0x8 + .incbin "baserom.nds", 0x460C, 0x4 + .incbin "baserom.nds", 0x4610, 0x10 + .incbin "baserom.nds", 0x4620, 0x4 + .incbin "baserom.nds", 0x4624, 0x4 + .incbin "baserom.nds", 0x4628, 0x4 + .incbin "baserom.nds", 0x462C, 0x4 + .incbin "baserom.nds", 0x4630, 0x4 + .incbin "baserom.nds", 0x4634, 0x4 + .incbin "baserom.nds", 0x4638, 0x4 + .incbin "baserom.nds", 0x463C, 0x4 + .incbin "baserom.nds", 0x4640, 0x4 + .incbin "baserom.nds", 0x4644, 0x4 + .incbin "baserom.nds", 0x4648, 0x14 + .incbin "baserom.nds", 0x465C, 0x18 + .incbin "baserom.nds", 0x4674, 0x20 + .incbin "baserom.nds", 0x4694, 0x4 + .incbin "baserom.nds", 0x4698, 0x4 + .incbin "baserom.nds", 0x469C, 0x24 + .incbin "baserom.nds", 0x46C0, 0x1C + .incbin "baserom.nds", 0x46DC, 0x4 + .incbin "baserom.nds", 0x46E0, 0x4 + .incbin "baserom.nds", 0x46E4, 0x4 + .incbin "baserom.nds", 0x46E8, 0x4 + .incbin "baserom.nds", 0x46EC, 0x4 + .incbin "baserom.nds", 0x46F0, 0x4 + .incbin "baserom.nds", 0x46F4, 0x4 + .incbin "baserom.nds", 0x46F8, 0x4 + .incbin "baserom.nds", 0x46FC, 0x4 + .incbin "baserom.nds", 0x4700, 0xC + .incbin "baserom.nds", 0x470C, 0x10 + .incbin "baserom.nds", 0x471C, 0xC + .incbin "baserom.nds", 0x4728, 0x8 + .incbin "baserom.nds", 0x4730, 0x4 + .incbin "baserom.nds", 0x4734, 0x4 + .incbin "baserom.nds", 0x4738, 0xC + .incbin "baserom.nds", 0x4744, 0x4 + .incbin "baserom.nds", 0x4748, 0xC + .incbin "baserom.nds", 0x4754, 0x4 + .incbin "baserom.nds", 0x4758, 0x4 + .incbin "baserom.nds", 0x475C, 0x4 + .incbin "baserom.nds", 0x4760, 0x4 + .incbin "baserom.nds", 0x4764, 0x4 + .incbin "baserom.nds", 0x4768, 0x4 + .incbin "baserom.nds", 0x476C, 0x4 + .incbin "baserom.nds", 0x4770, 0x4 + .incbin "baserom.nds", 0x4774, 0x8 + .incbin "baserom.nds", 0x477C, 0x4 + .incbin "baserom.nds", 0x4780, 0x4 + .incbin "baserom.nds", 0x4784, 0x4 + .incbin "baserom.nds", 0x4788, 0x4 + .incbin "baserom.nds", 0x478C, 0x4 + .incbin "baserom.nds", 0x4790, 0x28 + .incbin "baserom.nds", 0x47B8, 0x28 + .incbin "baserom.nds", 0x47E0, 0xC + .incbin "baserom.nds", 0x47EC, 0x10 + .incbin "baserom.nds", 0x47FC, 0x4 + .incbin "baserom.nds", 0x4800, 0x4 + .incbin "baserom.nds", 0x4804, 0x4 + .incbin "baserom.nds", 0x4808, 0x4 + .incbin "baserom.nds", 0x480C, 0x4 + .incbin "baserom.nds", 0x4810, 0x4 + .incbin "baserom.nds", 0x4814, 0x4 + .incbin "baserom.nds", 0x4818, 0x4 + .incbin "baserom.nds", 0x481C, 0x4 + .incbin "baserom.nds", 0x4820, 0x4 + .incbin "baserom.nds", 0x4824, 0x4 + .incbin "baserom.nds", 0x4828, 0x4 + .incbin "baserom.nds", 0x482C, 0x4 + .incbin "baserom.nds", 0x4830, 0x4 + .incbin "baserom.nds", 0x4834, 0x4 + .incbin "baserom.nds", 0x4838, 0x4 + .incbin "baserom.nds", 0x483C, 0x4 + .incbin "baserom.nds", 0x4840, 0x4 + .incbin "baserom.nds", 0x4844, 0x4 + .incbin "baserom.nds", 0x4848, 0x4 + .incbin "baserom.nds", 0x484C, 0x4 + .incbin "baserom.nds", 0x4850, 0x4 + .incbin "baserom.nds", 0x4854, 0x4 + .incbin "baserom.nds", 0x4858, 0x4 + .incbin "baserom.nds", 0x485C, 0x4 + .incbin "baserom.nds", 0x4860, 0x4 + .incbin "baserom.nds", 0x4864, 0x4 + .incbin "baserom.nds", 0x4868, 0x4 + .incbin "baserom.nds", 0x486C, 0x4 + .incbin "baserom.nds", 0x4870, 0x4 + .incbin "baserom.nds", 0x4874, 0x4 + .incbin "baserom.nds", 0x4878, 0x4 + .incbin "baserom.nds", 0x487C, 0x4 + .incbin "baserom.nds", 0x4880, 0x4 + .incbin "baserom.nds", 0x4884, 0x4 + .incbin "baserom.nds", 0x4888, 0x68 + .incbin "baserom.nds", 0x48F0, 0x4 + .incbin "baserom.nds", 0x48F4, 0x4 + .incbin "baserom.nds", 0x48F8, 0x4 + .incbin "baserom.nds", 0x48FC, 0x4 + .incbin "baserom.nds", 0x4900, 0x4 + .incbin "baserom.nds", 0x4904, 0x4 + .incbin "baserom.nds", 0x4908, 0x4 + .incbin "baserom.nds", 0x490C, 0x4 + .incbin "baserom.nds", 0x4910, 0x4 + .incbin "baserom.nds", 0x4914, 0x4 + .incbin "baserom.nds", 0x4918, 0x4 + .incbin "baserom.nds", 0x491C, 0x4 + .incbin "baserom.nds", 0x4920, 0x4 + .incbin "baserom.nds", 0x4924, 0x4 + .incbin "baserom.nds", 0x4928, 0x4 + .incbin "baserom.nds", 0x492C, 0x4 + .incbin "baserom.nds", 0x4930, 0x4 + .incbin "baserom.nds", 0x4934, 0x4 + .incbin "baserom.nds", 0x4938, 0xC + .incbin "baserom.nds", 0x4944, 0xC + .incbin "baserom.nds", 0x4950, 0xC + .incbin "baserom.nds", 0x495C, 0x14 + .incbin "baserom.nds", 0x4970, 0x4 + .incbin "baserom.nds", 0x4974, 0x4 + .incbin "baserom.nds", 0x4978, 0x4 + .incbin "baserom.nds", 0x497C, 0x4 + .incbin "baserom.nds", 0x4980, 0x4 + .incbin "baserom.nds", 0x4984, 0x4 + .incbin "baserom.nds", 0x4988, 0x4 + .incbin "baserom.nds", 0x498C, 0x4 + .incbin "baserom.nds", 0x4990, 0x4 + .incbin "baserom.nds", 0x4994, 0x4 + .incbin "baserom.nds", 0x4998, 0x4 + .incbin "baserom.nds", 0x499C, 0x4 + .incbin "baserom.nds", 0x49A0, 0x4 + .incbin "baserom.nds", 0x49A4, 0x4 + .incbin "baserom.nds", 0x49A8, 0x4 + .incbin "baserom.nds", 0x49AC, 0x4 + .incbin "baserom.nds", 0x49B0, 0x4 + .incbin "baserom.nds", 0x49B4, 0x4 + .incbin "baserom.nds", 0x49B8, 0x4 + .incbin "baserom.nds", 0x49BC, 0x4 + .incbin "baserom.nds", 0x49C0, 0xC + .incbin "baserom.nds", 0x49CC, 0x10 + .incbin "baserom.nds", 0x49DC, 0x4 + .incbin "baserom.nds", 0x49E0, 0x4 + .incbin "baserom.nds", 0x49E4, 0x4 + .incbin "baserom.nds", 0x49E8, 0x4 + .incbin "baserom.nds", 0x49EC, 0x4 + .incbin "baserom.nds", 0x49F0, 0x8 + .incbin "baserom.nds", 0x49F8, 0x8 + .incbin "baserom.nds", 0x4A00, 0x4 + .incbin "baserom.nds", 0x4A04, 0x4 + .incbin "baserom.nds", 0x4A08, 0x34 + .incbin "baserom.nds", 0x4A3C, 0x44 + .incbin "baserom.nds", 0x4A80, 0x4 + .incbin "baserom.nds", 0x4A84, 0x4 + .incbin "baserom.nds", 0x4A88, 0x4 + .incbin "baserom.nds", 0x4A8C, 0x4 + .incbin "baserom.nds", 0x4A90, 0x10 + .incbin "baserom.nds", 0x4AA0, 0x10 + .incbin "baserom.nds", 0x4AB0, 0x4 + .incbin "baserom.nds", 0x4AB4, 0xC + .incbin "baserom.nds", 0x4AC0, 0x8 + .incbin "baserom.nds", 0x4AC8, 0x4 + .incbin "baserom.nds", 0x4ACC, 0x10 + .incbin "baserom.nds", 0x4ADC, 0x20 + .incbin "baserom.nds", 0x4AFC, 0x4 + .incbin "baserom.nds", 0x4B00, 0xC + .incbin "baserom.nds", 0x4B0C, 0x10 + .incbin "baserom.nds", 0x4B1C, 0x4 + .incbin "baserom.nds", 0x4B20, 0x34 + .incbin "baserom.nds", 0x4B54, 0x4C + .incbin "baserom.nds", 0x4BA0, 0x20 + .incbin "baserom.nds", 0x4BC0, 0x1C + .incbin "baserom.nds", 0x4BDC, 0x4 + .incbin "baserom.nds", 0x4BE0, 0x1C + .incbin "baserom.nds", 0x4BFC, 0x4 + .incbin "baserom.nds", 0x4C00, 0x4 + .incbin "baserom.nds", 0x4C04, 0x4 + .incbin "baserom.nds", 0x4C08, 0x4 + .incbin "baserom.nds", 0x4C0C, 0x4 + .incbin "baserom.nds", 0x4C10, 0x4 + .incbin "baserom.nds", 0x4C14, 0x4 + .incbin "baserom.nds", 0x4C18, 0x4 + .incbin "baserom.nds", 0x4C1C, 0xC + .incbin "baserom.nds", 0x4C28, 0xC + .incbin "baserom.nds", 0x4C34, 0x4 + .incbin "baserom.nds", 0x4C38, 0x4 + .incbin "baserom.nds", 0x4C3C, 0x10 + .incbin "baserom.nds", 0x4C4C, 0x4 + .incbin "baserom.nds", 0x4C50, 0x4 + .incbin "baserom.nds", 0x4C54, 0x4 + .incbin "baserom.nds", 0x4C58, 0x4 + .incbin "baserom.nds", 0x4C5C, 0x4 + .incbin "baserom.nds", 0x4C60, 0x4 + .incbin "baserom.nds", 0x4C64, 0x4 + .incbin "baserom.nds", 0x4C68, 0x4 + .incbin "baserom.nds", 0x4C6C, 0x4 + .incbin "baserom.nds", 0x4C70, 0x4 + .incbin "baserom.nds", 0x4C74, 0x4 + .incbin "baserom.nds", 0x4C78, 0x4 + .incbin "baserom.nds", 0x4C7C, 0x4 + .incbin "baserom.nds", 0x4C80, 0x4 + .incbin "baserom.nds", 0x4C84, 0x4 + .incbin "baserom.nds", 0x4C88, 0x4 + .incbin "baserom.nds", 0x4C8C, 0x4 + .incbin "baserom.nds", 0x4C90, 0x4 + .incbin "baserom.nds", 0x4C94, 0x4 + .incbin "baserom.nds", 0x4C98, 0xC + .incbin "baserom.nds", 0x4CA4, 0xC + .incbin "baserom.nds", 0x4CB0, 0x10 + .incbin "baserom.nds", 0x4CC0, 0xC + .incbin "baserom.nds", 0x4CCC, 0x4 + .incbin "baserom.nds", 0x4CD0, 0x4 + .incbin "baserom.nds", 0x4CD4, 0x8 + .incbin "baserom.nds", 0x4CDC, 0x8 + .incbin "baserom.nds", 0x4CE4, 0x24 + .incbin "baserom.nds", 0x4D08, 0x24 + .incbin "baserom.nds", 0x4D2C, 0xC + .incbin "baserom.nds", 0x4D38, 0x4 + .incbin "baserom.nds", 0x4D3C, 0xC + .incbin "baserom.nds", 0x4D48, 0x8 + .incbin "baserom.nds", 0x4D50, 0x4 + .incbin "baserom.nds", 0x4D54, 0x4 + .incbin "baserom.nds", 0x4D58, 0x4 + .incbin "baserom.nds", 0x4D5C, 0x4 + .incbin "baserom.nds", 0x4D60, 0x4 + .incbin "baserom.nds", 0x4D64, 0x94 + .incbin "baserom.nds", 0x4DF8, 0x94 + .incbin "baserom.nds", 0x4E8C, 0x4 + .incbin "baserom.nds", 0x4E90, 0x4 + .incbin "baserom.nds", 0x4E94, 0x4 + .incbin "baserom.nds", 0x4E98, 0x4 + .incbin "baserom.nds", 0x4E9C, 0x4 + .incbin "baserom.nds", 0x4EA0, 0x4 + .incbin "baserom.nds", 0x4EA4, 0x4 + .incbin "baserom.nds", 0x4EA8, 0x4 + .incbin "baserom.nds", 0x4EAC, 0x4 + .incbin "baserom.nds", 0x4EB0, 0x4 + .incbin "baserom.nds", 0x4EB4, 0x4 + .incbin "baserom.nds", 0x4EB8, 0x4 + .incbin "baserom.nds", 0x4EBC, 0x4 + .incbin "baserom.nds", 0x4EC0, 0x4 + .incbin "baserom.nds", 0x4EC4, 0x4 + .incbin "baserom.nds", 0x4EC8, 0x4 + .incbin "baserom.nds", 0x4ECC, 0x4 + .incbin "baserom.nds", 0x4ED0, 0x4 + .incbin "baserom.nds", 0x4ED4, 0x4 + .incbin "baserom.nds", 0x4ED8, 0x4 + .incbin "baserom.nds", 0x4EDC, 0x4 + .incbin "baserom.nds", 0x4EE0, 0x4 + .incbin "baserom.nds", 0x4EE4, 0x4 + .incbin "baserom.nds", 0x4EE8, 0x4 + .incbin "baserom.nds", 0x4EEC, 0x4 + .incbin "baserom.nds", 0x4EF0, 0x4 + .incbin "baserom.nds", 0x4EF4, 0x4 + .incbin "baserom.nds", 0x4EF8, 0x4 + .incbin "baserom.nds", 0x4EFC, 0x4 + .incbin "baserom.nds", 0x4F00, 0x4 + .incbin "baserom.nds", 0x4F04, 0x4 + .incbin "baserom.nds", 0x4F08, 0x4 + .incbin "baserom.nds", 0x4F0C, 0x4 + .incbin "baserom.nds", 0x4F10, 0x4 + .incbin "baserom.nds", 0x4F14, 0x4 + .incbin "baserom.nds", 0x4F18, 0x4 + .incbin "baserom.nds", 0x4F1C, 0x4 + .incbin "baserom.nds", 0x4F20, 0x4 + .incbin "baserom.nds", 0x4F24, 0x4 + .incbin "baserom.nds", 0x4F28, 0x8 + .incbin "baserom.nds", 0x4F30, 0x8 + .incbin "baserom.nds", 0x4F38, 0x4 + .incbin "baserom.nds", 0x4F3C, 0x4 + .incbin "baserom.nds", 0x4F40, 0x4 + .incbin "baserom.nds", 0x4F44, 0x4 + .incbin "baserom.nds", 0x4F48, 0x4 + .incbin "baserom.nds", 0x4F4C, 0x4 + .incbin "baserom.nds", 0x4F50, 0x4 + .incbin "baserom.nds", 0x4F54, 0x4 + .incbin "baserom.nds", 0x4F58, 0x4 + .incbin "baserom.nds", 0x4F5C, 0x4 + .incbin "baserom.nds", 0x4F60, 0x4 + .incbin "baserom.nds", 0x4F64, 0x4 + .incbin "baserom.nds", 0x4F68, 0x4 + .incbin "baserom.nds", 0x4F6C, 0x4 + .incbin "baserom.nds", 0x4F70, 0x4 + .incbin "baserom.nds", 0x4F74, 0x4 + .incbin "baserom.nds", 0x4F78, 0x4 + .incbin "baserom.nds", 0x4F7C, 0x4 + .incbin "baserom.nds", 0x4F80, 0x4 + .incbin "baserom.nds", 0x4F84, 0x4 + .incbin "baserom.nds", 0x4F88, 0x4 + .incbin "baserom.nds", 0x4F8C, 0x4 + .incbin "baserom.nds", 0x4F90, 0x8 + .incbin "baserom.nds", 0x4F98, 0x8 + .incbin "baserom.nds", 0x4FA0, 0x4 + .incbin "baserom.nds", 0x4FA4, 0x4 + .incbin "baserom.nds", 0x4FA8, 0x4 + .incbin "baserom.nds", 0x4FAC, 0x4 + .incbin "baserom.nds", 0x4FB0, 0x4 + .incbin "baserom.nds", 0x4FB4, 0x4 + .incbin "baserom.nds", 0x4FB8, 0x4 + .incbin "baserom.nds", 0x4FBC, 0xC + .incbin "baserom.nds", 0x4FC8, 0x4 + .incbin "baserom.nds", 0x4FCC, 0x4 + .incbin "baserom.nds", 0x4FD0, 0x4 + .incbin "baserom.nds", 0x4FD4, 0x4 + .incbin "baserom.nds", 0x4FD8, 0x4 + .incbin "baserom.nds", 0x4FDC, 0x4 + .incbin "baserom.nds", 0x4FE0, 0x4 + .incbin "baserom.nds", 0x4FE4, 0x8 + .incbin "baserom.nds", 0x4FEC, 0x4 + .incbin "baserom.nds", 0x4FF0, 0x4 + .incbin "baserom.nds", 0x4FF4, 0x4 + .incbin "baserom.nds", 0x4FF8, 0x10 + .incbin "baserom.nds", 0x5008, 0x4 + .incbin "baserom.nds", 0x500C, 0x4 + .incbin "baserom.nds", 0x5010, 0x4 + .incbin "baserom.nds", 0x5014, 0x4 + .incbin "baserom.nds", 0x5018, 0x4 + .incbin "baserom.nds", 0x501C, 0x4 + .incbin "baserom.nds", 0x5020, 0x4 + .incbin "baserom.nds", 0x5024, 0x24 + .incbin "baserom.nds", 0x5048, 0x24 + .incbin "baserom.nds", 0x506C, 0x4 + .incbin "baserom.nds", 0x5070, 0x4 + .incbin "baserom.nds", 0x5074, 0xC + .incbin "baserom.nds", 0x5080, 0x4 + .incbin "baserom.nds", 0x5084, 0x4 + .incbin "baserom.nds", 0x5088, 0x4 + .incbin "baserom.nds", 0x508C, 0x4 + .incbin "baserom.nds", 0x5090, 0x4 + .incbin "baserom.nds", 0x5094, 0x4 + .incbin "baserom.nds", 0x5098, 0x4 + .incbin "baserom.nds", 0x509C, 0x4 + .incbin "baserom.nds", 0x50A0, 0x4 + .incbin "baserom.nds", 0x50A4, 0x4 + .incbin "baserom.nds", 0x50A8, 0x4 + .incbin "baserom.nds", 0x50AC, 0x4 + .incbin "baserom.nds", 0x50B0, 0x4 + .incbin "baserom.nds", 0x50B4, 0x4 + .incbin "baserom.nds", 0x50B8, 0x4 + .incbin "baserom.nds", 0x50BC, 0x4 + .incbin "baserom.nds", 0x50C0, 0x4 + .incbin "baserom.nds", 0x50C4, 0x4 + .incbin "baserom.nds", 0x50C8, 0x4 + .incbin "baserom.nds", 0x50CC, 0x4 + .incbin "baserom.nds", 0x50D0, 0x4 + .incbin "baserom.nds", 0x50D4, 0x4 + .incbin "baserom.nds", 0x50D8, 0x4 + .incbin "baserom.nds", 0x50DC, 0x4 + .incbin "baserom.nds", 0x50E0, 0x4 + .incbin "baserom.nds", 0x50E4, 0x4 + .incbin "baserom.nds", 0x50E8, 0x4 + .incbin "baserom.nds", 0x50EC, 0x4 + .incbin "baserom.nds", 0x50F0, 0x4 + .incbin "baserom.nds", 0x50F4, 0x4 + .incbin "baserom.nds", 0x50F8, 0x4 + .incbin "baserom.nds", 0x50FC, 0x4 + .incbin "baserom.nds", 0x5100, 0x4 + .incbin "baserom.nds", 0x5104, 0x4 + .incbin "baserom.nds", 0x5108, 0x4 + .incbin "baserom.nds", 0x510C, 0x4 + .incbin "baserom.nds", 0x5110, 0x4 + .incbin "baserom.nds", 0x5114, 0x4 + .incbin "baserom.nds", 0x5118, 0x4 + .incbin "baserom.nds", 0x511C, 0xC + .incbin "baserom.nds", 0x5128, 0x4 + .incbin "baserom.nds", 0x512C, 0x4 + .incbin "baserom.nds", 0x5130, 0x4 + .incbin "baserom.nds", 0x5134, 0x4 + .incbin "baserom.nds", 0x5138, 0x4 + .incbin "baserom.nds", 0x513C, 0x4 + .incbin "baserom.nds", 0x5140, 0x4 + .incbin "baserom.nds", 0x5144, 0x4 + .incbin "baserom.nds", 0x5148, 0x4 + .incbin "baserom.nds", 0x514C, 0x4 + .incbin "baserom.nds", 0x5150, 0x38 + .incbin "baserom.nds", 0x5188, 0x50 + .incbin "baserom.nds", 0x51D8, 0x4 + .incbin "baserom.nds", 0x51DC, 0x4 + .incbin "baserom.nds", 0x51E0, 0x4 + .incbin "baserom.nds", 0x51E4, 0x4 + .incbin "baserom.nds", 0x51E8, 0x4 + .incbin "baserom.nds", 0x51EC, 0x4 + .incbin "baserom.nds", 0x51F0, 0x4 + .incbin "baserom.nds", 0x51F4, 0x4 + .incbin "baserom.nds", 0x51F8, 0x4 + .incbin "baserom.nds", 0x51FC, 0x4 + .incbin "baserom.nds", 0x5200, 0x4 + .incbin "baserom.nds", 0x5204, 0x4 + .incbin "baserom.nds", 0x5208, 0x4 + .incbin "baserom.nds", 0x520C, 0x4 + .incbin "baserom.nds", 0x5210, 0x4 + .incbin "baserom.nds", 0x5214, 0x4 + .incbin "baserom.nds", 0x5218, 0x4 + .incbin "baserom.nds", 0x521C, 0x4 + .incbin "baserom.nds", 0x5220, 0x4 + .incbin "baserom.nds", 0x5224, 0x4 + .incbin "baserom.nds", 0x5228, 0x4 + .incbin "baserom.nds", 0x522C, 0x4 + .incbin "baserom.nds", 0x5230, 0x4 + .incbin "baserom.nds", 0x5234, 0x4 + .incbin "baserom.nds", 0x5238, 0x4 + .incbin "baserom.nds", 0x523C, 0x4 + .incbin "baserom.nds", 0x5240, 0x4 + .incbin "baserom.nds", 0x5244, 0x20 + .incbin "baserom.nds", 0x5264, 0xC + .incbin "baserom.nds", 0x5270, 0x4 + .incbin "baserom.nds", 0x5274, 0x4 + .incbin "baserom.nds", 0x5278, 0x4 + .incbin "baserom.nds", 0x527C, 0x4 + .incbin "baserom.nds", 0x5280, 0x8 + .incbin "baserom.nds", 0x5288, 0x8 + .incbin "baserom.nds", 0x5290, 0x1C + .incbin "baserom.nds", 0x52AC, 0x4 + .incbin "baserom.nds", 0x52B0, 0x4 + .incbin "baserom.nds", 0x52B4, 0x4 + .incbin "baserom.nds", 0x52B8, 0xC + .incbin "baserom.nds", 0x52C4, 0xC + .incbin "baserom.nds", 0x52D0, 0xC + .incbin "baserom.nds", 0x52DC, 0xC + .incbin "baserom.nds", 0x52E8, 0xC + .incbin "baserom.nds", 0x52F4, 0x4 + .incbin "baserom.nds", 0x52F8, 0x4 + .incbin "baserom.nds", 0x52FC, 0x4 + .incbin "baserom.nds", 0x5300, 0x4 + .incbin "baserom.nds", 0x5304, 0x4 + .incbin "baserom.nds", 0x5308, 0x4 + .incbin "baserom.nds", 0x530C, 0x4 + .incbin "baserom.nds", 0x5310, 0x8 + .incbin "baserom.nds", 0x5318, 0x8 + .incbin "baserom.nds", 0x5320, 0x4 + .incbin "baserom.nds", 0x5324, 0x4 + .incbin "baserom.nds", 0x5328, 0x4 + .incbin "baserom.nds", 0x532C, 0x4 + .incbin "baserom.nds", 0x5330, 0x4 + .incbin "baserom.nds", 0x5334, 0x4 + .incbin "baserom.nds", 0x5338, 0x24 + .incbin "baserom.nds", 0x535C, 0x24 + .incbin "baserom.nds", 0x5380, 0x8 + .incbin "baserom.nds", 0x5388, 0x8 + .incbin "baserom.nds", 0x5390, 0x4 + .incbin "baserom.nds", 0x5394, 0x4 + .incbin "baserom.nds", 0x5398, 0x4 + .incbin "baserom.nds", 0x539C, 0x4 + .incbin "baserom.nds", 0x53A0, 0x4 + .incbin "baserom.nds", 0x53A4, 0x4 + .incbin "baserom.nds", 0x53A8, 0x4 + .incbin "baserom.nds", 0x53AC, 0x4 + .incbin "baserom.nds", 0x53B0, 0x4 + .incbin "baserom.nds", 0x53B4, 0x4 + .incbin "baserom.nds", 0x53B8, 0x4 + .incbin "baserom.nds", 0x53BC, 0x4 + .incbin "baserom.nds", 0x53C0, 0x4 + .incbin "baserom.nds", 0x53C4, 0x4 + .incbin "baserom.nds", 0x53C8, 0x4 + .incbin "baserom.nds", 0x53CC, 0x4 + .incbin "baserom.nds", 0x53D0, 0x4 + .incbin "baserom.nds", 0x53D4, 0x4 + .incbin "baserom.nds", 0x53D8, 0x4 + .incbin "baserom.nds", 0x53DC, 0x4 + .incbin "baserom.nds", 0x53E0, 0x4 + .incbin "baserom.nds", 0x53E4, 0x4 + .incbin "baserom.nds", 0x53E8, 0x4 + .incbin "baserom.nds", 0x53EC, 0xC + .incbin "baserom.nds", 0x53F8, 0x4 + .incbin "baserom.nds", 0x53FC, 0x4 + .incbin "baserom.nds", 0x5400, 0x8 + .incbin "baserom.nds", 0x5408, 0xC + .incbin "baserom.nds", 0x5414, 0x4 + .incbin "baserom.nds", 0x5418, 0x4 + .incbin "baserom.nds", 0x541C, 0x4 + .incbin "baserom.nds", 0x5420, 0x4 + .incbin "baserom.nds", 0x5424, 0x4 + .incbin "baserom.nds", 0x5428, 0x4 + .incbin "baserom.nds", 0x542C, 0x4 + .incbin "baserom.nds", 0x5430, 0x4 + .incbin "baserom.nds", 0x5434, 0x4 + .incbin "baserom.nds", 0x5438, 0x4 + .incbin "baserom.nds", 0x543C, 0x4 + .incbin "baserom.nds", 0x5440, 0x4 + .incbin "baserom.nds", 0x5444, 0x4 + .incbin "baserom.nds", 0x5448, 0x4 + .incbin "baserom.nds", 0x544C, 0x4 + .incbin "baserom.nds", 0x5450, 0x4 + .incbin "baserom.nds", 0x5454, 0x4 + .incbin "baserom.nds", 0x5458, 0x4 + .incbin "baserom.nds", 0x545C, 0x4 + .incbin "baserom.nds", 0x5460, 0x4 + .incbin "baserom.nds", 0x5464, 0x4 + .incbin "baserom.nds", 0x5468, 0x4 + .incbin "baserom.nds", 0x546C, 0x4 + .incbin "baserom.nds", 0x5470, 0x4 + .incbin "baserom.nds", 0x5474, 0x4 + .incbin "baserom.nds", 0x5478, 0x20 + .incbin "baserom.nds", 0x5498, 0x10 + .incbin "baserom.nds", 0x54A8, 0x4 + .incbin "baserom.nds", 0x54AC, 0x2C + .incbin "baserom.nds", 0x54D8, 0x18 + .incbin "baserom.nds", 0x54F0, 0x4 + .incbin "baserom.nds", 0x54F4, 0x20 + .incbin "baserom.nds", 0x5514, 0x18 + .incbin "baserom.nds", 0x552C, 0x8 + .incbin "baserom.nds", 0x5534, 0x4 + .incbin "baserom.nds", 0x5538, 0x10 + .incbin "baserom.nds", 0x5548, 0x4 + .incbin "baserom.nds", 0x554C, 0x4 + .incbin "baserom.nds", 0x5550, 0x4 + .incbin "baserom.nds", 0x5554, 0x4 + .incbin "baserom.nds", 0x5558, 0x4 + .incbin "baserom.nds", 0x555C, 0x4 + .incbin "baserom.nds", 0x5560, 0x4 + .incbin "baserom.nds", 0x5564, 0x4 + .incbin "baserom.nds", 0x5568, 0x4 + .incbin "baserom.nds", 0x556C, 0x4 + .incbin "baserom.nds", 0x5570, 0x14 + .incbin "baserom.nds", 0x5584, 0x18 + .incbin "baserom.nds", 0x559C, 0x20 + .incbin "baserom.nds", 0x55BC, 0x4 + .incbin "baserom.nds", 0x55C0, 0x4 + .incbin "baserom.nds", 0x55C4, 0x24 + .incbin "baserom.nds", 0x55E8, 0x1C + .incbin "baserom.nds", 0x5604, 0x4 + .incbin "baserom.nds", 0x5608, 0x4 + .incbin "baserom.nds", 0x560C, 0x4 + .incbin "baserom.nds", 0x5610, 0x4 + .incbin "baserom.nds", 0x5614, 0x4 + .incbin "baserom.nds", 0x5618, 0x4 + .incbin "baserom.nds", 0x561C, 0x4 + .incbin "baserom.nds", 0x5620, 0x4 + .incbin "baserom.nds", 0x5624, 0x4 + .incbin "baserom.nds", 0x5628, 0xC + .incbin "baserom.nds", 0x5634, 0x10 + .incbin "baserom.nds", 0x5644, 0xC + .incbin "baserom.nds", 0x5650, 0x8 + .incbin "baserom.nds", 0x5658, 0x4 + .incbin "baserom.nds", 0x565C, 0x4 + .incbin "baserom.nds", 0x5660, 0xC + .incbin "baserom.nds", 0x566C, 0x4 + .incbin "baserom.nds", 0x5670, 0xC + .incbin "baserom.nds", 0x567C, 0x4 + .incbin "baserom.nds", 0x5680, 0x4 + .incbin "baserom.nds", 0x5684, 0x4 + .incbin "baserom.nds", 0x5688, 0x4 + .incbin "baserom.nds", 0x568C, 0x4 + .incbin "baserom.nds", 0x5690, 0x4 + .incbin "baserom.nds", 0x5694, 0x4 + .incbin "baserom.nds", 0x5698, 0x4 + .incbin "baserom.nds", 0x569C, 0x8 + .incbin "baserom.nds", 0x56A4, 0x4 + .incbin "baserom.nds", 0x56A8, 0x4 + .incbin "baserom.nds", 0x56AC, 0x4 + .incbin "baserom.nds", 0x56B0, 0x4 + .incbin "baserom.nds", 0x56B4, 0x4 + .incbin "baserom.nds", 0x56B8, 0x28 + .incbin "baserom.nds", 0x56E0, 0x28 + .incbin "baserom.nds", 0x5708, 0xC + .incbin "baserom.nds", 0x5714, 0x10 + .incbin "baserom.nds", 0x5724, 0x4 + .incbin "baserom.nds", 0x5728, 0x4 + .incbin "baserom.nds", 0x572C, 0x4 + .incbin "baserom.nds", 0x5730, 0x4 + .incbin "baserom.nds", 0x5734, 0x4 + .incbin "baserom.nds", 0x5738, 0x4 + .incbin "baserom.nds", 0x573C, 0x4 + .incbin "baserom.nds", 0x5740, 0x4 + .incbin "baserom.nds", 0x5744, 0x4 + .incbin "baserom.nds", 0x5748, 0x4 + .incbin "baserom.nds", 0x574C, 0x4 + .incbin "baserom.nds", 0x5750, 0x4 + .incbin "baserom.nds", 0x5754, 0x4 + .incbin "baserom.nds", 0x5758, 0x4 + .incbin "baserom.nds", 0x575C, 0x4 + .incbin "baserom.nds", 0x5760, 0x4 + .incbin "baserom.nds", 0x5764, 0x4 + .incbin "baserom.nds", 0x5768, 0x4 + .incbin "baserom.nds", 0x576C, 0x4 + .incbin "baserom.nds", 0x5770, 0x4 + .incbin "baserom.nds", 0x5774, 0x4 + .incbin "baserom.nds", 0x5778, 0x4 + .incbin "baserom.nds", 0x577C, 0x4 + .incbin "baserom.nds", 0x5780, 0x4 + .incbin "baserom.nds", 0x5784, 0x4 + .incbin "baserom.nds", 0x5788, 0x4 + .incbin "baserom.nds", 0x578C, 0x4 + .incbin "baserom.nds", 0x5790, 0x4 + .incbin "baserom.nds", 0x5794, 0x4 + .incbin "baserom.nds", 0x5798, 0x4 + .incbin "baserom.nds", 0x579C, 0x4 + .incbin "baserom.nds", 0x57A0, 0x4 + .incbin "baserom.nds", 0x57A4, 0x4 + .incbin "baserom.nds", 0x57A8, 0x4 + .incbin "baserom.nds", 0x57AC, 0x4 + .incbin "baserom.nds", 0x57B0, 0x68 + .incbin "baserom.nds", 0x5818, 0x4 + .incbin "baserom.nds", 0x581C, 0x4 + .incbin "baserom.nds", 0x5820, 0x4 + .incbin "baserom.nds", 0x5824, 0x4 + .incbin "baserom.nds", 0x5828, 0x4 + .incbin "baserom.nds", 0x582C, 0x4 + .incbin "baserom.nds", 0x5830, 0x4 + .incbin "baserom.nds", 0x5834, 0x4 + .incbin "baserom.nds", 0x5838, 0x4 + .incbin "baserom.nds", 0x583C, 0x4 + .incbin "baserom.nds", 0x5840, 0x4 + .incbin "baserom.nds", 0x5844, 0x4 + .incbin "baserom.nds", 0x5848, 0x4 + .incbin "baserom.nds", 0x584C, 0x4 + .incbin "baserom.nds", 0x5850, 0x4 + .incbin "baserom.nds", 0x5854, 0x4 + .incbin "baserom.nds", 0x5858, 0x4 + .incbin "baserom.nds", 0x585C, 0x4 + .incbin "baserom.nds", 0x5860, 0xC + .incbin "baserom.nds", 0x586C, 0xC + .incbin "baserom.nds", 0x5878, 0xC + .incbin "baserom.nds", 0x5884, 0x14 + .incbin "baserom.nds", 0x5898, 0x4 + .incbin "baserom.nds", 0x589C, 0x4 + .incbin "baserom.nds", 0x58A0, 0x4 + .incbin "baserom.nds", 0x58A4, 0x4 + .incbin "baserom.nds", 0x58A8, 0x4 + .incbin "baserom.nds", 0x58AC, 0x4 + .incbin "baserom.nds", 0x58B0, 0x4 + .incbin "baserom.nds", 0x58B4, 0x4 + .incbin "baserom.nds", 0x58B8, 0x4 + .incbin "baserom.nds", 0x58BC, 0x4 + .incbin "baserom.nds", 0x58C0, 0x4 + .incbin "baserom.nds", 0x58C4, 0x4 + .incbin "baserom.nds", 0x58C8, 0x4 + .incbin "baserom.nds", 0x58CC, 0x4 + .incbin "baserom.nds", 0x58D0, 0x4 + .incbin "baserom.nds", 0x58D4, 0x4 + .incbin "baserom.nds", 0x58D8, 0x4 + .incbin "baserom.nds", 0x58DC, 0x4 + .incbin "baserom.nds", 0x58E0, 0x34 + .incbin "baserom.nds", 0x5914, 0xC + .incbin "baserom.nds", 0x5920, 0xC + .incbin "baserom.nds", 0x592C, 0x10 + .incbin "baserom.nds", 0x593C, 0x4 + .incbin "baserom.nds", 0x5940, 0x4 + .incbin "baserom.nds", 0x5944, 0x4 + .incbin "baserom.nds", 0x5948, 0x4 + .incbin "baserom.nds", 0x594C, 0x4 + .incbin "baserom.nds", 0x5950, 0x8 + .incbin "baserom.nds", 0x5958, 0x8 + .incbin "baserom.nds", 0x5960, 0x4 + .incbin "baserom.nds", 0x5964, 0x4 + .incbin "baserom.nds", 0x5968, 0x34 + .incbin "baserom.nds", 0x599C, 0x44 + .incbin "baserom.nds", 0x59E0, 0x4 + .incbin "baserom.nds", 0x59E4, 0x4 + .incbin "baserom.nds", 0x59E8, 0x4 + .incbin "baserom.nds", 0x59EC, 0x4 + .incbin "baserom.nds", 0x59F0, 0x10 + .incbin "baserom.nds", 0x5A00, 0x10 + .incbin "baserom.nds", 0x5A10, 0x4 + .incbin "baserom.nds", 0x5A14, 0xC + .incbin "baserom.nds", 0x5A20, 0x8 + .incbin "baserom.nds", 0x5A28, 0x4 + .incbin "baserom.nds", 0x5A2C, 0x10 + .incbin "baserom.nds", 0x5A3C, 0x20 + .incbin "baserom.nds", 0x5A5C, 0x4 + .incbin "baserom.nds", 0x5A60, 0xC + .incbin "baserom.nds", 0x5A6C, 0x10 + .incbin "baserom.nds", 0x5A7C, 0x4 + .incbin "baserom.nds", 0x5A80, 0x34 + .incbin "baserom.nds", 0x5AB4, 0x4C + .incbin "baserom.nds", 0x5B00, 0x20 + .incbin "baserom.nds", 0x5B20, 0x1C + .incbin "baserom.nds", 0x5B3C, 0x4 + .incbin "baserom.nds", 0x5B40, 0x1C + .incbin "baserom.nds", 0x5B5C, 0x4 + .incbin "baserom.nds", 0x5B60, 0x4 + .incbin "baserom.nds", 0x5B64, 0x4 + .incbin "baserom.nds", 0x5B68, 0x4 + .incbin "baserom.nds", 0x5B6C, 0x4 + .incbin "baserom.nds", 0x5B70, 0x4 + .incbin "baserom.nds", 0x5B74, 0x4 + .incbin "baserom.nds", 0x5B78, 0x4 + .incbin "baserom.nds", 0x5B7C, 0xC + .incbin "baserom.nds", 0x5B88, 0xC + .incbin "baserom.nds", 0x5B94, 0x4 + .incbin "baserom.nds", 0x5B98, 0x4 + .incbin "baserom.nds", 0x5B9C, 0x10 + .incbin "baserom.nds", 0x5BAC, 0x4 + .incbin "baserom.nds", 0x5BB0, 0x8 + .incbin "baserom.nds", 0x5BB8, 0x4 + .incbin "baserom.nds", 0x5BBC, 0x4 + .incbin "baserom.nds", 0x5BC0, 0x4 + .incbin "baserom.nds", 0x5BC4, 0x4 + .incbin "baserom.nds", 0x5BC8, 0x4 + .incbin "baserom.nds", 0x5BCC, 0x4 + .incbin "baserom.nds", 0x5BD0, 0x4 + .incbin "baserom.nds", 0x5BD4, 0x4 + .incbin "baserom.nds", 0x5BD8, 0x4 + .incbin "baserom.nds", 0x5BDC, 0x4 + .incbin "baserom.nds", 0x5BE0, 0x4 + .incbin "baserom.nds", 0x5BE4, 0x4 + .incbin "baserom.nds", 0x5BE8, 0x4 + .incbin "baserom.nds", 0x5BEC, 0x4 + .incbin "baserom.nds", 0x5BF0, 0x4 + .incbin "baserom.nds", 0x5BF4, 0x4 + .incbin "baserom.nds", 0x5BF8, 0x4 + .incbin "baserom.nds", 0x5BFC, 0xC + .incbin "baserom.nds", 0x5C08, 0xC + .incbin "baserom.nds", 0x5C14, 0x10 + .incbin "baserom.nds", 0x5C24, 0xC + .incbin "baserom.nds", 0x5C30, 0x4 + .incbin "baserom.nds", 0x5C34, 0x4 + .incbin "baserom.nds", 0x5C38, 0x8 + .incbin "baserom.nds", 0x5C40, 0x8 + .incbin "baserom.nds", 0x5C48, 0x24 + .incbin "baserom.nds", 0x5C6C, 0x24 + .incbin "baserom.nds", 0x5C90, 0xC + .incbin "baserom.nds", 0x5C9C, 0x4 + .incbin "baserom.nds", 0x5CA0, 0xC + .incbin "baserom.nds", 0x5CAC, 0x8 + .incbin "baserom.nds", 0x5CB4, 0x4 + .incbin "baserom.nds", 0x5CB8, 0x4 + .incbin "baserom.nds", 0x5CBC, 0x4 + .incbin "baserom.nds", 0x5CC0, 0x4 + .incbin "baserom.nds", 0x5CC4, 0x4 + .incbin "baserom.nds", 0x5CC8, 0x94 + .incbin "baserom.nds", 0x5D5C, 0x94 + .incbin "baserom.nds", 0x5DF0, 0x4 + .incbin "baserom.nds", 0x5DF4, 0x4 + .incbin "baserom.nds", 0x5DF8, 0x4 + .incbin "baserom.nds", 0x5DFC, 0x4 + .incbin "baserom.nds", 0x5E00, 0x4 + .incbin "baserom.nds", 0x5E04, 0x4 + .incbin "baserom.nds", 0x5E08, 0x4 + .incbin "baserom.nds", 0x5E0C, 0x4 + .incbin "baserom.nds", 0x5E10, 0x4 + .incbin "baserom.nds", 0x5E14, 0x4 + .incbin "baserom.nds", 0x5E18, 0x4 + .incbin "baserom.nds", 0x5E1C, 0x4 + .incbin "baserom.nds", 0x5E20, 0x4 + .incbin "baserom.nds", 0x5E24, 0x4 + .incbin "baserom.nds", 0x5E28, 0x4 + .incbin "baserom.nds", 0x5E2C, 0x4 + .incbin "baserom.nds", 0x5E30, 0x4 + .incbin "baserom.nds", 0x5E34, 0x4 + .incbin "baserom.nds", 0x5E38, 0x4 + .incbin "baserom.nds", 0x5E3C, 0x4 + .incbin "baserom.nds", 0x5E40, 0x4 + .incbin "baserom.nds", 0x5E44, 0x4 + .incbin "baserom.nds", 0x5E48, 0x4 + .incbin "baserom.nds", 0x5E4C, 0x4 + .incbin "baserom.nds", 0x5E50, 0x4 + .incbin "baserom.nds", 0x5E54, 0x4 + .incbin "baserom.nds", 0x5E58, 0x4 + .incbin "baserom.nds", 0x5E5C, 0x4 + .incbin "baserom.nds", 0x5E60, 0x4 + .incbin "baserom.nds", 0x5E64, 0x4 + .incbin "baserom.nds", 0x5E68, 0x4 + .incbin "baserom.nds", 0x5E6C, 0x4 + .incbin "baserom.nds", 0x5E70, 0xC + .incbin "baserom.nds", 0x5E7C, 0x18 + .incbin "baserom.nds", 0x5E94, 0x4 + .incbin "baserom.nds", 0x5E98, 0x4 + .incbin "baserom.nds", 0x5E9C, 0x4 + .incbin "baserom.nds", 0x5EA0, 0x8 + .incbin "baserom.nds", 0x5EA8, 0x4 + .incbin "baserom.nds", 0x5EAC, 0x8 + .incbin "baserom.nds", 0x5EB4, 0x8 + .incbin "baserom.nds", 0x5EBC, 0x4 + .incbin "baserom.nds", 0x5EC0, 0x4 + .incbin "baserom.nds", 0x5EC4, 0x4 + .incbin "baserom.nds", 0x5EC8, 0x4 + .incbin "baserom.nds", 0x5ECC, 0x4 + .incbin "baserom.nds", 0x5ED0, 0x4 + .incbin "baserom.nds", 0x5ED4, 0x4 + .incbin "baserom.nds", 0x5ED8, 0x4 + .incbin "baserom.nds", 0x5EDC, 0x4 + .incbin "baserom.nds", 0x5EE0, 0x4 + .incbin "baserom.nds", 0x5EE4, 0x4 + .incbin "baserom.nds", 0x5EE8, 0x4 + .incbin "baserom.nds", 0x5EEC, 0x4 + .incbin "baserom.nds", 0x5EF0, 0x4 + .incbin "baserom.nds", 0x5EF4, 0x4 + .incbin "baserom.nds", 0x5EF8, 0x4 + .incbin "baserom.nds", 0x5EFC, 0x4 + .incbin "baserom.nds", 0x5F00, 0x4 + .incbin "baserom.nds", 0x5F04, 0x4 + .incbin "baserom.nds", 0x5F08, 0x4 + .incbin "baserom.nds", 0x5F0C, 0x4 + .incbin "baserom.nds", 0x5F10, 0x4 + .incbin "baserom.nds", 0x5F14, 0x8 + .incbin "baserom.nds", 0x5F1C, 0x8 + .incbin "baserom.nds", 0x5F24, 0x4 + .incbin "baserom.nds", 0x5F28, 0x4 + .incbin "baserom.nds", 0x5F2C, 0x4 + .incbin "baserom.nds", 0x5F30, 0x4 + .incbin "baserom.nds", 0x5F34, 0x4 + .incbin "baserom.nds", 0x5F38, 0x4 + .incbin "baserom.nds", 0x5F3C, 0x4 + .incbin "baserom.nds", 0x5F40, 0xC + .incbin "baserom.nds", 0x5F4C, 0x4 + .incbin "baserom.nds", 0x5F50, 0x4 + .incbin "baserom.nds", 0x5F54, 0x4 + .incbin "baserom.nds", 0x5F58, 0x4 + .incbin "baserom.nds", 0x5F5C, 0x4 + .incbin "baserom.nds", 0x5F60, 0x4 + .incbin "baserom.nds", 0x5F64, 0x4 + .incbin "baserom.nds", 0x5F68, 0x8 + .incbin "baserom.nds", 0x5F70, 0x4 + .incbin "baserom.nds", 0x5F74, 0x4 + .incbin "baserom.nds", 0x5F78, 0x4 + .incbin "baserom.nds", 0x5F7C, 0x10 + .incbin "baserom.nds", 0x5F8C, 0x4 + .incbin "baserom.nds", 0x5F90, 0x4 + .incbin "baserom.nds", 0x5F94, 0x4 + .incbin "baserom.nds", 0x5F98, 0x4 + .incbin "baserom.nds", 0x5F9C, 0x4 + .incbin "baserom.nds", 0x5FA0, 0x4 + .incbin "baserom.nds", 0x5FA4, 0x4 + .incbin "baserom.nds", 0x5FA8, 0x24 + .incbin "baserom.nds", 0x5FCC, 0x24 + .incbin "baserom.nds", 0x5FF0, 0x4 + .incbin "baserom.nds", 0x5FF4, 0x4 + .incbin "baserom.nds", 0x5FF8, 0xC + .incbin "baserom.nds", 0x6004, 0x4 + .incbin "baserom.nds", 0x6008, 0x4 + .incbin "baserom.nds", 0x600C, 0x4 + .incbin "baserom.nds", 0x6010, 0x4 + .incbin "baserom.nds", 0x6014, 0x4 + .incbin "baserom.nds", 0x6018, 0x4 + .incbin "baserom.nds", 0x601C, 0x4 + .incbin "baserom.nds", 0x6020, 0x4 + .incbin "baserom.nds", 0x6024, 0x4 + .incbin "baserom.nds", 0x6028, 0x4 + .incbin "baserom.nds", 0x602C, 0x4 + .incbin "baserom.nds", 0x6030, 0x4 + .incbin "baserom.nds", 0x6034, 0x4 + .incbin "baserom.nds", 0x6038, 0x4 + .incbin "baserom.nds", 0x603C, 0x4 + .incbin "baserom.nds", 0x6040, 0x4 + .incbin "baserom.nds", 0x6044, 0x4 + .incbin "baserom.nds", 0x6048, 0x4 + .incbin "baserom.nds", 0x604C, 0x4 + .incbin "baserom.nds", 0x6050, 0x4 + .incbin "baserom.nds", 0x6054, 0x4 + .incbin "baserom.nds", 0x6058, 0x4 + .incbin "baserom.nds", 0x605C, 0x4 + .incbin "baserom.nds", 0x6060, 0x4 + .incbin "baserom.nds", 0x6064, 0x4 + .incbin "baserom.nds", 0x6068, 0x4 + .incbin "baserom.nds", 0x606C, 0x4 + .incbin "baserom.nds", 0x6070, 0x4 + .incbin "baserom.nds", 0x6074, 0x4 + .incbin "baserom.nds", 0x6078, 0x4 + .incbin "baserom.nds", 0x607C, 0x4 + .incbin "baserom.nds", 0x6080, 0x4 + .incbin "baserom.nds", 0x6084, 0x4 + .incbin "baserom.nds", 0x6088, 0x4 + .incbin "baserom.nds", 0x608C, 0x4 + .incbin "baserom.nds", 0x6090, 0x4 + .incbin "baserom.nds", 0x6094, 0x4 + .incbin "baserom.nds", 0x6098, 0x4 + .incbin "baserom.nds", 0x609C, 0x4 + .incbin "baserom.nds", 0x60A0, 0xC + .incbin "baserom.nds", 0x60AC, 0x4 + .incbin "baserom.nds", 0x60B0, 0x4 + .incbin "baserom.nds", 0x60B4, 0x4 + .incbin "baserom.nds", 0x60B8, 0x4 + .incbin "baserom.nds", 0x60BC, 0x4 + .incbin "baserom.nds", 0x60C0, 0x4 + .incbin "baserom.nds", 0x60C4, 0x4 + .incbin "baserom.nds", 0x60C8, 0x4 + .incbin "baserom.nds", 0x60CC, 0x4 + .incbin "baserom.nds", 0x60D0, 0x4 + .incbin "baserom.nds", 0x60D4, 0x38 + .incbin "baserom.nds", 0x610C, 0x50 + .incbin "baserom.nds", 0x615C, 0x4 + .incbin "baserom.nds", 0x6160, 0x4 + .incbin "baserom.nds", 0x6164, 0x4 + .incbin "baserom.nds", 0x6168, 0x4 + .incbin "baserom.nds", 0x616C, 0x4 + .incbin "baserom.nds", 0x6170, 0x4 + .incbin "baserom.nds", 0x6174, 0x4 + .incbin "baserom.nds", 0x6178, 0x4 + .incbin "baserom.nds", 0x617C, 0x4 + .incbin "baserom.nds", 0x6180, 0x4 + .incbin "baserom.nds", 0x6184, 0x4 + .incbin "baserom.nds", 0x6188, 0x4 + .incbin "baserom.nds", 0x618C, 0x4 + .incbin "baserom.nds", 0x6190, 0x4 + .incbin "baserom.nds", 0x6194, 0x4 + .incbin "baserom.nds", 0x6198, 0x4 + .incbin "baserom.nds", 0x619C, 0x4 + .incbin "baserom.nds", 0x61A0, 0x4 + .incbin "baserom.nds", 0x61A4, 0x4 + .incbin "baserom.nds", 0x61A8, 0x4 + .incbin "baserom.nds", 0x61AC, 0x4 + .incbin "baserom.nds", 0x61B0, 0x4 + .incbin "baserom.nds", 0x61B4, 0x4 + .incbin "baserom.nds", 0x61B8, 0x4 + .incbin "baserom.nds", 0x61BC, 0x4 + .incbin "baserom.nds", 0x61C0, 0x4 + .incbin "baserom.nds", 0x61C4, 0x4 + .incbin "baserom.nds", 0x61C8, 0x18 + .incbin "baserom.nds", 0x61E0, 0xC + .incbin "baserom.nds", 0x61EC, 0x4 + .incbin "baserom.nds", 0x61F0, 0x4 + .incbin "baserom.nds", 0x61F4, 0x4 + .incbin "baserom.nds", 0x61F8, 0x4 + .incbin "baserom.nds", 0x61FC, 0x8 + .incbin "baserom.nds", 0x6204, 0x8 + .incbin "baserom.nds", 0x620C, 0x1C + .incbin "baserom.nds", 0x6228, 0x4 + .incbin "baserom.nds", 0x622C, 0x4 + .incbin "baserom.nds", 0x6230, 0x4 + .incbin "baserom.nds", 0x6234, 0xC + .incbin "baserom.nds", 0x6240, 0xC + .incbin "baserom.nds", 0x624C, 0xC + .incbin "baserom.nds", 0x6258, 0xC + .incbin "baserom.nds", 0x6264, 0xC + .incbin "baserom.nds", 0x6270, 0x4 + .incbin "baserom.nds", 0x6274, 0x4 + .incbin "baserom.nds", 0x6278, 0x4 + .incbin "baserom.nds", 0x627C, 0x4 + .incbin "baserom.nds", 0x6280, 0x4 + .incbin "baserom.nds", 0x6284, 0x4 + .incbin "baserom.nds", 0x6288, 0x4 + .incbin "baserom.nds", 0x628C, 0x8 + .incbin "baserom.nds", 0x6294, 0x8 + .incbin "baserom.nds", 0x629C, 0x4 + .incbin "baserom.nds", 0x62A0, 0x4 + .incbin "baserom.nds", 0x62A4, 0x4 + .incbin "baserom.nds", 0x62A8, 0x4 + .incbin "baserom.nds", 0x62AC, 0x4 + .incbin "baserom.nds", 0x62B0, 0x4 + .incbin "baserom.nds", 0x62B4, 0x24 + .incbin "baserom.nds", 0x62D8, 0x24 + .incbin "baserom.nds", 0x62FC, 0x8 + .incbin "baserom.nds", 0x6304, 0x8 + .incbin "baserom.nds", 0x630C, 0x4 + .incbin "baserom.nds", 0x6310, 0x4 + .incbin "baserom.nds", 0x6314, 0x4 + .incbin "baserom.nds", 0x6318, 0x4 + .incbin "baserom.nds", 0x631C, 0x4 + .incbin "baserom.nds", 0x6320, 0x4 + .incbin "baserom.nds", 0x6324, 0x4 + .incbin "baserom.nds", 0x6328, 0x4 + .incbin "baserom.nds", 0x632C, 0x4 + .incbin "baserom.nds", 0x6330, 0x4 + .incbin "baserom.nds", 0x6334, 0x4 + .incbin "baserom.nds", 0x6338, 0x14 + .incbin "baserom.nds", 0x634C, 0x4 + .incbin "baserom.nds", 0x6350, 0x4 + .incbin "baserom.nds", 0x6354, 0x4 + .incbin "baserom.nds", 0x6358, 0x4 + .incbin "baserom.nds", 0x635C, 0x4 + .incbin "baserom.nds", 0x6360, 0x4 + .incbin "baserom.nds", 0x6364, 0x4 + .incbin "baserom.nds", 0x6368, 0x4 + .incbin "baserom.nds", 0x636C, 0x4 + .incbin "baserom.nds", 0x6370, 0x4 + .incbin "baserom.nds", 0x6374, 0x4 + .incbin "baserom.nds", 0x6378, 0xC + .incbin "baserom.nds", 0x6384, 0x4 + .incbin "baserom.nds", 0x6388, 0x4 + .incbin "baserom.nds", 0x638C, 0x8 + .incbin "baserom.nds", 0x6394, 0xC + .incbin "baserom.nds", 0x63A0, 0x4 + .incbin "baserom.nds", 0x63A4, 0x4 + .incbin "baserom.nds", 0x63A8, 0x4 + .incbin "baserom.nds", 0x63AC, 0x4 + .incbin "baserom.nds", 0x63B0, 0x4 + .incbin "baserom.nds", 0x63B4, 0x4 + .incbin "baserom.nds", 0x63B8, 0x4 + .incbin "baserom.nds", 0x63BC, 0x4 + .incbin "baserom.nds", 0x63C0, 0x4 + .incbin "baserom.nds", 0x63C4, 0x4 + .incbin "baserom.nds", 0x63C8, 0x4 + .incbin "baserom.nds", 0x63CC, 0x4 + .incbin "baserom.nds", 0x63D0, 0x4 + .incbin "baserom.nds", 0x63D4, 0x4 + .incbin "baserom.nds", 0x63D8, 0x4 + .incbin "baserom.nds", 0x63DC, 0x4 + .incbin "baserom.nds", 0x63E0, 0x4 + .incbin "baserom.nds", 0x63E4, 0x4 + .incbin "baserom.nds", 0x63E8, 0x4 + .incbin "baserom.nds", 0x63EC, 0x4 + .incbin "baserom.nds", 0x63F0, 0x4 + .incbin "baserom.nds", 0x63F4, 0x4 + .incbin "baserom.nds", 0x63F8, 0x4 + .incbin "baserom.nds", 0x63FC, 0x4 + .incbin "baserom.nds", 0x6400, 0x4 + .incbin "baserom.nds", 0x6404, 0x20 + .incbin "baserom.nds", 0x6424, 0x10 + .incbin "baserom.nds", 0x6434, 0x4 + .incbin "baserom.nds", 0x6438, 0x2C + .incbin "baserom.nds", 0x6464, 0x18 + .incbin "baserom.nds", 0x647C, 0x18 + .incbin "baserom.nds", 0x6494, 0x20 + .incbin "baserom.nds", 0x64B4, 0x18 + .incbin "baserom.nds", 0x64CC, 0x8 + .incbin "baserom.nds", 0x64D4, 0x4 + .incbin "baserom.nds", 0x64D8, 0x10 + .incbin "baserom.nds", 0x64E8, 0x4 + .incbin "baserom.nds", 0x64EC, 0x4 + .incbin "baserom.nds", 0x64F0, 0x4 + .incbin "baserom.nds", 0x64F4, 0x4 + .incbin "baserom.nds", 0x64F8, 0x4 + .incbin "baserom.nds", 0x64FC, 0x4 + .incbin "baserom.nds", 0x6500, 0x4 + .incbin "baserom.nds", 0x6504, 0x4 + .incbin "baserom.nds", 0x6508, 0x4 + .incbin "baserom.nds", 0x650C, 0x4 + .incbin "baserom.nds", 0x6510, 0x14 + .incbin "baserom.nds", 0x6524, 0x18 + .incbin "baserom.nds", 0x653C, 0x20 + .incbin "baserom.nds", 0x655C, 0x4 + .incbin "baserom.nds", 0x6560, 0x4 + .incbin "baserom.nds", 0x6564, 0x24 + .incbin "baserom.nds", 0x6588, 0x1C + .incbin "baserom.nds", 0x65A4, 0x4 + .incbin "baserom.nds", 0x65A8, 0x4 + .incbin "baserom.nds", 0x65AC, 0x4 + .incbin "baserom.nds", 0x65B0, 0x4 + .incbin "baserom.nds", 0x65B4, 0x4 + .incbin "baserom.nds", 0x65B8, 0x4 + .incbin "baserom.nds", 0x65BC, 0x4 + .incbin "baserom.nds", 0x65C0, 0x4 + .incbin "baserom.nds", 0x65C4, 0x4 + .incbin "baserom.nds", 0x65C8, 0xC + .incbin "baserom.nds", 0x65D4, 0x10 + .incbin "baserom.nds", 0x65E4, 0xC + .incbin "baserom.nds", 0x65F0, 0x8 + .incbin "baserom.nds", 0x65F8, 0x4 + .incbin "baserom.nds", 0x65FC, 0x4 + .incbin "baserom.nds", 0x6600, 0xC + .incbin "baserom.nds", 0x660C, 0x4 + .incbin "baserom.nds", 0x6610, 0x4 + .incbin "baserom.nds", 0x6614, 0x4 + .incbin "baserom.nds", 0x6618, 0x4 + .incbin "baserom.nds", 0x661C, 0x4 + .incbin "baserom.nds", 0x6620, 0x4 + .incbin "baserom.nds", 0x6624, 0x4 + .incbin "baserom.nds", 0x6628, 0x4 + .incbin "baserom.nds", 0x662C, 0x4 + .incbin "baserom.nds", 0x6630, 0x4 + .incbin "baserom.nds", 0x6634, 0x8 + .incbin "baserom.nds", 0x663C, 0x4 + .incbin "baserom.nds", 0x6640, 0x4 + .incbin "baserom.nds", 0x6644, 0x4 + .incbin "baserom.nds", 0x6648, 0x4 + .incbin "baserom.nds", 0x664C, 0x4 + .incbin "baserom.nds", 0x6650, 0x28 + .incbin "baserom.nds", 0x6678, 0x28 + .incbin "baserom.nds", 0x66A0, 0xC + .incbin "baserom.nds", 0x66AC, 0x10 + .incbin "baserom.nds", 0x66BC, 0x4 + .incbin "baserom.nds", 0x66C0, 0x4 + .incbin "baserom.nds", 0x66C4, 0x4 + .incbin "baserom.nds", 0x66C8, 0x4 + .incbin "baserom.nds", 0x66CC, 0x4 + .incbin "baserom.nds", 0x66D0, 0x4 + .incbin "baserom.nds", 0x66D4, 0x4 + .incbin "baserom.nds", 0x66D8, 0x4 + .incbin "baserom.nds", 0x66DC, 0x4 + .incbin "baserom.nds", 0x66E0, 0x4 + .incbin "baserom.nds", 0x66E4, 0x4 + .incbin "baserom.nds", 0x66E8, 0x4 + .incbin "baserom.nds", 0x66EC, 0x4 + .incbin "baserom.nds", 0x66F0, 0x4 + .incbin "baserom.nds", 0x66F4, 0x4 + .incbin "baserom.nds", 0x66F8, 0x4 + .incbin "baserom.nds", 0x66FC, 0x4 + .incbin "baserom.nds", 0x6700, 0x4 + .incbin "baserom.nds", 0x6704, 0x4 + .incbin "baserom.nds", 0x6708, 0x4 + .incbin "baserom.nds", 0x670C, 0x4 + .incbin "baserom.nds", 0x6710, 0x4 + .incbin "baserom.nds", 0x6714, 0x4 + .incbin "baserom.nds", 0x6718, 0x4 + .incbin "baserom.nds", 0x671C, 0x4 + .incbin "baserom.nds", 0x6720, 0x4 + .incbin "baserom.nds", 0x6724, 0x4 + .incbin "baserom.nds", 0x6728, 0x4 + .incbin "baserom.nds", 0x672C, 0x4 + .incbin "baserom.nds", 0x6730, 0x4 + .incbin "baserom.nds", 0x6734, 0x4 + .incbin "baserom.nds", 0x6738, 0x4 + .incbin "baserom.nds", 0x673C, 0x4 + .incbin "baserom.nds", 0x6740, 0x4 + .incbin "baserom.nds", 0x6744, 0x4 + .incbin "baserom.nds", 0x6748, 0xC8 + .incbin "baserom.nds", 0x6810, 0x4 + .incbin "baserom.nds", 0x6814, 0x4 + .incbin "baserom.nds", 0x6818, 0x4 + .incbin "baserom.nds", 0x681C, 0x4 + .incbin "baserom.nds", 0x6820, 0x4 + .incbin "baserom.nds", 0x6824, 0x4 + .incbin "baserom.nds", 0x6828, 0x4 + .incbin "baserom.nds", 0x682C, 0x4 + .incbin "baserom.nds", 0x6830, 0x4 + .incbin "baserom.nds", 0x6834, 0x4 + .incbin "baserom.nds", 0x6838, 0x4 + .incbin "baserom.nds", 0x683C, 0x4 + .incbin "baserom.nds", 0x6840, 0x4 + .incbin "baserom.nds", 0x6844, 0x4 + .incbin "baserom.nds", 0x6848, 0x4 + .incbin "baserom.nds", 0x684C, 0x4 + .incbin "baserom.nds", 0x6850, 0x4 + .incbin "baserom.nds", 0x6854, 0x4 + .incbin "baserom.nds", 0x6858, 0x4 + .incbin "baserom.nds", 0x685C, 0x4 + .incbin "baserom.nds", 0x6860, 0x4 + .incbin "baserom.nds", 0x6864, 0x4 + .incbin "baserom.nds", 0x6868, 0x4 + .incbin "baserom.nds", 0x686C, 0x4 + .incbin "baserom.nds", 0x6870, 0x4 + .incbin "baserom.nds", 0x6874, 0x4 + .incbin "baserom.nds", 0x6878, 0x4 + .incbin "baserom.nds", 0x687C, 0x4 + .incbin "baserom.nds", 0x6880, 0x4 + .incbin "baserom.nds", 0x6884, 0x4 + .incbin "baserom.nds", 0x6888, 0x4 + .incbin "baserom.nds", 0x688C, 0x4 + .incbin "baserom.nds", 0x6890, 0x4 + .incbin "baserom.nds", 0x6894, 0x4 + .incbin "baserom.nds", 0x6898, 0x4 + .incbin "baserom.nds", 0x689C, 0x4 + .incbin "baserom.nds", 0x68A0, 0x4 + .incbin "baserom.nds", 0x68A4, 0x4 + .incbin "baserom.nds", 0x68A8, 0x4 + .incbin "baserom.nds", 0x68AC, 0x4 + .incbin "baserom.nds", 0x68B0, 0x4 + .incbin "baserom.nds", 0x68B4, 0x4 + .incbin "baserom.nds", 0x68B8, 0x4 + .incbin "baserom.nds", 0x68BC, 0x4 + .incbin "baserom.nds", 0x68C0, 0x4 + .incbin "baserom.nds", 0x68C4, 0x4 + .incbin "baserom.nds", 0x68C8, 0x4 + .incbin "baserom.nds", 0x68CC, 0x4 + .incbin "baserom.nds", 0x68D0, 0x4 + .incbin "baserom.nds", 0x68D4, 0x4 + .incbin "baserom.nds", 0x68D8, 0x4 + .incbin "baserom.nds", 0x68DC, 0x4 + .incbin "baserom.nds", 0x68E0, 0x4 + .incbin "baserom.nds", 0x68E4, 0x4 + .incbin "baserom.nds", 0x68E8, 0x4 + .incbin "baserom.nds", 0x68EC, 0x4 + .incbin "baserom.nds", 0x68F0, 0x4 + .incbin "baserom.nds", 0x68F4, 0x4 + .incbin "baserom.nds", 0x68F8, 0x4 + .incbin "baserom.nds", 0x68FC, 0x4 + .incbin "baserom.nds", 0x6900, 0x4 + .incbin "baserom.nds", 0x6904, 0x4 + .incbin "baserom.nds", 0x6908, 0x4 + .incbin "baserom.nds", 0x690C, 0x4 + .incbin "baserom.nds", 0x6910, 0x4 + .incbin "baserom.nds", 0x6914, 0x4 + .incbin "baserom.nds", 0x6918, 0x4 + .incbin "baserom.nds", 0x691C, 0x4 + .incbin "baserom.nds", 0x6920, 0x4 + .incbin "baserom.nds", 0x6924, 0x4 + .incbin "baserom.nds", 0x6928, 0x4 + .incbin "baserom.nds", 0x692C, 0x4 + .incbin "baserom.nds", 0x6930, 0x4 + .incbin "baserom.nds", 0x6934, 0x4 + .incbin "baserom.nds", 0x6938, 0x4 + .incbin "baserom.nds", 0x693C, 0x4 + .incbin "baserom.nds", 0x6940, 0x4 + .incbin "baserom.nds", 0x6944, 0x4 + .incbin "baserom.nds", 0x6948, 0x4 + .incbin "baserom.nds", 0x694C, 0x4 + .incbin "baserom.nds", 0x6950, 0x4 + .incbin "baserom.nds", 0x6954, 0x4 + .incbin "baserom.nds", 0x6958, 0x4 + .incbin "baserom.nds", 0x695C, 0x4 + .incbin "baserom.nds", 0x6960, 0x4 + .incbin "baserom.nds", 0x6964, 0x4 + .incbin "baserom.nds", 0x6968, 0x4 + .incbin "baserom.nds", 0x696C, 0x4 + .incbin "baserom.nds", 0x6970, 0x4 + .incbin "baserom.nds", 0x6974, 0x4 + .incbin "baserom.nds", 0x6978, 0x4 + .incbin "baserom.nds", 0x697C, 0x4 + .incbin "baserom.nds", 0x6980, 0x4 + .incbin "baserom.nds", 0x6984, 0x4 + .incbin "baserom.nds", 0x6988, 0x4 + .incbin "baserom.nds", 0x698C, 0x4 + .incbin "baserom.nds", 0x6990, 0x4 + .incbin "baserom.nds", 0x6994, 0x4 + .incbin "baserom.nds", 0x6998, 0x4 + .incbin "baserom.nds", 0x699C, 0x4 + .incbin "baserom.nds", 0x69A0, 0x4 + .incbin "baserom.nds", 0x69A4, 0x4 + .incbin "baserom.nds", 0x69A8, 0x4 + .incbin "baserom.nds", 0x69AC, 0x4 + .incbin "baserom.nds", 0x69B0, 0x4 + .incbin "baserom.nds", 0x69B4, 0x4 + .incbin "baserom.nds", 0x69B8, 0x4 + .incbin "baserom.nds", 0x69BC, 0x4 + .incbin "baserom.nds", 0x69C0, 0x4 + .incbin "baserom.nds", 0x69C4, 0x4 + .incbin "baserom.nds", 0x69C8, 0x4 + .incbin "baserom.nds", 0x69CC, 0x4 + .incbin "baserom.nds", 0x69D0, 0x4 + .incbin "baserom.nds", 0x69D4, 0x4 + .incbin "baserom.nds", 0x69D8, 0x4 + .incbin "baserom.nds", 0x69DC, 0x4 + .incbin "baserom.nds", 0x69E0, 0x4 + .incbin "baserom.nds", 0x69E4, 0x4 + .incbin "baserom.nds", 0x69E8, 0x4 + .incbin "baserom.nds", 0x69EC, 0x4 + .incbin "baserom.nds", 0x69F0, 0x4 + .incbin "baserom.nds", 0x69F4, 0x4 + .incbin "baserom.nds", 0x69F8, 0x4 + .incbin "baserom.nds", 0x69FC, 0x4 + .incbin "baserom.nds", 0x6A00, 0x4 + .incbin "baserom.nds", 0x6A04, 0x4 + .incbin "baserom.nds", 0x6A08, 0x4 + .incbin "baserom.nds", 0x6A0C, 0x4 + .incbin "baserom.nds", 0x6A10, 0x4 + .incbin "baserom.nds", 0x6A14, 0x4 + .incbin "baserom.nds", 0x6A18, 0x4 + .incbin "baserom.nds", 0x6A1C, 0x4 + .incbin "baserom.nds", 0x6A20, 0x4 + .incbin "baserom.nds", 0x6A24, 0x4 + .incbin "baserom.nds", 0x6A28, 0x4 + .incbin "baserom.nds", 0x6A2C, 0x4 + .incbin "baserom.nds", 0x6A30, 0x4 + .incbin "baserom.nds", 0x6A34, 0x4 + .incbin "baserom.nds", 0x6A38, 0x4 + .incbin "baserom.nds", 0x6A3C, 0x4 + .incbin "baserom.nds", 0x6A40, 0x4 + .incbin "baserom.nds", 0x6A44, 0x4 + .incbin "baserom.nds", 0x6A48, 0x4 + .incbin "baserom.nds", 0x6A4C, 0x4 + .incbin "baserom.nds", 0x6A50, 0x4 + .incbin "baserom.nds", 0x6A54, 0x4 + .incbin "baserom.nds", 0x6A58, 0x4 + .incbin "baserom.nds", 0x6A5C, 0x4 + .incbin "baserom.nds", 0x6A60, 0x4 + .incbin "baserom.nds", 0x6A64, 0x4 + .incbin "baserom.nds", 0x6A68, 0x4 + .incbin "baserom.nds", 0x6A6C, 0x4 + .incbin "baserom.nds", 0x6A70, 0x4 + .incbin "baserom.nds", 0x6A74, 0x4 + .incbin "baserom.nds", 0x6A78, 0x4 + .incbin "baserom.nds", 0x6A7C, 0x4 + .incbin "baserom.nds", 0x6A80, 0x4 + .incbin "baserom.nds", 0x6A84, 0x4 + .incbin "baserom.nds", 0x6A88, 0x4 + .incbin "baserom.nds", 0x6A8C, 0x4 + .incbin "baserom.nds", 0x6A90, 0x4 + .incbin "baserom.nds", 0x6A94, 0x4 + .incbin "baserom.nds", 0x6A98, 0x4 + .incbin "baserom.nds", 0x6A9C, 0x4 + .incbin "baserom.nds", 0x6AA0, 0x4 + .incbin "baserom.nds", 0x6AA4, 0x4 + .incbin "baserom.nds", 0x6AA8, 0x4 + .incbin "baserom.nds", 0x6AAC, 0x4 + .incbin "baserom.nds", 0x6AB0, 0x4 + .incbin "baserom.nds", 0x6AB4, 0x4 + .incbin "baserom.nds", 0x6AB8, 0x4 + .incbin "baserom.nds", 0x6ABC, 0x4 + .incbin "baserom.nds", 0x6AC0, 0x4 + .incbin "baserom.nds", 0x6AC4, 0x4 + .incbin "baserom.nds", 0x6AC8, 0x4 + .incbin "baserom.nds", 0x6ACC, 0x4 + .incbin "baserom.nds", 0x6AD0, 0x4 + .incbin "baserom.nds", 0x6AD4, 0x4 + .incbin "baserom.nds", 0x6AD8, 0x4 + .incbin "baserom.nds", 0x6ADC, 0x4 + .incbin "baserom.nds", 0x6AE0, 0x4 + .incbin "baserom.nds", 0x6AE4, 0x4 + .incbin "baserom.nds", 0x6AE8, 0x4 + .incbin "baserom.nds", 0x6AEC, 0x4 + .incbin "baserom.nds", 0x6AF0, 0x4 + .incbin "baserom.nds", 0x6AF4, 0x4 + .incbin "baserom.nds", 0x6AF8, 0x4 + .incbin "baserom.nds", 0x6AFC, 0x4 + .incbin "baserom.nds", 0x6B00, 0x4 + .incbin "baserom.nds", 0x6B04, 0x54 + .incbin "baserom.nds", 0x6B58, 0x4 + .incbin "baserom.nds", 0x6B5C, 0x4 + .incbin "baserom.nds", 0x6B60, 0x4 + .incbin "baserom.nds", 0x6B64, 0x4 + .incbin "baserom.nds", 0x6B68, 0x4 + .incbin "baserom.nds", 0x6B6C, 0x4 + .incbin "baserom.nds", 0x6B70, 0x4 + .incbin "baserom.nds", 0x6B74, 0x4 + .incbin "baserom.nds", 0x6B78, 0x4 + .incbin "baserom.nds", 0x6B7C, 0x4 + .incbin "baserom.nds", 0x6B80, 0x4 + .incbin "baserom.nds", 0x6B84, 0x4 + .incbin "baserom.nds", 0x6B88, 0x4 + .incbin "baserom.nds", 0x6B8C, 0x4 + .incbin "baserom.nds", 0x6B90, 0x4 + .incbin "baserom.nds", 0x6B94, 0x4 + .incbin "baserom.nds", 0x6B98, 0x4 + .incbin "baserom.nds", 0x6B9C, 0x4 + .incbin "baserom.nds", 0x6BA0, 0x4 + .incbin "baserom.nds", 0x6BA4, 0x4 + .incbin "baserom.nds", 0x6BA8, 0x4 + .incbin "baserom.nds", 0x6BAC, 0x4 + .incbin "baserom.nds", 0x6BB0, 0x4 + .incbin "baserom.nds", 0x6BB4, 0x54 + .incbin "baserom.nds", 0x6C08, 0x4 + .incbin "baserom.nds", 0x6C0C, 0x4 + .incbin "baserom.nds", 0x6C10, 0x4 + .incbin "baserom.nds", 0x6C14, 0x4 + .incbin "baserom.nds", 0x6C18, 0x4 + .incbin "baserom.nds", 0x6C1C, 0x4 + .incbin "baserom.nds", 0x6C20, 0x4 + .incbin "baserom.nds", 0x6C24, 0x4 + .incbin "baserom.nds", 0x6C28, 0x4 + .incbin "baserom.nds", 0x6C2C, 0x4 + .incbin "baserom.nds", 0x6C30, 0x4 + .incbin "baserom.nds", 0x6C34, 0x4 + .incbin "baserom.nds", 0x6C38, 0x4 + .incbin "baserom.nds", 0x6C3C, 0x4 + .incbin "baserom.nds", 0x6C40, 0x4 + .incbin "baserom.nds", 0x6C44, 0x4 + .incbin "baserom.nds", 0x6C48, 0x4 + .incbin "baserom.nds", 0x6C4C, 0x4 + .incbin "baserom.nds", 0x6C50, 0x4 + .incbin "baserom.nds", 0x6C54, 0x4 + .incbin "baserom.nds", 0x6C58, 0x4 + .incbin "baserom.nds", 0x6C5C, 0x4 + .incbin "baserom.nds", 0x6C60, 0x4 + .incbin "baserom.nds", 0x6C64, 0x4 + .incbin "baserom.nds", 0x6C68, 0x4 + .incbin "baserom.nds", 0x6C6C, 0x4 + .incbin "baserom.nds", 0x6C70, 0x4 + .incbin "baserom.nds", 0x6C74, 0x4 + .incbin "baserom.nds", 0x6C78, 0x4 + .incbin "baserom.nds", 0x6C7C, 0x4 + .incbin "baserom.nds", 0x6C80, 0x4 + .incbin "baserom.nds", 0x6C84, 0x4 + .incbin "baserom.nds", 0x6C88, 0x4 + .incbin "baserom.nds", 0x6C8C, 0x4 + .incbin "baserom.nds", 0x6C90, 0x4 + .incbin "baserom.nds", 0x6C94, 0x4 + .incbin "baserom.nds", 0x6C98, 0x4 + .incbin "baserom.nds", 0x6C9C, 0x4 + .incbin "baserom.nds", 0x6CA0, 0x4 + .incbin "baserom.nds", 0x6CA4, 0x4 + .incbin "baserom.nds", 0x6CA8, 0x4 + .incbin "baserom.nds", 0x6CAC, 0x4 + .incbin "baserom.nds", 0x6CB0, 0x4 + .incbin "baserom.nds", 0x6CB4, 0x4 + .incbin "baserom.nds", 0x6CB8, 0x4 + .incbin "baserom.nds", 0x6CBC, 0x4 + .incbin "baserom.nds", 0x6CC0, 0x4 + .incbin "baserom.nds", 0x6CC4, 0x4 + .incbin "baserom.nds", 0x6CC8, 0x4 + .incbin "baserom.nds", 0x6CCC, 0x4 + .incbin "baserom.nds", 0x6CD0, 0x54 + .incbin "baserom.nds", 0x6D24, 0x54 + .incbin "baserom.nds", 0x6D78, 0x4 + .incbin "baserom.nds", 0x6D7C, 0x4 + .incbin "baserom.nds", 0x6D80, 0x4 + .incbin "baserom.nds", 0x6D84, 0x4 + .incbin "baserom.nds", 0x6D88, 0x4 + .incbin "baserom.nds", 0x6D8C, 0x4 + .incbin "baserom.nds", 0x6D90, 0x4 + .incbin "baserom.nds", 0x6D94, 0x4 + .incbin "baserom.nds", 0x6D98, 0x4 + .incbin "baserom.nds", 0x6D9C, 0x4 + .incbin "baserom.nds", 0x6DA0, 0x4 + .incbin "baserom.nds", 0x6DA4, 0x4 + .incbin "baserom.nds", 0x6DA8, 0x4 + .incbin "baserom.nds", 0x6DAC, 0x4 + .incbin "baserom.nds", 0x6DB0, 0x4 + .incbin "baserom.nds", 0x6DB4, 0x4 + .incbin "baserom.nds", 0x6DB8, 0x4 + .incbin "baserom.nds", 0x6DBC, 0x4 + .incbin "baserom.nds", 0x6DC0, 0x4 + .incbin "baserom.nds", 0x6DC4, 0x4 + .incbin "baserom.nds", 0x6DC8, 0x4 + .incbin "baserom.nds", 0x6DCC, 0x4 + .incbin "baserom.nds", 0x6DD0, 0x4 + .incbin "baserom.nds", 0x6DD4, 0x4 + .incbin "baserom.nds", 0x6DD8, 0x4 + .incbin "baserom.nds", 0x6DDC, 0x4 + .incbin "baserom.nds", 0x6DE0, 0x4 + .incbin "baserom.nds", 0x6DE4, 0x4 + .incbin "baserom.nds", 0x6DE8, 0x4 + .incbin "baserom.nds", 0x6DEC, 0x4 + .incbin "baserom.nds", 0x6DF0, 0x4 + .incbin "baserom.nds", 0x6DF4, 0x4 + .incbin "baserom.nds", 0x6DF8, 0x4 + .incbin "baserom.nds", 0x6DFC, 0x4 + .incbin "baserom.nds", 0x6E00, 0x4 + .incbin "baserom.nds", 0x6E04, 0x4 + .incbin "baserom.nds", 0x6E08, 0x4 + .incbin "baserom.nds", 0x6E0C, 0x4 + .incbin "baserom.nds", 0x6E10, 0x4 + .incbin "baserom.nds", 0x6E14, 0x4 + .incbin "baserom.nds", 0x6E18, 0x4 + .incbin "baserom.nds", 0x6E1C, 0x4 + .incbin "baserom.nds", 0x6E20, 0x4 + .incbin "baserom.nds", 0x6E24, 0x4 + .incbin "baserom.nds", 0x6E28, 0x4 + .incbin "baserom.nds", 0x6E2C, 0x4 + .incbin "baserom.nds", 0x6E30, 0x4 + .incbin "baserom.nds", 0x6E34, 0x4 + .incbin "baserom.nds", 0x6E38, 0x4 + .incbin "baserom.nds", 0x6E3C, 0x4 + .incbin "baserom.nds", 0x6E40, 0x4 + .incbin "baserom.nds", 0x6E44, 0x4 + .incbin "baserom.nds", 0x6E48, 0x4 + .incbin "baserom.nds", 0x6E4C, 0x4 + .incbin "baserom.nds", 0x6E50, 0x4 + .incbin "baserom.nds", 0x6E54, 0x4 + .incbin "baserom.nds", 0x6E58, 0x4 + .incbin "baserom.nds", 0x6E5C, 0x4 + .incbin "baserom.nds", 0x6E60, 0x4 + .incbin "baserom.nds", 0x6E64, 0x4 + .incbin "baserom.nds", 0x6E68, 0x4 + .incbin "baserom.nds", 0x6E6C, 0x4 + .incbin "baserom.nds", 0x6E70, 0x4 + .incbin "baserom.nds", 0x6E74, 0x4 + .incbin "baserom.nds", 0x6E78, 0x4 + .incbin "baserom.nds", 0x6E7C, 0x4 + .incbin "baserom.nds", 0x6E80, 0x4 + .incbin "baserom.nds", 0x6E84, 0x4 + .incbin "baserom.nds", 0x6E88, 0x4 + .incbin "baserom.nds", 0x6E8C, 0x4 + .incbin "baserom.nds", 0x6E90, 0x4 + .incbin "baserom.nds", 0x6E94, 0x4 + .incbin "baserom.nds", 0x6E98, 0x4 + .incbin "baserom.nds", 0x6E9C, 0x4 + .incbin "baserom.nds", 0x6EA0, 0x4 + .incbin "baserom.nds", 0x6EA4, 0x4 + .incbin "baserom.nds", 0x6EA8, 0x4 + .incbin "baserom.nds", 0x6EAC, 0x4 + .incbin "baserom.nds", 0x6EB0, 0x4 + .incbin "baserom.nds", 0x6EB4, 0x4 + .incbin "baserom.nds", 0x6EB8, 0x4 + .incbin "baserom.nds", 0x6EBC, 0x4 + .incbin "baserom.nds", 0x6EC0, 0x4 + .incbin "baserom.nds", 0x6EC4, 0x4 + .incbin "baserom.nds", 0x6EC8, 0x4 + .incbin "baserom.nds", 0x6ECC, 0x4 + .incbin "baserom.nds", 0x6ED0, 0x4 + .incbin "baserom.nds", 0x6ED4, 0x4 + .incbin "baserom.nds", 0x6ED8, 0x4 + .incbin "baserom.nds", 0x6EDC, 0x4 + .incbin "baserom.nds", 0x6EE0, 0x4 + .incbin "baserom.nds", 0x6EE4, 0x4 + .incbin "baserom.nds", 0x6EE8, 0x4 + .incbin "baserom.nds", 0x6EEC, 0x4 + .incbin "baserom.nds", 0x6EF0, 0x4 + .incbin "baserom.nds", 0x6EF4, 0x4 + .incbin "baserom.nds", 0x6EF8, 0x4 + .incbin "baserom.nds", 0x6EFC, 0x4 + .incbin "baserom.nds", 0x6F00, 0x4 + .incbin "baserom.nds", 0x6F04, 0x4 + .incbin "baserom.nds", 0x6F08, 0x4 + .incbin "baserom.nds", 0x6F0C, 0x4 + .incbin "baserom.nds", 0x6F10, 0x4 + .incbin "baserom.nds", 0x6F14, 0x4 + .incbin "baserom.nds", 0x6F18, 0x4 + .incbin "baserom.nds", 0x6F1C, 0x4 + .incbin "baserom.nds", 0x6F20, 0x4 + .incbin "baserom.nds", 0x6F24, 0x4 + .incbin "baserom.nds", 0x6F28, 0x4 + .incbin "baserom.nds", 0x6F2C, 0x4 + .incbin "baserom.nds", 0x6F30, 0x4 + .incbin "baserom.nds", 0x6F34, 0x4 + .incbin "baserom.nds", 0x6F38, 0x4 + .incbin "baserom.nds", 0x6F3C, 0x4 + .incbin "baserom.nds", 0x6F40, 0x4 + .incbin "baserom.nds", 0x6F44, 0x4 + .incbin "baserom.nds", 0x6F48, 0x4 + .incbin "baserom.nds", 0x6F4C, 0x4 + .incbin "baserom.nds", 0x6F50, 0x4 + .incbin "baserom.nds", 0x6F54, 0x4 + .incbin "baserom.nds", 0x6F58, 0x4 + .incbin "baserom.nds", 0x6F5C, 0x4 + .incbin "baserom.nds", 0x6F60, 0x4 + .incbin "baserom.nds", 0x6F64, 0x4 + .incbin "baserom.nds", 0x6F68, 0x4 + .incbin "baserom.nds", 0x6F6C, 0x4 + .incbin "baserom.nds", 0x6F70, 0x4 + .incbin "baserom.nds", 0x6F74, 0x4 + .incbin "baserom.nds", 0x6F78, 0x4 + .incbin "baserom.nds", 0x6F7C, 0x4 + .incbin "baserom.nds", 0x6F80, 0x4 + .incbin "baserom.nds", 0x6F84, 0x4 + .incbin "baserom.nds", 0x6F88, 0x4 + .incbin "baserom.nds", 0x6F8C, 0x4 + .incbin "baserom.nds", 0x6F90, 0x4 + .incbin "baserom.nds", 0x6F94, 0x4 + .incbin "baserom.nds", 0x6F98, 0x4 + .incbin "baserom.nds", 0x6F9C, 0x4 + .incbin "baserom.nds", 0x6FA0, 0x4 + .incbin "baserom.nds", 0x6FA4, 0x4 + .incbin "baserom.nds", 0x6FA8, 0x4 + .incbin "baserom.nds", 0x6FAC, 0x4 + .incbin "baserom.nds", 0x6FB0, 0x4 + .incbin "baserom.nds", 0x6FB4, 0x4 + .incbin "baserom.nds", 0x6FB8, 0x4 + .incbin "baserom.nds", 0x6FBC, 0x54 + .incbin "baserom.nds", 0x7010, 0x4 + .incbin "baserom.nds", 0x7014, 0x4 + .incbin "baserom.nds", 0x7018, 0x54 + .incbin "baserom.nds", 0x706C, 0x4 + .incbin "baserom.nds", 0x7070, 0x4 + .incbin "baserom.nds", 0x7074, 0x4 + .incbin "baserom.nds", 0x7078, 0x4 + .incbin "baserom.nds", 0x707C, 0x54 + .incbin "baserom.nds", 0x70D0, 0x4 + .incbin "baserom.nds", 0x70D4, 0x4 + .incbin "baserom.nds", 0x70D8, 0x4 + .incbin "baserom.nds", 0x70DC, 0x4 + .incbin "baserom.nds", 0x70E0, 0x4 + .incbin "baserom.nds", 0x70E4, 0x4 + .incbin "baserom.nds", 0x70E8, 0x4 + .incbin "baserom.nds", 0x70EC, 0x4 + .incbin "baserom.nds", 0x70F0, 0x4 + .incbin "baserom.nds", 0x70F4, 0x4 + .incbin "baserom.nds", 0x70F8, 0x4 + .incbin "baserom.nds", 0x70FC, 0x4 + .incbin "baserom.nds", 0x7100, 0x4 + .incbin "baserom.nds", 0x7104, 0x4 + .incbin "baserom.nds", 0x7108, 0x4 + .incbin "baserom.nds", 0x710C, 0x4 + .incbin "baserom.nds", 0x7110, 0x4 + .incbin "baserom.nds", 0x7114, 0x4 + .incbin "baserom.nds", 0x7118, 0x4 + .incbin "baserom.nds", 0x711C, 0x4 + .incbin "baserom.nds", 0x7120, 0x4 + .incbin "baserom.nds", 0x7124, 0x4 + .incbin "baserom.nds", 0x7128, 0x4 + .incbin "baserom.nds", 0x712C, 0x4 + .incbin "baserom.nds", 0x7130, 0x4 + .incbin "baserom.nds", 0x7134, 0x4 + .incbin "baserom.nds", 0x7138, 0x4 + .incbin "baserom.nds", 0x713C, 0x4 + .incbin "baserom.nds", 0x7140, 0x4 + .incbin "baserom.nds", 0x7144, 0x4 + .incbin "baserom.nds", 0x7148, 0x4 + .incbin "baserom.nds", 0x714C, 0x4 + .incbin "baserom.nds", 0x7150, 0x4 + .incbin "baserom.nds", 0x7154, 0x4 + .incbin "baserom.nds", 0x7158, 0x4 + .incbin "baserom.nds", 0x715C, 0x4 + .incbin "baserom.nds", 0x7160, 0x4 + .incbin "baserom.nds", 0x7164, 0x4 + .incbin "baserom.nds", 0x7168, 0x4 + .incbin "baserom.nds", 0x716C, 0x4 + .incbin "baserom.nds", 0x7170, 0x4 + .incbin "baserom.nds", 0x7174, 0x4 + .incbin "baserom.nds", 0x7178, 0x4 + .incbin "baserom.nds", 0x717C, 0x4 + .incbin "baserom.nds", 0x7180, 0x4 + .incbin "baserom.nds", 0x7184, 0x4 + .incbin "baserom.nds", 0x7188, 0x4 + .incbin "baserom.nds", 0x718C, 0x4 + .incbin "baserom.nds", 0x7190, 0x4 + .incbin "baserom.nds", 0x7194, 0x4 + .incbin "baserom.nds", 0x7198, 0x4 + .incbin "baserom.nds", 0x719C, 0x4 + .incbin "baserom.nds", 0x71A0, 0x4 + .incbin "baserom.nds", 0x71A4, 0x4 + .incbin "baserom.nds", 0x71A8, 0x4 + .incbin "baserom.nds", 0x71AC, 0x4 + .incbin "baserom.nds", 0x71B0, 0x4 + .incbin "baserom.nds", 0x71B4, 0x4 + .incbin "baserom.nds", 0x71B8, 0x4 + .incbin "baserom.nds", 0x71BC, 0x4 + .incbin "baserom.nds", 0x71C0, 0x4 + .incbin "baserom.nds", 0x71C4, 0x4 + .incbin "baserom.nds", 0x71C8, 0x4 + .incbin "baserom.nds", 0x71CC, 0x4 + .incbin "baserom.nds", 0x71D0, 0x4 + .incbin "baserom.nds", 0x71D4, 0x4 + .incbin "baserom.nds", 0x71D8, 0x4 + .incbin "baserom.nds", 0x71DC, 0x4 + .incbin "baserom.nds", 0x71E0, 0x4 + .incbin "baserom.nds", 0x71E4, 0x4 + .incbin "baserom.nds", 0x71E8, 0x4 + .incbin "baserom.nds", 0x71EC, 0x4 + .incbin "baserom.nds", 0x71F0, 0x4 + .incbin "baserom.nds", 0x71F4, 0x4 + .incbin "baserom.nds", 0x71F8, 0x34 + .incbin "baserom.nds", 0x722C, 0x4 + .incbin "baserom.nds", 0x7230, 0x4 + .incbin "baserom.nds", 0x7234, 0x4 + .incbin "baserom.nds", 0x7238, 0x4 + .incbin "baserom.nds", 0x723C, 0x4 + .incbin "baserom.nds", 0x7240, 0x4 + .incbin "baserom.nds", 0x7244, 0x4 + .incbin "baserom.nds", 0x7248, 0x4 + .incbin "baserom.nds", 0x724C, 0x4 + .incbin "baserom.nds", 0x7250, 0x4 + .incbin "baserom.nds", 0x7254, 0x4 + .incbin "baserom.nds", 0x7258, 0x4 + .incbin "baserom.nds", 0x725C, 0x4 + .incbin "baserom.nds", 0x7260, 0x4 + .incbin "baserom.nds", 0x7264, 0x4 + .incbin "baserom.nds", 0x7268, 0x4 + .incbin "baserom.nds", 0x726C, 0x4 + .incbin "baserom.nds", 0x7270, 0x4 + .incbin "baserom.nds", 0x7274, 0x4 + .incbin "baserom.nds", 0x7278, 0x4 + .incbin "baserom.nds", 0x727C, 0x4 + .incbin "baserom.nds", 0x7280, 0x4 + .incbin "baserom.nds", 0x7284, 0x4 + .incbin "baserom.nds", 0x7288, 0x4 + .incbin "baserom.nds", 0x728C, 0x4 + .incbin "baserom.nds", 0x7290, 0x4 + .incbin "baserom.nds", 0x7294, 0x4 + .incbin "baserom.nds", 0x7298, 0x4 + .incbin "baserom.nds", 0x729C, 0x8 + .incbin "baserom.nds", 0x72A4, 0xC + .incbin "baserom.nds", 0x72B0, 0x4 + .incbin "baserom.nds", 0x72B4, 0x8 + .incbin "baserom.nds", 0x72BC, 0xC + .incbin "baserom.nds", 0x72C8, 0x4 + .incbin "baserom.nds", 0x72CC, 0x4 + .incbin "baserom.nds", 0x72D0, 0x4 + .incbin "baserom.nds", 0x72D4, 0x4 + .incbin "baserom.nds", 0x72D8, 0x4 + .incbin "baserom.nds", 0x72DC, 0x4 + .incbin "baserom.nds", 0x72E0, 0x4 + .incbin "baserom.nds", 0x72E4, 0x4 + .incbin "baserom.nds", 0x72E8, 0x4 + .incbin "baserom.nds", 0x72EC, 0x4 + .incbin "baserom.nds", 0x72F0, 0x4 + .incbin "baserom.nds", 0x72F4, 0x4 + .incbin "baserom.nds", 0x72F8, 0x4 + .incbin "baserom.nds", 0x72FC, 0x4 + .incbin "baserom.nds", 0x7300, 0x8 + .incbin "baserom.nds", 0x7308, 0x8 + .incbin "baserom.nds", 0x7310, 0x4 + .incbin "baserom.nds", 0x7314, 0x4 + .incbin "baserom.nds", 0x7318, 0x4 + .incbin "baserom.nds", 0x731C, 0x4 + .incbin "baserom.nds", 0x7320, 0x4 + .incbin "baserom.nds", 0x7324, 0x4 + .incbin "baserom.nds", 0x7328, 0xC + .incbin "baserom.nds", 0x7334, 0xC + .incbin "baserom.nds", 0x7340, 0x4 + .incbin "baserom.nds", 0x7344, 0x4 + .incbin "baserom.nds", 0x7348, 0x4 + .incbin "baserom.nds", 0x734C, 0x4 + .incbin "baserom.nds", 0x7350, 0x4 + .incbin "baserom.nds", 0x7354, 0x4 + .incbin "baserom.nds", 0x7358, 0x4 + .incbin "baserom.nds", 0x735C, 0x4 + .incbin "baserom.nds", 0x7360, 0x4 + .incbin "baserom.nds", 0x7364, 0x4 + .incbin "baserom.nds", 0x7368, 0x4 + .incbin "baserom.nds", 0x736C, 0x4 + .incbin "baserom.nds", 0x7370, 0x4 + .incbin "baserom.nds", 0x7374, 0x4 + .incbin "baserom.nds", 0x7378, 0x4 + .incbin "baserom.nds", 0x737C, 0x4 + .incbin "baserom.nds", 0x7380, 0x4 + .incbin "baserom.nds", 0x7384, 0x4 + .incbin "baserom.nds", 0x7388, 0x4 + .incbin "baserom.nds", 0x738C, 0x4 + .incbin "baserom.nds", 0x7390, 0x4 + .incbin "baserom.nds", 0x7394, 0x4 + .incbin "baserom.nds", 0x7398, 0x4 + .incbin "baserom.nds", 0x739C, 0x4 + .incbin "baserom.nds", 0x73A0, 0x4 + .incbin "baserom.nds", 0x73A4, 0x4 + .incbin "baserom.nds", 0x73A8, 0x4 + .incbin "baserom.nds", 0x73AC, 0x4 + .incbin "baserom.nds", 0x73B0, 0x4 + .incbin "baserom.nds", 0x73B4, 0x4 + .incbin "baserom.nds", 0x73B8, 0x8 + .incbin "baserom.nds", 0x73C0, 0x4 + .incbin "baserom.nds", 0x73C4, 0x4 + .incbin "baserom.nds", 0x73C8, 0x4 + .incbin "baserom.nds", 0x73CC, 0x4 + .incbin "baserom.nds", 0x73D0, 0x4 + .incbin "baserom.nds", 0x73D4, 0x4 + .incbin "baserom.nds", 0x73D8, 0x4 + .incbin "baserom.nds", 0x73DC, 0x4 + .incbin "baserom.nds", 0x73E0, 0x4 + .incbin "baserom.nds", 0x73E4, 0x4 + .incbin "baserom.nds", 0x73E8, 0x4 + .incbin "baserom.nds", 0x73EC, 0x4 + .incbin "baserom.nds", 0x73F0, 0x4 + .incbin "baserom.nds", 0x73F4, 0x4 + .incbin "baserom.nds", 0x73F8, 0x4 + .incbin "baserom.nds", 0x73FC, 0x4 + .incbin "baserom.nds", 0x7400, 0x4 + .incbin "baserom.nds", 0x7404, 0x4 + .incbin "baserom.nds", 0x7408, 0x4 + .incbin "baserom.nds", 0x740C, 0x4 + .incbin "baserom.nds", 0x7410, 0x4 + .incbin "baserom.nds", 0x7414, 0x4 + .incbin "baserom.nds", 0x7418, 0x4 + .incbin "baserom.nds", 0x741C, 0x4 + .incbin "baserom.nds", 0x7420, 0x4 + .incbin "baserom.nds", 0x7424, 0x4 + .incbin "baserom.nds", 0x7428, 0x4 + .incbin "baserom.nds", 0x742C, 0x4 + .incbin "baserom.nds", 0x7430, 0x4 + .incbin "baserom.nds", 0x7434, 0x4 + .incbin "baserom.nds", 0x7438, 0x4 + .incbin "baserom.nds", 0x743C, 0x4 + .incbin "baserom.nds", 0x7440, 0x4 + .incbin "baserom.nds", 0x7444, 0x4 + .incbin "baserom.nds", 0x7448, 0x4 + .incbin "baserom.nds", 0x744C, 0x4 + .incbin "baserom.nds", 0x7450, 0x4 + .incbin "baserom.nds", 0x7454, 0x4 + .incbin "baserom.nds", 0x7458, 0x4 + .incbin "baserom.nds", 0x745C, 0xC + .incbin "baserom.nds", 0x7468, 0x4 + .incbin "baserom.nds", 0x746C, 0x4 + .incbin "baserom.nds", 0x7470, 0x4 + .incbin "baserom.nds", 0x7474, 0x8 + .incbin "baserom.nds", 0x747C, 0x4 + .incbin "baserom.nds", 0x7480, 0x4 + .incbin "baserom.nds", 0x7484, 0x4 + .incbin "baserom.nds", 0x7488, 0x4 + .incbin "baserom.nds", 0x748C, 0x4 + .incbin "baserom.nds", 0x7490, 0x4 + .incbin "baserom.nds", 0x7494, 0x4 + .incbin "baserom.nds", 0x7498, 0x4 + .incbin "baserom.nds", 0x749C, 0x4 + .incbin "baserom.nds", 0x74A0, 0x4 + .incbin "baserom.nds", 0x74A4, 0x4 + .incbin "baserom.nds", 0x74A8, 0x4 + .incbin "baserom.nds", 0x74AC, 0x4 + .incbin "baserom.nds", 0x74B0, 0x4 + .incbin "baserom.nds", 0x74B4, 0x4 + .incbin "baserom.nds", 0x74B8, 0x4 + .incbin "baserom.nds", 0x74BC, 0x4 + .incbin "baserom.nds", 0x74C0, 0x4 + .incbin "baserom.nds", 0x74C4, 0x4 + .incbin "baserom.nds", 0x74C8, 0x4 + .incbin "baserom.nds", 0x74CC, 0x4 + .incbin "baserom.nds", 0x74D0, 0x4 + .incbin "baserom.nds", 0x74D4, 0x4 + .incbin "baserom.nds", 0x74D8, 0x4 + .incbin "baserom.nds", 0x74DC, 0x4 + .incbin "baserom.nds", 0x74E0, 0x4 + .incbin "baserom.nds", 0x74E4, 0x4 + .incbin "baserom.nds", 0x74E8, 0x4 + .incbin "baserom.nds", 0x74EC, 0x8 + .incbin "baserom.nds", 0x74F4, 0x4 + .incbin "baserom.nds", 0x74F8, 0x4 + .incbin "baserom.nds", 0x74FC, 0x4 + .incbin "baserom.nds", 0x7500, 0x4 + .incbin "baserom.nds", 0x7504, 0x4 + .incbin "baserom.nds", 0x7508, 0x4 + .incbin "baserom.nds", 0x750C, 0x4 + .incbin "baserom.nds", 0x7510, 0x4 + .incbin "baserom.nds", 0x7514, 0x4 + .incbin "baserom.nds", 0x7518, 0x4 + .incbin "baserom.nds", 0x751C, 0x4 + .incbin "baserom.nds", 0x7520, 0x4 + .incbin "baserom.nds", 0x7524, 0x4 + .incbin "baserom.nds", 0x7528, 0x8 + .incbin "baserom.nds", 0x7530, 0x4 + .incbin "baserom.nds", 0x7534, 0x4 + .incbin "baserom.nds", 0x7538, 0x4 + .incbin "baserom.nds", 0x753C, 0x8 + .incbin "baserom.nds", 0x7544, 0x8 + .incbin "baserom.nds", 0x754C, 0x4 + .incbin "baserom.nds", 0x7550, 0x4 + .incbin "baserom.nds", 0x7554, 0x4 + .incbin "baserom.nds", 0x7558, 0x4 + .incbin "baserom.nds", 0x755C, 0x4 + .incbin "baserom.nds", 0x7560, 0x4 + .incbin "baserom.nds", 0x7564, 0xC + .incbin "baserom.nds", 0x7570, 0x8 + .incbin "baserom.nds", 0x7578, 0x4 + .incbin "baserom.nds", 0x757C, 0x54 + .incbin "baserom.nds", 0x75D0, 0x8 + .incbin "baserom.nds", 0x75D8, 0x4 + .incbin "baserom.nds", 0x75DC, 0x4 + .incbin "baserom.nds", 0x75E0, 0x4 + .incbin "baserom.nds", 0x75E4, 0x4 + .incbin "baserom.nds", 0x75E8, 0x4 + .incbin "baserom.nds", 0x75EC, 0x4 + .incbin "baserom.nds", 0x75F0, 0x4 + .incbin "baserom.nds", 0x75F4, 0x4 + .incbin "baserom.nds", 0x75F8, 0x4 + .incbin "baserom.nds", 0x75FC, 0x4 + .incbin "baserom.nds", 0x7600, 0x4 + .incbin "baserom.nds", 0x7604, 0x4 + .incbin "baserom.nds", 0x7608, 0x4 + .incbin "baserom.nds", 0x760C, 0x4 + .incbin "baserom.nds", 0x7610, 0x4 + .incbin "baserom.nds", 0x7614, 0x4 + .incbin "baserom.nds", 0x7618, 0x4 + .incbin "baserom.nds", 0x761C, 0x4 + .incbin "baserom.nds", 0x7620, 0x4 + .incbin "baserom.nds", 0x7624, 0x4 + .incbin "baserom.nds", 0x7628, 0x4 + .incbin "baserom.nds", 0x762C, 0x4 + .incbin "baserom.nds", 0x7630, 0x54 + .incbin "baserom.nds", 0x7684, 0x4 + .incbin "baserom.nds", 0x7688, 0x4 + .incbin "baserom.nds", 0x768C, 0x4 + .incbin "baserom.nds", 0x7690, 0x4 + .incbin "baserom.nds", 0x7694, 0x4 + .incbin "baserom.nds", 0x7698, 0x4 + .incbin "baserom.nds", 0x769C, 0x4 + .incbin "baserom.nds", 0x76A0, 0x4 + .incbin "baserom.nds", 0x76A4, 0x4 + .incbin "baserom.nds", 0x76A8, 0x4 + .incbin "baserom.nds", 0x76AC, 0x4 + .incbin "baserom.nds", 0x76B0, 0x4 + .incbin "baserom.nds", 0x76B4, 0x4 + .incbin "baserom.nds", 0x76B8, 0x4 + .incbin "baserom.nds", 0x76BC, 0x4 + .incbin "baserom.nds", 0x76C0, 0x4 + .incbin "baserom.nds", 0x76C4, 0x4 + .incbin "baserom.nds", 0x76C8, 0x4 + .incbin "baserom.nds", 0x76CC, 0x4 + .incbin "baserom.nds", 0x76D0, 0x4 + .incbin "baserom.nds", 0x76D4, 0x8 + .incbin "baserom.nds", 0x76DC, 0xC + .incbin "baserom.nds", 0x76E8, 0x4 + .incbin "baserom.nds", 0x76EC, 0x4 + .incbin "baserom.nds", 0x76F0, 0x4 + .incbin "baserom.nds", 0x76F4, 0x4 + .incbin "baserom.nds", 0x76F8, 0xC + .incbin "baserom.nds", 0x7704, 0x4 + .incbin "baserom.nds", 0x7708, 0x4 + .incbin "baserom.nds", 0x770C, 0x4 + .incbin "baserom.nds", 0x7710, 0x4 + .incbin "baserom.nds", 0x7714, 0x8 + .incbin "baserom.nds", 0x771C, 0x4 + .incbin "baserom.nds", 0x7720, 0x4 + .incbin "baserom.nds", 0x7724, 0x4 + .incbin "baserom.nds", 0x7728, 0x4 + .incbin "baserom.nds", 0x772C, 0x4 + .incbin "baserom.nds", 0x7730, 0x4 + .incbin "baserom.nds", 0x7734, 0x4 + .incbin "baserom.nds", 0x7738, 0x4 + .incbin "baserom.nds", 0x773C, 0x4 + .incbin "baserom.nds", 0x7740, 0x4 + .incbin "baserom.nds", 0x7744, 0x4 + .incbin "baserom.nds", 0x7748, 0x4 + .incbin "baserom.nds", 0x774C, 0x4 + .incbin "baserom.nds", 0x7750, 0x4 + .incbin "baserom.nds", 0x7754, 0x4 + .incbin "baserom.nds", 0x7758, 0xC + .incbin "baserom.nds", 0x7764, 0x4 + .incbin "baserom.nds", 0x7768, 0x4 + .incbin "baserom.nds", 0x776C, 0x54 + .incbin "baserom.nds", 0x77C0, 0x54 + .incbin "baserom.nds", 0x7814, 0x4 + .incbin "baserom.nds", 0x7818, 0x4 + .incbin "baserom.nds", 0x781C, 0x4 + .incbin "baserom.nds", 0x7820, 0x4 + .incbin "baserom.nds", 0x7824, 0x4 + .incbin "baserom.nds", 0x7828, 0x4 + .incbin "baserom.nds", 0x782C, 0x4 + .incbin "baserom.nds", 0x7830, 0x4 + .incbin "baserom.nds", 0x7834, 0x4 + .incbin "baserom.nds", 0x7838, 0x4 + .incbin "baserom.nds", 0x783C, 0x8 + .incbin "baserom.nds", 0x7844, 0x4 + .incbin "baserom.nds", 0x7848, 0x4 + .incbin "baserom.nds", 0x784C, 0xC + .incbin "baserom.nds", 0x7858, 0xC + .incbin "baserom.nds", 0x7864, 0x4 + .incbin "baserom.nds", 0x7868, 0x4 + .incbin "baserom.nds", 0x786C, 0x4 + .incbin "baserom.nds", 0x7870, 0x4 + .incbin "baserom.nds", 0x7874, 0x4 + .incbin "baserom.nds", 0x7878, 0x4 + .incbin "baserom.nds", 0x787C, 0x4 + .incbin "baserom.nds", 0x7880, 0x4 + .incbin "baserom.nds", 0x7884, 0x4 + .incbin "baserom.nds", 0x7888, 0x4 + .incbin "baserom.nds", 0x788C, 0x4 + .incbin "baserom.nds", 0x7890, 0x4 + .incbin "baserom.nds", 0x7894, 0x4 + .incbin "baserom.nds", 0x7898, 0x4 + .incbin "baserom.nds", 0x789C, 0x4 + .incbin "baserom.nds", 0x78A0, 0x4 + .incbin "baserom.nds", 0x78A4, 0x4 + .incbin "baserom.nds", 0x78A8, 0x4 + .incbin "baserom.nds", 0x78AC, 0x4 + .incbin "baserom.nds", 0x78B0, 0x4 + .incbin "baserom.nds", 0x78B4, 0x4 + .incbin "baserom.nds", 0x78B8, 0x4 + .incbin "baserom.nds", 0x78BC, 0x8 + .incbin "baserom.nds", 0x78C4, 0x4 + .incbin "baserom.nds", 0x78C8, 0x4 + .incbin "baserom.nds", 0x78CC, 0x4 + .incbin "baserom.nds", 0x78D0, 0x4 + .incbin "baserom.nds", 0x78D4, 0x4 + .incbin "baserom.nds", 0x78D8, 0x4 + .incbin "baserom.nds", 0x78DC, 0x4 + .incbin "baserom.nds", 0x78E0, 0x4 + .incbin "baserom.nds", 0x78E4, 0x4 + .incbin "baserom.nds", 0x78E8, 0x4 + .incbin "baserom.nds", 0x78EC, 0x4 + .incbin "baserom.nds", 0x78F0, 0x4 + .incbin "baserom.nds", 0x78F4, 0x4 + .incbin "baserom.nds", 0x78F8, 0x4 + .incbin "baserom.nds", 0x78FC, 0x4 + .incbin "baserom.nds", 0x7900, 0x4 + .incbin "baserom.nds", 0x7904, 0x4 + .incbin "baserom.nds", 0x7908, 0x4 + .incbin "baserom.nds", 0x790C, 0x4 + .incbin "baserom.nds", 0x7910, 0xC + .incbin "baserom.nds", 0x791C, 0x4 + .incbin "baserom.nds", 0x7920, 0x4 + .incbin "baserom.nds", 0x7924, 0x4 + .incbin "baserom.nds", 0x7928, 0x8 + .incbin "baserom.nds", 0x7930, 0x8 + .incbin "baserom.nds", 0x7938, 0x4 + .incbin "baserom.nds", 0x793C, 0x4 + .incbin "baserom.nds", 0x7940, 0x4 + .incbin "baserom.nds", 0x7944, 0x8 + .incbin "baserom.nds", 0x794C, 0x4 + .incbin "baserom.nds", 0x7950, 0x4 + .incbin "baserom.nds", 0x7954, 0x4 + .incbin "baserom.nds", 0x7958, 0x4 + .incbin "baserom.nds", 0x795C, 0x4 + .incbin "baserom.nds", 0x7960, 0x4 + .incbin "baserom.nds", 0x7964, 0x4 + .incbin "baserom.nds", 0x7968, 0x4 + .incbin "baserom.nds", 0x796C, 0x4 + .incbin "baserom.nds", 0x7970, 0x8 + .incbin "baserom.nds", 0x7978, 0x4 + .incbin "baserom.nds", 0x797C, 0x4 + .incbin "baserom.nds", 0x7980, 0x4 + .incbin "baserom.nds", 0x7984, 0x4 + .incbin "baserom.nds", 0x7988, 0x4 + .incbin "baserom.nds", 0x798C, 0x4 + .incbin "baserom.nds", 0x7990, 0x4 + .incbin "baserom.nds", 0x7994, 0x4 + .incbin "baserom.nds", 0x7998, 0x8 + .incbin "baserom.nds", 0x79A0, 0x4 + .incbin "baserom.nds", 0x79A4, 0x4 + .incbin "baserom.nds", 0x79A8, 0x8 + .incbin "baserom.nds", 0x79B0, 0x8 + .incbin "baserom.nds", 0x79B8, 0x4 + .incbin "baserom.nds", 0x79BC, 0x4 + .incbin "baserom.nds", 0x79C0, 0x4 + .incbin "baserom.nds", 0x79C4, 0x4 + .incbin "baserom.nds", 0x79C8, 0x10 + .incbin "baserom.nds", 0x79D8, 0x4 + .incbin "baserom.nds", 0x79DC, 0x4 + .incbin "baserom.nds", 0x79E0, 0x4 + .incbin "baserom.nds", 0x79E4, 0x4 + .incbin "baserom.nds", 0x79E8, 0x4 + .incbin "baserom.nds", 0x79EC, 0x4 + .incbin "baserom.nds", 0x79F0, 0x4 + .incbin "baserom.nds", 0x79F4, 0x4 + .incbin "baserom.nds", 0x79F8, 0x4 + .incbin "baserom.nds", 0x79FC, 0x4 + .incbin "baserom.nds", 0x7A00, 0x4 + .incbin "baserom.nds", 0x7A04, 0x4 + .incbin "baserom.nds", 0x7A08, 0x4 + .incbin "baserom.nds", 0x7A0C, 0x4 + .incbin "baserom.nds", 0x7A10, 0x4 + .incbin "baserom.nds", 0x7A14, 0x4 + .incbin "baserom.nds", 0x7A18, 0x4 + .incbin "baserom.nds", 0x7A1C, 0x4 + .incbin "baserom.nds", 0x7A20, 0x4 + .incbin "baserom.nds", 0x7A24, 0x4 + .incbin "baserom.nds", 0x7A28, 0x4 + .incbin "baserom.nds", 0x7A2C, 0x4 + .incbin "baserom.nds", 0x7A30, 0x4 + .incbin "baserom.nds", 0x7A34, 0x4 + .incbin "baserom.nds", 0x7A38, 0x4 + .incbin "baserom.nds", 0x7A3C, 0x4 + .incbin "baserom.nds", 0x7A40, 0x4 + .incbin "baserom.nds", 0x7A44, 0x4 + .incbin "baserom.nds", 0x7A48, 0x4 + .incbin "baserom.nds", 0x7A4C, 0x4 + .incbin "baserom.nds", 0x7A50, 0x4 + .incbin "baserom.nds", 0x7A54, 0x4 + .incbin "baserom.nds", 0x7A58, 0x4 + .incbin "baserom.nds", 0x7A5C, 0x4 + .incbin "baserom.nds", 0x7A60, 0x4 + .incbin "baserom.nds", 0x7A64, 0x4 + .incbin "baserom.nds", 0x7A68, 0x4 + .incbin "baserom.nds", 0x7A6C, 0x4 + .incbin "baserom.nds", 0x7A70, 0x4 + .incbin "baserom.nds", 0x7A74, 0x4 + .incbin "baserom.nds", 0x7A78, 0x4 + .incbin "baserom.nds", 0x7A7C, 0x4 + .incbin "baserom.nds", 0x7A80, 0x4 + .incbin "baserom.nds", 0x7A84, 0x4 + .incbin "baserom.nds", 0x7A88, 0x4 + .incbin "baserom.nds", 0x7A8C, 0x4 + .incbin "baserom.nds", 0x7A90, 0x4 + .incbin "baserom.nds", 0x7A94, 0x4 + .incbin "baserom.nds", 0x7A98, 0x4 + .incbin "baserom.nds", 0x7A9C, 0x4 + .incbin "baserom.nds", 0x7AA0, 0x54 + .incbin "baserom.nds", 0x7AF4, 0x4 + .incbin "baserom.nds", 0x7AF8, 0x4 + .incbin "baserom.nds", 0x7AFC, 0x54 + .incbin "baserom.nds", 0x7B50, 0x4 + .incbin "baserom.nds", 0x7B54, 0x4 + .incbin "baserom.nds", 0x7B58, 0x4 + .incbin "baserom.nds", 0x7B5C, 0x4 + .incbin "baserom.nds", 0x7B60, 0x54 + .incbin "baserom.nds", 0x7BB4, 0x4 + .incbin "baserom.nds", 0x7BB8, 0x4 + .incbin "baserom.nds", 0x7BBC, 0x4 + .incbin "baserom.nds", 0x7BC0, 0x4 + .incbin "baserom.nds", 0x7BC4, 0x4 + .incbin "baserom.nds", 0x7BC8, 0x4 + .incbin "baserom.nds", 0x7BCC, 0x4 + .incbin "baserom.nds", 0x7BD0, 0x4 + .incbin "baserom.nds", 0x7BD4, 0x4 + .incbin "baserom.nds", 0x7BD8, 0x4 + .incbin "baserom.nds", 0x7BDC, 0x4 + .incbin "baserom.nds", 0x7BE0, 0x4 + .incbin "baserom.nds", 0x7BE4, 0x4 + .incbin "baserom.nds", 0x7BE8, 0x4 + .incbin "baserom.nds", 0x7BEC, 0x4 + .incbin "baserom.nds", 0x7BF0, 0x4 + .incbin "baserom.nds", 0x7BF4, 0x4 + .incbin "baserom.nds", 0x7BF8, 0x4 + .incbin "baserom.nds", 0x7BFC, 0x4 + .incbin "baserom.nds", 0x7C00, 0x4 + .incbin "baserom.nds", 0x7C04, 0x4 + .incbin "baserom.nds", 0x7C08, 0x4 + .incbin "baserom.nds", 0x7C0C, 0x4 + .incbin "baserom.nds", 0x7C10, 0x4 + .incbin "baserom.nds", 0x7C14, 0x4 + .incbin "baserom.nds", 0x7C18, 0x4 + .incbin "baserom.nds", 0x7C1C, 0x4 + .incbin "baserom.nds", 0x7C20, 0x4 + .incbin "baserom.nds", 0x7C24, 0x4 + .incbin "baserom.nds", 0x7C28, 0x4 + .incbin "baserom.nds", 0x7C2C, 0x4 + .incbin "baserom.nds", 0x7C30, 0x4 + .incbin "baserom.nds", 0x7C34, 0x4 + .incbin "baserom.nds", 0x7C38, 0x4 + .incbin "baserom.nds", 0x7C3C, 0x4 + .incbin "baserom.nds", 0x7C40, 0x4 + .incbin "baserom.nds", 0x7C44, 0x4 + .incbin "baserom.nds", 0x7C48, 0x4 + .incbin "baserom.nds", 0x7C4C, 0x4 + .incbin "baserom.nds", 0x7C50, 0x4 + .incbin "baserom.nds", 0x7C54, 0x4 + .incbin "baserom.nds", 0x7C58, 0x4 + .incbin "baserom.nds", 0x7C5C, 0x4 + .incbin "baserom.nds", 0x7C60, 0x4 + .incbin "baserom.nds", 0x7C64, 0x4 + .incbin "baserom.nds", 0x7C68, 0x4 + .incbin "baserom.nds", 0x7C6C, 0x4 + .incbin "baserom.nds", 0x7C70, 0x4 + .incbin "baserom.nds", 0x7C74, 0x4 + .incbin "baserom.nds", 0x7C78, 0x4 + .incbin "baserom.nds", 0x7C7C, 0x4 + .incbin "baserom.nds", 0x7C80, 0x4 + .incbin "baserom.nds", 0x7C84, 0x4 + .incbin "baserom.nds", 0x7C88, 0x4 + .incbin "baserom.nds", 0x7C8C, 0x4 + .incbin "baserom.nds", 0x7C90, 0x4 + .incbin "baserom.nds", 0x7C94, 0x4 + .incbin "baserom.nds", 0x7C98, 0x4 + .incbin "baserom.nds", 0x7C9C, 0x4 + .incbin "baserom.nds", 0x7CA0, 0x4 + .incbin "baserom.nds", 0x7CA4, 0x4 + .incbin "baserom.nds", 0x7CA8, 0x4 + .incbin "baserom.nds", 0x7CAC, 0x4 + .incbin "baserom.nds", 0x7CB0, 0x4 + .incbin "baserom.nds", 0x7CB4, 0x4 + .incbin "baserom.nds", 0x7CB8, 0x4 + .incbin "baserom.nds", 0x7CBC, 0x4 + .incbin "baserom.nds", 0x7CC0, 0x4 + .incbin "baserom.nds", 0x7CC4, 0x4 + .incbin "baserom.nds", 0x7CC8, 0x4 + .incbin "baserom.nds", 0x7CCC, 0x4 + .incbin "baserom.nds", 0x7CD0, 0x4 + .incbin "baserom.nds", 0x7CD4, 0x4 + .incbin "baserom.nds", 0x7CD8, 0x4 + .balign 4, 255 diff --git a/narc/application/zkn_data/zukan_enc_pearl.narc.s b/narc/application/zkn_data/zukan_enc_pearl.narc.s new file mode 100644 index 00000000..ba4ac232 --- /dev/null +++ b/narc/application/zkn_data/zukan_enc_pearl.narc.s @@ -0,0 +1,9934 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x000117C8 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00009ADC ; chunk size + .short 4954 ; number of files + .balign 4 + .word 0x00000000, 0x00000058 + .word 0x00000058, 0x000000B0 + .word 0x000000B0, 0x000007DC + .word 0x000007DC, 0x000008A8 + .word 0x000008A8, 0x000008EC + .word 0x000008EC, 0x000008F0 + .word 0x000008F0, 0x000008F4 + .word 0x000008F4, 0x000008F8 + .word 0x000008F8, 0x000008FC + .word 0x000008FC, 0x00000900 + .word 0x00000900, 0x00000904 + .word 0x00000904, 0x00000908 + .word 0x00000908, 0x0000090C + .word 0x0000090C, 0x00000910 + .word 0x00000910, 0x00000914 + .word 0x00000914, 0x00000918 + .word 0x00000918, 0x0000091C + .word 0x0000091C, 0x00000920 + .word 0x00000920, 0x00000924 + .word 0x00000924, 0x00000928 + .word 0x00000928, 0x0000092C + .word 0x0000092C, 0x00000930 + .word 0x00000930, 0x00000934 + .word 0x00000934, 0x00000938 + .word 0x00000938, 0x0000093C + .word 0x0000093C, 0x00000940 + .word 0x00000940, 0x00000944 + .word 0x00000944, 0x00000948 + .word 0x00000948, 0x0000094C + .word 0x0000094C, 0x00000954 + .word 0x00000954, 0x00000958 + .word 0x00000958, 0x0000095C + .word 0x0000095C, 0x00000960 + .word 0x00000960, 0x00000964 + .word 0x00000964, 0x00000968 + .word 0x00000968, 0x0000096C + .word 0x0000096C, 0x00000970 + .word 0x00000970, 0x00000974 + .word 0x00000974, 0x00000978 + .word 0x00000978, 0x00000980 + .word 0x00000980, 0x00000984 + .word 0x00000984, 0x00000988 + .word 0x00000988, 0x0000098C + .word 0x0000098C, 0x00000990 + .word 0x00000990, 0x00000994 + .word 0x00000994, 0x000009B4 + .word 0x000009B4, 0x000009DC + .word 0x000009DC, 0x000009E0 + .word 0x000009E0, 0x000009E4 + .word 0x000009E4, 0x000009E8 + .word 0x000009E8, 0x000009EC + .word 0x000009EC, 0x000009F0 + .word 0x000009F0, 0x000009F4 + .word 0x000009F4, 0x000009F8 + .word 0x000009F8, 0x000009FC + .word 0x000009FC, 0x00000A00 + .word 0x00000A00, 0x00000A04 + .word 0x00000A04, 0x00000A08 + .word 0x00000A08, 0x00000A24 + .word 0x00000A24, 0x00000A40 + .word 0x00000A40, 0x00000A44 + .word 0x00000A44, 0x00000A48 + .word 0x00000A48, 0x00000A4C + .word 0x00000A4C, 0x00000A50 + .word 0x00000A50, 0x00000A54 + .word 0x00000A54, 0x00000A58 + .word 0x00000A58, 0x00000A5C + .word 0x00000A5C, 0x00000A60 + .word 0x00000A60, 0x00000A68 + .word 0x00000A68, 0x00000A6C + .word 0x00000A6C, 0x00000A74 + .word 0x00000A74, 0x00000A84 + .word 0x00000A84, 0x00000A88 + .word 0x00000A88, 0x00000A8C + .word 0x00000A8C, 0x00000A90 + .word 0x00000A90, 0x00000A94 + .word 0x00000A94, 0x00000A98 + .word 0x00000A98, 0x00000A9C + .word 0x00000A9C, 0x00000AC0 + .word 0x00000AC0, 0x00000AD8 + .word 0x00000AD8, 0x00000ADC + .word 0x00000ADC, 0x00000AE0 + .word 0x00000AE0, 0x00000AE4 + .word 0x00000AE4, 0x00000AE8 + .word 0x00000AE8, 0x00000AEC + .word 0x00000AEC, 0x00000AF0 + .word 0x00000AF0, 0x00000AF4 + .word 0x00000AF4, 0x00000AF8 + .word 0x00000AF8, 0x00000AFC + .word 0x00000AFC, 0x00000B00 + .word 0x00000B00, 0x00000B04 + .word 0x00000B04, 0x00000B08 + .word 0x00000B08, 0x00000B0C + .word 0x00000B0C, 0x00000B10 + .word 0x00000B10, 0x00000B14 + .word 0x00000B14, 0x00000B18 + .word 0x00000B18, 0x00000B24 + .word 0x00000B24, 0x00000B2C + .word 0x00000B2C, 0x00000B30 + .word 0x00000B30, 0x00000B48 + .word 0x00000B48, 0x00000B4C + .word 0x00000B4C, 0x00000B50 + .word 0x00000B50, 0x00000B54 + .word 0x00000B54, 0x00000B58 + .word 0x00000B58, 0x00000B5C + .word 0x00000B5C, 0x00000B60 + .word 0x00000B60, 0x00000B64 + .word 0x00000B64, 0x00000B68 + .word 0x00000B68, 0x00000B6C + .word 0x00000B6C, 0x00000B70 + .word 0x00000B70, 0x00000B74 + .word 0x00000B74, 0x00000B78 + .word 0x00000B78, 0x00000B7C + .word 0x00000B7C, 0x00000B80 + .word 0x00000B80, 0x00000B88 + .word 0x00000B88, 0x00000B8C + .word 0x00000B8C, 0x00000B90 + .word 0x00000B90, 0x00000B94 + .word 0x00000B94, 0x00000B98 + .word 0x00000B98, 0x00000B9C + .word 0x00000B9C, 0x00000BA0 + .word 0x00000BA0, 0x00000BA4 + .word 0x00000BA4, 0x00000BB8 + .word 0x00000BB8, 0x00000BCC + .word 0x00000BCC, 0x00000BD0 + .word 0x00000BD0, 0x00000BD4 + .word 0x00000BD4, 0x00000BD8 + .word 0x00000BD8, 0x00000BDC + .word 0x00000BDC, 0x00000BE0 + .word 0x00000BE0, 0x00000BE4 + .word 0x00000BE4, 0x00000BE8 + .word 0x00000BE8, 0x00000BEC + .word 0x00000BEC, 0x00000BF0 + .word 0x00000BF0, 0x00000C18 + .word 0x00000C18, 0x00000C40 + .word 0x00000C40, 0x00000C48 + .word 0x00000C48, 0x00000C4C + .word 0x00000C4C, 0x00000C50 + .word 0x00000C50, 0x00000C54 + .word 0x00000C54, 0x00000C58 + .word 0x00000C58, 0x00000C5C + .word 0x00000C5C, 0x00000C60 + .word 0x00000C60, 0x00000C64 + .word 0x00000C64, 0x00000C68 + .word 0x00000C68, 0x00000C6C + .word 0x00000C6C, 0x00000C70 + .word 0x00000C70, 0x00000C74 + .word 0x00000C74, 0x00000C78 + .word 0x00000C78, 0x00000C7C + .word 0x00000C7C, 0x00000C80 + .word 0x00000C80, 0x00000C84 + .word 0x00000C84, 0x00000C8C + .word 0x00000C8C, 0x00000C94 + .word 0x00000C94, 0x00000C98 + .word 0x00000C98, 0x00000C9C + .word 0x00000C9C, 0x00000CA0 + .word 0x00000CA0, 0x00000CA4 + .word 0x00000CA4, 0x00000CA8 + .word 0x00000CA8, 0x00000CAC + .word 0x00000CAC, 0x00000CB0 + .word 0x00000CB0, 0x00000CB4 + .word 0x00000CB4, 0x00000CB8 + .word 0x00000CB8, 0x00000CBC + .word 0x00000CBC, 0x00000CC0 + .word 0x00000CC0, 0x00000CC4 + .word 0x00000CC4, 0x00000CC8 + .word 0x00000CC8, 0x00000CCC + .word 0x00000CCC, 0x00000CD0 + .word 0x00000CD0, 0x00000CD4 + .word 0x00000CD4, 0x00000CD8 + .word 0x00000CD8, 0x00000CDC + .word 0x00000CDC, 0x00000CE0 + .word 0x00000CE0, 0x00000CE4 + .word 0x00000CE4, 0x00000CE8 + .word 0x00000CE8, 0x00000CEC + .word 0x00000CEC, 0x00000CF0 + .word 0x00000CF0, 0x00000CF8 + .word 0x00000CF8, 0x00000D00 + .word 0x00000D00, 0x00000D04 + .word 0x00000D04, 0x00000D08 + .word 0x00000D08, 0x00000D0C + .word 0x00000D0C, 0x00000D10 + .word 0x00000D10, 0x00000D14 + .word 0x00000D14, 0x00000D18 + .word 0x00000D18, 0x00000D1C + .word 0x00000D1C, 0x00000D20 + .word 0x00000D20, 0x00000D24 + .word 0x00000D24, 0x00000D2C + .word 0x00000D2C, 0x00000D30 + .word 0x00000D30, 0x00000D34 + .word 0x00000D34, 0x00000D38 + .word 0x00000D38, 0x00000D3C + .word 0x00000D3C, 0x00000D40 + .word 0x00000D40, 0x00000D44 + .word 0x00000D44, 0x00000D48 + .word 0x00000D48, 0x00000D4C + .word 0x00000D4C, 0x00000D50 + .word 0x00000D50, 0x00000D54 + .word 0x00000D54, 0x00000D5C + .word 0x00000D5C, 0x00000D64 + .word 0x00000D64, 0x00000D68 + .word 0x00000D68, 0x00000D6C + .word 0x00000D6C, 0x00000D70 + .word 0x00000D70, 0x00000D74 + .word 0x00000D74, 0x00000D78 + .word 0x00000D78, 0x00000D80 + .word 0x00000D80, 0x00000D84 + .word 0x00000D84, 0x00000D88 + .word 0x00000D88, 0x00000D8C + .word 0x00000D8C, 0x00000D90 + .word 0x00000D90, 0x00000D94 + .word 0x00000D94, 0x00000D98 + .word 0x00000D98, 0x00000DA8 + .word 0x00000DA8, 0x00000DAC + .word 0x00000DAC, 0x00000DB0 + .word 0x00000DB0, 0x00000DB4 + .word 0x00000DB4, 0x00000DB8 + .word 0x00000DB8, 0x00000DBC + .word 0x00000DBC, 0x00000DC0 + .word 0x00000DC0, 0x00000DCC + .word 0x00000DCC, 0x00000DD0 + .word 0x00000DD0, 0x00000DD4 + .word 0x00000DD4, 0x00000DDC + .word 0x00000DDC, 0x00000DE4 + .word 0x00000DE4, 0x00000DE8 + .word 0x00000DE8, 0x00000DEC + .word 0x00000DEC, 0x00000DF0 + .word 0x00000DF0, 0x00000DF4 + .word 0x00000DF4, 0x00000DF8 + .word 0x00000DF8, 0x00000DFC + .word 0x00000DFC, 0x00000E00 + .word 0x00000E00, 0x00000E04 + .word 0x00000E04, 0x00000E08 + .word 0x00000E08, 0x00000E0C + .word 0x00000E0C, 0x00000E10 + .word 0x00000E10, 0x00000E14 + .word 0x00000E14, 0x00000E18 + .word 0x00000E18, 0x00000E1C + .word 0x00000E1C, 0x00000E20 + .word 0x00000E20, 0x00000E24 + .word 0x00000E24, 0x00000E28 + .word 0x00000E28, 0x00000E2C + .word 0x00000E2C, 0x00000E30 + .word 0x00000E30, 0x00000E34 + .word 0x00000E34, 0x00000E38 + .word 0x00000E38, 0x00000E3C + .word 0x00000E3C, 0x00000E40 + .word 0x00000E40, 0x00000E44 + .word 0x00000E44, 0x00000E48 + .word 0x00000E48, 0x00000E4C + .word 0x00000E4C, 0x00000E50 + .word 0x00000E50, 0x00000E54 + .word 0x00000E54, 0x00000E58 + .word 0x00000E58, 0x00000E5C + .word 0x00000E5C, 0x00000E60 + .word 0x00000E60, 0x00000E64 + .word 0x00000E64, 0x00000E68 + .word 0x00000E68, 0x00000E6C + .word 0x00000E6C, 0x00000E70 + .word 0x00000E70, 0x00000E74 + .word 0x00000E74, 0x00000E78 + .word 0x00000E78, 0x00000E7C + .word 0x00000E7C, 0x00000E80 + .word 0x00000E80, 0x00000E84 + .word 0x00000E84, 0x00000E88 + .word 0x00000E88, 0x00000E8C + .word 0x00000E8C, 0x00000E90 + .word 0x00000E90, 0x00000E94 + .word 0x00000E94, 0x00000E98 + .word 0x00000E98, 0x00000EA0 + .word 0x00000EA0, 0x00000EA4 + .word 0x00000EA4, 0x00000EA8 + .word 0x00000EA8, 0x00000EB0 + .word 0x00000EB0, 0x00000EB8 + .word 0x00000EB8, 0x00000EBC + .word 0x00000EBC, 0x00000EC0 + .word 0x00000EC0, 0x00000EC4 + .word 0x00000EC4, 0x00000EC8 + .word 0x00000EC8, 0x00000ECC + .word 0x00000ECC, 0x00000ED0 + .word 0x00000ED0, 0x00000ED4 + .word 0x00000ED4, 0x00000ED8 + .word 0x00000ED8, 0x00000EDC + .word 0x00000EDC, 0x00000EE0 + .word 0x00000EE0, 0x00000EE4 + .word 0x00000EE4, 0x00000EE8 + .word 0x00000EE8, 0x00000EEC + .word 0x00000EEC, 0x00000EF0 + .word 0x00000EF0, 0x00000EF4 + .word 0x00000EF4, 0x00000EF8 + .word 0x00000EF8, 0x00000EFC + .word 0x00000EFC, 0x00000F00 + .word 0x00000F00, 0x00000F04 + .word 0x00000F04, 0x00000F08 + .word 0x00000F08, 0x00000F0C + .word 0x00000F0C, 0x00000F10 + .word 0x00000F10, 0x00000F14 + .word 0x00000F14, 0x00000F18 + .word 0x00000F18, 0x00000F1C + .word 0x00000F1C, 0x00000F20 + .word 0x00000F20, 0x00000F24 + .word 0x00000F24, 0x00000F28 + .word 0x00000F28, 0x00000F30 + .word 0x00000F30, 0x00000F34 + .word 0x00000F34, 0x00000F38 + .word 0x00000F38, 0x00000F3C + .word 0x00000F3C, 0x00000F40 + .word 0x00000F40, 0x00000F44 + .word 0x00000F44, 0x00000F48 + .word 0x00000F48, 0x00000F4C + .word 0x00000F4C, 0x00000F50 + .word 0x00000F50, 0x00000F58 + .word 0x00000F58, 0x00000F64 + .word 0x00000F64, 0x00000F68 + .word 0x00000F68, 0x00000F6C + .word 0x00000F6C, 0x00000F70 + .word 0x00000F70, 0x00000F74 + .word 0x00000F74, 0x00000F78 + .word 0x00000F78, 0x00000F7C + .word 0x00000F7C, 0x00000F84 + .word 0x00000F84, 0x00000F88 + .word 0x00000F88, 0x00000F8C + .word 0x00000F8C, 0x00000F94 + .word 0x00000F94, 0x00000F98 + .word 0x00000F98, 0x00000F9C + .word 0x00000F9C, 0x00000FA0 + .word 0x00000FA0, 0x00000FA4 + .word 0x00000FA4, 0x00000FAC + .word 0x00000FAC, 0x00000FB0 + .word 0x00000FB0, 0x00000FB4 + .word 0x00000FB4, 0x00000FB8 + .word 0x00000FB8, 0x00000FBC + .word 0x00000FBC, 0x00000FC0 + .word 0x00000FC0, 0x00000FC4 + .word 0x00000FC4, 0x00000FC8 + .word 0x00000FC8, 0x00000FCC + .word 0x00000FCC, 0x00000FD0 + .word 0x00000FD0, 0x00000FD4 + .word 0x00000FD4, 0x00000FD8 + .word 0x00000FD8, 0x00000FDC + .word 0x00000FDC, 0x00000FE0 + .word 0x00000FE0, 0x00000FE4 + .word 0x00000FE4, 0x00000FE8 + .word 0x00000FE8, 0x00000FFC + .word 0x00000FFC, 0x00001010 + .word 0x00001010, 0x00001014 + .word 0x00001014, 0x00001018 + .word 0x00001018, 0x0000101C + .word 0x0000101C, 0x00001020 + .word 0x00001020, 0x00001024 + .word 0x00001024, 0x00001028 + .word 0x00001028, 0x0000102C + .word 0x0000102C, 0x00001030 + .word 0x00001030, 0x00001034 + .word 0x00001034, 0x00001038 + .word 0x00001038, 0x0000103C + .word 0x0000103C, 0x00001040 + .word 0x00001040, 0x00001044 + .word 0x00001044, 0x00001048 + .word 0x00001048, 0x0000104C + .word 0x0000104C, 0x00001050 + .word 0x00001050, 0x00001054 + .word 0x00001054, 0x00001060 + .word 0x00001060, 0x00001064 + .word 0x00001064, 0x00001068 + .word 0x00001068, 0x0000106C + .word 0x0000106C, 0x00001070 + .word 0x00001070, 0x00001074 + .word 0x00001074, 0x00001078 + .word 0x00001078, 0x0000107C + .word 0x0000107C, 0x00001080 + .word 0x00001080, 0x00001084 + .word 0x00001084, 0x00001088 + .word 0x00001088, 0x0000108C + .word 0x0000108C, 0x00001090 + .word 0x00001090, 0x00001094 + .word 0x00001094, 0x00001098 + .word 0x00001098, 0x0000109C + .word 0x0000109C, 0x000010A0 + .word 0x000010A0, 0x000010A4 + .word 0x000010A4, 0x000010A8 + .word 0x000010A8, 0x000010AC + .word 0x000010AC, 0x000010B0 + .word 0x000010B0, 0x000010B4 + .word 0x000010B4, 0x000010B8 + .word 0x000010B8, 0x000010BC + .word 0x000010BC, 0x000010C0 + .word 0x000010C0, 0x000010C4 + .word 0x000010C4, 0x000010C8 + .word 0x000010C8, 0x000010CC + .word 0x000010CC, 0x000010D0 + .word 0x000010D0, 0x000010D4 + .word 0x000010D4, 0x000010D8 + .word 0x000010D8, 0x000010DC + .word 0x000010DC, 0x000010E0 + .word 0x000010E0, 0x000010E4 + .word 0x000010E4, 0x000010E8 + .word 0x000010E8, 0x000010EC + .word 0x000010EC, 0x000010F0 + .word 0x000010F0, 0x000010F4 + .word 0x000010F4, 0x00001100 + .word 0x00001100, 0x00001110 + .word 0x00001110, 0x00001114 + .word 0x00001114, 0x00001120 + .word 0x00001120, 0x00001134 + .word 0x00001134, 0x00001138 + .word 0x00001138, 0x00001140 + .word 0x00001140, 0x00001144 + .word 0x00001144, 0x00001148 + .word 0x00001148, 0x0000114C + .word 0x0000114C, 0x00001158 + .word 0x00001158, 0x0000115C + .word 0x0000115C, 0x00001160 + .word 0x00001160, 0x00001164 + .word 0x00001164, 0x00001168 + .word 0x00001168, 0x0000116C + .word 0x0000116C, 0x00001170 + .word 0x00001170, 0x00001174 + .word 0x00001174, 0x00001178 + .word 0x00001178, 0x0000117C + .word 0x0000117C, 0x00001180 + .word 0x00001180, 0x00001184 + .word 0x00001184, 0x00001188 + .word 0x00001188, 0x00001190 + .word 0x00001190, 0x00001194 + .word 0x00001194, 0x00001198 + .word 0x00001198, 0x0000119C + .word 0x0000119C, 0x000011A0 + .word 0x000011A0, 0x000011A4 + .word 0x000011A4, 0x000011A8 + .word 0x000011A8, 0x000011AC + .word 0x000011AC, 0x000011B4 + .word 0x000011B4, 0x000011B8 + .word 0x000011B8, 0x000011BC + .word 0x000011BC, 0x000011C0 + .word 0x000011C0, 0x000011C4 + .word 0x000011C4, 0x000011C8 + .word 0x000011C8, 0x000011D8 + .word 0x000011D8, 0x000011DC + .word 0x000011DC, 0x000011E0 + .word 0x000011E0, 0x000011F0 + .word 0x000011F0, 0x000011FC + .word 0x000011FC, 0x00001200 + .word 0x00001200, 0x00001204 + .word 0x00001204, 0x00001208 + .word 0x00001208, 0x0000120C + .word 0x0000120C, 0x00001210 + .word 0x00001210, 0x00001218 + .word 0x00001218, 0x0000121C + .word 0x0000121C, 0x00001220 + .word 0x00001220, 0x00001224 + .word 0x00001224, 0x00001228 + .word 0x00001228, 0x0000122C + .word 0x0000122C, 0x00001234 + .word 0x00001234, 0x00001238 + .word 0x00001238, 0x0000123C + .word 0x0000123C, 0x00001240 + .word 0x00001240, 0x00001244 + .word 0x00001244, 0x00001248 + .word 0x00001248, 0x0000124C + .word 0x0000124C, 0x00001250 + .word 0x00001250, 0x00001254 + .word 0x00001254, 0x00001258 + .word 0x00001258, 0x00001260 + .word 0x00001260, 0x00001268 + .word 0x00001268, 0x0000126C + .word 0x0000126C, 0x00001270 + .word 0x00001270, 0x00001274 + .word 0x00001274, 0x00001278 + .word 0x00001278, 0x0000127C + .word 0x0000127C, 0x00001280 + .word 0x00001280, 0x00001284 + .word 0x00001284, 0x00001288 + .word 0x00001288, 0x0000128C + .word 0x0000128C, 0x00001290 + .word 0x00001290, 0x00001294 + .word 0x00001294, 0x00001298 + .word 0x00001298, 0x0000129C + .word 0x0000129C, 0x000012A0 + .word 0x000012A0, 0x000012A4 + .word 0x000012A4, 0x000012A8 + .word 0x000012A8, 0x000012AC + .word 0x000012AC, 0x000012B0 + .word 0x000012B0, 0x000012B4 + .word 0x000012B4, 0x000012B8 + .word 0x000012B8, 0x000012BC + .word 0x000012BC, 0x000012C0 + .word 0x000012C0, 0x000012C4 + .word 0x000012C4, 0x000012C8 + .word 0x000012C8, 0x000012CC + .word 0x000012CC, 0x000012D0 + .word 0x000012D0, 0x000012D4 + .word 0x000012D4, 0x000012D8 + .word 0x000012D8, 0x000012DC + .word 0x000012DC, 0x000012E0 + .word 0x000012E0, 0x000012E4 + .word 0x000012E4, 0x000012E8 + .word 0x000012E8, 0x000012EC + .word 0x000012EC, 0x000012F0 + .word 0x000012F0, 0x00001334 + .word 0x00001334, 0x00001338 + .word 0x00001338, 0x0000133C + .word 0x0000133C, 0x00001340 + .word 0x00001340, 0x00001344 + .word 0x00001344, 0x00001348 + .word 0x00001348, 0x0000134C + .word 0x0000134C, 0x00001350 + .word 0x00001350, 0x00001354 + .word 0x00001354, 0x00001358 + .word 0x00001358, 0x0000135C + .word 0x0000135C, 0x00001360 + .word 0x00001360, 0x00001364 + .word 0x00001364, 0x00001368 + .word 0x00001368, 0x0000136C + .word 0x0000136C, 0x00001370 + .word 0x00001370, 0x00001374 + .word 0x00001374, 0x00001378 + .word 0x00001378, 0x0000137C + .word 0x0000137C, 0x00001380 + .word 0x00001380, 0x00001384 + .word 0x00001384, 0x00001388 + .word 0x00001388, 0x0000138C + .word 0x0000138C, 0x00001390 + .word 0x00001390, 0x00001394 + .word 0x00001394, 0x0000139C + .word 0x0000139C, 0x000013A0 + .word 0x000013A0, 0x000013A4 + .word 0x000013A4, 0x000013A8 + .word 0x000013A8, 0x000013AC + .word 0x000013AC, 0x000013B0 + .word 0x000013B0, 0x000013B4 + .word 0x000013B4, 0x000013B8 + .word 0x000013B8, 0x000013BC + .word 0x000013BC, 0x000013C0 + .word 0x000013C0, 0x000013C8 + .word 0x000013C8, 0x000013CC + .word 0x000013CC, 0x000013D0 + .word 0x000013D0, 0x000013D4 + .word 0x000013D4, 0x000013D8 + .word 0x000013D8, 0x000013DC + .word 0x000013DC, 0x000013FC + .word 0x000013FC, 0x00001424 + .word 0x00001424, 0x00001428 + .word 0x00001428, 0x0000142C + .word 0x0000142C, 0x00001430 + .word 0x00001430, 0x00001434 + .word 0x00001434, 0x00001438 + .word 0x00001438, 0x0000143C + .word 0x0000143C, 0x00001440 + .word 0x00001440, 0x00001444 + .word 0x00001444, 0x00001448 + .word 0x00001448, 0x0000144C + .word 0x0000144C, 0x00001450 + .word 0x00001450, 0x0000146C + .word 0x0000146C, 0x00001488 + .word 0x00001488, 0x0000148C + .word 0x0000148C, 0x00001490 + .word 0x00001490, 0x00001494 + .word 0x00001494, 0x00001498 + .word 0x00001498, 0x0000149C + .word 0x0000149C, 0x000014A0 + .word 0x000014A0, 0x000014A4 + .word 0x000014A4, 0x000014A8 + .word 0x000014A8, 0x000014B0 + .word 0x000014B0, 0x000014B4 + .word 0x000014B4, 0x000014BC + .word 0x000014BC, 0x000014CC + .word 0x000014CC, 0x000014D0 + .word 0x000014D0, 0x000014D4 + .word 0x000014D4, 0x000014D8 + .word 0x000014D8, 0x000014DC + .word 0x000014DC, 0x000014E0 + .word 0x000014E0, 0x000014E4 + .word 0x000014E4, 0x00001508 + .word 0x00001508, 0x00001520 + .word 0x00001520, 0x00001524 + .word 0x00001524, 0x00001528 + .word 0x00001528, 0x0000152C + .word 0x0000152C, 0x00001530 + .word 0x00001530, 0x00001534 + .word 0x00001534, 0x00001538 + .word 0x00001538, 0x0000153C + .word 0x0000153C, 0x00001540 + .word 0x00001540, 0x00001544 + .word 0x00001544, 0x00001548 + .word 0x00001548, 0x0000154C + .word 0x0000154C, 0x00001550 + .word 0x00001550, 0x00001554 + .word 0x00001554, 0x00001558 + .word 0x00001558, 0x0000155C + .word 0x0000155C, 0x00001560 + .word 0x00001560, 0x0000156C + .word 0x0000156C, 0x00001574 + .word 0x00001574, 0x00001578 + .word 0x00001578, 0x00001590 + .word 0x00001590, 0x00001594 + .word 0x00001594, 0x00001598 + .word 0x00001598, 0x0000159C + .word 0x0000159C, 0x000015A0 + .word 0x000015A0, 0x000015A4 + .word 0x000015A4, 0x000015A8 + .word 0x000015A8, 0x000015AC + .word 0x000015AC, 0x000015B0 + .word 0x000015B0, 0x000015B4 + .word 0x000015B4, 0x000015B8 + .word 0x000015B8, 0x000015BC + .word 0x000015BC, 0x000015C0 + .word 0x000015C0, 0x000015C4 + .word 0x000015C4, 0x000015C8 + .word 0x000015C8, 0x000015D0 + .word 0x000015D0, 0x000015D4 + .word 0x000015D4, 0x000015D8 + .word 0x000015D8, 0x000015DC + .word 0x000015DC, 0x000015E0 + .word 0x000015E0, 0x000015E4 + .word 0x000015E4, 0x000015E8 + .word 0x000015E8, 0x000015EC + .word 0x000015EC, 0x00001600 + .word 0x00001600, 0x00001614 + .word 0x00001614, 0x00001618 + .word 0x00001618, 0x0000161C + .word 0x0000161C, 0x00001620 + .word 0x00001620, 0x00001624 + .word 0x00001624, 0x00001628 + .word 0x00001628, 0x0000162C + .word 0x0000162C, 0x00001630 + .word 0x00001630, 0x00001634 + .word 0x00001634, 0x00001638 + .word 0x00001638, 0x00001660 + .word 0x00001660, 0x00001688 + .word 0x00001688, 0x00001690 + .word 0x00001690, 0x00001694 + .word 0x00001694, 0x00001698 + .word 0x00001698, 0x0000169C + .word 0x0000169C, 0x000016A0 + .word 0x000016A0, 0x000016A4 + .word 0x000016A4, 0x000016A8 + .word 0x000016A8, 0x000016AC + .word 0x000016AC, 0x000016B0 + .word 0x000016B0, 0x000016B4 + .word 0x000016B4, 0x000016B8 + .word 0x000016B8, 0x000016BC + .word 0x000016BC, 0x000016C0 + .word 0x000016C0, 0x000016C4 + .word 0x000016C4, 0x000016C8 + .word 0x000016C8, 0x000016CC + .word 0x000016CC, 0x000016D4 + .word 0x000016D4, 0x000016DC + .word 0x000016DC, 0x000016E0 + .word 0x000016E0, 0x000016E4 + .word 0x000016E4, 0x000016E8 + .word 0x000016E8, 0x000016EC + .word 0x000016EC, 0x000016F0 + .word 0x000016F0, 0x000016F4 + .word 0x000016F4, 0x000016F8 + .word 0x000016F8, 0x000016FC + .word 0x000016FC, 0x00001700 + .word 0x00001700, 0x00001704 + .word 0x00001704, 0x00001708 + .word 0x00001708, 0x0000170C + .word 0x0000170C, 0x00001710 + .word 0x00001710, 0x00001714 + .word 0x00001714, 0x00001718 + .word 0x00001718, 0x0000171C + .word 0x0000171C, 0x00001720 + .word 0x00001720, 0x00001724 + .word 0x00001724, 0x00001728 + .word 0x00001728, 0x0000172C + .word 0x0000172C, 0x00001730 + .word 0x00001730, 0x00001734 + .word 0x00001734, 0x00001738 + .word 0x00001738, 0x00001740 + .word 0x00001740, 0x00001748 + .word 0x00001748, 0x0000174C + .word 0x0000174C, 0x00001750 + .word 0x00001750, 0x00001754 + .word 0x00001754, 0x00001758 + .word 0x00001758, 0x0000175C + .word 0x0000175C, 0x00001760 + .word 0x00001760, 0x00001764 + .word 0x00001764, 0x00001768 + .word 0x00001768, 0x0000176C + .word 0x0000176C, 0x00001774 + .word 0x00001774, 0x00001778 + .word 0x00001778, 0x0000177C + .word 0x0000177C, 0x00001780 + .word 0x00001780, 0x00001784 + .word 0x00001784, 0x00001788 + .word 0x00001788, 0x0000178C + .word 0x0000178C, 0x00001790 + .word 0x00001790, 0x00001794 + .word 0x00001794, 0x00001798 + .word 0x00001798, 0x0000179C + .word 0x0000179C, 0x000017A4 + .word 0x000017A4, 0x000017AC + .word 0x000017AC, 0x000017B0 + .word 0x000017B0, 0x000017B4 + .word 0x000017B4, 0x000017B8 + .word 0x000017B8, 0x000017BC + .word 0x000017BC, 0x000017C0 + .word 0x000017C0, 0x000017C8 + .word 0x000017C8, 0x000017CC + .word 0x000017CC, 0x000017D0 + .word 0x000017D0, 0x000017D4 + .word 0x000017D4, 0x000017D8 + .word 0x000017D8, 0x000017DC + .word 0x000017DC, 0x000017E0 + .word 0x000017E0, 0x000017F0 + .word 0x000017F0, 0x000017F4 + .word 0x000017F4, 0x000017F8 + .word 0x000017F8, 0x000017FC + .word 0x000017FC, 0x00001800 + .word 0x00001800, 0x00001804 + .word 0x00001804, 0x00001808 + .word 0x00001808, 0x00001814 + .word 0x00001814, 0x00001818 + .word 0x00001818, 0x0000181C + .word 0x0000181C, 0x00001824 + .word 0x00001824, 0x0000182C + .word 0x0000182C, 0x00001830 + .word 0x00001830, 0x00001834 + .word 0x00001834, 0x00001838 + .word 0x00001838, 0x0000183C + .word 0x0000183C, 0x00001840 + .word 0x00001840, 0x00001844 + .word 0x00001844, 0x00001848 + .word 0x00001848, 0x0000184C + .word 0x0000184C, 0x00001850 + .word 0x00001850, 0x00001854 + .word 0x00001854, 0x00001858 + .word 0x00001858, 0x0000185C + .word 0x0000185C, 0x00001860 + .word 0x00001860, 0x00001864 + .word 0x00001864, 0x00001868 + .word 0x00001868, 0x0000186C + .word 0x0000186C, 0x00001870 + .word 0x00001870, 0x00001874 + .word 0x00001874, 0x00001878 + .word 0x00001878, 0x0000187C + .word 0x0000187C, 0x00001880 + .word 0x00001880, 0x00001884 + .word 0x00001884, 0x00001888 + .word 0x00001888, 0x0000188C + .word 0x0000188C, 0x00001890 + .word 0x00001890, 0x00001894 + .word 0x00001894, 0x00001898 + .word 0x00001898, 0x0000189C + .word 0x0000189C, 0x000018A0 + .word 0x000018A0, 0x000018A4 + .word 0x000018A4, 0x000018A8 + .word 0x000018A8, 0x000018AC + .word 0x000018AC, 0x000018B0 + .word 0x000018B0, 0x000018B4 + .word 0x000018B4, 0x000018B8 + .word 0x000018B8, 0x000018BC + .word 0x000018BC, 0x000018C0 + .word 0x000018C0, 0x000018C4 + .word 0x000018C4, 0x000018C8 + .word 0x000018C8, 0x000018CC + .word 0x000018CC, 0x000018D0 + .word 0x000018D0, 0x000018D4 + .word 0x000018D4, 0x000018D8 + .word 0x000018D8, 0x000018DC + .word 0x000018DC, 0x000018E0 + .word 0x000018E0, 0x000018E8 + .word 0x000018E8, 0x000018EC + .word 0x000018EC, 0x000018F0 + .word 0x000018F0, 0x000018F8 + .word 0x000018F8, 0x00001900 + .word 0x00001900, 0x00001904 + .word 0x00001904, 0x00001908 + .word 0x00001908, 0x0000190C + .word 0x0000190C, 0x00001910 + .word 0x00001910, 0x00001914 + .word 0x00001914, 0x00001918 + .word 0x00001918, 0x0000191C + .word 0x0000191C, 0x00001920 + .word 0x00001920, 0x00001924 + .word 0x00001924, 0x00001928 + .word 0x00001928, 0x0000192C + .word 0x0000192C, 0x00001930 + .word 0x00001930, 0x00001934 + .word 0x00001934, 0x00001938 + .word 0x00001938, 0x0000193C + .word 0x0000193C, 0x00001940 + .word 0x00001940, 0x00001944 + .word 0x00001944, 0x00001948 + .word 0x00001948, 0x0000194C + .word 0x0000194C, 0x00001950 + .word 0x00001950, 0x00001954 + .word 0x00001954, 0x00001958 + .word 0x00001958, 0x0000195C + .word 0x0000195C, 0x00001960 + .word 0x00001960, 0x00001964 + .word 0x00001964, 0x00001968 + .word 0x00001968, 0x0000196C + .word 0x0000196C, 0x00001970 + .word 0x00001970, 0x00001978 + .word 0x00001978, 0x0000197C + .word 0x0000197C, 0x00001980 + .word 0x00001980, 0x00001984 + .word 0x00001984, 0x00001988 + .word 0x00001988, 0x0000198C + .word 0x0000198C, 0x00001990 + .word 0x00001990, 0x00001994 + .word 0x00001994, 0x00001998 + .word 0x00001998, 0x000019A0 + .word 0x000019A0, 0x000019AC + .word 0x000019AC, 0x000019B0 + .word 0x000019B0, 0x000019B4 + .word 0x000019B4, 0x000019B8 + .word 0x000019B8, 0x000019BC + .word 0x000019BC, 0x000019C0 + .word 0x000019C0, 0x000019C4 + .word 0x000019C4, 0x000019CC + .word 0x000019CC, 0x000019D0 + .word 0x000019D0, 0x000019D4 + .word 0x000019D4, 0x000019DC + .word 0x000019DC, 0x000019E0 + .word 0x000019E0, 0x000019E4 + .word 0x000019E4, 0x000019E8 + .word 0x000019E8, 0x000019EC + .word 0x000019EC, 0x000019F4 + .word 0x000019F4, 0x000019F8 + .word 0x000019F8, 0x000019FC + .word 0x000019FC, 0x00001A00 + .word 0x00001A00, 0x00001A04 + .word 0x00001A04, 0x00001A08 + .word 0x00001A08, 0x00001A0C + .word 0x00001A0C, 0x00001A10 + .word 0x00001A10, 0x00001A14 + .word 0x00001A14, 0x00001A18 + .word 0x00001A18, 0x00001A1C + .word 0x00001A1C, 0x00001A20 + .word 0x00001A20, 0x00001A24 + .word 0x00001A24, 0x00001A28 + .word 0x00001A28, 0x00001A2C + .word 0x00001A2C, 0x00001A30 + .word 0x00001A30, 0x00001A44 + .word 0x00001A44, 0x00001A58 + .word 0x00001A58, 0x00001A5C + .word 0x00001A5C, 0x00001A60 + .word 0x00001A60, 0x00001A64 + .word 0x00001A64, 0x00001A68 + .word 0x00001A68, 0x00001A6C + .word 0x00001A6C, 0x00001A70 + .word 0x00001A70, 0x00001A74 + .word 0x00001A74, 0x00001A78 + .word 0x00001A78, 0x00001A7C + .word 0x00001A7C, 0x00001A80 + .word 0x00001A80, 0x00001A84 + .word 0x00001A84, 0x00001A88 + .word 0x00001A88, 0x00001A8C + .word 0x00001A8C, 0x00001A90 + .word 0x00001A90, 0x00001A94 + .word 0x00001A94, 0x00001A98 + .word 0x00001A98, 0x00001A9C + .word 0x00001A9C, 0x00001AA8 + .word 0x00001AA8, 0x00001AAC + .word 0x00001AAC, 0x00001AB0 + .word 0x00001AB0, 0x00001AB4 + .word 0x00001AB4, 0x00001AB8 + .word 0x00001AB8, 0x00001ABC + .word 0x00001ABC, 0x00001AC0 + .word 0x00001AC0, 0x00001AC4 + .word 0x00001AC4, 0x00001AC8 + .word 0x00001AC8, 0x00001ACC + .word 0x00001ACC, 0x00001AD0 + .word 0x00001AD0, 0x00001AD4 + .word 0x00001AD4, 0x00001AD8 + .word 0x00001AD8, 0x00001ADC + .word 0x00001ADC, 0x00001AE0 + .word 0x00001AE0, 0x00001AE4 + .word 0x00001AE4, 0x00001AE8 + .word 0x00001AE8, 0x00001AEC + .word 0x00001AEC, 0x00001AF0 + .word 0x00001AF0, 0x00001AF4 + .word 0x00001AF4, 0x00001AF8 + .word 0x00001AF8, 0x00001AFC + .word 0x00001AFC, 0x00001B00 + .word 0x00001B00, 0x00001B04 + .word 0x00001B04, 0x00001B08 + .word 0x00001B08, 0x00001B0C + .word 0x00001B0C, 0x00001B10 + .word 0x00001B10, 0x00001B14 + .word 0x00001B14, 0x00001B18 + .word 0x00001B18, 0x00001B1C + .word 0x00001B1C, 0x00001B20 + .word 0x00001B20, 0x00001B24 + .word 0x00001B24, 0x00001B28 + .word 0x00001B28, 0x00001B2C + .word 0x00001B2C, 0x00001B30 + .word 0x00001B30, 0x00001B34 + .word 0x00001B34, 0x00001B38 + .word 0x00001B38, 0x00001B3C + .word 0x00001B3C, 0x00001B48 + .word 0x00001B48, 0x00001B58 + .word 0x00001B58, 0x00001B5C + .word 0x00001B5C, 0x00001B68 + .word 0x00001B68, 0x00001B7C + .word 0x00001B7C, 0x00001B80 + .word 0x00001B80, 0x00001B88 + .word 0x00001B88, 0x00001B8C + .word 0x00001B8C, 0x00001B90 + .word 0x00001B90, 0x00001B94 + .word 0x00001B94, 0x00001BA0 + .word 0x00001BA0, 0x00001BA4 + .word 0x00001BA4, 0x00001BA8 + .word 0x00001BA8, 0x00001BAC + .word 0x00001BAC, 0x00001BB0 + .word 0x00001BB0, 0x00001BB4 + .word 0x00001BB4, 0x00001BB8 + .word 0x00001BB8, 0x00001BBC + .word 0x00001BBC, 0x00001BC0 + .word 0x00001BC0, 0x00001BC4 + .word 0x00001BC4, 0x00001BC8 + .word 0x00001BC8, 0x00001BCC + .word 0x00001BCC, 0x00001BD0 + .word 0x00001BD0, 0x00001BD8 + .word 0x00001BD8, 0x00001BDC + .word 0x00001BDC, 0x00001BE0 + .word 0x00001BE0, 0x00001BE4 + .word 0x00001BE4, 0x00001BE8 + .word 0x00001BE8, 0x00001BEC + .word 0x00001BEC, 0x00001BF0 + .word 0x00001BF0, 0x00001BF4 + .word 0x00001BF4, 0x00001BFC + .word 0x00001BFC, 0x00001C00 + .word 0x00001C00, 0x00001C04 + .word 0x00001C04, 0x00001C08 + .word 0x00001C08, 0x00001C0C + .word 0x00001C0C, 0x00001C10 + .word 0x00001C10, 0x00001C20 + .word 0x00001C20, 0x00001C24 + .word 0x00001C24, 0x00001C28 + .word 0x00001C28, 0x00001C38 + .word 0x00001C38, 0x00001C44 + .word 0x00001C44, 0x00001C48 + .word 0x00001C48, 0x00001C4C + .word 0x00001C4C, 0x00001C50 + .word 0x00001C50, 0x00001C54 + .word 0x00001C54, 0x00001C58 + .word 0x00001C58, 0x00001C60 + .word 0x00001C60, 0x00001C64 + .word 0x00001C64, 0x00001C68 + .word 0x00001C68, 0x00001C6C + .word 0x00001C6C, 0x00001C70 + .word 0x00001C70, 0x00001C74 + .word 0x00001C74, 0x00001C7C + .word 0x00001C7C, 0x00001C80 + .word 0x00001C80, 0x00001C84 + .word 0x00001C84, 0x00001C88 + .word 0x00001C88, 0x00001C8C + .word 0x00001C8C, 0x00001C90 + .word 0x00001C90, 0x00001C94 + .word 0x00001C94, 0x00001C98 + .word 0x00001C98, 0x00001C9C + .word 0x00001C9C, 0x00001CA0 + .word 0x00001CA0, 0x00001CA8 + .word 0x00001CA8, 0x00001CB0 + .word 0x00001CB0, 0x00001CB4 + .word 0x00001CB4, 0x00001CB8 + .word 0x00001CB8, 0x00001CBC + .word 0x00001CBC, 0x00001CC0 + .word 0x00001CC0, 0x00001CC4 + .word 0x00001CC4, 0x00001CC8 + .word 0x00001CC8, 0x00001CCC + .word 0x00001CCC, 0x00001CD0 + .word 0x00001CD0, 0x00001CD4 + .word 0x00001CD4, 0x00001CD8 + .word 0x00001CD8, 0x00001CDC + .word 0x00001CDC, 0x00001CE0 + .word 0x00001CE0, 0x00001CE4 + .word 0x00001CE4, 0x00001CE8 + .word 0x00001CE8, 0x00001CEC + .word 0x00001CEC, 0x00001CF0 + .word 0x00001CF0, 0x00001CF4 + .word 0x00001CF4, 0x00001CF8 + .word 0x00001CF8, 0x00001CFC + .word 0x00001CFC, 0x00001D00 + .word 0x00001D00, 0x00001D04 + .word 0x00001D04, 0x00001D08 + .word 0x00001D08, 0x00001D0C + .word 0x00001D0C, 0x00001D10 + .word 0x00001D10, 0x00001D14 + .word 0x00001D14, 0x00001D18 + .word 0x00001D18, 0x00001D1C + .word 0x00001D1C, 0x00001D20 + .word 0x00001D20, 0x00001D24 + .word 0x00001D24, 0x00001D28 + .word 0x00001D28, 0x00001D2C + .word 0x00001D2C, 0x00001D30 + .word 0x00001D30, 0x00001D34 + .word 0x00001D34, 0x00001D38 + .word 0x00001D38, 0x00001D7C + .word 0x00001D7C, 0x00001D80 + .word 0x00001D80, 0x00001D84 + .word 0x00001D84, 0x00001D88 + .word 0x00001D88, 0x00001D8C + .word 0x00001D8C, 0x00001D90 + .word 0x00001D90, 0x00001D94 + .word 0x00001D94, 0x00001D98 + .word 0x00001D98, 0x00001D9C + .word 0x00001D9C, 0x00001DA0 + .word 0x00001DA0, 0x00001DA4 + .word 0x00001DA4, 0x00001DA8 + .word 0x00001DA8, 0x00001DAC + .word 0x00001DAC, 0x00001DB0 + .word 0x00001DB0, 0x00001DB4 + .word 0x00001DB4, 0x00001DB8 + .word 0x00001DB8, 0x00001DBC + .word 0x00001DBC, 0x00001DC0 + .word 0x00001DC0, 0x00001DC4 + .word 0x00001DC4, 0x00001DC8 + .word 0x00001DC8, 0x00001DCC + .word 0x00001DCC, 0x00001DD0 + .word 0x00001DD0, 0x00001DD4 + .word 0x00001DD4, 0x00001DD8 + .word 0x00001DD8, 0x00001DDC + .word 0x00001DDC, 0x00001DE4 + .word 0x00001DE4, 0x00001DE8 + .word 0x00001DE8, 0x00001DEC + .word 0x00001DEC, 0x00001DF0 + .word 0x00001DF0, 0x00001DF4 + .word 0x00001DF4, 0x00001DF8 + .word 0x00001DF8, 0x00001DFC + .word 0x00001DFC, 0x00001E00 + .word 0x00001E00, 0x00001E04 + .word 0x00001E04, 0x00001E08 + .word 0x00001E08, 0x00001E10 + .word 0x00001E10, 0x00001E14 + .word 0x00001E14, 0x00001E18 + .word 0x00001E18, 0x00001E1C + .word 0x00001E1C, 0x00001E20 + .word 0x00001E20, 0x00001E24 + .word 0x00001E24, 0x00001E44 + .word 0x00001E44, 0x00001E6C + .word 0x00001E6C, 0x00001E70 + .word 0x00001E70, 0x00001E74 + .word 0x00001E74, 0x00001E78 + .word 0x00001E78, 0x00001E7C + .word 0x00001E7C, 0x00001E80 + .word 0x00001E80, 0x00001E84 + .word 0x00001E84, 0x00001E88 + .word 0x00001E88, 0x00001E8C + .word 0x00001E8C, 0x00001E90 + .word 0x00001E90, 0x00001E94 + .word 0x00001E94, 0x00001E98 + .word 0x00001E98, 0x00001EB4 + .word 0x00001EB4, 0x00001ED0 + .word 0x00001ED0, 0x00001ED4 + .word 0x00001ED4, 0x00001ED8 + .word 0x00001ED8, 0x00001EDC + .word 0x00001EDC, 0x00001EE0 + .word 0x00001EE0, 0x00001EE4 + .word 0x00001EE4, 0x00001EE8 + .word 0x00001EE8, 0x00001EEC + .word 0x00001EEC, 0x00001EF0 + .word 0x00001EF0, 0x00001EF8 + .word 0x00001EF8, 0x00001EFC + .word 0x00001EFC, 0x00001F04 + .word 0x00001F04, 0x00001F14 + .word 0x00001F14, 0x00001F18 + .word 0x00001F18, 0x00001F1C + .word 0x00001F1C, 0x00001F20 + .word 0x00001F20, 0x00001F24 + .word 0x00001F24, 0x00001F28 + .word 0x00001F28, 0x00001F2C + .word 0x00001F2C, 0x00001F50 + .word 0x00001F50, 0x00001F68 + .word 0x00001F68, 0x00001F6C + .word 0x00001F6C, 0x00001F70 + .word 0x00001F70, 0x00001F74 + .word 0x00001F74, 0x00001F78 + .word 0x00001F78, 0x00001F7C + .word 0x00001F7C, 0x00001F80 + .word 0x00001F80, 0x00001F84 + .word 0x00001F84, 0x00001F88 + .word 0x00001F88, 0x00001F8C + .word 0x00001F8C, 0x00001F90 + .word 0x00001F90, 0x00001F94 + .word 0x00001F94, 0x00001F98 + .word 0x00001F98, 0x00001F9C + .word 0x00001F9C, 0x00001FA0 + .word 0x00001FA0, 0x00001FA4 + .word 0x00001FA4, 0x00001FA8 + .word 0x00001FA8, 0x00001FB4 + .word 0x00001FB4, 0x00001FBC + .word 0x00001FBC, 0x00001FC0 + .word 0x00001FC0, 0x00001FD8 + .word 0x00001FD8, 0x00001FDC + .word 0x00001FDC, 0x00001FE0 + .word 0x00001FE0, 0x00001FE4 + .word 0x00001FE4, 0x00001FE8 + .word 0x00001FE8, 0x00001FEC + .word 0x00001FEC, 0x00001FF0 + .word 0x00001FF0, 0x00001FF4 + .word 0x00001FF4, 0x00001FF8 + .word 0x00001FF8, 0x00001FFC + .word 0x00001FFC, 0x00002000 + .word 0x00002000, 0x00002004 + .word 0x00002004, 0x00002008 + .word 0x00002008, 0x0000200C + .word 0x0000200C, 0x00002010 + .word 0x00002010, 0x00002018 + .word 0x00002018, 0x0000201C + .word 0x0000201C, 0x00002020 + .word 0x00002020, 0x00002024 + .word 0x00002024, 0x00002028 + .word 0x00002028, 0x0000202C + .word 0x0000202C, 0x00002030 + .word 0x00002030, 0x00002034 + .word 0x00002034, 0x00002048 + .word 0x00002048, 0x0000205C + .word 0x0000205C, 0x00002060 + .word 0x00002060, 0x00002064 + .word 0x00002064, 0x00002068 + .word 0x00002068, 0x0000206C + .word 0x0000206C, 0x00002070 + .word 0x00002070, 0x00002074 + .word 0x00002074, 0x00002078 + .word 0x00002078, 0x0000207C + .word 0x0000207C, 0x00002080 + .word 0x00002080, 0x000020A8 + .word 0x000020A8, 0x000020D0 + .word 0x000020D0, 0x000020D8 + .word 0x000020D8, 0x000020DC + .word 0x000020DC, 0x000020E0 + .word 0x000020E0, 0x000020E4 + .word 0x000020E4, 0x000020E8 + .word 0x000020E8, 0x000020EC + .word 0x000020EC, 0x000020F0 + .word 0x000020F0, 0x000020F4 + .word 0x000020F4, 0x000020F8 + .word 0x000020F8, 0x000020FC + .word 0x000020FC, 0x00002100 + .word 0x00002100, 0x00002104 + .word 0x00002104, 0x00002108 + .word 0x00002108, 0x0000210C + .word 0x0000210C, 0x00002110 + .word 0x00002110, 0x00002114 + .word 0x00002114, 0x0000211C + .word 0x0000211C, 0x00002124 + .word 0x00002124, 0x00002128 + .word 0x00002128, 0x0000212C + .word 0x0000212C, 0x00002130 + .word 0x00002130, 0x00002134 + .word 0x00002134, 0x00002138 + .word 0x00002138, 0x0000213C + .word 0x0000213C, 0x00002140 + .word 0x00002140, 0x00002144 + .word 0x00002144, 0x00002148 + .word 0x00002148, 0x0000214C + .word 0x0000214C, 0x00002150 + .word 0x00002150, 0x00002154 + .word 0x00002154, 0x00002158 + .word 0x00002158, 0x0000215C + .word 0x0000215C, 0x00002164 + .word 0x00002164, 0x0000217C + .word 0x0000217C, 0x00002180 + .word 0x00002180, 0x00002184 + .word 0x00002184, 0x00002188 + .word 0x00002188, 0x0000218C + .word 0x0000218C, 0x00002190 + .word 0x00002190, 0x00002194 + .word 0x00002194, 0x00002198 + .word 0x00002198, 0x000021A0 + .word 0x000021A0, 0x000021A8 + .word 0x000021A8, 0x000021AC + .word 0x000021AC, 0x000021B0 + .word 0x000021B0, 0x000021B4 + .word 0x000021B4, 0x000021B8 + .word 0x000021B8, 0x000021BC + .word 0x000021BC, 0x000021C0 + .word 0x000021C0, 0x000021C4 + .word 0x000021C4, 0x000021C8 + .word 0x000021C8, 0x000021CC + .word 0x000021CC, 0x000021D4 + .word 0x000021D4, 0x000021D8 + .word 0x000021D8, 0x000021DC + .word 0x000021DC, 0x000021E0 + .word 0x000021E0, 0x000021E4 + .word 0x000021E4, 0x000021E8 + .word 0x000021E8, 0x000021EC + .word 0x000021EC, 0x000021F0 + .word 0x000021F0, 0x000021F4 + .word 0x000021F4, 0x000021F8 + .word 0x000021F8, 0x000021FC + .word 0x000021FC, 0x00002204 + .word 0x00002204, 0x0000220C + .word 0x0000220C, 0x00002210 + .word 0x00002210, 0x00002214 + .word 0x00002214, 0x00002218 + .word 0x00002218, 0x0000221C + .word 0x0000221C, 0x00002228 + .word 0x00002228, 0x00002230 + .word 0x00002230, 0x00002234 + .word 0x00002234, 0x00002238 + .word 0x00002238, 0x0000223C + .word 0x0000223C, 0x00002240 + .word 0x00002240, 0x00002244 + .word 0x00002244, 0x00002248 + .word 0x00002248, 0x00002258 + .word 0x00002258, 0x0000225C + .word 0x0000225C, 0x00002260 + .word 0x00002260, 0x00002264 + .word 0x00002264, 0x00002268 + .word 0x00002268, 0x0000226C + .word 0x0000226C, 0x00002270 + .word 0x00002270, 0x0000227C + .word 0x0000227C, 0x00002280 + .word 0x00002280, 0x00002284 + .word 0x00002284, 0x0000228C + .word 0x0000228C, 0x00002294 + .word 0x00002294, 0x00002298 + .word 0x00002298, 0x0000229C + .word 0x0000229C, 0x000022A0 + .word 0x000022A0, 0x000022A4 + .word 0x000022A4, 0x000022A8 + .word 0x000022A8, 0x000022AC + .word 0x000022AC, 0x000022B0 + .word 0x000022B0, 0x000022B4 + .word 0x000022B4, 0x000022B8 + .word 0x000022B8, 0x000022BC + .word 0x000022BC, 0x000022C0 + .word 0x000022C0, 0x000022C4 + .word 0x000022C4, 0x000022C8 + .word 0x000022C8, 0x000022CC + .word 0x000022CC, 0x000022D0 + .word 0x000022D0, 0x000022D4 + .word 0x000022D4, 0x000022D8 + .word 0x000022D8, 0x000022DC + .word 0x000022DC, 0x000022E0 + .word 0x000022E0, 0x000022E4 + .word 0x000022E4, 0x000022E8 + .word 0x000022E8, 0x000022EC + .word 0x000022EC, 0x000022F0 + .word 0x000022F0, 0x000022F4 + .word 0x000022F4, 0x000022F8 + .word 0x000022F8, 0x000022FC + .word 0x000022FC, 0x00002300 + .word 0x00002300, 0x00002304 + .word 0x00002304, 0x00002308 + .word 0x00002308, 0x0000230C + .word 0x0000230C, 0x00002310 + .word 0x00002310, 0x00002314 + .word 0x00002314, 0x00002318 + .word 0x00002318, 0x0000231C + .word 0x0000231C, 0x00002320 + .word 0x00002320, 0x00002324 + .word 0x00002324, 0x00002328 + .word 0x00002328, 0x0000232C + .word 0x0000232C, 0x00002330 + .word 0x00002330, 0x00002334 + .word 0x00002334, 0x00002338 + .word 0x00002338, 0x0000233C + .word 0x0000233C, 0x00002340 + .word 0x00002340, 0x00002344 + .word 0x00002344, 0x00002348 + .word 0x00002348, 0x00002350 + .word 0x00002350, 0x00002354 + .word 0x00002354, 0x00002358 + .word 0x00002358, 0x00002360 + .word 0x00002360, 0x00002368 + .word 0x00002368, 0x0000236C + .word 0x0000236C, 0x00002370 + .word 0x00002370, 0x00002374 + .word 0x00002374, 0x00002378 + .word 0x00002378, 0x0000237C + .word 0x0000237C, 0x00002380 + .word 0x00002380, 0x00002384 + .word 0x00002384, 0x00002388 + .word 0x00002388, 0x0000238C + .word 0x0000238C, 0x00002390 + .word 0x00002390, 0x00002394 + .word 0x00002394, 0x00002398 + .word 0x00002398, 0x0000239C + .word 0x0000239C, 0x000023A0 + .word 0x000023A0, 0x000023A4 + .word 0x000023A4, 0x000023A8 + .word 0x000023A8, 0x000023AC + .word 0x000023AC, 0x000023B0 + .word 0x000023B0, 0x000023B4 + .word 0x000023B4, 0x000023B8 + .word 0x000023B8, 0x000023BC + .word 0x000023BC, 0x000023C0 + .word 0x000023C0, 0x000023C4 + .word 0x000023C4, 0x000023C8 + .word 0x000023C8, 0x000023CC + .word 0x000023CC, 0x000023D0 + .word 0x000023D0, 0x000023D4 + .word 0x000023D4, 0x000023D8 + .word 0x000023D8, 0x000023E0 + .word 0x000023E0, 0x000023E4 + .word 0x000023E4, 0x000023E8 + .word 0x000023E8, 0x000023EC + .word 0x000023EC, 0x000023F0 + .word 0x000023F0, 0x000023F4 + .word 0x000023F4, 0x000023F8 + .word 0x000023F8, 0x000023FC + .word 0x000023FC, 0x00002400 + .word 0x00002400, 0x00002408 + .word 0x00002408, 0x00002414 + .word 0x00002414, 0x00002418 + .word 0x00002418, 0x0000241C + .word 0x0000241C, 0x00002420 + .word 0x00002420, 0x00002424 + .word 0x00002424, 0x00002428 + .word 0x00002428, 0x0000242C + .word 0x0000242C, 0x00002434 + .word 0x00002434, 0x00002438 + .word 0x00002438, 0x0000243C + .word 0x0000243C, 0x00002444 + .word 0x00002444, 0x00002448 + .word 0x00002448, 0x0000244C + .word 0x0000244C, 0x00002450 + .word 0x00002450, 0x00002454 + .word 0x00002454, 0x0000245C + .word 0x0000245C, 0x00002460 + .word 0x00002460, 0x00002464 + .word 0x00002464, 0x00002468 + .word 0x00002468, 0x0000246C + .word 0x0000246C, 0x00002470 + .word 0x00002470, 0x00002474 + .word 0x00002474, 0x00002478 + .word 0x00002478, 0x0000247C + .word 0x0000247C, 0x00002480 + .word 0x00002480, 0x00002484 + .word 0x00002484, 0x00002488 + .word 0x00002488, 0x0000248C + .word 0x0000248C, 0x00002490 + .word 0x00002490, 0x00002494 + .word 0x00002494, 0x00002498 + .word 0x00002498, 0x000024AC + .word 0x000024AC, 0x000024C0 + .word 0x000024C0, 0x000024C4 + .word 0x000024C4, 0x000024C8 + .word 0x000024C8, 0x000024CC + .word 0x000024CC, 0x000024D0 + .word 0x000024D0, 0x000024D4 + .word 0x000024D4, 0x000024D8 + .word 0x000024D8, 0x000024DC + .word 0x000024DC, 0x000024E0 + .word 0x000024E0, 0x000024E4 + .word 0x000024E4, 0x000024E8 + .word 0x000024E8, 0x000024EC + .word 0x000024EC, 0x000024F0 + .word 0x000024F0, 0x000024F4 + .word 0x000024F4, 0x000024F8 + .word 0x000024F8, 0x000024FC + .word 0x000024FC, 0x00002500 + .word 0x00002500, 0x00002504 + .word 0x00002504, 0x00002510 + .word 0x00002510, 0x00002514 + .word 0x00002514, 0x00002518 + .word 0x00002518, 0x0000251C + .word 0x0000251C, 0x00002520 + .word 0x00002520, 0x00002524 + .word 0x00002524, 0x00002528 + .word 0x00002528, 0x0000252C + .word 0x0000252C, 0x00002530 + .word 0x00002530, 0x00002534 + .word 0x00002534, 0x00002538 + .word 0x00002538, 0x0000253C + .word 0x0000253C, 0x00002540 + .word 0x00002540, 0x00002544 + .word 0x00002544, 0x00002548 + .word 0x00002548, 0x0000254C + .word 0x0000254C, 0x00002550 + .word 0x00002550, 0x00002554 + .word 0x00002554, 0x00002558 + .word 0x00002558, 0x0000255C + .word 0x0000255C, 0x00002560 + .word 0x00002560, 0x00002564 + .word 0x00002564, 0x00002568 + .word 0x00002568, 0x0000256C + .word 0x0000256C, 0x00002570 + .word 0x00002570, 0x00002574 + .word 0x00002574, 0x00002578 + .word 0x00002578, 0x0000257C + .word 0x0000257C, 0x00002580 + .word 0x00002580, 0x00002584 + .word 0x00002584, 0x00002588 + .word 0x00002588, 0x0000258C + .word 0x0000258C, 0x00002590 + .word 0x00002590, 0x00002594 + .word 0x00002594, 0x00002598 + .word 0x00002598, 0x0000259C + .word 0x0000259C, 0x000025A0 + .word 0x000025A0, 0x000025A4 + .word 0x000025A4, 0x000025AC + .word 0x000025AC, 0x000025BC + .word 0x000025BC, 0x000025C0 + .word 0x000025C0, 0x000025CC + .word 0x000025CC, 0x000025E0 + .word 0x000025E0, 0x000025E4 + .word 0x000025E4, 0x000025EC + .word 0x000025EC, 0x000025F0 + .word 0x000025F0, 0x000025F4 + .word 0x000025F4, 0x000025F8 + .word 0x000025F8, 0x00002600 + .word 0x00002600, 0x00002604 + .word 0x00002604, 0x00002608 + .word 0x00002608, 0x0000260C + .word 0x0000260C, 0x00002610 + .word 0x00002610, 0x00002614 + .word 0x00002614, 0x00002618 + .word 0x00002618, 0x0000261C + .word 0x0000261C, 0x00002620 + .word 0x00002620, 0x00002624 + .word 0x00002624, 0x00002628 + .word 0x00002628, 0x0000262C + .word 0x0000262C, 0x00002630 + .word 0x00002630, 0x00002638 + .word 0x00002638, 0x0000263C + .word 0x0000263C, 0x00002640 + .word 0x00002640, 0x00002644 + .word 0x00002644, 0x00002648 + .word 0x00002648, 0x0000264C + .word 0x0000264C, 0x00002650 + .word 0x00002650, 0x00002654 + .word 0x00002654, 0x0000265C + .word 0x0000265C, 0x00002660 + .word 0x00002660, 0x00002664 + .word 0x00002664, 0x00002668 + .word 0x00002668, 0x0000266C + .word 0x0000266C, 0x00002670 + .word 0x00002670, 0x00002680 + .word 0x00002680, 0x00002684 + .word 0x00002684, 0x00002688 + .word 0x00002688, 0x00002698 + .word 0x00002698, 0x000026A4 + .word 0x000026A4, 0x000026A8 + .word 0x000026A8, 0x000026AC + .word 0x000026AC, 0x000026B0 + .word 0x000026B0, 0x000026B4 + .word 0x000026B4, 0x000026B8 + .word 0x000026B8, 0x000026C0 + .word 0x000026C0, 0x000026C4 + .word 0x000026C4, 0x000026C8 + .word 0x000026C8, 0x000026CC + .word 0x000026CC, 0x000026D0 + .word 0x000026D0, 0x000026D4 + .word 0x000026D4, 0x000026DC + .word 0x000026DC, 0x000026E0 + .word 0x000026E0, 0x000026E4 + .word 0x000026E4, 0x000026E8 + .word 0x000026E8, 0x000026EC + .word 0x000026EC, 0x000026F0 + .word 0x000026F0, 0x000026F4 + .word 0x000026F4, 0x000026F8 + .word 0x000026F8, 0x000026FC + .word 0x000026FC, 0x00002700 + .word 0x00002700, 0x00002708 + .word 0x00002708, 0x00002710 + .word 0x00002710, 0x00002714 + .word 0x00002714, 0x00002718 + .word 0x00002718, 0x0000271C + .word 0x0000271C, 0x00002720 + .word 0x00002720, 0x00002724 + .word 0x00002724, 0x00002728 + .word 0x00002728, 0x0000272C + .word 0x0000272C, 0x00002730 + .word 0x00002730, 0x00002734 + .word 0x00002734, 0x00002738 + .word 0x00002738, 0x0000273C + .word 0x0000273C, 0x00002740 + .word 0x00002740, 0x00002744 + .word 0x00002744, 0x00002748 + .word 0x00002748, 0x0000274C + .word 0x0000274C, 0x00002750 + .word 0x00002750, 0x00002754 + .word 0x00002754, 0x00002758 + .word 0x00002758, 0x0000275C + .word 0x0000275C, 0x00002760 + .word 0x00002760, 0x00002764 + .word 0x00002764, 0x00002768 + .word 0x00002768, 0x0000276C + .word 0x0000276C, 0x00002770 + .word 0x00002770, 0x00002774 + .word 0x00002774, 0x00002778 + .word 0x00002778, 0x0000277C + .word 0x0000277C, 0x00002780 + .word 0x00002780, 0x00002784 + .word 0x00002784, 0x00002788 + .word 0x00002788, 0x0000278C + .word 0x0000278C, 0x00002790 + .word 0x00002790, 0x00002794 + .word 0x00002794, 0x00002798 + .word 0x00002798, 0x000027EC + .word 0x000027EC, 0x000027F0 + .word 0x000027F0, 0x000027F4 + .word 0x000027F4, 0x000027F8 + .word 0x000027F8, 0x000027FC + .word 0x000027FC, 0x00002800 + .word 0x00002800, 0x00002804 + .word 0x00002804, 0x00002808 + .word 0x00002808, 0x0000280C + .word 0x0000280C, 0x00002810 + .word 0x00002810, 0x00002814 + .word 0x00002814, 0x00002818 + .word 0x00002818, 0x0000281C + .word 0x0000281C, 0x00002820 + .word 0x00002820, 0x00002824 + .word 0x00002824, 0x00002828 + .word 0x00002828, 0x0000282C + .word 0x0000282C, 0x00002830 + .word 0x00002830, 0x00002834 + .word 0x00002834, 0x00002838 + .word 0x00002838, 0x0000283C + .word 0x0000283C, 0x00002840 + .word 0x00002840, 0x00002844 + .word 0x00002844, 0x00002848 + .word 0x00002848, 0x0000284C + .word 0x0000284C, 0x00002850 + .word 0x00002850, 0x00002854 + .word 0x00002854, 0x00002858 + .word 0x00002858, 0x0000285C + .word 0x0000285C, 0x00002860 + .word 0x00002860, 0x00002864 + .word 0x00002864, 0x00002868 + .word 0x00002868, 0x0000286C + .word 0x0000286C, 0x00002870 + .word 0x00002870, 0x00002874 + .word 0x00002874, 0x00002878 + .word 0x00002878, 0x0000287C + .word 0x0000287C, 0x00002880 + .word 0x00002880, 0x00002884 + .word 0x00002884, 0x00002888 + .word 0x00002888, 0x0000288C + .word 0x0000288C, 0x00002890 + .word 0x00002890, 0x00002894 + .word 0x00002894, 0x00002898 + .word 0x00002898, 0x0000289C + .word 0x0000289C, 0x000028A0 + .word 0x000028A0, 0x000028A4 + .word 0x000028A4, 0x000028A8 + .word 0x000028A8, 0x000028AC + .word 0x000028AC, 0x000028B0 + .word 0x000028B0, 0x000028B4 + .word 0x000028B4, 0x000028B8 + .word 0x000028B8, 0x000028BC + .word 0x000028BC, 0x000028C0 + .word 0x000028C0, 0x000028C4 + .word 0x000028C4, 0x000028CC + .word 0x000028CC, 0x000028D0 + .word 0x000028D0, 0x000028D4 + .word 0x000028D4, 0x000028D8 + .word 0x000028D8, 0x000028DC + .word 0x000028DC, 0x000028E0 + .word 0x000028E0, 0x000028E4 + .word 0x000028E4, 0x000028E8 + .word 0x000028E8, 0x000028EC + .word 0x000028EC, 0x000028F0 + .word 0x000028F0, 0x000028F4 + .word 0x000028F4, 0x000028F8 + .word 0x000028F8, 0x000028FC + .word 0x000028FC, 0x00002900 + .word 0x00002900, 0x00002904 + .word 0x00002904, 0x00002908 + .word 0x00002908, 0x0000290C + .word 0x0000290C, 0x00002910 + .word 0x00002910, 0x00002914 + .word 0x00002914, 0x00002918 + .word 0x00002918, 0x0000291C + .word 0x0000291C, 0x00002920 + .word 0x00002920, 0x00002924 + .word 0x00002924, 0x00002928 + .word 0x00002928, 0x0000292C + .word 0x0000292C, 0x00002930 + .word 0x00002930, 0x00002934 + .word 0x00002934, 0x00002938 + .word 0x00002938, 0x0000293C + .word 0x0000293C, 0x00002940 + .word 0x00002940, 0x00002944 + .word 0x00002944, 0x00002948 + .word 0x00002948, 0x0000294C + .word 0x0000294C, 0x00002950 + .word 0x00002950, 0x00002954 + .word 0x00002954, 0x00002958 + .word 0x00002958, 0x0000295C + .word 0x0000295C, 0x00002960 + .word 0x00002960, 0x00002964 + .word 0x00002964, 0x00002968 + .word 0x00002968, 0x0000296C + .word 0x0000296C, 0x00002970 + .word 0x00002970, 0x00002974 + .word 0x00002974, 0x00002978 + .word 0x00002978, 0x0000297C + .word 0x0000297C, 0x00002980 + .word 0x00002980, 0x00002984 + .word 0x00002984, 0x00002988 + .word 0x00002988, 0x0000298C + .word 0x0000298C, 0x00002990 + .word 0x00002990, 0x00002994 + .word 0x00002994, 0x00002998 + .word 0x00002998, 0x0000299C + .word 0x0000299C, 0x000029A0 + .word 0x000029A0, 0x000029A4 + .word 0x000029A4, 0x000029A8 + .word 0x000029A8, 0x000029AC + .word 0x000029AC, 0x000029B0 + .word 0x000029B0, 0x000029B4 + .word 0x000029B4, 0x000029B8 + .word 0x000029B8, 0x000029BC + .word 0x000029BC, 0x000029C0 + .word 0x000029C0, 0x000029C4 + .word 0x000029C4, 0x000029C8 + .word 0x000029C8, 0x000029CC + .word 0x000029CC, 0x000029D0 + .word 0x000029D0, 0x000029D4 + .word 0x000029D4, 0x000029D8 + .word 0x000029D8, 0x000029DC + .word 0x000029DC, 0x000029E0 + .word 0x000029E0, 0x000029E4 + .word 0x000029E4, 0x000029E8 + .word 0x000029E8, 0x000029EC + .word 0x000029EC, 0x000029F0 + .word 0x000029F0, 0x000029F4 + .word 0x000029F4, 0x000029F8 + .word 0x000029F8, 0x000029FC + .word 0x000029FC, 0x00002A00 + .word 0x00002A00, 0x00002A04 + .word 0x00002A04, 0x00002A08 + .word 0x00002A08, 0x00002A0C + .word 0x00002A0C, 0x00002A10 + .word 0x00002A10, 0x00002A14 + .word 0x00002A14, 0x00002A18 + .word 0x00002A18, 0x00002A1C + .word 0x00002A1C, 0x00002A20 + .word 0x00002A20, 0x00002A24 + .word 0x00002A24, 0x00002A28 + .word 0x00002A28, 0x00002A2C + .word 0x00002A2C, 0x00002A30 + .word 0x00002A30, 0x00002A34 + .word 0x00002A34, 0x00002A38 + .word 0x00002A38, 0x00002A3C + .word 0x00002A3C, 0x00002A40 + .word 0x00002A40, 0x00002A44 + .word 0x00002A44, 0x00002A48 + .word 0x00002A48, 0x00002A4C + .word 0x00002A4C, 0x00002A50 + .word 0x00002A50, 0x00002A54 + .word 0x00002A54, 0x00002A58 + .word 0x00002A58, 0x00002A5C + .word 0x00002A5C, 0x00002A60 + .word 0x00002A60, 0x00002A64 + .word 0x00002A64, 0x00002A68 + .word 0x00002A68, 0x00002A6C + .word 0x00002A6C, 0x00002A70 + .word 0x00002A70, 0x00002A74 + .word 0x00002A74, 0x00002A78 + .word 0x00002A78, 0x00002A7C + .word 0x00002A7C, 0x00002A80 + .word 0x00002A80, 0x00002A84 + .word 0x00002A84, 0x00002A88 + .word 0x00002A88, 0x00002A8C + .word 0x00002A8C, 0x00002A90 + .word 0x00002A90, 0x00002A94 + .word 0x00002A94, 0x00002A98 + .word 0x00002A98, 0x00002A9C + .word 0x00002A9C, 0x00002AA0 + .word 0x00002AA0, 0x00002AA4 + .word 0x00002AA4, 0x00002AA8 + .word 0x00002AA8, 0x00002AAC + .word 0x00002AAC, 0x00002AB0 + .word 0x00002AB0, 0x00002AB4 + .word 0x00002AB4, 0x00002AB8 + .word 0x00002AB8, 0x00002ABC + .word 0x00002ABC, 0x00002AC0 + .word 0x00002AC0, 0x00002AC4 + .word 0x00002AC4, 0x00002AC8 + .word 0x00002AC8, 0x00002AD0 + .word 0x00002AD0, 0x00002AD4 + .word 0x00002AD4, 0x00002AD8 + .word 0x00002AD8, 0x00002ADC + .word 0x00002ADC, 0x00002AE0 + .word 0x00002AE0, 0x00002AE4 + .word 0x00002AE4, 0x00002AE8 + .word 0x00002AE8, 0x00002AF0 + .word 0x00002AF0, 0x00002AF4 + .word 0x00002AF4, 0x00002AF8 + .word 0x00002AF8, 0x00002AFC + .word 0x00002AFC, 0x00002B04 + .word 0x00002B04, 0x00002B0C + .word 0x00002B0C, 0x00002B10 + .word 0x00002B10, 0x00002B14 + .word 0x00002B14, 0x00002B18 + .word 0x00002B18, 0x00002B1C + .word 0x00002B1C, 0x00002B20 + .word 0x00002B20, 0x00002B24 + .word 0x00002B24, 0x00002B28 + .word 0x00002B28, 0x00002B2C + .word 0x00002B2C, 0x00002B30 + .word 0x00002B30, 0x00002B34 + .word 0x00002B34, 0x00002B38 + .word 0x00002B38, 0x00002B3C + .word 0x00002B3C, 0x00002B40 + .word 0x00002B40, 0x00002B44 + .word 0x00002B44, 0x00002B48 + .word 0x00002B48, 0x00002B4C + .word 0x00002B4C, 0x00002B50 + .word 0x00002B50, 0x00002B54 + .word 0x00002B54, 0x00002B5C + .word 0x00002B5C, 0x00002B60 + .word 0x00002B60, 0x00002B64 + .word 0x00002B64, 0x00002B68 + .word 0x00002B68, 0x00002B6C + .word 0x00002B6C, 0x00002B70 + .word 0x00002B70, 0x00002B74 + .word 0x00002B74, 0x00002B78 + .word 0x00002B78, 0x00002B7C + .word 0x00002B7C, 0x00002B80 + .word 0x00002B80, 0x00002B84 + .word 0x00002B84, 0x00002B88 + .word 0x00002B88, 0x00002B8C + .word 0x00002B8C, 0x00002B90 + .word 0x00002B90, 0x00002B94 + .word 0x00002B94, 0x00002B98 + .word 0x00002B98, 0x00002B9C + .word 0x00002B9C, 0x00002BA0 + .word 0x00002BA0, 0x00002BA4 + .word 0x00002BA4, 0x00002BA8 + .word 0x00002BA8, 0x00002BAC + .word 0x00002BAC, 0x00002BB0 + .word 0x00002BB0, 0x00002BB4 + .word 0x00002BB4, 0x00002BB8 + .word 0x00002BB8, 0x00002BBC + .word 0x00002BBC, 0x00002BC0 + .word 0x00002BC0, 0x00002BC4 + .word 0x00002BC4, 0x00002BC8 + .word 0x00002BC8, 0x00002BCC + .word 0x00002BCC, 0x00002BD0 + .word 0x00002BD0, 0x00002BD4 + .word 0x00002BD4, 0x00002BD8 + .word 0x00002BD8, 0x00002BDC + .word 0x00002BDC, 0x00002BE0 + .word 0x00002BE0, 0x00002BE4 + .word 0x00002BE4, 0x00002BE8 + .word 0x00002BE8, 0x00002BEC + .word 0x00002BEC, 0x00002BF0 + .word 0x00002BF0, 0x00002BF4 + .word 0x00002BF4, 0x00002BF8 + .word 0x00002BF8, 0x00002BFC + .word 0x00002BFC, 0x00002C00 + .word 0x00002C00, 0x00002C04 + .word 0x00002C04, 0x00002C08 + .word 0x00002C08, 0x00002C0C + .word 0x00002C0C, 0x00002C10 + .word 0x00002C10, 0x00002C14 + .word 0x00002C14, 0x00002C18 + .word 0x00002C18, 0x00002C1C + .word 0x00002C1C, 0x00002C20 + .word 0x00002C20, 0x00002C24 + .word 0x00002C24, 0x00002C2C + .word 0x00002C2C, 0x00002C30 + .word 0x00002C30, 0x00002C34 + .word 0x00002C34, 0x00002C3C + .word 0x00002C3C, 0x00002C40 + .word 0x00002C40, 0x00002C44 + .word 0x00002C44, 0x00002C48 + .word 0x00002C48, 0x00002C4C + .word 0x00002C4C, 0x00002C50 + .word 0x00002C50, 0x00002C54 + .word 0x00002C54, 0x00002C58 + .word 0x00002C58, 0x00002C5C + .word 0x00002C5C, 0x00002C60 + .word 0x00002C60, 0x00002C64 + .word 0x00002C64, 0x00002C68 + .word 0x00002C68, 0x00002C6C + .word 0x00002C6C, 0x00002C70 + .word 0x00002C70, 0x00002C74 + .word 0x00002C74, 0x00002C78 + .word 0x00002C78, 0x00002C7C + .word 0x00002C7C, 0x00002C80 + .word 0x00002C80, 0x00002C84 + .word 0x00002C84, 0x00002C88 + .word 0x00002C88, 0x00002C8C + .word 0x00002C8C, 0x00002C90 + .word 0x00002C90, 0x00002C94 + .word 0x00002C94, 0x00002C98 + .word 0x00002C98, 0x00002C9C + .word 0x00002C9C, 0x00002CA0 + .word 0x00002CA0, 0x00002CA4 + .word 0x00002CA4, 0x00002CA8 + .word 0x00002CA8, 0x00002CAC + .word 0x00002CAC, 0x00002CB0 + .word 0x00002CB0, 0x00002CB8 + .word 0x00002CB8, 0x00002CBC + .word 0x00002CBC, 0x00002CC0 + .word 0x00002CC0, 0x00002CC4 + .word 0x00002CC4, 0x00002CC8 + .word 0x00002CC8, 0x00002CCC + .word 0x00002CCC, 0x00002CD0 + .word 0x00002CD0, 0x00002CD4 + .word 0x00002CD4, 0x00002CD8 + .word 0x00002CD8, 0x00002CDC + .word 0x00002CDC, 0x00002CE0 + .word 0x00002CE0, 0x00002CE4 + .word 0x00002CE4, 0x00002CE8 + .word 0x00002CE8, 0x00002CEC + .word 0x00002CEC, 0x00002CF0 + .word 0x00002CF0, 0x00002CF4 + .word 0x00002CF4, 0x00002CF8 + .word 0x00002CF8, 0x00002D00 + .word 0x00002D00, 0x00002D04 + .word 0x00002D04, 0x00002D08 + .word 0x00002D08, 0x00002D0C + .word 0x00002D0C, 0x00002D10 + .word 0x00002D10, 0x00002D14 + .word 0x00002D14, 0x00002D18 + .word 0x00002D18, 0x00002D1C + .word 0x00002D1C, 0x00002D20 + .word 0x00002D20, 0x00002D24 + .word 0x00002D24, 0x00002D28 + .word 0x00002D28, 0x00002D2C + .word 0x00002D2C, 0x00002D30 + .word 0x00002D30, 0x00002D34 + .word 0x00002D34, 0x00002D38 + .word 0x00002D38, 0x00002D3C + .word 0x00002D3C, 0x00002D40 + .word 0x00002D40, 0x00002D44 + .word 0x00002D44, 0x00002D48 + .word 0x00002D48, 0x00002D4C + .word 0x00002D4C, 0x00002D50 + .word 0x00002D50, 0x00002D54 + .word 0x00002D54, 0x00002D58 + .word 0x00002D58, 0x00002D5C + .word 0x00002D5C, 0x00002D60 + .word 0x00002D60, 0x00002D64 + .word 0x00002D64, 0x00002D68 + .word 0x00002D68, 0x00002D6C + .word 0x00002D6C, 0x00002D70 + .word 0x00002D70, 0x00002D74 + .word 0x00002D74, 0x00002D78 + .word 0x00002D78, 0x00002D7C + .word 0x00002D7C, 0x00002D80 + .word 0x00002D80, 0x00002D84 + .word 0x00002D84, 0x00002D8C + .word 0x00002D8C, 0x00002D90 + .word 0x00002D90, 0x00002D94 + .word 0x00002D94, 0x00002D98 + .word 0x00002D98, 0x00002D9C + .word 0x00002D9C, 0x00002DA0 + .word 0x00002DA0, 0x00002DA4 + .word 0x00002DA4, 0x00002DA8 + .word 0x00002DA8, 0x00002DAC + .word 0x00002DAC, 0x00002DB0 + .word 0x00002DB0, 0x00002DB4 + .word 0x00002DB4, 0x00002DB8 + .word 0x00002DB8, 0x00002DBC + .word 0x00002DBC, 0x00002DC0 + .word 0x00002DC0, 0x00002DC4 + .word 0x00002DC4, 0x00002DC8 + .word 0x00002DC8, 0x00002DCC + .word 0x00002DCC, 0x00002DD0 + .word 0x00002DD0, 0x00002DD4 + .word 0x00002DD4, 0x00002DD8 + .word 0x00002DD8, 0x00002DDC + .word 0x00002DDC, 0x00002DE0 + .word 0x00002DE0, 0x00002DE4 + .word 0x00002DE4, 0x00002DE8 + .word 0x00002DE8, 0x00002DEC + .word 0x00002DEC, 0x00002DF0 + .word 0x00002DF0, 0x00002DF4 + .word 0x00002DF4, 0x00002DF8 + .word 0x00002DF8, 0x00002DFC + .word 0x00002DFC, 0x00002E00 + .word 0x00002E00, 0x00002E04 + .word 0x00002E04, 0x00002E08 + .word 0x00002E08, 0x00002E0C + .word 0x00002E0C, 0x00002E10 + .word 0x00002E10, 0x00002E14 + .word 0x00002E14, 0x00002E18 + .word 0x00002E18, 0x00002E1C + .word 0x00002E1C, 0x00002E20 + .word 0x00002E20, 0x00002E24 + .word 0x00002E24, 0x00002E28 + .word 0x00002E28, 0x00002E2C + .word 0x00002E2C, 0x00002E30 + .word 0x00002E30, 0x00002E34 + .word 0x00002E34, 0x00002E38 + .word 0x00002E38, 0x00002E3C + .word 0x00002E3C, 0x00002E40 + .word 0x00002E40, 0x00002E44 + .word 0x00002E44, 0x00002E48 + .word 0x00002E48, 0x00002E50 + .word 0x00002E50, 0x00002E54 + .word 0x00002E54, 0x00002E5C + .word 0x00002E5C, 0x00002E64 + .word 0x00002E64, 0x00002E68 + .word 0x00002E68, 0x00002E6C + .word 0x00002E6C, 0x00002E70 + .word 0x00002E70, 0x00002E74 + .word 0x00002E74, 0x00002E78 + .word 0x00002E78, 0x00002E7C + .word 0x00002E7C, 0x00002E80 + .word 0x00002E80, 0x00002E84 + .word 0x00002E84, 0x00002E88 + .word 0x00002E88, 0x00002E8C + .word 0x00002E8C, 0x00002E90 + .word 0x00002E90, 0x00002E98 + .word 0x00002E98, 0x00002E9C + .word 0x00002E9C, 0x00002EA0 + .word 0x00002EA0, 0x00002EA8 + .word 0x00002EA8, 0x00002EAC + .word 0x00002EAC, 0x00002EB0 + .word 0x00002EB0, 0x00002EB4 + .word 0x00002EB4, 0x00002EB8 + .word 0x00002EB8, 0x00002EC0 + .word 0x00002EC0, 0x00002EC4 + .word 0x00002EC4, 0x00002EC8 + .word 0x00002EC8, 0x00002ECC + .word 0x00002ECC, 0x00002ED0 + .word 0x00002ED0, 0x00002ED4 + .word 0x00002ED4, 0x00002ED8 + .word 0x00002ED8, 0x00002EDC + .word 0x00002EDC, 0x00002EE0 + .word 0x00002EE0, 0x00002EE4 + .word 0x00002EE4, 0x00002EE8 + .word 0x00002EE8, 0x00002EEC + .word 0x00002EEC, 0x00002EF0 + .word 0x00002EF0, 0x00002EF4 + .word 0x00002EF4, 0x00002EF8 + .word 0x00002EF8, 0x00002EFC + .word 0x00002EFC, 0x00002F00 + .word 0x00002F00, 0x00002F04 + .word 0x00002F04, 0x00002F08 + .word 0x00002F08, 0x00002F0C + .word 0x00002F0C, 0x00002F10 + .word 0x00002F10, 0x00002F14 + .word 0x00002F14, 0x00002F18 + .word 0x00002F18, 0x00002F1C + .word 0x00002F1C, 0x00002F20 + .word 0x00002F20, 0x00002F24 + .word 0x00002F24, 0x00002F28 + .word 0x00002F28, 0x00002F2C + .word 0x00002F2C, 0x00002F30 + .word 0x00002F30, 0x00002F34 + .word 0x00002F34, 0x00002F38 + .word 0x00002F38, 0x00002F40 + .word 0x00002F40, 0x00002F44 + .word 0x00002F44, 0x00002F4C + .word 0x00002F4C, 0x00002F50 + .word 0x00002F50, 0x00002F58 + .word 0x00002F58, 0x00002F5C + .word 0x00002F5C, 0x00002F60 + .word 0x00002F60, 0x00002F64 + .word 0x00002F64, 0x00002F68 + .word 0x00002F68, 0x00002F6C + .word 0x00002F6C, 0x00002F70 + .word 0x00002F70, 0x00002F74 + .word 0x00002F74, 0x00002F78 + .word 0x00002F78, 0x00002F7C + .word 0x00002F7C, 0x00002F80 + .word 0x00002F80, 0x00002F84 + .word 0x00002F84, 0x00002F88 + .word 0x00002F88, 0x00002F8C + .word 0x00002F8C, 0x00002F90 + .word 0x00002F90, 0x00002F94 + .word 0x00002F94, 0x00002F98 + .word 0x00002F98, 0x00002F9C + .word 0x00002F9C, 0x00002FA0 + .word 0x00002FA0, 0x00002FA4 + .word 0x00002FA4, 0x00002FA8 + .word 0x00002FA8, 0x00002FAC + .word 0x00002FAC, 0x00002FB0 + .word 0x00002FB0, 0x00002FB4 + .word 0x00002FB4, 0x00002FB8 + .word 0x00002FB8, 0x00002FBC + .word 0x00002FBC, 0x00002FC0 + .word 0x00002FC0, 0x00002FC4 + .word 0x00002FC4, 0x00002FC8 + .word 0x00002FC8, 0x00002FCC + .word 0x00002FCC, 0x00002FD0 + .word 0x00002FD0, 0x00002FD4 + .word 0x00002FD4, 0x00002FD8 + .word 0x00002FD8, 0x00002FDC + .word 0x00002FDC, 0x00002FE0 + .word 0x00002FE0, 0x00002FE4 + .word 0x00002FE4, 0x00002FE8 + .word 0x00002FE8, 0x00002FEC + .word 0x00002FEC, 0x00002FF0 + .word 0x00002FF0, 0x00002FF4 + .word 0x00002FF4, 0x00002FF8 + .word 0x00002FF8, 0x00002FFC + .word 0x00002FFC, 0x00003000 + .word 0x00003000, 0x00003004 + .word 0x00003004, 0x00003008 + .word 0x00003008, 0x0000300C + .word 0x0000300C, 0x00003010 + .word 0x00003010, 0x00003014 + .word 0x00003014, 0x00003018 + .word 0x00003018, 0x0000301C + .word 0x0000301C, 0x00003020 + .word 0x00003020, 0x00003024 + .word 0x00003024, 0x00003028 + .word 0x00003028, 0x0000302C + .word 0x0000302C, 0x00003030 + .word 0x00003030, 0x00003034 + .word 0x00003034, 0x00003038 + .word 0x00003038, 0x0000303C + .word 0x0000303C, 0x00003040 + .word 0x00003040, 0x00003044 + .word 0x00003044, 0x00003048 + .word 0x00003048, 0x0000304C + .word 0x0000304C, 0x00003050 + .word 0x00003050, 0x00003054 + .word 0x00003054, 0x00003058 + .word 0x00003058, 0x00003060 + .word 0x00003060, 0x00003064 + .word 0x00003064, 0x00003068 + .word 0x00003068, 0x0000306C + .word 0x0000306C, 0x00003070 + .word 0x00003070, 0x00003074 + .word 0x00003074, 0x00003078 + .word 0x00003078, 0x0000307C + .word 0x0000307C, 0x00003080 + .word 0x00003080, 0x00003084 + .word 0x00003084, 0x00003090 + .word 0x00003090, 0x00003094 + .word 0x00003094, 0x00003098 + .word 0x00003098, 0x0000309C + .word 0x0000309C, 0x000030A4 + .word 0x000030A4, 0x000030A8 + .word 0x000030A8, 0x000030C0 + .word 0x000030C0, 0x000030D0 + .word 0x000030D0, 0x000030D4 + .word 0x000030D4, 0x000030D8 + .word 0x000030D8, 0x000030DC + .word 0x000030DC, 0x000030E4 + .word 0x000030E4, 0x000030E8 + .word 0x000030E8, 0x000030EC + .word 0x000030EC, 0x000030F0 + .word 0x000030F0, 0x000030F4 + .word 0x000030F4, 0x000030F8 + .word 0x000030F8, 0x00003100 + .word 0x00003100, 0x00003104 + .word 0x00003104, 0x00003110 + .word 0x00003110, 0x0000311C + .word 0x0000311C, 0x00003120 + .word 0x00003120, 0x00003124 + .word 0x00003124, 0x00003128 + .word 0x00003128, 0x0000312C + .word 0x0000312C, 0x00003130 + .word 0x00003130, 0x00003134 + .word 0x00003134, 0x00003138 + .word 0x00003138, 0x0000313C + .word 0x0000313C, 0x00003144 + .word 0x00003144, 0x00003148 + .word 0x00003148, 0x00003150 + .word 0x00003150, 0x0000315C + .word 0x0000315C, 0x00003160 + .word 0x00003160, 0x00003164 + .word 0x00003164, 0x00003168 + .word 0x00003168, 0x0000316C + .word 0x0000316C, 0x00003170 + .word 0x00003170, 0x00003174 + .word 0x00003174, 0x00003190 + .word 0x00003190, 0x00003198 + .word 0x00003198, 0x0000319C + .word 0x0000319C, 0x000031A0 + .word 0x000031A0, 0x000031A4 + .word 0x000031A4, 0x000031A8 + .word 0x000031A8, 0x000031AC + .word 0x000031AC, 0x000031B0 + .word 0x000031B0, 0x000031B4 + .word 0x000031B4, 0x000031B8 + .word 0x000031B8, 0x000031BC + .word 0x000031BC, 0x000031C0 + .word 0x000031C0, 0x000031C4 + .word 0x000031C4, 0x000031C8 + .word 0x000031C8, 0x000031CC + .word 0x000031CC, 0x000031D0 + .word 0x000031D0, 0x000031D4 + .word 0x000031D4, 0x000031D8 + .word 0x000031D8, 0x000031E4 + .word 0x000031E4, 0x000031EC + .word 0x000031EC, 0x000031F0 + .word 0x000031F0, 0x00003200 + .word 0x00003200, 0x00003204 + .word 0x00003204, 0x00003208 + .word 0x00003208, 0x0000320C + .word 0x0000320C, 0x00003210 + .word 0x00003210, 0x00003214 + .word 0x00003214, 0x00003218 + .word 0x00003218, 0x00003220 + .word 0x00003220, 0x00003224 + .word 0x00003224, 0x00003228 + .word 0x00003228, 0x0000322C + .word 0x0000322C, 0x00003230 + .word 0x00003230, 0x00003234 + .word 0x00003234, 0x00003238 + .word 0x00003238, 0x0000323C + .word 0x0000323C, 0x00003244 + .word 0x00003244, 0x00003248 + .word 0x00003248, 0x0000324C + .word 0x0000324C, 0x00003254 + .word 0x00003254, 0x00003258 + .word 0x00003258, 0x00003260 + .word 0x00003260, 0x00003264 + .word 0x00003264, 0x00003268 + .word 0x00003268, 0x0000326C + .word 0x0000326C, 0x00003270 + .word 0x00003270, 0x00003274 + .word 0x00003274, 0x00003278 + .word 0x00003278, 0x0000327C + .word 0x0000327C, 0x00003280 + .word 0x00003280, 0x00003284 + .word 0x00003284, 0x00003288 + .word 0x00003288, 0x0000328C + .word 0x0000328C, 0x00003290 + .word 0x00003290, 0x00003294 + .word 0x00003294, 0x00003298 + .word 0x00003298, 0x0000329C + .word 0x0000329C, 0x000032A0 + .word 0x000032A0, 0x000032A4 + .word 0x000032A4, 0x000032AC + .word 0x000032AC, 0x000032B0 + .word 0x000032B0, 0x000032B4 + .word 0x000032B4, 0x000032B8 + .word 0x000032B8, 0x000032C0 + .word 0x000032C0, 0x000032C4 + .word 0x000032C4, 0x000032C8 + .word 0x000032C8, 0x000032CC + .word 0x000032CC, 0x000032D0 + .word 0x000032D0, 0x000032D4 + .word 0x000032D4, 0x000032D8 + .word 0x000032D8, 0x000032DC + .word 0x000032DC, 0x000032E0 + .word 0x000032E0, 0x000032E4 + .word 0x000032E4, 0x000032E8 + .word 0x000032E8, 0x000032EC + .word 0x000032EC, 0x000032F0 + .word 0x000032F0, 0x000032F4 + .word 0x000032F4, 0x000032F8 + .word 0x000032F8, 0x000032FC + .word 0x000032FC, 0x00003300 + .word 0x00003300, 0x00003304 + .word 0x00003304, 0x00003308 + .word 0x00003308, 0x0000330C + .word 0x0000330C, 0x00003310 + .word 0x00003310, 0x00003314 + .word 0x00003314, 0x00003318 + .word 0x00003318, 0x0000331C + .word 0x0000331C, 0x00003320 + .word 0x00003320, 0x00003324 + .word 0x00003324, 0x00003328 + .word 0x00003328, 0x0000332C + .word 0x0000332C, 0x00003330 + .word 0x00003330, 0x00003334 + .word 0x00003334, 0x00003338 + .word 0x00003338, 0x0000333C + .word 0x0000333C, 0x00003340 + .word 0x00003340, 0x00003344 + .word 0x00003344, 0x00003348 + .word 0x00003348, 0x00003350 + .word 0x00003350, 0x0000335C + .word 0x0000335C, 0x00003364 + .word 0x00003364, 0x00003368 + .word 0x00003368, 0x0000336C + .word 0x0000336C, 0x00003370 + .word 0x00003370, 0x00003374 + .word 0x00003374, 0x00003378 + .word 0x00003378, 0x0000337C + .word 0x0000337C, 0x00003380 + .word 0x00003380, 0x00003384 + .word 0x00003384, 0x00003390 + .word 0x00003390, 0x00003394 + .word 0x00003394, 0x00003398 + .word 0x00003398, 0x0000339C + .word 0x0000339C, 0x000033A0 + .word 0x000033A0, 0x000033A4 + .word 0x000033A4, 0x000033A8 + .word 0x000033A8, 0x000033B0 + .word 0x000033B0, 0x000033B4 + .word 0x000033B4, 0x000033B8 + .word 0x000033B8, 0x000033C0 + .word 0x000033C0, 0x000033C4 + .word 0x000033C4, 0x000033CC + .word 0x000033CC, 0x000033D0 + .word 0x000033D0, 0x000033D4 + .word 0x000033D4, 0x000033D8 + .word 0x000033D8, 0x000033DC + .word 0x000033DC, 0x000033E0 + .word 0x000033E0, 0x000033E8 + .word 0x000033E8, 0x000033F8 + .word 0x000033F8, 0x000033FC + .word 0x000033FC, 0x00003400 + .word 0x00003400, 0x00003404 + .word 0x00003404, 0x00003408 + .word 0x00003408, 0x0000340C + .word 0x0000340C, 0x00003418 + .word 0x00003418, 0x0000341C + .word 0x0000341C, 0x00003420 + .word 0x00003420, 0x00003424 + .word 0x00003424, 0x00003428 + .word 0x00003428, 0x0000342C + .word 0x0000342C, 0x00003434 + .word 0x00003434, 0x0000343C + .word 0x0000343C, 0x00003440 + .word 0x00003440, 0x00003444 + .word 0x00003444, 0x0000344C + .word 0x0000344C, 0x00003454 + .word 0x00003454, 0x00003458 + .word 0x00003458, 0x0000345C + .word 0x0000345C, 0x00003460 + .word 0x00003460, 0x00003464 + .word 0x00003464, 0x00003468 + .word 0x00003468, 0x0000346C + .word 0x0000346C, 0x00003470 + .word 0x00003470, 0x00003474 + .word 0x00003474, 0x00003478 + .word 0x00003478, 0x0000347C + .word 0x0000347C, 0x00003480 + .word 0x00003480, 0x00003484 + .word 0x00003484, 0x00003488 + .word 0x00003488, 0x0000348C + .word 0x0000348C, 0x00003490 + .word 0x00003490, 0x00003494 + .word 0x00003494, 0x00003498 + .word 0x00003498, 0x0000349C + .word 0x0000349C, 0x000034A0 + .word 0x000034A0, 0x000034A4 + .word 0x000034A4, 0x000034A8 + .word 0x000034A8, 0x000034AC + .word 0x000034AC, 0x000034B0 + .word 0x000034B0, 0x000034B4 + .word 0x000034B4, 0x000034B8 + .word 0x000034B8, 0x000034BC + .word 0x000034BC, 0x000034C0 + .word 0x000034C0, 0x000034C4 + .word 0x000034C4, 0x000034C8 + .word 0x000034C8, 0x000034CC + .word 0x000034CC, 0x000034D0 + .word 0x000034D0, 0x000034D4 + .word 0x000034D4, 0x000034D8 + .word 0x000034D8, 0x000034DC + .word 0x000034DC, 0x000034E0 + .word 0x000034E0, 0x000034E4 + .word 0x000034E4, 0x000034E8 + .word 0x000034E8, 0x000034EC + .word 0x000034EC, 0x000034F0 + .word 0x000034F0, 0x000034F4 + .word 0x000034F4, 0x000034F8 + .word 0x000034F8, 0x000034FC + .word 0x000034FC, 0x00003500 + .word 0x00003500, 0x00003504 + .word 0x00003504, 0x00003508 + .word 0x00003508, 0x00003510 + .word 0x00003510, 0x00003514 + .word 0x00003514, 0x00003518 + .word 0x00003518, 0x00003520 + .word 0x00003520, 0x00003524 + .word 0x00003524, 0x00003528 + .word 0x00003528, 0x0000352C + .word 0x0000352C, 0x00003530 + .word 0x00003530, 0x00003534 + .word 0x00003534, 0x00003538 + .word 0x00003538, 0x0000353C + .word 0x0000353C, 0x00003540 + .word 0x00003540, 0x00003544 + .word 0x00003544, 0x00003548 + .word 0x00003548, 0x0000354C + .word 0x0000354C, 0x00003550 + .word 0x00003550, 0x00003554 + .word 0x00003554, 0x00003558 + .word 0x00003558, 0x0000355C + .word 0x0000355C, 0x00003560 + .word 0x00003560, 0x00003568 + .word 0x00003568, 0x0000356C + .word 0x0000356C, 0x00003570 + .word 0x00003570, 0x00003574 + .word 0x00003574, 0x00003578 + .word 0x00003578, 0x00003580 + .word 0x00003580, 0x00003584 + .word 0x00003584, 0x00003588 + .word 0x00003588, 0x0000358C + .word 0x0000358C, 0x00003594 + .word 0x00003594, 0x00003598 + .word 0x00003598, 0x0000359C + .word 0x0000359C, 0x000035A0 + .word 0x000035A0, 0x000035AC + .word 0x000035AC, 0x000035B0 + .word 0x000035B0, 0x000035B4 + .word 0x000035B4, 0x000035B8 + .word 0x000035B8, 0x000035BC + .word 0x000035BC, 0x000035C0 + .word 0x000035C0, 0x000035C4 + .word 0x000035C4, 0x000035C8 + .word 0x000035C8, 0x000035CC + .word 0x000035CC, 0x000035D4 + .word 0x000035D4, 0x000035E0 + .word 0x000035E0, 0x000035E4 + .word 0x000035E4, 0x000035E8 + .word 0x000035E8, 0x000035F0 + .word 0x000035F0, 0x000035F8 + .word 0x000035F8, 0x000035FC + .word 0x000035FC, 0x00003600 + .word 0x00003600, 0x0000360C + .word 0x0000360C, 0x00003614 + .word 0x00003614, 0x00003618 + .word 0x00003618, 0x0000361C + .word 0x0000361C, 0x00003620 + .word 0x00003620, 0x00003624 + .word 0x00003624, 0x00003628 + .word 0x00003628, 0x0000362C + .word 0x0000362C, 0x00003630 + .word 0x00003630, 0x00003634 + .word 0x00003634, 0x00003638 + .word 0x00003638, 0x0000363C + .word 0x0000363C, 0x00003640 + .word 0x00003640, 0x00003644 + .word 0x00003644, 0x00003648 + .word 0x00003648, 0x0000364C + .word 0x0000364C, 0x00003650 + .word 0x00003650, 0x00003654 + .word 0x00003654, 0x00003658 + .word 0x00003658, 0x0000365C + .word 0x0000365C, 0x00003660 + .word 0x00003660, 0x00003664 + .word 0x00003664, 0x00003668 + .word 0x00003668, 0x0000366C + .word 0x0000366C, 0x00003670 + .word 0x00003670, 0x00003674 + .word 0x00003674, 0x00003678 + .word 0x00003678, 0x0000367C + .word 0x0000367C, 0x00003680 + .word 0x00003680, 0x00003684 + .word 0x00003684, 0x00003688 + .word 0x00003688, 0x0000368C + .word 0x0000368C, 0x00003690 + .word 0x00003690, 0x00003694 + .word 0x00003694, 0x0000369C + .word 0x0000369C, 0x000036A0 + .word 0x000036A0, 0x000036A8 + .word 0x000036A8, 0x000036AC + .word 0x000036AC, 0x000036B0 + .word 0x000036B0, 0x000036B4 + .word 0x000036B4, 0x000036B8 + .word 0x000036B8, 0x000036BC + .word 0x000036BC, 0x000036C0 + .word 0x000036C0, 0x000036C4 + .word 0x000036C4, 0x000036C8 + .word 0x000036C8, 0x000036CC + .word 0x000036CC, 0x000036D0 + .word 0x000036D0, 0x000036D4 + .word 0x000036D4, 0x000036D8 + .word 0x000036D8, 0x000036DC + .word 0x000036DC, 0x000036E0 + .word 0x000036E0, 0x000036E4 + .word 0x000036E4, 0x000036E8 + .word 0x000036E8, 0x000036EC + .word 0x000036EC, 0x000036F0 + .word 0x000036F0, 0x000036F4 + .word 0x000036F4, 0x000036F8 + .word 0x000036F8, 0x000036FC + .word 0x000036FC, 0x00003700 + .word 0x00003700, 0x00003704 + .word 0x00003704, 0x00003708 + .word 0x00003708, 0x0000370C + .word 0x0000370C, 0x00003710 + .word 0x00003710, 0x00003714 + .word 0x00003714, 0x00003718 + .word 0x00003718, 0x0000371C + .word 0x0000371C, 0x00003720 + .word 0x00003720, 0x00003724 + .word 0x00003724, 0x00003728 + .word 0x00003728, 0x0000372C + .word 0x0000372C, 0x00003730 + .word 0x00003730, 0x00003734 + .word 0x00003734, 0x00003738 + .word 0x00003738, 0x0000373C + .word 0x0000373C, 0x00003740 + .word 0x00003740, 0x00003744 + .word 0x00003744, 0x00003748 + .word 0x00003748, 0x0000374C + .word 0x0000374C, 0x00003750 + .word 0x00003750, 0x00003754 + .word 0x00003754, 0x00003758 + .word 0x00003758, 0x0000375C + .word 0x0000375C, 0x00003768 + .word 0x00003768, 0x0000376C + .word 0x0000376C, 0x00003774 + .word 0x00003774, 0x0000377C + .word 0x0000377C, 0x00003780 + .word 0x00003780, 0x00003788 + .word 0x00003788, 0x0000378C + .word 0x0000378C, 0x00003790 + .word 0x00003790, 0x00003794 + .word 0x00003794, 0x00003798 + .word 0x00003798, 0x0000379C + .word 0x0000379C, 0x000037A0 + .word 0x000037A0, 0x000037A4 + .word 0x000037A4, 0x000037A8 + .word 0x000037A8, 0x000037AC + .word 0x000037AC, 0x000037B4 + .word 0x000037B4, 0x000037B8 + .word 0x000037B8, 0x000037BC + .word 0x000037BC, 0x000037C4 + .word 0x000037C4, 0x000037C8 + .word 0x000037C8, 0x000037CC + .word 0x000037CC, 0x000037D0 + .word 0x000037D0, 0x000037D8 + .word 0x000037D8, 0x000037E0 + .word 0x000037E0, 0x000037E4 + .word 0x000037E4, 0x000037E8 + .word 0x000037E8, 0x000037EC + .word 0x000037EC, 0x000037F0 + .word 0x000037F0, 0x000037F4 + .word 0x000037F4, 0x000037F8 + .word 0x000037F8, 0x000037FC + .word 0x000037FC, 0x00003800 + .word 0x00003800, 0x00003804 + .word 0x00003804, 0x00003808 + .word 0x00003808, 0x0000380C + .word 0x0000380C, 0x00003810 + .word 0x00003810, 0x00003814 + .word 0x00003814, 0x00003818 + .word 0x00003818, 0x0000381C + .word 0x0000381C, 0x0000382C + .word 0x0000382C, 0x00003838 + .word 0x00003838, 0x00003840 + .word 0x00003840, 0x00003848 + .word 0x00003848, 0x00003850 + .word 0x00003850, 0x00003854 + .word 0x00003854, 0x00003858 + .word 0x00003858, 0x00003860 + .word 0x00003860, 0x00003864 + .word 0x00003864, 0x00003868 + .word 0x00003868, 0x0000386C + .word 0x0000386C, 0x00003870 + .word 0x00003870, 0x00003874 + .word 0x00003874, 0x0000387C + .word 0x0000387C, 0x00003880 + .word 0x00003880, 0x00003888 + .word 0x00003888, 0x00003890 + .word 0x00003890, 0x00003898 + .word 0x00003898, 0x000038A0 + .word 0x000038A0, 0x000038A8 + .word 0x000038A8, 0x000038AC + .word 0x000038AC, 0x000038B0 + .word 0x000038B0, 0x000038B4 + .word 0x000038B4, 0x000038B8 + .word 0x000038B8, 0x000038BC + .word 0x000038BC, 0x000038C0 + .word 0x000038C0, 0x000038C4 + .word 0x000038C4, 0x000038C8 + .word 0x000038C8, 0x000038CC + .word 0x000038CC, 0x000038D0 + .word 0x000038D0, 0x000038D4 + .word 0x000038D4, 0x000038D8 + .word 0x000038D8, 0x000038DC + .word 0x000038DC, 0x000038E0 + .word 0x000038E0, 0x000038E4 + .word 0x000038E4, 0x000038E8 + .word 0x000038E8, 0x000038EC + .word 0x000038EC, 0x000038F0 + .word 0x000038F0, 0x000038F4 + .word 0x000038F4, 0x000038F8 + .word 0x000038F8, 0x000038FC + .word 0x000038FC, 0x00003900 + .word 0x00003900, 0x00003904 + .word 0x00003904, 0x00003908 + .word 0x00003908, 0x0000390C + .word 0x0000390C, 0x00003910 + .word 0x00003910, 0x00003914 + .word 0x00003914, 0x00003918 + .word 0x00003918, 0x0000391C + .word 0x0000391C, 0x00003920 + .word 0x00003920, 0x00003924 + .word 0x00003924, 0x00003928 + .word 0x00003928, 0x0000392C + .word 0x0000392C, 0x00003930 + .word 0x00003930, 0x00003934 + .word 0x00003934, 0x00003938 + .word 0x00003938, 0x0000393C + .word 0x0000393C, 0x00003940 + .word 0x00003940, 0x00003944 + .word 0x00003944, 0x000039AC + .word 0x000039AC, 0x000039B0 + .word 0x000039B0, 0x000039B4 + .word 0x000039B4, 0x000039B8 + .word 0x000039B8, 0x000039BC + .word 0x000039BC, 0x000039C0 + .word 0x000039C0, 0x000039C4 + .word 0x000039C4, 0x000039C8 + .word 0x000039C8, 0x000039CC + .word 0x000039CC, 0x000039D0 + .word 0x000039D0, 0x000039D4 + .word 0x000039D4, 0x000039D8 + .word 0x000039D8, 0x000039DC + .word 0x000039DC, 0x000039E0 + .word 0x000039E0, 0x000039E4 + .word 0x000039E4, 0x000039E8 + .word 0x000039E8, 0x000039EC + .word 0x000039EC, 0x000039F0 + .word 0x000039F0, 0x000039F4 + .word 0x000039F4, 0x00003A00 + .word 0x00003A00, 0x00003A0C + .word 0x00003A0C, 0x00003A18 + .word 0x00003A18, 0x00003A2C + .word 0x00003A2C, 0x00003A30 + .word 0x00003A30, 0x00003A34 + .word 0x00003A34, 0x00003A38 + .word 0x00003A38, 0x00003A3C + .word 0x00003A3C, 0x00003A40 + .word 0x00003A40, 0x00003A44 + .word 0x00003A44, 0x00003A48 + .word 0x00003A48, 0x00003A4C + .word 0x00003A4C, 0x00003A50 + .word 0x00003A50, 0x00003A54 + .word 0x00003A54, 0x00003A58 + .word 0x00003A58, 0x00003A5C + .word 0x00003A5C, 0x00003A60 + .word 0x00003A60, 0x00003A64 + .word 0x00003A64, 0x00003A68 + .word 0x00003A68, 0x00003A6C + .word 0x00003A6C, 0x00003A70 + .word 0x00003A70, 0x00003A74 + .word 0x00003A74, 0x00003A78 + .word 0x00003A78, 0x00003A7C + .word 0x00003A7C, 0x00003A88 + .word 0x00003A88, 0x00003A98 + .word 0x00003A98, 0x00003A9C + .word 0x00003A9C, 0x00003AA0 + .word 0x00003AA0, 0x00003AA4 + .word 0x00003AA4, 0x00003AA8 + .word 0x00003AA8, 0x00003AAC + .word 0x00003AAC, 0x00003AB4 + .word 0x00003AB4, 0x00003ABC + .word 0x00003ABC, 0x00003AC0 + .word 0x00003AC0, 0x00003AC4 + .word 0x00003AC4, 0x00003AF8 + .word 0x00003AF8, 0x00003B3C + .word 0x00003B3C, 0x00003B40 + .word 0x00003B40, 0x00003B44 + .word 0x00003B44, 0x00003B48 + .word 0x00003B48, 0x00003B4C + .word 0x00003B4C, 0x00003B5C + .word 0x00003B5C, 0x00003B6C + .word 0x00003B6C, 0x00003B70 + .word 0x00003B70, 0x00003B7C + .word 0x00003B7C, 0x00003B84 + .word 0x00003B84, 0x00003B88 + .word 0x00003B88, 0x00003B98 + .word 0x00003B98, 0x00003BB8 + .word 0x00003BB8, 0x00003BBC + .word 0x00003BBC, 0x00003BC8 + .word 0x00003BC8, 0x00003BD8 + .word 0x00003BD8, 0x00003BDC + .word 0x00003BDC, 0x00003C10 + .word 0x00003C10, 0x00003C5C + .word 0x00003C5C, 0x00003C7C + .word 0x00003C7C, 0x00003C98 + .word 0x00003C98, 0x00003C9C + .word 0x00003C9C, 0x00003CB8 + .word 0x00003CB8, 0x00003CBC + .word 0x00003CBC, 0x00003CC0 + .word 0x00003CC0, 0x00003CC4 + .word 0x00003CC4, 0x00003CC8 + .word 0x00003CC8, 0x00003CCC + .word 0x00003CCC, 0x00003CD0 + .word 0x00003CD0, 0x00003CD4 + .word 0x00003CD4, 0x00003CD8 + .word 0x00003CD8, 0x00003CDC + .word 0x00003CDC, 0x00003CE0 + .word 0x00003CE0, 0x00003CE4 + .word 0x00003CE4, 0x00003CE8 + .word 0x00003CE8, 0x00003CF8 + .word 0x00003CF8, 0x00003CFC + .word 0x00003CFC, 0x00003D00 + .word 0x00003D00, 0x00003D04 + .word 0x00003D04, 0x00003D08 + .word 0x00003D08, 0x00003D0C + .word 0x00003D0C, 0x00003D10 + .word 0x00003D10, 0x00003D14 + .word 0x00003D14, 0x00003D18 + .word 0x00003D18, 0x00003D1C + .word 0x00003D1C, 0x00003D20 + .word 0x00003D20, 0x00003D24 + .word 0x00003D24, 0x00003D28 + .word 0x00003D28, 0x00003D2C + .word 0x00003D2C, 0x00003D30 + .word 0x00003D30, 0x00003D34 + .word 0x00003D34, 0x00003D38 + .word 0x00003D38, 0x00003D3C + .word 0x00003D3C, 0x00003D40 + .word 0x00003D40, 0x00003D44 + .word 0x00003D44, 0x00003D50 + .word 0x00003D50, 0x00003D5C + .word 0x00003D5C, 0x00003D6C + .word 0x00003D6C, 0x00003D78 + .word 0x00003D78, 0x00003D7C + .word 0x00003D7C, 0x00003D80 + .word 0x00003D80, 0x00003D88 + .word 0x00003D88, 0x00003D90 + .word 0x00003D90, 0x00003DB4 + .word 0x00003DB4, 0x00003DD8 + .word 0x00003DD8, 0x00003DE4 + .word 0x00003DE4, 0x00003DE8 + .word 0x00003DE8, 0x00003DEC + .word 0x00003DEC, 0x00003DF0 + .word 0x00003DF0, 0x00003DF4 + .word 0x00003DF4, 0x00003DF8 + .word 0x00003DF8, 0x00003DFC + .word 0x00003DFC, 0x00003E04 + .word 0x00003E04, 0x00003E08 + .word 0x00003E08, 0x00003E9C + .word 0x00003E9C, 0x00003F30 + .word 0x00003F30, 0x00003F34 + .word 0x00003F34, 0x00003F38 + .word 0x00003F38, 0x00003F3C + .word 0x00003F3C, 0x00003F40 + .word 0x00003F40, 0x00003F44 + .word 0x00003F44, 0x00003F48 + .word 0x00003F48, 0x00003F4C + .word 0x00003F4C, 0x00003F50 + .word 0x00003F50, 0x00003F54 + .word 0x00003F54, 0x00003F58 + .word 0x00003F58, 0x00003F5C + .word 0x00003F5C, 0x00003F60 + .word 0x00003F60, 0x00003F64 + .word 0x00003F64, 0x00003F68 + .word 0x00003F68, 0x00003F6C + .word 0x00003F6C, 0x00003F70 + .word 0x00003F70, 0x00003F74 + .word 0x00003F74, 0x00003F78 + .word 0x00003F78, 0x00003F7C + .word 0x00003F7C, 0x00003F80 + .word 0x00003F80, 0x00003F84 + .word 0x00003F84, 0x00003F88 + .word 0x00003F88, 0x00003F8C + .word 0x00003F8C, 0x00003F90 + .word 0x00003F90, 0x00003F94 + .word 0x00003F94, 0x00003F98 + .word 0x00003F98, 0x00003F9C + .word 0x00003F9C, 0x00003FA0 + .word 0x00003FA0, 0x00003FA4 + .word 0x00003FA4, 0x00003FA8 + .word 0x00003FA8, 0x00003FAC + .word 0x00003FAC, 0x00003FB0 + .word 0x00003FB0, 0x00003FB4 + .word 0x00003FB4, 0x00003FB8 + .word 0x00003FB8, 0x00003FBC + .word 0x00003FBC, 0x00003FC4 + .word 0x00003FC4, 0x00003FC8 + .word 0x00003FC8, 0x00003FCC + .word 0x00003FCC, 0x00003FD0 + .word 0x00003FD0, 0x00003FD8 + .word 0x00003FD8, 0x00003FE0 + .word 0x00003FE0, 0x00003FE4 + .word 0x00003FE4, 0x00003FE8 + .word 0x00003FE8, 0x00003FEC + .word 0x00003FEC, 0x00003FF0 + .word 0x00003FF0, 0x00003FF4 + .word 0x00003FF4, 0x00003FF8 + .word 0x00003FF8, 0x00003FFC + .word 0x00003FFC, 0x00004000 + .word 0x00004000, 0x00004004 + .word 0x00004004, 0x00004008 + .word 0x00004008, 0x0000400C + .word 0x0000400C, 0x00004010 + .word 0x00004010, 0x00004014 + .word 0x00004014, 0x00004020 + .word 0x00004020, 0x00004024 + .word 0x00004024, 0x00004028 + .word 0x00004028, 0x0000402C + .word 0x0000402C, 0x00004030 + .word 0x00004030, 0x00004034 + .word 0x00004034, 0x00004038 + .word 0x00004038, 0x0000403C + .word 0x0000403C, 0x00004040 + .word 0x00004040, 0x00004048 + .word 0x00004048, 0x00004050 + .word 0x00004050, 0x00004054 + .word 0x00004054, 0x00004058 + .word 0x00004058, 0x0000405C + .word 0x0000405C, 0x00004060 + .word 0x00004060, 0x00004064 + .word 0x00004064, 0x00004068 + .word 0x00004068, 0x0000406C + .word 0x0000406C, 0x00004078 + .word 0x00004078, 0x0000407C + .word 0x0000407C, 0x00004080 + .word 0x00004080, 0x00004084 + .word 0x00004084, 0x00004088 + .word 0x00004088, 0x0000408C + .word 0x0000408C, 0x00004090 + .word 0x00004090, 0x00004094 + .word 0x00004094, 0x0000409C + .word 0x0000409C, 0x000040A0 + .word 0x000040A0, 0x000040A4 + .word 0x000040A4, 0x000040A8 + .word 0x000040A8, 0x000040B8 + .word 0x000040B8, 0x000040BC + .word 0x000040BC, 0x000040C0 + .word 0x000040C0, 0x000040C4 + .word 0x000040C4, 0x000040C8 + .word 0x000040C8, 0x000040CC + .word 0x000040CC, 0x000040D0 + .word 0x000040D0, 0x000040D4 + .word 0x000040D4, 0x000040F8 + .word 0x000040F8, 0x0000411C + .word 0x0000411C, 0x00004120 + .word 0x00004120, 0x00004124 + .word 0x00004124, 0x00004130 + .word 0x00004130, 0x00004134 + .word 0x00004134, 0x00004138 + .word 0x00004138, 0x0000413C + .word 0x0000413C, 0x00004140 + .word 0x00004140, 0x00004144 + .word 0x00004144, 0x00004148 + .word 0x00004148, 0x0000414C + .word 0x0000414C, 0x00004150 + .word 0x00004150, 0x00004154 + .word 0x00004154, 0x00004158 + .word 0x00004158, 0x0000415C + .word 0x0000415C, 0x00004160 + .word 0x00004160, 0x00004164 + .word 0x00004164, 0x00004168 + .word 0x00004168, 0x0000416C + .word 0x0000416C, 0x00004170 + .word 0x00004170, 0x00004174 + .word 0x00004174, 0x00004178 + .word 0x00004178, 0x0000417C + .word 0x0000417C, 0x00004180 + .word 0x00004180, 0x00004184 + .word 0x00004184, 0x00004188 + .word 0x00004188, 0x0000418C + .word 0x0000418C, 0x00004190 + .word 0x00004190, 0x00004194 + .word 0x00004194, 0x00004198 + .word 0x00004198, 0x0000419C + .word 0x0000419C, 0x000041A0 + .word 0x000041A0, 0x000041A4 + .word 0x000041A4, 0x000041A8 + .word 0x000041A8, 0x000041AC + .word 0x000041AC, 0x000041B0 + .word 0x000041B0, 0x000041B4 + .word 0x000041B4, 0x000041B8 + .word 0x000041B8, 0x000041BC + .word 0x000041BC, 0x000041C0 + .word 0x000041C0, 0x000041C4 + .word 0x000041C4, 0x000041C8 + .word 0x000041C8, 0x000041CC + .word 0x000041CC, 0x000041D4 + .word 0x000041D4, 0x000041D8 + .word 0x000041D8, 0x000041E0 + .word 0x000041E0, 0x000041E4 + .word 0x000041E4, 0x000041E8 + .word 0x000041E8, 0x000041EC + .word 0x000041EC, 0x000041F0 + .word 0x000041F0, 0x000041F4 + .word 0x000041F4, 0x000041F8 + .word 0x000041F8, 0x000041FC + .word 0x000041FC, 0x00004200 + .word 0x00004200, 0x00004238 + .word 0x00004238, 0x00004288 + .word 0x00004288, 0x0000428C + .word 0x0000428C, 0x00004290 + .word 0x00004290, 0x00004294 + .word 0x00004294, 0x00004298 + .word 0x00004298, 0x0000429C + .word 0x0000429C, 0x000042A0 + .word 0x000042A0, 0x000042A4 + .word 0x000042A4, 0x000042A8 + .word 0x000042A8, 0x000042AC + .word 0x000042AC, 0x000042B0 + .word 0x000042B0, 0x000042B4 + .word 0x000042B4, 0x000042B8 + .word 0x000042B8, 0x000042BC + .word 0x000042BC, 0x000042C0 + .word 0x000042C0, 0x000042C4 + .word 0x000042C4, 0x000042C8 + .word 0x000042C8, 0x000042CC + .word 0x000042CC, 0x000042D0 + .word 0x000042D0, 0x000042D4 + .word 0x000042D4, 0x000042D8 + .word 0x000042D8, 0x000042DC + .word 0x000042DC, 0x000042E0 + .word 0x000042E0, 0x000042E4 + .word 0x000042E4, 0x000042E8 + .word 0x000042E8, 0x000042EC + .word 0x000042EC, 0x000042F0 + .word 0x000042F0, 0x000042F4 + .word 0x000042F4, 0x00004314 + .word 0x00004314, 0x00004320 + .word 0x00004320, 0x00004324 + .word 0x00004324, 0x00004328 + .word 0x00004328, 0x0000432C + .word 0x0000432C, 0x00004330 + .word 0x00004330, 0x00004338 + .word 0x00004338, 0x00004340 + .word 0x00004340, 0x00004358 + .word 0x00004358, 0x0000435C + .word 0x0000435C, 0x00004360 + .word 0x00004360, 0x00004364 + .word 0x00004364, 0x00004370 + .word 0x00004370, 0x0000437C + .word 0x0000437C, 0x00004388 + .word 0x00004388, 0x00004394 + .word 0x00004394, 0x000043A0 + .word 0x000043A0, 0x000043A4 + .word 0x000043A4, 0x000043A8 + .word 0x000043A8, 0x000043AC + .word 0x000043AC, 0x000043B0 + .word 0x000043B0, 0x000043B4 + .word 0x000043B4, 0x000043B8 + .word 0x000043B8, 0x000043BC + .word 0x000043BC, 0x000043C4 + .word 0x000043C4, 0x000043CC + .word 0x000043CC, 0x000043D0 + .word 0x000043D0, 0x000043D4 + .word 0x000043D4, 0x000043D8 + .word 0x000043D8, 0x000043DC + .word 0x000043DC, 0x000043E0 + .word 0x000043E0, 0x000043E4 + .word 0x000043E4, 0x00004408 + .word 0x00004408, 0x0000442C + .word 0x0000442C, 0x00004434 + .word 0x00004434, 0x0000443C + .word 0x0000443C, 0x00004440 + .word 0x00004440, 0x00004444 + .word 0x00004444, 0x00004448 + .word 0x00004448, 0x0000444C + .word 0x0000444C, 0x00004450 + .word 0x00004450, 0x00004454 + .word 0x00004454, 0x00004458 + .word 0x00004458, 0x0000445C + .word 0x0000445C, 0x00004460 + .word 0x00004460, 0x00004464 + .word 0x00004464, 0x00004468 + .word 0x00004468, 0x0000446C + .word 0x0000446C, 0x00004470 + .word 0x00004470, 0x00004474 + .word 0x00004474, 0x00004478 + .word 0x00004478, 0x0000447C + .word 0x0000447C, 0x00004480 + .word 0x00004480, 0x00004484 + .word 0x00004484, 0x00004488 + .word 0x00004488, 0x0000448C + .word 0x0000448C, 0x00004498 + .word 0x00004498, 0x000044A4 + .word 0x000044A4, 0x000044A8 + .word 0x000044A8, 0x000044B4 + .word 0x000044B4, 0x000044B8 + .word 0x000044B8, 0x000044BC + .word 0x000044BC, 0x000044C4 + .word 0x000044C4, 0x000044D0 + .word 0x000044D0, 0x000044D4 + .word 0x000044D4, 0x000044D8 + .word 0x000044D8, 0x000044DC + .word 0x000044DC, 0x000044E0 + .word 0x000044E0, 0x000044E4 + .word 0x000044E4, 0x000044E8 + .word 0x000044E8, 0x000044EC + .word 0x000044EC, 0x000044F0 + .word 0x000044F0, 0x000044F4 + .word 0x000044F4, 0x000044F8 + .word 0x000044F8, 0x000044FC + .word 0x000044FC, 0x00004500 + .word 0x00004500, 0x00004504 + .word 0x00004504, 0x00004508 + .word 0x00004508, 0x0000450C + .word 0x0000450C, 0x00004510 + .word 0x00004510, 0x00004514 + .word 0x00004514, 0x00004518 + .word 0x00004518, 0x0000451C + .word 0x0000451C, 0x00004520 + .word 0x00004520, 0x00004524 + .word 0x00004524, 0x00004528 + .word 0x00004528, 0x0000452C + .word 0x0000452C, 0x00004530 + .word 0x00004530, 0x00004534 + .word 0x00004534, 0x00004554 + .word 0x00004554, 0x00004564 + .word 0x00004564, 0x00004568 + .word 0x00004568, 0x00004594 + .word 0x00004594, 0x000045AC + .word 0x000045AC, 0x000045C8 + .word 0x000045C8, 0x000045E8 + .word 0x000045E8, 0x00004600 + .word 0x00004600, 0x00004608 + .word 0x00004608, 0x0000460C + .word 0x0000460C, 0x0000461C + .word 0x0000461C, 0x00004620 + .word 0x00004620, 0x00004624 + .word 0x00004624, 0x00004628 + .word 0x00004628, 0x0000462C + .word 0x0000462C, 0x00004630 + .word 0x00004630, 0x00004634 + .word 0x00004634, 0x00004638 + .word 0x00004638, 0x0000463C + .word 0x0000463C, 0x00004640 + .word 0x00004640, 0x00004644 + .word 0x00004644, 0x00004658 + .word 0x00004658, 0x00004670 + .word 0x00004670, 0x00004690 + .word 0x00004690, 0x00004694 + .word 0x00004694, 0x00004698 + .word 0x00004698, 0x000046BC + .word 0x000046BC, 0x000046D8 + .word 0x000046D8, 0x000046DC + .word 0x000046DC, 0x000046E0 + .word 0x000046E0, 0x000046E4 + .word 0x000046E4, 0x000046E8 + .word 0x000046E8, 0x000046EC + .word 0x000046EC, 0x000046F0 + .word 0x000046F0, 0x000046F4 + .word 0x000046F4, 0x00004700 + .word 0x00004700, 0x0000470C + .word 0x0000470C, 0x00004718 + .word 0x00004718, 0x0000471C + .word 0x0000471C, 0x00004720 + .word 0x00004720, 0x00004728 + .word 0x00004728, 0x0000472C + .word 0x0000472C, 0x00004738 + .word 0x00004738, 0x0000473C + .word 0x0000473C, 0x00004740 + .word 0x00004740, 0x0000474C + .word 0x0000474C, 0x00004750 + .word 0x00004750, 0x00004754 + .word 0x00004754, 0x00004758 + .word 0x00004758, 0x0000475C + .word 0x0000475C, 0x00004760 + .word 0x00004760, 0x00004764 + .word 0x00004764, 0x00004768 + .word 0x00004768, 0x0000476C + .word 0x0000476C, 0x00004774 + .word 0x00004774, 0x00004778 + .word 0x00004778, 0x0000477C + .word 0x0000477C, 0x00004780 + .word 0x00004780, 0x00004784 + .word 0x00004784, 0x00004788 + .word 0x00004788, 0x000047B0 + .word 0x000047B0, 0x000047D8 + .word 0x000047D8, 0x000047E4 + .word 0x000047E4, 0x000047F4 + .word 0x000047F4, 0x000047F8 + .word 0x000047F8, 0x000047FC + .word 0x000047FC, 0x00004800 + .word 0x00004800, 0x00004804 + .word 0x00004804, 0x00004808 + .word 0x00004808, 0x0000480C + .word 0x0000480C, 0x00004810 + .word 0x00004810, 0x00004814 + .word 0x00004814, 0x00004818 + .word 0x00004818, 0x0000481C + .word 0x0000481C, 0x00004820 + .word 0x00004820, 0x00004824 + .word 0x00004824, 0x00004828 + .word 0x00004828, 0x0000482C + .word 0x0000482C, 0x00004830 + .word 0x00004830, 0x00004834 + .word 0x00004834, 0x00004838 + .word 0x00004838, 0x0000483C + .word 0x0000483C, 0x00004840 + .word 0x00004840, 0x00004844 + .word 0x00004844, 0x00004848 + .word 0x00004848, 0x0000484C + .word 0x0000484C, 0x00004850 + .word 0x00004850, 0x00004854 + .word 0x00004854, 0x00004858 + .word 0x00004858, 0x0000485C + .word 0x0000485C, 0x00004860 + .word 0x00004860, 0x00004864 + .word 0x00004864, 0x00004868 + .word 0x00004868, 0x0000486C + .word 0x0000486C, 0x00004870 + .word 0x00004870, 0x00004874 + .word 0x00004874, 0x00004878 + .word 0x00004878, 0x0000487C + .word 0x0000487C, 0x00004880 + .word 0x00004880, 0x000048E8 + .word 0x000048E8, 0x000048EC + .word 0x000048EC, 0x000048F0 + .word 0x000048F0, 0x000048F4 + .word 0x000048F4, 0x000048F8 + .word 0x000048F8, 0x000048FC + .word 0x000048FC, 0x00004900 + .word 0x00004900, 0x00004904 + .word 0x00004904, 0x00004908 + .word 0x00004908, 0x0000490C + .word 0x0000490C, 0x00004910 + .word 0x00004910, 0x00004914 + .word 0x00004914, 0x00004918 + .word 0x00004918, 0x0000491C + .word 0x0000491C, 0x00004920 + .word 0x00004920, 0x00004924 + .word 0x00004924, 0x00004928 + .word 0x00004928, 0x0000492C + .word 0x0000492C, 0x00004930 + .word 0x00004930, 0x0000493C + .word 0x0000493C, 0x00004948 + .word 0x00004948, 0x00004954 + .word 0x00004954, 0x00004968 + .word 0x00004968, 0x0000496C + .word 0x0000496C, 0x00004970 + .word 0x00004970, 0x00004974 + .word 0x00004974, 0x00004978 + .word 0x00004978, 0x0000497C + .word 0x0000497C, 0x00004980 + .word 0x00004980, 0x00004984 + .word 0x00004984, 0x00004988 + .word 0x00004988, 0x0000498C + .word 0x0000498C, 0x00004990 + .word 0x00004990, 0x00004994 + .word 0x00004994, 0x00004998 + .word 0x00004998, 0x0000499C + .word 0x0000499C, 0x000049A0 + .word 0x000049A0, 0x000049A4 + .word 0x000049A4, 0x000049A8 + .word 0x000049A8, 0x000049AC + .word 0x000049AC, 0x000049B0 + .word 0x000049B0, 0x000049B4 + .word 0x000049B4, 0x000049B8 + .word 0x000049B8, 0x000049C4 + .word 0x000049C4, 0x000049D4 + .word 0x000049D4, 0x000049D8 + .word 0x000049D8, 0x000049DC + .word 0x000049DC, 0x000049E0 + .word 0x000049E0, 0x000049E4 + .word 0x000049E4, 0x000049E8 + .word 0x000049E8, 0x000049F0 + .word 0x000049F0, 0x000049F8 + .word 0x000049F8, 0x000049FC + .word 0x000049FC, 0x00004A00 + .word 0x00004A00, 0x00004A34 + .word 0x00004A34, 0x00004A78 + .word 0x00004A78, 0x00004A7C + .word 0x00004A7C, 0x00004A80 + .word 0x00004A80, 0x00004A84 + .word 0x00004A84, 0x00004A88 + .word 0x00004A88, 0x00004A98 + .word 0x00004A98, 0x00004AA8 + .word 0x00004AA8, 0x00004AAC + .word 0x00004AAC, 0x00004AB8 + .word 0x00004AB8, 0x00004AC0 + .word 0x00004AC0, 0x00004AC4 + .word 0x00004AC4, 0x00004AD4 + .word 0x00004AD4, 0x00004AF4 + .word 0x00004AF4, 0x00004AF8 + .word 0x00004AF8, 0x00004B04 + .word 0x00004B04, 0x00004B14 + .word 0x00004B14, 0x00004B18 + .word 0x00004B18, 0x00004B4C + .word 0x00004B4C, 0x00004B98 + .word 0x00004B98, 0x00004BB8 + .word 0x00004BB8, 0x00004BD4 + .word 0x00004BD4, 0x00004BD8 + .word 0x00004BD8, 0x00004BF4 + .word 0x00004BF4, 0x00004BF8 + .word 0x00004BF8, 0x00004BFC + .word 0x00004BFC, 0x00004C00 + .word 0x00004C00, 0x00004C04 + .word 0x00004C04, 0x00004C08 + .word 0x00004C08, 0x00004C0C + .word 0x00004C0C, 0x00004C10 + .word 0x00004C10, 0x00004C14 + .word 0x00004C14, 0x00004C18 + .word 0x00004C18, 0x00004C1C + .word 0x00004C1C, 0x00004C20 + .word 0x00004C20, 0x00004C24 + .word 0x00004C24, 0x00004C34 + .word 0x00004C34, 0x00004C38 + .word 0x00004C38, 0x00004C3C + .word 0x00004C3C, 0x00004C40 + .word 0x00004C40, 0x00004C44 + .word 0x00004C44, 0x00004C48 + .word 0x00004C48, 0x00004C4C + .word 0x00004C4C, 0x00004C50 + .word 0x00004C50, 0x00004C54 + .word 0x00004C54, 0x00004C58 + .word 0x00004C58, 0x00004C5C + .word 0x00004C5C, 0x00004C60 + .word 0x00004C60, 0x00004C64 + .word 0x00004C64, 0x00004C68 + .word 0x00004C68, 0x00004C6C + .word 0x00004C6C, 0x00004C70 + .word 0x00004C70, 0x00004C74 + .word 0x00004C74, 0x00004C78 + .word 0x00004C78, 0x00004C7C + .word 0x00004C7C, 0x00004C80 + .word 0x00004C80, 0x00004C8C + .word 0x00004C8C, 0x00004C98 + .word 0x00004C98, 0x00004CA8 + .word 0x00004CA8, 0x00004CB4 + .word 0x00004CB4, 0x00004CB8 + .word 0x00004CB8, 0x00004CBC + .word 0x00004CBC, 0x00004CC4 + .word 0x00004CC4, 0x00004CCC + .word 0x00004CCC, 0x00004CF0 + .word 0x00004CF0, 0x00004D14 + .word 0x00004D14, 0x00004D20 + .word 0x00004D20, 0x00004D24 + .word 0x00004D24, 0x00004D28 + .word 0x00004D28, 0x00004D2C + .word 0x00004D2C, 0x00004D30 + .word 0x00004D30, 0x00004D34 + .word 0x00004D34, 0x00004D38 + .word 0x00004D38, 0x00004D40 + .word 0x00004D40, 0x00004D44 + .word 0x00004D44, 0x00004DD8 + .word 0x00004DD8, 0x00004E6C + .word 0x00004E6C, 0x00004E70 + .word 0x00004E70, 0x00004E74 + .word 0x00004E74, 0x00004E78 + .word 0x00004E78, 0x00004E7C + .word 0x00004E7C, 0x00004E80 + .word 0x00004E80, 0x00004E84 + .word 0x00004E84, 0x00004E88 + .word 0x00004E88, 0x00004E8C + .word 0x00004E8C, 0x00004E90 + .word 0x00004E90, 0x00004E94 + .word 0x00004E94, 0x00004E98 + .word 0x00004E98, 0x00004E9C + .word 0x00004E9C, 0x00004EA0 + .word 0x00004EA0, 0x00004EA4 + .word 0x00004EA4, 0x00004EA8 + .word 0x00004EA8, 0x00004EAC + .word 0x00004EAC, 0x00004EB0 + .word 0x00004EB0, 0x00004EB4 + .word 0x00004EB4, 0x00004EB8 + .word 0x00004EB8, 0x00004EBC + .word 0x00004EBC, 0x00004EC0 + .word 0x00004EC0, 0x00004EC4 + .word 0x00004EC4, 0x00004EC8 + .word 0x00004EC8, 0x00004ECC + .word 0x00004ECC, 0x00004ED0 + .word 0x00004ED0, 0x00004ED4 + .word 0x00004ED4, 0x00004ED8 + .word 0x00004ED8, 0x00004EDC + .word 0x00004EDC, 0x00004EE0 + .word 0x00004EE0, 0x00004EE4 + .word 0x00004EE4, 0x00004EE8 + .word 0x00004EE8, 0x00004EEC + .word 0x00004EEC, 0x00004EF0 + .word 0x00004EF0, 0x00004EF4 + .word 0x00004EF4, 0x00004EF8 + .word 0x00004EF8, 0x00004EFC + .word 0x00004EFC, 0x00004F00 + .word 0x00004F00, 0x00004F04 + .word 0x00004F04, 0x00004F08 + .word 0x00004F08, 0x00004F10 + .word 0x00004F10, 0x00004F18 + .word 0x00004F18, 0x00004F1C + .word 0x00004F1C, 0x00004F20 + .word 0x00004F20, 0x00004F24 + .word 0x00004F24, 0x00004F28 + .word 0x00004F28, 0x00004F2C + .word 0x00004F2C, 0x00004F30 + .word 0x00004F30, 0x00004F34 + .word 0x00004F34, 0x00004F38 + .word 0x00004F38, 0x00004F3C + .word 0x00004F3C, 0x00004F40 + .word 0x00004F40, 0x00004F44 + .word 0x00004F44, 0x00004F48 + .word 0x00004F48, 0x00004F4C + .word 0x00004F4C, 0x00004F58 + .word 0x00004F58, 0x00004F5C + .word 0x00004F5C, 0x00004F60 + .word 0x00004F60, 0x00004F64 + .word 0x00004F64, 0x00004F68 + .word 0x00004F68, 0x00004F6C + .word 0x00004F6C, 0x00004F70 + .word 0x00004F70, 0x00004F74 + .word 0x00004F74, 0x00004F78 + .word 0x00004F78, 0x00004F80 + .word 0x00004F80, 0x00004F88 + .word 0x00004F88, 0x00004F8C + .word 0x00004F8C, 0x00004F90 + .word 0x00004F90, 0x00004F94 + .word 0x00004F94, 0x00004F98 + .word 0x00004F98, 0x00004F9C + .word 0x00004F9C, 0x00004FA0 + .word 0x00004FA0, 0x00004FA4 + .word 0x00004FA4, 0x00004FB0 + .word 0x00004FB0, 0x00004FB4 + .word 0x00004FB4, 0x00004FB8 + .word 0x00004FB8, 0x00004FBC + .word 0x00004FBC, 0x00004FC0 + .word 0x00004FC0, 0x00004FC4 + .word 0x00004FC4, 0x00004FC8 + .word 0x00004FC8, 0x00004FCC + .word 0x00004FCC, 0x00004FD4 + .word 0x00004FD4, 0x00004FD8 + .word 0x00004FD8, 0x00004FDC + .word 0x00004FDC, 0x00004FE0 + .word 0x00004FE0, 0x00004FF0 + .word 0x00004FF0, 0x00004FF4 + .word 0x00004FF4, 0x00004FF8 + .word 0x00004FF8, 0x00004FFC + .word 0x00004FFC, 0x00005000 + .word 0x00005000, 0x00005004 + .word 0x00005004, 0x00005008 + .word 0x00005008, 0x0000500C + .word 0x0000500C, 0x00005030 + .word 0x00005030, 0x00005054 + .word 0x00005054, 0x00005058 + .word 0x00005058, 0x0000505C + .word 0x0000505C, 0x00005068 + .word 0x00005068, 0x0000506C + .word 0x0000506C, 0x00005070 + .word 0x00005070, 0x00005074 + .word 0x00005074, 0x00005078 + .word 0x00005078, 0x0000507C + .word 0x0000507C, 0x00005080 + .word 0x00005080, 0x00005084 + .word 0x00005084, 0x00005088 + .word 0x00005088, 0x0000508C + .word 0x0000508C, 0x00005090 + .word 0x00005090, 0x00005094 + .word 0x00005094, 0x00005098 + .word 0x00005098, 0x0000509C + .word 0x0000509C, 0x000050A0 + .word 0x000050A0, 0x000050A4 + .word 0x000050A4, 0x000050A8 + .word 0x000050A8, 0x000050AC + .word 0x000050AC, 0x000050B0 + .word 0x000050B0, 0x000050B4 + .word 0x000050B4, 0x000050B8 + .word 0x000050B8, 0x000050BC + .word 0x000050BC, 0x000050C0 + .word 0x000050C0, 0x000050C4 + .word 0x000050C4, 0x000050C8 + .word 0x000050C8, 0x000050CC + .word 0x000050CC, 0x000050D0 + .word 0x000050D0, 0x000050D4 + .word 0x000050D4, 0x000050D8 + .word 0x000050D8, 0x000050DC + .word 0x000050DC, 0x000050E0 + .word 0x000050E0, 0x000050E4 + .word 0x000050E4, 0x000050E8 + .word 0x000050E8, 0x000050EC + .word 0x000050EC, 0x000050F0 + .word 0x000050F0, 0x000050F4 + .word 0x000050F4, 0x000050F8 + .word 0x000050F8, 0x000050FC + .word 0x000050FC, 0x00005100 + .word 0x00005100, 0x00005104 + .word 0x00005104, 0x0000510C + .word 0x0000510C, 0x00005110 + .word 0x00005110, 0x00005118 + .word 0x00005118, 0x0000511C + .word 0x0000511C, 0x00005120 + .word 0x00005120, 0x00005124 + .word 0x00005124, 0x00005128 + .word 0x00005128, 0x0000512C + .word 0x0000512C, 0x00005130 + .word 0x00005130, 0x00005134 + .word 0x00005134, 0x00005138 + .word 0x00005138, 0x00005170 + .word 0x00005170, 0x000051C0 + .word 0x000051C0, 0x000051C4 + .word 0x000051C4, 0x000051C8 + .word 0x000051C8, 0x000051CC + .word 0x000051CC, 0x000051D0 + .word 0x000051D0, 0x000051D4 + .word 0x000051D4, 0x000051D8 + .word 0x000051D8, 0x000051DC + .word 0x000051DC, 0x000051E0 + .word 0x000051E0, 0x000051E4 + .word 0x000051E4, 0x000051E8 + .word 0x000051E8, 0x000051EC + .word 0x000051EC, 0x000051F0 + .word 0x000051F0, 0x000051F4 + .word 0x000051F4, 0x000051F8 + .word 0x000051F8, 0x000051FC + .word 0x000051FC, 0x00005200 + .word 0x00005200, 0x00005204 + .word 0x00005204, 0x00005208 + .word 0x00005208, 0x0000520C + .word 0x0000520C, 0x00005210 + .word 0x00005210, 0x00005214 + .word 0x00005214, 0x00005218 + .word 0x00005218, 0x0000521C + .word 0x0000521C, 0x00005220 + .word 0x00005220, 0x00005224 + .word 0x00005224, 0x00005228 + .word 0x00005228, 0x0000522C + .word 0x0000522C, 0x0000524C + .word 0x0000524C, 0x00005258 + .word 0x00005258, 0x0000525C + .word 0x0000525C, 0x00005260 + .word 0x00005260, 0x00005264 + .word 0x00005264, 0x00005268 + .word 0x00005268, 0x00005270 + .word 0x00005270, 0x00005278 + .word 0x00005278, 0x00005290 + .word 0x00005290, 0x00005294 + .word 0x00005294, 0x00005298 + .word 0x00005298, 0x0000529C + .word 0x0000529C, 0x000052A8 + .word 0x000052A8, 0x000052B4 + .word 0x000052B4, 0x000052C0 + .word 0x000052C0, 0x000052CC + .word 0x000052CC, 0x000052D8 + .word 0x000052D8, 0x000052DC + .word 0x000052DC, 0x000052E0 + .word 0x000052E0, 0x000052E4 + .word 0x000052E4, 0x000052E8 + .word 0x000052E8, 0x000052EC + .word 0x000052EC, 0x000052F0 + .word 0x000052F0, 0x000052F4 + .word 0x000052F4, 0x000052FC + .word 0x000052FC, 0x00005304 + .word 0x00005304, 0x00005308 + .word 0x00005308, 0x0000530C + .word 0x0000530C, 0x00005310 + .word 0x00005310, 0x00005314 + .word 0x00005314, 0x00005318 + .word 0x00005318, 0x0000531C + .word 0x0000531C, 0x00005340 + .word 0x00005340, 0x00005364 + .word 0x00005364, 0x0000536C + .word 0x0000536C, 0x00005374 + .word 0x00005374, 0x00005378 + .word 0x00005378, 0x0000537C + .word 0x0000537C, 0x00005380 + .word 0x00005380, 0x00005384 + .word 0x00005384, 0x00005388 + .word 0x00005388, 0x0000538C + .word 0x0000538C, 0x00005390 + .word 0x00005390, 0x00005394 + .word 0x00005394, 0x00005398 + .word 0x00005398, 0x0000539C + .word 0x0000539C, 0x000053A0 + .word 0x000053A0, 0x000053A4 + .word 0x000053A4, 0x000053A8 + .word 0x000053A8, 0x000053AC + .word 0x000053AC, 0x000053B0 + .word 0x000053B0, 0x000053B4 + .word 0x000053B4, 0x000053B8 + .word 0x000053B8, 0x000053BC + .word 0x000053BC, 0x000053C0 + .word 0x000053C0, 0x000053C4 + .word 0x000053C4, 0x000053D0 + .word 0x000053D0, 0x000053DC + .word 0x000053DC, 0x000053E0 + .word 0x000053E0, 0x000053EC + .word 0x000053EC, 0x000053F0 + .word 0x000053F0, 0x000053F4 + .word 0x000053F4, 0x000053FC + .word 0x000053FC, 0x00005408 + .word 0x00005408, 0x0000540C + .word 0x0000540C, 0x00005410 + .word 0x00005410, 0x00005414 + .word 0x00005414, 0x00005418 + .word 0x00005418, 0x0000541C + .word 0x0000541C, 0x00005420 + .word 0x00005420, 0x00005424 + .word 0x00005424, 0x00005428 + .word 0x00005428, 0x0000542C + .word 0x0000542C, 0x00005430 + .word 0x00005430, 0x00005434 + .word 0x00005434, 0x00005438 + .word 0x00005438, 0x0000543C + .word 0x0000543C, 0x00005440 + .word 0x00005440, 0x00005444 + .word 0x00005444, 0x00005448 + .word 0x00005448, 0x0000544C + .word 0x0000544C, 0x00005450 + .word 0x00005450, 0x00005454 + .word 0x00005454, 0x00005458 + .word 0x00005458, 0x0000545C + .word 0x0000545C, 0x00005460 + .word 0x00005460, 0x00005464 + .word 0x00005464, 0x00005468 + .word 0x00005468, 0x0000546C + .word 0x0000546C, 0x0000548C + .word 0x0000548C, 0x0000549C + .word 0x0000549C, 0x000054A0 + .word 0x000054A0, 0x000054CC + .word 0x000054CC, 0x000054E4 + .word 0x000054E4, 0x000054E8 + .word 0x000054E8, 0x00005508 + .word 0x00005508, 0x00005520 + .word 0x00005520, 0x00005528 + .word 0x00005528, 0x0000552C + .word 0x0000552C, 0x0000553C + .word 0x0000553C, 0x00005540 + .word 0x00005540, 0x00005544 + .word 0x00005544, 0x00005548 + .word 0x00005548, 0x0000554C + .word 0x0000554C, 0x00005550 + .word 0x00005550, 0x00005554 + .word 0x00005554, 0x00005558 + .word 0x00005558, 0x0000555C + .word 0x0000555C, 0x00005560 + .word 0x00005560, 0x00005564 + .word 0x00005564, 0x00005578 + .word 0x00005578, 0x00005590 + .word 0x00005590, 0x000055B0 + .word 0x000055B0, 0x000055B4 + .word 0x000055B4, 0x000055B8 + .word 0x000055B8, 0x000055DC + .word 0x000055DC, 0x000055F8 + .word 0x000055F8, 0x000055FC + .word 0x000055FC, 0x00005600 + .word 0x00005600, 0x00005604 + .word 0x00005604, 0x00005608 + .word 0x00005608, 0x0000560C + .word 0x0000560C, 0x00005610 + .word 0x00005610, 0x00005614 + .word 0x00005614, 0x00005620 + .word 0x00005620, 0x0000562C + .word 0x0000562C, 0x00005638 + .word 0x00005638, 0x0000563C + .word 0x0000563C, 0x00005640 + .word 0x00005640, 0x00005648 + .word 0x00005648, 0x0000564C + .word 0x0000564C, 0x00005658 + .word 0x00005658, 0x0000565C + .word 0x0000565C, 0x00005660 + .word 0x00005660, 0x0000566C + .word 0x0000566C, 0x00005670 + .word 0x00005670, 0x00005674 + .word 0x00005674, 0x00005678 + .word 0x00005678, 0x0000567C + .word 0x0000567C, 0x00005680 + .word 0x00005680, 0x00005684 + .word 0x00005684, 0x00005688 + .word 0x00005688, 0x0000568C + .word 0x0000568C, 0x00005694 + .word 0x00005694, 0x00005698 + .word 0x00005698, 0x0000569C + .word 0x0000569C, 0x000056A0 + .word 0x000056A0, 0x000056A4 + .word 0x000056A4, 0x000056A8 + .word 0x000056A8, 0x000056D0 + .word 0x000056D0, 0x000056F8 + .word 0x000056F8, 0x00005704 + .word 0x00005704, 0x00005714 + .word 0x00005714, 0x00005718 + .word 0x00005718, 0x0000571C + .word 0x0000571C, 0x00005720 + .word 0x00005720, 0x00005724 + .word 0x00005724, 0x00005728 + .word 0x00005728, 0x0000572C + .word 0x0000572C, 0x00005730 + .word 0x00005730, 0x00005734 + .word 0x00005734, 0x00005738 + .word 0x00005738, 0x0000573C + .word 0x0000573C, 0x00005740 + .word 0x00005740, 0x00005744 + .word 0x00005744, 0x00005748 + .word 0x00005748, 0x0000574C + .word 0x0000574C, 0x00005750 + .word 0x00005750, 0x00005754 + .word 0x00005754, 0x00005758 + .word 0x00005758, 0x0000575C + .word 0x0000575C, 0x00005760 + .word 0x00005760, 0x00005764 + .word 0x00005764, 0x00005768 + .word 0x00005768, 0x0000576C + .word 0x0000576C, 0x00005770 + .word 0x00005770, 0x00005774 + .word 0x00005774, 0x00005778 + .word 0x00005778, 0x0000577C + .word 0x0000577C, 0x00005780 + .word 0x00005780, 0x00005784 + .word 0x00005784, 0x00005788 + .word 0x00005788, 0x0000578C + .word 0x0000578C, 0x00005790 + .word 0x00005790, 0x00005794 + .word 0x00005794, 0x00005798 + .word 0x00005798, 0x0000579C + .word 0x0000579C, 0x000057A0 + .word 0x000057A0, 0x00005808 + .word 0x00005808, 0x0000580C + .word 0x0000580C, 0x00005810 + .word 0x00005810, 0x00005814 + .word 0x00005814, 0x00005818 + .word 0x00005818, 0x0000581C + .word 0x0000581C, 0x00005820 + .word 0x00005820, 0x00005824 + .word 0x00005824, 0x00005828 + .word 0x00005828, 0x0000582C + .word 0x0000582C, 0x00005830 + .word 0x00005830, 0x00005834 + .word 0x00005834, 0x00005838 + .word 0x00005838, 0x0000583C + .word 0x0000583C, 0x00005840 + .word 0x00005840, 0x00005844 + .word 0x00005844, 0x00005848 + .word 0x00005848, 0x0000584C + .word 0x0000584C, 0x00005850 + .word 0x00005850, 0x0000585C + .word 0x0000585C, 0x00005868 + .word 0x00005868, 0x00005874 + .word 0x00005874, 0x00005888 + .word 0x00005888, 0x0000588C + .word 0x0000588C, 0x00005890 + .word 0x00005890, 0x00005894 + .word 0x00005894, 0x00005898 + .word 0x00005898, 0x0000589C + .word 0x0000589C, 0x000058A0 + .word 0x000058A0, 0x000058A4 + .word 0x000058A4, 0x000058A8 + .word 0x000058A8, 0x000058AC + .word 0x000058AC, 0x000058B0 + .word 0x000058B0, 0x000058B4 + .word 0x000058B4, 0x000058B8 + .word 0x000058B8, 0x000058BC + .word 0x000058BC, 0x000058C0 + .word 0x000058C0, 0x000058C4 + .word 0x000058C4, 0x000058C8 + .word 0x000058C8, 0x000058CC + .word 0x000058CC, 0x000058D0 + .word 0x000058D0, 0x00005904 + .word 0x00005904, 0x00005910 + .word 0x00005910, 0x0000591C + .word 0x0000591C, 0x0000592C + .word 0x0000592C, 0x00005930 + .word 0x00005930, 0x00005934 + .word 0x00005934, 0x00005938 + .word 0x00005938, 0x0000593C + .word 0x0000593C, 0x00005940 + .word 0x00005940, 0x00005948 + .word 0x00005948, 0x00005950 + .word 0x00005950, 0x00005954 + .word 0x00005954, 0x00005958 + .word 0x00005958, 0x0000598C + .word 0x0000598C, 0x000059D0 + .word 0x000059D0, 0x000059D4 + .word 0x000059D4, 0x000059D8 + .word 0x000059D8, 0x000059DC + .word 0x000059DC, 0x000059E0 + .word 0x000059E0, 0x000059F0 + .word 0x000059F0, 0x00005A00 + .word 0x00005A00, 0x00005A04 + .word 0x00005A04, 0x00005A10 + .word 0x00005A10, 0x00005A18 + .word 0x00005A18, 0x00005A1C + .word 0x00005A1C, 0x00005A2C + .word 0x00005A2C, 0x00005A4C + .word 0x00005A4C, 0x00005A50 + .word 0x00005A50, 0x00005A5C + .word 0x00005A5C, 0x00005A6C + .word 0x00005A6C, 0x00005A70 + .word 0x00005A70, 0x00005AA4 + .word 0x00005AA4, 0x00005AF0 + .word 0x00005AF0, 0x00005B10 + .word 0x00005B10, 0x00005B2C + .word 0x00005B2C, 0x00005B30 + .word 0x00005B30, 0x00005B4C + .word 0x00005B4C, 0x00005B50 + .word 0x00005B50, 0x00005B54 + .word 0x00005B54, 0x00005B58 + .word 0x00005B58, 0x00005B5C + .word 0x00005B5C, 0x00005B60 + .word 0x00005B60, 0x00005B64 + .word 0x00005B64, 0x00005B68 + .word 0x00005B68, 0x00005B6C + .word 0x00005B6C, 0x00005B70 + .word 0x00005B70, 0x00005B74 + .word 0x00005B74, 0x00005B78 + .word 0x00005B78, 0x00005B7C + .word 0x00005B7C, 0x00005B8C + .word 0x00005B8C, 0x00005B90 + .word 0x00005B90, 0x00005B98 + .word 0x00005B98, 0x00005B9C + .word 0x00005B9C, 0x00005BA0 + .word 0x00005BA0, 0x00005BA4 + .word 0x00005BA4, 0x00005BA8 + .word 0x00005BA8, 0x00005BAC + .word 0x00005BAC, 0x00005BB0 + .word 0x00005BB0, 0x00005BB4 + .word 0x00005BB4, 0x00005BB8 + .word 0x00005BB8, 0x00005BBC + .word 0x00005BBC, 0x00005BC0 + .word 0x00005BC0, 0x00005BC4 + .word 0x00005BC4, 0x00005BC8 + .word 0x00005BC8, 0x00005BCC + .word 0x00005BCC, 0x00005BD0 + .word 0x00005BD0, 0x00005BD4 + .word 0x00005BD4, 0x00005BD8 + .word 0x00005BD8, 0x00005BDC + .word 0x00005BDC, 0x00005BE8 + .word 0x00005BE8, 0x00005BF4 + .word 0x00005BF4, 0x00005C04 + .word 0x00005C04, 0x00005C10 + .word 0x00005C10, 0x00005C14 + .word 0x00005C14, 0x00005C18 + .word 0x00005C18, 0x00005C20 + .word 0x00005C20, 0x00005C28 + .word 0x00005C28, 0x00005C4C + .word 0x00005C4C, 0x00005C70 + .word 0x00005C70, 0x00005C7C + .word 0x00005C7C, 0x00005C80 + .word 0x00005C80, 0x00005C84 + .word 0x00005C84, 0x00005C88 + .word 0x00005C88, 0x00005C8C + .word 0x00005C8C, 0x00005C90 + .word 0x00005C90, 0x00005C94 + .word 0x00005C94, 0x00005C9C + .word 0x00005C9C, 0x00005CA0 + .word 0x00005CA0, 0x00005D34 + .word 0x00005D34, 0x00005DC8 + .word 0x00005DC8, 0x00005DCC + .word 0x00005DCC, 0x00005DD0 + .word 0x00005DD0, 0x00005DD4 + .word 0x00005DD4, 0x00005DD8 + .word 0x00005DD8, 0x00005DDC + .word 0x00005DDC, 0x00005DE0 + .word 0x00005DE0, 0x00005DE4 + .word 0x00005DE4, 0x00005DE8 + .word 0x00005DE8, 0x00005DEC + .word 0x00005DEC, 0x00005DF0 + .word 0x00005DF0, 0x00005DF4 + .word 0x00005DF4, 0x00005DF8 + .word 0x00005DF8, 0x00005DFC + .word 0x00005DFC, 0x00005E00 + .word 0x00005E00, 0x00005E04 + .word 0x00005E04, 0x00005E08 + .word 0x00005E08, 0x00005E0C + .word 0x00005E0C, 0x00005E10 + .word 0x00005E10, 0x00005E14 + .word 0x00005E14, 0x00005E18 + .word 0x00005E18, 0x00005E1C + .word 0x00005E1C, 0x00005E20 + .word 0x00005E20, 0x00005E24 + .word 0x00005E24, 0x00005E28 + .word 0x00005E28, 0x00005E2C + .word 0x00005E2C, 0x00005E30 + .word 0x00005E30, 0x00005E34 + .word 0x00005E34, 0x00005E38 + .word 0x00005E38, 0x00005E3C + .word 0x00005E3C, 0x00005E40 + .word 0x00005E40, 0x00005E44 + .word 0x00005E44, 0x00005E48 + .word 0x00005E48, 0x00005E54 + .word 0x00005E54, 0x00005E6C + .word 0x00005E6C, 0x00005E70 + .word 0x00005E70, 0x00005E74 + .word 0x00005E74, 0x00005E78 + .word 0x00005E78, 0x00005E80 + .word 0x00005E80, 0x00005E84 + .word 0x00005E84, 0x00005E8C + .word 0x00005E8C, 0x00005E94 + .word 0x00005E94, 0x00005E98 + .word 0x00005E98, 0x00005E9C + .word 0x00005E9C, 0x00005EA0 + .word 0x00005EA0, 0x00005EA4 + .word 0x00005EA4, 0x00005EA8 + .word 0x00005EA8, 0x00005EAC + .word 0x00005EAC, 0x00005EB0 + .word 0x00005EB0, 0x00005EB4 + .word 0x00005EB4, 0x00005EB8 + .word 0x00005EB8, 0x00005EBC + .word 0x00005EBC, 0x00005EC0 + .word 0x00005EC0, 0x00005EC4 + .word 0x00005EC4, 0x00005EC8 + .word 0x00005EC8, 0x00005ED4 + .word 0x00005ED4, 0x00005ED8 + .word 0x00005ED8, 0x00005EDC + .word 0x00005EDC, 0x00005EE0 + .word 0x00005EE0, 0x00005EE4 + .word 0x00005EE4, 0x00005EE8 + .word 0x00005EE8, 0x00005EEC + .word 0x00005EEC, 0x00005EF0 + .word 0x00005EF0, 0x00005EF4 + .word 0x00005EF4, 0x00005EFC + .word 0x00005EFC, 0x00005F04 + .word 0x00005F04, 0x00005F08 + .word 0x00005F08, 0x00005F0C + .word 0x00005F0C, 0x00005F10 + .word 0x00005F10, 0x00005F14 + .word 0x00005F14, 0x00005F18 + .word 0x00005F18, 0x00005F1C + .word 0x00005F1C, 0x00005F20 + .word 0x00005F20, 0x00005F2C + .word 0x00005F2C, 0x00005F30 + .word 0x00005F30, 0x00005F34 + .word 0x00005F34, 0x00005F38 + .word 0x00005F38, 0x00005F3C + .word 0x00005F3C, 0x00005F40 + .word 0x00005F40, 0x00005F44 + .word 0x00005F44, 0x00005F48 + .word 0x00005F48, 0x00005F50 + .word 0x00005F50, 0x00005F54 + .word 0x00005F54, 0x00005F58 + .word 0x00005F58, 0x00005F5C + .word 0x00005F5C, 0x00005F6C + .word 0x00005F6C, 0x00005F70 + .word 0x00005F70, 0x00005F74 + .word 0x00005F74, 0x00005F78 + .word 0x00005F78, 0x00005F7C + .word 0x00005F7C, 0x00005F80 + .word 0x00005F80, 0x00005F84 + .word 0x00005F84, 0x00005F88 + .word 0x00005F88, 0x00005FAC + .word 0x00005FAC, 0x00005FD0 + .word 0x00005FD0, 0x00005FD4 + .word 0x00005FD4, 0x00005FD8 + .word 0x00005FD8, 0x00005FE4 + .word 0x00005FE4, 0x00005FE8 + .word 0x00005FE8, 0x00005FEC + .word 0x00005FEC, 0x00005FF0 + .word 0x00005FF0, 0x00005FF4 + .word 0x00005FF4, 0x00005FF8 + .word 0x00005FF8, 0x00005FFC + .word 0x00005FFC, 0x00006000 + .word 0x00006000, 0x00006004 + .word 0x00006004, 0x00006008 + .word 0x00006008, 0x0000600C + .word 0x0000600C, 0x00006010 + .word 0x00006010, 0x00006014 + .word 0x00006014, 0x00006018 + .word 0x00006018, 0x0000601C + .word 0x0000601C, 0x00006020 + .word 0x00006020, 0x00006024 + .word 0x00006024, 0x00006028 + .word 0x00006028, 0x0000602C + .word 0x0000602C, 0x00006030 + .word 0x00006030, 0x00006034 + .word 0x00006034, 0x00006038 + .word 0x00006038, 0x0000603C + .word 0x0000603C, 0x00006040 + .word 0x00006040, 0x00006044 + .word 0x00006044, 0x00006048 + .word 0x00006048, 0x0000604C + .word 0x0000604C, 0x00006050 + .word 0x00006050, 0x00006054 + .word 0x00006054, 0x00006058 + .word 0x00006058, 0x0000605C + .word 0x0000605C, 0x00006060 + .word 0x00006060, 0x00006064 + .word 0x00006064, 0x00006068 + .word 0x00006068, 0x0000606C + .word 0x0000606C, 0x00006070 + .word 0x00006070, 0x00006074 + .word 0x00006074, 0x00006078 + .word 0x00006078, 0x0000607C + .word 0x0000607C, 0x00006080 + .word 0x00006080, 0x00006088 + .word 0x00006088, 0x0000608C + .word 0x0000608C, 0x00006094 + .word 0x00006094, 0x00006098 + .word 0x00006098, 0x0000609C + .word 0x0000609C, 0x000060A0 + .word 0x000060A0, 0x000060A4 + .word 0x000060A4, 0x000060A8 + .word 0x000060A8, 0x000060AC + .word 0x000060AC, 0x000060B0 + .word 0x000060B0, 0x000060B4 + .word 0x000060B4, 0x000060EC + .word 0x000060EC, 0x0000613C + .word 0x0000613C, 0x00006140 + .word 0x00006140, 0x00006144 + .word 0x00006144, 0x00006148 + .word 0x00006148, 0x0000614C + .word 0x0000614C, 0x00006150 + .word 0x00006150, 0x00006154 + .word 0x00006154, 0x00006158 + .word 0x00006158, 0x0000615C + .word 0x0000615C, 0x00006160 + .word 0x00006160, 0x00006164 + .word 0x00006164, 0x00006168 + .word 0x00006168, 0x0000616C + .word 0x0000616C, 0x00006170 + .word 0x00006170, 0x00006174 + .word 0x00006174, 0x00006178 + .word 0x00006178, 0x0000617C + .word 0x0000617C, 0x00006180 + .word 0x00006180, 0x00006184 + .word 0x00006184, 0x00006188 + .word 0x00006188, 0x0000618C + .word 0x0000618C, 0x00006190 + .word 0x00006190, 0x00006194 + .word 0x00006194, 0x00006198 + .word 0x00006198, 0x0000619C + .word 0x0000619C, 0x000061A0 + .word 0x000061A0, 0x000061A4 + .word 0x000061A4, 0x000061A8 + .word 0x000061A8, 0x000061C0 + .word 0x000061C0, 0x000061CC + .word 0x000061CC, 0x000061D0 + .word 0x000061D0, 0x000061D4 + .word 0x000061D4, 0x000061D8 + .word 0x000061D8, 0x000061DC + .word 0x000061DC, 0x000061E4 + .word 0x000061E4, 0x000061EC + .word 0x000061EC, 0x00006204 + .word 0x00006204, 0x00006208 + .word 0x00006208, 0x0000620C + .word 0x0000620C, 0x00006210 + .word 0x00006210, 0x0000621C + .word 0x0000621C, 0x00006228 + .word 0x00006228, 0x00006234 + .word 0x00006234, 0x00006240 + .word 0x00006240, 0x0000624C + .word 0x0000624C, 0x00006250 + .word 0x00006250, 0x00006254 + .word 0x00006254, 0x00006258 + .word 0x00006258, 0x0000625C + .word 0x0000625C, 0x00006260 + .word 0x00006260, 0x00006264 + .word 0x00006264, 0x00006268 + .word 0x00006268, 0x00006270 + .word 0x00006270, 0x00006278 + .word 0x00006278, 0x0000627C + .word 0x0000627C, 0x00006280 + .word 0x00006280, 0x00006284 + .word 0x00006284, 0x00006288 + .word 0x00006288, 0x0000628C + .word 0x0000628C, 0x00006290 + .word 0x00006290, 0x000062B4 + .word 0x000062B4, 0x000062D8 + .word 0x000062D8, 0x000062E0 + .word 0x000062E0, 0x000062E8 + .word 0x000062E8, 0x000062EC + .word 0x000062EC, 0x000062F0 + .word 0x000062F0, 0x000062F4 + .word 0x000062F4, 0x000062F8 + .word 0x000062F8, 0x000062FC + .word 0x000062FC, 0x00006300 + .word 0x00006300, 0x00006304 + .word 0x00006304, 0x00006308 + .word 0x00006308, 0x0000630C + .word 0x0000630C, 0x00006310 + .word 0x00006310, 0x00006314 + .word 0x00006314, 0x00006328 + .word 0x00006328, 0x0000632C + .word 0x0000632C, 0x00006330 + .word 0x00006330, 0x00006334 + .word 0x00006334, 0x00006338 + .word 0x00006338, 0x0000633C + .word 0x0000633C, 0x00006340 + .word 0x00006340, 0x00006344 + .word 0x00006344, 0x00006348 + .word 0x00006348, 0x00006354 + .word 0x00006354, 0x00006360 + .word 0x00006360, 0x00006364 + .word 0x00006364, 0x00006370 + .word 0x00006370, 0x00006374 + .word 0x00006374, 0x00006378 + .word 0x00006378, 0x00006380 + .word 0x00006380, 0x0000638C + .word 0x0000638C, 0x00006390 + .word 0x00006390, 0x00006394 + .word 0x00006394, 0x00006398 + .word 0x00006398, 0x0000639C + .word 0x0000639C, 0x000063A0 + .word 0x000063A0, 0x000063A4 + .word 0x000063A4, 0x000063A8 + .word 0x000063A8, 0x000063AC + .word 0x000063AC, 0x000063B0 + .word 0x000063B0, 0x000063B4 + .word 0x000063B4, 0x000063B8 + .word 0x000063B8, 0x000063BC + .word 0x000063BC, 0x000063C0 + .word 0x000063C0, 0x000063C4 + .word 0x000063C4, 0x000063C8 + .word 0x000063C8, 0x000063CC + .word 0x000063CC, 0x000063D0 + .word 0x000063D0, 0x000063D4 + .word 0x000063D4, 0x000063D8 + .word 0x000063D8, 0x000063DC + .word 0x000063DC, 0x000063E0 + .word 0x000063E0, 0x000063E4 + .word 0x000063E4, 0x000063E8 + .word 0x000063E8, 0x000063EC + .word 0x000063EC, 0x000063F0 + .word 0x000063F0, 0x00006410 + .word 0x00006410, 0x00006420 + .word 0x00006420, 0x00006424 + .word 0x00006424, 0x00006450 + .word 0x00006450, 0x00006468 + .word 0x00006468, 0x00006480 + .word 0x00006480, 0x000064A0 + .word 0x000064A0, 0x000064B8 + .word 0x000064B8, 0x000064C0 + .word 0x000064C0, 0x000064C4 + .word 0x000064C4, 0x000064D4 + .word 0x000064D4, 0x000064D8 + .word 0x000064D8, 0x000064DC + .word 0x000064DC, 0x000064E0 + .word 0x000064E0, 0x000064E4 + .word 0x000064E4, 0x000064E8 + .word 0x000064E8, 0x000064EC + .word 0x000064EC, 0x000064F0 + .word 0x000064F0, 0x000064F4 + .word 0x000064F4, 0x000064F8 + .word 0x000064F8, 0x000064FC + .word 0x000064FC, 0x00006510 + .word 0x00006510, 0x00006528 + .word 0x00006528, 0x00006548 + .word 0x00006548, 0x0000654C + .word 0x0000654C, 0x00006550 + .word 0x00006550, 0x00006574 + .word 0x00006574, 0x00006590 + .word 0x00006590, 0x00006594 + .word 0x00006594, 0x00006598 + .word 0x00006598, 0x0000659C + .word 0x0000659C, 0x000065A0 + .word 0x000065A0, 0x000065A4 + .word 0x000065A4, 0x000065A8 + .word 0x000065A8, 0x000065AC + .word 0x000065AC, 0x000065B8 + .word 0x000065B8, 0x000065C4 + .word 0x000065C4, 0x000065D0 + .word 0x000065D0, 0x000065D4 + .word 0x000065D4, 0x000065D8 + .word 0x000065D8, 0x000065E0 + .word 0x000065E0, 0x000065E4 + .word 0x000065E4, 0x000065F0 + .word 0x000065F0, 0x000065F4 + .word 0x000065F4, 0x000065F8 + .word 0x000065F8, 0x000065FC + .word 0x000065FC, 0x00006600 + .word 0x00006600, 0x00006604 + .word 0x00006604, 0x00006608 + .word 0x00006608, 0x0000660C + .word 0x0000660C, 0x00006610 + .word 0x00006610, 0x00006614 + .word 0x00006614, 0x00006618 + .word 0x00006618, 0x0000661C + .word 0x0000661C, 0x00006624 + .word 0x00006624, 0x00006628 + .word 0x00006628, 0x0000662C + .word 0x0000662C, 0x00006630 + .word 0x00006630, 0x00006634 + .word 0x00006634, 0x00006638 + .word 0x00006638, 0x00006660 + .word 0x00006660, 0x00006688 + .word 0x00006688, 0x00006694 + .word 0x00006694, 0x000066A4 + .word 0x000066A4, 0x000066A8 + .word 0x000066A8, 0x000066AC + .word 0x000066AC, 0x000066B0 + .word 0x000066B0, 0x000066B4 + .word 0x000066B4, 0x000066B8 + .word 0x000066B8, 0x000066BC + .word 0x000066BC, 0x000066C0 + .word 0x000066C0, 0x000066C4 + .word 0x000066C4, 0x000066C8 + .word 0x000066C8, 0x000066CC + .word 0x000066CC, 0x000066D0 + .word 0x000066D0, 0x000066D4 + .word 0x000066D4, 0x000066D8 + .word 0x000066D8, 0x000066DC + .word 0x000066DC, 0x000066E0 + .word 0x000066E0, 0x000066E4 + .word 0x000066E4, 0x000066E8 + .word 0x000066E8, 0x000066EC + .word 0x000066EC, 0x000066F0 + .word 0x000066F0, 0x000066F4 + .word 0x000066F4, 0x000066F8 + .word 0x000066F8, 0x000066FC + .word 0x000066FC, 0x00006700 + .word 0x00006700, 0x00006704 + .word 0x00006704, 0x00006708 + .word 0x00006708, 0x0000670C + .word 0x0000670C, 0x00006710 + .word 0x00006710, 0x00006714 + .word 0x00006714, 0x00006718 + .word 0x00006718, 0x0000671C + .word 0x0000671C, 0x00006720 + .word 0x00006720, 0x00006724 + .word 0x00006724, 0x00006728 + .word 0x00006728, 0x0000672C + .word 0x0000672C, 0x00006730 + .word 0x00006730, 0x000067F8 + .word 0x000067F8, 0x000067FC + .word 0x000067FC, 0x00006800 + .word 0x00006800, 0x00006804 + .word 0x00006804, 0x00006808 + .word 0x00006808, 0x0000680C + .word 0x0000680C, 0x00006810 + .word 0x00006810, 0x00006814 + .word 0x00006814, 0x00006818 + .word 0x00006818, 0x0000681C + .word 0x0000681C, 0x00006820 + .word 0x00006820, 0x00006824 + .word 0x00006824, 0x00006828 + .word 0x00006828, 0x0000682C + .word 0x0000682C, 0x00006830 + .word 0x00006830, 0x00006834 + .word 0x00006834, 0x00006838 + .word 0x00006838, 0x0000683C + .word 0x0000683C, 0x00006840 + .word 0x00006840, 0x00006844 + .word 0x00006844, 0x00006848 + .word 0x00006848, 0x0000684C + .word 0x0000684C, 0x00006850 + .word 0x00006850, 0x00006854 + .word 0x00006854, 0x00006858 + .word 0x00006858, 0x0000685C + .word 0x0000685C, 0x00006860 + .word 0x00006860, 0x00006864 + .word 0x00006864, 0x00006868 + .word 0x00006868, 0x0000686C + .word 0x0000686C, 0x00006870 + .word 0x00006870, 0x00006874 + .word 0x00006874, 0x00006878 + .word 0x00006878, 0x0000687C + .word 0x0000687C, 0x00006880 + .word 0x00006880, 0x00006884 + .word 0x00006884, 0x00006888 + .word 0x00006888, 0x0000688C + .word 0x0000688C, 0x00006890 + .word 0x00006890, 0x00006894 + .word 0x00006894, 0x00006898 + .word 0x00006898, 0x0000689C + .word 0x0000689C, 0x000068A0 + .word 0x000068A0, 0x000068A4 + .word 0x000068A4, 0x000068A8 + .word 0x000068A8, 0x000068AC + .word 0x000068AC, 0x000068B0 + .word 0x000068B0, 0x000068B4 + .word 0x000068B4, 0x000068B8 + .word 0x000068B8, 0x000068BC + .word 0x000068BC, 0x000068C0 + .word 0x000068C0, 0x000068C4 + .word 0x000068C4, 0x000068C8 + .word 0x000068C8, 0x000068CC + .word 0x000068CC, 0x000068D0 + .word 0x000068D0, 0x000068D4 + .word 0x000068D4, 0x000068D8 + .word 0x000068D8, 0x000068DC + .word 0x000068DC, 0x000068E0 + .word 0x000068E0, 0x000068E4 + .word 0x000068E4, 0x000068E8 + .word 0x000068E8, 0x000068EC + .word 0x000068EC, 0x000068F0 + .word 0x000068F0, 0x000068F4 + .word 0x000068F4, 0x000068F8 + .word 0x000068F8, 0x000068FC + .word 0x000068FC, 0x00006900 + .word 0x00006900, 0x00006904 + .word 0x00006904, 0x00006908 + .word 0x00006908, 0x0000690C + .word 0x0000690C, 0x00006910 + .word 0x00006910, 0x00006914 + .word 0x00006914, 0x00006918 + .word 0x00006918, 0x0000691C + .word 0x0000691C, 0x00006920 + .word 0x00006920, 0x00006924 + .word 0x00006924, 0x00006928 + .word 0x00006928, 0x0000692C + .word 0x0000692C, 0x00006930 + .word 0x00006930, 0x00006934 + .word 0x00006934, 0x00006938 + .word 0x00006938, 0x0000693C + .word 0x0000693C, 0x00006940 + .word 0x00006940, 0x00006944 + .word 0x00006944, 0x00006948 + .word 0x00006948, 0x0000694C + .word 0x0000694C, 0x00006950 + .word 0x00006950, 0x00006954 + .word 0x00006954, 0x00006958 + .word 0x00006958, 0x0000695C + .word 0x0000695C, 0x00006960 + .word 0x00006960, 0x00006964 + .word 0x00006964, 0x00006968 + .word 0x00006968, 0x0000696C + .word 0x0000696C, 0x00006970 + .word 0x00006970, 0x00006974 + .word 0x00006974, 0x00006978 + .word 0x00006978, 0x0000697C + .word 0x0000697C, 0x00006980 + .word 0x00006980, 0x00006984 + .word 0x00006984, 0x00006988 + .word 0x00006988, 0x0000698C + .word 0x0000698C, 0x00006990 + .word 0x00006990, 0x00006994 + .word 0x00006994, 0x00006998 + .word 0x00006998, 0x0000699C + .word 0x0000699C, 0x000069A0 + .word 0x000069A0, 0x000069A4 + .word 0x000069A4, 0x000069A8 + .word 0x000069A8, 0x000069AC + .word 0x000069AC, 0x000069B0 + .word 0x000069B0, 0x000069B4 + .word 0x000069B4, 0x000069B8 + .word 0x000069B8, 0x000069BC + .word 0x000069BC, 0x000069C0 + .word 0x000069C0, 0x000069C4 + .word 0x000069C4, 0x000069C8 + .word 0x000069C8, 0x000069CC + .word 0x000069CC, 0x000069D0 + .word 0x000069D0, 0x000069D4 + .word 0x000069D4, 0x000069D8 + .word 0x000069D8, 0x000069DC + .word 0x000069DC, 0x000069E0 + .word 0x000069E0, 0x000069E4 + .word 0x000069E4, 0x000069E8 + .word 0x000069E8, 0x000069EC + .word 0x000069EC, 0x000069F0 + .word 0x000069F0, 0x000069F4 + .word 0x000069F4, 0x000069F8 + .word 0x000069F8, 0x000069FC + .word 0x000069FC, 0x00006A00 + .word 0x00006A00, 0x00006A04 + .word 0x00006A04, 0x00006A08 + .word 0x00006A08, 0x00006A0C + .word 0x00006A0C, 0x00006A10 + .word 0x00006A10, 0x00006A14 + .word 0x00006A14, 0x00006A18 + .word 0x00006A18, 0x00006A1C + .word 0x00006A1C, 0x00006A20 + .word 0x00006A20, 0x00006A24 + .word 0x00006A24, 0x00006A28 + .word 0x00006A28, 0x00006A2C + .word 0x00006A2C, 0x00006A30 + .word 0x00006A30, 0x00006A34 + .word 0x00006A34, 0x00006A38 + .word 0x00006A38, 0x00006A3C + .word 0x00006A3C, 0x00006A40 + .word 0x00006A40, 0x00006A44 + .word 0x00006A44, 0x00006A48 + .word 0x00006A48, 0x00006A4C + .word 0x00006A4C, 0x00006A50 + .word 0x00006A50, 0x00006A54 + .word 0x00006A54, 0x00006A58 + .word 0x00006A58, 0x00006A5C + .word 0x00006A5C, 0x00006A60 + .word 0x00006A60, 0x00006A64 + .word 0x00006A64, 0x00006A68 + .word 0x00006A68, 0x00006A6C + .word 0x00006A6C, 0x00006A70 + .word 0x00006A70, 0x00006A74 + .word 0x00006A74, 0x00006A78 + .word 0x00006A78, 0x00006A7C + .word 0x00006A7C, 0x00006A80 + .word 0x00006A80, 0x00006A84 + .word 0x00006A84, 0x00006A88 + .word 0x00006A88, 0x00006A8C + .word 0x00006A8C, 0x00006A90 + .word 0x00006A90, 0x00006A94 + .word 0x00006A94, 0x00006A98 + .word 0x00006A98, 0x00006A9C + .word 0x00006A9C, 0x00006AA0 + .word 0x00006AA0, 0x00006AA4 + .word 0x00006AA4, 0x00006AA8 + .word 0x00006AA8, 0x00006AAC + .word 0x00006AAC, 0x00006AB0 + .word 0x00006AB0, 0x00006AB4 + .word 0x00006AB4, 0x00006AB8 + .word 0x00006AB8, 0x00006ABC + .word 0x00006ABC, 0x00006AC0 + .word 0x00006AC0, 0x00006AC4 + .word 0x00006AC4, 0x00006AC8 + .word 0x00006AC8, 0x00006ACC + .word 0x00006ACC, 0x00006AD0 + .word 0x00006AD0, 0x00006AD4 + .word 0x00006AD4, 0x00006AD8 + .word 0x00006AD8, 0x00006ADC + .word 0x00006ADC, 0x00006AE0 + .word 0x00006AE0, 0x00006AE4 + .word 0x00006AE4, 0x00006AE8 + .word 0x00006AE8, 0x00006AEC + .word 0x00006AEC, 0x00006B40 + .word 0x00006B40, 0x00006B44 + .word 0x00006B44, 0x00006B48 + .word 0x00006B48, 0x00006B4C + .word 0x00006B4C, 0x00006B50 + .word 0x00006B50, 0x00006B54 + .word 0x00006B54, 0x00006B58 + .word 0x00006B58, 0x00006B5C + .word 0x00006B5C, 0x00006B60 + .word 0x00006B60, 0x00006B64 + .word 0x00006B64, 0x00006B68 + .word 0x00006B68, 0x00006B6C + .word 0x00006B6C, 0x00006B70 + .word 0x00006B70, 0x00006B74 + .word 0x00006B74, 0x00006B78 + .word 0x00006B78, 0x00006B7C + .word 0x00006B7C, 0x00006B80 + .word 0x00006B80, 0x00006B84 + .word 0x00006B84, 0x00006B88 + .word 0x00006B88, 0x00006B8C + .word 0x00006B8C, 0x00006B90 + .word 0x00006B90, 0x00006B94 + .word 0x00006B94, 0x00006B98 + .word 0x00006B98, 0x00006B9C + .word 0x00006B9C, 0x00006BF0 + .word 0x00006BF0, 0x00006BF4 + .word 0x00006BF4, 0x00006BF8 + .word 0x00006BF8, 0x00006BFC + .word 0x00006BFC, 0x00006C00 + .word 0x00006C00, 0x00006C04 + .word 0x00006C04, 0x00006C08 + .word 0x00006C08, 0x00006C0C + .word 0x00006C0C, 0x00006C10 + .word 0x00006C10, 0x00006C14 + .word 0x00006C14, 0x00006C18 + .word 0x00006C18, 0x00006C1C + .word 0x00006C1C, 0x00006C20 + .word 0x00006C20, 0x00006C24 + .word 0x00006C24, 0x00006C28 + .word 0x00006C28, 0x00006C2C + .word 0x00006C2C, 0x00006C30 + .word 0x00006C30, 0x00006C34 + .word 0x00006C34, 0x00006C38 + .word 0x00006C38, 0x00006C3C + .word 0x00006C3C, 0x00006C40 + .word 0x00006C40, 0x00006C44 + .word 0x00006C44, 0x00006C48 + .word 0x00006C48, 0x00006C4C + .word 0x00006C4C, 0x00006C50 + .word 0x00006C50, 0x00006C54 + .word 0x00006C54, 0x00006C58 + .word 0x00006C58, 0x00006C5C + .word 0x00006C5C, 0x00006C60 + .word 0x00006C60, 0x00006C64 + .word 0x00006C64, 0x00006C68 + .word 0x00006C68, 0x00006C6C + .word 0x00006C6C, 0x00006C70 + .word 0x00006C70, 0x00006C74 + .word 0x00006C74, 0x00006C78 + .word 0x00006C78, 0x00006C7C + .word 0x00006C7C, 0x00006C80 + .word 0x00006C80, 0x00006C84 + .word 0x00006C84, 0x00006C88 + .word 0x00006C88, 0x00006C8C + .word 0x00006C8C, 0x00006C90 + .word 0x00006C90, 0x00006C94 + .word 0x00006C94, 0x00006C98 + .word 0x00006C98, 0x00006C9C + .word 0x00006C9C, 0x00006CA0 + .word 0x00006CA0, 0x00006CA4 + .word 0x00006CA4, 0x00006CA8 + .word 0x00006CA8, 0x00006CAC + .word 0x00006CAC, 0x00006CB0 + .word 0x00006CB0, 0x00006CB4 + .word 0x00006CB4, 0x00006CB8 + .word 0x00006CB8, 0x00006D0C + .word 0x00006D0C, 0x00006D10 + .word 0x00006D10, 0x00006D14 + .word 0x00006D14, 0x00006D68 + .word 0x00006D68, 0x00006D6C + .word 0x00006D6C, 0x00006D70 + .word 0x00006D70, 0x00006D74 + .word 0x00006D74, 0x00006D78 + .word 0x00006D78, 0x00006D7C + .word 0x00006D7C, 0x00006D80 + .word 0x00006D80, 0x00006D84 + .word 0x00006D84, 0x00006D88 + .word 0x00006D88, 0x00006D8C + .word 0x00006D8C, 0x00006D90 + .word 0x00006D90, 0x00006D94 + .word 0x00006D94, 0x00006D98 + .word 0x00006D98, 0x00006D9C + .word 0x00006D9C, 0x00006DA0 + .word 0x00006DA0, 0x00006DA4 + .word 0x00006DA4, 0x00006DA8 + .word 0x00006DA8, 0x00006DAC + .word 0x00006DAC, 0x00006DB0 + .word 0x00006DB0, 0x00006DB4 + .word 0x00006DB4, 0x00006DB8 + .word 0x00006DB8, 0x00006DBC + .word 0x00006DBC, 0x00006DC0 + .word 0x00006DC0, 0x00006DC4 + .word 0x00006DC4, 0x00006DC8 + .word 0x00006DC8, 0x00006DCC + .word 0x00006DCC, 0x00006DD0 + .word 0x00006DD0, 0x00006DD4 + .word 0x00006DD4, 0x00006DD8 + .word 0x00006DD8, 0x00006DDC + .word 0x00006DDC, 0x00006DE0 + .word 0x00006DE0, 0x00006DE4 + .word 0x00006DE4, 0x00006DE8 + .word 0x00006DE8, 0x00006DEC + .word 0x00006DEC, 0x00006DF0 + .word 0x00006DF0, 0x00006DF4 + .word 0x00006DF4, 0x00006DF8 + .word 0x00006DF8, 0x00006DFC + .word 0x00006DFC, 0x00006E00 + .word 0x00006E00, 0x00006E04 + .word 0x00006E04, 0x00006E08 + .word 0x00006E08, 0x00006E0C + .word 0x00006E0C, 0x00006E10 + .word 0x00006E10, 0x00006E14 + .word 0x00006E14, 0x00006E18 + .word 0x00006E18, 0x00006E1C + .word 0x00006E1C, 0x00006E20 + .word 0x00006E20, 0x00006E24 + .word 0x00006E24, 0x00006E28 + .word 0x00006E28, 0x00006E2C + .word 0x00006E2C, 0x00006E30 + .word 0x00006E30, 0x00006E34 + .word 0x00006E34, 0x00006E38 + .word 0x00006E38, 0x00006E3C + .word 0x00006E3C, 0x00006E40 + .word 0x00006E40, 0x00006E44 + .word 0x00006E44, 0x00006E48 + .word 0x00006E48, 0x00006E4C + .word 0x00006E4C, 0x00006E50 + .word 0x00006E50, 0x00006E54 + .word 0x00006E54, 0x00006E58 + .word 0x00006E58, 0x00006E5C + .word 0x00006E5C, 0x00006E60 + .word 0x00006E60, 0x00006E64 + .word 0x00006E64, 0x00006E68 + .word 0x00006E68, 0x00006E6C + .word 0x00006E6C, 0x00006E70 + .word 0x00006E70, 0x00006E74 + .word 0x00006E74, 0x00006E78 + .word 0x00006E78, 0x00006E7C + .word 0x00006E7C, 0x00006E80 + .word 0x00006E80, 0x00006E84 + .word 0x00006E84, 0x00006E88 + .word 0x00006E88, 0x00006E8C + .word 0x00006E8C, 0x00006E90 + .word 0x00006E90, 0x00006E94 + .word 0x00006E94, 0x00006E98 + .word 0x00006E98, 0x00006E9C + .word 0x00006E9C, 0x00006EA0 + .word 0x00006EA0, 0x00006EA4 + .word 0x00006EA4, 0x00006EA8 + .word 0x00006EA8, 0x00006EAC + .word 0x00006EAC, 0x00006EB0 + .word 0x00006EB0, 0x00006EB4 + .word 0x00006EB4, 0x00006EB8 + .word 0x00006EB8, 0x00006EBC + .word 0x00006EBC, 0x00006EC0 + .word 0x00006EC0, 0x00006EC4 + .word 0x00006EC4, 0x00006EC8 + .word 0x00006EC8, 0x00006ECC + .word 0x00006ECC, 0x00006ED0 + .word 0x00006ED0, 0x00006ED4 + .word 0x00006ED4, 0x00006ED8 + .word 0x00006ED8, 0x00006EDC + .word 0x00006EDC, 0x00006EE0 + .word 0x00006EE0, 0x00006EE4 + .word 0x00006EE4, 0x00006EE8 + .word 0x00006EE8, 0x00006EEC + .word 0x00006EEC, 0x00006EF0 + .word 0x00006EF0, 0x00006EF4 + .word 0x00006EF4, 0x00006EF8 + .word 0x00006EF8, 0x00006EFC + .word 0x00006EFC, 0x00006F00 + .word 0x00006F00, 0x00006F04 + .word 0x00006F04, 0x00006F08 + .word 0x00006F08, 0x00006F0C + .word 0x00006F0C, 0x00006F10 + .word 0x00006F10, 0x00006F14 + .word 0x00006F14, 0x00006F18 + .word 0x00006F18, 0x00006F1C + .word 0x00006F1C, 0x00006F20 + .word 0x00006F20, 0x00006F24 + .word 0x00006F24, 0x00006F28 + .word 0x00006F28, 0x00006F2C + .word 0x00006F2C, 0x00006F30 + .word 0x00006F30, 0x00006F34 + .word 0x00006F34, 0x00006F38 + .word 0x00006F38, 0x00006F3C + .word 0x00006F3C, 0x00006F40 + .word 0x00006F40, 0x00006F44 + .word 0x00006F44, 0x00006F48 + .word 0x00006F48, 0x00006F4C + .word 0x00006F4C, 0x00006F50 + .word 0x00006F50, 0x00006F54 + .word 0x00006F54, 0x00006F58 + .word 0x00006F58, 0x00006F5C + .word 0x00006F5C, 0x00006F60 + .word 0x00006F60, 0x00006F64 + .word 0x00006F64, 0x00006F68 + .word 0x00006F68, 0x00006F6C + .word 0x00006F6C, 0x00006F70 + .word 0x00006F70, 0x00006F74 + .word 0x00006F74, 0x00006F78 + .word 0x00006F78, 0x00006F7C + .word 0x00006F7C, 0x00006F80 + .word 0x00006F80, 0x00006F84 + .word 0x00006F84, 0x00006F88 + .word 0x00006F88, 0x00006F8C + .word 0x00006F8C, 0x00006F90 + .word 0x00006F90, 0x00006F94 + .word 0x00006F94, 0x00006F98 + .word 0x00006F98, 0x00006F9C + .word 0x00006F9C, 0x00006FA0 + .word 0x00006FA0, 0x00006FA4 + .word 0x00006FA4, 0x00006FF8 + .word 0x00006FF8, 0x00006FFC + .word 0x00006FFC, 0x00007000 + .word 0x00007000, 0x00007054 + .word 0x00007054, 0x00007058 + .word 0x00007058, 0x0000705C + .word 0x0000705C, 0x00007060 + .word 0x00007060, 0x00007064 + .word 0x00007064, 0x000070B8 + .word 0x000070B8, 0x000070BC + .word 0x000070BC, 0x000070C0 + .word 0x000070C0, 0x000070C4 + .word 0x000070C4, 0x000070C8 + .word 0x000070C8, 0x000070CC + .word 0x000070CC, 0x000070D0 + .word 0x000070D0, 0x000070D4 + .word 0x000070D4, 0x000070D8 + .word 0x000070D8, 0x000070DC + .word 0x000070DC, 0x000070E0 + .word 0x000070E0, 0x000070E4 + .word 0x000070E4, 0x000070E8 + .word 0x000070E8, 0x000070EC + .word 0x000070EC, 0x000070F0 + .word 0x000070F0, 0x000070F4 + .word 0x000070F4, 0x000070F8 + .word 0x000070F8, 0x000070FC + .word 0x000070FC, 0x00007100 + .word 0x00007100, 0x00007104 + .word 0x00007104, 0x00007108 + .word 0x00007108, 0x0000710C + .word 0x0000710C, 0x00007110 + .word 0x00007110, 0x00007114 + .word 0x00007114, 0x00007118 + .word 0x00007118, 0x0000711C + .word 0x0000711C, 0x00007120 + .word 0x00007120, 0x00007124 + .word 0x00007124, 0x00007128 + .word 0x00007128, 0x0000712C + .word 0x0000712C, 0x00007130 + .word 0x00007130, 0x00007134 + .word 0x00007134, 0x00007138 + .word 0x00007138, 0x0000713C + .word 0x0000713C, 0x00007140 + .word 0x00007140, 0x00007144 + .word 0x00007144, 0x00007148 + .word 0x00007148, 0x0000714C + .word 0x0000714C, 0x00007150 + .word 0x00007150, 0x00007154 + .word 0x00007154, 0x00007158 + .word 0x00007158, 0x0000715C + .word 0x0000715C, 0x00007160 + .word 0x00007160, 0x00007164 + .word 0x00007164, 0x00007168 + .word 0x00007168, 0x0000716C + .word 0x0000716C, 0x00007170 + .word 0x00007170, 0x00007174 + .word 0x00007174, 0x00007178 + .word 0x00007178, 0x0000717C + .word 0x0000717C, 0x00007180 + .word 0x00007180, 0x00007184 + .word 0x00007184, 0x00007188 + .word 0x00007188, 0x0000718C + .word 0x0000718C, 0x00007190 + .word 0x00007190, 0x00007194 + .word 0x00007194, 0x00007198 + .word 0x00007198, 0x0000719C + .word 0x0000719C, 0x000071A0 + .word 0x000071A0, 0x000071A4 + .word 0x000071A4, 0x000071A8 + .word 0x000071A8, 0x000071AC + .word 0x000071AC, 0x000071B0 + .word 0x000071B0, 0x000071B4 + .word 0x000071B4, 0x000071B8 + .word 0x000071B8, 0x000071BC + .word 0x000071BC, 0x000071C0 + .word 0x000071C0, 0x000071C4 + .word 0x000071C4, 0x000071C8 + .word 0x000071C8, 0x000071CC + .word 0x000071CC, 0x000071D0 + .word 0x000071D0, 0x000071D4 + .word 0x000071D4, 0x000071D8 + .word 0x000071D8, 0x000071DC + .word 0x000071DC, 0x000071E0 + .word 0x000071E0, 0x00007214 + .word 0x00007214, 0x00007218 + .word 0x00007218, 0x0000721C + .word 0x0000721C, 0x00007220 + .word 0x00007220, 0x00007224 + .word 0x00007224, 0x00007228 + .word 0x00007228, 0x0000722C + .word 0x0000722C, 0x00007230 + .word 0x00007230, 0x00007234 + .word 0x00007234, 0x00007238 + .word 0x00007238, 0x0000723C + .word 0x0000723C, 0x00007240 + .word 0x00007240, 0x00007244 + .word 0x00007244, 0x00007248 + .word 0x00007248, 0x0000724C + .word 0x0000724C, 0x00007250 + .word 0x00007250, 0x00007254 + .word 0x00007254, 0x00007258 + .word 0x00007258, 0x0000725C + .word 0x0000725C, 0x00007260 + .word 0x00007260, 0x00007264 + .word 0x00007264, 0x00007268 + .word 0x00007268, 0x0000726C + .word 0x0000726C, 0x00007270 + .word 0x00007270, 0x00007274 + .word 0x00007274, 0x00007278 + .word 0x00007278, 0x0000727C + .word 0x0000727C, 0x00007280 + .word 0x00007280, 0x00007284 + .word 0x00007284, 0x0000728C + .word 0x0000728C, 0x00007298 + .word 0x00007298, 0x0000729C + .word 0x0000729C, 0x000072A4 + .word 0x000072A4, 0x000072B0 + .word 0x000072B0, 0x000072B4 + .word 0x000072B4, 0x000072B8 + .word 0x000072B8, 0x000072BC + .word 0x000072BC, 0x000072C0 + .word 0x000072C0, 0x000072C4 + .word 0x000072C4, 0x000072C8 + .word 0x000072C8, 0x000072CC + .word 0x000072CC, 0x000072D0 + .word 0x000072D0, 0x000072D4 + .word 0x000072D4, 0x000072D8 + .word 0x000072D8, 0x000072DC + .word 0x000072DC, 0x000072E0 + .word 0x000072E0, 0x000072E4 + .word 0x000072E4, 0x000072E8 + .word 0x000072E8, 0x000072F0 + .word 0x000072F0, 0x000072F8 + .word 0x000072F8, 0x000072FC + .word 0x000072FC, 0x00007300 + .word 0x00007300, 0x00007304 + .word 0x00007304, 0x00007308 + .word 0x00007308, 0x0000730C + .word 0x0000730C, 0x00007310 + .word 0x00007310, 0x0000731C + .word 0x0000731C, 0x00007328 + .word 0x00007328, 0x0000732C + .word 0x0000732C, 0x00007330 + .word 0x00007330, 0x00007334 + .word 0x00007334, 0x00007338 + .word 0x00007338, 0x0000733C + .word 0x0000733C, 0x00007340 + .word 0x00007340, 0x00007344 + .word 0x00007344, 0x00007348 + .word 0x00007348, 0x0000734C + .word 0x0000734C, 0x00007350 + .word 0x00007350, 0x00007354 + .word 0x00007354, 0x00007358 + .word 0x00007358, 0x0000735C + .word 0x0000735C, 0x00007360 + .word 0x00007360, 0x00007364 + .word 0x00007364, 0x00007368 + .word 0x00007368, 0x0000736C + .word 0x0000736C, 0x00007370 + .word 0x00007370, 0x00007374 + .word 0x00007374, 0x00007378 + .word 0x00007378, 0x0000737C + .word 0x0000737C, 0x00007384 + .word 0x00007384, 0x00007388 + .word 0x00007388, 0x0000738C + .word 0x0000738C, 0x00007390 + .word 0x00007390, 0x00007394 + .word 0x00007394, 0x00007398 + .word 0x00007398, 0x0000739C + .word 0x0000739C, 0x000073A0 + .word 0x000073A0, 0x000073A4 + .word 0x000073A4, 0x000073AC + .word 0x000073AC, 0x000073B0 + .word 0x000073B0, 0x000073B4 + .word 0x000073B4, 0x000073B8 + .word 0x000073B8, 0x000073BC + .word 0x000073BC, 0x000073C0 + .word 0x000073C0, 0x000073C4 + .word 0x000073C4, 0x000073C8 + .word 0x000073C8, 0x000073CC + .word 0x000073CC, 0x000073D0 + .word 0x000073D0, 0x000073D4 + .word 0x000073D4, 0x000073D8 + .word 0x000073D8, 0x000073DC + .word 0x000073DC, 0x000073E0 + .word 0x000073E0, 0x000073E4 + .word 0x000073E4, 0x000073E8 + .word 0x000073E8, 0x000073EC + .word 0x000073EC, 0x000073F0 + .word 0x000073F0, 0x000073F4 + .word 0x000073F4, 0x000073F8 + .word 0x000073F8, 0x000073FC + .word 0x000073FC, 0x00007400 + .word 0x00007400, 0x00007404 + .word 0x00007404, 0x00007408 + .word 0x00007408, 0x0000740C + .word 0x0000740C, 0x00007410 + .word 0x00007410, 0x00007414 + .word 0x00007414, 0x00007418 + .word 0x00007418, 0x0000741C + .word 0x0000741C, 0x00007420 + .word 0x00007420, 0x00007424 + .word 0x00007424, 0x00007428 + .word 0x00007428, 0x0000742C + .word 0x0000742C, 0x00007430 + .word 0x00007430, 0x00007434 + .word 0x00007434, 0x00007438 + .word 0x00007438, 0x0000743C + .word 0x0000743C, 0x00007440 + .word 0x00007440, 0x00007444 + .word 0x00007444, 0x00007448 + .word 0x00007448, 0x00007454 + .word 0x00007454, 0x00007458 + .word 0x00007458, 0x0000745C + .word 0x0000745C, 0x00007460 + .word 0x00007460, 0x00007468 + .word 0x00007468, 0x0000746C + .word 0x0000746C, 0x00007470 + .word 0x00007470, 0x00007474 + .word 0x00007474, 0x00007478 + .word 0x00007478, 0x0000747C + .word 0x0000747C, 0x00007480 + .word 0x00007480, 0x00007484 + .word 0x00007484, 0x00007488 + .word 0x00007488, 0x0000748C + .word 0x0000748C, 0x00007490 + .word 0x00007490, 0x00007494 + .word 0x00007494, 0x00007498 + .word 0x00007498, 0x0000749C + .word 0x0000749C, 0x000074A0 + .word 0x000074A0, 0x000074A4 + .word 0x000074A4, 0x000074A8 + .word 0x000074A8, 0x000074AC + .word 0x000074AC, 0x000074B0 + .word 0x000074B0, 0x000074B4 + .word 0x000074B4, 0x000074B8 + .word 0x000074B8, 0x000074BC + .word 0x000074BC, 0x000074C0 + .word 0x000074C0, 0x000074C4 + .word 0x000074C4, 0x000074C8 + .word 0x000074C8, 0x000074CC + .word 0x000074CC, 0x000074D0 + .word 0x000074D0, 0x000074D4 + .word 0x000074D4, 0x000074D8 + .word 0x000074D8, 0x000074E0 + .word 0x000074E0, 0x000074E4 + .word 0x000074E4, 0x000074E8 + .word 0x000074E8, 0x000074EC + .word 0x000074EC, 0x000074F0 + .word 0x000074F0, 0x000074F4 + .word 0x000074F4, 0x000074F8 + .word 0x000074F8, 0x000074FC + .word 0x000074FC, 0x00007500 + .word 0x00007500, 0x00007504 + .word 0x00007504, 0x00007508 + .word 0x00007508, 0x0000750C + .word 0x0000750C, 0x00007510 + .word 0x00007510, 0x00007514 + .word 0x00007514, 0x0000751C + .word 0x0000751C, 0x00007520 + .word 0x00007520, 0x00007524 + .word 0x00007524, 0x00007528 + .word 0x00007528, 0x00007530 + .word 0x00007530, 0x00007538 + .word 0x00007538, 0x0000753C + .word 0x0000753C, 0x00007540 + .word 0x00007540, 0x00007544 + .word 0x00007544, 0x00007548 + .word 0x00007548, 0x0000754C + .word 0x0000754C, 0x00007550 + .word 0x00007550, 0x0000755C + .word 0x0000755C, 0x00007564 + .word 0x00007564, 0x00007568 + .word 0x00007568, 0x000075BC + .word 0x000075BC, 0x000075C4 + .word 0x000075C4, 0x000075C8 + .word 0x000075C8, 0x000075CC + .word 0x000075CC, 0x000075D0 + .word 0x000075D0, 0x000075D4 + .word 0x000075D4, 0x000075D8 + .word 0x000075D8, 0x000075DC + .word 0x000075DC, 0x000075E0 + .word 0x000075E0, 0x000075E4 + .word 0x000075E4, 0x000075E8 + .word 0x000075E8, 0x000075EC + .word 0x000075EC, 0x000075F0 + .word 0x000075F0, 0x000075F4 + .word 0x000075F4, 0x000075F8 + .word 0x000075F8, 0x000075FC + .word 0x000075FC, 0x00007600 + .word 0x00007600, 0x00007604 + .word 0x00007604, 0x00007608 + .word 0x00007608, 0x0000760C + .word 0x0000760C, 0x00007610 + .word 0x00007610, 0x00007614 + .word 0x00007614, 0x00007618 + .word 0x00007618, 0x0000761C + .word 0x0000761C, 0x00007670 + .word 0x00007670, 0x00007674 + .word 0x00007674, 0x00007678 + .word 0x00007678, 0x0000767C + .word 0x0000767C, 0x00007680 + .word 0x00007680, 0x00007684 + .word 0x00007684, 0x00007688 + .word 0x00007688, 0x0000768C + .word 0x0000768C, 0x00007690 + .word 0x00007690, 0x00007694 + .word 0x00007694, 0x00007698 + .word 0x00007698, 0x0000769C + .word 0x0000769C, 0x000076A0 + .word 0x000076A0, 0x000076A4 + .word 0x000076A4, 0x000076A8 + .word 0x000076A8, 0x000076B4 + .word 0x000076B4, 0x000076B8 + .word 0x000076B8, 0x000076BC + .word 0x000076BC, 0x000076C0 + .word 0x000076C0, 0x000076C4 + .word 0x000076C4, 0x000076CC + .word 0x000076CC, 0x000076D4 + .word 0x000076D4, 0x000076E0 + .word 0x000076E0, 0x000076E4 + .word 0x000076E4, 0x000076E8 + .word 0x000076E8, 0x000076EC + .word 0x000076EC, 0x000076F0 + .word 0x000076F0, 0x000076FC + .word 0x000076FC, 0x00007700 + .word 0x00007700, 0x00007704 + .word 0x00007704, 0x00007708 + .word 0x00007708, 0x0000770C + .word 0x0000770C, 0x00007710 + .word 0x00007710, 0x00007714 + .word 0x00007714, 0x00007718 + .word 0x00007718, 0x0000771C + .word 0x0000771C, 0x00007720 + .word 0x00007720, 0x00007724 + .word 0x00007724, 0x00007728 + .word 0x00007728, 0x0000772C + .word 0x0000772C, 0x00007730 + .word 0x00007730, 0x00007734 + .word 0x00007734, 0x00007738 + .word 0x00007738, 0x0000773C + .word 0x0000773C, 0x00007740 + .word 0x00007740, 0x00007744 + .word 0x00007744, 0x00007748 + .word 0x00007748, 0x0000774C + .word 0x0000774C, 0x00007750 + .word 0x00007750, 0x00007754 + .word 0x00007754, 0x00007758 + .word 0x00007758, 0x000077AC + .word 0x000077AC, 0x000077B0 + .word 0x000077B0, 0x000077B4 + .word 0x000077B4, 0x00007808 + .word 0x00007808, 0x0000780C + .word 0x0000780C, 0x00007810 + .word 0x00007810, 0x00007814 + .word 0x00007814, 0x00007818 + .word 0x00007818, 0x0000781C + .word 0x0000781C, 0x00007820 + .word 0x00007820, 0x00007824 + .word 0x00007824, 0x00007828 + .word 0x00007828, 0x00007830 + .word 0x00007830, 0x00007834 + .word 0x00007834, 0x00007838 + .word 0x00007838, 0x00007844 + .word 0x00007844, 0x00007850 + .word 0x00007850, 0x00007854 + .word 0x00007854, 0x00007858 + .word 0x00007858, 0x0000785C + .word 0x0000785C, 0x00007860 + .word 0x00007860, 0x00007864 + .word 0x00007864, 0x00007868 + .word 0x00007868, 0x0000786C + .word 0x0000786C, 0x00007870 + .word 0x00007870, 0x00007874 + .word 0x00007874, 0x00007878 + .word 0x00007878, 0x0000787C + .word 0x0000787C, 0x00007880 + .word 0x00007880, 0x00007884 + .word 0x00007884, 0x00007888 + .word 0x00007888, 0x0000788C + .word 0x0000788C, 0x00007890 + .word 0x00007890, 0x00007894 + .word 0x00007894, 0x00007898 + .word 0x00007898, 0x0000789C + .word 0x0000789C, 0x000078A0 + .word 0x000078A0, 0x000078A4 + .word 0x000078A4, 0x000078A8 + .word 0x000078A8, 0x000078AC + .word 0x000078AC, 0x000078B0 + .word 0x000078B0, 0x000078B4 + .word 0x000078B4, 0x000078B8 + .word 0x000078B8, 0x000078BC + .word 0x000078BC, 0x000078C0 + .word 0x000078C0, 0x000078C4 + .word 0x000078C4, 0x000078C8 + .word 0x000078C8, 0x000078CC + .word 0x000078CC, 0x000078D0 + .word 0x000078D0, 0x000078D4 + .word 0x000078D4, 0x000078D8 + .word 0x000078D8, 0x000078DC + .word 0x000078DC, 0x000078E0 + .word 0x000078E0, 0x000078E4 + .word 0x000078E4, 0x000078E8 + .word 0x000078E8, 0x000078EC + .word 0x000078EC, 0x000078F0 + .word 0x000078F0, 0x000078F4 + .word 0x000078F4, 0x000078F8 + .word 0x000078F8, 0x00007904 + .word 0x00007904, 0x00007908 + .word 0x00007908, 0x0000790C + .word 0x0000790C, 0x00007910 + .word 0x00007910, 0x00007918 + .word 0x00007918, 0x00007920 + .word 0x00007920, 0x00007924 + .word 0x00007924, 0x00007928 + .word 0x00007928, 0x0000792C + .word 0x0000792C, 0x00007934 + .word 0x00007934, 0x00007938 + .word 0x00007938, 0x0000793C + .word 0x0000793C, 0x00007940 + .word 0x00007940, 0x00007944 + .word 0x00007944, 0x00007948 + .word 0x00007948, 0x0000794C + .word 0x0000794C, 0x00007950 + .word 0x00007950, 0x00007954 + .word 0x00007954, 0x00007958 + .word 0x00007958, 0x00007960 + .word 0x00007960, 0x00007964 + .word 0x00007964, 0x00007968 + .word 0x00007968, 0x0000796C + .word 0x0000796C, 0x00007970 + .word 0x00007970, 0x00007974 + .word 0x00007974, 0x00007978 + .word 0x00007978, 0x0000797C + .word 0x0000797C, 0x00007980 + .word 0x00007980, 0x00007984 + .word 0x00007984, 0x00007988 + .word 0x00007988, 0x0000798C + .word 0x0000798C, 0x00007994 + .word 0x00007994, 0x0000799C + .word 0x0000799C, 0x000079A0 + .word 0x000079A0, 0x000079A4 + .word 0x000079A4, 0x000079A8 + .word 0x000079A8, 0x000079AC + .word 0x000079AC, 0x000079BC + .word 0x000079BC, 0x000079C0 + .word 0x000079C0, 0x000079C4 + .word 0x000079C4, 0x000079C8 + .word 0x000079C8, 0x000079CC + .word 0x000079CC, 0x000079D0 + .word 0x000079D0, 0x000079D4 + .word 0x000079D4, 0x000079D8 + .word 0x000079D8, 0x000079DC + .word 0x000079DC, 0x000079E0 + .word 0x000079E0, 0x000079E8 + .word 0x000079E8, 0x000079EC + .word 0x000079EC, 0x000079F0 + .word 0x000079F0, 0x000079F4 + .word 0x000079F4, 0x000079F8 + .word 0x000079F8, 0x000079FC + .word 0x000079FC, 0x00007A00 + .word 0x00007A00, 0x00007A04 + .word 0x00007A04, 0x00007A08 + .word 0x00007A08, 0x00007A0C + .word 0x00007A0C, 0x00007A10 + .word 0x00007A10, 0x00007A14 + .word 0x00007A14, 0x00007A18 + .word 0x00007A18, 0x00007A1C + .word 0x00007A1C, 0x00007A20 + .word 0x00007A20, 0x00007A24 + .word 0x00007A24, 0x00007A28 + .word 0x00007A28, 0x00007A2C + .word 0x00007A2C, 0x00007A30 + .word 0x00007A30, 0x00007A34 + .word 0x00007A34, 0x00007A38 + .word 0x00007A38, 0x00007A3C + .word 0x00007A3C, 0x00007A40 + .word 0x00007A40, 0x00007A44 + .word 0x00007A44, 0x00007A48 + .word 0x00007A48, 0x00007A4C + .word 0x00007A4C, 0x00007A50 + .word 0x00007A50, 0x00007A54 + .word 0x00007A54, 0x00007A58 + .word 0x00007A58, 0x00007A5C + .word 0x00007A5C, 0x00007A60 + .word 0x00007A60, 0x00007A64 + .word 0x00007A64, 0x00007A68 + .word 0x00007A68, 0x00007A6C + .word 0x00007A6C, 0x00007A70 + .word 0x00007A70, 0x00007A74 + .word 0x00007A74, 0x00007A78 + .word 0x00007A78, 0x00007A7C + .word 0x00007A7C, 0x00007A80 + .word 0x00007A80, 0x00007A84 + .word 0x00007A84, 0x00007A88 + .word 0x00007A88, 0x00007ADC + .word 0x00007ADC, 0x00007AE0 + .word 0x00007AE0, 0x00007AE4 + .word 0x00007AE4, 0x00007B38 + .word 0x00007B38, 0x00007B3C + .word 0x00007B3C, 0x00007B40 + .word 0x00007B40, 0x00007B44 + .word 0x00007B44, 0x00007B48 + .word 0x00007B48, 0x00007B9C + .word 0x00007B9C, 0x00007BA0 + .word 0x00007BA0, 0x00007BA4 + .word 0x00007BA4, 0x00007BA8 + .word 0x00007BA8, 0x00007BAC + .word 0x00007BAC, 0x00007BB0 + .word 0x00007BB0, 0x00007BB4 + .word 0x00007BB4, 0x00007BB8 + .word 0x00007BB8, 0x00007BBC + .word 0x00007BBC, 0x00007BC0 + .word 0x00007BC0, 0x00007BC4 + .word 0x00007BC4, 0x00007BC8 + .word 0x00007BC8, 0x00007BCC + .word 0x00007BCC, 0x00007BD0 + .word 0x00007BD0, 0x00007BD4 + .word 0x00007BD4, 0x00007BD8 + .word 0x00007BD8, 0x00007BDC + .word 0x00007BDC, 0x00007BE0 + .word 0x00007BE0, 0x00007BE4 + .word 0x00007BE4, 0x00007BE8 + .word 0x00007BE8, 0x00007BEC + .word 0x00007BEC, 0x00007BF0 + .word 0x00007BF0, 0x00007BF4 + .word 0x00007BF4, 0x00007BF8 + .word 0x00007BF8, 0x00007BFC + .word 0x00007BFC, 0x00007C00 + .word 0x00007C00, 0x00007C04 + .word 0x00007C04, 0x00007C08 + .word 0x00007C08, 0x00007C0C + .word 0x00007C0C, 0x00007C10 + .word 0x00007C10, 0x00007C14 + .word 0x00007C14, 0x00007C18 + .word 0x00007C18, 0x00007C1C + .word 0x00007C1C, 0x00007C20 + .word 0x00007C20, 0x00007C24 + .word 0x00007C24, 0x00007C28 + .word 0x00007C28, 0x00007C2C + .word 0x00007C2C, 0x00007C30 + .word 0x00007C30, 0x00007C34 + .word 0x00007C34, 0x00007C38 + .word 0x00007C38, 0x00007C3C + .word 0x00007C3C, 0x00007C40 + .word 0x00007C40, 0x00007C44 + .word 0x00007C44, 0x00007C48 + .word 0x00007C48, 0x00007C4C + .word 0x00007C4C, 0x00007C50 + .word 0x00007C50, 0x00007C54 + .word 0x00007C54, 0x00007C58 + .word 0x00007C58, 0x00007C5C + .word 0x00007C5C, 0x00007C60 + .word 0x00007C60, 0x00007C64 + .word 0x00007C64, 0x00007C68 + .word 0x00007C68, 0x00007C6C + .word 0x00007C6C, 0x00007C70 + .word 0x00007C70, 0x00007C74 + .word 0x00007C74, 0x00007C78 + .word 0x00007C78, 0x00007C7C + .word 0x00007C7C, 0x00007C80 + .word 0x00007C80, 0x00007C84 + .word 0x00007C84, 0x00007C88 + .word 0x00007C88, 0x00007C8C + .word 0x00007C8C, 0x00007C90 + .word 0x00007C90, 0x00007C94 + .word 0x00007C94, 0x00007C98 + .word 0x00007C98, 0x00007C9C + .word 0x00007C9C, 0x00007CA0 + .word 0x00007CA0, 0x00007CA4 + .word 0x00007CA4, 0x00007CA8 + .word 0x00007CA8, 0x00007CAC + .word 0x00007CAC, 0x00007CB0 + .word 0x00007CB0, 0x00007CB4 + .word 0x00007CB4, 0x00007CB8 + .word 0x00007CB8, 0x00007CBC + .word 0x00007CBC, 0x00007CC0 + .word 0x00007CC0, 0x00007CC4 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00007CCC ; chunk size + .incbin "baserom.nds", 0x0, 0x58 + .incbin "baserom.nds", 0x58, 0x58 + .incbin "baserom.nds", 0xB0, 0x72C + .incbin "baserom.nds", 0x7DC, 0xCC + .incbin "baserom.nds", 0x8A8, 0x44 + .incbin "baserom.nds", 0x8EC, 0x4 + .incbin "baserom.nds", 0x8F0, 0x4 + .incbin "baserom.nds", 0x8F4, 0x4 + .incbin "baserom.nds", 0x8F8, 0x4 + .incbin "baserom.nds", 0x8FC, 0x4 + .incbin "baserom.nds", 0x900, 0x4 + .incbin "baserom.nds", 0x904, 0x4 + .incbin "baserom.nds", 0x908, 0x4 + .incbin "baserom.nds", 0x90C, 0x4 + .incbin "baserom.nds", 0x910, 0x4 + .incbin "baserom.nds", 0x914, 0x4 + .incbin "baserom.nds", 0x918, 0x4 + .incbin "baserom.nds", 0x91C, 0x4 + .incbin "baserom.nds", 0x920, 0x4 + .incbin "baserom.nds", 0x924, 0x4 + .incbin "baserom.nds", 0x928, 0x4 + .incbin "baserom.nds", 0x92C, 0x4 + .incbin "baserom.nds", 0x930, 0x4 + .incbin "baserom.nds", 0x934, 0x4 + .incbin "baserom.nds", 0x938, 0x4 + .incbin "baserom.nds", 0x93C, 0x4 + .incbin "baserom.nds", 0x940, 0x4 + .incbin "baserom.nds", 0x944, 0x4 + .incbin "baserom.nds", 0x948, 0x4 + .incbin "baserom.nds", 0x94C, 0x8 + .incbin "baserom.nds", 0x954, 0x4 + .incbin "baserom.nds", 0x958, 0x4 + .incbin "baserom.nds", 0x95C, 0x4 + .incbin "baserom.nds", 0x960, 0x4 + .incbin "baserom.nds", 0x964, 0x4 + .incbin "baserom.nds", 0x968, 0x4 + .incbin "baserom.nds", 0x96C, 0x4 + .incbin "baserom.nds", 0x970, 0x4 + .incbin "baserom.nds", 0x974, 0x4 + .incbin "baserom.nds", 0x978, 0x8 + .incbin "baserom.nds", 0x980, 0x4 + .incbin "baserom.nds", 0x984, 0x4 + .incbin "baserom.nds", 0x988, 0x4 + .incbin "baserom.nds", 0x98C, 0x4 + .incbin "baserom.nds", 0x990, 0x4 + .incbin "baserom.nds", 0x994, 0x20 + .incbin "baserom.nds", 0x9B4, 0x28 + .incbin "baserom.nds", 0x9DC, 0x4 + .incbin "baserom.nds", 0x9E0, 0x4 + .incbin "baserom.nds", 0x9E4, 0x4 + .incbin "baserom.nds", 0x9E8, 0x4 + .incbin "baserom.nds", 0x9EC, 0x4 + .incbin "baserom.nds", 0x9F0, 0x4 + .incbin "baserom.nds", 0x9F4, 0x4 + .incbin "baserom.nds", 0x9F8, 0x4 + .incbin "baserom.nds", 0x9FC, 0x4 + .incbin "baserom.nds", 0xA00, 0x4 + .incbin "baserom.nds", 0xA04, 0x4 + .incbin "baserom.nds", 0xA08, 0x1C + .incbin "baserom.nds", 0xA24, 0x1C + .incbin "baserom.nds", 0xA40, 0x4 + .incbin "baserom.nds", 0xA44, 0x4 + .incbin "baserom.nds", 0xA48, 0x4 + .incbin "baserom.nds", 0xA4C, 0x4 + .incbin "baserom.nds", 0xA50, 0x4 + .incbin "baserom.nds", 0xA54, 0x4 + .incbin "baserom.nds", 0xA58, 0x4 + .incbin "baserom.nds", 0xA5C, 0x4 + .incbin "baserom.nds", 0xA60, 0x8 + .incbin "baserom.nds", 0xA68, 0x4 + .incbin "baserom.nds", 0xA6C, 0x8 + .incbin "baserom.nds", 0xA74, 0x10 + .incbin "baserom.nds", 0xA84, 0x4 + .incbin "baserom.nds", 0xA88, 0x4 + .incbin "baserom.nds", 0xA8C, 0x4 + .incbin "baserom.nds", 0xA90, 0x4 + .incbin "baserom.nds", 0xA94, 0x4 + .incbin "baserom.nds", 0xA98, 0x4 + .incbin "baserom.nds", 0xA9C, 0x24 + .incbin "baserom.nds", 0xAC0, 0x18 + .incbin "baserom.nds", 0xAD8, 0x4 + .incbin "baserom.nds", 0xADC, 0x4 + .incbin "baserom.nds", 0xAE0, 0x4 + .incbin "baserom.nds", 0xAE4, 0x4 + .incbin "baserom.nds", 0xAE8, 0x4 + .incbin "baserom.nds", 0xAEC, 0x4 + .incbin "baserom.nds", 0xAF0, 0x4 + .incbin "baserom.nds", 0xAF4, 0x4 + .incbin "baserom.nds", 0xAF8, 0x4 + .incbin "baserom.nds", 0xAFC, 0x4 + .incbin "baserom.nds", 0xB00, 0x4 + .incbin "baserom.nds", 0xB04, 0x4 + .incbin "baserom.nds", 0xB08, 0x4 + .incbin "baserom.nds", 0xB0C, 0x4 + .incbin "baserom.nds", 0xB10, 0x4 + .incbin "baserom.nds", 0xB14, 0x4 + .incbin "baserom.nds", 0xB18, 0xC + .incbin "baserom.nds", 0xB24, 0x8 + .incbin "baserom.nds", 0xB2C, 0x4 + .incbin "baserom.nds", 0xB30, 0x18 + .incbin "baserom.nds", 0xB48, 0x4 + .incbin "baserom.nds", 0xB4C, 0x4 + .incbin "baserom.nds", 0xB50, 0x4 + .incbin "baserom.nds", 0xB54, 0x4 + .incbin "baserom.nds", 0xB58, 0x4 + .incbin "baserom.nds", 0xB5C, 0x4 + .incbin "baserom.nds", 0xB60, 0x4 + .incbin "baserom.nds", 0xB64, 0x4 + .incbin "baserom.nds", 0xB68, 0x4 + .incbin "baserom.nds", 0xB6C, 0x4 + .incbin "baserom.nds", 0xB70, 0x4 + .incbin "baserom.nds", 0xB74, 0x4 + .incbin "baserom.nds", 0xB78, 0x4 + .incbin "baserom.nds", 0xB7C, 0x4 + .incbin "baserom.nds", 0xB80, 0x8 + .incbin "baserom.nds", 0xB88, 0x4 + .incbin "baserom.nds", 0xB8C, 0x4 + .incbin "baserom.nds", 0xB90, 0x4 + .incbin "baserom.nds", 0xB94, 0x4 + .incbin "baserom.nds", 0xB98, 0x4 + .incbin "baserom.nds", 0xB9C, 0x4 + .incbin "baserom.nds", 0xBA0, 0x4 + .incbin "baserom.nds", 0xBA4, 0x14 + .incbin "baserom.nds", 0xBB8, 0x14 + .incbin "baserom.nds", 0xBCC, 0x4 + .incbin "baserom.nds", 0xBD0, 0x4 + .incbin "baserom.nds", 0xBD4, 0x4 + .incbin "baserom.nds", 0xBD8, 0x4 + .incbin "baserom.nds", 0xBDC, 0x4 + .incbin "baserom.nds", 0xBE0, 0x4 + .incbin "baserom.nds", 0xBE4, 0x4 + .incbin "baserom.nds", 0xBE8, 0x4 + .incbin "baserom.nds", 0xBEC, 0x4 + .incbin "baserom.nds", 0xBF0, 0x28 + .incbin "baserom.nds", 0xC18, 0x28 + .incbin "baserom.nds", 0xC40, 0x8 + .incbin "baserom.nds", 0xC48, 0x4 + .incbin "baserom.nds", 0xC4C, 0x4 + .incbin "baserom.nds", 0xC50, 0x4 + .incbin "baserom.nds", 0xC54, 0x4 + .incbin "baserom.nds", 0xC58, 0x4 + .incbin "baserom.nds", 0xC5C, 0x4 + .incbin "baserom.nds", 0xC60, 0x4 + .incbin "baserom.nds", 0xC64, 0x4 + .incbin "baserom.nds", 0xC68, 0x4 + .incbin "baserom.nds", 0xC6C, 0x4 + .incbin "baserom.nds", 0xC70, 0x4 + .incbin "baserom.nds", 0xC74, 0x4 + .incbin "baserom.nds", 0xC78, 0x4 + .incbin "baserom.nds", 0xC7C, 0x4 + .incbin "baserom.nds", 0xC80, 0x4 + .incbin "baserom.nds", 0xC84, 0x8 + .incbin "baserom.nds", 0xC8C, 0x8 + .incbin "baserom.nds", 0xC94, 0x4 + .incbin "baserom.nds", 0xC98, 0x4 + .incbin "baserom.nds", 0xC9C, 0x4 + .incbin "baserom.nds", 0xCA0, 0x4 + .incbin "baserom.nds", 0xCA4, 0x4 + .incbin "baserom.nds", 0xCA8, 0x4 + .incbin "baserom.nds", 0xCAC, 0x4 + .incbin "baserom.nds", 0xCB0, 0x4 + .incbin "baserom.nds", 0xCB4, 0x4 + .incbin "baserom.nds", 0xCB8, 0x4 + .incbin "baserom.nds", 0xCBC, 0x4 + .incbin "baserom.nds", 0xCC0, 0x4 + .incbin "baserom.nds", 0xCC4, 0x4 + .incbin "baserom.nds", 0xCC8, 0x4 + .incbin "baserom.nds", 0xCCC, 0x4 + .incbin "baserom.nds", 0xCD0, 0x4 + .incbin "baserom.nds", 0xCD4, 0x4 + .incbin "baserom.nds", 0xCD8, 0x4 + .incbin "baserom.nds", 0xCDC, 0x4 + .incbin "baserom.nds", 0xCE0, 0x4 + .incbin "baserom.nds", 0xCE4, 0x4 + .incbin "baserom.nds", 0xCE8, 0x4 + .incbin "baserom.nds", 0xCEC, 0x4 + .incbin "baserom.nds", 0xCF0, 0x8 + .incbin "baserom.nds", 0xCF8, 0x8 + .incbin "baserom.nds", 0xD00, 0x4 + .incbin "baserom.nds", 0xD04, 0x4 + .incbin "baserom.nds", 0xD08, 0x4 + .incbin "baserom.nds", 0xD0C, 0x4 + .incbin "baserom.nds", 0xD10, 0x4 + .incbin "baserom.nds", 0xD14, 0x4 + .incbin "baserom.nds", 0xD18, 0x4 + .incbin "baserom.nds", 0xD1C, 0x4 + .incbin "baserom.nds", 0xD20, 0x4 + .incbin "baserom.nds", 0xD24, 0x8 + .incbin "baserom.nds", 0xD2C, 0x4 + .incbin "baserom.nds", 0xD30, 0x4 + .incbin "baserom.nds", 0xD34, 0x4 + .incbin "baserom.nds", 0xD38, 0x4 + .incbin "baserom.nds", 0xD3C, 0x4 + .incbin "baserom.nds", 0xD40, 0x4 + .incbin "baserom.nds", 0xD44, 0x4 + .incbin "baserom.nds", 0xD48, 0x4 + .incbin "baserom.nds", 0xD4C, 0x4 + .incbin "baserom.nds", 0xD50, 0x4 + .incbin "baserom.nds", 0xD54, 0x8 + .incbin "baserom.nds", 0xD5C, 0x8 + .incbin "baserom.nds", 0xD64, 0x4 + .incbin "baserom.nds", 0xD68, 0x4 + .incbin "baserom.nds", 0xD6C, 0x4 + .incbin "baserom.nds", 0xD70, 0x4 + .incbin "baserom.nds", 0xD74, 0x4 + .incbin "baserom.nds", 0xD78, 0x8 + .incbin "baserom.nds", 0xD80, 0x4 + .incbin "baserom.nds", 0xD84, 0x4 + .incbin "baserom.nds", 0xD88, 0x4 + .incbin "baserom.nds", 0xD8C, 0x4 + .incbin "baserom.nds", 0xD90, 0x4 + .incbin "baserom.nds", 0xD94, 0x4 + .incbin "baserom.nds", 0xD98, 0x10 + .incbin "baserom.nds", 0xDA8, 0x4 + .incbin "baserom.nds", 0xDAC, 0x4 + .incbin "baserom.nds", 0xDB0, 0x4 + .incbin "baserom.nds", 0xDB4, 0x4 + .incbin "baserom.nds", 0xDB8, 0x4 + .incbin "baserom.nds", 0xDBC, 0x4 + .incbin "baserom.nds", 0xDC0, 0xC + .incbin "baserom.nds", 0xDCC, 0x4 + .incbin "baserom.nds", 0xDD0, 0x4 + .incbin "baserom.nds", 0xDD4, 0x8 + .incbin "baserom.nds", 0xDDC, 0x8 + .incbin "baserom.nds", 0xDE4, 0x4 + .incbin "baserom.nds", 0xDE8, 0x4 + .incbin "baserom.nds", 0xDEC, 0x4 + .incbin "baserom.nds", 0xDF0, 0x4 + .incbin "baserom.nds", 0xDF4, 0x4 + .incbin "baserom.nds", 0xDF8, 0x4 + .incbin "baserom.nds", 0xDFC, 0x4 + .incbin "baserom.nds", 0xE00, 0x4 + .incbin "baserom.nds", 0xE04, 0x4 + .incbin "baserom.nds", 0xE08, 0x4 + .incbin "baserom.nds", 0xE0C, 0x4 + .incbin "baserom.nds", 0xE10, 0x4 + .incbin "baserom.nds", 0xE14, 0x4 + .incbin "baserom.nds", 0xE18, 0x4 + .incbin "baserom.nds", 0xE1C, 0x4 + .incbin "baserom.nds", 0xE20, 0x4 + .incbin "baserom.nds", 0xE24, 0x4 + .incbin "baserom.nds", 0xE28, 0x4 + .incbin "baserom.nds", 0xE2C, 0x4 + .incbin "baserom.nds", 0xE30, 0x4 + .incbin "baserom.nds", 0xE34, 0x4 + .incbin "baserom.nds", 0xE38, 0x4 + .incbin "baserom.nds", 0xE3C, 0x4 + .incbin "baserom.nds", 0xE40, 0x4 + .incbin "baserom.nds", 0xE44, 0x4 + .incbin "baserom.nds", 0xE48, 0x4 + .incbin "baserom.nds", 0xE4C, 0x4 + .incbin "baserom.nds", 0xE50, 0x4 + .incbin "baserom.nds", 0xE54, 0x4 + .incbin "baserom.nds", 0xE58, 0x4 + .incbin "baserom.nds", 0xE5C, 0x4 + .incbin "baserom.nds", 0xE60, 0x4 + .incbin "baserom.nds", 0xE64, 0x4 + .incbin "baserom.nds", 0xE68, 0x4 + .incbin "baserom.nds", 0xE6C, 0x4 + .incbin "baserom.nds", 0xE70, 0x4 + .incbin "baserom.nds", 0xE74, 0x4 + .incbin "baserom.nds", 0xE78, 0x4 + .incbin "baserom.nds", 0xE7C, 0x4 + .incbin "baserom.nds", 0xE80, 0x4 + .incbin "baserom.nds", 0xE84, 0x4 + .incbin "baserom.nds", 0xE88, 0x4 + .incbin "baserom.nds", 0xE8C, 0x4 + .incbin "baserom.nds", 0xE90, 0x4 + .incbin "baserom.nds", 0xE94, 0x4 + .incbin "baserom.nds", 0xE98, 0x8 + .incbin "baserom.nds", 0xEA0, 0x4 + .incbin "baserom.nds", 0xEA4, 0x4 + .incbin "baserom.nds", 0xEA8, 0x8 + .incbin "baserom.nds", 0xEB0, 0x8 + .incbin "baserom.nds", 0xEB8, 0x4 + .incbin "baserom.nds", 0xEBC, 0x4 + .incbin "baserom.nds", 0xEC0, 0x4 + .incbin "baserom.nds", 0xEC4, 0x4 + .incbin "baserom.nds", 0xEC8, 0x4 + .incbin "baserom.nds", 0xECC, 0x4 + .incbin "baserom.nds", 0xED0, 0x4 + .incbin "baserom.nds", 0xED4, 0x4 + .incbin "baserom.nds", 0xED8, 0x4 + .incbin "baserom.nds", 0xEDC, 0x4 + .incbin "baserom.nds", 0xEE0, 0x4 + .incbin "baserom.nds", 0xEE4, 0x4 + .incbin "baserom.nds", 0xEE8, 0x4 + .incbin "baserom.nds", 0xEEC, 0x4 + .incbin "baserom.nds", 0xEF0, 0x4 + .incbin "baserom.nds", 0xEF4, 0x4 + .incbin "baserom.nds", 0xEF8, 0x4 + .incbin "baserom.nds", 0xEFC, 0x4 + .incbin "baserom.nds", 0xF00, 0x4 + .incbin "baserom.nds", 0xF04, 0x4 + .incbin "baserom.nds", 0xF08, 0x4 + .incbin "baserom.nds", 0xF0C, 0x4 + .incbin "baserom.nds", 0xF10, 0x4 + .incbin "baserom.nds", 0xF14, 0x4 + .incbin "baserom.nds", 0xF18, 0x4 + .incbin "baserom.nds", 0xF1C, 0x4 + .incbin "baserom.nds", 0xF20, 0x4 + .incbin "baserom.nds", 0xF24, 0x4 + .incbin "baserom.nds", 0xF28, 0x8 + .incbin "baserom.nds", 0xF30, 0x4 + .incbin "baserom.nds", 0xF34, 0x4 + .incbin "baserom.nds", 0xF38, 0x4 + .incbin "baserom.nds", 0xF3C, 0x4 + .incbin "baserom.nds", 0xF40, 0x4 + .incbin "baserom.nds", 0xF44, 0x4 + .incbin "baserom.nds", 0xF48, 0x4 + .incbin "baserom.nds", 0xF4C, 0x4 + .incbin "baserom.nds", 0xF50, 0x8 + .incbin "baserom.nds", 0xF58, 0xC + .incbin "baserom.nds", 0xF64, 0x4 + .incbin "baserom.nds", 0xF68, 0x4 + .incbin "baserom.nds", 0xF6C, 0x4 + .incbin "baserom.nds", 0xF70, 0x4 + .incbin "baserom.nds", 0xF74, 0x4 + .incbin "baserom.nds", 0xF78, 0x4 + .incbin "baserom.nds", 0xF7C, 0x8 + .incbin "baserom.nds", 0xF84, 0x4 + .incbin "baserom.nds", 0xF88, 0x4 + .incbin "baserom.nds", 0xF8C, 0x8 + .incbin "baserom.nds", 0xF94, 0x4 + .incbin "baserom.nds", 0xF98, 0x4 + .incbin "baserom.nds", 0xF9C, 0x4 + .incbin "baserom.nds", 0xFA0, 0x4 + .incbin "baserom.nds", 0xFA4, 0x8 + .incbin "baserom.nds", 0xFAC, 0x4 + .incbin "baserom.nds", 0xFB0, 0x4 + .incbin "baserom.nds", 0xFB4, 0x4 + .incbin "baserom.nds", 0xFB8, 0x4 + .incbin "baserom.nds", 0xFBC, 0x4 + .incbin "baserom.nds", 0xFC0, 0x4 + .incbin "baserom.nds", 0xFC4, 0x4 + .incbin "baserom.nds", 0xFC8, 0x4 + .incbin "baserom.nds", 0xFCC, 0x4 + .incbin "baserom.nds", 0xFD0, 0x4 + .incbin "baserom.nds", 0xFD4, 0x4 + .incbin "baserom.nds", 0xFD8, 0x4 + .incbin "baserom.nds", 0xFDC, 0x4 + .incbin "baserom.nds", 0xFE0, 0x4 + .incbin "baserom.nds", 0xFE4, 0x4 + .incbin "baserom.nds", 0xFE8, 0x14 + .incbin "baserom.nds", 0xFFC, 0x14 + .incbin "baserom.nds", 0x1010, 0x4 + .incbin "baserom.nds", 0x1014, 0x4 + .incbin "baserom.nds", 0x1018, 0x4 + .incbin "baserom.nds", 0x101C, 0x4 + .incbin "baserom.nds", 0x1020, 0x4 + .incbin "baserom.nds", 0x1024, 0x4 + .incbin "baserom.nds", 0x1028, 0x4 + .incbin "baserom.nds", 0x102C, 0x4 + .incbin "baserom.nds", 0x1030, 0x4 + .incbin "baserom.nds", 0x1034, 0x4 + .incbin "baserom.nds", 0x1038, 0x4 + .incbin "baserom.nds", 0x103C, 0x4 + .incbin "baserom.nds", 0x1040, 0x4 + .incbin "baserom.nds", 0x1044, 0x4 + .incbin "baserom.nds", 0x1048, 0x4 + .incbin "baserom.nds", 0x104C, 0x4 + .incbin "baserom.nds", 0x1050, 0x4 + .incbin "baserom.nds", 0x1054, 0xC + .incbin "baserom.nds", 0x1060, 0x4 + .incbin "baserom.nds", 0x1064, 0x4 + .incbin "baserom.nds", 0x1068, 0x4 + .incbin "baserom.nds", 0x106C, 0x4 + .incbin "baserom.nds", 0x1070, 0x4 + .incbin "baserom.nds", 0x1074, 0x4 + .incbin "baserom.nds", 0x1078, 0x4 + .incbin "baserom.nds", 0x107C, 0x4 + .incbin "baserom.nds", 0x1080, 0x4 + .incbin "baserom.nds", 0x1084, 0x4 + .incbin "baserom.nds", 0x1088, 0x4 + .incbin "baserom.nds", 0x108C, 0x4 + .incbin "baserom.nds", 0x1090, 0x4 + .incbin "baserom.nds", 0x1094, 0x4 + .incbin "baserom.nds", 0x1098, 0x4 + .incbin "baserom.nds", 0x109C, 0x4 + .incbin "baserom.nds", 0x10A0, 0x4 + .incbin "baserom.nds", 0x10A4, 0x4 + .incbin "baserom.nds", 0x10A8, 0x4 + .incbin "baserom.nds", 0x10AC, 0x4 + .incbin "baserom.nds", 0x10B0, 0x4 + .incbin "baserom.nds", 0x10B4, 0x4 + .incbin "baserom.nds", 0x10B8, 0x4 + .incbin "baserom.nds", 0x10BC, 0x4 + .incbin "baserom.nds", 0x10C0, 0x4 + .incbin "baserom.nds", 0x10C4, 0x4 + .incbin "baserom.nds", 0x10C8, 0x4 + .incbin "baserom.nds", 0x10CC, 0x4 + .incbin "baserom.nds", 0x10D0, 0x4 + .incbin "baserom.nds", 0x10D4, 0x4 + .incbin "baserom.nds", 0x10D8, 0x4 + .incbin "baserom.nds", 0x10DC, 0x4 + .incbin "baserom.nds", 0x10E0, 0x4 + .incbin "baserom.nds", 0x10E4, 0x4 + .incbin "baserom.nds", 0x10E8, 0x4 + .incbin "baserom.nds", 0x10EC, 0x4 + .incbin "baserom.nds", 0x10F0, 0x4 + .incbin "baserom.nds", 0x10F4, 0xC + .incbin "baserom.nds", 0x1100, 0x10 + .incbin "baserom.nds", 0x1110, 0x4 + .incbin "baserom.nds", 0x1114, 0xC + .incbin "baserom.nds", 0x1120, 0x14 + .incbin "baserom.nds", 0x1134, 0x4 + .incbin "baserom.nds", 0x1138, 0x8 + .incbin "baserom.nds", 0x1140, 0x4 + .incbin "baserom.nds", 0x1144, 0x4 + .incbin "baserom.nds", 0x1148, 0x4 + .incbin "baserom.nds", 0x114C, 0xC + .incbin "baserom.nds", 0x1158, 0x4 + .incbin "baserom.nds", 0x115C, 0x4 + .incbin "baserom.nds", 0x1160, 0x4 + .incbin "baserom.nds", 0x1164, 0x4 + .incbin "baserom.nds", 0x1168, 0x4 + .incbin "baserom.nds", 0x116C, 0x4 + .incbin "baserom.nds", 0x1170, 0x4 + .incbin "baserom.nds", 0x1174, 0x4 + .incbin "baserom.nds", 0x1178, 0x4 + .incbin "baserom.nds", 0x117C, 0x4 + .incbin "baserom.nds", 0x1180, 0x4 + .incbin "baserom.nds", 0x1184, 0x4 + .incbin "baserom.nds", 0x1188, 0x8 + .incbin "baserom.nds", 0x1190, 0x4 + .incbin "baserom.nds", 0x1194, 0x4 + .incbin "baserom.nds", 0x1198, 0x4 + .incbin "baserom.nds", 0x119C, 0x4 + .incbin "baserom.nds", 0x11A0, 0x4 + .incbin "baserom.nds", 0x11A4, 0x4 + .incbin "baserom.nds", 0x11A8, 0x4 + .incbin "baserom.nds", 0x11AC, 0x8 + .incbin "baserom.nds", 0x11B4, 0x4 + .incbin "baserom.nds", 0x11B8, 0x4 + .incbin "baserom.nds", 0x11BC, 0x4 + .incbin "baserom.nds", 0x11C0, 0x4 + .incbin "baserom.nds", 0x11C4, 0x4 + .incbin "baserom.nds", 0x11C8, 0x10 + .incbin "baserom.nds", 0x11D8, 0x4 + .incbin "baserom.nds", 0x11DC, 0x4 + .incbin "baserom.nds", 0x11E0, 0x10 + .incbin "baserom.nds", 0x11F0, 0xC + .incbin "baserom.nds", 0x11FC, 0x4 + .incbin "baserom.nds", 0x1200, 0x4 + .incbin "baserom.nds", 0x1204, 0x4 + .incbin "baserom.nds", 0x1208, 0x4 + .incbin "baserom.nds", 0x120C, 0x4 + .incbin "baserom.nds", 0x1210, 0x8 + .incbin "baserom.nds", 0x1218, 0x4 + .incbin "baserom.nds", 0x121C, 0x4 + .incbin "baserom.nds", 0x1220, 0x4 + .incbin "baserom.nds", 0x1224, 0x4 + .incbin "baserom.nds", 0x1228, 0x4 + .incbin "baserom.nds", 0x122C, 0x8 + .incbin "baserom.nds", 0x1234, 0x4 + .incbin "baserom.nds", 0x1238, 0x4 + .incbin "baserom.nds", 0x123C, 0x4 + .incbin "baserom.nds", 0x1240, 0x4 + .incbin "baserom.nds", 0x1244, 0x4 + .incbin "baserom.nds", 0x1248, 0x4 + .incbin "baserom.nds", 0x124C, 0x4 + .incbin "baserom.nds", 0x1250, 0x4 + .incbin "baserom.nds", 0x1254, 0x4 + .incbin "baserom.nds", 0x1258, 0x8 + .incbin "baserom.nds", 0x1260, 0x8 + .incbin "baserom.nds", 0x1268, 0x4 + .incbin "baserom.nds", 0x126C, 0x4 + .incbin "baserom.nds", 0x1270, 0x4 + .incbin "baserom.nds", 0x1274, 0x4 + .incbin "baserom.nds", 0x1278, 0x4 + .incbin "baserom.nds", 0x127C, 0x4 + .incbin "baserom.nds", 0x1280, 0x4 + .incbin "baserom.nds", 0x1284, 0x4 + .incbin "baserom.nds", 0x1288, 0x4 + .incbin "baserom.nds", 0x128C, 0x4 + .incbin "baserom.nds", 0x1290, 0x4 + .incbin "baserom.nds", 0x1294, 0x4 + .incbin "baserom.nds", 0x1298, 0x4 + .incbin "baserom.nds", 0x129C, 0x4 + .incbin "baserom.nds", 0x12A0, 0x4 + .incbin "baserom.nds", 0x12A4, 0x4 + .incbin "baserom.nds", 0x12A8, 0x4 + .incbin "baserom.nds", 0x12AC, 0x4 + .incbin "baserom.nds", 0x12B0, 0x4 + .incbin "baserom.nds", 0x12B4, 0x4 + .incbin "baserom.nds", 0x12B8, 0x4 + .incbin "baserom.nds", 0x12BC, 0x4 + .incbin "baserom.nds", 0x12C0, 0x4 + .incbin "baserom.nds", 0x12C4, 0x4 + .incbin "baserom.nds", 0x12C8, 0x4 + .incbin "baserom.nds", 0x12CC, 0x4 + .incbin "baserom.nds", 0x12D0, 0x4 + .incbin "baserom.nds", 0x12D4, 0x4 + .incbin "baserom.nds", 0x12D8, 0x4 + .incbin "baserom.nds", 0x12DC, 0x4 + .incbin "baserom.nds", 0x12E0, 0x4 + .incbin "baserom.nds", 0x12E4, 0x4 + .incbin "baserom.nds", 0x12E8, 0x4 + .incbin "baserom.nds", 0x12EC, 0x4 + .incbin "baserom.nds", 0x12F0, 0x44 + .incbin "baserom.nds", 0x1334, 0x4 + .incbin "baserom.nds", 0x1338, 0x4 + .incbin "baserom.nds", 0x133C, 0x4 + .incbin "baserom.nds", 0x1340, 0x4 + .incbin "baserom.nds", 0x1344, 0x4 + .incbin "baserom.nds", 0x1348, 0x4 + .incbin "baserom.nds", 0x134C, 0x4 + .incbin "baserom.nds", 0x1350, 0x4 + .incbin "baserom.nds", 0x1354, 0x4 + .incbin "baserom.nds", 0x1358, 0x4 + .incbin "baserom.nds", 0x135C, 0x4 + .incbin "baserom.nds", 0x1360, 0x4 + .incbin "baserom.nds", 0x1364, 0x4 + .incbin "baserom.nds", 0x1368, 0x4 + .incbin "baserom.nds", 0x136C, 0x4 + .incbin "baserom.nds", 0x1370, 0x4 + .incbin "baserom.nds", 0x1374, 0x4 + .incbin "baserom.nds", 0x1378, 0x4 + .incbin "baserom.nds", 0x137C, 0x4 + .incbin "baserom.nds", 0x1380, 0x4 + .incbin "baserom.nds", 0x1384, 0x4 + .incbin "baserom.nds", 0x1388, 0x4 + .incbin "baserom.nds", 0x138C, 0x4 + .incbin "baserom.nds", 0x1390, 0x4 + .incbin "baserom.nds", 0x1394, 0x8 + .incbin "baserom.nds", 0x139C, 0x4 + .incbin "baserom.nds", 0x13A0, 0x4 + .incbin "baserom.nds", 0x13A4, 0x4 + .incbin "baserom.nds", 0x13A8, 0x4 + .incbin "baserom.nds", 0x13AC, 0x4 + .incbin "baserom.nds", 0x13B0, 0x4 + .incbin "baserom.nds", 0x13B4, 0x4 + .incbin "baserom.nds", 0x13B8, 0x4 + .incbin "baserom.nds", 0x13BC, 0x4 + .incbin "baserom.nds", 0x13C0, 0x8 + .incbin "baserom.nds", 0x13C8, 0x4 + .incbin "baserom.nds", 0x13CC, 0x4 + .incbin "baserom.nds", 0x13D0, 0x4 + .incbin "baserom.nds", 0x13D4, 0x4 + .incbin "baserom.nds", 0x13D8, 0x4 + .incbin "baserom.nds", 0x13DC, 0x20 + .incbin "baserom.nds", 0x13FC, 0x28 + .incbin "baserom.nds", 0x1424, 0x4 + .incbin "baserom.nds", 0x1428, 0x4 + .incbin "baserom.nds", 0x142C, 0x4 + .incbin "baserom.nds", 0x1430, 0x4 + .incbin "baserom.nds", 0x1434, 0x4 + .incbin "baserom.nds", 0x1438, 0x4 + .incbin "baserom.nds", 0x143C, 0x4 + .incbin "baserom.nds", 0x1440, 0x4 + .incbin "baserom.nds", 0x1444, 0x4 + .incbin "baserom.nds", 0x1448, 0x4 + .incbin "baserom.nds", 0x144C, 0x4 + .incbin "baserom.nds", 0x1450, 0x1C + .incbin "baserom.nds", 0x146C, 0x1C + .incbin "baserom.nds", 0x1488, 0x4 + .incbin "baserom.nds", 0x148C, 0x4 + .incbin "baserom.nds", 0x1490, 0x4 + .incbin "baserom.nds", 0x1494, 0x4 + .incbin "baserom.nds", 0x1498, 0x4 + .incbin "baserom.nds", 0x149C, 0x4 + .incbin "baserom.nds", 0x14A0, 0x4 + .incbin "baserom.nds", 0x14A4, 0x4 + .incbin "baserom.nds", 0x14A8, 0x8 + .incbin "baserom.nds", 0x14B0, 0x4 + .incbin "baserom.nds", 0x14B4, 0x8 + .incbin "baserom.nds", 0x14BC, 0x10 + .incbin "baserom.nds", 0x14CC, 0x4 + .incbin "baserom.nds", 0x14D0, 0x4 + .incbin "baserom.nds", 0x14D4, 0x4 + .incbin "baserom.nds", 0x14D8, 0x4 + .incbin "baserom.nds", 0x14DC, 0x4 + .incbin "baserom.nds", 0x14E0, 0x4 + .incbin "baserom.nds", 0x14E4, 0x24 + .incbin "baserom.nds", 0x1508, 0x18 + .incbin "baserom.nds", 0x1520, 0x4 + .incbin "baserom.nds", 0x1524, 0x4 + .incbin "baserom.nds", 0x1528, 0x4 + .incbin "baserom.nds", 0x152C, 0x4 + .incbin "baserom.nds", 0x1530, 0x4 + .incbin "baserom.nds", 0x1534, 0x4 + .incbin "baserom.nds", 0x1538, 0x4 + .incbin "baserom.nds", 0x153C, 0x4 + .incbin "baserom.nds", 0x1540, 0x4 + .incbin "baserom.nds", 0x1544, 0x4 + .incbin "baserom.nds", 0x1548, 0x4 + .incbin "baserom.nds", 0x154C, 0x4 + .incbin "baserom.nds", 0x1550, 0x4 + .incbin "baserom.nds", 0x1554, 0x4 + .incbin "baserom.nds", 0x1558, 0x4 + .incbin "baserom.nds", 0x155C, 0x4 + .incbin "baserom.nds", 0x1560, 0xC + .incbin "baserom.nds", 0x156C, 0x8 + .incbin "baserom.nds", 0x1574, 0x4 + .incbin "baserom.nds", 0x1578, 0x18 + .incbin "baserom.nds", 0x1590, 0x4 + .incbin "baserom.nds", 0x1594, 0x4 + .incbin "baserom.nds", 0x1598, 0x4 + .incbin "baserom.nds", 0x159C, 0x4 + .incbin "baserom.nds", 0x15A0, 0x4 + .incbin "baserom.nds", 0x15A4, 0x4 + .incbin "baserom.nds", 0x15A8, 0x4 + .incbin "baserom.nds", 0x15AC, 0x4 + .incbin "baserom.nds", 0x15B0, 0x4 + .incbin "baserom.nds", 0x15B4, 0x4 + .incbin "baserom.nds", 0x15B8, 0x4 + .incbin "baserom.nds", 0x15BC, 0x4 + .incbin "baserom.nds", 0x15C0, 0x4 + .incbin "baserom.nds", 0x15C4, 0x4 + .incbin "baserom.nds", 0x15C8, 0x8 + .incbin "baserom.nds", 0x15D0, 0x4 + .incbin "baserom.nds", 0x15D4, 0x4 + .incbin "baserom.nds", 0x15D8, 0x4 + .incbin "baserom.nds", 0x15DC, 0x4 + .incbin "baserom.nds", 0x15E0, 0x4 + .incbin "baserom.nds", 0x15E4, 0x4 + .incbin "baserom.nds", 0x15E8, 0x4 + .incbin "baserom.nds", 0x15EC, 0x14 + .incbin "baserom.nds", 0x1600, 0x14 + .incbin "baserom.nds", 0x1614, 0x4 + .incbin "baserom.nds", 0x1618, 0x4 + .incbin "baserom.nds", 0x161C, 0x4 + .incbin "baserom.nds", 0x1620, 0x4 + .incbin "baserom.nds", 0x1624, 0x4 + .incbin "baserom.nds", 0x1628, 0x4 + .incbin "baserom.nds", 0x162C, 0x4 + .incbin "baserom.nds", 0x1630, 0x4 + .incbin "baserom.nds", 0x1634, 0x4 + .incbin "baserom.nds", 0x1638, 0x28 + .incbin "baserom.nds", 0x1660, 0x28 + .incbin "baserom.nds", 0x1688, 0x8 + .incbin "baserom.nds", 0x1690, 0x4 + .incbin "baserom.nds", 0x1694, 0x4 + .incbin "baserom.nds", 0x1698, 0x4 + .incbin "baserom.nds", 0x169C, 0x4 + .incbin "baserom.nds", 0x16A0, 0x4 + .incbin "baserom.nds", 0x16A4, 0x4 + .incbin "baserom.nds", 0x16A8, 0x4 + .incbin "baserom.nds", 0x16AC, 0x4 + .incbin "baserom.nds", 0x16B0, 0x4 + .incbin "baserom.nds", 0x16B4, 0x4 + .incbin "baserom.nds", 0x16B8, 0x4 + .incbin "baserom.nds", 0x16BC, 0x4 + .incbin "baserom.nds", 0x16C0, 0x4 + .incbin "baserom.nds", 0x16C4, 0x4 + .incbin "baserom.nds", 0x16C8, 0x4 + .incbin "baserom.nds", 0x16CC, 0x8 + .incbin "baserom.nds", 0x16D4, 0x8 + .incbin "baserom.nds", 0x16DC, 0x4 + .incbin "baserom.nds", 0x16E0, 0x4 + .incbin "baserom.nds", 0x16E4, 0x4 + .incbin "baserom.nds", 0x16E8, 0x4 + .incbin "baserom.nds", 0x16EC, 0x4 + .incbin "baserom.nds", 0x16F0, 0x4 + .incbin "baserom.nds", 0x16F4, 0x4 + .incbin "baserom.nds", 0x16F8, 0x4 + .incbin "baserom.nds", 0x16FC, 0x4 + .incbin "baserom.nds", 0x1700, 0x4 + .incbin "baserom.nds", 0x1704, 0x4 + .incbin "baserom.nds", 0x1708, 0x4 + .incbin "baserom.nds", 0x170C, 0x4 + .incbin "baserom.nds", 0x1710, 0x4 + .incbin "baserom.nds", 0x1714, 0x4 + .incbin "baserom.nds", 0x1718, 0x4 + .incbin "baserom.nds", 0x171C, 0x4 + .incbin "baserom.nds", 0x1720, 0x4 + .incbin "baserom.nds", 0x1724, 0x4 + .incbin "baserom.nds", 0x1728, 0x4 + .incbin "baserom.nds", 0x172C, 0x4 + .incbin "baserom.nds", 0x1730, 0x4 + .incbin "baserom.nds", 0x1734, 0x4 + .incbin "baserom.nds", 0x1738, 0x8 + .incbin "baserom.nds", 0x1740, 0x8 + .incbin "baserom.nds", 0x1748, 0x4 + .incbin "baserom.nds", 0x174C, 0x4 + .incbin "baserom.nds", 0x1750, 0x4 + .incbin "baserom.nds", 0x1754, 0x4 + .incbin "baserom.nds", 0x1758, 0x4 + .incbin "baserom.nds", 0x175C, 0x4 + .incbin "baserom.nds", 0x1760, 0x4 + .incbin "baserom.nds", 0x1764, 0x4 + .incbin "baserom.nds", 0x1768, 0x4 + .incbin "baserom.nds", 0x176C, 0x8 + .incbin "baserom.nds", 0x1774, 0x4 + .incbin "baserom.nds", 0x1778, 0x4 + .incbin "baserom.nds", 0x177C, 0x4 + .incbin "baserom.nds", 0x1780, 0x4 + .incbin "baserom.nds", 0x1784, 0x4 + .incbin "baserom.nds", 0x1788, 0x4 + .incbin "baserom.nds", 0x178C, 0x4 + .incbin "baserom.nds", 0x1790, 0x4 + .incbin "baserom.nds", 0x1794, 0x4 + .incbin "baserom.nds", 0x1798, 0x4 + .incbin "baserom.nds", 0x179C, 0x8 + .incbin "baserom.nds", 0x17A4, 0x8 + .incbin "baserom.nds", 0x17AC, 0x4 + .incbin "baserom.nds", 0x17B0, 0x4 + .incbin "baserom.nds", 0x17B4, 0x4 + .incbin "baserom.nds", 0x17B8, 0x4 + .incbin "baserom.nds", 0x17BC, 0x4 + .incbin "baserom.nds", 0x17C0, 0x8 + .incbin "baserom.nds", 0x17C8, 0x4 + .incbin "baserom.nds", 0x17CC, 0x4 + .incbin "baserom.nds", 0x17D0, 0x4 + .incbin "baserom.nds", 0x17D4, 0x4 + .incbin "baserom.nds", 0x17D8, 0x4 + .incbin "baserom.nds", 0x17DC, 0x4 + .incbin "baserom.nds", 0x17E0, 0x10 + .incbin "baserom.nds", 0x17F0, 0x4 + .incbin "baserom.nds", 0x17F4, 0x4 + .incbin "baserom.nds", 0x17F8, 0x4 + .incbin "baserom.nds", 0x17FC, 0x4 + .incbin "baserom.nds", 0x1800, 0x4 + .incbin "baserom.nds", 0x1804, 0x4 + .incbin "baserom.nds", 0x1808, 0xC + .incbin "baserom.nds", 0x1814, 0x4 + .incbin "baserom.nds", 0x1818, 0x4 + .incbin "baserom.nds", 0x181C, 0x8 + .incbin "baserom.nds", 0x1824, 0x8 + .incbin "baserom.nds", 0x182C, 0x4 + .incbin "baserom.nds", 0x1830, 0x4 + .incbin "baserom.nds", 0x1834, 0x4 + .incbin "baserom.nds", 0x1838, 0x4 + .incbin "baserom.nds", 0x183C, 0x4 + .incbin "baserom.nds", 0x1840, 0x4 + .incbin "baserom.nds", 0x1844, 0x4 + .incbin "baserom.nds", 0x1848, 0x4 + .incbin "baserom.nds", 0x184C, 0x4 + .incbin "baserom.nds", 0x1850, 0x4 + .incbin "baserom.nds", 0x1854, 0x4 + .incbin "baserom.nds", 0x1858, 0x4 + .incbin "baserom.nds", 0x185C, 0x4 + .incbin "baserom.nds", 0x1860, 0x4 + .incbin "baserom.nds", 0x1864, 0x4 + .incbin "baserom.nds", 0x1868, 0x4 + .incbin "baserom.nds", 0x186C, 0x4 + .incbin "baserom.nds", 0x1870, 0x4 + .incbin "baserom.nds", 0x1874, 0x4 + .incbin "baserom.nds", 0x1878, 0x4 + .incbin "baserom.nds", 0x187C, 0x4 + .incbin "baserom.nds", 0x1880, 0x4 + .incbin "baserom.nds", 0x1884, 0x4 + .incbin "baserom.nds", 0x1888, 0x4 + .incbin "baserom.nds", 0x188C, 0x4 + .incbin "baserom.nds", 0x1890, 0x4 + .incbin "baserom.nds", 0x1894, 0x4 + .incbin "baserom.nds", 0x1898, 0x4 + .incbin "baserom.nds", 0x189C, 0x4 + .incbin "baserom.nds", 0x18A0, 0x4 + .incbin "baserom.nds", 0x18A4, 0x4 + .incbin "baserom.nds", 0x18A8, 0x4 + .incbin "baserom.nds", 0x18AC, 0x4 + .incbin "baserom.nds", 0x18B0, 0x4 + .incbin "baserom.nds", 0x18B4, 0x4 + .incbin "baserom.nds", 0x18B8, 0x4 + .incbin "baserom.nds", 0x18BC, 0x4 + .incbin "baserom.nds", 0x18C0, 0x4 + .incbin "baserom.nds", 0x18C4, 0x4 + .incbin "baserom.nds", 0x18C8, 0x4 + .incbin "baserom.nds", 0x18CC, 0x4 + .incbin "baserom.nds", 0x18D0, 0x4 + .incbin "baserom.nds", 0x18D4, 0x4 + .incbin "baserom.nds", 0x18D8, 0x4 + .incbin "baserom.nds", 0x18DC, 0x4 + .incbin "baserom.nds", 0x18E0, 0x8 + .incbin "baserom.nds", 0x18E8, 0x4 + .incbin "baserom.nds", 0x18EC, 0x4 + .incbin "baserom.nds", 0x18F0, 0x8 + .incbin "baserom.nds", 0x18F8, 0x8 + .incbin "baserom.nds", 0x1900, 0x4 + .incbin "baserom.nds", 0x1904, 0x4 + .incbin "baserom.nds", 0x1908, 0x4 + .incbin "baserom.nds", 0x190C, 0x4 + .incbin "baserom.nds", 0x1910, 0x4 + .incbin "baserom.nds", 0x1914, 0x4 + .incbin "baserom.nds", 0x1918, 0x4 + .incbin "baserom.nds", 0x191C, 0x4 + .incbin "baserom.nds", 0x1920, 0x4 + .incbin "baserom.nds", 0x1924, 0x4 + .incbin "baserom.nds", 0x1928, 0x4 + .incbin "baserom.nds", 0x192C, 0x4 + .incbin "baserom.nds", 0x1930, 0x4 + .incbin "baserom.nds", 0x1934, 0x4 + .incbin "baserom.nds", 0x1938, 0x4 + .incbin "baserom.nds", 0x193C, 0x4 + .incbin "baserom.nds", 0x1940, 0x4 + .incbin "baserom.nds", 0x1944, 0x4 + .incbin "baserom.nds", 0x1948, 0x4 + .incbin "baserom.nds", 0x194C, 0x4 + .incbin "baserom.nds", 0x1950, 0x4 + .incbin "baserom.nds", 0x1954, 0x4 + .incbin "baserom.nds", 0x1958, 0x4 + .incbin "baserom.nds", 0x195C, 0x4 + .incbin "baserom.nds", 0x1960, 0x4 + .incbin "baserom.nds", 0x1964, 0x4 + .incbin "baserom.nds", 0x1968, 0x4 + .incbin "baserom.nds", 0x196C, 0x4 + .incbin "baserom.nds", 0x1970, 0x8 + .incbin "baserom.nds", 0x1978, 0x4 + .incbin "baserom.nds", 0x197C, 0x4 + .incbin "baserom.nds", 0x1980, 0x4 + .incbin "baserom.nds", 0x1984, 0x4 + .incbin "baserom.nds", 0x1988, 0x4 + .incbin "baserom.nds", 0x198C, 0x4 + .incbin "baserom.nds", 0x1990, 0x4 + .incbin "baserom.nds", 0x1994, 0x4 + .incbin "baserom.nds", 0x1998, 0x8 + .incbin "baserom.nds", 0x19A0, 0xC + .incbin "baserom.nds", 0x19AC, 0x4 + .incbin "baserom.nds", 0x19B0, 0x4 + .incbin "baserom.nds", 0x19B4, 0x4 + .incbin "baserom.nds", 0x19B8, 0x4 + .incbin "baserom.nds", 0x19BC, 0x4 + .incbin "baserom.nds", 0x19C0, 0x4 + .incbin "baserom.nds", 0x19C4, 0x8 + .incbin "baserom.nds", 0x19CC, 0x4 + .incbin "baserom.nds", 0x19D0, 0x4 + .incbin "baserom.nds", 0x19D4, 0x8 + .incbin "baserom.nds", 0x19DC, 0x4 + .incbin "baserom.nds", 0x19E0, 0x4 + .incbin "baserom.nds", 0x19E4, 0x4 + .incbin "baserom.nds", 0x19E8, 0x4 + .incbin "baserom.nds", 0x19EC, 0x8 + .incbin "baserom.nds", 0x19F4, 0x4 + .incbin "baserom.nds", 0x19F8, 0x4 + .incbin "baserom.nds", 0x19FC, 0x4 + .incbin "baserom.nds", 0x1A00, 0x4 + .incbin "baserom.nds", 0x1A04, 0x4 + .incbin "baserom.nds", 0x1A08, 0x4 + .incbin "baserom.nds", 0x1A0C, 0x4 + .incbin "baserom.nds", 0x1A10, 0x4 + .incbin "baserom.nds", 0x1A14, 0x4 + .incbin "baserom.nds", 0x1A18, 0x4 + .incbin "baserom.nds", 0x1A1C, 0x4 + .incbin "baserom.nds", 0x1A20, 0x4 + .incbin "baserom.nds", 0x1A24, 0x4 + .incbin "baserom.nds", 0x1A28, 0x4 + .incbin "baserom.nds", 0x1A2C, 0x4 + .incbin "baserom.nds", 0x1A30, 0x14 + .incbin "baserom.nds", 0x1A44, 0x14 + .incbin "baserom.nds", 0x1A58, 0x4 + .incbin "baserom.nds", 0x1A5C, 0x4 + .incbin "baserom.nds", 0x1A60, 0x4 + .incbin "baserom.nds", 0x1A64, 0x4 + .incbin "baserom.nds", 0x1A68, 0x4 + .incbin "baserom.nds", 0x1A6C, 0x4 + .incbin "baserom.nds", 0x1A70, 0x4 + .incbin "baserom.nds", 0x1A74, 0x4 + .incbin "baserom.nds", 0x1A78, 0x4 + .incbin "baserom.nds", 0x1A7C, 0x4 + .incbin "baserom.nds", 0x1A80, 0x4 + .incbin "baserom.nds", 0x1A84, 0x4 + .incbin "baserom.nds", 0x1A88, 0x4 + .incbin "baserom.nds", 0x1A8C, 0x4 + .incbin "baserom.nds", 0x1A90, 0x4 + .incbin "baserom.nds", 0x1A94, 0x4 + .incbin "baserom.nds", 0x1A98, 0x4 + .incbin "baserom.nds", 0x1A9C, 0xC + .incbin "baserom.nds", 0x1AA8, 0x4 + .incbin "baserom.nds", 0x1AAC, 0x4 + .incbin "baserom.nds", 0x1AB0, 0x4 + .incbin "baserom.nds", 0x1AB4, 0x4 + .incbin "baserom.nds", 0x1AB8, 0x4 + .incbin "baserom.nds", 0x1ABC, 0x4 + .incbin "baserom.nds", 0x1AC0, 0x4 + .incbin "baserom.nds", 0x1AC4, 0x4 + .incbin "baserom.nds", 0x1AC8, 0x4 + .incbin "baserom.nds", 0x1ACC, 0x4 + .incbin "baserom.nds", 0x1AD0, 0x4 + .incbin "baserom.nds", 0x1AD4, 0x4 + .incbin "baserom.nds", 0x1AD8, 0x4 + .incbin "baserom.nds", 0x1ADC, 0x4 + .incbin "baserom.nds", 0x1AE0, 0x4 + .incbin "baserom.nds", 0x1AE4, 0x4 + .incbin "baserom.nds", 0x1AE8, 0x4 + .incbin "baserom.nds", 0x1AEC, 0x4 + .incbin "baserom.nds", 0x1AF0, 0x4 + .incbin "baserom.nds", 0x1AF4, 0x4 + .incbin "baserom.nds", 0x1AF8, 0x4 + .incbin "baserom.nds", 0x1AFC, 0x4 + .incbin "baserom.nds", 0x1B00, 0x4 + .incbin "baserom.nds", 0x1B04, 0x4 + .incbin "baserom.nds", 0x1B08, 0x4 + .incbin "baserom.nds", 0x1B0C, 0x4 + .incbin "baserom.nds", 0x1B10, 0x4 + .incbin "baserom.nds", 0x1B14, 0x4 + .incbin "baserom.nds", 0x1B18, 0x4 + .incbin "baserom.nds", 0x1B1C, 0x4 + .incbin "baserom.nds", 0x1B20, 0x4 + .incbin "baserom.nds", 0x1B24, 0x4 + .incbin "baserom.nds", 0x1B28, 0x4 + .incbin "baserom.nds", 0x1B2C, 0x4 + .incbin "baserom.nds", 0x1B30, 0x4 + .incbin "baserom.nds", 0x1B34, 0x4 + .incbin "baserom.nds", 0x1B38, 0x4 + .incbin "baserom.nds", 0x1B3C, 0xC + .incbin "baserom.nds", 0x1B48, 0x10 + .incbin "baserom.nds", 0x1B58, 0x4 + .incbin "baserom.nds", 0x1B5C, 0xC + .incbin "baserom.nds", 0x1B68, 0x14 + .incbin "baserom.nds", 0x1B7C, 0x4 + .incbin "baserom.nds", 0x1B80, 0x8 + .incbin "baserom.nds", 0x1B88, 0x4 + .incbin "baserom.nds", 0x1B8C, 0x4 + .incbin "baserom.nds", 0x1B90, 0x4 + .incbin "baserom.nds", 0x1B94, 0xC + .incbin "baserom.nds", 0x1BA0, 0x4 + .incbin "baserom.nds", 0x1BA4, 0x4 + .incbin "baserom.nds", 0x1BA8, 0x4 + .incbin "baserom.nds", 0x1BAC, 0x4 + .incbin "baserom.nds", 0x1BB0, 0x4 + .incbin "baserom.nds", 0x1BB4, 0x4 + .incbin "baserom.nds", 0x1BB8, 0x4 + .incbin "baserom.nds", 0x1BBC, 0x4 + .incbin "baserom.nds", 0x1BC0, 0x4 + .incbin "baserom.nds", 0x1BC4, 0x4 + .incbin "baserom.nds", 0x1BC8, 0x4 + .incbin "baserom.nds", 0x1BCC, 0x4 + .incbin "baserom.nds", 0x1BD0, 0x8 + .incbin "baserom.nds", 0x1BD8, 0x4 + .incbin "baserom.nds", 0x1BDC, 0x4 + .incbin "baserom.nds", 0x1BE0, 0x4 + .incbin "baserom.nds", 0x1BE4, 0x4 + .incbin "baserom.nds", 0x1BE8, 0x4 + .incbin "baserom.nds", 0x1BEC, 0x4 + .incbin "baserom.nds", 0x1BF0, 0x4 + .incbin "baserom.nds", 0x1BF4, 0x8 + .incbin "baserom.nds", 0x1BFC, 0x4 + .incbin "baserom.nds", 0x1C00, 0x4 + .incbin "baserom.nds", 0x1C04, 0x4 + .incbin "baserom.nds", 0x1C08, 0x4 + .incbin "baserom.nds", 0x1C0C, 0x4 + .incbin "baserom.nds", 0x1C10, 0x10 + .incbin "baserom.nds", 0x1C20, 0x4 + .incbin "baserom.nds", 0x1C24, 0x4 + .incbin "baserom.nds", 0x1C28, 0x10 + .incbin "baserom.nds", 0x1C38, 0xC + .incbin "baserom.nds", 0x1C44, 0x4 + .incbin "baserom.nds", 0x1C48, 0x4 + .incbin "baserom.nds", 0x1C4C, 0x4 + .incbin "baserom.nds", 0x1C50, 0x4 + .incbin "baserom.nds", 0x1C54, 0x4 + .incbin "baserom.nds", 0x1C58, 0x8 + .incbin "baserom.nds", 0x1C60, 0x4 + .incbin "baserom.nds", 0x1C64, 0x4 + .incbin "baserom.nds", 0x1C68, 0x4 + .incbin "baserom.nds", 0x1C6C, 0x4 + .incbin "baserom.nds", 0x1C70, 0x4 + .incbin "baserom.nds", 0x1C74, 0x8 + .incbin "baserom.nds", 0x1C7C, 0x4 + .incbin "baserom.nds", 0x1C80, 0x4 + .incbin "baserom.nds", 0x1C84, 0x4 + .incbin "baserom.nds", 0x1C88, 0x4 + .incbin "baserom.nds", 0x1C8C, 0x4 + .incbin "baserom.nds", 0x1C90, 0x4 + .incbin "baserom.nds", 0x1C94, 0x4 + .incbin "baserom.nds", 0x1C98, 0x4 + .incbin "baserom.nds", 0x1C9C, 0x4 + .incbin "baserom.nds", 0x1CA0, 0x8 + .incbin "baserom.nds", 0x1CA8, 0x8 + .incbin "baserom.nds", 0x1CB0, 0x4 + .incbin "baserom.nds", 0x1CB4, 0x4 + .incbin "baserom.nds", 0x1CB8, 0x4 + .incbin "baserom.nds", 0x1CBC, 0x4 + .incbin "baserom.nds", 0x1CC0, 0x4 + .incbin "baserom.nds", 0x1CC4, 0x4 + .incbin "baserom.nds", 0x1CC8, 0x4 + .incbin "baserom.nds", 0x1CCC, 0x4 + .incbin "baserom.nds", 0x1CD0, 0x4 + .incbin "baserom.nds", 0x1CD4, 0x4 + .incbin "baserom.nds", 0x1CD8, 0x4 + .incbin "baserom.nds", 0x1CDC, 0x4 + .incbin "baserom.nds", 0x1CE0, 0x4 + .incbin "baserom.nds", 0x1CE4, 0x4 + .incbin "baserom.nds", 0x1CE8, 0x4 + .incbin "baserom.nds", 0x1CEC, 0x4 + .incbin "baserom.nds", 0x1CF0, 0x4 + .incbin "baserom.nds", 0x1CF4, 0x4 + .incbin "baserom.nds", 0x1CF8, 0x4 + .incbin "baserom.nds", 0x1CFC, 0x4 + .incbin "baserom.nds", 0x1D00, 0x4 + .incbin "baserom.nds", 0x1D04, 0x4 + .incbin "baserom.nds", 0x1D08, 0x4 + .incbin "baserom.nds", 0x1D0C, 0x4 + .incbin "baserom.nds", 0x1D10, 0x4 + .incbin "baserom.nds", 0x1D14, 0x4 + .incbin "baserom.nds", 0x1D18, 0x4 + .incbin "baserom.nds", 0x1D1C, 0x4 + .incbin "baserom.nds", 0x1D20, 0x4 + .incbin "baserom.nds", 0x1D24, 0x4 + .incbin "baserom.nds", 0x1D28, 0x4 + .incbin "baserom.nds", 0x1D2C, 0x4 + .incbin "baserom.nds", 0x1D30, 0x4 + .incbin "baserom.nds", 0x1D34, 0x4 + .incbin "baserom.nds", 0x1D38, 0x44 + .incbin "baserom.nds", 0x1D7C, 0x4 + .incbin "baserom.nds", 0x1D80, 0x4 + .incbin "baserom.nds", 0x1D84, 0x4 + .incbin "baserom.nds", 0x1D88, 0x4 + .incbin "baserom.nds", 0x1D8C, 0x4 + .incbin "baserom.nds", 0x1D90, 0x4 + .incbin "baserom.nds", 0x1D94, 0x4 + .incbin "baserom.nds", 0x1D98, 0x4 + .incbin "baserom.nds", 0x1D9C, 0x4 + .incbin "baserom.nds", 0x1DA0, 0x4 + .incbin "baserom.nds", 0x1DA4, 0x4 + .incbin "baserom.nds", 0x1DA8, 0x4 + .incbin "baserom.nds", 0x1DAC, 0x4 + .incbin "baserom.nds", 0x1DB0, 0x4 + .incbin "baserom.nds", 0x1DB4, 0x4 + .incbin "baserom.nds", 0x1DB8, 0x4 + .incbin "baserom.nds", 0x1DBC, 0x4 + .incbin "baserom.nds", 0x1DC0, 0x4 + .incbin "baserom.nds", 0x1DC4, 0x4 + .incbin "baserom.nds", 0x1DC8, 0x4 + .incbin "baserom.nds", 0x1DCC, 0x4 + .incbin "baserom.nds", 0x1DD0, 0x4 + .incbin "baserom.nds", 0x1DD4, 0x4 + .incbin "baserom.nds", 0x1DD8, 0x4 + .incbin "baserom.nds", 0x1DDC, 0x8 + .incbin "baserom.nds", 0x1DE4, 0x4 + .incbin "baserom.nds", 0x1DE8, 0x4 + .incbin "baserom.nds", 0x1DEC, 0x4 + .incbin "baserom.nds", 0x1DF0, 0x4 + .incbin "baserom.nds", 0x1DF4, 0x4 + .incbin "baserom.nds", 0x1DF8, 0x4 + .incbin "baserom.nds", 0x1DFC, 0x4 + .incbin "baserom.nds", 0x1E00, 0x4 + .incbin "baserom.nds", 0x1E04, 0x4 + .incbin "baserom.nds", 0x1E08, 0x8 + .incbin "baserom.nds", 0x1E10, 0x4 + .incbin "baserom.nds", 0x1E14, 0x4 + .incbin "baserom.nds", 0x1E18, 0x4 + .incbin "baserom.nds", 0x1E1C, 0x4 + .incbin "baserom.nds", 0x1E20, 0x4 + .incbin "baserom.nds", 0x1E24, 0x20 + .incbin "baserom.nds", 0x1E44, 0x28 + .incbin "baserom.nds", 0x1E6C, 0x4 + .incbin "baserom.nds", 0x1E70, 0x4 + .incbin "baserom.nds", 0x1E74, 0x4 + .incbin "baserom.nds", 0x1E78, 0x4 + .incbin "baserom.nds", 0x1E7C, 0x4 + .incbin "baserom.nds", 0x1E80, 0x4 + .incbin "baserom.nds", 0x1E84, 0x4 + .incbin "baserom.nds", 0x1E88, 0x4 + .incbin "baserom.nds", 0x1E8C, 0x4 + .incbin "baserom.nds", 0x1E90, 0x4 + .incbin "baserom.nds", 0x1E94, 0x4 + .incbin "baserom.nds", 0x1E98, 0x1C + .incbin "baserom.nds", 0x1EB4, 0x1C + .incbin "baserom.nds", 0x1ED0, 0x4 + .incbin "baserom.nds", 0x1ED4, 0x4 + .incbin "baserom.nds", 0x1ED8, 0x4 + .incbin "baserom.nds", 0x1EDC, 0x4 + .incbin "baserom.nds", 0x1EE0, 0x4 + .incbin "baserom.nds", 0x1EE4, 0x4 + .incbin "baserom.nds", 0x1EE8, 0x4 + .incbin "baserom.nds", 0x1EEC, 0x4 + .incbin "baserom.nds", 0x1EF0, 0x8 + .incbin "baserom.nds", 0x1EF8, 0x4 + .incbin "baserom.nds", 0x1EFC, 0x8 + .incbin "baserom.nds", 0x1F04, 0x10 + .incbin "baserom.nds", 0x1F14, 0x4 + .incbin "baserom.nds", 0x1F18, 0x4 + .incbin "baserom.nds", 0x1F1C, 0x4 + .incbin "baserom.nds", 0x1F20, 0x4 + .incbin "baserom.nds", 0x1F24, 0x4 + .incbin "baserom.nds", 0x1F28, 0x4 + .incbin "baserom.nds", 0x1F2C, 0x24 + .incbin "baserom.nds", 0x1F50, 0x18 + .incbin "baserom.nds", 0x1F68, 0x4 + .incbin "baserom.nds", 0x1F6C, 0x4 + .incbin "baserom.nds", 0x1F70, 0x4 + .incbin "baserom.nds", 0x1F74, 0x4 + .incbin "baserom.nds", 0x1F78, 0x4 + .incbin "baserom.nds", 0x1F7C, 0x4 + .incbin "baserom.nds", 0x1F80, 0x4 + .incbin "baserom.nds", 0x1F84, 0x4 + .incbin "baserom.nds", 0x1F88, 0x4 + .incbin "baserom.nds", 0x1F8C, 0x4 + .incbin "baserom.nds", 0x1F90, 0x4 + .incbin "baserom.nds", 0x1F94, 0x4 + .incbin "baserom.nds", 0x1F98, 0x4 + .incbin "baserom.nds", 0x1F9C, 0x4 + .incbin "baserom.nds", 0x1FA0, 0x4 + .incbin "baserom.nds", 0x1FA4, 0x4 + .incbin "baserom.nds", 0x1FA8, 0xC + .incbin "baserom.nds", 0x1FB4, 0x8 + .incbin "baserom.nds", 0x1FBC, 0x4 + .incbin "baserom.nds", 0x1FC0, 0x18 + .incbin "baserom.nds", 0x1FD8, 0x4 + .incbin "baserom.nds", 0x1FDC, 0x4 + .incbin "baserom.nds", 0x1FE0, 0x4 + .incbin "baserom.nds", 0x1FE4, 0x4 + .incbin "baserom.nds", 0x1FE8, 0x4 + .incbin "baserom.nds", 0x1FEC, 0x4 + .incbin "baserom.nds", 0x1FF0, 0x4 + .incbin "baserom.nds", 0x1FF4, 0x4 + .incbin "baserom.nds", 0x1FF8, 0x4 + .incbin "baserom.nds", 0x1FFC, 0x4 + .incbin "baserom.nds", 0x2000, 0x4 + .incbin "baserom.nds", 0x2004, 0x4 + .incbin "baserom.nds", 0x2008, 0x4 + .incbin "baserom.nds", 0x200C, 0x4 + .incbin "baserom.nds", 0x2010, 0x8 + .incbin "baserom.nds", 0x2018, 0x4 + .incbin "baserom.nds", 0x201C, 0x4 + .incbin "baserom.nds", 0x2020, 0x4 + .incbin "baserom.nds", 0x2024, 0x4 + .incbin "baserom.nds", 0x2028, 0x4 + .incbin "baserom.nds", 0x202C, 0x4 + .incbin "baserom.nds", 0x2030, 0x4 + .incbin "baserom.nds", 0x2034, 0x14 + .incbin "baserom.nds", 0x2048, 0x14 + .incbin "baserom.nds", 0x205C, 0x4 + .incbin "baserom.nds", 0x2060, 0x4 + .incbin "baserom.nds", 0x2064, 0x4 + .incbin "baserom.nds", 0x2068, 0x4 + .incbin "baserom.nds", 0x206C, 0x4 + .incbin "baserom.nds", 0x2070, 0x4 + .incbin "baserom.nds", 0x2074, 0x4 + .incbin "baserom.nds", 0x2078, 0x4 + .incbin "baserom.nds", 0x207C, 0x4 + .incbin "baserom.nds", 0x2080, 0x28 + .incbin "baserom.nds", 0x20A8, 0x28 + .incbin "baserom.nds", 0x20D0, 0x8 + .incbin "baserom.nds", 0x20D8, 0x4 + .incbin "baserom.nds", 0x20DC, 0x4 + .incbin "baserom.nds", 0x20E0, 0x4 + .incbin "baserom.nds", 0x20E4, 0x4 + .incbin "baserom.nds", 0x20E8, 0x4 + .incbin "baserom.nds", 0x20EC, 0x4 + .incbin "baserom.nds", 0x20F0, 0x4 + .incbin "baserom.nds", 0x20F4, 0x4 + .incbin "baserom.nds", 0x20F8, 0x4 + .incbin "baserom.nds", 0x20FC, 0x4 + .incbin "baserom.nds", 0x2100, 0x4 + .incbin "baserom.nds", 0x2104, 0x4 + .incbin "baserom.nds", 0x2108, 0x4 + .incbin "baserom.nds", 0x210C, 0x4 + .incbin "baserom.nds", 0x2110, 0x4 + .incbin "baserom.nds", 0x2114, 0x8 + .incbin "baserom.nds", 0x211C, 0x8 + .incbin "baserom.nds", 0x2124, 0x4 + .incbin "baserom.nds", 0x2128, 0x4 + .incbin "baserom.nds", 0x212C, 0x4 + .incbin "baserom.nds", 0x2130, 0x4 + .incbin "baserom.nds", 0x2134, 0x4 + .incbin "baserom.nds", 0x2138, 0x4 + .incbin "baserom.nds", 0x213C, 0x4 + .incbin "baserom.nds", 0x2140, 0x4 + .incbin "baserom.nds", 0x2144, 0x4 + .incbin "baserom.nds", 0x2148, 0x4 + .incbin "baserom.nds", 0x214C, 0x4 + .incbin "baserom.nds", 0x2150, 0x4 + .incbin "baserom.nds", 0x2154, 0x4 + .incbin "baserom.nds", 0x2158, 0x4 + .incbin "baserom.nds", 0x215C, 0x8 + .incbin "baserom.nds", 0x2164, 0x18 + .incbin "baserom.nds", 0x217C, 0x4 + .incbin "baserom.nds", 0x2180, 0x4 + .incbin "baserom.nds", 0x2184, 0x4 + .incbin "baserom.nds", 0x2188, 0x4 + .incbin "baserom.nds", 0x218C, 0x4 + .incbin "baserom.nds", 0x2190, 0x4 + .incbin "baserom.nds", 0x2194, 0x4 + .incbin "baserom.nds", 0x2198, 0x8 + .incbin "baserom.nds", 0x21A0, 0x8 + .incbin "baserom.nds", 0x21A8, 0x4 + .incbin "baserom.nds", 0x21AC, 0x4 + .incbin "baserom.nds", 0x21B0, 0x4 + .incbin "baserom.nds", 0x21B4, 0x4 + .incbin "baserom.nds", 0x21B8, 0x4 + .incbin "baserom.nds", 0x21BC, 0x4 + .incbin "baserom.nds", 0x21C0, 0x4 + .incbin "baserom.nds", 0x21C4, 0x4 + .incbin "baserom.nds", 0x21C8, 0x4 + .incbin "baserom.nds", 0x21CC, 0x8 + .incbin "baserom.nds", 0x21D4, 0x4 + .incbin "baserom.nds", 0x21D8, 0x4 + .incbin "baserom.nds", 0x21DC, 0x4 + .incbin "baserom.nds", 0x21E0, 0x4 + .incbin "baserom.nds", 0x21E4, 0x4 + .incbin "baserom.nds", 0x21E8, 0x4 + .incbin "baserom.nds", 0x21EC, 0x4 + .incbin "baserom.nds", 0x21F0, 0x4 + .incbin "baserom.nds", 0x21F4, 0x4 + .incbin "baserom.nds", 0x21F8, 0x4 + .incbin "baserom.nds", 0x21FC, 0x8 + .incbin "baserom.nds", 0x2204, 0x8 + .incbin "baserom.nds", 0x220C, 0x4 + .incbin "baserom.nds", 0x2210, 0x4 + .incbin "baserom.nds", 0x2214, 0x4 + .incbin "baserom.nds", 0x2218, 0x4 + .incbin "baserom.nds", 0x221C, 0xC + .incbin "baserom.nds", 0x2228, 0x8 + .incbin "baserom.nds", 0x2230, 0x4 + .incbin "baserom.nds", 0x2234, 0x4 + .incbin "baserom.nds", 0x2238, 0x4 + .incbin "baserom.nds", 0x223C, 0x4 + .incbin "baserom.nds", 0x2240, 0x4 + .incbin "baserom.nds", 0x2244, 0x4 + .incbin "baserom.nds", 0x2248, 0x10 + .incbin "baserom.nds", 0x2258, 0x4 + .incbin "baserom.nds", 0x225C, 0x4 + .incbin "baserom.nds", 0x2260, 0x4 + .incbin "baserom.nds", 0x2264, 0x4 + .incbin "baserom.nds", 0x2268, 0x4 + .incbin "baserom.nds", 0x226C, 0x4 + .incbin "baserom.nds", 0x2270, 0xC + .incbin "baserom.nds", 0x227C, 0x4 + .incbin "baserom.nds", 0x2280, 0x4 + .incbin "baserom.nds", 0x2284, 0x8 + .incbin "baserom.nds", 0x228C, 0x8 + .incbin "baserom.nds", 0x2294, 0x4 + .incbin "baserom.nds", 0x2298, 0x4 + .incbin "baserom.nds", 0x229C, 0x4 + .incbin "baserom.nds", 0x22A0, 0x4 + .incbin "baserom.nds", 0x22A4, 0x4 + .incbin "baserom.nds", 0x22A8, 0x4 + .incbin "baserom.nds", 0x22AC, 0x4 + .incbin "baserom.nds", 0x22B0, 0x4 + .incbin "baserom.nds", 0x22B4, 0x4 + .incbin "baserom.nds", 0x22B8, 0x4 + .incbin "baserom.nds", 0x22BC, 0x4 + .incbin "baserom.nds", 0x22C0, 0x4 + .incbin "baserom.nds", 0x22C4, 0x4 + .incbin "baserom.nds", 0x22C8, 0x4 + .incbin "baserom.nds", 0x22CC, 0x4 + .incbin "baserom.nds", 0x22D0, 0x4 + .incbin "baserom.nds", 0x22D4, 0x4 + .incbin "baserom.nds", 0x22D8, 0x4 + .incbin "baserom.nds", 0x22DC, 0x4 + .incbin "baserom.nds", 0x22E0, 0x4 + .incbin "baserom.nds", 0x22E4, 0x4 + .incbin "baserom.nds", 0x22E8, 0x4 + .incbin "baserom.nds", 0x22EC, 0x4 + .incbin "baserom.nds", 0x22F0, 0x4 + .incbin "baserom.nds", 0x22F4, 0x4 + .incbin "baserom.nds", 0x22F8, 0x4 + .incbin "baserom.nds", 0x22FC, 0x4 + .incbin "baserom.nds", 0x2300, 0x4 + .incbin "baserom.nds", 0x2304, 0x4 + .incbin "baserom.nds", 0x2308, 0x4 + .incbin "baserom.nds", 0x230C, 0x4 + .incbin "baserom.nds", 0x2310, 0x4 + .incbin "baserom.nds", 0x2314, 0x4 + .incbin "baserom.nds", 0x2318, 0x4 + .incbin "baserom.nds", 0x231C, 0x4 + .incbin "baserom.nds", 0x2320, 0x4 + .incbin "baserom.nds", 0x2324, 0x4 + .incbin "baserom.nds", 0x2328, 0x4 + .incbin "baserom.nds", 0x232C, 0x4 + .incbin "baserom.nds", 0x2330, 0x4 + .incbin "baserom.nds", 0x2334, 0x4 + .incbin "baserom.nds", 0x2338, 0x4 + .incbin "baserom.nds", 0x233C, 0x4 + .incbin "baserom.nds", 0x2340, 0x4 + .incbin "baserom.nds", 0x2344, 0x4 + .incbin "baserom.nds", 0x2348, 0x8 + .incbin "baserom.nds", 0x2350, 0x4 + .incbin "baserom.nds", 0x2354, 0x4 + .incbin "baserom.nds", 0x2358, 0x8 + .incbin "baserom.nds", 0x2360, 0x8 + .incbin "baserom.nds", 0x2368, 0x4 + .incbin "baserom.nds", 0x236C, 0x4 + .incbin "baserom.nds", 0x2370, 0x4 + .incbin "baserom.nds", 0x2374, 0x4 + .incbin "baserom.nds", 0x2378, 0x4 + .incbin "baserom.nds", 0x237C, 0x4 + .incbin "baserom.nds", 0x2380, 0x4 + .incbin "baserom.nds", 0x2384, 0x4 + .incbin "baserom.nds", 0x2388, 0x4 + .incbin "baserom.nds", 0x238C, 0x4 + .incbin "baserom.nds", 0x2390, 0x4 + .incbin "baserom.nds", 0x2394, 0x4 + .incbin "baserom.nds", 0x2398, 0x4 + .incbin "baserom.nds", 0x239C, 0x4 + .incbin "baserom.nds", 0x23A0, 0x4 + .incbin "baserom.nds", 0x23A4, 0x4 + .incbin "baserom.nds", 0x23A8, 0x4 + .incbin "baserom.nds", 0x23AC, 0x4 + .incbin "baserom.nds", 0x23B0, 0x4 + .incbin "baserom.nds", 0x23B4, 0x4 + .incbin "baserom.nds", 0x23B8, 0x4 + .incbin "baserom.nds", 0x23BC, 0x4 + .incbin "baserom.nds", 0x23C0, 0x4 + .incbin "baserom.nds", 0x23C4, 0x4 + .incbin "baserom.nds", 0x23C8, 0x4 + .incbin "baserom.nds", 0x23CC, 0x4 + .incbin "baserom.nds", 0x23D0, 0x4 + .incbin "baserom.nds", 0x23D4, 0x4 + .incbin "baserom.nds", 0x23D8, 0x8 + .incbin "baserom.nds", 0x23E0, 0x4 + .incbin "baserom.nds", 0x23E4, 0x4 + .incbin "baserom.nds", 0x23E8, 0x4 + .incbin "baserom.nds", 0x23EC, 0x4 + .incbin "baserom.nds", 0x23F0, 0x4 + .incbin "baserom.nds", 0x23F4, 0x4 + .incbin "baserom.nds", 0x23F8, 0x4 + .incbin "baserom.nds", 0x23FC, 0x4 + .incbin "baserom.nds", 0x2400, 0x8 + .incbin "baserom.nds", 0x2408, 0xC + .incbin "baserom.nds", 0x2414, 0x4 + .incbin "baserom.nds", 0x2418, 0x4 + .incbin "baserom.nds", 0x241C, 0x4 + .incbin "baserom.nds", 0x2420, 0x4 + .incbin "baserom.nds", 0x2424, 0x4 + .incbin "baserom.nds", 0x2428, 0x4 + .incbin "baserom.nds", 0x242C, 0x8 + .incbin "baserom.nds", 0x2434, 0x4 + .incbin "baserom.nds", 0x2438, 0x4 + .incbin "baserom.nds", 0x243C, 0x8 + .incbin "baserom.nds", 0x2444, 0x4 + .incbin "baserom.nds", 0x2448, 0x4 + .incbin "baserom.nds", 0x244C, 0x4 + .incbin "baserom.nds", 0x2450, 0x4 + .incbin "baserom.nds", 0x2454, 0x8 + .incbin "baserom.nds", 0x245C, 0x4 + .incbin "baserom.nds", 0x2460, 0x4 + .incbin "baserom.nds", 0x2464, 0x4 + .incbin "baserom.nds", 0x2468, 0x4 + .incbin "baserom.nds", 0x246C, 0x4 + .incbin "baserom.nds", 0x2470, 0x4 + .incbin "baserom.nds", 0x2474, 0x4 + .incbin "baserom.nds", 0x2478, 0x4 + .incbin "baserom.nds", 0x247C, 0x4 + .incbin "baserom.nds", 0x2480, 0x4 + .incbin "baserom.nds", 0x2484, 0x4 + .incbin "baserom.nds", 0x2488, 0x4 + .incbin "baserom.nds", 0x248C, 0x4 + .incbin "baserom.nds", 0x2490, 0x4 + .incbin "baserom.nds", 0x2494, 0x4 + .incbin "baserom.nds", 0x2498, 0x14 + .incbin "baserom.nds", 0x24AC, 0x14 + .incbin "baserom.nds", 0x24C0, 0x4 + .incbin "baserom.nds", 0x24C4, 0x4 + .incbin "baserom.nds", 0x24C8, 0x4 + .incbin "baserom.nds", 0x24CC, 0x4 + .incbin "baserom.nds", 0x24D0, 0x4 + .incbin "baserom.nds", 0x24D4, 0x4 + .incbin "baserom.nds", 0x24D8, 0x4 + .incbin "baserom.nds", 0x24DC, 0x4 + .incbin "baserom.nds", 0x24E0, 0x4 + .incbin "baserom.nds", 0x24E4, 0x4 + .incbin "baserom.nds", 0x24E8, 0x4 + .incbin "baserom.nds", 0x24EC, 0x4 + .incbin "baserom.nds", 0x24F0, 0x4 + .incbin "baserom.nds", 0x24F4, 0x4 + .incbin "baserom.nds", 0x24F8, 0x4 + .incbin "baserom.nds", 0x24FC, 0x4 + .incbin "baserom.nds", 0x2500, 0x4 + .incbin "baserom.nds", 0x2504, 0xC + .incbin "baserom.nds", 0x2510, 0x4 + .incbin "baserom.nds", 0x2514, 0x4 + .incbin "baserom.nds", 0x2518, 0x4 + .incbin "baserom.nds", 0x251C, 0x4 + .incbin "baserom.nds", 0x2520, 0x4 + .incbin "baserom.nds", 0x2524, 0x4 + .incbin "baserom.nds", 0x2528, 0x4 + .incbin "baserom.nds", 0x252C, 0x4 + .incbin "baserom.nds", 0x2530, 0x4 + .incbin "baserom.nds", 0x2534, 0x4 + .incbin "baserom.nds", 0x2538, 0x4 + .incbin "baserom.nds", 0x253C, 0x4 + .incbin "baserom.nds", 0x2540, 0x4 + .incbin "baserom.nds", 0x2544, 0x4 + .incbin "baserom.nds", 0x2548, 0x4 + .incbin "baserom.nds", 0x254C, 0x4 + .incbin "baserom.nds", 0x2550, 0x4 + .incbin "baserom.nds", 0x2554, 0x4 + .incbin "baserom.nds", 0x2558, 0x4 + .incbin "baserom.nds", 0x255C, 0x4 + .incbin "baserom.nds", 0x2560, 0x4 + .incbin "baserom.nds", 0x2564, 0x4 + .incbin "baserom.nds", 0x2568, 0x4 + .incbin "baserom.nds", 0x256C, 0x4 + .incbin "baserom.nds", 0x2570, 0x4 + .incbin "baserom.nds", 0x2574, 0x4 + .incbin "baserom.nds", 0x2578, 0x4 + .incbin "baserom.nds", 0x257C, 0x4 + .incbin "baserom.nds", 0x2580, 0x4 + .incbin "baserom.nds", 0x2584, 0x4 + .incbin "baserom.nds", 0x2588, 0x4 + .incbin "baserom.nds", 0x258C, 0x4 + .incbin "baserom.nds", 0x2590, 0x4 + .incbin "baserom.nds", 0x2594, 0x4 + .incbin "baserom.nds", 0x2598, 0x4 + .incbin "baserom.nds", 0x259C, 0x4 + .incbin "baserom.nds", 0x25A0, 0x4 + .incbin "baserom.nds", 0x25A4, 0x8 + .incbin "baserom.nds", 0x25AC, 0x10 + .incbin "baserom.nds", 0x25BC, 0x4 + .incbin "baserom.nds", 0x25C0, 0xC + .incbin "baserom.nds", 0x25CC, 0x14 + .incbin "baserom.nds", 0x25E0, 0x4 + .incbin "baserom.nds", 0x25E4, 0x8 + .incbin "baserom.nds", 0x25EC, 0x4 + .incbin "baserom.nds", 0x25F0, 0x4 + .incbin "baserom.nds", 0x25F4, 0x4 + .incbin "baserom.nds", 0x25F8, 0x8 + .incbin "baserom.nds", 0x2600, 0x4 + .incbin "baserom.nds", 0x2604, 0x4 + .incbin "baserom.nds", 0x2608, 0x4 + .incbin "baserom.nds", 0x260C, 0x4 + .incbin "baserom.nds", 0x2610, 0x4 + .incbin "baserom.nds", 0x2614, 0x4 + .incbin "baserom.nds", 0x2618, 0x4 + .incbin "baserom.nds", 0x261C, 0x4 + .incbin "baserom.nds", 0x2620, 0x4 + .incbin "baserom.nds", 0x2624, 0x4 + .incbin "baserom.nds", 0x2628, 0x4 + .incbin "baserom.nds", 0x262C, 0x4 + .incbin "baserom.nds", 0x2630, 0x8 + .incbin "baserom.nds", 0x2638, 0x4 + .incbin "baserom.nds", 0x263C, 0x4 + .incbin "baserom.nds", 0x2640, 0x4 + .incbin "baserom.nds", 0x2644, 0x4 + .incbin "baserom.nds", 0x2648, 0x4 + .incbin "baserom.nds", 0x264C, 0x4 + .incbin "baserom.nds", 0x2650, 0x4 + .incbin "baserom.nds", 0x2654, 0x8 + .incbin "baserom.nds", 0x265C, 0x4 + .incbin "baserom.nds", 0x2660, 0x4 + .incbin "baserom.nds", 0x2664, 0x4 + .incbin "baserom.nds", 0x2668, 0x4 + .incbin "baserom.nds", 0x266C, 0x4 + .incbin "baserom.nds", 0x2670, 0x10 + .incbin "baserom.nds", 0x2680, 0x4 + .incbin "baserom.nds", 0x2684, 0x4 + .incbin "baserom.nds", 0x2688, 0x10 + .incbin "baserom.nds", 0x2698, 0xC + .incbin "baserom.nds", 0x26A4, 0x4 + .incbin "baserom.nds", 0x26A8, 0x4 + .incbin "baserom.nds", 0x26AC, 0x4 + .incbin "baserom.nds", 0x26B0, 0x4 + .incbin "baserom.nds", 0x26B4, 0x4 + .incbin "baserom.nds", 0x26B8, 0x8 + .incbin "baserom.nds", 0x26C0, 0x4 + .incbin "baserom.nds", 0x26C4, 0x4 + .incbin "baserom.nds", 0x26C8, 0x4 + .incbin "baserom.nds", 0x26CC, 0x4 + .incbin "baserom.nds", 0x26D0, 0x4 + .incbin "baserom.nds", 0x26D4, 0x8 + .incbin "baserom.nds", 0x26DC, 0x4 + .incbin "baserom.nds", 0x26E0, 0x4 + .incbin "baserom.nds", 0x26E4, 0x4 + .incbin "baserom.nds", 0x26E8, 0x4 + .incbin "baserom.nds", 0x26EC, 0x4 + .incbin "baserom.nds", 0x26F0, 0x4 + .incbin "baserom.nds", 0x26F4, 0x4 + .incbin "baserom.nds", 0x26F8, 0x4 + .incbin "baserom.nds", 0x26FC, 0x4 + .incbin "baserom.nds", 0x2700, 0x8 + .incbin "baserom.nds", 0x2708, 0x8 + .incbin "baserom.nds", 0x2710, 0x4 + .incbin "baserom.nds", 0x2714, 0x4 + .incbin "baserom.nds", 0x2718, 0x4 + .incbin "baserom.nds", 0x271C, 0x4 + .incbin "baserom.nds", 0x2720, 0x4 + .incbin "baserom.nds", 0x2724, 0x4 + .incbin "baserom.nds", 0x2728, 0x4 + .incbin "baserom.nds", 0x272C, 0x4 + .incbin "baserom.nds", 0x2730, 0x4 + .incbin "baserom.nds", 0x2734, 0x4 + .incbin "baserom.nds", 0x2738, 0x4 + .incbin "baserom.nds", 0x273C, 0x4 + .incbin "baserom.nds", 0x2740, 0x4 + .incbin "baserom.nds", 0x2744, 0x4 + .incbin "baserom.nds", 0x2748, 0x4 + .incbin "baserom.nds", 0x274C, 0x4 + .incbin "baserom.nds", 0x2750, 0x4 + .incbin "baserom.nds", 0x2754, 0x4 + .incbin "baserom.nds", 0x2758, 0x4 + .incbin "baserom.nds", 0x275C, 0x4 + .incbin "baserom.nds", 0x2760, 0x4 + .incbin "baserom.nds", 0x2764, 0x4 + .incbin "baserom.nds", 0x2768, 0x4 + .incbin "baserom.nds", 0x276C, 0x4 + .incbin "baserom.nds", 0x2770, 0x4 + .incbin "baserom.nds", 0x2774, 0x4 + .incbin "baserom.nds", 0x2778, 0x4 + .incbin "baserom.nds", 0x277C, 0x4 + .incbin "baserom.nds", 0x2780, 0x4 + .incbin "baserom.nds", 0x2784, 0x4 + .incbin "baserom.nds", 0x2788, 0x4 + .incbin "baserom.nds", 0x278C, 0x4 + .incbin "baserom.nds", 0x2790, 0x4 + .incbin "baserom.nds", 0x2794, 0x4 + .incbin "baserom.nds", 0x2798, 0x54 + .incbin "baserom.nds", 0x27EC, 0x4 + .incbin "baserom.nds", 0x27F0, 0x4 + .incbin "baserom.nds", 0x27F4, 0x4 + .incbin "baserom.nds", 0x27F8, 0x4 + .incbin "baserom.nds", 0x27FC, 0x4 + .incbin "baserom.nds", 0x2800, 0x4 + .incbin "baserom.nds", 0x2804, 0x4 + .incbin "baserom.nds", 0x2808, 0x4 + .incbin "baserom.nds", 0x280C, 0x4 + .incbin "baserom.nds", 0x2810, 0x4 + .incbin "baserom.nds", 0x2814, 0x4 + .incbin "baserom.nds", 0x2818, 0x4 + .incbin "baserom.nds", 0x281C, 0x4 + .incbin "baserom.nds", 0x2820, 0x4 + .incbin "baserom.nds", 0x2824, 0x4 + .incbin "baserom.nds", 0x2828, 0x4 + .incbin "baserom.nds", 0x282C, 0x4 + .incbin "baserom.nds", 0x2830, 0x4 + .incbin "baserom.nds", 0x2834, 0x4 + .incbin "baserom.nds", 0x2838, 0x4 + .incbin "baserom.nds", 0x283C, 0x4 + .incbin "baserom.nds", 0x2840, 0x4 + .incbin "baserom.nds", 0x2844, 0x4 + .incbin "baserom.nds", 0x2848, 0x4 + .incbin "baserom.nds", 0x284C, 0x4 + .incbin "baserom.nds", 0x2850, 0x4 + .incbin "baserom.nds", 0x2854, 0x4 + .incbin "baserom.nds", 0x2858, 0x4 + .incbin "baserom.nds", 0x285C, 0x4 + .incbin "baserom.nds", 0x2860, 0x4 + .incbin "baserom.nds", 0x2864, 0x4 + .incbin "baserom.nds", 0x2868, 0x4 + .incbin "baserom.nds", 0x286C, 0x4 + .incbin "baserom.nds", 0x2870, 0x4 + .incbin "baserom.nds", 0x2874, 0x4 + .incbin "baserom.nds", 0x2878, 0x4 + .incbin "baserom.nds", 0x287C, 0x4 + .incbin "baserom.nds", 0x2880, 0x4 + .incbin "baserom.nds", 0x2884, 0x4 + .incbin "baserom.nds", 0x2888, 0x4 + .incbin "baserom.nds", 0x288C, 0x4 + .incbin "baserom.nds", 0x2890, 0x4 + .incbin "baserom.nds", 0x2894, 0x4 + .incbin "baserom.nds", 0x2898, 0x4 + .incbin "baserom.nds", 0x289C, 0x4 + .incbin "baserom.nds", 0x28A0, 0x4 + .incbin "baserom.nds", 0x28A4, 0x4 + .incbin "baserom.nds", 0x28A8, 0x4 + .incbin "baserom.nds", 0x28AC, 0x4 + .incbin "baserom.nds", 0x28B0, 0x4 + .incbin "baserom.nds", 0x28B4, 0x4 + .incbin "baserom.nds", 0x28B8, 0x4 + .incbin "baserom.nds", 0x28BC, 0x4 + .incbin "baserom.nds", 0x28C0, 0x4 + .incbin "baserom.nds", 0x28C4, 0x8 + .incbin "baserom.nds", 0x28CC, 0x4 + .incbin "baserom.nds", 0x28D0, 0x4 + .incbin "baserom.nds", 0x28D4, 0x4 + .incbin "baserom.nds", 0x28D8, 0x4 + .incbin "baserom.nds", 0x28DC, 0x4 + .incbin "baserom.nds", 0x28E0, 0x4 + .incbin "baserom.nds", 0x28E4, 0x4 + .incbin "baserom.nds", 0x28E8, 0x4 + .incbin "baserom.nds", 0x28EC, 0x4 + .incbin "baserom.nds", 0x28F0, 0x4 + .incbin "baserom.nds", 0x28F4, 0x4 + .incbin "baserom.nds", 0x28F8, 0x4 + .incbin "baserom.nds", 0x28FC, 0x4 + .incbin "baserom.nds", 0x2900, 0x4 + .incbin "baserom.nds", 0x2904, 0x4 + .incbin "baserom.nds", 0x2908, 0x4 + .incbin "baserom.nds", 0x290C, 0x4 + .incbin "baserom.nds", 0x2910, 0x4 + .incbin "baserom.nds", 0x2914, 0x4 + .incbin "baserom.nds", 0x2918, 0x4 + .incbin "baserom.nds", 0x291C, 0x4 + .incbin "baserom.nds", 0x2920, 0x4 + .incbin "baserom.nds", 0x2924, 0x4 + .incbin "baserom.nds", 0x2928, 0x4 + .incbin "baserom.nds", 0x292C, 0x4 + .incbin "baserom.nds", 0x2930, 0x4 + .incbin "baserom.nds", 0x2934, 0x4 + .incbin "baserom.nds", 0x2938, 0x4 + .incbin "baserom.nds", 0x293C, 0x4 + .incbin "baserom.nds", 0x2940, 0x4 + .incbin "baserom.nds", 0x2944, 0x4 + .incbin "baserom.nds", 0x2948, 0x4 + .incbin "baserom.nds", 0x294C, 0x4 + .incbin "baserom.nds", 0x2950, 0x4 + .incbin "baserom.nds", 0x2954, 0x4 + .incbin "baserom.nds", 0x2958, 0x4 + .incbin "baserom.nds", 0x295C, 0x4 + .incbin "baserom.nds", 0x2960, 0x4 + .incbin "baserom.nds", 0x2964, 0x4 + .incbin "baserom.nds", 0x2968, 0x4 + .incbin "baserom.nds", 0x296C, 0x4 + .incbin "baserom.nds", 0x2970, 0x4 + .incbin "baserom.nds", 0x2974, 0x4 + .incbin "baserom.nds", 0x2978, 0x4 + .incbin "baserom.nds", 0x297C, 0x4 + .incbin "baserom.nds", 0x2980, 0x4 + .incbin "baserom.nds", 0x2984, 0x4 + .incbin "baserom.nds", 0x2988, 0x4 + .incbin "baserom.nds", 0x298C, 0x4 + .incbin "baserom.nds", 0x2990, 0x4 + .incbin "baserom.nds", 0x2994, 0x4 + .incbin "baserom.nds", 0x2998, 0x4 + .incbin "baserom.nds", 0x299C, 0x4 + .incbin "baserom.nds", 0x29A0, 0x4 + .incbin "baserom.nds", 0x29A4, 0x4 + .incbin "baserom.nds", 0x29A8, 0x4 + .incbin "baserom.nds", 0x29AC, 0x4 + .incbin "baserom.nds", 0x29B0, 0x4 + .incbin "baserom.nds", 0x29B4, 0x4 + .incbin "baserom.nds", 0x29B8, 0x4 + .incbin "baserom.nds", 0x29BC, 0x4 + .incbin "baserom.nds", 0x29C0, 0x4 + .incbin "baserom.nds", 0x29C4, 0x4 + .incbin "baserom.nds", 0x29C8, 0x4 + .incbin "baserom.nds", 0x29CC, 0x4 + .incbin "baserom.nds", 0x29D0, 0x4 + .incbin "baserom.nds", 0x29D4, 0x4 + .incbin "baserom.nds", 0x29D8, 0x4 + .incbin "baserom.nds", 0x29DC, 0x4 + .incbin "baserom.nds", 0x29E0, 0x4 + .incbin "baserom.nds", 0x29E4, 0x4 + .incbin "baserom.nds", 0x29E8, 0x4 + .incbin "baserom.nds", 0x29EC, 0x4 + .incbin "baserom.nds", 0x29F0, 0x4 + .incbin "baserom.nds", 0x29F4, 0x4 + .incbin "baserom.nds", 0x29F8, 0x4 + .incbin "baserom.nds", 0x29FC, 0x4 + .incbin "baserom.nds", 0x2A00, 0x4 + .incbin "baserom.nds", 0x2A04, 0x4 + .incbin "baserom.nds", 0x2A08, 0x4 + .incbin "baserom.nds", 0x2A0C, 0x4 + .incbin "baserom.nds", 0x2A10, 0x4 + .incbin "baserom.nds", 0x2A14, 0x4 + .incbin "baserom.nds", 0x2A18, 0x4 + .incbin "baserom.nds", 0x2A1C, 0x4 + .incbin "baserom.nds", 0x2A20, 0x4 + .incbin "baserom.nds", 0x2A24, 0x4 + .incbin "baserom.nds", 0x2A28, 0x4 + .incbin "baserom.nds", 0x2A2C, 0x4 + .incbin "baserom.nds", 0x2A30, 0x4 + .incbin "baserom.nds", 0x2A34, 0x4 + .incbin "baserom.nds", 0x2A38, 0x4 + .incbin "baserom.nds", 0x2A3C, 0x4 + .incbin "baserom.nds", 0x2A40, 0x4 + .incbin "baserom.nds", 0x2A44, 0x4 + .incbin "baserom.nds", 0x2A48, 0x4 + .incbin "baserom.nds", 0x2A4C, 0x4 + .incbin "baserom.nds", 0x2A50, 0x4 + .incbin "baserom.nds", 0x2A54, 0x4 + .incbin "baserom.nds", 0x2A58, 0x4 + .incbin "baserom.nds", 0x2A5C, 0x4 + .incbin "baserom.nds", 0x2A60, 0x4 + .incbin "baserom.nds", 0x2A64, 0x4 + .incbin "baserom.nds", 0x2A68, 0x4 + .incbin "baserom.nds", 0x2A6C, 0x4 + .incbin "baserom.nds", 0x2A70, 0x4 + .incbin "baserom.nds", 0x2A74, 0x4 + .incbin "baserom.nds", 0x2A78, 0x4 + .incbin "baserom.nds", 0x2A7C, 0x4 + .incbin "baserom.nds", 0x2A80, 0x4 + .incbin "baserom.nds", 0x2A84, 0x4 + .incbin "baserom.nds", 0x2A88, 0x4 + .incbin "baserom.nds", 0x2A8C, 0x4 + .incbin "baserom.nds", 0x2A90, 0x4 + .incbin "baserom.nds", 0x2A94, 0x4 + .incbin "baserom.nds", 0x2A98, 0x4 + .incbin "baserom.nds", 0x2A9C, 0x4 + .incbin "baserom.nds", 0x2AA0, 0x4 + .incbin "baserom.nds", 0x2AA4, 0x4 + .incbin "baserom.nds", 0x2AA8, 0x4 + .incbin "baserom.nds", 0x2AAC, 0x4 + .incbin "baserom.nds", 0x2AB0, 0x4 + .incbin "baserom.nds", 0x2AB4, 0x4 + .incbin "baserom.nds", 0x2AB8, 0x4 + .incbin "baserom.nds", 0x2ABC, 0x4 + .incbin "baserom.nds", 0x2AC0, 0x4 + .incbin "baserom.nds", 0x2AC4, 0x4 + .incbin "baserom.nds", 0x2AC8, 0x8 + .incbin "baserom.nds", 0x2AD0, 0x4 + .incbin "baserom.nds", 0x2AD4, 0x4 + .incbin "baserom.nds", 0x2AD8, 0x4 + .incbin "baserom.nds", 0x2ADC, 0x4 + .incbin "baserom.nds", 0x2AE0, 0x4 + .incbin "baserom.nds", 0x2AE4, 0x4 + .incbin "baserom.nds", 0x2AE8, 0x8 + .incbin "baserom.nds", 0x2AF0, 0x4 + .incbin "baserom.nds", 0x2AF4, 0x4 + .incbin "baserom.nds", 0x2AF8, 0x4 + .incbin "baserom.nds", 0x2AFC, 0x8 + .incbin "baserom.nds", 0x2B04, 0x8 + .incbin "baserom.nds", 0x2B0C, 0x4 + .incbin "baserom.nds", 0x2B10, 0x4 + .incbin "baserom.nds", 0x2B14, 0x4 + .incbin "baserom.nds", 0x2B18, 0x4 + .incbin "baserom.nds", 0x2B1C, 0x4 + .incbin "baserom.nds", 0x2B20, 0x4 + .incbin "baserom.nds", 0x2B24, 0x4 + .incbin "baserom.nds", 0x2B28, 0x4 + .incbin "baserom.nds", 0x2B2C, 0x4 + .incbin "baserom.nds", 0x2B30, 0x4 + .incbin "baserom.nds", 0x2B34, 0x4 + .incbin "baserom.nds", 0x2B38, 0x4 + .incbin "baserom.nds", 0x2B3C, 0x4 + .incbin "baserom.nds", 0x2B40, 0x4 + .incbin "baserom.nds", 0x2B44, 0x4 + .incbin "baserom.nds", 0x2B48, 0x4 + .incbin "baserom.nds", 0x2B4C, 0x4 + .incbin "baserom.nds", 0x2B50, 0x4 + .incbin "baserom.nds", 0x2B54, 0x8 + .incbin "baserom.nds", 0x2B5C, 0x4 + .incbin "baserom.nds", 0x2B60, 0x4 + .incbin "baserom.nds", 0x2B64, 0x4 + .incbin "baserom.nds", 0x2B68, 0x4 + .incbin "baserom.nds", 0x2B6C, 0x4 + .incbin "baserom.nds", 0x2B70, 0x4 + .incbin "baserom.nds", 0x2B74, 0x4 + .incbin "baserom.nds", 0x2B78, 0x4 + .incbin "baserom.nds", 0x2B7C, 0x4 + .incbin "baserom.nds", 0x2B80, 0x4 + .incbin "baserom.nds", 0x2B84, 0x4 + .incbin "baserom.nds", 0x2B88, 0x4 + .incbin "baserom.nds", 0x2B8C, 0x4 + .incbin "baserom.nds", 0x2B90, 0x4 + .incbin "baserom.nds", 0x2B94, 0x4 + .incbin "baserom.nds", 0x2B98, 0x4 + .incbin "baserom.nds", 0x2B9C, 0x4 + .incbin "baserom.nds", 0x2BA0, 0x4 + .incbin "baserom.nds", 0x2BA4, 0x4 + .incbin "baserom.nds", 0x2BA8, 0x4 + .incbin "baserom.nds", 0x2BAC, 0x4 + .incbin "baserom.nds", 0x2BB0, 0x4 + .incbin "baserom.nds", 0x2BB4, 0x4 + .incbin "baserom.nds", 0x2BB8, 0x4 + .incbin "baserom.nds", 0x2BBC, 0x4 + .incbin "baserom.nds", 0x2BC0, 0x4 + .incbin "baserom.nds", 0x2BC4, 0x4 + .incbin "baserom.nds", 0x2BC8, 0x4 + .incbin "baserom.nds", 0x2BCC, 0x4 + .incbin "baserom.nds", 0x2BD0, 0x4 + .incbin "baserom.nds", 0x2BD4, 0x4 + .incbin "baserom.nds", 0x2BD8, 0x4 + .incbin "baserom.nds", 0x2BDC, 0x4 + .incbin "baserom.nds", 0x2BE0, 0x4 + .incbin "baserom.nds", 0x2BE4, 0x4 + .incbin "baserom.nds", 0x2BE8, 0x4 + .incbin "baserom.nds", 0x2BEC, 0x4 + .incbin "baserom.nds", 0x2BF0, 0x4 + .incbin "baserom.nds", 0x2BF4, 0x4 + .incbin "baserom.nds", 0x2BF8, 0x4 + .incbin "baserom.nds", 0x2BFC, 0x4 + .incbin "baserom.nds", 0x2C00, 0x4 + .incbin "baserom.nds", 0x2C04, 0x4 + .incbin "baserom.nds", 0x2C08, 0x4 + .incbin "baserom.nds", 0x2C0C, 0x4 + .incbin "baserom.nds", 0x2C10, 0x4 + .incbin "baserom.nds", 0x2C14, 0x4 + .incbin "baserom.nds", 0x2C18, 0x4 + .incbin "baserom.nds", 0x2C1C, 0x4 + .incbin "baserom.nds", 0x2C20, 0x4 + .incbin "baserom.nds", 0x2C24, 0x8 + .incbin "baserom.nds", 0x2C2C, 0x4 + .incbin "baserom.nds", 0x2C30, 0x4 + .incbin "baserom.nds", 0x2C34, 0x8 + .incbin "baserom.nds", 0x2C3C, 0x4 + .incbin "baserom.nds", 0x2C40, 0x4 + .incbin "baserom.nds", 0x2C44, 0x4 + .incbin "baserom.nds", 0x2C48, 0x4 + .incbin "baserom.nds", 0x2C4C, 0x4 + .incbin "baserom.nds", 0x2C50, 0x4 + .incbin "baserom.nds", 0x2C54, 0x4 + .incbin "baserom.nds", 0x2C58, 0x4 + .incbin "baserom.nds", 0x2C5C, 0x4 + .incbin "baserom.nds", 0x2C60, 0x4 + .incbin "baserom.nds", 0x2C64, 0x4 + .incbin "baserom.nds", 0x2C68, 0x4 + .incbin "baserom.nds", 0x2C6C, 0x4 + .incbin "baserom.nds", 0x2C70, 0x4 + .incbin "baserom.nds", 0x2C74, 0x4 + .incbin "baserom.nds", 0x2C78, 0x4 + .incbin "baserom.nds", 0x2C7C, 0x4 + .incbin "baserom.nds", 0x2C80, 0x4 + .incbin "baserom.nds", 0x2C84, 0x4 + .incbin "baserom.nds", 0x2C88, 0x4 + .incbin "baserom.nds", 0x2C8C, 0x4 + .incbin "baserom.nds", 0x2C90, 0x4 + .incbin "baserom.nds", 0x2C94, 0x4 + .incbin "baserom.nds", 0x2C98, 0x4 + .incbin "baserom.nds", 0x2C9C, 0x4 + .incbin "baserom.nds", 0x2CA0, 0x4 + .incbin "baserom.nds", 0x2CA4, 0x4 + .incbin "baserom.nds", 0x2CA8, 0x4 + .incbin "baserom.nds", 0x2CAC, 0x4 + .incbin "baserom.nds", 0x2CB0, 0x8 + .incbin "baserom.nds", 0x2CB8, 0x4 + .incbin "baserom.nds", 0x2CBC, 0x4 + .incbin "baserom.nds", 0x2CC0, 0x4 + .incbin "baserom.nds", 0x2CC4, 0x4 + .incbin "baserom.nds", 0x2CC8, 0x4 + .incbin "baserom.nds", 0x2CCC, 0x4 + .incbin "baserom.nds", 0x2CD0, 0x4 + .incbin "baserom.nds", 0x2CD4, 0x4 + .incbin "baserom.nds", 0x2CD8, 0x4 + .incbin "baserom.nds", 0x2CDC, 0x4 + .incbin "baserom.nds", 0x2CE0, 0x4 + .incbin "baserom.nds", 0x2CE4, 0x4 + .incbin "baserom.nds", 0x2CE8, 0x4 + .incbin "baserom.nds", 0x2CEC, 0x4 + .incbin "baserom.nds", 0x2CF0, 0x4 + .incbin "baserom.nds", 0x2CF4, 0x4 + .incbin "baserom.nds", 0x2CF8, 0x8 + .incbin "baserom.nds", 0x2D00, 0x4 + .incbin "baserom.nds", 0x2D04, 0x4 + .incbin "baserom.nds", 0x2D08, 0x4 + .incbin "baserom.nds", 0x2D0C, 0x4 + .incbin "baserom.nds", 0x2D10, 0x4 + .incbin "baserom.nds", 0x2D14, 0x4 + .incbin "baserom.nds", 0x2D18, 0x4 + .incbin "baserom.nds", 0x2D1C, 0x4 + .incbin "baserom.nds", 0x2D20, 0x4 + .incbin "baserom.nds", 0x2D24, 0x4 + .incbin "baserom.nds", 0x2D28, 0x4 + .incbin "baserom.nds", 0x2D2C, 0x4 + .incbin "baserom.nds", 0x2D30, 0x4 + .incbin "baserom.nds", 0x2D34, 0x4 + .incbin "baserom.nds", 0x2D38, 0x4 + .incbin "baserom.nds", 0x2D3C, 0x4 + .incbin "baserom.nds", 0x2D40, 0x4 + .incbin "baserom.nds", 0x2D44, 0x4 + .incbin "baserom.nds", 0x2D48, 0x4 + .incbin "baserom.nds", 0x2D4C, 0x4 + .incbin "baserom.nds", 0x2D50, 0x4 + .incbin "baserom.nds", 0x2D54, 0x4 + .incbin "baserom.nds", 0x2D58, 0x4 + .incbin "baserom.nds", 0x2D5C, 0x4 + .incbin "baserom.nds", 0x2D60, 0x4 + .incbin "baserom.nds", 0x2D64, 0x4 + .incbin "baserom.nds", 0x2D68, 0x4 + .incbin "baserom.nds", 0x2D6C, 0x4 + .incbin "baserom.nds", 0x2D70, 0x4 + .incbin "baserom.nds", 0x2D74, 0x4 + .incbin "baserom.nds", 0x2D78, 0x4 + .incbin "baserom.nds", 0x2D7C, 0x4 + .incbin "baserom.nds", 0x2D80, 0x4 + .incbin "baserom.nds", 0x2D84, 0x8 + .incbin "baserom.nds", 0x2D8C, 0x4 + .incbin "baserom.nds", 0x2D90, 0x4 + .incbin "baserom.nds", 0x2D94, 0x4 + .incbin "baserom.nds", 0x2D98, 0x4 + .incbin "baserom.nds", 0x2D9C, 0x4 + .incbin "baserom.nds", 0x2DA0, 0x4 + .incbin "baserom.nds", 0x2DA4, 0x4 + .incbin "baserom.nds", 0x2DA8, 0x4 + .incbin "baserom.nds", 0x2DAC, 0x4 + .incbin "baserom.nds", 0x2DB0, 0x4 + .incbin "baserom.nds", 0x2DB4, 0x4 + .incbin "baserom.nds", 0x2DB8, 0x4 + .incbin "baserom.nds", 0x2DBC, 0x4 + .incbin "baserom.nds", 0x2DC0, 0x4 + .incbin "baserom.nds", 0x2DC4, 0x4 + .incbin "baserom.nds", 0x2DC8, 0x4 + .incbin "baserom.nds", 0x2DCC, 0x4 + .incbin "baserom.nds", 0x2DD0, 0x4 + .incbin "baserom.nds", 0x2DD4, 0x4 + .incbin "baserom.nds", 0x2DD8, 0x4 + .incbin "baserom.nds", 0x2DDC, 0x4 + .incbin "baserom.nds", 0x2DE0, 0x4 + .incbin "baserom.nds", 0x2DE4, 0x4 + .incbin "baserom.nds", 0x2DE8, 0x4 + .incbin "baserom.nds", 0x2DEC, 0x4 + .incbin "baserom.nds", 0x2DF0, 0x4 + .incbin "baserom.nds", 0x2DF4, 0x4 + .incbin "baserom.nds", 0x2DF8, 0x4 + .incbin "baserom.nds", 0x2DFC, 0x4 + .incbin "baserom.nds", 0x2E00, 0x4 + .incbin "baserom.nds", 0x2E04, 0x4 + .incbin "baserom.nds", 0x2E08, 0x4 + .incbin "baserom.nds", 0x2E0C, 0x4 + .incbin "baserom.nds", 0x2E10, 0x4 + .incbin "baserom.nds", 0x2E14, 0x4 + .incbin "baserom.nds", 0x2E18, 0x4 + .incbin "baserom.nds", 0x2E1C, 0x4 + .incbin "baserom.nds", 0x2E20, 0x4 + .incbin "baserom.nds", 0x2E24, 0x4 + .incbin "baserom.nds", 0x2E28, 0x4 + .incbin "baserom.nds", 0x2E2C, 0x4 + .incbin "baserom.nds", 0x2E30, 0x4 + .incbin "baserom.nds", 0x2E34, 0x4 + .incbin "baserom.nds", 0x2E38, 0x4 + .incbin "baserom.nds", 0x2E3C, 0x4 + .incbin "baserom.nds", 0x2E40, 0x4 + .incbin "baserom.nds", 0x2E44, 0x4 + .incbin "baserom.nds", 0x2E48, 0x8 + .incbin "baserom.nds", 0x2E50, 0x4 + .incbin "baserom.nds", 0x2E54, 0x8 + .incbin "baserom.nds", 0x2E5C, 0x8 + .incbin "baserom.nds", 0x2E64, 0x4 + .incbin "baserom.nds", 0x2E68, 0x4 + .incbin "baserom.nds", 0x2E6C, 0x4 + .incbin "baserom.nds", 0x2E70, 0x4 + .incbin "baserom.nds", 0x2E74, 0x4 + .incbin "baserom.nds", 0x2E78, 0x4 + .incbin "baserom.nds", 0x2E7C, 0x4 + .incbin "baserom.nds", 0x2E80, 0x4 + .incbin "baserom.nds", 0x2E84, 0x4 + .incbin "baserom.nds", 0x2E88, 0x4 + .incbin "baserom.nds", 0x2E8C, 0x4 + .incbin "baserom.nds", 0x2E90, 0x8 + .incbin "baserom.nds", 0x2E98, 0x4 + .incbin "baserom.nds", 0x2E9C, 0x4 + .incbin "baserom.nds", 0x2EA0, 0x8 + .incbin "baserom.nds", 0x2EA8, 0x4 + .incbin "baserom.nds", 0x2EAC, 0x4 + .incbin "baserom.nds", 0x2EB0, 0x4 + .incbin "baserom.nds", 0x2EB4, 0x4 + .incbin "baserom.nds", 0x2EB8, 0x8 + .incbin "baserom.nds", 0x2EC0, 0x4 + .incbin "baserom.nds", 0x2EC4, 0x4 + .incbin "baserom.nds", 0x2EC8, 0x4 + .incbin "baserom.nds", 0x2ECC, 0x4 + .incbin "baserom.nds", 0x2ED0, 0x4 + .incbin "baserom.nds", 0x2ED4, 0x4 + .incbin "baserom.nds", 0x2ED8, 0x4 + .incbin "baserom.nds", 0x2EDC, 0x4 + .incbin "baserom.nds", 0x2EE0, 0x4 + .incbin "baserom.nds", 0x2EE4, 0x4 + .incbin "baserom.nds", 0x2EE8, 0x4 + .incbin "baserom.nds", 0x2EEC, 0x4 + .incbin "baserom.nds", 0x2EF0, 0x4 + .incbin "baserom.nds", 0x2EF4, 0x4 + .incbin "baserom.nds", 0x2EF8, 0x4 + .incbin "baserom.nds", 0x2EFC, 0x4 + .incbin "baserom.nds", 0x2F00, 0x4 + .incbin "baserom.nds", 0x2F04, 0x4 + .incbin "baserom.nds", 0x2F08, 0x4 + .incbin "baserom.nds", 0x2F0C, 0x4 + .incbin "baserom.nds", 0x2F10, 0x4 + .incbin "baserom.nds", 0x2F14, 0x4 + .incbin "baserom.nds", 0x2F18, 0x4 + .incbin "baserom.nds", 0x2F1C, 0x4 + .incbin "baserom.nds", 0x2F20, 0x4 + .incbin "baserom.nds", 0x2F24, 0x4 + .incbin "baserom.nds", 0x2F28, 0x4 + .incbin "baserom.nds", 0x2F2C, 0x4 + .incbin "baserom.nds", 0x2F30, 0x4 + .incbin "baserom.nds", 0x2F34, 0x4 + .incbin "baserom.nds", 0x2F38, 0x8 + .incbin "baserom.nds", 0x2F40, 0x4 + .incbin "baserom.nds", 0x2F44, 0x8 + .incbin "baserom.nds", 0x2F4C, 0x4 + .incbin "baserom.nds", 0x2F50, 0x8 + .incbin "baserom.nds", 0x2F58, 0x4 + .incbin "baserom.nds", 0x2F5C, 0x4 + .incbin "baserom.nds", 0x2F60, 0x4 + .incbin "baserom.nds", 0x2F64, 0x4 + .incbin "baserom.nds", 0x2F68, 0x4 + .incbin "baserom.nds", 0x2F6C, 0x4 + .incbin "baserom.nds", 0x2F70, 0x4 + .incbin "baserom.nds", 0x2F74, 0x4 + .incbin "baserom.nds", 0x2F78, 0x4 + .incbin "baserom.nds", 0x2F7C, 0x4 + .incbin "baserom.nds", 0x2F80, 0x4 + .incbin "baserom.nds", 0x2F84, 0x4 + .incbin "baserom.nds", 0x2F88, 0x4 + .incbin "baserom.nds", 0x2F8C, 0x4 + .incbin "baserom.nds", 0x2F90, 0x4 + .incbin "baserom.nds", 0x2F94, 0x4 + .incbin "baserom.nds", 0x2F98, 0x4 + .incbin "baserom.nds", 0x2F9C, 0x4 + .incbin "baserom.nds", 0x2FA0, 0x4 + .incbin "baserom.nds", 0x2FA4, 0x4 + .incbin "baserom.nds", 0x2FA8, 0x4 + .incbin "baserom.nds", 0x2FAC, 0x4 + .incbin "baserom.nds", 0x2FB0, 0x4 + .incbin "baserom.nds", 0x2FB4, 0x4 + .incbin "baserom.nds", 0x2FB8, 0x4 + .incbin "baserom.nds", 0x2FBC, 0x4 + .incbin "baserom.nds", 0x2FC0, 0x4 + .incbin "baserom.nds", 0x2FC4, 0x4 + .incbin "baserom.nds", 0x2FC8, 0x4 + .incbin "baserom.nds", 0x2FCC, 0x4 + .incbin "baserom.nds", 0x2FD0, 0x4 + .incbin "baserom.nds", 0x2FD4, 0x4 + .incbin "baserom.nds", 0x2FD8, 0x4 + .incbin "baserom.nds", 0x2FDC, 0x4 + .incbin "baserom.nds", 0x2FE0, 0x4 + .incbin "baserom.nds", 0x2FE4, 0x4 + .incbin "baserom.nds", 0x2FE8, 0x4 + .incbin "baserom.nds", 0x2FEC, 0x4 + .incbin "baserom.nds", 0x2FF0, 0x4 + .incbin "baserom.nds", 0x2FF4, 0x4 + .incbin "baserom.nds", 0x2FF8, 0x4 + .incbin "baserom.nds", 0x2FFC, 0x4 + .incbin "baserom.nds", 0x3000, 0x4 + .incbin "baserom.nds", 0x3004, 0x4 + .incbin "baserom.nds", 0x3008, 0x4 + .incbin "baserom.nds", 0x300C, 0x4 + .incbin "baserom.nds", 0x3010, 0x4 + .incbin "baserom.nds", 0x3014, 0x4 + .incbin "baserom.nds", 0x3018, 0x4 + .incbin "baserom.nds", 0x301C, 0x4 + .incbin "baserom.nds", 0x3020, 0x4 + .incbin "baserom.nds", 0x3024, 0x4 + .incbin "baserom.nds", 0x3028, 0x4 + .incbin "baserom.nds", 0x302C, 0x4 + .incbin "baserom.nds", 0x3030, 0x4 + .incbin "baserom.nds", 0x3034, 0x4 + .incbin "baserom.nds", 0x3038, 0x4 + .incbin "baserom.nds", 0x303C, 0x4 + .incbin "baserom.nds", 0x3040, 0x4 + .incbin "baserom.nds", 0x3044, 0x4 + .incbin "baserom.nds", 0x3048, 0x4 + .incbin "baserom.nds", 0x304C, 0x4 + .incbin "baserom.nds", 0x3050, 0x4 + .incbin "baserom.nds", 0x3054, 0x4 + .incbin "baserom.nds", 0x3058, 0x8 + .incbin "baserom.nds", 0x3060, 0x4 + .incbin "baserom.nds", 0x3064, 0x4 + .incbin "baserom.nds", 0x3068, 0x4 + .incbin "baserom.nds", 0x306C, 0x4 + .incbin "baserom.nds", 0x3070, 0x4 + .incbin "baserom.nds", 0x3074, 0x4 + .incbin "baserom.nds", 0x3078, 0x4 + .incbin "baserom.nds", 0x307C, 0x4 + .incbin "baserom.nds", 0x3080, 0x4 + .incbin "baserom.nds", 0x3084, 0xC + .incbin "baserom.nds", 0x3090, 0x4 + .incbin "baserom.nds", 0x3094, 0x4 + .incbin "baserom.nds", 0x3098, 0x4 + .incbin "baserom.nds", 0x309C, 0x8 + .incbin "baserom.nds", 0x30A4, 0x4 + .incbin "baserom.nds", 0x30A8, 0x18 + .incbin "baserom.nds", 0x30C0, 0x10 + .incbin "baserom.nds", 0x30D0, 0x4 + .incbin "baserom.nds", 0x30D4, 0x4 + .incbin "baserom.nds", 0x30D8, 0x4 + .incbin "baserom.nds", 0x30DC, 0x8 + .incbin "baserom.nds", 0x30E4, 0x4 + .incbin "baserom.nds", 0x30E8, 0x4 + .incbin "baserom.nds", 0x30EC, 0x4 + .incbin "baserom.nds", 0x30F0, 0x4 + .incbin "baserom.nds", 0x30F4, 0x4 + .incbin "baserom.nds", 0x30F8, 0x8 + .incbin "baserom.nds", 0x3100, 0x4 + .incbin "baserom.nds", 0x3104, 0xC + .incbin "baserom.nds", 0x3110, 0xC + .incbin "baserom.nds", 0x311C, 0x4 + .incbin "baserom.nds", 0x3120, 0x4 + .incbin "baserom.nds", 0x3124, 0x4 + .incbin "baserom.nds", 0x3128, 0x4 + .incbin "baserom.nds", 0x312C, 0x4 + .incbin "baserom.nds", 0x3130, 0x4 + .incbin "baserom.nds", 0x3134, 0x4 + .incbin "baserom.nds", 0x3138, 0x4 + .incbin "baserom.nds", 0x313C, 0x8 + .incbin "baserom.nds", 0x3144, 0x4 + .incbin "baserom.nds", 0x3148, 0x8 + .incbin "baserom.nds", 0x3150, 0xC + .incbin "baserom.nds", 0x315C, 0x4 + .incbin "baserom.nds", 0x3160, 0x4 + .incbin "baserom.nds", 0x3164, 0x4 + .incbin "baserom.nds", 0x3168, 0x4 + .incbin "baserom.nds", 0x316C, 0x4 + .incbin "baserom.nds", 0x3170, 0x4 + .incbin "baserom.nds", 0x3174, 0x1C + .incbin "baserom.nds", 0x3190, 0x8 + .incbin "baserom.nds", 0x3198, 0x4 + .incbin "baserom.nds", 0x319C, 0x4 + .incbin "baserom.nds", 0x31A0, 0x4 + .incbin "baserom.nds", 0x31A4, 0x4 + .incbin "baserom.nds", 0x31A8, 0x4 + .incbin "baserom.nds", 0x31AC, 0x4 + .incbin "baserom.nds", 0x31B0, 0x4 + .incbin "baserom.nds", 0x31B4, 0x4 + .incbin "baserom.nds", 0x31B8, 0x4 + .incbin "baserom.nds", 0x31BC, 0x4 + .incbin "baserom.nds", 0x31C0, 0x4 + .incbin "baserom.nds", 0x31C4, 0x4 + .incbin "baserom.nds", 0x31C8, 0x4 + .incbin "baserom.nds", 0x31CC, 0x4 + .incbin "baserom.nds", 0x31D0, 0x4 + .incbin "baserom.nds", 0x31D4, 0x4 + .incbin "baserom.nds", 0x31D8, 0xC + .incbin "baserom.nds", 0x31E4, 0x8 + .incbin "baserom.nds", 0x31EC, 0x4 + .incbin "baserom.nds", 0x31F0, 0x10 + .incbin "baserom.nds", 0x3200, 0x4 + .incbin "baserom.nds", 0x3204, 0x4 + .incbin "baserom.nds", 0x3208, 0x4 + .incbin "baserom.nds", 0x320C, 0x4 + .incbin "baserom.nds", 0x3210, 0x4 + .incbin "baserom.nds", 0x3214, 0x4 + .incbin "baserom.nds", 0x3218, 0x8 + .incbin "baserom.nds", 0x3220, 0x4 + .incbin "baserom.nds", 0x3224, 0x4 + .incbin "baserom.nds", 0x3228, 0x4 + .incbin "baserom.nds", 0x322C, 0x4 + .incbin "baserom.nds", 0x3230, 0x4 + .incbin "baserom.nds", 0x3234, 0x4 + .incbin "baserom.nds", 0x3238, 0x4 + .incbin "baserom.nds", 0x323C, 0x8 + .incbin "baserom.nds", 0x3244, 0x4 + .incbin "baserom.nds", 0x3248, 0x4 + .incbin "baserom.nds", 0x324C, 0x8 + .incbin "baserom.nds", 0x3254, 0x4 + .incbin "baserom.nds", 0x3258, 0x8 + .incbin "baserom.nds", 0x3260, 0x4 + .incbin "baserom.nds", 0x3264, 0x4 + .incbin "baserom.nds", 0x3268, 0x4 + .incbin "baserom.nds", 0x326C, 0x4 + .incbin "baserom.nds", 0x3270, 0x4 + .incbin "baserom.nds", 0x3274, 0x4 + .incbin "baserom.nds", 0x3278, 0x4 + .incbin "baserom.nds", 0x327C, 0x4 + .incbin "baserom.nds", 0x3280, 0x4 + .incbin "baserom.nds", 0x3284, 0x4 + .incbin "baserom.nds", 0x3288, 0x4 + .incbin "baserom.nds", 0x328C, 0x4 + .incbin "baserom.nds", 0x3290, 0x4 + .incbin "baserom.nds", 0x3294, 0x4 + .incbin "baserom.nds", 0x3298, 0x4 + .incbin "baserom.nds", 0x329C, 0x4 + .incbin "baserom.nds", 0x32A0, 0x4 + .incbin "baserom.nds", 0x32A4, 0x8 + .incbin "baserom.nds", 0x32AC, 0x4 + .incbin "baserom.nds", 0x32B0, 0x4 + .incbin "baserom.nds", 0x32B4, 0x4 + .incbin "baserom.nds", 0x32B8, 0x8 + .incbin "baserom.nds", 0x32C0, 0x4 + .incbin "baserom.nds", 0x32C4, 0x4 + .incbin "baserom.nds", 0x32C8, 0x4 + .incbin "baserom.nds", 0x32CC, 0x4 + .incbin "baserom.nds", 0x32D0, 0x4 + .incbin "baserom.nds", 0x32D4, 0x4 + .incbin "baserom.nds", 0x32D8, 0x4 + .incbin "baserom.nds", 0x32DC, 0x4 + .incbin "baserom.nds", 0x32E0, 0x4 + .incbin "baserom.nds", 0x32E4, 0x4 + .incbin "baserom.nds", 0x32E8, 0x4 + .incbin "baserom.nds", 0x32EC, 0x4 + .incbin "baserom.nds", 0x32F0, 0x4 + .incbin "baserom.nds", 0x32F4, 0x4 + .incbin "baserom.nds", 0x32F8, 0x4 + .incbin "baserom.nds", 0x32FC, 0x4 + .incbin "baserom.nds", 0x3300, 0x4 + .incbin "baserom.nds", 0x3304, 0x4 + .incbin "baserom.nds", 0x3308, 0x4 + .incbin "baserom.nds", 0x330C, 0x4 + .incbin "baserom.nds", 0x3310, 0x4 + .incbin "baserom.nds", 0x3314, 0x4 + .incbin "baserom.nds", 0x3318, 0x4 + .incbin "baserom.nds", 0x331C, 0x4 + .incbin "baserom.nds", 0x3320, 0x4 + .incbin "baserom.nds", 0x3324, 0x4 + .incbin "baserom.nds", 0x3328, 0x4 + .incbin "baserom.nds", 0x332C, 0x4 + .incbin "baserom.nds", 0x3330, 0x4 + .incbin "baserom.nds", 0x3334, 0x4 + .incbin "baserom.nds", 0x3338, 0x4 + .incbin "baserom.nds", 0x333C, 0x4 + .incbin "baserom.nds", 0x3340, 0x4 + .incbin "baserom.nds", 0x3344, 0x4 + .incbin "baserom.nds", 0x3348, 0x8 + .incbin "baserom.nds", 0x3350, 0xC + .incbin "baserom.nds", 0x335C, 0x8 + .incbin "baserom.nds", 0x3364, 0x4 + .incbin "baserom.nds", 0x3368, 0x4 + .incbin "baserom.nds", 0x336C, 0x4 + .incbin "baserom.nds", 0x3370, 0x4 + .incbin "baserom.nds", 0x3374, 0x4 + .incbin "baserom.nds", 0x3378, 0x4 + .incbin "baserom.nds", 0x337C, 0x4 + .incbin "baserom.nds", 0x3380, 0x4 + .incbin "baserom.nds", 0x3384, 0xC + .incbin "baserom.nds", 0x3390, 0x4 + .incbin "baserom.nds", 0x3394, 0x4 + .incbin "baserom.nds", 0x3398, 0x4 + .incbin "baserom.nds", 0x339C, 0x4 + .incbin "baserom.nds", 0x33A0, 0x4 + .incbin "baserom.nds", 0x33A4, 0x4 + .incbin "baserom.nds", 0x33A8, 0x8 + .incbin "baserom.nds", 0x33B0, 0x4 + .incbin "baserom.nds", 0x33B4, 0x4 + .incbin "baserom.nds", 0x33B8, 0x8 + .incbin "baserom.nds", 0x33C0, 0x4 + .incbin "baserom.nds", 0x33C4, 0x8 + .incbin "baserom.nds", 0x33CC, 0x4 + .incbin "baserom.nds", 0x33D0, 0x4 + .incbin "baserom.nds", 0x33D4, 0x4 + .incbin "baserom.nds", 0x33D8, 0x4 + .incbin "baserom.nds", 0x33DC, 0x4 + .incbin "baserom.nds", 0x33E0, 0x8 + .incbin "baserom.nds", 0x33E8, 0x10 + .incbin "baserom.nds", 0x33F8, 0x4 + .incbin "baserom.nds", 0x33FC, 0x4 + .incbin "baserom.nds", 0x3400, 0x4 + .incbin "baserom.nds", 0x3404, 0x4 + .incbin "baserom.nds", 0x3408, 0x4 + .incbin "baserom.nds", 0x340C, 0xC + .incbin "baserom.nds", 0x3418, 0x4 + .incbin "baserom.nds", 0x341C, 0x4 + .incbin "baserom.nds", 0x3420, 0x4 + .incbin "baserom.nds", 0x3424, 0x4 + .incbin "baserom.nds", 0x3428, 0x4 + .incbin "baserom.nds", 0x342C, 0x8 + .incbin "baserom.nds", 0x3434, 0x8 + .incbin "baserom.nds", 0x343C, 0x4 + .incbin "baserom.nds", 0x3440, 0x4 + .incbin "baserom.nds", 0x3444, 0x8 + .incbin "baserom.nds", 0x344C, 0x8 + .incbin "baserom.nds", 0x3454, 0x4 + .incbin "baserom.nds", 0x3458, 0x4 + .incbin "baserom.nds", 0x345C, 0x4 + .incbin "baserom.nds", 0x3460, 0x4 + .incbin "baserom.nds", 0x3464, 0x4 + .incbin "baserom.nds", 0x3468, 0x4 + .incbin "baserom.nds", 0x346C, 0x4 + .incbin "baserom.nds", 0x3470, 0x4 + .incbin "baserom.nds", 0x3474, 0x4 + .incbin "baserom.nds", 0x3478, 0x4 + .incbin "baserom.nds", 0x347C, 0x4 + .incbin "baserom.nds", 0x3480, 0x4 + .incbin "baserom.nds", 0x3484, 0x4 + .incbin "baserom.nds", 0x3488, 0x4 + .incbin "baserom.nds", 0x348C, 0x4 + .incbin "baserom.nds", 0x3490, 0x4 + .incbin "baserom.nds", 0x3494, 0x4 + .incbin "baserom.nds", 0x3498, 0x4 + .incbin "baserom.nds", 0x349C, 0x4 + .incbin "baserom.nds", 0x34A0, 0x4 + .incbin "baserom.nds", 0x34A4, 0x4 + .incbin "baserom.nds", 0x34A8, 0x4 + .incbin "baserom.nds", 0x34AC, 0x4 + .incbin "baserom.nds", 0x34B0, 0x4 + .incbin "baserom.nds", 0x34B4, 0x4 + .incbin "baserom.nds", 0x34B8, 0x4 + .incbin "baserom.nds", 0x34BC, 0x4 + .incbin "baserom.nds", 0x34C0, 0x4 + .incbin "baserom.nds", 0x34C4, 0x4 + .incbin "baserom.nds", 0x34C8, 0x4 + .incbin "baserom.nds", 0x34CC, 0x4 + .incbin "baserom.nds", 0x34D0, 0x4 + .incbin "baserom.nds", 0x34D4, 0x4 + .incbin "baserom.nds", 0x34D8, 0x4 + .incbin "baserom.nds", 0x34DC, 0x4 + .incbin "baserom.nds", 0x34E0, 0x4 + .incbin "baserom.nds", 0x34E4, 0x4 + .incbin "baserom.nds", 0x34E8, 0x4 + .incbin "baserom.nds", 0x34EC, 0x4 + .incbin "baserom.nds", 0x34F0, 0x4 + .incbin "baserom.nds", 0x34F4, 0x4 + .incbin "baserom.nds", 0x34F8, 0x4 + .incbin "baserom.nds", 0x34FC, 0x4 + .incbin "baserom.nds", 0x3500, 0x4 + .incbin "baserom.nds", 0x3504, 0x4 + .incbin "baserom.nds", 0x3508, 0x8 + .incbin "baserom.nds", 0x3510, 0x4 + .incbin "baserom.nds", 0x3514, 0x4 + .incbin "baserom.nds", 0x3518, 0x8 + .incbin "baserom.nds", 0x3520, 0x4 + .incbin "baserom.nds", 0x3524, 0x4 + .incbin "baserom.nds", 0x3528, 0x4 + .incbin "baserom.nds", 0x352C, 0x4 + .incbin "baserom.nds", 0x3530, 0x4 + .incbin "baserom.nds", 0x3534, 0x4 + .incbin "baserom.nds", 0x3538, 0x4 + .incbin "baserom.nds", 0x353C, 0x4 + .incbin "baserom.nds", 0x3540, 0x4 + .incbin "baserom.nds", 0x3544, 0x4 + .incbin "baserom.nds", 0x3548, 0x4 + .incbin "baserom.nds", 0x354C, 0x4 + .incbin "baserom.nds", 0x3550, 0x4 + .incbin "baserom.nds", 0x3554, 0x4 + .incbin "baserom.nds", 0x3558, 0x4 + .incbin "baserom.nds", 0x355C, 0x4 + .incbin "baserom.nds", 0x3560, 0x8 + .incbin "baserom.nds", 0x3568, 0x4 + .incbin "baserom.nds", 0x356C, 0x4 + .incbin "baserom.nds", 0x3570, 0x4 + .incbin "baserom.nds", 0x3574, 0x4 + .incbin "baserom.nds", 0x3578, 0x8 + .incbin "baserom.nds", 0x3580, 0x4 + .incbin "baserom.nds", 0x3584, 0x4 + .incbin "baserom.nds", 0x3588, 0x4 + .incbin "baserom.nds", 0x358C, 0x8 + .incbin "baserom.nds", 0x3594, 0x4 + .incbin "baserom.nds", 0x3598, 0x4 + .incbin "baserom.nds", 0x359C, 0x4 + .incbin "baserom.nds", 0x35A0, 0xC + .incbin "baserom.nds", 0x35AC, 0x4 + .incbin "baserom.nds", 0x35B0, 0x4 + .incbin "baserom.nds", 0x35B4, 0x4 + .incbin "baserom.nds", 0x35B8, 0x4 + .incbin "baserom.nds", 0x35BC, 0x4 + .incbin "baserom.nds", 0x35C0, 0x4 + .incbin "baserom.nds", 0x35C4, 0x4 + .incbin "baserom.nds", 0x35C8, 0x4 + .incbin "baserom.nds", 0x35CC, 0x8 + .incbin "baserom.nds", 0x35D4, 0xC + .incbin "baserom.nds", 0x35E0, 0x4 + .incbin "baserom.nds", 0x35E4, 0x4 + .incbin "baserom.nds", 0x35E8, 0x8 + .incbin "baserom.nds", 0x35F0, 0x8 + .incbin "baserom.nds", 0x35F8, 0x4 + .incbin "baserom.nds", 0x35FC, 0x4 + .incbin "baserom.nds", 0x3600, 0xC + .incbin "baserom.nds", 0x360C, 0x8 + .incbin "baserom.nds", 0x3614, 0x4 + .incbin "baserom.nds", 0x3618, 0x4 + .incbin "baserom.nds", 0x361C, 0x4 + .incbin "baserom.nds", 0x3620, 0x4 + .incbin "baserom.nds", 0x3624, 0x4 + .incbin "baserom.nds", 0x3628, 0x4 + .incbin "baserom.nds", 0x362C, 0x4 + .incbin "baserom.nds", 0x3630, 0x4 + .incbin "baserom.nds", 0x3634, 0x4 + .incbin "baserom.nds", 0x3638, 0x4 + .incbin "baserom.nds", 0x363C, 0x4 + .incbin "baserom.nds", 0x3640, 0x4 + .incbin "baserom.nds", 0x3644, 0x4 + .incbin "baserom.nds", 0x3648, 0x4 + .incbin "baserom.nds", 0x364C, 0x4 + .incbin "baserom.nds", 0x3650, 0x4 + .incbin "baserom.nds", 0x3654, 0x4 + .incbin "baserom.nds", 0x3658, 0x4 + .incbin "baserom.nds", 0x365C, 0x4 + .incbin "baserom.nds", 0x3660, 0x4 + .incbin "baserom.nds", 0x3664, 0x4 + .incbin "baserom.nds", 0x3668, 0x4 + .incbin "baserom.nds", 0x366C, 0x4 + .incbin "baserom.nds", 0x3670, 0x4 + .incbin "baserom.nds", 0x3674, 0x4 + .incbin "baserom.nds", 0x3678, 0x4 + .incbin "baserom.nds", 0x367C, 0x4 + .incbin "baserom.nds", 0x3680, 0x4 + .incbin "baserom.nds", 0x3684, 0x4 + .incbin "baserom.nds", 0x3688, 0x4 + .incbin "baserom.nds", 0x368C, 0x4 + .incbin "baserom.nds", 0x3690, 0x4 + .incbin "baserom.nds", 0x3694, 0x8 + .incbin "baserom.nds", 0x369C, 0x4 + .incbin "baserom.nds", 0x36A0, 0x8 + .incbin "baserom.nds", 0x36A8, 0x4 + .incbin "baserom.nds", 0x36AC, 0x4 + .incbin "baserom.nds", 0x36B0, 0x4 + .incbin "baserom.nds", 0x36B4, 0x4 + .incbin "baserom.nds", 0x36B8, 0x4 + .incbin "baserom.nds", 0x36BC, 0x4 + .incbin "baserom.nds", 0x36C0, 0x4 + .incbin "baserom.nds", 0x36C4, 0x4 + .incbin "baserom.nds", 0x36C8, 0x4 + .incbin "baserom.nds", 0x36CC, 0x4 + .incbin "baserom.nds", 0x36D0, 0x4 + .incbin "baserom.nds", 0x36D4, 0x4 + .incbin "baserom.nds", 0x36D8, 0x4 + .incbin "baserom.nds", 0x36DC, 0x4 + .incbin "baserom.nds", 0x36E0, 0x4 + .incbin "baserom.nds", 0x36E4, 0x4 + .incbin "baserom.nds", 0x36E8, 0x4 + .incbin "baserom.nds", 0x36EC, 0x4 + .incbin "baserom.nds", 0x36F0, 0x4 + .incbin "baserom.nds", 0x36F4, 0x4 + .incbin "baserom.nds", 0x36F8, 0x4 + .incbin "baserom.nds", 0x36FC, 0x4 + .incbin "baserom.nds", 0x3700, 0x4 + .incbin "baserom.nds", 0x3704, 0x4 + .incbin "baserom.nds", 0x3708, 0x4 + .incbin "baserom.nds", 0x370C, 0x4 + .incbin "baserom.nds", 0x3710, 0x4 + .incbin "baserom.nds", 0x3714, 0x4 + .incbin "baserom.nds", 0x3718, 0x4 + .incbin "baserom.nds", 0x371C, 0x4 + .incbin "baserom.nds", 0x3720, 0x4 + .incbin "baserom.nds", 0x3724, 0x4 + .incbin "baserom.nds", 0x3728, 0x4 + .incbin "baserom.nds", 0x372C, 0x4 + .incbin "baserom.nds", 0x3730, 0x4 + .incbin "baserom.nds", 0x3734, 0x4 + .incbin "baserom.nds", 0x3738, 0x4 + .incbin "baserom.nds", 0x373C, 0x4 + .incbin "baserom.nds", 0x3740, 0x4 + .incbin "baserom.nds", 0x3744, 0x4 + .incbin "baserom.nds", 0x3748, 0x4 + .incbin "baserom.nds", 0x374C, 0x4 + .incbin "baserom.nds", 0x3750, 0x4 + .incbin "baserom.nds", 0x3754, 0x4 + .incbin "baserom.nds", 0x3758, 0x4 + .incbin "baserom.nds", 0x375C, 0xC + .incbin "baserom.nds", 0x3768, 0x4 + .incbin "baserom.nds", 0x376C, 0x8 + .incbin "baserom.nds", 0x3774, 0x8 + .incbin "baserom.nds", 0x377C, 0x4 + .incbin "baserom.nds", 0x3780, 0x8 + .incbin "baserom.nds", 0x3788, 0x4 + .incbin "baserom.nds", 0x378C, 0x4 + .incbin "baserom.nds", 0x3790, 0x4 + .incbin "baserom.nds", 0x3794, 0x4 + .incbin "baserom.nds", 0x3798, 0x4 + .incbin "baserom.nds", 0x379C, 0x4 + .incbin "baserom.nds", 0x37A0, 0x4 + .incbin "baserom.nds", 0x37A4, 0x4 + .incbin "baserom.nds", 0x37A8, 0x4 + .incbin "baserom.nds", 0x37AC, 0x8 + .incbin "baserom.nds", 0x37B4, 0x4 + .incbin "baserom.nds", 0x37B8, 0x4 + .incbin "baserom.nds", 0x37BC, 0x8 + .incbin "baserom.nds", 0x37C4, 0x4 + .incbin "baserom.nds", 0x37C8, 0x4 + .incbin "baserom.nds", 0x37CC, 0x4 + .incbin "baserom.nds", 0x37D0, 0x8 + .incbin "baserom.nds", 0x37D8, 0x8 + .incbin "baserom.nds", 0x37E0, 0x4 + .incbin "baserom.nds", 0x37E4, 0x4 + .incbin "baserom.nds", 0x37E8, 0x4 + .incbin "baserom.nds", 0x37EC, 0x4 + .incbin "baserom.nds", 0x37F0, 0x4 + .incbin "baserom.nds", 0x37F4, 0x4 + .incbin "baserom.nds", 0x37F8, 0x4 + .incbin "baserom.nds", 0x37FC, 0x4 + .incbin "baserom.nds", 0x3800, 0x4 + .incbin "baserom.nds", 0x3804, 0x4 + .incbin "baserom.nds", 0x3808, 0x4 + .incbin "baserom.nds", 0x380C, 0x4 + .incbin "baserom.nds", 0x3810, 0x4 + .incbin "baserom.nds", 0x3814, 0x4 + .incbin "baserom.nds", 0x3818, 0x4 + .incbin "baserom.nds", 0x381C, 0x10 + .incbin "baserom.nds", 0x382C, 0xC + .incbin "baserom.nds", 0x3838, 0x8 + .incbin "baserom.nds", 0x3840, 0x8 + .incbin "baserom.nds", 0x3848, 0x8 + .incbin "baserom.nds", 0x3850, 0x4 + .incbin "baserom.nds", 0x3854, 0x4 + .incbin "baserom.nds", 0x3858, 0x8 + .incbin "baserom.nds", 0x3860, 0x4 + .incbin "baserom.nds", 0x3864, 0x4 + .incbin "baserom.nds", 0x3868, 0x4 + .incbin "baserom.nds", 0x386C, 0x4 + .incbin "baserom.nds", 0x3870, 0x4 + .incbin "baserom.nds", 0x3874, 0x8 + .incbin "baserom.nds", 0x387C, 0x4 + .incbin "baserom.nds", 0x3880, 0x8 + .incbin "baserom.nds", 0x3888, 0x8 + .incbin "baserom.nds", 0x3890, 0x8 + .incbin "baserom.nds", 0x3898, 0x8 + .incbin "baserom.nds", 0x38A0, 0x8 + .incbin "baserom.nds", 0x38A8, 0x4 + .incbin "baserom.nds", 0x38AC, 0x4 + .incbin "baserom.nds", 0x38B0, 0x4 + .incbin "baserom.nds", 0x38B4, 0x4 + .incbin "baserom.nds", 0x38B8, 0x4 + .incbin "baserom.nds", 0x38BC, 0x4 + .incbin "baserom.nds", 0x38C0, 0x4 + .incbin "baserom.nds", 0x38C4, 0x4 + .incbin "baserom.nds", 0x38C8, 0x4 + .incbin "baserom.nds", 0x38CC, 0x4 + .incbin "baserom.nds", 0x38D0, 0x4 + .incbin "baserom.nds", 0x38D4, 0x4 + .incbin "baserom.nds", 0x38D8, 0x4 + .incbin "baserom.nds", 0x38DC, 0x4 + .incbin "baserom.nds", 0x38E0, 0x4 + .incbin "baserom.nds", 0x38E4, 0x4 + .incbin "baserom.nds", 0x38E8, 0x4 + .incbin "baserom.nds", 0x38EC, 0x4 + .incbin "baserom.nds", 0x38F0, 0x4 + .incbin "baserom.nds", 0x38F4, 0x4 + .incbin "baserom.nds", 0x38F8, 0x4 + .incbin "baserom.nds", 0x38FC, 0x4 + .incbin "baserom.nds", 0x3900, 0x4 + .incbin "baserom.nds", 0x3904, 0x4 + .incbin "baserom.nds", 0x3908, 0x4 + .incbin "baserom.nds", 0x390C, 0x4 + .incbin "baserom.nds", 0x3910, 0x4 + .incbin "baserom.nds", 0x3914, 0x4 + .incbin "baserom.nds", 0x3918, 0x4 + .incbin "baserom.nds", 0x391C, 0x4 + .incbin "baserom.nds", 0x3920, 0x4 + .incbin "baserom.nds", 0x3924, 0x4 + .incbin "baserom.nds", 0x3928, 0x4 + .incbin "baserom.nds", 0x392C, 0x4 + .incbin "baserom.nds", 0x3930, 0x4 + .incbin "baserom.nds", 0x3934, 0x4 + .incbin "baserom.nds", 0x3938, 0x4 + .incbin "baserom.nds", 0x393C, 0x4 + .incbin "baserom.nds", 0x3940, 0x4 + .incbin "baserom.nds", 0x3944, 0x68 + .incbin "baserom.nds", 0x39AC, 0x4 + .incbin "baserom.nds", 0x39B0, 0x4 + .incbin "baserom.nds", 0x39B4, 0x4 + .incbin "baserom.nds", 0x39B8, 0x4 + .incbin "baserom.nds", 0x39BC, 0x4 + .incbin "baserom.nds", 0x39C0, 0x4 + .incbin "baserom.nds", 0x39C4, 0x4 + .incbin "baserom.nds", 0x39C8, 0x4 + .incbin "baserom.nds", 0x39CC, 0x4 + .incbin "baserom.nds", 0x39D0, 0x4 + .incbin "baserom.nds", 0x39D4, 0x4 + .incbin "baserom.nds", 0x39D8, 0x4 + .incbin "baserom.nds", 0x39DC, 0x4 + .incbin "baserom.nds", 0x39E0, 0x4 + .incbin "baserom.nds", 0x39E4, 0x4 + .incbin "baserom.nds", 0x39E8, 0x4 + .incbin "baserom.nds", 0x39EC, 0x4 + .incbin "baserom.nds", 0x39F0, 0x4 + .incbin "baserom.nds", 0x39F4, 0xC + .incbin "baserom.nds", 0x3A00, 0xC + .incbin "baserom.nds", 0x3A0C, 0xC + .incbin "baserom.nds", 0x3A18, 0x14 + .incbin "baserom.nds", 0x3A2C, 0x4 + .incbin "baserom.nds", 0x3A30, 0x4 + .incbin "baserom.nds", 0x3A34, 0x4 + .incbin "baserom.nds", 0x3A38, 0x4 + .incbin "baserom.nds", 0x3A3C, 0x4 + .incbin "baserom.nds", 0x3A40, 0x4 + .incbin "baserom.nds", 0x3A44, 0x4 + .incbin "baserom.nds", 0x3A48, 0x4 + .incbin "baserom.nds", 0x3A4C, 0x4 + .incbin "baserom.nds", 0x3A50, 0x4 + .incbin "baserom.nds", 0x3A54, 0x4 + .incbin "baserom.nds", 0x3A58, 0x4 + .incbin "baserom.nds", 0x3A5C, 0x4 + .incbin "baserom.nds", 0x3A60, 0x4 + .incbin "baserom.nds", 0x3A64, 0x4 + .incbin "baserom.nds", 0x3A68, 0x4 + .incbin "baserom.nds", 0x3A6C, 0x4 + .incbin "baserom.nds", 0x3A70, 0x4 + .incbin "baserom.nds", 0x3A74, 0x4 + .incbin "baserom.nds", 0x3A78, 0x4 + .incbin "baserom.nds", 0x3A7C, 0xC + .incbin "baserom.nds", 0x3A88, 0x10 + .incbin "baserom.nds", 0x3A98, 0x4 + .incbin "baserom.nds", 0x3A9C, 0x4 + .incbin "baserom.nds", 0x3AA0, 0x4 + .incbin "baserom.nds", 0x3AA4, 0x4 + .incbin "baserom.nds", 0x3AA8, 0x4 + .incbin "baserom.nds", 0x3AAC, 0x8 + .incbin "baserom.nds", 0x3AB4, 0x8 + .incbin "baserom.nds", 0x3ABC, 0x4 + .incbin "baserom.nds", 0x3AC0, 0x4 + .incbin "baserom.nds", 0x3AC4, 0x34 + .incbin "baserom.nds", 0x3AF8, 0x44 + .incbin "baserom.nds", 0x3B3C, 0x4 + .incbin "baserom.nds", 0x3B40, 0x4 + .incbin "baserom.nds", 0x3B44, 0x4 + .incbin "baserom.nds", 0x3B48, 0x4 + .incbin "baserom.nds", 0x3B4C, 0x10 + .incbin "baserom.nds", 0x3B5C, 0x10 + .incbin "baserom.nds", 0x3B6C, 0x4 + .incbin "baserom.nds", 0x3B70, 0xC + .incbin "baserom.nds", 0x3B7C, 0x8 + .incbin "baserom.nds", 0x3B84, 0x4 + .incbin "baserom.nds", 0x3B88, 0x10 + .incbin "baserom.nds", 0x3B98, 0x20 + .incbin "baserom.nds", 0x3BB8, 0x4 + .incbin "baserom.nds", 0x3BBC, 0xC + .incbin "baserom.nds", 0x3BC8, 0x10 + .incbin "baserom.nds", 0x3BD8, 0x4 + .incbin "baserom.nds", 0x3BDC, 0x34 + .incbin "baserom.nds", 0x3C10, 0x4C + .incbin "baserom.nds", 0x3C5C, 0x20 + .incbin "baserom.nds", 0x3C7C, 0x1C + .incbin "baserom.nds", 0x3C98, 0x4 + .incbin "baserom.nds", 0x3C9C, 0x1C + .incbin "baserom.nds", 0x3CB8, 0x4 + .incbin "baserom.nds", 0x3CBC, 0x4 + .incbin "baserom.nds", 0x3CC0, 0x4 + .incbin "baserom.nds", 0x3CC4, 0x4 + .incbin "baserom.nds", 0x3CC8, 0x4 + .incbin "baserom.nds", 0x3CCC, 0x4 + .incbin "baserom.nds", 0x3CD0, 0x4 + .incbin "baserom.nds", 0x3CD4, 0x4 + .incbin "baserom.nds", 0x3CD8, 0x4 + .incbin "baserom.nds", 0x3CDC, 0x4 + .incbin "baserom.nds", 0x3CE0, 0x4 + .incbin "baserom.nds", 0x3CE4, 0x4 + .incbin "baserom.nds", 0x3CE8, 0x10 + .incbin "baserom.nds", 0x3CF8, 0x4 + .incbin "baserom.nds", 0x3CFC, 0x4 + .incbin "baserom.nds", 0x3D00, 0x4 + .incbin "baserom.nds", 0x3D04, 0x4 + .incbin "baserom.nds", 0x3D08, 0x4 + .incbin "baserom.nds", 0x3D0C, 0x4 + .incbin "baserom.nds", 0x3D10, 0x4 + .incbin "baserom.nds", 0x3D14, 0x4 + .incbin "baserom.nds", 0x3D18, 0x4 + .incbin "baserom.nds", 0x3D1C, 0x4 + .incbin "baserom.nds", 0x3D20, 0x4 + .incbin "baserom.nds", 0x3D24, 0x4 + .incbin "baserom.nds", 0x3D28, 0x4 + .incbin "baserom.nds", 0x3D2C, 0x4 + .incbin "baserom.nds", 0x3D30, 0x4 + .incbin "baserom.nds", 0x3D34, 0x4 + .incbin "baserom.nds", 0x3D38, 0x4 + .incbin "baserom.nds", 0x3D3C, 0x4 + .incbin "baserom.nds", 0x3D40, 0x4 + .incbin "baserom.nds", 0x3D44, 0xC + .incbin "baserom.nds", 0x3D50, 0xC + .incbin "baserom.nds", 0x3D5C, 0x10 + .incbin "baserom.nds", 0x3D6C, 0xC + .incbin "baserom.nds", 0x3D78, 0x4 + .incbin "baserom.nds", 0x3D7C, 0x4 + .incbin "baserom.nds", 0x3D80, 0x8 + .incbin "baserom.nds", 0x3D88, 0x8 + .incbin "baserom.nds", 0x3D90, 0x24 + .incbin "baserom.nds", 0x3DB4, 0x24 + .incbin "baserom.nds", 0x3DD8, 0xC + .incbin "baserom.nds", 0x3DE4, 0x4 + .incbin "baserom.nds", 0x3DE8, 0x4 + .incbin "baserom.nds", 0x3DEC, 0x4 + .incbin "baserom.nds", 0x3DF0, 0x4 + .incbin "baserom.nds", 0x3DF4, 0x4 + .incbin "baserom.nds", 0x3DF8, 0x4 + .incbin "baserom.nds", 0x3DFC, 0x8 + .incbin "baserom.nds", 0x3E04, 0x4 + .incbin "baserom.nds", 0x3E08, 0x94 + .incbin "baserom.nds", 0x3E9C, 0x94 + .incbin "baserom.nds", 0x3F30, 0x4 + .incbin "baserom.nds", 0x3F34, 0x4 + .incbin "baserom.nds", 0x3F38, 0x4 + .incbin "baserom.nds", 0x3F3C, 0x4 + .incbin "baserom.nds", 0x3F40, 0x4 + .incbin "baserom.nds", 0x3F44, 0x4 + .incbin "baserom.nds", 0x3F48, 0x4 + .incbin "baserom.nds", 0x3F4C, 0x4 + .incbin "baserom.nds", 0x3F50, 0x4 + .incbin "baserom.nds", 0x3F54, 0x4 + .incbin "baserom.nds", 0x3F58, 0x4 + .incbin "baserom.nds", 0x3F5C, 0x4 + .incbin "baserom.nds", 0x3F60, 0x4 + .incbin "baserom.nds", 0x3F64, 0x4 + .incbin "baserom.nds", 0x3F68, 0x4 + .incbin "baserom.nds", 0x3F6C, 0x4 + .incbin "baserom.nds", 0x3F70, 0x4 + .incbin "baserom.nds", 0x3F74, 0x4 + .incbin "baserom.nds", 0x3F78, 0x4 + .incbin "baserom.nds", 0x3F7C, 0x4 + .incbin "baserom.nds", 0x3F80, 0x4 + .incbin "baserom.nds", 0x3F84, 0x4 + .incbin "baserom.nds", 0x3F88, 0x4 + .incbin "baserom.nds", 0x3F8C, 0x4 + .incbin "baserom.nds", 0x3F90, 0x4 + .incbin "baserom.nds", 0x3F94, 0x4 + .incbin "baserom.nds", 0x3F98, 0x4 + .incbin "baserom.nds", 0x3F9C, 0x4 + .incbin "baserom.nds", 0x3FA0, 0x4 + .incbin "baserom.nds", 0x3FA4, 0x4 + .incbin "baserom.nds", 0x3FA8, 0x4 + .incbin "baserom.nds", 0x3FAC, 0x4 + .incbin "baserom.nds", 0x3FB0, 0x4 + .incbin "baserom.nds", 0x3FB4, 0x4 + .incbin "baserom.nds", 0x3FB8, 0x4 + .incbin "baserom.nds", 0x3FBC, 0x8 + .incbin "baserom.nds", 0x3FC4, 0x4 + .incbin "baserom.nds", 0x3FC8, 0x4 + .incbin "baserom.nds", 0x3FCC, 0x4 + .incbin "baserom.nds", 0x3FD0, 0x8 + .incbin "baserom.nds", 0x3FD8, 0x8 + .incbin "baserom.nds", 0x3FE0, 0x4 + .incbin "baserom.nds", 0x3FE4, 0x4 + .incbin "baserom.nds", 0x3FE8, 0x4 + .incbin "baserom.nds", 0x3FEC, 0x4 + .incbin "baserom.nds", 0x3FF0, 0x4 + .incbin "baserom.nds", 0x3FF4, 0x4 + .incbin "baserom.nds", 0x3FF8, 0x4 + .incbin "baserom.nds", 0x3FFC, 0x4 + .incbin "baserom.nds", 0x4000, 0x4 + .incbin "baserom.nds", 0x4004, 0x4 + .incbin "baserom.nds", 0x4008, 0x4 + .incbin "baserom.nds", 0x400C, 0x4 + .incbin "baserom.nds", 0x4010, 0x4 + .incbin "baserom.nds", 0x4014, 0xC + .incbin "baserom.nds", 0x4020, 0x4 + .incbin "baserom.nds", 0x4024, 0x4 + .incbin "baserom.nds", 0x4028, 0x4 + .incbin "baserom.nds", 0x402C, 0x4 + .incbin "baserom.nds", 0x4030, 0x4 + .incbin "baserom.nds", 0x4034, 0x4 + .incbin "baserom.nds", 0x4038, 0x4 + .incbin "baserom.nds", 0x403C, 0x4 + .incbin "baserom.nds", 0x4040, 0x8 + .incbin "baserom.nds", 0x4048, 0x8 + .incbin "baserom.nds", 0x4050, 0x4 + .incbin "baserom.nds", 0x4054, 0x4 + .incbin "baserom.nds", 0x4058, 0x4 + .incbin "baserom.nds", 0x405C, 0x4 + .incbin "baserom.nds", 0x4060, 0x4 + .incbin "baserom.nds", 0x4064, 0x4 + .incbin "baserom.nds", 0x4068, 0x4 + .incbin "baserom.nds", 0x406C, 0xC + .incbin "baserom.nds", 0x4078, 0x4 + .incbin "baserom.nds", 0x407C, 0x4 + .incbin "baserom.nds", 0x4080, 0x4 + .incbin "baserom.nds", 0x4084, 0x4 + .incbin "baserom.nds", 0x4088, 0x4 + .incbin "baserom.nds", 0x408C, 0x4 + .incbin "baserom.nds", 0x4090, 0x4 + .incbin "baserom.nds", 0x4094, 0x8 + .incbin "baserom.nds", 0x409C, 0x4 + .incbin "baserom.nds", 0x40A0, 0x4 + .incbin "baserom.nds", 0x40A4, 0x4 + .incbin "baserom.nds", 0x40A8, 0x10 + .incbin "baserom.nds", 0x40B8, 0x4 + .incbin "baserom.nds", 0x40BC, 0x4 + .incbin "baserom.nds", 0x40C0, 0x4 + .incbin "baserom.nds", 0x40C4, 0x4 + .incbin "baserom.nds", 0x40C8, 0x4 + .incbin "baserom.nds", 0x40CC, 0x4 + .incbin "baserom.nds", 0x40D0, 0x4 + .incbin "baserom.nds", 0x40D4, 0x24 + .incbin "baserom.nds", 0x40F8, 0x24 + .incbin "baserom.nds", 0x411C, 0x4 + .incbin "baserom.nds", 0x4120, 0x4 + .incbin "baserom.nds", 0x4124, 0xC + .incbin "baserom.nds", 0x4130, 0x4 + .incbin "baserom.nds", 0x4134, 0x4 + .incbin "baserom.nds", 0x4138, 0x4 + .incbin "baserom.nds", 0x413C, 0x4 + .incbin "baserom.nds", 0x4140, 0x4 + .incbin "baserom.nds", 0x4144, 0x4 + .incbin "baserom.nds", 0x4148, 0x4 + .incbin "baserom.nds", 0x414C, 0x4 + .incbin "baserom.nds", 0x4150, 0x4 + .incbin "baserom.nds", 0x4154, 0x4 + .incbin "baserom.nds", 0x4158, 0x4 + .incbin "baserom.nds", 0x415C, 0x4 + .incbin "baserom.nds", 0x4160, 0x4 + .incbin "baserom.nds", 0x4164, 0x4 + .incbin "baserom.nds", 0x4168, 0x4 + .incbin "baserom.nds", 0x416C, 0x4 + .incbin "baserom.nds", 0x4170, 0x4 + .incbin "baserom.nds", 0x4174, 0x4 + .incbin "baserom.nds", 0x4178, 0x4 + .incbin "baserom.nds", 0x417C, 0x4 + .incbin "baserom.nds", 0x4180, 0x4 + .incbin "baserom.nds", 0x4184, 0x4 + .incbin "baserom.nds", 0x4188, 0x4 + .incbin "baserom.nds", 0x418C, 0x4 + .incbin "baserom.nds", 0x4190, 0x4 + .incbin "baserom.nds", 0x4194, 0x4 + .incbin "baserom.nds", 0x4198, 0x4 + .incbin "baserom.nds", 0x419C, 0x4 + .incbin "baserom.nds", 0x41A0, 0x4 + .incbin "baserom.nds", 0x41A4, 0x4 + .incbin "baserom.nds", 0x41A8, 0x4 + .incbin "baserom.nds", 0x41AC, 0x4 + .incbin "baserom.nds", 0x41B0, 0x4 + .incbin "baserom.nds", 0x41B4, 0x4 + .incbin "baserom.nds", 0x41B8, 0x4 + .incbin "baserom.nds", 0x41BC, 0x4 + .incbin "baserom.nds", 0x41C0, 0x4 + .incbin "baserom.nds", 0x41C4, 0x4 + .incbin "baserom.nds", 0x41C8, 0x4 + .incbin "baserom.nds", 0x41CC, 0x8 + .incbin "baserom.nds", 0x41D4, 0x4 + .incbin "baserom.nds", 0x41D8, 0x8 + .incbin "baserom.nds", 0x41E0, 0x4 + .incbin "baserom.nds", 0x41E4, 0x4 + .incbin "baserom.nds", 0x41E8, 0x4 + .incbin "baserom.nds", 0x41EC, 0x4 + .incbin "baserom.nds", 0x41F0, 0x4 + .incbin "baserom.nds", 0x41F4, 0x4 + .incbin "baserom.nds", 0x41F8, 0x4 + .incbin "baserom.nds", 0x41FC, 0x4 + .incbin "baserom.nds", 0x4200, 0x38 + .incbin "baserom.nds", 0x4238, 0x50 + .incbin "baserom.nds", 0x4288, 0x4 + .incbin "baserom.nds", 0x428C, 0x4 + .incbin "baserom.nds", 0x4290, 0x4 + .incbin "baserom.nds", 0x4294, 0x4 + .incbin "baserom.nds", 0x4298, 0x4 + .incbin "baserom.nds", 0x429C, 0x4 + .incbin "baserom.nds", 0x42A0, 0x4 + .incbin "baserom.nds", 0x42A4, 0x4 + .incbin "baserom.nds", 0x42A8, 0x4 + .incbin "baserom.nds", 0x42AC, 0x4 + .incbin "baserom.nds", 0x42B0, 0x4 + .incbin "baserom.nds", 0x42B4, 0x4 + .incbin "baserom.nds", 0x42B8, 0x4 + .incbin "baserom.nds", 0x42BC, 0x4 + .incbin "baserom.nds", 0x42C0, 0x4 + .incbin "baserom.nds", 0x42C4, 0x4 + .incbin "baserom.nds", 0x42C8, 0x4 + .incbin "baserom.nds", 0x42CC, 0x4 + .incbin "baserom.nds", 0x42D0, 0x4 + .incbin "baserom.nds", 0x42D4, 0x4 + .incbin "baserom.nds", 0x42D8, 0x4 + .incbin "baserom.nds", 0x42DC, 0x4 + .incbin "baserom.nds", 0x42E0, 0x4 + .incbin "baserom.nds", 0x42E4, 0x4 + .incbin "baserom.nds", 0x42E8, 0x4 + .incbin "baserom.nds", 0x42EC, 0x4 + .incbin "baserom.nds", 0x42F0, 0x4 + .incbin "baserom.nds", 0x42F4, 0x20 + .incbin "baserom.nds", 0x4314, 0xC + .incbin "baserom.nds", 0x4320, 0x4 + .incbin "baserom.nds", 0x4324, 0x4 + .incbin "baserom.nds", 0x4328, 0x4 + .incbin "baserom.nds", 0x432C, 0x4 + .incbin "baserom.nds", 0x4330, 0x8 + .incbin "baserom.nds", 0x4338, 0x8 + .incbin "baserom.nds", 0x4340, 0x18 + .incbin "baserom.nds", 0x4358, 0x4 + .incbin "baserom.nds", 0x435C, 0x4 + .incbin "baserom.nds", 0x4360, 0x4 + .incbin "baserom.nds", 0x4364, 0xC + .incbin "baserom.nds", 0x4370, 0xC + .incbin "baserom.nds", 0x437C, 0xC + .incbin "baserom.nds", 0x4388, 0xC + .incbin "baserom.nds", 0x4394, 0xC + .incbin "baserom.nds", 0x43A0, 0x4 + .incbin "baserom.nds", 0x43A4, 0x4 + .incbin "baserom.nds", 0x43A8, 0x4 + .incbin "baserom.nds", 0x43AC, 0x4 + .incbin "baserom.nds", 0x43B0, 0x4 + .incbin "baserom.nds", 0x43B4, 0x4 + .incbin "baserom.nds", 0x43B8, 0x4 + .incbin "baserom.nds", 0x43BC, 0x8 + .incbin "baserom.nds", 0x43C4, 0x8 + .incbin "baserom.nds", 0x43CC, 0x4 + .incbin "baserom.nds", 0x43D0, 0x4 + .incbin "baserom.nds", 0x43D4, 0x4 + .incbin "baserom.nds", 0x43D8, 0x4 + .incbin "baserom.nds", 0x43DC, 0x4 + .incbin "baserom.nds", 0x43E0, 0x4 + .incbin "baserom.nds", 0x43E4, 0x24 + .incbin "baserom.nds", 0x4408, 0x24 + .incbin "baserom.nds", 0x442C, 0x8 + .incbin "baserom.nds", 0x4434, 0x8 + .incbin "baserom.nds", 0x443C, 0x4 + .incbin "baserom.nds", 0x4440, 0x4 + .incbin "baserom.nds", 0x4444, 0x4 + .incbin "baserom.nds", 0x4448, 0x4 + .incbin "baserom.nds", 0x444C, 0x4 + .incbin "baserom.nds", 0x4450, 0x4 + .incbin "baserom.nds", 0x4454, 0x4 + .incbin "baserom.nds", 0x4458, 0x4 + .incbin "baserom.nds", 0x445C, 0x4 + .incbin "baserom.nds", 0x4460, 0x4 + .incbin "baserom.nds", 0x4464, 0x4 + .incbin "baserom.nds", 0x4468, 0x4 + .incbin "baserom.nds", 0x446C, 0x4 + .incbin "baserom.nds", 0x4470, 0x4 + .incbin "baserom.nds", 0x4474, 0x4 + .incbin "baserom.nds", 0x4478, 0x4 + .incbin "baserom.nds", 0x447C, 0x4 + .incbin "baserom.nds", 0x4480, 0x4 + .incbin "baserom.nds", 0x4484, 0x4 + .incbin "baserom.nds", 0x4488, 0x4 + .incbin "baserom.nds", 0x448C, 0xC + .incbin "baserom.nds", 0x4498, 0xC + .incbin "baserom.nds", 0x44A4, 0x4 + .incbin "baserom.nds", 0x44A8, 0xC + .incbin "baserom.nds", 0x44B4, 0x4 + .incbin "baserom.nds", 0x44B8, 0x4 + .incbin "baserom.nds", 0x44BC, 0x8 + .incbin "baserom.nds", 0x44C4, 0xC + .incbin "baserom.nds", 0x44D0, 0x4 + .incbin "baserom.nds", 0x44D4, 0x4 + .incbin "baserom.nds", 0x44D8, 0x4 + .incbin "baserom.nds", 0x44DC, 0x4 + .incbin "baserom.nds", 0x44E0, 0x4 + .incbin "baserom.nds", 0x44E4, 0x4 + .incbin "baserom.nds", 0x44E8, 0x4 + .incbin "baserom.nds", 0x44EC, 0x4 + .incbin "baserom.nds", 0x44F0, 0x4 + .incbin "baserom.nds", 0x44F4, 0x4 + .incbin "baserom.nds", 0x44F8, 0x4 + .incbin "baserom.nds", 0x44FC, 0x4 + .incbin "baserom.nds", 0x4500, 0x4 + .incbin "baserom.nds", 0x4504, 0x4 + .incbin "baserom.nds", 0x4508, 0x4 + .incbin "baserom.nds", 0x450C, 0x4 + .incbin "baserom.nds", 0x4510, 0x4 + .incbin "baserom.nds", 0x4514, 0x4 + .incbin "baserom.nds", 0x4518, 0x4 + .incbin "baserom.nds", 0x451C, 0x4 + .incbin "baserom.nds", 0x4520, 0x4 + .incbin "baserom.nds", 0x4524, 0x4 + .incbin "baserom.nds", 0x4528, 0x4 + .incbin "baserom.nds", 0x452C, 0x4 + .incbin "baserom.nds", 0x4530, 0x4 + .incbin "baserom.nds", 0x4534, 0x20 + .incbin "baserom.nds", 0x4554, 0x10 + .incbin "baserom.nds", 0x4564, 0x4 + .incbin "baserom.nds", 0x4568, 0x2C + .incbin "baserom.nds", 0x4594, 0x18 + .incbin "baserom.nds", 0x45AC, 0x1C + .incbin "baserom.nds", 0x45C8, 0x20 + .incbin "baserom.nds", 0x45E8, 0x18 + .incbin "baserom.nds", 0x4600, 0x8 + .incbin "baserom.nds", 0x4608, 0x4 + .incbin "baserom.nds", 0x460C, 0x10 + .incbin "baserom.nds", 0x461C, 0x4 + .incbin "baserom.nds", 0x4620, 0x4 + .incbin "baserom.nds", 0x4624, 0x4 + .incbin "baserom.nds", 0x4628, 0x4 + .incbin "baserom.nds", 0x462C, 0x4 + .incbin "baserom.nds", 0x4630, 0x4 + .incbin "baserom.nds", 0x4634, 0x4 + .incbin "baserom.nds", 0x4638, 0x4 + .incbin "baserom.nds", 0x463C, 0x4 + .incbin "baserom.nds", 0x4640, 0x4 + .incbin "baserom.nds", 0x4644, 0x14 + .incbin "baserom.nds", 0x4658, 0x18 + .incbin "baserom.nds", 0x4670, 0x20 + .incbin "baserom.nds", 0x4690, 0x4 + .incbin "baserom.nds", 0x4694, 0x4 + .incbin "baserom.nds", 0x4698, 0x24 + .incbin "baserom.nds", 0x46BC, 0x1C + .incbin "baserom.nds", 0x46D8, 0x4 + .incbin "baserom.nds", 0x46DC, 0x4 + .incbin "baserom.nds", 0x46E0, 0x4 + .incbin "baserom.nds", 0x46E4, 0x4 + .incbin "baserom.nds", 0x46E8, 0x4 + .incbin "baserom.nds", 0x46EC, 0x4 + .incbin "baserom.nds", 0x46F0, 0x4 + .incbin "baserom.nds", 0x46F4, 0xC + .incbin "baserom.nds", 0x4700, 0xC + .incbin "baserom.nds", 0x470C, 0xC + .incbin "baserom.nds", 0x4718, 0x4 + .incbin "baserom.nds", 0x471C, 0x4 + .incbin "baserom.nds", 0x4720, 0x8 + .incbin "baserom.nds", 0x4728, 0x4 + .incbin "baserom.nds", 0x472C, 0xC + .incbin "baserom.nds", 0x4738, 0x4 + .incbin "baserom.nds", 0x473C, 0x4 + .incbin "baserom.nds", 0x4740, 0xC + .incbin "baserom.nds", 0x474C, 0x4 + .incbin "baserom.nds", 0x4750, 0x4 + .incbin "baserom.nds", 0x4754, 0x4 + .incbin "baserom.nds", 0x4758, 0x4 + .incbin "baserom.nds", 0x475C, 0x4 + .incbin "baserom.nds", 0x4760, 0x4 + .incbin "baserom.nds", 0x4764, 0x4 + .incbin "baserom.nds", 0x4768, 0x4 + .incbin "baserom.nds", 0x476C, 0x8 + .incbin "baserom.nds", 0x4774, 0x4 + .incbin "baserom.nds", 0x4778, 0x4 + .incbin "baserom.nds", 0x477C, 0x4 + .incbin "baserom.nds", 0x4780, 0x4 + .incbin "baserom.nds", 0x4784, 0x4 + .incbin "baserom.nds", 0x4788, 0x28 + .incbin "baserom.nds", 0x47B0, 0x28 + .incbin "baserom.nds", 0x47D8, 0xC + .incbin "baserom.nds", 0x47E4, 0x10 + .incbin "baserom.nds", 0x47F4, 0x4 + .incbin "baserom.nds", 0x47F8, 0x4 + .incbin "baserom.nds", 0x47FC, 0x4 + .incbin "baserom.nds", 0x4800, 0x4 + .incbin "baserom.nds", 0x4804, 0x4 + .incbin "baserom.nds", 0x4808, 0x4 + .incbin "baserom.nds", 0x480C, 0x4 + .incbin "baserom.nds", 0x4810, 0x4 + .incbin "baserom.nds", 0x4814, 0x4 + .incbin "baserom.nds", 0x4818, 0x4 + .incbin "baserom.nds", 0x481C, 0x4 + .incbin "baserom.nds", 0x4820, 0x4 + .incbin "baserom.nds", 0x4824, 0x4 + .incbin "baserom.nds", 0x4828, 0x4 + .incbin "baserom.nds", 0x482C, 0x4 + .incbin "baserom.nds", 0x4830, 0x4 + .incbin "baserom.nds", 0x4834, 0x4 + .incbin "baserom.nds", 0x4838, 0x4 + .incbin "baserom.nds", 0x483C, 0x4 + .incbin "baserom.nds", 0x4840, 0x4 + .incbin "baserom.nds", 0x4844, 0x4 + .incbin "baserom.nds", 0x4848, 0x4 + .incbin "baserom.nds", 0x484C, 0x4 + .incbin "baserom.nds", 0x4850, 0x4 + .incbin "baserom.nds", 0x4854, 0x4 + .incbin "baserom.nds", 0x4858, 0x4 + .incbin "baserom.nds", 0x485C, 0x4 + .incbin "baserom.nds", 0x4860, 0x4 + .incbin "baserom.nds", 0x4864, 0x4 + .incbin "baserom.nds", 0x4868, 0x4 + .incbin "baserom.nds", 0x486C, 0x4 + .incbin "baserom.nds", 0x4870, 0x4 + .incbin "baserom.nds", 0x4874, 0x4 + .incbin "baserom.nds", 0x4878, 0x4 + .incbin "baserom.nds", 0x487C, 0x4 + .incbin "baserom.nds", 0x4880, 0x68 + .incbin "baserom.nds", 0x48E8, 0x4 + .incbin "baserom.nds", 0x48EC, 0x4 + .incbin "baserom.nds", 0x48F0, 0x4 + .incbin "baserom.nds", 0x48F4, 0x4 + .incbin "baserom.nds", 0x48F8, 0x4 + .incbin "baserom.nds", 0x48FC, 0x4 + .incbin "baserom.nds", 0x4900, 0x4 + .incbin "baserom.nds", 0x4904, 0x4 + .incbin "baserom.nds", 0x4908, 0x4 + .incbin "baserom.nds", 0x490C, 0x4 + .incbin "baserom.nds", 0x4910, 0x4 + .incbin "baserom.nds", 0x4914, 0x4 + .incbin "baserom.nds", 0x4918, 0x4 + .incbin "baserom.nds", 0x491C, 0x4 + .incbin "baserom.nds", 0x4920, 0x4 + .incbin "baserom.nds", 0x4924, 0x4 + .incbin "baserom.nds", 0x4928, 0x4 + .incbin "baserom.nds", 0x492C, 0x4 + .incbin "baserom.nds", 0x4930, 0xC + .incbin "baserom.nds", 0x493C, 0xC + .incbin "baserom.nds", 0x4948, 0xC + .incbin "baserom.nds", 0x4954, 0x14 + .incbin "baserom.nds", 0x4968, 0x4 + .incbin "baserom.nds", 0x496C, 0x4 + .incbin "baserom.nds", 0x4970, 0x4 + .incbin "baserom.nds", 0x4974, 0x4 + .incbin "baserom.nds", 0x4978, 0x4 + .incbin "baserom.nds", 0x497C, 0x4 + .incbin "baserom.nds", 0x4980, 0x4 + .incbin "baserom.nds", 0x4984, 0x4 + .incbin "baserom.nds", 0x4988, 0x4 + .incbin "baserom.nds", 0x498C, 0x4 + .incbin "baserom.nds", 0x4990, 0x4 + .incbin "baserom.nds", 0x4994, 0x4 + .incbin "baserom.nds", 0x4998, 0x4 + .incbin "baserom.nds", 0x499C, 0x4 + .incbin "baserom.nds", 0x49A0, 0x4 + .incbin "baserom.nds", 0x49A4, 0x4 + .incbin "baserom.nds", 0x49A8, 0x4 + .incbin "baserom.nds", 0x49AC, 0x4 + .incbin "baserom.nds", 0x49B0, 0x4 + .incbin "baserom.nds", 0x49B4, 0x4 + .incbin "baserom.nds", 0x49B8, 0xC + .incbin "baserom.nds", 0x49C4, 0x10 + .incbin "baserom.nds", 0x49D4, 0x4 + .incbin "baserom.nds", 0x49D8, 0x4 + .incbin "baserom.nds", 0x49DC, 0x4 + .incbin "baserom.nds", 0x49E0, 0x4 + .incbin "baserom.nds", 0x49E4, 0x4 + .incbin "baserom.nds", 0x49E8, 0x8 + .incbin "baserom.nds", 0x49F0, 0x8 + .incbin "baserom.nds", 0x49F8, 0x4 + .incbin "baserom.nds", 0x49FC, 0x4 + .incbin "baserom.nds", 0x4A00, 0x34 + .incbin "baserom.nds", 0x4A34, 0x44 + .incbin "baserom.nds", 0x4A78, 0x4 + .incbin "baserom.nds", 0x4A7C, 0x4 + .incbin "baserom.nds", 0x4A80, 0x4 + .incbin "baserom.nds", 0x4A84, 0x4 + .incbin "baserom.nds", 0x4A88, 0x10 + .incbin "baserom.nds", 0x4A98, 0x10 + .incbin "baserom.nds", 0x4AA8, 0x4 + .incbin "baserom.nds", 0x4AAC, 0xC + .incbin "baserom.nds", 0x4AB8, 0x8 + .incbin "baserom.nds", 0x4AC0, 0x4 + .incbin "baserom.nds", 0x4AC4, 0x10 + .incbin "baserom.nds", 0x4AD4, 0x20 + .incbin "baserom.nds", 0x4AF4, 0x4 + .incbin "baserom.nds", 0x4AF8, 0xC + .incbin "baserom.nds", 0x4B04, 0x10 + .incbin "baserom.nds", 0x4B14, 0x4 + .incbin "baserom.nds", 0x4B18, 0x34 + .incbin "baserom.nds", 0x4B4C, 0x4C + .incbin "baserom.nds", 0x4B98, 0x20 + .incbin "baserom.nds", 0x4BB8, 0x1C + .incbin "baserom.nds", 0x4BD4, 0x4 + .incbin "baserom.nds", 0x4BD8, 0x1C + .incbin "baserom.nds", 0x4BF4, 0x4 + .incbin "baserom.nds", 0x4BF8, 0x4 + .incbin "baserom.nds", 0x4BFC, 0x4 + .incbin "baserom.nds", 0x4C00, 0x4 + .incbin "baserom.nds", 0x4C04, 0x4 + .incbin "baserom.nds", 0x4C08, 0x4 + .incbin "baserom.nds", 0x4C0C, 0x4 + .incbin "baserom.nds", 0x4C10, 0x4 + .incbin "baserom.nds", 0x4C14, 0x4 + .incbin "baserom.nds", 0x4C18, 0x4 + .incbin "baserom.nds", 0x4C1C, 0x4 + .incbin "baserom.nds", 0x4C20, 0x4 + .incbin "baserom.nds", 0x4C24, 0x10 + .incbin "baserom.nds", 0x4C34, 0x4 + .incbin "baserom.nds", 0x4C38, 0x4 + .incbin "baserom.nds", 0x4C3C, 0x4 + .incbin "baserom.nds", 0x4C40, 0x4 + .incbin "baserom.nds", 0x4C44, 0x4 + .incbin "baserom.nds", 0x4C48, 0x4 + .incbin "baserom.nds", 0x4C4C, 0x4 + .incbin "baserom.nds", 0x4C50, 0x4 + .incbin "baserom.nds", 0x4C54, 0x4 + .incbin "baserom.nds", 0x4C58, 0x4 + .incbin "baserom.nds", 0x4C5C, 0x4 + .incbin "baserom.nds", 0x4C60, 0x4 + .incbin "baserom.nds", 0x4C64, 0x4 + .incbin "baserom.nds", 0x4C68, 0x4 + .incbin "baserom.nds", 0x4C6C, 0x4 + .incbin "baserom.nds", 0x4C70, 0x4 + .incbin "baserom.nds", 0x4C74, 0x4 + .incbin "baserom.nds", 0x4C78, 0x4 + .incbin "baserom.nds", 0x4C7C, 0x4 + .incbin "baserom.nds", 0x4C80, 0xC + .incbin "baserom.nds", 0x4C8C, 0xC + .incbin "baserom.nds", 0x4C98, 0x10 + .incbin "baserom.nds", 0x4CA8, 0xC + .incbin "baserom.nds", 0x4CB4, 0x4 + .incbin "baserom.nds", 0x4CB8, 0x4 + .incbin "baserom.nds", 0x4CBC, 0x8 + .incbin "baserom.nds", 0x4CC4, 0x8 + .incbin "baserom.nds", 0x4CCC, 0x24 + .incbin "baserom.nds", 0x4CF0, 0x24 + .incbin "baserom.nds", 0x4D14, 0xC + .incbin "baserom.nds", 0x4D20, 0x4 + .incbin "baserom.nds", 0x4D24, 0x4 + .incbin "baserom.nds", 0x4D28, 0x4 + .incbin "baserom.nds", 0x4D2C, 0x4 + .incbin "baserom.nds", 0x4D30, 0x4 + .incbin "baserom.nds", 0x4D34, 0x4 + .incbin "baserom.nds", 0x4D38, 0x8 + .incbin "baserom.nds", 0x4D40, 0x4 + .incbin "baserom.nds", 0x4D44, 0x94 + .incbin "baserom.nds", 0x4DD8, 0x94 + .incbin "baserom.nds", 0x4E6C, 0x4 + .incbin "baserom.nds", 0x4E70, 0x4 + .incbin "baserom.nds", 0x4E74, 0x4 + .incbin "baserom.nds", 0x4E78, 0x4 + .incbin "baserom.nds", 0x4E7C, 0x4 + .incbin "baserom.nds", 0x4E80, 0x4 + .incbin "baserom.nds", 0x4E84, 0x4 + .incbin "baserom.nds", 0x4E88, 0x4 + .incbin "baserom.nds", 0x4E8C, 0x4 + .incbin "baserom.nds", 0x4E90, 0x4 + .incbin "baserom.nds", 0x4E94, 0x4 + .incbin "baserom.nds", 0x4E98, 0x4 + .incbin "baserom.nds", 0x4E9C, 0x4 + .incbin "baserom.nds", 0x4EA0, 0x4 + .incbin "baserom.nds", 0x4EA4, 0x4 + .incbin "baserom.nds", 0x4EA8, 0x4 + .incbin "baserom.nds", 0x4EAC, 0x4 + .incbin "baserom.nds", 0x4EB0, 0x4 + .incbin "baserom.nds", 0x4EB4, 0x4 + .incbin "baserom.nds", 0x4EB8, 0x4 + .incbin "baserom.nds", 0x4EBC, 0x4 + .incbin "baserom.nds", 0x4EC0, 0x4 + .incbin "baserom.nds", 0x4EC4, 0x4 + .incbin "baserom.nds", 0x4EC8, 0x4 + .incbin "baserom.nds", 0x4ECC, 0x4 + .incbin "baserom.nds", 0x4ED0, 0x4 + .incbin "baserom.nds", 0x4ED4, 0x4 + .incbin "baserom.nds", 0x4ED8, 0x4 + .incbin "baserom.nds", 0x4EDC, 0x4 + .incbin "baserom.nds", 0x4EE0, 0x4 + .incbin "baserom.nds", 0x4EE4, 0x4 + .incbin "baserom.nds", 0x4EE8, 0x4 + .incbin "baserom.nds", 0x4EEC, 0x4 + .incbin "baserom.nds", 0x4EF0, 0x4 + .incbin "baserom.nds", 0x4EF4, 0x4 + .incbin "baserom.nds", 0x4EF8, 0x4 + .incbin "baserom.nds", 0x4EFC, 0x4 + .incbin "baserom.nds", 0x4F00, 0x4 + .incbin "baserom.nds", 0x4F04, 0x4 + .incbin "baserom.nds", 0x4F08, 0x8 + .incbin "baserom.nds", 0x4F10, 0x8 + .incbin "baserom.nds", 0x4F18, 0x4 + .incbin "baserom.nds", 0x4F1C, 0x4 + .incbin "baserom.nds", 0x4F20, 0x4 + .incbin "baserom.nds", 0x4F24, 0x4 + .incbin "baserom.nds", 0x4F28, 0x4 + .incbin "baserom.nds", 0x4F2C, 0x4 + .incbin "baserom.nds", 0x4F30, 0x4 + .incbin "baserom.nds", 0x4F34, 0x4 + .incbin "baserom.nds", 0x4F38, 0x4 + .incbin "baserom.nds", 0x4F3C, 0x4 + .incbin "baserom.nds", 0x4F40, 0x4 + .incbin "baserom.nds", 0x4F44, 0x4 + .incbin "baserom.nds", 0x4F48, 0x4 + .incbin "baserom.nds", 0x4F4C, 0xC + .incbin "baserom.nds", 0x4F58, 0x4 + .incbin "baserom.nds", 0x4F5C, 0x4 + .incbin "baserom.nds", 0x4F60, 0x4 + .incbin "baserom.nds", 0x4F64, 0x4 + .incbin "baserom.nds", 0x4F68, 0x4 + .incbin "baserom.nds", 0x4F6C, 0x4 + .incbin "baserom.nds", 0x4F70, 0x4 + .incbin "baserom.nds", 0x4F74, 0x4 + .incbin "baserom.nds", 0x4F78, 0x8 + .incbin "baserom.nds", 0x4F80, 0x8 + .incbin "baserom.nds", 0x4F88, 0x4 + .incbin "baserom.nds", 0x4F8C, 0x4 + .incbin "baserom.nds", 0x4F90, 0x4 + .incbin "baserom.nds", 0x4F94, 0x4 + .incbin "baserom.nds", 0x4F98, 0x4 + .incbin "baserom.nds", 0x4F9C, 0x4 + .incbin "baserom.nds", 0x4FA0, 0x4 + .incbin "baserom.nds", 0x4FA4, 0xC + .incbin "baserom.nds", 0x4FB0, 0x4 + .incbin "baserom.nds", 0x4FB4, 0x4 + .incbin "baserom.nds", 0x4FB8, 0x4 + .incbin "baserom.nds", 0x4FBC, 0x4 + .incbin "baserom.nds", 0x4FC0, 0x4 + .incbin "baserom.nds", 0x4FC4, 0x4 + .incbin "baserom.nds", 0x4FC8, 0x4 + .incbin "baserom.nds", 0x4FCC, 0x8 + .incbin "baserom.nds", 0x4FD4, 0x4 + .incbin "baserom.nds", 0x4FD8, 0x4 + .incbin "baserom.nds", 0x4FDC, 0x4 + .incbin "baserom.nds", 0x4FE0, 0x10 + .incbin "baserom.nds", 0x4FF0, 0x4 + .incbin "baserom.nds", 0x4FF4, 0x4 + .incbin "baserom.nds", 0x4FF8, 0x4 + .incbin "baserom.nds", 0x4FFC, 0x4 + .incbin "baserom.nds", 0x5000, 0x4 + .incbin "baserom.nds", 0x5004, 0x4 + .incbin "baserom.nds", 0x5008, 0x4 + .incbin "baserom.nds", 0x500C, 0x24 + .incbin "baserom.nds", 0x5030, 0x24 + .incbin "baserom.nds", 0x5054, 0x4 + .incbin "baserom.nds", 0x5058, 0x4 + .incbin "baserom.nds", 0x505C, 0xC + .incbin "baserom.nds", 0x5068, 0x4 + .incbin "baserom.nds", 0x506C, 0x4 + .incbin "baserom.nds", 0x5070, 0x4 + .incbin "baserom.nds", 0x5074, 0x4 + .incbin "baserom.nds", 0x5078, 0x4 + .incbin "baserom.nds", 0x507C, 0x4 + .incbin "baserom.nds", 0x5080, 0x4 + .incbin "baserom.nds", 0x5084, 0x4 + .incbin "baserom.nds", 0x5088, 0x4 + .incbin "baserom.nds", 0x508C, 0x4 + .incbin "baserom.nds", 0x5090, 0x4 + .incbin "baserom.nds", 0x5094, 0x4 + .incbin "baserom.nds", 0x5098, 0x4 + .incbin "baserom.nds", 0x509C, 0x4 + .incbin "baserom.nds", 0x50A0, 0x4 + .incbin "baserom.nds", 0x50A4, 0x4 + .incbin "baserom.nds", 0x50A8, 0x4 + .incbin "baserom.nds", 0x50AC, 0x4 + .incbin "baserom.nds", 0x50B0, 0x4 + .incbin "baserom.nds", 0x50B4, 0x4 + .incbin "baserom.nds", 0x50B8, 0x4 + .incbin "baserom.nds", 0x50BC, 0x4 + .incbin "baserom.nds", 0x50C0, 0x4 + .incbin "baserom.nds", 0x50C4, 0x4 + .incbin "baserom.nds", 0x50C8, 0x4 + .incbin "baserom.nds", 0x50CC, 0x4 + .incbin "baserom.nds", 0x50D0, 0x4 + .incbin "baserom.nds", 0x50D4, 0x4 + .incbin "baserom.nds", 0x50D8, 0x4 + .incbin "baserom.nds", 0x50DC, 0x4 + .incbin "baserom.nds", 0x50E0, 0x4 + .incbin "baserom.nds", 0x50E4, 0x4 + .incbin "baserom.nds", 0x50E8, 0x4 + .incbin "baserom.nds", 0x50EC, 0x4 + .incbin "baserom.nds", 0x50F0, 0x4 + .incbin "baserom.nds", 0x50F4, 0x4 + .incbin "baserom.nds", 0x50F8, 0x4 + .incbin "baserom.nds", 0x50FC, 0x4 + .incbin "baserom.nds", 0x5100, 0x4 + .incbin "baserom.nds", 0x5104, 0x8 + .incbin "baserom.nds", 0x510C, 0x4 + .incbin "baserom.nds", 0x5110, 0x8 + .incbin "baserom.nds", 0x5118, 0x4 + .incbin "baserom.nds", 0x511C, 0x4 + .incbin "baserom.nds", 0x5120, 0x4 + .incbin "baserom.nds", 0x5124, 0x4 + .incbin "baserom.nds", 0x5128, 0x4 + .incbin "baserom.nds", 0x512C, 0x4 + .incbin "baserom.nds", 0x5130, 0x4 + .incbin "baserom.nds", 0x5134, 0x4 + .incbin "baserom.nds", 0x5138, 0x38 + .incbin "baserom.nds", 0x5170, 0x50 + .incbin "baserom.nds", 0x51C0, 0x4 + .incbin "baserom.nds", 0x51C4, 0x4 + .incbin "baserom.nds", 0x51C8, 0x4 + .incbin "baserom.nds", 0x51CC, 0x4 + .incbin "baserom.nds", 0x51D0, 0x4 + .incbin "baserom.nds", 0x51D4, 0x4 + .incbin "baserom.nds", 0x51D8, 0x4 + .incbin "baserom.nds", 0x51DC, 0x4 + .incbin "baserom.nds", 0x51E0, 0x4 + .incbin "baserom.nds", 0x51E4, 0x4 + .incbin "baserom.nds", 0x51E8, 0x4 + .incbin "baserom.nds", 0x51EC, 0x4 + .incbin "baserom.nds", 0x51F0, 0x4 + .incbin "baserom.nds", 0x51F4, 0x4 + .incbin "baserom.nds", 0x51F8, 0x4 + .incbin "baserom.nds", 0x51FC, 0x4 + .incbin "baserom.nds", 0x5200, 0x4 + .incbin "baserom.nds", 0x5204, 0x4 + .incbin "baserom.nds", 0x5208, 0x4 + .incbin "baserom.nds", 0x520C, 0x4 + .incbin "baserom.nds", 0x5210, 0x4 + .incbin "baserom.nds", 0x5214, 0x4 + .incbin "baserom.nds", 0x5218, 0x4 + .incbin "baserom.nds", 0x521C, 0x4 + .incbin "baserom.nds", 0x5220, 0x4 + .incbin "baserom.nds", 0x5224, 0x4 + .incbin "baserom.nds", 0x5228, 0x4 + .incbin "baserom.nds", 0x522C, 0x20 + .incbin "baserom.nds", 0x524C, 0xC + .incbin "baserom.nds", 0x5258, 0x4 + .incbin "baserom.nds", 0x525C, 0x4 + .incbin "baserom.nds", 0x5260, 0x4 + .incbin "baserom.nds", 0x5264, 0x4 + .incbin "baserom.nds", 0x5268, 0x8 + .incbin "baserom.nds", 0x5270, 0x8 + .incbin "baserom.nds", 0x5278, 0x18 + .incbin "baserom.nds", 0x5290, 0x4 + .incbin "baserom.nds", 0x5294, 0x4 + .incbin "baserom.nds", 0x5298, 0x4 + .incbin "baserom.nds", 0x529C, 0xC + .incbin "baserom.nds", 0x52A8, 0xC + .incbin "baserom.nds", 0x52B4, 0xC + .incbin "baserom.nds", 0x52C0, 0xC + .incbin "baserom.nds", 0x52CC, 0xC + .incbin "baserom.nds", 0x52D8, 0x4 + .incbin "baserom.nds", 0x52DC, 0x4 + .incbin "baserom.nds", 0x52E0, 0x4 + .incbin "baserom.nds", 0x52E4, 0x4 + .incbin "baserom.nds", 0x52E8, 0x4 + .incbin "baserom.nds", 0x52EC, 0x4 + .incbin "baserom.nds", 0x52F0, 0x4 + .incbin "baserom.nds", 0x52F4, 0x8 + .incbin "baserom.nds", 0x52FC, 0x8 + .incbin "baserom.nds", 0x5304, 0x4 + .incbin "baserom.nds", 0x5308, 0x4 + .incbin "baserom.nds", 0x530C, 0x4 + .incbin "baserom.nds", 0x5310, 0x4 + .incbin "baserom.nds", 0x5314, 0x4 + .incbin "baserom.nds", 0x5318, 0x4 + .incbin "baserom.nds", 0x531C, 0x24 + .incbin "baserom.nds", 0x5340, 0x24 + .incbin "baserom.nds", 0x5364, 0x8 + .incbin "baserom.nds", 0x536C, 0x8 + .incbin "baserom.nds", 0x5374, 0x4 + .incbin "baserom.nds", 0x5378, 0x4 + .incbin "baserom.nds", 0x537C, 0x4 + .incbin "baserom.nds", 0x5380, 0x4 + .incbin "baserom.nds", 0x5384, 0x4 + .incbin "baserom.nds", 0x5388, 0x4 + .incbin "baserom.nds", 0x538C, 0x4 + .incbin "baserom.nds", 0x5390, 0x4 + .incbin "baserom.nds", 0x5394, 0x4 + .incbin "baserom.nds", 0x5398, 0x4 + .incbin "baserom.nds", 0x539C, 0x4 + .incbin "baserom.nds", 0x53A0, 0x4 + .incbin "baserom.nds", 0x53A4, 0x4 + .incbin "baserom.nds", 0x53A8, 0x4 + .incbin "baserom.nds", 0x53AC, 0x4 + .incbin "baserom.nds", 0x53B0, 0x4 + .incbin "baserom.nds", 0x53B4, 0x4 + .incbin "baserom.nds", 0x53B8, 0x4 + .incbin "baserom.nds", 0x53BC, 0x4 + .incbin "baserom.nds", 0x53C0, 0x4 + .incbin "baserom.nds", 0x53C4, 0xC + .incbin "baserom.nds", 0x53D0, 0xC + .incbin "baserom.nds", 0x53DC, 0x4 + .incbin "baserom.nds", 0x53E0, 0xC + .incbin "baserom.nds", 0x53EC, 0x4 + .incbin "baserom.nds", 0x53F0, 0x4 + .incbin "baserom.nds", 0x53F4, 0x8 + .incbin "baserom.nds", 0x53FC, 0xC + .incbin "baserom.nds", 0x5408, 0x4 + .incbin "baserom.nds", 0x540C, 0x4 + .incbin "baserom.nds", 0x5410, 0x4 + .incbin "baserom.nds", 0x5414, 0x4 + .incbin "baserom.nds", 0x5418, 0x4 + .incbin "baserom.nds", 0x541C, 0x4 + .incbin "baserom.nds", 0x5420, 0x4 + .incbin "baserom.nds", 0x5424, 0x4 + .incbin "baserom.nds", 0x5428, 0x4 + .incbin "baserom.nds", 0x542C, 0x4 + .incbin "baserom.nds", 0x5430, 0x4 + .incbin "baserom.nds", 0x5434, 0x4 + .incbin "baserom.nds", 0x5438, 0x4 + .incbin "baserom.nds", 0x543C, 0x4 + .incbin "baserom.nds", 0x5440, 0x4 + .incbin "baserom.nds", 0x5444, 0x4 + .incbin "baserom.nds", 0x5448, 0x4 + .incbin "baserom.nds", 0x544C, 0x4 + .incbin "baserom.nds", 0x5450, 0x4 + .incbin "baserom.nds", 0x5454, 0x4 + .incbin "baserom.nds", 0x5458, 0x4 + .incbin "baserom.nds", 0x545C, 0x4 + .incbin "baserom.nds", 0x5460, 0x4 + .incbin "baserom.nds", 0x5464, 0x4 + .incbin "baserom.nds", 0x5468, 0x4 + .incbin "baserom.nds", 0x546C, 0x20 + .incbin "baserom.nds", 0x548C, 0x10 + .incbin "baserom.nds", 0x549C, 0x4 + .incbin "baserom.nds", 0x54A0, 0x2C + .incbin "baserom.nds", 0x54CC, 0x18 + .incbin "baserom.nds", 0x54E4, 0x4 + .incbin "baserom.nds", 0x54E8, 0x20 + .incbin "baserom.nds", 0x5508, 0x18 + .incbin "baserom.nds", 0x5520, 0x8 + .incbin "baserom.nds", 0x5528, 0x4 + .incbin "baserom.nds", 0x552C, 0x10 + .incbin "baserom.nds", 0x553C, 0x4 + .incbin "baserom.nds", 0x5540, 0x4 + .incbin "baserom.nds", 0x5544, 0x4 + .incbin "baserom.nds", 0x5548, 0x4 + .incbin "baserom.nds", 0x554C, 0x4 + .incbin "baserom.nds", 0x5550, 0x4 + .incbin "baserom.nds", 0x5554, 0x4 + .incbin "baserom.nds", 0x5558, 0x4 + .incbin "baserom.nds", 0x555C, 0x4 + .incbin "baserom.nds", 0x5560, 0x4 + .incbin "baserom.nds", 0x5564, 0x14 + .incbin "baserom.nds", 0x5578, 0x18 + .incbin "baserom.nds", 0x5590, 0x20 + .incbin "baserom.nds", 0x55B0, 0x4 + .incbin "baserom.nds", 0x55B4, 0x4 + .incbin "baserom.nds", 0x55B8, 0x24 + .incbin "baserom.nds", 0x55DC, 0x1C + .incbin "baserom.nds", 0x55F8, 0x4 + .incbin "baserom.nds", 0x55FC, 0x4 + .incbin "baserom.nds", 0x5600, 0x4 + .incbin "baserom.nds", 0x5604, 0x4 + .incbin "baserom.nds", 0x5608, 0x4 + .incbin "baserom.nds", 0x560C, 0x4 + .incbin "baserom.nds", 0x5610, 0x4 + .incbin "baserom.nds", 0x5614, 0xC + .incbin "baserom.nds", 0x5620, 0xC + .incbin "baserom.nds", 0x562C, 0xC + .incbin "baserom.nds", 0x5638, 0x4 + .incbin "baserom.nds", 0x563C, 0x4 + .incbin "baserom.nds", 0x5640, 0x8 + .incbin "baserom.nds", 0x5648, 0x4 + .incbin "baserom.nds", 0x564C, 0xC + .incbin "baserom.nds", 0x5658, 0x4 + .incbin "baserom.nds", 0x565C, 0x4 + .incbin "baserom.nds", 0x5660, 0xC + .incbin "baserom.nds", 0x566C, 0x4 + .incbin "baserom.nds", 0x5670, 0x4 + .incbin "baserom.nds", 0x5674, 0x4 + .incbin "baserom.nds", 0x5678, 0x4 + .incbin "baserom.nds", 0x567C, 0x4 + .incbin "baserom.nds", 0x5680, 0x4 + .incbin "baserom.nds", 0x5684, 0x4 + .incbin "baserom.nds", 0x5688, 0x4 + .incbin "baserom.nds", 0x568C, 0x8 + .incbin "baserom.nds", 0x5694, 0x4 + .incbin "baserom.nds", 0x5698, 0x4 + .incbin "baserom.nds", 0x569C, 0x4 + .incbin "baserom.nds", 0x56A0, 0x4 + .incbin "baserom.nds", 0x56A4, 0x4 + .incbin "baserom.nds", 0x56A8, 0x28 + .incbin "baserom.nds", 0x56D0, 0x28 + .incbin "baserom.nds", 0x56F8, 0xC + .incbin "baserom.nds", 0x5704, 0x10 + .incbin "baserom.nds", 0x5714, 0x4 + .incbin "baserom.nds", 0x5718, 0x4 + .incbin "baserom.nds", 0x571C, 0x4 + .incbin "baserom.nds", 0x5720, 0x4 + .incbin "baserom.nds", 0x5724, 0x4 + .incbin "baserom.nds", 0x5728, 0x4 + .incbin "baserom.nds", 0x572C, 0x4 + .incbin "baserom.nds", 0x5730, 0x4 + .incbin "baserom.nds", 0x5734, 0x4 + .incbin "baserom.nds", 0x5738, 0x4 + .incbin "baserom.nds", 0x573C, 0x4 + .incbin "baserom.nds", 0x5740, 0x4 + .incbin "baserom.nds", 0x5744, 0x4 + .incbin "baserom.nds", 0x5748, 0x4 + .incbin "baserom.nds", 0x574C, 0x4 + .incbin "baserom.nds", 0x5750, 0x4 + .incbin "baserom.nds", 0x5754, 0x4 + .incbin "baserom.nds", 0x5758, 0x4 + .incbin "baserom.nds", 0x575C, 0x4 + .incbin "baserom.nds", 0x5760, 0x4 + .incbin "baserom.nds", 0x5764, 0x4 + .incbin "baserom.nds", 0x5768, 0x4 + .incbin "baserom.nds", 0x576C, 0x4 + .incbin "baserom.nds", 0x5770, 0x4 + .incbin "baserom.nds", 0x5774, 0x4 + .incbin "baserom.nds", 0x5778, 0x4 + .incbin "baserom.nds", 0x577C, 0x4 + .incbin "baserom.nds", 0x5780, 0x4 + .incbin "baserom.nds", 0x5784, 0x4 + .incbin "baserom.nds", 0x5788, 0x4 + .incbin "baserom.nds", 0x578C, 0x4 + .incbin "baserom.nds", 0x5790, 0x4 + .incbin "baserom.nds", 0x5794, 0x4 + .incbin "baserom.nds", 0x5798, 0x4 + .incbin "baserom.nds", 0x579C, 0x4 + .incbin "baserom.nds", 0x57A0, 0x68 + .incbin "baserom.nds", 0x5808, 0x4 + .incbin "baserom.nds", 0x580C, 0x4 + .incbin "baserom.nds", 0x5810, 0x4 + .incbin "baserom.nds", 0x5814, 0x4 + .incbin "baserom.nds", 0x5818, 0x4 + .incbin "baserom.nds", 0x581C, 0x4 + .incbin "baserom.nds", 0x5820, 0x4 + .incbin "baserom.nds", 0x5824, 0x4 + .incbin "baserom.nds", 0x5828, 0x4 + .incbin "baserom.nds", 0x582C, 0x4 + .incbin "baserom.nds", 0x5830, 0x4 + .incbin "baserom.nds", 0x5834, 0x4 + .incbin "baserom.nds", 0x5838, 0x4 + .incbin "baserom.nds", 0x583C, 0x4 + .incbin "baserom.nds", 0x5840, 0x4 + .incbin "baserom.nds", 0x5844, 0x4 + .incbin "baserom.nds", 0x5848, 0x4 + .incbin "baserom.nds", 0x584C, 0x4 + .incbin "baserom.nds", 0x5850, 0xC + .incbin "baserom.nds", 0x585C, 0xC + .incbin "baserom.nds", 0x5868, 0xC + .incbin "baserom.nds", 0x5874, 0x14 + .incbin "baserom.nds", 0x5888, 0x4 + .incbin "baserom.nds", 0x588C, 0x4 + .incbin "baserom.nds", 0x5890, 0x4 + .incbin "baserom.nds", 0x5894, 0x4 + .incbin "baserom.nds", 0x5898, 0x4 + .incbin "baserom.nds", 0x589C, 0x4 + .incbin "baserom.nds", 0x58A0, 0x4 + .incbin "baserom.nds", 0x58A4, 0x4 + .incbin "baserom.nds", 0x58A8, 0x4 + .incbin "baserom.nds", 0x58AC, 0x4 + .incbin "baserom.nds", 0x58B0, 0x4 + .incbin "baserom.nds", 0x58B4, 0x4 + .incbin "baserom.nds", 0x58B8, 0x4 + .incbin "baserom.nds", 0x58BC, 0x4 + .incbin "baserom.nds", 0x58C0, 0x4 + .incbin "baserom.nds", 0x58C4, 0x4 + .incbin "baserom.nds", 0x58C8, 0x4 + .incbin "baserom.nds", 0x58CC, 0x4 + .incbin "baserom.nds", 0x58D0, 0x34 + .incbin "baserom.nds", 0x5904, 0xC + .incbin "baserom.nds", 0x5910, 0xC + .incbin "baserom.nds", 0x591C, 0x10 + .incbin "baserom.nds", 0x592C, 0x4 + .incbin "baserom.nds", 0x5930, 0x4 + .incbin "baserom.nds", 0x5934, 0x4 + .incbin "baserom.nds", 0x5938, 0x4 + .incbin "baserom.nds", 0x593C, 0x4 + .incbin "baserom.nds", 0x5940, 0x8 + .incbin "baserom.nds", 0x5948, 0x8 + .incbin "baserom.nds", 0x5950, 0x4 + .incbin "baserom.nds", 0x5954, 0x4 + .incbin "baserom.nds", 0x5958, 0x34 + .incbin "baserom.nds", 0x598C, 0x44 + .incbin "baserom.nds", 0x59D0, 0x4 + .incbin "baserom.nds", 0x59D4, 0x4 + .incbin "baserom.nds", 0x59D8, 0x4 + .incbin "baserom.nds", 0x59DC, 0x4 + .incbin "baserom.nds", 0x59E0, 0x10 + .incbin "baserom.nds", 0x59F0, 0x10 + .incbin "baserom.nds", 0x5A00, 0x4 + .incbin "baserom.nds", 0x5A04, 0xC + .incbin "baserom.nds", 0x5A10, 0x8 + .incbin "baserom.nds", 0x5A18, 0x4 + .incbin "baserom.nds", 0x5A1C, 0x10 + .incbin "baserom.nds", 0x5A2C, 0x20 + .incbin "baserom.nds", 0x5A4C, 0x4 + .incbin "baserom.nds", 0x5A50, 0xC + .incbin "baserom.nds", 0x5A5C, 0x10 + .incbin "baserom.nds", 0x5A6C, 0x4 + .incbin "baserom.nds", 0x5A70, 0x34 + .incbin "baserom.nds", 0x5AA4, 0x4C + .incbin "baserom.nds", 0x5AF0, 0x20 + .incbin "baserom.nds", 0x5B10, 0x1C + .incbin "baserom.nds", 0x5B2C, 0x4 + .incbin "baserom.nds", 0x5B30, 0x1C + .incbin "baserom.nds", 0x5B4C, 0x4 + .incbin "baserom.nds", 0x5B50, 0x4 + .incbin "baserom.nds", 0x5B54, 0x4 + .incbin "baserom.nds", 0x5B58, 0x4 + .incbin "baserom.nds", 0x5B5C, 0x4 + .incbin "baserom.nds", 0x5B60, 0x4 + .incbin "baserom.nds", 0x5B64, 0x4 + .incbin "baserom.nds", 0x5B68, 0x4 + .incbin "baserom.nds", 0x5B6C, 0x4 + .incbin "baserom.nds", 0x5B70, 0x4 + .incbin "baserom.nds", 0x5B74, 0x4 + .incbin "baserom.nds", 0x5B78, 0x4 + .incbin "baserom.nds", 0x5B7C, 0x10 + .incbin "baserom.nds", 0x5B8C, 0x4 + .incbin "baserom.nds", 0x5B90, 0x8 + .incbin "baserom.nds", 0x5B98, 0x4 + .incbin "baserom.nds", 0x5B9C, 0x4 + .incbin "baserom.nds", 0x5BA0, 0x4 + .incbin "baserom.nds", 0x5BA4, 0x4 + .incbin "baserom.nds", 0x5BA8, 0x4 + .incbin "baserom.nds", 0x5BAC, 0x4 + .incbin "baserom.nds", 0x5BB0, 0x4 + .incbin "baserom.nds", 0x5BB4, 0x4 + .incbin "baserom.nds", 0x5BB8, 0x4 + .incbin "baserom.nds", 0x5BBC, 0x4 + .incbin "baserom.nds", 0x5BC0, 0x4 + .incbin "baserom.nds", 0x5BC4, 0x4 + .incbin "baserom.nds", 0x5BC8, 0x4 + .incbin "baserom.nds", 0x5BCC, 0x4 + .incbin "baserom.nds", 0x5BD0, 0x4 + .incbin "baserom.nds", 0x5BD4, 0x4 + .incbin "baserom.nds", 0x5BD8, 0x4 + .incbin "baserom.nds", 0x5BDC, 0xC + .incbin "baserom.nds", 0x5BE8, 0xC + .incbin "baserom.nds", 0x5BF4, 0x10 + .incbin "baserom.nds", 0x5C04, 0xC + .incbin "baserom.nds", 0x5C10, 0x4 + .incbin "baserom.nds", 0x5C14, 0x4 + .incbin "baserom.nds", 0x5C18, 0x8 + .incbin "baserom.nds", 0x5C20, 0x8 + .incbin "baserom.nds", 0x5C28, 0x24 + .incbin "baserom.nds", 0x5C4C, 0x24 + .incbin "baserom.nds", 0x5C70, 0xC + .incbin "baserom.nds", 0x5C7C, 0x4 + .incbin "baserom.nds", 0x5C80, 0x4 + .incbin "baserom.nds", 0x5C84, 0x4 + .incbin "baserom.nds", 0x5C88, 0x4 + .incbin "baserom.nds", 0x5C8C, 0x4 + .incbin "baserom.nds", 0x5C90, 0x4 + .incbin "baserom.nds", 0x5C94, 0x8 + .incbin "baserom.nds", 0x5C9C, 0x4 + .incbin "baserom.nds", 0x5CA0, 0x94 + .incbin "baserom.nds", 0x5D34, 0x94 + .incbin "baserom.nds", 0x5DC8, 0x4 + .incbin "baserom.nds", 0x5DCC, 0x4 + .incbin "baserom.nds", 0x5DD0, 0x4 + .incbin "baserom.nds", 0x5DD4, 0x4 + .incbin "baserom.nds", 0x5DD8, 0x4 + .incbin "baserom.nds", 0x5DDC, 0x4 + .incbin "baserom.nds", 0x5DE0, 0x4 + .incbin "baserom.nds", 0x5DE4, 0x4 + .incbin "baserom.nds", 0x5DE8, 0x4 + .incbin "baserom.nds", 0x5DEC, 0x4 + .incbin "baserom.nds", 0x5DF0, 0x4 + .incbin "baserom.nds", 0x5DF4, 0x4 + .incbin "baserom.nds", 0x5DF8, 0x4 + .incbin "baserom.nds", 0x5DFC, 0x4 + .incbin "baserom.nds", 0x5E00, 0x4 + .incbin "baserom.nds", 0x5E04, 0x4 + .incbin "baserom.nds", 0x5E08, 0x4 + .incbin "baserom.nds", 0x5E0C, 0x4 + .incbin "baserom.nds", 0x5E10, 0x4 + .incbin "baserom.nds", 0x5E14, 0x4 + .incbin "baserom.nds", 0x5E18, 0x4 + .incbin "baserom.nds", 0x5E1C, 0x4 + .incbin "baserom.nds", 0x5E20, 0x4 + .incbin "baserom.nds", 0x5E24, 0x4 + .incbin "baserom.nds", 0x5E28, 0x4 + .incbin "baserom.nds", 0x5E2C, 0x4 + .incbin "baserom.nds", 0x5E30, 0x4 + .incbin "baserom.nds", 0x5E34, 0x4 + .incbin "baserom.nds", 0x5E38, 0x4 + .incbin "baserom.nds", 0x5E3C, 0x4 + .incbin "baserom.nds", 0x5E40, 0x4 + .incbin "baserom.nds", 0x5E44, 0x4 + .incbin "baserom.nds", 0x5E48, 0xC + .incbin "baserom.nds", 0x5E54, 0x18 + .incbin "baserom.nds", 0x5E6C, 0x4 + .incbin "baserom.nds", 0x5E70, 0x4 + .incbin "baserom.nds", 0x5E74, 0x4 + .incbin "baserom.nds", 0x5E78, 0x8 + .incbin "baserom.nds", 0x5E80, 0x4 + .incbin "baserom.nds", 0x5E84, 0x8 + .incbin "baserom.nds", 0x5E8C, 0x8 + .incbin "baserom.nds", 0x5E94, 0x4 + .incbin "baserom.nds", 0x5E98, 0x4 + .incbin "baserom.nds", 0x5E9C, 0x4 + .incbin "baserom.nds", 0x5EA0, 0x4 + .incbin "baserom.nds", 0x5EA4, 0x4 + .incbin "baserom.nds", 0x5EA8, 0x4 + .incbin "baserom.nds", 0x5EAC, 0x4 + .incbin "baserom.nds", 0x5EB0, 0x4 + .incbin "baserom.nds", 0x5EB4, 0x4 + .incbin "baserom.nds", 0x5EB8, 0x4 + .incbin "baserom.nds", 0x5EBC, 0x4 + .incbin "baserom.nds", 0x5EC0, 0x4 + .incbin "baserom.nds", 0x5EC4, 0x4 + .incbin "baserom.nds", 0x5EC8, 0xC + .incbin "baserom.nds", 0x5ED4, 0x4 + .incbin "baserom.nds", 0x5ED8, 0x4 + .incbin "baserom.nds", 0x5EDC, 0x4 + .incbin "baserom.nds", 0x5EE0, 0x4 + .incbin "baserom.nds", 0x5EE4, 0x4 + .incbin "baserom.nds", 0x5EE8, 0x4 + .incbin "baserom.nds", 0x5EEC, 0x4 + .incbin "baserom.nds", 0x5EF0, 0x4 + .incbin "baserom.nds", 0x5EF4, 0x8 + .incbin "baserom.nds", 0x5EFC, 0x8 + .incbin "baserom.nds", 0x5F04, 0x4 + .incbin "baserom.nds", 0x5F08, 0x4 + .incbin "baserom.nds", 0x5F0C, 0x4 + .incbin "baserom.nds", 0x5F10, 0x4 + .incbin "baserom.nds", 0x5F14, 0x4 + .incbin "baserom.nds", 0x5F18, 0x4 + .incbin "baserom.nds", 0x5F1C, 0x4 + .incbin "baserom.nds", 0x5F20, 0xC + .incbin "baserom.nds", 0x5F2C, 0x4 + .incbin "baserom.nds", 0x5F30, 0x4 + .incbin "baserom.nds", 0x5F34, 0x4 + .incbin "baserom.nds", 0x5F38, 0x4 + .incbin "baserom.nds", 0x5F3C, 0x4 + .incbin "baserom.nds", 0x5F40, 0x4 + .incbin "baserom.nds", 0x5F44, 0x4 + .incbin "baserom.nds", 0x5F48, 0x8 + .incbin "baserom.nds", 0x5F50, 0x4 + .incbin "baserom.nds", 0x5F54, 0x4 + .incbin "baserom.nds", 0x5F58, 0x4 + .incbin "baserom.nds", 0x5F5C, 0x10 + .incbin "baserom.nds", 0x5F6C, 0x4 + .incbin "baserom.nds", 0x5F70, 0x4 + .incbin "baserom.nds", 0x5F74, 0x4 + .incbin "baserom.nds", 0x5F78, 0x4 + .incbin "baserom.nds", 0x5F7C, 0x4 + .incbin "baserom.nds", 0x5F80, 0x4 + .incbin "baserom.nds", 0x5F84, 0x4 + .incbin "baserom.nds", 0x5F88, 0x24 + .incbin "baserom.nds", 0x5FAC, 0x24 + .incbin "baserom.nds", 0x5FD0, 0x4 + .incbin "baserom.nds", 0x5FD4, 0x4 + .incbin "baserom.nds", 0x5FD8, 0xC + .incbin "baserom.nds", 0x5FE4, 0x4 + .incbin "baserom.nds", 0x5FE8, 0x4 + .incbin "baserom.nds", 0x5FEC, 0x4 + .incbin "baserom.nds", 0x5FF0, 0x4 + .incbin "baserom.nds", 0x5FF4, 0x4 + .incbin "baserom.nds", 0x5FF8, 0x4 + .incbin "baserom.nds", 0x5FFC, 0x4 + .incbin "baserom.nds", 0x6000, 0x4 + .incbin "baserom.nds", 0x6004, 0x4 + .incbin "baserom.nds", 0x6008, 0x4 + .incbin "baserom.nds", 0x600C, 0x4 + .incbin "baserom.nds", 0x6010, 0x4 + .incbin "baserom.nds", 0x6014, 0x4 + .incbin "baserom.nds", 0x6018, 0x4 + .incbin "baserom.nds", 0x601C, 0x4 + .incbin "baserom.nds", 0x6020, 0x4 + .incbin "baserom.nds", 0x6024, 0x4 + .incbin "baserom.nds", 0x6028, 0x4 + .incbin "baserom.nds", 0x602C, 0x4 + .incbin "baserom.nds", 0x6030, 0x4 + .incbin "baserom.nds", 0x6034, 0x4 + .incbin "baserom.nds", 0x6038, 0x4 + .incbin "baserom.nds", 0x603C, 0x4 + .incbin "baserom.nds", 0x6040, 0x4 + .incbin "baserom.nds", 0x6044, 0x4 + .incbin "baserom.nds", 0x6048, 0x4 + .incbin "baserom.nds", 0x604C, 0x4 + .incbin "baserom.nds", 0x6050, 0x4 + .incbin "baserom.nds", 0x6054, 0x4 + .incbin "baserom.nds", 0x6058, 0x4 + .incbin "baserom.nds", 0x605C, 0x4 + .incbin "baserom.nds", 0x6060, 0x4 + .incbin "baserom.nds", 0x6064, 0x4 + .incbin "baserom.nds", 0x6068, 0x4 + .incbin "baserom.nds", 0x606C, 0x4 + .incbin "baserom.nds", 0x6070, 0x4 + .incbin "baserom.nds", 0x6074, 0x4 + .incbin "baserom.nds", 0x6078, 0x4 + .incbin "baserom.nds", 0x607C, 0x4 + .incbin "baserom.nds", 0x6080, 0x8 + .incbin "baserom.nds", 0x6088, 0x4 + .incbin "baserom.nds", 0x608C, 0x8 + .incbin "baserom.nds", 0x6094, 0x4 + .incbin "baserom.nds", 0x6098, 0x4 + .incbin "baserom.nds", 0x609C, 0x4 + .incbin "baserom.nds", 0x60A0, 0x4 + .incbin "baserom.nds", 0x60A4, 0x4 + .incbin "baserom.nds", 0x60A8, 0x4 + .incbin "baserom.nds", 0x60AC, 0x4 + .incbin "baserom.nds", 0x60B0, 0x4 + .incbin "baserom.nds", 0x60B4, 0x38 + .incbin "baserom.nds", 0x60EC, 0x50 + .incbin "baserom.nds", 0x613C, 0x4 + .incbin "baserom.nds", 0x6140, 0x4 + .incbin "baserom.nds", 0x6144, 0x4 + .incbin "baserom.nds", 0x6148, 0x4 + .incbin "baserom.nds", 0x614C, 0x4 + .incbin "baserom.nds", 0x6150, 0x4 + .incbin "baserom.nds", 0x6154, 0x4 + .incbin "baserom.nds", 0x6158, 0x4 + .incbin "baserom.nds", 0x615C, 0x4 + .incbin "baserom.nds", 0x6160, 0x4 + .incbin "baserom.nds", 0x6164, 0x4 + .incbin "baserom.nds", 0x6168, 0x4 + .incbin "baserom.nds", 0x616C, 0x4 + .incbin "baserom.nds", 0x6170, 0x4 + .incbin "baserom.nds", 0x6174, 0x4 + .incbin "baserom.nds", 0x6178, 0x4 + .incbin "baserom.nds", 0x617C, 0x4 + .incbin "baserom.nds", 0x6180, 0x4 + .incbin "baserom.nds", 0x6184, 0x4 + .incbin "baserom.nds", 0x6188, 0x4 + .incbin "baserom.nds", 0x618C, 0x4 + .incbin "baserom.nds", 0x6190, 0x4 + .incbin "baserom.nds", 0x6194, 0x4 + .incbin "baserom.nds", 0x6198, 0x4 + .incbin "baserom.nds", 0x619C, 0x4 + .incbin "baserom.nds", 0x61A0, 0x4 + .incbin "baserom.nds", 0x61A4, 0x4 + .incbin "baserom.nds", 0x61A8, 0x18 + .incbin "baserom.nds", 0x61C0, 0xC + .incbin "baserom.nds", 0x61CC, 0x4 + .incbin "baserom.nds", 0x61D0, 0x4 + .incbin "baserom.nds", 0x61D4, 0x4 + .incbin "baserom.nds", 0x61D8, 0x4 + .incbin "baserom.nds", 0x61DC, 0x8 + .incbin "baserom.nds", 0x61E4, 0x8 + .incbin "baserom.nds", 0x61EC, 0x18 + .incbin "baserom.nds", 0x6204, 0x4 + .incbin "baserom.nds", 0x6208, 0x4 + .incbin "baserom.nds", 0x620C, 0x4 + .incbin "baserom.nds", 0x6210, 0xC + .incbin "baserom.nds", 0x621C, 0xC + .incbin "baserom.nds", 0x6228, 0xC + .incbin "baserom.nds", 0x6234, 0xC + .incbin "baserom.nds", 0x6240, 0xC + .incbin "baserom.nds", 0x624C, 0x4 + .incbin "baserom.nds", 0x6250, 0x4 + .incbin "baserom.nds", 0x6254, 0x4 + .incbin "baserom.nds", 0x6258, 0x4 + .incbin "baserom.nds", 0x625C, 0x4 + .incbin "baserom.nds", 0x6260, 0x4 + .incbin "baserom.nds", 0x6264, 0x4 + .incbin "baserom.nds", 0x6268, 0x8 + .incbin "baserom.nds", 0x6270, 0x8 + .incbin "baserom.nds", 0x6278, 0x4 + .incbin "baserom.nds", 0x627C, 0x4 + .incbin "baserom.nds", 0x6280, 0x4 + .incbin "baserom.nds", 0x6284, 0x4 + .incbin "baserom.nds", 0x6288, 0x4 + .incbin "baserom.nds", 0x628C, 0x4 + .incbin "baserom.nds", 0x6290, 0x24 + .incbin "baserom.nds", 0x62B4, 0x24 + .incbin "baserom.nds", 0x62D8, 0x8 + .incbin "baserom.nds", 0x62E0, 0x8 + .incbin "baserom.nds", 0x62E8, 0x4 + .incbin "baserom.nds", 0x62EC, 0x4 + .incbin "baserom.nds", 0x62F0, 0x4 + .incbin "baserom.nds", 0x62F4, 0x4 + .incbin "baserom.nds", 0x62F8, 0x4 + .incbin "baserom.nds", 0x62FC, 0x4 + .incbin "baserom.nds", 0x6300, 0x4 + .incbin "baserom.nds", 0x6304, 0x4 + .incbin "baserom.nds", 0x6308, 0x4 + .incbin "baserom.nds", 0x630C, 0x4 + .incbin "baserom.nds", 0x6310, 0x4 + .incbin "baserom.nds", 0x6314, 0x14 + .incbin "baserom.nds", 0x6328, 0x4 + .incbin "baserom.nds", 0x632C, 0x4 + .incbin "baserom.nds", 0x6330, 0x4 + .incbin "baserom.nds", 0x6334, 0x4 + .incbin "baserom.nds", 0x6338, 0x4 + .incbin "baserom.nds", 0x633C, 0x4 + .incbin "baserom.nds", 0x6340, 0x4 + .incbin "baserom.nds", 0x6344, 0x4 + .incbin "baserom.nds", 0x6348, 0xC + .incbin "baserom.nds", 0x6354, 0xC + .incbin "baserom.nds", 0x6360, 0x4 + .incbin "baserom.nds", 0x6364, 0xC + .incbin "baserom.nds", 0x6370, 0x4 + .incbin "baserom.nds", 0x6374, 0x4 + .incbin "baserom.nds", 0x6378, 0x8 + .incbin "baserom.nds", 0x6380, 0xC + .incbin "baserom.nds", 0x638C, 0x4 + .incbin "baserom.nds", 0x6390, 0x4 + .incbin "baserom.nds", 0x6394, 0x4 + .incbin "baserom.nds", 0x6398, 0x4 + .incbin "baserom.nds", 0x639C, 0x4 + .incbin "baserom.nds", 0x63A0, 0x4 + .incbin "baserom.nds", 0x63A4, 0x4 + .incbin "baserom.nds", 0x63A8, 0x4 + .incbin "baserom.nds", 0x63AC, 0x4 + .incbin "baserom.nds", 0x63B0, 0x4 + .incbin "baserom.nds", 0x63B4, 0x4 + .incbin "baserom.nds", 0x63B8, 0x4 + .incbin "baserom.nds", 0x63BC, 0x4 + .incbin "baserom.nds", 0x63C0, 0x4 + .incbin "baserom.nds", 0x63C4, 0x4 + .incbin "baserom.nds", 0x63C8, 0x4 + .incbin "baserom.nds", 0x63CC, 0x4 + .incbin "baserom.nds", 0x63D0, 0x4 + .incbin "baserom.nds", 0x63D4, 0x4 + .incbin "baserom.nds", 0x63D8, 0x4 + .incbin "baserom.nds", 0x63DC, 0x4 + .incbin "baserom.nds", 0x63E0, 0x4 + .incbin "baserom.nds", 0x63E4, 0x4 + .incbin "baserom.nds", 0x63E8, 0x4 + .incbin "baserom.nds", 0x63EC, 0x4 + .incbin "baserom.nds", 0x63F0, 0x20 + .incbin "baserom.nds", 0x6410, 0x10 + .incbin "baserom.nds", 0x6420, 0x4 + .incbin "baserom.nds", 0x6424, 0x2C + .incbin "baserom.nds", 0x6450, 0x18 + .incbin "baserom.nds", 0x6468, 0x18 + .incbin "baserom.nds", 0x6480, 0x20 + .incbin "baserom.nds", 0x64A0, 0x18 + .incbin "baserom.nds", 0x64B8, 0x8 + .incbin "baserom.nds", 0x64C0, 0x4 + .incbin "baserom.nds", 0x64C4, 0x10 + .incbin "baserom.nds", 0x64D4, 0x4 + .incbin "baserom.nds", 0x64D8, 0x4 + .incbin "baserom.nds", 0x64DC, 0x4 + .incbin "baserom.nds", 0x64E0, 0x4 + .incbin "baserom.nds", 0x64E4, 0x4 + .incbin "baserom.nds", 0x64E8, 0x4 + .incbin "baserom.nds", 0x64EC, 0x4 + .incbin "baserom.nds", 0x64F0, 0x4 + .incbin "baserom.nds", 0x64F4, 0x4 + .incbin "baserom.nds", 0x64F8, 0x4 + .incbin "baserom.nds", 0x64FC, 0x14 + .incbin "baserom.nds", 0x6510, 0x18 + .incbin "baserom.nds", 0x6528, 0x20 + .incbin "baserom.nds", 0x6548, 0x4 + .incbin "baserom.nds", 0x654C, 0x4 + .incbin "baserom.nds", 0x6550, 0x24 + .incbin "baserom.nds", 0x6574, 0x1C + .incbin "baserom.nds", 0x6590, 0x4 + .incbin "baserom.nds", 0x6594, 0x4 + .incbin "baserom.nds", 0x6598, 0x4 + .incbin "baserom.nds", 0x659C, 0x4 + .incbin "baserom.nds", 0x65A0, 0x4 + .incbin "baserom.nds", 0x65A4, 0x4 + .incbin "baserom.nds", 0x65A8, 0x4 + .incbin "baserom.nds", 0x65AC, 0xC + .incbin "baserom.nds", 0x65B8, 0xC + .incbin "baserom.nds", 0x65C4, 0xC + .incbin "baserom.nds", 0x65D0, 0x4 + .incbin "baserom.nds", 0x65D4, 0x4 + .incbin "baserom.nds", 0x65D8, 0x8 + .incbin "baserom.nds", 0x65E0, 0x4 + .incbin "baserom.nds", 0x65E4, 0xC + .incbin "baserom.nds", 0x65F0, 0x4 + .incbin "baserom.nds", 0x65F4, 0x4 + .incbin "baserom.nds", 0x65F8, 0x4 + .incbin "baserom.nds", 0x65FC, 0x4 + .incbin "baserom.nds", 0x6600, 0x4 + .incbin "baserom.nds", 0x6604, 0x4 + .incbin "baserom.nds", 0x6608, 0x4 + .incbin "baserom.nds", 0x660C, 0x4 + .incbin "baserom.nds", 0x6610, 0x4 + .incbin "baserom.nds", 0x6614, 0x4 + .incbin "baserom.nds", 0x6618, 0x4 + .incbin "baserom.nds", 0x661C, 0x8 + .incbin "baserom.nds", 0x6624, 0x4 + .incbin "baserom.nds", 0x6628, 0x4 + .incbin "baserom.nds", 0x662C, 0x4 + .incbin "baserom.nds", 0x6630, 0x4 + .incbin "baserom.nds", 0x6634, 0x4 + .incbin "baserom.nds", 0x6638, 0x28 + .incbin "baserom.nds", 0x6660, 0x28 + .incbin "baserom.nds", 0x6688, 0xC + .incbin "baserom.nds", 0x6694, 0x10 + .incbin "baserom.nds", 0x66A4, 0x4 + .incbin "baserom.nds", 0x66A8, 0x4 + .incbin "baserom.nds", 0x66AC, 0x4 + .incbin "baserom.nds", 0x66B0, 0x4 + .incbin "baserom.nds", 0x66B4, 0x4 + .incbin "baserom.nds", 0x66B8, 0x4 + .incbin "baserom.nds", 0x66BC, 0x4 + .incbin "baserom.nds", 0x66C0, 0x4 + .incbin "baserom.nds", 0x66C4, 0x4 + .incbin "baserom.nds", 0x66C8, 0x4 + .incbin "baserom.nds", 0x66CC, 0x4 + .incbin "baserom.nds", 0x66D0, 0x4 + .incbin "baserom.nds", 0x66D4, 0x4 + .incbin "baserom.nds", 0x66D8, 0x4 + .incbin "baserom.nds", 0x66DC, 0x4 + .incbin "baserom.nds", 0x66E0, 0x4 + .incbin "baserom.nds", 0x66E4, 0x4 + .incbin "baserom.nds", 0x66E8, 0x4 + .incbin "baserom.nds", 0x66EC, 0x4 + .incbin "baserom.nds", 0x66F0, 0x4 + .incbin "baserom.nds", 0x66F4, 0x4 + .incbin "baserom.nds", 0x66F8, 0x4 + .incbin "baserom.nds", 0x66FC, 0x4 + .incbin "baserom.nds", 0x6700, 0x4 + .incbin "baserom.nds", 0x6704, 0x4 + .incbin "baserom.nds", 0x6708, 0x4 + .incbin "baserom.nds", 0x670C, 0x4 + .incbin "baserom.nds", 0x6710, 0x4 + .incbin "baserom.nds", 0x6714, 0x4 + .incbin "baserom.nds", 0x6718, 0x4 + .incbin "baserom.nds", 0x671C, 0x4 + .incbin "baserom.nds", 0x6720, 0x4 + .incbin "baserom.nds", 0x6724, 0x4 + .incbin "baserom.nds", 0x6728, 0x4 + .incbin "baserom.nds", 0x672C, 0x4 + .incbin "baserom.nds", 0x6730, 0xC8 + .incbin "baserom.nds", 0x67F8, 0x4 + .incbin "baserom.nds", 0x67FC, 0x4 + .incbin "baserom.nds", 0x6800, 0x4 + .incbin "baserom.nds", 0x6804, 0x4 + .incbin "baserom.nds", 0x6808, 0x4 + .incbin "baserom.nds", 0x680C, 0x4 + .incbin "baserom.nds", 0x6810, 0x4 + .incbin "baserom.nds", 0x6814, 0x4 + .incbin "baserom.nds", 0x6818, 0x4 + .incbin "baserom.nds", 0x681C, 0x4 + .incbin "baserom.nds", 0x6820, 0x4 + .incbin "baserom.nds", 0x6824, 0x4 + .incbin "baserom.nds", 0x6828, 0x4 + .incbin "baserom.nds", 0x682C, 0x4 + .incbin "baserom.nds", 0x6830, 0x4 + .incbin "baserom.nds", 0x6834, 0x4 + .incbin "baserom.nds", 0x6838, 0x4 + .incbin "baserom.nds", 0x683C, 0x4 + .incbin "baserom.nds", 0x6840, 0x4 + .incbin "baserom.nds", 0x6844, 0x4 + .incbin "baserom.nds", 0x6848, 0x4 + .incbin "baserom.nds", 0x684C, 0x4 + .incbin "baserom.nds", 0x6850, 0x4 + .incbin "baserom.nds", 0x6854, 0x4 + .incbin "baserom.nds", 0x6858, 0x4 + .incbin "baserom.nds", 0x685C, 0x4 + .incbin "baserom.nds", 0x6860, 0x4 + .incbin "baserom.nds", 0x6864, 0x4 + .incbin "baserom.nds", 0x6868, 0x4 + .incbin "baserom.nds", 0x686C, 0x4 + .incbin "baserom.nds", 0x6870, 0x4 + .incbin "baserom.nds", 0x6874, 0x4 + .incbin "baserom.nds", 0x6878, 0x4 + .incbin "baserom.nds", 0x687C, 0x4 + .incbin "baserom.nds", 0x6880, 0x4 + .incbin "baserom.nds", 0x6884, 0x4 + .incbin "baserom.nds", 0x6888, 0x4 + .incbin "baserom.nds", 0x688C, 0x4 + .incbin "baserom.nds", 0x6890, 0x4 + .incbin "baserom.nds", 0x6894, 0x4 + .incbin "baserom.nds", 0x6898, 0x4 + .incbin "baserom.nds", 0x689C, 0x4 + .incbin "baserom.nds", 0x68A0, 0x4 + .incbin "baserom.nds", 0x68A4, 0x4 + .incbin "baserom.nds", 0x68A8, 0x4 + .incbin "baserom.nds", 0x68AC, 0x4 + .incbin "baserom.nds", 0x68B0, 0x4 + .incbin "baserom.nds", 0x68B4, 0x4 + .incbin "baserom.nds", 0x68B8, 0x4 + .incbin "baserom.nds", 0x68BC, 0x4 + .incbin "baserom.nds", 0x68C0, 0x4 + .incbin "baserom.nds", 0x68C4, 0x4 + .incbin "baserom.nds", 0x68C8, 0x4 + .incbin "baserom.nds", 0x68CC, 0x4 + .incbin "baserom.nds", 0x68D0, 0x4 + .incbin "baserom.nds", 0x68D4, 0x4 + .incbin "baserom.nds", 0x68D8, 0x4 + .incbin "baserom.nds", 0x68DC, 0x4 + .incbin "baserom.nds", 0x68E0, 0x4 + .incbin "baserom.nds", 0x68E4, 0x4 + .incbin "baserom.nds", 0x68E8, 0x4 + .incbin "baserom.nds", 0x68EC, 0x4 + .incbin "baserom.nds", 0x68F0, 0x4 + .incbin "baserom.nds", 0x68F4, 0x4 + .incbin "baserom.nds", 0x68F8, 0x4 + .incbin "baserom.nds", 0x68FC, 0x4 + .incbin "baserom.nds", 0x6900, 0x4 + .incbin "baserom.nds", 0x6904, 0x4 + .incbin "baserom.nds", 0x6908, 0x4 + .incbin "baserom.nds", 0x690C, 0x4 + .incbin "baserom.nds", 0x6910, 0x4 + .incbin "baserom.nds", 0x6914, 0x4 + .incbin "baserom.nds", 0x6918, 0x4 + .incbin "baserom.nds", 0x691C, 0x4 + .incbin "baserom.nds", 0x6920, 0x4 + .incbin "baserom.nds", 0x6924, 0x4 + .incbin "baserom.nds", 0x6928, 0x4 + .incbin "baserom.nds", 0x692C, 0x4 + .incbin "baserom.nds", 0x6930, 0x4 + .incbin "baserom.nds", 0x6934, 0x4 + .incbin "baserom.nds", 0x6938, 0x4 + .incbin "baserom.nds", 0x693C, 0x4 + .incbin "baserom.nds", 0x6940, 0x4 + .incbin "baserom.nds", 0x6944, 0x4 + .incbin "baserom.nds", 0x6948, 0x4 + .incbin "baserom.nds", 0x694C, 0x4 + .incbin "baserom.nds", 0x6950, 0x4 + .incbin "baserom.nds", 0x6954, 0x4 + .incbin "baserom.nds", 0x6958, 0x4 + .incbin "baserom.nds", 0x695C, 0x4 + .incbin "baserom.nds", 0x6960, 0x4 + .incbin "baserom.nds", 0x6964, 0x4 + .incbin "baserom.nds", 0x6968, 0x4 + .incbin "baserom.nds", 0x696C, 0x4 + .incbin "baserom.nds", 0x6970, 0x4 + .incbin "baserom.nds", 0x6974, 0x4 + .incbin "baserom.nds", 0x6978, 0x4 + .incbin "baserom.nds", 0x697C, 0x4 + .incbin "baserom.nds", 0x6980, 0x4 + .incbin "baserom.nds", 0x6984, 0x4 + .incbin "baserom.nds", 0x6988, 0x4 + .incbin "baserom.nds", 0x698C, 0x4 + .incbin "baserom.nds", 0x6990, 0x4 + .incbin "baserom.nds", 0x6994, 0x4 + .incbin "baserom.nds", 0x6998, 0x4 + .incbin "baserom.nds", 0x699C, 0x4 + .incbin "baserom.nds", 0x69A0, 0x4 + .incbin "baserom.nds", 0x69A4, 0x4 + .incbin "baserom.nds", 0x69A8, 0x4 + .incbin "baserom.nds", 0x69AC, 0x4 + .incbin "baserom.nds", 0x69B0, 0x4 + .incbin "baserom.nds", 0x69B4, 0x4 + .incbin "baserom.nds", 0x69B8, 0x4 + .incbin "baserom.nds", 0x69BC, 0x4 + .incbin "baserom.nds", 0x69C0, 0x4 + .incbin "baserom.nds", 0x69C4, 0x4 + .incbin "baserom.nds", 0x69C8, 0x4 + .incbin "baserom.nds", 0x69CC, 0x4 + .incbin "baserom.nds", 0x69D0, 0x4 + .incbin "baserom.nds", 0x69D4, 0x4 + .incbin "baserom.nds", 0x69D8, 0x4 + .incbin "baserom.nds", 0x69DC, 0x4 + .incbin "baserom.nds", 0x69E0, 0x4 + .incbin "baserom.nds", 0x69E4, 0x4 + .incbin "baserom.nds", 0x69E8, 0x4 + .incbin "baserom.nds", 0x69EC, 0x4 + .incbin "baserom.nds", 0x69F0, 0x4 + .incbin "baserom.nds", 0x69F4, 0x4 + .incbin "baserom.nds", 0x69F8, 0x4 + .incbin "baserom.nds", 0x69FC, 0x4 + .incbin "baserom.nds", 0x6A00, 0x4 + .incbin "baserom.nds", 0x6A04, 0x4 + .incbin "baserom.nds", 0x6A08, 0x4 + .incbin "baserom.nds", 0x6A0C, 0x4 + .incbin "baserom.nds", 0x6A10, 0x4 + .incbin "baserom.nds", 0x6A14, 0x4 + .incbin "baserom.nds", 0x6A18, 0x4 + .incbin "baserom.nds", 0x6A1C, 0x4 + .incbin "baserom.nds", 0x6A20, 0x4 + .incbin "baserom.nds", 0x6A24, 0x4 + .incbin "baserom.nds", 0x6A28, 0x4 + .incbin "baserom.nds", 0x6A2C, 0x4 + .incbin "baserom.nds", 0x6A30, 0x4 + .incbin "baserom.nds", 0x6A34, 0x4 + .incbin "baserom.nds", 0x6A38, 0x4 + .incbin "baserom.nds", 0x6A3C, 0x4 + .incbin "baserom.nds", 0x6A40, 0x4 + .incbin "baserom.nds", 0x6A44, 0x4 + .incbin "baserom.nds", 0x6A48, 0x4 + .incbin "baserom.nds", 0x6A4C, 0x4 + .incbin "baserom.nds", 0x6A50, 0x4 + .incbin "baserom.nds", 0x6A54, 0x4 + .incbin "baserom.nds", 0x6A58, 0x4 + .incbin "baserom.nds", 0x6A5C, 0x4 + .incbin "baserom.nds", 0x6A60, 0x4 + .incbin "baserom.nds", 0x6A64, 0x4 + .incbin "baserom.nds", 0x6A68, 0x4 + .incbin "baserom.nds", 0x6A6C, 0x4 + .incbin "baserom.nds", 0x6A70, 0x4 + .incbin "baserom.nds", 0x6A74, 0x4 + .incbin "baserom.nds", 0x6A78, 0x4 + .incbin "baserom.nds", 0x6A7C, 0x4 + .incbin "baserom.nds", 0x6A80, 0x4 + .incbin "baserom.nds", 0x6A84, 0x4 + .incbin "baserom.nds", 0x6A88, 0x4 + .incbin "baserom.nds", 0x6A8C, 0x4 + .incbin "baserom.nds", 0x6A90, 0x4 + .incbin "baserom.nds", 0x6A94, 0x4 + .incbin "baserom.nds", 0x6A98, 0x4 + .incbin "baserom.nds", 0x6A9C, 0x4 + .incbin "baserom.nds", 0x6AA0, 0x4 + .incbin "baserom.nds", 0x6AA4, 0x4 + .incbin "baserom.nds", 0x6AA8, 0x4 + .incbin "baserom.nds", 0x6AAC, 0x4 + .incbin "baserom.nds", 0x6AB0, 0x4 + .incbin "baserom.nds", 0x6AB4, 0x4 + .incbin "baserom.nds", 0x6AB8, 0x4 + .incbin "baserom.nds", 0x6ABC, 0x4 + .incbin "baserom.nds", 0x6AC0, 0x4 + .incbin "baserom.nds", 0x6AC4, 0x4 + .incbin "baserom.nds", 0x6AC8, 0x4 + .incbin "baserom.nds", 0x6ACC, 0x4 + .incbin "baserom.nds", 0x6AD0, 0x4 + .incbin "baserom.nds", 0x6AD4, 0x4 + .incbin "baserom.nds", 0x6AD8, 0x4 + .incbin "baserom.nds", 0x6ADC, 0x4 + .incbin "baserom.nds", 0x6AE0, 0x4 + .incbin "baserom.nds", 0x6AE4, 0x4 + .incbin "baserom.nds", 0x6AE8, 0x4 + .incbin "baserom.nds", 0x6AEC, 0x54 + .incbin "baserom.nds", 0x6B40, 0x4 + .incbin "baserom.nds", 0x6B44, 0x4 + .incbin "baserom.nds", 0x6B48, 0x4 + .incbin "baserom.nds", 0x6B4C, 0x4 + .incbin "baserom.nds", 0x6B50, 0x4 + .incbin "baserom.nds", 0x6B54, 0x4 + .incbin "baserom.nds", 0x6B58, 0x4 + .incbin "baserom.nds", 0x6B5C, 0x4 + .incbin "baserom.nds", 0x6B60, 0x4 + .incbin "baserom.nds", 0x6B64, 0x4 + .incbin "baserom.nds", 0x6B68, 0x4 + .incbin "baserom.nds", 0x6B6C, 0x4 + .incbin "baserom.nds", 0x6B70, 0x4 + .incbin "baserom.nds", 0x6B74, 0x4 + .incbin "baserom.nds", 0x6B78, 0x4 + .incbin "baserom.nds", 0x6B7C, 0x4 + .incbin "baserom.nds", 0x6B80, 0x4 + .incbin "baserom.nds", 0x6B84, 0x4 + .incbin "baserom.nds", 0x6B88, 0x4 + .incbin "baserom.nds", 0x6B8C, 0x4 + .incbin "baserom.nds", 0x6B90, 0x4 + .incbin "baserom.nds", 0x6B94, 0x4 + .incbin "baserom.nds", 0x6B98, 0x4 + .incbin "baserom.nds", 0x6B9C, 0x54 + .incbin "baserom.nds", 0x6BF0, 0x4 + .incbin "baserom.nds", 0x6BF4, 0x4 + .incbin "baserom.nds", 0x6BF8, 0x4 + .incbin "baserom.nds", 0x6BFC, 0x4 + .incbin "baserom.nds", 0x6C00, 0x4 + .incbin "baserom.nds", 0x6C04, 0x4 + .incbin "baserom.nds", 0x6C08, 0x4 + .incbin "baserom.nds", 0x6C0C, 0x4 + .incbin "baserom.nds", 0x6C10, 0x4 + .incbin "baserom.nds", 0x6C14, 0x4 + .incbin "baserom.nds", 0x6C18, 0x4 + .incbin "baserom.nds", 0x6C1C, 0x4 + .incbin "baserom.nds", 0x6C20, 0x4 + .incbin "baserom.nds", 0x6C24, 0x4 + .incbin "baserom.nds", 0x6C28, 0x4 + .incbin "baserom.nds", 0x6C2C, 0x4 + .incbin "baserom.nds", 0x6C30, 0x4 + .incbin "baserom.nds", 0x6C34, 0x4 + .incbin "baserom.nds", 0x6C38, 0x4 + .incbin "baserom.nds", 0x6C3C, 0x4 + .incbin "baserom.nds", 0x6C40, 0x4 + .incbin "baserom.nds", 0x6C44, 0x4 + .incbin "baserom.nds", 0x6C48, 0x4 + .incbin "baserom.nds", 0x6C4C, 0x4 + .incbin "baserom.nds", 0x6C50, 0x4 + .incbin "baserom.nds", 0x6C54, 0x4 + .incbin "baserom.nds", 0x6C58, 0x4 + .incbin "baserom.nds", 0x6C5C, 0x4 + .incbin "baserom.nds", 0x6C60, 0x4 + .incbin "baserom.nds", 0x6C64, 0x4 + .incbin "baserom.nds", 0x6C68, 0x4 + .incbin "baserom.nds", 0x6C6C, 0x4 + .incbin "baserom.nds", 0x6C70, 0x4 + .incbin "baserom.nds", 0x6C74, 0x4 + .incbin "baserom.nds", 0x6C78, 0x4 + .incbin "baserom.nds", 0x6C7C, 0x4 + .incbin "baserom.nds", 0x6C80, 0x4 + .incbin "baserom.nds", 0x6C84, 0x4 + .incbin "baserom.nds", 0x6C88, 0x4 + .incbin "baserom.nds", 0x6C8C, 0x4 + .incbin "baserom.nds", 0x6C90, 0x4 + .incbin "baserom.nds", 0x6C94, 0x4 + .incbin "baserom.nds", 0x6C98, 0x4 + .incbin "baserom.nds", 0x6C9C, 0x4 + .incbin "baserom.nds", 0x6CA0, 0x4 + .incbin "baserom.nds", 0x6CA4, 0x4 + .incbin "baserom.nds", 0x6CA8, 0x4 + .incbin "baserom.nds", 0x6CAC, 0x4 + .incbin "baserom.nds", 0x6CB0, 0x4 + .incbin "baserom.nds", 0x6CB4, 0x4 + .incbin "baserom.nds", 0x6CB8, 0x54 + .incbin "baserom.nds", 0x6D0C, 0x4 + .incbin "baserom.nds", 0x6D10, 0x4 + .incbin "baserom.nds", 0x6D14, 0x54 + .incbin "baserom.nds", 0x6D68, 0x4 + .incbin "baserom.nds", 0x6D6C, 0x4 + .incbin "baserom.nds", 0x6D70, 0x4 + .incbin "baserom.nds", 0x6D74, 0x4 + .incbin "baserom.nds", 0x6D78, 0x4 + .incbin "baserom.nds", 0x6D7C, 0x4 + .incbin "baserom.nds", 0x6D80, 0x4 + .incbin "baserom.nds", 0x6D84, 0x4 + .incbin "baserom.nds", 0x6D88, 0x4 + .incbin "baserom.nds", 0x6D8C, 0x4 + .incbin "baserom.nds", 0x6D90, 0x4 + .incbin "baserom.nds", 0x6D94, 0x4 + .incbin "baserom.nds", 0x6D98, 0x4 + .incbin "baserom.nds", 0x6D9C, 0x4 + .incbin "baserom.nds", 0x6DA0, 0x4 + .incbin "baserom.nds", 0x6DA4, 0x4 + .incbin "baserom.nds", 0x6DA8, 0x4 + .incbin "baserom.nds", 0x6DAC, 0x4 + .incbin "baserom.nds", 0x6DB0, 0x4 + .incbin "baserom.nds", 0x6DB4, 0x4 + .incbin "baserom.nds", 0x6DB8, 0x4 + .incbin "baserom.nds", 0x6DBC, 0x4 + .incbin "baserom.nds", 0x6DC0, 0x4 + .incbin "baserom.nds", 0x6DC4, 0x4 + .incbin "baserom.nds", 0x6DC8, 0x4 + .incbin "baserom.nds", 0x6DCC, 0x4 + .incbin "baserom.nds", 0x6DD0, 0x4 + .incbin "baserom.nds", 0x6DD4, 0x4 + .incbin "baserom.nds", 0x6DD8, 0x4 + .incbin "baserom.nds", 0x6DDC, 0x4 + .incbin "baserom.nds", 0x6DE0, 0x4 + .incbin "baserom.nds", 0x6DE4, 0x4 + .incbin "baserom.nds", 0x6DE8, 0x4 + .incbin "baserom.nds", 0x6DEC, 0x4 + .incbin "baserom.nds", 0x6DF0, 0x4 + .incbin "baserom.nds", 0x6DF4, 0x4 + .incbin "baserom.nds", 0x6DF8, 0x4 + .incbin "baserom.nds", 0x6DFC, 0x4 + .incbin "baserom.nds", 0x6E00, 0x4 + .incbin "baserom.nds", 0x6E04, 0x4 + .incbin "baserom.nds", 0x6E08, 0x4 + .incbin "baserom.nds", 0x6E0C, 0x4 + .incbin "baserom.nds", 0x6E10, 0x4 + .incbin "baserom.nds", 0x6E14, 0x4 + .incbin "baserom.nds", 0x6E18, 0x4 + .incbin "baserom.nds", 0x6E1C, 0x4 + .incbin "baserom.nds", 0x6E20, 0x4 + .incbin "baserom.nds", 0x6E24, 0x4 + .incbin "baserom.nds", 0x6E28, 0x4 + .incbin "baserom.nds", 0x6E2C, 0x4 + .incbin "baserom.nds", 0x6E30, 0x4 + .incbin "baserom.nds", 0x6E34, 0x4 + .incbin "baserom.nds", 0x6E38, 0x4 + .incbin "baserom.nds", 0x6E3C, 0x4 + .incbin "baserom.nds", 0x6E40, 0x4 + .incbin "baserom.nds", 0x6E44, 0x4 + .incbin "baserom.nds", 0x6E48, 0x4 + .incbin "baserom.nds", 0x6E4C, 0x4 + .incbin "baserom.nds", 0x6E50, 0x4 + .incbin "baserom.nds", 0x6E54, 0x4 + .incbin "baserom.nds", 0x6E58, 0x4 + .incbin "baserom.nds", 0x6E5C, 0x4 + .incbin "baserom.nds", 0x6E60, 0x4 + .incbin "baserom.nds", 0x6E64, 0x4 + .incbin "baserom.nds", 0x6E68, 0x4 + .incbin "baserom.nds", 0x6E6C, 0x4 + .incbin "baserom.nds", 0x6E70, 0x4 + .incbin "baserom.nds", 0x6E74, 0x4 + .incbin "baserom.nds", 0x6E78, 0x4 + .incbin "baserom.nds", 0x6E7C, 0x4 + .incbin "baserom.nds", 0x6E80, 0x4 + .incbin "baserom.nds", 0x6E84, 0x4 + .incbin "baserom.nds", 0x6E88, 0x4 + .incbin "baserom.nds", 0x6E8C, 0x4 + .incbin "baserom.nds", 0x6E90, 0x4 + .incbin "baserom.nds", 0x6E94, 0x4 + .incbin "baserom.nds", 0x6E98, 0x4 + .incbin "baserom.nds", 0x6E9C, 0x4 + .incbin "baserom.nds", 0x6EA0, 0x4 + .incbin "baserom.nds", 0x6EA4, 0x4 + .incbin "baserom.nds", 0x6EA8, 0x4 + .incbin "baserom.nds", 0x6EAC, 0x4 + .incbin "baserom.nds", 0x6EB0, 0x4 + .incbin "baserom.nds", 0x6EB4, 0x4 + .incbin "baserom.nds", 0x6EB8, 0x4 + .incbin "baserom.nds", 0x6EBC, 0x4 + .incbin "baserom.nds", 0x6EC0, 0x4 + .incbin "baserom.nds", 0x6EC4, 0x4 + .incbin "baserom.nds", 0x6EC8, 0x4 + .incbin "baserom.nds", 0x6ECC, 0x4 + .incbin "baserom.nds", 0x6ED0, 0x4 + .incbin "baserom.nds", 0x6ED4, 0x4 + .incbin "baserom.nds", 0x6ED8, 0x4 + .incbin "baserom.nds", 0x6EDC, 0x4 + .incbin "baserom.nds", 0x6EE0, 0x4 + .incbin "baserom.nds", 0x6EE4, 0x4 + .incbin "baserom.nds", 0x6EE8, 0x4 + .incbin "baserom.nds", 0x6EEC, 0x4 + .incbin "baserom.nds", 0x6EF0, 0x4 + .incbin "baserom.nds", 0x6EF4, 0x4 + .incbin "baserom.nds", 0x6EF8, 0x4 + .incbin "baserom.nds", 0x6EFC, 0x4 + .incbin "baserom.nds", 0x6F00, 0x4 + .incbin "baserom.nds", 0x6F04, 0x4 + .incbin "baserom.nds", 0x6F08, 0x4 + .incbin "baserom.nds", 0x6F0C, 0x4 + .incbin "baserom.nds", 0x6F10, 0x4 + .incbin "baserom.nds", 0x6F14, 0x4 + .incbin "baserom.nds", 0x6F18, 0x4 + .incbin "baserom.nds", 0x6F1C, 0x4 + .incbin "baserom.nds", 0x6F20, 0x4 + .incbin "baserom.nds", 0x6F24, 0x4 + .incbin "baserom.nds", 0x6F28, 0x4 + .incbin "baserom.nds", 0x6F2C, 0x4 + .incbin "baserom.nds", 0x6F30, 0x4 + .incbin "baserom.nds", 0x6F34, 0x4 + .incbin "baserom.nds", 0x6F38, 0x4 + .incbin "baserom.nds", 0x6F3C, 0x4 + .incbin "baserom.nds", 0x6F40, 0x4 + .incbin "baserom.nds", 0x6F44, 0x4 + .incbin "baserom.nds", 0x6F48, 0x4 + .incbin "baserom.nds", 0x6F4C, 0x4 + .incbin "baserom.nds", 0x6F50, 0x4 + .incbin "baserom.nds", 0x6F54, 0x4 + .incbin "baserom.nds", 0x6F58, 0x4 + .incbin "baserom.nds", 0x6F5C, 0x4 + .incbin "baserom.nds", 0x6F60, 0x4 + .incbin "baserom.nds", 0x6F64, 0x4 + .incbin "baserom.nds", 0x6F68, 0x4 + .incbin "baserom.nds", 0x6F6C, 0x4 + .incbin "baserom.nds", 0x6F70, 0x4 + .incbin "baserom.nds", 0x6F74, 0x4 + .incbin "baserom.nds", 0x6F78, 0x4 + .incbin "baserom.nds", 0x6F7C, 0x4 + .incbin "baserom.nds", 0x6F80, 0x4 + .incbin "baserom.nds", 0x6F84, 0x4 + .incbin "baserom.nds", 0x6F88, 0x4 + .incbin "baserom.nds", 0x6F8C, 0x4 + .incbin "baserom.nds", 0x6F90, 0x4 + .incbin "baserom.nds", 0x6F94, 0x4 + .incbin "baserom.nds", 0x6F98, 0x4 + .incbin "baserom.nds", 0x6F9C, 0x4 + .incbin "baserom.nds", 0x6FA0, 0x4 + .incbin "baserom.nds", 0x6FA4, 0x54 + .incbin "baserom.nds", 0x6FF8, 0x4 + .incbin "baserom.nds", 0x6FFC, 0x4 + .incbin "baserom.nds", 0x7000, 0x54 + .incbin "baserom.nds", 0x7054, 0x4 + .incbin "baserom.nds", 0x7058, 0x4 + .incbin "baserom.nds", 0x705C, 0x4 + .incbin "baserom.nds", 0x7060, 0x4 + .incbin "baserom.nds", 0x7064, 0x54 + .incbin "baserom.nds", 0x70B8, 0x4 + .incbin "baserom.nds", 0x70BC, 0x4 + .incbin "baserom.nds", 0x70C0, 0x4 + .incbin "baserom.nds", 0x70C4, 0x4 + .incbin "baserom.nds", 0x70C8, 0x4 + .incbin "baserom.nds", 0x70CC, 0x4 + .incbin "baserom.nds", 0x70D0, 0x4 + .incbin "baserom.nds", 0x70D4, 0x4 + .incbin "baserom.nds", 0x70D8, 0x4 + .incbin "baserom.nds", 0x70DC, 0x4 + .incbin "baserom.nds", 0x70E0, 0x4 + .incbin "baserom.nds", 0x70E4, 0x4 + .incbin "baserom.nds", 0x70E8, 0x4 + .incbin "baserom.nds", 0x70EC, 0x4 + .incbin "baserom.nds", 0x70F0, 0x4 + .incbin "baserom.nds", 0x70F4, 0x4 + .incbin "baserom.nds", 0x70F8, 0x4 + .incbin "baserom.nds", 0x70FC, 0x4 + .incbin "baserom.nds", 0x7100, 0x4 + .incbin "baserom.nds", 0x7104, 0x4 + .incbin "baserom.nds", 0x7108, 0x4 + .incbin "baserom.nds", 0x710C, 0x4 + .incbin "baserom.nds", 0x7110, 0x4 + .incbin "baserom.nds", 0x7114, 0x4 + .incbin "baserom.nds", 0x7118, 0x4 + .incbin "baserom.nds", 0x711C, 0x4 + .incbin "baserom.nds", 0x7120, 0x4 + .incbin "baserom.nds", 0x7124, 0x4 + .incbin "baserom.nds", 0x7128, 0x4 + .incbin "baserom.nds", 0x712C, 0x4 + .incbin "baserom.nds", 0x7130, 0x4 + .incbin "baserom.nds", 0x7134, 0x4 + .incbin "baserom.nds", 0x7138, 0x4 + .incbin "baserom.nds", 0x713C, 0x4 + .incbin "baserom.nds", 0x7140, 0x4 + .incbin "baserom.nds", 0x7144, 0x4 + .incbin "baserom.nds", 0x7148, 0x4 + .incbin "baserom.nds", 0x714C, 0x4 + .incbin "baserom.nds", 0x7150, 0x4 + .incbin "baserom.nds", 0x7154, 0x4 + .incbin "baserom.nds", 0x7158, 0x4 + .incbin "baserom.nds", 0x715C, 0x4 + .incbin "baserom.nds", 0x7160, 0x4 + .incbin "baserom.nds", 0x7164, 0x4 + .incbin "baserom.nds", 0x7168, 0x4 + .incbin "baserom.nds", 0x716C, 0x4 + .incbin "baserom.nds", 0x7170, 0x4 + .incbin "baserom.nds", 0x7174, 0x4 + .incbin "baserom.nds", 0x7178, 0x4 + .incbin "baserom.nds", 0x717C, 0x4 + .incbin "baserom.nds", 0x7180, 0x4 + .incbin "baserom.nds", 0x7184, 0x4 + .incbin "baserom.nds", 0x7188, 0x4 + .incbin "baserom.nds", 0x718C, 0x4 + .incbin "baserom.nds", 0x7190, 0x4 + .incbin "baserom.nds", 0x7194, 0x4 + .incbin "baserom.nds", 0x7198, 0x4 + .incbin "baserom.nds", 0x719C, 0x4 + .incbin "baserom.nds", 0x71A0, 0x4 + .incbin "baserom.nds", 0x71A4, 0x4 + .incbin "baserom.nds", 0x71A8, 0x4 + .incbin "baserom.nds", 0x71AC, 0x4 + .incbin "baserom.nds", 0x71B0, 0x4 + .incbin "baserom.nds", 0x71B4, 0x4 + .incbin "baserom.nds", 0x71B8, 0x4 + .incbin "baserom.nds", 0x71BC, 0x4 + .incbin "baserom.nds", 0x71C0, 0x4 + .incbin "baserom.nds", 0x71C4, 0x4 + .incbin "baserom.nds", 0x71C8, 0x4 + .incbin "baserom.nds", 0x71CC, 0x4 + .incbin "baserom.nds", 0x71D0, 0x4 + .incbin "baserom.nds", 0x71D4, 0x4 + .incbin "baserom.nds", 0x71D8, 0x4 + .incbin "baserom.nds", 0x71DC, 0x4 + .incbin "baserom.nds", 0x71E0, 0x34 + .incbin "baserom.nds", 0x7214, 0x4 + .incbin "baserom.nds", 0x7218, 0x4 + .incbin "baserom.nds", 0x721C, 0x4 + .incbin "baserom.nds", 0x7220, 0x4 + .incbin "baserom.nds", 0x7224, 0x4 + .incbin "baserom.nds", 0x7228, 0x4 + .incbin "baserom.nds", 0x722C, 0x4 + .incbin "baserom.nds", 0x7230, 0x4 + .incbin "baserom.nds", 0x7234, 0x4 + .incbin "baserom.nds", 0x7238, 0x4 + .incbin "baserom.nds", 0x723C, 0x4 + .incbin "baserom.nds", 0x7240, 0x4 + .incbin "baserom.nds", 0x7244, 0x4 + .incbin "baserom.nds", 0x7248, 0x4 + .incbin "baserom.nds", 0x724C, 0x4 + .incbin "baserom.nds", 0x7250, 0x4 + .incbin "baserom.nds", 0x7254, 0x4 + .incbin "baserom.nds", 0x7258, 0x4 + .incbin "baserom.nds", 0x725C, 0x4 + .incbin "baserom.nds", 0x7260, 0x4 + .incbin "baserom.nds", 0x7264, 0x4 + .incbin "baserom.nds", 0x7268, 0x4 + .incbin "baserom.nds", 0x726C, 0x4 + .incbin "baserom.nds", 0x7270, 0x4 + .incbin "baserom.nds", 0x7274, 0x4 + .incbin "baserom.nds", 0x7278, 0x4 + .incbin "baserom.nds", 0x727C, 0x4 + .incbin "baserom.nds", 0x7280, 0x4 + .incbin "baserom.nds", 0x7284, 0x8 + .incbin "baserom.nds", 0x728C, 0xC + .incbin "baserom.nds", 0x7298, 0x4 + .incbin "baserom.nds", 0x729C, 0x8 + .incbin "baserom.nds", 0x72A4, 0xC + .incbin "baserom.nds", 0x72B0, 0x4 + .incbin "baserom.nds", 0x72B4, 0x4 + .incbin "baserom.nds", 0x72B8, 0x4 + .incbin "baserom.nds", 0x72BC, 0x4 + .incbin "baserom.nds", 0x72C0, 0x4 + .incbin "baserom.nds", 0x72C4, 0x4 + .incbin "baserom.nds", 0x72C8, 0x4 + .incbin "baserom.nds", 0x72CC, 0x4 + .incbin "baserom.nds", 0x72D0, 0x4 + .incbin "baserom.nds", 0x72D4, 0x4 + .incbin "baserom.nds", 0x72D8, 0x4 + .incbin "baserom.nds", 0x72DC, 0x4 + .incbin "baserom.nds", 0x72E0, 0x4 + .incbin "baserom.nds", 0x72E4, 0x4 + .incbin "baserom.nds", 0x72E8, 0x8 + .incbin "baserom.nds", 0x72F0, 0x8 + .incbin "baserom.nds", 0x72F8, 0x4 + .incbin "baserom.nds", 0x72FC, 0x4 + .incbin "baserom.nds", 0x7300, 0x4 + .incbin "baserom.nds", 0x7304, 0x4 + .incbin "baserom.nds", 0x7308, 0x4 + .incbin "baserom.nds", 0x730C, 0x4 + .incbin "baserom.nds", 0x7310, 0xC + .incbin "baserom.nds", 0x731C, 0xC + .incbin "baserom.nds", 0x7328, 0x4 + .incbin "baserom.nds", 0x732C, 0x4 + .incbin "baserom.nds", 0x7330, 0x4 + .incbin "baserom.nds", 0x7334, 0x4 + .incbin "baserom.nds", 0x7338, 0x4 + .incbin "baserom.nds", 0x733C, 0x4 + .incbin "baserom.nds", 0x7340, 0x4 + .incbin "baserom.nds", 0x7344, 0x4 + .incbin "baserom.nds", 0x7348, 0x4 + .incbin "baserom.nds", 0x734C, 0x4 + .incbin "baserom.nds", 0x7350, 0x4 + .incbin "baserom.nds", 0x7354, 0x4 + .incbin "baserom.nds", 0x7358, 0x4 + .incbin "baserom.nds", 0x735C, 0x4 + .incbin "baserom.nds", 0x7360, 0x4 + .incbin "baserom.nds", 0x7364, 0x4 + .incbin "baserom.nds", 0x7368, 0x4 + .incbin "baserom.nds", 0x736C, 0x4 + .incbin "baserom.nds", 0x7370, 0x4 + .incbin "baserom.nds", 0x7374, 0x4 + .incbin "baserom.nds", 0x7378, 0x4 + .incbin "baserom.nds", 0x737C, 0x8 + .incbin "baserom.nds", 0x7384, 0x4 + .incbin "baserom.nds", 0x7388, 0x4 + .incbin "baserom.nds", 0x738C, 0x4 + .incbin "baserom.nds", 0x7390, 0x4 + .incbin "baserom.nds", 0x7394, 0x4 + .incbin "baserom.nds", 0x7398, 0x4 + .incbin "baserom.nds", 0x739C, 0x4 + .incbin "baserom.nds", 0x73A0, 0x4 + .incbin "baserom.nds", 0x73A4, 0x8 + .incbin "baserom.nds", 0x73AC, 0x4 + .incbin "baserom.nds", 0x73B0, 0x4 + .incbin "baserom.nds", 0x73B4, 0x4 + .incbin "baserom.nds", 0x73B8, 0x4 + .incbin "baserom.nds", 0x73BC, 0x4 + .incbin "baserom.nds", 0x73C0, 0x4 + .incbin "baserom.nds", 0x73C4, 0x4 + .incbin "baserom.nds", 0x73C8, 0x4 + .incbin "baserom.nds", 0x73CC, 0x4 + .incbin "baserom.nds", 0x73D0, 0x4 + .incbin "baserom.nds", 0x73D4, 0x4 + .incbin "baserom.nds", 0x73D8, 0x4 + .incbin "baserom.nds", 0x73DC, 0x4 + .incbin "baserom.nds", 0x73E0, 0x4 + .incbin "baserom.nds", 0x73E4, 0x4 + .incbin "baserom.nds", 0x73E8, 0x4 + .incbin "baserom.nds", 0x73EC, 0x4 + .incbin "baserom.nds", 0x73F0, 0x4 + .incbin "baserom.nds", 0x73F4, 0x4 + .incbin "baserom.nds", 0x73F8, 0x4 + .incbin "baserom.nds", 0x73FC, 0x4 + .incbin "baserom.nds", 0x7400, 0x4 + .incbin "baserom.nds", 0x7404, 0x4 + .incbin "baserom.nds", 0x7408, 0x4 + .incbin "baserom.nds", 0x740C, 0x4 + .incbin "baserom.nds", 0x7410, 0x4 + .incbin "baserom.nds", 0x7414, 0x4 + .incbin "baserom.nds", 0x7418, 0x4 + .incbin "baserom.nds", 0x741C, 0x4 + .incbin "baserom.nds", 0x7420, 0x4 + .incbin "baserom.nds", 0x7424, 0x4 + .incbin "baserom.nds", 0x7428, 0x4 + .incbin "baserom.nds", 0x742C, 0x4 + .incbin "baserom.nds", 0x7430, 0x4 + .incbin "baserom.nds", 0x7434, 0x4 + .incbin "baserom.nds", 0x7438, 0x4 + .incbin "baserom.nds", 0x743C, 0x4 + .incbin "baserom.nds", 0x7440, 0x4 + .incbin "baserom.nds", 0x7444, 0x4 + .incbin "baserom.nds", 0x7448, 0xC + .incbin "baserom.nds", 0x7454, 0x4 + .incbin "baserom.nds", 0x7458, 0x4 + .incbin "baserom.nds", 0x745C, 0x4 + .incbin "baserom.nds", 0x7460, 0x8 + .incbin "baserom.nds", 0x7468, 0x4 + .incbin "baserom.nds", 0x746C, 0x4 + .incbin "baserom.nds", 0x7470, 0x4 + .incbin "baserom.nds", 0x7474, 0x4 + .incbin "baserom.nds", 0x7478, 0x4 + .incbin "baserom.nds", 0x747C, 0x4 + .incbin "baserom.nds", 0x7480, 0x4 + .incbin "baserom.nds", 0x7484, 0x4 + .incbin "baserom.nds", 0x7488, 0x4 + .incbin "baserom.nds", 0x748C, 0x4 + .incbin "baserom.nds", 0x7490, 0x4 + .incbin "baserom.nds", 0x7494, 0x4 + .incbin "baserom.nds", 0x7498, 0x4 + .incbin "baserom.nds", 0x749C, 0x4 + .incbin "baserom.nds", 0x74A0, 0x4 + .incbin "baserom.nds", 0x74A4, 0x4 + .incbin "baserom.nds", 0x74A8, 0x4 + .incbin "baserom.nds", 0x74AC, 0x4 + .incbin "baserom.nds", 0x74B0, 0x4 + .incbin "baserom.nds", 0x74B4, 0x4 + .incbin "baserom.nds", 0x74B8, 0x4 + .incbin "baserom.nds", 0x74BC, 0x4 + .incbin "baserom.nds", 0x74C0, 0x4 + .incbin "baserom.nds", 0x74C4, 0x4 + .incbin "baserom.nds", 0x74C8, 0x4 + .incbin "baserom.nds", 0x74CC, 0x4 + .incbin "baserom.nds", 0x74D0, 0x4 + .incbin "baserom.nds", 0x74D4, 0x4 + .incbin "baserom.nds", 0x74D8, 0x8 + .incbin "baserom.nds", 0x74E0, 0x4 + .incbin "baserom.nds", 0x74E4, 0x4 + .incbin "baserom.nds", 0x74E8, 0x4 + .incbin "baserom.nds", 0x74EC, 0x4 + .incbin "baserom.nds", 0x74F0, 0x4 + .incbin "baserom.nds", 0x74F4, 0x4 + .incbin "baserom.nds", 0x74F8, 0x4 + .incbin "baserom.nds", 0x74FC, 0x4 + .incbin "baserom.nds", 0x7500, 0x4 + .incbin "baserom.nds", 0x7504, 0x4 + .incbin "baserom.nds", 0x7508, 0x4 + .incbin "baserom.nds", 0x750C, 0x4 + .incbin "baserom.nds", 0x7510, 0x4 + .incbin "baserom.nds", 0x7514, 0x8 + .incbin "baserom.nds", 0x751C, 0x4 + .incbin "baserom.nds", 0x7520, 0x4 + .incbin "baserom.nds", 0x7524, 0x4 + .incbin "baserom.nds", 0x7528, 0x8 + .incbin "baserom.nds", 0x7530, 0x8 + .incbin "baserom.nds", 0x7538, 0x4 + .incbin "baserom.nds", 0x753C, 0x4 + .incbin "baserom.nds", 0x7540, 0x4 + .incbin "baserom.nds", 0x7544, 0x4 + .incbin "baserom.nds", 0x7548, 0x4 + .incbin "baserom.nds", 0x754C, 0x4 + .incbin "baserom.nds", 0x7550, 0xC + .incbin "baserom.nds", 0x755C, 0x8 + .incbin "baserom.nds", 0x7564, 0x4 + .incbin "baserom.nds", 0x7568, 0x54 + .incbin "baserom.nds", 0x75BC, 0x8 + .incbin "baserom.nds", 0x75C4, 0x4 + .incbin "baserom.nds", 0x75C8, 0x4 + .incbin "baserom.nds", 0x75CC, 0x4 + .incbin "baserom.nds", 0x75D0, 0x4 + .incbin "baserom.nds", 0x75D4, 0x4 + .incbin "baserom.nds", 0x75D8, 0x4 + .incbin "baserom.nds", 0x75DC, 0x4 + .incbin "baserom.nds", 0x75E0, 0x4 + .incbin "baserom.nds", 0x75E4, 0x4 + .incbin "baserom.nds", 0x75E8, 0x4 + .incbin "baserom.nds", 0x75EC, 0x4 + .incbin "baserom.nds", 0x75F0, 0x4 + .incbin "baserom.nds", 0x75F4, 0x4 + .incbin "baserom.nds", 0x75F8, 0x4 + .incbin "baserom.nds", 0x75FC, 0x4 + .incbin "baserom.nds", 0x7600, 0x4 + .incbin "baserom.nds", 0x7604, 0x4 + .incbin "baserom.nds", 0x7608, 0x4 + .incbin "baserom.nds", 0x760C, 0x4 + .incbin "baserom.nds", 0x7610, 0x4 + .incbin "baserom.nds", 0x7614, 0x4 + .incbin "baserom.nds", 0x7618, 0x4 + .incbin "baserom.nds", 0x761C, 0x54 + .incbin "baserom.nds", 0x7670, 0x4 + .incbin "baserom.nds", 0x7674, 0x4 + .incbin "baserom.nds", 0x7678, 0x4 + .incbin "baserom.nds", 0x767C, 0x4 + .incbin "baserom.nds", 0x7680, 0x4 + .incbin "baserom.nds", 0x7684, 0x4 + .incbin "baserom.nds", 0x7688, 0x4 + .incbin "baserom.nds", 0x768C, 0x4 + .incbin "baserom.nds", 0x7690, 0x4 + .incbin "baserom.nds", 0x7694, 0x4 + .incbin "baserom.nds", 0x7698, 0x4 + .incbin "baserom.nds", 0x769C, 0x4 + .incbin "baserom.nds", 0x76A0, 0x4 + .incbin "baserom.nds", 0x76A4, 0x4 + .incbin "baserom.nds", 0x76A8, 0xC + .incbin "baserom.nds", 0x76B4, 0x4 + .incbin "baserom.nds", 0x76B8, 0x4 + .incbin "baserom.nds", 0x76BC, 0x4 + .incbin "baserom.nds", 0x76C0, 0x4 + .incbin "baserom.nds", 0x76C4, 0x8 + .incbin "baserom.nds", 0x76CC, 0x8 + .incbin "baserom.nds", 0x76D4, 0xC + .incbin "baserom.nds", 0x76E0, 0x4 + .incbin "baserom.nds", 0x76E4, 0x4 + .incbin "baserom.nds", 0x76E8, 0x4 + .incbin "baserom.nds", 0x76EC, 0x4 + .incbin "baserom.nds", 0x76F0, 0xC + .incbin "baserom.nds", 0x76FC, 0x4 + .incbin "baserom.nds", 0x7700, 0x4 + .incbin "baserom.nds", 0x7704, 0x4 + .incbin "baserom.nds", 0x7708, 0x4 + .incbin "baserom.nds", 0x770C, 0x4 + .incbin "baserom.nds", 0x7710, 0x4 + .incbin "baserom.nds", 0x7714, 0x4 + .incbin "baserom.nds", 0x7718, 0x4 + .incbin "baserom.nds", 0x771C, 0x4 + .incbin "baserom.nds", 0x7720, 0x4 + .incbin "baserom.nds", 0x7724, 0x4 + .incbin "baserom.nds", 0x7728, 0x4 + .incbin "baserom.nds", 0x772C, 0x4 + .incbin "baserom.nds", 0x7730, 0x4 + .incbin "baserom.nds", 0x7734, 0x4 + .incbin "baserom.nds", 0x7738, 0x4 + .incbin "baserom.nds", 0x773C, 0x4 + .incbin "baserom.nds", 0x7740, 0x4 + .incbin "baserom.nds", 0x7744, 0x4 + .incbin "baserom.nds", 0x7748, 0x4 + .incbin "baserom.nds", 0x774C, 0x4 + .incbin "baserom.nds", 0x7750, 0x4 + .incbin "baserom.nds", 0x7754, 0x4 + .incbin "baserom.nds", 0x7758, 0x54 + .incbin "baserom.nds", 0x77AC, 0x4 + .incbin "baserom.nds", 0x77B0, 0x4 + .incbin "baserom.nds", 0x77B4, 0x54 + .incbin "baserom.nds", 0x7808, 0x4 + .incbin "baserom.nds", 0x780C, 0x4 + .incbin "baserom.nds", 0x7810, 0x4 + .incbin "baserom.nds", 0x7814, 0x4 + .incbin "baserom.nds", 0x7818, 0x4 + .incbin "baserom.nds", 0x781C, 0x4 + .incbin "baserom.nds", 0x7820, 0x4 + .incbin "baserom.nds", 0x7824, 0x4 + .incbin "baserom.nds", 0x7828, 0x8 + .incbin "baserom.nds", 0x7830, 0x4 + .incbin "baserom.nds", 0x7834, 0x4 + .incbin "baserom.nds", 0x7838, 0xC + .incbin "baserom.nds", 0x7844, 0xC + .incbin "baserom.nds", 0x7850, 0x4 + .incbin "baserom.nds", 0x7854, 0x4 + .incbin "baserom.nds", 0x7858, 0x4 + .incbin "baserom.nds", 0x785C, 0x4 + .incbin "baserom.nds", 0x7860, 0x4 + .incbin "baserom.nds", 0x7864, 0x4 + .incbin "baserom.nds", 0x7868, 0x4 + .incbin "baserom.nds", 0x786C, 0x4 + .incbin "baserom.nds", 0x7870, 0x4 + .incbin "baserom.nds", 0x7874, 0x4 + .incbin "baserom.nds", 0x7878, 0x4 + .incbin "baserom.nds", 0x787C, 0x4 + .incbin "baserom.nds", 0x7880, 0x4 + .incbin "baserom.nds", 0x7884, 0x4 + .incbin "baserom.nds", 0x7888, 0x4 + .incbin "baserom.nds", 0x788C, 0x4 + .incbin "baserom.nds", 0x7890, 0x4 + .incbin "baserom.nds", 0x7894, 0x4 + .incbin "baserom.nds", 0x7898, 0x4 + .incbin "baserom.nds", 0x789C, 0x4 + .incbin "baserom.nds", 0x78A0, 0x4 + .incbin "baserom.nds", 0x78A4, 0x4 + .incbin "baserom.nds", 0x78A8, 0x4 + .incbin "baserom.nds", 0x78AC, 0x4 + .incbin "baserom.nds", 0x78B0, 0x4 + .incbin "baserom.nds", 0x78B4, 0x4 + .incbin "baserom.nds", 0x78B8, 0x4 + .incbin "baserom.nds", 0x78BC, 0x4 + .incbin "baserom.nds", 0x78C0, 0x4 + .incbin "baserom.nds", 0x78C4, 0x4 + .incbin "baserom.nds", 0x78C8, 0x4 + .incbin "baserom.nds", 0x78CC, 0x4 + .incbin "baserom.nds", 0x78D0, 0x4 + .incbin "baserom.nds", 0x78D4, 0x4 + .incbin "baserom.nds", 0x78D8, 0x4 + .incbin "baserom.nds", 0x78DC, 0x4 + .incbin "baserom.nds", 0x78E0, 0x4 + .incbin "baserom.nds", 0x78E4, 0x4 + .incbin "baserom.nds", 0x78E8, 0x4 + .incbin "baserom.nds", 0x78EC, 0x4 + .incbin "baserom.nds", 0x78F0, 0x4 + .incbin "baserom.nds", 0x78F4, 0x4 + .incbin "baserom.nds", 0x78F8, 0xC + .incbin "baserom.nds", 0x7904, 0x4 + .incbin "baserom.nds", 0x7908, 0x4 + .incbin "baserom.nds", 0x790C, 0x4 + .incbin "baserom.nds", 0x7910, 0x8 + .incbin "baserom.nds", 0x7918, 0x8 + .incbin "baserom.nds", 0x7920, 0x4 + .incbin "baserom.nds", 0x7924, 0x4 + .incbin "baserom.nds", 0x7928, 0x4 + .incbin "baserom.nds", 0x792C, 0x8 + .incbin "baserom.nds", 0x7934, 0x4 + .incbin "baserom.nds", 0x7938, 0x4 + .incbin "baserom.nds", 0x793C, 0x4 + .incbin "baserom.nds", 0x7940, 0x4 + .incbin "baserom.nds", 0x7944, 0x4 + .incbin "baserom.nds", 0x7948, 0x4 + .incbin "baserom.nds", 0x794C, 0x4 + .incbin "baserom.nds", 0x7950, 0x4 + .incbin "baserom.nds", 0x7954, 0x4 + .incbin "baserom.nds", 0x7958, 0x8 + .incbin "baserom.nds", 0x7960, 0x4 + .incbin "baserom.nds", 0x7964, 0x4 + .incbin "baserom.nds", 0x7968, 0x4 + .incbin "baserom.nds", 0x796C, 0x4 + .incbin "baserom.nds", 0x7970, 0x4 + .incbin "baserom.nds", 0x7974, 0x4 + .incbin "baserom.nds", 0x7978, 0x4 + .incbin "baserom.nds", 0x797C, 0x4 + .incbin "baserom.nds", 0x7980, 0x4 + .incbin "baserom.nds", 0x7984, 0x4 + .incbin "baserom.nds", 0x7988, 0x4 + .incbin "baserom.nds", 0x798C, 0x8 + .incbin "baserom.nds", 0x7994, 0x8 + .incbin "baserom.nds", 0x799C, 0x4 + .incbin "baserom.nds", 0x79A0, 0x4 + .incbin "baserom.nds", 0x79A4, 0x4 + .incbin "baserom.nds", 0x79A8, 0x4 + .incbin "baserom.nds", 0x79AC, 0x10 + .incbin "baserom.nds", 0x79BC, 0x4 + .incbin "baserom.nds", 0x79C0, 0x4 + .incbin "baserom.nds", 0x79C4, 0x4 + .incbin "baserom.nds", 0x79C8, 0x4 + .incbin "baserom.nds", 0x79CC, 0x4 + .incbin "baserom.nds", 0x79D0, 0x4 + .incbin "baserom.nds", 0x79D4, 0x4 + .incbin "baserom.nds", 0x79D8, 0x4 + .incbin "baserom.nds", 0x79DC, 0x4 + .incbin "baserom.nds", 0x79E0, 0x8 + .incbin "baserom.nds", 0x79E8, 0x4 + .incbin "baserom.nds", 0x79EC, 0x4 + .incbin "baserom.nds", 0x79F0, 0x4 + .incbin "baserom.nds", 0x79F4, 0x4 + .incbin "baserom.nds", 0x79F8, 0x4 + .incbin "baserom.nds", 0x79FC, 0x4 + .incbin "baserom.nds", 0x7A00, 0x4 + .incbin "baserom.nds", 0x7A04, 0x4 + .incbin "baserom.nds", 0x7A08, 0x4 + .incbin "baserom.nds", 0x7A0C, 0x4 + .incbin "baserom.nds", 0x7A10, 0x4 + .incbin "baserom.nds", 0x7A14, 0x4 + .incbin "baserom.nds", 0x7A18, 0x4 + .incbin "baserom.nds", 0x7A1C, 0x4 + .incbin "baserom.nds", 0x7A20, 0x4 + .incbin "baserom.nds", 0x7A24, 0x4 + .incbin "baserom.nds", 0x7A28, 0x4 + .incbin "baserom.nds", 0x7A2C, 0x4 + .incbin "baserom.nds", 0x7A30, 0x4 + .incbin "baserom.nds", 0x7A34, 0x4 + .incbin "baserom.nds", 0x7A38, 0x4 + .incbin "baserom.nds", 0x7A3C, 0x4 + .incbin "baserom.nds", 0x7A40, 0x4 + .incbin "baserom.nds", 0x7A44, 0x4 + .incbin "baserom.nds", 0x7A48, 0x4 + .incbin "baserom.nds", 0x7A4C, 0x4 + .incbin "baserom.nds", 0x7A50, 0x4 + .incbin "baserom.nds", 0x7A54, 0x4 + .incbin "baserom.nds", 0x7A58, 0x4 + .incbin "baserom.nds", 0x7A5C, 0x4 + .incbin "baserom.nds", 0x7A60, 0x4 + .incbin "baserom.nds", 0x7A64, 0x4 + .incbin "baserom.nds", 0x7A68, 0x4 + .incbin "baserom.nds", 0x7A6C, 0x4 + .incbin "baserom.nds", 0x7A70, 0x4 + .incbin "baserom.nds", 0x7A74, 0x4 + .incbin "baserom.nds", 0x7A78, 0x4 + .incbin "baserom.nds", 0x7A7C, 0x4 + .incbin "baserom.nds", 0x7A80, 0x4 + .incbin "baserom.nds", 0x7A84, 0x4 + .incbin "baserom.nds", 0x7A88, 0x54 + .incbin "baserom.nds", 0x7ADC, 0x4 + .incbin "baserom.nds", 0x7AE0, 0x4 + .incbin "baserom.nds", 0x7AE4, 0x54 + .incbin "baserom.nds", 0x7B38, 0x4 + .incbin "baserom.nds", 0x7B3C, 0x4 + .incbin "baserom.nds", 0x7B40, 0x4 + .incbin "baserom.nds", 0x7B44, 0x4 + .incbin "baserom.nds", 0x7B48, 0x54 + .incbin "baserom.nds", 0x7B9C, 0x4 + .incbin "baserom.nds", 0x7BA0, 0x4 + .incbin "baserom.nds", 0x7BA4, 0x4 + .incbin "baserom.nds", 0x7BA8, 0x4 + .incbin "baserom.nds", 0x7BAC, 0x4 + .incbin "baserom.nds", 0x7BB0, 0x4 + .incbin "baserom.nds", 0x7BB4, 0x4 + .incbin "baserom.nds", 0x7BB8, 0x4 + .incbin "baserom.nds", 0x7BBC, 0x4 + .incbin "baserom.nds", 0x7BC0, 0x4 + .incbin "baserom.nds", 0x7BC4, 0x4 + .incbin "baserom.nds", 0x7BC8, 0x4 + .incbin "baserom.nds", 0x7BCC, 0x4 + .incbin "baserom.nds", 0x7BD0, 0x4 + .incbin "baserom.nds", 0x7BD4, 0x4 + .incbin "baserom.nds", 0x7BD8, 0x4 + .incbin "baserom.nds", 0x7BDC, 0x4 + .incbin "baserom.nds", 0x7BE0, 0x4 + .incbin "baserom.nds", 0x7BE4, 0x4 + .incbin "baserom.nds", 0x7BE8, 0x4 + .incbin "baserom.nds", 0x7BEC, 0x4 + .incbin "baserom.nds", 0x7BF0, 0x4 + .incbin "baserom.nds", 0x7BF4, 0x4 + .incbin "baserom.nds", 0x7BF8, 0x4 + .incbin "baserom.nds", 0x7BFC, 0x4 + .incbin "baserom.nds", 0x7C00, 0x4 + .incbin "baserom.nds", 0x7C04, 0x4 + .incbin "baserom.nds", 0x7C08, 0x4 + .incbin "baserom.nds", 0x7C0C, 0x4 + .incbin "baserom.nds", 0x7C10, 0x4 + .incbin "baserom.nds", 0x7C14, 0x4 + .incbin "baserom.nds", 0x7C18, 0x4 + .incbin "baserom.nds", 0x7C1C, 0x4 + .incbin "baserom.nds", 0x7C20, 0x4 + .incbin "baserom.nds", 0x7C24, 0x4 + .incbin "baserom.nds", 0x7C28, 0x4 + .incbin "baserom.nds", 0x7C2C, 0x4 + .incbin "baserom.nds", 0x7C30, 0x4 + .incbin "baserom.nds", 0x7C34, 0x4 + .incbin "baserom.nds", 0x7C38, 0x4 + .incbin "baserom.nds", 0x7C3C, 0x4 + .incbin "baserom.nds", 0x7C40, 0x4 + .incbin "baserom.nds", 0x7C44, 0x4 + .incbin "baserom.nds", 0x7C48, 0x4 + .incbin "baserom.nds", 0x7C4C, 0x4 + .incbin "baserom.nds", 0x7C50, 0x4 + .incbin "baserom.nds", 0x7C54, 0x4 + .incbin "baserom.nds", 0x7C58, 0x4 + .incbin "baserom.nds", 0x7C5C, 0x4 + .incbin "baserom.nds", 0x7C60, 0x4 + .incbin "baserom.nds", 0x7C64, 0x4 + .incbin "baserom.nds", 0x7C68, 0x4 + .incbin "baserom.nds", 0x7C6C, 0x4 + .incbin "baserom.nds", 0x7C70, 0x4 + .incbin "baserom.nds", 0x7C74, 0x4 + .incbin "baserom.nds", 0x7C78, 0x4 + .incbin "baserom.nds", 0x7C7C, 0x4 + .incbin "baserom.nds", 0x7C80, 0x4 + .incbin "baserom.nds", 0x7C84, 0x4 + .incbin "baserom.nds", 0x7C88, 0x4 + .incbin "baserom.nds", 0x7C8C, 0x4 + .incbin "baserom.nds", 0x7C90, 0x4 + .incbin "baserom.nds", 0x7C94, 0x4 + .incbin "baserom.nds", 0x7C98, 0x4 + .incbin "baserom.nds", 0x7C9C, 0x4 + .incbin "baserom.nds", 0x7CA0, 0x4 + .incbin "baserom.nds", 0x7CA4, 0x4 + .incbin "baserom.nds", 0x7CA8, 0x4 + .incbin "baserom.nds", 0x7CAC, 0x4 + .incbin "baserom.nds", 0x7CB0, 0x4 + .incbin "baserom.nds", 0x7CB4, 0x4 + .incbin "baserom.nds", 0x7CB8, 0x4 + .incbin "baserom.nds", 0x7CBC, 0x4 + .incbin "baserom.nds", 0x7CC0, 0x4 + .balign 4, 255 diff --git a/narc/arc/bm_anime.narc.s b/narc/arc/bm_anime.narc.s new file mode 100644 index 00000000..460383a5 --- /dev/null +++ b/narc/arc/bm_anime.narc.s @@ -0,0 +1,154 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00009200 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000020C ; chunk size + .short 64 ; number of files + .balign 4 + .word 0x00000000, 0x000000C8 + .word 0x000000C8, 0x00000200 + .word 0x00000200, 0x00000338 + .word 0x00000338, 0x00000470 + .word 0x00000470, 0x000006D4 + .word 0x000006D4, 0x000007D4 + .word 0x000007D4, 0x000008D4 + .word 0x000008D4, 0x0000097C + .word 0x0000097C, 0x00000A24 + .word 0x00000A24, 0x00000ABC + .word 0x00000ABC, 0x00000B54 + .word 0x00000B54, 0x00000C18 + .word 0x00000C18, 0x00000CDC + .word 0x00000CDC, 0x00000DA0 + .word 0x00000DA0, 0x0000102C + .word 0x0000102C, 0x000011E4 + .word 0x000011E4, 0x0000139C + .word 0x0000139C, 0x000014A8 + .word 0x000014A8, 0x0000175C + .word 0x0000175C, 0x000018F8 + .word 0x000018F8, 0x000019CC + .word 0x000019CC, 0x00001AA0 + .word 0x00001AA0, 0x00001BC4 + .word 0x00001BC4, 0x00001CD0 + .word 0x00001CD0, 0x00001E00 + .word 0x00001E00, 0x0000240C + .word 0x0000240C, 0x00002938 + .word 0x00002938, 0x00002A94 + .word 0x00002A94, 0x00002BF0 + .word 0x00002BF0, 0x00002D10 + .word 0x00002D10, 0x00002E30 + .word 0x00002E30, 0x00002F70 + .word 0x00002F70, 0x000030B8 + .word 0x000030B8, 0x00003170 + .word 0x00003170, 0x00003228 + .word 0x00003228, 0x00003310 + .word 0x00003310, 0x000033F8 + .word 0x000033F8, 0x00003594 + .word 0x00003594, 0x0000372C + .word 0x0000372C, 0x00004C7C + .word 0x00004C7C, 0x00006250 + .word 0x00006250, 0x0000636C + .word 0x0000636C, 0x00006488 + .word 0x00006488, 0x00006C34 + .word 0x00006C34, 0x00006D54 + .word 0x00006D54, 0x00007578 + .word 0x00007578, 0x0000769C + .word 0x0000769C, 0x000077C0 + .word 0x000077C0, 0x000078E4 + .word 0x000078E4, 0x00007990 + .word 0x00007990, 0x00007A54 + .word 0x00007A54, 0x00007B60 + .word 0x00007B60, 0x00007C6C + .word 0x00007C6C, 0x00007D8C + .word 0x00007D8C, 0x00007F9C + .word 0x00007F9C, 0x000080F8 + .word 0x000080F8, 0x00008254 + .word 0x00008254, 0x000083B0 + .word 0x000083B0, 0x000084CC + .word 0x000084CC, 0x0000885C + .word 0x0000885C, 0x000089B8 + .word 0x000089B8, 0x00008B54 + .word 0x00008B54, 0x00008CF0 + .word 0x00008CF0, 0x00008FCC + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00008FD4 ; chunk size + .incbin "baserom.nds", 0x0, 0xC8 + .incbin "baserom.nds", 0xC8, 0x138 + .incbin "baserom.nds", 0x200, 0x138 + .incbin "baserom.nds", 0x338, 0x138 + .incbin "baserom.nds", 0x470, 0x264 + .incbin "baserom.nds", 0x6D4, 0x100 + .incbin "baserom.nds", 0x7D4, 0x100 + .incbin "baserom.nds", 0x8D4, 0xA8 + .incbin "baserom.nds", 0x97C, 0xA8 + .incbin "baserom.nds", 0xA24, 0x98 + .incbin "baserom.nds", 0xABC, 0x98 + .incbin "baserom.nds", 0xB54, 0xC4 + .incbin "baserom.nds", 0xC18, 0xC4 + .incbin "baserom.nds", 0xCDC, 0xC4 + .incbin "baserom.nds", 0xDA0, 0x28C + .incbin "baserom.nds", 0x102C, 0x1B8 + .incbin "baserom.nds", 0x11E4, 0x1B8 + .incbin "baserom.nds", 0x139C, 0x10C + .incbin "baserom.nds", 0x14A8, 0x2B4 + .incbin "baserom.nds", 0x175C, 0x19C + .incbin "baserom.nds", 0x18F8, 0xD4 + .incbin "baserom.nds", 0x19CC, 0xD4 + .incbin "baserom.nds", 0x1AA0, 0x124 + .incbin "baserom.nds", 0x1BC4, 0x10C + .incbin "baserom.nds", 0x1CD0, 0x130 + .incbin "baserom.nds", 0x1E00, 0x60C + .incbin "baserom.nds", 0x240C, 0x52C + .incbin "baserom.nds", 0x2938, 0x15C + .incbin "baserom.nds", 0x2A94, 0x15C + .incbin "baserom.nds", 0x2BF0, 0x120 + .incbin "baserom.nds", 0x2D10, 0x120 + .incbin "baserom.nds", 0x2E30, 0x140 + .incbin "baserom.nds", 0x2F70, 0x148 + .incbin "baserom.nds", 0x30B8, 0xB8 + .incbin "baserom.nds", 0x3170, 0xB8 + .incbin "baserom.nds", 0x3228, 0xE8 + .incbin "baserom.nds", 0x3310, 0xE8 + .incbin "baserom.nds", 0x33F8, 0x19C + .incbin "baserom.nds", 0x3594, 0x198 + .incbin "baserom.nds", 0x372C, 0x1550 + .incbin "baserom.nds", 0x4C7C, 0x15D4 + .incbin "baserom.nds", 0x6250, 0x11C + .incbin "baserom.nds", 0x636C, 0x11C + .incbin "baserom.nds", 0x6488, 0x7AC + .incbin "baserom.nds", 0x6C34, 0x120 + .incbin "baserom.nds", 0x6D54, 0x824 + .incbin "baserom.nds", 0x7578, 0x124 + .incbin "baserom.nds", 0x769C, 0x124 + .incbin "baserom.nds", 0x77C0, 0x124 + .incbin "baserom.nds", 0x78E4, 0xAC + .incbin "baserom.nds", 0x7990, 0xC4 + .incbin "baserom.nds", 0x7A54, 0x10C + .incbin "baserom.nds", 0x7B60, 0x10C + .incbin "baserom.nds", 0x7C6C, 0x120 + .incbin "baserom.nds", 0x7D8C, 0x210 + .incbin "baserom.nds", 0x7F9C, 0x15C + .incbin "baserom.nds", 0x80F8, 0x15C + .incbin "baserom.nds", 0x8254, 0x15C + .incbin "baserom.nds", 0x83B0, 0x11C + .incbin "baserom.nds", 0x84CC, 0x390 + .incbin "baserom.nds", 0x885C, 0x15C + .incbin "baserom.nds", 0x89B8, 0x19C + .incbin "baserom.nds", 0x8B54, 0x19C + .incbin "baserom.nds", 0x8CF0, 0x2DC + .balign 4, 255 diff --git a/narc/arc/bm_anime_list.narc.s b/narc/arc/bm_anime_list.narc.s new file mode 100644 index 00000000..b3ce0929 --- /dev/null +++ b/narc/arc/bm_anime_list.narc.s @@ -0,0 +1,1096 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00003AB8 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000010C4 ; chunk size + .short 535 ; number of files + .balign 4 + .word 0x00000000, 0x00000014 + .word 0x00000014, 0x00000028 + .word 0x00000028, 0x0000003C + .word 0x0000003C, 0x00000050 + .word 0x00000050, 0x00000064 + .word 0x00000064, 0x00000078 + .word 0x00000078, 0x0000008C + .word 0x0000008C, 0x000000A0 + .word 0x000000A0, 0x000000B4 + .word 0x000000B4, 0x000000C8 + .word 0x000000C8, 0x000000DC + .word 0x000000DC, 0x000000F0 + .word 0x000000F0, 0x00000104 + .word 0x00000104, 0x00000118 + .word 0x00000118, 0x0000012C + .word 0x0000012C, 0x00000140 + .word 0x00000140, 0x00000154 + .word 0x00000154, 0x00000168 + .word 0x00000168, 0x0000017C + .word 0x0000017C, 0x00000190 + .word 0x00000190, 0x000001A4 + .word 0x000001A4, 0x000001B8 + .word 0x000001B8, 0x000001CC + .word 0x000001CC, 0x000001E0 + .word 0x000001E0, 0x000001F4 + .word 0x000001F4, 0x00000208 + .word 0x00000208, 0x0000021C + .word 0x0000021C, 0x00000230 + .word 0x00000230, 0x00000244 + .word 0x00000244, 0x00000258 + .word 0x00000258, 0x0000026C + .word 0x0000026C, 0x00000280 + .word 0x00000280, 0x00000294 + .word 0x00000294, 0x000002A8 + .word 0x000002A8, 0x000002BC + .word 0x000002BC, 0x000002D0 + .word 0x000002D0, 0x000002E4 + .word 0x000002E4, 0x000002F8 + .word 0x000002F8, 0x0000030C + .word 0x0000030C, 0x00000320 + .word 0x00000320, 0x00000334 + .word 0x00000334, 0x00000348 + .word 0x00000348, 0x0000035C + .word 0x0000035C, 0x00000370 + .word 0x00000370, 0x00000384 + .word 0x00000384, 0x00000398 + .word 0x00000398, 0x000003AC + .word 0x000003AC, 0x000003C0 + .word 0x000003C0, 0x000003D4 + .word 0x000003D4, 0x000003E8 + .word 0x000003E8, 0x000003FC + .word 0x000003FC, 0x00000410 + .word 0x00000410, 0x00000424 + .word 0x00000424, 0x00000438 + .word 0x00000438, 0x0000044C + .word 0x0000044C, 0x00000460 + .word 0x00000460, 0x00000474 + .word 0x00000474, 0x00000488 + .word 0x00000488, 0x0000049C + .word 0x0000049C, 0x000004B0 + .word 0x000004B0, 0x000004C4 + .word 0x000004C4, 0x000004D8 + .word 0x000004D8, 0x000004EC + .word 0x000004EC, 0x00000500 + .word 0x00000500, 0x00000514 + .word 0x00000514, 0x00000528 + .word 0x00000528, 0x0000053C + .word 0x0000053C, 0x00000550 + .word 0x00000550, 0x00000564 + .word 0x00000564, 0x00000578 + .word 0x00000578, 0x0000058C + .word 0x0000058C, 0x000005A0 + .word 0x000005A0, 0x000005B4 + .word 0x000005B4, 0x000005C8 + .word 0x000005C8, 0x000005DC + .word 0x000005DC, 0x000005F0 + .word 0x000005F0, 0x00000604 + .word 0x00000604, 0x00000618 + .word 0x00000618, 0x0000062C + .word 0x0000062C, 0x00000640 + .word 0x00000640, 0x00000654 + .word 0x00000654, 0x00000668 + .word 0x00000668, 0x0000067C + .word 0x0000067C, 0x00000690 + .word 0x00000690, 0x000006A4 + .word 0x000006A4, 0x000006B8 + .word 0x000006B8, 0x000006CC + .word 0x000006CC, 0x000006E0 + .word 0x000006E0, 0x000006F4 + .word 0x000006F4, 0x00000708 + .word 0x00000708, 0x0000071C + .word 0x0000071C, 0x00000730 + .word 0x00000730, 0x00000744 + .word 0x00000744, 0x00000758 + .word 0x00000758, 0x0000076C + .word 0x0000076C, 0x00000780 + .word 0x00000780, 0x00000794 + .word 0x00000794, 0x000007A8 + .word 0x000007A8, 0x000007BC + .word 0x000007BC, 0x000007D0 + .word 0x000007D0, 0x000007E4 + .word 0x000007E4, 0x000007F8 + .word 0x000007F8, 0x0000080C + .word 0x0000080C, 0x00000820 + .word 0x00000820, 0x00000834 + .word 0x00000834, 0x00000848 + .word 0x00000848, 0x0000085C + .word 0x0000085C, 0x00000870 + .word 0x00000870, 0x00000884 + .word 0x00000884, 0x00000898 + .word 0x00000898, 0x000008AC + .word 0x000008AC, 0x000008C0 + .word 0x000008C0, 0x000008D4 + .word 0x000008D4, 0x000008E8 + .word 0x000008E8, 0x000008FC + .word 0x000008FC, 0x00000910 + .word 0x00000910, 0x00000924 + .word 0x00000924, 0x00000938 + .word 0x00000938, 0x0000094C + .word 0x0000094C, 0x00000960 + .word 0x00000960, 0x00000974 + .word 0x00000974, 0x00000988 + .word 0x00000988, 0x0000099C + .word 0x0000099C, 0x000009B0 + .word 0x000009B0, 0x000009C4 + .word 0x000009C4, 0x000009D8 + .word 0x000009D8, 0x000009EC + .word 0x000009EC, 0x00000A00 + .word 0x00000A00, 0x00000A14 + .word 0x00000A14, 0x00000A28 + .word 0x00000A28, 0x00000A3C + .word 0x00000A3C, 0x00000A50 + .word 0x00000A50, 0x00000A64 + .word 0x00000A64, 0x00000A78 + .word 0x00000A78, 0x00000A8C + .word 0x00000A8C, 0x00000AA0 + .word 0x00000AA0, 0x00000AB4 + .word 0x00000AB4, 0x00000AC8 + .word 0x00000AC8, 0x00000ADC + .word 0x00000ADC, 0x00000AF0 + .word 0x00000AF0, 0x00000B04 + .word 0x00000B04, 0x00000B18 + .word 0x00000B18, 0x00000B2C + .word 0x00000B2C, 0x00000B40 + .word 0x00000B40, 0x00000B54 + .word 0x00000B54, 0x00000B68 + .word 0x00000B68, 0x00000B7C + .word 0x00000B7C, 0x00000B90 + .word 0x00000B90, 0x00000BA4 + .word 0x00000BA4, 0x00000BB8 + .word 0x00000BB8, 0x00000BCC + .word 0x00000BCC, 0x00000BE0 + .word 0x00000BE0, 0x00000BF4 + .word 0x00000BF4, 0x00000C08 + .word 0x00000C08, 0x00000C1C + .word 0x00000C1C, 0x00000C30 + .word 0x00000C30, 0x00000C44 + .word 0x00000C44, 0x00000C58 + .word 0x00000C58, 0x00000C6C + .word 0x00000C6C, 0x00000C80 + .word 0x00000C80, 0x00000C94 + .word 0x00000C94, 0x00000CA8 + .word 0x00000CA8, 0x00000CBC + .word 0x00000CBC, 0x00000CD0 + .word 0x00000CD0, 0x00000CE4 + .word 0x00000CE4, 0x00000CF8 + .word 0x00000CF8, 0x00000D0C + .word 0x00000D0C, 0x00000D20 + .word 0x00000D20, 0x00000D34 + .word 0x00000D34, 0x00000D48 + .word 0x00000D48, 0x00000D5C + .word 0x00000D5C, 0x00000D70 + .word 0x00000D70, 0x00000D84 + .word 0x00000D84, 0x00000D98 + .word 0x00000D98, 0x00000DAC + .word 0x00000DAC, 0x00000DC0 + .word 0x00000DC0, 0x00000DD4 + .word 0x00000DD4, 0x00000DE8 + .word 0x00000DE8, 0x00000DFC + .word 0x00000DFC, 0x00000E10 + .word 0x00000E10, 0x00000E24 + .word 0x00000E24, 0x00000E38 + .word 0x00000E38, 0x00000E4C + .word 0x00000E4C, 0x00000E60 + .word 0x00000E60, 0x00000E74 + .word 0x00000E74, 0x00000E88 + .word 0x00000E88, 0x00000E9C + .word 0x00000E9C, 0x00000EB0 + .word 0x00000EB0, 0x00000EC4 + .word 0x00000EC4, 0x00000ED8 + .word 0x00000ED8, 0x00000EEC + .word 0x00000EEC, 0x00000F00 + .word 0x00000F00, 0x00000F14 + .word 0x00000F14, 0x00000F28 + .word 0x00000F28, 0x00000F3C + .word 0x00000F3C, 0x00000F50 + .word 0x00000F50, 0x00000F64 + .word 0x00000F64, 0x00000F78 + .word 0x00000F78, 0x00000F8C + .word 0x00000F8C, 0x00000FA0 + .word 0x00000FA0, 0x00000FB4 + .word 0x00000FB4, 0x00000FC8 + .word 0x00000FC8, 0x00000FDC + .word 0x00000FDC, 0x00000FF0 + .word 0x00000FF0, 0x00001004 + .word 0x00001004, 0x00001018 + .word 0x00001018, 0x0000102C + .word 0x0000102C, 0x00001040 + .word 0x00001040, 0x00001054 + .word 0x00001054, 0x00001068 + .word 0x00001068, 0x0000107C + .word 0x0000107C, 0x00001090 + .word 0x00001090, 0x000010A4 + .word 0x000010A4, 0x000010B8 + .word 0x000010B8, 0x000010CC + .word 0x000010CC, 0x000010E0 + .word 0x000010E0, 0x000010F4 + .word 0x000010F4, 0x00001108 + .word 0x00001108, 0x0000111C + .word 0x0000111C, 0x00001130 + .word 0x00001130, 0x00001144 + .word 0x00001144, 0x00001158 + .word 0x00001158, 0x0000116C + .word 0x0000116C, 0x00001180 + .word 0x00001180, 0x00001194 + .word 0x00001194, 0x000011A8 + .word 0x000011A8, 0x000011BC + .word 0x000011BC, 0x000011D0 + .word 0x000011D0, 0x000011E4 + .word 0x000011E4, 0x000011F8 + .word 0x000011F8, 0x0000120C + .word 0x0000120C, 0x00001220 + .word 0x00001220, 0x00001234 + .word 0x00001234, 0x00001248 + .word 0x00001248, 0x0000125C + .word 0x0000125C, 0x00001270 + .word 0x00001270, 0x00001284 + .word 0x00001284, 0x00001298 + .word 0x00001298, 0x000012AC + .word 0x000012AC, 0x000012C0 + .word 0x000012C0, 0x000012D4 + .word 0x000012D4, 0x000012E8 + .word 0x000012E8, 0x000012FC + .word 0x000012FC, 0x00001310 + .word 0x00001310, 0x00001324 + .word 0x00001324, 0x00001338 + .word 0x00001338, 0x0000134C + .word 0x0000134C, 0x00001360 + .word 0x00001360, 0x00001374 + .word 0x00001374, 0x00001388 + .word 0x00001388, 0x0000139C + .word 0x0000139C, 0x000013B0 + .word 0x000013B0, 0x000013C4 + .word 0x000013C4, 0x000013D8 + .word 0x000013D8, 0x000013EC + .word 0x000013EC, 0x00001400 + .word 0x00001400, 0x00001414 + .word 0x00001414, 0x00001428 + .word 0x00001428, 0x0000143C + .word 0x0000143C, 0x00001450 + .word 0x00001450, 0x00001464 + .word 0x00001464, 0x00001478 + .word 0x00001478, 0x0000148C + .word 0x0000148C, 0x000014A0 + .word 0x000014A0, 0x000014B4 + .word 0x000014B4, 0x000014C8 + .word 0x000014C8, 0x000014DC + .word 0x000014DC, 0x000014F0 + .word 0x000014F0, 0x00001504 + .word 0x00001504, 0x00001518 + .word 0x00001518, 0x0000152C + .word 0x0000152C, 0x00001540 + .word 0x00001540, 0x00001554 + .word 0x00001554, 0x00001568 + .word 0x00001568, 0x0000157C + .word 0x0000157C, 0x00001590 + .word 0x00001590, 0x000015A4 + .word 0x000015A4, 0x000015B8 + .word 0x000015B8, 0x000015CC + .word 0x000015CC, 0x000015E0 + .word 0x000015E0, 0x000015F4 + .word 0x000015F4, 0x00001608 + .word 0x00001608, 0x0000161C + .word 0x0000161C, 0x00001630 + .word 0x00001630, 0x00001644 + .word 0x00001644, 0x00001658 + .word 0x00001658, 0x0000166C + .word 0x0000166C, 0x00001680 + .word 0x00001680, 0x00001694 + .word 0x00001694, 0x000016A8 + .word 0x000016A8, 0x000016BC + .word 0x000016BC, 0x000016D0 + .word 0x000016D0, 0x000016E4 + .word 0x000016E4, 0x000016F8 + .word 0x000016F8, 0x0000170C + .word 0x0000170C, 0x00001720 + .word 0x00001720, 0x00001734 + .word 0x00001734, 0x00001748 + .word 0x00001748, 0x0000175C + .word 0x0000175C, 0x00001770 + .word 0x00001770, 0x00001784 + .word 0x00001784, 0x00001798 + .word 0x00001798, 0x000017AC + .word 0x000017AC, 0x000017C0 + .word 0x000017C0, 0x000017D4 + .word 0x000017D4, 0x000017E8 + .word 0x000017E8, 0x000017FC + .word 0x000017FC, 0x00001810 + .word 0x00001810, 0x00001824 + .word 0x00001824, 0x00001838 + .word 0x00001838, 0x0000184C + .word 0x0000184C, 0x00001860 + .word 0x00001860, 0x00001874 + .word 0x00001874, 0x00001888 + .word 0x00001888, 0x0000189C + .word 0x0000189C, 0x000018B0 + .word 0x000018B0, 0x000018C4 + .word 0x000018C4, 0x000018D8 + .word 0x000018D8, 0x000018EC + .word 0x000018EC, 0x00001900 + .word 0x00001900, 0x00001914 + .word 0x00001914, 0x00001928 + .word 0x00001928, 0x0000193C + .word 0x0000193C, 0x00001950 + .word 0x00001950, 0x00001964 + .word 0x00001964, 0x00001978 + .word 0x00001978, 0x0000198C + .word 0x0000198C, 0x000019A0 + .word 0x000019A0, 0x000019B4 + .word 0x000019B4, 0x000019C8 + .word 0x000019C8, 0x000019DC + .word 0x000019DC, 0x000019F0 + .word 0x000019F0, 0x00001A04 + .word 0x00001A04, 0x00001A18 + .word 0x00001A18, 0x00001A2C + .word 0x00001A2C, 0x00001A40 + .word 0x00001A40, 0x00001A54 + .word 0x00001A54, 0x00001A68 + .word 0x00001A68, 0x00001A7C + .word 0x00001A7C, 0x00001A90 + .word 0x00001A90, 0x00001AA4 + .word 0x00001AA4, 0x00001AB8 + .word 0x00001AB8, 0x00001ACC + .word 0x00001ACC, 0x00001AE0 + .word 0x00001AE0, 0x00001AF4 + .word 0x00001AF4, 0x00001B08 + .word 0x00001B08, 0x00001B1C + .word 0x00001B1C, 0x00001B30 + .word 0x00001B30, 0x00001B44 + .word 0x00001B44, 0x00001B58 + .word 0x00001B58, 0x00001B6C + .word 0x00001B6C, 0x00001B80 + .word 0x00001B80, 0x00001B94 + .word 0x00001B94, 0x00001BA8 + .word 0x00001BA8, 0x00001BBC + .word 0x00001BBC, 0x00001BD0 + .word 0x00001BD0, 0x00001BE4 + .word 0x00001BE4, 0x00001BF8 + .word 0x00001BF8, 0x00001C0C + .word 0x00001C0C, 0x00001C20 + .word 0x00001C20, 0x00001C34 + .word 0x00001C34, 0x00001C48 + .word 0x00001C48, 0x00001C5C + .word 0x00001C5C, 0x00001C70 + .word 0x00001C70, 0x00001C84 + .word 0x00001C84, 0x00001C98 + .word 0x00001C98, 0x00001CAC + .word 0x00001CAC, 0x00001CC0 + .word 0x00001CC0, 0x00001CD4 + .word 0x00001CD4, 0x00001CE8 + .word 0x00001CE8, 0x00001CFC + .word 0x00001CFC, 0x00001D10 + .word 0x00001D10, 0x00001D24 + .word 0x00001D24, 0x00001D38 + .word 0x00001D38, 0x00001D4C + .word 0x00001D4C, 0x00001D60 + .word 0x00001D60, 0x00001D74 + .word 0x00001D74, 0x00001D88 + .word 0x00001D88, 0x00001D9C + .word 0x00001D9C, 0x00001DB0 + .word 0x00001DB0, 0x00001DC4 + .word 0x00001DC4, 0x00001DD8 + .word 0x00001DD8, 0x00001DEC + .word 0x00001DEC, 0x00001E00 + .word 0x00001E00, 0x00001E14 + .word 0x00001E14, 0x00001E28 + .word 0x00001E28, 0x00001E3C + .word 0x00001E3C, 0x00001E50 + .word 0x00001E50, 0x00001E64 + .word 0x00001E64, 0x00001E78 + .word 0x00001E78, 0x00001E8C + .word 0x00001E8C, 0x00001EA0 + .word 0x00001EA0, 0x00001EB4 + .word 0x00001EB4, 0x00001EC8 + .word 0x00001EC8, 0x00001EDC + .word 0x00001EDC, 0x00001EF0 + .word 0x00001EF0, 0x00001F04 + .word 0x00001F04, 0x00001F18 + .word 0x00001F18, 0x00001F2C + .word 0x00001F2C, 0x00001F40 + .word 0x00001F40, 0x00001F54 + .word 0x00001F54, 0x00001F68 + .word 0x00001F68, 0x00001F7C + .word 0x00001F7C, 0x00001F90 + .word 0x00001F90, 0x00001FA4 + .word 0x00001FA4, 0x00001FB8 + .word 0x00001FB8, 0x00001FCC + .word 0x00001FCC, 0x00001FE0 + .word 0x00001FE0, 0x00001FF4 + .word 0x00001FF4, 0x00002008 + .word 0x00002008, 0x0000201C + .word 0x0000201C, 0x00002030 + .word 0x00002030, 0x00002044 + .word 0x00002044, 0x00002058 + .word 0x00002058, 0x0000206C + .word 0x0000206C, 0x00002080 + .word 0x00002080, 0x00002094 + .word 0x00002094, 0x000020A8 + .word 0x000020A8, 0x000020BC + .word 0x000020BC, 0x000020D0 + .word 0x000020D0, 0x000020E4 + .word 0x000020E4, 0x000020F8 + .word 0x000020F8, 0x0000210C + .word 0x0000210C, 0x00002120 + .word 0x00002120, 0x00002134 + .word 0x00002134, 0x00002148 + .word 0x00002148, 0x0000215C + .word 0x0000215C, 0x00002170 + .word 0x00002170, 0x00002184 + .word 0x00002184, 0x00002198 + .word 0x00002198, 0x000021AC + .word 0x000021AC, 0x000021C0 + .word 0x000021C0, 0x000021D4 + .word 0x000021D4, 0x000021E8 + .word 0x000021E8, 0x000021FC + .word 0x000021FC, 0x00002210 + .word 0x00002210, 0x00002224 + .word 0x00002224, 0x00002238 + .word 0x00002238, 0x0000224C + .word 0x0000224C, 0x00002260 + .word 0x00002260, 0x00002274 + .word 0x00002274, 0x00002288 + .word 0x00002288, 0x0000229C + .word 0x0000229C, 0x000022B0 + .word 0x000022B0, 0x000022C4 + .word 0x000022C4, 0x000022D8 + .word 0x000022D8, 0x000022EC + .word 0x000022EC, 0x00002300 + .word 0x00002300, 0x00002314 + .word 0x00002314, 0x00002328 + .word 0x00002328, 0x0000233C + .word 0x0000233C, 0x00002350 + .word 0x00002350, 0x00002364 + .word 0x00002364, 0x00002378 + .word 0x00002378, 0x0000238C + .word 0x0000238C, 0x000023A0 + .word 0x000023A0, 0x000023B4 + .word 0x000023B4, 0x000023C8 + .word 0x000023C8, 0x000023DC + .word 0x000023DC, 0x000023F0 + .word 0x000023F0, 0x00002404 + .word 0x00002404, 0x00002418 + .word 0x00002418, 0x0000242C + .word 0x0000242C, 0x00002440 + .word 0x00002440, 0x00002454 + .word 0x00002454, 0x00002468 + .word 0x00002468, 0x0000247C + .word 0x0000247C, 0x00002490 + .word 0x00002490, 0x000024A4 + .word 0x000024A4, 0x000024B8 + .word 0x000024B8, 0x000024CC + .word 0x000024CC, 0x000024E0 + .word 0x000024E0, 0x000024F4 + .word 0x000024F4, 0x00002508 + .word 0x00002508, 0x0000251C + .word 0x0000251C, 0x00002530 + .word 0x00002530, 0x00002544 + .word 0x00002544, 0x00002558 + .word 0x00002558, 0x0000256C + .word 0x0000256C, 0x00002580 + .word 0x00002580, 0x00002594 + .word 0x00002594, 0x000025A8 + .word 0x000025A8, 0x000025BC + .word 0x000025BC, 0x000025D0 + .word 0x000025D0, 0x000025E4 + .word 0x000025E4, 0x000025F8 + .word 0x000025F8, 0x0000260C + .word 0x0000260C, 0x00002620 + .word 0x00002620, 0x00002634 + .word 0x00002634, 0x00002648 + .word 0x00002648, 0x0000265C + .word 0x0000265C, 0x00002670 + .word 0x00002670, 0x00002684 + .word 0x00002684, 0x00002698 + .word 0x00002698, 0x000026AC + .word 0x000026AC, 0x000026C0 + .word 0x000026C0, 0x000026D4 + .word 0x000026D4, 0x000026E8 + .word 0x000026E8, 0x000026FC + .word 0x000026FC, 0x00002710 + .word 0x00002710, 0x00002724 + .word 0x00002724, 0x00002738 + .word 0x00002738, 0x0000274C + .word 0x0000274C, 0x00002760 + .word 0x00002760, 0x00002774 + .word 0x00002774, 0x00002788 + .word 0x00002788, 0x0000279C + .word 0x0000279C, 0x000027B0 + .word 0x000027B0, 0x000027C4 + .word 0x000027C4, 0x000027D8 + .word 0x000027D8, 0x000027EC + .word 0x000027EC, 0x00002800 + .word 0x00002800, 0x00002814 + .word 0x00002814, 0x00002828 + .word 0x00002828, 0x0000283C + .word 0x0000283C, 0x00002850 + .word 0x00002850, 0x00002864 + .word 0x00002864, 0x00002878 + .word 0x00002878, 0x0000288C + .word 0x0000288C, 0x000028A0 + .word 0x000028A0, 0x000028B4 + .word 0x000028B4, 0x000028C8 + .word 0x000028C8, 0x000028DC + .word 0x000028DC, 0x000028F0 + .word 0x000028F0, 0x00002904 + .word 0x00002904, 0x00002918 + .word 0x00002918, 0x0000292C + .word 0x0000292C, 0x00002940 + .word 0x00002940, 0x00002954 + .word 0x00002954, 0x00002968 + .word 0x00002968, 0x0000297C + .word 0x0000297C, 0x00002990 + .word 0x00002990, 0x000029A4 + .word 0x000029A4, 0x000029B8 + .word 0x000029B8, 0x000029CC + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000029D4 ; chunk size + .incbin "baserom.nds", 0x0, 0x14 + .incbin "baserom.nds", 0x14, 0x14 + .incbin "baserom.nds", 0x28, 0x14 + .incbin "baserom.nds", 0x3C, 0x14 + .incbin "baserom.nds", 0x50, 0x14 + .incbin "baserom.nds", 0x64, 0x14 + .incbin "baserom.nds", 0x78, 0x14 + .incbin "baserom.nds", 0x8C, 0x14 + .incbin "baserom.nds", 0xA0, 0x14 + .incbin "baserom.nds", 0xB4, 0x14 + .incbin "baserom.nds", 0xC8, 0x14 + .incbin "baserom.nds", 0xDC, 0x14 + .incbin "baserom.nds", 0xF0, 0x14 + .incbin "baserom.nds", 0x104, 0x14 + .incbin "baserom.nds", 0x118, 0x14 + .incbin "baserom.nds", 0x12C, 0x14 + .incbin "baserom.nds", 0x140, 0x14 + .incbin "baserom.nds", 0x154, 0x14 + .incbin "baserom.nds", 0x168, 0x14 + .incbin "baserom.nds", 0x17C, 0x14 + .incbin "baserom.nds", 0x190, 0x14 + .incbin "baserom.nds", 0x1A4, 0x14 + .incbin "baserom.nds", 0x1B8, 0x14 + .incbin "baserom.nds", 0x1CC, 0x14 + .incbin "baserom.nds", 0x1E0, 0x14 + .incbin "baserom.nds", 0x1F4, 0x14 + .incbin "baserom.nds", 0x208, 0x14 + .incbin "baserom.nds", 0x21C, 0x14 + .incbin "baserom.nds", 0x230, 0x14 + .incbin "baserom.nds", 0x244, 0x14 + .incbin "baserom.nds", 0x258, 0x14 + .incbin "baserom.nds", 0x26C, 0x14 + .incbin "baserom.nds", 0x280, 0x14 + .incbin "baserom.nds", 0x294, 0x14 + .incbin "baserom.nds", 0x2A8, 0x14 + .incbin "baserom.nds", 0x2BC, 0x14 + .incbin "baserom.nds", 0x2D0, 0x14 + .incbin "baserom.nds", 0x2E4, 0x14 + .incbin "baserom.nds", 0x2F8, 0x14 + .incbin "baserom.nds", 0x30C, 0x14 + .incbin "baserom.nds", 0x320, 0x14 + .incbin "baserom.nds", 0x334, 0x14 + .incbin "baserom.nds", 0x348, 0x14 + .incbin "baserom.nds", 0x35C, 0x14 + .incbin "baserom.nds", 0x370, 0x14 + .incbin "baserom.nds", 0x384, 0x14 + .incbin "baserom.nds", 0x398, 0x14 + .incbin "baserom.nds", 0x3AC, 0x14 + .incbin "baserom.nds", 0x3C0, 0x14 + .incbin "baserom.nds", 0x3D4, 0x14 + .incbin "baserom.nds", 0x3E8, 0x14 + .incbin "baserom.nds", 0x3FC, 0x14 + .incbin "baserom.nds", 0x410, 0x14 + .incbin "baserom.nds", 0x424, 0x14 + .incbin "baserom.nds", 0x438, 0x14 + .incbin "baserom.nds", 0x44C, 0x14 + .incbin "baserom.nds", 0x460, 0x14 + .incbin "baserom.nds", 0x474, 0x14 + .incbin "baserom.nds", 0x488, 0x14 + .incbin "baserom.nds", 0x49C, 0x14 + .incbin "baserom.nds", 0x4B0, 0x14 + .incbin "baserom.nds", 0x4C4, 0x14 + .incbin "baserom.nds", 0x4D8, 0x14 + .incbin "baserom.nds", 0x4EC, 0x14 + .incbin "baserom.nds", 0x500, 0x14 + .incbin "baserom.nds", 0x514, 0x14 + .incbin "baserom.nds", 0x528, 0x14 + .incbin "baserom.nds", 0x53C, 0x14 + .incbin "baserom.nds", 0x550, 0x14 + .incbin "baserom.nds", 0x564, 0x14 + .incbin "baserom.nds", 0x578, 0x14 + .incbin "baserom.nds", 0x58C, 0x14 + .incbin "baserom.nds", 0x5A0, 0x14 + .incbin "baserom.nds", 0x5B4, 0x14 + .incbin "baserom.nds", 0x5C8, 0x14 + .incbin "baserom.nds", 0x5DC, 0x14 + .incbin "baserom.nds", 0x5F0, 0x14 + .incbin "baserom.nds", 0x604, 0x14 + .incbin "baserom.nds", 0x618, 0x14 + .incbin "baserom.nds", 0x62C, 0x14 + .incbin "baserom.nds", 0x640, 0x14 + .incbin "baserom.nds", 0x654, 0x14 + .incbin "baserom.nds", 0x668, 0x14 + .incbin "baserom.nds", 0x67C, 0x14 + .incbin "baserom.nds", 0x690, 0x14 + .incbin "baserom.nds", 0x6A4, 0x14 + .incbin "baserom.nds", 0x6B8, 0x14 + .incbin "baserom.nds", 0x6CC, 0x14 + .incbin "baserom.nds", 0x6E0, 0x14 + .incbin "baserom.nds", 0x6F4, 0x14 + .incbin "baserom.nds", 0x708, 0x14 + .incbin "baserom.nds", 0x71C, 0x14 + .incbin "baserom.nds", 0x730, 0x14 + .incbin "baserom.nds", 0x744, 0x14 + .incbin "baserom.nds", 0x758, 0x14 + .incbin "baserom.nds", 0x76C, 0x14 + .incbin "baserom.nds", 0x780, 0x14 + .incbin "baserom.nds", 0x794, 0x14 + .incbin "baserom.nds", 0x7A8, 0x14 + .incbin "baserom.nds", 0x7BC, 0x14 + .incbin "baserom.nds", 0x7D0, 0x14 + .incbin "baserom.nds", 0x7E4, 0x14 + .incbin "baserom.nds", 0x7F8, 0x14 + .incbin "baserom.nds", 0x80C, 0x14 + .incbin "baserom.nds", 0x820, 0x14 + .incbin "baserom.nds", 0x834, 0x14 + .incbin "baserom.nds", 0x848, 0x14 + .incbin "baserom.nds", 0x85C, 0x14 + .incbin "baserom.nds", 0x870, 0x14 + .incbin "baserom.nds", 0x884, 0x14 + .incbin "baserom.nds", 0x898, 0x14 + .incbin "baserom.nds", 0x8AC, 0x14 + .incbin "baserom.nds", 0x8C0, 0x14 + .incbin "baserom.nds", 0x8D4, 0x14 + .incbin "baserom.nds", 0x8E8, 0x14 + .incbin "baserom.nds", 0x8FC, 0x14 + .incbin "baserom.nds", 0x910, 0x14 + .incbin "baserom.nds", 0x924, 0x14 + .incbin "baserom.nds", 0x938, 0x14 + .incbin "baserom.nds", 0x94C, 0x14 + .incbin "baserom.nds", 0x960, 0x14 + .incbin "baserom.nds", 0x974, 0x14 + .incbin "baserom.nds", 0x988, 0x14 + .incbin "baserom.nds", 0x99C, 0x14 + .incbin "baserom.nds", 0x9B0, 0x14 + .incbin "baserom.nds", 0x9C4, 0x14 + .incbin "baserom.nds", 0x9D8, 0x14 + .incbin "baserom.nds", 0x9EC, 0x14 + .incbin "baserom.nds", 0xA00, 0x14 + .incbin "baserom.nds", 0xA14, 0x14 + .incbin "baserom.nds", 0xA28, 0x14 + .incbin "baserom.nds", 0xA3C, 0x14 + .incbin "baserom.nds", 0xA50, 0x14 + .incbin "baserom.nds", 0xA64, 0x14 + .incbin "baserom.nds", 0xA78, 0x14 + .incbin "baserom.nds", 0xA8C, 0x14 + .incbin "baserom.nds", 0xAA0, 0x14 + .incbin "baserom.nds", 0xAB4, 0x14 + .incbin "baserom.nds", 0xAC8, 0x14 + .incbin "baserom.nds", 0xADC, 0x14 + .incbin "baserom.nds", 0xAF0, 0x14 + .incbin "baserom.nds", 0xB04, 0x14 + .incbin "baserom.nds", 0xB18, 0x14 + .incbin "baserom.nds", 0xB2C, 0x14 + .incbin "baserom.nds", 0xB40, 0x14 + .incbin "baserom.nds", 0xB54, 0x14 + .incbin "baserom.nds", 0xB68, 0x14 + .incbin "baserom.nds", 0xB7C, 0x14 + .incbin "baserom.nds", 0xB90, 0x14 + .incbin "baserom.nds", 0xBA4, 0x14 + .incbin "baserom.nds", 0xBB8, 0x14 + .incbin "baserom.nds", 0xBCC, 0x14 + .incbin "baserom.nds", 0xBE0, 0x14 + .incbin "baserom.nds", 0xBF4, 0x14 + .incbin "baserom.nds", 0xC08, 0x14 + .incbin "baserom.nds", 0xC1C, 0x14 + .incbin "baserom.nds", 0xC30, 0x14 + .incbin "baserom.nds", 0xC44, 0x14 + .incbin "baserom.nds", 0xC58, 0x14 + .incbin "baserom.nds", 0xC6C, 0x14 + .incbin "baserom.nds", 0xC80, 0x14 + .incbin "baserom.nds", 0xC94, 0x14 + .incbin "baserom.nds", 0xCA8, 0x14 + .incbin "baserom.nds", 0xCBC, 0x14 + .incbin "baserom.nds", 0xCD0, 0x14 + .incbin "baserom.nds", 0xCE4, 0x14 + .incbin "baserom.nds", 0xCF8, 0x14 + .incbin "baserom.nds", 0xD0C, 0x14 + .incbin "baserom.nds", 0xD20, 0x14 + .incbin "baserom.nds", 0xD34, 0x14 + .incbin "baserom.nds", 0xD48, 0x14 + .incbin "baserom.nds", 0xD5C, 0x14 + .incbin "baserom.nds", 0xD70, 0x14 + .incbin "baserom.nds", 0xD84, 0x14 + .incbin "baserom.nds", 0xD98, 0x14 + .incbin "baserom.nds", 0xDAC, 0x14 + .incbin "baserom.nds", 0xDC0, 0x14 + .incbin "baserom.nds", 0xDD4, 0x14 + .incbin "baserom.nds", 0xDE8, 0x14 + .incbin "baserom.nds", 0xDFC, 0x14 + .incbin "baserom.nds", 0xE10, 0x14 + .incbin "baserom.nds", 0xE24, 0x14 + .incbin "baserom.nds", 0xE38, 0x14 + .incbin "baserom.nds", 0xE4C, 0x14 + .incbin "baserom.nds", 0xE60, 0x14 + .incbin "baserom.nds", 0xE74, 0x14 + .incbin "baserom.nds", 0xE88, 0x14 + .incbin "baserom.nds", 0xE9C, 0x14 + .incbin "baserom.nds", 0xEB0, 0x14 + .incbin "baserom.nds", 0xEC4, 0x14 + .incbin "baserom.nds", 0xED8, 0x14 + .incbin "baserom.nds", 0xEEC, 0x14 + .incbin "baserom.nds", 0xF00, 0x14 + .incbin "baserom.nds", 0xF14, 0x14 + .incbin "baserom.nds", 0xF28, 0x14 + .incbin "baserom.nds", 0xF3C, 0x14 + .incbin "baserom.nds", 0xF50, 0x14 + .incbin "baserom.nds", 0xF64, 0x14 + .incbin "baserom.nds", 0xF78, 0x14 + .incbin "baserom.nds", 0xF8C, 0x14 + .incbin "baserom.nds", 0xFA0, 0x14 + .incbin "baserom.nds", 0xFB4, 0x14 + .incbin "baserom.nds", 0xFC8, 0x14 + .incbin "baserom.nds", 0xFDC, 0x14 + .incbin "baserom.nds", 0xFF0, 0x14 + .incbin "baserom.nds", 0x1004, 0x14 + .incbin "baserom.nds", 0x1018, 0x14 + .incbin "baserom.nds", 0x102C, 0x14 + .incbin "baserom.nds", 0x1040, 0x14 + .incbin "baserom.nds", 0x1054, 0x14 + .incbin "baserom.nds", 0x1068, 0x14 + .incbin "baserom.nds", 0x107C, 0x14 + .incbin "baserom.nds", 0x1090, 0x14 + .incbin "baserom.nds", 0x10A4, 0x14 + .incbin "baserom.nds", 0x10B8, 0x14 + .incbin "baserom.nds", 0x10CC, 0x14 + .incbin "baserom.nds", 0x10E0, 0x14 + .incbin "baserom.nds", 0x10F4, 0x14 + .incbin "baserom.nds", 0x1108, 0x14 + .incbin "baserom.nds", 0x111C, 0x14 + .incbin "baserom.nds", 0x1130, 0x14 + .incbin "baserom.nds", 0x1144, 0x14 + .incbin "baserom.nds", 0x1158, 0x14 + .incbin "baserom.nds", 0x116C, 0x14 + .incbin "baserom.nds", 0x1180, 0x14 + .incbin "baserom.nds", 0x1194, 0x14 + .incbin "baserom.nds", 0x11A8, 0x14 + .incbin "baserom.nds", 0x11BC, 0x14 + .incbin "baserom.nds", 0x11D0, 0x14 + .incbin "baserom.nds", 0x11E4, 0x14 + .incbin "baserom.nds", 0x11F8, 0x14 + .incbin "baserom.nds", 0x120C, 0x14 + .incbin "baserom.nds", 0x1220, 0x14 + .incbin "baserom.nds", 0x1234, 0x14 + .incbin "baserom.nds", 0x1248, 0x14 + .incbin "baserom.nds", 0x125C, 0x14 + .incbin "baserom.nds", 0x1270, 0x14 + .incbin "baserom.nds", 0x1284, 0x14 + .incbin "baserom.nds", 0x1298, 0x14 + .incbin "baserom.nds", 0x12AC, 0x14 + .incbin "baserom.nds", 0x12C0, 0x14 + .incbin "baserom.nds", 0x12D4, 0x14 + .incbin "baserom.nds", 0x12E8, 0x14 + .incbin "baserom.nds", 0x12FC, 0x14 + .incbin "baserom.nds", 0x1310, 0x14 + .incbin "baserom.nds", 0x1324, 0x14 + .incbin "baserom.nds", 0x1338, 0x14 + .incbin "baserom.nds", 0x134C, 0x14 + .incbin "baserom.nds", 0x1360, 0x14 + .incbin "baserom.nds", 0x1374, 0x14 + .incbin "baserom.nds", 0x1388, 0x14 + .incbin "baserom.nds", 0x139C, 0x14 + .incbin "baserom.nds", 0x13B0, 0x14 + .incbin "baserom.nds", 0x13C4, 0x14 + .incbin "baserom.nds", 0x13D8, 0x14 + .incbin "baserom.nds", 0x13EC, 0x14 + .incbin "baserom.nds", 0x1400, 0x14 + .incbin "baserom.nds", 0x1414, 0x14 + .incbin "baserom.nds", 0x1428, 0x14 + .incbin "baserom.nds", 0x143C, 0x14 + .incbin "baserom.nds", 0x1450, 0x14 + .incbin "baserom.nds", 0x1464, 0x14 + .incbin "baserom.nds", 0x1478, 0x14 + .incbin "baserom.nds", 0x148C, 0x14 + .incbin "baserom.nds", 0x14A0, 0x14 + .incbin "baserom.nds", 0x14B4, 0x14 + .incbin "baserom.nds", 0x14C8, 0x14 + .incbin "baserom.nds", 0x14DC, 0x14 + .incbin "baserom.nds", 0x14F0, 0x14 + .incbin "baserom.nds", 0x1504, 0x14 + .incbin "baserom.nds", 0x1518, 0x14 + .incbin "baserom.nds", 0x152C, 0x14 + .incbin "baserom.nds", 0x1540, 0x14 + .incbin "baserom.nds", 0x1554, 0x14 + .incbin "baserom.nds", 0x1568, 0x14 + .incbin "baserom.nds", 0x157C, 0x14 + .incbin "baserom.nds", 0x1590, 0x14 + .incbin "baserom.nds", 0x15A4, 0x14 + .incbin "baserom.nds", 0x15B8, 0x14 + .incbin "baserom.nds", 0x15CC, 0x14 + .incbin "baserom.nds", 0x15E0, 0x14 + .incbin "baserom.nds", 0x15F4, 0x14 + .incbin "baserom.nds", 0x1608, 0x14 + .incbin "baserom.nds", 0x161C, 0x14 + .incbin "baserom.nds", 0x1630, 0x14 + .incbin "baserom.nds", 0x1644, 0x14 + .incbin "baserom.nds", 0x1658, 0x14 + .incbin "baserom.nds", 0x166C, 0x14 + .incbin "baserom.nds", 0x1680, 0x14 + .incbin "baserom.nds", 0x1694, 0x14 + .incbin "baserom.nds", 0x16A8, 0x14 + .incbin "baserom.nds", 0x16BC, 0x14 + .incbin "baserom.nds", 0x16D0, 0x14 + .incbin "baserom.nds", 0x16E4, 0x14 + .incbin "baserom.nds", 0x16F8, 0x14 + .incbin "baserom.nds", 0x170C, 0x14 + .incbin "baserom.nds", 0x1720, 0x14 + .incbin "baserom.nds", 0x1734, 0x14 + .incbin "baserom.nds", 0x1748, 0x14 + .incbin "baserom.nds", 0x175C, 0x14 + .incbin "baserom.nds", 0x1770, 0x14 + .incbin "baserom.nds", 0x1784, 0x14 + .incbin "baserom.nds", 0x1798, 0x14 + .incbin "baserom.nds", 0x17AC, 0x14 + .incbin "baserom.nds", 0x17C0, 0x14 + .incbin "baserom.nds", 0x17D4, 0x14 + .incbin "baserom.nds", 0x17E8, 0x14 + .incbin "baserom.nds", 0x17FC, 0x14 + .incbin "baserom.nds", 0x1810, 0x14 + .incbin "baserom.nds", 0x1824, 0x14 + .incbin "baserom.nds", 0x1838, 0x14 + .incbin "baserom.nds", 0x184C, 0x14 + .incbin "baserom.nds", 0x1860, 0x14 + .incbin "baserom.nds", 0x1874, 0x14 + .incbin "baserom.nds", 0x1888, 0x14 + .incbin "baserom.nds", 0x189C, 0x14 + .incbin "baserom.nds", 0x18B0, 0x14 + .incbin "baserom.nds", 0x18C4, 0x14 + .incbin "baserom.nds", 0x18D8, 0x14 + .incbin "baserom.nds", 0x18EC, 0x14 + .incbin "baserom.nds", 0x1900, 0x14 + .incbin "baserom.nds", 0x1914, 0x14 + .incbin "baserom.nds", 0x1928, 0x14 + .incbin "baserom.nds", 0x193C, 0x14 + .incbin "baserom.nds", 0x1950, 0x14 + .incbin "baserom.nds", 0x1964, 0x14 + .incbin "baserom.nds", 0x1978, 0x14 + .incbin "baserom.nds", 0x198C, 0x14 + .incbin "baserom.nds", 0x19A0, 0x14 + .incbin "baserom.nds", 0x19B4, 0x14 + .incbin "baserom.nds", 0x19C8, 0x14 + .incbin "baserom.nds", 0x19DC, 0x14 + .incbin "baserom.nds", 0x19F0, 0x14 + .incbin "baserom.nds", 0x1A04, 0x14 + .incbin "baserom.nds", 0x1A18, 0x14 + .incbin "baserom.nds", 0x1A2C, 0x14 + .incbin "baserom.nds", 0x1A40, 0x14 + .incbin "baserom.nds", 0x1A54, 0x14 + .incbin "baserom.nds", 0x1A68, 0x14 + .incbin "baserom.nds", 0x1A7C, 0x14 + .incbin "baserom.nds", 0x1A90, 0x14 + .incbin "baserom.nds", 0x1AA4, 0x14 + .incbin "baserom.nds", 0x1AB8, 0x14 + .incbin "baserom.nds", 0x1ACC, 0x14 + .incbin "baserom.nds", 0x1AE0, 0x14 + .incbin "baserom.nds", 0x1AF4, 0x14 + .incbin "baserom.nds", 0x1B08, 0x14 + .incbin "baserom.nds", 0x1B1C, 0x14 + .incbin "baserom.nds", 0x1B30, 0x14 + .incbin "baserom.nds", 0x1B44, 0x14 + .incbin "baserom.nds", 0x1B58, 0x14 + .incbin "baserom.nds", 0x1B6C, 0x14 + .incbin "baserom.nds", 0x1B80, 0x14 + .incbin "baserom.nds", 0x1B94, 0x14 + .incbin "baserom.nds", 0x1BA8, 0x14 + .incbin "baserom.nds", 0x1BBC, 0x14 + .incbin "baserom.nds", 0x1BD0, 0x14 + .incbin "baserom.nds", 0x1BE4, 0x14 + .incbin "baserom.nds", 0x1BF8, 0x14 + .incbin "baserom.nds", 0x1C0C, 0x14 + .incbin "baserom.nds", 0x1C20, 0x14 + .incbin "baserom.nds", 0x1C34, 0x14 + .incbin "baserom.nds", 0x1C48, 0x14 + .incbin "baserom.nds", 0x1C5C, 0x14 + .incbin "baserom.nds", 0x1C70, 0x14 + .incbin "baserom.nds", 0x1C84, 0x14 + .incbin "baserom.nds", 0x1C98, 0x14 + .incbin "baserom.nds", 0x1CAC, 0x14 + .incbin "baserom.nds", 0x1CC0, 0x14 + .incbin "baserom.nds", 0x1CD4, 0x14 + .incbin "baserom.nds", 0x1CE8, 0x14 + .incbin "baserom.nds", 0x1CFC, 0x14 + .incbin "baserom.nds", 0x1D10, 0x14 + .incbin "baserom.nds", 0x1D24, 0x14 + .incbin "baserom.nds", 0x1D38, 0x14 + .incbin "baserom.nds", 0x1D4C, 0x14 + .incbin "baserom.nds", 0x1D60, 0x14 + .incbin "baserom.nds", 0x1D74, 0x14 + .incbin "baserom.nds", 0x1D88, 0x14 + .incbin "baserom.nds", 0x1D9C, 0x14 + .incbin "baserom.nds", 0x1DB0, 0x14 + .incbin "baserom.nds", 0x1DC4, 0x14 + .incbin "baserom.nds", 0x1DD8, 0x14 + .incbin "baserom.nds", 0x1DEC, 0x14 + .incbin "baserom.nds", 0x1E00, 0x14 + .incbin "baserom.nds", 0x1E14, 0x14 + .incbin "baserom.nds", 0x1E28, 0x14 + .incbin "baserom.nds", 0x1E3C, 0x14 + .incbin "baserom.nds", 0x1E50, 0x14 + .incbin "baserom.nds", 0x1E64, 0x14 + .incbin "baserom.nds", 0x1E78, 0x14 + .incbin "baserom.nds", 0x1E8C, 0x14 + .incbin "baserom.nds", 0x1EA0, 0x14 + .incbin "baserom.nds", 0x1EB4, 0x14 + .incbin "baserom.nds", 0x1EC8, 0x14 + .incbin "baserom.nds", 0x1EDC, 0x14 + .incbin "baserom.nds", 0x1EF0, 0x14 + .incbin "baserom.nds", 0x1F04, 0x14 + .incbin "baserom.nds", 0x1F18, 0x14 + .incbin "baserom.nds", 0x1F2C, 0x14 + .incbin "baserom.nds", 0x1F40, 0x14 + .incbin "baserom.nds", 0x1F54, 0x14 + .incbin "baserom.nds", 0x1F68, 0x14 + .incbin "baserom.nds", 0x1F7C, 0x14 + .incbin "baserom.nds", 0x1F90, 0x14 + .incbin "baserom.nds", 0x1FA4, 0x14 + .incbin "baserom.nds", 0x1FB8, 0x14 + .incbin "baserom.nds", 0x1FCC, 0x14 + .incbin "baserom.nds", 0x1FE0, 0x14 + .incbin "baserom.nds", 0x1FF4, 0x14 + .incbin "baserom.nds", 0x2008, 0x14 + .incbin "baserom.nds", 0x201C, 0x14 + .incbin "baserom.nds", 0x2030, 0x14 + .incbin "baserom.nds", 0x2044, 0x14 + .incbin "baserom.nds", 0x2058, 0x14 + .incbin "baserom.nds", 0x206C, 0x14 + .incbin "baserom.nds", 0x2080, 0x14 + .incbin "baserom.nds", 0x2094, 0x14 + .incbin "baserom.nds", 0x20A8, 0x14 + .incbin "baserom.nds", 0x20BC, 0x14 + .incbin "baserom.nds", 0x20D0, 0x14 + .incbin "baserom.nds", 0x20E4, 0x14 + .incbin "baserom.nds", 0x20F8, 0x14 + .incbin "baserom.nds", 0x210C, 0x14 + .incbin "baserom.nds", 0x2120, 0x14 + .incbin "baserom.nds", 0x2134, 0x14 + .incbin "baserom.nds", 0x2148, 0x14 + .incbin "baserom.nds", 0x215C, 0x14 + .incbin "baserom.nds", 0x2170, 0x14 + .incbin "baserom.nds", 0x2184, 0x14 + .incbin "baserom.nds", 0x2198, 0x14 + .incbin "baserom.nds", 0x21AC, 0x14 + .incbin "baserom.nds", 0x21C0, 0x14 + .incbin "baserom.nds", 0x21D4, 0x14 + .incbin "baserom.nds", 0x21E8, 0x14 + .incbin "baserom.nds", 0x21FC, 0x14 + .incbin "baserom.nds", 0x2210, 0x14 + .incbin "baserom.nds", 0x2224, 0x14 + .incbin "baserom.nds", 0x2238, 0x14 + .incbin "baserom.nds", 0x224C, 0x14 + .incbin "baserom.nds", 0x2260, 0x14 + .incbin "baserom.nds", 0x2274, 0x14 + .incbin "baserom.nds", 0x2288, 0x14 + .incbin "baserom.nds", 0x229C, 0x14 + .incbin "baserom.nds", 0x22B0, 0x14 + .incbin "baserom.nds", 0x22C4, 0x14 + .incbin "baserom.nds", 0x22D8, 0x14 + .incbin "baserom.nds", 0x22EC, 0x14 + .incbin "baserom.nds", 0x2300, 0x14 + .incbin "baserom.nds", 0x2314, 0x14 + .incbin "baserom.nds", 0x2328, 0x14 + .incbin "baserom.nds", 0x233C, 0x14 + .incbin "baserom.nds", 0x2350, 0x14 + .incbin "baserom.nds", 0x2364, 0x14 + .incbin "baserom.nds", 0x2378, 0x14 + .incbin "baserom.nds", 0x238C, 0x14 + .incbin "baserom.nds", 0x23A0, 0x14 + .incbin "baserom.nds", 0x23B4, 0x14 + .incbin "baserom.nds", 0x23C8, 0x14 + .incbin "baserom.nds", 0x23DC, 0x14 + .incbin "baserom.nds", 0x23F0, 0x14 + .incbin "baserom.nds", 0x2404, 0x14 + .incbin "baserom.nds", 0x2418, 0x14 + .incbin "baserom.nds", 0x242C, 0x14 + .incbin "baserom.nds", 0x2440, 0x14 + .incbin "baserom.nds", 0x2454, 0x14 + .incbin "baserom.nds", 0x2468, 0x14 + .incbin "baserom.nds", 0x247C, 0x14 + .incbin "baserom.nds", 0x2490, 0x14 + .incbin "baserom.nds", 0x24A4, 0x14 + .incbin "baserom.nds", 0x24B8, 0x14 + .incbin "baserom.nds", 0x24CC, 0x14 + .incbin "baserom.nds", 0x24E0, 0x14 + .incbin "baserom.nds", 0x24F4, 0x14 + .incbin "baserom.nds", 0x2508, 0x14 + .incbin "baserom.nds", 0x251C, 0x14 + .incbin "baserom.nds", 0x2530, 0x14 + .incbin "baserom.nds", 0x2544, 0x14 + .incbin "baserom.nds", 0x2558, 0x14 + .incbin "baserom.nds", 0x256C, 0x14 + .incbin "baserom.nds", 0x2580, 0x14 + .incbin "baserom.nds", 0x2594, 0x14 + .incbin "baserom.nds", 0x25A8, 0x14 + .incbin "baserom.nds", 0x25BC, 0x14 + .incbin "baserom.nds", 0x25D0, 0x14 + .incbin "baserom.nds", 0x25E4, 0x14 + .incbin "baserom.nds", 0x25F8, 0x14 + .incbin "baserom.nds", 0x260C, 0x14 + .incbin "baserom.nds", 0x2620, 0x14 + .incbin "baserom.nds", 0x2634, 0x14 + .incbin "baserom.nds", 0x2648, 0x14 + .incbin "baserom.nds", 0x265C, 0x14 + .incbin "baserom.nds", 0x2670, 0x14 + .incbin "baserom.nds", 0x2684, 0x14 + .incbin "baserom.nds", 0x2698, 0x14 + .incbin "baserom.nds", 0x26AC, 0x14 + .incbin "baserom.nds", 0x26C0, 0x14 + .incbin "baserom.nds", 0x26D4, 0x14 + .incbin "baserom.nds", 0x26E8, 0x14 + .incbin "baserom.nds", 0x26FC, 0x14 + .incbin "baserom.nds", 0x2710, 0x14 + .incbin "baserom.nds", 0x2724, 0x14 + .incbin "baserom.nds", 0x2738, 0x14 + .incbin "baserom.nds", 0x274C, 0x14 + .incbin "baserom.nds", 0x2760, 0x14 + .incbin "baserom.nds", 0x2774, 0x14 + .incbin "baserom.nds", 0x2788, 0x14 + .incbin "baserom.nds", 0x279C, 0x14 + .incbin "baserom.nds", 0x27B0, 0x14 + .incbin "baserom.nds", 0x27C4, 0x14 + .incbin "baserom.nds", 0x27D8, 0x14 + .incbin "baserom.nds", 0x27EC, 0x14 + .incbin "baserom.nds", 0x2800, 0x14 + .incbin "baserom.nds", 0x2814, 0x14 + .incbin "baserom.nds", 0x2828, 0x14 + .incbin "baserom.nds", 0x283C, 0x14 + .incbin "baserom.nds", 0x2850, 0x14 + .incbin "baserom.nds", 0x2864, 0x14 + .incbin "baserom.nds", 0x2878, 0x14 + .incbin "baserom.nds", 0x288C, 0x14 + .incbin "baserom.nds", 0x28A0, 0x14 + .incbin "baserom.nds", 0x28B4, 0x14 + .incbin "baserom.nds", 0x28C8, 0x14 + .incbin "baserom.nds", 0x28DC, 0x14 + .incbin "baserom.nds", 0x28F0, 0x14 + .incbin "baserom.nds", 0x2904, 0x14 + .incbin "baserom.nds", 0x2918, 0x14 + .incbin "baserom.nds", 0x292C, 0x14 + .incbin "baserom.nds", 0x2940, 0x14 + .incbin "baserom.nds", 0x2954, 0x14 + .incbin "baserom.nds", 0x2968, 0x14 + .incbin "baserom.nds", 0x297C, 0x14 + .incbin "baserom.nds", 0x2990, 0x14 + .incbin "baserom.nds", 0x29A4, 0x14 + .incbin "baserom.nds", 0x29B8, 0x14 + .balign 4, 255 diff --git a/narc/arc/encdata_ex.narc.s b/narc/arc/encdata_ex.narc.s new file mode 100644 index 00000000..6475b420 --- /dev/null +++ b/narc/arc/encdata_ex.narc.s @@ -0,0 +1,50 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00000724 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000006C ; chunk size + .short 12 ; number of files + .balign 4 + .word 0x00000000, 0x00000004 + .word 0x00000004, 0x00000430 + .word 0x00000430, 0x00000448 + .word 0x00000448, 0x00000460 + .word 0x00000460, 0x00000478 + .word 0x00000478, 0x00000490 + .word 0x00000490, 0x000004A8 + .word 0x000004A8, 0x000004C0 + .word 0x000004C0, 0x00000500 + .word 0x00000500, 0x00000580 + .word 0x00000580, 0x00000600 + .word 0x00000600, 0x00000690 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00000698 ; chunk size + .incbin "baserom.nds", 0x0, 0x4 + .incbin "baserom.nds", 0x4, 0x42C + .incbin "baserom.nds", 0x430, 0x18 + .incbin "baserom.nds", 0x448, 0x18 + .incbin "baserom.nds", 0x460, 0x18 + .incbin "baserom.nds", 0x478, 0x18 + .incbin "baserom.nds", 0x490, 0x18 + .incbin "baserom.nds", 0x4A8, 0x18 + .incbin "baserom.nds", 0x4C0, 0x40 + .incbin "baserom.nds", 0x500, 0x80 + .incbin "baserom.nds", 0x580, 0x80 + .incbin "baserom.nds", 0x600, 0x90 + .balign 4, 255 diff --git a/narc/arc/ppark.narc.s b/narc/arc/ppark.narc.s new file mode 100644 index 00000000..91128c69 --- /dev/null +++ b/narc/arc/ppark.narc.s @@ -0,0 +1,28 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00000BCC ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000014 ; chunk size + .short 1 ; number of files + .balign 4 + .word 0x00000000, 0x00000B8E + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00000B98 ; chunk size + .incbin "baserom.nds", 0x0, 0xB8E + .balign 4, 255 diff --git a/narc/arc/ship_demo.narc.s b/narc/arc/ship_demo.narc.s new file mode 100644 index 00000000..7377fa7a --- /dev/null +++ b/narc/arc/ship_demo.narc.s @@ -0,0 +1,66 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00017358 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000000AC ; chunk size + .short 20 ; number of files + .balign 4 + .word 0x00000000, 0x00000C48 + .word 0x00000C48, 0x00000D28 + .word 0x00000D28, 0x00005A24 + .word 0x00005A24, 0x00005D80 + .word 0x00005D80, 0x00005F10 + .word 0x00005F10, 0x00006B58 + .word 0x00006B58, 0x00006C38 + .word 0x00006C38, 0x0000B3F8 + .word 0x0000B3F8, 0x0000B754 + .word 0x0000B754, 0x0000B8E4 + .word 0x0000B8E4, 0x0000C524 + .word 0x0000C524, 0x0000C604 + .word 0x0000C604, 0x00010DC0 + .word 0x00010DC0, 0x0001111C + .word 0x0001111C, 0x000112AC + .word 0x000112AC, 0x00011EF4 + .word 0x00011EF4, 0x00011FD4 + .word 0x00011FD4, 0x00016D98 + .word 0x00016D98, 0x000170F4 + .word 0x000170F4, 0x00017284 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0001728C ; chunk size + .incbin "baserom.nds", 0x0, 0xC48 + .incbin "baserom.nds", 0xC48, 0xE0 + .incbin "baserom.nds", 0xD28, 0x4CFC + .incbin "baserom.nds", 0x5A24, 0x35C + .incbin "baserom.nds", 0x5D80, 0x190 + .incbin "baserom.nds", 0x5F10, 0xC48 + .incbin "baserom.nds", 0x6B58, 0xE0 + .incbin "baserom.nds", 0x6C38, 0x47C0 + .incbin "baserom.nds", 0xB3F8, 0x35C + .incbin "baserom.nds", 0xB754, 0x190 + .incbin "baserom.nds", 0xB8E4, 0xC40 + .incbin "baserom.nds", 0xC524, 0xE0 + .incbin "baserom.nds", 0xC604, 0x47BC + .incbin "baserom.nds", 0x10DC0, 0x35C + .incbin "baserom.nds", 0x1111C, 0x190 + .incbin "baserom.nds", 0x112AC, 0xC48 + .incbin "baserom.nds", 0x11EF4, 0xE0 + .incbin "baserom.nds", 0x11FD4, 0x4DC4 + .incbin "baserom.nds", 0x16D98, 0x35C + .incbin "baserom.nds", 0x170F4, 0x190 + .balign 4, 255 diff --git a/narc/arc/tv.narc.s b/narc/arc/tv.narc.s new file mode 100644 index 00000000..8664ca09 --- /dev/null +++ b/narc/arc/tv.narc.s @@ -0,0 +1,32 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00000380 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000024 ; chunk size + .short 3 ; number of files + .balign 4 + .word 0x00000000, 0x000002A0 + .word 0x000002A0, 0x000002E8 + .word 0x000002E8, 0x00000334 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0000033C ; chunk size + .incbin "baserom.nds", 0x0, 0x2A0 + .incbin "baserom.nds", 0x2A0, 0x48 + .incbin "baserom.nds", 0x2E8, 0x4C + .balign 4, 255 diff --git a/narc/areadata/area_data.narc.s b/narc/areadata/area_data.narc.s new file mode 100644 index 00000000..3d14ebba --- /dev/null +++ b/narc/areadata/area_data.narc.s @@ -0,0 +1,144 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x000003E4 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000001E4 ; chunk size + .short 59 ; number of files + .balign 4 + .word 0x00000000, 0x00000008 + .word 0x00000008, 0x00000010 + .word 0x00000010, 0x00000018 + .word 0x00000018, 0x00000020 + .word 0x00000020, 0x00000028 + .word 0x00000028, 0x00000030 + .word 0x00000030, 0x00000038 + .word 0x00000038, 0x00000040 + .word 0x00000040, 0x00000048 + .word 0x00000048, 0x00000050 + .word 0x00000050, 0x00000058 + .word 0x00000058, 0x00000060 + .word 0x00000060, 0x00000068 + .word 0x00000068, 0x00000070 + .word 0x00000070, 0x00000078 + .word 0x00000078, 0x00000080 + .word 0x00000080, 0x00000088 + .word 0x00000088, 0x00000090 + .word 0x00000090, 0x00000098 + .word 0x00000098, 0x000000A0 + .word 0x000000A0, 0x000000A8 + .word 0x000000A8, 0x000000B0 + .word 0x000000B0, 0x000000B8 + .word 0x000000B8, 0x000000C0 + .word 0x000000C0, 0x000000C8 + .word 0x000000C8, 0x000000D0 + .word 0x000000D0, 0x000000D8 + .word 0x000000D8, 0x000000E0 + .word 0x000000E0, 0x000000E8 + .word 0x000000E8, 0x000000F0 + .word 0x000000F0, 0x000000F8 + .word 0x000000F8, 0x00000100 + .word 0x00000100, 0x00000108 + .word 0x00000108, 0x00000110 + .word 0x00000110, 0x00000118 + .word 0x00000118, 0x00000120 + .word 0x00000120, 0x00000128 + .word 0x00000128, 0x00000130 + .word 0x00000130, 0x00000138 + .word 0x00000138, 0x00000140 + .word 0x00000140, 0x00000148 + .word 0x00000148, 0x00000150 + .word 0x00000150, 0x00000158 + .word 0x00000158, 0x00000160 + .word 0x00000160, 0x00000168 + .word 0x00000168, 0x00000170 + .word 0x00000170, 0x00000178 + .word 0x00000178, 0x00000180 + .word 0x00000180, 0x00000188 + .word 0x00000188, 0x00000190 + .word 0x00000190, 0x00000198 + .word 0x00000198, 0x000001A0 + .word 0x000001A0, 0x000001A8 + .word 0x000001A8, 0x000001B0 + .word 0x000001B0, 0x000001B8 + .word 0x000001B8, 0x000001C0 + .word 0x000001C0, 0x000001C8 + .word 0x000001C8, 0x000001D0 + .word 0x000001D0, 0x000001D8 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000001E0 ; chunk size + .incbin "baserom.nds", 0x0, 0x8 + .incbin "baserom.nds", 0x8, 0x8 + .incbin "baserom.nds", 0x10, 0x8 + .incbin "baserom.nds", 0x18, 0x8 + .incbin "baserom.nds", 0x20, 0x8 + .incbin "baserom.nds", 0x28, 0x8 + .incbin "baserom.nds", 0x30, 0x8 + .incbin "baserom.nds", 0x38, 0x8 + .incbin "baserom.nds", 0x40, 0x8 + .incbin "baserom.nds", 0x48, 0x8 + .incbin "baserom.nds", 0x50, 0x8 + .incbin "baserom.nds", 0x58, 0x8 + .incbin "baserom.nds", 0x60, 0x8 + .incbin "baserom.nds", 0x68, 0x8 + .incbin "baserom.nds", 0x70, 0x8 + .incbin "baserom.nds", 0x78, 0x8 + .incbin "baserom.nds", 0x80, 0x8 + .incbin "baserom.nds", 0x88, 0x8 + .incbin "baserom.nds", 0x90, 0x8 + .incbin "baserom.nds", 0x98, 0x8 + .incbin "baserom.nds", 0xA0, 0x8 + .incbin "baserom.nds", 0xA8, 0x8 + .incbin "baserom.nds", 0xB0, 0x8 + .incbin "baserom.nds", 0xB8, 0x8 + .incbin "baserom.nds", 0xC0, 0x8 + .incbin "baserom.nds", 0xC8, 0x8 + .incbin "baserom.nds", 0xD0, 0x8 + .incbin "baserom.nds", 0xD8, 0x8 + .incbin "baserom.nds", 0xE0, 0x8 + .incbin "baserom.nds", 0xE8, 0x8 + .incbin "baserom.nds", 0xF0, 0x8 + .incbin "baserom.nds", 0xF8, 0x8 + .incbin "baserom.nds", 0x100, 0x8 + .incbin "baserom.nds", 0x108, 0x8 + .incbin "baserom.nds", 0x110, 0x8 + .incbin "baserom.nds", 0x118, 0x8 + .incbin "baserom.nds", 0x120, 0x8 + .incbin "baserom.nds", 0x128, 0x8 + .incbin "baserom.nds", 0x130, 0x8 + .incbin "baserom.nds", 0x138, 0x8 + .incbin "baserom.nds", 0x140, 0x8 + .incbin "baserom.nds", 0x148, 0x8 + .incbin "baserom.nds", 0x150, 0x8 + .incbin "baserom.nds", 0x158, 0x8 + .incbin "baserom.nds", 0x160, 0x8 + .incbin "baserom.nds", 0x168, 0x8 + .incbin "baserom.nds", 0x170, 0x8 + .incbin "baserom.nds", 0x178, 0x8 + .incbin "baserom.nds", 0x180, 0x8 + .incbin "baserom.nds", 0x188, 0x8 + .incbin "baserom.nds", 0x190, 0x8 + .incbin "baserom.nds", 0x198, 0x8 + .incbin "baserom.nds", 0x1A0, 0x8 + .incbin "baserom.nds", 0x1A8, 0x8 + .incbin "baserom.nds", 0x1B0, 0x8 + .incbin "baserom.nds", 0x1B8, 0x8 + .incbin "baserom.nds", 0x1C0, 0x8 + .incbin "baserom.nds", 0x1C8, 0x8 + .incbin "baserom.nds", 0x1D0, 0x8 + .balign 4, 255 diff --git a/narc/b_tower/btdpm.narc.s b/narc/b_tower/btdpm.narc.s new file mode 100644 index 00000000..6fe565a1 --- /dev/null +++ b/narc/b_tower/btdpm.narc.s @@ -0,0 +1,1928 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0000595C ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00001DC4 ; chunk size + .short 951 ; number of files + .balign 4 + .word 0x00000000, 0x00000010 + .word 0x00000010, 0x00000020 + .word 0x00000020, 0x00000030 + .word 0x00000030, 0x00000040 + .word 0x00000040, 0x00000050 + .word 0x00000050, 0x00000060 + .word 0x00000060, 0x00000070 + .word 0x00000070, 0x00000080 + .word 0x00000080, 0x00000090 + .word 0x00000090, 0x000000A0 + .word 0x000000A0, 0x000000B0 + .word 0x000000B0, 0x000000C0 + .word 0x000000C0, 0x000000D0 + .word 0x000000D0, 0x000000E0 + .word 0x000000E0, 0x000000F0 + .word 0x000000F0, 0x00000100 + .word 0x00000100, 0x00000110 + .word 0x00000110, 0x00000120 + .word 0x00000120, 0x00000130 + .word 0x00000130, 0x00000140 + .word 0x00000140, 0x00000150 + .word 0x00000150, 0x00000160 + .word 0x00000160, 0x00000170 + .word 0x00000170, 0x00000180 + .word 0x00000180, 0x00000190 + .word 0x00000190, 0x000001A0 + .word 0x000001A0, 0x000001B0 + .word 0x000001B0, 0x000001C0 + .word 0x000001C0, 0x000001D0 + .word 0x000001D0, 0x000001E0 + .word 0x000001E0, 0x000001F0 + .word 0x000001F0, 0x00000200 + .word 0x00000200, 0x00000210 + .word 0x00000210, 0x00000220 + .word 0x00000220, 0x00000230 + .word 0x00000230, 0x00000240 + .word 0x00000240, 0x00000250 + .word 0x00000250, 0x00000260 + .word 0x00000260, 0x00000270 + .word 0x00000270, 0x00000280 + .word 0x00000280, 0x00000290 + .word 0x00000290, 0x000002A0 + .word 0x000002A0, 0x000002B0 + .word 0x000002B0, 0x000002C0 + .word 0x000002C0, 0x000002D0 + .word 0x000002D0, 0x000002E0 + .word 0x000002E0, 0x000002F0 + .word 0x000002F0, 0x00000300 + .word 0x00000300, 0x00000310 + .word 0x00000310, 0x00000320 + .word 0x00000320, 0x00000330 + .word 0x00000330, 0x00000340 + .word 0x00000340, 0x00000350 + .word 0x00000350, 0x00000360 + .word 0x00000360, 0x00000370 + .word 0x00000370, 0x00000380 + .word 0x00000380, 0x00000390 + .word 0x00000390, 0x000003A0 + .word 0x000003A0, 0x000003B0 + .word 0x000003B0, 0x000003C0 + .word 0x000003C0, 0x000003D0 + .word 0x000003D0, 0x000003E0 + .word 0x000003E0, 0x000003F0 + .word 0x000003F0, 0x00000400 + .word 0x00000400, 0x00000410 + .word 0x00000410, 0x00000420 + .word 0x00000420, 0x00000430 + .word 0x00000430, 0x00000440 + .word 0x00000440, 0x00000450 + .word 0x00000450, 0x00000460 + .word 0x00000460, 0x00000470 + .word 0x00000470, 0x00000480 + .word 0x00000480, 0x00000490 + .word 0x00000490, 0x000004A0 + .word 0x000004A0, 0x000004B0 + .word 0x000004B0, 0x000004C0 + .word 0x000004C0, 0x000004D0 + .word 0x000004D0, 0x000004E0 + .word 0x000004E0, 0x000004F0 + .word 0x000004F0, 0x00000500 + .word 0x00000500, 0x00000510 + .word 0x00000510, 0x00000520 + .word 0x00000520, 0x00000530 + .word 0x00000530, 0x00000540 + .word 0x00000540, 0x00000550 + .word 0x00000550, 0x00000560 + .word 0x00000560, 0x00000570 + .word 0x00000570, 0x00000580 + .word 0x00000580, 0x00000590 + .word 0x00000590, 0x000005A0 + .word 0x000005A0, 0x000005B0 + .word 0x000005B0, 0x000005C0 + .word 0x000005C0, 0x000005D0 + .word 0x000005D0, 0x000005E0 + .word 0x000005E0, 0x000005F0 + .word 0x000005F0, 0x00000600 + .word 0x00000600, 0x00000610 + .word 0x00000610, 0x00000620 + .word 0x00000620, 0x00000630 + .word 0x00000630, 0x00000640 + .word 0x00000640, 0x00000650 + .word 0x00000650, 0x00000660 + .word 0x00000660, 0x00000670 + .word 0x00000670, 0x00000680 + .word 0x00000680, 0x00000690 + .word 0x00000690, 0x000006A0 + .word 0x000006A0, 0x000006B0 + .word 0x000006B0, 0x000006C0 + .word 0x000006C0, 0x000006D0 + .word 0x000006D0, 0x000006E0 + .word 0x000006E0, 0x000006F0 + .word 0x000006F0, 0x00000700 + .word 0x00000700, 0x00000710 + .word 0x00000710, 0x00000720 + .word 0x00000720, 0x00000730 + .word 0x00000730, 0x00000740 + .word 0x00000740, 0x00000750 + .word 0x00000750, 0x00000760 + .word 0x00000760, 0x00000770 + .word 0x00000770, 0x00000780 + .word 0x00000780, 0x00000790 + .word 0x00000790, 0x000007A0 + .word 0x000007A0, 0x000007B0 + .word 0x000007B0, 0x000007C0 + .word 0x000007C0, 0x000007D0 + .word 0x000007D0, 0x000007E0 + .word 0x000007E0, 0x000007F0 + .word 0x000007F0, 0x00000800 + .word 0x00000800, 0x00000810 + .word 0x00000810, 0x00000820 + .word 0x00000820, 0x00000830 + .word 0x00000830, 0x00000840 + .word 0x00000840, 0x00000850 + .word 0x00000850, 0x00000860 + .word 0x00000860, 0x00000870 + .word 0x00000870, 0x00000880 + .word 0x00000880, 0x00000890 + .word 0x00000890, 0x000008A0 + .word 0x000008A0, 0x000008B0 + .word 0x000008B0, 0x000008C0 + .word 0x000008C0, 0x000008D0 + .word 0x000008D0, 0x000008E0 + .word 0x000008E0, 0x000008F0 + .word 0x000008F0, 0x00000900 + .word 0x00000900, 0x00000910 + .word 0x00000910, 0x00000920 + .word 0x00000920, 0x00000930 + .word 0x00000930, 0x00000940 + .word 0x00000940, 0x00000950 + .word 0x00000950, 0x00000960 + .word 0x00000960, 0x00000970 + .word 0x00000970, 0x00000980 + .word 0x00000980, 0x00000990 + .word 0x00000990, 0x000009A0 + .word 0x000009A0, 0x000009B0 + .word 0x000009B0, 0x000009C0 + .word 0x000009C0, 0x000009D0 + .word 0x000009D0, 0x000009E0 + .word 0x000009E0, 0x000009F0 + .word 0x000009F0, 0x00000A00 + .word 0x00000A00, 0x00000A10 + .word 0x00000A10, 0x00000A20 + .word 0x00000A20, 0x00000A30 + .word 0x00000A30, 0x00000A40 + .word 0x00000A40, 0x00000A50 + .word 0x00000A50, 0x00000A60 + .word 0x00000A60, 0x00000A70 + .word 0x00000A70, 0x00000A80 + .word 0x00000A80, 0x00000A90 + .word 0x00000A90, 0x00000AA0 + .word 0x00000AA0, 0x00000AB0 + .word 0x00000AB0, 0x00000AC0 + .word 0x00000AC0, 0x00000AD0 + .word 0x00000AD0, 0x00000AE0 + .word 0x00000AE0, 0x00000AF0 + .word 0x00000AF0, 0x00000B00 + .word 0x00000B00, 0x00000B10 + .word 0x00000B10, 0x00000B20 + .word 0x00000B20, 0x00000B30 + .word 0x00000B30, 0x00000B40 + .word 0x00000B40, 0x00000B50 + .word 0x00000B50, 0x00000B60 + .word 0x00000B60, 0x00000B70 + .word 0x00000B70, 0x00000B80 + .word 0x00000B80, 0x00000B90 + .word 0x00000B90, 0x00000BA0 + .word 0x00000BA0, 0x00000BB0 + .word 0x00000BB0, 0x00000BC0 + .word 0x00000BC0, 0x00000BD0 + .word 0x00000BD0, 0x00000BE0 + .word 0x00000BE0, 0x00000BF0 + .word 0x00000BF0, 0x00000C00 + .word 0x00000C00, 0x00000C10 + .word 0x00000C10, 0x00000C20 + .word 0x00000C20, 0x00000C30 + .word 0x00000C30, 0x00000C40 + .word 0x00000C40, 0x00000C50 + .word 0x00000C50, 0x00000C60 + .word 0x00000C60, 0x00000C70 + .word 0x00000C70, 0x00000C80 + .word 0x00000C80, 0x00000C90 + .word 0x00000C90, 0x00000CA0 + .word 0x00000CA0, 0x00000CB0 + .word 0x00000CB0, 0x00000CC0 + .word 0x00000CC0, 0x00000CD0 + .word 0x00000CD0, 0x00000CE0 + .word 0x00000CE0, 0x00000CF0 + .word 0x00000CF0, 0x00000D00 + .word 0x00000D00, 0x00000D10 + .word 0x00000D10, 0x00000D20 + .word 0x00000D20, 0x00000D30 + .word 0x00000D30, 0x00000D40 + .word 0x00000D40, 0x00000D50 + .word 0x00000D50, 0x00000D60 + .word 0x00000D60, 0x00000D70 + .word 0x00000D70, 0x00000D80 + .word 0x00000D80, 0x00000D90 + .word 0x00000D90, 0x00000DA0 + .word 0x00000DA0, 0x00000DB0 + .word 0x00000DB0, 0x00000DC0 + .word 0x00000DC0, 0x00000DD0 + .word 0x00000DD0, 0x00000DE0 + .word 0x00000DE0, 0x00000DF0 + .word 0x00000DF0, 0x00000E00 + .word 0x00000E00, 0x00000E10 + .word 0x00000E10, 0x00000E20 + .word 0x00000E20, 0x00000E30 + .word 0x00000E30, 0x00000E40 + .word 0x00000E40, 0x00000E50 + .word 0x00000E50, 0x00000E60 + .word 0x00000E60, 0x00000E70 + .word 0x00000E70, 0x00000E80 + .word 0x00000E80, 0x00000E90 + .word 0x00000E90, 0x00000EA0 + .word 0x00000EA0, 0x00000EB0 + .word 0x00000EB0, 0x00000EC0 + .word 0x00000EC0, 0x00000ED0 + .word 0x00000ED0, 0x00000EE0 + .word 0x00000EE0, 0x00000EF0 + .word 0x00000EF0, 0x00000F00 + .word 0x00000F00, 0x00000F10 + .word 0x00000F10, 0x00000F20 + .word 0x00000F20, 0x00000F30 + .word 0x00000F30, 0x00000F40 + .word 0x00000F40, 0x00000F50 + .word 0x00000F50, 0x00000F60 + .word 0x00000F60, 0x00000F70 + .word 0x00000F70, 0x00000F80 + .word 0x00000F80, 0x00000F90 + .word 0x00000F90, 0x00000FA0 + .word 0x00000FA0, 0x00000FB0 + .word 0x00000FB0, 0x00000FC0 + .word 0x00000FC0, 0x00000FD0 + .word 0x00000FD0, 0x00000FE0 + .word 0x00000FE0, 0x00000FF0 + .word 0x00000FF0, 0x00001000 + .word 0x00001000, 0x00001010 + .word 0x00001010, 0x00001020 + .word 0x00001020, 0x00001030 + .word 0x00001030, 0x00001040 + .word 0x00001040, 0x00001050 + .word 0x00001050, 0x00001060 + .word 0x00001060, 0x00001070 + .word 0x00001070, 0x00001080 + .word 0x00001080, 0x00001090 + .word 0x00001090, 0x000010A0 + .word 0x000010A0, 0x000010B0 + .word 0x000010B0, 0x000010C0 + .word 0x000010C0, 0x000010D0 + .word 0x000010D0, 0x000010E0 + .word 0x000010E0, 0x000010F0 + .word 0x000010F0, 0x00001100 + .word 0x00001100, 0x00001110 + .word 0x00001110, 0x00001120 + .word 0x00001120, 0x00001130 + .word 0x00001130, 0x00001140 + .word 0x00001140, 0x00001150 + .word 0x00001150, 0x00001160 + .word 0x00001160, 0x00001170 + .word 0x00001170, 0x00001180 + .word 0x00001180, 0x00001190 + .word 0x00001190, 0x000011A0 + .word 0x000011A0, 0x000011B0 + .word 0x000011B0, 0x000011C0 + .word 0x000011C0, 0x000011D0 + .word 0x000011D0, 0x000011E0 + .word 0x000011E0, 0x000011F0 + .word 0x000011F0, 0x00001200 + .word 0x00001200, 0x00001210 + .word 0x00001210, 0x00001220 + .word 0x00001220, 0x00001230 + .word 0x00001230, 0x00001240 + .word 0x00001240, 0x00001250 + .word 0x00001250, 0x00001260 + .word 0x00001260, 0x00001270 + .word 0x00001270, 0x00001280 + .word 0x00001280, 0x00001290 + .word 0x00001290, 0x000012A0 + .word 0x000012A0, 0x000012B0 + .word 0x000012B0, 0x000012C0 + .word 0x000012C0, 0x000012D0 + .word 0x000012D0, 0x000012E0 + .word 0x000012E0, 0x000012F0 + .word 0x000012F0, 0x00001300 + .word 0x00001300, 0x00001310 + .word 0x00001310, 0x00001320 + .word 0x00001320, 0x00001330 + .word 0x00001330, 0x00001340 + .word 0x00001340, 0x00001350 + .word 0x00001350, 0x00001360 + .word 0x00001360, 0x00001370 + .word 0x00001370, 0x00001380 + .word 0x00001380, 0x00001390 + .word 0x00001390, 0x000013A0 + .word 0x000013A0, 0x000013B0 + .word 0x000013B0, 0x000013C0 + .word 0x000013C0, 0x000013D0 + .word 0x000013D0, 0x000013E0 + .word 0x000013E0, 0x000013F0 + .word 0x000013F0, 0x00001400 + .word 0x00001400, 0x00001410 + .word 0x00001410, 0x00001420 + .word 0x00001420, 0x00001430 + .word 0x00001430, 0x00001440 + .word 0x00001440, 0x00001450 + .word 0x00001450, 0x00001460 + .word 0x00001460, 0x00001470 + .word 0x00001470, 0x00001480 + .word 0x00001480, 0x00001490 + .word 0x00001490, 0x000014A0 + .word 0x000014A0, 0x000014B0 + .word 0x000014B0, 0x000014C0 + .word 0x000014C0, 0x000014D0 + .word 0x000014D0, 0x000014E0 + .word 0x000014E0, 0x000014F0 + .word 0x000014F0, 0x00001500 + .word 0x00001500, 0x00001510 + .word 0x00001510, 0x00001520 + .word 0x00001520, 0x00001530 + .word 0x00001530, 0x00001540 + .word 0x00001540, 0x00001550 + .word 0x00001550, 0x00001560 + .word 0x00001560, 0x00001570 + .word 0x00001570, 0x00001580 + .word 0x00001580, 0x00001590 + .word 0x00001590, 0x000015A0 + .word 0x000015A0, 0x000015B0 + .word 0x000015B0, 0x000015C0 + .word 0x000015C0, 0x000015D0 + .word 0x000015D0, 0x000015E0 + .word 0x000015E0, 0x000015F0 + .word 0x000015F0, 0x00001600 + .word 0x00001600, 0x00001610 + .word 0x00001610, 0x00001620 + .word 0x00001620, 0x00001630 + .word 0x00001630, 0x00001640 + .word 0x00001640, 0x00001650 + .word 0x00001650, 0x00001660 + .word 0x00001660, 0x00001670 + .word 0x00001670, 0x00001680 + .word 0x00001680, 0x00001690 + .word 0x00001690, 0x000016A0 + .word 0x000016A0, 0x000016B0 + .word 0x000016B0, 0x000016C0 + .word 0x000016C0, 0x000016D0 + .word 0x000016D0, 0x000016E0 + .word 0x000016E0, 0x000016F0 + .word 0x000016F0, 0x00001700 + .word 0x00001700, 0x00001710 + .word 0x00001710, 0x00001720 + .word 0x00001720, 0x00001730 + .word 0x00001730, 0x00001740 + .word 0x00001740, 0x00001750 + .word 0x00001750, 0x00001760 + .word 0x00001760, 0x00001770 + .word 0x00001770, 0x00001780 + .word 0x00001780, 0x00001790 + .word 0x00001790, 0x000017A0 + .word 0x000017A0, 0x000017B0 + .word 0x000017B0, 0x000017C0 + .word 0x000017C0, 0x000017D0 + .word 0x000017D0, 0x000017E0 + .word 0x000017E0, 0x000017F0 + .word 0x000017F0, 0x00001800 + .word 0x00001800, 0x00001810 + .word 0x00001810, 0x00001820 + .word 0x00001820, 0x00001830 + .word 0x00001830, 0x00001840 + .word 0x00001840, 0x00001850 + .word 0x00001850, 0x00001860 + .word 0x00001860, 0x00001870 + .word 0x00001870, 0x00001880 + .word 0x00001880, 0x00001890 + .word 0x00001890, 0x000018A0 + .word 0x000018A0, 0x000018B0 + .word 0x000018B0, 0x000018C0 + .word 0x000018C0, 0x000018D0 + .word 0x000018D0, 0x000018E0 + .word 0x000018E0, 0x000018F0 + .word 0x000018F0, 0x00001900 + .word 0x00001900, 0x00001910 + .word 0x00001910, 0x00001920 + .word 0x00001920, 0x00001930 + .word 0x00001930, 0x00001940 + .word 0x00001940, 0x00001950 + .word 0x00001950, 0x00001960 + .word 0x00001960, 0x00001970 + .word 0x00001970, 0x00001980 + .word 0x00001980, 0x00001990 + .word 0x00001990, 0x000019A0 + .word 0x000019A0, 0x000019B0 + .word 0x000019B0, 0x000019C0 + .word 0x000019C0, 0x000019D0 + .word 0x000019D0, 0x000019E0 + .word 0x000019E0, 0x000019F0 + .word 0x000019F0, 0x00001A00 + .word 0x00001A00, 0x00001A10 + .word 0x00001A10, 0x00001A20 + .word 0x00001A20, 0x00001A30 + .word 0x00001A30, 0x00001A40 + .word 0x00001A40, 0x00001A50 + .word 0x00001A50, 0x00001A60 + .word 0x00001A60, 0x00001A70 + .word 0x00001A70, 0x00001A80 + .word 0x00001A80, 0x00001A90 + .word 0x00001A90, 0x00001AA0 + .word 0x00001AA0, 0x00001AB0 + .word 0x00001AB0, 0x00001AC0 + .word 0x00001AC0, 0x00001AD0 + .word 0x00001AD0, 0x00001AE0 + .word 0x00001AE0, 0x00001AF0 + .word 0x00001AF0, 0x00001B00 + .word 0x00001B00, 0x00001B10 + .word 0x00001B10, 0x00001B20 + .word 0x00001B20, 0x00001B30 + .word 0x00001B30, 0x00001B40 + .word 0x00001B40, 0x00001B50 + .word 0x00001B50, 0x00001B60 + .word 0x00001B60, 0x00001B70 + .word 0x00001B70, 0x00001B80 + .word 0x00001B80, 0x00001B90 + .word 0x00001B90, 0x00001BA0 + .word 0x00001BA0, 0x00001BB0 + .word 0x00001BB0, 0x00001BC0 + .word 0x00001BC0, 0x00001BD0 + .word 0x00001BD0, 0x00001BE0 + .word 0x00001BE0, 0x00001BF0 + .word 0x00001BF0, 0x00001C00 + .word 0x00001C00, 0x00001C10 + .word 0x00001C10, 0x00001C20 + .word 0x00001C20, 0x00001C30 + .word 0x00001C30, 0x00001C40 + .word 0x00001C40, 0x00001C50 + .word 0x00001C50, 0x00001C60 + .word 0x00001C60, 0x00001C70 + .word 0x00001C70, 0x00001C80 + .word 0x00001C80, 0x00001C90 + .word 0x00001C90, 0x00001CA0 + .word 0x00001CA0, 0x00001CB0 + .word 0x00001CB0, 0x00001CC0 + .word 0x00001CC0, 0x00001CD0 + .word 0x00001CD0, 0x00001CE0 + .word 0x00001CE0, 0x00001CF0 + .word 0x00001CF0, 0x00001D00 + .word 0x00001D00, 0x00001D10 + .word 0x00001D10, 0x00001D20 + .word 0x00001D20, 0x00001D30 + .word 0x00001D30, 0x00001D40 + .word 0x00001D40, 0x00001D50 + .word 0x00001D50, 0x00001D60 + .word 0x00001D60, 0x00001D70 + .word 0x00001D70, 0x00001D80 + .word 0x00001D80, 0x00001D90 + .word 0x00001D90, 0x00001DA0 + .word 0x00001DA0, 0x00001DB0 + .word 0x00001DB0, 0x00001DC0 + .word 0x00001DC0, 0x00001DD0 + .word 0x00001DD0, 0x00001DE0 + .word 0x00001DE0, 0x00001DF0 + .word 0x00001DF0, 0x00001E00 + .word 0x00001E00, 0x00001E10 + .word 0x00001E10, 0x00001E20 + .word 0x00001E20, 0x00001E30 + .word 0x00001E30, 0x00001E40 + .word 0x00001E40, 0x00001E50 + .word 0x00001E50, 0x00001E60 + .word 0x00001E60, 0x00001E70 + .word 0x00001E70, 0x00001E80 + .word 0x00001E80, 0x00001E90 + .word 0x00001E90, 0x00001EA0 + .word 0x00001EA0, 0x00001EB0 + .word 0x00001EB0, 0x00001EC0 + .word 0x00001EC0, 0x00001ED0 + .word 0x00001ED0, 0x00001EE0 + .word 0x00001EE0, 0x00001EF0 + .word 0x00001EF0, 0x00001F00 + .word 0x00001F00, 0x00001F10 + .word 0x00001F10, 0x00001F20 + .word 0x00001F20, 0x00001F30 + .word 0x00001F30, 0x00001F40 + .word 0x00001F40, 0x00001F50 + .word 0x00001F50, 0x00001F60 + .word 0x00001F60, 0x00001F70 + .word 0x00001F70, 0x00001F80 + .word 0x00001F80, 0x00001F90 + .word 0x00001F90, 0x00001FA0 + .word 0x00001FA0, 0x00001FB0 + .word 0x00001FB0, 0x00001FC0 + .word 0x00001FC0, 0x00001FD0 + .word 0x00001FD0, 0x00001FE0 + .word 0x00001FE0, 0x00001FF0 + .word 0x00001FF0, 0x00002000 + .word 0x00002000, 0x00002010 + .word 0x00002010, 0x00002020 + .word 0x00002020, 0x00002030 + .word 0x00002030, 0x00002040 + .word 0x00002040, 0x00002050 + .word 0x00002050, 0x00002060 + .word 0x00002060, 0x00002070 + .word 0x00002070, 0x00002080 + .word 0x00002080, 0x00002090 + .word 0x00002090, 0x000020A0 + .word 0x000020A0, 0x000020B0 + .word 0x000020B0, 0x000020C0 + .word 0x000020C0, 0x000020D0 + .word 0x000020D0, 0x000020E0 + .word 0x000020E0, 0x000020F0 + .word 0x000020F0, 0x00002100 + .word 0x00002100, 0x00002110 + .word 0x00002110, 0x00002120 + .word 0x00002120, 0x00002130 + .word 0x00002130, 0x00002140 + .word 0x00002140, 0x00002150 + .word 0x00002150, 0x00002160 + .word 0x00002160, 0x00002170 + .word 0x00002170, 0x00002180 + .word 0x00002180, 0x00002190 + .word 0x00002190, 0x000021A0 + .word 0x000021A0, 0x000021B0 + .word 0x000021B0, 0x000021C0 + .word 0x000021C0, 0x000021D0 + .word 0x000021D0, 0x000021E0 + .word 0x000021E0, 0x000021F0 + .word 0x000021F0, 0x00002200 + .word 0x00002200, 0x00002210 + .word 0x00002210, 0x00002220 + .word 0x00002220, 0x00002230 + .word 0x00002230, 0x00002240 + .word 0x00002240, 0x00002250 + .word 0x00002250, 0x00002260 + .word 0x00002260, 0x00002270 + .word 0x00002270, 0x00002280 + .word 0x00002280, 0x00002290 + .word 0x00002290, 0x000022A0 + .word 0x000022A0, 0x000022B0 + .word 0x000022B0, 0x000022C0 + .word 0x000022C0, 0x000022D0 + .word 0x000022D0, 0x000022E0 + .word 0x000022E0, 0x000022F0 + .word 0x000022F0, 0x00002300 + .word 0x00002300, 0x00002310 + .word 0x00002310, 0x00002320 + .word 0x00002320, 0x00002330 + .word 0x00002330, 0x00002340 + .word 0x00002340, 0x00002350 + .word 0x00002350, 0x00002360 + .word 0x00002360, 0x00002370 + .word 0x00002370, 0x00002380 + .word 0x00002380, 0x00002390 + .word 0x00002390, 0x000023A0 + .word 0x000023A0, 0x000023B0 + .word 0x000023B0, 0x000023C0 + .word 0x000023C0, 0x000023D0 + .word 0x000023D0, 0x000023E0 + .word 0x000023E0, 0x000023F0 + .word 0x000023F0, 0x00002400 + .word 0x00002400, 0x00002410 + .word 0x00002410, 0x00002420 + .word 0x00002420, 0x00002430 + .word 0x00002430, 0x00002440 + .word 0x00002440, 0x00002450 + .word 0x00002450, 0x00002460 + .word 0x00002460, 0x00002470 + .word 0x00002470, 0x00002480 + .word 0x00002480, 0x00002490 + .word 0x00002490, 0x000024A0 + .word 0x000024A0, 0x000024B0 + .word 0x000024B0, 0x000024C0 + .word 0x000024C0, 0x000024D0 + .word 0x000024D0, 0x000024E0 + .word 0x000024E0, 0x000024F0 + .word 0x000024F0, 0x00002500 + .word 0x00002500, 0x00002510 + .word 0x00002510, 0x00002520 + .word 0x00002520, 0x00002530 + .word 0x00002530, 0x00002540 + .word 0x00002540, 0x00002550 + .word 0x00002550, 0x00002560 + .word 0x00002560, 0x00002570 + .word 0x00002570, 0x00002580 + .word 0x00002580, 0x00002590 + .word 0x00002590, 0x000025A0 + .word 0x000025A0, 0x000025B0 + .word 0x000025B0, 0x000025C0 + .word 0x000025C0, 0x000025D0 + .word 0x000025D0, 0x000025E0 + .word 0x000025E0, 0x000025F0 + .word 0x000025F0, 0x00002600 + .word 0x00002600, 0x00002610 + .word 0x00002610, 0x00002620 + .word 0x00002620, 0x00002630 + .word 0x00002630, 0x00002640 + .word 0x00002640, 0x00002650 + .word 0x00002650, 0x00002660 + .word 0x00002660, 0x00002670 + .word 0x00002670, 0x00002680 + .word 0x00002680, 0x00002690 + .word 0x00002690, 0x000026A0 + .word 0x000026A0, 0x000026B0 + .word 0x000026B0, 0x000026C0 + .word 0x000026C0, 0x000026D0 + .word 0x000026D0, 0x000026E0 + .word 0x000026E0, 0x000026F0 + .word 0x000026F0, 0x00002700 + .word 0x00002700, 0x00002710 + .word 0x00002710, 0x00002720 + .word 0x00002720, 0x00002730 + .word 0x00002730, 0x00002740 + .word 0x00002740, 0x00002750 + .word 0x00002750, 0x00002760 + .word 0x00002760, 0x00002770 + .word 0x00002770, 0x00002780 + .word 0x00002780, 0x00002790 + .word 0x00002790, 0x000027A0 + .word 0x000027A0, 0x000027B0 + .word 0x000027B0, 0x000027C0 + .word 0x000027C0, 0x000027D0 + .word 0x000027D0, 0x000027E0 + .word 0x000027E0, 0x000027F0 + .word 0x000027F0, 0x00002800 + .word 0x00002800, 0x00002810 + .word 0x00002810, 0x00002820 + .word 0x00002820, 0x00002830 + .word 0x00002830, 0x00002840 + .word 0x00002840, 0x00002850 + .word 0x00002850, 0x00002860 + .word 0x00002860, 0x00002870 + .word 0x00002870, 0x00002880 + .word 0x00002880, 0x00002890 + .word 0x00002890, 0x000028A0 + .word 0x000028A0, 0x000028B0 + .word 0x000028B0, 0x000028C0 + .word 0x000028C0, 0x000028D0 + .word 0x000028D0, 0x000028E0 + .word 0x000028E0, 0x000028F0 + .word 0x000028F0, 0x00002900 + .word 0x00002900, 0x00002910 + .word 0x00002910, 0x00002920 + .word 0x00002920, 0x00002930 + .word 0x00002930, 0x00002940 + .word 0x00002940, 0x00002950 + .word 0x00002950, 0x00002960 + .word 0x00002960, 0x00002970 + .word 0x00002970, 0x00002980 + .word 0x00002980, 0x00002990 + .word 0x00002990, 0x000029A0 + .word 0x000029A0, 0x000029B0 + .word 0x000029B0, 0x000029C0 + .word 0x000029C0, 0x000029D0 + .word 0x000029D0, 0x000029E0 + .word 0x000029E0, 0x000029F0 + .word 0x000029F0, 0x00002A00 + .word 0x00002A00, 0x00002A10 + .word 0x00002A10, 0x00002A20 + .word 0x00002A20, 0x00002A30 + .word 0x00002A30, 0x00002A40 + .word 0x00002A40, 0x00002A50 + .word 0x00002A50, 0x00002A60 + .word 0x00002A60, 0x00002A70 + .word 0x00002A70, 0x00002A80 + .word 0x00002A80, 0x00002A90 + .word 0x00002A90, 0x00002AA0 + .word 0x00002AA0, 0x00002AB0 + .word 0x00002AB0, 0x00002AC0 + .word 0x00002AC0, 0x00002AD0 + .word 0x00002AD0, 0x00002AE0 + .word 0x00002AE0, 0x00002AF0 + .word 0x00002AF0, 0x00002B00 + .word 0x00002B00, 0x00002B10 + .word 0x00002B10, 0x00002B20 + .word 0x00002B20, 0x00002B30 + .word 0x00002B30, 0x00002B40 + .word 0x00002B40, 0x00002B50 + .word 0x00002B50, 0x00002B60 + .word 0x00002B60, 0x00002B70 + .word 0x00002B70, 0x00002B80 + .word 0x00002B80, 0x00002B90 + .word 0x00002B90, 0x00002BA0 + .word 0x00002BA0, 0x00002BB0 + .word 0x00002BB0, 0x00002BC0 + .word 0x00002BC0, 0x00002BD0 + .word 0x00002BD0, 0x00002BE0 + .word 0x00002BE0, 0x00002BF0 + .word 0x00002BF0, 0x00002C00 + .word 0x00002C00, 0x00002C10 + .word 0x00002C10, 0x00002C20 + .word 0x00002C20, 0x00002C30 + .word 0x00002C30, 0x00002C40 + .word 0x00002C40, 0x00002C50 + .word 0x00002C50, 0x00002C60 + .word 0x00002C60, 0x00002C70 + .word 0x00002C70, 0x00002C80 + .word 0x00002C80, 0x00002C90 + .word 0x00002C90, 0x00002CA0 + .word 0x00002CA0, 0x00002CB0 + .word 0x00002CB0, 0x00002CC0 + .word 0x00002CC0, 0x00002CD0 + .word 0x00002CD0, 0x00002CE0 + .word 0x00002CE0, 0x00002CF0 + .word 0x00002CF0, 0x00002D00 + .word 0x00002D00, 0x00002D10 + .word 0x00002D10, 0x00002D20 + .word 0x00002D20, 0x00002D30 + .word 0x00002D30, 0x00002D40 + .word 0x00002D40, 0x00002D50 + .word 0x00002D50, 0x00002D60 + .word 0x00002D60, 0x00002D70 + .word 0x00002D70, 0x00002D80 + .word 0x00002D80, 0x00002D90 + .word 0x00002D90, 0x00002DA0 + .word 0x00002DA0, 0x00002DB0 + .word 0x00002DB0, 0x00002DC0 + .word 0x00002DC0, 0x00002DD0 + .word 0x00002DD0, 0x00002DE0 + .word 0x00002DE0, 0x00002DF0 + .word 0x00002DF0, 0x00002E00 + .word 0x00002E00, 0x00002E10 + .word 0x00002E10, 0x00002E20 + .word 0x00002E20, 0x00002E30 + .word 0x00002E30, 0x00002E40 + .word 0x00002E40, 0x00002E50 + .word 0x00002E50, 0x00002E60 + .word 0x00002E60, 0x00002E70 + .word 0x00002E70, 0x00002E80 + .word 0x00002E80, 0x00002E90 + .word 0x00002E90, 0x00002EA0 + .word 0x00002EA0, 0x00002EB0 + .word 0x00002EB0, 0x00002EC0 + .word 0x00002EC0, 0x00002ED0 + .word 0x00002ED0, 0x00002EE0 + .word 0x00002EE0, 0x00002EF0 + .word 0x00002EF0, 0x00002F00 + .word 0x00002F00, 0x00002F10 + .word 0x00002F10, 0x00002F20 + .word 0x00002F20, 0x00002F30 + .word 0x00002F30, 0x00002F40 + .word 0x00002F40, 0x00002F50 + .word 0x00002F50, 0x00002F60 + .word 0x00002F60, 0x00002F70 + .word 0x00002F70, 0x00002F80 + .word 0x00002F80, 0x00002F90 + .word 0x00002F90, 0x00002FA0 + .word 0x00002FA0, 0x00002FB0 + .word 0x00002FB0, 0x00002FC0 + .word 0x00002FC0, 0x00002FD0 + .word 0x00002FD0, 0x00002FE0 + .word 0x00002FE0, 0x00002FF0 + .word 0x00002FF0, 0x00003000 + .word 0x00003000, 0x00003010 + .word 0x00003010, 0x00003020 + .word 0x00003020, 0x00003030 + .word 0x00003030, 0x00003040 + .word 0x00003040, 0x00003050 + .word 0x00003050, 0x00003060 + .word 0x00003060, 0x00003070 + .word 0x00003070, 0x00003080 + .word 0x00003080, 0x00003090 + .word 0x00003090, 0x000030A0 + .word 0x000030A0, 0x000030B0 + .word 0x000030B0, 0x000030C0 + .word 0x000030C0, 0x000030D0 + .word 0x000030D0, 0x000030E0 + .word 0x000030E0, 0x000030F0 + .word 0x000030F0, 0x00003100 + .word 0x00003100, 0x00003110 + .word 0x00003110, 0x00003120 + .word 0x00003120, 0x00003130 + .word 0x00003130, 0x00003140 + .word 0x00003140, 0x00003150 + .word 0x00003150, 0x00003160 + .word 0x00003160, 0x00003170 + .word 0x00003170, 0x00003180 + .word 0x00003180, 0x00003190 + .word 0x00003190, 0x000031A0 + .word 0x000031A0, 0x000031B0 + .word 0x000031B0, 0x000031C0 + .word 0x000031C0, 0x000031D0 + .word 0x000031D0, 0x000031E0 + .word 0x000031E0, 0x000031F0 + .word 0x000031F0, 0x00003200 + .word 0x00003200, 0x00003210 + .word 0x00003210, 0x00003220 + .word 0x00003220, 0x00003230 + .word 0x00003230, 0x00003240 + .word 0x00003240, 0x00003250 + .word 0x00003250, 0x00003260 + .word 0x00003260, 0x00003270 + .word 0x00003270, 0x00003280 + .word 0x00003280, 0x00003290 + .word 0x00003290, 0x000032A0 + .word 0x000032A0, 0x000032B0 + .word 0x000032B0, 0x000032C0 + .word 0x000032C0, 0x000032D0 + .word 0x000032D0, 0x000032E0 + .word 0x000032E0, 0x000032F0 + .word 0x000032F0, 0x00003300 + .word 0x00003300, 0x00003310 + .word 0x00003310, 0x00003320 + .word 0x00003320, 0x00003330 + .word 0x00003330, 0x00003340 + .word 0x00003340, 0x00003350 + .word 0x00003350, 0x00003360 + .word 0x00003360, 0x00003370 + .word 0x00003370, 0x00003380 + .word 0x00003380, 0x00003390 + .word 0x00003390, 0x000033A0 + .word 0x000033A0, 0x000033B0 + .word 0x000033B0, 0x000033C0 + .word 0x000033C0, 0x000033D0 + .word 0x000033D0, 0x000033E0 + .word 0x000033E0, 0x000033F0 + .word 0x000033F0, 0x00003400 + .word 0x00003400, 0x00003410 + .word 0x00003410, 0x00003420 + .word 0x00003420, 0x00003430 + .word 0x00003430, 0x00003440 + .word 0x00003440, 0x00003450 + .word 0x00003450, 0x00003460 + .word 0x00003460, 0x00003470 + .word 0x00003470, 0x00003480 + .word 0x00003480, 0x00003490 + .word 0x00003490, 0x000034A0 + .word 0x000034A0, 0x000034B0 + .word 0x000034B0, 0x000034C0 + .word 0x000034C0, 0x000034D0 + .word 0x000034D0, 0x000034E0 + .word 0x000034E0, 0x000034F0 + .word 0x000034F0, 0x00003500 + .word 0x00003500, 0x00003510 + .word 0x00003510, 0x00003520 + .word 0x00003520, 0x00003530 + .word 0x00003530, 0x00003540 + .word 0x00003540, 0x00003550 + .word 0x00003550, 0x00003560 + .word 0x00003560, 0x00003570 + .word 0x00003570, 0x00003580 + .word 0x00003580, 0x00003590 + .word 0x00003590, 0x000035A0 + .word 0x000035A0, 0x000035B0 + .word 0x000035B0, 0x000035C0 + .word 0x000035C0, 0x000035D0 + .word 0x000035D0, 0x000035E0 + .word 0x000035E0, 0x000035F0 + .word 0x000035F0, 0x00003600 + .word 0x00003600, 0x00003610 + .word 0x00003610, 0x00003620 + .word 0x00003620, 0x00003630 + .word 0x00003630, 0x00003640 + .word 0x00003640, 0x00003650 + .word 0x00003650, 0x00003660 + .word 0x00003660, 0x00003670 + .word 0x00003670, 0x00003680 + .word 0x00003680, 0x00003690 + .word 0x00003690, 0x000036A0 + .word 0x000036A0, 0x000036B0 + .word 0x000036B0, 0x000036C0 + .word 0x000036C0, 0x000036D0 + .word 0x000036D0, 0x000036E0 + .word 0x000036E0, 0x000036F0 + .word 0x000036F0, 0x00003700 + .word 0x00003700, 0x00003710 + .word 0x00003710, 0x00003720 + .word 0x00003720, 0x00003730 + .word 0x00003730, 0x00003740 + .word 0x00003740, 0x00003750 + .word 0x00003750, 0x00003760 + .word 0x00003760, 0x00003770 + .word 0x00003770, 0x00003780 + .word 0x00003780, 0x00003790 + .word 0x00003790, 0x000037A0 + .word 0x000037A0, 0x000037B0 + .word 0x000037B0, 0x000037C0 + .word 0x000037C0, 0x000037D0 + .word 0x000037D0, 0x000037E0 + .word 0x000037E0, 0x000037F0 + .word 0x000037F0, 0x00003800 + .word 0x00003800, 0x00003810 + .word 0x00003810, 0x00003820 + .word 0x00003820, 0x00003830 + .word 0x00003830, 0x00003840 + .word 0x00003840, 0x00003850 + .word 0x00003850, 0x00003860 + .word 0x00003860, 0x00003870 + .word 0x00003870, 0x00003880 + .word 0x00003880, 0x00003890 + .word 0x00003890, 0x000038A0 + .word 0x000038A0, 0x000038B0 + .word 0x000038B0, 0x000038C0 + .word 0x000038C0, 0x000038D0 + .word 0x000038D0, 0x000038E0 + .word 0x000038E0, 0x000038F0 + .word 0x000038F0, 0x00003900 + .word 0x00003900, 0x00003910 + .word 0x00003910, 0x00003920 + .word 0x00003920, 0x00003930 + .word 0x00003930, 0x00003940 + .word 0x00003940, 0x00003950 + .word 0x00003950, 0x00003960 + .word 0x00003960, 0x00003970 + .word 0x00003970, 0x00003980 + .word 0x00003980, 0x00003990 + .word 0x00003990, 0x000039A0 + .word 0x000039A0, 0x000039B0 + .word 0x000039B0, 0x000039C0 + .word 0x000039C0, 0x000039D0 + .word 0x000039D0, 0x000039E0 + .word 0x000039E0, 0x000039F0 + .word 0x000039F0, 0x00003A00 + .word 0x00003A00, 0x00003A10 + .word 0x00003A10, 0x00003A20 + .word 0x00003A20, 0x00003A30 + .word 0x00003A30, 0x00003A40 + .word 0x00003A40, 0x00003A50 + .word 0x00003A50, 0x00003A60 + .word 0x00003A60, 0x00003A70 + .word 0x00003A70, 0x00003A80 + .word 0x00003A80, 0x00003A90 + .word 0x00003A90, 0x00003AA0 + .word 0x00003AA0, 0x00003AB0 + .word 0x00003AB0, 0x00003AC0 + .word 0x00003AC0, 0x00003AD0 + .word 0x00003AD0, 0x00003AE0 + .word 0x00003AE0, 0x00003AF0 + .word 0x00003AF0, 0x00003B00 + .word 0x00003B00, 0x00003B10 + .word 0x00003B10, 0x00003B20 + .word 0x00003B20, 0x00003B30 + .word 0x00003B30, 0x00003B40 + .word 0x00003B40, 0x00003B50 + .word 0x00003B50, 0x00003B60 + .word 0x00003B60, 0x00003B70 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00003B78 ; chunk size + .incbin "baserom.nds", 0x0, 0x10 + .incbin "baserom.nds", 0x10, 0x10 + .incbin "baserom.nds", 0x20, 0x10 + .incbin "baserom.nds", 0x30, 0x10 + .incbin "baserom.nds", 0x40, 0x10 + .incbin "baserom.nds", 0x50, 0x10 + .incbin "baserom.nds", 0x60, 0x10 + .incbin "baserom.nds", 0x70, 0x10 + .incbin "baserom.nds", 0x80, 0x10 + .incbin "baserom.nds", 0x90, 0x10 + .incbin "baserom.nds", 0xA0, 0x10 + .incbin "baserom.nds", 0xB0, 0x10 + .incbin "baserom.nds", 0xC0, 0x10 + .incbin "baserom.nds", 0xD0, 0x10 + .incbin "baserom.nds", 0xE0, 0x10 + .incbin "baserom.nds", 0xF0, 0x10 + .incbin "baserom.nds", 0x100, 0x10 + .incbin "baserom.nds", 0x110, 0x10 + .incbin "baserom.nds", 0x120, 0x10 + .incbin "baserom.nds", 0x130, 0x10 + .incbin "baserom.nds", 0x140, 0x10 + .incbin "baserom.nds", 0x150, 0x10 + .incbin "baserom.nds", 0x160, 0x10 + .incbin "baserom.nds", 0x170, 0x10 + .incbin "baserom.nds", 0x180, 0x10 + .incbin "baserom.nds", 0x190, 0x10 + .incbin "baserom.nds", 0x1A0, 0x10 + .incbin "baserom.nds", 0x1B0, 0x10 + .incbin "baserom.nds", 0x1C0, 0x10 + .incbin "baserom.nds", 0x1D0, 0x10 + .incbin "baserom.nds", 0x1E0, 0x10 + .incbin "baserom.nds", 0x1F0, 0x10 + .incbin "baserom.nds", 0x200, 0x10 + .incbin "baserom.nds", 0x210, 0x10 + .incbin "baserom.nds", 0x220, 0x10 + .incbin "baserom.nds", 0x230, 0x10 + .incbin "baserom.nds", 0x240, 0x10 + .incbin "baserom.nds", 0x250, 0x10 + .incbin "baserom.nds", 0x260, 0x10 + .incbin "baserom.nds", 0x270, 0x10 + .incbin "baserom.nds", 0x280, 0x10 + .incbin "baserom.nds", 0x290, 0x10 + .incbin "baserom.nds", 0x2A0, 0x10 + .incbin "baserom.nds", 0x2B0, 0x10 + .incbin "baserom.nds", 0x2C0, 0x10 + .incbin "baserom.nds", 0x2D0, 0x10 + .incbin "baserom.nds", 0x2E0, 0x10 + .incbin "baserom.nds", 0x2F0, 0x10 + .incbin "baserom.nds", 0x300, 0x10 + .incbin "baserom.nds", 0x310, 0x10 + .incbin "baserom.nds", 0x320, 0x10 + .incbin "baserom.nds", 0x330, 0x10 + .incbin "baserom.nds", 0x340, 0x10 + .incbin "baserom.nds", 0x350, 0x10 + .incbin "baserom.nds", 0x360, 0x10 + .incbin "baserom.nds", 0x370, 0x10 + .incbin "baserom.nds", 0x380, 0x10 + .incbin "baserom.nds", 0x390, 0x10 + .incbin "baserom.nds", 0x3A0, 0x10 + .incbin "baserom.nds", 0x3B0, 0x10 + .incbin "baserom.nds", 0x3C0, 0x10 + .incbin "baserom.nds", 0x3D0, 0x10 + .incbin "baserom.nds", 0x3E0, 0x10 + .incbin "baserom.nds", 0x3F0, 0x10 + .incbin "baserom.nds", 0x400, 0x10 + .incbin "baserom.nds", 0x410, 0x10 + .incbin "baserom.nds", 0x420, 0x10 + .incbin "baserom.nds", 0x430, 0x10 + .incbin "baserom.nds", 0x440, 0x10 + .incbin "baserom.nds", 0x450, 0x10 + .incbin "baserom.nds", 0x460, 0x10 + .incbin "baserom.nds", 0x470, 0x10 + .incbin "baserom.nds", 0x480, 0x10 + .incbin "baserom.nds", 0x490, 0x10 + .incbin "baserom.nds", 0x4A0, 0x10 + .incbin "baserom.nds", 0x4B0, 0x10 + .incbin "baserom.nds", 0x4C0, 0x10 + .incbin "baserom.nds", 0x4D0, 0x10 + .incbin "baserom.nds", 0x4E0, 0x10 + .incbin "baserom.nds", 0x4F0, 0x10 + .incbin "baserom.nds", 0x500, 0x10 + .incbin "baserom.nds", 0x510, 0x10 + .incbin "baserom.nds", 0x520, 0x10 + .incbin "baserom.nds", 0x530, 0x10 + .incbin "baserom.nds", 0x540, 0x10 + .incbin "baserom.nds", 0x550, 0x10 + .incbin "baserom.nds", 0x560, 0x10 + .incbin "baserom.nds", 0x570, 0x10 + .incbin "baserom.nds", 0x580, 0x10 + .incbin "baserom.nds", 0x590, 0x10 + .incbin "baserom.nds", 0x5A0, 0x10 + .incbin "baserom.nds", 0x5B0, 0x10 + .incbin "baserom.nds", 0x5C0, 0x10 + .incbin "baserom.nds", 0x5D0, 0x10 + .incbin "baserom.nds", 0x5E0, 0x10 + .incbin "baserom.nds", 0x5F0, 0x10 + .incbin "baserom.nds", 0x600, 0x10 + .incbin "baserom.nds", 0x610, 0x10 + .incbin "baserom.nds", 0x620, 0x10 + .incbin "baserom.nds", 0x630, 0x10 + .incbin "baserom.nds", 0x640, 0x10 + .incbin "baserom.nds", 0x650, 0x10 + .incbin "baserom.nds", 0x660, 0x10 + .incbin "baserom.nds", 0x670, 0x10 + .incbin "baserom.nds", 0x680, 0x10 + .incbin "baserom.nds", 0x690, 0x10 + .incbin "baserom.nds", 0x6A0, 0x10 + .incbin "baserom.nds", 0x6B0, 0x10 + .incbin "baserom.nds", 0x6C0, 0x10 + .incbin "baserom.nds", 0x6D0, 0x10 + .incbin "baserom.nds", 0x6E0, 0x10 + .incbin "baserom.nds", 0x6F0, 0x10 + .incbin "baserom.nds", 0x700, 0x10 + .incbin "baserom.nds", 0x710, 0x10 + .incbin "baserom.nds", 0x720, 0x10 + .incbin "baserom.nds", 0x730, 0x10 + .incbin "baserom.nds", 0x740, 0x10 + .incbin "baserom.nds", 0x750, 0x10 + .incbin "baserom.nds", 0x760, 0x10 + .incbin "baserom.nds", 0x770, 0x10 + .incbin "baserom.nds", 0x780, 0x10 + .incbin "baserom.nds", 0x790, 0x10 + .incbin "baserom.nds", 0x7A0, 0x10 + .incbin "baserom.nds", 0x7B0, 0x10 + .incbin "baserom.nds", 0x7C0, 0x10 + .incbin "baserom.nds", 0x7D0, 0x10 + .incbin "baserom.nds", 0x7E0, 0x10 + .incbin "baserom.nds", 0x7F0, 0x10 + .incbin "baserom.nds", 0x800, 0x10 + .incbin "baserom.nds", 0x810, 0x10 + .incbin "baserom.nds", 0x820, 0x10 + .incbin "baserom.nds", 0x830, 0x10 + .incbin "baserom.nds", 0x840, 0x10 + .incbin "baserom.nds", 0x850, 0x10 + .incbin "baserom.nds", 0x860, 0x10 + .incbin "baserom.nds", 0x870, 0x10 + .incbin "baserom.nds", 0x880, 0x10 + .incbin "baserom.nds", 0x890, 0x10 + .incbin "baserom.nds", 0x8A0, 0x10 + .incbin "baserom.nds", 0x8B0, 0x10 + .incbin "baserom.nds", 0x8C0, 0x10 + .incbin "baserom.nds", 0x8D0, 0x10 + .incbin "baserom.nds", 0x8E0, 0x10 + .incbin "baserom.nds", 0x8F0, 0x10 + .incbin "baserom.nds", 0x900, 0x10 + .incbin "baserom.nds", 0x910, 0x10 + .incbin "baserom.nds", 0x920, 0x10 + .incbin "baserom.nds", 0x930, 0x10 + .incbin "baserom.nds", 0x940, 0x10 + .incbin "baserom.nds", 0x950, 0x10 + .incbin "baserom.nds", 0x960, 0x10 + .incbin "baserom.nds", 0x970, 0x10 + .incbin "baserom.nds", 0x980, 0x10 + .incbin "baserom.nds", 0x990, 0x10 + .incbin "baserom.nds", 0x9A0, 0x10 + .incbin "baserom.nds", 0x9B0, 0x10 + .incbin "baserom.nds", 0x9C0, 0x10 + .incbin "baserom.nds", 0x9D0, 0x10 + .incbin "baserom.nds", 0x9E0, 0x10 + .incbin "baserom.nds", 0x9F0, 0x10 + .incbin "baserom.nds", 0xA00, 0x10 + .incbin "baserom.nds", 0xA10, 0x10 + .incbin "baserom.nds", 0xA20, 0x10 + .incbin "baserom.nds", 0xA30, 0x10 + .incbin "baserom.nds", 0xA40, 0x10 + .incbin "baserom.nds", 0xA50, 0x10 + .incbin "baserom.nds", 0xA60, 0x10 + .incbin "baserom.nds", 0xA70, 0x10 + .incbin "baserom.nds", 0xA80, 0x10 + .incbin "baserom.nds", 0xA90, 0x10 + .incbin "baserom.nds", 0xAA0, 0x10 + .incbin "baserom.nds", 0xAB0, 0x10 + .incbin "baserom.nds", 0xAC0, 0x10 + .incbin "baserom.nds", 0xAD0, 0x10 + .incbin "baserom.nds", 0xAE0, 0x10 + .incbin "baserom.nds", 0xAF0, 0x10 + .incbin "baserom.nds", 0xB00, 0x10 + .incbin "baserom.nds", 0xB10, 0x10 + .incbin "baserom.nds", 0xB20, 0x10 + .incbin "baserom.nds", 0xB30, 0x10 + .incbin "baserom.nds", 0xB40, 0x10 + .incbin "baserom.nds", 0xB50, 0x10 + .incbin "baserom.nds", 0xB60, 0x10 + .incbin "baserom.nds", 0xB70, 0x10 + .incbin "baserom.nds", 0xB80, 0x10 + .incbin "baserom.nds", 0xB90, 0x10 + .incbin "baserom.nds", 0xBA0, 0x10 + .incbin "baserom.nds", 0xBB0, 0x10 + .incbin "baserom.nds", 0xBC0, 0x10 + .incbin "baserom.nds", 0xBD0, 0x10 + .incbin "baserom.nds", 0xBE0, 0x10 + .incbin "baserom.nds", 0xBF0, 0x10 + .incbin "baserom.nds", 0xC00, 0x10 + .incbin "baserom.nds", 0xC10, 0x10 + .incbin "baserom.nds", 0xC20, 0x10 + .incbin "baserom.nds", 0xC30, 0x10 + .incbin "baserom.nds", 0xC40, 0x10 + .incbin "baserom.nds", 0xC50, 0x10 + .incbin "baserom.nds", 0xC60, 0x10 + .incbin "baserom.nds", 0xC70, 0x10 + .incbin "baserom.nds", 0xC80, 0x10 + .incbin "baserom.nds", 0xC90, 0x10 + .incbin "baserom.nds", 0xCA0, 0x10 + .incbin "baserom.nds", 0xCB0, 0x10 + .incbin "baserom.nds", 0xCC0, 0x10 + .incbin "baserom.nds", 0xCD0, 0x10 + .incbin "baserom.nds", 0xCE0, 0x10 + .incbin "baserom.nds", 0xCF0, 0x10 + .incbin "baserom.nds", 0xD00, 0x10 + .incbin "baserom.nds", 0xD10, 0x10 + .incbin "baserom.nds", 0xD20, 0x10 + .incbin "baserom.nds", 0xD30, 0x10 + .incbin "baserom.nds", 0xD40, 0x10 + .incbin "baserom.nds", 0xD50, 0x10 + .incbin "baserom.nds", 0xD60, 0x10 + .incbin "baserom.nds", 0xD70, 0x10 + .incbin "baserom.nds", 0xD80, 0x10 + .incbin "baserom.nds", 0xD90, 0x10 + .incbin "baserom.nds", 0xDA0, 0x10 + .incbin "baserom.nds", 0xDB0, 0x10 + .incbin "baserom.nds", 0xDC0, 0x10 + .incbin "baserom.nds", 0xDD0, 0x10 + .incbin "baserom.nds", 0xDE0, 0x10 + .incbin "baserom.nds", 0xDF0, 0x10 + .incbin "baserom.nds", 0xE00, 0x10 + .incbin "baserom.nds", 0xE10, 0x10 + .incbin "baserom.nds", 0xE20, 0x10 + .incbin "baserom.nds", 0xE30, 0x10 + .incbin "baserom.nds", 0xE40, 0x10 + .incbin "baserom.nds", 0xE50, 0x10 + .incbin "baserom.nds", 0xE60, 0x10 + .incbin "baserom.nds", 0xE70, 0x10 + .incbin "baserom.nds", 0xE80, 0x10 + .incbin "baserom.nds", 0xE90, 0x10 + .incbin "baserom.nds", 0xEA0, 0x10 + .incbin "baserom.nds", 0xEB0, 0x10 + .incbin "baserom.nds", 0xEC0, 0x10 + .incbin "baserom.nds", 0xED0, 0x10 + .incbin "baserom.nds", 0xEE0, 0x10 + .incbin "baserom.nds", 0xEF0, 0x10 + .incbin "baserom.nds", 0xF00, 0x10 + .incbin "baserom.nds", 0xF10, 0x10 + .incbin "baserom.nds", 0xF20, 0x10 + .incbin "baserom.nds", 0xF30, 0x10 + .incbin "baserom.nds", 0xF40, 0x10 + .incbin "baserom.nds", 0xF50, 0x10 + .incbin "baserom.nds", 0xF60, 0x10 + .incbin "baserom.nds", 0xF70, 0x10 + .incbin "baserom.nds", 0xF80, 0x10 + .incbin "baserom.nds", 0xF90, 0x10 + .incbin "baserom.nds", 0xFA0, 0x10 + .incbin "baserom.nds", 0xFB0, 0x10 + .incbin "baserom.nds", 0xFC0, 0x10 + .incbin "baserom.nds", 0xFD0, 0x10 + .incbin "baserom.nds", 0xFE0, 0x10 + .incbin "baserom.nds", 0xFF0, 0x10 + .incbin "baserom.nds", 0x1000, 0x10 + .incbin "baserom.nds", 0x1010, 0x10 + .incbin "baserom.nds", 0x1020, 0x10 + .incbin "baserom.nds", 0x1030, 0x10 + .incbin "baserom.nds", 0x1040, 0x10 + .incbin "baserom.nds", 0x1050, 0x10 + .incbin "baserom.nds", 0x1060, 0x10 + .incbin "baserom.nds", 0x1070, 0x10 + .incbin "baserom.nds", 0x1080, 0x10 + .incbin "baserom.nds", 0x1090, 0x10 + .incbin "baserom.nds", 0x10A0, 0x10 + .incbin "baserom.nds", 0x10B0, 0x10 + .incbin "baserom.nds", 0x10C0, 0x10 + .incbin "baserom.nds", 0x10D0, 0x10 + .incbin "baserom.nds", 0x10E0, 0x10 + .incbin "baserom.nds", 0x10F0, 0x10 + .incbin "baserom.nds", 0x1100, 0x10 + .incbin "baserom.nds", 0x1110, 0x10 + .incbin "baserom.nds", 0x1120, 0x10 + .incbin "baserom.nds", 0x1130, 0x10 + .incbin "baserom.nds", 0x1140, 0x10 + .incbin "baserom.nds", 0x1150, 0x10 + .incbin "baserom.nds", 0x1160, 0x10 + .incbin "baserom.nds", 0x1170, 0x10 + .incbin "baserom.nds", 0x1180, 0x10 + .incbin "baserom.nds", 0x1190, 0x10 + .incbin "baserom.nds", 0x11A0, 0x10 + .incbin "baserom.nds", 0x11B0, 0x10 + .incbin "baserom.nds", 0x11C0, 0x10 + .incbin "baserom.nds", 0x11D0, 0x10 + .incbin "baserom.nds", 0x11E0, 0x10 + .incbin "baserom.nds", 0x11F0, 0x10 + .incbin "baserom.nds", 0x1200, 0x10 + .incbin "baserom.nds", 0x1210, 0x10 + .incbin "baserom.nds", 0x1220, 0x10 + .incbin "baserom.nds", 0x1230, 0x10 + .incbin "baserom.nds", 0x1240, 0x10 + .incbin "baserom.nds", 0x1250, 0x10 + .incbin "baserom.nds", 0x1260, 0x10 + .incbin "baserom.nds", 0x1270, 0x10 + .incbin "baserom.nds", 0x1280, 0x10 + .incbin "baserom.nds", 0x1290, 0x10 + .incbin "baserom.nds", 0x12A0, 0x10 + .incbin "baserom.nds", 0x12B0, 0x10 + .incbin "baserom.nds", 0x12C0, 0x10 + .incbin "baserom.nds", 0x12D0, 0x10 + .incbin "baserom.nds", 0x12E0, 0x10 + .incbin "baserom.nds", 0x12F0, 0x10 + .incbin "baserom.nds", 0x1300, 0x10 + .incbin "baserom.nds", 0x1310, 0x10 + .incbin "baserom.nds", 0x1320, 0x10 + .incbin "baserom.nds", 0x1330, 0x10 + .incbin "baserom.nds", 0x1340, 0x10 + .incbin "baserom.nds", 0x1350, 0x10 + .incbin "baserom.nds", 0x1360, 0x10 + .incbin "baserom.nds", 0x1370, 0x10 + .incbin "baserom.nds", 0x1380, 0x10 + .incbin "baserom.nds", 0x1390, 0x10 + .incbin "baserom.nds", 0x13A0, 0x10 + .incbin "baserom.nds", 0x13B0, 0x10 + .incbin "baserom.nds", 0x13C0, 0x10 + .incbin "baserom.nds", 0x13D0, 0x10 + .incbin "baserom.nds", 0x13E0, 0x10 + .incbin "baserom.nds", 0x13F0, 0x10 + .incbin "baserom.nds", 0x1400, 0x10 + .incbin "baserom.nds", 0x1410, 0x10 + .incbin "baserom.nds", 0x1420, 0x10 + .incbin "baserom.nds", 0x1430, 0x10 + .incbin "baserom.nds", 0x1440, 0x10 + .incbin "baserom.nds", 0x1450, 0x10 + .incbin "baserom.nds", 0x1460, 0x10 + .incbin "baserom.nds", 0x1470, 0x10 + .incbin "baserom.nds", 0x1480, 0x10 + .incbin "baserom.nds", 0x1490, 0x10 + .incbin "baserom.nds", 0x14A0, 0x10 + .incbin "baserom.nds", 0x14B0, 0x10 + .incbin "baserom.nds", 0x14C0, 0x10 + .incbin "baserom.nds", 0x14D0, 0x10 + .incbin "baserom.nds", 0x14E0, 0x10 + .incbin "baserom.nds", 0x14F0, 0x10 + .incbin "baserom.nds", 0x1500, 0x10 + .incbin "baserom.nds", 0x1510, 0x10 + .incbin "baserom.nds", 0x1520, 0x10 + .incbin "baserom.nds", 0x1530, 0x10 + .incbin "baserom.nds", 0x1540, 0x10 + .incbin "baserom.nds", 0x1550, 0x10 + .incbin "baserom.nds", 0x1560, 0x10 + .incbin "baserom.nds", 0x1570, 0x10 + .incbin "baserom.nds", 0x1580, 0x10 + .incbin "baserom.nds", 0x1590, 0x10 + .incbin "baserom.nds", 0x15A0, 0x10 + .incbin "baserom.nds", 0x15B0, 0x10 + .incbin "baserom.nds", 0x15C0, 0x10 + .incbin "baserom.nds", 0x15D0, 0x10 + .incbin "baserom.nds", 0x15E0, 0x10 + .incbin "baserom.nds", 0x15F0, 0x10 + .incbin "baserom.nds", 0x1600, 0x10 + .incbin "baserom.nds", 0x1610, 0x10 + .incbin "baserom.nds", 0x1620, 0x10 + .incbin "baserom.nds", 0x1630, 0x10 + .incbin "baserom.nds", 0x1640, 0x10 + .incbin "baserom.nds", 0x1650, 0x10 + .incbin "baserom.nds", 0x1660, 0x10 + .incbin "baserom.nds", 0x1670, 0x10 + .incbin "baserom.nds", 0x1680, 0x10 + .incbin "baserom.nds", 0x1690, 0x10 + .incbin "baserom.nds", 0x16A0, 0x10 + .incbin "baserom.nds", 0x16B0, 0x10 + .incbin "baserom.nds", 0x16C0, 0x10 + .incbin "baserom.nds", 0x16D0, 0x10 + .incbin "baserom.nds", 0x16E0, 0x10 + .incbin "baserom.nds", 0x16F0, 0x10 + .incbin "baserom.nds", 0x1700, 0x10 + .incbin "baserom.nds", 0x1710, 0x10 + .incbin "baserom.nds", 0x1720, 0x10 + .incbin "baserom.nds", 0x1730, 0x10 + .incbin "baserom.nds", 0x1740, 0x10 + .incbin "baserom.nds", 0x1750, 0x10 + .incbin "baserom.nds", 0x1760, 0x10 + .incbin "baserom.nds", 0x1770, 0x10 + .incbin "baserom.nds", 0x1780, 0x10 + .incbin "baserom.nds", 0x1790, 0x10 + .incbin "baserom.nds", 0x17A0, 0x10 + .incbin "baserom.nds", 0x17B0, 0x10 + .incbin "baserom.nds", 0x17C0, 0x10 + .incbin "baserom.nds", 0x17D0, 0x10 + .incbin "baserom.nds", 0x17E0, 0x10 + .incbin "baserom.nds", 0x17F0, 0x10 + .incbin "baserom.nds", 0x1800, 0x10 + .incbin "baserom.nds", 0x1810, 0x10 + .incbin "baserom.nds", 0x1820, 0x10 + .incbin "baserom.nds", 0x1830, 0x10 + .incbin "baserom.nds", 0x1840, 0x10 + .incbin "baserom.nds", 0x1850, 0x10 + .incbin "baserom.nds", 0x1860, 0x10 + .incbin "baserom.nds", 0x1870, 0x10 + .incbin "baserom.nds", 0x1880, 0x10 + .incbin "baserom.nds", 0x1890, 0x10 + .incbin "baserom.nds", 0x18A0, 0x10 + .incbin "baserom.nds", 0x18B0, 0x10 + .incbin "baserom.nds", 0x18C0, 0x10 + .incbin "baserom.nds", 0x18D0, 0x10 + .incbin "baserom.nds", 0x18E0, 0x10 + .incbin "baserom.nds", 0x18F0, 0x10 + .incbin "baserom.nds", 0x1900, 0x10 + .incbin "baserom.nds", 0x1910, 0x10 + .incbin "baserom.nds", 0x1920, 0x10 + .incbin "baserom.nds", 0x1930, 0x10 + .incbin "baserom.nds", 0x1940, 0x10 + .incbin "baserom.nds", 0x1950, 0x10 + .incbin "baserom.nds", 0x1960, 0x10 + .incbin "baserom.nds", 0x1970, 0x10 + .incbin "baserom.nds", 0x1980, 0x10 + .incbin "baserom.nds", 0x1990, 0x10 + .incbin "baserom.nds", 0x19A0, 0x10 + .incbin "baserom.nds", 0x19B0, 0x10 + .incbin "baserom.nds", 0x19C0, 0x10 + .incbin "baserom.nds", 0x19D0, 0x10 + .incbin "baserom.nds", 0x19E0, 0x10 + .incbin "baserom.nds", 0x19F0, 0x10 + .incbin "baserom.nds", 0x1A00, 0x10 + .incbin "baserom.nds", 0x1A10, 0x10 + .incbin "baserom.nds", 0x1A20, 0x10 + .incbin "baserom.nds", 0x1A30, 0x10 + .incbin "baserom.nds", 0x1A40, 0x10 + .incbin "baserom.nds", 0x1A50, 0x10 + .incbin "baserom.nds", 0x1A60, 0x10 + .incbin "baserom.nds", 0x1A70, 0x10 + .incbin "baserom.nds", 0x1A80, 0x10 + .incbin "baserom.nds", 0x1A90, 0x10 + .incbin "baserom.nds", 0x1AA0, 0x10 + .incbin "baserom.nds", 0x1AB0, 0x10 + .incbin "baserom.nds", 0x1AC0, 0x10 + .incbin "baserom.nds", 0x1AD0, 0x10 + .incbin "baserom.nds", 0x1AE0, 0x10 + .incbin "baserom.nds", 0x1AF0, 0x10 + .incbin "baserom.nds", 0x1B00, 0x10 + .incbin "baserom.nds", 0x1B10, 0x10 + .incbin "baserom.nds", 0x1B20, 0x10 + .incbin "baserom.nds", 0x1B30, 0x10 + .incbin "baserom.nds", 0x1B40, 0x10 + .incbin "baserom.nds", 0x1B50, 0x10 + .incbin "baserom.nds", 0x1B60, 0x10 + .incbin "baserom.nds", 0x1B70, 0x10 + .incbin "baserom.nds", 0x1B80, 0x10 + .incbin "baserom.nds", 0x1B90, 0x10 + .incbin "baserom.nds", 0x1BA0, 0x10 + .incbin "baserom.nds", 0x1BB0, 0x10 + .incbin "baserom.nds", 0x1BC0, 0x10 + .incbin "baserom.nds", 0x1BD0, 0x10 + .incbin "baserom.nds", 0x1BE0, 0x10 + .incbin "baserom.nds", 0x1BF0, 0x10 + .incbin "baserom.nds", 0x1C00, 0x10 + .incbin "baserom.nds", 0x1C10, 0x10 + .incbin "baserom.nds", 0x1C20, 0x10 + .incbin "baserom.nds", 0x1C30, 0x10 + .incbin "baserom.nds", 0x1C40, 0x10 + .incbin "baserom.nds", 0x1C50, 0x10 + .incbin "baserom.nds", 0x1C60, 0x10 + .incbin "baserom.nds", 0x1C70, 0x10 + .incbin "baserom.nds", 0x1C80, 0x10 + .incbin "baserom.nds", 0x1C90, 0x10 + .incbin "baserom.nds", 0x1CA0, 0x10 + .incbin "baserom.nds", 0x1CB0, 0x10 + .incbin "baserom.nds", 0x1CC0, 0x10 + .incbin "baserom.nds", 0x1CD0, 0x10 + .incbin "baserom.nds", 0x1CE0, 0x10 + .incbin "baserom.nds", 0x1CF0, 0x10 + .incbin "baserom.nds", 0x1D00, 0x10 + .incbin "baserom.nds", 0x1D10, 0x10 + .incbin "baserom.nds", 0x1D20, 0x10 + .incbin "baserom.nds", 0x1D30, 0x10 + .incbin "baserom.nds", 0x1D40, 0x10 + .incbin "baserom.nds", 0x1D50, 0x10 + .incbin "baserom.nds", 0x1D60, 0x10 + .incbin "baserom.nds", 0x1D70, 0x10 + .incbin "baserom.nds", 0x1D80, 0x10 + .incbin "baserom.nds", 0x1D90, 0x10 + .incbin "baserom.nds", 0x1DA0, 0x10 + .incbin "baserom.nds", 0x1DB0, 0x10 + .incbin "baserom.nds", 0x1DC0, 0x10 + .incbin "baserom.nds", 0x1DD0, 0x10 + .incbin "baserom.nds", 0x1DE0, 0x10 + .incbin "baserom.nds", 0x1DF0, 0x10 + .incbin "baserom.nds", 0x1E00, 0x10 + .incbin "baserom.nds", 0x1E10, 0x10 + .incbin "baserom.nds", 0x1E20, 0x10 + .incbin "baserom.nds", 0x1E30, 0x10 + .incbin "baserom.nds", 0x1E40, 0x10 + .incbin "baserom.nds", 0x1E50, 0x10 + .incbin "baserom.nds", 0x1E60, 0x10 + .incbin "baserom.nds", 0x1E70, 0x10 + .incbin "baserom.nds", 0x1E80, 0x10 + .incbin "baserom.nds", 0x1E90, 0x10 + .incbin "baserom.nds", 0x1EA0, 0x10 + .incbin "baserom.nds", 0x1EB0, 0x10 + .incbin "baserom.nds", 0x1EC0, 0x10 + .incbin "baserom.nds", 0x1ED0, 0x10 + .incbin "baserom.nds", 0x1EE0, 0x10 + .incbin "baserom.nds", 0x1EF0, 0x10 + .incbin "baserom.nds", 0x1F00, 0x10 + .incbin "baserom.nds", 0x1F10, 0x10 + .incbin "baserom.nds", 0x1F20, 0x10 + .incbin "baserom.nds", 0x1F30, 0x10 + .incbin "baserom.nds", 0x1F40, 0x10 + .incbin "baserom.nds", 0x1F50, 0x10 + .incbin "baserom.nds", 0x1F60, 0x10 + .incbin "baserom.nds", 0x1F70, 0x10 + .incbin "baserom.nds", 0x1F80, 0x10 + .incbin "baserom.nds", 0x1F90, 0x10 + .incbin "baserom.nds", 0x1FA0, 0x10 + .incbin "baserom.nds", 0x1FB0, 0x10 + .incbin "baserom.nds", 0x1FC0, 0x10 + .incbin "baserom.nds", 0x1FD0, 0x10 + .incbin "baserom.nds", 0x1FE0, 0x10 + .incbin "baserom.nds", 0x1FF0, 0x10 + .incbin "baserom.nds", 0x2000, 0x10 + .incbin "baserom.nds", 0x2010, 0x10 + .incbin "baserom.nds", 0x2020, 0x10 + .incbin "baserom.nds", 0x2030, 0x10 + .incbin "baserom.nds", 0x2040, 0x10 + .incbin "baserom.nds", 0x2050, 0x10 + .incbin "baserom.nds", 0x2060, 0x10 + .incbin "baserom.nds", 0x2070, 0x10 + .incbin "baserom.nds", 0x2080, 0x10 + .incbin "baserom.nds", 0x2090, 0x10 + .incbin "baserom.nds", 0x20A0, 0x10 + .incbin "baserom.nds", 0x20B0, 0x10 + .incbin "baserom.nds", 0x20C0, 0x10 + .incbin "baserom.nds", 0x20D0, 0x10 + .incbin "baserom.nds", 0x20E0, 0x10 + .incbin "baserom.nds", 0x20F0, 0x10 + .incbin "baserom.nds", 0x2100, 0x10 + .incbin "baserom.nds", 0x2110, 0x10 + .incbin "baserom.nds", 0x2120, 0x10 + .incbin "baserom.nds", 0x2130, 0x10 + .incbin "baserom.nds", 0x2140, 0x10 + .incbin "baserom.nds", 0x2150, 0x10 + .incbin "baserom.nds", 0x2160, 0x10 + .incbin "baserom.nds", 0x2170, 0x10 + .incbin "baserom.nds", 0x2180, 0x10 + .incbin "baserom.nds", 0x2190, 0x10 + .incbin "baserom.nds", 0x21A0, 0x10 + .incbin "baserom.nds", 0x21B0, 0x10 + .incbin "baserom.nds", 0x21C0, 0x10 + .incbin "baserom.nds", 0x21D0, 0x10 + .incbin "baserom.nds", 0x21E0, 0x10 + .incbin "baserom.nds", 0x21F0, 0x10 + .incbin "baserom.nds", 0x2200, 0x10 + .incbin "baserom.nds", 0x2210, 0x10 + .incbin "baserom.nds", 0x2220, 0x10 + .incbin "baserom.nds", 0x2230, 0x10 + .incbin "baserom.nds", 0x2240, 0x10 + .incbin "baserom.nds", 0x2250, 0x10 + .incbin "baserom.nds", 0x2260, 0x10 + .incbin "baserom.nds", 0x2270, 0x10 + .incbin "baserom.nds", 0x2280, 0x10 + .incbin "baserom.nds", 0x2290, 0x10 + .incbin "baserom.nds", 0x22A0, 0x10 + .incbin "baserom.nds", 0x22B0, 0x10 + .incbin "baserom.nds", 0x22C0, 0x10 + .incbin "baserom.nds", 0x22D0, 0x10 + .incbin "baserom.nds", 0x22E0, 0x10 + .incbin "baserom.nds", 0x22F0, 0x10 + .incbin "baserom.nds", 0x2300, 0x10 + .incbin "baserom.nds", 0x2310, 0x10 + .incbin "baserom.nds", 0x2320, 0x10 + .incbin "baserom.nds", 0x2330, 0x10 + .incbin "baserom.nds", 0x2340, 0x10 + .incbin "baserom.nds", 0x2350, 0x10 + .incbin "baserom.nds", 0x2360, 0x10 + .incbin "baserom.nds", 0x2370, 0x10 + .incbin "baserom.nds", 0x2380, 0x10 + .incbin "baserom.nds", 0x2390, 0x10 + .incbin "baserom.nds", 0x23A0, 0x10 + .incbin "baserom.nds", 0x23B0, 0x10 + .incbin "baserom.nds", 0x23C0, 0x10 + .incbin "baserom.nds", 0x23D0, 0x10 + .incbin "baserom.nds", 0x23E0, 0x10 + .incbin "baserom.nds", 0x23F0, 0x10 + .incbin "baserom.nds", 0x2400, 0x10 + .incbin "baserom.nds", 0x2410, 0x10 + .incbin "baserom.nds", 0x2420, 0x10 + .incbin "baserom.nds", 0x2430, 0x10 + .incbin "baserom.nds", 0x2440, 0x10 + .incbin "baserom.nds", 0x2450, 0x10 + .incbin "baserom.nds", 0x2460, 0x10 + .incbin "baserom.nds", 0x2470, 0x10 + .incbin "baserom.nds", 0x2480, 0x10 + .incbin "baserom.nds", 0x2490, 0x10 + .incbin "baserom.nds", 0x24A0, 0x10 + .incbin "baserom.nds", 0x24B0, 0x10 + .incbin "baserom.nds", 0x24C0, 0x10 + .incbin "baserom.nds", 0x24D0, 0x10 + .incbin "baserom.nds", 0x24E0, 0x10 + .incbin "baserom.nds", 0x24F0, 0x10 + .incbin "baserom.nds", 0x2500, 0x10 + .incbin "baserom.nds", 0x2510, 0x10 + .incbin "baserom.nds", 0x2520, 0x10 + .incbin "baserom.nds", 0x2530, 0x10 + .incbin "baserom.nds", 0x2540, 0x10 + .incbin "baserom.nds", 0x2550, 0x10 + .incbin "baserom.nds", 0x2560, 0x10 + .incbin "baserom.nds", 0x2570, 0x10 + .incbin "baserom.nds", 0x2580, 0x10 + .incbin "baserom.nds", 0x2590, 0x10 + .incbin "baserom.nds", 0x25A0, 0x10 + .incbin "baserom.nds", 0x25B0, 0x10 + .incbin "baserom.nds", 0x25C0, 0x10 + .incbin "baserom.nds", 0x25D0, 0x10 + .incbin "baserom.nds", 0x25E0, 0x10 + .incbin "baserom.nds", 0x25F0, 0x10 + .incbin "baserom.nds", 0x2600, 0x10 + .incbin "baserom.nds", 0x2610, 0x10 + .incbin "baserom.nds", 0x2620, 0x10 + .incbin "baserom.nds", 0x2630, 0x10 + .incbin "baserom.nds", 0x2640, 0x10 + .incbin "baserom.nds", 0x2650, 0x10 + .incbin "baserom.nds", 0x2660, 0x10 + .incbin "baserom.nds", 0x2670, 0x10 + .incbin "baserom.nds", 0x2680, 0x10 + .incbin "baserom.nds", 0x2690, 0x10 + .incbin "baserom.nds", 0x26A0, 0x10 + .incbin "baserom.nds", 0x26B0, 0x10 + .incbin "baserom.nds", 0x26C0, 0x10 + .incbin "baserom.nds", 0x26D0, 0x10 + .incbin "baserom.nds", 0x26E0, 0x10 + .incbin "baserom.nds", 0x26F0, 0x10 + .incbin "baserom.nds", 0x2700, 0x10 + .incbin "baserom.nds", 0x2710, 0x10 + .incbin "baserom.nds", 0x2720, 0x10 + .incbin "baserom.nds", 0x2730, 0x10 + .incbin "baserom.nds", 0x2740, 0x10 + .incbin "baserom.nds", 0x2750, 0x10 + .incbin "baserom.nds", 0x2760, 0x10 + .incbin "baserom.nds", 0x2770, 0x10 + .incbin "baserom.nds", 0x2780, 0x10 + .incbin "baserom.nds", 0x2790, 0x10 + .incbin "baserom.nds", 0x27A0, 0x10 + .incbin "baserom.nds", 0x27B0, 0x10 + .incbin "baserom.nds", 0x27C0, 0x10 + .incbin "baserom.nds", 0x27D0, 0x10 + .incbin "baserom.nds", 0x27E0, 0x10 + .incbin "baserom.nds", 0x27F0, 0x10 + .incbin "baserom.nds", 0x2800, 0x10 + .incbin "baserom.nds", 0x2810, 0x10 + .incbin "baserom.nds", 0x2820, 0x10 + .incbin "baserom.nds", 0x2830, 0x10 + .incbin "baserom.nds", 0x2840, 0x10 + .incbin "baserom.nds", 0x2850, 0x10 + .incbin "baserom.nds", 0x2860, 0x10 + .incbin "baserom.nds", 0x2870, 0x10 + .incbin "baserom.nds", 0x2880, 0x10 + .incbin "baserom.nds", 0x2890, 0x10 + .incbin "baserom.nds", 0x28A0, 0x10 + .incbin "baserom.nds", 0x28B0, 0x10 + .incbin "baserom.nds", 0x28C0, 0x10 + .incbin "baserom.nds", 0x28D0, 0x10 + .incbin "baserom.nds", 0x28E0, 0x10 + .incbin "baserom.nds", 0x28F0, 0x10 + .incbin "baserom.nds", 0x2900, 0x10 + .incbin "baserom.nds", 0x2910, 0x10 + .incbin "baserom.nds", 0x2920, 0x10 + .incbin "baserom.nds", 0x2930, 0x10 + .incbin "baserom.nds", 0x2940, 0x10 + .incbin "baserom.nds", 0x2950, 0x10 + .incbin "baserom.nds", 0x2960, 0x10 + .incbin "baserom.nds", 0x2970, 0x10 + .incbin "baserom.nds", 0x2980, 0x10 + .incbin "baserom.nds", 0x2990, 0x10 + .incbin "baserom.nds", 0x29A0, 0x10 + .incbin "baserom.nds", 0x29B0, 0x10 + .incbin "baserom.nds", 0x29C0, 0x10 + .incbin "baserom.nds", 0x29D0, 0x10 + .incbin "baserom.nds", 0x29E0, 0x10 + .incbin "baserom.nds", 0x29F0, 0x10 + .incbin "baserom.nds", 0x2A00, 0x10 + .incbin "baserom.nds", 0x2A10, 0x10 + .incbin "baserom.nds", 0x2A20, 0x10 + .incbin "baserom.nds", 0x2A30, 0x10 + .incbin "baserom.nds", 0x2A40, 0x10 + .incbin "baserom.nds", 0x2A50, 0x10 + .incbin "baserom.nds", 0x2A60, 0x10 + .incbin "baserom.nds", 0x2A70, 0x10 + .incbin "baserom.nds", 0x2A80, 0x10 + .incbin "baserom.nds", 0x2A90, 0x10 + .incbin "baserom.nds", 0x2AA0, 0x10 + .incbin "baserom.nds", 0x2AB0, 0x10 + .incbin "baserom.nds", 0x2AC0, 0x10 + .incbin "baserom.nds", 0x2AD0, 0x10 + .incbin "baserom.nds", 0x2AE0, 0x10 + .incbin "baserom.nds", 0x2AF0, 0x10 + .incbin "baserom.nds", 0x2B00, 0x10 + .incbin "baserom.nds", 0x2B10, 0x10 + .incbin "baserom.nds", 0x2B20, 0x10 + .incbin "baserom.nds", 0x2B30, 0x10 + .incbin "baserom.nds", 0x2B40, 0x10 + .incbin "baserom.nds", 0x2B50, 0x10 + .incbin "baserom.nds", 0x2B60, 0x10 + .incbin "baserom.nds", 0x2B70, 0x10 + .incbin "baserom.nds", 0x2B80, 0x10 + .incbin "baserom.nds", 0x2B90, 0x10 + .incbin "baserom.nds", 0x2BA0, 0x10 + .incbin "baserom.nds", 0x2BB0, 0x10 + .incbin "baserom.nds", 0x2BC0, 0x10 + .incbin "baserom.nds", 0x2BD0, 0x10 + .incbin "baserom.nds", 0x2BE0, 0x10 + .incbin "baserom.nds", 0x2BF0, 0x10 + .incbin "baserom.nds", 0x2C00, 0x10 + .incbin "baserom.nds", 0x2C10, 0x10 + .incbin "baserom.nds", 0x2C20, 0x10 + .incbin "baserom.nds", 0x2C30, 0x10 + .incbin "baserom.nds", 0x2C40, 0x10 + .incbin "baserom.nds", 0x2C50, 0x10 + .incbin "baserom.nds", 0x2C60, 0x10 + .incbin "baserom.nds", 0x2C70, 0x10 + .incbin "baserom.nds", 0x2C80, 0x10 + .incbin "baserom.nds", 0x2C90, 0x10 + .incbin "baserom.nds", 0x2CA0, 0x10 + .incbin "baserom.nds", 0x2CB0, 0x10 + .incbin "baserom.nds", 0x2CC0, 0x10 + .incbin "baserom.nds", 0x2CD0, 0x10 + .incbin "baserom.nds", 0x2CE0, 0x10 + .incbin "baserom.nds", 0x2CF0, 0x10 + .incbin "baserom.nds", 0x2D00, 0x10 + .incbin "baserom.nds", 0x2D10, 0x10 + .incbin "baserom.nds", 0x2D20, 0x10 + .incbin "baserom.nds", 0x2D30, 0x10 + .incbin "baserom.nds", 0x2D40, 0x10 + .incbin "baserom.nds", 0x2D50, 0x10 + .incbin "baserom.nds", 0x2D60, 0x10 + .incbin "baserom.nds", 0x2D70, 0x10 + .incbin "baserom.nds", 0x2D80, 0x10 + .incbin "baserom.nds", 0x2D90, 0x10 + .incbin "baserom.nds", 0x2DA0, 0x10 + .incbin "baserom.nds", 0x2DB0, 0x10 + .incbin "baserom.nds", 0x2DC0, 0x10 + .incbin "baserom.nds", 0x2DD0, 0x10 + .incbin "baserom.nds", 0x2DE0, 0x10 + .incbin "baserom.nds", 0x2DF0, 0x10 + .incbin "baserom.nds", 0x2E00, 0x10 + .incbin "baserom.nds", 0x2E10, 0x10 + .incbin "baserom.nds", 0x2E20, 0x10 + .incbin "baserom.nds", 0x2E30, 0x10 + .incbin "baserom.nds", 0x2E40, 0x10 + .incbin "baserom.nds", 0x2E50, 0x10 + .incbin "baserom.nds", 0x2E60, 0x10 + .incbin "baserom.nds", 0x2E70, 0x10 + .incbin "baserom.nds", 0x2E80, 0x10 + .incbin "baserom.nds", 0x2E90, 0x10 + .incbin "baserom.nds", 0x2EA0, 0x10 + .incbin "baserom.nds", 0x2EB0, 0x10 + .incbin "baserom.nds", 0x2EC0, 0x10 + .incbin "baserom.nds", 0x2ED0, 0x10 + .incbin "baserom.nds", 0x2EE0, 0x10 + .incbin "baserom.nds", 0x2EF0, 0x10 + .incbin "baserom.nds", 0x2F00, 0x10 + .incbin "baserom.nds", 0x2F10, 0x10 + .incbin "baserom.nds", 0x2F20, 0x10 + .incbin "baserom.nds", 0x2F30, 0x10 + .incbin "baserom.nds", 0x2F40, 0x10 + .incbin "baserom.nds", 0x2F50, 0x10 + .incbin "baserom.nds", 0x2F60, 0x10 + .incbin "baserom.nds", 0x2F70, 0x10 + .incbin "baserom.nds", 0x2F80, 0x10 + .incbin "baserom.nds", 0x2F90, 0x10 + .incbin "baserom.nds", 0x2FA0, 0x10 + .incbin "baserom.nds", 0x2FB0, 0x10 + .incbin "baserom.nds", 0x2FC0, 0x10 + .incbin "baserom.nds", 0x2FD0, 0x10 + .incbin "baserom.nds", 0x2FE0, 0x10 + .incbin "baserom.nds", 0x2FF0, 0x10 + .incbin "baserom.nds", 0x3000, 0x10 + .incbin "baserom.nds", 0x3010, 0x10 + .incbin "baserom.nds", 0x3020, 0x10 + .incbin "baserom.nds", 0x3030, 0x10 + .incbin "baserom.nds", 0x3040, 0x10 + .incbin "baserom.nds", 0x3050, 0x10 + .incbin "baserom.nds", 0x3060, 0x10 + .incbin "baserom.nds", 0x3070, 0x10 + .incbin "baserom.nds", 0x3080, 0x10 + .incbin "baserom.nds", 0x3090, 0x10 + .incbin "baserom.nds", 0x30A0, 0x10 + .incbin "baserom.nds", 0x30B0, 0x10 + .incbin "baserom.nds", 0x30C0, 0x10 + .incbin "baserom.nds", 0x30D0, 0x10 + .incbin "baserom.nds", 0x30E0, 0x10 + .incbin "baserom.nds", 0x30F0, 0x10 + .incbin "baserom.nds", 0x3100, 0x10 + .incbin "baserom.nds", 0x3110, 0x10 + .incbin "baserom.nds", 0x3120, 0x10 + .incbin "baserom.nds", 0x3130, 0x10 + .incbin "baserom.nds", 0x3140, 0x10 + .incbin "baserom.nds", 0x3150, 0x10 + .incbin "baserom.nds", 0x3160, 0x10 + .incbin "baserom.nds", 0x3170, 0x10 + .incbin "baserom.nds", 0x3180, 0x10 + .incbin "baserom.nds", 0x3190, 0x10 + .incbin "baserom.nds", 0x31A0, 0x10 + .incbin "baserom.nds", 0x31B0, 0x10 + .incbin "baserom.nds", 0x31C0, 0x10 + .incbin "baserom.nds", 0x31D0, 0x10 + .incbin "baserom.nds", 0x31E0, 0x10 + .incbin "baserom.nds", 0x31F0, 0x10 + .incbin "baserom.nds", 0x3200, 0x10 + .incbin "baserom.nds", 0x3210, 0x10 + .incbin "baserom.nds", 0x3220, 0x10 + .incbin "baserom.nds", 0x3230, 0x10 + .incbin "baserom.nds", 0x3240, 0x10 + .incbin "baserom.nds", 0x3250, 0x10 + .incbin "baserom.nds", 0x3260, 0x10 + .incbin "baserom.nds", 0x3270, 0x10 + .incbin "baserom.nds", 0x3280, 0x10 + .incbin "baserom.nds", 0x3290, 0x10 + .incbin "baserom.nds", 0x32A0, 0x10 + .incbin "baserom.nds", 0x32B0, 0x10 + .incbin "baserom.nds", 0x32C0, 0x10 + .incbin "baserom.nds", 0x32D0, 0x10 + .incbin "baserom.nds", 0x32E0, 0x10 + .incbin "baserom.nds", 0x32F0, 0x10 + .incbin "baserom.nds", 0x3300, 0x10 + .incbin "baserom.nds", 0x3310, 0x10 + .incbin "baserom.nds", 0x3320, 0x10 + .incbin "baserom.nds", 0x3330, 0x10 + .incbin "baserom.nds", 0x3340, 0x10 + .incbin "baserom.nds", 0x3350, 0x10 + .incbin "baserom.nds", 0x3360, 0x10 + .incbin "baserom.nds", 0x3370, 0x10 + .incbin "baserom.nds", 0x3380, 0x10 + .incbin "baserom.nds", 0x3390, 0x10 + .incbin "baserom.nds", 0x33A0, 0x10 + .incbin "baserom.nds", 0x33B0, 0x10 + .incbin "baserom.nds", 0x33C0, 0x10 + .incbin "baserom.nds", 0x33D0, 0x10 + .incbin "baserom.nds", 0x33E0, 0x10 + .incbin "baserom.nds", 0x33F0, 0x10 + .incbin "baserom.nds", 0x3400, 0x10 + .incbin "baserom.nds", 0x3410, 0x10 + .incbin "baserom.nds", 0x3420, 0x10 + .incbin "baserom.nds", 0x3430, 0x10 + .incbin "baserom.nds", 0x3440, 0x10 + .incbin "baserom.nds", 0x3450, 0x10 + .incbin "baserom.nds", 0x3460, 0x10 + .incbin "baserom.nds", 0x3470, 0x10 + .incbin "baserom.nds", 0x3480, 0x10 + .incbin "baserom.nds", 0x3490, 0x10 + .incbin "baserom.nds", 0x34A0, 0x10 + .incbin "baserom.nds", 0x34B0, 0x10 + .incbin "baserom.nds", 0x34C0, 0x10 + .incbin "baserom.nds", 0x34D0, 0x10 + .incbin "baserom.nds", 0x34E0, 0x10 + .incbin "baserom.nds", 0x34F0, 0x10 + .incbin "baserom.nds", 0x3500, 0x10 + .incbin "baserom.nds", 0x3510, 0x10 + .incbin "baserom.nds", 0x3520, 0x10 + .incbin "baserom.nds", 0x3530, 0x10 + .incbin "baserom.nds", 0x3540, 0x10 + .incbin "baserom.nds", 0x3550, 0x10 + .incbin "baserom.nds", 0x3560, 0x10 + .incbin "baserom.nds", 0x3570, 0x10 + .incbin "baserom.nds", 0x3580, 0x10 + .incbin "baserom.nds", 0x3590, 0x10 + .incbin "baserom.nds", 0x35A0, 0x10 + .incbin "baserom.nds", 0x35B0, 0x10 + .incbin "baserom.nds", 0x35C0, 0x10 + .incbin "baserom.nds", 0x35D0, 0x10 + .incbin "baserom.nds", 0x35E0, 0x10 + .incbin "baserom.nds", 0x35F0, 0x10 + .incbin "baserom.nds", 0x3600, 0x10 + .incbin "baserom.nds", 0x3610, 0x10 + .incbin "baserom.nds", 0x3620, 0x10 + .incbin "baserom.nds", 0x3630, 0x10 + .incbin "baserom.nds", 0x3640, 0x10 + .incbin "baserom.nds", 0x3650, 0x10 + .incbin "baserom.nds", 0x3660, 0x10 + .incbin "baserom.nds", 0x3670, 0x10 + .incbin "baserom.nds", 0x3680, 0x10 + .incbin "baserom.nds", 0x3690, 0x10 + .incbin "baserom.nds", 0x36A0, 0x10 + .incbin "baserom.nds", 0x36B0, 0x10 + .incbin "baserom.nds", 0x36C0, 0x10 + .incbin "baserom.nds", 0x36D0, 0x10 + .incbin "baserom.nds", 0x36E0, 0x10 + .incbin "baserom.nds", 0x36F0, 0x10 + .incbin "baserom.nds", 0x3700, 0x10 + .incbin "baserom.nds", 0x3710, 0x10 + .incbin "baserom.nds", 0x3720, 0x10 + .incbin "baserom.nds", 0x3730, 0x10 + .incbin "baserom.nds", 0x3740, 0x10 + .incbin "baserom.nds", 0x3750, 0x10 + .incbin "baserom.nds", 0x3760, 0x10 + .incbin "baserom.nds", 0x3770, 0x10 + .incbin "baserom.nds", 0x3780, 0x10 + .incbin "baserom.nds", 0x3790, 0x10 + .incbin "baserom.nds", 0x37A0, 0x10 + .incbin "baserom.nds", 0x37B0, 0x10 + .incbin "baserom.nds", 0x37C0, 0x10 + .incbin "baserom.nds", 0x37D0, 0x10 + .incbin "baserom.nds", 0x37E0, 0x10 + .incbin "baserom.nds", 0x37F0, 0x10 + .incbin "baserom.nds", 0x3800, 0x10 + .incbin "baserom.nds", 0x3810, 0x10 + .incbin "baserom.nds", 0x3820, 0x10 + .incbin "baserom.nds", 0x3830, 0x10 + .incbin "baserom.nds", 0x3840, 0x10 + .incbin "baserom.nds", 0x3850, 0x10 + .incbin "baserom.nds", 0x3860, 0x10 + .incbin "baserom.nds", 0x3870, 0x10 + .incbin "baserom.nds", 0x3880, 0x10 + .incbin "baserom.nds", 0x3890, 0x10 + .incbin "baserom.nds", 0x38A0, 0x10 + .incbin "baserom.nds", 0x38B0, 0x10 + .incbin "baserom.nds", 0x38C0, 0x10 + .incbin "baserom.nds", 0x38D0, 0x10 + .incbin "baserom.nds", 0x38E0, 0x10 + .incbin "baserom.nds", 0x38F0, 0x10 + .incbin "baserom.nds", 0x3900, 0x10 + .incbin "baserom.nds", 0x3910, 0x10 + .incbin "baserom.nds", 0x3920, 0x10 + .incbin "baserom.nds", 0x3930, 0x10 + .incbin "baserom.nds", 0x3940, 0x10 + .incbin "baserom.nds", 0x3950, 0x10 + .incbin "baserom.nds", 0x3960, 0x10 + .incbin "baserom.nds", 0x3970, 0x10 + .incbin "baserom.nds", 0x3980, 0x10 + .incbin "baserom.nds", 0x3990, 0x10 + .incbin "baserom.nds", 0x39A0, 0x10 + .incbin "baserom.nds", 0x39B0, 0x10 + .incbin "baserom.nds", 0x39C0, 0x10 + .incbin "baserom.nds", 0x39D0, 0x10 + .incbin "baserom.nds", 0x39E0, 0x10 + .incbin "baserom.nds", 0x39F0, 0x10 + .incbin "baserom.nds", 0x3A00, 0x10 + .incbin "baserom.nds", 0x3A10, 0x10 + .incbin "baserom.nds", 0x3A20, 0x10 + .incbin "baserom.nds", 0x3A30, 0x10 + .incbin "baserom.nds", 0x3A40, 0x10 + .incbin "baserom.nds", 0x3A50, 0x10 + .incbin "baserom.nds", 0x3A60, 0x10 + .incbin "baserom.nds", 0x3A70, 0x10 + .incbin "baserom.nds", 0x3A80, 0x10 + .incbin "baserom.nds", 0x3A90, 0x10 + .incbin "baserom.nds", 0x3AA0, 0x10 + .incbin "baserom.nds", 0x3AB0, 0x10 + .incbin "baserom.nds", 0x3AC0, 0x10 + .incbin "baserom.nds", 0x3AD0, 0x10 + .incbin "baserom.nds", 0x3AE0, 0x10 + .incbin "baserom.nds", 0x3AF0, 0x10 + .incbin "baserom.nds", 0x3B00, 0x10 + .incbin "baserom.nds", 0x3B10, 0x10 + .incbin "baserom.nds", 0x3B20, 0x10 + .incbin "baserom.nds", 0x3B30, 0x10 + .incbin "baserom.nds", 0x3B40, 0x10 + .incbin "baserom.nds", 0x3B50, 0x10 + .incbin "baserom.nds", 0x3B60, 0x10 + .balign 4, 255 diff --git a/narc/b_tower/btdtr.narc.s b/narc/b_tower/btdtr.narc.s new file mode 100644 index 00000000..eb1d49d7 --- /dev/null +++ b/narc/b_tower/btdtr.narc.s @@ -0,0 +1,640 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x000083C0 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000009A4 ; chunk size + .short 307 ; number of files + .balign 4 + .word 0x00000000, 0x00000068 + .word 0x00000068, 0x000000D0 + .word 0x000000D0, 0x00000138 + .word 0x00000138, 0x000001A0 + .word 0x000001A0, 0x00000208 + .word 0x00000208, 0x00000270 + .word 0x00000270, 0x000002D8 + .word 0x000002D8, 0x00000340 + .word 0x00000340, 0x000003A8 + .word 0x000003A8, 0x00000410 + .word 0x00000410, 0x00000478 + .word 0x00000478, 0x000004E0 + .word 0x000004E0, 0x00000548 + .word 0x00000548, 0x000005B0 + .word 0x000005B0, 0x00000618 + .word 0x00000618, 0x00000680 + .word 0x00000680, 0x000006E8 + .word 0x000006E8, 0x00000750 + .word 0x00000750, 0x000007B8 + .word 0x000007B8, 0x00000820 + .word 0x00000820, 0x00000888 + .word 0x00000888, 0x000008F0 + .word 0x000008F0, 0x00000958 + .word 0x00000958, 0x000009C0 + .word 0x000009C0, 0x000009FC + .word 0x000009FC, 0x00000A38 + .word 0x00000A38, 0x00000A74 + .word 0x00000A74, 0x00000AB0 + .word 0x00000AB0, 0x00000AEC + .word 0x00000AEC, 0x00000B28 + .word 0x00000B28, 0x00000B68 + .word 0x00000B68, 0x00000BA8 + .word 0x00000BA8, 0x00000BE8 + .word 0x00000BE8, 0x00000C30 + .word 0x00000C30, 0x00000C78 + .word 0x00000C78, 0x00000CC0 + .word 0x00000CC0, 0x00000D5C + .word 0x00000D5C, 0x00000DF8 + .word 0x00000DF8, 0x00000E94 + .word 0x00000E94, 0x00000F30 + .word 0x00000F30, 0x00000FCC + .word 0x00000FCC, 0x00001068 + .word 0x00001068, 0x00001104 + .word 0x00001104, 0x000011A0 + .word 0x000011A0, 0x0000123C + .word 0x0000123C, 0x000012D8 + .word 0x000012D8, 0x00001374 + .word 0x00001374, 0x00001410 + .word 0x00001410, 0x0000145C + .word 0x0000145C, 0x00001484 + .word 0x00001484, 0x000014AC + .word 0x000014AC, 0x00001514 + .word 0x00001514, 0x0000157C + .word 0x0000157C, 0x000015E4 + .word 0x000015E4, 0x0000164C + .word 0x0000164C, 0x000016B4 + .word 0x000016B4, 0x0000171C + .word 0x0000171C, 0x00001758 + .word 0x00001758, 0x00001794 + .word 0x00001794, 0x000017CC + .word 0x000017CC, 0x00001804 + .word 0x00001804, 0x0000186C + .word 0x0000186C, 0x000018D4 + .word 0x000018D4, 0x0000193C + .word 0x0000193C, 0x000019A4 + .word 0x000019A4, 0x00001A0C + .word 0x00001A0C, 0x00001A74 + .word 0x00001A74, 0x00001ADC + .word 0x00001ADC, 0x00001B44 + .word 0x00001B44, 0x00001B98 + .word 0x00001B98, 0x00001BEC + .word 0x00001BEC, 0x00001C40 + .word 0x00001C40, 0x00001C80 + .word 0x00001C80, 0x00001CC0 + .word 0x00001CC0, 0x00001CE8 + .word 0x00001CE8, 0x00001D10 + .word 0x00001D10, 0x00001D38 + .word 0x00001D38, 0x00001D7C + .word 0x00001D7C, 0x00001DC0 + .word 0x00001DC0, 0x00001DFC + .word 0x00001DFC, 0x00001E38 + .word 0x00001E38, 0x00001E80 + .word 0x00001E80, 0x00001EC8 + .word 0x00001EC8, 0x00001F10 + .word 0x00001F10, 0x00001F78 + .word 0x00001F78, 0x00001FE0 + .word 0x00001FE0, 0x0000201C + .word 0x0000201C, 0x00002058 + .word 0x00002058, 0x000020C0 + .word 0x000020C0, 0x00002128 + .word 0x00002128, 0x00002190 + .word 0x00002190, 0x000021F8 + .word 0x000021F8, 0x00002260 + .word 0x00002260, 0x000022C8 + .word 0x000022C8, 0x00002308 + .word 0x00002308, 0x00002348 + .word 0x00002348, 0x00002388 + .word 0x00002388, 0x000023C8 + .word 0x000023C8, 0x00002408 + .word 0x00002408, 0x00002448 + .word 0x00002448, 0x000024B0 + .word 0x000024B0, 0x00002518 + .word 0x00002518, 0x00002580 + .word 0x00002580, 0x000025E8 + .word 0x000025E8, 0x00002618 + .word 0x00002618, 0x00002648 + .word 0x00002648, 0x00002678 + .word 0x00002678, 0x000026A8 + .word 0x000026A8, 0x000026D8 + .word 0x000026D8, 0x00002708 + .word 0x00002708, 0x00002738 + .word 0x00002738, 0x00002768 + .word 0x00002768, 0x00002798 + .word 0x00002798, 0x000027C8 + .word 0x000027C8, 0x00002830 + .word 0x00002830, 0x00002898 + .word 0x00002898, 0x00002900 + .word 0x00002900, 0x00002968 + .word 0x00002968, 0x000029D0 + .word 0x000029D0, 0x00002A38 + .word 0x00002A38, 0x00002A5C + .word 0x00002A5C, 0x00002A80 + .word 0x00002A80, 0x00002AA4 + .word 0x00002AA4, 0x00002AC8 + .word 0x00002AC8, 0x00002AEC + .word 0x00002AEC, 0x00002B10 + .word 0x00002B10, 0x00002B78 + .word 0x00002B78, 0x00002BE0 + .word 0x00002BE0, 0x00002C48 + .word 0x00002C48, 0x00002CB0 + .word 0x00002CB0, 0x00002D18 + .word 0x00002D18, 0x00002D80 + .word 0x00002D80, 0x00002DE8 + .word 0x00002DE8, 0x00002E50 + .word 0x00002E50, 0x00002E88 + .word 0x00002E88, 0x00002EC0 + .word 0x00002EC0, 0x00002F28 + .word 0x00002F28, 0x00002F90 + .word 0x00002F90, 0x00002FD4 + .word 0x00002FD4, 0x00003018 + .word 0x00003018, 0x000030A4 + .word 0x000030A4, 0x00003130 + .word 0x00003130, 0x000031BC + .word 0x000031BC, 0x00003248 + .word 0x00003248, 0x000032D4 + .word 0x000032D4, 0x00003360 + .word 0x00003360, 0x000033EC + .word 0x000033EC, 0x00003478 + .word 0x00003478, 0x00003504 + .word 0x00003504, 0x00003590 + .word 0x00003590, 0x0000361C + .word 0x0000361C, 0x000036A8 + .word 0x000036A8, 0x000036E0 + .word 0x000036E0, 0x00003718 + .word 0x00003718, 0x00003750 + .word 0x00003750, 0x00003788 + .word 0x00003788, 0x000037C0 + .word 0x000037C0, 0x000037F8 + .word 0x000037F8, 0x00003830 + .word 0x00003830, 0x00003868 + .word 0x00003868, 0x000038D0 + .word 0x000038D0, 0x00003938 + .word 0x00003938, 0x000039A0 + .word 0x000039A0, 0x00003A08 + .word 0x00003A08, 0x00003A70 + .word 0x00003A70, 0x00003AD8 + .word 0x00003AD8, 0x00003B40 + .word 0x00003B40, 0x00003BA8 + .word 0x00003BA8, 0x00003C10 + .word 0x00003C10, 0x00003C78 + .word 0x00003C78, 0x00003CE0 + .word 0x00003CE0, 0x00003D48 + .word 0x00003D48, 0x00003D7C + .word 0x00003D7C, 0x00003DB0 + .word 0x00003DB0, 0x00003DFC + .word 0x00003DFC, 0x00003E48 + .word 0x00003E48, 0x00003E94 + .word 0x00003E94, 0x00003EE0 + .word 0x00003EE0, 0x00003F24 + .word 0x00003F24, 0x00003F68 + .word 0x00003F68, 0x00003FF4 + .word 0x00003FF4, 0x00004080 + .word 0x00004080, 0x000040B8 + .word 0x000040B8, 0x000040F0 + .word 0x000040F0, 0x0000413C + .word 0x0000413C, 0x00004188 + .word 0x00004188, 0x00004214 + .word 0x00004214, 0x000042A0 + .word 0x000042A0, 0x000042E0 + .word 0x000042E0, 0x00004320 + .word 0x00004320, 0x00004344 + .word 0x00004344, 0x00004368 + .word 0x00004368, 0x000043B4 + .word 0x000043B4, 0x00004400 + .word 0x00004400, 0x00004454 + .word 0x00004454, 0x000044A8 + .word 0x000044A8, 0x000044D8 + .word 0x000044D8, 0x00004508 + .word 0x00004508, 0x00004528 + .word 0x00004528, 0x00004548 + .word 0x00004548, 0x000045D4 + .word 0x000045D4, 0x00004660 + .word 0x00004660, 0x000046EC + .word 0x000046EC, 0x00004778 + .word 0x00004778, 0x000047B8 + .word 0x000047B8, 0x000047F8 + .word 0x000047F8, 0x00004830 + .word 0x00004830, 0x00004868 + .word 0x00004868, 0x000048F4 + .word 0x000048F4, 0x00004980 + .word 0x00004980, 0x00004A0C + .word 0x00004A0C, 0x00004A98 + .word 0x00004A98, 0x00004B24 + .word 0x00004B24, 0x00004BB0 + .word 0x00004BB0, 0x00004C3C + .word 0x00004C3C, 0x00004CC8 + .word 0x00004CC8, 0x00004D54 + .word 0x00004D54, 0x00004DE0 + .word 0x00004DE0, 0x00004E6C + .word 0x00004E6C, 0x00004EF8 + .word 0x00004EF8, 0x00004F6C + .word 0x00004F6C, 0x00004FF8 + .word 0x00004FF8, 0x0000506C + .word 0x0000506C, 0x000050F8 + .word 0x000050F8, 0x0000515C + .word 0x0000515C, 0x000051C0 + .word 0x000051C0, 0x00005224 + .word 0x00005224, 0x00005288 + .word 0x00005288, 0x000052FC + .word 0x000052FC, 0x00005388 + .word 0x00005388, 0x000053FC + .word 0x000053FC, 0x00005488 + .word 0x00005488, 0x00005538 + .word 0x00005538, 0x000055E8 + .word 0x000055E8, 0x00005680 + .word 0x00005680, 0x00005718 + .word 0x00005718, 0x000057B0 + .word 0x000057B0, 0x00005848 + .word 0x00005848, 0x000058BC + .word 0x000058BC, 0x00005948 + .word 0x00005948, 0x000059BC + .word 0x000059BC, 0x00005A48 + .word 0x00005A48, 0x00005AC0 + .word 0x00005AC0, 0x00005B38 + .word 0x00005B38, 0x00005BB0 + .word 0x00005BB0, 0x00005C28 + .word 0x00005C28, 0x00005CB4 + .word 0x00005CB4, 0x00005D40 + .word 0x00005D40, 0x00005DCC + .word 0x00005DCC, 0x00005E58 + .word 0x00005E58, 0x00005F14 + .word 0x00005F14, 0x00005FD0 + .word 0x00005FD0, 0x0000608C + .word 0x0000608C, 0x00006148 + .word 0x00006148, 0x00006200 + .word 0x00006200, 0x000062B8 + .word 0x000062B8, 0x00006370 + .word 0x00006370, 0x00006428 + .word 0x00006428, 0x0000648C + .word 0x0000648C, 0x000064F0 + .word 0x000064F0, 0x00006554 + .word 0x00006554, 0x000065B8 + .word 0x000065B8, 0x00006644 + .word 0x00006644, 0x000066D0 + .word 0x000066D0, 0x00006748 + .word 0x00006748, 0x000067C0 + .word 0x000067C0, 0x00006838 + .word 0x00006838, 0x000068B0 + .word 0x000068B0, 0x00006958 + .word 0x00006958, 0x00006A00 + .word 0x00006A00, 0x00006A60 + .word 0x00006A60, 0x00006AC0 + .word 0x00006AC0, 0x00006B18 + .word 0x00006B18, 0x00006B70 + .word 0x00006B70, 0x00006BFC + .word 0x00006BFC, 0x00006C88 + .word 0x00006C88, 0x00006D14 + .word 0x00006D14, 0x00006DA0 + .word 0x00006DA0, 0x00006E2C + .word 0x00006E2C, 0x00006EB8 + .word 0x00006EB8, 0x00006F2C + .word 0x00006F2C, 0x00006FB8 + .word 0x00006FB8, 0x00007048 + .word 0x00007048, 0x000070D8 + .word 0x000070D8, 0x00007154 + .word 0x00007154, 0x000071D0 + .word 0x000071D0, 0x00007218 + .word 0x00007218, 0x00007260 + .word 0x00007260, 0x000072C4 + .word 0x000072C4, 0x00007328 + .word 0x00007328, 0x000073A0 + .word 0x000073A0, 0x00007418 + .word 0x00007418, 0x000074E4 + .word 0x000074E4, 0x00007570 + .word 0x00007570, 0x0000763C + .word 0x0000763C, 0x000076C8 + .word 0x000076C8, 0x00007728 + .word 0x00007728, 0x00007788 + .word 0x00007788, 0x000077C4 + .word 0x000077C4, 0x00007800 + .word 0x00007800, 0x00007824 + .word 0x00007824, 0x00007898 + .word 0x00007898, 0x00007934 + .word 0x00007934, 0x00007974 + .word 0x00007974, 0x000079DC + .word 0x000079DC, 0x000079E8 + .word 0x000079E8, 0x000079F4 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000079FC ; chunk size + .incbin "baserom.nds", 0x0, 0x68 + .incbin "baserom.nds", 0x68, 0x68 + .incbin "baserom.nds", 0xD0, 0x68 + .incbin "baserom.nds", 0x138, 0x68 + .incbin "baserom.nds", 0x1A0, 0x68 + .incbin "baserom.nds", 0x208, 0x68 + .incbin "baserom.nds", 0x270, 0x68 + .incbin "baserom.nds", 0x2D8, 0x68 + .incbin "baserom.nds", 0x340, 0x68 + .incbin "baserom.nds", 0x3A8, 0x68 + .incbin "baserom.nds", 0x410, 0x68 + .incbin "baserom.nds", 0x478, 0x68 + .incbin "baserom.nds", 0x4E0, 0x68 + .incbin "baserom.nds", 0x548, 0x68 + .incbin "baserom.nds", 0x5B0, 0x68 + .incbin "baserom.nds", 0x618, 0x68 + .incbin "baserom.nds", 0x680, 0x68 + .incbin "baserom.nds", 0x6E8, 0x68 + .incbin "baserom.nds", 0x750, 0x68 + .incbin "baserom.nds", 0x7B8, 0x68 + .incbin "baserom.nds", 0x820, 0x68 + .incbin "baserom.nds", 0x888, 0x68 + .incbin "baserom.nds", 0x8F0, 0x68 + .incbin "baserom.nds", 0x958, 0x68 + .incbin "baserom.nds", 0x9C0, 0x3C + .incbin "baserom.nds", 0x9FC, 0x3C + .incbin "baserom.nds", 0xA38, 0x3C + .incbin "baserom.nds", 0xA74, 0x3C + .incbin "baserom.nds", 0xAB0, 0x3C + .incbin "baserom.nds", 0xAEC, 0x3C + .incbin "baserom.nds", 0xB28, 0x40 + .incbin "baserom.nds", 0xB68, 0x40 + .incbin "baserom.nds", 0xBA8, 0x40 + .incbin "baserom.nds", 0xBE8, 0x48 + .incbin "baserom.nds", 0xC30, 0x48 + .incbin "baserom.nds", 0xC78, 0x48 + .incbin "baserom.nds", 0xCC0, 0x9C + .incbin "baserom.nds", 0xD5C, 0x9C + .incbin "baserom.nds", 0xDF8, 0x9C + .incbin "baserom.nds", 0xE94, 0x9C + .incbin "baserom.nds", 0xF30, 0x9C + .incbin "baserom.nds", 0xFCC, 0x9C + .incbin "baserom.nds", 0x1068, 0x9C + .incbin "baserom.nds", 0x1104, 0x9C + .incbin "baserom.nds", 0x11A0, 0x9C + .incbin "baserom.nds", 0x123C, 0x9C + .incbin "baserom.nds", 0x12D8, 0x9C + .incbin "baserom.nds", 0x1374, 0x9C + .incbin "baserom.nds", 0x1410, 0x4C + .incbin "baserom.nds", 0x145C, 0x28 + .incbin "baserom.nds", 0x1484, 0x28 + .incbin "baserom.nds", 0x14AC, 0x68 + .incbin "baserom.nds", 0x1514, 0x68 + .incbin "baserom.nds", 0x157C, 0x68 + .incbin "baserom.nds", 0x15E4, 0x68 + .incbin "baserom.nds", 0x164C, 0x68 + .incbin "baserom.nds", 0x16B4, 0x68 + .incbin "baserom.nds", 0x171C, 0x3C + .incbin "baserom.nds", 0x1758, 0x3C + .incbin "baserom.nds", 0x1794, 0x38 + .incbin "baserom.nds", 0x17CC, 0x38 + .incbin "baserom.nds", 0x1804, 0x68 + .incbin "baserom.nds", 0x186C, 0x68 + .incbin "baserom.nds", 0x18D4, 0x68 + .incbin "baserom.nds", 0x193C, 0x68 + .incbin "baserom.nds", 0x19A4, 0x68 + .incbin "baserom.nds", 0x1A0C, 0x68 + .incbin "baserom.nds", 0x1A74, 0x68 + .incbin "baserom.nds", 0x1ADC, 0x68 + .incbin "baserom.nds", 0x1B44, 0x54 + .incbin "baserom.nds", 0x1B98, 0x54 + .incbin "baserom.nds", 0x1BEC, 0x54 + .incbin "baserom.nds", 0x1C40, 0x40 + .incbin "baserom.nds", 0x1C80, 0x40 + .incbin "baserom.nds", 0x1CC0, 0x28 + .incbin "baserom.nds", 0x1CE8, 0x28 + .incbin "baserom.nds", 0x1D10, 0x28 + .incbin "baserom.nds", 0x1D38, 0x44 + .incbin "baserom.nds", 0x1D7C, 0x44 + .incbin "baserom.nds", 0x1DC0, 0x3C + .incbin "baserom.nds", 0x1DFC, 0x3C + .incbin "baserom.nds", 0x1E38, 0x48 + .incbin "baserom.nds", 0x1E80, 0x48 + .incbin "baserom.nds", 0x1EC8, 0x48 + .incbin "baserom.nds", 0x1F10, 0x68 + .incbin "baserom.nds", 0x1F78, 0x68 + .incbin "baserom.nds", 0x1FE0, 0x3C + .incbin "baserom.nds", 0x201C, 0x3C + .incbin "baserom.nds", 0x2058, 0x68 + .incbin "baserom.nds", 0x20C0, 0x68 + .incbin "baserom.nds", 0x2128, 0x68 + .incbin "baserom.nds", 0x2190, 0x68 + .incbin "baserom.nds", 0x21F8, 0x68 + .incbin "baserom.nds", 0x2260, 0x68 + .incbin "baserom.nds", 0x22C8, 0x40 + .incbin "baserom.nds", 0x2308, 0x40 + .incbin "baserom.nds", 0x2348, 0x40 + .incbin "baserom.nds", 0x2388, 0x40 + .incbin "baserom.nds", 0x23C8, 0x40 + .incbin "baserom.nds", 0x2408, 0x40 + .incbin "baserom.nds", 0x2448, 0x68 + .incbin "baserom.nds", 0x24B0, 0x68 + .incbin "baserom.nds", 0x2518, 0x68 + .incbin "baserom.nds", 0x2580, 0x68 + .incbin "baserom.nds", 0x25E8, 0x30 + .incbin "baserom.nds", 0x2618, 0x30 + .incbin "baserom.nds", 0x2648, 0x30 + .incbin "baserom.nds", 0x2678, 0x30 + .incbin "baserom.nds", 0x26A8, 0x30 + .incbin "baserom.nds", 0x26D8, 0x30 + .incbin "baserom.nds", 0x2708, 0x30 + .incbin "baserom.nds", 0x2738, 0x30 + .incbin "baserom.nds", 0x2768, 0x30 + .incbin "baserom.nds", 0x2798, 0x30 + .incbin "baserom.nds", 0x27C8, 0x68 + .incbin "baserom.nds", 0x2830, 0x68 + .incbin "baserom.nds", 0x2898, 0x68 + .incbin "baserom.nds", 0x2900, 0x68 + .incbin "baserom.nds", 0x2968, 0x68 + .incbin "baserom.nds", 0x29D0, 0x68 + .incbin "baserom.nds", 0x2A38, 0x24 + .incbin "baserom.nds", 0x2A5C, 0x24 + .incbin "baserom.nds", 0x2A80, 0x24 + .incbin "baserom.nds", 0x2AA4, 0x24 + .incbin "baserom.nds", 0x2AC8, 0x24 + .incbin "baserom.nds", 0x2AEC, 0x24 + .incbin "baserom.nds", 0x2B10, 0x68 + .incbin "baserom.nds", 0x2B78, 0x68 + .incbin "baserom.nds", 0x2BE0, 0x68 + .incbin "baserom.nds", 0x2C48, 0x68 + .incbin "baserom.nds", 0x2CB0, 0x68 + .incbin "baserom.nds", 0x2D18, 0x68 + .incbin "baserom.nds", 0x2D80, 0x68 + .incbin "baserom.nds", 0x2DE8, 0x68 + .incbin "baserom.nds", 0x2E50, 0x38 + .incbin "baserom.nds", 0x2E88, 0x38 + .incbin "baserom.nds", 0x2EC0, 0x68 + .incbin "baserom.nds", 0x2F28, 0x68 + .incbin "baserom.nds", 0x2F90, 0x44 + .incbin "baserom.nds", 0x2FD4, 0x44 + .incbin "baserom.nds", 0x3018, 0x8C + .incbin "baserom.nds", 0x30A4, 0x8C + .incbin "baserom.nds", 0x3130, 0x8C + .incbin "baserom.nds", 0x31BC, 0x8C + .incbin "baserom.nds", 0x3248, 0x8C + .incbin "baserom.nds", 0x32D4, 0x8C + .incbin "baserom.nds", 0x3360, 0x8C + .incbin "baserom.nds", 0x33EC, 0x8C + .incbin "baserom.nds", 0x3478, 0x8C + .incbin "baserom.nds", 0x3504, 0x8C + .incbin "baserom.nds", 0x3590, 0x8C + .incbin "baserom.nds", 0x361C, 0x8C + .incbin "baserom.nds", 0x36A8, 0x38 + .incbin "baserom.nds", 0x36E0, 0x38 + .incbin "baserom.nds", 0x3718, 0x38 + .incbin "baserom.nds", 0x3750, 0x38 + .incbin "baserom.nds", 0x3788, 0x38 + .incbin "baserom.nds", 0x37C0, 0x38 + .incbin "baserom.nds", 0x37F8, 0x38 + .incbin "baserom.nds", 0x3830, 0x38 + .incbin "baserom.nds", 0x3868, 0x68 + .incbin "baserom.nds", 0x38D0, 0x68 + .incbin "baserom.nds", 0x3938, 0x68 + .incbin "baserom.nds", 0x39A0, 0x68 + .incbin "baserom.nds", 0x3A08, 0x68 + .incbin "baserom.nds", 0x3A70, 0x68 + .incbin "baserom.nds", 0x3AD8, 0x68 + .incbin "baserom.nds", 0x3B40, 0x68 + .incbin "baserom.nds", 0x3BA8, 0x68 + .incbin "baserom.nds", 0x3C10, 0x68 + .incbin "baserom.nds", 0x3C78, 0x68 + .incbin "baserom.nds", 0x3CE0, 0x68 + .incbin "baserom.nds", 0x3D48, 0x34 + .incbin "baserom.nds", 0x3D7C, 0x34 + .incbin "baserom.nds", 0x3DB0, 0x4C + .incbin "baserom.nds", 0x3DFC, 0x4C + .incbin "baserom.nds", 0x3E48, 0x4C + .incbin "baserom.nds", 0x3E94, 0x4C + .incbin "baserom.nds", 0x3EE0, 0x44 + .incbin "baserom.nds", 0x3F24, 0x44 + .incbin "baserom.nds", 0x3F68, 0x8C + .incbin "baserom.nds", 0x3FF4, 0x8C + .incbin "baserom.nds", 0x4080, 0x38 + .incbin "baserom.nds", 0x40B8, 0x38 + .incbin "baserom.nds", 0x40F0, 0x4C + .incbin "baserom.nds", 0x413C, 0x4C + .incbin "baserom.nds", 0x4188, 0x8C + .incbin "baserom.nds", 0x4214, 0x8C + .incbin "baserom.nds", 0x42A0, 0x40 + .incbin "baserom.nds", 0x42E0, 0x40 + .incbin "baserom.nds", 0x4320, 0x24 + .incbin "baserom.nds", 0x4344, 0x24 + .incbin "baserom.nds", 0x4368, 0x4C + .incbin "baserom.nds", 0x43B4, 0x4C + .incbin "baserom.nds", 0x4400, 0x54 + .incbin "baserom.nds", 0x4454, 0x54 + .incbin "baserom.nds", 0x44A8, 0x30 + .incbin "baserom.nds", 0x44D8, 0x30 + .incbin "baserom.nds", 0x4508, 0x20 + .incbin "baserom.nds", 0x4528, 0x20 + .incbin "baserom.nds", 0x4548, 0x8C + .incbin "baserom.nds", 0x45D4, 0x8C + .incbin "baserom.nds", 0x4660, 0x8C + .incbin "baserom.nds", 0x46EC, 0x8C + .incbin "baserom.nds", 0x4778, 0x40 + .incbin "baserom.nds", 0x47B8, 0x40 + .incbin "baserom.nds", 0x47F8, 0x38 + .incbin "baserom.nds", 0x4830, 0x38 + .incbin "baserom.nds", 0x4868, 0x8C + .incbin "baserom.nds", 0x48F4, 0x8C + .incbin "baserom.nds", 0x4980, 0x8C + .incbin "baserom.nds", 0x4A0C, 0x8C + .incbin "baserom.nds", 0x4A98, 0x8C + .incbin "baserom.nds", 0x4B24, 0x8C + .incbin "baserom.nds", 0x4BB0, 0x8C + .incbin "baserom.nds", 0x4C3C, 0x8C + .incbin "baserom.nds", 0x4CC8, 0x8C + .incbin "baserom.nds", 0x4D54, 0x8C + .incbin "baserom.nds", 0x4DE0, 0x8C + .incbin "baserom.nds", 0x4E6C, 0x8C + .incbin "baserom.nds", 0x4EF8, 0x74 + .incbin "baserom.nds", 0x4F6C, 0x8C + .incbin "baserom.nds", 0x4FF8, 0x74 + .incbin "baserom.nds", 0x506C, 0x8C + .incbin "baserom.nds", 0x50F8, 0x64 + .incbin "baserom.nds", 0x515C, 0x64 + .incbin "baserom.nds", 0x51C0, 0x64 + .incbin "baserom.nds", 0x5224, 0x64 + .incbin "baserom.nds", 0x5288, 0x74 + .incbin "baserom.nds", 0x52FC, 0x8C + .incbin "baserom.nds", 0x5388, 0x74 + .incbin "baserom.nds", 0x53FC, 0x8C + .incbin "baserom.nds", 0x5488, 0xB0 + .incbin "baserom.nds", 0x5538, 0xB0 + .incbin "baserom.nds", 0x55E8, 0x98 + .incbin "baserom.nds", 0x5680, 0x98 + .incbin "baserom.nds", 0x5718, 0x98 + .incbin "baserom.nds", 0x57B0, 0x98 + .incbin "baserom.nds", 0x5848, 0x74 + .incbin "baserom.nds", 0x58BC, 0x8C + .incbin "baserom.nds", 0x5948, 0x74 + .incbin "baserom.nds", 0x59BC, 0x8C + .incbin "baserom.nds", 0x5A48, 0x78 + .incbin "baserom.nds", 0x5AC0, 0x78 + .incbin "baserom.nds", 0x5B38, 0x78 + .incbin "baserom.nds", 0x5BB0, 0x78 + .incbin "baserom.nds", 0x5C28, 0x8C + .incbin "baserom.nds", 0x5CB4, 0x8C + .incbin "baserom.nds", 0x5D40, 0x8C + .incbin "baserom.nds", 0x5DCC, 0x8C + .incbin "baserom.nds", 0x5E58, 0xBC + .incbin "baserom.nds", 0x5F14, 0xBC + .incbin "baserom.nds", 0x5FD0, 0xBC + .incbin "baserom.nds", 0x608C, 0xBC + .incbin "baserom.nds", 0x6148, 0xB8 + .incbin "baserom.nds", 0x6200, 0xB8 + .incbin "baserom.nds", 0x62B8, 0xB8 + .incbin "baserom.nds", 0x6370, 0xB8 + .incbin "baserom.nds", 0x6428, 0x64 + .incbin "baserom.nds", 0x648C, 0x64 + .incbin "baserom.nds", 0x64F0, 0x64 + .incbin "baserom.nds", 0x6554, 0x64 + .incbin "baserom.nds", 0x65B8, 0x8C + .incbin "baserom.nds", 0x6644, 0x8C + .incbin "baserom.nds", 0x66D0, 0x78 + .incbin "baserom.nds", 0x6748, 0x78 + .incbin "baserom.nds", 0x67C0, 0x78 + .incbin "baserom.nds", 0x6838, 0x78 + .incbin "baserom.nds", 0x68B0, 0xA8 + .incbin "baserom.nds", 0x6958, 0xA8 + .incbin "baserom.nds", 0x6A00, 0x60 + .incbin "baserom.nds", 0x6A60, 0x60 + .incbin "baserom.nds", 0x6AC0, 0x58 + .incbin "baserom.nds", 0x6B18, 0x58 + .incbin "baserom.nds", 0x6B70, 0x8C + .incbin "baserom.nds", 0x6BFC, 0x8C + .incbin "baserom.nds", 0x6C88, 0x8C + .incbin "baserom.nds", 0x6D14, 0x8C + .incbin "baserom.nds", 0x6DA0, 0x8C + .incbin "baserom.nds", 0x6E2C, 0x8C + .incbin "baserom.nds", 0x6EB8, 0x74 + .incbin "baserom.nds", 0x6F2C, 0x8C + .incbin "baserom.nds", 0x6FB8, 0x90 + .incbin "baserom.nds", 0x7048, 0x90 + .incbin "baserom.nds", 0x70D8, 0x7C + .incbin "baserom.nds", 0x7154, 0x7C + .incbin "baserom.nds", 0x71D0, 0x48 + .incbin "baserom.nds", 0x7218, 0x48 + .incbin "baserom.nds", 0x7260, 0x64 + .incbin "baserom.nds", 0x72C4, 0x64 + .incbin "baserom.nds", 0x7328, 0x78 + .incbin "baserom.nds", 0x73A0, 0x78 + .incbin "baserom.nds", 0x7418, 0xCC + .incbin "baserom.nds", 0x74E4, 0x8C + .incbin "baserom.nds", 0x7570, 0xCC + .incbin "baserom.nds", 0x763C, 0x8C + .incbin "baserom.nds", 0x76C8, 0x60 + .incbin "baserom.nds", 0x7728, 0x60 + .incbin "baserom.nds", 0x7788, 0x3C + .incbin "baserom.nds", 0x77C4, 0x3C + .incbin "baserom.nds", 0x7800, 0x24 + .incbin "baserom.nds", 0x7824, 0x74 + .incbin "baserom.nds", 0x7898, 0x9C + .incbin "baserom.nds", 0x7934, 0x40 + .incbin "baserom.nds", 0x7974, 0x68 + .incbin "baserom.nds", 0x79DC, 0xC + .incbin "baserom.nds", 0x79E8, 0xC + .balign 4, 255 diff --git a/narc/build_model/build_model.narc.s b/narc/build_model/build_model.narc.s new file mode 100644 index 00000000..54bc3cb1 --- /dev/null +++ b/narc/build_model/build_model.narc.s @@ -0,0 +1,1096 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x001D45CC ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000010C4 ; chunk size + .short 535 ; number of files + .balign 4 + .word 0x00000000, 0x0000076C + .word 0x0000076C, 0x00001280 + .word 0x00001280, 0x00001590 + .word 0x00001590, 0x000027AC + .word 0x000027AC, 0x00004E04 + .word 0x00004E04, 0x00006E68 + .word 0x00006E68, 0x0000793C + .word 0x0000793C, 0x000081A8 + .word 0x000081A8, 0x0000B624 + .word 0x0000B624, 0x0000DE44 + .word 0x0000DE44, 0x00010654 + .word 0x00010654, 0x000126E8 + .word 0x000126E8, 0x00015774 + .word 0x00015774, 0x00019300 + .word 0x00019300, 0x0001C040 + .word 0x0001C040, 0x0001C528 + .word 0x0001C528, 0x0001CD64 + .word 0x0001CD64, 0x0001F9DC + .word 0x0001F9DC, 0x00021024 + .word 0x00021024, 0x000224F8 + .word 0x000224F8, 0x00024B98 + .word 0x00024B98, 0x00026E10 + .word 0x00026E10, 0x00028738 + .word 0x00028738, 0x0002AD84 + .word 0x0002AD84, 0x0002D738 + .word 0x0002D738, 0x0002FC5C + .word 0x0002FC5C, 0x00030898 + .word 0x00030898, 0x0003236C + .word 0x0003236C, 0x000326CC + .word 0x000326CC, 0x00032A10 + .word 0x00032A10, 0x00034BCC + .word 0x00034BCC, 0x0003614C + .word 0x0003614C, 0x00037694 + .word 0x00037694, 0x00037910 + .word 0x00037910, 0x0003A174 + .word 0x0003A174, 0x0003A42C + .word 0x0003A42C, 0x0003A8AC + .word 0x0003A8AC, 0x0003C96C + .word 0x0003C96C, 0x0003E440 + .word 0x0003E440, 0x000402EC + .word 0x000402EC, 0x000422F4 + .word 0x000422F4, 0x00042AC4 + .word 0x00042AC4, 0x0004341C + .word 0x0004341C, 0x00043B70 + .word 0x00043B70, 0x00044584 + .word 0x00044584, 0x0004503C + .word 0x0004503C, 0x00045904 + .word 0x00045904, 0x000473D8 + .word 0x000473D8, 0x00048DE8 + .word 0x00048DE8, 0x0004AF4C + .word 0x0004AF4C, 0x0004B210 + .word 0x0004B210, 0x0004CC08 + .word 0x0004CC08, 0x0004E424 + .word 0x0004E424, 0x0004F5F0 + .word 0x0004F5F0, 0x00052774 + .word 0x00052774, 0x000543C4 + .word 0x000543C4, 0x00055E3C + .word 0x00055E3C, 0x00056168 + .word 0x00056168, 0x0005642C + .word 0x0005642C, 0x000566F0 + .word 0x000566F0, 0x000568E8 + .word 0x000568E8, 0x00056D78 + .word 0x00056D78, 0x00058CEC + .word 0x00058CEC, 0x0005AB78 + .word 0x0005AB78, 0x0005BBEC + .word 0x0005BBEC, 0x0005E744 + .word 0x0005E744, 0x0005EC24 + .word 0x0005EC24, 0x0005F0D0 + .word 0x0005F0D0, 0x0005F57C + .word 0x0005F57C, 0x0005FA38 + .word 0x0005FA38, 0x000604C8 + .word 0x000604C8, 0x00061DD4 + .word 0x00061DD4, 0x00062864 + .word 0x00062864, 0x000633D4 + .word 0x000633D4, 0x00063AFC + .word 0x00063AFC, 0x00064088 + .word 0x00064088, 0x000648FC + .word 0x000648FC, 0x00064D90 + .word 0x00064D90, 0x00065078 + .word 0x00065078, 0x0006572C + .word 0x0006572C, 0x000660A8 + .word 0x000660A8, 0x00066A34 + .word 0x00066A34, 0x00067484 + .word 0x00067484, 0x00067D10 + .word 0x00067D10, 0x00068428 + .word 0x00068428, 0x00068D30 + .word 0x00068D30, 0x000695B0 + .word 0x000695B0, 0x0006A010 + .word 0x0006A010, 0x0006A3B8 + .word 0x0006A3B8, 0x0006AD44 + .word 0x0006AD44, 0x0006B048 + .word 0x0006B048, 0x0006B4B4 + .word 0x0006B4B4, 0x0006B85C + .word 0x0006B85C, 0x0006C2E0 + .word 0x0006C2E0, 0x0006C688 + .word 0x0006C688, 0x0006CA0C + .word 0x0006CA0C, 0x0006CD10 + .word 0x0006CD10, 0x0006D39C + .word 0x0006D39C, 0x0006DA28 + .word 0x0006DA28, 0x0006E0B4 + .word 0x0006E0B4, 0x0006E544 + .word 0x0006E544, 0x0006F15C + .word 0x0006F15C, 0x0006F368 + .word 0x0006F368, 0x0006F650 + .word 0x0006F650, 0x0006FF28 + .word 0x0006FF28, 0x00070B7C + .word 0x00070B7C, 0x00071940 + .word 0x00071940, 0x00071C2C + .word 0x00071C2C, 0x000720AC + .word 0x000720AC, 0x000724E4 + .word 0x000724E4, 0x00075990 + .word 0x00075990, 0x00075D38 + .word 0x00075D38, 0x00076A8C + .word 0x00076A8C, 0x000773A4 + .word 0x000773A4, 0x000790C4 + .word 0x000790C4, 0x00079E2C + .word 0x00079E2C, 0x0007B198 + .word 0x0007B198, 0x0007B498 + .word 0x0007B498, 0x0007B798 + .word 0x0007B798, 0x0007C614 + .word 0x0007C614, 0x0007D248 + .word 0x0007D248, 0x0007DB48 + .word 0x0007DB48, 0x0007E954 + .word 0x0007E954, 0x000806CC + .word 0x000806CC, 0x00080EAC + .word 0x00080EAC, 0x000810B8 + .word 0x000810B8, 0x000812C4 + .word 0x000812C4, 0x000814D0 + .word 0x000814D0, 0x00081900 + .word 0x00081900, 0x00081B0C + .word 0x00081B0C, 0x00083178 + .word 0x00083178, 0x00084888 + .word 0x00084888, 0x0008509C + .word 0x0008509C, 0x000852A8 + .word 0x000852A8, 0x000854B4 + .word 0x000854B4, 0x00086274 + .word 0x00086274, 0x00087034 + .word 0x00087034, 0x00087360 + .word 0x00087360, 0x00087708 + .word 0x00087708, 0x00087AB0 + .word 0x00087AB0, 0x00087E58 + .word 0x00087E58, 0x00088064 + .word 0x00088064, 0x00088270 + .word 0x00088270, 0x0008847C + .word 0x0008847C, 0x00088688 + .word 0x00088688, 0x000889C4 + .word 0x000889C4, 0x0008A528 + .word 0x0008A528, 0x0008D044 + .word 0x0008D044, 0x0008F414 + .word 0x0008F414, 0x0008FD90 + .word 0x0008FD90, 0x00090148 + .word 0x00090148, 0x0009045C + .word 0x0009045C, 0x000911C4 + .word 0x000911C4, 0x000913D0 + .word 0x000913D0, 0x000916E0 + .word 0x000916E0, 0x00091FC4 + .word 0x00091FC4, 0x00092C20 + .word 0x00092C20, 0x00092EF4 + .word 0x00092EF4, 0x00093964 + .word 0x00093964, 0x00094160 + .word 0x00094160, 0x00094F20 + .word 0x00094F20, 0x00095B08 + .word 0x00095B08, 0x00095E08 + .word 0x00095E08, 0x00096834 + .word 0x00096834, 0x00097260 + .word 0x00097260, 0x00097C8C + .word 0x00097C8C, 0x000986B8 + .word 0x000986B8, 0x000990E4 + .word 0x000990E4, 0x00099B10 + .word 0x00099B10, 0x0009A53C + .word 0x0009A53C, 0x0009AF68 + .word 0x0009AF68, 0x0009B994 + .word 0x0009B994, 0x0009C3C0 + .word 0x0009C3C0, 0x0009CDEC + .word 0x0009CDEC, 0x0009D818 + .word 0x0009D818, 0x0009E434 + .word 0x0009E434, 0x0009EDEC + .word 0x0009EDEC, 0x0009F9D4 + .word 0x0009F9D4, 0x0009FC94 + .word 0x0009FC94, 0x000A0F5C + .word 0x000A0F5C, 0x000A126C + .word 0x000A126C, 0x000A157C + .word 0x000A157C, 0x000A1F08 + .word 0x000A1F08, 0x000A2884 + .word 0x000A2884, 0x000A3210 + .word 0x000A3210, 0x000A3B8C + .word 0x000A3B8C, 0x000A6408 + .word 0x000A6408, 0x000A6898 + .word 0x000A6898, 0x000A8678 + .word 0x000A8678, 0x000AA270 + .word 0x000AA270, 0x000AC538 + .word 0x000AC538, 0x000ACD84 + .word 0x000ACD84, 0x000AD8C8 + .word 0x000AD8C8, 0x000AEAE4 + .word 0x000AEAE4, 0x000B1E58 + .word 0x000B1E58, 0x000B4BD4 + .word 0x000B4BD4, 0x000B5928 + .word 0x000B5928, 0x000B79F4 + .word 0x000B79F4, 0x000B96D8 + .word 0x000B96D8, 0x000BA42C + .word 0x000BA42C, 0x000BB190 + .word 0x000BB190, 0x000BBEE4 + .word 0x000BBEE4, 0x000BDAB8 + .word 0x000BDAB8, 0x000BF1E8 + .word 0x000BF1E8, 0x000BFF3C + .word 0x000BFF3C, 0x000C1ED0 + .word 0x000C1ED0, 0x000C3EC4 + .word 0x000C3EC4, 0x000C6560 + .word 0x000C6560, 0x000C7D2C + .word 0x000C7D2C, 0x000C8FD0 + .word 0x000C8FD0, 0x000C9A34 + .word 0x000C9A34, 0x000CA57C + .word 0x000CA57C, 0x000CE708 + .word 0x000CE708, 0x000D0590 + .word 0x000D0590, 0x000D38B8 + .word 0x000D38B8, 0x000D460C + .word 0x000D460C, 0x000D7128 + .word 0x000D7128, 0x000D8F08 + .word 0x000D8F08, 0x000D9A50 + .word 0x000D9A50, 0x000DBB1C + .word 0x000DBB1C, 0x000DC870 + .word 0x000DC870, 0x000DE484 + .word 0x000DE484, 0x000DEFC8 + .word 0x000DEFC8, 0x000E1048 + .word 0x000E1048, 0x000E46E0 + .word 0x000E46E0, 0x000E5378 + .word 0x000E5378, 0x000E73E8 + .word 0x000E73E8, 0x000E960C + .word 0x000E960C, 0x000ECB90 + .word 0x000ECB90, 0x000ED910 + .word 0x000ED910, 0x000EDD90 + .word 0x000EDD90, 0x000EEAE4 + .word 0x000EEAE4, 0x000EF838 + .word 0x000EF838, 0x000F1524 + .word 0x000F1524, 0x000F33FC + .word 0x000F33FC, 0x000F4094 + .word 0x000F4094, 0x000F66E0 + .word 0x000F66E0, 0x000F7330 + .word 0x000F7330, 0x000F8240 + .word 0x000F8240, 0x000F8604 + .word 0x000F8604, 0x000F89C8 + .word 0x000F89C8, 0x000F8D8C + .word 0x000F8D8C, 0x000FA63C + .word 0x000FA63C, 0x000FB4A4 + .word 0x000FB4A4, 0x000FC9E4 + .word 0x000FC9E4, 0x000FE9E4 + .word 0x000FE9E4, 0x000FEEA0 + .word 0x000FEEA0, 0x000FF9C0 + .word 0x000FF9C0, 0x0010074C + .word 0x0010074C, 0x00100A0C + .word 0x00100A0C, 0x0010104C + .word 0x0010104C, 0x00101810 + .word 0x00101810, 0x00102B1C + .word 0x00102B1C, 0x00103354 + .word 0x00103354, 0x001037E4 + .word 0x001037E4, 0x00103C74 + .word 0x00103C74, 0x00104664 + .word 0x00104664, 0x001052C0 + .word 0x001052C0, 0x001058C8 + .word 0x001058C8, 0x00106048 + .word 0x00106048, 0x001066F0 + .word 0x001066F0, 0x00106C0C + .word 0x00106C0C, 0x00108550 + .word 0x00108550, 0x0010A510 + .word 0x0010A510, 0x0010AD6C + .word 0x0010AD6C, 0x0010D820 + .word 0x0010D820, 0x0010DFE4 + .word 0x0010DFE4, 0x0010EC08 + .word 0x0010EC08, 0x0010F74C + .word 0x0010F74C, 0x00110290 + .word 0x00110290, 0x00110EB4 + .word 0x00110EB4, 0x0011157C + .word 0x0011157C, 0x00111A0C + .word 0x00111A0C, 0x00112550 + .word 0x00112550, 0x00113094 + .word 0x00113094, 0x0011402C + .word 0x0011402C, 0x00114E58 + .word 0x00114E58, 0x00115854 + .word 0x00115854, 0x001164A4 + .word 0x001164A4, 0x0011734C + .word 0x0011734C, 0x0011830C + .word 0x0011830C, 0x001189C8 + .word 0x001189C8, 0x00118CD8 + .word 0x00118CD8, 0x00119004 + .word 0x00119004, 0x00119304 + .word 0x00119304, 0x0011999C + .word 0x0011999C, 0x00119CAC + .word 0x00119CAC, 0x0011A25C + .word 0x0011A25C, 0x0011A844 + .word 0x0011A844, 0x0011ADD0 + .word 0x0011ADD0, 0x0011B39C + .word 0x0011B39C, 0x0011B978 + .word 0x0011B978, 0x0011BF64 + .word 0x0011BF64, 0x0011C4E8 + .word 0x0011C4E8, 0x0011CB28 + .word 0x0011CB28, 0x0011D168 + .word 0x0011D168, 0x0011D7A8 + .word 0x0011D7A8, 0x0011DDE8 + .word 0x0011DDE8, 0x0011E154 + .word 0x0011E154, 0x0012106C + .word 0x0012106C, 0x00123938 + .word 0x00123938, 0x00125AD0 + .word 0x00125AD0, 0x00127400 + .word 0x00127400, 0x00127990 + .word 0x00127990, 0x00127F68 + .word 0x00127F68, 0x00128A3C + .word 0x00128A3C, 0x00129510 + .word 0x00129510, 0x0012A0FC + .word 0x0012A0FC, 0x0012AD18 + .word 0x0012AD18, 0x0012B7D8 + .word 0x0012B7D8, 0x0012C298 + .word 0x0012C298, 0x0012CA94 + .word 0x0012CA94, 0x0012CF40 + .word 0x0012CF40, 0x0012D3FC + .word 0x0012D3FC, 0x0012E9B8 + .word 0x0012E9B8, 0x00130C14 + .word 0x00130C14, 0x0013171C + .word 0x0013171C, 0x00132224 + .word 0x00132224, 0x00132D2C + .word 0x00132D2C, 0x00133834 + .word 0x00133834, 0x0013433C + .word 0x0013433C, 0x00135878 + .word 0x00135878, 0x00136DB4 + .word 0x00136DB4, 0x001382F0 + .word 0x001382F0, 0x0013982C + .word 0x0013982C, 0x0013AD68 + .word 0x0013AD68, 0x0013C2A4 + .word 0x0013C2A4, 0x0013D7E0 + .word 0x0013D7E0, 0x0013ED1C + .word 0x0013ED1C, 0x0013FA08 + .word 0x0013FA08, 0x001406F4 + .word 0x001406F4, 0x00141BE0 + .word 0x00141BE0, 0x0014278C + .word 0x0014278C, 0x0014334C + .word 0x0014334C, 0x00143F0C + .word 0x00143F0C, 0x00144ACC + .word 0x00144ACC, 0x0014568C + .word 0x0014568C, 0x001459A8 + .word 0x001459A8, 0x00145CC4 + .word 0x00145CC4, 0x00145FE0 + .word 0x00145FE0, 0x001462FC + .word 0x001462FC, 0x00146618 + .word 0x00146618, 0x00146934 + .word 0x00146934, 0x00146C50 + .word 0x00146C50, 0x00146F6C + .word 0x00146F6C, 0x00147288 + .word 0x00147288, 0x001475A4 + .word 0x001475A4, 0x001478C0 + .word 0x001478C0, 0x00147BDC + .word 0x00147BDC, 0x00147EF8 + .word 0x00147EF8, 0x00148214 + .word 0x00148214, 0x00148530 + .word 0x00148530, 0x0014884C + .word 0x0014884C, 0x00148B68 + .word 0x00148B68, 0x00148E84 + .word 0x00148E84, 0x001491A0 + .word 0x001491A0, 0x001494BC + .word 0x001494BC, 0x001497D8 + .word 0x001497D8, 0x00149AF4 + .word 0x00149AF4, 0x00149E10 + .word 0x00149E10, 0x0014A12C + .word 0x0014A12C, 0x0014A44C + .word 0x0014A44C, 0x0014A76C + .word 0x0014A76C, 0x0014AA8C + .word 0x0014AA8C, 0x0014ADAC + .word 0x0014ADAC, 0x0014B0CC + .word 0x0014B0CC, 0x0014BDDC + .word 0x0014BDDC, 0x0014CAEC + .word 0x0014CAEC, 0x0014D7FC + .word 0x0014D7FC, 0x0014E50C + .word 0x0014E50C, 0x0014ED60 + .word 0x0014ED60, 0x0014F5A8 + .word 0x0014F5A8, 0x0014FDEC + .word 0x0014FDEC, 0x00150634 + .word 0x00150634, 0x00150954 + .word 0x00150954, 0x00150C74 + .word 0x00150C74, 0x00150F94 + .word 0x00150F94, 0x001512B4 + .word 0x001512B4, 0x00151AEC + .word 0x00151AEC, 0x00152358 + .word 0x00152358, 0x00153358 + .word 0x00153358, 0x001537D8 + .word 0x001537D8, 0x00153C58 + .word 0x00153C58, 0x001540D8 + .word 0x001540D8, 0x00154568 + .word 0x00154568, 0x001549E8 + .word 0x001549E8, 0x00154E78 + .word 0x00154E78, 0x001552F8 + .word 0x001552F8, 0x00155778 + .word 0x00155778, 0x00155C08 + .word 0x00155C08, 0x00156098 + .word 0x00156098, 0x00156528 + .word 0x00156528, 0x001569B8 + .word 0x001569B8, 0x00156E38 + .word 0x00156E38, 0x001572C8 + .word 0x001572C8, 0x00157758 + .word 0x00157758, 0x00157BD8 + .word 0x00157BD8, 0x00158058 + .word 0x00158058, 0x001584D8 + .word 0x001584D8, 0x00158958 + .word 0x00158958, 0x00158DE8 + .word 0x00158DE8, 0x00159268 + .word 0x00159268, 0x001596F8 + .word 0x001596F8, 0x00159B78 + .word 0x00159B78, 0x00159FF8 + .word 0x00159FF8, 0x0015A488 + .word 0x0015A488, 0x0015A918 + .word 0x0015A918, 0x0015ADA8 + .word 0x0015ADA8, 0x0015B228 + .word 0x0015B228, 0x0015B6A8 + .word 0x0015B6A8, 0x0015BB38 + .word 0x0015BB38, 0x0015BFB8 + .word 0x0015BFB8, 0x0015C448 + .word 0x0015C448, 0x0015C8C8 + .word 0x0015C8C8, 0x0015CD58 + .word 0x0015CD58, 0x0015D1E8 + .word 0x0015D1E8, 0x0015D668 + .word 0x0015D668, 0x0015DAF8 + .word 0x0015DAF8, 0x0015F034 + .word 0x0015F034, 0x0015F678 + .word 0x0015F678, 0x00160BB4 + .word 0x00160BB4, 0x00161044 + .word 0x00161044, 0x00161DAC + .word 0x00161DAC, 0x001625A0 + .word 0x001625A0, 0x001644F4 + .word 0x001644F4, 0x00165B78 + .word 0x00165B78, 0x00167288 + .word 0x00167288, 0x00167708 + .word 0x00167708, 0x001679C8 + .word 0x001679C8, 0x00167CDC + .word 0x00167CDC, 0x00167FF0 + .word 0x00167FF0, 0x00168304 + .word 0x00168304, 0x00168618 + .word 0x00168618, 0x001695D0 + .word 0x001695D0, 0x0016A624 + .word 0x0016A624, 0x0016B908 + .word 0x0016B908, 0x0016C324 + .word 0x0016C324, 0x0016C5B4 + .word 0x0016C5B4, 0x0016CA60 + .word 0x0016CA60, 0x0016E5F8 + .word 0x0016E5F8, 0x0017015C + .word 0x0017015C, 0x001707B0 + .word 0x001707B0, 0x00170D04 + .word 0x00170D04, 0x00173A20 + .word 0x00173A20, 0x00173ECC + .word 0x00173ECC, 0x00175250 + .word 0x00175250, 0x001758E0 + .word 0x001758E0, 0x001765CC + .word 0x001765CC, 0x00178864 + .word 0x00178864, 0x0017AB30 + .word 0x0017AB30, 0x0017D188 + .word 0x0017D188, 0x0017F1EC + .word 0x0017F1EC, 0x00181F04 + .word 0x00181F04, 0x00182C00 + .word 0x00182C00, 0x00184418 + .word 0x00184418, 0x0018609C + .word 0x0018609C, 0x0018651C + .word 0x0018651C, 0x00187FBC + .word 0x00187FBC, 0x00189A5C + .word 0x00189A5C, 0x0018B534 + .word 0x0018B534, 0x0018D00C + .word 0x0018D00C, 0x0018EB28 + .word 0x0018EB28, 0x00190644 + .word 0x00190644, 0x001930CC + .word 0x001930CC, 0x00195B4C + .word 0x00195B4C, 0x00195E4C + .word 0x00195E4C, 0x0019614C + .word 0x0019614C, 0x0019644C + .word 0x0019644C, 0x00196E34 + .word 0x00196E34, 0x001976E4 + .word 0x001976E4, 0x0019BDE0 + .word 0x0019BDE0, 0x0019C62C + .word 0x0019C62C, 0x0019CE88 + .word 0x0019CE88, 0x0019D784 + .word 0x0019D784, 0x0019DC50 + .word 0x0019DC50, 0x0019F95C + .word 0x0019F95C, 0x001A0658 + .word 0x001A0658, 0x001A1B88 + .word 0x001A1B88, 0x001A53D0 + .word 0x001A53D0, 0x001A5EF4 + .word 0x001A5EF4, 0x001A6984 + .word 0x001A6984, 0x001A7428 + .word 0x001A7428, 0x001A7EA8 + .word 0x001A7EA8, 0x001A89A4 + .word 0x001A89A4, 0x001A8D10 + .word 0x001A8D10, 0x001A90A0 + .word 0x001A90A0, 0x001A96C0 + .word 0x001A96C0, 0x001A9CE0 + .word 0x001A9CE0, 0x001AA4B4 + .word 0x001AA4B4, 0x001AA944 + .word 0x001AA944, 0x001AADC8 + .word 0x001AADC8, 0x001AB0D8 + .word 0x001AB0D8, 0x001AB3D8 + .word 0x001AB3D8, 0x001ABE50 + .word 0x001ABE50, 0x001ACA64 + .word 0x001ACA64, 0x001AE344 + .word 0x001AE344, 0x001AFD50 + .word 0x001AFD50, 0x001B191C + .word 0x001B191C, 0x001B2398 + .word 0x001B2398, 0x001B4178 + .word 0x001B4178, 0x001B6574 + .word 0x001B6574, 0x001B7004 + .word 0x001B7004, 0x001B77B8 + .word 0x001B77B8, 0x001B7AA0 + .word 0x001B7AA0, 0x001B866C + .word 0x001B866C, 0x001B91F8 + .word 0x001B91F8, 0x001BA5F8 + .word 0x001BA5F8, 0x001BC724 + .word 0x001BC724, 0x001BD868 + .word 0x001BD868, 0x001BE99C + .word 0x001BE99C, 0x001BFAE0 + .word 0x001BFAE0, 0x001C0C14 + .word 0x001C0C14, 0x001C1D58 + .word 0x001C1D58, 0x001C2E8C + .word 0x001C2E8C, 0x001C4114 + .word 0x001C4114, 0x001C4AFC + .word 0x001C4AFC, 0x001C5820 + .word 0x001C5820, 0x001C5D6C + .word 0x001C5D6C, 0x001C61FC + .word 0x001C61FC, 0x001C658C + .word 0x001C658C, 0x001C691C + .word 0x001C691C, 0x001C6CAC + .word 0x001C6CAC, 0x001C7834 + .word 0x001C7834, 0x001C859C + .word 0x001C859C, 0x001CA9C0 + .word 0x001CA9C0, 0x001CAE50 + .word 0x001CAE50, 0x001CB644 + .word 0x001CB644, 0x001CBAF0 + .word 0x001CBAF0, 0x001CCC34 + .word 0x001CCC34, 0x001CDD68 + .word 0x001CDD68, 0x001CEEAC + .word 0x001CEEAC, 0x001CFFE0 + .word 0x001CFFE0, 0x001D1124 + .word 0x001D1124, 0x001D2258 + .word 0x001D2258, 0x001D34E0 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x001D34E8 ; chunk size + .incbin "baserom.nds", 0x0, 0x76C + .incbin "baserom.nds", 0x76C, 0xB14 + .incbin "baserom.nds", 0x1280, 0x310 + .incbin "baserom.nds", 0x1590, 0x121C + .incbin "baserom.nds", 0x27AC, 0x2658 + .incbin "baserom.nds", 0x4E04, 0x2064 + .incbin "baserom.nds", 0x6E68, 0xAD4 + .incbin "baserom.nds", 0x793C, 0x86C + .incbin "baserom.nds", 0x81A8, 0x347C + .incbin "baserom.nds", 0xB624, 0x2820 + .incbin "baserom.nds", 0xDE44, 0x2810 + .incbin "baserom.nds", 0x10654, 0x2094 + .incbin "baserom.nds", 0x126E8, 0x308C + .incbin "baserom.nds", 0x15774, 0x3B8C + .incbin "baserom.nds", 0x19300, 0x2D40 + .incbin "baserom.nds", 0x1C040, 0x4E8 + .incbin "baserom.nds", 0x1C528, 0x83C + .incbin "baserom.nds", 0x1CD64, 0x2C78 + .incbin "baserom.nds", 0x1F9DC, 0x1648 + .incbin "baserom.nds", 0x21024, 0x14D4 + .incbin "baserom.nds", 0x224F8, 0x26A0 + .incbin "baserom.nds", 0x24B98, 0x2278 + .incbin "baserom.nds", 0x26E10, 0x1928 + .incbin "baserom.nds", 0x28738, 0x264C + .incbin "baserom.nds", 0x2AD84, 0x29B4 + .incbin "baserom.nds", 0x2D738, 0x2524 + .incbin "baserom.nds", 0x2FC5C, 0xC3C + .incbin "baserom.nds", 0x30898, 0x1AD4 + .incbin "baserom.nds", 0x3236C, 0x360 + .incbin "baserom.nds", 0x326CC, 0x344 + .incbin "baserom.nds", 0x32A10, 0x21BC + .incbin "baserom.nds", 0x34BCC, 0x1580 + .incbin "baserom.nds", 0x3614C, 0x1548 + .incbin "baserom.nds", 0x37694, 0x27C + .incbin "baserom.nds", 0x37910, 0x2864 + .incbin "baserom.nds", 0x3A174, 0x2B8 + .incbin "baserom.nds", 0x3A42C, 0x480 + .incbin "baserom.nds", 0x3A8AC, 0x20C0 + .incbin "baserom.nds", 0x3C96C, 0x1AD4 + .incbin "baserom.nds", 0x3E440, 0x1EAC + .incbin "baserom.nds", 0x402EC, 0x2008 + .incbin "baserom.nds", 0x422F4, 0x7D0 + .incbin "baserom.nds", 0x42AC4, 0x958 + .incbin "baserom.nds", 0x4341C, 0x754 + .incbin "baserom.nds", 0x43B70, 0xA14 + .incbin "baserom.nds", 0x44584, 0xAB8 + .incbin "baserom.nds", 0x4503C, 0x8C8 + .incbin "baserom.nds", 0x45904, 0x1AD4 + .incbin "baserom.nds", 0x473D8, 0x1A10 + .incbin "baserom.nds", 0x48DE8, 0x2164 + .incbin "baserom.nds", 0x4AF4C, 0x2C4 + .incbin "baserom.nds", 0x4B210, 0x19F8 + .incbin "baserom.nds", 0x4CC08, 0x181C + .incbin "baserom.nds", 0x4E424, 0x11CC + .incbin "baserom.nds", 0x4F5F0, 0x3184 + .incbin "baserom.nds", 0x52774, 0x1C50 + .incbin "baserom.nds", 0x543C4, 0x1A78 + .incbin "baserom.nds", 0x55E3C, 0x32C + .incbin "baserom.nds", 0x56168, 0x2C4 + .incbin "baserom.nds", 0x5642C, 0x2C4 + .incbin "baserom.nds", 0x566F0, 0x1F8 + .incbin "baserom.nds", 0x568E8, 0x490 + .incbin "baserom.nds", 0x56D78, 0x1F74 + .incbin "baserom.nds", 0x58CEC, 0x1E8C + .incbin "baserom.nds", 0x5AB78, 0x1074 + .incbin "baserom.nds", 0x5BBEC, 0x2B58 + .incbin "baserom.nds", 0x5E744, 0x4E0 + .incbin "baserom.nds", 0x5EC24, 0x4AC + .incbin "baserom.nds", 0x5F0D0, 0x4AC + .incbin "baserom.nds", 0x5F57C, 0x4BC + .incbin "baserom.nds", 0x5FA38, 0xA90 + .incbin "baserom.nds", 0x604C8, 0x190C + .incbin "baserom.nds", 0x61DD4, 0xA90 + .incbin "baserom.nds", 0x62864, 0xB70 + .incbin "baserom.nds", 0x633D4, 0x728 + .incbin "baserom.nds", 0x63AFC, 0x58C + .incbin "baserom.nds", 0x64088, 0x874 + .incbin "baserom.nds", 0x648FC, 0x494 + .incbin "baserom.nds", 0x64D90, 0x2E8 + .incbin "baserom.nds", 0x65078, 0x6B4 + .incbin "baserom.nds", 0x6572C, 0x97C + .incbin "baserom.nds", 0x660A8, 0x98C + .incbin "baserom.nds", 0x66A34, 0xA50 + .incbin "baserom.nds", 0x67484, 0x88C + .incbin "baserom.nds", 0x67D10, 0x718 + .incbin "baserom.nds", 0x68428, 0x908 + .incbin "baserom.nds", 0x68D30, 0x880 + .incbin "baserom.nds", 0x695B0, 0xA60 + .incbin "baserom.nds", 0x6A010, 0x3A8 + .incbin "baserom.nds", 0x6A3B8, 0x98C + .incbin "baserom.nds", 0x6AD44, 0x304 + .incbin "baserom.nds", 0x6B048, 0x46C + .incbin "baserom.nds", 0x6B4B4, 0x3A8 + .incbin "baserom.nds", 0x6B85C, 0xA84 + .incbin "baserom.nds", 0x6C2E0, 0x3A8 + .incbin "baserom.nds", 0x6C688, 0x384 + .incbin "baserom.nds", 0x6CA0C, 0x304 + .incbin "baserom.nds", 0x6CD10, 0x68C + .incbin "baserom.nds", 0x6D39C, 0x68C + .incbin "baserom.nds", 0x6DA28, 0x68C + .incbin "baserom.nds", 0x6E0B4, 0x490 + .incbin "baserom.nds", 0x6E544, 0xC18 + .incbin "baserom.nds", 0x6F15C, 0x20C + .incbin "baserom.nds", 0x6F368, 0x2E8 + .incbin "baserom.nds", 0x6F650, 0x8D8 + .incbin "baserom.nds", 0x6FF28, 0xC54 + .incbin "baserom.nds", 0x70B7C, 0xDC4 + .incbin "baserom.nds", 0x71940, 0x2EC + .incbin "baserom.nds", 0x71C2C, 0x480 + .incbin "baserom.nds", 0x720AC, 0x438 + .incbin "baserom.nds", 0x724E4, 0x34AC + .incbin "baserom.nds", 0x75990, 0x3A8 + .incbin "baserom.nds", 0x75D38, 0xD54 + .incbin "baserom.nds", 0x76A8C, 0x918 + .incbin "baserom.nds", 0x773A4, 0x1D20 + .incbin "baserom.nds", 0x790C4, 0xD68 + .incbin "baserom.nds", 0x79E2C, 0x136C + .incbin "baserom.nds", 0x7B198, 0x300 + .incbin "baserom.nds", 0x7B498, 0x300 + .incbin "baserom.nds", 0x7B798, 0xE7C + .incbin "baserom.nds", 0x7C614, 0xC34 + .incbin "baserom.nds", 0x7D248, 0x900 + .incbin "baserom.nds", 0x7DB48, 0xE0C + .incbin "baserom.nds", 0x7E954, 0x1D78 + .incbin "baserom.nds", 0x806CC, 0x7E0 + .incbin "baserom.nds", 0x80EAC, 0x20C + .incbin "baserom.nds", 0x810B8, 0x20C + .incbin "baserom.nds", 0x812C4, 0x20C + .incbin "baserom.nds", 0x814D0, 0x430 + .incbin "baserom.nds", 0x81900, 0x20C + .incbin "baserom.nds", 0x81B0C, 0x166C + .incbin "baserom.nds", 0x83178, 0x1710 + .incbin "baserom.nds", 0x84888, 0x814 + .incbin "baserom.nds", 0x8509C, 0x20C + .incbin "baserom.nds", 0x852A8, 0x20C + .incbin "baserom.nds", 0x854B4, 0xDC0 + .incbin "baserom.nds", 0x86274, 0xDC0 + .incbin "baserom.nds", 0x87034, 0x32C + .incbin "baserom.nds", 0x87360, 0x3A8 + .incbin "baserom.nds", 0x87708, 0x3A8 + .incbin "baserom.nds", 0x87AB0, 0x3A8 + .incbin "baserom.nds", 0x87E58, 0x20C + .incbin "baserom.nds", 0x88064, 0x20C + .incbin "baserom.nds", 0x88270, 0x20C + .incbin "baserom.nds", 0x8847C, 0x20C + .incbin "baserom.nds", 0x88688, 0x33C + .incbin "baserom.nds", 0x889C4, 0x1B64 + .incbin "baserom.nds", 0x8A528, 0x2B1C + .incbin "baserom.nds", 0x8D044, 0x23D0 + .incbin "baserom.nds", 0x8F414, 0x97C + .incbin "baserom.nds", 0x8FD90, 0x3B8 + .incbin "baserom.nds", 0x90148, 0x314 + .incbin "baserom.nds", 0x9045C, 0xD68 + .incbin "baserom.nds", 0x911C4, 0x20C + .incbin "baserom.nds", 0x913D0, 0x310 + .incbin "baserom.nds", 0x916E0, 0x8E4 + .incbin "baserom.nds", 0x91FC4, 0xC5C + .incbin "baserom.nds", 0x92C20, 0x2D4 + .incbin "baserom.nds", 0x92EF4, 0xA70 + .incbin "baserom.nds", 0x93964, 0x7FC + .incbin "baserom.nds", 0x94160, 0xDC0 + .incbin "baserom.nds", 0x94F20, 0xBE8 + .incbin "baserom.nds", 0x95B08, 0x300 + .incbin "baserom.nds", 0x95E08, 0xA2C + .incbin "baserom.nds", 0x96834, 0xA2C + .incbin "baserom.nds", 0x97260, 0xA2C + .incbin "baserom.nds", 0x97C8C, 0xA2C + .incbin "baserom.nds", 0x986B8, 0xA2C + .incbin "baserom.nds", 0x990E4, 0xA2C + .incbin "baserom.nds", 0x99B10, 0xA2C + .incbin "baserom.nds", 0x9A53C, 0xA2C + .incbin "baserom.nds", 0x9AF68, 0xA2C + .incbin "baserom.nds", 0x9B994, 0xA2C + .incbin "baserom.nds", 0x9C3C0, 0xA2C + .incbin "baserom.nds", 0x9CDEC, 0xA2C + .incbin "baserom.nds", 0x9D818, 0xC1C + .incbin "baserom.nds", 0x9E434, 0x9B8 + .incbin "baserom.nds", 0x9EDEC, 0xBE8 + .incbin "baserom.nds", 0x9F9D4, 0x2C0 + .incbin "baserom.nds", 0x9FC94, 0x12C8 + .incbin "baserom.nds", 0xA0F5C, 0x310 + .incbin "baserom.nds", 0xA126C, 0x310 + .incbin "baserom.nds", 0xA157C, 0x98C + .incbin "baserom.nds", 0xA1F08, 0x97C + .incbin "baserom.nds", 0xA2884, 0x98C + .incbin "baserom.nds", 0xA3210, 0x97C + .incbin "baserom.nds", 0xA3B8C, 0x287C + .incbin "baserom.nds", 0xA6408, 0x490 + .incbin "baserom.nds", 0xA6898, 0x1DE0 + .incbin "baserom.nds", 0xA8678, 0x1BF8 + .incbin "baserom.nds", 0xAA270, 0x22C8 + .incbin "baserom.nds", 0xAC538, 0x84C + .incbin "baserom.nds", 0xACD84, 0xB44 + .incbin "baserom.nds", 0xAD8C8, 0x121C + .incbin "baserom.nds", 0xAEAE4, 0x3374 + .incbin "baserom.nds", 0xB1E58, 0x2D7C + .incbin "baserom.nds", 0xB4BD4, 0xD54 + .incbin "baserom.nds", 0xB5928, 0x20CC + .incbin "baserom.nds", 0xB79F4, 0x1CE4 + .incbin "baserom.nds", 0xB96D8, 0xD54 + .incbin "baserom.nds", 0xBA42C, 0xD64 + .incbin "baserom.nds", 0xBB190, 0xD54 + .incbin "baserom.nds", 0xBBEE4, 0x1BD4 + .incbin "baserom.nds", 0xBDAB8, 0x1730 + .incbin "baserom.nds", 0xBF1E8, 0xD54 + .incbin "baserom.nds", 0xBFF3C, 0x1F94 + .incbin "baserom.nds", 0xC1ED0, 0x1FF4 + .incbin "baserom.nds", 0xC3EC4, 0x269C + .incbin "baserom.nds", 0xC6560, 0x17CC + .incbin "baserom.nds", 0xC7D2C, 0x12A4 + .incbin "baserom.nds", 0xC8FD0, 0xA64 + .incbin "baserom.nds", 0xC9A34, 0xB48 + .incbin "baserom.nds", 0xCA57C, 0x418C + .incbin "baserom.nds", 0xCE708, 0x1E88 + .incbin "baserom.nds", 0xD0590, 0x3328 + .incbin "baserom.nds", 0xD38B8, 0xD54 + .incbin "baserom.nds", 0xD460C, 0x2B1C + .incbin "baserom.nds", 0xD7128, 0x1DE0 + .incbin "baserom.nds", 0xD8F08, 0xB48 + .incbin "baserom.nds", 0xD9A50, 0x20CC + .incbin "baserom.nds", 0xDBB1C, 0xD54 + .incbin "baserom.nds", 0xDC870, 0x1C14 + .incbin "baserom.nds", 0xDE484, 0xB44 + .incbin "baserom.nds", 0xDEFC8, 0x2080 + .incbin "baserom.nds", 0xE1048, 0x3698 + .incbin "baserom.nds", 0xE46E0, 0xC98 + .incbin "baserom.nds", 0xE5378, 0x2070 + .incbin "baserom.nds", 0xE73E8, 0x2224 + .incbin "baserom.nds", 0xE960C, 0x3584 + .incbin "baserom.nds", 0xECB90, 0xD80 + .incbin "baserom.nds", 0xED910, 0x480 + .incbin "baserom.nds", 0xEDD90, 0xD54 + .incbin "baserom.nds", 0xEEAE4, 0xD54 + .incbin "baserom.nds", 0xEF838, 0x1CEC + .incbin "baserom.nds", 0xF1524, 0x1ED8 + .incbin "baserom.nds", 0xF33FC, 0xC98 + .incbin "baserom.nds", 0xF4094, 0x264C + .incbin "baserom.nds", 0xF66E0, 0xC50 + .incbin "baserom.nds", 0xF7330, 0xF10 + .incbin "baserom.nds", 0xF8240, 0x3C4 + .incbin "baserom.nds", 0xF8604, 0x3C4 + .incbin "baserom.nds", 0xF89C8, 0x3C4 + .incbin "baserom.nds", 0xF8D8C, 0x18B0 + .incbin "baserom.nds", 0xFA63C, 0xE68 + .incbin "baserom.nds", 0xFB4A4, 0x1540 + .incbin "baserom.nds", 0xFC9E4, 0x2000 + .incbin "baserom.nds", 0xFE9E4, 0x4BC + .incbin "baserom.nds", 0xFEEA0, 0xB20 + .incbin "baserom.nds", 0xFF9C0, 0xD8C + .incbin "baserom.nds", 0x10074C, 0x2C0 + .incbin "baserom.nds", 0x100A0C, 0x640 + .incbin "baserom.nds", 0x10104C, 0x7C4 + .incbin "baserom.nds", 0x101810, 0x130C + .incbin "baserom.nds", 0x102B1C, 0x838 + .incbin "baserom.nds", 0x103354, 0x490 + .incbin "baserom.nds", 0x1037E4, 0x490 + .incbin "baserom.nds", 0x103C74, 0x9F0 + .incbin "baserom.nds", 0x104664, 0xC5C + .incbin "baserom.nds", 0x1052C0, 0x608 + .incbin "baserom.nds", 0x1058C8, 0x780 + .incbin "baserom.nds", 0x106048, 0x6A8 + .incbin "baserom.nds", 0x1066F0, 0x51C + .incbin "baserom.nds", 0x106C0C, 0x1944 + .incbin "baserom.nds", 0x108550, 0x1FC0 + .incbin "baserom.nds", 0x10A510, 0x85C + .incbin "baserom.nds", 0x10AD6C, 0x2AB4 + .incbin "baserom.nds", 0x10D820, 0x7C4 + .incbin "baserom.nds", 0x10DFE4, 0xC24 + .incbin "baserom.nds", 0x10EC08, 0xB44 + .incbin "baserom.nds", 0x10F74C, 0xB44 + .incbin "baserom.nds", 0x110290, 0xC24 + .incbin "baserom.nds", 0x110EB4, 0x6C8 + .incbin "baserom.nds", 0x11157C, 0x490 + .incbin "baserom.nds", 0x111A0C, 0xB44 + .incbin "baserom.nds", 0x112550, 0xB44 + .incbin "baserom.nds", 0x113094, 0xF98 + .incbin "baserom.nds", 0x11402C, 0xE2C + .incbin "baserom.nds", 0x114E58, 0x9FC + .incbin "baserom.nds", 0x115854, 0xC50 + .incbin "baserom.nds", 0x1164A4, 0xEA8 + .incbin "baserom.nds", 0x11734C, 0xFC0 + .incbin "baserom.nds", 0x11830C, 0x6BC + .incbin "baserom.nds", 0x1189C8, 0x310 + .incbin "baserom.nds", 0x118CD8, 0x32C + .incbin "baserom.nds", 0x119004, 0x300 + .incbin "baserom.nds", 0x119304, 0x698 + .incbin "baserom.nds", 0x11999C, 0x310 + .incbin "baserom.nds", 0x119CAC, 0x5B0 + .incbin "baserom.nds", 0x11A25C, 0x5E8 + .incbin "baserom.nds", 0x11A844, 0x58C + .incbin "baserom.nds", 0x11ADD0, 0x5CC + .incbin "baserom.nds", 0x11B39C, 0x5DC + .incbin "baserom.nds", 0x11B978, 0x5EC + .incbin "baserom.nds", 0x11BF64, 0x584 + .incbin "baserom.nds", 0x11C4E8, 0x640 + .incbin "baserom.nds", 0x11CB28, 0x640 + .incbin "baserom.nds", 0x11D168, 0x640 + .incbin "baserom.nds", 0x11D7A8, 0x640 + .incbin "baserom.nds", 0x11DDE8, 0x36C + .incbin "baserom.nds", 0x11E154, 0x2F18 + .incbin "baserom.nds", 0x12106C, 0x28CC + .incbin "baserom.nds", 0x123938, 0x2198 + .incbin "baserom.nds", 0x125AD0, 0x1930 + .incbin "baserom.nds", 0x127400, 0x590 + .incbin "baserom.nds", 0x127990, 0x5D8 + .incbin "baserom.nds", 0x127F68, 0xAD4 + .incbin "baserom.nds", 0x128A3C, 0xAD4 + .incbin "baserom.nds", 0x129510, 0xBEC + .incbin "baserom.nds", 0x12A0FC, 0xC1C + .incbin "baserom.nds", 0x12AD18, 0xAC0 + .incbin "baserom.nds", 0x12B7D8, 0xAC0 + .incbin "baserom.nds", 0x12C298, 0x7FC + .incbin "baserom.nds", 0x12CA94, 0x4AC + .incbin "baserom.nds", 0x12CF40, 0x4BC + .incbin "baserom.nds", 0x12D3FC, 0x15BC + .incbin "baserom.nds", 0x12E9B8, 0x225C + .incbin "baserom.nds", 0x130C14, 0xB08 + .incbin "baserom.nds", 0x13171C, 0xB08 + .incbin "baserom.nds", 0x132224, 0xB08 + .incbin "baserom.nds", 0x132D2C, 0xB08 + .incbin "baserom.nds", 0x133834, 0xB08 + .incbin "baserom.nds", 0x13433C, 0x153C + .incbin "baserom.nds", 0x135878, 0x153C + .incbin "baserom.nds", 0x136DB4, 0x153C + .incbin "baserom.nds", 0x1382F0, 0x153C + .incbin "baserom.nds", 0x13982C, 0x153C + .incbin "baserom.nds", 0x13AD68, 0x153C + .incbin "baserom.nds", 0x13C2A4, 0x153C + .incbin "baserom.nds", 0x13D7E0, 0x153C + .incbin "baserom.nds", 0x13ED1C, 0xCEC + .incbin "baserom.nds", 0x13FA08, 0xCEC + .incbin "baserom.nds", 0x1406F4, 0x14EC + .incbin "baserom.nds", 0x141BE0, 0xBAC + .incbin "baserom.nds", 0x14278C, 0xBC0 + .incbin "baserom.nds", 0x14334C, 0xBC0 + .incbin "baserom.nds", 0x143F0C, 0xBC0 + .incbin "baserom.nds", 0x144ACC, 0xBC0 + .incbin "baserom.nds", 0x14568C, 0x31C + .incbin "baserom.nds", 0x1459A8, 0x31C + .incbin "baserom.nds", 0x145CC4, 0x31C + .incbin "baserom.nds", 0x145FE0, 0x31C + .incbin "baserom.nds", 0x1462FC, 0x31C + .incbin "baserom.nds", 0x146618, 0x31C + .incbin "baserom.nds", 0x146934, 0x31C + .incbin "baserom.nds", 0x146C50, 0x31C + .incbin "baserom.nds", 0x146F6C, 0x31C + .incbin "baserom.nds", 0x147288, 0x31C + .incbin "baserom.nds", 0x1475A4, 0x31C + .incbin "baserom.nds", 0x1478C0, 0x31C + .incbin "baserom.nds", 0x147BDC, 0x31C + .incbin "baserom.nds", 0x147EF8, 0x31C + .incbin "baserom.nds", 0x148214, 0x31C + .incbin "baserom.nds", 0x148530, 0x31C + .incbin "baserom.nds", 0x14884C, 0x31C + .incbin "baserom.nds", 0x148B68, 0x31C + .incbin "baserom.nds", 0x148E84, 0x31C + .incbin "baserom.nds", 0x1491A0, 0x31C + .incbin "baserom.nds", 0x1494BC, 0x31C + .incbin "baserom.nds", 0x1497D8, 0x31C + .incbin "baserom.nds", 0x149AF4, 0x31C + .incbin "baserom.nds", 0x149E10, 0x31C + .incbin "baserom.nds", 0x14A12C, 0x320 + .incbin "baserom.nds", 0x14A44C, 0x320 + .incbin "baserom.nds", 0x14A76C, 0x320 + .incbin "baserom.nds", 0x14AA8C, 0x320 + .incbin "baserom.nds", 0x14ADAC, 0x320 + .incbin "baserom.nds", 0x14B0CC, 0xD10 + .incbin "baserom.nds", 0x14BDDC, 0xD10 + .incbin "baserom.nds", 0x14CAEC, 0xD10 + .incbin "baserom.nds", 0x14D7FC, 0xD10 + .incbin "baserom.nds", 0x14E50C, 0x854 + .incbin "baserom.nds", 0x14ED60, 0x848 + .incbin "baserom.nds", 0x14F5A8, 0x844 + .incbin "baserom.nds", 0x14FDEC, 0x848 + .incbin "baserom.nds", 0x150634, 0x320 + .incbin "baserom.nds", 0x150954, 0x320 + .incbin "baserom.nds", 0x150C74, 0x320 + .incbin "baserom.nds", 0x150F94, 0x320 + .incbin "baserom.nds", 0x1512B4, 0x838 + .incbin "baserom.nds", 0x151AEC, 0x86C + .incbin "baserom.nds", 0x152358, 0x1000 + .incbin "baserom.nds", 0x153358, 0x480 + .incbin "baserom.nds", 0x1537D8, 0x480 + .incbin "baserom.nds", 0x153C58, 0x480 + .incbin "baserom.nds", 0x1540D8, 0x490 + .incbin "baserom.nds", 0x154568, 0x480 + .incbin "baserom.nds", 0x1549E8, 0x490 + .incbin "baserom.nds", 0x154E78, 0x480 + .incbin "baserom.nds", 0x1552F8, 0x480 + .incbin "baserom.nds", 0x155778, 0x490 + .incbin "baserom.nds", 0x155C08, 0x490 + .incbin "baserom.nds", 0x156098, 0x490 + .incbin "baserom.nds", 0x156528, 0x490 + .incbin "baserom.nds", 0x1569B8, 0x480 + .incbin "baserom.nds", 0x156E38, 0x490 + .incbin "baserom.nds", 0x1572C8, 0x490 + .incbin "baserom.nds", 0x157758, 0x480 + .incbin "baserom.nds", 0x157BD8, 0x480 + .incbin "baserom.nds", 0x158058, 0x480 + .incbin "baserom.nds", 0x1584D8, 0x480 + .incbin "baserom.nds", 0x158958, 0x490 + .incbin "baserom.nds", 0x158DE8, 0x480 + .incbin "baserom.nds", 0x159268, 0x490 + .incbin "baserom.nds", 0x1596F8, 0x480 + .incbin "baserom.nds", 0x159B78, 0x480 + .incbin "baserom.nds", 0x159FF8, 0x490 + .incbin "baserom.nds", 0x15A488, 0x490 + .incbin "baserom.nds", 0x15A918, 0x490 + .incbin "baserom.nds", 0x15ADA8, 0x480 + .incbin "baserom.nds", 0x15B228, 0x480 + .incbin "baserom.nds", 0x15B6A8, 0x490 + .incbin "baserom.nds", 0x15BB38, 0x480 + .incbin "baserom.nds", 0x15BFB8, 0x490 + .incbin "baserom.nds", 0x15C448, 0x480 + .incbin "baserom.nds", 0x15C8C8, 0x490 + .incbin "baserom.nds", 0x15CD58, 0x490 + .incbin "baserom.nds", 0x15D1E8, 0x480 + .incbin "baserom.nds", 0x15D668, 0x490 + .incbin "baserom.nds", 0x15DAF8, 0x153C + .incbin "baserom.nds", 0x15F034, 0x644 + .incbin "baserom.nds", 0x15F678, 0x153C + .incbin "baserom.nds", 0x160BB4, 0x490 + .incbin "baserom.nds", 0x161044, 0xD68 + .incbin "baserom.nds", 0x161DAC, 0x7F4 + .incbin "baserom.nds", 0x1625A0, 0x1F54 + .incbin "baserom.nds", 0x1644F4, 0x1684 + .incbin "baserom.nds", 0x165B78, 0x1710 + .incbin "baserom.nds", 0x167288, 0x480 + .incbin "baserom.nds", 0x167708, 0x2C0 + .incbin "baserom.nds", 0x1679C8, 0x314 + .incbin "baserom.nds", 0x167CDC, 0x314 + .incbin "baserom.nds", 0x167FF0, 0x314 + .incbin "baserom.nds", 0x168304, 0x314 + .incbin "baserom.nds", 0x168618, 0xFB8 + .incbin "baserom.nds", 0x1695D0, 0x1054 + .incbin "baserom.nds", 0x16A624, 0x12E4 + .incbin "baserom.nds", 0x16B908, 0xA1C + .incbin "baserom.nds", 0x16C324, 0x290 + .incbin "baserom.nds", 0x16C5B4, 0x4AC + .incbin "baserom.nds", 0x16CA60, 0x1B98 + .incbin "baserom.nds", 0x16E5F8, 0x1B64 + .incbin "baserom.nds", 0x17015C, 0x654 + .incbin "baserom.nds", 0x1707B0, 0x554 + .incbin "baserom.nds", 0x170D04, 0x2D1C + .incbin "baserom.nds", 0x173A20, 0x4AC + .incbin "baserom.nds", 0x173ECC, 0x1384 + .incbin "baserom.nds", 0x175250, 0x690 + .incbin "baserom.nds", 0x1758E0, 0xCEC + .incbin "baserom.nds", 0x1765CC, 0x2298 + .incbin "baserom.nds", 0x178864, 0x22CC + .incbin "baserom.nds", 0x17AB30, 0x2658 + .incbin "baserom.nds", 0x17D188, 0x2064 + .incbin "baserom.nds", 0x17F1EC, 0x2D18 + .incbin "baserom.nds", 0x181F04, 0xCFC + .incbin "baserom.nds", 0x182C00, 0x1818 + .incbin "baserom.nds", 0x184418, 0x1C84 + .incbin "baserom.nds", 0x18609C, 0x480 + .incbin "baserom.nds", 0x18651C, 0x1AA0 + .incbin "baserom.nds", 0x187FBC, 0x1AA0 + .incbin "baserom.nds", 0x189A5C, 0x1AD8 + .incbin "baserom.nds", 0x18B534, 0x1AD8 + .incbin "baserom.nds", 0x18D00C, 0x1B1C + .incbin "baserom.nds", 0x18EB28, 0x1B1C + .incbin "baserom.nds", 0x190644, 0x2A88 + .incbin "baserom.nds", 0x1930CC, 0x2A80 + .incbin "baserom.nds", 0x195B4C, 0x300 + .incbin "baserom.nds", 0x195E4C, 0x300 + .incbin "baserom.nds", 0x19614C, 0x300 + .incbin "baserom.nds", 0x19644C, 0x9E8 + .incbin "baserom.nds", 0x196E34, 0x8B0 + .incbin "baserom.nds", 0x1976E4, 0x46FC + .incbin "baserom.nds", 0x19BDE0, 0x84C + .incbin "baserom.nds", 0x19C62C, 0x85C + .incbin "baserom.nds", 0x19CE88, 0x8FC + .incbin "baserom.nds", 0x19D784, 0x4CC + .incbin "baserom.nds", 0x19DC50, 0x1D0C + .incbin "baserom.nds", 0x19F95C, 0xCFC + .incbin "baserom.nds", 0x1A0658, 0x1530 + .incbin "baserom.nds", 0x1A1B88, 0x3848 + .incbin "baserom.nds", 0x1A53D0, 0xB24 + .incbin "baserom.nds", 0x1A5EF4, 0xA90 + .incbin "baserom.nds", 0x1A6984, 0xAA4 + .incbin "baserom.nds", 0x1A7428, 0xA80 + .incbin "baserom.nds", 0x1A7EA8, 0xAFC + .incbin "baserom.nds", 0x1A89A4, 0x36C + .incbin "baserom.nds", 0x1A8D10, 0x390 + .incbin "baserom.nds", 0x1A90A0, 0x620 + .incbin "baserom.nds", 0x1A96C0, 0x620 + .incbin "baserom.nds", 0x1A9CE0, 0x7D4 + .incbin "baserom.nds", 0x1AA4B4, 0x490 + .incbin "baserom.nds", 0x1AA944, 0x484 + .incbin "baserom.nds", 0x1AADC8, 0x310 + .incbin "baserom.nds", 0x1AB0D8, 0x300 + .incbin "baserom.nds", 0x1AB3D8, 0xA78 + .incbin "baserom.nds", 0x1ABE50, 0xC14 + .incbin "baserom.nds", 0x1ACA64, 0x18E0 + .incbin "baserom.nds", 0x1AE344, 0x1A0C + .incbin "baserom.nds", 0x1AFD50, 0x1BCC + .incbin "baserom.nds", 0x1B191C, 0xA7C + .incbin "baserom.nds", 0x1B2398, 0x1DE0 + .incbin "baserom.nds", 0x1B4178, 0x23FC + .incbin "baserom.nds", 0x1B6574, 0xA90 + .incbin "baserom.nds", 0x1B7004, 0x7B4 + .incbin "baserom.nds", 0x1B77B8, 0x2E8 + .incbin "baserom.nds", 0x1B7AA0, 0xBCC + .incbin "baserom.nds", 0x1B866C, 0xB8C + .incbin "baserom.nds", 0x1B91F8, 0x1400 + .incbin "baserom.nds", 0x1BA5F8, 0x212C + .incbin "baserom.nds", 0x1BC724, 0x1144 + .incbin "baserom.nds", 0x1BD868, 0x1134 + .incbin "baserom.nds", 0x1BE99C, 0x1144 + .incbin "baserom.nds", 0x1BFAE0, 0x1134 + .incbin "baserom.nds", 0x1C0C14, 0x1144 + .incbin "baserom.nds", 0x1C1D58, 0x1134 + .incbin "baserom.nds", 0x1C2E8C, 0x1288 + .incbin "baserom.nds", 0x1C4114, 0x9E8 + .incbin "baserom.nds", 0x1C4AFC, 0xD24 + .incbin "baserom.nds", 0x1C5820, 0x54C + .incbin "baserom.nds", 0x1C5D6C, 0x490 + .incbin "baserom.nds", 0x1C61FC, 0x390 + .incbin "baserom.nds", 0x1C658C, 0x390 + .incbin "baserom.nds", 0x1C691C, 0x390 + .incbin "baserom.nds", 0x1C6CAC, 0xB88 + .incbin "baserom.nds", 0x1C7834, 0xD68 + .incbin "baserom.nds", 0x1C859C, 0x2424 + .incbin "baserom.nds", 0x1CA9C0, 0x490 + .incbin "baserom.nds", 0x1CAE50, 0x7F4 + .incbin "baserom.nds", 0x1CB644, 0x4AC + .incbin "baserom.nds", 0x1CBAF0, 0x1144 + .incbin "baserom.nds", 0x1CCC34, 0x1134 + .incbin "baserom.nds", 0x1CDD68, 0x1144 + .incbin "baserom.nds", 0x1CEEAC, 0x1134 + .incbin "baserom.nds", 0x1CFFE0, 0x1144 + .incbin "baserom.nds", 0x1D1124, 0x1134 + .incbin "baserom.nds", 0x1D2258, 0x1288 + .balign 4, 255 diff --git a/narc/build_model/build_model_matshp.dat.s b/narc/build_model/build_model_matshp.dat.s new file mode 100644 index 00000000..8131f87f --- /dev/null +++ b/narc/build_model/build_model_matshp.dat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x2710800, 0x1724 diff --git a/narc/data/UTF16.dat.s b/narc/data/UTF16.dat.s new file mode 100644 index 00000000..363c973d --- /dev/null +++ b/narc/data/UTF16.dat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x339000, 0x1EA diff --git a/narc/data/area00light.txt b/narc/data/area00light.txt new file mode 100644 index 00000000..438ee9c5 --- /dev/null +++ b/narc/data/area00light.txt @@ -0,0 +1,151 @@ +0,
+1,11,11,16,1897,-3600,-466,
+0,0,0,0,0,0,0,
+1,22,18,0,0,0,4096,
+1,31,31,31,0,0,4096,
+14,14,16,
+10,10,10,
+14,14,16,
+8,8,11,
+
+7200,
+1,11,11,16,1897,-3600,-466,
+0,0,0,0,0,0,0,
+1,0,0,8,0,0,4096,
+1,31,31,31,0,0,4096,
+14,14,16,
+10,10,10,
+14,14,16,
+8,8,11,
+
+8100,
+1,12,12,18,692,-3584,-680,
+0,0,0,0,0,0,0,
+1,0,4,8,0,0,4096,
+1,31,31,31,0,0,4096,
+10,10,14,
+13,13,13,
+8,8,14,
+10,10,12,
+
+9000,
+1,12,12,22,-513,-3568,-894,
+0,0,0,0,0,0,0,
+1,0,2,10,0,0,4096,
+1,31,31,31,0,0,4096,
+11,11,13,
+10,10,10,
+10,10,14,
+13,13,14,
+
+14400,
+1,15,15,22,-1718,-3551,-1108,
+0,0,0,0,0,0,0,
+1,0,0,10,0,0,4096,
+1,31,31,31,0,0,4096,
+12,12,12,
+8,8,8,
+12,12,14,
+14,14,18,
+
+20700,
+1,18,18,21,-1826,-3548,-702,
+0,0,0,0,0,0,0,
+1,1,1,11,0,0,4096,
+1,31,31,31,0,0,4096,
+13,13,13,
+9,9,9,
+14,14,15,
+14,14,16,
+
+21600,
+1,22,22,20,-1934,-3548,-296,
+0,0,0,0,0,0,0,
+1,2,2,12,0,0,4096,
+1,31,31,31,0,0,4096,
+15,15,15,
+9,11,11,
+16,16,16,
+14,14,14,
+
+27000,
+1,24,24,20,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,2,2,13,0,0,4096,
+1,31,31,31,0,0,4096,
+16,16,16,
+10,12,12,
+18,18,18,
+14,14,14,
+
+27900,
+1,22,22,18,-730,-3560,-82,
+0,0,0,0,0,0,0,
+1,4,4,10,0,0,4096,
+1,31,31,31,0,0,4096,
+15,15,15,
+11,12,12,
+17,17,17,
+13,13,13,
+
+30600,
+1,20,18,16,-730,-3560,-82,
+0,0,0,0,0,0,0,
+1,3,4,10,0,0,4096,
+1,31,31,31,0,0,4096,
+15,15,15,
+11,12,12,
+17,17,17,
+12,11,11,
+
+32400,
+1,19,16,12,583,-3580,274,
+0,0,0,0,0,0,0,
+1,3,5,8,0,0,4096,
+1,31,31,31,0,0,4096,
+15,15,15,
+11,12,12,
+17,17,17,
+8,8,7,
+
+33300,
+1,17,13,10,1897,-3600,-466,
+0,0,0,0,0,0,0,
+1,14,6,0,0,0,4096,
+1,31,31,31,0,0,4096,
+14,14,14,
+12,12,12,
+16,16,16,
+9,7,7,
+
+34200,
+1,16,13,10,1897,-3600,-466,
+0,0,0,0,0,0,0,
+1,10,4,0,0,0,4096,
+1,31,31,31,0,0,4096,
+14,14,14,
+12,12,12,
+14,14,16,
+9,8,7,
+
+36000,
+1,11,12,15,1897,-3600,-466,
+0,0,0,0,0,0,0,
+1,10,4,0,0,0,4096,
+1,31,31,31,0,0,4096,
+14,14,14,
+12,12,12,
+14,14,16,
+8,8,9,
+
+43200,
+1,11,11,16,1897,-3600,-466,
+0,0,0,0,0,0,0,
+1,22,18,0,0,0,4096,
+1,31,31,31,0,0,4096,
+14,14,16,
+10,10,10,
+14,14,16,
+8,8,11,
+
+EOF
\ No newline at end of file diff --git a/narc/data/area01light.txt b/narc/data/area01light.txt new file mode 100644 index 00000000..8261dc97 --- /dev/null +++ b/narc/data/area01light.txt @@ -0,0 +1,151 @@ +900,
+1,23,23,25,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,4,4,16,0,0,4096,
+0,0,0,0,0,0,0,
+16,16,16,
+14,14,14,
+20,20,20,
+16,16,16,
+
+1800,
+1,23,23,25,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,4,4,16,0,0,4096,
+0,0,0,0,0,0,0,
+16,16,16,
+14,14,14,
+20,20,20,
+16,16,16,
+
+7200,
+1,23,23,25,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,4,4,16,0,0,4096,
+0,0,0,0,0,0,0,
+16,16,16,
+14,14,14,
+20,20,20,
+16,16,16,
+
+8100,
+1,23,23,25,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,4,4,16,0,0,4096,
+0,0,0,0,0,0,0,
+16,16,16,
+14,14,14,
+20,20,20,
+16,16,16,
+
+9000,
+1,23,23,25,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,4,4,16,0,0,4096,
+0,0,0,0,0,0,0,
+16,16,16,
+14,14,14,
+20,20,20,
+16,16,16,
+
+19800,
+1,23,23,25,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,4,4,16,0,0,4096,
+0,0,0,0,0,0,0,
+16,16,16,
+14,14,14,
+20,20,20,
+16,16,16,
+
+20700,
+1,23,23,25,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,4,4,16,0,0,4096,
+0,0,0,0,0,0,0,
+16,16,16,
+14,14,14,
+20,20,20,
+16,16,16,
+
+21600,
+1,23,23,25,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,4,4,16,0,0,4096,
+0,0,0,0,0,0,0,
+16,16,16,
+14,14,14,
+20,20,20,
+16,16,16,
+
+28800,
+1,23,23,25,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,4,4,16,0,0,4096,
+0,0,0,0,0,0,0,
+16,16,16,
+14,14,14,
+20,20,20,
+16,16,16,
+
+29700,
+1,23,23,25,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,4,4,16,0,0,4096,
+0,0,0,0,0,0,0,
+16,16,16,
+14,14,14,
+20,20,20,
+16,16,16,
+
+30600,
+1,23,23,25,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,4,4,16,0,0,4096,
+0,0,0,0,0,0,0,
+16,16,16,
+14,14,14,
+20,20,20,
+16,16,16,
+
+34200,
+1,23,23,25,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,4,4,16,0,0,4096,
+0,0,0,0,0,0,0,
+16,16,16,
+14,14,14,
+20,20,20,
+16,16,16,
+
+35100,
+1,23,23,25,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,4,4,16,0,0,4096,
+0,0,0,0,0,0,0,
+16,16,16,
+14,14,14,
+20,20,20,
+16,16,16,
+
+36000,
+1,23,23,25,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,4,4,16,0,0,4096,
+0,0,0,0,0,0,0,
+16,16,16,
+14,14,14,
+20,20,20,
+16,16,16,
+
+43200,
+1,23,23,25,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,4,4,16,0,0,4096,
+0,0,0,0,0,0,0,
+16,16,16,
+14,14,14,
+20,20,20,
+16,16,16,
+
+EOF
diff --git a/narc/data/area02light.txt b/narc/data/area02light.txt new file mode 100644 index 00000000..ecf534a2 --- /dev/null +++ b/narc/data/area02light.txt @@ -0,0 +1,151 @@ +900,
+1,24,24,18,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,2,2,12,0,0,4096,
+1,31,31,31,0,0,4096,
+16,16,16,
+10,12,12,
+18,18,18,
+14,14,14,
+
+1800,
+1,24,24,18,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,2,2,12,0,0,4096,
+1,31,31,31,0,0,4096,
+16,16,16,
+10,12,12,
+18,18,18,
+14,14,14,
+
+7200,
+1,24,24,18,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,2,2,12,0,0,4096,
+1,31,31,31,0,0,4096,
+16,16,16,
+10,12,12,
+18,18,18,
+14,14,14,
+
+8100,
+1,24,24,18,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,2,2,12,0,0,4096,
+1,31,31,31,0,0,4096,
+16,16,16,
+10,12,12,
+18,18,18,
+14,14,14,
+
+9000,
+1,24,24,18,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,2,2,12,0,0,4096,
+1,31,31,31,0,0,4096,
+16,16,16,
+10,12,12,
+18,18,18,
+14,14,14,
+
+19800,
+1,24,24,18,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,2,2,12,0,0,4096,
+1,31,31,31,0,0,4096,
+16,16,16,
+10,12,12,
+18,18,18,
+14,14,14,
+
+20700,
+1,24,24,18,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,2,2,12,0,0,4096,
+1,31,31,31,0,0,4096,
+16,16,16,
+10,12,12,
+18,18,18,
+14,14,14,
+
+21600,
+1,24,24,18,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,2,2,12,0,0,4096,
+1,31,31,31,0,0,4096,
+16,16,16,
+10,12,12,
+18,18,18,
+14,14,14,
+
+28800,
+1,24,24,18,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,2,2,12,0,0,4096,
+1,31,31,31,0,0,4096,
+16,16,16,
+10,12,12,
+18,18,18,
+14,14,14,
+
+29700,
+1,24,24,18,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,2,2,12,0,0,4096,
+1,31,31,31,0,0,4096,
+16,16,16,
+10,12,12,
+18,18,18,
+14,14,14,
+
+30600,
+1,24,24,18,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,2,2,12,0,0,4096,
+1,31,31,31,0,0,4096,
+16,16,16,
+10,12,12,
+18,18,18,
+14,14,14,
+
+34200,
+1,24,24,18,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,2,2,12,0,0,4096,
+1,31,31,31,0,0,4096,
+16,16,16,
+10,12,12,
+18,18,18,
+14,14,14,
+
+35100,
+1,24,24,18,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,2,2,12,0,0,4096,
+1,31,31,31,0,0,4096,
+16,16,16,
+10,12,12,
+18,18,18,
+14,14,14,
+
+36000,
+1,24,24,18,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,2,2,12,0,0,4096,
+1,31,31,31,0,0,4096,
+16,16,16,
+10,12,12,
+18,18,18,
+14,14,14,
+
+43200,
+1,24,24,18,-2043,-3548,110,
+0,0,0,0,0,0,0,
+1,2,2,12,0,0,4096,
+1,31,31,31,0,0,4096,
+16,16,16,
+10,12,12,
+18,18,18,
+14,14,14,
+
+EOF
diff --git a/narc/data/battle_win.NSCR.s b/narc/data/battle_win.NSCR.s new file mode 100644 index 00000000..efb3e042 --- /dev/null +++ b/narc/data/battle_win.NSCR.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x33AE00, 0x824 diff --git a/narc/data/btower_canm.resdat.s b/narc/data/btower_canm.resdat.s new file mode 100644 index 00000000..09e427d3 --- /dev/null +++ b/narc/data/btower_canm.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x33B800, 0x34 diff --git a/narc/data/btower_celact.cldat.s b/narc/data/btower_celact.cldat.s new file mode 100644 index 00000000..610b1c47 --- /dev/null +++ b/narc/data/btower_celact.cldat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x33BA00, 0x40 diff --git a/narc/data/btower_cell.resdat.s b/narc/data/btower_cell.resdat.s new file mode 100644 index 00000000..8839d723 --- /dev/null +++ b/narc/data/btower_cell.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x33BC00, 0x34 diff --git a/narc/data/btower_chr.resdat.s b/narc/data/btower_chr.resdat.s new file mode 100644 index 00000000..a990846e --- /dev/null +++ b/narc/data/btower_chr.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x33BE00, 0x34 diff --git a/narc/data/btower_pal.resdat.s b/narc/data/btower_pal.resdat.s new file mode 100644 index 00000000..7d5741c7 --- /dev/null +++ b/narc/data/btower_pal.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x33C000, 0x34 diff --git a/narc/data/cell0.NCGR.s b/narc/data/cell0.NCGR.s new file mode 100644 index 00000000..2b48b86e --- /dev/null +++ b/narc/data/cell0.NCGR.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x33C200, 0x2030 diff --git a/narc/data/cell0.NCLR.s b/narc/data/cell0.NCLR.s new file mode 100644 index 00000000..27ef28a3 --- /dev/null +++ b/narc/data/cell0.NCLR.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x33E400, 0x228 diff --git a/narc/data/clact_default.NANR.s b/narc/data/clact_default.NANR.s new file mode 100644 index 00000000..173cc622 --- /dev/null +++ b/narc/data/clact_default.NANR.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x33E800, 0x6F diff --git a/narc/data/contest_data.narc.s b/narc/data/contest_data.narc.s new file mode 100644 index 00000000..c70c3b7a --- /dev/null +++ b/narc/data/contest_data.narc.s @@ -0,0 +1,56 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0000373C ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000084 ; chunk size + .short 15 ; number of files + .balign 4 + .word 0x00000000, 0x00001200 + .word 0x00001200, 0x00001260 + .word 0x00001260, 0x000031E0 + .word 0x000031E0, 0x00003244 + .word 0x00003244, 0x000032A8 + .word 0x000032A8, 0x0000330C + .word 0x0000330C, 0x00003370 + .word 0x00003370, 0x000033D4 + .word 0x000033D4, 0x00003438 + .word 0x00003438, 0x0000349C + .word 0x0000349C, 0x00003500 + .word 0x00003500, 0x00003564 + .word 0x00003564, 0x000035C8 + .word 0x000035C8, 0x0000362C + .word 0x0000362C, 0x00003690 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00003698 ; chunk size + .incbin "baserom.nds", 0x0, 0x1200 + .incbin "baserom.nds", 0x1200, 0x60 + .incbin "baserom.nds", 0x1260, 0x1F80 + .incbin "baserom.nds", 0x31E0, 0x64 + .incbin "baserom.nds", 0x3244, 0x64 + .incbin "baserom.nds", 0x32A8, 0x64 + .incbin "baserom.nds", 0x330C, 0x64 + .incbin "baserom.nds", 0x3370, 0x64 + .incbin "baserom.nds", 0x33D4, 0x64 + .incbin "baserom.nds", 0x3438, 0x64 + .incbin "baserom.nds", 0x349C, 0x64 + .incbin "baserom.nds", 0x3500, 0x64 + .incbin "baserom.nds", 0x3564, 0x64 + .incbin "baserom.nds", 0x35C8, 0x64 + .incbin "baserom.nds", 0x362C, 0x64 + .balign 4, 255 diff --git a/narc/data/crystal.nsbmd.s b/narc/data/crystal.nsbmd.s new file mode 100644 index 00000000..aae93f35 --- /dev/null +++ b/narc/data/crystal.nsbmd.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x33EA00, 0xD04 diff --git a/narc/data/demo_climax.narc.s b/narc/data/demo_climax.narc.s new file mode 100644 index 00000000..2ac6c209 --- /dev/null +++ b/narc/data/demo_climax.narc.s @@ -0,0 +1,66 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0007362C ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000000AC ; chunk size + .short 20 ; number of files + .balign 4 + .word 0x00000000, 0x000118D8 + .word 0x000118D8, 0x000121F4 + .word 0x000121F4, 0x00015054 + .word 0x00015054, 0x0001567C + .word 0x0001567C, 0x00015C20 + .word 0x00015C20, 0x000161C4 + .word 0x000161C4, 0x00016768 + .word 0x00016768, 0x0001AFE0 + .word 0x0001AFE0, 0x000469D4 + .word 0x000469D4, 0x000471B4 + .word 0x000471B4, 0x00049D30 + .word 0x00049D30, 0x0004A9D4 + .word 0x0004A9D4, 0x0005BEB8 + .word 0x0005BEB8, 0x00063A58 + .word 0x00063A58, 0x00065E2C + .word 0x00065E2C, 0x00071D70 + .word 0x00071D70, 0x000725BC + .word 0x000725BC, 0x00072F70 + .word 0x00072F70, 0x00073404 + .word 0x00073404, 0x00073558 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00073560 ; chunk size + .incbin "baserom.nds", 0x0, 0x118D8 + .incbin "baserom.nds", 0x118D8, 0x91C + .incbin "baserom.nds", 0x121F4, 0x2E60 + .incbin "baserom.nds", 0x15054, 0x628 + .incbin "baserom.nds", 0x1567C, 0x5A4 + .incbin "baserom.nds", 0x15C20, 0x5A4 + .incbin "baserom.nds", 0x161C4, 0x5A4 + .incbin "baserom.nds", 0x16768, 0x4878 + .incbin "baserom.nds", 0x1AFE0, 0x2B9F4 + .incbin "baserom.nds", 0x469D4, 0x7E0 + .incbin "baserom.nds", 0x471B4, 0x2B7C + .incbin "baserom.nds", 0x49D30, 0xCA4 + .incbin "baserom.nds", 0x4A9D4, 0x114E4 + .incbin "baserom.nds", 0x5BEB8, 0x7BA0 + .incbin "baserom.nds", 0x63A58, 0x23D4 + .incbin "baserom.nds", 0x65E2C, 0xBF44 + .incbin "baserom.nds", 0x71D70, 0x84C + .incbin "baserom.nds", 0x725BC, 0x9B4 + .incbin "baserom.nds", 0x72F70, 0x494 + .incbin "baserom.nds", 0x73404, 0x154 + .balign 4, 255 diff --git a/narc/data/dp_areawindow.NCGR.s b/narc/data/dp_areawindow.NCGR.s new file mode 100644 index 00000000..d5f7c998 --- /dev/null +++ b/narc/data/dp_areawindow.NCGR.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3B3000, 0x170 diff --git a/narc/data/dp_areawindow.NCLR.s b/narc/data/dp_areawindow.NCLR.s new file mode 100644 index 00000000..e45661c8 --- /dev/null +++ b/narc/data/dp_areawindow.NCLR.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3B3200, 0x228 diff --git a/narc/data/dt_test_celact.txt b/narc/data/dt_test_celact.txt new file mode 100644 index 00000000..51bd0907 --- /dev/null +++ b/narc/data/dt_test_celact.txt @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/narc/data/dt_test_res_cell.txt b/narc/data/dt_test_res_cell.txt new file mode 100644 index 00000000..b23c8226 --- /dev/null +++ b/narc/data/dt_test_res_cell.txt @@ -0,0 +1,3 @@ +2,0,
+data/ug_hero.NCER,0,
+e,e,e,e,
diff --git a/narc/data/dt_test_res_cellanm.txt b/narc/data/dt_test_res_cellanm.txt new file mode 100644 index 00000000..c80a0e2c --- /dev/null +++ b/narc/data/dt_test_res_cellanm.txt @@ -0,0 +1,3 @@ +3,0,
+data/ug_hero.NANR,0,
+e,e,e,e,
diff --git a/narc/data/dt_test_res_char.txt b/narc/data/dt_test_res_char.txt new file mode 100644 index 00000000..eea3a667 --- /dev/null +++ b/narc/data/dt_test_res_char.txt @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/narc/data/dt_test_res_multi.txt b/narc/data/dt_test_res_multi.txt new file mode 100644 index 00000000..94493646 --- /dev/null +++ b/narc/data/dt_test_res_multi.txt @@ -0,0 +1,2 @@ +4,0,
+e,e,e,e,
diff --git a/narc/data/dt_test_res_multianm.txt b/narc/data/dt_test_res_multianm.txt new file mode 100644 index 00000000..da4150b4 --- /dev/null +++ b/narc/data/dt_test_res_multianm.txt @@ -0,0 +1,2 @@ +5,0,
+e,e,e,e,
diff --git a/narc/data/dt_test_res_pltt.txt b/narc/data/dt_test_res_pltt.txt new file mode 100644 index 00000000..cafc75f5 --- /dev/null +++ b/narc/data/dt_test_res_pltt.txt @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/narc/data/dun_sea.nsbtx.s b/narc/data/dun_sea.nsbtx.s new file mode 100644 index 00000000..d08e4dd0 --- /dev/null +++ b/narc/data/dun_sea.nsbtx.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3B4400, 0x578 diff --git a/narc/data/eoo.dat.s b/narc/data/eoo.dat.s new file mode 100644 index 00000000..9d4ccf5a --- /dev/null +++ b/narc/data/eoo.dat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3B4A00, 0x46000 diff --git a/narc/data/exdata.dat.s b/narc/data/exdata.dat.s new file mode 100644 index 00000000..a0b85931 --- /dev/null +++ b/narc/data/exdata.dat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x3FAA00, 0x124 diff --git a/narc/data/field_cutin.narc.s b/narc/data/field_cutin.narc.s new file mode 100644 index 00000000..bfaf13ea --- /dev/null +++ b/narc/data/field_cutin.narc.s @@ -0,0 +1,64 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0000D220 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000000A4 ; chunk size + .short 19 ; number of files + .balign 4 + .word 0x00000000, 0x00008040 + .word 0x00008040, 0x00008864 + .word 0x00008864, 0x00008A8C + .word 0x00008A8C, 0x00008CB4 + .word 0x00008CB4, 0x00008EDC + .word 0x00008EDC, 0x00009B8C + .word 0x00009B8C, 0x00009C0B + .word 0x00009C0C, 0x0000A03C + .word 0x0000A03C, 0x0000A09F + .word 0x0000A0A0, 0x0000A10F + .word 0x0000A110, 0x0000A240 + .word 0x0000A240, 0x0000A2BE + .word 0x0000A2C0, 0x0000A35A + .word 0x0000A35C, 0x0000B78C + .word 0x0000B78C, 0x0000B8C5 + .word 0x0000B8C8, 0x0000BA55 + .word 0x0000BA58, 0x0000CE88 + .word 0x0000CE88, 0x0000CFC1 + .word 0x0000CFC4, 0x0000D151 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0000D15C ; chunk size + .incbin "baserom.nds", 0x0, 0x8040 + .incbin "baserom.nds", 0x8040, 0x824 + .incbin "baserom.nds", 0x8864, 0x228 + .incbin "baserom.nds", 0x8A8C, 0x228 + .incbin "baserom.nds", 0x8CB4, 0x228 + .incbin "baserom.nds", 0x8EDC, 0xCB0 + .incbin "baserom.nds", 0x9B8C, 0x7F + .incbin "baserom.nds", 0x9C0C, 0x430 + .incbin "baserom.nds", 0xA03C, 0x63 + .incbin "baserom.nds", 0xA0A0, 0x6F + .incbin "baserom.nds", 0xA110, 0x130 + .incbin "baserom.nds", 0xA240, 0x7E + .incbin "baserom.nds", 0xA2C0, 0x9A + .incbin "baserom.nds", 0xA35C, 0x1430 + .incbin "baserom.nds", 0xB78C, 0x139 + .incbin "baserom.nds", 0xB8C8, 0x18D + .incbin "baserom.nds", 0xBA58, 0x1430 + .incbin "baserom.nds", 0xCE88, 0x139 + .incbin "baserom.nds", 0xCFC4, 0x18D + .balign 4, 255 diff --git a/narc/data/fld_anime0.bin.s b/narc/data/fld_anime0.bin.s new file mode 100644 index 00000000..11f7aa36 --- /dev/null +++ b/narc/data/fld_anime0.bin.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x408000, 0x48 diff --git a/narc/data/fld_anime1.bin.s b/narc/data/fld_anime1.bin.s new file mode 100644 index 00000000..5837ee6e --- /dev/null +++ b/narc/data/fld_anime1.bin.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x408200, 0x48 diff --git a/narc/data/fld_anime10.bin.s b/narc/data/fld_anime10.bin.s new file mode 100644 index 00000000..7411d7e2 --- /dev/null +++ b/narc/data/fld_anime10.bin.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x408400, 0x48 diff --git a/narc/data/fld_anime2.bin.s b/narc/data/fld_anime2.bin.s new file mode 100644 index 00000000..8c430540 --- /dev/null +++ b/narc/data/fld_anime2.bin.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x408600, 0x48 diff --git a/narc/data/fld_anime3.bin.s b/narc/data/fld_anime3.bin.s new file mode 100644 index 00000000..4d25c855 --- /dev/null +++ b/narc/data/fld_anime3.bin.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x408800, 0x48 diff --git a/narc/data/fld_anime4.bin.s b/narc/data/fld_anime4.bin.s new file mode 100644 index 00000000..18cd152d --- /dev/null +++ b/narc/data/fld_anime4.bin.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x408A00, 0x48 diff --git a/narc/data/fld_anime5.bin.s b/narc/data/fld_anime5.bin.s new file mode 100644 index 00000000..aead578d --- /dev/null +++ b/narc/data/fld_anime5.bin.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x408C00, 0x48 diff --git a/narc/data/fld_anime6.bin.s b/narc/data/fld_anime6.bin.s new file mode 100644 index 00000000..878b0506 --- /dev/null +++ b/narc/data/fld_anime6.bin.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x408E00, 0x48 diff --git a/narc/data/fld_anime7.bin.s b/narc/data/fld_anime7.bin.s new file mode 100644 index 00000000..aace6753 --- /dev/null +++ b/narc/data/fld_anime7.bin.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x409000, 0x48 diff --git a/narc/data/fld_anime8.bin.s b/narc/data/fld_anime8.bin.s new file mode 100644 index 00000000..31328137 --- /dev/null +++ b/narc/data/fld_anime8.bin.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x409200, 0x48 diff --git a/narc/data/fld_anime9.bin.s b/narc/data/fld_anime9.bin.s new file mode 100644 index 00000000..e0f518dc --- /dev/null +++ b/narc/data/fld_anime9.bin.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x409400, 0x48 diff --git a/narc/data/fs_kanban.nsbca.s b/narc/data/fs_kanban.nsbca.s new file mode 100644 index 00000000..eaf4d772 --- /dev/null +++ b/narc/data/fs_kanban.nsbca.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x409600, 0x7F4 diff --git a/narc/data/ground0.NCGR.s b/narc/data/ground0.NCGR.s new file mode 100644 index 00000000..7eff2a8c --- /dev/null +++ b/narc/data/ground0.NCGR.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x409E00, 0x8030 diff --git a/narc/data/ground0.NCLR.s b/narc/data/ground0.NCLR.s new file mode 100644 index 00000000..43d59e8b --- /dev/null +++ b/narc/data/ground0.NCLR.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x412000, 0x228 diff --git a/narc/data/ground0.NSCR.s b/narc/data/ground0.NSCR.s new file mode 100644 index 00000000..e5ff1b1c --- /dev/null +++ b/narc/data/ground0.NSCR.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x412400, 0x824 diff --git a/narc/data/kemu_itpconv.dat.s b/narc/data/kemu_itpconv.dat.s new file mode 100644 index 00000000..954f4f93 --- /dev/null +++ b/narc/data/kemu_itpconv.dat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x412E00, 0x14 diff --git a/narc/data/lake_anim.nsbtx.s b/narc/data/lake_anim.nsbtx.s new file mode 100644 index 00000000..49f80fa4 --- /dev/null +++ b/narc/data/lake_anim.nsbtx.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x413000, 0x1150 diff --git a/narc/data/miniasahamabe.nsbtx.s b/narc/data/miniasahamabe.nsbtx.s new file mode 100644 index 00000000..972b2b81 --- /dev/null +++ b/narc/data/miniasahamabe.nsbtx.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x414200, 0x1188 diff --git a/narc/data/miniasasea.nsbtx.s b/narc/data/miniasasea.nsbtx.s new file mode 100644 index 00000000..c8bfa863 --- /dev/null +++ b/narc/data/miniasasea.nsbtx.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x415400, 0x578 diff --git a/narc/data/minihamabe.nsbtx.s b/narc/data/minihamabe.nsbtx.s new file mode 100644 index 00000000..e5a6f839 --- /dev/null +++ b/narc/data/minihamabe.nsbtx.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x415A00, 0x1188 diff --git a/narc/data/minimum.nsbtx.s b/narc/data/minimum.nsbtx.s new file mode 100644 index 00000000..f58778b5 --- /dev/null +++ b/narc/data/minimum.nsbtx.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x416C00, 0x578 diff --git a/narc/data/minirhana.nsbtx.s b/narc/data/minirhana.nsbtx.s new file mode 100644 index 00000000..fe267cf2 --- /dev/null +++ b/narc/data/minirhana.nsbtx.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x417200, 0x2C8 diff --git a/narc/data/namein.narc.s b/narc/data/namein.narc.s new file mode 100644 index 00000000..ddd708b9 --- /dev/null +++ b/narc/data/namein.narc.s @@ -0,0 +1,64 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00003F58 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000000A4 ; chunk size + .short 19 ; number of files + .balign 4 + .word 0x00000000, 0x00000228 + .word 0x00000228, 0x00000450 + .word 0x00000450, 0x00000B29 + .word 0x00000B2C, 0x00000D83 + .word 0x00000D84, 0x00000EA2 + .word 0x00000EA4, 0x00000FE1 + .word 0x00000FE4, 0x000010B3 + .word 0x000010B4, 0x00001184 + .word 0x00001184, 0x00001254 + .word 0x00001254, 0x00001324 + .word 0x00001324, 0x00002D15 + .word 0x00002D18, 0x00002F9A + .word 0x00002F9C, 0x00003401 + .word 0x00003404, 0x0000354B + .word 0x0000354C, 0x00003A74 + .word 0x00003A74, 0x00003B13 + .word 0x00003B14, 0x00003C1F + .word 0x00003C20, 0x00003D4F + .word 0x00003D50, 0x00003E8A + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00003E94 ; chunk size + .incbin "baserom.nds", 0x0, 0x228 + .incbin "baserom.nds", 0x228, 0x228 + .incbin "baserom.nds", 0x450, 0x6D9 + .incbin "baserom.nds", 0xB2C, 0x257 + .incbin "baserom.nds", 0xD84, 0x11E + .incbin "baserom.nds", 0xEA4, 0x13D + .incbin "baserom.nds", 0xFE4, 0xCF + .incbin "baserom.nds", 0x10B4, 0xD0 + .incbin "baserom.nds", 0x1184, 0xD0 + .incbin "baserom.nds", 0x1254, 0xD0 + .incbin "baserom.nds", 0x1324, 0x19F1 + .incbin "baserom.nds", 0x2D18, 0x282 + .incbin "baserom.nds", 0x2F9C, 0x465 + .incbin "baserom.nds", 0x3404, 0x147 + .incbin "baserom.nds", 0x354C, 0x528 + .incbin "baserom.nds", 0x3A74, 0x9F + .incbin "baserom.nds", 0x3B14, 0x10B + .incbin "baserom.nds", 0x3C20, 0x12F + .incbin "baserom.nds", 0x3D50, 0x13A + .balign 4, 255 diff --git a/narc/data/nfont.NCGR.s b/narc/data/nfont.NCGR.s new file mode 100644 index 00000000..312c3e8d --- /dev/null +++ b/narc/data/nfont.NCGR.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x41B600, 0x8030 diff --git a/narc/data/nfont.NCLR.s b/narc/data/nfont.NCLR.s new file mode 100644 index 00000000..e99e22d8 --- /dev/null +++ b/narc/data/nfont.NCLR.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x423800, 0x228 diff --git a/narc/data/pc.nsbca.s b/narc/data/pc.nsbca.s new file mode 100644 index 00000000..c771a861 --- /dev/null +++ b/narc/data/pc.nsbca.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x423C00, 0x18C diff --git a/narc/data/plist_canm.resdat.s b/narc/data/plist_canm.resdat.s new file mode 100644 index 00000000..90b4a1db --- /dev/null +++ b/narc/data/plist_canm.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x423E00, 0xC4 diff --git a/narc/data/plist_cell.resdat.s b/narc/data/plist_cell.resdat.s new file mode 100644 index 00000000..d39d160c --- /dev/null +++ b/narc/data/plist_cell.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x424000, 0xC4 diff --git a/narc/data/plist_chr.resdat.s b/narc/data/plist_chr.resdat.s new file mode 100644 index 00000000..75400ca7 --- /dev/null +++ b/narc/data/plist_chr.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x424200, 0x13C diff --git a/narc/data/plist_h.cldat.s b/narc/data/plist_h.cldat.s new file mode 100644 index 00000000..b9650f44 --- /dev/null +++ b/narc/data/plist_h.cldat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x424400, 0x1A0 diff --git a/narc/data/plist_pal.resdat.s b/narc/data/plist_pal.resdat.s new file mode 100644 index 00000000..4b50a305 --- /dev/null +++ b/narc/data/plist_pal.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x424600, 0x94 diff --git a/narc/data/porucase_canm.resdat.s b/narc/data/porucase_canm.resdat.s new file mode 100644 index 00000000..3dbbe6f6 --- /dev/null +++ b/narc/data/porucase_canm.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x424800, 0x4C diff --git a/narc/data/porucase_celact.cldat.s b/narc/data/porucase_celact.cldat.s new file mode 100644 index 00000000..8857473b --- /dev/null +++ b/narc/data/porucase_celact.cldat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x424A00, 0x60 diff --git a/narc/data/porucase_cell.resdat.s b/narc/data/porucase_cell.resdat.s new file mode 100644 index 00000000..44613536 --- /dev/null +++ b/narc/data/porucase_cell.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x424C00, 0x4C diff --git a/narc/data/porucase_chr.resdat.s b/narc/data/porucase_chr.resdat.s new file mode 100644 index 00000000..61183e1e --- /dev/null +++ b/narc/data/porucase_chr.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x424E00, 0x4C diff --git a/narc/data/porucase_pal.resdat.s b/narc/data/porucase_pal.resdat.s new file mode 100644 index 00000000..72b52414 --- /dev/null +++ b/narc/data/porucase_pal.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x425000, 0x34 diff --git a/narc/data/pst_canm.resdat.s b/narc/data/pst_canm.resdat.s new file mode 100644 index 00000000..b4825398 --- /dev/null +++ b/narc/data/pst_canm.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x425200, 0x1B4 diff --git a/narc/data/pst_cell.resdat.s b/narc/data/pst_cell.resdat.s new file mode 100644 index 00000000..1d307fdd --- /dev/null +++ b/narc/data/pst_cell.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x425400, 0x1B4 diff --git a/narc/data/pst_chr.resdat.s b/narc/data/pst_chr.resdat.s new file mode 100644 index 00000000..f2851160 --- /dev/null +++ b/narc/data/pst_chr.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x425600, 0x424 diff --git a/narc/data/pst_h.cldat.s b/narc/data/pst_h.cldat.s new file mode 100644 index 00000000..e830e900 --- /dev/null +++ b/narc/data/pst_h.cldat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x425C00, 0x580 diff --git a/narc/data/pst_pal.resdat.s b/narc/data/pst_pal.resdat.s new file mode 100644 index 00000000..1e790154 --- /dev/null +++ b/narc/data/pst_pal.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x426200, 0xAC diff --git a/narc/data/shop_canm.resdat.s b/narc/data/shop_canm.resdat.s new file mode 100644 index 00000000..91187065 --- /dev/null +++ b/narc/data/shop_canm.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x426400, 0x64 diff --git a/narc/data/shop_cell.resdat.s b/narc/data/shop_cell.resdat.s new file mode 100644 index 00000000..3f0dd2e5 --- /dev/null +++ b/narc/data/shop_cell.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x426600, 0x64 diff --git a/narc/data/shop_chr.resdat.s b/narc/data/shop_chr.resdat.s new file mode 100644 index 00000000..f6a5a4fa --- /dev/null +++ b/narc/data/shop_chr.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x426800, 0x64 diff --git a/narc/data/shop_h.cldat.s b/narc/data/shop_h.cldat.s new file mode 100644 index 00000000..ce4fbb56 --- /dev/null +++ b/narc/data/shop_h.cldat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x426A00, 0x80 diff --git a/narc/data/shop_pal.resdat.s b/narc/data/shop_pal.resdat.s new file mode 100644 index 00000000..05b615b7 --- /dev/null +++ b/narc/data/shop_pal.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x426C00, 0x4C diff --git a/narc/data/slot.narc.s b/narc/data/slot.narc.s new file mode 100644 index 00000000..b00ef8b3 --- /dev/null +++ b/narc/data/slot.narc.s @@ -0,0 +1,180 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00015944 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000274 ; chunk size + .short 77 ; number of files + .balign 4 + .word 0x00000000, 0x00001840 + .word 0x00001840, 0x00002064 + .word 0x00002064, 0x000035E4 + .word 0x000035E4, 0x0000380C + .word 0x0000380C, 0x00004030 + .word 0x00004030, 0x00004258 + .word 0x00004258, 0x00004480 + .word 0x00004480, 0x000046A8 + .word 0x000046A8, 0x000047E8 + .word 0x000047E8, 0x0000500C + .word 0x0000500C, 0x00005234 + .word 0x00005234, 0x00006A64 + .word 0x00006A64, 0x00006B56 + .word 0x00006B58, 0x00006C9E + .word 0x00006CA0, 0x000070D0 + .word 0x000070D0, 0x00007133 + .word 0x00007134, 0x000071A3 + .word 0x000071A4, 0x000075D4 + .word 0x000075D4, 0x00007637 + .word 0x00007638, 0x000076A7 + .word 0x000076A8, 0x000078D0 + .word 0x000078D0, 0x00007E00 + .word 0x00007E00, 0x00007F66 + .word 0x00007F68, 0x0000815A + .word 0x0000815C, 0x0000870C + .word 0x0000870C, 0x00008887 + .word 0x00008888, 0x00008A4F + .word 0x00008A50, 0x00008C78 + .word 0x00008C78, 0x00009228 + .word 0x00009228, 0x000093A3 + .word 0x000093A4, 0x0000956B + .word 0x0000956C, 0x00009794 + .word 0x00009794, 0x00009D44 + .word 0x00009D44, 0x00009EBF + .word 0x00009EC0, 0x0000A087 + .word 0x0000A088, 0x0000A2B0 + .word 0x0000A2B0, 0x0000A860 + .word 0x0000A860, 0x0000A9DB + .word 0x0000A9DC, 0x0000ABA3 + .word 0x0000ABA4, 0x0000ADCC + .word 0x0000ADCC, 0x0000B37C + .word 0x0000B37C, 0x0000B4F7 + .word 0x0000B4F8, 0x0000B6BF + .word 0x0000B6C0, 0x0000B8E8 + .word 0x0000B8E8, 0x0000C918 + .word 0x0000C918, 0x0000C99F + .word 0x0000C9A0, 0x0000CA17 + .word 0x0000CA18, 0x0000CC40 + .word 0x0000CC40, 0x0000F470 + .word 0x0000F470, 0x0000F586 + .word 0x0000F588, 0x0000F6F6 + .word 0x0000F6F8, 0x0000F920 + .word 0x0000F920, 0x00012150 + .word 0x00012150, 0x00012266 + .word 0x00012268, 0x000123D6 + .word 0x000123D8, 0x00012600 + .word 0x00012600, 0x00012E30 + .word 0x00012E30, 0x00012EA3 + .word 0x00012EA4, 0x00012F13 + .word 0x00012F14, 0x0001313C + .word 0x0001313C, 0x00013B6C + .word 0x00013B6C, 0x00013CD2 + .word 0x00013CD4, 0x00013EC6 + .word 0x00013EC8, 0x000140F0 + .word 0x000140F0, 0x00014620 + .word 0x00014620, 0x00014786 + .word 0x00014788, 0x0001497A + .word 0x0001497C, 0x00014BA4 + .word 0x00014BA4, 0x00014D54 + .word 0x00014D54, 0x00014DBB + .word 0x00014DBC, 0x00014E2B + .word 0x00014E2C, 0x00014F5C + .word 0x00014F5C, 0x00014FBF + .word 0x00014FC0, 0x0001502F + .word 0x00015030, 0x00015258 + .word 0x00015258, 0x00015480 + .word 0x00015480, 0x000156A8 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000156B0 ; chunk size + .incbin "baserom.nds", 0x0, 0x1840 + .incbin "baserom.nds", 0x1840, 0x824 + .incbin "baserom.nds", 0x2064, 0x1580 + .incbin "baserom.nds", 0x35E4, 0x228 + .incbin "baserom.nds", 0x380C, 0x824 + .incbin "baserom.nds", 0x4030, 0x228 + .incbin "baserom.nds", 0x4258, 0x228 + .incbin "baserom.nds", 0x4480, 0x228 + .incbin "baserom.nds", 0x46A8, 0x140 + .incbin "baserom.nds", 0x47E8, 0x824 + .incbin "baserom.nds", 0x500C, 0x228 + .incbin "baserom.nds", 0x5234, 0x1830 + .incbin "baserom.nds", 0x6A64, 0xF2 + .incbin "baserom.nds", 0x6B58, 0x146 + .incbin "baserom.nds", 0x6CA0, 0x430 + .incbin "baserom.nds", 0x70D0, 0x63 + .incbin "baserom.nds", 0x7134, 0x6F + .incbin "baserom.nds", 0x71A4, 0x430 + .incbin "baserom.nds", 0x75D4, 0x63 + .incbin "baserom.nds", 0x7638, 0x6F + .incbin "baserom.nds", 0x76A8, 0x228 + .incbin "baserom.nds", 0x78D0, 0x530 + .incbin "baserom.nds", 0x7E00, 0x166 + .incbin "baserom.nds", 0x7F68, 0x1F2 + .incbin "baserom.nds", 0x815C, 0x5B0 + .incbin "baserom.nds", 0x870C, 0x17B + .incbin "baserom.nds", 0x8888, 0x1C7 + .incbin "baserom.nds", 0x8A50, 0x228 + .incbin "baserom.nds", 0x8C78, 0x5B0 + .incbin "baserom.nds", 0x9228, 0x17B + .incbin "baserom.nds", 0x93A4, 0x1C7 + .incbin "baserom.nds", 0x956C, 0x228 + .incbin "baserom.nds", 0x9794, 0x5B0 + .incbin "baserom.nds", 0x9D44, 0x17B + .incbin "baserom.nds", 0x9EC0, 0x1C7 + .incbin "baserom.nds", 0xA088, 0x228 + .incbin "baserom.nds", 0xA2B0, 0x5B0 + .incbin "baserom.nds", 0xA860, 0x17B + .incbin "baserom.nds", 0xA9DC, 0x1C7 + .incbin "baserom.nds", 0xABA4, 0x228 + .incbin "baserom.nds", 0xADCC, 0x5B0 + .incbin "baserom.nds", 0xB37C, 0x17B + .incbin "baserom.nds", 0xB4F8, 0x1C7 + .incbin "baserom.nds", 0xB6C0, 0x228 + .incbin "baserom.nds", 0xB8E8, 0x1030 + .incbin "baserom.nds", 0xC918, 0x87 + .incbin "baserom.nds", 0xC9A0, 0x77 + .incbin "baserom.nds", 0xCA18, 0x228 + .incbin "baserom.nds", 0xCC40, 0x2830 + .incbin "baserom.nds", 0xF470, 0x116 + .incbin "baserom.nds", 0xF588, 0x16E + .incbin "baserom.nds", 0xF6F8, 0x228 + .incbin "baserom.nds", 0xF920, 0x2830 + .incbin "baserom.nds", 0x12150, 0x116 + .incbin "baserom.nds", 0x12268, 0x16E + .incbin "baserom.nds", 0x123D8, 0x228 + .incbin "baserom.nds", 0x12600, 0x830 + .incbin "baserom.nds", 0x12E30, 0x73 + .incbin "baserom.nds", 0x12EA4, 0x6F + .incbin "baserom.nds", 0x12F14, 0x228 + .incbin "baserom.nds", 0x1313C, 0xA30 + .incbin "baserom.nds", 0x13B6C, 0x166 + .incbin "baserom.nds", 0x13CD4, 0x1F2 + .incbin "baserom.nds", 0x13EC8, 0x228 + .incbin "baserom.nds", 0x140F0, 0x530 + .incbin "baserom.nds", 0x14620, 0x166 + .incbin "baserom.nds", 0x14788, 0x1F2 + .incbin "baserom.nds", 0x1497C, 0x228 + .incbin "baserom.nds", 0x14BA4, 0x1B0 + .incbin "baserom.nds", 0x14D54, 0x67 + .incbin "baserom.nds", 0x14DBC, 0x6F + .incbin "baserom.nds", 0x14E2C, 0x130 + .incbin "baserom.nds", 0x14F5C, 0x63 + .incbin "baserom.nds", 0x14FC0, 0x6F + .incbin "baserom.nds", 0x15030, 0x228 + .incbin "baserom.nds", 0x15258, 0x228 + .incbin "baserom.nds", 0x15480, 0x228 + .balign 4, 255 diff --git a/narc/data/smptm_koori.NANR.s b/narc/data/smptm_koori.NANR.s new file mode 100644 index 00000000..a601a699 --- /dev/null +++ b/narc/data/smptm_koori.NANR.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x43C800, 0xA3 diff --git a/narc/data/smptm_koori.NCER.s b/narc/data/smptm_koori.NCER.s new file mode 100644 index 00000000..17d17b50 --- /dev/null +++ b/narc/data/smptm_koori.NCER.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x43CA00, 0xD7 diff --git a/narc/data/smptm_koori.NCGR.s b/narc/data/smptm_koori.NCGR.s new file mode 100644 index 00000000..51903804 --- /dev/null +++ b/narc/data/smptm_koori.NCGR.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x43CC00, 0xCB0 diff --git a/narc/data/smptm_koori.NCLR.s b/narc/data/smptm_koori.NCLR.s new file mode 100644 index 00000000..a7580c27 --- /dev/null +++ b/narc/data/smptm_koori.NCLR.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x43DA00, 0x228 diff --git a/narc/data/smptm_nemuri.NANR.s b/narc/data/smptm_nemuri.NANR.s new file mode 100644 index 00000000..bc75954c --- /dev/null +++ b/narc/data/smptm_nemuri.NANR.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x43DE00, 0x6F diff --git a/narc/data/smptm_nemuri.NCER.s b/narc/data/smptm_nemuri.NCER.s new file mode 100644 index 00000000..4cee2f49 --- /dev/null +++ b/narc/data/smptm_nemuri.NCER.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x43E000, 0x63 diff --git a/narc/data/smptm_nemuri.NCGR.s b/narc/data/smptm_nemuri.NCGR.s new file mode 100644 index 00000000..e4e2dba3 --- /dev/null +++ b/narc/data/smptm_nemuri.NCGR.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x43E200, 0x230 diff --git a/narc/data/smptm_nemuri.NCLR.s b/narc/data/smptm_nemuri.NCLR.s new file mode 100644 index 00000000..1e95c1d4 --- /dev/null +++ b/narc/data/smptm_nemuri.NCLR.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x43E600, 0x228 diff --git a/narc/data/t3_fl_b.nsbtx.s b/narc/data/t3_fl_b.nsbtx.s new file mode 100644 index 00000000..ce4b205e --- /dev/null +++ b/narc/data/t3_fl_b.nsbtx.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x43EA00, 0x250 diff --git a/narc/data/t3_fl_p.nsbtx.s b/narc/data/t3_fl_p.nsbtx.s new file mode 100644 index 00000000..eb06b30c --- /dev/null +++ b/narc/data/t3_fl_p.nsbtx.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x43EE00, 0x250 diff --git a/narc/data/t3_fl_r.nsbtx.s b/narc/data/t3_fl_r.nsbtx.s new file mode 100644 index 00000000..ef7878f9 --- /dev/null +++ b/narc/data/t3_fl_r.nsbtx.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x43F200, 0x250 diff --git a/narc/data/t3_fl_y.nsbtx.s b/narc/data/t3_fl_y.nsbtx.s new file mode 100644 index 00000000..9e5dee37 --- /dev/null +++ b/narc/data/t3_fl_y.nsbtx.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x43F600, 0x250 diff --git a/narc/data/test.atr.s b/narc/data/test.atr.s new file mode 100644 index 00000000..7d3c31bd --- /dev/null +++ b/narc/data/test.atr.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x43FA00, 0x800 diff --git a/narc/data/tmap_block.dat.s b/narc/data/tmap_block.dat.s new file mode 100644 index 00000000..8d49efb5 --- /dev/null +++ b/narc/data/tmap_block.dat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x440200, 0x1114 diff --git a/narc/data/tmap_flags.dat.s b/narc/data/tmap_flags.dat.s new file mode 100644 index 00000000..54ec3f89 --- /dev/null +++ b/narc/data/tmap_flags.dat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x441400, 0x2DC diff --git a/narc/data/tmapn_canm.resdat.s b/narc/data/tmapn_canm.resdat.s new file mode 100644 index 00000000..9cd2571b --- /dev/null +++ b/narc/data/tmapn_canm.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x441800, 0x94 diff --git a/narc/data/tmapn_celact.cldat.s b/narc/data/tmapn_celact.cldat.s new file mode 100644 index 00000000..285a43d6 --- /dev/null +++ b/narc/data/tmapn_celact.cldat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x441A00, 0xC0 diff --git a/narc/data/tmapn_celact.txt b/narc/data/tmapn_celact.txt new file mode 100644 index 00000000..a9c7d20a --- /dev/null +++ b/narc/data/tmapn_celact.txt @@ -0,0 +1,8 @@ +0,1,0,0,n,n,0,0, <-Tu{^Z
+1,0,1,1,n,n,0,2, <-CJ[\Z
+2,0,2,2,n,n,0,2, <-C@Z
+3,0,3,3,n,n,0,2, <-CՃZ
+4,0,4,4,n,n,0,2, <-CXZ
+e,e,e,e,e,e,e,e,
+
+charID,palID,celID,celAnmID,McelID,McelAnmID,vramTransferF,BGPriority
diff --git a/narc/data/tmapn_cell.resdat.s b/narc/data/tmapn_cell.resdat.s new file mode 100644 index 00000000..4158c838 --- /dev/null +++ b/narc/data/tmapn_cell.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x441E00, 0x94 diff --git a/narc/data/tmapn_chr.resdat.s b/narc/data/tmapn_chr.resdat.s new file mode 100644 index 00000000..33c6e2f1 --- /dev/null +++ b/narc/data/tmapn_chr.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x442000, 0x94 diff --git a/narc/data/tmapn_pal.resdat.s b/narc/data/tmapn_pal.resdat.s new file mode 100644 index 00000000..5f2500d5 --- /dev/null +++ b/narc/data/tmapn_pal.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x442200, 0x4C diff --git a/narc/data/tmapn_res_canm.txt b/narc/data/tmapn_res_canm.txt new file mode 100644 index 00000000..0f33864a --- /dev/null +++ b/narc/data/tmapn_res_canm.txt @@ -0,0 +1,9 @@ +3,1,
+17,6,0,0, <-Tu{^
+17,9,0,1, <-CJ[\
+17,12,0,2, <-C@
+17,15,0,3, <-C
+17,18,0,4, <-CX
+e,e,e,e,
+
+arcFidx,arcDidx,cmpF,myID
diff --git a/narc/data/tmapn_res_cell.txt b/narc/data/tmapn_res_cell.txt new file mode 100644 index 00000000..93f58403 --- /dev/null +++ b/narc/data/tmapn_res_cell.txt @@ -0,0 +1,10 @@ +2,1,
+17,5,0,0, <-Tuʃ{^GtFNg
+17,8,0,1, <-CJ[\
+17,11,0,2, <-C@
+17,14,0,3, <-C
+17,17,0,4, <-CX
+e,e,e,e,
+
+arcFidx,arcDidx,cmpF,myID
+
diff --git a/narc/data/tmapn_res_chr.txt b/narc/data/tmapn_res_chr.txt new file mode 100644 index 00000000..8489deb3 --- /dev/null +++ b/narc/data/tmapn_res_chr.txt @@ -0,0 +1,9 @@ +0,1,
+17,4,0,0,2, <-Tu{^
+17,7,0,1,1, <-CJ[\
+17,10,0,2,1, <-C@
+17,13,0,3,1, <-C
+17,16,0,4,1, <-CXACR
+e,e,e,e,e,
+
+arcFidx,arcDidx,cmpF,myID,vramType(1:main,2:sub,3:both)
diff --git a/narc/data/tmapn_res_pal.txt b/narc/data/tmapn_res_pal.txt new file mode 100644 index 00000000..d6bed157 --- /dev/null +++ b/narc/data/tmapn_res_pal.txt @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/narc/data/tradelist.narc.s b/narc/data/tradelist.narc.s new file mode 100644 index 00000000..eabcdd85 --- /dev/null +++ b/narc/data/tradelist.narc.s @@ -0,0 +1,52 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00002A74 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000074 ; chunk size + .short 13 ; number of files + .balign 4 + .word 0x00000000, 0x00000228 + .word 0x00000228, 0x00000575 + .word 0x00000578, 0x000007BA + .word 0x000007BC, 0x00000AFE + .word 0x00000B00, 0x00000C21 + .word 0x00000C24, 0x00000E22 + .word 0x00000E24, 0x00000F44 + .word 0x00000F44, 0x000017B4 + .word 0x000017B4, 0x0000197E + .word 0x00001980, 0x00001B46 + .word 0x00001B48, 0x000024EC + .word 0x000024EC, 0x000027B9 + .word 0x000027BC, 0x000029D7 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000029E0 ; chunk size + .incbin "baserom.nds", 0x0, 0x228 + .incbin "baserom.nds", 0x228, 0x34D + .incbin "baserom.nds", 0x578, 0x242 + .incbin "baserom.nds", 0x7BC, 0x342 + .incbin "baserom.nds", 0xB00, 0x121 + .incbin "baserom.nds", 0xC24, 0x1FE + .incbin "baserom.nds", 0xE24, 0x120 + .incbin "baserom.nds", 0xF44, 0x870 + .incbin "baserom.nds", 0x17B4, 0x1CA + .incbin "baserom.nds", 0x1980, 0x1C6 + .incbin "baserom.nds", 0x1B48, 0x9A4 + .incbin "baserom.nds", 0x24EC, 0x2CD + .incbin "baserom.nds", 0x27BC, 0x21B + .balign 4, 255 diff --git a/narc/data/trapmark.narc.s b/narc/data/trapmark.narc.s new file mode 100644 index 00000000..518b29ca --- /dev/null +++ b/narc/data/trapmark.narc.s @@ -0,0 +1,28 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00000264 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000014 ; chunk size + .short 1 ; number of files + .balign 4 + .word 0x00000000, 0x00000228 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00000230 ; chunk size + .incbin "baserom.nds", 0x0, 0x228 + .balign 4, 255 diff --git a/narc/data/ug_anim.narc.s b/narc/data/ug_anim.narc.s new file mode 100644 index 00000000..e83a3ba2 --- /dev/null +++ b/narc/data/ug_anim.narc.s @@ -0,0 +1,42 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00005C80 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000004C ; chunk size + .short 8 ; number of files + .balign 4 + .word 0x00000000, 0x00000228 + .word 0x00000228, 0x00000381 + .word 0x00000384, 0x00000455 + .word 0x00000458, 0x00001088 + .word 0x00001088, 0x000013F9 + .word 0x000013FC, 0x00001631 + .word 0x00001634, 0x000059E4 + .word 0x000059E4, 0x00005C0C + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00005C14 ; chunk size + .incbin "baserom.nds", 0x0, 0x228 + .incbin "baserom.nds", 0x228, 0x159 + .incbin "baserom.nds", 0x384, 0xD1 + .incbin "baserom.nds", 0x458, 0xC30 + .incbin "baserom.nds", 0x1088, 0x371 + .incbin "baserom.nds", 0x13FC, 0x235 + .incbin "baserom.nds", 0x1634, 0x43B0 + .incbin "baserom.nds", 0x59E4, 0x228 + .balign 4, 255 diff --git a/narc/data/ug_base_cur.nsbmd.s b/narc/data/ug_base_cur.nsbmd.s new file mode 100644 index 00000000..6f1646d6 --- /dev/null +++ b/narc/data/ug_base_cur.nsbmd.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x44BA00, 0x694 diff --git a/narc/data/ug_boygirl.NCGR.s b/narc/data/ug_boygirl.NCGR.s new file mode 100644 index 00000000..557afdbf --- /dev/null +++ b/narc/data/ug_boygirl.NCGR.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x44C200, 0x1230 diff --git a/narc/data/ug_boygirl.NCLR.s b/narc/data/ug_boygirl.NCLR.s new file mode 100644 index 00000000..6c2baf8a --- /dev/null +++ b/narc/data/ug_boygirl.NCLR.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x44D600, 0x228 diff --git a/narc/data/ug_fossil.narc.s b/narc/data/ug_fossil.narc.s new file mode 100644 index 00000000..52a9b24f --- /dev/null +++ b/narc/data/ug_fossil.narc.s @@ -0,0 +1,32 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00003ED8 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000024 ; chunk size + .short 3 ; number of files + .balign 4 + .word 0x00000000, 0x00003640 + .word 0x00003640, 0x00003868 + .word 0x00003868, 0x00003E8C + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00003E94 ; chunk size + .incbin "baserom.nds", 0x0, 0x3640 + .incbin "baserom.nds", 0x3640, 0x228 + .incbin "baserom.nds", 0x3868, 0x624 + .balign 4, 255 diff --git a/narc/data/ug_hero.NANR.s b/narc/data/ug_hero.NANR.s new file mode 100644 index 00000000..a3b69846 --- /dev/null +++ b/narc/data/ug_hero.NANR.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x451A00, 0xF9 diff --git a/narc/data/ug_hero.NCER.s b/narc/data/ug_hero.NCER.s new file mode 100644 index 00000000..bc3ba606 --- /dev/null +++ b/narc/data/ug_hero.NCER.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x451C00, 0x109 diff --git a/narc/data/ug_hole.NANR.s b/narc/data/ug_hole.NANR.s new file mode 100644 index 00000000..d305342b --- /dev/null +++ b/narc/data/ug_hole.NANR.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x451E00, 0xD6 diff --git a/narc/data/ug_hole.NCER.s b/narc/data/ug_hole.NCER.s new file mode 100644 index 00000000..3aa982f2 --- /dev/null +++ b/narc/data/ug_hole.NCER.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x452000, 0xA2 diff --git a/narc/data/ug_hole.NCGR.s b/narc/data/ug_hole.NCGR.s new file mode 100644 index 00000000..602e0f0c --- /dev/null +++ b/narc/data/ug_hole.NCGR.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x452200, 0x530 diff --git a/narc/data/ug_parts.narc.s b/narc/data/ug_parts.narc.s new file mode 100644 index 00000000..771fb22b --- /dev/null +++ b/narc/data/ug_parts.narc.s @@ -0,0 +1,258 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0002079C ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000003AC ; chunk size + .short 116 ; number of files + .balign 4 + .word 0x00000000, 0x00000228 + .word 0x00000228, 0x000006E8 + .word 0x000006E8, 0x00000928 + .word 0x00000928, 0x00000B50 + .word 0x00000B50, 0x00001010 + .word 0x00001010, 0x00001250 + .word 0x00001250, 0x00001710 + .word 0x00001710, 0x00001938 + .word 0x00001938, 0x00001B60 + .word 0x00001B60, 0x00001FA0 + .word 0x00001FA0, 0x000028E0 + .word 0x000028E0, 0x00002B08 + .word 0x00002B08, 0x00003448 + .word 0x00003448, 0x00003C88 + .word 0x00003C88, 0x00003EB0 + .word 0x00003EB0, 0x000040D8 + .word 0x000040D8, 0x00004598 + .word 0x00004598, 0x00004A58 + .word 0x00004A58, 0x00004C98 + .word 0x00004C98, 0x00004EC0 + .word 0x00004EC0, 0x00005100 + .word 0x00005100, 0x00005328 + .word 0x00005328, 0x00005968 + .word 0x00005968, 0x00005B90 + .word 0x00005B90, 0x00006050 + .word 0x00006050, 0x00006278 + .word 0x00006278, 0x000064A0 + .word 0x000064A0, 0x000066E0 + .word 0x000066E0, 0x00006920 + .word 0x00006920, 0x00006B60 + .word 0x00006B60, 0x00006EA0 + .word 0x00006EA0, 0x000071E0 + .word 0x000071E0, 0x00007520 + .word 0x00007520, 0x00007860 + .word 0x00007860, 0x00007BA0 + .word 0x00007BA0, 0x00007EE0 + .word 0x00007EE0, 0x00008220 + .word 0x00008220, 0x00008560 + .word 0x00008560, 0x00008A20 + .word 0x00008A20, 0x00008E60 + .word 0x00008E60, 0x000092A0 + .word 0x000092A0, 0x00009AE0 + .word 0x00009AE0, 0x0000A320 + .word 0x0000A320, 0x0000AB60 + .word 0x0000AB60, 0x0000B3A0 + .word 0x0000B3A0, 0x0000B860 + .word 0x0000B860, 0x0000BA88 + .word 0x0000BA88, 0x0000C2C8 + .word 0x0000C2C8, 0x0000C4F0 + .word 0x0000C4F0, 0x0000C718 + .word 0x0000C718, 0x0000CB58 + .word 0x0000CB58, 0x0000CD80 + .word 0x0000CD80, 0x0000D5C0 + .word 0x0000D5C0, 0x0000D7E8 + .word 0x0000D7E8, 0x0000E028 + .word 0x0000E028, 0x0000E250 + .word 0x0000E250, 0x0000E710 + .word 0x0000E710, 0x0000E950 + .word 0x0000E950, 0x0000F390 + .word 0x0000F390, 0x0000F850 + .word 0x0000F850, 0x0000FA78 + .word 0x0000FA78, 0x0000FCA0 + .word 0x0000FCA0, 0x00010160 + .word 0x00010160, 0x000103A0 + .word 0x000103A0, 0x00010860 + .word 0x00010860, 0x00010A88 + .word 0x00010A88, 0x00010EC8 + .word 0x00010EC8, 0x000110F0 + .word 0x000110F0, 0x00011530 + .word 0x00011530, 0x000121F0 + .word 0x000121F0, 0x00012EB0 + .word 0x00012EB0, 0x00013B70 + .word 0x00013B70, 0x00014830 + .word 0x00014830, 0x00015070 + .word 0x00015070, 0x00015298 + .word 0x00015298, 0x00015758 + .word 0x00015758, 0x00015980 + .word 0x00015980, 0x00015BA8 + .word 0x00015BA8, 0x00015DD0 + .word 0x00015DD0, 0x00015FF8 + .word 0x00015FF8, 0x00016220 + .word 0x00016220, 0x00016860 + .word 0x00016860, 0x00016A88 + .word 0x00016A88, 0x00016CB0 + .word 0x00016CB0, 0x00016ED8 + .word 0x00016ED8, 0x00017100 + .word 0x00017100, 0x00017740 + .word 0x00017740, 0x00017968 + .word 0x00017968, 0x00017E28 + .word 0x00017E28, 0x00018050 + .word 0x00018050, 0x00018278 + .word 0x00018278, 0x000184A0 + .word 0x000184A0, 0x000186C8 + .word 0x000186C8, 0x000188F0 + .word 0x000188F0, 0x00018B18 + .word 0x00018B18, 0x00019158 + .word 0x00019158, 0x00019798 + .word 0x00019798, 0x000199C0 + .word 0x000199C0, 0x0001A000 + .word 0x0001A000, 0x0001A840 + .word 0x0001A840, 0x0001AA68 + .word 0x0001AA68, 0x0001AC90 + .word 0x0001AC90, 0x0001B150 + .word 0x0001B150, 0x0001B390 + .word 0x0001B390, 0x0001B850 + .word 0x0001B850, 0x0001BA78 + .word 0x0001BA78, 0x0001BF38 + .word 0x0001BF38, 0x0001C160 + .word 0x0001C160, 0x0001CBA0 + .word 0x0001CBA0, 0x0001D5E0 + .word 0x0001D5E0, 0x0001E020 + .word 0x0001E020, 0x0001EA60 + .word 0x0001EA60, 0x0001F4A0 + .word 0x0001F4A0, 0x0001F960 + .word 0x0001F960, 0x0001FB88 + .word 0x0001FB88, 0x000203C8 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000203D0 ; chunk size + .incbin "baserom.nds", 0x0, 0x228 + .incbin "baserom.nds", 0x228, 0x4C0 + .incbin "baserom.nds", 0x6E8, 0x240 + .incbin "baserom.nds", 0x928, 0x228 + .incbin "baserom.nds", 0xB50, 0x4C0 + .incbin "baserom.nds", 0x1010, 0x240 + .incbin "baserom.nds", 0x1250, 0x4C0 + .incbin "baserom.nds", 0x1710, 0x228 + .incbin "baserom.nds", 0x1938, 0x228 + .incbin "baserom.nds", 0x1B60, 0x440 + .incbin "baserom.nds", 0x1FA0, 0x940 + .incbin "baserom.nds", 0x28E0, 0x228 + .incbin "baserom.nds", 0x2B08, 0x940 + .incbin "baserom.nds", 0x3448, 0x840 + .incbin "baserom.nds", 0x3C88, 0x228 + .incbin "baserom.nds", 0x3EB0, 0x228 + .incbin "baserom.nds", 0x40D8, 0x4C0 + .incbin "baserom.nds", 0x4598, 0x4C0 + .incbin "baserom.nds", 0x4A58, 0x240 + .incbin "baserom.nds", 0x4C98, 0x228 + .incbin "baserom.nds", 0x4EC0, 0x240 + .incbin "baserom.nds", 0x5100, 0x228 + .incbin "baserom.nds", 0x5328, 0x640 + .incbin "baserom.nds", 0x5968, 0x228 + .incbin "baserom.nds", 0x5B90, 0x4C0 + .incbin "baserom.nds", 0x6050, 0x228 + .incbin "baserom.nds", 0x6278, 0x228 + .incbin "baserom.nds", 0x64A0, 0x240 + .incbin "baserom.nds", 0x66E0, 0x240 + .incbin "baserom.nds", 0x6920, 0x240 + .incbin "baserom.nds", 0x6B60, 0x340 + .incbin "baserom.nds", 0x6EA0, 0x340 + .incbin "baserom.nds", 0x71E0, 0x340 + .incbin "baserom.nds", 0x7520, 0x340 + .incbin "baserom.nds", 0x7860, 0x340 + .incbin "baserom.nds", 0x7BA0, 0x340 + .incbin "baserom.nds", 0x7EE0, 0x340 + .incbin "baserom.nds", 0x8220, 0x340 + .incbin "baserom.nds", 0x8560, 0x4C0 + .incbin "baserom.nds", 0x8A20, 0x440 + .incbin "baserom.nds", 0x8E60, 0x440 + .incbin "baserom.nds", 0x92A0, 0x840 + .incbin "baserom.nds", 0x9AE0, 0x840 + .incbin "baserom.nds", 0xA320, 0x840 + .incbin "baserom.nds", 0xAB60, 0x840 + .incbin "baserom.nds", 0xB3A0, 0x4C0 + .incbin "baserom.nds", 0xB860, 0x228 + .incbin "baserom.nds", 0xBA88, 0x840 + .incbin "baserom.nds", 0xC2C8, 0x228 + .incbin "baserom.nds", 0xC4F0, 0x228 + .incbin "baserom.nds", 0xC718, 0x440 + .incbin "baserom.nds", 0xCB58, 0x228 + .incbin "baserom.nds", 0xCD80, 0x840 + .incbin "baserom.nds", 0xD5C0, 0x228 + .incbin "baserom.nds", 0xD7E8, 0x840 + .incbin "baserom.nds", 0xE028, 0x228 + .incbin "baserom.nds", 0xE250, 0x4C0 + .incbin "baserom.nds", 0xE710, 0x240 + .incbin "baserom.nds", 0xE950, 0xA40 + .incbin "baserom.nds", 0xF390, 0x4C0 + .incbin "baserom.nds", 0xF850, 0x228 + .incbin "baserom.nds", 0xFA78, 0x228 + .incbin "baserom.nds", 0xFCA0, 0x4C0 + .incbin "baserom.nds", 0x10160, 0x240 + .incbin "baserom.nds", 0x103A0, 0x4C0 + .incbin "baserom.nds", 0x10860, 0x228 + .incbin "baserom.nds", 0x10A88, 0x440 + .incbin "baserom.nds", 0x10EC8, 0x228 + .incbin "baserom.nds", 0x110F0, 0x440 + .incbin "baserom.nds", 0x11530, 0xCC0 + .incbin "baserom.nds", 0x121F0, 0xCC0 + .incbin "baserom.nds", 0x12EB0, 0xCC0 + .incbin "baserom.nds", 0x13B70, 0xCC0 + .incbin "baserom.nds", 0x14830, 0x840 + .incbin "baserom.nds", 0x15070, 0x228 + .incbin "baserom.nds", 0x15298, 0x4C0 + .incbin "baserom.nds", 0x15758, 0x228 + .incbin "baserom.nds", 0x15980, 0x228 + .incbin "baserom.nds", 0x15BA8, 0x228 + .incbin "baserom.nds", 0x15DD0, 0x228 + .incbin "baserom.nds", 0x15FF8, 0x228 + .incbin "baserom.nds", 0x16220, 0x640 + .incbin "baserom.nds", 0x16860, 0x228 + .incbin "baserom.nds", 0x16A88, 0x228 + .incbin "baserom.nds", 0x16CB0, 0x228 + .incbin "baserom.nds", 0x16ED8, 0x228 + .incbin "baserom.nds", 0x17100, 0x640 + .incbin "baserom.nds", 0x17740, 0x228 + .incbin "baserom.nds", 0x17968, 0x4C0 + .incbin "baserom.nds", 0x17E28, 0x228 + .incbin "baserom.nds", 0x18050, 0x228 + .incbin "baserom.nds", 0x18278, 0x228 + .incbin "baserom.nds", 0x184A0, 0x228 + .incbin "baserom.nds", 0x186C8, 0x228 + .incbin "baserom.nds", 0x188F0, 0x228 + .incbin "baserom.nds", 0x18B18, 0x640 + .incbin "baserom.nds", 0x19158, 0x640 + .incbin "baserom.nds", 0x19798, 0x228 + .incbin "baserom.nds", 0x199C0, 0x640 + .incbin "baserom.nds", 0x1A000, 0x840 + .incbin "baserom.nds", 0x1A840, 0x228 + .incbin "baserom.nds", 0x1AA68, 0x228 + .incbin "baserom.nds", 0x1AC90, 0x4C0 + .incbin "baserom.nds", 0x1B150, 0x240 + .incbin "baserom.nds", 0x1B390, 0x4C0 + .incbin "baserom.nds", 0x1B850, 0x228 + .incbin "baserom.nds", 0x1BA78, 0x4C0 + .incbin "baserom.nds", 0x1BF38, 0x228 + .incbin "baserom.nds", 0x1C160, 0xA40 + .incbin "baserom.nds", 0x1CBA0, 0xA40 + .incbin "baserom.nds", 0x1D5E0, 0xA40 + .incbin "baserom.nds", 0x1E020, 0xA40 + .incbin "baserom.nds", 0x1EA60, 0xA40 + .incbin "baserom.nds", 0x1F4A0, 0x4C0 + .incbin "baserom.nds", 0x1F960, 0x228 + .incbin "baserom.nds", 0x1FB88, 0x840 + .balign 4, 255 diff --git a/narc/data/ug_radar.narc.s b/narc/data/ug_radar.narc.s new file mode 100644 index 00000000..b9890fea --- /dev/null +++ b/narc/data/ug_radar.narc.s @@ -0,0 +1,40 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00003868 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000044 ; chunk size + .short 7 ; number of files + .balign 4 + .word 0x00000000, 0x00000228 + .word 0x00000228, 0x00000450 + .word 0x00000450, 0x00002890 + .word 0x00002890, 0x00002DC0 + .word 0x00002DC0, 0x000035E4 + .word 0x000035E4, 0x0000370E + .word 0x00003710, 0x000037FA + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00003804 ; chunk size + .incbin "baserom.nds", 0x0, 0x228 + .incbin "baserom.nds", 0x228, 0x228 + .incbin "baserom.nds", 0x450, 0x2440 + .incbin "baserom.nds", 0x2890, 0x530 + .incbin "baserom.nds", 0x2DC0, 0x824 + .incbin "baserom.nds", 0x35E4, 0x12A + .incbin "baserom.nds", 0x3710, 0xEA + .balign 4, 255 diff --git a/narc/data/ug_trap.narc.s b/narc/data/ug_trap.narc.s new file mode 100644 index 00000000..52dea012 --- /dev/null +++ b/narc/data/ug_trap.narc.s @@ -0,0 +1,132 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0001DBAC ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000001B4 ; chunk size + .short 53 ; number of files + .balign 4 + .word 0x00000000, 0x0000006F + .word 0x00000070, 0x000000EF + .word 0x000000F0, 0x000002A0 + .word 0x000002A0, 0x000004C8 + .word 0x000004C8, 0x00000626 + .word 0x00000628, 0x00000756 + .word 0x00000758, 0x00002908 + .word 0x00002908, 0x00002B30 + .word 0x00002B30, 0x00003154 + .word 0x00003154, 0x0000B194 + .word 0x0000B194, 0x0000B3BC + .word 0x0000B3BC, 0x0000BBE0 + .word 0x0000BBE0, 0x0000C204 + .word 0x0000C204, 0x0000C828 + .word 0x0000C828, 0x0000CE4C + .word 0x0000CE4C, 0x0000CF39 + .word 0x0000CF3C, 0x0000D011 + .word 0x0000D014, 0x0000D904 + .word 0x0000D904, 0x0000DB2C + .word 0x0000DB2C, 0x0000DD54 + .word 0x0000DD54, 0x0000DE16 + .word 0x0000DE18, 0x0000DECE + .word 0x0000DED0, 0x00010F00 + .word 0x00010F00, 0x00010FC2 + .word 0x00010FC4, 0x0001107A + .word 0x0001107C, 0x00011CAC + .word 0x00011CAC, 0x00011D1B + .word 0x00011D1C, 0x00011D7F + .word 0x00011D80, 0x00011E30 + .word 0x00011E30, 0x00012058 + .word 0x00012058, 0x000122D7 + .word 0x000122D8, 0x00012937 + .word 0x00012938, 0x00013C08 + .word 0x00013C08, 0x00013CF8 + .word 0x00013CF8, 0x000142CC + .word 0x000142CC, 0x0001559C + .word 0x0001559C, 0x0001568C + .word 0x0001568C, 0x00015C60 + .word 0x00015C60, 0x00016F30 + .word 0x00016F30, 0x00017020 + .word 0x00017020, 0x000175F4 + .word 0x000175F4, 0x000188C4 + .word 0x000188C4, 0x000189B4 + .word 0x000189B4, 0x00018F88 + .word 0x00018F88, 0x0001A258 + .word 0x0001A258, 0x0001A348 + .word 0x0001A348, 0x0001A91C + .word 0x0001A91C, 0x0001BBEC + .word 0x0001BBEC, 0x0001BCDC + .word 0x0001BCDC, 0x0001C2B0 + .word 0x0001C2B0, 0x0001D580 + .word 0x0001D580, 0x0001D7A8 + .word 0x0001D7A8, 0x0001D9D0 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0001D9D8 ; chunk size + .incbin "baserom.nds", 0x0, 0x6F + .incbin "baserom.nds", 0x70, 0x7F + .incbin "baserom.nds", 0xF0, 0x1B0 + .incbin "baserom.nds", 0x2A0, 0x228 + .incbin "baserom.nds", 0x4C8, 0x15E + .incbin "baserom.nds", 0x628, 0x12E + .incbin "baserom.nds", 0x758, 0x21B0 + .incbin "baserom.nds", 0x2908, 0x228 + .incbin "baserom.nds", 0x2B30, 0x624 + .incbin "baserom.nds", 0x3154, 0x8040 + .incbin "baserom.nds", 0xB194, 0x228 + .incbin "baserom.nds", 0xB3BC, 0x824 + .incbin "baserom.nds", 0xBBE0, 0x624 + .incbin "baserom.nds", 0xC204, 0x624 + .incbin "baserom.nds", 0xC828, 0x624 + .incbin "baserom.nds", 0xCE4C, 0xED + .incbin "baserom.nds", 0xCF3C, 0xD5 + .incbin "baserom.nds", 0xD014, 0x8F0 + .incbin "baserom.nds", 0xD904, 0x228 + .incbin "baserom.nds", 0xDB2C, 0x228 + .incbin "baserom.nds", 0xDD54, 0xC2 + .incbin "baserom.nds", 0xDE18, 0xB6 + .incbin "baserom.nds", 0xDED0, 0x3030 + .incbin "baserom.nds", 0x10F00, 0xC2 + .incbin "baserom.nds", 0x10FC4, 0xB6 + .incbin "baserom.nds", 0x1107C, 0xC30 + .incbin "baserom.nds", 0x11CAC, 0x6F + .incbin "baserom.nds", 0x11D1C, 0x63 + .incbin "baserom.nds", 0x11D80, 0xB0 + .incbin "baserom.nds", 0x11E30, 0x228 + .incbin "baserom.nds", 0x12058, 0x27F + .incbin "baserom.nds", 0x122D8, 0x65F + .incbin "baserom.nds", 0x12938, 0x12D0 + .incbin "baserom.nds", 0x13C08, 0xF0 + .incbin "baserom.nds", 0x13CF8, 0x5D4 + .incbin "baserom.nds", 0x142CC, 0x12D0 + .incbin "baserom.nds", 0x1559C, 0xF0 + .incbin "baserom.nds", 0x1568C, 0x5D4 + .incbin "baserom.nds", 0x15C60, 0x12D0 + .incbin "baserom.nds", 0x16F30, 0xF0 + .incbin "baserom.nds", 0x17020, 0x5D4 + .incbin "baserom.nds", 0x175F4, 0x12D0 + .incbin "baserom.nds", 0x188C4, 0xF0 + .incbin "baserom.nds", 0x189B4, 0x5D4 + .incbin "baserom.nds", 0x18F88, 0x12D0 + .incbin "baserom.nds", 0x1A258, 0xF0 + .incbin "baserom.nds", 0x1A348, 0x5D4 + .incbin "baserom.nds", 0x1A91C, 0x12D0 + .incbin "baserom.nds", 0x1BBEC, 0xF0 + .incbin "baserom.nds", 0x1BCDC, 0x5D4 + .incbin "baserom.nds", 0x1C2B0, 0x12D0 + .incbin "baserom.nds", 0x1D580, 0x228 + .incbin "baserom.nds", 0x1D7A8, 0x228 + .balign 4, 255 diff --git a/narc/data/ugeffect_obj_graphic.narc.s b/narc/data/ugeffect_obj_graphic.narc.s new file mode 100644 index 00000000..6e047202 --- /dev/null +++ b/narc/data/ugeffect_obj_graphic.narc.s @@ -0,0 +1,44 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00004D68 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000054 ; chunk size + .short 9 ; number of files + .balign 4 + .word 0x00000000, 0x00001230 + .word 0x00001230, 0x00001458 + .word 0x00001458, 0x00002688 + .word 0x00002688, 0x000028B0 + .word 0x000028B0, 0x000029A9 + .word 0x000029AC, 0x00002B15 + .word 0x00002B18, 0x00002BEE + .word 0x00002BF0, 0x00002CBA + .word 0x00002CBC, 0x00004CEC + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00004CF4 ; chunk size + .incbin "baserom.nds", 0x0, 0x1230 + .incbin "baserom.nds", 0x1230, 0x228 + .incbin "baserom.nds", 0x1458, 0x1230 + .incbin "baserom.nds", 0x2688, 0x228 + .incbin "baserom.nds", 0x28B0, 0xF9 + .incbin "baserom.nds", 0x29AC, 0x169 + .incbin "baserom.nds", 0x2B18, 0xD6 + .incbin "baserom.nds", 0x2BF0, 0xCA + .incbin "baserom.nds", 0x2CBC, 0x2030 + .balign 4, 255 diff --git a/narc/data/uground_cell.resdat.s b/narc/data/uground_cell.resdat.s new file mode 100644 index 00000000..014e7b91 --- /dev/null +++ b/narc/data/uground_cell.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x499400, 0x4C diff --git a/narc/data/uground_cellanm.resdat.s b/narc/data/uground_cellanm.resdat.s new file mode 100644 index 00000000..3b0ffea1 --- /dev/null +++ b/narc/data/uground_cellanm.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x499600, 0x4C diff --git a/narc/data/uground_char.resdat.s b/narc/data/uground_char.resdat.s new file mode 100644 index 00000000..94005d27 --- /dev/null +++ b/narc/data/uground_char.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x499800, 0x4C diff --git a/narc/data/uground_char2.resdat.s b/narc/data/uground_char2.resdat.s new file mode 100644 index 00000000..e321c2a7 --- /dev/null +++ b/narc/data/uground_char2.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x499A00, 0x4C diff --git a/narc/data/uground_clact.cldat.s b/narc/data/uground_clact.cldat.s new file mode 100644 index 00000000..af6c4df2 --- /dev/null +++ b/narc/data/uground_clact.cldat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x499C00, 0x60 diff --git a/narc/data/uground_pltt.resdat.s b/narc/data/uground_pltt.resdat.s new file mode 100644 index 00000000..7457f1b9 --- /dev/null +++ b/narc/data/uground_pltt.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x499E00, 0x34 diff --git a/narc/data/uground_pltt2.resdat.s b/narc/data/uground_pltt2.resdat.s new file mode 100644 index 00000000..d299bee0 --- /dev/null +++ b/narc/data/uground_pltt2.resdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x49A000, 0x34 diff --git a/narc/data/underg_radar.narc.s b/narc/data/underg_radar.narc.s new file mode 100644 index 00000000..7a9c391c --- /dev/null +++ b/narc/data/underg_radar.narc.s @@ -0,0 +1,40 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0000A234 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000044 ; chunk size + .short 7 ; number of files + .balign 4 + .word 0x00000000, 0x00000228 + .word 0x00000228, 0x00008268 + .word 0x00008268, 0x00008A8C + .word 0x00008A8C, 0x00008CB4 + .word 0x00008CB4, 0x00009904 + .word 0x00009904, 0x00009D86 + .word 0x00009D88, 0x0000A1C6 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0000A1D0 ; chunk size + .incbin "baserom.nds", 0x0, 0x228 + .incbin "baserom.nds", 0x228, 0x8040 + .incbin "baserom.nds", 0x8268, 0x824 + .incbin "baserom.nds", 0x8A8C, 0x228 + .incbin "baserom.nds", 0x8CB4, 0xC50 + .incbin "baserom.nds", 0x9904, 0x482 + .incbin "baserom.nds", 0x9D88, 0x43E + .balign 4, 255 diff --git a/narc/data/utility.bin.s b/narc/data/utility.bin.s new file mode 100644 index 00000000..73e91afb --- /dev/null +++ b/narc/data/utility.bin.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x4A4600, 0xDB4C0 diff --git a/narc/data/weather_sys.narc.s b/narc/data/weather_sys.narc.s new file mode 100644 index 00000000..832cd3bc --- /dev/null +++ b/narc/data/weather_sys.narc.s @@ -0,0 +1,144 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0000F8A8 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000001E4 ; chunk size + .short 59 ; number of files + .balign 4 + .word 0x00000000, 0x000000EF + .word 0x000000F0, 0x00000207 + .word 0x00000208, 0x00000938 + .word 0x00000938, 0x00000B60 + .word 0x00000B60, 0x00000BEB + .word 0x00000BEC, 0x00000C83 + .word 0x00000C84, 0x00000E94 + .word 0x00000E94, 0x000010BC + .word 0x000010BC, 0x000050FC + .word 0x000050FC, 0x00005324 + .word 0x00005324, 0x00005B48 + .word 0x00005B48, 0x00005BD3 + .word 0x00005BD4, 0x00005C7F + .word 0x00005C80, 0x000062F0 + .word 0x000062F0, 0x0000637B + .word 0x0000637C, 0x00006407 + .word 0x00006408, 0x00006638 + .word 0x00006638, 0x00006860 + .word 0x00006860, 0x000068EB + .word 0x000068EC, 0x00006977 + .word 0x00006978, 0x00006A28 + .word 0x00006A28, 0x00006C50 + .word 0x00006C50, 0x00006DA3 + .word 0x00006DA4, 0x00006F47 + .word 0x00006F48, 0x00007278 + .word 0x00007278, 0x000074A0 + .word 0x000074A0, 0x0000752B + .word 0x0000752C, 0x000075B7 + .word 0x000075B8, 0x00007668 + .word 0x00007668, 0x000076C8 + .word 0x000076C8, 0x000078F0 + .word 0x000078F0, 0x00008114 + .word 0x00008114, 0x000081AB + .word 0x000081AC, 0x00008247 + .word 0x00008248, 0x00008378 + .word 0x00008378, 0x000085A0 + .word 0x000085A0, 0x0000A5E0 + .word 0x0000A5E0, 0x0000A808 + .word 0x0000A808, 0x0000B02C + .word 0x0000B02C, 0x0000B0B7 + .word 0x0000B0B8, 0x0000B143 + .word 0x0000B144, 0x0000B1F4 + .word 0x0000B1F4, 0x0000B41C + .word 0x0000B41C, 0x0000BC40 + .word 0x0000BC40, 0x0000C480 + .word 0x0000C480, 0x0000C4E0 + .word 0x0000C4E0, 0x0000C708 + .word 0x0000C708, 0x0000CF2C + .word 0x0000CF2C, 0x0000D76C + .word 0x0000D76C, 0x0000D994 + .word 0x0000D994, 0x0000E1B8 + .word 0x0000E1B8, 0x0000E3E0 + .word 0x0000E3E0, 0x0000E608 + .word 0x0000E608, 0x0000EA48 + .word 0x0000EA48, 0x0000F26C + .word 0x0000F26C, 0x0000F378 + .word 0x0000F378, 0x0000F484 + .word 0x0000F484, 0x0000F590 + .word 0x0000F590, 0x0000F69C + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0000F6A4 ; chunk size + .incbin "baserom.nds", 0x0, 0xEF + .incbin "baserom.nds", 0xF0, 0x117 + .incbin "baserom.nds", 0x208, 0x730 + .incbin "baserom.nds", 0x938, 0x228 + .incbin "baserom.nds", 0xB60, 0x8B + .incbin "baserom.nds", 0xBEC, 0x97 + .incbin "baserom.nds", 0xC84, 0x210 + .incbin "baserom.nds", 0xE94, 0x228 + .incbin "baserom.nds", 0x10BC, 0x4040 + .incbin "baserom.nds", 0x50FC, 0x228 + .incbin "baserom.nds", 0x5324, 0x824 + .incbin "baserom.nds", 0x5B48, 0x8B + .incbin "baserom.nds", 0x5BD4, 0xAB + .incbin "baserom.nds", 0x5C80, 0x670 + .incbin "baserom.nds", 0x62F0, 0x8B + .incbin "baserom.nds", 0x637C, 0x8B + .incbin "baserom.nds", 0x6408, 0x230 + .incbin "baserom.nds", 0x6638, 0x228 + .incbin "baserom.nds", 0x6860, 0x8B + .incbin "baserom.nds", 0x68EC, 0x8B + .incbin "baserom.nds", 0x6978, 0xB0 + .incbin "baserom.nds", 0x6A28, 0x228 + .incbin "baserom.nds", 0x6C50, 0x153 + .incbin "baserom.nds", 0x6DA4, 0x1A3 + .incbin "baserom.nds", 0x6F48, 0x330 + .incbin "baserom.nds", 0x7278, 0x228 + .incbin "baserom.nds", 0x74A0, 0x8B + .incbin "baserom.nds", 0x752C, 0x8B + .incbin "baserom.nds", 0x75B8, 0xB0 + .incbin "baserom.nds", 0x7668, 0x60 + .incbin "baserom.nds", 0x76C8, 0x228 + .incbin "baserom.nds", 0x78F0, 0x824 + .incbin "baserom.nds", 0x8114, 0x97 + .incbin "baserom.nds", 0x81AC, 0x9B + .incbin "baserom.nds", 0x8248, 0x130 + .incbin "baserom.nds", 0x8378, 0x228 + .incbin "baserom.nds", 0x85A0, 0x2040 + .incbin "baserom.nds", 0xA5E0, 0x228 + .incbin "baserom.nds", 0xA808, 0x824 + .incbin "baserom.nds", 0xB02C, 0x8B + .incbin "baserom.nds", 0xB0B8, 0x8B + .incbin "baserom.nds", 0xB144, 0xB0 + .incbin "baserom.nds", 0xB1F4, 0x228 + .incbin "baserom.nds", 0xB41C, 0x824 + .incbin "baserom.nds", 0xBC40, 0x840 + .incbin "baserom.nds", 0xC480, 0x60 + .incbin "baserom.nds", 0xC4E0, 0x228 + .incbin "baserom.nds", 0xC708, 0x824 + .incbin "baserom.nds", 0xCF2C, 0x840 + .incbin "baserom.nds", 0xD76C, 0x228 + .incbin "baserom.nds", 0xD994, 0x824 + .incbin "baserom.nds", 0xE1B8, 0x228 + .incbin "baserom.nds", 0xE3E0, 0x228 + .incbin "baserom.nds", 0xE608, 0x440 + .incbin "baserom.nds", 0xEA48, 0x824 + .incbin "baserom.nds", 0xF26C, 0x10C + .incbin "baserom.nds", 0xF378, 0x10C + .incbin "baserom.nds", 0xF484, 0x10C + .incbin "baserom.nds", 0xF590, 0x10C + .balign 4, 255 diff --git a/narc/data/wifi.ncgr.s b/narc/data/wifi.ncgr.s new file mode 100644 index 00000000..ea66df9b --- /dev/null +++ b/narc/data/wifi.ncgr.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x58F600, 0x240 diff --git a/narc/data/wifinote.narc.s b/narc/data/wifinote.narc.s new file mode 100644 index 00000000..c1661107 --- /dev/null +++ b/narc/data/wifinote.narc.s @@ -0,0 +1,50 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0000394C ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000006C ; chunk size + .short 12 ; number of files + .balign 4 + .word 0x00000000, 0x0000009F + .word 0x000000A0, 0x00000147 + .word 0x00000148, 0x00000D88 + .word 0x00000D88, 0x00000FB0 + .word 0x00000FB0, 0x000015D4 + .word 0x000015D4, 0x00001BF8 + .word 0x00001BF8, 0x0000221C + .word 0x0000221C, 0x00002840 + .word 0x00002840, 0x00002E64 + .word 0x00002E64, 0x00002ED4 + .word 0x00002ED4, 0x00003294 + .word 0x00003294, 0x000038B8 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000038C0 ; chunk size + .incbin "baserom.nds", 0x0, 0x9F + .incbin "baserom.nds", 0xA0, 0xA7 + .incbin "baserom.nds", 0x148, 0xC40 + .incbin "baserom.nds", 0xD88, 0x228 + .incbin "baserom.nds", 0xFB0, 0x624 + .incbin "baserom.nds", 0x15D4, 0x624 + .incbin "baserom.nds", 0x1BF8, 0x624 + .incbin "baserom.nds", 0x221C, 0x624 + .incbin "baserom.nds", 0x2840, 0x624 + .incbin "baserom.nds", 0x2E64, 0x70 + .incbin "baserom.nds", 0x2ED4, 0x3C0 + .incbin "baserom.nds", 0x3294, 0x624 + .balign 4, 255 diff --git a/narc/data/wifip2pmatch.narc.s b/narc/data/wifip2pmatch.narc.s new file mode 100644 index 00000000..12e255f8 --- /dev/null +++ b/narc/data/wifip2pmatch.narc.s @@ -0,0 +1,48 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00003E14 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000064 ; chunk size + .short 11 ; number of files + .balign 4 + .word 0x00000000, 0x0000013A + .word 0x0000013C, 0x00000236 + .word 0x00000238, 0x00000DB8 + .word 0x00000DB8, 0x00000FE0 + .word 0x00000FE0, 0x00001604 + .word 0x00001604, 0x00001C28 + .word 0x00001C28, 0x0000224C + .word 0x0000224C, 0x000024FC + .word 0x000024FC, 0x00002724 + .word 0x00002724, 0x00003764 + .word 0x00003764, 0x00003D88 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00003D90 ; chunk size + .incbin "baserom.nds", 0x0, 0x13A + .incbin "baserom.nds", 0x13C, 0xFA + .incbin "baserom.nds", 0x238, 0xB80 + .incbin "baserom.nds", 0xDB8, 0x228 + .incbin "baserom.nds", 0xFE0, 0x624 + .incbin "baserom.nds", 0x1604, 0x624 + .incbin "baserom.nds", 0x1C28, 0x624 + .incbin "baserom.nds", 0x224C, 0x2B0 + .incbin "baserom.nds", 0x24FC, 0x228 + .incbin "baserom.nds", 0x2724, 0x1040 + .incbin "baserom.nds", 0x3764, 0x624 + .balign 4, 255 diff --git a/narc/data/wm.ncgr.s b/narc/data/wm.ncgr.s new file mode 100644 index 00000000..d65f9fac --- /dev/null +++ b/narc/data/wm.ncgr.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x597400, 0x240 diff --git a/narc/data/wm.nclr.s b/narc/data/wm.nclr.s new file mode 100644 index 00000000..d6a09870 --- /dev/null +++ b/narc/data/wm.nclr.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x597800, 0x228 diff --git a/narc/demo/data/egg_data.narc.s b/narc/demo/data/egg_data.narc.s new file mode 100644 index 00000000..741ddec8 --- /dev/null +++ b/narc/demo/data/egg_data.narc.s @@ -0,0 +1,48 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00002AFC ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000064 ; chunk size + .short 11 ; number of files + .balign 4 + .word 0x00000000, 0x00001978 + .word 0x00001978, 0x00001ED8 + .word 0x00001ED8, 0x00001F4C + .word 0x00001F4C, 0x00001FD0 + .word 0x00001FD0, 0x00002374 + .word 0x00002374, 0x000023D0 + .word 0x000023D0, 0x00002464 + .word 0x00002464, 0x00002770 + .word 0x00002770, 0x000027EC + .word 0x000027EC, 0x00002846 + .word 0x00002848, 0x00002A70 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00002A78 ; chunk size + .incbin "baserom.nds", 0x0, 0x1978 + .incbin "baserom.nds", 0x1978, 0x560 + .incbin "baserom.nds", 0x1ED8, 0x74 + .incbin "baserom.nds", 0x1F4C, 0x84 + .incbin "baserom.nds", 0x1FD0, 0x3A4 + .incbin "baserom.nds", 0x2374, 0x5C + .incbin "baserom.nds", 0x23D0, 0x94 + .incbin "baserom.nds", 0x2464, 0x30C + .incbin "baserom.nds", 0x2770, 0x7C + .incbin "baserom.nds", 0x27EC, 0x5A + .incbin "baserom.nds", 0x2848, 0x228 + .balign 4, 255 diff --git a/narc/dwc/utility.bin.s b/narc/dwc/utility.bin.s new file mode 100644 index 00000000..e91ec5d0 --- /dev/null +++ b/narc/dwc/utility.bin.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x397AA00, 0xDB4C0 diff --git a/narc/effectclact/wecell.narc.s b/narc/effectclact/wecell.narc.s new file mode 100644 index 00000000..866bfa93 --- /dev/null +++ b/narc/effectclact/wecell.narc.s @@ -0,0 +1,100 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x000014F4 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000134 ; chunk size + .short 37 ; number of files + .balign 4 + .word 0x00000000, 0x00000080 + .word 0x00000080, 0x000000DC + .word 0x000000DC, 0x00000198 + .word 0x00000198, 0x00000208 + .word 0x00000208, 0x00000264 + .word 0x00000264, 0x000002DC + .word 0x000002DC, 0x00000364 + .word 0x00000364, 0x000003E8 + .word 0x000003E8, 0x0000047C + .word 0x0000047C, 0x000004D8 + .word 0x000004D8, 0x000005C8 + .word 0x000005C8, 0x00000624 + .word 0x00000624, 0x000006A0 + .word 0x000006A0, 0x00000718 + .word 0x00000718, 0x00000774 + .word 0x00000774, 0x000007D0 + .word 0x000007D0, 0x00000844 + .word 0x00000844, 0x000008CC + .word 0x000008CC, 0x000009B0 + .word 0x000009B0, 0x00000A9C + .word 0x00000A9C, 0x00000B60 + .word 0x00000B60, 0x00000BD0 + .word 0x00000BD0, 0x00000C74 + .word 0x00000C74, 0x00000D34 + .word 0x00000D34, 0x00000DF0 + .word 0x00000DF0, 0x00000E4C + .word 0x00000E4C, 0x00000EE0 + .word 0x00000EE0, 0x00000F50 + .word 0x00000F50, 0x00000FCC + .word 0x00000FCC, 0x00001048 + .word 0x00001048, 0x000010A4 + .word 0x000010A4, 0x0000111C + .word 0x0000111C, 0x00001178 + .word 0x00001178, 0x00001200 + .word 0x00001200, 0x0000128C + .word 0x0000128C, 0x00001320 + .word 0x00001320, 0x00001398 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000013A0 ; chunk size + .incbin "baserom.nds", 0x0, 0x80 + .incbin "baserom.nds", 0x80, 0x5C + .incbin "baserom.nds", 0xDC, 0xBC + .incbin "baserom.nds", 0x198, 0x70 + .incbin "baserom.nds", 0x208, 0x5C + .incbin "baserom.nds", 0x264, 0x78 + .incbin "baserom.nds", 0x2DC, 0x88 + .incbin "baserom.nds", 0x364, 0x84 + .incbin "baserom.nds", 0x3E8, 0x94 + .incbin "baserom.nds", 0x47C, 0x5C + .incbin "baserom.nds", 0x4D8, 0xF0 + .incbin "baserom.nds", 0x5C8, 0x5C + .incbin "baserom.nds", 0x624, 0x7C + .incbin "baserom.nds", 0x6A0, 0x78 + .incbin "baserom.nds", 0x718, 0x5C + .incbin "baserom.nds", 0x774, 0x5C + .incbin "baserom.nds", 0x7D0, 0x74 + .incbin "baserom.nds", 0x844, 0x88 + .incbin "baserom.nds", 0x8CC, 0xE4 + .incbin "baserom.nds", 0x9B0, 0xEC + .incbin "baserom.nds", 0xA9C, 0xC4 + .incbin "baserom.nds", 0xB60, 0x70 + .incbin "baserom.nds", 0xBD0, 0xA4 + .incbin "baserom.nds", 0xC74, 0xC0 + .incbin "baserom.nds", 0xD34, 0xBC + .incbin "baserom.nds", 0xDF0, 0x5C + .incbin "baserom.nds", 0xE4C, 0x94 + .incbin "baserom.nds", 0xEE0, 0x70 + .incbin "baserom.nds", 0xF50, 0x7C + .incbin "baserom.nds", 0xFCC, 0x7C + .incbin "baserom.nds", 0x1048, 0x5C + .incbin "baserom.nds", 0x10A4, 0x78 + .incbin "baserom.nds", 0x111C, 0x5C + .incbin "baserom.nds", 0x1178, 0x88 + .incbin "baserom.nds", 0x1200, 0x8C + .incbin "baserom.nds", 0x128C, 0x94 + .incbin "baserom.nds", 0x1320, 0x78 + .balign 4, 255 diff --git a/narc/effectclact/wecellanm.narc.s b/narc/effectclact/wecellanm.narc.s new file mode 100644 index 00000000..dea4d364 --- /dev/null +++ b/narc/effectclact/wecellanm.narc.s @@ -0,0 +1,100 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00001250 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000134 ; chunk size + .short 37 ; number of files + .balign 4 + .word 0x00000000, 0x0000006C + .word 0x0000006C, 0x000000C8 + .word 0x000000C8, 0x00000160 + .word 0x00000160, 0x000001CC + .word 0x000001CC, 0x00000228 + .word 0x00000228, 0x00000294 + .word 0x00000294, 0x00000304 + .word 0x00000304, 0x00000378 + .word 0x00000378, 0x000003E8 + .word 0x000003E8, 0x00000444 + .word 0x00000444, 0x000004D4 + .word 0x000004D4, 0x00000530 + .word 0x00000530, 0x000005AC + .word 0x000005AC, 0x00000618 + .word 0x00000618, 0x00000674 + .word 0x00000674, 0x000006D0 + .word 0x000006D0, 0x0000074C + .word 0x0000074C, 0x000007C8 + .word 0x000007C8, 0x00000858 + .word 0x00000858, 0x000008FC + .word 0x000008FC, 0x00000980 + .word 0x00000980, 0x000009EC + .word 0x000009EC, 0x00000A90 + .word 0x00000A90, 0x00000B4C + .word 0x00000B4C, 0x00000BD0 + .word 0x00000BD0, 0x00000C2C + .word 0x00000C2C, 0x00000CB0 + .word 0x00000CB0, 0x00000D1C + .word 0x00000D1C, 0x00000D8C + .word 0x00000D8C, 0x00000E08 + .word 0x00000E08, 0x00000E64 + .word 0x00000E64, 0x00000EDC + .word 0x00000EDC, 0x00000F38 + .word 0x00000F38, 0x00000FB4 + .word 0x00000FB4, 0x00001028 + .word 0x00001028, 0x0000108C + .word 0x0000108C, 0x000010F4 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000010FC ; chunk size + .incbin "baserom.nds", 0x0, 0x6C + .incbin "baserom.nds", 0x6C, 0x5C + .incbin "baserom.nds", 0xC8, 0x98 + .incbin "baserom.nds", 0x160, 0x6C + .incbin "baserom.nds", 0x1CC, 0x5C + .incbin "baserom.nds", 0x228, 0x6C + .incbin "baserom.nds", 0x294, 0x70 + .incbin "baserom.nds", 0x304, 0x74 + .incbin "baserom.nds", 0x378, 0x70 + .incbin "baserom.nds", 0x3E8, 0x5C + .incbin "baserom.nds", 0x444, 0x90 + .incbin "baserom.nds", 0x4D4, 0x5C + .incbin "baserom.nds", 0x530, 0x7C + .incbin "baserom.nds", 0x5AC, 0x6C + .incbin "baserom.nds", 0x618, 0x5C + .incbin "baserom.nds", 0x674, 0x5C + .incbin "baserom.nds", 0x6D0, 0x7C + .incbin "baserom.nds", 0x74C, 0x7C + .incbin "baserom.nds", 0x7C8, 0x90 + .incbin "baserom.nds", 0x858, 0xA4 + .incbin "baserom.nds", 0x8FC, 0x84 + .incbin "baserom.nds", 0x980, 0x6C + .incbin "baserom.nds", 0x9EC, 0xA4 + .incbin "baserom.nds", 0xA90, 0xBC + .incbin "baserom.nds", 0xB4C, 0x84 + .incbin "baserom.nds", 0xBD0, 0x5C + .incbin "baserom.nds", 0xC2C, 0x84 + .incbin "baserom.nds", 0xCB0, 0x6C + .incbin "baserom.nds", 0xD1C, 0x70 + .incbin "baserom.nds", 0xD8C, 0x7C + .incbin "baserom.nds", 0xE08, 0x5C + .incbin "baserom.nds", 0xE64, 0x78 + .incbin "baserom.nds", 0xEDC, 0x5C + .incbin "baserom.nds", 0xF38, 0x7C + .incbin "baserom.nds", 0xFB4, 0x74 + .incbin "baserom.nds", 0x1028, 0x64 + .incbin "baserom.nds", 0x108C, 0x68 + .balign 4, 255 diff --git a/narc/effectclact/wechar.narc.s b/narc/effectclact/wechar.narc.s new file mode 100644 index 00000000..7e489b45 --- /dev/null +++ b/narc/effectclact/wechar.narc.s @@ -0,0 +1,100 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00008134 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000134 ; chunk size + .short 37 ; number of files + .balign 4 + .word 0x00000000, 0x00000BE0 + .word 0x00000BE0, 0x00000DB4 + .word 0x00000DB4, 0x0000154C + .word 0x0000154C, 0x00001750 + .word 0x00001750, 0x000019C8 + .word 0x000019C8, 0x00001D00 + .word 0x00001D00, 0x000021B4 + .word 0x000021B4, 0x00002714 + .word 0x00002714, 0x0000315C + .word 0x0000315C, 0x00003288 + .word 0x00003288, 0x000036A8 + .word 0x000036A8, 0x0000375C + .word 0x0000375C, 0x00003DB4 + .word 0x00003DB4, 0x00003FC4 + .word 0x00003FC4, 0x00004188 + .word 0x00004188, 0x00004320 + .word 0x00004320, 0x000044EC + .word 0x000044EC, 0x00004C54 + .word 0x00004C54, 0x00004F28 + .word 0x00004F28, 0x00005264 + .word 0x00005264, 0x0000553C + .word 0x0000553C, 0x00005740 + .word 0x00005740, 0x00005C3C + .word 0x00005C3C, 0x000061B8 + .word 0x000061B8, 0x000064F0 + .word 0x000064F0, 0x00006600 + .word 0x00006600, 0x00006D80 + .word 0x00006D80, 0x00007040 + .word 0x00007040, 0x000072BC + .word 0x000072BC, 0x000073F0 + .word 0x000073F0, 0x000074DC + .word 0x000074DC, 0x000077B4 + .word 0x000077B4, 0x0000788C + .word 0x0000788C, 0x00007A4C + .word 0x00007A4C, 0x00007D88 + .word 0x00007D88, 0x00007EB8 + .word 0x00007EB8, 0x00007FD8 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00007FE0 ; chunk size + .incbin "baserom.nds", 0x0, 0xBE0 + .incbin "baserom.nds", 0xBE0, 0x1D4 + .incbin "baserom.nds", 0xDB4, 0x798 + .incbin "baserom.nds", 0x154C, 0x204 + .incbin "baserom.nds", 0x1750, 0x278 + .incbin "baserom.nds", 0x19C8, 0x338 + .incbin "baserom.nds", 0x1D00, 0x4B4 + .incbin "baserom.nds", 0x21B4, 0x560 + .incbin "baserom.nds", 0x2714, 0xA48 + .incbin "baserom.nds", 0x315C, 0x12C + .incbin "baserom.nds", 0x3288, 0x420 + .incbin "baserom.nds", 0x36A8, 0xB4 + .incbin "baserom.nds", 0x375C, 0x658 + .incbin "baserom.nds", 0x3DB4, 0x210 + .incbin "baserom.nds", 0x3FC4, 0x1C4 + .incbin "baserom.nds", 0x4188, 0x198 + .incbin "baserom.nds", 0x4320, 0x1CC + .incbin "baserom.nds", 0x44EC, 0x768 + .incbin "baserom.nds", 0x4C54, 0x2D4 + .incbin "baserom.nds", 0x4F28, 0x33C + .incbin "baserom.nds", 0x5264, 0x2D8 + .incbin "baserom.nds", 0x553C, 0x204 + .incbin "baserom.nds", 0x5740, 0x4FC + .incbin "baserom.nds", 0x5C3C, 0x57C + .incbin "baserom.nds", 0x61B8, 0x338 + .incbin "baserom.nds", 0x64F0, 0x110 + .incbin "baserom.nds", 0x6600, 0x780 + .incbin "baserom.nds", 0x6D80, 0x2C0 + .incbin "baserom.nds", 0x7040, 0x27C + .incbin "baserom.nds", 0x72BC, 0x134 + .incbin "baserom.nds", 0x73F0, 0xEC + .incbin "baserom.nds", 0x74DC, 0x2D8 + .incbin "baserom.nds", 0x77B4, 0xD8 + .incbin "baserom.nds", 0x788C, 0x1C0 + .incbin "baserom.nds", 0x7A4C, 0x33C + .incbin "baserom.nds", 0x7D88, 0x130 + .incbin "baserom.nds", 0x7EB8, 0x120 + .balign 4, 255 diff --git a/narc/effectclact/wepltt.narc.s b/narc/effectclact/wepltt.narc.s new file mode 100644 index 00000000..90618165 --- /dev/null +++ b/narc/effectclact/wepltt.narc.s @@ -0,0 +1,104 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00001180 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000144 ; chunk size + .short 39 ; number of files + .balign 4 + .word 0x00000000, 0x0000005A + .word 0x0000005C, 0x000000B6 + .word 0x000000B8, 0x00000112 + .word 0x00000114, 0x0000016E + .word 0x00000170, 0x000001CA + .word 0x000001CC, 0x00000226 + .word 0x00000228, 0x00000282 + .word 0x00000284, 0x000002DE + .word 0x000002E0, 0x0000033A + .word 0x0000033C, 0x00000396 + .word 0x00000398, 0x000003F2 + .word 0x000003F4, 0x0000044E + .word 0x00000450, 0x000004AA + .word 0x000004AC, 0x00000506 + .word 0x00000508, 0x00000562 + .word 0x00000564, 0x000005BE + .word 0x000005C0, 0x0000061A + .word 0x0000061C, 0x00000676 + .word 0x00000678, 0x000006D2 + .word 0x000006D4, 0x0000072E + .word 0x00000730, 0x0000078A + .word 0x0000078C, 0x000007E6 + .word 0x000007E8, 0x00000842 + .word 0x00000844, 0x0000089E + .word 0x000008A0, 0x000008FA + .word 0x000008FC, 0x00000956 + .word 0x00000958, 0x000009B2 + .word 0x000009B4, 0x00000A0E + .word 0x00000A10, 0x00000A6A + .word 0x00000A6C, 0x00000AC6 + .word 0x00000AC8, 0x00000B22 + .word 0x00000B24, 0x00000B7E + .word 0x00000B80, 0x00000BDA + .word 0x00000BDC, 0x00000C36 + .word 0x00000C38, 0x00000CD6 + .word 0x00000CD8, 0x00000D32 + .word 0x00000D34, 0x00000D8E + .word 0x00000D90, 0x00000FB8 + .word 0x00000FB8, 0x00001012 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0000101C ; chunk size + .incbin "baserom.nds", 0x0, 0x5A + .incbin "baserom.nds", 0x5C, 0x5A + .incbin "baserom.nds", 0xB8, 0x5A + .incbin "baserom.nds", 0x114, 0x5A + .incbin "baserom.nds", 0x170, 0x5A + .incbin "baserom.nds", 0x1CC, 0x5A + .incbin "baserom.nds", 0x228, 0x5A + .incbin "baserom.nds", 0x284, 0x5A + .incbin "baserom.nds", 0x2E0, 0x5A + .incbin "baserom.nds", 0x33C, 0x5A + .incbin "baserom.nds", 0x398, 0x5A + .incbin "baserom.nds", 0x3F4, 0x5A + .incbin "baserom.nds", 0x450, 0x5A + .incbin "baserom.nds", 0x4AC, 0x5A + .incbin "baserom.nds", 0x508, 0x5A + .incbin "baserom.nds", 0x564, 0x5A + .incbin "baserom.nds", 0x5C0, 0x5A + .incbin "baserom.nds", 0x61C, 0x5A + .incbin "baserom.nds", 0x678, 0x5A + .incbin "baserom.nds", 0x6D4, 0x5A + .incbin "baserom.nds", 0x730, 0x5A + .incbin "baserom.nds", 0x78C, 0x5A + .incbin "baserom.nds", 0x7E8, 0x5A + .incbin "baserom.nds", 0x844, 0x5A + .incbin "baserom.nds", 0x8A0, 0x5A + .incbin "baserom.nds", 0x8FC, 0x5A + .incbin "baserom.nds", 0x958, 0x5A + .incbin "baserom.nds", 0x9B4, 0x5A + .incbin "baserom.nds", 0xA10, 0x5A + .incbin "baserom.nds", 0xA6C, 0x5A + .incbin "baserom.nds", 0xAC8, 0x5A + .incbin "baserom.nds", 0xB24, 0x5A + .incbin "baserom.nds", 0xB80, 0x5A + .incbin "baserom.nds", 0xBDC, 0x5A + .incbin "baserom.nds", 0xC38, 0x9E + .incbin "baserom.nds", 0xCD8, 0x5A + .incbin "baserom.nds", 0xD34, 0x5A + .incbin "baserom.nds", 0xD90, 0x228 + .incbin "baserom.nds", 0xFB8, 0x5A + .balign 4, 255 diff --git a/narc/effectdata/ball_particle.narc.s b/narc/effectdata/ball_particle.narc.s new file mode 100644 index 00000000..8e9ada46 --- /dev/null +++ b/narc/effectdata/ball_particle.narc.s @@ -0,0 +1,260 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0004E844 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000003B4 ; chunk size + .short 117 ; number of files + .balign 4 + .word 0x00000000, 0x0000091C + .word 0x0000091C, 0x00002470 + .word 0x00002470, 0x00003E28 + .word 0x00003E28, 0x00004744 + .word 0x00004744, 0x00005060 + .word 0x00005060, 0x00005968 + .word 0x00005968, 0x00006720 + .word 0x00006720, 0x00007890 + .word 0x00007890, 0x00008A70 + .word 0x00008A70, 0x0000A3B0 + .word 0x0000A3B0, 0x0000B2EC + .word 0x0000B2EC, 0x0000CCB8 + .word 0x0000CCB8, 0x0000D9F8 + .word 0x0000D9F8, 0x0000EF14 + .word 0x0000EF14, 0x00010B58 + .word 0x00010B58, 0x00012510 + .word 0x00012510, 0x000132DC + .word 0x000132DC, 0x00013BF8 + .word 0x00013BF8, 0x00015180 + .word 0x00015180, 0x000165E4 + .word 0x000165E4, 0x00017924 + .word 0x00017924, 0x00018EAC + .word 0x00018EAC, 0x0001A434 + .word 0x0001A434, 0x0001B9BC + .word 0x0001B9BC, 0x0001D3F4 + .word 0x0001D3F4, 0x0001EC88 + .word 0x0001EC88, 0x00020FD8 + .word 0x00020FD8, 0x00023460 + .word 0x00023460, 0x00024D10 + .word 0x00024D10, 0x00026F24 + .word 0x00026F24, 0x000293AC + .word 0x000293AC, 0x0002B534 + .word 0x0002B534, 0x0002D898 + .word 0x0002D898, 0x0002FED0 + .word 0x0002FED0, 0x000323E4 + .word 0x000323E4, 0x0003396C + .word 0x0003396C, 0x000343FC + .word 0x000343FC, 0x000348C0 + .word 0x000348C0, 0x00034D84 + .word 0x00034D84, 0x00035248 + .word 0x00035248, 0x0003570C + .word 0x0003570C, 0x00035BCC + .word 0x00035BCC, 0x0003608C + .word 0x0003608C, 0x0003654C + .word 0x0003654C, 0x00036A0C + .word 0x00036A0C, 0x00036ECC + .word 0x00036ECC, 0x0003738C + .word 0x0003738C, 0x00037854 + .word 0x00037854, 0x00037D1C + .word 0x00037D1C, 0x00037EDC + .word 0x00037EDC, 0x00038090 + .word 0x00038090, 0x00038244 + .word 0x00038244, 0x00038404 + .word 0x00038404, 0x000388C4 + .word 0x000388C4, 0x00038D84 + .word 0x00038D84, 0x00039244 + .word 0x00039244, 0x00039704 + .word 0x00039704, 0x0003A7C4 + .word 0x0003A7C4, 0x0003B884 + .word 0x0003B884, 0x0003C944 + .word 0x0003C944, 0x0003DA04 + .word 0x0003DA04, 0x0003DEC0 + .word 0x0003DEC0, 0x0003E37C + .word 0x0003E37C, 0x0003E838 + .word 0x0003E838, 0x0003ECF4 + .word 0x0003ECF4, 0x0003EEB0 + .word 0x0003EEB0, 0x0003F06C + .word 0x0003F06C, 0x0003F228 + .word 0x0003F228, 0x0003F3E4 + .word 0x0003F3E4, 0x0003F5AC + .word 0x0003F5AC, 0x0003F774 + .word 0x0003F774, 0x0003F93C + .word 0x0003F93C, 0x0003FB04 + .word 0x0003FB04, 0x0003FFE0 + .word 0x0003FFE0, 0x000404C4 + .word 0x000404C4, 0x000409AC + .word 0x000409AC, 0x00040E90 + .word 0x00040E90, 0x00041378 + .word 0x00041378, 0x0004185C + .word 0x0004185C, 0x00041D18 + .word 0x00041D18, 0x000421D4 + .word 0x000421D4, 0x00042690 + .word 0x00042690, 0x00042B4C + .word 0x00042B4C, 0x00043008 + .word 0x00043008, 0x000434C4 + .word 0x000434C4, 0x00043980 + .word 0x00043980, 0x00043E3C + .word 0x00043E3C, 0x000442F8 + .word 0x000442F8, 0x000447B4 + .word 0x000447B4, 0x00044C70 + .word 0x00044C70, 0x00045128 + .word 0x00045128, 0x000455E0 + .word 0x000455E0, 0x00045A9C + .word 0x00045A9C, 0x00045F58 + .word 0x00045F58, 0x00046410 + .word 0x00046410, 0x000468CC + .word 0x000468CC, 0x00046D88 + .word 0x00046D88, 0x00047240 + .word 0x00047240, 0x000476F8 + .word 0x000476F8, 0x00047BB4 + .word 0x00047BB4, 0x00048070 + .word 0x00048070, 0x0004852C + .word 0x0004852C, 0x000489E4 + .word 0x000489E4, 0x00048EA0 + .word 0x00048EA0, 0x00049358 + .word 0x00049358, 0x00049810 + .word 0x00049810, 0x00049CCC + .word 0x00049CCC, 0x0004A188 + .word 0x0004A188, 0x0004A644 + .word 0x0004A644, 0x0004AB00 + .word 0x0004AB00, 0x0004AFBC + .word 0x0004AFBC, 0x0004B478 + .word 0x0004B478, 0x0004B930 + .word 0x0004B930, 0x0004BDE8 + .word 0x0004BDE8, 0x0004C2B8 + .word 0x0004C2B8, 0x0004D398 + .word 0x0004D398, 0x0004E468 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0004E470 ; chunk size + .incbin "baserom.nds", 0x0, 0x91C + .incbin "baserom.nds", 0x91C, 0x1B54 + .incbin "baserom.nds", 0x2470, 0x19B8 + .incbin "baserom.nds", 0x3E28, 0x91C + .incbin "baserom.nds", 0x4744, 0x91C + .incbin "baserom.nds", 0x5060, 0x908 + .incbin "baserom.nds", 0x5968, 0xDB8 + .incbin "baserom.nds", 0x6720, 0x1170 + .incbin "baserom.nds", 0x7890, 0x11E0 + .incbin "baserom.nds", 0x8A70, 0x1940 + .incbin "baserom.nds", 0xA3B0, 0xF3C + .incbin "baserom.nds", 0xB2EC, 0x19CC + .incbin "baserom.nds", 0xCCB8, 0xD40 + .incbin "baserom.nds", 0xD9F8, 0x151C + .incbin "baserom.nds", 0xEF14, 0x1C44 + .incbin "baserom.nds", 0x10B58, 0x19B8 + .incbin "baserom.nds", 0x12510, 0xDCC + .incbin "baserom.nds", 0x132DC, 0x91C + .incbin "baserom.nds", 0x13BF8, 0x1588 + .incbin "baserom.nds", 0x15180, 0x1464 + .incbin "baserom.nds", 0x165E4, 0x1340 + .incbin "baserom.nds", 0x17924, 0x1588 + .incbin "baserom.nds", 0x18EAC, 0x1588 + .incbin "baserom.nds", 0x1A434, 0x1588 + .incbin "baserom.nds", 0x1B9BC, 0x1A38 + .incbin "baserom.nds", 0x1D3F4, 0x1894 + .incbin "baserom.nds", 0x1EC88, 0x2350 + .incbin "baserom.nds", 0x20FD8, 0x2488 + .incbin "baserom.nds", 0x23460, 0x18B0 + .incbin "baserom.nds", 0x24D10, 0x2214 + .incbin "baserom.nds", 0x26F24, 0x2488 + .incbin "baserom.nds", 0x293AC, 0x2188 + .incbin "baserom.nds", 0x2B534, 0x2364 + .incbin "baserom.nds", 0x2D898, 0x2638 + .incbin "baserom.nds", 0x2FED0, 0x2514 + .incbin "baserom.nds", 0x323E4, 0x1588 + .incbin "baserom.nds", 0x3396C, 0xA90 + .incbin "baserom.nds", 0x343FC, 0x4C4 + .incbin "baserom.nds", 0x348C0, 0x4C4 + .incbin "baserom.nds", 0x34D84, 0x4C4 + .incbin "baserom.nds", 0x35248, 0x4C4 + .incbin "baserom.nds", 0x3570C, 0x4C0 + .incbin "baserom.nds", 0x35BCC, 0x4C0 + .incbin "baserom.nds", 0x3608C, 0x4C0 + .incbin "baserom.nds", 0x3654C, 0x4C0 + .incbin "baserom.nds", 0x36A0C, 0x4C0 + .incbin "baserom.nds", 0x36ECC, 0x4C0 + .incbin "baserom.nds", 0x3738C, 0x4C8 + .incbin "baserom.nds", 0x37854, 0x4C8 + .incbin "baserom.nds", 0x37D1C, 0x1C0 + .incbin "baserom.nds", 0x37EDC, 0x1B4 + .incbin "baserom.nds", 0x38090, 0x1B4 + .incbin "baserom.nds", 0x38244, 0x1C0 + .incbin "baserom.nds", 0x38404, 0x4C0 + .incbin "baserom.nds", 0x388C4, 0x4C0 + .incbin "baserom.nds", 0x38D84, 0x4C0 + .incbin "baserom.nds", 0x39244, 0x4C0 + .incbin "baserom.nds", 0x39704, 0x10C0 + .incbin "baserom.nds", 0x3A7C4, 0x10C0 + .incbin "baserom.nds", 0x3B884, 0x10C0 + .incbin "baserom.nds", 0x3C944, 0x10C0 + .incbin "baserom.nds", 0x3DA04, 0x4BC + .incbin "baserom.nds", 0x3DEC0, 0x4BC + .incbin "baserom.nds", 0x3E37C, 0x4BC + .incbin "baserom.nds", 0x3E838, 0x4BC + .incbin "baserom.nds", 0x3ECF4, 0x1BC + .incbin "baserom.nds", 0x3EEB0, 0x1BC + .incbin "baserom.nds", 0x3F06C, 0x1BC + .incbin "baserom.nds", 0x3F228, 0x1BC + .incbin "baserom.nds", 0x3F3E4, 0x1C8 + .incbin "baserom.nds", 0x3F5AC, 0x1C8 + .incbin "baserom.nds", 0x3F774, 0x1C8 + .incbin "baserom.nds", 0x3F93C, 0x1C8 + .incbin "baserom.nds", 0x3FB04, 0x4DC + .incbin "baserom.nds", 0x3FFE0, 0x4E4 + .incbin "baserom.nds", 0x404C4, 0x4E8 + .incbin "baserom.nds", 0x409AC, 0x4E4 + .incbin "baserom.nds", 0x40E90, 0x4E8 + .incbin "baserom.nds", 0x41378, 0x4E4 + .incbin "baserom.nds", 0x4185C, 0x4BC + .incbin "baserom.nds", 0x41D18, 0x4BC + .incbin "baserom.nds", 0x421D4, 0x4BC + .incbin "baserom.nds", 0x42690, 0x4BC + .incbin "baserom.nds", 0x42B4C, 0x4BC + .incbin "baserom.nds", 0x43008, 0x4BC + .incbin "baserom.nds", 0x434C4, 0x4BC + .incbin "baserom.nds", 0x43980, 0x4BC + .incbin "baserom.nds", 0x43E3C, 0x4BC + .incbin "baserom.nds", 0x442F8, 0x4BC + .incbin "baserom.nds", 0x447B4, 0x4BC + .incbin "baserom.nds", 0x44C70, 0x4B8 + .incbin "baserom.nds", 0x45128, 0x4B8 + .incbin "baserom.nds", 0x455E0, 0x4BC + .incbin "baserom.nds", 0x45A9C, 0x4BC + .incbin "baserom.nds", 0x45F58, 0x4B8 + .incbin "baserom.nds", 0x46410, 0x4BC + .incbin "baserom.nds", 0x468CC, 0x4BC + .incbin "baserom.nds", 0x46D88, 0x4B8 + .incbin "baserom.nds", 0x47240, 0x4B8 + .incbin "baserom.nds", 0x476F8, 0x4BC + .incbin "baserom.nds", 0x47BB4, 0x4BC + .incbin "baserom.nds", 0x48070, 0x4BC + .incbin "baserom.nds", 0x4852C, 0x4B8 + .incbin "baserom.nds", 0x489E4, 0x4BC + .incbin "baserom.nds", 0x48EA0, 0x4B8 + .incbin "baserom.nds", 0x49358, 0x4B8 + .incbin "baserom.nds", 0x49810, 0x4BC + .incbin "baserom.nds", 0x49CCC, 0x4BC + .incbin "baserom.nds", 0x4A188, 0x4BC + .incbin "baserom.nds", 0x4A644, 0x4BC + .incbin "baserom.nds", 0x4AB00, 0x4BC + .incbin "baserom.nds", 0x4AFBC, 0x4BC + .incbin "baserom.nds", 0x4B478, 0x4B8 + .incbin "baserom.nds", 0x4B930, 0x4B8 + .incbin "baserom.nds", 0x4BDE8, 0x4D0 + .incbin "baserom.nds", 0x4C2B8, 0x10E0 + .incbin "baserom.nds", 0x4D398, 0x10D0 + .balign 4, 255 diff --git a/narc/effectdata/waza_particle.narc.s b/narc/effectdata/waza_particle.narc.s new file mode 100644 index 00000000..e6fc7378 --- /dev/null +++ b/narc/effectdata/waza_particle.narc.s @@ -0,0 +1,996 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00245810 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000F34 ; chunk size + .short 485 ; number of files + .balign 4 + .word 0x00000000, 0x000001D8 + .word 0x000001D8, 0x00000560 + .word 0x00000560, 0x00000FF4 + .word 0x00000FF4, 0x00006354 + .word 0x00006354, 0x00009084 + .word 0x00009084, 0x0000E3E4 + .word 0x0000E3E4, 0x00011114 + .word 0x00011114, 0x00016A04 + .word 0x00016A04, 0x000192C4 + .word 0x000192C4, 0x00019610 + .word 0x00019610, 0x00019ECC + .word 0x00019ECC, 0x0001A218 + .word 0x0001A218, 0x0001AAD4 + .word 0x0001AAD4, 0x0001AC90 + .word 0x0001AC90, 0x0001D148 + .word 0x0001D148, 0x0001D3E8 + .word 0x0001D3E8, 0x0001DA94 + .word 0x0001DA94, 0x0001DDE0 + .word 0x0001DDE0, 0x00021944 + .word 0x00021944, 0x00021B00 + .word 0x00021B00, 0x000223BC + .word 0x000223BC, 0x00022578 + .word 0x00022578, 0x00023ED8 + .word 0x00023ED8, 0x00024094 + .word 0x00024094, 0x00024950 + .word 0x00024950, 0x00024B0C + .word 0x00024B0C, 0x000253C8 + .word 0x000253C8, 0x00028CC4 + .word 0x00028CC4, 0x00029228 + .word 0x00029228, 0x0002BC5C + .word 0x0002BC5C, 0x0002CF88 + .word 0x0002CF88, 0x0002D2FC + .word 0x0002D2FC, 0x0002E724 + .word 0x0002E724, 0x000321EC + .word 0x000321EC, 0x0003285C + .word 0x0003285C, 0x0003336C + .word 0x0003336C, 0x000388C4 + .word 0x000388C4, 0x000390CC + .word 0x000390CC, 0x0003A108 + .word 0x0003A108, 0x0003B020 + .word 0x0003B020, 0x0003C29C + .word 0x0003C29C, 0x0003CDE0 + .word 0x0003CDE0, 0x0003E81C + .word 0x0003E81C, 0x00040F54 + .word 0x00040F54, 0x000428CC + .word 0x000428CC, 0x00042C40 + .word 0x00042C40, 0x00043EBC + .word 0x00043EBC, 0x0004452C + .word 0x0004452C, 0x000446E4 + .word 0x000446E4, 0x00046E44 + .word 0x00046E44, 0x0004736C + .word 0x0004736C, 0x000476D8 + .word 0x000476D8, 0x00049F58 + .word 0x00049F58, 0x0004B684 + .word 0x0004B684, 0x0004CDB0 + .word 0x0004CDB0, 0x0004E54C + .word 0x0004E54C, 0x0004F970 + .word 0x0004F970, 0x00051E24 + .word 0x00051E24, 0x00052880 + .word 0x00052880, 0x00053618 + .word 0x00053618, 0x000542B8 + .word 0x000542B8, 0x00054918 + .word 0x00054918, 0x000559DC + .word 0x000559DC, 0x00056180 + .word 0x00056180, 0x000579D8 + .word 0x000579D8, 0x00057BBC + .word 0x00057BBC, 0x0005940C + .word 0x0005940C, 0x0005B2C0 + .word 0x0005B2C0, 0x0005C818 + .word 0x0005C818, 0x0005C838 + .word 0x0005C838, 0x0005D778 + .word 0x0005D778, 0x0005E0DC + .word 0x0005E0DC, 0x0005EC60 + .word 0x0005EC60, 0x00060A90 + .word 0x00060A90, 0x00062E88 + .word 0x00062E88, 0x000634F4 + .word 0x000634F4, 0x00063B60 + .word 0x00063B60, 0x00065DC4 + .word 0x00065DC4, 0x00066294 + .word 0x00066294, 0x00067918 + .word 0x00067918, 0x00068A4C + .word 0x00068A4C, 0x00069DD8 + .word 0x00069DD8, 0x0006A0B0 + .word 0x0006A0B0, 0x0006A550 + .word 0x0006A550, 0x0006AA0C + .word 0x0006AA0C, 0x0006B9BC + .word 0x0006B9BC, 0x0006D720 + .word 0x0006D720, 0x0006D740 + .word 0x0006D740, 0x0006E250 + .word 0x0006E250, 0x0006FD24 + .word 0x0006FD24, 0x00071E48 + .word 0x00071E48, 0x00073F84 + .word 0x00073F84, 0x00074450 + .word 0x00074450, 0x00076194 + .word 0x00076194, 0x000767E0 + .word 0x000767E0, 0x00076E2C + .word 0x00076E2C, 0x00077F78 + .word 0x00077F78, 0x000793AC + .word 0x000793AC, 0x00079F24 + .word 0x00079F24, 0x0007A614 + .word 0x0007A614, 0x0007A634 + .word 0x0007A634, 0x0007ADE8 + .word 0x0007ADE8, 0x0007B638 + .word 0x0007B638, 0x0007BEB0 + .word 0x0007BEB0, 0x0007BED0 + .word 0x0007BED0, 0x0007CB34 + .word 0x0007CB34, 0x0007DF44 + .word 0x0007DF44, 0x0007E230 + .word 0x0007E230, 0x0007E51C + .word 0x0007E51C, 0x0007E808 + .word 0x0007E808, 0x00080D5C + .word 0x00080D5C, 0x00080F18 + .word 0x00080F18, 0x000814A4 + .word 0x000814A4, 0x00081C14 + .word 0x00081C14, 0x00082598 + .word 0x00082598, 0x00083574 + .word 0x00083574, 0x00085FC0 + .word 0x00085FC0, 0x00088658 + .word 0x00088658, 0x00088C10 + .word 0x00088C10, 0x000890DC + .word 0x000890DC, 0x00089704 + .word 0x00089704, 0x0008AD64 + .word 0x0008AD64, 0x0008B888 + .word 0x0008B888, 0x0008CB08 + .word 0x0008CB08, 0x0008CB28 + .word 0x0008CB28, 0x0008E44C + .word 0x0008E44C, 0x0008EACC + .word 0x0008EACC, 0x0008ED1C + .word 0x0008ED1C, 0x0008F0A4 + .word 0x0008F0A4, 0x00090298 + .word 0x00090298, 0x00090600 + .word 0x00090600, 0x00090C5C + .word 0x00090C5C, 0x00091528 + .word 0x00091528, 0x000925F8 + .word 0x000925F8, 0x00094B90 + .word 0x00094B90, 0x00094F18 + .word 0x00094F18, 0x00098608 + .word 0x00098608, 0x00099B6C + .word 0x00099B6C, 0x0009ADA8 + .word 0x0009ADA8, 0x0009BFE8 + .word 0x0009BFE8, 0x0009E0EC + .word 0x0009E0EC, 0x0009F46C + .word 0x0009F46C, 0x0009F7D0 + .word 0x0009F7D0, 0x000A08A4 + .word 0x000A08A4, 0x000A2014 + .word 0x000A2014, 0x000A3CEC + .word 0x000A3CEC, 0x000A4D9C + .word 0x000A4D9C, 0x000A526C + .word 0x000A526C, 0x000A6920 + .word 0x000A6920, 0x000A7430 + .word 0x000A7430, 0x000A7B80 + .word 0x000A7B80, 0x000A925C + .word 0x000A925C, 0x000AA588 + .word 0x000AA588, 0x000AC1E8 + .word 0x000AC1E8, 0x000AD9B4 + .word 0x000AD9B4, 0x000AE010 + .word 0x000AE010, 0x000AE030 + .word 0x000AE030, 0x000AF594 + .word 0x000AF594, 0x000B09B4 + .word 0x000B09B4, 0x000B1270 + .word 0x000B1270, 0x000B1E28 + .word 0x000B1E28, 0x000B34EC + .word 0x000B34EC, 0x000B4660 + .word 0x000B4660, 0x000B5D74 + .word 0x000B5D74, 0x000B6E80 + .word 0x000B6E80, 0x000B7184 + .word 0x000B7184, 0x000B8B00 + .word 0x000B8B00, 0x000B9C78 + .word 0x000B9C78, 0x000BAA50 + .word 0x000BAA50, 0x000BAD48 + .word 0x000BAD48, 0x000BB3B4 + .word 0x000BB3B4, 0x000BB904 + .word 0x000BB904, 0x000BBDE0 + .word 0x000BBDE0, 0x000BE868 + .word 0x000BE868, 0x000C006C + .word 0x000C006C, 0x000C11B0 + .word 0x000C11B0, 0x000C1820 + .word 0x000C1820, 0x000C2F38 + .word 0x000C2F38, 0x000C44E8 + .word 0x000C44E8, 0x000C5274 + .word 0x000C5274, 0x000C5434 + .word 0x000C5434, 0x000C7498 + .word 0x000C7498, 0x000C8A60 + .word 0x000C8A60, 0x000C90A8 + .word 0x000C90A8, 0x000C90C8 + .word 0x000C90C8, 0x000C9298 + .word 0x000C9298, 0x000CAC18 + .word 0x000CAC18, 0x000CC2B8 + .word 0x000CC2B8, 0x000CCBE8 + .word 0x000CCBE8, 0x000D13F4 + .word 0x000D13F4, 0x000D2334 + .word 0x000D2334, 0x000D2968 + .word 0x000D2968, 0x000D32D4 + .word 0x000D32D4, 0x000D5328 + .word 0x000D5328, 0x000D59A8 + .word 0x000D59A8, 0x000D5C6C + .word 0x000D5C6C, 0x000D84CC + .word 0x000D84CC, 0x000D87B8 + .word 0x000D87B8, 0x000D9534 + .word 0x000D9534, 0x000D9554 + .word 0x000D9554, 0x000DABD0 + .word 0x000DABD0, 0x000DAD78 + .word 0x000DAD78, 0x000DC6D0 + .word 0x000DC6D0, 0x000DC6F0 + .word 0x000DC6F0, 0x000DCB80 + .word 0x000DCB80, 0x000DDB2C + .word 0x000DDB2C, 0x000E0EC8 + .word 0x000E0EC8, 0x000E2728 + .word 0x000E2728, 0x000E3DD0 + .word 0x000E3DD0, 0x000E53CC + .word 0x000E53CC, 0x000E58D0 + .word 0x000E58D0, 0x000E693C + .word 0x000E693C, 0x000E695C + .word 0x000E695C, 0x000E6B0C + .word 0x000E6B0C, 0x000E8114 + .word 0x000E8114, 0x000E9C34 + .word 0x000E9C34, 0x000EB5D0 + .word 0x000EB5D0, 0x000EC060 + .word 0x000EC060, 0x000ED7F8 + .word 0x000ED7F8, 0x000F016C + .word 0x000F016C, 0x000F0DD4 + .word 0x000F0DD4, 0x000F1E90 + .word 0x000F1E90, 0x000F1FE0 + .word 0x000F1FE0, 0x000F29B0 + .word 0x000F29B0, 0x000F3D54 + .word 0x000F3D54, 0x000F3D74 + .word 0x000F3D74, 0x000F5554 + .word 0x000F5554, 0x000F6964 + .word 0x000F6964, 0x000F6CE4 + .word 0x000F6CE4, 0x000F76D0 + .word 0x000F76D0, 0x000F7830 + .word 0x000F7830, 0x000F7E88 + .word 0x000F7E88, 0x000FA590 + .word 0x000FA590, 0x000FB03C + .word 0x000FB03C, 0x000FDA7C + .word 0x000FDA7C, 0x000FE20C + .word 0x000FE20C, 0x000FF89C + .word 0x000FF89C, 0x000FFDF8 + .word 0x000FFDF8, 0x00100B04 + .word 0x00100B04, 0x00100B24 + .word 0x00100B24, 0x001027B8 + .word 0x001027B8, 0x00104744 + .word 0x00104744, 0x00104BC8 + .word 0x00104BC8, 0x00105658 + .word 0x00105658, 0x00105C58 + .word 0x00105C58, 0x001062C8 + .word 0x001062C8, 0x00108A04 + .word 0x00108A04, 0x0010B4FC + .word 0x0010B4FC, 0x0010D9CC + .word 0x0010D9CC, 0x0010D9EC + .word 0x0010D9EC, 0x0010E190 + .word 0x0010E190, 0x0010E648 + .word 0x0010E648, 0x0010EAA0 + .word 0x0010EAA0, 0x0010FC94 + .word 0x0010FC94, 0x00111B4C + .word 0x00111B4C, 0x00114520 + .word 0x00114520, 0x00115AA0 + .word 0x00115AA0, 0x00116350 + .word 0x00116350, 0x00116944 + .word 0x00116944, 0x00119038 + .word 0x00119038, 0x0011A2A8 + .word 0x0011A2A8, 0x0011E378 + .word 0x0011E378, 0x0011FA18 + .word 0x0011FA18, 0x001205F4 + .word 0x001205F4, 0x00121E4C + .word 0x00121E4C, 0x00121E6C + .word 0x00121E6C, 0x001224D4 + .word 0x001224D4, 0x00122C58 + .word 0x00122C58, 0x001237B4 + .word 0x001237B4, 0x00123C70 + .word 0x00123C70, 0x001264CC + .word 0x001264CC, 0x00126ADC + .word 0x00126ADC, 0x00127578 + .word 0x00127578, 0x001290D8 + .word 0x001290D8, 0x0012D1FC + .word 0x0012D1FC, 0x0012DA40 + .word 0x0012DA40, 0x0012DA60 + .word 0x0012DA60, 0x0012DCA8 + .word 0x0012DCA8, 0x0012E240 + .word 0x0012E240, 0x0012E260 + .word 0x0012E260, 0x0012F0E8 + .word 0x0012F0E8, 0x0012FEB0 + .word 0x0012FEB0, 0x00130620 + .word 0x00130620, 0x00130640 + .word 0x00130640, 0x00130660 + .word 0x00130660, 0x00131370 + .word 0x00131370, 0x001324B4 + .word 0x001324B4, 0x001324D4 + .word 0x001324D4, 0x001324F4 + .word 0x001324F4, 0x00132514 + .word 0x00132514, 0x001334FC + .word 0x001334FC, 0x0013351C + .word 0x0013351C, 0x001336F0 + .word 0x001336F0, 0x001347C4 + .word 0x001347C4, 0x00135A48 + .word 0x00135A48, 0x00136B18 + .word 0x00136B18, 0x001386E8 + .word 0x001386E8, 0x0013BE74 + .word 0x0013BE74, 0x0013D930 + .word 0x0013D930, 0x00140ED4 + .word 0x00140ED4, 0x00141B28 + .word 0x00141B28, 0x0014325C + .word 0x0014325C, 0x0014342C + .word 0x0014342C, 0x001466DC + .word 0x001466DC, 0x00147960 + .word 0x00147960, 0x00147980 + .word 0x00147980, 0x001479A0 + .word 0x001479A0, 0x001479C0 + .word 0x001479C0, 0x00148740 + .word 0x00148740, 0x0014B64C + .word 0x0014B64C, 0x0014B66C + .word 0x0014B66C, 0x0014B960 + .word 0x0014B960, 0x0014C47C + .word 0x0014C47C, 0x00152068 + .word 0x00152068, 0x00152548 + .word 0x00152548, 0x00153084 + .word 0x00153084, 0x00154470 + .word 0x00154470, 0x00154FA4 + .word 0x00154FA4, 0x00155AC0 + .word 0x00155AC0, 0x00156984 + .word 0x00156984, 0x00156E54 + .word 0x00156E54, 0x001583C0 + .word 0x001583C0, 0x0015AF60 + .word 0x0015AF60, 0x0015AF80 + .word 0x0015AF80, 0x0015B444 + .word 0x0015B444, 0x0015D87C + .word 0x0015D87C, 0x0015E718 + .word 0x0015E718, 0x0015F084 + .word 0x0015F084, 0x0015F8FC + .word 0x0015F8FC, 0x00163FA4 + .word 0x00163FA4, 0x001644F4 + .word 0x001644F4, 0x00165E4C + .word 0x00165E4C, 0x0016778C + .word 0x0016778C, 0x001677AC + .word 0x001677AC, 0x00167CF4 + .word 0x00167CF4, 0x0016BF30 + .word 0x0016BF30, 0x0016E038 + .word 0x0016E038, 0x0016F190 + .word 0x0016F190, 0x0016F1B0 + .word 0x0016F1B0, 0x00171EA0 + .word 0x00171EA0, 0x00173DA4 + .word 0x00173DA4, 0x00174AF8 + .word 0x00174AF8, 0x00175E3C + .word 0x00175E3C, 0x0017630C + .word 0x0017630C, 0x00176EA4 + .word 0x00176EA4, 0x00177880 + .word 0x00177880, 0x00179398 + .word 0x00179398, 0x0017A1B0 + .word 0x0017A1B0, 0x0017A8B0 + .word 0x0017A8B0, 0x0017B188 + .word 0x0017B188, 0x0017BAE8 + .word 0x0017BAE8, 0x0017BB08 + .word 0x0017BB08, 0x0017BB28 + .word 0x0017BB28, 0x0017CD74 + .word 0x0017CD74, 0x0017D7F0 + .word 0x0017D7F0, 0x0017D9C0 + .word 0x0017D9C0, 0x0017D9E0 + .word 0x0017D9E0, 0x0017EA1C + .word 0x0017EA1C, 0x0018125C + .word 0x0018125C, 0x00184A94 + .word 0x00184A94, 0x00184BE4 + .word 0x00184BE4, 0x001866B0 + .word 0x001866B0, 0x00187330 + .word 0x00187330, 0x00188A24 + .word 0x00188A24, 0x00189070 + .word 0x00189070, 0x0018AA70 + .word 0x0018AA70, 0x0018BF78 + .word 0x0018BF78, 0x0018C974 + .word 0x0018C974, 0x0018EA84 + .word 0x0018EA84, 0x0018F880 + .word 0x0018F880, 0x00190ED0 + .word 0x00190ED0, 0x00192CC4 + .word 0x00192CC4, 0x0019376C + .word 0x0019376C, 0x00199AE8 + .word 0x00199AE8, 0x0019B8A4 + .word 0x0019B8A4, 0x0019F360 + .word 0x0019F360, 0x001A0934 + .word 0x001A0934, 0x001A21E8 + .word 0x001A21E8, 0x001A4AC8 + .word 0x001A4AC8, 0x001A63E4 + .word 0x001A63E4, 0x001A8780 + .word 0x001A8780, 0x001A91C4 + .word 0x001A91C4, 0x001A9840 + .word 0x001A9840, 0x001ADB50 + .word 0x001ADB50, 0x001AF530 + .word 0x001AF530, 0x001B0004 + .word 0x001B0004, 0x001B2AD4 + .word 0x001B2AD4, 0x001B3714 + .word 0x001B3714, 0x001B3FB0 + .word 0x001B3FB0, 0x001B54E0 + .word 0x001B54E0, 0x001B5850 + .word 0x001B5850, 0x001B87D0 + .word 0x001B87D0, 0x001B9E10 + .word 0x001B9E10, 0x001BA7C4 + .word 0x001BA7C4, 0x001BADAC + .word 0x001BADAC, 0x001BD034 + .word 0x001BD034, 0x001BD708 + .word 0x001BD708, 0x001BDD80 + .word 0x001BDD80, 0x001BE814 + .word 0x001BE814, 0x001BF0A8 + .word 0x001BF0A8, 0x001BF93C + .word 0x001BF93C, 0x001BFB0C + .word 0x001BFB0C, 0x001BFCDC + .word 0x001BFCDC, 0x001C2238 + .word 0x001C2238, 0x001C3C64 + .word 0x001C3C64, 0x001C51C4 + .word 0x001C51C4, 0x001C6D00 + .word 0x001C6D00, 0x001C77D0 + .word 0x001C77D0, 0x001C8064 + .word 0x001C8064, 0x001C89DC + .word 0x001C89DC, 0x001C9048 + .word 0x001C9048, 0x001C9778 + .word 0x001C9778, 0x001CBFB8 + .word 0x001CBFB8, 0x001CE3E0 + .word 0x001CE3E0, 0x001CF64C + .word 0x001CF64C, 0x001D0D00 + .word 0x001D0D00, 0x001D23A4 + .word 0x001D23A4, 0x001D31E8 + .word 0x001D31E8, 0x001D3D00 + .word 0x001D3D00, 0x001D44D4 + .word 0x001D44D4, 0x001D471C + .word 0x001D471C, 0x001D4A44 + .word 0x001D4A44, 0x001D5504 + .word 0x001D5504, 0x001D7694 + .word 0x001D7694, 0x001D9D58 + .word 0x001D9D58, 0x001DA274 + .word 0x001DA274, 0x001DAB20 + .word 0x001DAB20, 0x001DBAE0 + .word 0x001DBAE0, 0x001DEC44 + .word 0x001DEC44, 0x001E0FE8 + .word 0x001E0FE8, 0x001E35F8 + .word 0x001E35F8, 0x001E4B20 + .word 0x001E4B20, 0x001E4B40 + .word 0x001E4B40, 0x001E5990 + .word 0x001E5990, 0x001E834C + .word 0x001E834C, 0x001E8C44 + .word 0x001E8C44, 0x001E98C8 + .word 0x001E98C8, 0x001EB620 + .word 0x001EB620, 0x001EC8A8 + .word 0x001EC8A8, 0x001EFDCC + .word 0x001EFDCC, 0x001F296C + .word 0x001F296C, 0x001F532C + .word 0x001F532C, 0x001F598C + .word 0x001F598C, 0x001F85D0 + .word 0x001F85D0, 0x001FA27C + .word 0x001FA27C, 0x001FC144 + .word 0x001FC144, 0x001FEA9C + .word 0x001FEA9C, 0x00200958 + .word 0x00200958, 0x002022D0 + .word 0x002022D0, 0x002029FC + .word 0x002029FC, 0x00202A1C + .word 0x00202A1C, 0x00204474 + .word 0x00204474, 0x00205444 + .word 0x00205444, 0x00206A98 + .word 0x00206A98, 0x00209AA8 + .word 0x00209AA8, 0x0020C308 + .word 0x0020C308, 0x0020EB30 + .word 0x0020EB30, 0x0020F23C + .word 0x0020F23C, 0x0020F89C + .word 0x0020F89C, 0x0021027C + .word 0x0021027C, 0x00211990 + .word 0x00211990, 0x00212644 + .word 0x00212644, 0x00213C68 + .word 0x00213C68, 0x00214198 + .word 0x00214198, 0x00215708 + .word 0x00215708, 0x00217900 + .word 0x00217900, 0x00219460 + .word 0x00219460, 0x00219ADC + .word 0x00219ADC, 0x0021B7C4 + .word 0x0021B7C4, 0x0021E3BC + .word 0x0021E3BC, 0x0021F560 + .word 0x0021F560, 0x002210F0 + .word 0x002210F0, 0x0022312C + .word 0x0022312C, 0x002262D0 + .word 0x002262D0, 0x00228614 + .word 0x00228614, 0x00228EAC + .word 0x00228EAC, 0x00229E18 + .word 0x00229E18, 0x0022D6C0 + .word 0x0022D6C0, 0x0023050C + .word 0x0023050C, 0x00238108 + .word 0x00238108, 0x0023B454 + .word 0x0023B454, 0x0023CC60 + .word 0x0023CC60, 0x0023EF54 + .word 0x0023EF54, 0x00243078 + .word 0x00243078, 0x002448B4 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x002448BC ; chunk size + .incbin "baserom.nds", 0x0, 0x1D8 + .incbin "baserom.nds", 0x1D8, 0x388 + .incbin "baserom.nds", 0x560, 0xA94 + .incbin "baserom.nds", 0xFF4, 0x5360 + .incbin "baserom.nds", 0x6354, 0x2D30 + .incbin "baserom.nds", 0x9084, 0x5360 + .incbin "baserom.nds", 0xE3E4, 0x2D30 + .incbin "baserom.nds", 0x11114, 0x58F0 + .incbin "baserom.nds", 0x16A04, 0x28C0 + .incbin "baserom.nds", 0x192C4, 0x34C + .incbin "baserom.nds", 0x19610, 0x8BC + .incbin "baserom.nds", 0x19ECC, 0x34C + .incbin "baserom.nds", 0x1A218, 0x8BC + .incbin "baserom.nds", 0x1AAD4, 0x1BC + .incbin "baserom.nds", 0x1AC90, 0x24B8 + .incbin "baserom.nds", 0x1D148, 0x2A0 + .incbin "baserom.nds", 0x1D3E8, 0x6AC + .incbin "baserom.nds", 0x1DA94, 0x34C + .incbin "baserom.nds", 0x1DDE0, 0x3B64 + .incbin "baserom.nds", 0x21944, 0x1BC + .incbin "baserom.nds", 0x21B00, 0x8BC + .incbin "baserom.nds", 0x223BC, 0x1BC + .incbin "baserom.nds", 0x22578, 0x1960 + .incbin "baserom.nds", 0x23ED8, 0x1BC + .incbin "baserom.nds", 0x24094, 0x8BC + .incbin "baserom.nds", 0x24950, 0x1BC + .incbin "baserom.nds", 0x24B0C, 0x8BC + .incbin "baserom.nds", 0x253C8, 0x38FC + .incbin "baserom.nds", 0x28CC4, 0x564 + .incbin "baserom.nds", 0x29228, 0x2A34 + .incbin "baserom.nds", 0x2BC5C, 0x132C + .incbin "baserom.nds", 0x2CF88, 0x374 + .incbin "baserom.nds", 0x2D2FC, 0x1428 + .incbin "baserom.nds", 0x2E724, 0x3AC8 + .incbin "baserom.nds", 0x321EC, 0x670 + .incbin "baserom.nds", 0x3285C, 0xB10 + .incbin "baserom.nds", 0x3336C, 0x5558 + .incbin "baserom.nds", 0x388C4, 0x808 + .incbin "baserom.nds", 0x390CC, 0x103C + .incbin "baserom.nds", 0x3A108, 0xF18 + .incbin "baserom.nds", 0x3B020, 0x127C + .incbin "baserom.nds", 0x3C29C, 0xB44 + .incbin "baserom.nds", 0x3CDE0, 0x1A3C + .incbin "baserom.nds", 0x3E81C, 0x2738 + .incbin "baserom.nds", 0x40F54, 0x1978 + .incbin "baserom.nds", 0x428CC, 0x374 + .incbin "baserom.nds", 0x42C40, 0x127C + .incbin "baserom.nds", 0x43EBC, 0x670 + .incbin "baserom.nds", 0x4452C, 0x1B8 + .incbin "baserom.nds", 0x446E4, 0x2760 + .incbin "baserom.nds", 0x46E44, 0x528 + .incbin "baserom.nds", 0x4736C, 0x36C + .incbin "baserom.nds", 0x476D8, 0x2880 + .incbin "baserom.nds", 0x49F58, 0x172C + .incbin "baserom.nds", 0x4B684, 0x172C + .incbin "baserom.nds", 0x4CDB0, 0x179C + .incbin "baserom.nds", 0x4E54C, 0x1424 + .incbin "baserom.nds", 0x4F970, 0x24B4 + .incbin "baserom.nds", 0x51E24, 0xA5C + .incbin "baserom.nds", 0x52880, 0xD98 + .incbin "baserom.nds", 0x53618, 0xCA0 + .incbin "baserom.nds", 0x542B8, 0x660 + .incbin "baserom.nds", 0x54918, 0x10C4 + .incbin "baserom.nds", 0x559DC, 0x7A4 + .incbin "baserom.nds", 0x56180, 0x1858 + .incbin "baserom.nds", 0x579D8, 0x1E4 + .incbin "baserom.nds", 0x57BBC, 0x1850 + .incbin "baserom.nds", 0x5940C, 0x1EB4 + .incbin "baserom.nds", 0x5B2C0, 0x1558 + .incbin "baserom.nds", 0x5C818, 0x20 + .incbin "baserom.nds", 0x5C838, 0xF40 + .incbin "baserom.nds", 0x5D778, 0x964 + .incbin "baserom.nds", 0x5E0DC, 0xB84 + .incbin "baserom.nds", 0x5EC60, 0x1E30 + .incbin "baserom.nds", 0x60A90, 0x23F8 + .incbin "baserom.nds", 0x62E88, 0x66C + .incbin "baserom.nds", 0x634F4, 0x66C + .incbin "baserom.nds", 0x63B60, 0x2264 + .incbin "baserom.nds", 0x65DC4, 0x4D0 + .incbin "baserom.nds", 0x66294, 0x1684 + .incbin "baserom.nds", 0x67918, 0x1134 + .incbin "baserom.nds", 0x68A4C, 0x138C + .incbin "baserom.nds", 0x69DD8, 0x2D8 + .incbin "baserom.nds", 0x6A0B0, 0x4A0 + .incbin "baserom.nds", 0x6A550, 0x4BC + .incbin "baserom.nds", 0x6AA0C, 0xFB0 + .incbin "baserom.nds", 0x6B9BC, 0x1D64 + .incbin "baserom.nds", 0x6D720, 0x20 + .incbin "baserom.nds", 0x6D740, 0xB10 + .incbin "baserom.nds", 0x6E250, 0x1AD4 + .incbin "baserom.nds", 0x6FD24, 0x2124 + .incbin "baserom.nds", 0x71E48, 0x213C + .incbin "baserom.nds", 0x73F84, 0x4CC + .incbin "baserom.nds", 0x74450, 0x1D44 + .incbin "baserom.nds", 0x76194, 0x64C + .incbin "baserom.nds", 0x767E0, 0x64C + .incbin "baserom.nds", 0x76E2C, 0x114C + .incbin "baserom.nds", 0x77F78, 0x1434 + .incbin "baserom.nds", 0x793AC, 0xB78 + .incbin "baserom.nds", 0x79F24, 0x6F0 + .incbin "baserom.nds", 0x7A614, 0x20 + .incbin "baserom.nds", 0x7A634, 0x7B4 + .incbin "baserom.nds", 0x7ADE8, 0x850 + .incbin "baserom.nds", 0x7B638, 0x878 + .incbin "baserom.nds", 0x7BEB0, 0x20 + .incbin "baserom.nds", 0x7BED0, 0xC64 + .incbin "baserom.nds", 0x7CB34, 0x1410 + .incbin "baserom.nds", 0x7DF44, 0x2EC + .incbin "baserom.nds", 0x7E230, 0x2EC + .incbin "baserom.nds", 0x7E51C, 0x2EC + .incbin "baserom.nds", 0x7E808, 0x2554 + .incbin "baserom.nds", 0x80D5C, 0x1BC + .incbin "baserom.nds", 0x80F18, 0x58C + .incbin "baserom.nds", 0x814A4, 0x770 + .incbin "baserom.nds", 0x81C14, 0x984 + .incbin "baserom.nds", 0x82598, 0xFDC + .incbin "baserom.nds", 0x83574, 0x2A4C + .incbin "baserom.nds", 0x85FC0, 0x2698 + .incbin "baserom.nds", 0x88658, 0x5B8 + .incbin "baserom.nds", 0x88C10, 0x4CC + .incbin "baserom.nds", 0x890DC, 0x628 + .incbin "baserom.nds", 0x89704, 0x1660 + .incbin "baserom.nds", 0x8AD64, 0xB24 + .incbin "baserom.nds", 0x8B888, 0x1280 + .incbin "baserom.nds", 0x8CB08, 0x20 + .incbin "baserom.nds", 0x8CB28, 0x1924 + .incbin "baserom.nds", 0x8E44C, 0x680 + .incbin "baserom.nds", 0x8EACC, 0x250 + .incbin "baserom.nds", 0x8ED1C, 0x388 + .incbin "baserom.nds", 0x8F0A4, 0x11F4 + .incbin "baserom.nds", 0x90298, 0x368 + .incbin "baserom.nds", 0x90600, 0x65C + .incbin "baserom.nds", 0x90C5C, 0x8CC + .incbin "baserom.nds", 0x91528, 0x10D0 + .incbin "baserom.nds", 0x925F8, 0x2598 + .incbin "baserom.nds", 0x94B90, 0x388 + .incbin "baserom.nds", 0x94F18, 0x36F0 + .incbin "baserom.nds", 0x98608, 0x1564 + .incbin "baserom.nds", 0x99B6C, 0x123C + .incbin "baserom.nds", 0x9ADA8, 0x1240 + .incbin "baserom.nds", 0x9BFE8, 0x2104 + .incbin "baserom.nds", 0x9E0EC, 0x1380 + .incbin "baserom.nds", 0x9F46C, 0x364 + .incbin "baserom.nds", 0x9F7D0, 0x10D4 + .incbin "baserom.nds", 0xA08A4, 0x1770 + .incbin "baserom.nds", 0xA2014, 0x1CD8 + .incbin "baserom.nds", 0xA3CEC, 0x10B0 + .incbin "baserom.nds", 0xA4D9C, 0x4D0 + .incbin "baserom.nds", 0xA526C, 0x16B4 + .incbin "baserom.nds", 0xA6920, 0xB10 + .incbin "baserom.nds", 0xA7430, 0x750 + .incbin "baserom.nds", 0xA7B80, 0x16DC + .incbin "baserom.nds", 0xA925C, 0x132C + .incbin "baserom.nds", 0xAA588, 0x1C60 + .incbin "baserom.nds", 0xAC1E8, 0x17CC + .incbin "baserom.nds", 0xAD9B4, 0x65C + .incbin "baserom.nds", 0xAE010, 0x20 + .incbin "baserom.nds", 0xAE030, 0x1564 + .incbin "baserom.nds", 0xAF594, 0x1420 + .incbin "baserom.nds", 0xB09B4, 0x8BC + .incbin "baserom.nds", 0xB1270, 0xBB8 + .incbin "baserom.nds", 0xB1E28, 0x16C4 + .incbin "baserom.nds", 0xB34EC, 0x1174 + .incbin "baserom.nds", 0xB4660, 0x1714 + .incbin "baserom.nds", 0xB5D74, 0x110C + .incbin "baserom.nds", 0xB6E80, 0x304 + .incbin "baserom.nds", 0xB7184, 0x197C + .incbin "baserom.nds", 0xB8B00, 0x1178 + .incbin "baserom.nds", 0xB9C78, 0xDD8 + .incbin "baserom.nds", 0xBAA50, 0x2F8 + .incbin "baserom.nds", 0xBAD48, 0x66C + .incbin "baserom.nds", 0xBB3B4, 0x550 + .incbin "baserom.nds", 0xBB904, 0x4DC + .incbin "baserom.nds", 0xBBDE0, 0x2A88 + .incbin "baserom.nds", 0xBE868, 0x1804 + .incbin "baserom.nds", 0xC006C, 0x1144 + .incbin "baserom.nds", 0xC11B0, 0x670 + .incbin "baserom.nds", 0xC1820, 0x1718 + .incbin "baserom.nds", 0xC2F38, 0x15B0 + .incbin "baserom.nds", 0xC44E8, 0xD8C + .incbin "baserom.nds", 0xC5274, 0x1C0 + .incbin "baserom.nds", 0xC5434, 0x2064 + .incbin "baserom.nds", 0xC7498, 0x15C8 + .incbin "baserom.nds", 0xC8A60, 0x648 + .incbin "baserom.nds", 0xC90A8, 0x20 + .incbin "baserom.nds", 0xC90C8, 0x1D0 + .incbin "baserom.nds", 0xC9298, 0x1980 + .incbin "baserom.nds", 0xCAC18, 0x16A0 + .incbin "baserom.nds", 0xCC2B8, 0x930 + .incbin "baserom.nds", 0xCCBE8, 0x480C + .incbin "baserom.nds", 0xD13F4, 0xF40 + .incbin "baserom.nds", 0xD2334, 0x634 + .incbin "baserom.nds", 0xD2968, 0x96C + .incbin "baserom.nds", 0xD32D4, 0x2054 + .incbin "baserom.nds", 0xD5328, 0x680 + .incbin "baserom.nds", 0xD59A8, 0x2C4 + .incbin "baserom.nds", 0xD5C6C, 0x2860 + .incbin "baserom.nds", 0xD84CC, 0x2EC + .incbin "baserom.nds", 0xD87B8, 0xD7C + .incbin "baserom.nds", 0xD9534, 0x20 + .incbin "baserom.nds", 0xD9554, 0x167C + .incbin "baserom.nds", 0xDABD0, 0x1A8 + .incbin "baserom.nds", 0xDAD78, 0x1958 + .incbin "baserom.nds", 0xDC6D0, 0x20 + .incbin "baserom.nds", 0xDC6F0, 0x490 + .incbin "baserom.nds", 0xDCB80, 0xFAC + .incbin "baserom.nds", 0xDDB2C, 0x339C + .incbin "baserom.nds", 0xE0EC8, 0x1860 + .incbin "baserom.nds", 0xE2728, 0x16A8 + .incbin "baserom.nds", 0xE3DD0, 0x15FC + .incbin "baserom.nds", 0xE53CC, 0x504 + .incbin "baserom.nds", 0xE58D0, 0x106C + .incbin "baserom.nds", 0xE693C, 0x20 + .incbin "baserom.nds", 0xE695C, 0x1B0 + .incbin "baserom.nds", 0xE6B0C, 0x1608 + .incbin "baserom.nds", 0xE8114, 0x1B20 + .incbin "baserom.nds", 0xE9C34, 0x199C + .incbin "baserom.nds", 0xEB5D0, 0xA90 + .incbin "baserom.nds", 0xEC060, 0x1798 + .incbin "baserom.nds", 0xED7F8, 0x2974 + .incbin "baserom.nds", 0xF016C, 0xC68 + .incbin "baserom.nds", 0xF0DD4, 0x10BC + .incbin "baserom.nds", 0xF1E90, 0x150 + .incbin "baserom.nds", 0xF1FE0, 0x9D0 + .incbin "baserom.nds", 0xF29B0, 0x13A4 + .incbin "baserom.nds", 0xF3D54, 0x20 + .incbin "baserom.nds", 0xF3D74, 0x17E0 + .incbin "baserom.nds", 0xF5554, 0x1410 + .incbin "baserom.nds", 0xF6964, 0x380 + .incbin "baserom.nds", 0xF6CE4, 0x9EC + .incbin "baserom.nds", 0xF76D0, 0x160 + .incbin "baserom.nds", 0xF7830, 0x658 + .incbin "baserom.nds", 0xF7E88, 0x2708 + .incbin "baserom.nds", 0xFA590, 0xAAC + .incbin "baserom.nds", 0xFB03C, 0x2A40 + .incbin "baserom.nds", 0xFDA7C, 0x790 + .incbin "baserom.nds", 0xFE20C, 0x1690 + .incbin "baserom.nds", 0xFF89C, 0x55C + .incbin "baserom.nds", 0xFFDF8, 0xD0C + .incbin "baserom.nds", 0x100B04, 0x20 + .incbin "baserom.nds", 0x100B24, 0x1C94 + .incbin "baserom.nds", 0x1027B8, 0x1F8C + .incbin "baserom.nds", 0x104744, 0x484 + .incbin "baserom.nds", 0x104BC8, 0xA90 + .incbin "baserom.nds", 0x105658, 0x600 + .incbin "baserom.nds", 0x105C58, 0x670 + .incbin "baserom.nds", 0x1062C8, 0x273C + .incbin "baserom.nds", 0x108A04, 0x2AF8 + .incbin "baserom.nds", 0x10B4FC, 0x24D0 + .incbin "baserom.nds", 0x10D9CC, 0x20 + .incbin "baserom.nds", 0x10D9EC, 0x7A4 + .incbin "baserom.nds", 0x10E190, 0x4B8 + .incbin "baserom.nds", 0x10E648, 0x458 + .incbin "baserom.nds", 0x10EAA0, 0x11F4 + .incbin "baserom.nds", 0x10FC94, 0x1EB8 + .incbin "baserom.nds", 0x111B4C, 0x29D4 + .incbin "baserom.nds", 0x114520, 0x1580 + .incbin "baserom.nds", 0x115AA0, 0x8B0 + .incbin "baserom.nds", 0x116350, 0x5F4 + .incbin "baserom.nds", 0x116944, 0x26F4 + .incbin "baserom.nds", 0x119038, 0x1270 + .incbin "baserom.nds", 0x11A2A8, 0x40D0 + .incbin "baserom.nds", 0x11E378, 0x16A0 + .incbin "baserom.nds", 0x11FA18, 0xBDC + .incbin "baserom.nds", 0x1205F4, 0x1858 + .incbin "baserom.nds", 0x121E4C, 0x20 + .incbin "baserom.nds", 0x121E6C, 0x668 + .incbin "baserom.nds", 0x1224D4, 0x784 + .incbin "baserom.nds", 0x122C58, 0xB5C + .incbin "baserom.nds", 0x1237B4, 0x4BC + .incbin "baserom.nds", 0x123C70, 0x285C + .incbin "baserom.nds", 0x1264CC, 0x610 + .incbin "baserom.nds", 0x126ADC, 0xA9C + .incbin "baserom.nds", 0x127578, 0x1B60 + .incbin "baserom.nds", 0x1290D8, 0x4124 + .incbin "baserom.nds", 0x12D1FC, 0x844 + .incbin "baserom.nds", 0x12DA40, 0x20 + .incbin "baserom.nds", 0x12DA60, 0x248 + .incbin "baserom.nds", 0x12DCA8, 0x598 + .incbin "baserom.nds", 0x12E240, 0x20 + .incbin "baserom.nds", 0x12E260, 0xE88 + .incbin "baserom.nds", 0x12F0E8, 0xDC8 + .incbin "baserom.nds", 0x12FEB0, 0x770 + .incbin "baserom.nds", 0x130620, 0x20 + .incbin "baserom.nds", 0x130640, 0x20 + .incbin "baserom.nds", 0x130660, 0xD10 + .incbin "baserom.nds", 0x131370, 0x1144 + .incbin "baserom.nds", 0x1324B4, 0x20 + .incbin "baserom.nds", 0x1324D4, 0x20 + .incbin "baserom.nds", 0x1324F4, 0x20 + .incbin "baserom.nds", 0x132514, 0xFE8 + .incbin "baserom.nds", 0x1334FC, 0x20 + .incbin "baserom.nds", 0x13351C, 0x1D4 + .incbin "baserom.nds", 0x1336F0, 0x10D4 + .incbin "baserom.nds", 0x1347C4, 0x1284 + .incbin "baserom.nds", 0x135A48, 0x10D0 + .incbin "baserom.nds", 0x136B18, 0x1BD0 + .incbin "baserom.nds", 0x1386E8, 0x378C + .incbin "baserom.nds", 0x13BE74, 0x1ABC + .incbin "baserom.nds", 0x13D930, 0x35A4 + .incbin "baserom.nds", 0x140ED4, 0xC54 + .incbin "baserom.nds", 0x141B28, 0x1734 + .incbin "baserom.nds", 0x14325C, 0x1D0 + .incbin "baserom.nds", 0x14342C, 0x32B0 + .incbin "baserom.nds", 0x1466DC, 0x1284 + .incbin "baserom.nds", 0x147960, 0x20 + .incbin "baserom.nds", 0x147980, 0x20 + .incbin "baserom.nds", 0x1479A0, 0x20 + .incbin "baserom.nds", 0x1479C0, 0xD80 + .incbin "baserom.nds", 0x148740, 0x2F0C + .incbin "baserom.nds", 0x14B64C, 0x20 + .incbin "baserom.nds", 0x14B66C, 0x2F4 + .incbin "baserom.nds", 0x14B960, 0xB1C + .incbin "baserom.nds", 0x14C47C, 0x5BEC + .incbin "baserom.nds", 0x152068, 0x4E0 + .incbin "baserom.nds", 0x152548, 0xB3C + .incbin "baserom.nds", 0x153084, 0x13EC + .incbin "baserom.nds", 0x154470, 0xB34 + .incbin "baserom.nds", 0x154FA4, 0xB1C + .incbin "baserom.nds", 0x155AC0, 0xEC4 + .incbin "baserom.nds", 0x156984, 0x4D0 + .incbin "baserom.nds", 0x156E54, 0x156C + .incbin "baserom.nds", 0x1583C0, 0x2BA0 + .incbin "baserom.nds", 0x15AF60, 0x20 + .incbin "baserom.nds", 0x15AF80, 0x4C4 + .incbin "baserom.nds", 0x15B444, 0x2438 + .incbin "baserom.nds", 0x15D87C, 0xE9C + .incbin "baserom.nds", 0x15E718, 0x96C + .incbin "baserom.nds", 0x15F084, 0x878 + .incbin "baserom.nds", 0x15F8FC, 0x46A8 + .incbin "baserom.nds", 0x163FA4, 0x550 + .incbin "baserom.nds", 0x1644F4, 0x1958 + .incbin "baserom.nds", 0x165E4C, 0x1940 + .incbin "baserom.nds", 0x16778C, 0x20 + .incbin "baserom.nds", 0x1677AC, 0x548 + .incbin "baserom.nds", 0x167CF4, 0x423C + .incbin "baserom.nds", 0x16BF30, 0x2108 + .incbin "baserom.nds", 0x16E038, 0x1158 + .incbin "baserom.nds", 0x16F190, 0x20 + .incbin "baserom.nds", 0x16F1B0, 0x2CF0 + .incbin "baserom.nds", 0x171EA0, 0x1F04 + .incbin "baserom.nds", 0x173DA4, 0xD54 + .incbin "baserom.nds", 0x174AF8, 0x1344 + .incbin "baserom.nds", 0x175E3C, 0x4D0 + .incbin "baserom.nds", 0x17630C, 0xB98 + .incbin "baserom.nds", 0x176EA4, 0x9DC + .incbin "baserom.nds", 0x177880, 0x1B18 + .incbin "baserom.nds", 0x179398, 0xE18 + .incbin "baserom.nds", 0x17A1B0, 0x700 + .incbin "baserom.nds", 0x17A8B0, 0x8D8 + .incbin "baserom.nds", 0x17B188, 0x960 + .incbin "baserom.nds", 0x17BAE8, 0x20 + .incbin "baserom.nds", 0x17BB08, 0x20 + .incbin "baserom.nds", 0x17BB28, 0x124C + .incbin "baserom.nds", 0x17CD74, 0xA7C + .incbin "baserom.nds", 0x17D7F0, 0x1D0 + .incbin "baserom.nds", 0x17D9C0, 0x20 + .incbin "baserom.nds", 0x17D9E0, 0x103C + .incbin "baserom.nds", 0x17EA1C, 0x2840 + .incbin "baserom.nds", 0x18125C, 0x3838 + .incbin "baserom.nds", 0x184A94, 0x150 + .incbin "baserom.nds", 0x184BE4, 0x1ACC + .incbin "baserom.nds", 0x1866B0, 0xC80 + .incbin "baserom.nds", 0x187330, 0x16F4 + .incbin "baserom.nds", 0x188A24, 0x64C + .incbin "baserom.nds", 0x189070, 0x1A00 + .incbin "baserom.nds", 0x18AA70, 0x1508 + .incbin "baserom.nds", 0x18BF78, 0x9FC + .incbin "baserom.nds", 0x18C974, 0x2110 + .incbin "baserom.nds", 0x18EA84, 0xDFC + .incbin "baserom.nds", 0x18F880, 0x1650 + .incbin "baserom.nds", 0x190ED0, 0x1DF4 + .incbin "baserom.nds", 0x192CC4, 0xAA8 + .incbin "baserom.nds", 0x19376C, 0x637C + .incbin "baserom.nds", 0x199AE8, 0x1DBC + .incbin "baserom.nds", 0x19B8A4, 0x3ABC + .incbin "baserom.nds", 0x19F360, 0x15D4 + .incbin "baserom.nds", 0x1A0934, 0x18B4 + .incbin "baserom.nds", 0x1A21E8, 0x28E0 + .incbin "baserom.nds", 0x1A4AC8, 0x191C + .incbin "baserom.nds", 0x1A63E4, 0x239C + .incbin "baserom.nds", 0x1A8780, 0xA44 + .incbin "baserom.nds", 0x1A91C4, 0x67C + .incbin "baserom.nds", 0x1A9840, 0x4310 + .incbin "baserom.nds", 0x1ADB50, 0x19E0 + .incbin "baserom.nds", 0x1AF530, 0xAD4 + .incbin "baserom.nds", 0x1B0004, 0x2AD0 + .incbin "baserom.nds", 0x1B2AD4, 0xC40 + .incbin "baserom.nds", 0x1B3714, 0x89C + .incbin "baserom.nds", 0x1B3FB0, 0x1530 + .incbin "baserom.nds", 0x1B54E0, 0x370 + .incbin "baserom.nds", 0x1B5850, 0x2F80 + .incbin "baserom.nds", 0x1B87D0, 0x1640 + .incbin "baserom.nds", 0x1B9E10, 0x9B4 + .incbin "baserom.nds", 0x1BA7C4, 0x5E8 + .incbin "baserom.nds", 0x1BADAC, 0x2288 + .incbin "baserom.nds", 0x1BD034, 0x6D4 + .incbin "baserom.nds", 0x1BD708, 0x678 + .incbin "baserom.nds", 0x1BDD80, 0xA94 + .incbin "baserom.nds", 0x1BE814, 0x894 + .incbin "baserom.nds", 0x1BF0A8, 0x894 + .incbin "baserom.nds", 0x1BF93C, 0x1D0 + .incbin "baserom.nds", 0x1BFB0C, 0x1D0 + .incbin "baserom.nds", 0x1BFCDC, 0x255C + .incbin "baserom.nds", 0x1C2238, 0x1A2C + .incbin "baserom.nds", 0x1C3C64, 0x1560 + .incbin "baserom.nds", 0x1C51C4, 0x1B3C + .incbin "baserom.nds", 0x1C6D00, 0xAD0 + .incbin "baserom.nds", 0x1C77D0, 0x894 + .incbin "baserom.nds", 0x1C8064, 0x978 + .incbin "baserom.nds", 0x1C89DC, 0x66C + .incbin "baserom.nds", 0x1C9048, 0x730 + .incbin "baserom.nds", 0x1C9778, 0x2840 + .incbin "baserom.nds", 0x1CBFB8, 0x2428 + .incbin "baserom.nds", 0x1CE3E0, 0x126C + .incbin "baserom.nds", 0x1CF64C, 0x16B4 + .incbin "baserom.nds", 0x1D0D00, 0x16A4 + .incbin "baserom.nds", 0x1D23A4, 0xE44 + .incbin "baserom.nds", 0x1D31E8, 0xB18 + .incbin "baserom.nds", 0x1D3D00, 0x7D4 + .incbin "baserom.nds", 0x1D44D4, 0x248 + .incbin "baserom.nds", 0x1D471C, 0x328 + .incbin "baserom.nds", 0x1D4A44, 0xAC0 + .incbin "baserom.nds", 0x1D5504, 0x2190 + .incbin "baserom.nds", 0x1D7694, 0x26C4 + .incbin "baserom.nds", 0x1D9D58, 0x51C + .incbin "baserom.nds", 0x1DA274, 0x8AC + .incbin "baserom.nds", 0x1DAB20, 0xFC0 + .incbin "baserom.nds", 0x1DBAE0, 0x3164 + .incbin "baserom.nds", 0x1DEC44, 0x23A4 + .incbin "baserom.nds", 0x1E0FE8, 0x2610 + .incbin "baserom.nds", 0x1E35F8, 0x1528 + .incbin "baserom.nds", 0x1E4B20, 0x20 + .incbin "baserom.nds", 0x1E4B40, 0xE50 + .incbin "baserom.nds", 0x1E5990, 0x29BC + .incbin "baserom.nds", 0x1E834C, 0x8F8 + .incbin "baserom.nds", 0x1E8C44, 0xC84 + .incbin "baserom.nds", 0x1E98C8, 0x1D58 + .incbin "baserom.nds", 0x1EB620, 0x1288 + .incbin "baserom.nds", 0x1EC8A8, 0x3524 + .incbin "baserom.nds", 0x1EFDCC, 0x2BA0 + .incbin "baserom.nds", 0x1F296C, 0x29C0 + .incbin "baserom.nds", 0x1F532C, 0x660 + .incbin "baserom.nds", 0x1F598C, 0x2C44 + .incbin "baserom.nds", 0x1F85D0, 0x1CAC + .incbin "baserom.nds", 0x1FA27C, 0x1EC8 + .incbin "baserom.nds", 0x1FC144, 0x2958 + .incbin "baserom.nds", 0x1FEA9C, 0x1EBC + .incbin "baserom.nds", 0x200958, 0x1978 + .incbin "baserom.nds", 0x2022D0, 0x72C + .incbin "baserom.nds", 0x2029FC, 0x20 + .incbin "baserom.nds", 0x202A1C, 0x1A58 + .incbin "baserom.nds", 0x204474, 0xFD0 + .incbin "baserom.nds", 0x205444, 0x1654 + .incbin "baserom.nds", 0x206A98, 0x3010 + .incbin "baserom.nds", 0x209AA8, 0x2860 + .incbin "baserom.nds", 0x20C308, 0x2828 + .incbin "baserom.nds", 0x20EB30, 0x70C + .incbin "baserom.nds", 0x20F23C, 0x660 + .incbin "baserom.nds", 0x20F89C, 0x9E0 + .incbin "baserom.nds", 0x21027C, 0x1714 + .incbin "baserom.nds", 0x211990, 0xCB4 + .incbin "baserom.nds", 0x212644, 0x1624 + .incbin "baserom.nds", 0x213C68, 0x530 + .incbin "baserom.nds", 0x214198, 0x1570 + .incbin "baserom.nds", 0x215708, 0x21F8 + .incbin "baserom.nds", 0x217900, 0x1B60 + .incbin "baserom.nds", 0x219460, 0x67C + .incbin "baserom.nds", 0x219ADC, 0x1CE8 + .incbin "baserom.nds", 0x21B7C4, 0x2BF8 + .incbin "baserom.nds", 0x21E3BC, 0x11A4 + .incbin "baserom.nds", 0x21F560, 0x1B90 + .incbin "baserom.nds", 0x2210F0, 0x203C + .incbin "baserom.nds", 0x22312C, 0x31A4 + .incbin "baserom.nds", 0x2262D0, 0x2344 + .incbin "baserom.nds", 0x228614, 0x898 + .incbin "baserom.nds", 0x228EAC, 0xF6C + .incbin "baserom.nds", 0x229E18, 0x38A8 + .incbin "baserom.nds", 0x22D6C0, 0x2E4C + .incbin "baserom.nds", 0x23050C, 0x7BFC + .incbin "baserom.nds", 0x238108, 0x334C + .incbin "baserom.nds", 0x23B454, 0x180C + .incbin "baserom.nds", 0x23CC60, 0x22F4 + .incbin "baserom.nds", 0x23EF54, 0x4124 + .incbin "baserom.nds", 0x243078, 0x183C + .balign 4, 255 diff --git a/narc/egg/particle/egg_demo_particle.narc.s b/narc/egg/particle/egg_demo_particle.narc.s new file mode 100644 index 00000000..53bb8466 --- /dev/null +++ b/narc/egg/particle/egg_demo_particle.narc.s @@ -0,0 +1,30 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x000025EC ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000001C ; chunk size + .short 2 ; number of files + .balign 4 + .word 0x00000000, 0x000014CC + .word 0x000014CC, 0x000025A8 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000025B0 ; chunk size + .incbin "baserom.nds", 0x0, 0x14CC + .incbin "baserom.nds", 0x14CC, 0x10DC + .balign 4, 255 diff --git a/narc/encountdata/d_enc_data.narc.s b/narc/encountdata/d_enc_data.narc.s new file mode 100644 index 00000000..87f1ec7b --- /dev/null +++ b/narc/encountdata/d_enc_data.narc.s @@ -0,0 +1,392 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00013504 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000005C4 ; chunk size + .short 183 ; number of files + .balign 4 + .word 0x00000000, 0x000001A8 + .word 0x000001A8, 0x00000350 + .word 0x00000350, 0x000004F8 + .word 0x000004F8, 0x000006A0 + .word 0x000006A0, 0x00000848 + .word 0x00000848, 0x000009F0 + .word 0x000009F0, 0x00000B98 + .word 0x00000B98, 0x00000D40 + .word 0x00000D40, 0x00000EE8 + .word 0x00000EE8, 0x00001090 + .word 0x00001090, 0x00001238 + .word 0x00001238, 0x000013E0 + .word 0x000013E0, 0x00001588 + .word 0x00001588, 0x00001730 + .word 0x00001730, 0x000018D8 + .word 0x000018D8, 0x00001A80 + .word 0x00001A80, 0x00001C28 + .word 0x00001C28, 0x00001DD0 + .word 0x00001DD0, 0x00001F78 + .word 0x00001F78, 0x00002120 + .word 0x00002120, 0x000022C8 + .word 0x000022C8, 0x00002470 + .word 0x00002470, 0x00002618 + .word 0x00002618, 0x000027C0 + .word 0x000027C0, 0x00002968 + .word 0x00002968, 0x00002B10 + .word 0x00002B10, 0x00002CB8 + .word 0x00002CB8, 0x00002E60 + .word 0x00002E60, 0x00003008 + .word 0x00003008, 0x000031B0 + .word 0x000031B0, 0x00003358 + .word 0x00003358, 0x00003500 + .word 0x00003500, 0x000036A8 + .word 0x000036A8, 0x00003850 + .word 0x00003850, 0x000039F8 + .word 0x000039F8, 0x00003BA0 + .word 0x00003BA0, 0x00003D48 + .word 0x00003D48, 0x00003EF0 + .word 0x00003EF0, 0x00004098 + .word 0x00004098, 0x00004240 + .word 0x00004240, 0x000043E8 + .word 0x000043E8, 0x00004590 + .word 0x00004590, 0x00004738 + .word 0x00004738, 0x000048E0 + .word 0x000048E0, 0x00004A88 + .word 0x00004A88, 0x00004C30 + .word 0x00004C30, 0x00004DD8 + .word 0x00004DD8, 0x00004F80 + .word 0x00004F80, 0x00005128 + .word 0x00005128, 0x000052D0 + .word 0x000052D0, 0x00005478 + .word 0x00005478, 0x00005620 + .word 0x00005620, 0x000057C8 + .word 0x000057C8, 0x00005970 + .word 0x00005970, 0x00005B18 + .word 0x00005B18, 0x00005CC0 + .word 0x00005CC0, 0x00005E68 + .word 0x00005E68, 0x00006010 + .word 0x00006010, 0x000061B8 + .word 0x000061B8, 0x00006360 + .word 0x00006360, 0x00006508 + .word 0x00006508, 0x000066B0 + .word 0x000066B0, 0x00006858 + .word 0x00006858, 0x00006A00 + .word 0x00006A00, 0x00006BA8 + .word 0x00006BA8, 0x00006D50 + .word 0x00006D50, 0x00006EF8 + .word 0x00006EF8, 0x000070A0 + .word 0x000070A0, 0x00007248 + .word 0x00007248, 0x000073F0 + .word 0x000073F0, 0x00007598 + .word 0x00007598, 0x00007740 + .word 0x00007740, 0x000078E8 + .word 0x000078E8, 0x00007A90 + .word 0x00007A90, 0x00007C38 + .word 0x00007C38, 0x00007DE0 + .word 0x00007DE0, 0x00007F88 + .word 0x00007F88, 0x00008130 + .word 0x00008130, 0x000082D8 + .word 0x000082D8, 0x00008480 + .word 0x00008480, 0x00008628 + .word 0x00008628, 0x000087D0 + .word 0x000087D0, 0x00008978 + .word 0x00008978, 0x00008B20 + .word 0x00008B20, 0x00008CC8 + .word 0x00008CC8, 0x00008E70 + .word 0x00008E70, 0x00009018 + .word 0x00009018, 0x000091C0 + .word 0x000091C0, 0x00009368 + .word 0x00009368, 0x00009510 + .word 0x00009510, 0x000096B8 + .word 0x000096B8, 0x00009860 + .word 0x00009860, 0x00009A08 + .word 0x00009A08, 0x00009BB0 + .word 0x00009BB0, 0x00009D58 + .word 0x00009D58, 0x00009F00 + .word 0x00009F00, 0x0000A0A8 + .word 0x0000A0A8, 0x0000A250 + .word 0x0000A250, 0x0000A3F8 + .word 0x0000A3F8, 0x0000A5A0 + .word 0x0000A5A0, 0x0000A748 + .word 0x0000A748, 0x0000A8F0 + .word 0x0000A8F0, 0x0000AA98 + .word 0x0000AA98, 0x0000AC40 + .word 0x0000AC40, 0x0000ADE8 + .word 0x0000ADE8, 0x0000AF90 + .word 0x0000AF90, 0x0000B138 + .word 0x0000B138, 0x0000B2E0 + .word 0x0000B2E0, 0x0000B488 + .word 0x0000B488, 0x0000B630 + .word 0x0000B630, 0x0000B7D8 + .word 0x0000B7D8, 0x0000B980 + .word 0x0000B980, 0x0000BB28 + .word 0x0000BB28, 0x0000BCD0 + .word 0x0000BCD0, 0x0000BE78 + .word 0x0000BE78, 0x0000C020 + .word 0x0000C020, 0x0000C1C8 + .word 0x0000C1C8, 0x0000C370 + .word 0x0000C370, 0x0000C518 + .word 0x0000C518, 0x0000C6C0 + .word 0x0000C6C0, 0x0000C868 + .word 0x0000C868, 0x0000CA10 + .word 0x0000CA10, 0x0000CBB8 + .word 0x0000CBB8, 0x0000CD60 + .word 0x0000CD60, 0x0000CF08 + .word 0x0000CF08, 0x0000D0B0 + .word 0x0000D0B0, 0x0000D258 + .word 0x0000D258, 0x0000D400 + .word 0x0000D400, 0x0000D5A8 + .word 0x0000D5A8, 0x0000D750 + .word 0x0000D750, 0x0000D8F8 + .word 0x0000D8F8, 0x0000DAA0 + .word 0x0000DAA0, 0x0000DC48 + .word 0x0000DC48, 0x0000DDF0 + .word 0x0000DDF0, 0x0000DF98 + .word 0x0000DF98, 0x0000E140 + .word 0x0000E140, 0x0000E2E8 + .word 0x0000E2E8, 0x0000E490 + .word 0x0000E490, 0x0000E638 + .word 0x0000E638, 0x0000E7E0 + .word 0x0000E7E0, 0x0000E988 + .word 0x0000E988, 0x0000EB30 + .word 0x0000EB30, 0x0000ECD8 + .word 0x0000ECD8, 0x0000EE80 + .word 0x0000EE80, 0x0000F028 + .word 0x0000F028, 0x0000F1D0 + .word 0x0000F1D0, 0x0000F378 + .word 0x0000F378, 0x0000F520 + .word 0x0000F520, 0x0000F6C8 + .word 0x0000F6C8, 0x0000F870 + .word 0x0000F870, 0x0000FA18 + .word 0x0000FA18, 0x0000FBC0 + .word 0x0000FBC0, 0x0000FD68 + .word 0x0000FD68, 0x0000FF10 + .word 0x0000FF10, 0x000100B8 + .word 0x000100B8, 0x00010260 + .word 0x00010260, 0x00010408 + .word 0x00010408, 0x000105B0 + .word 0x000105B0, 0x00010758 + .word 0x00010758, 0x00010900 + .word 0x00010900, 0x00010AA8 + .word 0x00010AA8, 0x00010C50 + .word 0x00010C50, 0x00010DF8 + .word 0x00010DF8, 0x00010FA0 + .word 0x00010FA0, 0x00011148 + .word 0x00011148, 0x000112F0 + .word 0x000112F0, 0x00011498 + .word 0x00011498, 0x00011640 + .word 0x00011640, 0x000117E8 + .word 0x000117E8, 0x00011990 + .word 0x00011990, 0x00011B38 + .word 0x00011B38, 0x00011CE0 + .word 0x00011CE0, 0x00011E88 + .word 0x00011E88, 0x00012030 + .word 0x00012030, 0x000121D8 + .word 0x000121D8, 0x00012380 + .word 0x00012380, 0x00012528 + .word 0x00012528, 0x000126D0 + .word 0x000126D0, 0x00012878 + .word 0x00012878, 0x00012A20 + .word 0x00012A20, 0x00012BC8 + .word 0x00012BC8, 0x00012D70 + .word 0x00012D70, 0x00012F18 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00012F20 ; chunk size + .incbin "baserom.nds", 0x0, 0x1A8 + .incbin "baserom.nds", 0x1A8, 0x1A8 + .incbin "baserom.nds", 0x350, 0x1A8 + .incbin "baserom.nds", 0x4F8, 0x1A8 + .incbin "baserom.nds", 0x6A0, 0x1A8 + .incbin "baserom.nds", 0x848, 0x1A8 + .incbin "baserom.nds", 0x9F0, 0x1A8 + .incbin "baserom.nds", 0xB98, 0x1A8 + .incbin "baserom.nds", 0xD40, 0x1A8 + .incbin "baserom.nds", 0xEE8, 0x1A8 + .incbin "baserom.nds", 0x1090, 0x1A8 + .incbin "baserom.nds", 0x1238, 0x1A8 + .incbin "baserom.nds", 0x13E0, 0x1A8 + .incbin "baserom.nds", 0x1588, 0x1A8 + .incbin "baserom.nds", 0x1730, 0x1A8 + .incbin "baserom.nds", 0x18D8, 0x1A8 + .incbin "baserom.nds", 0x1A80, 0x1A8 + .incbin "baserom.nds", 0x1C28, 0x1A8 + .incbin "baserom.nds", 0x1DD0, 0x1A8 + .incbin "baserom.nds", 0x1F78, 0x1A8 + .incbin "baserom.nds", 0x2120, 0x1A8 + .incbin "baserom.nds", 0x22C8, 0x1A8 + .incbin "baserom.nds", 0x2470, 0x1A8 + .incbin "baserom.nds", 0x2618, 0x1A8 + .incbin "baserom.nds", 0x27C0, 0x1A8 + .incbin "baserom.nds", 0x2968, 0x1A8 + .incbin "baserom.nds", 0x2B10, 0x1A8 + .incbin "baserom.nds", 0x2CB8, 0x1A8 + .incbin "baserom.nds", 0x2E60, 0x1A8 + .incbin "baserom.nds", 0x3008, 0x1A8 + .incbin "baserom.nds", 0x31B0, 0x1A8 + .incbin "baserom.nds", 0x3358, 0x1A8 + .incbin "baserom.nds", 0x3500, 0x1A8 + .incbin "baserom.nds", 0x36A8, 0x1A8 + .incbin "baserom.nds", 0x3850, 0x1A8 + .incbin "baserom.nds", 0x39F8, 0x1A8 + .incbin "baserom.nds", 0x3BA0, 0x1A8 + .incbin "baserom.nds", 0x3D48, 0x1A8 + .incbin "baserom.nds", 0x3EF0, 0x1A8 + .incbin "baserom.nds", 0x4098, 0x1A8 + .incbin "baserom.nds", 0x4240, 0x1A8 + .incbin "baserom.nds", 0x43E8, 0x1A8 + .incbin "baserom.nds", 0x4590, 0x1A8 + .incbin "baserom.nds", 0x4738, 0x1A8 + .incbin "baserom.nds", 0x48E0, 0x1A8 + .incbin "baserom.nds", 0x4A88, 0x1A8 + .incbin "baserom.nds", 0x4C30, 0x1A8 + .incbin "baserom.nds", 0x4DD8, 0x1A8 + .incbin "baserom.nds", 0x4F80, 0x1A8 + .incbin "baserom.nds", 0x5128, 0x1A8 + .incbin "baserom.nds", 0x52D0, 0x1A8 + .incbin "baserom.nds", 0x5478, 0x1A8 + .incbin "baserom.nds", 0x5620, 0x1A8 + .incbin "baserom.nds", 0x57C8, 0x1A8 + .incbin "baserom.nds", 0x5970, 0x1A8 + .incbin "baserom.nds", 0x5B18, 0x1A8 + .incbin "baserom.nds", 0x5CC0, 0x1A8 + .incbin "baserom.nds", 0x5E68, 0x1A8 + .incbin "baserom.nds", 0x6010, 0x1A8 + .incbin "baserom.nds", 0x61B8, 0x1A8 + .incbin "baserom.nds", 0x6360, 0x1A8 + .incbin "baserom.nds", 0x6508, 0x1A8 + .incbin "baserom.nds", 0x66B0, 0x1A8 + .incbin "baserom.nds", 0x6858, 0x1A8 + .incbin "baserom.nds", 0x6A00, 0x1A8 + .incbin "baserom.nds", 0x6BA8, 0x1A8 + .incbin "baserom.nds", 0x6D50, 0x1A8 + .incbin "baserom.nds", 0x6EF8, 0x1A8 + .incbin "baserom.nds", 0x70A0, 0x1A8 + .incbin "baserom.nds", 0x7248, 0x1A8 + .incbin "baserom.nds", 0x73F0, 0x1A8 + .incbin "baserom.nds", 0x7598, 0x1A8 + .incbin "baserom.nds", 0x7740, 0x1A8 + .incbin "baserom.nds", 0x78E8, 0x1A8 + .incbin "baserom.nds", 0x7A90, 0x1A8 + .incbin "baserom.nds", 0x7C38, 0x1A8 + .incbin "baserom.nds", 0x7DE0, 0x1A8 + .incbin "baserom.nds", 0x7F88, 0x1A8 + .incbin "baserom.nds", 0x8130, 0x1A8 + .incbin "baserom.nds", 0x82D8, 0x1A8 + .incbin "baserom.nds", 0x8480, 0x1A8 + .incbin "baserom.nds", 0x8628, 0x1A8 + .incbin "baserom.nds", 0x87D0, 0x1A8 + .incbin "baserom.nds", 0x8978, 0x1A8 + .incbin "baserom.nds", 0x8B20, 0x1A8 + .incbin "baserom.nds", 0x8CC8, 0x1A8 + .incbin "baserom.nds", 0x8E70, 0x1A8 + .incbin "baserom.nds", 0x9018, 0x1A8 + .incbin "baserom.nds", 0x91C0, 0x1A8 + .incbin "baserom.nds", 0x9368, 0x1A8 + .incbin "baserom.nds", 0x9510, 0x1A8 + .incbin "baserom.nds", 0x96B8, 0x1A8 + .incbin "baserom.nds", 0x9860, 0x1A8 + .incbin "baserom.nds", 0x9A08, 0x1A8 + .incbin "baserom.nds", 0x9BB0, 0x1A8 + .incbin "baserom.nds", 0x9D58, 0x1A8 + .incbin "baserom.nds", 0x9F00, 0x1A8 + .incbin "baserom.nds", 0xA0A8, 0x1A8 + .incbin "baserom.nds", 0xA250, 0x1A8 + .incbin "baserom.nds", 0xA3F8, 0x1A8 + .incbin "baserom.nds", 0xA5A0, 0x1A8 + .incbin "baserom.nds", 0xA748, 0x1A8 + .incbin "baserom.nds", 0xA8F0, 0x1A8 + .incbin "baserom.nds", 0xAA98, 0x1A8 + .incbin "baserom.nds", 0xAC40, 0x1A8 + .incbin "baserom.nds", 0xADE8, 0x1A8 + .incbin "baserom.nds", 0xAF90, 0x1A8 + .incbin "baserom.nds", 0xB138, 0x1A8 + .incbin "baserom.nds", 0xB2E0, 0x1A8 + .incbin "baserom.nds", 0xB488, 0x1A8 + .incbin "baserom.nds", 0xB630, 0x1A8 + .incbin "baserom.nds", 0xB7D8, 0x1A8 + .incbin "baserom.nds", 0xB980, 0x1A8 + .incbin "baserom.nds", 0xBB28, 0x1A8 + .incbin "baserom.nds", 0xBCD0, 0x1A8 + .incbin "baserom.nds", 0xBE78, 0x1A8 + .incbin "baserom.nds", 0xC020, 0x1A8 + .incbin "baserom.nds", 0xC1C8, 0x1A8 + .incbin "baserom.nds", 0xC370, 0x1A8 + .incbin "baserom.nds", 0xC518, 0x1A8 + .incbin "baserom.nds", 0xC6C0, 0x1A8 + .incbin "baserom.nds", 0xC868, 0x1A8 + .incbin "baserom.nds", 0xCA10, 0x1A8 + .incbin "baserom.nds", 0xCBB8, 0x1A8 + .incbin "baserom.nds", 0xCD60, 0x1A8 + .incbin "baserom.nds", 0xCF08, 0x1A8 + .incbin "baserom.nds", 0xD0B0, 0x1A8 + .incbin "baserom.nds", 0xD258, 0x1A8 + .incbin "baserom.nds", 0xD400, 0x1A8 + .incbin "baserom.nds", 0xD5A8, 0x1A8 + .incbin "baserom.nds", 0xD750, 0x1A8 + .incbin "baserom.nds", 0xD8F8, 0x1A8 + .incbin "baserom.nds", 0xDAA0, 0x1A8 + .incbin "baserom.nds", 0xDC48, 0x1A8 + .incbin "baserom.nds", 0xDDF0, 0x1A8 + .incbin "baserom.nds", 0xDF98, 0x1A8 + .incbin "baserom.nds", 0xE140, 0x1A8 + .incbin "baserom.nds", 0xE2E8, 0x1A8 + .incbin "baserom.nds", 0xE490, 0x1A8 + .incbin "baserom.nds", 0xE638, 0x1A8 + .incbin "baserom.nds", 0xE7E0, 0x1A8 + .incbin "baserom.nds", 0xE988, 0x1A8 + .incbin "baserom.nds", 0xEB30, 0x1A8 + .incbin "baserom.nds", 0xECD8, 0x1A8 + .incbin "baserom.nds", 0xEE80, 0x1A8 + .incbin "baserom.nds", 0xF028, 0x1A8 + .incbin "baserom.nds", 0xF1D0, 0x1A8 + .incbin "baserom.nds", 0xF378, 0x1A8 + .incbin "baserom.nds", 0xF520, 0x1A8 + .incbin "baserom.nds", 0xF6C8, 0x1A8 + .incbin "baserom.nds", 0xF870, 0x1A8 + .incbin "baserom.nds", 0xFA18, 0x1A8 + .incbin "baserom.nds", 0xFBC0, 0x1A8 + .incbin "baserom.nds", 0xFD68, 0x1A8 + .incbin "baserom.nds", 0xFF10, 0x1A8 + .incbin "baserom.nds", 0x100B8, 0x1A8 + .incbin "baserom.nds", 0x10260, 0x1A8 + .incbin "baserom.nds", 0x10408, 0x1A8 + .incbin "baserom.nds", 0x105B0, 0x1A8 + .incbin "baserom.nds", 0x10758, 0x1A8 + .incbin "baserom.nds", 0x10900, 0x1A8 + .incbin "baserom.nds", 0x10AA8, 0x1A8 + .incbin "baserom.nds", 0x10C50, 0x1A8 + .incbin "baserom.nds", 0x10DF8, 0x1A8 + .incbin "baserom.nds", 0x10FA0, 0x1A8 + .incbin "baserom.nds", 0x11148, 0x1A8 + .incbin "baserom.nds", 0x112F0, 0x1A8 + .incbin "baserom.nds", 0x11498, 0x1A8 + .incbin "baserom.nds", 0x11640, 0x1A8 + .incbin "baserom.nds", 0x117E8, 0x1A8 + .incbin "baserom.nds", 0x11990, 0x1A8 + .incbin "baserom.nds", 0x11B38, 0x1A8 + .incbin "baserom.nds", 0x11CE0, 0x1A8 + .incbin "baserom.nds", 0x11E88, 0x1A8 + .incbin "baserom.nds", 0x12030, 0x1A8 + .incbin "baserom.nds", 0x121D8, 0x1A8 + .incbin "baserom.nds", 0x12380, 0x1A8 + .incbin "baserom.nds", 0x12528, 0x1A8 + .incbin "baserom.nds", 0x126D0, 0x1A8 + .incbin "baserom.nds", 0x12878, 0x1A8 + .incbin "baserom.nds", 0x12A20, 0x1A8 + .incbin "baserom.nds", 0x12BC8, 0x1A8 + .incbin "baserom.nds", 0x12D70, 0x1A8 + .balign 4, 255 diff --git a/narc/encountdata/p_enc_data.narc.s b/narc/encountdata/p_enc_data.narc.s new file mode 100644 index 00000000..87f1ec7b --- /dev/null +++ b/narc/encountdata/p_enc_data.narc.s @@ -0,0 +1,392 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00013504 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000005C4 ; chunk size + .short 183 ; number of files + .balign 4 + .word 0x00000000, 0x000001A8 + .word 0x000001A8, 0x00000350 + .word 0x00000350, 0x000004F8 + .word 0x000004F8, 0x000006A0 + .word 0x000006A0, 0x00000848 + .word 0x00000848, 0x000009F0 + .word 0x000009F0, 0x00000B98 + .word 0x00000B98, 0x00000D40 + .word 0x00000D40, 0x00000EE8 + .word 0x00000EE8, 0x00001090 + .word 0x00001090, 0x00001238 + .word 0x00001238, 0x000013E0 + .word 0x000013E0, 0x00001588 + .word 0x00001588, 0x00001730 + .word 0x00001730, 0x000018D8 + .word 0x000018D8, 0x00001A80 + .word 0x00001A80, 0x00001C28 + .word 0x00001C28, 0x00001DD0 + .word 0x00001DD0, 0x00001F78 + .word 0x00001F78, 0x00002120 + .word 0x00002120, 0x000022C8 + .word 0x000022C8, 0x00002470 + .word 0x00002470, 0x00002618 + .word 0x00002618, 0x000027C0 + .word 0x000027C0, 0x00002968 + .word 0x00002968, 0x00002B10 + .word 0x00002B10, 0x00002CB8 + .word 0x00002CB8, 0x00002E60 + .word 0x00002E60, 0x00003008 + .word 0x00003008, 0x000031B0 + .word 0x000031B0, 0x00003358 + .word 0x00003358, 0x00003500 + .word 0x00003500, 0x000036A8 + .word 0x000036A8, 0x00003850 + .word 0x00003850, 0x000039F8 + .word 0x000039F8, 0x00003BA0 + .word 0x00003BA0, 0x00003D48 + .word 0x00003D48, 0x00003EF0 + .word 0x00003EF0, 0x00004098 + .word 0x00004098, 0x00004240 + .word 0x00004240, 0x000043E8 + .word 0x000043E8, 0x00004590 + .word 0x00004590, 0x00004738 + .word 0x00004738, 0x000048E0 + .word 0x000048E0, 0x00004A88 + .word 0x00004A88, 0x00004C30 + .word 0x00004C30, 0x00004DD8 + .word 0x00004DD8, 0x00004F80 + .word 0x00004F80, 0x00005128 + .word 0x00005128, 0x000052D0 + .word 0x000052D0, 0x00005478 + .word 0x00005478, 0x00005620 + .word 0x00005620, 0x000057C8 + .word 0x000057C8, 0x00005970 + .word 0x00005970, 0x00005B18 + .word 0x00005B18, 0x00005CC0 + .word 0x00005CC0, 0x00005E68 + .word 0x00005E68, 0x00006010 + .word 0x00006010, 0x000061B8 + .word 0x000061B8, 0x00006360 + .word 0x00006360, 0x00006508 + .word 0x00006508, 0x000066B0 + .word 0x000066B0, 0x00006858 + .word 0x00006858, 0x00006A00 + .word 0x00006A00, 0x00006BA8 + .word 0x00006BA8, 0x00006D50 + .word 0x00006D50, 0x00006EF8 + .word 0x00006EF8, 0x000070A0 + .word 0x000070A0, 0x00007248 + .word 0x00007248, 0x000073F0 + .word 0x000073F0, 0x00007598 + .word 0x00007598, 0x00007740 + .word 0x00007740, 0x000078E8 + .word 0x000078E8, 0x00007A90 + .word 0x00007A90, 0x00007C38 + .word 0x00007C38, 0x00007DE0 + .word 0x00007DE0, 0x00007F88 + .word 0x00007F88, 0x00008130 + .word 0x00008130, 0x000082D8 + .word 0x000082D8, 0x00008480 + .word 0x00008480, 0x00008628 + .word 0x00008628, 0x000087D0 + .word 0x000087D0, 0x00008978 + .word 0x00008978, 0x00008B20 + .word 0x00008B20, 0x00008CC8 + .word 0x00008CC8, 0x00008E70 + .word 0x00008E70, 0x00009018 + .word 0x00009018, 0x000091C0 + .word 0x000091C0, 0x00009368 + .word 0x00009368, 0x00009510 + .word 0x00009510, 0x000096B8 + .word 0x000096B8, 0x00009860 + .word 0x00009860, 0x00009A08 + .word 0x00009A08, 0x00009BB0 + .word 0x00009BB0, 0x00009D58 + .word 0x00009D58, 0x00009F00 + .word 0x00009F00, 0x0000A0A8 + .word 0x0000A0A8, 0x0000A250 + .word 0x0000A250, 0x0000A3F8 + .word 0x0000A3F8, 0x0000A5A0 + .word 0x0000A5A0, 0x0000A748 + .word 0x0000A748, 0x0000A8F0 + .word 0x0000A8F0, 0x0000AA98 + .word 0x0000AA98, 0x0000AC40 + .word 0x0000AC40, 0x0000ADE8 + .word 0x0000ADE8, 0x0000AF90 + .word 0x0000AF90, 0x0000B138 + .word 0x0000B138, 0x0000B2E0 + .word 0x0000B2E0, 0x0000B488 + .word 0x0000B488, 0x0000B630 + .word 0x0000B630, 0x0000B7D8 + .word 0x0000B7D8, 0x0000B980 + .word 0x0000B980, 0x0000BB28 + .word 0x0000BB28, 0x0000BCD0 + .word 0x0000BCD0, 0x0000BE78 + .word 0x0000BE78, 0x0000C020 + .word 0x0000C020, 0x0000C1C8 + .word 0x0000C1C8, 0x0000C370 + .word 0x0000C370, 0x0000C518 + .word 0x0000C518, 0x0000C6C0 + .word 0x0000C6C0, 0x0000C868 + .word 0x0000C868, 0x0000CA10 + .word 0x0000CA10, 0x0000CBB8 + .word 0x0000CBB8, 0x0000CD60 + .word 0x0000CD60, 0x0000CF08 + .word 0x0000CF08, 0x0000D0B0 + .word 0x0000D0B0, 0x0000D258 + .word 0x0000D258, 0x0000D400 + .word 0x0000D400, 0x0000D5A8 + .word 0x0000D5A8, 0x0000D750 + .word 0x0000D750, 0x0000D8F8 + .word 0x0000D8F8, 0x0000DAA0 + .word 0x0000DAA0, 0x0000DC48 + .word 0x0000DC48, 0x0000DDF0 + .word 0x0000DDF0, 0x0000DF98 + .word 0x0000DF98, 0x0000E140 + .word 0x0000E140, 0x0000E2E8 + .word 0x0000E2E8, 0x0000E490 + .word 0x0000E490, 0x0000E638 + .word 0x0000E638, 0x0000E7E0 + .word 0x0000E7E0, 0x0000E988 + .word 0x0000E988, 0x0000EB30 + .word 0x0000EB30, 0x0000ECD8 + .word 0x0000ECD8, 0x0000EE80 + .word 0x0000EE80, 0x0000F028 + .word 0x0000F028, 0x0000F1D0 + .word 0x0000F1D0, 0x0000F378 + .word 0x0000F378, 0x0000F520 + .word 0x0000F520, 0x0000F6C8 + .word 0x0000F6C8, 0x0000F870 + .word 0x0000F870, 0x0000FA18 + .word 0x0000FA18, 0x0000FBC0 + .word 0x0000FBC0, 0x0000FD68 + .word 0x0000FD68, 0x0000FF10 + .word 0x0000FF10, 0x000100B8 + .word 0x000100B8, 0x00010260 + .word 0x00010260, 0x00010408 + .word 0x00010408, 0x000105B0 + .word 0x000105B0, 0x00010758 + .word 0x00010758, 0x00010900 + .word 0x00010900, 0x00010AA8 + .word 0x00010AA8, 0x00010C50 + .word 0x00010C50, 0x00010DF8 + .word 0x00010DF8, 0x00010FA0 + .word 0x00010FA0, 0x00011148 + .word 0x00011148, 0x000112F0 + .word 0x000112F0, 0x00011498 + .word 0x00011498, 0x00011640 + .word 0x00011640, 0x000117E8 + .word 0x000117E8, 0x00011990 + .word 0x00011990, 0x00011B38 + .word 0x00011B38, 0x00011CE0 + .word 0x00011CE0, 0x00011E88 + .word 0x00011E88, 0x00012030 + .word 0x00012030, 0x000121D8 + .word 0x000121D8, 0x00012380 + .word 0x00012380, 0x00012528 + .word 0x00012528, 0x000126D0 + .word 0x000126D0, 0x00012878 + .word 0x00012878, 0x00012A20 + .word 0x00012A20, 0x00012BC8 + .word 0x00012BC8, 0x00012D70 + .word 0x00012D70, 0x00012F18 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00012F20 ; chunk size + .incbin "baserom.nds", 0x0, 0x1A8 + .incbin "baserom.nds", 0x1A8, 0x1A8 + .incbin "baserom.nds", 0x350, 0x1A8 + .incbin "baserom.nds", 0x4F8, 0x1A8 + .incbin "baserom.nds", 0x6A0, 0x1A8 + .incbin "baserom.nds", 0x848, 0x1A8 + .incbin "baserom.nds", 0x9F0, 0x1A8 + .incbin "baserom.nds", 0xB98, 0x1A8 + .incbin "baserom.nds", 0xD40, 0x1A8 + .incbin "baserom.nds", 0xEE8, 0x1A8 + .incbin "baserom.nds", 0x1090, 0x1A8 + .incbin "baserom.nds", 0x1238, 0x1A8 + .incbin "baserom.nds", 0x13E0, 0x1A8 + .incbin "baserom.nds", 0x1588, 0x1A8 + .incbin "baserom.nds", 0x1730, 0x1A8 + .incbin "baserom.nds", 0x18D8, 0x1A8 + .incbin "baserom.nds", 0x1A80, 0x1A8 + .incbin "baserom.nds", 0x1C28, 0x1A8 + .incbin "baserom.nds", 0x1DD0, 0x1A8 + .incbin "baserom.nds", 0x1F78, 0x1A8 + .incbin "baserom.nds", 0x2120, 0x1A8 + .incbin "baserom.nds", 0x22C8, 0x1A8 + .incbin "baserom.nds", 0x2470, 0x1A8 + .incbin "baserom.nds", 0x2618, 0x1A8 + .incbin "baserom.nds", 0x27C0, 0x1A8 + .incbin "baserom.nds", 0x2968, 0x1A8 + .incbin "baserom.nds", 0x2B10, 0x1A8 + .incbin "baserom.nds", 0x2CB8, 0x1A8 + .incbin "baserom.nds", 0x2E60, 0x1A8 + .incbin "baserom.nds", 0x3008, 0x1A8 + .incbin "baserom.nds", 0x31B0, 0x1A8 + .incbin "baserom.nds", 0x3358, 0x1A8 + .incbin "baserom.nds", 0x3500, 0x1A8 + .incbin "baserom.nds", 0x36A8, 0x1A8 + .incbin "baserom.nds", 0x3850, 0x1A8 + .incbin "baserom.nds", 0x39F8, 0x1A8 + .incbin "baserom.nds", 0x3BA0, 0x1A8 + .incbin "baserom.nds", 0x3D48, 0x1A8 + .incbin "baserom.nds", 0x3EF0, 0x1A8 + .incbin "baserom.nds", 0x4098, 0x1A8 + .incbin "baserom.nds", 0x4240, 0x1A8 + .incbin "baserom.nds", 0x43E8, 0x1A8 + .incbin "baserom.nds", 0x4590, 0x1A8 + .incbin "baserom.nds", 0x4738, 0x1A8 + .incbin "baserom.nds", 0x48E0, 0x1A8 + .incbin "baserom.nds", 0x4A88, 0x1A8 + .incbin "baserom.nds", 0x4C30, 0x1A8 + .incbin "baserom.nds", 0x4DD8, 0x1A8 + .incbin "baserom.nds", 0x4F80, 0x1A8 + .incbin "baserom.nds", 0x5128, 0x1A8 + .incbin "baserom.nds", 0x52D0, 0x1A8 + .incbin "baserom.nds", 0x5478, 0x1A8 + .incbin "baserom.nds", 0x5620, 0x1A8 + .incbin "baserom.nds", 0x57C8, 0x1A8 + .incbin "baserom.nds", 0x5970, 0x1A8 + .incbin "baserom.nds", 0x5B18, 0x1A8 + .incbin "baserom.nds", 0x5CC0, 0x1A8 + .incbin "baserom.nds", 0x5E68, 0x1A8 + .incbin "baserom.nds", 0x6010, 0x1A8 + .incbin "baserom.nds", 0x61B8, 0x1A8 + .incbin "baserom.nds", 0x6360, 0x1A8 + .incbin "baserom.nds", 0x6508, 0x1A8 + .incbin "baserom.nds", 0x66B0, 0x1A8 + .incbin "baserom.nds", 0x6858, 0x1A8 + .incbin "baserom.nds", 0x6A00, 0x1A8 + .incbin "baserom.nds", 0x6BA8, 0x1A8 + .incbin "baserom.nds", 0x6D50, 0x1A8 + .incbin "baserom.nds", 0x6EF8, 0x1A8 + .incbin "baserom.nds", 0x70A0, 0x1A8 + .incbin "baserom.nds", 0x7248, 0x1A8 + .incbin "baserom.nds", 0x73F0, 0x1A8 + .incbin "baserom.nds", 0x7598, 0x1A8 + .incbin "baserom.nds", 0x7740, 0x1A8 + .incbin "baserom.nds", 0x78E8, 0x1A8 + .incbin "baserom.nds", 0x7A90, 0x1A8 + .incbin "baserom.nds", 0x7C38, 0x1A8 + .incbin "baserom.nds", 0x7DE0, 0x1A8 + .incbin "baserom.nds", 0x7F88, 0x1A8 + .incbin "baserom.nds", 0x8130, 0x1A8 + .incbin "baserom.nds", 0x82D8, 0x1A8 + .incbin "baserom.nds", 0x8480, 0x1A8 + .incbin "baserom.nds", 0x8628, 0x1A8 + .incbin "baserom.nds", 0x87D0, 0x1A8 + .incbin "baserom.nds", 0x8978, 0x1A8 + .incbin "baserom.nds", 0x8B20, 0x1A8 + .incbin "baserom.nds", 0x8CC8, 0x1A8 + .incbin "baserom.nds", 0x8E70, 0x1A8 + .incbin "baserom.nds", 0x9018, 0x1A8 + .incbin "baserom.nds", 0x91C0, 0x1A8 + .incbin "baserom.nds", 0x9368, 0x1A8 + .incbin "baserom.nds", 0x9510, 0x1A8 + .incbin "baserom.nds", 0x96B8, 0x1A8 + .incbin "baserom.nds", 0x9860, 0x1A8 + .incbin "baserom.nds", 0x9A08, 0x1A8 + .incbin "baserom.nds", 0x9BB0, 0x1A8 + .incbin "baserom.nds", 0x9D58, 0x1A8 + .incbin "baserom.nds", 0x9F00, 0x1A8 + .incbin "baserom.nds", 0xA0A8, 0x1A8 + .incbin "baserom.nds", 0xA250, 0x1A8 + .incbin "baserom.nds", 0xA3F8, 0x1A8 + .incbin "baserom.nds", 0xA5A0, 0x1A8 + .incbin "baserom.nds", 0xA748, 0x1A8 + .incbin "baserom.nds", 0xA8F0, 0x1A8 + .incbin "baserom.nds", 0xAA98, 0x1A8 + .incbin "baserom.nds", 0xAC40, 0x1A8 + .incbin "baserom.nds", 0xADE8, 0x1A8 + .incbin "baserom.nds", 0xAF90, 0x1A8 + .incbin "baserom.nds", 0xB138, 0x1A8 + .incbin "baserom.nds", 0xB2E0, 0x1A8 + .incbin "baserom.nds", 0xB488, 0x1A8 + .incbin "baserom.nds", 0xB630, 0x1A8 + .incbin "baserom.nds", 0xB7D8, 0x1A8 + .incbin "baserom.nds", 0xB980, 0x1A8 + .incbin "baserom.nds", 0xBB28, 0x1A8 + .incbin "baserom.nds", 0xBCD0, 0x1A8 + .incbin "baserom.nds", 0xBE78, 0x1A8 + .incbin "baserom.nds", 0xC020, 0x1A8 + .incbin "baserom.nds", 0xC1C8, 0x1A8 + .incbin "baserom.nds", 0xC370, 0x1A8 + .incbin "baserom.nds", 0xC518, 0x1A8 + .incbin "baserom.nds", 0xC6C0, 0x1A8 + .incbin "baserom.nds", 0xC868, 0x1A8 + .incbin "baserom.nds", 0xCA10, 0x1A8 + .incbin "baserom.nds", 0xCBB8, 0x1A8 + .incbin "baserom.nds", 0xCD60, 0x1A8 + .incbin "baserom.nds", 0xCF08, 0x1A8 + .incbin "baserom.nds", 0xD0B0, 0x1A8 + .incbin "baserom.nds", 0xD258, 0x1A8 + .incbin "baserom.nds", 0xD400, 0x1A8 + .incbin "baserom.nds", 0xD5A8, 0x1A8 + .incbin "baserom.nds", 0xD750, 0x1A8 + .incbin "baserom.nds", 0xD8F8, 0x1A8 + .incbin "baserom.nds", 0xDAA0, 0x1A8 + .incbin "baserom.nds", 0xDC48, 0x1A8 + .incbin "baserom.nds", 0xDDF0, 0x1A8 + .incbin "baserom.nds", 0xDF98, 0x1A8 + .incbin "baserom.nds", 0xE140, 0x1A8 + .incbin "baserom.nds", 0xE2E8, 0x1A8 + .incbin "baserom.nds", 0xE490, 0x1A8 + .incbin "baserom.nds", 0xE638, 0x1A8 + .incbin "baserom.nds", 0xE7E0, 0x1A8 + .incbin "baserom.nds", 0xE988, 0x1A8 + .incbin "baserom.nds", 0xEB30, 0x1A8 + .incbin "baserom.nds", 0xECD8, 0x1A8 + .incbin "baserom.nds", 0xEE80, 0x1A8 + .incbin "baserom.nds", 0xF028, 0x1A8 + .incbin "baserom.nds", 0xF1D0, 0x1A8 + .incbin "baserom.nds", 0xF378, 0x1A8 + .incbin "baserom.nds", 0xF520, 0x1A8 + .incbin "baserom.nds", 0xF6C8, 0x1A8 + .incbin "baserom.nds", 0xF870, 0x1A8 + .incbin "baserom.nds", 0xFA18, 0x1A8 + .incbin "baserom.nds", 0xFBC0, 0x1A8 + .incbin "baserom.nds", 0xFD68, 0x1A8 + .incbin "baserom.nds", 0xFF10, 0x1A8 + .incbin "baserom.nds", 0x100B8, 0x1A8 + .incbin "baserom.nds", 0x10260, 0x1A8 + .incbin "baserom.nds", 0x10408, 0x1A8 + .incbin "baserom.nds", 0x105B0, 0x1A8 + .incbin "baserom.nds", 0x10758, 0x1A8 + .incbin "baserom.nds", 0x10900, 0x1A8 + .incbin "baserom.nds", 0x10AA8, 0x1A8 + .incbin "baserom.nds", 0x10C50, 0x1A8 + .incbin "baserom.nds", 0x10DF8, 0x1A8 + .incbin "baserom.nds", 0x10FA0, 0x1A8 + .incbin "baserom.nds", 0x11148, 0x1A8 + .incbin "baserom.nds", 0x112F0, 0x1A8 + .incbin "baserom.nds", 0x11498, 0x1A8 + .incbin "baserom.nds", 0x11640, 0x1A8 + .incbin "baserom.nds", 0x117E8, 0x1A8 + .incbin "baserom.nds", 0x11990, 0x1A8 + .incbin "baserom.nds", 0x11B38, 0x1A8 + .incbin "baserom.nds", 0x11CE0, 0x1A8 + .incbin "baserom.nds", 0x11E88, 0x1A8 + .incbin "baserom.nds", 0x12030, 0x1A8 + .incbin "baserom.nds", 0x121D8, 0x1A8 + .incbin "baserom.nds", 0x12380, 0x1A8 + .incbin "baserom.nds", 0x12528, 0x1A8 + .incbin "baserom.nds", 0x126D0, 0x1A8 + .incbin "baserom.nds", 0x12878, 0x1A8 + .incbin "baserom.nds", 0x12A20, 0x1A8 + .incbin "baserom.nds", 0x12BC8, 0x1A8 + .incbin "baserom.nds", 0x12D70, 0x1A8 + .balign 4, 255 diff --git a/narc/eventdata/zone_event_release.narc.s b/narc/eventdata/zone_event_release.narc.s new file mode 100644 index 00000000..0815a307 --- /dev/null +++ b/narc/eventdata/zone_event_release.narc.s @@ -0,0 +1,1050 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x000222F4 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000100C ; chunk size + .short 512 ; number of files + .balign 4 + .word 0x00000000, 0x00000010 + .word 0x00000010, 0x000002C0 + .word 0x000002C0, 0x000007DC + .word 0x000007DC, 0x00000898 + .word 0x00000898, 0x000008B4 + .word 0x000008B4, 0x00000988 + .word 0x00000988, 0x00000A10 + .word 0x00000A10, 0x00000AC4 + .word 0x00000AC4, 0x00000B6C + .word 0x00000B6C, 0x00000C38 + .word 0x00000C38, 0x00000E0C + .word 0x00000E0C, 0x00000EAC + .word 0x00000EAC, 0x00000F78 + .word 0x00000F78, 0x00000FE0 + .word 0x00000FE0, 0x00001138 + .word 0x00001138, 0x00001210 + .word 0x00001210, 0x000012C8 + .word 0x000012C8, 0x00001318 + .word 0x00001318, 0x00001380 + .word 0x00001380, 0x000013E8 + .word 0x000013E8, 0x00001430 + .word 0x00001430, 0x0000144C + .word 0x0000144C, 0x00001468 + .word 0x00001468, 0x00001510 + .word 0x00001510, 0x00001578 + .word 0x00001578, 0x000015E0 + .word 0x000015E0, 0x0000161C + .word 0x0000161C, 0x00001740 + .word 0x00001740, 0x00001884 + .word 0x00001884, 0x0000190C + .word 0x0000190C, 0x00001928 + .word 0x00001928, 0x00001944 + .word 0x00001944, 0x00001C50 + .word 0x00001C50, 0x00001D0C + .word 0x00001D0C, 0x00001E70 + .word 0x00001E70, 0x00001F04 + .word 0x00001F04, 0x00001F8C + .word 0x00001F8C, 0x00002198 + .word 0x00002198, 0x0000249C + .word 0x0000249C, 0x00002710 + .word 0x00002710, 0x0000276C + .word 0x0000276C, 0x000027A8 + .word 0x000027A8, 0x000027E4 + .word 0x000027E4, 0x00002860 + .word 0x00002860, 0x00002C6C + .word 0x00002C6C, 0x00002D28 + .word 0x00002D28, 0x00002DEC + .word 0x00002DEC, 0x00002EA0 + .word 0x00002EA0, 0x00002F28 + .word 0x00002F28, 0x00002FB0 + .word 0x00002FB0, 0x00003058 + .word 0x00003058, 0x000030C0 + .word 0x000030C0, 0x0000313C + .word 0x0000313C, 0x000031A4 + .word 0x000031A4, 0x0000322C + .word 0x0000322C, 0x000032B4 + .word 0x000032B4, 0x000032F0 + .word 0x000032F0, 0x0000334C + .word 0x0000334C, 0x00003688 + .word 0x00003688, 0x00003704 + .word 0x00003704, 0x0000378C + .word 0x0000378C, 0x00003814 + .word 0x00003814, 0x00003870 + .word 0x00003870, 0x000038AC + .word 0x000038AC, 0x00003DC0 + .word 0x00003DC0, 0x00003E7C + .word 0x00003E7C, 0x00003F0C + .word 0x00003F0C, 0x00003FC8 + .word 0x00003FC8, 0x0000409C + .word 0x0000409C, 0x00004144 + .word 0x00004144, 0x00004210 + .word 0x00004210, 0x000042B8 + .word 0x000042B8, 0x00004360 + .word 0x00004360, 0x000043E8 + .word 0x000043E8, 0x00004484 + .word 0x00004484, 0x0000450C + .word 0x0000450C, 0x00004574 + .word 0x00004574, 0x0000461C + .word 0x0000461C, 0x00004658 + .word 0x00004658, 0x000046F0 + .word 0x000046F0, 0x0000476C + .word 0x0000476C, 0x000047A8 + .word 0x000047A8, 0x00004804 + .word 0x00004804, 0x000048A8 + .word 0x000048A8, 0x000048B8 + .word 0x000048B8, 0x00004E7C + .word 0x00004E7C, 0x00004F38 + .word 0x00004F38, 0x00004FE4 + .word 0x00004FE4, 0x00005020 + .word 0x00005020, 0x0000505C + .word 0x0000505C, 0x000050D4 + .word 0x000050D4, 0x00005110 + .word 0x00005110, 0x00005188 + .word 0x00005188, 0x000051C4 + .word 0x000051C4, 0x0000523C + .word 0x0000523C, 0x00005278 + .word 0x00005278, 0x000052B4 + .word 0x000052B4, 0x000052F0 + .word 0x000052F0, 0x0000532C + .word 0x0000532C, 0x00005368 + .word 0x00005368, 0x0000541C + .word 0x0000541C, 0x000054A4 + .word 0x000054A4, 0x0000550C + .word 0x0000550C, 0x00005568 + .word 0x00005568, 0x00005598 + .word 0x00005598, 0x00005674 + .word 0x00005674, 0x0000571C + .word 0x0000571C, 0x000057A4 + .word 0x000057A4, 0x0000582C + .word 0x0000582C, 0x00005874 + .word 0x00005874, 0x0000591C + .word 0x0000591C, 0x00005A44 + .word 0x00005A44, 0x00005AE0 + .word 0x00005AE0, 0x00005B10 + .word 0x00005B10, 0x00005B4C + .word 0x00005B4C, 0x00005C08 + .word 0x00005C08, 0x00005E18 + .word 0x00005E18, 0x00006208 + .word 0x00006208, 0x000062E4 + .word 0x000062E4, 0x000066F8 + .word 0x000066F8, 0x000067C8 + .word 0x000067C8, 0x000069AC + .word 0x000069AC, 0x00006A40 + .word 0x00006A40, 0x00006AE8 + .word 0x00006AE8, 0x00006B6C + .word 0x00006B6C, 0x00006C44 + .word 0x00006C44, 0x00006CA0 + .word 0x00006CA0, 0x00006CFC + .word 0x00006CFC, 0x00006D38 + .word 0x00006D38, 0x00006D94 + .word 0x00006D94, 0x00006E10 + .word 0x00006E10, 0x000072C4 + .word 0x000072C4, 0x000073C8 + .word 0x000073C8, 0x0000745C + .word 0x0000745C, 0x000074E4 + .word 0x000074E4, 0x00007704 + .word 0x00007704, 0x00007820 + .word 0x00007820, 0x00007928 + .word 0x00007928, 0x00007A10 + .word 0x00007A10, 0x00007AF8 + .word 0x00007AF8, 0x00007BDC + .word 0x00007BDC, 0x00007C18 + .word 0x00007C18, 0x00007CE0 + .word 0x00007CE0, 0x00007D5C + .word 0x00007D5C, 0x00007DB8 + .word 0x00007DB8, 0x00007E34 + .word 0x00007E34, 0x00007E90 + .word 0x00007E90, 0x00007F0C + .word 0x00007F0C, 0x00007F54 + .word 0x00007F54, 0x000082C4 + .word 0x000082C4, 0x00008378 + .word 0x00008378, 0x00008400 + .word 0x00008400, 0x000084BC + .word 0x000084BC, 0x0000856C + .word 0x0000856C, 0x00008624 + .word 0x00008624, 0x00008720 + .word 0x00008720, 0x000087BC + .word 0x000087BC, 0x000087F8 + .word 0x000087F8, 0x000088F4 + .word 0x000088F4, 0x00008950 + .word 0x00008950, 0x000089AC + .word 0x000089AC, 0x00008A08 + .word 0x00008A08, 0x00008A44 + .word 0x00008A44, 0x00008AD4 + .word 0x00008AD4, 0x00008C9C + .word 0x00008C9C, 0x00008D58 + .word 0x00008D58, 0x000090DC + .word 0x000090DC, 0x00009190 + .word 0x00009190, 0x00009218 + .word 0x00009218, 0x00009274 + .word 0x00009274, 0x000092B0 + .word 0x000092B0, 0x000093E4 + .word 0x000093E4, 0x00009478 + .word 0x00009478, 0x00009500 + .word 0x00009500, 0x00009610 + .word 0x00009610, 0x00009648 + .word 0x00009648, 0x000096D0 + .word 0x000096D0, 0x00009708 + .word 0x00009708, 0x00009790 + .word 0x00009790, 0x000097C8 + .word 0x000097C8, 0x00009850 + .word 0x00009850, 0x00009888 + .word 0x00009888, 0x00009910 + .word 0x00009910, 0x00009948 + .word 0x00009948, 0x00009990 + .word 0x00009990, 0x000099F8 + .word 0x000099F8, 0x00009A54 + .word 0x00009A54, 0x00009DC4 + .word 0x00009DC4, 0x00009E78 + .word 0x00009E78, 0x00009F00 + .word 0x00009F00, 0x00009F9C + .word 0x00009F9C, 0x0000A084 + .word 0x0000A084, 0x0000A0EC + .word 0x0000A0EC, 0x0000A148 + .word 0x0000A148, 0x0000A1C4 + .word 0x0000A1C4, 0x0000A1D4 + .word 0x0000A1D4, 0x0000A28C + .word 0x0000A28C, 0x0000A408 + .word 0x0000A408, 0x0000A50C + .word 0x0000A50C, 0x0000A618 + .word 0x0000A618, 0x0000A788 + .word 0x0000A788, 0x0000AB38 + .word 0x0000AB38, 0x0000AC34 + .word 0x0000AC34, 0x0000AD78 + .word 0x0000AD78, 0x0000AEB0 + .word 0x0000AEB0, 0x0000AFD0 + .word 0x0000AFD0, 0x0000B058 + .word 0x0000B058, 0x0000B1D0 + .word 0x0000B1D0, 0x0000B354 + .word 0x0000B354, 0x0000B52C + .word 0x0000B52C, 0x0000B568 + .word 0x0000B568, 0x0000B5F8 + .word 0x0000B5F8, 0x0000B640 + .word 0x0000B640, 0x0000B900 + .word 0x0000B900, 0x0000B93C + .word 0x0000B93C, 0x0000BBE0 + .word 0x0000BBE0, 0x0000BF58 + .word 0x0000BF58, 0x0000C1B4 + .word 0x0000C1B4, 0x0000C1C4 + .word 0x0000C1C4, 0x0000C228 + .word 0x0000C228, 0x0000C2A4 + .word 0x0000C2A4, 0x0000C2C0 + .word 0x0000C2C0, 0x0000C2F0 + .word 0x0000C2F0, 0x0000C350 + .word 0x0000C350, 0x0000C36C + .word 0x0000C36C, 0x0000C3CC + .word 0x0000C3CC, 0x0000C3E8 + .word 0x0000C3E8, 0x0000C404 + .word 0x0000C404, 0x0000C420 + .word 0x0000C420, 0x0000C43C + .word 0x0000C43C, 0x0000C46C + .word 0x0000C46C, 0x0000C4A0 + .word 0x0000C4A0, 0x0000C4E0 + .word 0x0000C4E0, 0x0000C520 + .word 0x0000C520, 0x0000C5F8 + .word 0x0000C5F8, 0x0000C614 + .word 0x0000C614, 0x0000C630 + .word 0x0000C630, 0x0000C868 + .word 0x0000C868, 0x0000CCC4 + .word 0x0000CCC4, 0x0000CDE0 + .word 0x0000CDE0, 0x0000D23C + .word 0x0000D23C, 0x0000D264 + .word 0x0000D264, 0x0000D28C + .word 0x0000D28C, 0x0000D29C + .word 0x0000D29C, 0x0000D2F4 + .word 0x0000D2F4, 0x0000D694 + .word 0x0000D694, 0x0000DA9C + .word 0x0000DA9C, 0x0000DAAC + .word 0x0000DAAC, 0x0000DCA4 + .word 0x0000DCA4, 0x0000DD00 + .word 0x0000DD00, 0x0000DEA4 + .word 0x0000DEA4, 0x0000E0E0 + .word 0x0000E0E0, 0x0000E188 + .word 0x0000E188, 0x0000E1F0 + .word 0x0000E1F0, 0x0000E28C + .word 0x0000E28C, 0x0000E4A8 + .word 0x0000E4A8, 0x0000E958 + .word 0x0000E958, 0x0000EA04 + .word 0x0000EA04, 0x0000EA38 + .word 0x0000EA38, 0x0000EAC0 + .word 0x0000EAC0, 0x0000EB3C + .word 0x0000EB3C, 0x0000EBF8 + .word 0x0000EBF8, 0x0000ED98 + .word 0x0000ED98, 0x0000EF38 + .word 0x0000EF38, 0x0000F118 + .word 0x0000F118, 0x0000F148 + .word 0x0000F148, 0x0000F170 + .word 0x0000F170, 0x0000F1B8 + .word 0x0000F1B8, 0x0000F220 + .word 0x0000F220, 0x0000F25C + .word 0x0000F25C, 0x0000F2C4 + .word 0x0000F2C4, 0x0000F300 + .word 0x0000F300, 0x0000F7A8 + .word 0x0000F7A8, 0x0000F858 + .word 0x0000F858, 0x0000F8B4 + .word 0x0000F8B4, 0x0000F8DC + .word 0x0000F8DC, 0x0000F944 + .word 0x0000F944, 0x0000F978 + .word 0x0000F978, 0x0000F9D4 + .word 0x0000F9D4, 0x0000FA8C + .word 0x0000FA8C, 0x0000FB3C + .word 0x0000FB3C, 0x0000FDC0 + .word 0x0000FDC0, 0x0000FE18 + .word 0x0000FE18, 0x0000FE78 + .word 0x0000FE78, 0x0000FEC8 + .word 0x0000FEC8, 0x0000FF10 + .word 0x0000FF10, 0x0000FF68 + .word 0x0000FF68, 0x0000FFA4 + .word 0x0000FFA4, 0x00010008 + .word 0x00010008, 0x00010024 + .word 0x00010024, 0x00010080 + .word 0x00010080, 0x000100BC + .word 0x000100BC, 0x000102E8 + .word 0x000102E8, 0x0001053C + .word 0x0001053C, 0x00010728 + .word 0x00010728, 0x00010848 + .word 0x00010848, 0x00010890 + .word 0x00010890, 0x000109E4 + .word 0x000109E4, 0x00010AEC + .word 0x00010AEC, 0x00010C40 + .word 0x00010C40, 0x00010C9C + .word 0x00010C9C, 0x000110A4 + .word 0x000110A4, 0x00011110 + .word 0x00011110, 0x00011178 + .word 0x00011178, 0x000111E0 + .word 0x000111E0, 0x0001128C + .word 0x0001128C, 0x000112C8 + .word 0x000112C8, 0x00011370 + .word 0x00011370, 0x000113B8 + .word 0x000113B8, 0x000115E0 + .word 0x000115E0, 0x00011728 + .word 0x00011728, 0x00011954 + .word 0x00011954, 0x00011984 + .word 0x00011984, 0x000119B4 + .word 0x000119B4, 0x00011A44 + .word 0x00011A44, 0x00011AB4 + .word 0x00011AB4, 0x00011B84 + .word 0x00011B84, 0x00011BC4 + .word 0x00011BC4, 0x00011C04 + .word 0x00011C04, 0x00011CB8 + .word 0x00011CB8, 0x00011CC8 + .word 0x00011CC8, 0x00011ECC + .word 0x00011ECC, 0x00012148 + .word 0x00012148, 0x00012184 + .word 0x00012184, 0x000121C0 + .word 0x000121C0, 0x00012280 + .word 0x00012280, 0x000122A8 + .word 0x000122A8, 0x00012468 + .word 0x00012468, 0x000125BC + .word 0x000125BC, 0x000127C8 + .word 0x000127C8, 0x00012924 + .word 0x00012924, 0x00012AC0 + .word 0x00012AC0, 0x00012F28 + .word 0x00012F28, 0x00012F84 + .word 0x00012F84, 0x00013140 + .word 0x00013140, 0x00013500 + .word 0x00013500, 0x000135C8 + .word 0x000135C8, 0x000135F0 + .word 0x000135F0, 0x000139B8 + .word 0x000139B8, 0x00013D20 + .word 0x00013D20, 0x00013D9C + .word 0x00013D9C, 0x00014270 + .word 0x00014270, 0x00014298 + .word 0x00014298, 0x00014314 + .word 0x00014314, 0x0001439C + .word 0x0001439C, 0x00014498 + .word 0x00014498, 0x000144F4 + .word 0x000144F4, 0x00014954 + .word 0x00014954, 0x00014C98 + .word 0x00014C98, 0x00014CD4 + .word 0x00014CD4, 0x00014E18 + .word 0x00014E18, 0x000150E8 + .word 0x000150E8, 0x000154C4 + .word 0x000154C4, 0x0001559C + .word 0x0001559C, 0x00015644 + .word 0x00015644, 0x00015718 + .word 0x00015718, 0x00015D14 + .word 0x00015D14, 0x00015D84 + .word 0x00015D84, 0x000162F0 + .word 0x000162F0, 0x00016358 + .word 0x00016358, 0x00016394 + .word 0x00016394, 0x000163FC + .word 0x000163FC, 0x00016438 + .word 0x00016438, 0x000164B4 + .word 0x000164B4, 0x00016524 + .word 0x00016524, 0x0001690C + .word 0x0001690C, 0x00016954 + .word 0x00016954, 0x00016D38 + .word 0x00016D38, 0x00016F54 + .word 0x00016F54, 0x00016FD8 + .word 0x00016FD8, 0x000172A8 + .word 0x000172A8, 0x000172E4 + .word 0x000172E4, 0x00017320 + .word 0x00017320, 0x00017520 + .word 0x00017520, 0x00017588 + .word 0x00017588, 0x00017600 + .word 0x00017600, 0x000176A4 + .word 0x000176A4, 0x0001795C + .word 0x0001795C, 0x00017AA4 + .word 0x00017AA4, 0x00017AF4 + .word 0x00017AF4, 0x00017F44 + .word 0x00017F44, 0x00018040 + .word 0x00018040, 0x0001807C + .word 0x0001807C, 0x000180E4 + .word 0x000180E4, 0x000183C0 + .word 0x000183C0, 0x00018804 + .word 0x00018804, 0x000189FC + .word 0x000189FC, 0x00018E14 + .word 0x00018E14, 0x00019098 + .word 0x00019098, 0x0001920C + .word 0x0001920C, 0x00019254 + .word 0x00019254, 0x000192B8 + .word 0x000192B8, 0x000193D0 + .word 0x000193D0, 0x00019450 + .word 0x00019450, 0x0001948C + .word 0x0001948C, 0x000194E8 + .word 0x000194E8, 0x00019704 + .word 0x00019704, 0x000197A0 + .word 0x000197A0, 0x00019874 + .word 0x00019874, 0x0001991C + .word 0x0001991C, 0x00019A50 + .word 0x00019A50, 0x00019AB8 + .word 0x00019AB8, 0x00019AE8 + .word 0x00019AE8, 0x00019B44 + .word 0x00019B44, 0x00019D70 + .word 0x00019D70, 0x00019E2C + .word 0x00019E2C, 0x00019EE0 + .word 0x00019EE0, 0x00019F68 + .word 0x00019F68, 0x00019FE4 + .word 0x00019FE4, 0x0001A040 + .word 0x0001A040, 0x0001A0BC + .word 0x0001A0BC, 0x0001A38C + .word 0x0001A38C, 0x0001A448 + .word 0x0001A448, 0x0001A4DC + .word 0x0001A4DC, 0x0001A564 + .word 0x0001A564, 0x0001A5D4 + .word 0x0001A5D4, 0x0001A630 + .word 0x0001A630, 0x0001A6A0 + .word 0x0001A6A0, 0x0001A6FC + .word 0x0001A6FC, 0x0001A758 + .word 0x0001A758, 0x0001A998 + .word 0x0001A998, 0x0001AA4C + .word 0x0001AA4C, 0x0001AAD4 + .word 0x0001AAD4, 0x0001AB84 + .word 0x0001AB84, 0x0001AC00 + .word 0x0001AC00, 0x0001AC5C + .word 0x0001AC5C, 0x0001ACB8 + .word 0x0001ACB8, 0x0001AD1C + .word 0x0001AD1C, 0x0001AE7C + .word 0x0001AE7C, 0x0001AF18 + .word 0x0001AF18, 0x0001AFCC + .word 0x0001AFCC, 0x0001B054 + .word 0x0001B054, 0x0001B0B0 + .word 0x0001B0B0, 0x0001B0EC + .word 0x0001B0EC, 0x0001B128 + .word 0x0001B128, 0x0001B310 + .word 0x0001B310, 0x0001B34C + .word 0x0001B34C, 0x0001B3E0 + .word 0x0001B3E0, 0x0001B468 + .word 0x0001B468, 0x0001B550 + .word 0x0001B550, 0x0001B5EC + .word 0x0001B5EC, 0x0001B628 + .word 0x0001B628, 0x0001B6A4 + .word 0x0001B6A4, 0x0001B6E0 + .word 0x0001B6E0, 0x0001BD5C + .word 0x0001BD5C, 0x0001BED4 + .word 0x0001BED4, 0x0001C0F8 + .word 0x0001C0F8, 0x0001C390 + .word 0x0001C390, 0x0001C608 + .word 0x0001C608, 0x0001C618 + .word 0x0001C618, 0x0001C694 + .word 0x0001C694, 0x0001C710 + .word 0x0001C710, 0x0001C7AC + .word 0x0001C7AC, 0x0001C828 + .word 0x0001C828, 0x0001C8A4 + .word 0x0001C8A4, 0x0001C920 + .word 0x0001C920, 0x0001C9BC + .word 0x0001C9BC, 0x0001CA38 + .word 0x0001CA38, 0x0001CAB4 + .word 0x0001CAB4, 0x0001CB30 + .word 0x0001CB30, 0x0001CBAC + .word 0x0001CBAC, 0x0001CC28 + .word 0x0001CC28, 0x0001CCA4 + .word 0x0001CCA4, 0x0001CD20 + .word 0x0001CD20, 0x0001CD9C + .word 0x0001CD9C, 0x0001CE18 + .word 0x0001CE18, 0x0001CE94 + .word 0x0001CE94, 0x0001CED0 + .word 0x0001CED0, 0x0001CFAC + .word 0x0001CFAC, 0x0001D07C + .word 0x0001D07C, 0x0001D178 + .word 0x0001D178, 0x0001D200 + .word 0x0001D200, 0x0001D27C + .word 0x0001D27C, 0x0001D3AC + .word 0x0001D3AC, 0x0001D3E8 + .word 0x0001D3E8, 0x0001D438 + .word 0x0001D438, 0x0001D474 + .word 0x0001D474, 0x0001D4BC + .word 0x0001D4BC, 0x0001D50C + .word 0x0001D50C, 0x0001D598 + .word 0x0001D598, 0x0001D670 + .word 0x0001D670, 0x0001D728 + .word 0x0001D728, 0x0001D800 + .word 0x0001D800, 0x0001D8D8 + .word 0x0001D8D8, 0x0001D990 + .word 0x0001D990, 0x0001DAA0 + .word 0x0001DAA0, 0x0001DAEC + .word 0x0001DAEC, 0x0001DB48 + .word 0x0001DB48, 0x0001DBB0 + .word 0x0001DBB0, 0x0001DBEC + .word 0x0001DBEC, 0x0001DC1C + .word 0x0001DC1C, 0x0001DC38 + .word 0x0001DC38, 0x0001DCD4 + .word 0x0001DCD4, 0x0001DEB4 + .word 0x0001DEB4, 0x0001E094 + .word 0x0001E094, 0x0001E274 + .word 0x0001E274, 0x0001E674 + .word 0x0001E674, 0x0001EA54 + .word 0x0001EA54, 0x0001EE34 + .word 0x0001EE34, 0x0001F214 + .word 0x0001F214, 0x0001F614 + .word 0x0001F614, 0x0001FA14 + .word 0x0001FA14, 0x0001FE14 + .word 0x0001FE14, 0x000201F4 + .word 0x000201F4, 0x000205F4 + .word 0x000205F4, 0x000209F4 + .word 0x000209F4, 0x00020DF4 + .word 0x00020DF4, 0x000211F4 + .word 0x000211F4, 0x00021204 + .word 0x00021204, 0x00021214 + .word 0x00021214, 0x00021224 + .word 0x00021224, 0x000212C0 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000212C8 ; chunk size + .incbin "baserom.nds", 0x0, 0x10 + .incbin "baserom.nds", 0x10, 0x2B0 + .incbin "baserom.nds", 0x2C0, 0x51C + .incbin "baserom.nds", 0x7DC, 0xBC + .incbin "baserom.nds", 0x898, 0x1C + .incbin "baserom.nds", 0x8B4, 0xD4 + .incbin "baserom.nds", 0x988, 0x88 + .incbin "baserom.nds", 0xA10, 0xB4 + .incbin "baserom.nds", 0xAC4, 0xA8 + .incbin "baserom.nds", 0xB6C, 0xCC + .incbin "baserom.nds", 0xC38, 0x1D4 + .incbin "baserom.nds", 0xE0C, 0xA0 + .incbin "baserom.nds", 0xEAC, 0xCC + .incbin "baserom.nds", 0xF78, 0x68 + .incbin "baserom.nds", 0xFE0, 0x158 + .incbin "baserom.nds", 0x1138, 0xD8 + .incbin "baserom.nds", 0x1210, 0xB8 + .incbin "baserom.nds", 0x12C8, 0x50 + .incbin "baserom.nds", 0x1318, 0x68 + .incbin "baserom.nds", 0x1380, 0x68 + .incbin "baserom.nds", 0x13E8, 0x48 + .incbin "baserom.nds", 0x1430, 0x1C + .incbin "baserom.nds", 0x144C, 0x1C + .incbin "baserom.nds", 0x1468, 0xA8 + .incbin "baserom.nds", 0x1510, 0x68 + .incbin "baserom.nds", 0x1578, 0x68 + .incbin "baserom.nds", 0x15E0, 0x3C + .incbin "baserom.nds", 0x161C, 0x124 + .incbin "baserom.nds", 0x1740, 0x144 + .incbin "baserom.nds", 0x1884, 0x88 + .incbin "baserom.nds", 0x190C, 0x1C + .incbin "baserom.nds", 0x1928, 0x1C + .incbin "baserom.nds", 0x1944, 0x30C + .incbin "baserom.nds", 0x1C50, 0xBC + .incbin "baserom.nds", 0x1D0C, 0x164 + .incbin "baserom.nds", 0x1E70, 0x94 + .incbin "baserom.nds", 0x1F04, 0x88 + .incbin "baserom.nds", 0x1F8C, 0x20C + .incbin "baserom.nds", 0x2198, 0x304 + .incbin "baserom.nds", 0x249C, 0x274 + .incbin "baserom.nds", 0x2710, 0x5C + .incbin "baserom.nds", 0x276C, 0x3C + .incbin "baserom.nds", 0x27A8, 0x3C + .incbin "baserom.nds", 0x27E4, 0x7C + .incbin "baserom.nds", 0x2860, 0x40C + .incbin "baserom.nds", 0x2C6C, 0xBC + .incbin "baserom.nds", 0x2D28, 0xC4 + .incbin "baserom.nds", 0x2DEC, 0xB4 + .incbin "baserom.nds", 0x2EA0, 0x88 + .incbin "baserom.nds", 0x2F28, 0x88 + .incbin "baserom.nds", 0x2FB0, 0xA8 + .incbin "baserom.nds", 0x3058, 0x68 + .incbin "baserom.nds", 0x30C0, 0x7C + .incbin "baserom.nds", 0x313C, 0x68 + .incbin "baserom.nds", 0x31A4, 0x88 + .incbin "baserom.nds", 0x322C, 0x88 + .incbin "baserom.nds", 0x32B4, 0x3C + .incbin "baserom.nds", 0x32F0, 0x5C + .incbin "baserom.nds", 0x334C, 0x33C + .incbin "baserom.nds", 0x3688, 0x7C + .incbin "baserom.nds", 0x3704, 0x88 + .incbin "baserom.nds", 0x378C, 0x88 + .incbin "baserom.nds", 0x3814, 0x5C + .incbin "baserom.nds", 0x3870, 0x3C + .incbin "baserom.nds", 0x38AC, 0x514 + .incbin "baserom.nds", 0x3DC0, 0xBC + .incbin "baserom.nds", 0x3E7C, 0x90 + .incbin "baserom.nds", 0x3F0C, 0xBC + .incbin "baserom.nds", 0x3FC8, 0xD4 + .incbin "baserom.nds", 0x409C, 0xA8 + .incbin "baserom.nds", 0x4144, 0xCC + .incbin "baserom.nds", 0x4210, 0xA8 + .incbin "baserom.nds", 0x42B8, 0xA8 + .incbin "baserom.nds", 0x4360, 0x88 + .incbin "baserom.nds", 0x43E8, 0x9C + .incbin "baserom.nds", 0x4484, 0x88 + .incbin "baserom.nds", 0x450C, 0x68 + .incbin "baserom.nds", 0x4574, 0xA8 + .incbin "baserom.nds", 0x461C, 0x3C + .incbin "baserom.nds", 0x4658, 0x98 + .incbin "baserom.nds", 0x46F0, 0x7C + .incbin "baserom.nds", 0x476C, 0x3C + .incbin "baserom.nds", 0x47A8, 0x5C + .incbin "baserom.nds", 0x4804, 0xA4 + .incbin "baserom.nds", 0x48A8, 0x10 + .incbin "baserom.nds", 0x48B8, 0x5C4 + .incbin "baserom.nds", 0x4E7C, 0xBC + .incbin "baserom.nds", 0x4F38, 0xAC + .incbin "baserom.nds", 0x4FE4, 0x3C + .incbin "baserom.nds", 0x5020, 0x3C + .incbin "baserom.nds", 0x505C, 0x78 + .incbin "baserom.nds", 0x50D4, 0x3C + .incbin "baserom.nds", 0x5110, 0x78 + .incbin "baserom.nds", 0x5188, 0x3C + .incbin "baserom.nds", 0x51C4, 0x78 + .incbin "baserom.nds", 0x523C, 0x3C + .incbin "baserom.nds", 0x5278, 0x3C + .incbin "baserom.nds", 0x52B4, 0x3C + .incbin "baserom.nds", 0x52F0, 0x3C + .incbin "baserom.nds", 0x532C, 0x3C + .incbin "baserom.nds", 0x5368, 0xB4 + .incbin "baserom.nds", 0x541C, 0x88 + .incbin "baserom.nds", 0x54A4, 0x68 + .incbin "baserom.nds", 0x550C, 0x5C + .incbin "baserom.nds", 0x5568, 0x30 + .incbin "baserom.nds", 0x5598, 0xDC + .incbin "baserom.nds", 0x5674, 0xA8 + .incbin "baserom.nds", 0x571C, 0x88 + .incbin "baserom.nds", 0x57A4, 0x88 + .incbin "baserom.nds", 0x582C, 0x48 + .incbin "baserom.nds", 0x5874, 0xA8 + .incbin "baserom.nds", 0x591C, 0x128 + .incbin "baserom.nds", 0x5A44, 0x9C + .incbin "baserom.nds", 0x5AE0, 0x30 + .incbin "baserom.nds", 0x5B10, 0x3C + .incbin "baserom.nds", 0x5B4C, 0xBC + .incbin "baserom.nds", 0x5C08, 0x210 + .incbin "baserom.nds", 0x5E18, 0x3F0 + .incbin "baserom.nds", 0x6208, 0xDC + .incbin "baserom.nds", 0x62E4, 0x414 + .incbin "baserom.nds", 0x66F8, 0xD0 + .incbin "baserom.nds", 0x67C8, 0x1E4 + .incbin "baserom.nds", 0x69AC, 0x94 + .incbin "baserom.nds", 0x6A40, 0xA8 + .incbin "baserom.nds", 0x6AE8, 0x84 + .incbin "baserom.nds", 0x6B6C, 0xD8 + .incbin "baserom.nds", 0x6C44, 0x5C + .incbin "baserom.nds", 0x6CA0, 0x5C + .incbin "baserom.nds", 0x6CFC, 0x3C + .incbin "baserom.nds", 0x6D38, 0x5C + .incbin "baserom.nds", 0x6D94, 0x7C + .incbin "baserom.nds", 0x6E10, 0x4B4 + .incbin "baserom.nds", 0x72C4, 0x104 + .incbin "baserom.nds", 0x73C8, 0x94 + .incbin "baserom.nds", 0x745C, 0x88 + .incbin "baserom.nds", 0x74E4, 0x220 + .incbin "baserom.nds", 0x7704, 0x11C + .incbin "baserom.nds", 0x7820, 0x108 + .incbin "baserom.nds", 0x7928, 0xE8 + .incbin "baserom.nds", 0x7A10, 0xE8 + .incbin "baserom.nds", 0x7AF8, 0xE4 + .incbin "baserom.nds", 0x7BDC, 0x3C + .incbin "baserom.nds", 0x7C18, 0xC8 + .incbin "baserom.nds", 0x7CE0, 0x7C + .incbin "baserom.nds", 0x7D5C, 0x5C + .incbin "baserom.nds", 0x7DB8, 0x7C + .incbin "baserom.nds", 0x7E34, 0x5C + .incbin "baserom.nds", 0x7E90, 0x7C + .incbin "baserom.nds", 0x7F0C, 0x48 + .incbin "baserom.nds", 0x7F54, 0x370 + .incbin "baserom.nds", 0x82C4, 0xB4 + .incbin "baserom.nds", 0x8378, 0x88 + .incbin "baserom.nds", 0x8400, 0xBC + .incbin "baserom.nds", 0x84BC, 0xB0 + .incbin "baserom.nds", 0x856C, 0xB8 + .incbin "baserom.nds", 0x8624, 0xFC + .incbin "baserom.nds", 0x8720, 0x9C + .incbin "baserom.nds", 0x87BC, 0x3C + .incbin "baserom.nds", 0x87F8, 0xFC + .incbin "baserom.nds", 0x88F4, 0x5C + .incbin "baserom.nds", 0x8950, 0x5C + .incbin "baserom.nds", 0x89AC, 0x5C + .incbin "baserom.nds", 0x8A08, 0x3C + .incbin "baserom.nds", 0x8A44, 0x90 + .incbin "baserom.nds", 0x8AD4, 0x1C8 + .incbin "baserom.nds", 0x8C9C, 0xBC + .incbin "baserom.nds", 0x8D58, 0x384 + .incbin "baserom.nds", 0x90DC, 0xB4 + .incbin "baserom.nds", 0x9190, 0x88 + .incbin "baserom.nds", 0x9218, 0x5C + .incbin "baserom.nds", 0x9274, 0x3C + .incbin "baserom.nds", 0x92B0, 0x134 + .incbin "baserom.nds", 0x93E4, 0x94 + .incbin "baserom.nds", 0x9478, 0x88 + .incbin "baserom.nds", 0x9500, 0x110 + .incbin "baserom.nds", 0x9610, 0x38 + .incbin "baserom.nds", 0x9648, 0x88 + .incbin "baserom.nds", 0x96D0, 0x38 + .incbin "baserom.nds", 0x9708, 0x88 + .incbin "baserom.nds", 0x9790, 0x38 + .incbin "baserom.nds", 0x97C8, 0x88 + .incbin "baserom.nds", 0x9850, 0x38 + .incbin "baserom.nds", 0x9888, 0x88 + .incbin "baserom.nds", 0x9910, 0x38 + .incbin "baserom.nds", 0x9948, 0x48 + .incbin "baserom.nds", 0x9990, 0x68 + .incbin "baserom.nds", 0x99F8, 0x5C + .incbin "baserom.nds", 0x9A54, 0x370 + .incbin "baserom.nds", 0x9DC4, 0xB4 + .incbin "baserom.nds", 0x9E78, 0x88 + .incbin "baserom.nds", 0x9F00, 0x9C + .incbin "baserom.nds", 0x9F9C, 0xE8 + .incbin "baserom.nds", 0xA084, 0x68 + .incbin "baserom.nds", 0xA0EC, 0x5C + .incbin "baserom.nds", 0xA148, 0x7C + .incbin "baserom.nds", 0xA1C4, 0x10 + .incbin "baserom.nds", 0xA1D4, 0xB8 + .incbin "baserom.nds", 0xA28C, 0x17C + .incbin "baserom.nds", 0xA408, 0x104 + .incbin "baserom.nds", 0xA50C, 0x10C + .incbin "baserom.nds", 0xA618, 0x170 + .incbin "baserom.nds", 0xA788, 0x3B0 + .incbin "baserom.nds", 0xAB38, 0xFC + .incbin "baserom.nds", 0xAC34, 0x144 + .incbin "baserom.nds", 0xAD78, 0x138 + .incbin "baserom.nds", 0xAEB0, 0x120 + .incbin "baserom.nds", 0xAFD0, 0x88 + .incbin "baserom.nds", 0xB058, 0x178 + .incbin "baserom.nds", 0xB1D0, 0x184 + .incbin "baserom.nds", 0xB354, 0x1D8 + .incbin "baserom.nds", 0xB52C, 0x3C + .incbin "baserom.nds", 0xB568, 0x90 + .incbin "baserom.nds", 0xB5F8, 0x48 + .incbin "baserom.nds", 0xB640, 0x2C0 + .incbin "baserom.nds", 0xB900, 0x3C + .incbin "baserom.nds", 0xB93C, 0x2A4 + .incbin "baserom.nds", 0xBBE0, 0x378 + .incbin "baserom.nds", 0xBF58, 0x25C + .incbin "baserom.nds", 0xC1B4, 0x10 + .incbin "baserom.nds", 0xC1C4, 0x64 + .incbin "baserom.nds", 0xC228, 0x7C + .incbin "baserom.nds", 0xC2A4, 0x1C + .incbin "baserom.nds", 0xC2C0, 0x30 + .incbin "baserom.nds", 0xC2F0, 0x60 + .incbin "baserom.nds", 0xC350, 0x1C + .incbin "baserom.nds", 0xC36C, 0x60 + .incbin "baserom.nds", 0xC3CC, 0x1C + .incbin "baserom.nds", 0xC3E8, 0x1C + .incbin "baserom.nds", 0xC404, 0x1C + .incbin "baserom.nds", 0xC420, 0x1C + .incbin "baserom.nds", 0xC43C, 0x30 + .incbin "baserom.nds", 0xC46C, 0x34 + .incbin "baserom.nds", 0xC4A0, 0x40 + .incbin "baserom.nds", 0xC4E0, 0x40 + .incbin "baserom.nds", 0xC520, 0xD8 + .incbin "baserom.nds", 0xC5F8, 0x1C + .incbin "baserom.nds", 0xC614, 0x1C + .incbin "baserom.nds", 0xC630, 0x238 + .incbin "baserom.nds", 0xC868, 0x45C + .incbin "baserom.nds", 0xCCC4, 0x11C + .incbin "baserom.nds", 0xCDE0, 0x45C + .incbin "baserom.nds", 0xD23C, 0x28 + .incbin "baserom.nds", 0xD264, 0x28 + .incbin "baserom.nds", 0xD28C, 0x10 + .incbin "baserom.nds", 0xD29C, 0x58 + .incbin "baserom.nds", 0xD2F4, 0x3A0 + .incbin "baserom.nds", 0xD694, 0x408 + .incbin "baserom.nds", 0xDA9C, 0x10 + .incbin "baserom.nds", 0xDAAC, 0x1F8 + .incbin "baserom.nds", 0xDCA4, 0x5C + .incbin "baserom.nds", 0xDD00, 0x1A4 + .incbin "baserom.nds", 0xDEA4, 0x23C + .incbin "baserom.nds", 0xE0E0, 0xA8 + .incbin "baserom.nds", 0xE188, 0x68 + .incbin "baserom.nds", 0xE1F0, 0x9C + .incbin "baserom.nds", 0xE28C, 0x21C + .incbin "baserom.nds", 0xE4A8, 0x4B0 + .incbin "baserom.nds", 0xE958, 0xAC + .incbin "baserom.nds", 0xEA04, 0x34 + .incbin "baserom.nds", 0xEA38, 0x88 + .incbin "baserom.nds", 0xEAC0, 0x7C + .incbin "baserom.nds", 0xEB3C, 0xBC + .incbin "baserom.nds", 0xEBF8, 0x1A0 + .incbin "baserom.nds", 0xED98, 0x1A0 + .incbin "baserom.nds", 0xEF38, 0x1E0 + .incbin "baserom.nds", 0xF118, 0x30 + .incbin "baserom.nds", 0xF148, 0x28 + .incbin "baserom.nds", 0xF170, 0x48 + .incbin "baserom.nds", 0xF1B8, 0x68 + .incbin "baserom.nds", 0xF220, 0x3C + .incbin "baserom.nds", 0xF25C, 0x68 + .incbin "baserom.nds", 0xF2C4, 0x3C + .incbin "baserom.nds", 0xF300, 0x4A8 + .incbin "baserom.nds", 0xF7A8, 0xB0 + .incbin "baserom.nds", 0xF858, 0x5C + .incbin "baserom.nds", 0xF8B4, 0x28 + .incbin "baserom.nds", 0xF8DC, 0x68 + .incbin "baserom.nds", 0xF944, 0x34 + .incbin "baserom.nds", 0xF978, 0x5C + .incbin "baserom.nds", 0xF9D4, 0xB8 + .incbin "baserom.nds", 0xFA8C, 0xB0 + .incbin "baserom.nds", 0xFB3C, 0x284 + .incbin "baserom.nds", 0xFDC0, 0x58 + .incbin "baserom.nds", 0xFE18, 0x60 + .incbin "baserom.nds", 0xFE78, 0x50 + .incbin "baserom.nds", 0xFEC8, 0x48 + .incbin "baserom.nds", 0xFF10, 0x58 + .incbin "baserom.nds", 0xFF68, 0x3C + .incbin "baserom.nds", 0xFFA4, 0x64 + .incbin "baserom.nds", 0x10008, 0x1C + .incbin "baserom.nds", 0x10024, 0x5C + .incbin "baserom.nds", 0x10080, 0x3C + .incbin "baserom.nds", 0x100BC, 0x22C + .incbin "baserom.nds", 0x102E8, 0x254 + .incbin "baserom.nds", 0x1053C, 0x1EC + .incbin "baserom.nds", 0x10728, 0x120 + .incbin "baserom.nds", 0x10848, 0x48 + .incbin "baserom.nds", 0x10890, 0x154 + .incbin "baserom.nds", 0x109E4, 0x108 + .incbin "baserom.nds", 0x10AEC, 0x154 + .incbin "baserom.nds", 0x10C40, 0x5C + .incbin "baserom.nds", 0x10C9C, 0x408 + .incbin "baserom.nds", 0x110A4, 0x6C + .incbin "baserom.nds", 0x11110, 0x68 + .incbin "baserom.nds", 0x11178, 0x68 + .incbin "baserom.nds", 0x111E0, 0xAC + .incbin "baserom.nds", 0x1128C, 0x3C + .incbin "baserom.nds", 0x112C8, 0xA8 + .incbin "baserom.nds", 0x11370, 0x48 + .incbin "baserom.nds", 0x113B8, 0x228 + .incbin "baserom.nds", 0x115E0, 0x148 + .incbin "baserom.nds", 0x11728, 0x22C + .incbin "baserom.nds", 0x11954, 0x30 + .incbin "baserom.nds", 0x11984, 0x30 + .incbin "baserom.nds", 0x119B4, 0x90 + .incbin "baserom.nds", 0x11A44, 0x70 + .incbin "baserom.nds", 0x11AB4, 0xD0 + .incbin "baserom.nds", 0x11B84, 0x40 + .incbin "baserom.nds", 0x11BC4, 0x40 + .incbin "baserom.nds", 0x11C04, 0xB4 + .incbin "baserom.nds", 0x11CB8, 0x10 + .incbin "baserom.nds", 0x11CC8, 0x204 + .incbin "baserom.nds", 0x11ECC, 0x27C + .incbin "baserom.nds", 0x12148, 0x3C + .incbin "baserom.nds", 0x12184, 0x3C + .incbin "baserom.nds", 0x121C0, 0xC0 + .incbin "baserom.nds", 0x12280, 0x28 + .incbin "baserom.nds", 0x122A8, 0x1C0 + .incbin "baserom.nds", 0x12468, 0x154 + .incbin "baserom.nds", 0x125BC, 0x20C + .incbin "baserom.nds", 0x127C8, 0x15C + .incbin "baserom.nds", 0x12924, 0x19C + .incbin "baserom.nds", 0x12AC0, 0x468 + .incbin "baserom.nds", 0x12F28, 0x5C + .incbin "baserom.nds", 0x12F84, 0x1BC + .incbin "baserom.nds", 0x13140, 0x3C0 + .incbin "baserom.nds", 0x13500, 0xC8 + .incbin "baserom.nds", 0x135C8, 0x28 + .incbin "baserom.nds", 0x135F0, 0x3C8 + .incbin "baserom.nds", 0x139B8, 0x368 + .incbin "baserom.nds", 0x13D20, 0x7C + .incbin "baserom.nds", 0x13D9C, 0x4D4 + .incbin "baserom.nds", 0x14270, 0x28 + .incbin "baserom.nds", 0x14298, 0x7C + .incbin "baserom.nds", 0x14314, 0x88 + .incbin "baserom.nds", 0x1439C, 0xFC + .incbin "baserom.nds", 0x14498, 0x5C + .incbin "baserom.nds", 0x144F4, 0x460 + .incbin "baserom.nds", 0x14954, 0x344 + .incbin "baserom.nds", 0x14C98, 0x3C + .incbin "baserom.nds", 0x14CD4, 0x144 + .incbin "baserom.nds", 0x14E18, 0x2D0 + .incbin "baserom.nds", 0x150E8, 0x3DC + .incbin "baserom.nds", 0x154C4, 0xD8 + .incbin "baserom.nds", 0x1559C, 0xA8 + .incbin "baserom.nds", 0x15644, 0xD4 + .incbin "baserom.nds", 0x15718, 0x5FC + .incbin "baserom.nds", 0x15D14, 0x70 + .incbin "baserom.nds", 0x15D84, 0x56C + .incbin "baserom.nds", 0x162F0, 0x68 + .incbin "baserom.nds", 0x16358, 0x3C + .incbin "baserom.nds", 0x16394, 0x68 + .incbin "baserom.nds", 0x163FC, 0x3C + .incbin "baserom.nds", 0x16438, 0x7C + .incbin "baserom.nds", 0x164B4, 0x70 + .incbin "baserom.nds", 0x16524, 0x3E8 + .incbin "baserom.nds", 0x1690C, 0x48 + .incbin "baserom.nds", 0x16954, 0x3E4 + .incbin "baserom.nds", 0x16D38, 0x21C + .incbin "baserom.nds", 0x16F54, 0x84 + .incbin "baserom.nds", 0x16FD8, 0x2D0 + .incbin "baserom.nds", 0x172A8, 0x3C + .incbin "baserom.nds", 0x172E4, 0x3C + .incbin "baserom.nds", 0x17320, 0x200 + .incbin "baserom.nds", 0x17520, 0x68 + .incbin "baserom.nds", 0x17588, 0x78 + .incbin "baserom.nds", 0x17600, 0xA4 + .incbin "baserom.nds", 0x176A4, 0x2B8 + .incbin "baserom.nds", 0x1795C, 0x148 + .incbin "baserom.nds", 0x17AA4, 0x50 + .incbin "baserom.nds", 0x17AF4, 0x450 + .incbin "baserom.nds", 0x17F44, 0xFC + .incbin "baserom.nds", 0x18040, 0x3C + .incbin "baserom.nds", 0x1807C, 0x68 + .incbin "baserom.nds", 0x180E4, 0x2DC + .incbin "baserom.nds", 0x183C0, 0x444 + .incbin "baserom.nds", 0x18804, 0x1F8 + .incbin "baserom.nds", 0x189FC, 0x418 + .incbin "baserom.nds", 0x18E14, 0x284 + .incbin "baserom.nds", 0x19098, 0x174 + .incbin "baserom.nds", 0x1920C, 0x48 + .incbin "baserom.nds", 0x19254, 0x64 + .incbin "baserom.nds", 0x192B8, 0x118 + .incbin "baserom.nds", 0x193D0, 0x80 + .incbin "baserom.nds", 0x19450, 0x3C + .incbin "baserom.nds", 0x1948C, 0x5C + .incbin "baserom.nds", 0x194E8, 0x21C + .incbin "baserom.nds", 0x19704, 0x9C + .incbin "baserom.nds", 0x197A0, 0xD4 + .incbin "baserom.nds", 0x19874, 0xA8 + .incbin "baserom.nds", 0x1991C, 0x134 + .incbin "baserom.nds", 0x19A50, 0x68 + .incbin "baserom.nds", 0x19AB8, 0x30 + .incbin "baserom.nds", 0x19AE8, 0x5C + .incbin "baserom.nds", 0x19B44, 0x22C + .incbin "baserom.nds", 0x19D70, 0xBC + .incbin "baserom.nds", 0x19E2C, 0xB4 + .incbin "baserom.nds", 0x19EE0, 0x88 + .incbin "baserom.nds", 0x19F68, 0x7C + .incbin "baserom.nds", 0x19FE4, 0x5C + .incbin "baserom.nds", 0x1A040, 0x7C + .incbin "baserom.nds", 0x1A0BC, 0x2D0 + .incbin "baserom.nds", 0x1A38C, 0xBC + .incbin "baserom.nds", 0x1A448, 0x94 + .incbin "baserom.nds", 0x1A4DC, 0x88 + .incbin "baserom.nds", 0x1A564, 0x70 + .incbin "baserom.nds", 0x1A5D4, 0x5C + .incbin "baserom.nds", 0x1A630, 0x70 + .incbin "baserom.nds", 0x1A6A0, 0x5C + .incbin "baserom.nds", 0x1A6FC, 0x5C + .incbin "baserom.nds", 0x1A758, 0x240 + .incbin "baserom.nds", 0x1A998, 0xB4 + .incbin "baserom.nds", 0x1AA4C, 0x88 + .incbin "baserom.nds", 0x1AAD4, 0xB0 + .incbin "baserom.nds", 0x1AB84, 0x7C + .incbin "baserom.nds", 0x1AC00, 0x5C + .incbin "baserom.nds", 0x1AC5C, 0x5C + .incbin "baserom.nds", 0x1ACB8, 0x64 + .incbin "baserom.nds", 0x1AD1C, 0x160 + .incbin "baserom.nds", 0x1AE7C, 0x9C + .incbin "baserom.nds", 0x1AF18, 0xB4 + .incbin "baserom.nds", 0x1AFCC, 0x88 + .incbin "baserom.nds", 0x1B054, 0x5C + .incbin "baserom.nds", 0x1B0B0, 0x3C + .incbin "baserom.nds", 0x1B0EC, 0x3C + .incbin "baserom.nds", 0x1B128, 0x1E8 + .incbin "baserom.nds", 0x1B310, 0x3C + .incbin "baserom.nds", 0x1B34C, 0x94 + .incbin "baserom.nds", 0x1B3E0, 0x88 + .incbin "baserom.nds", 0x1B468, 0xE8 + .incbin "baserom.nds", 0x1B550, 0x9C + .incbin "baserom.nds", 0x1B5EC, 0x3C + .incbin "baserom.nds", 0x1B628, 0x7C + .incbin "baserom.nds", 0x1B6A4, 0x3C + .incbin "baserom.nds", 0x1B6E0, 0x67C + .incbin "baserom.nds", 0x1BD5C, 0x178 + .incbin "baserom.nds", 0x1BED4, 0x224 + .incbin "baserom.nds", 0x1C0F8, 0x298 + .incbin "baserom.nds", 0x1C390, 0x278 + .incbin "baserom.nds", 0x1C608, 0x10 + .incbin "baserom.nds", 0x1C618, 0x7C + .incbin "baserom.nds", 0x1C694, 0x7C + .incbin "baserom.nds", 0x1C710, 0x9C + .incbin "baserom.nds", 0x1C7AC, 0x7C + .incbin "baserom.nds", 0x1C828, 0x7C + .incbin "baserom.nds", 0x1C8A4, 0x7C + .incbin "baserom.nds", 0x1C920, 0x9C + .incbin "baserom.nds", 0x1C9BC, 0x7C + .incbin "baserom.nds", 0x1CA38, 0x7C + .incbin "baserom.nds", 0x1CAB4, 0x7C + .incbin "baserom.nds", 0x1CB30, 0x7C + .incbin "baserom.nds", 0x1CBAC, 0x7C + .incbin "baserom.nds", 0x1CC28, 0x7C + .incbin "baserom.nds", 0x1CCA4, 0x7C + .incbin "baserom.nds", 0x1CD20, 0x7C + .incbin "baserom.nds", 0x1CD9C, 0x7C + .incbin "baserom.nds", 0x1CE18, 0x7C + .incbin "baserom.nds", 0x1CE94, 0x3C + .incbin "baserom.nds", 0x1CED0, 0xDC + .incbin "baserom.nds", 0x1CFAC, 0xD0 + .incbin "baserom.nds", 0x1D07C, 0xFC + .incbin "baserom.nds", 0x1D178, 0x88 + .incbin "baserom.nds", 0x1D200, 0x7C + .incbin "baserom.nds", 0x1D27C, 0x130 + .incbin "baserom.nds", 0x1D3AC, 0x3C + .incbin "baserom.nds", 0x1D3E8, 0x50 + .incbin "baserom.nds", 0x1D438, 0x3C + .incbin "baserom.nds", 0x1D474, 0x48 + .incbin "baserom.nds", 0x1D4BC, 0x50 + .incbin "baserom.nds", 0x1D50C, 0x8C + .incbin "baserom.nds", 0x1D598, 0xD8 + .incbin "baserom.nds", 0x1D670, 0xB8 + .incbin "baserom.nds", 0x1D728, 0xD8 + .incbin "baserom.nds", 0x1D800, 0xD8 + .incbin "baserom.nds", 0x1D8D8, 0xB8 + .incbin "baserom.nds", 0x1D990, 0x110 + .incbin "baserom.nds", 0x1DAA0, 0x4C + .incbin "baserom.nds", 0x1DAEC, 0x5C + .incbin "baserom.nds", 0x1DB48, 0x68 + .incbin "baserom.nds", 0x1DBB0, 0x3C + .incbin "baserom.nds", 0x1DBEC, 0x30 + .incbin "baserom.nds", 0x1DC1C, 0x1C + .incbin "baserom.nds", 0x1DC38, 0x9C + .incbin "baserom.nds", 0x1DCD4, 0x1E0 + .incbin "baserom.nds", 0x1DEB4, 0x1E0 + .incbin "baserom.nds", 0x1E094, 0x1E0 + .incbin "baserom.nds", 0x1E274, 0x400 + .incbin "baserom.nds", 0x1E674, 0x3E0 + .incbin "baserom.nds", 0x1EA54, 0x3E0 + .incbin "baserom.nds", 0x1EE34, 0x3E0 + .incbin "baserom.nds", 0x1F214, 0x400 + .incbin "baserom.nds", 0x1F614, 0x400 + .incbin "baserom.nds", 0x1FA14, 0x400 + .incbin "baserom.nds", 0x1FE14, 0x3E0 + .incbin "baserom.nds", 0x201F4, 0x400 + .incbin "baserom.nds", 0x205F4, 0x400 + .incbin "baserom.nds", 0x209F4, 0x400 + .incbin "baserom.nds", 0x20DF4, 0x400 + .incbin "baserom.nds", 0x211F4, 0x10 + .incbin "baserom.nds", 0x21204, 0x10 + .incbin "baserom.nds", 0x21214, 0x10 + .incbin "baserom.nds", 0x21224, 0x9C + .balign 4, 255 diff --git a/narc/fielddata/area_build_model/area_build.narc.s b/narc/fielddata/area_build_model/area_build.narc.s new file mode 100644 index 00000000..afba0d7e --- /dev/null +++ b/narc/fielddata/area_build_model/area_build.narc.s @@ -0,0 +1,136 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00001274 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000001C4 ; chunk size + .short 55 ; number of files + .balign 4 + .word 0x00000000, 0x00000042 + .word 0x00000044, 0x000000F2 + .word 0x000000F4, 0x0000020A + .word 0x0000020C, 0x00000238 + .word 0x00000238, 0x00000272 + .word 0x00000274, 0x000002A0 + .word 0x000002A0, 0x000002D0 + .word 0x000002D0, 0x000002F8 + .word 0x000002F8, 0x0000031C + .word 0x0000031C, 0x00000344 + .word 0x00000344, 0x00000368 + .word 0x00000368, 0x00000394 + .word 0x00000394, 0x000003B0 + .word 0x000003B0, 0x000003C8 + .word 0x000003C8, 0x000003EC + .word 0x000003EC, 0x0000040E + .word 0x00000410, 0x000004A4 + .word 0x000004A4, 0x000004EE + .word 0x000004F0, 0x00000558 + .word 0x00000558, 0x00000566 + .word 0x00000568, 0x0000057C + .word 0x0000057C, 0x00000582 + .word 0x00000584, 0x0000058A + .word 0x0000058C, 0x0000059A + .word 0x0000059C, 0x000005A4 + .word 0x000005A4, 0x000005BA + .word 0x000005BC, 0x000005DE + .word 0x000005E0, 0x00000684 + .word 0x00000684, 0x0000073C + .word 0x0000073C, 0x000007FA + .word 0x000007FC, 0x000008C2 + .word 0x000008C4, 0x0000097C + .word 0x0000097C, 0x00000996 + .word 0x00000998, 0x00000A52 + .word 0x00000A54, 0x00000B0E + .word 0x00000B10, 0x00000BD6 + .word 0x00000BD8, 0x00000BF4 + .word 0x00000BF4, 0x00000CAC + .word 0x00000CAC, 0x00000D68 + .word 0x00000D68, 0x00000D70 + .word 0x00000D70, 0x00000D76 + .word 0x00000D78, 0x00000D88 + .word 0x00000D88, 0x00000D96 + .word 0x00000D98, 0x00000D9A + .word 0x00000D9C, 0x00000E6E + .word 0x00000E70, 0x00000E82 + .word 0x00000E84, 0x00000EA2 + .word 0x00000EA4, 0x00000EA8 + .word 0x00000EA8, 0x00000EB0 + .word 0x00000EB0, 0x00000EBA + .word 0x00000EBC, 0x00000ECC + .word 0x00000ECC, 0x00000ED4 + .word 0x00000ED4, 0x00000FA4 + .word 0x00000FA4, 0x00000FB2 + .word 0x00000FB4, 0x00001086 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00001090 ; chunk size + .incbin "baserom.nds", 0x0, 0x42 + .incbin "baserom.nds", 0x44, 0xAE + .incbin "baserom.nds", 0xF4, 0x116 + .incbin "baserom.nds", 0x20C, 0x2C + .incbin "baserom.nds", 0x238, 0x3A + .incbin "baserom.nds", 0x274, 0x2C + .incbin "baserom.nds", 0x2A0, 0x30 + .incbin "baserom.nds", 0x2D0, 0x28 + .incbin "baserom.nds", 0x2F8, 0x24 + .incbin "baserom.nds", 0x31C, 0x28 + .incbin "baserom.nds", 0x344, 0x24 + .incbin "baserom.nds", 0x368, 0x2C + .incbin "baserom.nds", 0x394, 0x1C + .incbin "baserom.nds", 0x3B0, 0x18 + .incbin "baserom.nds", 0x3C8, 0x24 + .incbin "baserom.nds", 0x3EC, 0x22 + .incbin "baserom.nds", 0x410, 0x94 + .incbin "baserom.nds", 0x4A4, 0x4A + .incbin "baserom.nds", 0x4F0, 0x68 + .incbin "baserom.nds", 0x558, 0xE + .incbin "baserom.nds", 0x568, 0x14 + .incbin "baserom.nds", 0x57C, 0x6 + .incbin "baserom.nds", 0x584, 0x6 + .incbin "baserom.nds", 0x58C, 0xE + .incbin "baserom.nds", 0x59C, 0x8 + .incbin "baserom.nds", 0x5A4, 0x16 + .incbin "baserom.nds", 0x5BC, 0x22 + .incbin "baserom.nds", 0x5E0, 0xA4 + .incbin "baserom.nds", 0x684, 0xB8 + .incbin "baserom.nds", 0x73C, 0xBE + .incbin "baserom.nds", 0x7FC, 0xC6 + .incbin "baserom.nds", 0x8C4, 0xB8 + .incbin "baserom.nds", 0x97C, 0x1A + .incbin "baserom.nds", 0x998, 0xBA + .incbin "baserom.nds", 0xA54, 0xBA + .incbin "baserom.nds", 0xB10, 0xC6 + .incbin "baserom.nds", 0xBD8, 0x1C + .incbin "baserom.nds", 0xBF4, 0xB8 + .incbin "baserom.nds", 0xCAC, 0xBC + .incbin "baserom.nds", 0xD68, 0x8 + .incbin "baserom.nds", 0xD70, 0x6 + .incbin "baserom.nds", 0xD78, 0x10 + .incbin "baserom.nds", 0xD88, 0xE + .incbin "baserom.nds", 0xD98, 0x2 + .incbin "baserom.nds", 0xD9C, 0xD2 + .incbin "baserom.nds", 0xE70, 0x12 + .incbin "baserom.nds", 0xE84, 0x1E + .incbin "baserom.nds", 0xEA4, 0x4 + .incbin "baserom.nds", 0xEA8, 0x8 + .incbin "baserom.nds", 0xEB0, 0xA + .incbin "baserom.nds", 0xEBC, 0x10 + .incbin "baserom.nds", 0xECC, 0x8 + .incbin "baserom.nds", 0xED4, 0xD0 + .incbin "baserom.nds", 0xFA4, 0xE + .incbin "baserom.nds", 0xFB4, 0xD2 + .balign 4, 255 diff --git a/narc/fielddata/area_build_model/areabm_texset.narc.s b/narc/fielddata/area_build_model/areabm_texset.narc.s new file mode 100644 index 00000000..7af4c62d --- /dev/null +++ b/narc/fielddata/area_build_model/areabm_texset.narc.s @@ -0,0 +1,136 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x001254B4 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000001C4 ; chunk size + .short 55 ; number of files + .balign 4 + .word 0x00000000, 0x000100F0 + .word 0x000100F0, 0x00016334 + .word 0x00016334, 0x00028578 + .word 0x00028578, 0x00030C08 + .word 0x00030C08, 0x0003C344 + .word 0x0003C344, 0x00045AFC + .word 0x00045AFC, 0x0004F0E4 + .word 0x0004F0E4, 0x000584E8 + .word 0x000584E8, 0x000604CC + .word 0x000604CC, 0x000693F4 + .word 0x000693F4, 0x0007170C + .word 0x0007170C, 0x000782B0 + .word 0x000782B0, 0x0007DF60 + .word 0x0007DF60, 0x00082E94 + .word 0x00082E94, 0x0008A728 + .word 0x0008A728, 0x00091BC4 + .word 0x00091BC4, 0x00096624 + .word 0x00096624, 0x0009A84C + .word 0x0009A84C, 0x0009EF50 + .word 0x0009EF50, 0x0009FD84 + .word 0x0009FD84, 0x000A0C9C + .word 0x000A0C9C, 0x000A10DC + .word 0x000A10DC, 0x000A151C + .word 0x000A151C, 0x000A22E0 + .word 0x000A22E0, 0x000A3000 + .word 0x000A3000, 0x000A3658 + .word 0x000A3658, 0x000A4AD8 + .word 0x000A4AD8, 0x000AA6D4 + .word 0x000AA6D4, 0x000B2214 + .word 0x000B2214, 0x000BA4FC + .word 0x000BA4FC, 0x000C2BFC + .word 0x000C2BFC, 0x000CA73C + .word 0x000CA73C, 0x000CC8E0 + .word 0x000CC8E0, 0x000D4674 + .word 0x000D4674, 0x000DC4C4 + .word 0x000DC4C4, 0x000E4A84 + .word 0x000E4A84, 0x000E6734 + .word 0x000E6734, 0x000EE274 + .word 0x000EE274, 0x000F5FBC + .word 0x000F5FBC, 0x000F68BC + .word 0x000F68BC, 0x000F7C9C + .word 0x000F7C9C, 0x000F8E8C + .word 0x000F8E8C, 0x000FC588 + .word 0x000FC588, 0x000FC58C + .word 0x000FC58C, 0x00106D00 + .word 0x00106D00, 0x0010961C + .word 0x0010961C, 0x0010A1E8 + .word 0x0010A1E8, 0x0010A730 + .word 0x0010A730, 0x0010B438 + .word 0x0010B438, 0x0010C444 + .word 0x0010C444, 0x0010EA9C + .word 0x0010EA9C, 0x001114AC + .word 0x001114AC, 0x00119FC0 + .word 0x00119FC0, 0x0011AB54 + .word 0x0011AB54, 0x001252C8 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x001252D0 ; chunk size + .incbin "baserom.nds", 0x0, 0x100F0 + .incbin "baserom.nds", 0x100F0, 0x6244 + .incbin "baserom.nds", 0x16334, 0x12244 + .incbin "baserom.nds", 0x28578, 0x8690 + .incbin "baserom.nds", 0x30C08, 0xB73C + .incbin "baserom.nds", 0x3C344, 0x97B8 + .incbin "baserom.nds", 0x45AFC, 0x95E8 + .incbin "baserom.nds", 0x4F0E4, 0x9404 + .incbin "baserom.nds", 0x584E8, 0x7FE4 + .incbin "baserom.nds", 0x604CC, 0x8F28 + .incbin "baserom.nds", 0x693F4, 0x8318 + .incbin "baserom.nds", 0x7170C, 0x6BA4 + .incbin "baserom.nds", 0x782B0, 0x5CB0 + .incbin "baserom.nds", 0x7DF60, 0x4F34 + .incbin "baserom.nds", 0x82E94, 0x7894 + .incbin "baserom.nds", 0x8A728, 0x749C + .incbin "baserom.nds", 0x91BC4, 0x4A60 + .incbin "baserom.nds", 0x96624, 0x4228 + .incbin "baserom.nds", 0x9A84C, 0x4704 + .incbin "baserom.nds", 0x9EF50, 0xE34 + .incbin "baserom.nds", 0x9FD84, 0xF18 + .incbin "baserom.nds", 0xA0C9C, 0x440 + .incbin "baserom.nds", 0xA10DC, 0x440 + .incbin "baserom.nds", 0xA151C, 0xDC4 + .incbin "baserom.nds", 0xA22E0, 0xD20 + .incbin "baserom.nds", 0xA3000, 0x658 + .incbin "baserom.nds", 0xA3658, 0x1480 + .incbin "baserom.nds", 0xA4AD8, 0x5BFC + .incbin "baserom.nds", 0xAA6D4, 0x7B40 + .incbin "baserom.nds", 0xB2214, 0x82E8 + .incbin "baserom.nds", 0xBA4FC, 0x8700 + .incbin "baserom.nds", 0xC2BFC, 0x7B40 + .incbin "baserom.nds", 0xCA73C, 0x21A4 + .incbin "baserom.nds", 0xCC8E0, 0x7D94 + .incbin "baserom.nds", 0xD4674, 0x7E50 + .incbin "baserom.nds", 0xDC4C4, 0x85C0 + .incbin "baserom.nds", 0xE4A84, 0x1CB0 + .incbin "baserom.nds", 0xE6734, 0x7B40 + .incbin "baserom.nds", 0xEE274, 0x7D48 + .incbin "baserom.nds", 0xF5FBC, 0x900 + .incbin "baserom.nds", 0xF68BC, 0x13E0 + .incbin "baserom.nds", 0xF7C9C, 0x11F0 + .incbin "baserom.nds", 0xF8E8C, 0x36FC + .incbin "baserom.nds", 0xFC588, 0x4 + .incbin "baserom.nds", 0xFC58C, 0xA774 + .incbin "baserom.nds", 0x106D00, 0x291C + .incbin "baserom.nds", 0x10961C, 0xBCC + .incbin "baserom.nds", 0x10A1E8, 0x548 + .incbin "baserom.nds", 0x10A730, 0xD08 + .incbin "baserom.nds", 0x10B438, 0x100C + .incbin "baserom.nds", 0x10C444, 0x2658 + .incbin "baserom.nds", 0x10EA9C, 0x2A10 + .incbin "baserom.nds", 0x1114AC, 0x8B14 + .incbin "baserom.nds", 0x119FC0, 0xB94 + .incbin "baserom.nds", 0x11AB54, 0xA774 + .balign 4, 255 diff --git a/narc/fielddata/area_map_tex/map_tex_set.narc.s b/narc/fielddata/area_map_tex/map_tex_set.narc.s new file mode 100644 index 00000000..2d1bd044 --- /dev/null +++ b/narc/fielddata/area_map_tex/map_tex_set.narc.s @@ -0,0 +1,142 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00132D50 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000001DC ; chunk size + .short 58 ; number of files + .balign 4 + .word 0x00000000, 0x00005B98 + .word 0x00005B98, 0x00007BA4 + .word 0x00007BA4, 0x0000BB34 + .word 0x0000BB34, 0x0000C320 + .word 0x0000C320, 0x0000CE10 + .word 0x0000CE10, 0x000110AC + .word 0x000110AC, 0x0001C294 + .word 0x0001C294, 0x00027200 + .word 0x00027200, 0x00031C10 + .word 0x00031C10, 0x0003C328 + .word 0x0003C328, 0x000464E4 + .word 0x000464E4, 0x000516C0 + .word 0x000516C0, 0x0005BECC + .word 0x0005BECC, 0x00066E54 + .word 0x00066E54, 0x00070028 + .word 0x00070028, 0x0007AEA8 + .word 0x0007AEA8, 0x000851A0 + .word 0x000851A0, 0x0008F5B0 + .word 0x0008F5B0, 0x00099F38 + .word 0x00099F38, 0x000A4348 + .word 0x000A4348, 0x000A5CD8 + .word 0x000A5CD8, 0x000A927C + .word 0x000A927C, 0x000A9C30 + .word 0x000A9C30, 0x000AA674 + .word 0x000AA674, 0x000AAEE8 + .word 0x000AAEE8, 0x000AE5C8 + .word 0x000AE5C8, 0x000AEF38 + .word 0x000AEF38, 0x000AF984 + .word 0x000AF984, 0x000B07C0 + .word 0x000B07C0, 0x000B26DC + .word 0x000B26DC, 0x000B4378 + .word 0x000B4378, 0x000B8540 + .word 0x000B8540, 0x000B9BB4 + .word 0x000B9BB4, 0x000BB0F8 + .word 0x000BB0F8, 0x000C10D4 + .word 0x000C10D4, 0x000C202C + .word 0x000C202C, 0x000C3CB4 + .word 0x000C3CB4, 0x000C7674 + .word 0x000C7674, 0x000C82E0 + .word 0x000C82E0, 0x000C8BFC + .word 0x000C8BFC, 0x000C9F30 + .word 0x000C9F30, 0x000CB1F0 + .word 0x000CB1F0, 0x000D008C + .word 0x000D008C, 0x000DA230 + .word 0x000DA230, 0x000DF108 + .word 0x000DF108, 0x000E2DA0 + .word 0x000E2DA0, 0x000E6FCC + .word 0x000E6FCC, 0x000E9C70 + .word 0x000E9C70, 0x000F3A0C + .word 0x000F3A0C, 0x000FEBC0 + .word 0x000FEBC0, 0x0010895C + .word 0x0010895C, 0x00112F54 + .word 0x00112F54, 0x0011E444 + .word 0x0011E444, 0x001281E0 + .word 0x001281E0, 0x0012CF90 + .word 0x0012CF90, 0x00130980 + .word 0x00130980, 0x0013113C + .word 0x0013113C, 0x00132B4C + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00132B54 ; chunk size + .incbin "baserom.nds", 0x0, 0x5B98 + .incbin "baserom.nds", 0x5B98, 0x200C + .incbin "baserom.nds", 0x7BA4, 0x3F90 + .incbin "baserom.nds", 0xBB34, 0x7EC + .incbin "baserom.nds", 0xC320, 0xAF0 + .incbin "baserom.nds", 0xCE10, 0x429C + .incbin "baserom.nds", 0x110AC, 0xB1E8 + .incbin "baserom.nds", 0x1C294, 0xAF6C + .incbin "baserom.nds", 0x27200, 0xAA10 + .incbin "baserom.nds", 0x31C10, 0xA718 + .incbin "baserom.nds", 0x3C328, 0xA1BC + .incbin "baserom.nds", 0x464E4, 0xB1DC + .incbin "baserom.nds", 0x516C0, 0xA80C + .incbin "baserom.nds", 0x5BECC, 0xAF88 + .incbin "baserom.nds", 0x66E54, 0x91D4 + .incbin "baserom.nds", 0x70028, 0xAE80 + .incbin "baserom.nds", 0x7AEA8, 0xA2F8 + .incbin "baserom.nds", 0x851A0, 0xA410 + .incbin "baserom.nds", 0x8F5B0, 0xA988 + .incbin "baserom.nds", 0x99F38, 0xA410 + .incbin "baserom.nds", 0xA4348, 0x1990 + .incbin "baserom.nds", 0xA5CD8, 0x35A4 + .incbin "baserom.nds", 0xA927C, 0x9B4 + .incbin "baserom.nds", 0xA9C30, 0xA44 + .incbin "baserom.nds", 0xAA674, 0x874 + .incbin "baserom.nds", 0xAAEE8, 0x36E0 + .incbin "baserom.nds", 0xAE5C8, 0x970 + .incbin "baserom.nds", 0xAEF38, 0xA4C + .incbin "baserom.nds", 0xAF984, 0xE3C + .incbin "baserom.nds", 0xB07C0, 0x1F1C + .incbin "baserom.nds", 0xB26DC, 0x1C9C + .incbin "baserom.nds", 0xB4378, 0x41C8 + .incbin "baserom.nds", 0xB8540, 0x1674 + .incbin "baserom.nds", 0xB9BB4, 0x1544 + .incbin "baserom.nds", 0xBB0F8, 0x5FDC + .incbin "baserom.nds", 0xC10D4, 0xF58 + .incbin "baserom.nds", 0xC202C, 0x1C88 + .incbin "baserom.nds", 0xC3CB4, 0x39C0 + .incbin "baserom.nds", 0xC7674, 0xC6C + .incbin "baserom.nds", 0xC82E0, 0x91C + .incbin "baserom.nds", 0xC8BFC, 0x1334 + .incbin "baserom.nds", 0xC9F30, 0x12C0 + .incbin "baserom.nds", 0xCB1F0, 0x4E9C + .incbin "baserom.nds", 0xD008C, 0xA1A4 + .incbin "baserom.nds", 0xDA230, 0x4ED8 + .incbin "baserom.nds", 0xDF108, 0x3C98 + .incbin "baserom.nds", 0xE2DA0, 0x422C + .incbin "baserom.nds", 0xE6FCC, 0x2CA4 + .incbin "baserom.nds", 0xE9C70, 0x9D9C + .incbin "baserom.nds", 0xF3A0C, 0xB1B4 + .incbin "baserom.nds", 0xFEBC0, 0x9D9C + .incbin "baserom.nds", 0x10895C, 0xA5F8 + .incbin "baserom.nds", 0x112F54, 0xB4F0 + .incbin "baserom.nds", 0x11E444, 0x9D9C + .incbin "baserom.nds", 0x1281E0, 0x4DB0 + .incbin "baserom.nds", 0x12CF90, 0x39F0 + .incbin "baserom.nds", 0x130980, 0x7BC + .incbin "baserom.nds", 0x13113C, 0x1A10 + .balign 4, 255 diff --git a/narc/fielddata/area_move_model/move_model_list.narc.s b/narc/fielddata/area_move_model/move_model_list.narc.s new file mode 100644 index 00000000..ea27aa2a --- /dev/null +++ b/narc/fielddata/area_move_model/move_model_list.narc.s @@ -0,0 +1,144 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x000004D8 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000001E4 ; chunk size + .short 59 ; number of files + .balign 4 + .word 0x00000000, 0x00000004 + .word 0x00000004, 0x00000008 + .word 0x00000008, 0x0000000C + .word 0x0000000C, 0x00000010 + .word 0x00000010, 0x00000014 + .word 0x00000014, 0x00000040 + .word 0x00000040, 0x0000006C + .word 0x0000006C, 0x00000098 + .word 0x00000098, 0x000000C4 + .word 0x000000C4, 0x000000F0 + .word 0x000000F0, 0x0000011C + .word 0x0000011C, 0x00000148 + .word 0x00000148, 0x00000174 + .word 0x00000174, 0x000001A0 + .word 0x000001A0, 0x000001CC + .word 0x000001CC, 0x000001F8 + .word 0x000001F8, 0x00000224 + .word 0x00000224, 0x00000228 + .word 0x00000228, 0x0000022C + .word 0x0000022C, 0x00000230 + .word 0x00000230, 0x00000234 + .word 0x00000234, 0x00000238 + .word 0x00000238, 0x0000023C + .word 0x0000023C, 0x00000240 + .word 0x00000240, 0x00000244 + .word 0x00000244, 0x00000248 + .word 0x00000248, 0x0000024C + .word 0x0000024C, 0x00000250 + .word 0x00000250, 0x00000254 + .word 0x00000254, 0x00000258 + .word 0x00000258, 0x0000025C + .word 0x0000025C, 0x00000260 + .word 0x00000260, 0x00000264 + .word 0x00000264, 0x00000268 + .word 0x00000268, 0x0000026C + .word 0x0000026C, 0x00000270 + .word 0x00000270, 0x00000274 + .word 0x00000274, 0x00000278 + .word 0x00000278, 0x0000027C + .word 0x0000027C, 0x00000280 + .word 0x00000280, 0x00000284 + .word 0x00000284, 0x00000288 + .word 0x00000288, 0x0000028C + .word 0x0000028C, 0x00000290 + .word 0x00000290, 0x00000294 + .word 0x00000294, 0x00000298 + .word 0x00000298, 0x0000029C + .word 0x0000029C, 0x000002A0 + .word 0x000002A0, 0x000002A4 + .word 0x000002A4, 0x000002A8 + .word 0x000002A8, 0x000002AC + .word 0x000002AC, 0x000002B0 + .word 0x000002B0, 0x000002B4 + .word 0x000002B4, 0x000002B8 + .word 0x000002B8, 0x000002BC + .word 0x000002BC, 0x000002C0 + .word 0x000002C0, 0x000002C4 + .word 0x000002C4, 0x000002C8 + .word 0x000002C8, 0x000002CC + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000002D4 ; chunk size + .incbin "baserom.nds", 0x0, 0x4 + .incbin "baserom.nds", 0x4, 0x4 + .incbin "baserom.nds", 0x8, 0x4 + .incbin "baserom.nds", 0xC, 0x4 + .incbin "baserom.nds", 0x10, 0x4 + .incbin "baserom.nds", 0x14, 0x2C + .incbin "baserom.nds", 0x40, 0x2C + .incbin "baserom.nds", 0x6C, 0x2C + .incbin "baserom.nds", 0x98, 0x2C + .incbin "baserom.nds", 0xC4, 0x2C + .incbin "baserom.nds", 0xF0, 0x2C + .incbin "baserom.nds", 0x11C, 0x2C + .incbin "baserom.nds", 0x148, 0x2C + .incbin "baserom.nds", 0x174, 0x2C + .incbin "baserom.nds", 0x1A0, 0x2C + .incbin "baserom.nds", 0x1CC, 0x2C + .incbin "baserom.nds", 0x1F8, 0x2C + .incbin "baserom.nds", 0x224, 0x4 + .incbin "baserom.nds", 0x228, 0x4 + .incbin "baserom.nds", 0x22C, 0x4 + .incbin "baserom.nds", 0x230, 0x4 + .incbin "baserom.nds", 0x234, 0x4 + .incbin "baserom.nds", 0x238, 0x4 + .incbin "baserom.nds", 0x23C, 0x4 + .incbin "baserom.nds", 0x240, 0x4 + .incbin "baserom.nds", 0x244, 0x4 + .incbin "baserom.nds", 0x248, 0x4 + .incbin "baserom.nds", 0x24C, 0x4 + .incbin "baserom.nds", 0x250, 0x4 + .incbin "baserom.nds", 0x254, 0x4 + .incbin "baserom.nds", 0x258, 0x4 + .incbin "baserom.nds", 0x25C, 0x4 + .incbin "baserom.nds", 0x260, 0x4 + .incbin "baserom.nds", 0x264, 0x4 + .incbin "baserom.nds", 0x268, 0x4 + .incbin "baserom.nds", 0x26C, 0x4 + .incbin "baserom.nds", 0x270, 0x4 + .incbin "baserom.nds", 0x274, 0x4 + .incbin "baserom.nds", 0x278, 0x4 + .incbin "baserom.nds", 0x27C, 0x4 + .incbin "baserom.nds", 0x280, 0x4 + .incbin "baserom.nds", 0x284, 0x4 + .incbin "baserom.nds", 0x288, 0x4 + .incbin "baserom.nds", 0x28C, 0x4 + .incbin "baserom.nds", 0x290, 0x4 + .incbin "baserom.nds", 0x294, 0x4 + .incbin "baserom.nds", 0x298, 0x4 + .incbin "baserom.nds", 0x29C, 0x4 + .incbin "baserom.nds", 0x2A0, 0x4 + .incbin "baserom.nds", 0x2A4, 0x4 + .incbin "baserom.nds", 0x2A8, 0x4 + .incbin "baserom.nds", 0x2AC, 0x4 + .incbin "baserom.nds", 0x2B0, 0x4 + .incbin "baserom.nds", 0x2B4, 0x4 + .incbin "baserom.nds", 0x2B8, 0x4 + .incbin "baserom.nds", 0x2BC, 0x4 + .incbin "baserom.nds", 0x2C0, 0x4 + .incbin "baserom.nds", 0x2C4, 0x4 + .incbin "baserom.nds", 0x2C8, 0x4 + .balign 4, 255 diff --git a/narc/graphic/b_bag_gra.narc.s b/narc/graphic/b_bag_gra.narc.s new file mode 100644 index 00000000..cd836341 --- /dev/null +++ b/narc/graphic/b_bag_gra.narc.s @@ -0,0 +1,34 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00004F04 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000002C ; chunk size + .short 4 ; number of files + .balign 4 + .word 0x00000000, 0x00002024 + .word 0x00002024, 0x00003048 + .word 0x00003048, 0x00004C88 + .word 0x00004C88, 0x00004EB0 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00004EB8 ; chunk size + .incbin "baserom.nds", 0x0, 0x2024 + .incbin "baserom.nds", 0x2024, 0x1024 + .incbin "baserom.nds", 0x3048, 0x1C40 + .incbin "baserom.nds", 0x4C88, 0x228 + .balign 4, 255 diff --git a/narc/graphic/b_plist_gra.narc.s b/narc/graphic/b_plist_gra.narc.s new file mode 100644 index 00000000..63494f91 --- /dev/null +++ b/narc/graphic/b_plist_gra.narc.s @@ -0,0 +1,82 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x000122A8 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000000EC ; chunk size + .short 28 ; number of files + .balign 4 + .word 0x00000000, 0x00000624 + .word 0x00000624, 0x00000C48 + .word 0x00000C48, 0x0000126C + .word 0x0000126C, 0x00001890 + .word 0x00001890, 0x00001EB4 + .word 0x00001EB4, 0x000024D8 + .word 0x000024D8, 0x00002AFC + .word 0x00002AFC, 0x00003120 + .word 0x00003120, 0x00003744 + .word 0x00003744, 0x00003D68 + .word 0x00003D68, 0x0000438C + .word 0x0000438C, 0x000049B0 + .word 0x000049B0, 0x00004FD4 + .word 0x00004FD4, 0x000055F8 + .word 0x000055F8, 0x00005C1C + .word 0x00005C1C, 0x00006240 + .word 0x00006240, 0x00006864 + .word 0x00006864, 0x00006E88 + .word 0x00006E88, 0x000074AC + .word 0x000074AC, 0x00007AD0 + .word 0x00007AD0, 0x00008A34 + .word 0x00008A34, 0x00009A18 + .word 0x00009A18, 0x00011A58 + .word 0x00011A58, 0x00011C80 + .word 0x00011C80, 0x00011D9B + .word 0x00011D9C, 0x00011E9B + .word 0x00011E9C, 0x00011F6C + .word 0x00011F6C, 0x00012194 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0001219C ; chunk size + .incbin "baserom.nds", 0x0, 0x624 + .incbin "baserom.nds", 0x624, 0x624 + .incbin "baserom.nds", 0xC48, 0x624 + .incbin "baserom.nds", 0x126C, 0x624 + .incbin "baserom.nds", 0x1890, 0x624 + .incbin "baserom.nds", 0x1EB4, 0x624 + .incbin "baserom.nds", 0x24D8, 0x624 + .incbin "baserom.nds", 0x2AFC, 0x624 + .incbin "baserom.nds", 0x3120, 0x624 + .incbin "baserom.nds", 0x3744, 0x624 + .incbin "baserom.nds", 0x3D68, 0x624 + .incbin "baserom.nds", 0x438C, 0x624 + .incbin "baserom.nds", 0x49B0, 0x624 + .incbin "baserom.nds", 0x4FD4, 0x624 + .incbin "baserom.nds", 0x55F8, 0x624 + .incbin "baserom.nds", 0x5C1C, 0x624 + .incbin "baserom.nds", 0x6240, 0x624 + .incbin "baserom.nds", 0x6864, 0x624 + .incbin "baserom.nds", 0x6E88, 0x624 + .incbin "baserom.nds", 0x74AC, 0x624 + .incbin "baserom.nds", 0x7AD0, 0xF64 + .incbin "baserom.nds", 0x8A34, 0xFE4 + .incbin "baserom.nds", 0x9A18, 0x8040 + .incbin "baserom.nds", 0x11A58, 0x228 + .incbin "baserom.nds", 0x11C80, 0x11B + .incbin "baserom.nds", 0x11D9C, 0xFF + .incbin "baserom.nds", 0x11E9C, 0xD0 + .incbin "baserom.nds", 0x11F6C, 0x228 + .balign 4, 255 diff --git a/narc/graphic/bag_gra.narc.s b/narc/graphic/bag_gra.narc.s new file mode 100644 index 00000000..92c1aa1e --- /dev/null +++ b/narc/graphic/bag_gra.narc.s @@ -0,0 +1,104 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00019C74 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000144 ; chunk size + .short 39 ; number of files + .balign 4 + .word 0x00000000, 0x0000055C + .word 0x0000055C, 0x00000708 + .word 0x00000708, 0x00004738 + .word 0x00004738, 0x00004960 + .word 0x00004960, 0x00004A50 + .word 0x00004A50, 0x00004B28 + .word 0x00004B28, 0x00004C58 + .word 0x00004C58, 0x00006898 + .word 0x00006898, 0x00006AC0 + .word 0x00006AC0, 0x000072E4 + .word 0x000072E4, 0x00007B08 + .word 0x00007B08, 0x00008B48 + .word 0x00008B48, 0x00008D70 + .word 0x00008D70, 0x00009394 + .word 0x00009394, 0x000095BC + .word 0x000095BC, 0x0000FB3C + .word 0x0000FB3C, 0x0000FD64 + .word 0x0000FD64, 0x000105A4 + .word 0x000105A4, 0x000107CC + .word 0x000107CC, 0x0001083B + .word 0x0001083C, 0x000108A7 + .word 0x000108A8, 0x00010958 + .word 0x00010958, 0x000109C7 + .word 0x000109C8, 0x00010A43 + .word 0x00010A44, 0x000113F4 + .word 0x000113F4, 0x00011463 + .word 0x00011464, 0x000114E7 + .word 0x000114E8, 0x00011998 + .word 0x00011998, 0x00011A17 + .word 0x00011A18, 0x00011AAB + .word 0x00011AAC, 0x000134DC + .word 0x000134DC, 0x00013704 + .word 0x00013704, 0x00013C60 + .word 0x00013C60, 0x00013E0C + .word 0x00013E0C, 0x00017E3C + .word 0x00017E3C, 0x00018064 + .word 0x00018064, 0x00018488 + .word 0x00018488, 0x000198C8 + .word 0x000198C8, 0x00019B08 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00019B10 ; chunk size + .incbin "baserom.nds", 0x0, 0x55C + .incbin "baserom.nds", 0x55C, 0x1AC + .incbin "baserom.nds", 0x708, 0x4030 + .incbin "baserom.nds", 0x4738, 0x228 + .incbin "baserom.nds", 0x4960, 0xF0 + .incbin "baserom.nds", 0x4A50, 0xD8 + .incbin "baserom.nds", 0x4B28, 0x130 + .incbin "baserom.nds", 0x4C58, 0x1C40 + .incbin "baserom.nds", 0x6898, 0x228 + .incbin "baserom.nds", 0x6AC0, 0x824 + .incbin "baserom.nds", 0x72E4, 0x824 + .incbin "baserom.nds", 0x7B08, 0x1040 + .incbin "baserom.nds", 0x8B48, 0x228 + .incbin "baserom.nds", 0x8D70, 0x624 + .incbin "baserom.nds", 0x9394, 0x228 + .incbin "baserom.nds", 0x95BC, 0x6580 + .incbin "baserom.nds", 0xFB3C, 0x228 + .incbin "baserom.nds", 0xFD64, 0x840 + .incbin "baserom.nds", 0x105A4, 0x228 + .incbin "baserom.nds", 0x107CC, 0x6F + .incbin "baserom.nds", 0x1083C, 0x6B + .incbin "baserom.nds", 0x108A8, 0xB0 + .incbin "baserom.nds", 0x10958, 0x6F + .incbin "baserom.nds", 0x109C8, 0x7B + .incbin "baserom.nds", 0x10A44, 0x9B0 + .incbin "baserom.nds", 0x113F4, 0x6F + .incbin "baserom.nds", 0x11464, 0x83 + .incbin "baserom.nds", 0x114E8, 0x4B0 + .incbin "baserom.nds", 0x11998, 0x7F + .incbin "baserom.nds", 0x11A18, 0x93 + .incbin "baserom.nds", 0x11AAC, 0x1A30 + .incbin "baserom.nds", 0x134DC, 0x228 + .incbin "baserom.nds", 0x13704, 0x55C + .incbin "baserom.nds", 0x13C60, 0x1AC + .incbin "baserom.nds", 0x13E0C, 0x4030 + .incbin "baserom.nds", 0x17E3C, 0x228 + .incbin "baserom.nds", 0x18064, 0x424 + .incbin "baserom.nds", 0x18488, 0x1440 + .incbin "baserom.nds", 0x198C8, 0x240 + .balign 4, 255 diff --git a/narc/graphic/batt_bg.narc.s b/narc/graphic/batt_bg.narc.s new file mode 100644 index 00000000..e1a9e8dc --- /dev/null +++ b/narc/graphic/batt_bg.narc.s @@ -0,0 +1,540 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0009C47C ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000814 ; chunk size + .short 257 ; number of files + .balign 4 + .word 0x00000000, 0x00000FC4 + .word 0x00000FC4, 0x0000110C + .word 0x0000110C, 0x00001D2C + .word 0x00001D2C, 0x00004A74 + .word 0x00004A74, 0x00007BA0 + .word 0x00007BA0, 0x0000C1F0 + .word 0x0000C1F0, 0x000114A4 + .word 0x000114A4, 0x00015D24 + .word 0x00015D24, 0x0001A980 + .word 0x0001A980, 0x0001E654 + .word 0x0001E654, 0x00021EC0 + .word 0x00021EC0, 0x00026484 + .word 0x00026484, 0x00029500 + .word 0x00029500, 0x0002C3A0 + .word 0x0002C3A0, 0x0002E9E0 + .word 0x0002E9E0, 0x0002FC30 + .word 0x0002FC30, 0x0002FE44 + .word 0x0002FE44, 0x000311D0 + .word 0x000311D0, 0x0003229C + .word 0x0003229C, 0x00033330 + .word 0x00033330, 0x0003442C + .word 0x0003442C, 0x00035584 + .word 0x00035584, 0x00036690 + .word 0x00036690, 0x000377EC + .word 0x000377EC, 0x00038854 + .word 0x00038854, 0x000398B0 + .word 0x000398B0, 0x0003AB7C + .word 0x0003AB7C, 0x0003BF04 + .word 0x0003BF04, 0x0003CFD0 + .word 0x0003CFD0, 0x0003DF74 + .word 0x0003DF74, 0x0003E0B0 + .word 0x0003E0B0, 0x0003E308 + .word 0x0003E308, 0x0003E588 + .word 0x0003E588, 0x0003E80C + .word 0x0003E80C, 0x0003EA10 + .word 0x0003EA10, 0x0003EB70 + .word 0x0003EB70, 0x0003ECBC + .word 0x0003ECBC, 0x0003EEBC + .word 0x0003EEBC, 0x0003F294 + .word 0x0003F294, 0x0003F6DC + .word 0x0003F6DC, 0x0003FEFC + .word 0x0003FEFC, 0x000401E8 + .word 0x000401E8, 0x000403BC + .word 0x000403BC, 0x000407D4 + .word 0x000407D4, 0x000409C0 + .word 0x000409C0, 0x00040DFC + .word 0x00040DFC, 0x00040F8C + .word 0x00040F8C, 0x000413C4 + .word 0x000413C4, 0x00041594 + .word 0x00041594, 0x000419AC + .word 0x000419AC, 0x00042000 + .word 0x00042000, 0x00042628 + .word 0x00042628, 0x00042C78 + .word 0x00042C78, 0x000447C0 + .word 0x000447C0, 0x00044E60 + .word 0x00044E60, 0x00045490 + .word 0x00045490, 0x00045B28 + .word 0x00045B28, 0x00047454 + .word 0x00047454, 0x00048A8C + .word 0x00048A8C, 0x000490C4 + .word 0x000490C4, 0x00049744 + .word 0x00049744, 0x00049D44 + .word 0x00049D44, 0x0004A340 + .word 0x0004A340, 0x0004A940 + .word 0x0004A940, 0x0004B73C + .word 0x0004B73C, 0x0004BD04 + .word 0x0004BD04, 0x0004CB38 + .word 0x0004CB38, 0x0004CF14 + .word 0x0004CF14, 0x0004D9B0 + .word 0x0004D9B0, 0x0004E8BC + .word 0x0004E8BC, 0x0004F358 + .word 0x0004F358, 0x0004F574 + .word 0x0004F574, 0x0004F78C + .word 0x0004F78C, 0x0004FF58 + .word 0x0004FF58, 0x0005057C + .word 0x0005057C, 0x00050BB4 + .word 0x00050BB4, 0x000511E4 + .word 0x000511E4, 0x00052310 + .word 0x00052310, 0x00054388 + .word 0x00054388, 0x000548A8 + .word 0x000548A8, 0x00054EC8 + .word 0x00054EC8, 0x00055530 + .word 0x00055530, 0x00055B54 + .word 0x00055B54, 0x00057A28 + .word 0x00057A28, 0x00057F64 + .word 0x00057F64, 0x0005842C + .word 0x0005842C, 0x00058968 + .word 0x00058968, 0x0005AF2C + .word 0x0005AF2C, 0x0005C88C + .word 0x0005C88C, 0x0005D110 + .word 0x0005D110, 0x0005F5EC + .word 0x0005F5EC, 0x0005FC14 + .word 0x0005FC14, 0x0006028C + .word 0x0006028C, 0x00063234 + .word 0x00063234, 0x000638B4 + .word 0x000638B4, 0x00063E48 + .word 0x00063E48, 0x000643D4 + .word 0x000643D4, 0x00064968 + .word 0x00064968, 0x00064E48 + .word 0x00064E48, 0x00067090 + .word 0x00067090, 0x00068454 + .word 0x00068454, 0x00068964 + .word 0x00068964, 0x00068DA8 + .word 0x00068DA8, 0x00068F24 + .word 0x00068F24, 0x000694DC + .word 0x000694DC, 0x00069A70 + .word 0x00069A70, 0x0006A02C + .word 0x0006A02C, 0x0006BFE4 + .word 0x0006BFE4, 0x0006CC80 + .word 0x0006CC80, 0x0006D2B8 + .word 0x0006D2B8, 0x0006E2C0 + .word 0x0006E2C0, 0x0006E9C0 + .word 0x0006E9C0, 0x000700F8 + .word 0x000700F8, 0x00070704 + .word 0x00070704, 0x00072774 + .word 0x00072774, 0x00072DF8 + .word 0x00072DF8, 0x000736D4 + .word 0x000736D4, 0x00074890 + .word 0x00074890, 0x0007516C + .word 0x0007516C, 0x00075AEC + .word 0x00075AEC, 0x00075D5C + .word 0x00075D5C, 0x00075FCC + .word 0x00075FCC, 0x00076DD4 + .word 0x00076DD4, 0x000770EC + .word 0x000770EC, 0x000775A0 + .word 0x000775A0, 0x00077A54 + .word 0x00077A54, 0x00079200 + .word 0x00079200, 0x0007A754 + .word 0x0007A754, 0x0007AD6C + .word 0x0007AD6C, 0x0007B6EC + .word 0x0007B6EC, 0x0007B95C + .word 0x0007B95C, 0x0007BEBC + .word 0x0007BEBC, 0x0007C410 + .word 0x0007C410, 0x0007C96C + .word 0x0007C96C, 0x0007E844 + .word 0x0007E844, 0x0007EFA0 + .word 0x0007EFA0, 0x0007F6FC + .word 0x0007F6FC, 0x0007FE58 + .word 0x0007FE58, 0x00082454 + .word 0x00082454, 0x00082E88 + .word 0x00082E88, 0x00083000 + .word 0x00083000, 0x00085B70 + .word 0x00085B70, 0x0008608C + .word 0x0008608C, 0x00088550 + .word 0x00088550, 0x00088A40 + .word 0x00088A40, 0x0008917C + .word 0x0008917C, 0x000898A4 + .word 0x000898A4, 0x00089FE0 + .word 0x00089FE0, 0x0008C8F4 + .word 0x0008C8F4, 0x0008D684 + .word 0x0008D684, 0x0008DC9C + .word 0x0008DC9C, 0x0008ECF4 + .word 0x0008ECF4, 0x0008EF80 + .word 0x0008EF80, 0x0008F20C + .word 0x0008F20C, 0x0008FA80 + .word 0x0008FA80, 0x0008FEC8 + .word 0x0008FEC8, 0x000902FC + .word 0x000902FC, 0x00090524 + .word 0x00090524, 0x0009074C + .word 0x0009074C, 0x00090974 + .word 0x00090974, 0x00090B9C + .word 0x00090B9C, 0x00090DC4 + .word 0x00090DC4, 0x00090FEC + .word 0x00090FEC, 0x00091214 + .word 0x00091214, 0x0009143C + .word 0x0009143C, 0x00091664 + .word 0x00091664, 0x0009188C + .word 0x0009188C, 0x00091AB4 + .word 0x00091AB4, 0x00091CDC + .word 0x00091CDC, 0x00091F04 + .word 0x00091F04, 0x0009212C + .word 0x0009212C, 0x00092354 + .word 0x00092354, 0x0009257C + .word 0x0009257C, 0x000927A4 + .word 0x000927A4, 0x000929CC + .word 0x000929CC, 0x00092BF4 + .word 0x00092BF4, 0x00092E1C + .word 0x00092E1C, 0x00093044 + .word 0x00093044, 0x0009326C + .word 0x0009326C, 0x00093494 + .word 0x00093494, 0x000936BC + .word 0x000936BC, 0x000938E4 + .word 0x000938E4, 0x00093B0C + .word 0x00093B0C, 0x00093D34 + .word 0x00093D34, 0x00093F5C + .word 0x00093F5C, 0x00094184 + .word 0x00094184, 0x000943AC + .word 0x000943AC, 0x000945D4 + .word 0x000945D4, 0x000947FC + .word 0x000947FC, 0x00094A24 + .word 0x00094A24, 0x00094C4C + .word 0x00094C4C, 0x00094E74 + .word 0x00094E74, 0x0009509C + .word 0x0009509C, 0x000952C4 + .word 0x000952C4, 0x000954EC + .word 0x000954EC, 0x00095714 + .word 0x00095714, 0x0009576E + .word 0x00095770, 0x000957CA + .word 0x000957CC, 0x00095FF0 + .word 0x00095FF0, 0x00096814 + .word 0x00096814, 0x00098838 + .word 0x00098838, 0x0009A85C + .word 0x0009A85C, 0x0009A8B6 + .word 0x0009A8B8, 0x0009A912 + .word 0x0009A914, 0x0009A96E + .word 0x0009A970, 0x0009A9CA + .word 0x0009A9CC, 0x0009AA26 + .word 0x0009AA28, 0x0009AA82 + .word 0x0009AA84, 0x0009AADE + .word 0x0009AAE0, 0x0009AB3A + .word 0x0009AB3C, 0x0009AB96 + .word 0x0009AB98, 0x0009ABF2 + .word 0x0009ABF4, 0x0009AC4E + .word 0x0009AC50, 0x0009ACAA + .word 0x0009ACAC, 0x0009AD06 + .word 0x0009AD08, 0x0009AD62 + .word 0x0009AD64, 0x0009ADE0 + .word 0x0009ADE0, 0x0009AE3A + .word 0x0009AE3C, 0x0009AE96 + .word 0x0009AE98, 0x0009AEF2 + .word 0x0009AEF4, 0x0009AF4E + .word 0x0009AF50, 0x0009AFAA + .word 0x0009AFAC, 0x0009B006 + .word 0x0009B008, 0x0009B062 + .word 0x0009B064, 0x0009B0BE + .word 0x0009B0C0, 0x0009B11A + .word 0x0009B11C, 0x0009B176 + .word 0x0009B178, 0x0009B1D2 + .word 0x0009B1D4, 0x0009B22E + .word 0x0009B230, 0x0009B28A + .word 0x0009B28C, 0x0009B2E6 + .word 0x0009B2E8, 0x0009B342 + .word 0x0009B344, 0x0009B39E + .word 0x0009B3A0, 0x0009B3FA + .word 0x0009B3FC, 0x0009B456 + .word 0x0009B458, 0x0009B4B2 + .word 0x0009B4B4, 0x0009B50E + .word 0x0009B510, 0x0009B56A + .word 0x0009B56C, 0x0009B5C6 + .word 0x0009B5C8, 0x0009B622 + .word 0x0009B624, 0x0009B67E + .word 0x0009B680, 0x0009B6DA + .word 0x0009B6DC, 0x0009B736 + .word 0x0009B738, 0x0009B792 + .word 0x0009B794, 0x0009B7EE + .word 0x0009B7F0, 0x0009B84A + .word 0x0009B84C, 0x0009B8A6 + .word 0x0009B8A8, 0x0009B902 + .word 0x0009B904, 0x0009B95E + .word 0x0009B960, 0x0009B9BA + .word 0x0009B9BC, 0x0009BA16 + .word 0x0009BA18, 0x0009BA72 + .word 0x0009BA74, 0x0009BACE + .word 0x0009BAD0, 0x0009BB2A + .word 0x0009BB2C, 0x0009BB86 + .word 0x0009BB88, 0x0009BBE2 + .word 0x0009BBE4, 0x0009BC3E + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0009BC48 ; chunk size + .incbin "baserom.nds", 0x0, 0xFC4 + .incbin "baserom.nds", 0xFC4, 0x148 + .incbin "baserom.nds", 0x110C, 0xC20 + .incbin "baserom.nds", 0x1D2C, 0x2D48 + .incbin "baserom.nds", 0x4A74, 0x312C + .incbin "baserom.nds", 0x7BA0, 0x4650 + .incbin "baserom.nds", 0xC1F0, 0x52B4 + .incbin "baserom.nds", 0x114A4, 0x4880 + .incbin "baserom.nds", 0x15D24, 0x4C5C + .incbin "baserom.nds", 0x1A980, 0x3CD4 + .incbin "baserom.nds", 0x1E654, 0x386C + .incbin "baserom.nds", 0x21EC0, 0x45C4 + .incbin "baserom.nds", 0x26484, 0x307C + .incbin "baserom.nds", 0x29500, 0x2EA0 + .incbin "baserom.nds", 0x2C3A0, 0x2640 + .incbin "baserom.nds", 0x2E9E0, 0x1250 + .incbin "baserom.nds", 0x2FC30, 0x214 + .incbin "baserom.nds", 0x2FE44, 0x138C + .incbin "baserom.nds", 0x311D0, 0x10CC + .incbin "baserom.nds", 0x3229C, 0x1094 + .incbin "baserom.nds", 0x33330, 0x10FC + .incbin "baserom.nds", 0x3442C, 0x1158 + .incbin "baserom.nds", 0x35584, 0x110C + .incbin "baserom.nds", 0x36690, 0x115C + .incbin "baserom.nds", 0x377EC, 0x1068 + .incbin "baserom.nds", 0x38854, 0x105C + .incbin "baserom.nds", 0x398B0, 0x12CC + .incbin "baserom.nds", 0x3AB7C, 0x1388 + .incbin "baserom.nds", 0x3BF04, 0x10CC + .incbin "baserom.nds", 0x3CFD0, 0xFA4 + .incbin "baserom.nds", 0x3DF74, 0x13C + .incbin "baserom.nds", 0x3E0B0, 0x258 + .incbin "baserom.nds", 0x3E308, 0x280 + .incbin "baserom.nds", 0x3E588, 0x284 + .incbin "baserom.nds", 0x3E80C, 0x204 + .incbin "baserom.nds", 0x3EA10, 0x160 + .incbin "baserom.nds", 0x3EB70, 0x14C + .incbin "baserom.nds", 0x3ECBC, 0x200 + .incbin "baserom.nds", 0x3EEBC, 0x3D8 + .incbin "baserom.nds", 0x3F294, 0x448 + .incbin "baserom.nds", 0x3F6DC, 0x820 + .incbin "baserom.nds", 0x3FEFC, 0x2EC + .incbin "baserom.nds", 0x401E8, 0x1D4 + .incbin "baserom.nds", 0x403BC, 0x418 + .incbin "baserom.nds", 0x407D4, 0x1EC + .incbin "baserom.nds", 0x409C0, 0x43C + .incbin "baserom.nds", 0x40DFC, 0x190 + .incbin "baserom.nds", 0x40F8C, 0x438 + .incbin "baserom.nds", 0x413C4, 0x1D0 + .incbin "baserom.nds", 0x41594, 0x418 + .incbin "baserom.nds", 0x419AC, 0x654 + .incbin "baserom.nds", 0x42000, 0x628 + .incbin "baserom.nds", 0x42628, 0x650 + .incbin "baserom.nds", 0x42C78, 0x1B48 + .incbin "baserom.nds", 0x447C0, 0x6A0 + .incbin "baserom.nds", 0x44E60, 0x630 + .incbin "baserom.nds", 0x45490, 0x698 + .incbin "baserom.nds", 0x45B28, 0x192C + .incbin "baserom.nds", 0x47454, 0x1638 + .incbin "baserom.nds", 0x48A8C, 0x638 + .incbin "baserom.nds", 0x490C4, 0x680 + .incbin "baserom.nds", 0x49744, 0x600 + .incbin "baserom.nds", 0x49D44, 0x5FC + .incbin "baserom.nds", 0x4A340, 0x600 + .incbin "baserom.nds", 0x4A940, 0xDFC + .incbin "baserom.nds", 0x4B73C, 0x5C8 + .incbin "baserom.nds", 0x4BD04, 0xE34 + .incbin "baserom.nds", 0x4CB38, 0x3DC + .incbin "baserom.nds", 0x4CF14, 0xA9C + .incbin "baserom.nds", 0x4D9B0, 0xF0C + .incbin "baserom.nds", 0x4E8BC, 0xA9C + .incbin "baserom.nds", 0x4F358, 0x21C + .incbin "baserom.nds", 0x4F574, 0x218 + .incbin "baserom.nds", 0x4F78C, 0x7CC + .incbin "baserom.nds", 0x4FF58, 0x624 + .incbin "baserom.nds", 0x5057C, 0x638 + .incbin "baserom.nds", 0x50BB4, 0x630 + .incbin "baserom.nds", 0x511E4, 0x112C + .incbin "baserom.nds", 0x52310, 0x2078 + .incbin "baserom.nds", 0x54388, 0x520 + .incbin "baserom.nds", 0x548A8, 0x620 + .incbin "baserom.nds", 0x54EC8, 0x668 + .incbin "baserom.nds", 0x55530, 0x624 + .incbin "baserom.nds", 0x55B54, 0x1ED4 + .incbin "baserom.nds", 0x57A28, 0x53C + .incbin "baserom.nds", 0x57F64, 0x4C8 + .incbin "baserom.nds", 0x5842C, 0x53C + .incbin "baserom.nds", 0x58968, 0x25C4 + .incbin "baserom.nds", 0x5AF2C, 0x1960 + .incbin "baserom.nds", 0x5C88C, 0x884 + .incbin "baserom.nds", 0x5D110, 0x24DC + .incbin "baserom.nds", 0x5F5EC, 0x628 + .incbin "baserom.nds", 0x5FC14, 0x678 + .incbin "baserom.nds", 0x6028C, 0x2FA8 + .incbin "baserom.nds", 0x63234, 0x680 + .incbin "baserom.nds", 0x638B4, 0x594 + .incbin "baserom.nds", 0x63E48, 0x58C + .incbin "baserom.nds", 0x643D4, 0x594 + .incbin "baserom.nds", 0x64968, 0x4E0 + .incbin "baserom.nds", 0x64E48, 0x2248 + .incbin "baserom.nds", 0x67090, 0x13C4 + .incbin "baserom.nds", 0x68454, 0x510 + .incbin "baserom.nds", 0x68964, 0x444 + .incbin "baserom.nds", 0x68DA8, 0x17C + .incbin "baserom.nds", 0x68F24, 0x5B8 + .incbin "baserom.nds", 0x694DC, 0x594 + .incbin "baserom.nds", 0x69A70, 0x5BC + .incbin "baserom.nds", 0x6A02C, 0x1FB8 + .incbin "baserom.nds", 0x6BFE4, 0xC9C + .incbin "baserom.nds", 0x6CC80, 0x638 + .incbin "baserom.nds", 0x6D2B8, 0x1008 + .incbin "baserom.nds", 0x6E2C0, 0x700 + .incbin "baserom.nds", 0x6E9C0, 0x1738 + .incbin "baserom.nds", 0x700F8, 0x60C + .incbin "baserom.nds", 0x70704, 0x2070 + .incbin "baserom.nds", 0x72774, 0x684 + .incbin "baserom.nds", 0x72DF8, 0x8DC + .incbin "baserom.nds", 0x736D4, 0x11BC + .incbin "baserom.nds", 0x74890, 0x8DC + .incbin "baserom.nds", 0x7516C, 0x980 + .incbin "baserom.nds", 0x75AEC, 0x270 + .incbin "baserom.nds", 0x75D5C, 0x270 + .incbin "baserom.nds", 0x75FCC, 0xE08 + .incbin "baserom.nds", 0x76DD4, 0x318 + .incbin "baserom.nds", 0x770EC, 0x4B4 + .incbin "baserom.nds", 0x775A0, 0x4B4 + .incbin "baserom.nds", 0x77A54, 0x17AC + .incbin "baserom.nds", 0x79200, 0x1554 + .incbin "baserom.nds", 0x7A754, 0x618 + .incbin "baserom.nds", 0x7AD6C, 0x980 + .incbin "baserom.nds", 0x7B6EC, 0x270 + .incbin "baserom.nds", 0x7B95C, 0x560 + .incbin "baserom.nds", 0x7BEBC, 0x554 + .incbin "baserom.nds", 0x7C410, 0x55C + .incbin "baserom.nds", 0x7C96C, 0x1ED8 + .incbin "baserom.nds", 0x7E844, 0x75C + .incbin "baserom.nds", 0x7EFA0, 0x75C + .incbin "baserom.nds", 0x7F6FC, 0x75C + .incbin "baserom.nds", 0x7FE58, 0x25FC + .incbin "baserom.nds", 0x82454, 0xA34 + .incbin "baserom.nds", 0x82E88, 0x178 + .incbin "baserom.nds", 0x83000, 0x2B70 + .incbin "baserom.nds", 0x85B70, 0x51C + .incbin "baserom.nds", 0x8608C, 0x24C4 + .incbin "baserom.nds", 0x88550, 0x4F0 + .incbin "baserom.nds", 0x88A40, 0x73C + .incbin "baserom.nds", 0x8917C, 0x728 + .incbin "baserom.nds", 0x898A4, 0x73C + .incbin "baserom.nds", 0x89FE0, 0x2914 + .incbin "baserom.nds", 0x8C8F4, 0xD90 + .incbin "baserom.nds", 0x8D684, 0x618 + .incbin "baserom.nds", 0x8DC9C, 0x1058 + .incbin "baserom.nds", 0x8ECF4, 0x28C + .incbin "baserom.nds", 0x8EF80, 0x28C + .incbin "baserom.nds", 0x8F20C, 0x874 + .incbin "baserom.nds", 0x8FA80, 0x448 + .incbin "baserom.nds", 0x8FEC8, 0x434 + .incbin "baserom.nds", 0x902FC, 0x228 + .incbin "baserom.nds", 0x90524, 0x228 + .incbin "baserom.nds", 0x9074C, 0x228 + .incbin "baserom.nds", 0x90974, 0x228 + .incbin "baserom.nds", 0x90B9C, 0x228 + .incbin "baserom.nds", 0x90DC4, 0x228 + .incbin "baserom.nds", 0x90FEC, 0x228 + .incbin "baserom.nds", 0x91214, 0x228 + .incbin "baserom.nds", 0x9143C, 0x228 + .incbin "baserom.nds", 0x91664, 0x228 + .incbin "baserom.nds", 0x9188C, 0x228 + .incbin "baserom.nds", 0x91AB4, 0x228 + .incbin "baserom.nds", 0x91CDC, 0x228 + .incbin "baserom.nds", 0x91F04, 0x228 + .incbin "baserom.nds", 0x9212C, 0x228 + .incbin "baserom.nds", 0x92354, 0x228 + .incbin "baserom.nds", 0x9257C, 0x228 + .incbin "baserom.nds", 0x927A4, 0x228 + .incbin "baserom.nds", 0x929CC, 0x228 + .incbin "baserom.nds", 0x92BF4, 0x228 + .incbin "baserom.nds", 0x92E1C, 0x228 + .incbin "baserom.nds", 0x93044, 0x228 + .incbin "baserom.nds", 0x9326C, 0x228 + .incbin "baserom.nds", 0x93494, 0x228 + .incbin "baserom.nds", 0x936BC, 0x228 + .incbin "baserom.nds", 0x938E4, 0x228 + .incbin "baserom.nds", 0x93B0C, 0x228 + .incbin "baserom.nds", 0x93D34, 0x228 + .incbin "baserom.nds", 0x93F5C, 0x228 + .incbin "baserom.nds", 0x94184, 0x228 + .incbin "baserom.nds", 0x943AC, 0x228 + .incbin "baserom.nds", 0x945D4, 0x228 + .incbin "baserom.nds", 0x947FC, 0x228 + .incbin "baserom.nds", 0x94A24, 0x228 + .incbin "baserom.nds", 0x94C4C, 0x228 + .incbin "baserom.nds", 0x94E74, 0x228 + .incbin "baserom.nds", 0x9509C, 0x228 + .incbin "baserom.nds", 0x952C4, 0x228 + .incbin "baserom.nds", 0x954EC, 0x228 + .incbin "baserom.nds", 0x95714, 0x5A + .incbin "baserom.nds", 0x95770, 0x5A + .incbin "baserom.nds", 0x957CC, 0x824 + .incbin "baserom.nds", 0x95FF0, 0x824 + .incbin "baserom.nds", 0x96814, 0x2024 + .incbin "baserom.nds", 0x98838, 0x2024 + .incbin "baserom.nds", 0x9A85C, 0x5A + .incbin "baserom.nds", 0x9A8B8, 0x5A + .incbin "baserom.nds", 0x9A914, 0x5A + .incbin "baserom.nds", 0x9A970, 0x5A + .incbin "baserom.nds", 0x9A9CC, 0x5A + .incbin "baserom.nds", 0x9AA28, 0x5A + .incbin "baserom.nds", 0x9AA84, 0x5A + .incbin "baserom.nds", 0x9AAE0, 0x5A + .incbin "baserom.nds", 0x9AB3C, 0x5A + .incbin "baserom.nds", 0x9AB98, 0x5A + .incbin "baserom.nds", 0x9ABF4, 0x5A + .incbin "baserom.nds", 0x9AC50, 0x5A + .incbin "baserom.nds", 0x9ACAC, 0x5A + .incbin "baserom.nds", 0x9AD08, 0x5A + .incbin "baserom.nds", 0x9AD64, 0x7C + .incbin "baserom.nds", 0x9ADE0, 0x5A + .incbin "baserom.nds", 0x9AE3C, 0x5A + .incbin "baserom.nds", 0x9AE98, 0x5A + .incbin "baserom.nds", 0x9AEF4, 0x5A + .incbin "baserom.nds", 0x9AF50, 0x5A + .incbin "baserom.nds", 0x9AFAC, 0x5A + .incbin "baserom.nds", 0x9B008, 0x5A + .incbin "baserom.nds", 0x9B064, 0x5A + .incbin "baserom.nds", 0x9B0C0, 0x5A + .incbin "baserom.nds", 0x9B11C, 0x5A + .incbin "baserom.nds", 0x9B178, 0x5A + .incbin "baserom.nds", 0x9B1D4, 0x5A + .incbin "baserom.nds", 0x9B230, 0x5A + .incbin "baserom.nds", 0x9B28C, 0x5A + .incbin "baserom.nds", 0x9B2E8, 0x5A + .incbin "baserom.nds", 0x9B344, 0x5A + .incbin "baserom.nds", 0x9B3A0, 0x5A + .incbin "baserom.nds", 0x9B3FC, 0x5A + .incbin "baserom.nds", 0x9B458, 0x5A + .incbin "baserom.nds", 0x9B4B4, 0x5A + .incbin "baserom.nds", 0x9B510, 0x5A + .incbin "baserom.nds", 0x9B56C, 0x5A + .incbin "baserom.nds", 0x9B5C8, 0x5A + .incbin "baserom.nds", 0x9B624, 0x5A + .incbin "baserom.nds", 0x9B680, 0x5A + .incbin "baserom.nds", 0x9B6DC, 0x5A + .incbin "baserom.nds", 0x9B738, 0x5A + .incbin "baserom.nds", 0x9B794, 0x5A + .incbin "baserom.nds", 0x9B7F0, 0x5A + .incbin "baserom.nds", 0x9B84C, 0x5A + .incbin "baserom.nds", 0x9B8A8, 0x5A + .incbin "baserom.nds", 0x9B904, 0x5A + .incbin "baserom.nds", 0x9B960, 0x5A + .incbin "baserom.nds", 0x9B9BC, 0x5A + .incbin "baserom.nds", 0x9BA18, 0x5A + .incbin "baserom.nds", 0x9BA74, 0x5A + .incbin "baserom.nds", 0x9BAD0, 0x5A + .incbin "baserom.nds", 0x9BB2C, 0x5A + .incbin "baserom.nds", 0x9BB88, 0x5A + .incbin "baserom.nds", 0x9BBE4, 0x5A + .balign 4, 255 diff --git a/narc/graphic/batt_obj.narc.s b/narc/graphic/batt_obj.narc.s new file mode 100644 index 00000000..eadd4a0c --- /dev/null +++ b/narc/graphic/batt_obj.narc.s @@ -0,0 +1,584 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0002025C ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000008C4 ; chunk size + .short 279 ; number of files + .balign 4 + .word 0x00000000, 0x00000228 + .word 0x00000228, 0x00000282 + .word 0x00000284, 0x000002DE + .word 0x000002E0, 0x0000033A + .word 0x0000033C, 0x00000396 + .word 0x00000398, 0x000003F2 + .word 0x000003F4, 0x0000044E + .word 0x00000450, 0x000004AA + .word 0x000004AC, 0x00000506 + .word 0x00000508, 0x00000562 + .word 0x00000564, 0x000005BE + .word 0x000005C0, 0x0000061A + .word 0x0000061C, 0x00000676 + .word 0x00000678, 0x000006D2 + .word 0x000006D4, 0x0000072E + .word 0x00000730, 0x0000078A + .word 0x0000078C, 0x000007E6 + .word 0x000007E8, 0x00000842 + .word 0x00000844, 0x0000089E + .word 0x000008A0, 0x000008FA + .word 0x000008FC, 0x00000956 + .word 0x00000958, 0x000009B2 + .word 0x000009B4, 0x00000A0E + .word 0x00000A10, 0x00000A6A + .word 0x00000A6C, 0x00000AC6 + .word 0x00000AC8, 0x00000B22 + .word 0x00000B24, 0x00000B7E + .word 0x00000B80, 0x00000BDA + .word 0x00000BDC, 0x00000C36 + .word 0x00000C38, 0x00000C92 + .word 0x00000C94, 0x00000CEE + .word 0x00000CF0, 0x00000D4A + .word 0x00000D4C, 0x00000DA6 + .word 0x00000DA8, 0x00000E02 + .word 0x00000E04, 0x0000102C + .word 0x0000102C, 0x00001086 + .word 0x00001088, 0x000011AE + .word 0x000011B0, 0x0000120A + .word 0x0000120C, 0x000012AA + .word 0x000012AC, 0x00001306 + .word 0x00001308, 0x00001FB8 + .word 0x00001FB8, 0x0000203F + .word 0x00002040, 0x000020AF + .word 0x000020B0, 0x0000210A + .word 0x0000210C, 0x00002166 + .word 0x00002168, 0x000021C2 + .word 0x000021C4, 0x00002240 + .word 0x00002240, 0x00002468 + .word 0x00002468, 0x00002690 + .word 0x00002690, 0x000028B8 + .word 0x000028B8, 0x00002AE0 + .word 0x00002AE0, 0x00002D08 + .word 0x00002D08, 0x00002F30 + .word 0x00002F30, 0x00003158 + .word 0x00003158, 0x00003380 + .word 0x00003380, 0x000033DA + .word 0x000033DC, 0x00003436 + .word 0x00003438, 0x00003492 + .word 0x00003494, 0x000034EE + .word 0x000034F0, 0x0000354A + .word 0x0000354C, 0x000035A6 + .word 0x000035A8, 0x00003602 + .word 0x00003604, 0x0000365E + .word 0x00003660, 0x000036BA + .word 0x000036BC, 0x00003716 + .word 0x00003718, 0x00003772 + .word 0x00003774, 0x000037CE + .word 0x000037D0, 0x0000382A + .word 0x0000382C, 0x00003886 + .word 0x00003888, 0x000038E2 + .word 0x000038E4, 0x0000393E + .word 0x00003940, 0x0000399A + .word 0x0000399C, 0x000039F6 + .word 0x000039F8, 0x00003A52 + .word 0x00003A54, 0x00003AAE + .word 0x00003AB0, 0x00003B0C + .word 0x00003B0C, 0x00003B6C + .word 0x00003B6C, 0x000040E4 + .word 0x000040E4, 0x00004140 + .word 0x00004140, 0x00004194 + .word 0x00004194, 0x0000437C + .word 0x0000437C, 0x00004490 + .word 0x00004490, 0x000044EC + .word 0x000044EC, 0x00004548 + .word 0x00004548, 0x0000465C + .word 0x0000465C, 0x000046B8 + .word 0x000046B8, 0x00004714 + .word 0x00004714, 0x00004C30 + .word 0x00004C30, 0x00004C9C + .word 0x00004C9C, 0x00004CF8 + .word 0x00004CF8, 0x00005224 + .word 0x00005224, 0x00005288 + .word 0x00005288, 0x000052E4 + .word 0x000052E4, 0x00005650 + .word 0x00005650, 0x000059F4 + .word 0x000059F4, 0x00005E50 + .word 0x00005E50, 0x000062DC + .word 0x000062DC, 0x00006728 + .word 0x00006728, 0x00006B98 + .word 0x00006B98, 0x00007074 + .word 0x00007074, 0x00007590 + .word 0x00007590, 0x000078F4 + .word 0x000078F4, 0x00007CCC + .word 0x00007CCC, 0x00007FD4 + .word 0x00007FD4, 0x00008338 + .word 0x00008338, 0x00008680 + .word 0x00008680, 0x000089FC + .word 0x000089FC, 0x00008D60 + .word 0x00008D60, 0x00009104 + .word 0x00009104, 0x000095B4 + .word 0x000095B4, 0x00009AA0 + .word 0x00009AA0, 0x00009F44 + .word 0x00009F44, 0x0000A3E4 + .word 0x0000A3E4, 0x0000A440 + .word 0x0000A440, 0x0000A490 + .word 0x0000A490, 0x0000A4E0 + .word 0x0000A4E0, 0x0000A554 + .word 0x0000A554, 0x0000A5D4 + .word 0x0000A5D4, 0x0000A68C + .word 0x0000A68C, 0x0000A704 + .word 0x0000A704, 0x0000A7A0 + .word 0x0000A7A0, 0x0000A85C + .word 0x0000A85C, 0x0000A8B8 + .word 0x0000A8B8, 0x0000A91C + .word 0x0000A91C, 0x0000ABB0 + .word 0x0000ABB0, 0x0000AC0C + .word 0x0000AC0C, 0x0000AC70 + .word 0x0000AC70, 0x0000AF20 + .word 0x0000AF20, 0x0000AF7C + .word 0x0000AF7C, 0x0000AFE0 + .word 0x0000AFE0, 0x0000B274 + .word 0x0000B274, 0x0000B2D0 + .word 0x0000B2D0, 0x0000B334 + .word 0x0000B334, 0x0000B5C8 + .word 0x0000B5C8, 0x0000B624 + .word 0x0000B624, 0x0000B688 + .word 0x0000B688, 0x0000B920 + .word 0x0000B920, 0x0000B97C + .word 0x0000B97C, 0x0000B9E0 + .word 0x0000B9E0, 0x0000BC78 + .word 0x0000BC78, 0x0000BCFC + .word 0x0000BCFC, 0x0000BE2C + .word 0x0000BE2C, 0x0000BEBC + .word 0x0000BEBC, 0x0000BF44 + .word 0x0000BF44, 0x0000C1D0 + .word 0x0000C1D0, 0x0000C260 + .word 0x0000C260, 0x0000C310 + .word 0x0000C310, 0x0000C448 + .word 0x0000C448, 0x0000C4A4 + .word 0x0000C4A4, 0x0000C524 + .word 0x0000C524, 0x0000C604 + .word 0x0000C604, 0x0000C660 + .word 0x0000C660, 0x0000C6F0 + .word 0x0000C6F0, 0x0000C7F8 + .word 0x0000C7F8, 0x0000C854 + .word 0x0000C854, 0x0000C91C + .word 0x0000C91C, 0x0000C9DC + .word 0x0000C9DC, 0x0000CAAC + .word 0x0000CAAC, 0x0000CB80 + .word 0x0000CB80, 0x0000CC60 + .word 0x0000CC60, 0x0000CD28 + .word 0x0000CD28, 0x0000CDEC + .word 0x0000CDEC, 0x0000CEAC + .word 0x0000CEAC, 0x0000CF80 + .word 0x0000CF80, 0x0000D04C + .word 0x0000D04C, 0x0000D114 + .word 0x0000D114, 0x0000D1C4 + .word 0x0000D1C4, 0x0000D278 + .word 0x0000D278, 0x0000D34C + .word 0x0000D34C, 0x0000D41C + .word 0x0000D41C, 0x0000D4EC + .word 0x0000D4EC, 0x0000D5C0 + .word 0x0000D5C0, 0x0000D66C + .word 0x0000D66C, 0x0000D738 + .word 0x0000D738, 0x0000D7FC + .word 0x0000D7FC, 0x0000D8B4 + .word 0x0000D8B4, 0x0000D974 + .word 0x0000D974, 0x0000DA2C + .word 0x0000DA2C, 0x0000DA7C + .word 0x0000DA7C, 0x0000DAD8 + .word 0x0000DAD8, 0x0000DBA0 + .word 0x0000DBA0, 0x0000DC5C + .word 0x0000DC5C, 0x0000DD20 + .word 0x0000DD20, 0x0000DFC0 + .word 0x0000DFC0, 0x0000E070 + .word 0x0000E070, 0x0000E110 + .word 0x0000E110, 0x0000E16C + .word 0x0000E16C, 0x0000E1F8 + .word 0x0000E1F8, 0x0000E2D4 + .word 0x0000E2D4, 0x0000E57C + .word 0x0000E57C, 0x0000E5D0 + .word 0x0000E5D0, 0x0000E62C + .word 0x0000E62C, 0x0000E8B0 + .word 0x0000E8B0, 0x0000E90C + .word 0x0000E90C, 0x0000E968 + .word 0x0000E968, 0x0001007C + .word 0x0001007C, 0x000116D8 + .word 0x000116D8, 0x00012C1C + .word 0x00012C1C, 0x0001432C + .word 0x0001432C, 0x00015818 + .word 0x00015818, 0x00016D68 + .word 0x00016D68, 0x000180EC + .word 0x000180EC, 0x00019564 + .word 0x00019564, 0x00019638 + .word 0x00019638, 0x0001970C + .word 0x0001970C, 0x000197E0 + .word 0x000197E0, 0x000198B4 + .word 0x000198B4, 0x00019988 + .word 0x00019988, 0x00019A5C + .word 0x00019A5C, 0x00019B30 + .word 0x00019B30, 0x00019C04 + .word 0x00019C04, 0x00019C7C + .word 0x00019C7C, 0x00019CF4 + .word 0x00019CF4, 0x00019D6C + .word 0x00019D6C, 0x00019DE4 + .word 0x00019DE4, 0x00019E5C + .word 0x00019E5C, 0x00019ED4 + .word 0x00019ED4, 0x00019F4C + .word 0x00019F4C, 0x00019FC4 + .word 0x00019FC4, 0x0001A068 + .word 0x0001A068, 0x0001A118 + .word 0x0001A118, 0x0001A3E0 + .word 0x0001A3E0, 0x0001A484 + .word 0x0001A484, 0x0001A534 + .word 0x0001A534, 0x0001A874 + .word 0x0001A874, 0x0001A918 + .word 0x0001A918, 0x0001A9C8 + .word 0x0001A9C8, 0x0001ACB0 + .word 0x0001ACB0, 0x0001AD54 + .word 0x0001AD54, 0x0001AE04 + .word 0x0001AE04, 0x0001B13C + .word 0x0001B13C, 0x0001B1E0 + .word 0x0001B1E0, 0x0001B290 + .word 0x0001B290, 0x0001B5F8 + .word 0x0001B5F8, 0x0001B69C + .word 0x0001B69C, 0x0001B74C + .word 0x0001B74C, 0x0001BAE0 + .word 0x0001BAE0, 0x0001BB84 + .word 0x0001BB84, 0x0001BC34 + .word 0x0001BC34, 0x0001BF94 + .word 0x0001BF94, 0x0001C038 + .word 0x0001C038, 0x0001C0E8 + .word 0x0001C0E8, 0x0001C458 + .word 0x0001C458, 0x0001C4FC + .word 0x0001C4FC, 0x0001C5AC + .word 0x0001C5AC, 0x0001C8FC + .word 0x0001C8FC, 0x0001C9A0 + .word 0x0001C9A0, 0x0001CA50 + .word 0x0001CA50, 0x0001CD80 + .word 0x0001CD80, 0x0001CE24 + .word 0x0001CE24, 0x0001CED4 + .word 0x0001CED4, 0x0001D18C + .word 0x0001D18C, 0x0001D230 + .word 0x0001D230, 0x0001D2E0 + .word 0x0001D2E0, 0x0001D560 + .word 0x0001D560, 0x0001D604 + .word 0x0001D604, 0x0001D6B4 + .word 0x0001D6B4, 0x0001DA20 + .word 0x0001DA20, 0x0001DAC4 + .word 0x0001DAC4, 0x0001DB74 + .word 0x0001DB74, 0x0001DF00 + .word 0x0001DF00, 0x0001DFA4 + .word 0x0001DFA4, 0x0001E054 + .word 0x0001E054, 0x0001E3BC + .word 0x0001E3BC, 0x0001E460 + .word 0x0001E460, 0x0001E510 + .word 0x0001E510, 0x0001E7DC + .word 0x0001E7DC, 0x0001E880 + .word 0x0001E880, 0x0001E930 + .word 0x0001E930, 0x0001EBF0 + .word 0x0001EBF0, 0x0001EC6C + .word 0x0001EC6C, 0x0001ED1C + .word 0x0001ED1C, 0x0001EEC4 + .word 0x0001EEC4, 0x0001EF54 + .word 0x0001EF54, 0x0001EFE4 + .word 0x0001EFE4, 0x0001F1C0 + .word 0x0001F1C0, 0x0001F678 + .word 0x0001F678, 0x0001F7FC + .word 0x0001F7FC, 0x0001F970 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0001F978 ; chunk size + .incbin "baserom.nds", 0x0, 0x228 + .incbin "baserom.nds", 0x228, 0x5A + .incbin "baserom.nds", 0x284, 0x5A + .incbin "baserom.nds", 0x2E0, 0x5A + .incbin "baserom.nds", 0x33C, 0x5A + .incbin "baserom.nds", 0x398, 0x5A + .incbin "baserom.nds", 0x3F4, 0x5A + .incbin "baserom.nds", 0x450, 0x5A + .incbin "baserom.nds", 0x4AC, 0x5A + .incbin "baserom.nds", 0x508, 0x5A + .incbin "baserom.nds", 0x564, 0x5A + .incbin "baserom.nds", 0x5C0, 0x5A + .incbin "baserom.nds", 0x61C, 0x5A + .incbin "baserom.nds", 0x678, 0x5A + .incbin "baserom.nds", 0x6D4, 0x5A + .incbin "baserom.nds", 0x730, 0x5A + .incbin "baserom.nds", 0x78C, 0x5A + .incbin "baserom.nds", 0x7E8, 0x5A + .incbin "baserom.nds", 0x844, 0x5A + .incbin "baserom.nds", 0x8A0, 0x5A + .incbin "baserom.nds", 0x8FC, 0x5A + .incbin "baserom.nds", 0x958, 0x5A + .incbin "baserom.nds", 0x9B4, 0x5A + .incbin "baserom.nds", 0xA10, 0x5A + .incbin "baserom.nds", 0xA6C, 0x5A + .incbin "baserom.nds", 0xAC8, 0x5A + .incbin "baserom.nds", 0xB24, 0x5A + .incbin "baserom.nds", 0xB80, 0x5A + .incbin "baserom.nds", 0xBDC, 0x5A + .incbin "baserom.nds", 0xC38, 0x5A + .incbin "baserom.nds", 0xC94, 0x5A + .incbin "baserom.nds", 0xCF0, 0x5A + .incbin "baserom.nds", 0xD4C, 0x5A + .incbin "baserom.nds", 0xDA8, 0x5A + .incbin "baserom.nds", 0xE04, 0x228 + .incbin "baserom.nds", 0x102C, 0x5A + .incbin "baserom.nds", 0x1088, 0x126 + .incbin "baserom.nds", 0x11B0, 0x5A + .incbin "baserom.nds", 0x120C, 0x9E + .incbin "baserom.nds", 0x12AC, 0x5A + .incbin "baserom.nds", 0x1308, 0xCB0 + .incbin "baserom.nds", 0x1FB8, 0x87 + .incbin "baserom.nds", 0x2040, 0x6F + .incbin "baserom.nds", 0x20B0, 0x5A + .incbin "baserom.nds", 0x210C, 0x5A + .incbin "baserom.nds", 0x2168, 0x5A + .incbin "baserom.nds", 0x21C4, 0x7C + .incbin "baserom.nds", 0x2240, 0x228 + .incbin "baserom.nds", 0x2468, 0x228 + .incbin "baserom.nds", 0x2690, 0x228 + .incbin "baserom.nds", 0x28B8, 0x228 + .incbin "baserom.nds", 0x2AE0, 0x228 + .incbin "baserom.nds", 0x2D08, 0x228 + .incbin "baserom.nds", 0x2F30, 0x228 + .incbin "baserom.nds", 0x3158, 0x228 + .incbin "baserom.nds", 0x3380, 0x5A + .incbin "baserom.nds", 0x33DC, 0x5A + .incbin "baserom.nds", 0x3438, 0x5A + .incbin "baserom.nds", 0x3494, 0x5A + .incbin "baserom.nds", 0x34F0, 0x5A + .incbin "baserom.nds", 0x354C, 0x5A + .incbin "baserom.nds", 0x35A8, 0x5A + .incbin "baserom.nds", 0x3604, 0x5A + .incbin "baserom.nds", 0x3660, 0x5A + .incbin "baserom.nds", 0x36BC, 0x5A + .incbin "baserom.nds", 0x3718, 0x5A + .incbin "baserom.nds", 0x3774, 0x5A + .incbin "baserom.nds", 0x37D0, 0x5A + .incbin "baserom.nds", 0x382C, 0x5A + .incbin "baserom.nds", 0x3888, 0x5A + .incbin "baserom.nds", 0x38E4, 0x5A + .incbin "baserom.nds", 0x3940, 0x5A + .incbin "baserom.nds", 0x399C, 0x5A + .incbin "baserom.nds", 0x39F8, 0x5A + .incbin "baserom.nds", 0x3A54, 0x5A + .incbin "baserom.nds", 0x3AB0, 0x5C + .incbin "baserom.nds", 0x3B0C, 0x60 + .incbin "baserom.nds", 0x3B6C, 0x578 + .incbin "baserom.nds", 0x40E4, 0x5C + .incbin "baserom.nds", 0x4140, 0x54 + .incbin "baserom.nds", 0x4194, 0x1E8 + .incbin "baserom.nds", 0x437C, 0x114 + .incbin "baserom.nds", 0x4490, 0x5C + .incbin "baserom.nds", 0x44EC, 0x5C + .incbin "baserom.nds", 0x4548, 0x114 + .incbin "baserom.nds", 0x465C, 0x5C + .incbin "baserom.nds", 0x46B8, 0x5C + .incbin "baserom.nds", 0x4714, 0x51C + .incbin "baserom.nds", 0x4C30, 0x6C + .incbin "baserom.nds", 0x4C9C, 0x5C + .incbin "baserom.nds", 0x4CF8, 0x52C + .incbin "baserom.nds", 0x5224, 0x64 + .incbin "baserom.nds", 0x5288, 0x5C + .incbin "baserom.nds", 0x52E4, 0x36C + .incbin "baserom.nds", 0x5650, 0x3A4 + .incbin "baserom.nds", 0x59F4, 0x45C + .incbin "baserom.nds", 0x5E50, 0x48C + .incbin "baserom.nds", 0x62DC, 0x44C + .incbin "baserom.nds", 0x6728, 0x470 + .incbin "baserom.nds", 0x6B98, 0x4DC + .incbin "baserom.nds", 0x7074, 0x51C + .incbin "baserom.nds", 0x7590, 0x364 + .incbin "baserom.nds", 0x78F4, 0x3D8 + .incbin "baserom.nds", 0x7CCC, 0x308 + .incbin "baserom.nds", 0x7FD4, 0x364 + .incbin "baserom.nds", 0x8338, 0x348 + .incbin "baserom.nds", 0x8680, 0x37C + .incbin "baserom.nds", 0x89FC, 0x364 + .incbin "baserom.nds", 0x8D60, 0x3A4 + .incbin "baserom.nds", 0x9104, 0x4B0 + .incbin "baserom.nds", 0x95B4, 0x4EC + .incbin "baserom.nds", 0x9AA0, 0x4A4 + .incbin "baserom.nds", 0x9F44, 0x4A0 + .incbin "baserom.nds", 0xA3E4, 0x5C + .incbin "baserom.nds", 0xA440, 0x50 + .incbin "baserom.nds", 0xA490, 0x50 + .incbin "baserom.nds", 0xA4E0, 0x74 + .incbin "baserom.nds", 0xA554, 0x80 + .incbin "baserom.nds", 0xA5D4, 0xB8 + .incbin "baserom.nds", 0xA68C, 0x78 + .incbin "baserom.nds", 0xA704, 0x9C + .incbin "baserom.nds", 0xA7A0, 0xBC + .incbin "baserom.nds", 0xA85C, 0x5C + .incbin "baserom.nds", 0xA8B8, 0x64 + .incbin "baserom.nds", 0xA91C, 0x294 + .incbin "baserom.nds", 0xABB0, 0x5C + .incbin "baserom.nds", 0xAC0C, 0x64 + .incbin "baserom.nds", 0xAC70, 0x2B0 + .incbin "baserom.nds", 0xAF20, 0x5C + .incbin "baserom.nds", 0xAF7C, 0x64 + .incbin "baserom.nds", 0xAFE0, 0x294 + .incbin "baserom.nds", 0xB274, 0x5C + .incbin "baserom.nds", 0xB2D0, 0x64 + .incbin "baserom.nds", 0xB334, 0x294 + .incbin "baserom.nds", 0xB5C8, 0x5C + .incbin "baserom.nds", 0xB624, 0x64 + .incbin "baserom.nds", 0xB688, 0x298 + .incbin "baserom.nds", 0xB920, 0x5C + .incbin "baserom.nds", 0xB97C, 0x64 + .incbin "baserom.nds", 0xB9E0, 0x298 + .incbin "baserom.nds", 0xBC78, 0x84 + .incbin "baserom.nds", 0xBCFC, 0x130 + .incbin "baserom.nds", 0xBE2C, 0x90 + .incbin "baserom.nds", 0xBEBC, 0x88 + .incbin "baserom.nds", 0xBF44, 0x28C + .incbin "baserom.nds", 0xC1D0, 0x90 + .incbin "baserom.nds", 0xC260, 0xB0 + .incbin "baserom.nds", 0xC310, 0x138 + .incbin "baserom.nds", 0xC448, 0x5C + .incbin "baserom.nds", 0xC4A4, 0x80 + .incbin "baserom.nds", 0xC524, 0xE0 + .incbin "baserom.nds", 0xC604, 0x5C + .incbin "baserom.nds", 0xC660, 0x90 + .incbin "baserom.nds", 0xC6F0, 0x108 + .incbin "baserom.nds", 0xC7F8, 0x5C + .incbin "baserom.nds", 0xC854, 0xC8 + .incbin "baserom.nds", 0xC91C, 0xC0 + .incbin "baserom.nds", 0xC9DC, 0xD0 + .incbin "baserom.nds", 0xCAAC, 0xD4 + .incbin "baserom.nds", 0xCB80, 0xE0 + .incbin "baserom.nds", 0xCC60, 0xC8 + .incbin "baserom.nds", 0xCD28, 0xC4 + .incbin "baserom.nds", 0xCDEC, 0xC0 + .incbin "baserom.nds", 0xCEAC, 0xD4 + .incbin "baserom.nds", 0xCF80, 0xCC + .incbin "baserom.nds", 0xD04C, 0xC8 + .incbin "baserom.nds", 0xD114, 0xB0 + .incbin "baserom.nds", 0xD1C4, 0xB4 + .incbin "baserom.nds", 0xD278, 0xD4 + .incbin "baserom.nds", 0xD34C, 0xD0 + .incbin "baserom.nds", 0xD41C, 0xD0 + .incbin "baserom.nds", 0xD4EC, 0xD4 + .incbin "baserom.nds", 0xD5C0, 0xAC + .incbin "baserom.nds", 0xD66C, 0xCC + .incbin "baserom.nds", 0xD738, 0xC4 + .incbin "baserom.nds", 0xD7FC, 0xB8 + .incbin "baserom.nds", 0xD8B4, 0xC0 + .incbin "baserom.nds", 0xD974, 0xB8 + .incbin "baserom.nds", 0xDA2C, 0x50 + .incbin "baserom.nds", 0xDA7C, 0x5C + .incbin "baserom.nds", 0xDAD8, 0xC8 + .incbin "baserom.nds", 0xDBA0, 0xBC + .incbin "baserom.nds", 0xDC5C, 0xC4 + .incbin "baserom.nds", 0xDD20, 0x2A0 + .incbin "baserom.nds", 0xDFC0, 0xB0 + .incbin "baserom.nds", 0xE070, 0xA0 + .incbin "baserom.nds", 0xE110, 0x5C + .incbin "baserom.nds", 0xE16C, 0x8C + .incbin "baserom.nds", 0xE1F8, 0xDC + .incbin "baserom.nds", 0xE2D4, 0x2A8 + .incbin "baserom.nds", 0xE57C, 0x54 + .incbin "baserom.nds", 0xE5D0, 0x5C + .incbin "baserom.nds", 0xE62C, 0x284 + .incbin "baserom.nds", 0xE8B0, 0x5C + .incbin "baserom.nds", 0xE90C, 0x5C + .incbin "baserom.nds", 0xE968, 0x1714 + .incbin "baserom.nds", 0x1007C, 0x165C + .incbin "baserom.nds", 0x116D8, 0x1544 + .incbin "baserom.nds", 0x12C1C, 0x1710 + .incbin "baserom.nds", 0x1432C, 0x14EC + .incbin "baserom.nds", 0x15818, 0x1550 + .incbin "baserom.nds", 0x16D68, 0x1384 + .incbin "baserom.nds", 0x180EC, 0x1478 + .incbin "baserom.nds", 0x19564, 0xD4 + .incbin "baserom.nds", 0x19638, 0xD4 + .incbin "baserom.nds", 0x1970C, 0xD4 + .incbin "baserom.nds", 0x197E0, 0xD4 + .incbin "baserom.nds", 0x198B4, 0xD4 + .incbin "baserom.nds", 0x19988, 0xD4 + .incbin "baserom.nds", 0x19A5C, 0xD4 + .incbin "baserom.nds", 0x19B30, 0xD4 + .incbin "baserom.nds", 0x19C04, 0x78 + .incbin "baserom.nds", 0x19C7C, 0x78 + .incbin "baserom.nds", 0x19CF4, 0x78 + .incbin "baserom.nds", 0x19D6C, 0x78 + .incbin "baserom.nds", 0x19DE4, 0x78 + .incbin "baserom.nds", 0x19E5C, 0x78 + .incbin "baserom.nds", 0x19ED4, 0x78 + .incbin "baserom.nds", 0x19F4C, 0x78 + .incbin "baserom.nds", 0x19FC4, 0xA4 + .incbin "baserom.nds", 0x1A068, 0xB0 + .incbin "baserom.nds", 0x1A118, 0x2C8 + .incbin "baserom.nds", 0x1A3E0, 0xA4 + .incbin "baserom.nds", 0x1A484, 0xB0 + .incbin "baserom.nds", 0x1A534, 0x340 + .incbin "baserom.nds", 0x1A874, 0xA4 + .incbin "baserom.nds", 0x1A918, 0xB0 + .incbin "baserom.nds", 0x1A9C8, 0x2E8 + .incbin "baserom.nds", 0x1ACB0, 0xA4 + .incbin "baserom.nds", 0x1AD54, 0xB0 + .incbin "baserom.nds", 0x1AE04, 0x338 + .incbin "baserom.nds", 0x1B13C, 0xA4 + .incbin "baserom.nds", 0x1B1E0, 0xB0 + .incbin "baserom.nds", 0x1B290, 0x368 + .incbin "baserom.nds", 0x1B5F8, 0xA4 + .incbin "baserom.nds", 0x1B69C, 0xB0 + .incbin "baserom.nds", 0x1B74C, 0x394 + .incbin "baserom.nds", 0x1BAE0, 0xA4 + .incbin "baserom.nds", 0x1BB84, 0xB0 + .incbin "baserom.nds", 0x1BC34, 0x360 + .incbin "baserom.nds", 0x1BF94, 0xA4 + .incbin "baserom.nds", 0x1C038, 0xB0 + .incbin "baserom.nds", 0x1C0E8, 0x370 + .incbin "baserom.nds", 0x1C458, 0xA4 + .incbin "baserom.nds", 0x1C4FC, 0xB0 + .incbin "baserom.nds", 0x1C5AC, 0x350 + .incbin "baserom.nds", 0x1C8FC, 0xA4 + .incbin "baserom.nds", 0x1C9A0, 0xB0 + .incbin "baserom.nds", 0x1CA50, 0x330 + .incbin "baserom.nds", 0x1CD80, 0xA4 + .incbin "baserom.nds", 0x1CE24, 0xB0 + .incbin "baserom.nds", 0x1CED4, 0x2B8 + .incbin "baserom.nds", 0x1D18C, 0xA4 + .incbin "baserom.nds", 0x1D230, 0xB0 + .incbin "baserom.nds", 0x1D2E0, 0x280 + .incbin "baserom.nds", 0x1D560, 0xA4 + .incbin "baserom.nds", 0x1D604, 0xB0 + .incbin "baserom.nds", 0x1D6B4, 0x36C + .incbin "baserom.nds", 0x1DA20, 0xA4 + .incbin "baserom.nds", 0x1DAC4, 0xB0 + .incbin "baserom.nds", 0x1DB74, 0x38C + .incbin "baserom.nds", 0x1DF00, 0xA4 + .incbin "baserom.nds", 0x1DFA4, 0xB0 + .incbin "baserom.nds", 0x1E054, 0x368 + .incbin "baserom.nds", 0x1E3BC, 0xA4 + .incbin "baserom.nds", 0x1E460, 0xB0 + .incbin "baserom.nds", 0x1E510, 0x2CC + .incbin "baserom.nds", 0x1E7DC, 0xA4 + .incbin "baserom.nds", 0x1E880, 0xB0 + .incbin "baserom.nds", 0x1E930, 0x2C0 + .incbin "baserom.nds", 0x1EBF0, 0x7C + .incbin "baserom.nds", 0x1EC6C, 0xB0 + .incbin "baserom.nds", 0x1ED1C, 0x1A8 + .incbin "baserom.nds", 0x1EEC4, 0x90 + .incbin "baserom.nds", 0x1EF54, 0x90 + .incbin "baserom.nds", 0x1EFE4, 0x1DC + .incbin "baserom.nds", 0x1F1C0, 0x4B8 + .incbin "baserom.nds", 0x1F678, 0x184 + .incbin "baserom.nds", 0x1F7FC, 0x174 + .balign 4, 255 diff --git a/narc/graphic/box.narc.s b/narc/graphic/box.narc.s new file mode 100644 index 00000000..b4edce69 --- /dev/null +++ b/narc/graphic/box.narc.s @@ -0,0 +1,268 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0001BB20 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000003D4 ; chunk size + .short 121 ; number of files + .balign 4 + .word 0x00000000, 0x0000015A + .word 0x0000015C, 0x00000B34 + .word 0x00000B34, 0x00000BAE + .word 0x00000BB0, 0x00000C44 + .word 0x00000C44, 0x00000D66 + .word 0x00000D68, 0x00000E8E + .word 0x00000E90, 0x00000FCA + .word 0x00000FCC, 0x000011E3 + .word 0x000011E4, 0x000013FB + .word 0x000013FC, 0x00001BA9 + .word 0x00001BAC, 0x00001C37 + .word 0x00001C38, 0x00001CB3 + .word 0x00001CB4, 0x00001F7F + .word 0x00001F80, 0x0000203A + .word 0x0000203C, 0x0000217C + .word 0x0000217C, 0x0000220B + .word 0x0000220C, 0x00002267 + .word 0x00002268, 0x00002369 + .word 0x0000236C, 0x000023BB + .word 0x000023BC, 0x00002415 + .word 0x00002418, 0x00002472 + .word 0x00002474, 0x000024D0 + .word 0x000024D0, 0x00002684 + .word 0x00002684, 0x00002700 + .word 0x00002700, 0x0000283B + .word 0x0000283C, 0x0000293F + .word 0x00002940, 0x000029BC + .word 0x000029BC, 0x00002A38 + .word 0x00002A38, 0x00002A92 + .word 0x00002A94, 0x00003452 + .word 0x00003454, 0x00003827 + .word 0x00003828, 0x00003882 + .word 0x00003884, 0x000040EE + .word 0x000040F0, 0x000044C3 + .word 0x000044C4, 0x0000451E + .word 0x00004520, 0x00004EAB + .word 0x00004EAC, 0x0000527F + .word 0x00005280, 0x000052DA + .word 0x000052DC, 0x00005B0F + .word 0x00005B10, 0x00005EE3 + .word 0x00005EE4, 0x00005F3E + .word 0x00005F40, 0x000069D6 + .word 0x000069D8, 0x00006DAB + .word 0x00006DAC, 0x00006E06 + .word 0x00006E08, 0x000077C3 + .word 0x000077C4, 0x00007B97 + .word 0x00007B98, 0x00007BF2 + .word 0x00007BF4, 0x00008476 + .word 0x00008478, 0x0000884B + .word 0x0000884C, 0x000088A6 + .word 0x000088A8, 0x00009251 + .word 0x00009254, 0x00009627 + .word 0x00009628, 0x00009682 + .word 0x00009684, 0x00009F2E + .word 0x00009F30, 0x0000A303 + .word 0x0000A304, 0x0000A35E + .word 0x0000A360, 0x0000AD05 + .word 0x0000AD08, 0x0000B0DB + .word 0x0000B0DC, 0x0000B136 + .word 0x0000B138, 0x0000BB51 + .word 0x0000BB54, 0x0000BF27 + .word 0x0000BF28, 0x0000BF82 + .word 0x0000BF84, 0x0000C967 + .word 0x0000C968, 0x0000CD3B + .word 0x0000CD3C, 0x0000CD96 + .word 0x0000CD98, 0x0000D5D7 + .word 0x0000D5D8, 0x0000D9AB + .word 0x0000D9AC, 0x0000DA06 + .word 0x0000DA08, 0x0000E1C6 + .word 0x0000E1C8, 0x0000E59B + .word 0x0000E59C, 0x0000E5F6 + .word 0x0000E5F8, 0x0000ED79 + .word 0x0000ED7C, 0x0000F14F + .word 0x0000F150, 0x0000F1AA + .word 0x0000F1AC, 0x0000F99B + .word 0x0000F99C, 0x0000FD6F + .word 0x0000FD70, 0x0000FDCA + .word 0x0000FDCC, 0x000107E8 + .word 0x000107E8, 0x00010BBB + .word 0x00010BBC, 0x00010C16 + .word 0x00010C18, 0x00011637 + .word 0x00011638, 0x00011A0B + .word 0x00011A0C, 0x00011A66 + .word 0x00011A68, 0x00012335 + .word 0x00012338, 0x0001270B + .word 0x0001270C, 0x00012766 + .word 0x00012768, 0x000131B8 + .word 0x000131B8, 0x0001358B + .word 0x0001358C, 0x000135E6 + .word 0x000135E8, 0x000144C5 + .word 0x000144C8, 0x0001489B + .word 0x0001489C, 0x000148F6 + .word 0x000148F8, 0x0001552B + .word 0x0001552C, 0x000158FF + .word 0x00015900, 0x0001595A + .word 0x0001595C, 0x0001672C + .word 0x0001672C, 0x00016AFF + .word 0x00016B00, 0x00016B5A + .word 0x00016B5C, 0x00017545 + .word 0x00017548, 0x0001791B + .word 0x0001791C, 0x00017A90 + .word 0x00017A90, 0x00017D01 + .word 0x00017D04, 0x0001807A + .word 0x0001807C, 0x00018850 + .word 0x00018850, 0x000188EE + .word 0x000188F0, 0x00018A77 + .word 0x00018A78, 0x00018DDA + .word 0x00018DDC, 0x00018F67 + .word 0x00018F68, 0x00019AF7 + .word 0x00019AF8, 0x00019BB8 + .word 0x00019BB8, 0x0001A308 + .word 0x0001A308, 0x0001A3D6 + .word 0x0001A3D8, 0x0001A4A8 + .word 0x0001A4A8, 0x0001A546 + .word 0x0001A548, 0x0001ACEA + .word 0x0001ACEC, 0x0001AD61 + .word 0x0001AD64, 0x0001ADF0 + .word 0x0001ADF0, 0x0001B43E + .word 0x0001B440, 0x0001B554 + .word 0x0001B554, 0x0001B6A6 + .word 0x0001B6A8, 0x0001B724 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0001B72C ; chunk size + .incbin "baserom.nds", 0x0, 0x15A + .incbin "baserom.nds", 0x15C, 0x9D8 + .incbin "baserom.nds", 0xB34, 0x7A + .incbin "baserom.nds", 0xBB0, 0x94 + .incbin "baserom.nds", 0xC44, 0x122 + .incbin "baserom.nds", 0xD68, 0x126 + .incbin "baserom.nds", 0xE90, 0x13A + .incbin "baserom.nds", 0xFCC, 0x217 + .incbin "baserom.nds", 0x11E4, 0x217 + .incbin "baserom.nds", 0x13FC, 0x7AD + .incbin "baserom.nds", 0x1BAC, 0x8B + .incbin "baserom.nds", 0x1C38, 0x7B + .incbin "baserom.nds", 0x1CB4, 0x2CB + .incbin "baserom.nds", 0x1F80, 0xBA + .incbin "baserom.nds", 0x203C, 0x140 + .incbin "baserom.nds", 0x217C, 0x8F + .incbin "baserom.nds", 0x220C, 0x5B + .incbin "baserom.nds", 0x2268, 0x101 + .incbin "baserom.nds", 0x236C, 0x4F + .incbin "baserom.nds", 0x23BC, 0x59 + .incbin "baserom.nds", 0x2418, 0x5A + .incbin "baserom.nds", 0x2474, 0x5C + .incbin "baserom.nds", 0x24D0, 0x1B4 + .incbin "baserom.nds", 0x2684, 0x7C + .incbin "baserom.nds", 0x2700, 0x13B + .incbin "baserom.nds", 0x283C, 0x103 + .incbin "baserom.nds", 0x2940, 0x7C + .incbin "baserom.nds", 0x29BC, 0x7C + .incbin "baserom.nds", 0x2A38, 0x5A + .incbin "baserom.nds", 0x2A94, 0x9BE + .incbin "baserom.nds", 0x3454, 0x3D3 + .incbin "baserom.nds", 0x3828, 0x5A + .incbin "baserom.nds", 0x3884, 0x86A + .incbin "baserom.nds", 0x40F0, 0x3D3 + .incbin "baserom.nds", 0x44C4, 0x5A + .incbin "baserom.nds", 0x4520, 0x98B + .incbin "baserom.nds", 0x4EAC, 0x3D3 + .incbin "baserom.nds", 0x5280, 0x5A + .incbin "baserom.nds", 0x52DC, 0x833 + .incbin "baserom.nds", 0x5B10, 0x3D3 + .incbin "baserom.nds", 0x5EE4, 0x5A + .incbin "baserom.nds", 0x5F40, 0xA96 + .incbin "baserom.nds", 0x69D8, 0x3D3 + .incbin "baserom.nds", 0x6DAC, 0x5A + .incbin "baserom.nds", 0x6E08, 0x9BB + .incbin "baserom.nds", 0x77C4, 0x3D3 + .incbin "baserom.nds", 0x7B98, 0x5A + .incbin "baserom.nds", 0x7BF4, 0x882 + .incbin "baserom.nds", 0x8478, 0x3D3 + .incbin "baserom.nds", 0x884C, 0x5A + .incbin "baserom.nds", 0x88A8, 0x9A9 + .incbin "baserom.nds", 0x9254, 0x3D3 + .incbin "baserom.nds", 0x9628, 0x5A + .incbin "baserom.nds", 0x9684, 0x8AA + .incbin "baserom.nds", 0x9F30, 0x3D3 + .incbin "baserom.nds", 0xA304, 0x5A + .incbin "baserom.nds", 0xA360, 0x9A5 + .incbin "baserom.nds", 0xAD08, 0x3D3 + .incbin "baserom.nds", 0xB0DC, 0x5A + .incbin "baserom.nds", 0xB138, 0xA19 + .incbin "baserom.nds", 0xBB54, 0x3D3 + .incbin "baserom.nds", 0xBF28, 0x5A + .incbin "baserom.nds", 0xBF84, 0x9E3 + .incbin "baserom.nds", 0xC968, 0x3D3 + .incbin "baserom.nds", 0xCD3C, 0x5A + .incbin "baserom.nds", 0xCD98, 0x83F + .incbin "baserom.nds", 0xD5D8, 0x3D3 + .incbin "baserom.nds", 0xD9AC, 0x5A + .incbin "baserom.nds", 0xDA08, 0x7BE + .incbin "baserom.nds", 0xE1C8, 0x3D3 + .incbin "baserom.nds", 0xE59C, 0x5A + .incbin "baserom.nds", 0xE5F8, 0x781 + .incbin "baserom.nds", 0xED7C, 0x3D3 + .incbin "baserom.nds", 0xF150, 0x5A + .incbin "baserom.nds", 0xF1AC, 0x7EF + .incbin "baserom.nds", 0xF99C, 0x3D3 + .incbin "baserom.nds", 0xFD70, 0x5A + .incbin "baserom.nds", 0xFDCC, 0xA1C + .incbin "baserom.nds", 0x107E8, 0x3D3 + .incbin "baserom.nds", 0x10BBC, 0x5A + .incbin "baserom.nds", 0x10C18, 0xA1F + .incbin "baserom.nds", 0x11638, 0x3D3 + .incbin "baserom.nds", 0x11A0C, 0x5A + .incbin "baserom.nds", 0x11A68, 0x8CD + .incbin "baserom.nds", 0x12338, 0x3D3 + .incbin "baserom.nds", 0x1270C, 0x5A + .incbin "baserom.nds", 0x12768, 0xA50 + .incbin "baserom.nds", 0x131B8, 0x3D3 + .incbin "baserom.nds", 0x1358C, 0x5A + .incbin "baserom.nds", 0x135E8, 0xEDD + .incbin "baserom.nds", 0x144C8, 0x3D3 + .incbin "baserom.nds", 0x1489C, 0x5A + .incbin "baserom.nds", 0x148F8, 0xC33 + .incbin "baserom.nds", 0x1552C, 0x3D3 + .incbin "baserom.nds", 0x15900, 0x5A + .incbin "baserom.nds", 0x1595C, 0xDD0 + .incbin "baserom.nds", 0x1672C, 0x3D3 + .incbin "baserom.nds", 0x16B00, 0x5A + .incbin "baserom.nds", 0x16B5C, 0x9E9 + .incbin "baserom.nds", 0x17548, 0x3D3 + .incbin "baserom.nds", 0x1791C, 0x174 + .incbin "baserom.nds", 0x17A90, 0x271 + .incbin "baserom.nds", 0x17D04, 0x376 + .incbin "baserom.nds", 0x1807C, 0x7D4 + .incbin "baserom.nds", 0x18850, 0x9E + .incbin "baserom.nds", 0x188F0, 0x187 + .incbin "baserom.nds", 0x18A78, 0x362 + .incbin "baserom.nds", 0x18DDC, 0x18B + .incbin "baserom.nds", 0x18F68, 0xB8F + .incbin "baserom.nds", 0x19AF8, 0xC0 + .incbin "baserom.nds", 0x19BB8, 0x750 + .incbin "baserom.nds", 0x1A308, 0xCE + .incbin "baserom.nds", 0x1A3D8, 0xD0 + .incbin "baserom.nds", 0x1A4A8, 0x9E + .incbin "baserom.nds", 0x1A548, 0x7A2 + .incbin "baserom.nds", 0x1ACEC, 0x75 + .incbin "baserom.nds", 0x1AD64, 0x8C + .incbin "baserom.nds", 0x1ADF0, 0x64E + .incbin "baserom.nds", 0x1B440, 0x114 + .incbin "baserom.nds", 0x1B554, 0x152 + .incbin "baserom.nds", 0x1B6A8, 0x7C + .balign 4, 255 diff --git a/narc/graphic/btower.narc.s b/narc/graphic/btower.narc.s new file mode 100644 index 00000000..5ebb5770 --- /dev/null +++ b/narc/graphic/btower.narc.s @@ -0,0 +1,44 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x000041F8 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000054 ; chunk size + .short 9 ; number of files + .balign 4 + .word 0x00000000, 0x0000007C + .word 0x0000007C, 0x000013AC + .word 0x000013AC, 0x000014EA + .word 0x000014EC, 0x0000162E + .word 0x00001630, 0x000016CE + .word 0x000016D0, 0x00002F10 + .word 0x00002F10, 0x00003534 + .word 0x00003534, 0x00003B58 + .word 0x00003B58, 0x0000417C + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00004184 ; chunk size + .incbin "baserom.nds", 0x0, 0x7C + .incbin "baserom.nds", 0x7C, 0x1330 + .incbin "baserom.nds", 0x13AC, 0x13E + .incbin "baserom.nds", 0x14EC, 0x142 + .incbin "baserom.nds", 0x1630, 0x9E + .incbin "baserom.nds", 0x16D0, 0x1840 + .incbin "baserom.nds", 0x2F10, 0x624 + .incbin "baserom.nds", 0x3534, 0x624 + .incbin "baserom.nds", 0x3B58, 0x624 + .balign 4, 255 diff --git a/narc/graphic/config_gra.narc.s b/narc/graphic/config_gra.narc.s new file mode 100644 index 00000000..ba18b035 --- /dev/null +++ b/narc/graphic/config_gra.narc.s @@ -0,0 +1,32 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x000002AC ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000024 ; chunk size + .short 3 ; number of files + .balign 4 + .word 0x00000000, 0x0000005A + .word 0x0000005C, 0x0000013C + .word 0x0000013C, 0x00000260 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00000268 ; chunk size + .incbin "baserom.nds", 0x0, 0x5A + .incbin "baserom.nds", 0x5C, 0xE0 + .incbin "baserom.nds", 0x13C, 0x124 + .balign 4, 255 diff --git a/narc/graphic/contest_bg.narc.s b/narc/graphic/contest_bg.narc.s new file mode 100644 index 00000000..21aab673 --- /dev/null +++ b/narc/graphic/contest_bg.narc.s @@ -0,0 +1,106 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00013B44 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000014C ; chunk size + .short 40 ; number of files + .balign 4 + .word 0x00000000, 0x00000368 + .word 0x00000368, 0x00002598 + .word 0x00002598, 0x00002904 + .word 0x00002904, 0x000042EC + .word 0x000042EC, 0x00004494 + .word 0x00004494, 0x0000462C + .word 0x0000462C, 0x0000484C + .word 0x0000484C, 0x00004B94 + .word 0x00004B94, 0x00004E1C + .word 0x00004E1C, 0x00006D30 + .word 0x00006D30, 0x00006F44 + .word 0x00006F44, 0x000081A0 + .word 0x000081A0, 0x00008310 + .word 0x00008310, 0x00009618 + .word 0x00009618, 0x00009784 + .word 0x00009784, 0x00009E90 + .word 0x00009E90, 0x0000A394 + .word 0x0000A394, 0x0000B4F4 + .word 0x0000B4F4, 0x0000D2BC + .word 0x0000D2BC, 0x0000D9E4 + .word 0x0000D9E4, 0x0000DB50 + .word 0x0000DB50, 0x0000DD90 + .word 0x0000DD90, 0x0000F9D8 + .word 0x0000F9D8, 0x00010AA0 + .word 0x00010AA0, 0x00010C60 + .word 0x00010C60, 0x00010DAC + .word 0x00010DAC, 0x00011F4C + .word 0x00011F4C, 0x00012078 + .word 0x00012078, 0x00012218 + .word 0x00012218, 0x00012440 + .word 0x00012440, 0x00012668 + .word 0x00012668, 0x00012890 + .word 0x00012890, 0x00012AB8 + .word 0x00012AB8, 0x00012CE0 + .word 0x00012CE0, 0x00012F08 + .word 0x00012F08, 0x00013130 + .word 0x00013130, 0x00013358 + .word 0x00013358, 0x00013580 + .word 0x00013580, 0x000137A8 + .word 0x000137A8, 0x000139D0 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000139D8 ; chunk size + .incbin "baserom.nds", 0x0, 0x368 + .incbin "baserom.nds", 0x368, 0x2230 + .incbin "baserom.nds", 0x2598, 0x36C + .incbin "baserom.nds", 0x2904, 0x19E8 + .incbin "baserom.nds", 0x42EC, 0x1A8 + .incbin "baserom.nds", 0x4494, 0x198 + .incbin "baserom.nds", 0x462C, 0x220 + .incbin "baserom.nds", 0x484C, 0x348 + .incbin "baserom.nds", 0x4B94, 0x288 + .incbin "baserom.nds", 0x4E1C, 0x1F14 + .incbin "baserom.nds", 0x6D30, 0x214 + .incbin "baserom.nds", 0x6F44, 0x125C + .incbin "baserom.nds", 0x81A0, 0x170 + .incbin "baserom.nds", 0x8310, 0x1308 + .incbin "baserom.nds", 0x9618, 0x16C + .incbin "baserom.nds", 0x9784, 0x70C + .incbin "baserom.nds", 0x9E90, 0x504 + .incbin "baserom.nds", 0xA394, 0x1160 + .incbin "baserom.nds", 0xB4F4, 0x1DC8 + .incbin "baserom.nds", 0xD2BC, 0x728 + .incbin "baserom.nds", 0xD9E4, 0x16C + .incbin "baserom.nds", 0xDB50, 0x240 + .incbin "baserom.nds", 0xDD90, 0x1C48 + .incbin "baserom.nds", 0xF9D8, 0x10C8 + .incbin "baserom.nds", 0x10AA0, 0x1C0 + .incbin "baserom.nds", 0x10C60, 0x14C + .incbin "baserom.nds", 0x10DAC, 0x11A0 + .incbin "baserom.nds", 0x11F4C, 0x12C + .incbin "baserom.nds", 0x12078, 0x1A0 + .incbin "baserom.nds", 0x12218, 0x228 + .incbin "baserom.nds", 0x12440, 0x228 + .incbin "baserom.nds", 0x12668, 0x228 + .incbin "baserom.nds", 0x12890, 0x228 + .incbin "baserom.nds", 0x12AB8, 0x228 + .incbin "baserom.nds", 0x12CE0, 0x228 + .incbin "baserom.nds", 0x12F08, 0x228 + .incbin "baserom.nds", 0x13130, 0x228 + .incbin "baserom.nds", 0x13358, 0x228 + .incbin "baserom.nds", 0x13580, 0x228 + .incbin "baserom.nds", 0x137A8, 0x228 + .balign 4, 255 diff --git a/narc/graphic/contest_obj.narc.s b/narc/graphic/contest_obj.narc.s new file mode 100644 index 00000000..34e4edc4 --- /dev/null +++ b/narc/graphic/contest_obj.narc.s @@ -0,0 +1,220 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00005D24 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000314 ; chunk size + .short 97 ; number of files + .balign 4 + .word 0x00000000, 0x00000228 + .word 0x00000228, 0x00000282 + .word 0x00000284, 0x000002DE + .word 0x000002E0, 0x0000033A + .word 0x0000033C, 0x00000564 + .word 0x00000564, 0x00000602 + .word 0x00000604, 0x0000082C + .word 0x0000082C, 0x00000A54 + .word 0x00000A54, 0x00000C7C + .word 0x00000C7C, 0x00000CF8 + .word 0x00000CF8, 0x00000F20 + .word 0x00000F20, 0x00000F7A + .word 0x00000F7C, 0x0000100C + .word 0x0000100C, 0x00001088 + .word 0x00001088, 0x000011E0 + .word 0x000011E0, 0x00001270 + .word 0x00001270, 0x000012F8 + .word 0x000012F8, 0x000013BC + .word 0x000013BC, 0x00001418 + .word 0x00001418, 0x00001468 + .word 0x00001468, 0x00001508 + .word 0x00001508, 0x00001598 + .word 0x00001598, 0x00001614 + .word 0x00001614, 0x00001754 + .word 0x00001754, 0x000017BC + .word 0x000017BC, 0x00001820 + .word 0x00001820, 0x00001888 + .word 0x00001888, 0x000018E4 + .word 0x000018E4, 0x0000193C + .word 0x0000193C, 0x000019F8 + .word 0x000019F8, 0x00001A54 + .word 0x00001A54, 0x00001B88 + .word 0x00001B88, 0x00001BE4 + .word 0x00001BE4, 0x00001C40 + .word 0x00001C40, 0x00001D74 + .word 0x00001D74, 0x00001DD0 + .word 0x00001DD0, 0x00001E2C + .word 0x00001E2C, 0x00001F5C + .word 0x00001F5C, 0x00001FC8 + .word 0x00001FC8, 0x00002274 + .word 0x00002274, 0x000022C4 + .word 0x000022C4, 0x00002320 + .word 0x00002320, 0x00002478 + .word 0x00002478, 0x000024C8 + .word 0x000024C8, 0x00002524 + .word 0x00002524, 0x00002570 + .word 0x00002570, 0x000025C0 + .word 0x000025C0, 0x0000261C + .word 0x0000261C, 0x000026F0 + .word 0x000026F0, 0x00002748 + .word 0x00002748, 0x000027A4 + .word 0x000027A4, 0x0000287C + .word 0x0000287C, 0x00002960 + .word 0x00002960, 0x00002A44 + .word 0x00002A44, 0x00002B1C + .word 0x00002B1C, 0x000030A4 + .word 0x000030A4, 0x00003130 + .word 0x00003130, 0x000031AC + .word 0x000031AC, 0x000033B0 + .word 0x000033B0, 0x000035BC + .word 0x000035BC, 0x000037C8 + .word 0x000037C8, 0x000039D4 + .word 0x000039D4, 0x00003A60 + .word 0x00003A60, 0x00003AF4 + .word 0x00003AF4, 0x00003B50 + .word 0x00003B50, 0x00003BA0 + .word 0x00003BA0, 0x00003BFC + .word 0x00003BFC, 0x00003CC4 + .word 0x00003CC4, 0x00003D20 + .word 0x00003D20, 0x00003D8C + .word 0x00003D8C, 0x00003DC8 + .word 0x00003DC8, 0x00003E24 + .word 0x00003E24, 0x00003E74 + .word 0x00003E74, 0x00004038 + .word 0x00004038, 0x00004098 + .word 0x00004098, 0x00004104 + .word 0x00004104, 0x000041F4 + .word 0x000041F4, 0x00004250 + .word 0x00004250, 0x000042B0 + .word 0x000042B0, 0x00004318 + .word 0x00004318, 0x00004384 + .word 0x00004384, 0x0000471C + .word 0x0000471C, 0x000047AC + .word 0x000047AC, 0x00004828 + .word 0x00004828, 0x00004994 + .word 0x00004994, 0x00004D18 + .word 0x00004D18, 0x00004FE8 + .word 0x00004FE8, 0x000051CC + .word 0x000051CC, 0x00005228 + .word 0x00005228, 0x00005284 + .word 0x00005284, 0x0000538C + .word 0x0000538C, 0x000053E8 + .word 0x000053E8, 0x00005464 + .word 0x00005464, 0x00005860 + .word 0x00005860, 0x000058CC + .word 0x000058CC, 0x0000593C + .word 0x0000593C, 0x000059E8 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000059F0 ; chunk size + .incbin "baserom.nds", 0x0, 0x228 + .incbin "baserom.nds", 0x228, 0x5A + .incbin "baserom.nds", 0x284, 0x5A + .incbin "baserom.nds", 0x2E0, 0x5A + .incbin "baserom.nds", 0x33C, 0x228 + .incbin "baserom.nds", 0x564, 0x9E + .incbin "baserom.nds", 0x604, 0x228 + .incbin "baserom.nds", 0x82C, 0x228 + .incbin "baserom.nds", 0xA54, 0x228 + .incbin "baserom.nds", 0xC7C, 0x7C + .incbin "baserom.nds", 0xCF8, 0x228 + .incbin "baserom.nds", 0xF20, 0x5A + .incbin "baserom.nds", 0xF7C, 0x90 + .incbin "baserom.nds", 0x100C, 0x7C + .incbin "baserom.nds", 0x1088, 0x158 + .incbin "baserom.nds", 0x11E0, 0x90 + .incbin "baserom.nds", 0x1270, 0x88 + .incbin "baserom.nds", 0x12F8, 0xC4 + .incbin "baserom.nds", 0x13BC, 0x5C + .incbin "baserom.nds", 0x1418, 0x50 + .incbin "baserom.nds", 0x1468, 0xA0 + .incbin "baserom.nds", 0x1508, 0x90 + .incbin "baserom.nds", 0x1598, 0x7C + .incbin "baserom.nds", 0x1614, 0x140 + .incbin "baserom.nds", 0x1754, 0x68 + .incbin "baserom.nds", 0x17BC, 0x64 + .incbin "baserom.nds", 0x1820, 0x68 + .incbin "baserom.nds", 0x1888, 0x5C + .incbin "baserom.nds", 0x18E4, 0x58 + .incbin "baserom.nds", 0x193C, 0xBC + .incbin "baserom.nds", 0x19F8, 0x5C + .incbin "baserom.nds", 0x1A54, 0x134 + .incbin "baserom.nds", 0x1B88, 0x5C + .incbin "baserom.nds", 0x1BE4, 0x5C + .incbin "baserom.nds", 0x1C40, 0x134 + .incbin "baserom.nds", 0x1D74, 0x5C + .incbin "baserom.nds", 0x1DD0, 0x5C + .incbin "baserom.nds", 0x1E2C, 0x130 + .incbin "baserom.nds", 0x1F5C, 0x6C + .incbin "baserom.nds", 0x1FC8, 0x2AC + .incbin "baserom.nds", 0x2274, 0x50 + .incbin "baserom.nds", 0x22C4, 0x5C + .incbin "baserom.nds", 0x2320, 0x158 + .incbin "baserom.nds", 0x2478, 0x50 + .incbin "baserom.nds", 0x24C8, 0x5C + .incbin "baserom.nds", 0x2524, 0x4C + .incbin "baserom.nds", 0x2570, 0x50 + .incbin "baserom.nds", 0x25C0, 0x5C + .incbin "baserom.nds", 0x261C, 0xD4 + .incbin "baserom.nds", 0x26F0, 0x58 + .incbin "baserom.nds", 0x2748, 0x5C + .incbin "baserom.nds", 0x27A4, 0xD8 + .incbin "baserom.nds", 0x287C, 0xE4 + .incbin "baserom.nds", 0x2960, 0xE4 + .incbin "baserom.nds", 0x2A44, 0xD8 + .incbin "baserom.nds", 0x2B1C, 0x588 + .incbin "baserom.nds", 0x30A4, 0x8C + .incbin "baserom.nds", 0x3130, 0x7C + .incbin "baserom.nds", 0x31AC, 0x204 + .incbin "baserom.nds", 0x33B0, 0x20C + .incbin "baserom.nds", 0x35BC, 0x20C + .incbin "baserom.nds", 0x37C8, 0x20C + .incbin "baserom.nds", 0x39D4, 0x8C + .incbin "baserom.nds", 0x3A60, 0x94 + .incbin "baserom.nds", 0x3AF4, 0x5C + .incbin "baserom.nds", 0x3B50, 0x50 + .incbin "baserom.nds", 0x3BA0, 0x5C + .incbin "baserom.nds", 0x3BFC, 0xC8 + .incbin "baserom.nds", 0x3CC4, 0x5C + .incbin "baserom.nds", 0x3D20, 0x6C + .incbin "baserom.nds", 0x3D8C, 0x3C + .incbin "baserom.nds", 0x3DC8, 0x5C + .incbin "baserom.nds", 0x3E24, 0x50 + .incbin "baserom.nds", 0x3E74, 0x1C4 + .incbin "baserom.nds", 0x4038, 0x60 + .incbin "baserom.nds", 0x4098, 0x6C + .incbin "baserom.nds", 0x4104, 0xF0 + .incbin "baserom.nds", 0x41F4, 0x5C + .incbin "baserom.nds", 0x4250, 0x60 + .incbin "baserom.nds", 0x42B0, 0x68 + .incbin "baserom.nds", 0x4318, 0x6C + .incbin "baserom.nds", 0x4384, 0x398 + .incbin "baserom.nds", 0x471C, 0x90 + .incbin "baserom.nds", 0x47AC, 0x7C + .incbin "baserom.nds", 0x4828, 0x16C + .incbin "baserom.nds", 0x4994, 0x384 + .incbin "baserom.nds", 0x4D18, 0x2D0 + .incbin "baserom.nds", 0x4FE8, 0x1E4 + .incbin "baserom.nds", 0x51CC, 0x5C + .incbin "baserom.nds", 0x5228, 0x5C + .incbin "baserom.nds", 0x5284, 0x108 + .incbin "baserom.nds", 0x538C, 0x5C + .incbin "baserom.nds", 0x53E8, 0x7C + .incbin "baserom.nds", 0x5464, 0x3FC + .incbin "baserom.nds", 0x5860, 0x6C + .incbin "baserom.nds", 0x58CC, 0x70 + .incbin "baserom.nds", 0x593C, 0xAC + .balign 4, 255 diff --git a/narc/graphic/demo_trade.narc.s b/narc/graphic/demo_trade.narc.s new file mode 100644 index 00000000..50be0719 --- /dev/null +++ b/narc/graphic/demo_trade.narc.s @@ -0,0 +1,82 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00007B18 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000000EC ; chunk size + .short 28 ; number of files + .balign 4 + .word 0x00000000, 0x0000080E + .word 0x00000810, 0x0000101E + .word 0x00001020, 0x00001217 + .word 0x00001218, 0x00001452 + .word 0x00001454, 0x00001D78 + .word 0x00001D78, 0x0000274B + .word 0x0000274C, 0x00002986 + .word 0x00002988, 0x00002AE3 + .word 0x00002AE4, 0x00002BC1 + .word 0x00002BC4, 0x000031E1 + .word 0x000031E4, 0x00003260 + .word 0x00003260, 0x000032E0 + .word 0x000032E0, 0x0000334A + .word 0x0000334C, 0x000033AA + .word 0x000033AC, 0x00003406 + .word 0x00003408, 0x00003ABD + .word 0x00003AC0, 0x00004AD3 + .word 0x00004AD4, 0x00004B94 + .word 0x00004B94, 0x00004C85 + .word 0x00004C88, 0x00004D12 + .word 0x00004D14, 0x00004D6E + .word 0x00004D70, 0x00004E4F + .word 0x00004E50, 0x00004E93 + .word 0x00004E94, 0x00004EEE + .word 0x00004EF0, 0x000053B6 + .word 0x000053B8, 0x000057ED + .word 0x000057F0, 0x0000584A + .word 0x0000584C, 0x00007A04 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00007A0C ; chunk size + .incbin "baserom.nds", 0x0, 0x80E + .incbin "baserom.nds", 0x810, 0x80E + .incbin "baserom.nds", 0x1020, 0x1F7 + .incbin "baserom.nds", 0x1218, 0x23A + .incbin "baserom.nds", 0x1454, 0x924 + .incbin "baserom.nds", 0x1D78, 0x9D3 + .incbin "baserom.nds", 0x274C, 0x23A + .incbin "baserom.nds", 0x2988, 0x15B + .incbin "baserom.nds", 0x2AE4, 0xDD + .incbin "baserom.nds", 0x2BC4, 0x61D + .incbin "baserom.nds", 0x31E4, 0x7C + .incbin "baserom.nds", 0x3260, 0x80 + .incbin "baserom.nds", 0x32E0, 0x6A + .incbin "baserom.nds", 0x334C, 0x5E + .incbin "baserom.nds", 0x33AC, 0x5A + .incbin "baserom.nds", 0x3408, 0x6B5 + .incbin "baserom.nds", 0x3AC0, 0x1013 + .incbin "baserom.nds", 0x4AD4, 0xC0 + .incbin "baserom.nds", 0x4B94, 0xF1 + .incbin "baserom.nds", 0x4C88, 0x8A + .incbin "baserom.nds", 0x4D14, 0x5A + .incbin "baserom.nds", 0x4D70, 0xDF + .incbin "baserom.nds", 0x4E50, 0x43 + .incbin "baserom.nds", 0x4E94, 0x5A + .incbin "baserom.nds", 0x4EF0, 0x4C6 + .incbin "baserom.nds", 0x53B8, 0x435 + .incbin "baserom.nds", 0x57F0, 0x5A + .incbin "baserom.nds", 0x584C, 0x21B8 + .balign 4, 255 diff --git a/narc/graphic/dendou_demo.narc.s b/narc/graphic/dendou_demo.narc.s new file mode 100644 index 00000000..6d94f1fc --- /dev/null +++ b/narc/graphic/dendou_demo.narc.s @@ -0,0 +1,36 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0000061C ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000034 ; chunk size + .short 5 ; number of files + .balign 4 + .word 0x00000000, 0x0000013D + .word 0x00000140, 0x00000284 + .word 0x00000284, 0x0000039F + .word 0x000003A0, 0x0000051D + .word 0x00000520, 0x000005BE + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000005C8 ; chunk size + .incbin "baserom.nds", 0x0, 0x13D + .incbin "baserom.nds", 0x140, 0x144 + .incbin "baserom.nds", 0x284, 0x11B + .incbin "baserom.nds", 0x3A0, 0x17D + .incbin "baserom.nds", 0x520, 0x9E + .balign 4, 255 diff --git a/narc/graphic/dendou_pc.narc.s b/narc/graphic/dendou_pc.narc.s new file mode 100644 index 00000000..463c764e --- /dev/null +++ b/narc/graphic/dendou_pc.narc.s @@ -0,0 +1,32 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0000029C ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000024 ; chunk size + .short 3 ; number of files + .balign 4 + .word 0x00000000, 0x0000011B + .word 0x0000011C, 0x000001D2 + .word 0x000001D4, 0x00000250 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00000258 ; chunk size + .incbin "baserom.nds", 0x0, 0x11B + .incbin "baserom.nds", 0x11C, 0xB6 + .incbin "baserom.nds", 0x1D4, 0x7C + .balign 4, 255 diff --git a/narc/graphic/ending.narc.s b/narc/graphic/ending.narc.s new file mode 100644 index 00000000..d1b6df9a --- /dev/null +++ b/narc/graphic/ending.narc.s @@ -0,0 +1,160 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0005169C ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000224 ; chunk size + .short 67 ; number of files + .balign 4 + .word 0x00000000, 0x00001F58 + .word 0x00001F58, 0x00003EB0 + .word 0x00003EB0, 0x00005DEC + .word 0x00005DEC, 0x000062F8 + .word 0x000062F8, 0x0000731C + .word 0x0000731C, 0x0000B35C + .word 0x0000B35C, 0x0000C380 + .word 0x0000C380, 0x0000E3C0 + .word 0x0000E3C0, 0x0000F3E4 + .word 0x0000F3E4, 0x00011224 + .word 0x00011224, 0x00012248 + .word 0x00012248, 0x00014588 + .word 0x00014588, 0x000155AC + .word 0x000155AC, 0x000173EC + .word 0x000173EC, 0x00018410 + .word 0x00018410, 0x0001AC50 + .word 0x0001AC50, 0x0001BC74 + .word 0x0001BC74, 0x0001DFB4 + .word 0x0001DFB4, 0x0001EFD8 + .word 0x0001EFD8, 0x00021818 + .word 0x00021818, 0x00021E3C + .word 0x00021E3C, 0x0002227C + .word 0x0002227C, 0x000228A0 + .word 0x000228A0, 0x000230E0 + .word 0x000230E0, 0x00023704 + .word 0x00023704, 0x00024B44 + .word 0x00024B44, 0x00025168 + .word 0x00025168, 0x00026DA8 + .word 0x00026DA8, 0x000273CC + .word 0x000273CC, 0x00027C0C + .word 0x00027C0C, 0x00028230 + .word 0x00028230, 0x00028E70 + .word 0x00028E70, 0x00029494 + .word 0x00029494, 0x0002A8D4 + .word 0x0002A8D4, 0x0002AEF8 + .word 0x0002AEF8, 0x0002AF78 + .word 0x0002AF78, 0x0002B59C + .word 0x0002B59C, 0x0002D9DC + .word 0x0002D9DC, 0x0002E000 + .word 0x0002E000, 0x0003A040 + .word 0x0003A040, 0x0003A664 + .word 0x0003A664, 0x0003CAA4 + .word 0x0003CAA4, 0x0003D2C8 + .word 0x0003D2C8, 0x0003EB08 + .word 0x0003EB08, 0x0003EB62 + .word 0x0003EB64, 0x0003EDAB + .word 0x0003EDAC, 0x0003EF03 + .word 0x0003EF04, 0x00046734 + .word 0x00046734, 0x000467D2 + .word 0x000467D4, 0x00046A1B + .word 0x00046A1C, 0x00046B73 + .word 0x00046B74, 0x0004E3A4 + .word 0x0004E3A4, 0x0004E442 + .word 0x0004E444, 0x0004E4E3 + .word 0x0004E4E4, 0x0004E553 + .word 0x0004E554, 0x0004FE04 + .word 0x0004FE04, 0x0004FE80 + .word 0x0004FE80, 0x0004FEFB + .word 0x0004FEFC, 0x0004FF6B + .word 0x0004FF6C, 0x00050A9C + .word 0x00050A9C, 0x00050AF6 + .word 0x00050AF8, 0x00050BCA + .word 0x00050BCC, 0x00050C96 + .word 0x00050C98, 0x000511C8 + .word 0x000511C8, 0x00051222 + .word 0x00051224, 0x000513F4 + .word 0x000513F4, 0x0005144E + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00051458 ; chunk size + .incbin "baserom.nds", 0x0, 0x1F58 + .incbin "baserom.nds", 0x1F58, 0x1F58 + .incbin "baserom.nds", 0x3EB0, 0x1F3C + .incbin "baserom.nds", 0x5DEC, 0x50C + .incbin "baserom.nds", 0x62F8, 0x1024 + .incbin "baserom.nds", 0x731C, 0x4040 + .incbin "baserom.nds", 0xB35C, 0x1024 + .incbin "baserom.nds", 0xC380, 0x2040 + .incbin "baserom.nds", 0xE3C0, 0x1024 + .incbin "baserom.nds", 0xF3E4, 0x1E40 + .incbin "baserom.nds", 0x11224, 0x1024 + .incbin "baserom.nds", 0x12248, 0x2340 + .incbin "baserom.nds", 0x14588, 0x1024 + .incbin "baserom.nds", 0x155AC, 0x1E40 + .incbin "baserom.nds", 0x173EC, 0x1024 + .incbin "baserom.nds", 0x18410, 0x2840 + .incbin "baserom.nds", 0x1AC50, 0x1024 + .incbin "baserom.nds", 0x1BC74, 0x2340 + .incbin "baserom.nds", 0x1DFB4, 0x1024 + .incbin "baserom.nds", 0x1EFD8, 0x2840 + .incbin "baserom.nds", 0x21818, 0x624 + .incbin "baserom.nds", 0x21E3C, 0x440 + .incbin "baserom.nds", 0x2227C, 0x624 + .incbin "baserom.nds", 0x228A0, 0x840 + .incbin "baserom.nds", 0x230E0, 0x624 + .incbin "baserom.nds", 0x23704, 0x1440 + .incbin "baserom.nds", 0x24B44, 0x624 + .incbin "baserom.nds", 0x25168, 0x1C40 + .incbin "baserom.nds", 0x26DA8, 0x624 + .incbin "baserom.nds", 0x273CC, 0x840 + .incbin "baserom.nds", 0x27C0C, 0x624 + .incbin "baserom.nds", 0x28230, 0xC40 + .incbin "baserom.nds", 0x28E70, 0x624 + .incbin "baserom.nds", 0x29494, 0x1440 + .incbin "baserom.nds", 0x2A8D4, 0x624 + .incbin "baserom.nds", 0x2AEF8, 0x80 + .incbin "baserom.nds", 0x2AF78, 0x624 + .incbin "baserom.nds", 0x2B59C, 0x2440 + .incbin "baserom.nds", 0x2D9DC, 0x624 + .incbin "baserom.nds", 0x2E000, 0xC040 + .incbin "baserom.nds", 0x3A040, 0x624 + .incbin "baserom.nds", 0x3A664, 0x2440 + .incbin "baserom.nds", 0x3CAA4, 0x824 + .incbin "baserom.nds", 0x3D2C8, 0x1840 + .incbin "baserom.nds", 0x3EB08, 0x5A + .incbin "baserom.nds", 0x3EB64, 0x247 + .incbin "baserom.nds", 0x3EDAC, 0x157 + .incbin "baserom.nds", 0x3EF04, 0x7830 + .incbin "baserom.nds", 0x46734, 0x9E + .incbin "baserom.nds", 0x467D4, 0x247 + .incbin "baserom.nds", 0x46A1C, 0x157 + .incbin "baserom.nds", 0x46B74, 0x7830 + .incbin "baserom.nds", 0x4E3A4, 0x9E + .incbin "baserom.nds", 0x4E444, 0x9F + .incbin "baserom.nds", 0x4E4E4, 0x6F + .incbin "baserom.nds", 0x4E554, 0x18B0 + .incbin "baserom.nds", 0x4FE04, 0x7C + .incbin "baserom.nds", 0x4FE80, 0x7B + .incbin "baserom.nds", 0x4FEFC, 0x6F + .incbin "baserom.nds", 0x4FF6C, 0xB30 + .incbin "baserom.nds", 0x50A9C, 0x5A + .incbin "baserom.nds", 0x50AF8, 0xD2 + .incbin "baserom.nds", 0x50BCC, 0xCA + .incbin "baserom.nds", 0x50C98, 0x530 + .incbin "baserom.nds", 0x511C8, 0x5A + .incbin "baserom.nds", 0x51224, 0x1D0 + .incbin "baserom.nds", 0x513F4, 0x5A + .balign 4, 255 diff --git a/narc/graphic/ev_pokeselect.narc.s b/narc/graphic/ev_pokeselect.narc.s new file mode 100644 index 00000000..ad087834 --- /dev/null +++ b/narc/graphic/ev_pokeselect.narc.s @@ -0,0 +1,62 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00022524 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000009C ; chunk size + .short 18 ; number of files + .balign 4 + .word 0x00000000, 0x000017D4 + .word 0x000017D4, 0x0000EB40 + .word 0x0000EB40, 0x0000EE44 + .word 0x0000EE44, 0x00011478 + .word 0x00011478, 0x0001177C + .word 0x0001177C, 0x00013E08 + .word 0x00013E08, 0x0001410C + .word 0x0001410C, 0x00016790 + .word 0x00016790, 0x0001E394 + .word 0x0001E394, 0x0001F87C + .word 0x0001F87C, 0x0001FAAC + .word 0x0001FAAC, 0x0001FCD4 + .word 0x0001FCD4, 0x0001FD37 + .word 0x0001FD38, 0x0001FDA7 + .word 0x0001FDA8, 0x00021DE8 + .word 0x00021DE8, 0x00022010 + .word 0x00022010, 0x00022238 + .word 0x00022238, 0x00022460 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00022468 ; chunk size + .incbin "baserom.nds", 0x0, 0x17D4 + .incbin "baserom.nds", 0x17D4, 0xD36C + .incbin "baserom.nds", 0xEB40, 0x304 + .incbin "baserom.nds", 0xEE44, 0x2634 + .incbin "baserom.nds", 0x11478, 0x304 + .incbin "baserom.nds", 0x1177C, 0x268C + .incbin "baserom.nds", 0x13E08, 0x304 + .incbin "baserom.nds", 0x1410C, 0x2684 + .incbin "baserom.nds", 0x16790, 0x7C04 + .incbin "baserom.nds", 0x1E394, 0x14E8 + .incbin "baserom.nds", 0x1F87C, 0x230 + .incbin "baserom.nds", 0x1FAAC, 0x228 + .incbin "baserom.nds", 0x1FCD4, 0x63 + .incbin "baserom.nds", 0x1FD38, 0x6F + .incbin "baserom.nds", 0x1FDA8, 0x2040 + .incbin "baserom.nds", 0x21DE8, 0x228 + .incbin "baserom.nds", 0x22010, 0x228 + .incbin "baserom.nds", 0x22238, 0x228 + .balign 4, 255 diff --git a/narc/graphic/f_note_gra.narc.s b/narc/graphic/f_note_gra.narc.s new file mode 100644 index 00000000..cb79ddf2 --- /dev/null +++ b/narc/graphic/f_note_gra.narc.s @@ -0,0 +1,38 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0000297C ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000003C ; chunk size + .short 6 ; number of files + .balign 4 + .word 0x00000000, 0x00000624 + .word 0x00000624, 0x00000C48 + .word 0x00000C48, 0x00001888 + .word 0x00001888, 0x000024C8 + .word 0x000024C8, 0x000026F0 + .word 0x000026F0, 0x00002918 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00002920 ; chunk size + .incbin "baserom.nds", 0x0, 0x624 + .incbin "baserom.nds", 0x624, 0x624 + .incbin "baserom.nds", 0xC48, 0xC40 + .incbin "baserom.nds", 0x1888, 0xC40 + .incbin "baserom.nds", 0x24C8, 0x228 + .incbin "baserom.nds", 0x26F0, 0x228 + .balign 4, 255 diff --git a/narc/graphic/field_board.narc.s b/narc/graphic/field_board.narc.s new file mode 100644 index 00000000..e0cfe8e9 --- /dev/null +++ b/narc/graphic/field_board.narc.s @@ -0,0 +1,130 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0000A8FC ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000001AC ; chunk size + .short 52 ; number of files + .balign 4 + .word 0x00000000, 0x00000280 + .word 0x00000280, 0x000004A8 + .word 0x000004A8, 0x000007E8 + .word 0x000007E8, 0x00000B28 + .word 0x00000B28, 0x00000E68 + .word 0x00000E68, 0x000011A8 + .word 0x000011A8, 0x000014E8 + .word 0x000014E8, 0x00001828 + .word 0x00001828, 0x00001B68 + .word 0x00001B68, 0x00001EA8 + .word 0x00001EA8, 0x000021E8 + .word 0x000021E8, 0x00002528 + .word 0x00002528, 0x00002868 + .word 0x00002868, 0x00002BA8 + .word 0x00002BA8, 0x00002EE8 + .word 0x00002EE8, 0x00003228 + .word 0x00003228, 0x00003568 + .word 0x00003568, 0x000038A8 + .word 0x000038A8, 0x00003BE8 + .word 0x00003BE8, 0x00003F28 + .word 0x00003F28, 0x00004268 + .word 0x00004268, 0x000045A8 + .word 0x000045A8, 0x000048E8 + .word 0x000048E8, 0x00004C28 + .word 0x00004C28, 0x00004F68 + .word 0x00004F68, 0x000052A8 + .word 0x000052A8, 0x000055E8 + .word 0x000055E8, 0x00005928 + .word 0x00005928, 0x00005C68 + .word 0x00005C68, 0x00005FA8 + .word 0x00005FA8, 0x000062E8 + .word 0x000062E8, 0x00006628 + .word 0x00006628, 0x00006968 + .word 0x00006968, 0x00006CA8 + .word 0x00006CA8, 0x00006FE8 + .word 0x00006FE8, 0x00007328 + .word 0x00007328, 0x00007668 + .word 0x00007668, 0x000079A8 + .word 0x000079A8, 0x00007CE8 + .word 0x00007CE8, 0x00008028 + .word 0x00008028, 0x00008368 + .word 0x00008368, 0x000086A8 + .word 0x000086A8, 0x000089E8 + .word 0x000089E8, 0x00008D28 + .word 0x00008D28, 0x00009068 + .word 0x00009068, 0x000093A8 + .word 0x000093A8, 0x000096E8 + .word 0x000096E8, 0x00009A28 + .word 0x00009A28, 0x00009D68 + .word 0x00009D68, 0x0000A0A8 + .word 0x0000A0A8, 0x0000A3E8 + .word 0x0000A3E8, 0x0000A728 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0000A730 ; chunk size + .incbin "baserom.nds", 0x0, 0x280 + .incbin "baserom.nds", 0x280, 0x228 + .incbin "baserom.nds", 0x4A8, 0x340 + .incbin "baserom.nds", 0x7E8, 0x340 + .incbin "baserom.nds", 0xB28, 0x340 + .incbin "baserom.nds", 0xE68, 0x340 + .incbin "baserom.nds", 0x11A8, 0x340 + .incbin "baserom.nds", 0x14E8, 0x340 + .incbin "baserom.nds", 0x1828, 0x340 + .incbin "baserom.nds", 0x1B68, 0x340 + .incbin "baserom.nds", 0x1EA8, 0x340 + .incbin "baserom.nds", 0x21E8, 0x340 + .incbin "baserom.nds", 0x2528, 0x340 + .incbin "baserom.nds", 0x2868, 0x340 + .incbin "baserom.nds", 0x2BA8, 0x340 + .incbin "baserom.nds", 0x2EE8, 0x340 + .incbin "baserom.nds", 0x3228, 0x340 + .incbin "baserom.nds", 0x3568, 0x340 + .incbin "baserom.nds", 0x38A8, 0x340 + .incbin "baserom.nds", 0x3BE8, 0x340 + .incbin "baserom.nds", 0x3F28, 0x340 + .incbin "baserom.nds", 0x4268, 0x340 + .incbin "baserom.nds", 0x45A8, 0x340 + .incbin "baserom.nds", 0x48E8, 0x340 + .incbin "baserom.nds", 0x4C28, 0x340 + .incbin "baserom.nds", 0x4F68, 0x340 + .incbin "baserom.nds", 0x52A8, 0x340 + .incbin "baserom.nds", 0x55E8, 0x340 + .incbin "baserom.nds", 0x5928, 0x340 + .incbin "baserom.nds", 0x5C68, 0x340 + .incbin "baserom.nds", 0x5FA8, 0x340 + .incbin "baserom.nds", 0x62E8, 0x340 + .incbin "baserom.nds", 0x6628, 0x340 + .incbin "baserom.nds", 0x6968, 0x340 + .incbin "baserom.nds", 0x6CA8, 0x340 + .incbin "baserom.nds", 0x6FE8, 0x340 + .incbin "baserom.nds", 0x7328, 0x340 + .incbin "baserom.nds", 0x7668, 0x340 + .incbin "baserom.nds", 0x79A8, 0x340 + .incbin "baserom.nds", 0x7CE8, 0x340 + .incbin "baserom.nds", 0x8028, 0x340 + .incbin "baserom.nds", 0x8368, 0x340 + .incbin "baserom.nds", 0x86A8, 0x340 + .incbin "baserom.nds", 0x89E8, 0x340 + .incbin "baserom.nds", 0x8D28, 0x340 + .incbin "baserom.nds", 0x9068, 0x340 + .incbin "baserom.nds", 0x93A8, 0x340 + .incbin "baserom.nds", 0x96E8, 0x340 + .incbin "baserom.nds", 0x9A28, 0x340 + .incbin "baserom.nds", 0x9D68, 0x340 + .incbin "baserom.nds", 0xA0A8, 0x340 + .incbin "baserom.nds", 0xA3E8, 0x340 + .balign 4, 255 diff --git a/narc/graphic/field_encounteffect.narc.s b/narc/graphic/field_encounteffect.narc.s new file mode 100644 index 00000000..8fc9b59e --- /dev/null +++ b/narc/graphic/field_encounteffect.narc.s @@ -0,0 +1,78 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00009708 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000000DC ; chunk size + .short 26 ; number of files + .balign 4 + .word 0x00000000, 0x00000228 + .word 0x00000228, 0x00000450 + .word 0x00000450, 0x00000C80 + .word 0x00000C80, 0x00000CEF + .word 0x00000CF0, 0x00000D5B + .word 0x00000D5C, 0x00002D8C + .word 0x00002D8C, 0x00002E51 + .word 0x00002E54, 0x00002F25 + .word 0x00002F28, 0x00004F58 + .word 0x00004F58, 0x00004FC7 + .word 0x00004FC8, 0x00005043 + .word 0x00005044, 0x0000526C + .word 0x0000526C, 0x00005EAC + .word 0x00005EAC, 0x000062D0 + .word 0x000062D0, 0x000064F8 + .word 0x000064F8, 0x00007D28 + .word 0x00007D28, 0x000080BA + .word 0x000080BC, 0x0000822E + .word 0x00008230, 0x00008458 + .word 0x00008458, 0x00008680 + .word 0x00008680, 0x000088A8 + .word 0x000088A8, 0x00008AD0 + .word 0x00008AD0, 0x00008CF8 + .word 0x00008CF8, 0x00009528 + .word 0x00009528, 0x00009593 + .word 0x00009594, 0x00009603 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0000960C ; chunk size + .incbin "baserom.nds", 0x0, 0x228 + .incbin "baserom.nds", 0x228, 0x228 + .incbin "baserom.nds", 0x450, 0x830 + .incbin "baserom.nds", 0xC80, 0x6F + .incbin "baserom.nds", 0xCF0, 0x6B + .incbin "baserom.nds", 0xD5C, 0x2030 + .incbin "baserom.nds", 0x2D8C, 0xC5 + .incbin "baserom.nds", 0x2E54, 0xD1 + .incbin "baserom.nds", 0x2F28, 0x2030 + .incbin "baserom.nds", 0x4F58, 0x6F + .incbin "baserom.nds", 0x4FC8, 0x7B + .incbin "baserom.nds", 0x5044, 0x228 + .incbin "baserom.nds", 0x526C, 0xC40 + .incbin "baserom.nds", 0x5EAC, 0x424 + .incbin "baserom.nds", 0x62D0, 0x228 + .incbin "baserom.nds", 0x64F8, 0x1830 + .incbin "baserom.nds", 0x7D28, 0x392 + .incbin "baserom.nds", 0x80BC, 0x172 + .incbin "baserom.nds", 0x8230, 0x228 + .incbin "baserom.nds", 0x8458, 0x228 + .incbin "baserom.nds", 0x8680, 0x228 + .incbin "baserom.nds", 0x88A8, 0x228 + .incbin "baserom.nds", 0x8AD0, 0x228 + .incbin "baserom.nds", 0x8CF8, 0x830 + .incbin "baserom.nds", 0x9528, 0x6B + .incbin "baserom.nds", 0x9594, 0x6F + .balign 4, 255 diff --git a/narc/graphic/fld_comact.narc.s b/narc/graphic/fld_comact.narc.s new file mode 100644 index 00000000..1ff7d8f0 --- /dev/null +++ b/narc/graphic/fld_comact.narc.s @@ -0,0 +1,34 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00000364 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000002C ; chunk size + .short 4 ; number of files + .balign 4 + .word 0x00000000, 0x0000005A + .word 0x0000005C, 0x0000018C + .word 0x0000018C, 0x0000021A + .word 0x0000021C, 0x0000030E + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00000318 ; chunk size + .incbin "baserom.nds", 0x0, 0x5A + .incbin "baserom.nds", 0x5C, 0x130 + .incbin "baserom.nds", 0x18C, 0x8E + .incbin "baserom.nds", 0x21C, 0xF2 + .balign 4, 255 diff --git a/narc/graphic/font.narc.s b/narc/graphic/font.narc.s new file mode 100644 index 00000000..53ff67d2 --- /dev/null +++ b/narc/graphic/font.narc.s @@ -0,0 +1,42 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00020E58 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000004C ; chunk size + .short 8 ; number of files + .balign 4 + .word 0x00000000, 0x0000814D + .word 0x00008150, 0x0001029D + .word 0x000102A0, 0x000183ED + .word 0x000183F0, 0x0002053D + .word 0x00020540, 0x000206EC + .word 0x000206EC, 0x00020D2C + .word 0x00020D2C, 0x00020D86 + .word 0x00020D88, 0x00020DE2 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00020DEC ; chunk size + .incbin "baserom.nds", 0x0, 0x814D + .incbin "baserom.nds", 0x8150, 0x814D + .incbin "baserom.nds", 0x102A0, 0x814D + .incbin "baserom.nds", 0x183F0, 0x814D + .incbin "baserom.nds", 0x20540, 0x1AC + .incbin "baserom.nds", 0x206EC, 0x640 + .incbin "baserom.nds", 0x20D2C, 0x5A + .incbin "baserom.nds", 0x20D88, 0x5A + .balign 4, 255 diff --git a/narc/graphic/fontoam.narc.s b/narc/graphic/fontoam.narc.s new file mode 100644 index 00000000..626f314a --- /dev/null +++ b/narc/graphic/fontoam.narc.s @@ -0,0 +1,50 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x000005A4 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000006C ; chunk size + .short 12 ; number of files + .balign 4 + .word 0x00000000, 0x0000006B + .word 0x0000006C, 0x000000D7 + .word 0x000000D8, 0x00000143 + .word 0x00000144, 0x000001AF + .word 0x000001B0, 0x0000021B + .word 0x0000021C, 0x00000287 + .word 0x00000288, 0x000002F3 + .word 0x000002F4, 0x0000035F + .word 0x00000360, 0x000003CB + .word 0x000003CC, 0x00000437 + .word 0x00000438, 0x000004A3 + .word 0x000004A4, 0x0000050F + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00000518 ; chunk size + .incbin "baserom.nds", 0x0, 0x6B + .incbin "baserom.nds", 0x6C, 0x6B + .incbin "baserom.nds", 0xD8, 0x6B + .incbin "baserom.nds", 0x144, 0x6B + .incbin "baserom.nds", 0x1B0, 0x6B + .incbin "baserom.nds", 0x21C, 0x6B + .incbin "baserom.nds", 0x288, 0x6B + .incbin "baserom.nds", 0x2F4, 0x6B + .incbin "baserom.nds", 0x360, 0x6B + .incbin "baserom.nds", 0x3CC, 0x6B + .incbin "baserom.nds", 0x438, 0x6B + .incbin "baserom.nds", 0x4A4, 0x6B + .balign 4, 255 diff --git a/narc/graphic/hiden_effect.narc.s b/narc/graphic/hiden_effect.narc.s new file mode 100644 index 00000000..49164645 --- /dev/null +++ b/narc/graphic/hiden_effect.narc.s @@ -0,0 +1,56 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00007E14 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000084 ; chunk size + .short 15 ; number of files + .balign 4 + .word 0x00000000, 0x00001284 + .word 0x00001284, 0x0000148C + .word 0x0000148C, 0x000017E8 + .word 0x000017E8, 0x00002880 + .word 0x00002880, 0x00004180 + .word 0x00004180, 0x00004330 + .word 0x00004330, 0x00004404 + .word 0x00004404, 0x00004760 + .word 0x00004760, 0x000054F0 + .word 0x000054F0, 0x000056A4 + .word 0x000056A4, 0x000057D4 + .word 0x000057D4, 0x000068B0 + .word 0x000068B0, 0x00006B64 + .word 0x00006B64, 0x00006C8C + .word 0x00006C8C, 0x00007D68 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00007D70 ; chunk size + .incbin "baserom.nds", 0x0, 0x1284 + .incbin "baserom.nds", 0x1284, 0x208 + .incbin "baserom.nds", 0x148C, 0x35C + .incbin "baserom.nds", 0x17E8, 0x1098 + .incbin "baserom.nds", 0x2880, 0x1900 + .incbin "baserom.nds", 0x4180, 0x1B0 + .incbin "baserom.nds", 0x4330, 0xD4 + .incbin "baserom.nds", 0x4404, 0x35C + .incbin "baserom.nds", 0x4760, 0xD90 + .incbin "baserom.nds", 0x54F0, 0x1B4 + .incbin "baserom.nds", 0x56A4, 0x130 + .incbin "baserom.nds", 0x57D4, 0x10DC + .incbin "baserom.nds", 0x68B0, 0x2B4 + .incbin "baserom.nds", 0x6B64, 0x128 + .incbin "baserom.nds", 0x6C8C, 0x10DC + .balign 4, 255 diff --git a/narc/graphic/imageclip.narc.s b/narc/graphic/imageclip.narc.s new file mode 100644 index 00000000..11cd515e --- /dev/null +++ b/narc/graphic/imageclip.narc.s @@ -0,0 +1,498 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0003E630 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000076C ; chunk size + .short 236 ; number of files + .balign 4 + .word 0x00000000, 0x00000228 + .word 0x00000228, 0x000002E8 + .word 0x000002E8, 0x000003A8 + .word 0x000003A8, 0x00000468 + .word 0x00000468, 0x00000528 + .word 0x00000528, 0x000005E8 + .word 0x000005E8, 0x000006A8 + .word 0x000006A8, 0x00000768 + .word 0x00000768, 0x000009A8 + .word 0x000009A8, 0x00000A68 + .word 0x00000A68, 0x00000CA8 + .word 0x00000CA8, 0x00000D68 + .word 0x00000D68, 0x00000E28 + .word 0x00000E28, 0x00000EE8 + .word 0x00000EE8, 0x00000FA8 + .word 0x00000FA8, 0x00001068 + .word 0x00001068, 0x00001128 + .word 0x00001128, 0x00001368 + .word 0x00001368, 0x000014A8 + .word 0x000014A8, 0x00001568 + .word 0x00001568, 0x00001628 + .word 0x00001628, 0x000016E8 + .word 0x000016E8, 0x000017A8 + .word 0x000017A8, 0x00001868 + .word 0x00001868, 0x00001928 + .word 0x00001928, 0x00001A68 + .word 0x00001A68, 0x00001CA8 + .word 0x00001CA8, 0x00001EE8 + .word 0x00001EE8, 0x00002128 + .word 0x00002128, 0x000021E8 + .word 0x000021E8, 0x000022A8 + .word 0x000022A8, 0x000023E8 + .word 0x000023E8, 0x00002528 + .word 0x00002528, 0x000025E8 + .word 0x000025E8, 0x00002A28 + .word 0x00002A28, 0x00002AE8 + .word 0x00002AE8, 0x00002D28 + .word 0x00002D28, 0x00003168 + .word 0x00003168, 0x000035A8 + .word 0x000035A8, 0x000039E8 + .word 0x000039E8, 0x00003E28 + .word 0x00003E28, 0x00003F68 + .word 0x00003F68, 0x000043A8 + .word 0x000043A8, 0x000044E8 + .word 0x000044E8, 0x00004928 + .word 0x00004928, 0x00004B68 + .word 0x00004B68, 0x00004DA8 + .word 0x00004DA8, 0x00004E68 + .word 0x00004E68, 0x000050A8 + .word 0x000050A8, 0x000054E8 + .word 0x000054E8, 0x00005928 + .word 0x00005928, 0x000059E8 + .word 0x000059E8, 0x00005AA8 + .word 0x00005AA8, 0x00005BE8 + .word 0x00005BE8, 0x00005CA8 + .word 0x00005CA8, 0x00005D68 + .word 0x00005D68, 0x00005E28 + .word 0x00005E28, 0x00005F68 + .word 0x00005F68, 0x000061A8 + .word 0x000061A8, 0x000063E8 + .word 0x000063E8, 0x00006628 + .word 0x00006628, 0x00006A68 + .word 0x00006A68, 0x00006EA8 + .word 0x00006EA8, 0x000072E8 + .word 0x000072E8, 0x00007728 + .word 0x00007728, 0x00007B68 + .word 0x00007B68, 0x00007FA8 + .word 0x00007FA8, 0x000083E8 + .word 0x000083E8, 0x00008828 + .word 0x00008828, 0x00008C68 + .word 0x00008C68, 0x000090A8 + .word 0x000090A8, 0x000094E8 + .word 0x000094E8, 0x00009928 + .word 0x00009928, 0x000099E8 + .word 0x000099E8, 0x00009B28 + .word 0x00009B28, 0x00009D68 + .word 0x00009D68, 0x00009FA8 + .word 0x00009FA8, 0x0000A1E8 + .word 0x0000A1E8, 0x0000A628 + .word 0x0000A628, 0x0000AA68 + .word 0x0000AA68, 0x0000AEA8 + .word 0x0000AEA8, 0x0000B2E8 + .word 0x0000B2E8, 0x0000B728 + .word 0x0000B728, 0x0000B968 + .word 0x0000B968, 0x0000BBA8 + .word 0x0000BBA8, 0x0000BFE8 + .word 0x0000BFE8, 0x0000C428 + .word 0x0000C428, 0x0000C668 + .word 0x0000C668, 0x0000CAA8 + .word 0x0000CAA8, 0x0000CEE8 + .word 0x0000CEE8, 0x0000D328 + .word 0x0000D328, 0x0000D768 + .word 0x0000D768, 0x0000DBA8 + .word 0x0000DBA8, 0x0000DDE8 + .word 0x0000DDE8, 0x0000E028 + .word 0x0000E028, 0x0000E268 + .word 0x0000E268, 0x0000E6A8 + .word 0x0000E6A8, 0x0000EAE8 + .word 0x0000EAE8, 0x0000ED28 + .word 0x0000ED28, 0x0000EE68 + .word 0x0000EE68, 0x0000F2A8 + .word 0x0000F2A8, 0x0000F340 + .word 0x0000F340, 0x0000F3BC + .word 0x0000F3BC, 0x0000F4EC + .word 0x0000F4EC, 0x0000F714 + .word 0x0000F714, 0x0000F796 + .word 0x0000F798, 0x0000F826 + .word 0x0000F828, 0x0000FFD8 + .word 0x0000FFD8, 0x0001005A + .word 0x0001005C, 0x000100F2 + .word 0x000100F4, 0x000108A4 + .word 0x000108A4, 0x0001092E + .word 0x00010930, 0x000109E2 + .word 0x000109E4, 0x00011794 + .word 0x00011794, 0x0001181E + .word 0x00011820, 0x000118D2 + .word 0x000118D4, 0x00012684 + .word 0x00012684, 0x0001270E + .word 0x00012710, 0x000127D6 + .word 0x000127D8, 0x00013C48 + .word 0x00013C48, 0x00013E70 + .word 0x00013E70, 0x000146B0 + .word 0x000146B0, 0x00014ED4 + .word 0x00014ED4, 0x00015B14 + .word 0x00015B14, 0x00016338 + .word 0x00016338, 0x00016F78 + .word 0x00016F78, 0x000171A0 + .word 0x000171A0, 0x000179C4 + .word 0x000179C4, 0x000181E8 + .word 0x000181E8, 0x000182C8 + .word 0x000182C8, 0x000184AC + .word 0x000184AC, 0x0001858C + .word 0x0001858C, 0x00018770 + .word 0x00018770, 0x00018998 + .word 0x00018998, 0x00018FD8 + .word 0x00018FD8, 0x00019200 + .word 0x00019200, 0x000193E4 + .word 0x000193E4, 0x000195C8 + .word 0x000195C8, 0x0001A808 + .word 0x0001A808, 0x0001AA30 + .word 0x0001AA30, 0x0001AC14 + .word 0x0001AC14, 0x0001ADF8 + .word 0x0001ADF8, 0x0001B838 + .word 0x0001B838, 0x0001BA60 + .word 0x0001BA60, 0x0001BC44 + .word 0x0001BC44, 0x0001BE28 + .word 0x0001BE28, 0x0001D068 + .word 0x0001D068, 0x0001D290 + .word 0x0001D290, 0x0001D474 + .word 0x0001D474, 0x0001D658 + .word 0x0001D658, 0x0001F498 + .word 0x0001F498, 0x0001F6C0 + .word 0x0001F6C0, 0x0001F8A4 + .word 0x0001F8A4, 0x0001FA88 + .word 0x0001FA88, 0x000208C8 + .word 0x000208C8, 0x00020AF0 + .word 0x00020AF0, 0x00020CD4 + .word 0x00020CD4, 0x00020EB8 + .word 0x00020EB8, 0x000220F8 + .word 0x000220F8, 0x00022320 + .word 0x00022320, 0x00022504 + .word 0x00022504, 0x000226E8 + .word 0x000226E8, 0x00024328 + .word 0x00024328, 0x00024550 + .word 0x00024550, 0x00024734 + .word 0x00024734, 0x00024918 + .word 0x00024918, 0x00026358 + .word 0x00026358, 0x00026580 + .word 0x00026580, 0x00026764 + .word 0x00026764, 0x00026948 + .word 0x00026948, 0x00027788 + .word 0x00027788, 0x000279B0 + .word 0x000279B0, 0x00027B94 + .word 0x00027B94, 0x00027D78 + .word 0x00027D78, 0x000299B8 + .word 0x000299B8, 0x00029BE0 + .word 0x00029BE0, 0x00029DC4 + .word 0x00029DC4, 0x00029FA8 + .word 0x00029FA8, 0x0002ADE8 + .word 0x0002ADE8, 0x0002B010 + .word 0x0002B010, 0x0002B1F4 + .word 0x0002B1F4, 0x0002B3D8 + .word 0x0002B3D8, 0x0002C618 + .word 0x0002C618, 0x0002C840 + .word 0x0002C840, 0x0002CA24 + .word 0x0002CA24, 0x0002CC08 + .word 0x0002CC08, 0x0002E648 + .word 0x0002E648, 0x0002E870 + .word 0x0002E870, 0x0002EA54 + .word 0x0002EA54, 0x0002EC38 + .word 0x0002EC38, 0x0002F478 + .word 0x0002F478, 0x0002F6A0 + .word 0x0002F6A0, 0x0002F884 + .word 0x0002F884, 0x0002FA68 + .word 0x0002FA68, 0x000312A8 + .word 0x000312A8, 0x000314D0 + .word 0x000314D0, 0x000316B4 + .word 0x000316B4, 0x00031898 + .word 0x00031898, 0x00033AD8 + .word 0x00033AD8, 0x00033D00 + .word 0x00033D00, 0x00033EE4 + .word 0x00033EE4, 0x000340C8 + .word 0x000340C8, 0x00035508 + .word 0x00035508, 0x00035730 + .word 0x00035730, 0x00035914 + .word 0x00035914, 0x00035AF8 + .word 0x00035AF8, 0x00035D38 + .word 0x00035D38, 0x00035F78 + .word 0x00035F78, 0x000361B8 + .word 0x000361B8, 0x000363F8 + .word 0x000363F8, 0x00036638 + .word 0x00036638, 0x00036878 + .word 0x00036878, 0x00036AB8 + .word 0x00036AB8, 0x00036CF8 + .word 0x00036CF8, 0x00036F38 + .word 0x00036F38, 0x00037178 + .word 0x00037178, 0x000373B8 + .word 0x000373B8, 0x000375F8 + .word 0x000375F8, 0x00037838 + .word 0x00037838, 0x00037A78 + .word 0x00037A78, 0x00037CB8 + .word 0x00037CB8, 0x00037EF8 + .word 0x00037EF8, 0x00038138 + .word 0x00038138, 0x00038378 + .word 0x00038378, 0x00038FB8 + .word 0x00038FB8, 0x000391E0 + .word 0x000391E0, 0x00039804 + .word 0x00039804, 0x000399C4 + .word 0x000399C4, 0x00039AF8 + .word 0x00039AF8, 0x0003AF28 + .word 0x0003AF28, 0x0003B150 + .word 0x0003B150, 0x0003B288 + .word 0x0003B288, 0x0003B4E0 + .word 0x0003B4E0, 0x0003DC10 + .word 0x0003DC10, 0x0003DE38 + .word 0x0003DE38, 0x0003DE9C + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0003DEA4 ; chunk size + .incbin "baserom.nds", 0x0, 0x228 + .incbin "baserom.nds", 0x228, 0xC0 + .incbin "baserom.nds", 0x2E8, 0xC0 + .incbin "baserom.nds", 0x3A8, 0xC0 + .incbin "baserom.nds", 0x468, 0xC0 + .incbin "baserom.nds", 0x528, 0xC0 + .incbin "baserom.nds", 0x5E8, 0xC0 + .incbin "baserom.nds", 0x6A8, 0xC0 + .incbin "baserom.nds", 0x768, 0x240 + .incbin "baserom.nds", 0x9A8, 0xC0 + .incbin "baserom.nds", 0xA68, 0x240 + .incbin "baserom.nds", 0xCA8, 0xC0 + .incbin "baserom.nds", 0xD68, 0xC0 + .incbin "baserom.nds", 0xE28, 0xC0 + .incbin "baserom.nds", 0xEE8, 0xC0 + .incbin "baserom.nds", 0xFA8, 0xC0 + .incbin "baserom.nds", 0x1068, 0xC0 + .incbin "baserom.nds", 0x1128, 0x240 + .incbin "baserom.nds", 0x1368, 0x140 + .incbin "baserom.nds", 0x14A8, 0xC0 + .incbin "baserom.nds", 0x1568, 0xC0 + .incbin "baserom.nds", 0x1628, 0xC0 + .incbin "baserom.nds", 0x16E8, 0xC0 + .incbin "baserom.nds", 0x17A8, 0xC0 + .incbin "baserom.nds", 0x1868, 0xC0 + .incbin "baserom.nds", 0x1928, 0x140 + .incbin "baserom.nds", 0x1A68, 0x240 + .incbin "baserom.nds", 0x1CA8, 0x240 + .incbin "baserom.nds", 0x1EE8, 0x240 + .incbin "baserom.nds", 0x2128, 0xC0 + .incbin "baserom.nds", 0x21E8, 0xC0 + .incbin "baserom.nds", 0x22A8, 0x140 + .incbin "baserom.nds", 0x23E8, 0x140 + .incbin "baserom.nds", 0x2528, 0xC0 + .incbin "baserom.nds", 0x25E8, 0x440 + .incbin "baserom.nds", 0x2A28, 0xC0 + .incbin "baserom.nds", 0x2AE8, 0x240 + .incbin "baserom.nds", 0x2D28, 0x440 + .incbin "baserom.nds", 0x3168, 0x440 + .incbin "baserom.nds", 0x35A8, 0x440 + .incbin "baserom.nds", 0x39E8, 0x440 + .incbin "baserom.nds", 0x3E28, 0x140 + .incbin "baserom.nds", 0x3F68, 0x440 + .incbin "baserom.nds", 0x43A8, 0x140 + .incbin "baserom.nds", 0x44E8, 0x440 + .incbin "baserom.nds", 0x4928, 0x240 + .incbin "baserom.nds", 0x4B68, 0x240 + .incbin "baserom.nds", 0x4DA8, 0xC0 + .incbin "baserom.nds", 0x4E68, 0x240 + .incbin "baserom.nds", 0x50A8, 0x440 + .incbin "baserom.nds", 0x54E8, 0x440 + .incbin "baserom.nds", 0x5928, 0xC0 + .incbin "baserom.nds", 0x59E8, 0xC0 + .incbin "baserom.nds", 0x5AA8, 0x140 + .incbin "baserom.nds", 0x5BE8, 0xC0 + .incbin "baserom.nds", 0x5CA8, 0xC0 + .incbin "baserom.nds", 0x5D68, 0xC0 + .incbin "baserom.nds", 0x5E28, 0x140 + .incbin "baserom.nds", 0x5F68, 0x240 + .incbin "baserom.nds", 0x61A8, 0x240 + .incbin "baserom.nds", 0x63E8, 0x240 + .incbin "baserom.nds", 0x6628, 0x440 + .incbin "baserom.nds", 0x6A68, 0x440 + .incbin "baserom.nds", 0x6EA8, 0x440 + .incbin "baserom.nds", 0x72E8, 0x440 + .incbin "baserom.nds", 0x7728, 0x440 + .incbin "baserom.nds", 0x7B68, 0x440 + .incbin "baserom.nds", 0x7FA8, 0x440 + .incbin "baserom.nds", 0x83E8, 0x440 + .incbin "baserom.nds", 0x8828, 0x440 + .incbin "baserom.nds", 0x8C68, 0x440 + .incbin "baserom.nds", 0x90A8, 0x440 + .incbin "baserom.nds", 0x94E8, 0x440 + .incbin "baserom.nds", 0x9928, 0xC0 + .incbin "baserom.nds", 0x99E8, 0x140 + .incbin "baserom.nds", 0x9B28, 0x240 + .incbin "baserom.nds", 0x9D68, 0x240 + .incbin "baserom.nds", 0x9FA8, 0x240 + .incbin "baserom.nds", 0xA1E8, 0x440 + .incbin "baserom.nds", 0xA628, 0x440 + .incbin "baserom.nds", 0xAA68, 0x440 + .incbin "baserom.nds", 0xAEA8, 0x440 + .incbin "baserom.nds", 0xB2E8, 0x440 + .incbin "baserom.nds", 0xB728, 0x240 + .incbin "baserom.nds", 0xB968, 0x240 + .incbin "baserom.nds", 0xBBA8, 0x440 + .incbin "baserom.nds", 0xBFE8, 0x440 + .incbin "baserom.nds", 0xC428, 0x240 + .incbin "baserom.nds", 0xC668, 0x440 + .incbin "baserom.nds", 0xCAA8, 0x440 + .incbin "baserom.nds", 0xCEE8, 0x440 + .incbin "baserom.nds", 0xD328, 0x440 + .incbin "baserom.nds", 0xD768, 0x440 + .incbin "baserom.nds", 0xDBA8, 0x240 + .incbin "baserom.nds", 0xDDE8, 0x240 + .incbin "baserom.nds", 0xE028, 0x240 + .incbin "baserom.nds", 0xE268, 0x440 + .incbin "baserom.nds", 0xE6A8, 0x440 + .incbin "baserom.nds", 0xEAE8, 0x240 + .incbin "baserom.nds", 0xED28, 0x140 + .incbin "baserom.nds", 0xEE68, 0x440 + .incbin "baserom.nds", 0xF2A8, 0x98 + .incbin "baserom.nds", 0xF340, 0x7C + .incbin "baserom.nds", 0xF3BC, 0x130 + .incbin "baserom.nds", 0xF4EC, 0x228 + .incbin "baserom.nds", 0xF714, 0x82 + .incbin "baserom.nds", 0xF798, 0x8E + .incbin "baserom.nds", 0xF828, 0x7B0 + .incbin "baserom.nds", 0xFFD8, 0x82 + .incbin "baserom.nds", 0x1005C, 0x96 + .incbin "baserom.nds", 0x100F4, 0x7B0 + .incbin "baserom.nds", 0x108A4, 0x8A + .incbin "baserom.nds", 0x10930, 0xB2 + .incbin "baserom.nds", 0x109E4, 0xDB0 + .incbin "baserom.nds", 0x11794, 0x8A + .incbin "baserom.nds", 0x11820, 0xB2 + .incbin "baserom.nds", 0x118D4, 0xDB0 + .incbin "baserom.nds", 0x12684, 0x8A + .incbin "baserom.nds", 0x12710, 0xC6 + .incbin "baserom.nds", 0x127D8, 0x1470 + .incbin "baserom.nds", 0x13C48, 0x228 + .incbin "baserom.nds", 0x13E70, 0x840 + .incbin "baserom.nds", 0x146B0, 0x824 + .incbin "baserom.nds", 0x14ED4, 0xC40 + .incbin "baserom.nds", 0x15B14, 0x824 + .incbin "baserom.nds", 0x16338, 0xC40 + .incbin "baserom.nds", 0x16F78, 0x228 + .incbin "baserom.nds", 0x171A0, 0x824 + .incbin "baserom.nds", 0x179C4, 0x824 + .incbin "baserom.nds", 0x181E8, 0xE0 + .incbin "baserom.nds", 0x182C8, 0x1E4 + .incbin "baserom.nds", 0x184AC, 0xE0 + .incbin "baserom.nds", 0x1858C, 0x1E4 + .incbin "baserom.nds", 0x18770, 0x228 + .incbin "baserom.nds", 0x18998, 0x640 + .incbin "baserom.nds", 0x18FD8, 0x228 + .incbin "baserom.nds", 0x19200, 0x1E4 + .incbin "baserom.nds", 0x193E4, 0x1E4 + .incbin "baserom.nds", 0x195C8, 0x1240 + .incbin "baserom.nds", 0x1A808, 0x228 + .incbin "baserom.nds", 0x1AA30, 0x1E4 + .incbin "baserom.nds", 0x1AC14, 0x1E4 + .incbin "baserom.nds", 0x1ADF8, 0xA40 + .incbin "baserom.nds", 0x1B838, 0x228 + .incbin "baserom.nds", 0x1BA60, 0x1E4 + .incbin "baserom.nds", 0x1BC44, 0x1E4 + .incbin "baserom.nds", 0x1BE28, 0x1240 + .incbin "baserom.nds", 0x1D068, 0x228 + .incbin "baserom.nds", 0x1D290, 0x1E4 + .incbin "baserom.nds", 0x1D474, 0x1E4 + .incbin "baserom.nds", 0x1D658, 0x1E40 + .incbin "baserom.nds", 0x1F498, 0x228 + .incbin "baserom.nds", 0x1F6C0, 0x1E4 + .incbin "baserom.nds", 0x1F8A4, 0x1E4 + .incbin "baserom.nds", 0x1FA88, 0xE40 + .incbin "baserom.nds", 0x208C8, 0x228 + .incbin "baserom.nds", 0x20AF0, 0x1E4 + .incbin "baserom.nds", 0x20CD4, 0x1E4 + .incbin "baserom.nds", 0x20EB8, 0x1240 + .incbin "baserom.nds", 0x220F8, 0x228 + .incbin "baserom.nds", 0x22320, 0x1E4 + .incbin "baserom.nds", 0x22504, 0x1E4 + .incbin "baserom.nds", 0x226E8, 0x1C40 + .incbin "baserom.nds", 0x24328, 0x228 + .incbin "baserom.nds", 0x24550, 0x1E4 + .incbin "baserom.nds", 0x24734, 0x1E4 + .incbin "baserom.nds", 0x24918, 0x1A40 + .incbin "baserom.nds", 0x26358, 0x228 + .incbin "baserom.nds", 0x26580, 0x1E4 + .incbin "baserom.nds", 0x26764, 0x1E4 + .incbin "baserom.nds", 0x26948, 0xE40 + .incbin "baserom.nds", 0x27788, 0x228 + .incbin "baserom.nds", 0x279B0, 0x1E4 + .incbin "baserom.nds", 0x27B94, 0x1E4 + .incbin "baserom.nds", 0x27D78, 0x1C40 + .incbin "baserom.nds", 0x299B8, 0x228 + .incbin "baserom.nds", 0x29BE0, 0x1E4 + .incbin "baserom.nds", 0x29DC4, 0x1E4 + .incbin "baserom.nds", 0x29FA8, 0xE40 + .incbin "baserom.nds", 0x2ADE8, 0x228 + .incbin "baserom.nds", 0x2B010, 0x1E4 + .incbin "baserom.nds", 0x2B1F4, 0x1E4 + .incbin "baserom.nds", 0x2B3D8, 0x1240 + .incbin "baserom.nds", 0x2C618, 0x228 + .incbin "baserom.nds", 0x2C840, 0x1E4 + .incbin "baserom.nds", 0x2CA24, 0x1E4 + .incbin "baserom.nds", 0x2CC08, 0x1A40 + .incbin "baserom.nds", 0x2E648, 0x228 + .incbin "baserom.nds", 0x2E870, 0x1E4 + .incbin "baserom.nds", 0x2EA54, 0x1E4 + .incbin "baserom.nds", 0x2EC38, 0x840 + .incbin "baserom.nds", 0x2F478, 0x228 + .incbin "baserom.nds", 0x2F6A0, 0x1E4 + .incbin "baserom.nds", 0x2F884, 0x1E4 + .incbin "baserom.nds", 0x2FA68, 0x1840 + .incbin "baserom.nds", 0x312A8, 0x228 + .incbin "baserom.nds", 0x314D0, 0x1E4 + .incbin "baserom.nds", 0x316B4, 0x1E4 + .incbin "baserom.nds", 0x31898, 0x2240 + .incbin "baserom.nds", 0x33AD8, 0x228 + .incbin "baserom.nds", 0x33D00, 0x1E4 + .incbin "baserom.nds", 0x33EE4, 0x1E4 + .incbin "baserom.nds", 0x340C8, 0x1440 + .incbin "baserom.nds", 0x35508, 0x228 + .incbin "baserom.nds", 0x35730, 0x1E4 + .incbin "baserom.nds", 0x35914, 0x1E4 + .incbin "baserom.nds", 0x35AF8, 0x240 + .incbin "baserom.nds", 0x35D38, 0x240 + .incbin "baserom.nds", 0x35F78, 0x240 + .incbin "baserom.nds", 0x361B8, 0x240 + .incbin "baserom.nds", 0x363F8, 0x240 + .incbin "baserom.nds", 0x36638, 0x240 + .incbin "baserom.nds", 0x36878, 0x240 + .incbin "baserom.nds", 0x36AB8, 0x240 + .incbin "baserom.nds", 0x36CF8, 0x240 + .incbin "baserom.nds", 0x36F38, 0x240 + .incbin "baserom.nds", 0x37178, 0x240 + .incbin "baserom.nds", 0x373B8, 0x240 + .incbin "baserom.nds", 0x375F8, 0x240 + .incbin "baserom.nds", 0x37838, 0x240 + .incbin "baserom.nds", 0x37A78, 0x240 + .incbin "baserom.nds", 0x37CB8, 0x240 + .incbin "baserom.nds", 0x37EF8, 0x240 + .incbin "baserom.nds", 0x38138, 0x240 + .incbin "baserom.nds", 0x38378, 0xC40 + .incbin "baserom.nds", 0x38FB8, 0x228 + .incbin "baserom.nds", 0x391E0, 0x624 + .incbin "baserom.nds", 0x39804, 0x1C0 + .incbin "baserom.nds", 0x399C4, 0x134 + .incbin "baserom.nds", 0x39AF8, 0x1430 + .incbin "baserom.nds", 0x3AF28, 0x228 + .incbin "baserom.nds", 0x3B150, 0x138 + .incbin "baserom.nds", 0x3B288, 0x258 + .incbin "baserom.nds", 0x3B4E0, 0x2730 + .incbin "baserom.nds", 0x3DC10, 0x228 + .incbin "baserom.nds", 0x3DE38, 0x64 + .balign 4, 255 diff --git a/narc/graphic/mail_gra.narc.s b/narc/graphic/mail_gra.narc.s new file mode 100644 index 00000000..6b78e5b7 --- /dev/null +++ b/narc/graphic/mail_gra.narc.s @@ -0,0 +1,100 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0001A130 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000134 ; chunk size + .short 37 ; number of files + .balign 4 + .word 0x00000000, 0x000000C0 + .word 0x000000C0, 0x00000180 + .word 0x00000180, 0x00000240 + .word 0x00000240, 0x00000300 + .word 0x00000300, 0x000003C0 + .word 0x000003C0, 0x00000480 + .word 0x00000480, 0x00000540 + .word 0x00000540, 0x00000600 + .word 0x00000600, 0x000006C0 + .word 0x000006C0, 0x00000780 + .word 0x00000780, 0x00000840 + .word 0x00000840, 0x00000900 + .word 0x00000900, 0x00004540 + .word 0x00004540, 0x00005180 + .word 0x00005180, 0x00005DC0 + .word 0x00005DC0, 0x00008A00 + .word 0x00008A00, 0x0000BA40 + .word 0x0000BA40, 0x0000C680 + .word 0x0000C680, 0x0000D2C0 + .word 0x0000D2C0, 0x0000FB00 + .word 0x0000FB00, 0x00012340 + .word 0x00012340, 0x00013380 + .word 0x00013380, 0x000143C0 + .word 0x000143C0, 0x00015000 + .word 0x00015000, 0x00015624 + .word 0x00015624, 0x00015C48 + .word 0x00015C48, 0x0001626C + .word 0x0001626C, 0x00016890 + .word 0x00016890, 0x00016EB4 + .word 0x00016EB4, 0x000174D8 + .word 0x000174D8, 0x00017AFC + .word 0x00017AFC, 0x00018120 + .word 0x00018120, 0x00018744 + .word 0x00018744, 0x00018D68 + .word 0x00018D68, 0x0001938C + .word 0x0001938C, 0x000199B0 + .word 0x000199B0, 0x00019FD4 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00019FDC ; chunk size + .incbin "baserom.nds", 0x0, 0xC0 + .incbin "baserom.nds", 0xC0, 0xC0 + .incbin "baserom.nds", 0x180, 0xC0 + .incbin "baserom.nds", 0x240, 0xC0 + .incbin "baserom.nds", 0x300, 0xC0 + .incbin "baserom.nds", 0x3C0, 0xC0 + .incbin "baserom.nds", 0x480, 0xC0 + .incbin "baserom.nds", 0x540, 0xC0 + .incbin "baserom.nds", 0x600, 0xC0 + .incbin "baserom.nds", 0x6C0, 0xC0 + .incbin "baserom.nds", 0x780, 0xC0 + .incbin "baserom.nds", 0x840, 0xC0 + .incbin "baserom.nds", 0x900, 0x3C40 + .incbin "baserom.nds", 0x4540, 0xC40 + .incbin "baserom.nds", 0x5180, 0xC40 + .incbin "baserom.nds", 0x5DC0, 0x2C40 + .incbin "baserom.nds", 0x8A00, 0x3040 + .incbin "baserom.nds", 0xBA40, 0xC40 + .incbin "baserom.nds", 0xC680, 0xC40 + .incbin "baserom.nds", 0xD2C0, 0x2840 + .incbin "baserom.nds", 0xFB00, 0x2840 + .incbin "baserom.nds", 0x12340, 0x1040 + .incbin "baserom.nds", 0x13380, 0x1040 + .incbin "baserom.nds", 0x143C0, 0xC40 + .incbin "baserom.nds", 0x15000, 0x624 + .incbin "baserom.nds", 0x15624, 0x624 + .incbin "baserom.nds", 0x15C48, 0x624 + .incbin "baserom.nds", 0x1626C, 0x624 + .incbin "baserom.nds", 0x16890, 0x624 + .incbin "baserom.nds", 0x16EB4, 0x624 + .incbin "baserom.nds", 0x174D8, 0x624 + .incbin "baserom.nds", 0x17AFC, 0x624 + .incbin "baserom.nds", 0x18120, 0x624 + .incbin "baserom.nds", 0x18744, 0x624 + .incbin "baserom.nds", 0x18D68, 0x624 + .incbin "baserom.nds", 0x1938C, 0x624 + .incbin "baserom.nds", 0x199B0, 0x624 + .balign 4, 255 diff --git a/narc/graphic/menu_gra.narc.s b/narc/graphic/menu_gra.narc.s new file mode 100644 index 00000000..d004c018 --- /dev/null +++ b/narc/graphic/menu_gra.narc.s @@ -0,0 +1,48 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00004B70 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000064 ; chunk size + .short 11 ; number of files + .balign 4 + .word 0x00000000, 0x0000006F + .word 0x00000070, 0x000000E7 + .word 0x000000E8, 0x00000718 + .word 0x00000718, 0x000015D0 + .word 0x000015D0, 0x0000181C + .word 0x0000181C, 0x00001A44 + .word 0x00001A44, 0x00002E74 + .word 0x00002E74, 0x000038D6 + .word 0x000038D8, 0x00003A8A + .word 0x00003A8C, 0x00003CB4 + .word 0x00003CB4, 0x00004AE4 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00004AEC ; chunk size + .incbin "baserom.nds", 0x0, 0x6F + .incbin "baserom.nds", 0x70, 0x77 + .incbin "baserom.nds", 0xE8, 0x630 + .incbin "baserom.nds", 0x718, 0xEB8 + .incbin "baserom.nds", 0x15D0, 0x24C + .incbin "baserom.nds", 0x181C, 0x228 + .incbin "baserom.nds", 0x1A44, 0x1430 + .incbin "baserom.nds", 0x2E74, 0xA62 + .incbin "baserom.nds", 0x38D8, 0x1B2 + .incbin "baserom.nds", 0x3A8C, 0x228 + .incbin "baserom.nds", 0x3CB4, 0xE30 + .balign 4, 255 diff --git a/narc/graphic/mysign.narc.s b/narc/graphic/mysign.narc.s new file mode 100644 index 00000000..3f901459 --- /dev/null +++ b/narc/graphic/mysign.narc.s @@ -0,0 +1,46 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x000010B8 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000005C ; chunk size + .short 10 ; number of files + .balign 4 + .word 0x00000000, 0x00000228 + .word 0x00000228, 0x00000450 + .word 0x00000450, 0x00000678 + .word 0x00000678, 0x000007B1 + .word 0x000007B4, 0x00000974 + .word 0x00000974, 0x00000AAD + .word 0x00000AB0, 0x00000B8F + .word 0x00000B90, 0x00000F0C + .word 0x00000F0C, 0x00000FBC + .word 0x00000FBC, 0x00001034 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0000103C ; chunk size + .incbin "baserom.nds", 0x0, 0x228 + .incbin "baserom.nds", 0x228, 0x228 + .incbin "baserom.nds", 0x450, 0x228 + .incbin "baserom.nds", 0x678, 0x139 + .incbin "baserom.nds", 0x7B4, 0x1C0 + .incbin "baserom.nds", 0x974, 0x139 + .incbin "baserom.nds", 0xAB0, 0xDF + .incbin "baserom.nds", 0xB90, 0x37C + .incbin "baserom.nds", 0xF0C, 0xB0 + .incbin "baserom.nds", 0xFBC, 0x78 + .balign 4, 255 diff --git a/narc/graphic/mystery.narc.s b/narc/graphic/mystery.narc.s new file mode 100644 index 00000000..a68ef126 --- /dev/null +++ b/narc/graphic/mystery.narc.s @@ -0,0 +1,110 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x000078C4 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000015C ; chunk size + .short 42 ; number of files + .balign 4 + .word 0x00000000, 0x00000228 + .word 0x00000228, 0x0000026D + .word 0x00000270, 0x0000038D + .word 0x00000390, 0x000005B8 + .word 0x000005B8, 0x000008D4 + .word 0x000008D4, 0x00000B7A + .word 0x00000B7C, 0x00001862 + .word 0x00001864, 0x00001A8C + .word 0x00001A8C, 0x00001B11 + .word 0x00001B14, 0x00001BA7 + .word 0x00001BA8, 0x00001C8C + .word 0x00001C8C, 0x00001EB4 + .word 0x00001EB4, 0x000020DC + .word 0x000020DC, 0x00002145 + .word 0x00002148, 0x000021AD + .word 0x000021B0, 0x00002392 + .word 0x00002394, 0x000025BC + .word 0x000025BC, 0x000028F5 + .word 0x000028F8, 0x00002AD3 + .word 0x00002AD4, 0x00002CFC + .word 0x00002CFC, 0x00002E77 + .word 0x00002E78, 0x00002F78 + .word 0x00002F78, 0x0000338B + .word 0x0000338C, 0x000035B4 + .word 0x000035B4, 0x000038CF + .word 0x000038D0, 0x00003BBC + .word 0x00003BBC, 0x000047CA + .word 0x000047CC, 0x00004966 + .word 0x00004968, 0x00004B33 + .word 0x00004B34, 0x00004D5C + .word 0x00004D5C, 0x00005E76 + .word 0x00005E78, 0x00006486 + .word 0x00006488, 0x000066B0 + .word 0x000066B0, 0x00006709 + .word 0x0000670C, 0x0000675B + .word 0x0000675C, 0x000068D4 + .word 0x000068D4, 0x00006AFC + .word 0x00006AFC, 0x00006BB0 + .word 0x00006BB0, 0x00006C0B + .word 0x00006C0C, 0x00006CD8 + .word 0x00006CD8, 0x00007518 + .word 0x00007518, 0x00007740 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00007748 ; chunk size + .incbin "baserom.nds", 0x0, 0x228 + .incbin "baserom.nds", 0x228, 0x45 + .incbin "baserom.nds", 0x270, 0x11D + .incbin "baserom.nds", 0x390, 0x228 + .incbin "baserom.nds", 0x5B8, 0x31C + .incbin "baserom.nds", 0x8D4, 0x2A6 + .incbin "baserom.nds", 0xB7C, 0xCE6 + .incbin "baserom.nds", 0x1864, 0x228 + .incbin "baserom.nds", 0x1A8C, 0x85 + .incbin "baserom.nds", 0x1B14, 0x93 + .incbin "baserom.nds", 0x1BA8, 0xE4 + .incbin "baserom.nds", 0x1C8C, 0x228 + .incbin "baserom.nds", 0x1EB4, 0x228 + .incbin "baserom.nds", 0x20DC, 0x69 + .incbin "baserom.nds", 0x2148, 0x65 + .incbin "baserom.nds", 0x21B0, 0x1E2 + .incbin "baserom.nds", 0x2394, 0x228 + .incbin "baserom.nds", 0x25BC, 0x339 + .incbin "baserom.nds", 0x28F8, 0x1DB + .incbin "baserom.nds", 0x2AD4, 0x228 + .incbin "baserom.nds", 0x2CFC, 0x17B + .incbin "baserom.nds", 0x2E78, 0x100 + .incbin "baserom.nds", 0x2F78, 0x413 + .incbin "baserom.nds", 0x338C, 0x228 + .incbin "baserom.nds", 0x35B4, 0x31B + .incbin "baserom.nds", 0x38D0, 0x2EC + .incbin "baserom.nds", 0x3BBC, 0xC0E + .incbin "baserom.nds", 0x47CC, 0x19A + .incbin "baserom.nds", 0x4968, 0x1CB + .incbin "baserom.nds", 0x4B34, 0x228 + .incbin "baserom.nds", 0x4D5C, 0x111A + .incbin "baserom.nds", 0x5E78, 0x60E + .incbin "baserom.nds", 0x6488, 0x228 + .incbin "baserom.nds", 0x66B0, 0x59 + .incbin "baserom.nds", 0x670C, 0x4F + .incbin "baserom.nds", 0x675C, 0x178 + .incbin "baserom.nds", 0x68D4, 0x228 + .incbin "baserom.nds", 0x6AFC, 0xB4 + .incbin "baserom.nds", 0x6BB0, 0x5B + .incbin "baserom.nds", 0x6C0C, 0xCC + .incbin "baserom.nds", 0x6CD8, 0x840 + .incbin "baserom.nds", 0x7518, 0x228 + .balign 4, 255 diff --git a/narc/graphic/ntag_gra.narc.s b/narc/graphic/ntag_gra.narc.s new file mode 100644 index 00000000..d6033868 --- /dev/null +++ b/narc/graphic/ntag_gra.narc.s @@ -0,0 +1,294 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0002CE70 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000043C ; chunk size + .short 134 ; number of files + .balign 4 + .word 0x00000000, 0x000006A4 + .word 0x000006A4, 0x00000CC8 + .word 0x00000CC8, 0x00003108 + .word 0x00003108, 0x00003330 + .word 0x00003330, 0x0000339F + .word 0x000033A0, 0x0000340B + .word 0x0000340C, 0x00003C3C + .word 0x00003C3C, 0x0000446C + .word 0x0000446C, 0x00004C9C + .word 0x00004C9C, 0x000054CC + .word 0x000054CC, 0x00005CFC + .word 0x00005CFC, 0x0000652C + .word 0x0000652C, 0x00006D5C + .word 0x00006D5C, 0x0000758C + .word 0x0000758C, 0x00007DBC + .word 0x00007DBC, 0x000085EC + .word 0x000085EC, 0x00008E1C + .word 0x00008E1C, 0x0000964C + .word 0x0000964C, 0x00009E7C + .word 0x00009E7C, 0x0000A6AC + .word 0x0000A6AC, 0x0000AEDC + .word 0x0000AEDC, 0x0000B70C + .word 0x0000B70C, 0x0000BF3C + .word 0x0000BF3C, 0x0000C76C + .word 0x0000C76C, 0x0000CF9C + .word 0x0000CF9C, 0x0000D7CC + .word 0x0000D7CC, 0x0000DFFC + .word 0x0000DFFC, 0x0000E82C + .word 0x0000E82C, 0x0000F05C + .word 0x0000F05C, 0x0000F88C + .word 0x0000F88C, 0x000100BC + .word 0x000100BC, 0x000108EC + .word 0x000108EC, 0x0001111C + .word 0x0001111C, 0x0001194C + .word 0x0001194C, 0x0001217C + .word 0x0001217C, 0x000129AC + .word 0x000129AC, 0x000131DC + .word 0x000131DC, 0x00013A0C + .word 0x00013A0C, 0x0001423C + .word 0x0001423C, 0x00014A6C + .word 0x00014A6C, 0x0001529C + .word 0x0001529C, 0x00015ACC + .word 0x00015ACC, 0x000162FC + .word 0x000162FC, 0x00016B2C + .word 0x00016B2C, 0x0001735C + .word 0x0001735C, 0x00017B8C + .word 0x00017B8C, 0x000183BC + .word 0x000183BC, 0x00018BEC + .word 0x00018BEC, 0x0001941C + .word 0x0001941C, 0x00019C4C + .word 0x00019C4C, 0x0001A47C + .word 0x0001A47C, 0x0001ACAC + .word 0x0001ACAC, 0x0001B4DC + .word 0x0001B4DC, 0x0001BD0C + .word 0x0001BD0C, 0x0001C53C + .word 0x0001C53C, 0x0001CD6C + .word 0x0001CD6C, 0x0001D59C + .word 0x0001D59C, 0x0001DDCC + .word 0x0001DDCC, 0x0001E5FC + .word 0x0001E5FC, 0x0001EE2C + .word 0x0001EE2C, 0x0001F65C + .word 0x0001F65C, 0x0001FE8C + .word 0x0001FE8C, 0x000206BC + .word 0x000206BC, 0x00020EEC + .word 0x00020EEC, 0x0002171C + .word 0x0002171C, 0x00021F4C + .word 0x00021F4C, 0x0002277C + .word 0x0002277C, 0x00022FAC + .word 0x00022FAC, 0x000237DC + .word 0x000237DC, 0x0002400C + .word 0x0002400C, 0x00024234 + .word 0x00024234, 0x0002445C + .word 0x0002445C, 0x00024684 + .word 0x00024684, 0x000248AC + .word 0x000248AC, 0x00024AD4 + .word 0x00024AD4, 0x00024CFC + .word 0x00024CFC, 0x00024F24 + .word 0x00024F24, 0x0002514C + .word 0x0002514C, 0x00025374 + .word 0x00025374, 0x0002559C + .word 0x0002559C, 0x000257C4 + .word 0x000257C4, 0x000259EC + .word 0x000259EC, 0x00025C14 + .word 0x00025C14, 0x00025E3C + .word 0x00025E3C, 0x00026064 + .word 0x00026064, 0x0002628C + .word 0x0002628C, 0x000264B4 + .word 0x000264B4, 0x000266DC + .word 0x000266DC, 0x00026904 + .word 0x00026904, 0x00026B2C + .word 0x00026B2C, 0x00026D54 + .word 0x00026D54, 0x00026F7C + .word 0x00026F7C, 0x000271A4 + .word 0x000271A4, 0x000273CC + .word 0x000273CC, 0x000275F4 + .word 0x000275F4, 0x0002781C + .word 0x0002781C, 0x00027A44 + .word 0x00027A44, 0x00027C6C + .word 0x00027C6C, 0x00027E94 + .word 0x00027E94, 0x000280BC + .word 0x000280BC, 0x000282E4 + .word 0x000282E4, 0x0002850C + .word 0x0002850C, 0x00028734 + .word 0x00028734, 0x0002895C + .word 0x0002895C, 0x00028B84 + .word 0x00028B84, 0x00028DAC + .word 0x00028DAC, 0x00028FD4 + .word 0x00028FD4, 0x000291FC + .word 0x000291FC, 0x00029424 + .word 0x00029424, 0x0002964C + .word 0x0002964C, 0x00029874 + .word 0x00029874, 0x00029A9C + .word 0x00029A9C, 0x00029CC4 + .word 0x00029CC4, 0x00029EEC + .word 0x00029EEC, 0x0002A114 + .word 0x0002A114, 0x0002A33C + .word 0x0002A33C, 0x0002A564 + .word 0x0002A564, 0x0002A78C + .word 0x0002A78C, 0x0002A9B4 + .word 0x0002A9B4, 0x0002ABDC + .word 0x0002ABDC, 0x0002AE04 + .word 0x0002AE04, 0x0002B02C + .word 0x0002B02C, 0x0002B254 + .word 0x0002B254, 0x0002B47C + .word 0x0002B47C, 0x0002B6A4 + .word 0x0002B6A4, 0x0002B8CC + .word 0x0002B8CC, 0x0002BAF4 + .word 0x0002BAF4, 0x0002BD1C + .word 0x0002BD1C, 0x0002BF44 + .word 0x0002BF44, 0x0002C16C + .word 0x0002C16C, 0x0002C394 + .word 0x0002C394, 0x0002C5BC + .word 0x0002C5BC, 0x0002C7E4 + .word 0x0002C7E4, 0x0002CA0C + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0002CA14 ; chunk size + .incbin "baserom.nds", 0x0, 0x6A4 + .incbin "baserom.nds", 0x6A4, 0x624 + .incbin "baserom.nds", 0xCC8, 0x2440 + .incbin "baserom.nds", 0x3108, 0x228 + .incbin "baserom.nds", 0x3330, 0x6F + .incbin "baserom.nds", 0x33A0, 0x6B + .incbin "baserom.nds", 0x340C, 0x830 + .incbin "baserom.nds", 0x3C3C, 0x830 + .incbin "baserom.nds", 0x446C, 0x830 + .incbin "baserom.nds", 0x4C9C, 0x830 + .incbin "baserom.nds", 0x54CC, 0x830 + .incbin "baserom.nds", 0x5CFC, 0x830 + .incbin "baserom.nds", 0x652C, 0x830 + .incbin "baserom.nds", 0x6D5C, 0x830 + .incbin "baserom.nds", 0x758C, 0x830 + .incbin "baserom.nds", 0x7DBC, 0x830 + .incbin "baserom.nds", 0x85EC, 0x830 + .incbin "baserom.nds", 0x8E1C, 0x830 + .incbin "baserom.nds", 0x964C, 0x830 + .incbin "baserom.nds", 0x9E7C, 0x830 + .incbin "baserom.nds", 0xA6AC, 0x830 + .incbin "baserom.nds", 0xAEDC, 0x830 + .incbin "baserom.nds", 0xB70C, 0x830 + .incbin "baserom.nds", 0xBF3C, 0x830 + .incbin "baserom.nds", 0xC76C, 0x830 + .incbin "baserom.nds", 0xCF9C, 0x830 + .incbin "baserom.nds", 0xD7CC, 0x830 + .incbin "baserom.nds", 0xDFFC, 0x830 + .incbin "baserom.nds", 0xE82C, 0x830 + .incbin "baserom.nds", 0xF05C, 0x830 + .incbin "baserom.nds", 0xF88C, 0x830 + .incbin "baserom.nds", 0x100BC, 0x830 + .incbin "baserom.nds", 0x108EC, 0x830 + .incbin "baserom.nds", 0x1111C, 0x830 + .incbin "baserom.nds", 0x1194C, 0x830 + .incbin "baserom.nds", 0x1217C, 0x830 + .incbin "baserom.nds", 0x129AC, 0x830 + .incbin "baserom.nds", 0x131DC, 0x830 + .incbin "baserom.nds", 0x13A0C, 0x830 + .incbin "baserom.nds", 0x1423C, 0x830 + .incbin "baserom.nds", 0x14A6C, 0x830 + .incbin "baserom.nds", 0x1529C, 0x830 + .incbin "baserom.nds", 0x15ACC, 0x830 + .incbin "baserom.nds", 0x162FC, 0x830 + .incbin "baserom.nds", 0x16B2C, 0x830 + .incbin "baserom.nds", 0x1735C, 0x830 + .incbin "baserom.nds", 0x17B8C, 0x830 + .incbin "baserom.nds", 0x183BC, 0x830 + .incbin "baserom.nds", 0x18BEC, 0x830 + .incbin "baserom.nds", 0x1941C, 0x830 + .incbin "baserom.nds", 0x19C4C, 0x830 + .incbin "baserom.nds", 0x1A47C, 0x830 + .incbin "baserom.nds", 0x1ACAC, 0x830 + .incbin "baserom.nds", 0x1B4DC, 0x830 + .incbin "baserom.nds", 0x1BD0C, 0x830 + .incbin "baserom.nds", 0x1C53C, 0x830 + .incbin "baserom.nds", 0x1CD6C, 0x830 + .incbin "baserom.nds", 0x1D59C, 0x830 + .incbin "baserom.nds", 0x1DDCC, 0x830 + .incbin "baserom.nds", 0x1E5FC, 0x830 + .incbin "baserom.nds", 0x1EE2C, 0x830 + .incbin "baserom.nds", 0x1F65C, 0x830 + .incbin "baserom.nds", 0x1FE8C, 0x830 + .incbin "baserom.nds", 0x206BC, 0x830 + .incbin "baserom.nds", 0x20EEC, 0x830 + .incbin "baserom.nds", 0x2171C, 0x830 + .incbin "baserom.nds", 0x21F4C, 0x830 + .incbin "baserom.nds", 0x2277C, 0x830 + .incbin "baserom.nds", 0x22FAC, 0x830 + .incbin "baserom.nds", 0x237DC, 0x830 + .incbin "baserom.nds", 0x2400C, 0x228 + .incbin "baserom.nds", 0x24234, 0x228 + .incbin "baserom.nds", 0x2445C, 0x228 + .incbin "baserom.nds", 0x24684, 0x228 + .incbin "baserom.nds", 0x248AC, 0x228 + .incbin "baserom.nds", 0x24AD4, 0x228 + .incbin "baserom.nds", 0x24CFC, 0x228 + .incbin "baserom.nds", 0x24F24, 0x228 + .incbin "baserom.nds", 0x2514C, 0x228 + .incbin "baserom.nds", 0x25374, 0x228 + .incbin "baserom.nds", 0x2559C, 0x228 + .incbin "baserom.nds", 0x257C4, 0x228 + .incbin "baserom.nds", 0x259EC, 0x228 + .incbin "baserom.nds", 0x25C14, 0x228 + .incbin "baserom.nds", 0x25E3C, 0x228 + .incbin "baserom.nds", 0x26064, 0x228 + .incbin "baserom.nds", 0x2628C, 0x228 + .incbin "baserom.nds", 0x264B4, 0x228 + .incbin "baserom.nds", 0x266DC, 0x228 + .incbin "baserom.nds", 0x26904, 0x228 + .incbin "baserom.nds", 0x26B2C, 0x228 + .incbin "baserom.nds", 0x26D54, 0x228 + .incbin "baserom.nds", 0x26F7C, 0x228 + .incbin "baserom.nds", 0x271A4, 0x228 + .incbin "baserom.nds", 0x273CC, 0x228 + .incbin "baserom.nds", 0x275F4, 0x228 + .incbin "baserom.nds", 0x2781C, 0x228 + .incbin "baserom.nds", 0x27A44, 0x228 + .incbin "baserom.nds", 0x27C6C, 0x228 + .incbin "baserom.nds", 0x27E94, 0x228 + .incbin "baserom.nds", 0x280BC, 0x228 + .incbin "baserom.nds", 0x282E4, 0x228 + .incbin "baserom.nds", 0x2850C, 0x228 + .incbin "baserom.nds", 0x28734, 0x228 + .incbin "baserom.nds", 0x2895C, 0x228 + .incbin "baserom.nds", 0x28B84, 0x228 + .incbin "baserom.nds", 0x28DAC, 0x228 + .incbin "baserom.nds", 0x28FD4, 0x228 + .incbin "baserom.nds", 0x291FC, 0x228 + .incbin "baserom.nds", 0x29424, 0x228 + .incbin "baserom.nds", 0x2964C, 0x228 + .incbin "baserom.nds", 0x29874, 0x228 + .incbin "baserom.nds", 0x29A9C, 0x228 + .incbin "baserom.nds", 0x29CC4, 0x228 + .incbin "baserom.nds", 0x29EEC, 0x228 + .incbin "baserom.nds", 0x2A114, 0x228 + .incbin "baserom.nds", 0x2A33C, 0x228 + .incbin "baserom.nds", 0x2A564, 0x228 + .incbin "baserom.nds", 0x2A78C, 0x228 + .incbin "baserom.nds", 0x2A9B4, 0x228 + .incbin "baserom.nds", 0x2ABDC, 0x228 + .incbin "baserom.nds", 0x2AE04, 0x228 + .incbin "baserom.nds", 0x2B02C, 0x228 + .incbin "baserom.nds", 0x2B254, 0x228 + .incbin "baserom.nds", 0x2B47C, 0x228 + .incbin "baserom.nds", 0x2B6A4, 0x228 + .incbin "baserom.nds", 0x2B8CC, 0x228 + .incbin "baserom.nds", 0x2BAF4, 0x228 + .incbin "baserom.nds", 0x2BD1C, 0x228 + .incbin "baserom.nds", 0x2BF44, 0x228 + .incbin "baserom.nds", 0x2C16C, 0x228 + .incbin "baserom.nds", 0x2C394, 0x228 + .incbin "baserom.nds", 0x2C5BC, 0x228 + .incbin "baserom.nds", 0x2C7E4, 0x228 + .balign 4, 255 diff --git a/narc/graphic/nutmixer.narc.s b/narc/graphic/nutmixer.narc.s new file mode 100644 index 00000000..2f77b7be --- /dev/null +++ b/narc/graphic/nutmixer.narc.s @@ -0,0 +1,122 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0002C2F4 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000018C ; chunk size + .short 48 ; number of files + .balign 4 + .word 0x00000000, 0x00002180 + .word 0x00002180, 0x000023A8 + .word 0x000023A8, 0x000029CC + .word 0x000029CC, 0x00002FF0 + .word 0x00002FF0, 0x00003154 + .word 0x00003154, 0x00003234 + .word 0x00003234, 0x0000345C + .word 0x0000345C, 0x00003A80 + .word 0x00003A80, 0x00003CA8 + .word 0x00003CA8, 0x00003ED0 + .word 0x00003ED0, 0x000040F8 + .word 0x000040F8, 0x00004320 + .word 0x00004320, 0x00004499 + .word 0x0000449C, 0x00004695 + .word 0x00004698, 0x00006048 + .word 0x00006048, 0x00006259 + .word 0x0000625C, 0x0000648D + .word 0x00006490, 0x00006CC0 + .word 0x00006CC0, 0x00006DD5 + .word 0x00006DD8, 0x00006FCD + .word 0x00006FD0, 0x00008400 + .word 0x00008400, 0x00008515 + .word 0x00008518, 0x0000870D + .word 0x00008710, 0x00009B40 + .word 0x00009B40, 0x00009C4C + .word 0x00009C4C, 0x00009E90 + .word 0x00009E90, 0x0000B3C0 + .word 0x0000B3C0, 0x0000B443 + .word 0x0000B444, 0x0000B52B + .word 0x0000B52C, 0x0000BEDC + .word 0x0000BEDC, 0x0000BF64 + .word 0x0000BF64, 0x0000C028 + .word 0x0000C028, 0x0000CC58 + .word 0x0000CC58, 0x0000CE80 + .word 0x0000CE80, 0x00014EC0 + .word 0x00014EC0, 0x000150E8 + .word 0x000150E8, 0x00015310 + .word 0x00015310, 0x00015538 + .word 0x00015538, 0x0001D578 + .word 0x0001D578, 0x0001D7A0 + .word 0x0001D7A0, 0x000257E0 + .word 0x000257E0, 0x00025A08 + .word 0x00025A08, 0x00027A48 + .word 0x00027A48, 0x00027C70 + .word 0x00027C70, 0x00029CB0 + .word 0x00029CB0, 0x00029ED8 + .word 0x00029ED8, 0x0002BF18 + .word 0x0002BF18, 0x0002C140 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0002C148 ; chunk size + .incbin "baserom.nds", 0x0, 0x2180 + .incbin "baserom.nds", 0x2180, 0x228 + .incbin "baserom.nds", 0x23A8, 0x624 + .incbin "baserom.nds", 0x29CC, 0x624 + .incbin "baserom.nds", 0x2FF0, 0x164 + .incbin "baserom.nds", 0x3154, 0xE0 + .incbin "baserom.nds", 0x3234, 0x228 + .incbin "baserom.nds", 0x345C, 0x624 + .incbin "baserom.nds", 0x3A80, 0x228 + .incbin "baserom.nds", 0x3CA8, 0x228 + .incbin "baserom.nds", 0x3ED0, 0x228 + .incbin "baserom.nds", 0x40F8, 0x228 + .incbin "baserom.nds", 0x4320, 0x179 + .incbin "baserom.nds", 0x449C, 0x1F9 + .incbin "baserom.nds", 0x4698, 0x19B0 + .incbin "baserom.nds", 0x6048, 0x211 + .incbin "baserom.nds", 0x625C, 0x231 + .incbin "baserom.nds", 0x6490, 0x830 + .incbin "baserom.nds", 0x6CC0, 0x115 + .incbin "baserom.nds", 0x6DD8, 0x1F5 + .incbin "baserom.nds", 0x6FD0, 0x1430 + .incbin "baserom.nds", 0x8400, 0x115 + .incbin "baserom.nds", 0x8518, 0x1F5 + .incbin "baserom.nds", 0x8710, 0x1430 + .incbin "baserom.nds", 0x9B40, 0x10C + .incbin "baserom.nds", 0x9C4C, 0x244 + .incbin "baserom.nds", 0x9E90, 0x1530 + .incbin "baserom.nds", 0xB3C0, 0x83 + .incbin "baserom.nds", 0xB444, 0xE7 + .incbin "baserom.nds", 0xB52C, 0x9B0 + .incbin "baserom.nds", 0xBEDC, 0x88 + .incbin "baserom.nds", 0xBF64, 0xC4 + .incbin "baserom.nds", 0xC028, 0xC30 + .incbin "baserom.nds", 0xCC58, 0x228 + .incbin "baserom.nds", 0xCE80, 0x8040 + .incbin "baserom.nds", 0x14EC0, 0x228 + .incbin "baserom.nds", 0x150E8, 0x228 + .incbin "baserom.nds", 0x15310, 0x228 + .incbin "baserom.nds", 0x15538, 0x8040 + .incbin "baserom.nds", 0x1D578, 0x228 + .incbin "baserom.nds", 0x1D7A0, 0x8040 + .incbin "baserom.nds", 0x257E0, 0x228 + .incbin "baserom.nds", 0x25A08, 0x2040 + .incbin "baserom.nds", 0x27A48, 0x228 + .incbin "baserom.nds", 0x27C70, 0x2040 + .incbin "baserom.nds", 0x29CB0, 0x228 + .incbin "baserom.nds", 0x29ED8, 0x2040 + .incbin "baserom.nds", 0x2BF18, 0x228 + .balign 4, 255 diff --git a/narc/graphic/oekaki.narc.s b/narc/graphic/oekaki.narc.s new file mode 100644 index 00000000..a46c17d3 --- /dev/null +++ b/narc/graphic/oekaki.narc.s @@ -0,0 +1,44 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00001524 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000054 ; chunk size + .short 9 ; number of files + .balign 4 + .word 0x00000000, 0x00000228 + .word 0x00000228, 0x00000450 + .word 0x00000450, 0x000005C2 + .word 0x000005C4, 0x00000784 + .word 0x00000784, 0x000008AD + .word 0x000008B0, 0x000009B7 + .word 0x000009B8, 0x00000F5A + .word 0x00000F5C, 0x000011F9 + .word 0x000011FC, 0x000014A6 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000014B0 ; chunk size + .incbin "baserom.nds", 0x0, 0x228 + .incbin "baserom.nds", 0x228, 0x228 + .incbin "baserom.nds", 0x450, 0x172 + .incbin "baserom.nds", 0x5C4, 0x1C0 + .incbin "baserom.nds", 0x784, 0x129 + .incbin "baserom.nds", 0x8B0, 0x107 + .incbin "baserom.nds", 0x9B8, 0x5A2 + .incbin "baserom.nds", 0xF5C, 0x29D + .incbin "baserom.nds", 0x11FC, 0x2AA + .balign 4, 255 diff --git a/narc/graphic/opening.narc.s b/narc/graphic/opening.narc.s new file mode 100644 index 00000000..c4530f48 --- /dev/null +++ b/narc/graphic/opening.narc.s @@ -0,0 +1,68 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00006BBC ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000000B4 ; chunk size + .short 21 ; number of files + .balign 4 + .word 0x00000000, 0x00000424 + .word 0x00000424, 0x00000848 + .word 0x00000848, 0x00001088 + .word 0x00001088, 0x000016AC + .word 0x000016AC, 0x00001CD0 + .word 0x00001CD0, 0x00001EF8 + .word 0x00001EF8, 0x00002120 + .word 0x00002120, 0x000021BA + .word 0x000021BC, 0x0000225E + .word 0x00002260, 0x00002488 + .word 0x00002488, 0x000024F7 + .word 0x000024F8, 0x00002577 + .word 0x00002578, 0x000027A0 + .word 0x000027A0, 0x000043E0 + .word 0x000043E0, 0x00004608 + .word 0x00004608, 0x00004C2C + .word 0x00004C2C, 0x00005250 + .word 0x00005250, 0x00005874 + .word 0x00005874, 0x00005E98 + .word 0x00005E98, 0x000064BC + .word 0x000064BC, 0x00006AE0 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00006AE8 ; chunk size + .incbin "baserom.nds", 0x0, 0x424 + .incbin "baserom.nds", 0x424, 0x424 + .incbin "baserom.nds", 0x848, 0x840 + .incbin "baserom.nds", 0x1088, 0x624 + .incbin "baserom.nds", 0x16AC, 0x624 + .incbin "baserom.nds", 0x1CD0, 0x228 + .incbin "baserom.nds", 0x1EF8, 0x228 + .incbin "baserom.nds", 0x2120, 0x9A + .incbin "baserom.nds", 0x21BC, 0xA2 + .incbin "baserom.nds", 0x2260, 0x228 + .incbin "baserom.nds", 0x2488, 0x6F + .incbin "baserom.nds", 0x24F8, 0x7F + .incbin "baserom.nds", 0x2578, 0x228 + .incbin "baserom.nds", 0x27A0, 0x1C40 + .incbin "baserom.nds", 0x43E0, 0x228 + .incbin "baserom.nds", 0x4608, 0x624 + .incbin "baserom.nds", 0x4C2C, 0x624 + .incbin "baserom.nds", 0x5250, 0x624 + .incbin "baserom.nds", 0x5874, 0x624 + .incbin "baserom.nds", 0x5E98, 0x624 + .incbin "baserom.nds", 0x64BC, 0x624 + .balign 4, 255 diff --git a/narc/graphic/plist_gra.narc.s b/narc/graphic/plist_gra.narc.s new file mode 100644 index 00000000..f2467935 --- /dev/null +++ b/narc/graphic/plist_gra.narc.s @@ -0,0 +1,74 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00009CAC ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000000CC ; chunk size + .short 24 ; number of files + .balign 4 + .word 0x00000000, 0x0000009A + .word 0x0000009C, 0x0000012A + .word 0x0000012C, 0x0000055C + .word 0x0000055C, 0x00000F9C + .word 0x00000F9C, 0x000011C4 + .word 0x000011C4, 0x000012B4 + .word 0x000012B4, 0x00001404 + .word 0x00001404, 0x00003834 + .word 0x00003834, 0x00003A5C + .word 0x00003A5C, 0x00003B4C + .word 0x00003B4C, 0x00003C6C + .word 0x00003C6C, 0x0000441C + .word 0x0000441C, 0x0000645C + .word 0x0000645C, 0x00006684 + .word 0x00006684, 0x00006EA8 + .word 0x00006EA8, 0x000082E8 + .word 0x000082E8, 0x00008510 + .word 0x00008510, 0x00008D34 + .word 0x00008D34, 0x00008DF9 + .word 0x00008DFC, 0x00008EB1 + .word 0x00008EB4, 0x00008F44 + .word 0x00008F44, 0x0000916C + .word 0x0000916C, 0x00009990 + .word 0x00009990, 0x00009BB8 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00009BC0 ; chunk size + .incbin "baserom.nds", 0x0, 0x9A + .incbin "baserom.nds", 0x9C, 0x8E + .incbin "baserom.nds", 0x12C, 0x430 + .incbin "baserom.nds", 0x55C, 0xA40 + .incbin "baserom.nds", 0xF9C, 0x228 + .incbin "baserom.nds", 0x11C4, 0xF0 + .incbin "baserom.nds", 0x12B4, 0x150 + .incbin "baserom.nds", 0x1404, 0x2430 + .incbin "baserom.nds", 0x3834, 0x228 + .incbin "baserom.nds", 0x3A5C, 0xF0 + .incbin "baserom.nds", 0x3B4C, 0x120 + .incbin "baserom.nds", 0x3C6C, 0x7B0 + .incbin "baserom.nds", 0x441C, 0x2040 + .incbin "baserom.nds", 0x645C, 0x228 + .incbin "baserom.nds", 0x6684, 0x824 + .incbin "baserom.nds", 0x6EA8, 0x1440 + .incbin "baserom.nds", 0x82E8, 0x228 + .incbin "baserom.nds", 0x8510, 0x824 + .incbin "baserom.nds", 0x8D34, 0xC5 + .incbin "baserom.nds", 0x8DFC, 0xB5 + .incbin "baserom.nds", 0x8EB4, 0x90 + .incbin "baserom.nds", 0x8F44, 0x228 + .incbin "baserom.nds", 0x916C, 0x824 + .incbin "baserom.nds", 0x9990, 0x228 + .balign 4, 255 diff --git a/narc/graphic/pmsi.narc.s b/narc/graphic/pmsi.narc.s new file mode 100644 index 00000000..f454d566 --- /dev/null +++ b/narc/graphic/pmsi.narc.s @@ -0,0 +1,78 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00003164 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000000DC ; chunk size + .short 26 ; number of files + .balign 4 + .word 0x00000000, 0x00000136 + .word 0x00000138, 0x00000201 + .word 0x00000204, 0x00000467 + .word 0x00000468, 0x000005B9 + .word 0x000005BC, 0x000006EF + .word 0x000006F0, 0x0000075F + .word 0x00000760, 0x00000974 + .word 0x00000974, 0x00000B32 + .word 0x00000B34, 0x00000D16 + .word 0x00000D18, 0x0000149C + .word 0x0000149C, 0x000014F6 + .word 0x000014F8, 0x00001616 + .word 0x00001618, 0x000016EC + .word 0x000016EC, 0x000017BF + .word 0x000017C0, 0x00001897 + .word 0x00001898, 0x0000196F + .word 0x00001970, 0x00001A47 + .word 0x00001A48, 0x00001B1F + .word 0x00001B20, 0x00001BF7 + .word 0x00001BF8, 0x00001CCF + .word 0x00001CD0, 0x000028F9 + .word 0x000028FC, 0x00002978 + .word 0x00002978, 0x00002A33 + .word 0x00002A34, 0x00002AE1 + .word 0x00002AE4, 0x00002FE4 + .word 0x00002FE4, 0x00003060 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00003068 ; chunk size + .incbin "baserom.nds", 0x0, 0x136 + .incbin "baserom.nds", 0x138, 0xC9 + .incbin "baserom.nds", 0x204, 0x263 + .incbin "baserom.nds", 0x468, 0x151 + .incbin "baserom.nds", 0x5BC, 0x133 + .incbin "baserom.nds", 0x6F0, 0x6F + .incbin "baserom.nds", 0x760, 0x214 + .incbin "baserom.nds", 0x974, 0x1BE + .incbin "baserom.nds", 0xB34, 0x1E2 + .incbin "baserom.nds", 0xD18, 0x784 + .incbin "baserom.nds", 0x149C, 0x5A + .incbin "baserom.nds", 0x14F8, 0x11E + .incbin "baserom.nds", 0x1618, 0xD4 + .incbin "baserom.nds", 0x16EC, 0xD3 + .incbin "baserom.nds", 0x17C0, 0xD7 + .incbin "baserom.nds", 0x1898, 0xD7 + .incbin "baserom.nds", 0x1970, 0xD7 + .incbin "baserom.nds", 0x1A48, 0xD7 + .incbin "baserom.nds", 0x1B20, 0xD7 + .incbin "baserom.nds", 0x1BF8, 0xD7 + .incbin "baserom.nds", 0x1CD0, 0xC29 + .incbin "baserom.nds", 0x28FC, 0x7C + .incbin "baserom.nds", 0x2978, 0xBB + .incbin "baserom.nds", 0x2A34, 0xAD + .incbin "baserom.nds", 0x2AE4, 0x500 + .incbin "baserom.nds", 0x2FE4, 0x7C + .balign 4, 255 diff --git a/narc/graphic/poketch.narc.s b/narc/graphic/poketch.narc.s new file mode 100644 index 00000000..62ed18ad --- /dev/null +++ b/narc/graphic/poketch.narc.s @@ -0,0 +1,278 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0000E5C4 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000003FC ; chunk size + .short 126 ; number of files + .balign 4 + .word 0x00000000, 0x00000228 + .word 0x00000228, 0x00000450 + .word 0x00000450, 0x000005D0 + .word 0x000005D0, 0x00000696 + .word 0x00000698, 0x0000078D + .word 0x00000790, 0x00000813 + .word 0x00000814, 0x00000912 + .word 0x00000914, 0x00000968 + .word 0x00000968, 0x00001198 + .word 0x00001198, 0x000011F2 + .word 0x000011F4, 0x000013E9 + .word 0x000013EC, 0x0000159F + .word 0x000015A0, 0x000015FA + .word 0x000015FC, 0x00001678 + .word 0x00001678, 0x00001B7D + .word 0x00001B80, 0x00001CF1 + .word 0x00001CF4, 0x0000238B + .word 0x0000238C, 0x000025B5 + .word 0x000025B8, 0x00002835 + .word 0x00002838, 0x000029D2 + .word 0x000029D4, 0x00002BFC + .word 0x00002BFC, 0x0000333E + .word 0x00003340, 0x000039F0 + .word 0x000039F0, 0x00003B03 + .word 0x00003B04, 0x00003C42 + .word 0x00003C44, 0x00003CE8 + .word 0x00003CE8, 0x00003DCC + .word 0x00003DCC, 0x00004850 + .word 0x00004850, 0x0000635C + .word 0x0000635C, 0x0000644B + .word 0x0000644C, 0x000064C4 + .word 0x000064C4, 0x000065EC + .word 0x000065EC, 0x000068E4 + .word 0x000068E4, 0x0000696A + .word 0x0000696C, 0x000069F9 + .word 0x000069FC, 0x00006ACE + .word 0x00006AD0, 0x00006B65 + .word 0x00006B68, 0x00006C0B + .word 0x00006C0C, 0x00006D9C + .word 0x00006D9C, 0x00006F1B + .word 0x00006F1C, 0x00006FD2 + .word 0x00006FD4, 0x0000711D + .word 0x00007120, 0x0000738C + .word 0x0000738C, 0x000074BA + .word 0x000074BC, 0x0000751D + .word 0x00007520, 0x0000757C + .word 0x0000757C, 0x000075E4 + .word 0x000075E4, 0x0000783F + .word 0x00007840, 0x00007987 + .word 0x00007988, 0x000079EF + .word 0x000079F0, 0x00007A4C + .word 0x00007A4C, 0x00007AB6 + .word 0x00007AB8, 0x00007D3D + .word 0x00007D40, 0x00007E61 + .word 0x00007E64, 0x00007EE3 + .word 0x00007EE4, 0x00007F4D + .word 0x00007F50, 0x00007FCF + .word 0x00007FD0, 0x000083FE + .word 0x00008400, 0x0000855A + .word 0x0000855C, 0x00008DB1 + .word 0x00008DB4, 0x00008F6B + .word 0x00008F6C, 0x000090A4 + .word 0x000090A4, 0x00009153 + .word 0x00009154, 0x00009205 + .word 0x00009208, 0x000092F3 + .word 0x000092F4, 0x000094EB + .word 0x000094EC, 0x000096EA + .word 0x000096EC, 0x0000973B + .word 0x0000973C, 0x00009796 + .word 0x00009798, 0x00009821 + .word 0x00009824, 0x00009968 + .word 0x00009968, 0x000099F9 + .word 0x000099FC, 0x00009B0B + .word 0x00009B0C, 0x00009CD2 + .word 0x00009CD4, 0x00009F68 + .word 0x00009F68, 0x0000A16A + .word 0x0000A16C, 0x0000A341 + .word 0x0000A344, 0x0000A3FA + .word 0x0000A3FC, 0x0000A4CB + .word 0x0000A4CC, 0x0000A8BD + .word 0x0000A8C0, 0x0000A9C4 + .word 0x0000A9C4, 0x0000AA4F + .word 0x0000AA50, 0x0000AB37 + .word 0x0000AB38, 0x0000AC5A + .word 0x0000AC5C, 0x0000AD69 + .word 0x0000AD6C, 0x0000AF43 + .word 0x0000AF44, 0x0000B057 + .word 0x0000B058, 0x0000B143 + .word 0x0000B144, 0x0000B206 + .word 0x0000B208, 0x0000B533 + .word 0x0000B534, 0x0000B705 + .word 0x0000B708, 0x0000B8AF + .word 0x0000B8B0, 0x0000B9BC + .word 0x0000B9BC, 0x0000BAEB + .word 0x0000BAEC, 0x0000C0D2 + .word 0x0000C0D4, 0x0000C1B5 + .word 0x0000C1B8, 0x0000C1FB + .word 0x0000C1FC, 0x0000C30D + .word 0x0000C310, 0x0000C3C4 + .word 0x0000C3C4, 0x0000C618 + .word 0x0000C618, 0x0000C704 + .word 0x0000C704, 0x0000C75E + .word 0x0000C760, 0x0000C7BC + .word 0x0000C7BC, 0x0000C826 + .word 0x0000C828, 0x0000CAD0 + .word 0x0000CAD0, 0x0000CBCB + .word 0x0000CBCC, 0x0000CC37 + .word 0x0000CC38, 0x0000CC8E + .word 0x0000CC90, 0x0000CCF6 + .word 0x0000CCF8, 0x0000CD88 + .word 0x0000CD88, 0x0000CE74 + .word 0x0000CE74, 0x0000D12C + .word 0x0000D12C, 0x0000D17B + .word 0x0000D17C, 0x0000D1D6 + .word 0x0000D1D8, 0x0000D24F + .word 0x0000D250, 0x0000D470 + .word 0x0000D470, 0x0000D69A + .word 0x0000D69C, 0x0000D8EB + .word 0x0000D8EC, 0x0000DA27 + .word 0x0000DA28, 0x0000DBE0 + .word 0x0000DBE0, 0x0000DD77 + .word 0x0000DD78, 0x0000DE8E + .word 0x0000DE90, 0x0000DF4D + .word 0x0000DF50, 0x0000E017 + .word 0x0000E018, 0x0000E10B + .word 0x0000E10C, 0x0000E19D + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0000E1A8 ; chunk size + .incbin "baserom.nds", 0x0, 0x228 + .incbin "baserom.nds", 0x228, 0x228 + .incbin "baserom.nds", 0x450, 0x180 + .incbin "baserom.nds", 0x5D0, 0xC6 + .incbin "baserom.nds", 0x698, 0xF5 + .incbin "baserom.nds", 0x790, 0x83 + .incbin "baserom.nds", 0x814, 0xFE + .incbin "baserom.nds", 0x914, 0x54 + .incbin "baserom.nds", 0x968, 0x830 + .incbin "baserom.nds", 0x1198, 0x5A + .incbin "baserom.nds", 0x11F4, 0x1F5 + .incbin "baserom.nds", 0x13EC, 0x1B3 + .incbin "baserom.nds", 0x15A0, 0x5A + .incbin "baserom.nds", 0x15FC, 0x7C + .incbin "baserom.nds", 0x1678, 0x505 + .incbin "baserom.nds", 0x1B80, 0x171 + .incbin "baserom.nds", 0x1CF4, 0x697 + .incbin "baserom.nds", 0x238C, 0x229 + .incbin "baserom.nds", 0x25B8, 0x27D + .incbin "baserom.nds", 0x2838, 0x19A + .incbin "baserom.nds", 0x29D4, 0x228 + .incbin "baserom.nds", 0x2BFC, 0x742 + .incbin "baserom.nds", 0x3340, 0x6B0 + .incbin "baserom.nds", 0x39F0, 0x113 + .incbin "baserom.nds", 0x3B04, 0x13E + .incbin "baserom.nds", 0x3C44, 0xA4 + .incbin "baserom.nds", 0x3CE8, 0xE4 + .incbin "baserom.nds", 0x3DCC, 0xA84 + .incbin "baserom.nds", 0x4850, 0x1B0C + .incbin "baserom.nds", 0x635C, 0xEF + .incbin "baserom.nds", 0x644C, 0x78 + .incbin "baserom.nds", 0x64C4, 0x128 + .incbin "baserom.nds", 0x65EC, 0x2F8 + .incbin "baserom.nds", 0x68E4, 0x86 + .incbin "baserom.nds", 0x696C, 0x8D + .incbin "baserom.nds", 0x69FC, 0xD2 + .incbin "baserom.nds", 0x6AD0, 0x95 + .incbin "baserom.nds", 0x6B68, 0xA3 + .incbin "baserom.nds", 0x6C0C, 0x190 + .incbin "baserom.nds", 0x6D9C, 0x17F + .incbin "baserom.nds", 0x6F1C, 0xB6 + .incbin "baserom.nds", 0x6FD4, 0x149 + .incbin "baserom.nds", 0x7120, 0x26C + .incbin "baserom.nds", 0x738C, 0x12E + .incbin "baserom.nds", 0x74BC, 0x61 + .incbin "baserom.nds", 0x7520, 0x5C + .incbin "baserom.nds", 0x757C, 0x68 + .incbin "baserom.nds", 0x75E4, 0x25B + .incbin "baserom.nds", 0x7840, 0x147 + .incbin "baserom.nds", 0x7988, 0x67 + .incbin "baserom.nds", 0x79F0, 0x5C + .incbin "baserom.nds", 0x7A4C, 0x6A + .incbin "baserom.nds", 0x7AB8, 0x285 + .incbin "baserom.nds", 0x7D40, 0x121 + .incbin "baserom.nds", 0x7E64, 0x7F + .incbin "baserom.nds", 0x7EE4, 0x69 + .incbin "baserom.nds", 0x7F50, 0x7F + .incbin "baserom.nds", 0x7FD0, 0x42E + .incbin "baserom.nds", 0x8400, 0x15A + .incbin "baserom.nds", 0x855C, 0x855 + .incbin "baserom.nds", 0x8DB4, 0x1B7 + .incbin "baserom.nds", 0x8F6C, 0x138 + .incbin "baserom.nds", 0x90A4, 0xAF + .incbin "baserom.nds", 0x9154, 0xB1 + .incbin "baserom.nds", 0x9208, 0xEB + .incbin "baserom.nds", 0x92F4, 0x1F7 + .incbin "baserom.nds", 0x94EC, 0x1FE + .incbin "baserom.nds", 0x96EC, 0x4F + .incbin "baserom.nds", 0x973C, 0x5A + .incbin "baserom.nds", 0x9798, 0x89 + .incbin "baserom.nds", 0x9824, 0x144 + .incbin "baserom.nds", 0x9968, 0x91 + .incbin "baserom.nds", 0x99FC, 0x10F + .incbin "baserom.nds", 0x9B0C, 0x1C6 + .incbin "baserom.nds", 0x9CD4, 0x294 + .incbin "baserom.nds", 0x9F68, 0x202 + .incbin "baserom.nds", 0xA16C, 0x1D5 + .incbin "baserom.nds", 0xA344, 0xB6 + .incbin "baserom.nds", 0xA3FC, 0xCF + .incbin "baserom.nds", 0xA4CC, 0x3F1 + .incbin "baserom.nds", 0xA8C0, 0x104 + .incbin "baserom.nds", 0xA9C4, 0x8B + .incbin "baserom.nds", 0xAA50, 0xE7 + .incbin "baserom.nds", 0xAB38, 0x122 + .incbin "baserom.nds", 0xAC5C, 0x10D + .incbin "baserom.nds", 0xAD6C, 0x1D7 + .incbin "baserom.nds", 0xAF44, 0x113 + .incbin "baserom.nds", 0xB058, 0xEB + .incbin "baserom.nds", 0xB144, 0xC2 + .incbin "baserom.nds", 0xB208, 0x32B + .incbin "baserom.nds", 0xB534, 0x1D1 + .incbin "baserom.nds", 0xB708, 0x1A7 + .incbin "baserom.nds", 0xB8B0, 0x10C + .incbin "baserom.nds", 0xB9BC, 0x12F + .incbin "baserom.nds", 0xBAEC, 0x5E6 + .incbin "baserom.nds", 0xC0D4, 0xE1 + .incbin "baserom.nds", 0xC1B8, 0x43 + .incbin "baserom.nds", 0xC1FC, 0x111 + .incbin "baserom.nds", 0xC310, 0xB4 + .incbin "baserom.nds", 0xC3C4, 0x254 + .incbin "baserom.nds", 0xC618, 0xEC + .incbin "baserom.nds", 0xC704, 0x5A + .incbin "baserom.nds", 0xC760, 0x5C + .incbin "baserom.nds", 0xC7BC, 0x6A + .incbin "baserom.nds", 0xC828, 0x2A8 + .incbin "baserom.nds", 0xCAD0, 0xFB + .incbin "baserom.nds", 0xCBCC, 0x6B + .incbin "baserom.nds", 0xCC38, 0x56 + .incbin "baserom.nds", 0xCC90, 0x66 + .incbin "baserom.nds", 0xCCF8, 0x90 + .incbin "baserom.nds", 0xCD88, 0xEC + .incbin "baserom.nds", 0xCE74, 0x2B8 + .incbin "baserom.nds", 0xD12C, 0x4F + .incbin "baserom.nds", 0xD17C, 0x5A + .incbin "baserom.nds", 0xD1D8, 0x77 + .incbin "baserom.nds", 0xD250, 0x220 + .incbin "baserom.nds", 0xD470, 0x22A + .incbin "baserom.nds", 0xD69C, 0x24F + .incbin "baserom.nds", 0xD8EC, 0x13B + .incbin "baserom.nds", 0xDA28, 0x1B8 + .incbin "baserom.nds", 0xDBE0, 0x197 + .incbin "baserom.nds", 0xDD78, 0x116 + .incbin "baserom.nds", 0xDE90, 0xBD + .incbin "baserom.nds", 0xDF50, 0xC7 + .incbin "baserom.nds", 0xE018, 0xF3 + .incbin "baserom.nds", 0xE10C, 0x91 + .balign 4, 255 diff --git a/narc/graphic/poru_gra.narc.s b/narc/graphic/poru_gra.narc.s new file mode 100644 index 00000000..6d4f14a8 --- /dev/null +++ b/narc/graphic/poru_gra.narc.s @@ -0,0 +1,50 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x000069E4 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000006C ; chunk size + .short 12 ; number of files + .balign 4 + .word 0x00000000, 0x000001AE + .word 0x000001B0, 0x0000033C + .word 0x0000033C, 0x0000177C + .word 0x0000177C, 0x000023BC + .word 0x000023BC, 0x00003CEC + .word 0x00003CEC, 0x00004F9C + .word 0x00004F9C, 0x0000515E + .word 0x00005160, 0x000053AA + .word 0x000053AC, 0x000058BF + .word 0x000058C0, 0x00005D07 + .word 0x00005D08, 0x0000632C + .word 0x0000632C, 0x00006950 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00006958 ; chunk size + .incbin "baserom.nds", 0x0, 0x1AE + .incbin "baserom.nds", 0x1B0, 0x18C + .incbin "baserom.nds", 0x33C, 0x1440 + .incbin "baserom.nds", 0x177C, 0xC40 + .incbin "baserom.nds", 0x23BC, 0x1930 + .incbin "baserom.nds", 0x3CEC, 0x12B0 + .incbin "baserom.nds", 0x4F9C, 0x1C2 + .incbin "baserom.nds", 0x5160, 0x24A + .incbin "baserom.nds", 0x53AC, 0x513 + .incbin "baserom.nds", 0x58C0, 0x447 + .incbin "baserom.nds", 0x5D08, 0x624 + .incbin "baserom.nds", 0x632C, 0x624 + .balign 4, 255 diff --git a/narc/graphic/poruact.narc.s b/narc/graphic/poruact.narc.s new file mode 100644 index 00000000..a9dcc5c9 --- /dev/null +++ b/narc/graphic/poruact.narc.s @@ -0,0 +1,90 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x000014AC ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000010C ; chunk size + .short 32 ; number of files + .balign 4 + .word 0x00000000, 0x00000830 + .word 0x00000830, 0x0000089B + .word 0x0000089C, 0x0000090B + .word 0x0000090C, 0x00000966 + .word 0x00000968, 0x000009C2 + .word 0x000009C4, 0x00000A1E + .word 0x00000A20, 0x00000A7A + .word 0x00000A7C, 0x00000AD6 + .word 0x00000AD8, 0x00000B32 + .word 0x00000B34, 0x00000B8E + .word 0x00000B90, 0x00000BEA + .word 0x00000BEC, 0x00000C46 + .word 0x00000C48, 0x00000CA2 + .word 0x00000CA4, 0x00000CFE + .word 0x00000D00, 0x00000D5A + .word 0x00000D5C, 0x00000DB6 + .word 0x00000DB8, 0x00000E12 + .word 0x00000E14, 0x00000E6E + .word 0x00000E70, 0x00000ECA + .word 0x00000ECC, 0x00000F26 + .word 0x00000F28, 0x00000F82 + .word 0x00000F84, 0x00000FDE + .word 0x00000FE0, 0x0000103A + .word 0x0000103C, 0x00001096 + .word 0x00001098, 0x000010F2 + .word 0x000010F4, 0x0000114E + .word 0x00001150, 0x000011AA + .word 0x000011AC, 0x00001206 + .word 0x00001208, 0x00001262 + .word 0x00001264, 0x000012BE + .word 0x000012C0, 0x0000131A + .word 0x0000131C, 0x00001376 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00001380 ; chunk size + .incbin "baserom.nds", 0x0, 0x830 + .incbin "baserom.nds", 0x830, 0x6B + .incbin "baserom.nds", 0x89C, 0x6F + .incbin "baserom.nds", 0x90C, 0x5A + .incbin "baserom.nds", 0x968, 0x5A + .incbin "baserom.nds", 0x9C4, 0x5A + .incbin "baserom.nds", 0xA20, 0x5A + .incbin "baserom.nds", 0xA7C, 0x5A + .incbin "baserom.nds", 0xAD8, 0x5A + .incbin "baserom.nds", 0xB34, 0x5A + .incbin "baserom.nds", 0xB90, 0x5A + .incbin "baserom.nds", 0xBEC, 0x5A + .incbin "baserom.nds", 0xC48, 0x5A + .incbin "baserom.nds", 0xCA4, 0x5A + .incbin "baserom.nds", 0xD00, 0x5A + .incbin "baserom.nds", 0xD5C, 0x5A + .incbin "baserom.nds", 0xDB8, 0x5A + .incbin "baserom.nds", 0xE14, 0x5A + .incbin "baserom.nds", 0xE70, 0x5A + .incbin "baserom.nds", 0xECC, 0x5A + .incbin "baserom.nds", 0xF28, 0x5A + .incbin "baserom.nds", 0xF84, 0x5A + .incbin "baserom.nds", 0xFE0, 0x5A + .incbin "baserom.nds", 0x103C, 0x5A + .incbin "baserom.nds", 0x1098, 0x5A + .incbin "baserom.nds", 0x10F4, 0x5A + .incbin "baserom.nds", 0x1150, 0x5A + .incbin "baserom.nds", 0x11AC, 0x5A + .incbin "baserom.nds", 0x1208, 0x5A + .incbin "baserom.nds", 0x1264, 0x5A + .incbin "baserom.nds", 0x12C0, 0x5A + .incbin "baserom.nds", 0x131C, 0x5A + .balign 4, 255 diff --git a/narc/graphic/porudemo.narc.s b/narc/graphic/porudemo.narc.s new file mode 100644 index 00000000..c7ead37e --- /dev/null +++ b/narc/graphic/porudemo.narc.s @@ -0,0 +1,38 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0000226C ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000003C ; chunk size + .short 6 ; number of files + .balign 4 + .word 0x00000000, 0x0000005A + .word 0x0000005C, 0x0000013E + .word 0x00000140, 0x00000980 + .word 0x00000980, 0x000015C0 + .word 0x000015C0, 0x00001BE4 + .word 0x00001BE4, 0x00002208 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00002210 ; chunk size + .incbin "baserom.nds", 0x0, 0x5A + .incbin "baserom.nds", 0x5C, 0xE2 + .incbin "baserom.nds", 0x140, 0x840 + .incbin "baserom.nds", 0x980, 0xC40 + .incbin "baserom.nds", 0x15C0, 0x624 + .incbin "baserom.nds", 0x1BE4, 0x624 + .balign 4, 255 diff --git a/narc/graphic/pst_gra.narc.s b/narc/graphic/pst_gra.narc.s new file mode 100644 index 00000000..6c1d2e23 --- /dev/null +++ b/narc/graphic/pst_gra.narc.s @@ -0,0 +1,300 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0001F0B0 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000454 ; chunk size + .short 137 ; number of files + .balign 4 + .word 0x00000000, 0x00003C40 + .word 0x00003C40, 0x00003E68 + .word 0x00003E68, 0x00008D68 + .word 0x00008D68, 0x0000958C + .word 0x0000958C, 0x00009DB0 + .word 0x00009DB0, 0x0000A5D4 + .word 0x0000A5D4, 0x0000ADF8 + .word 0x0000ADF8, 0x0000B61C + .word 0x0000B61C, 0x0000BE40 + .word 0x0000BE40, 0x0000C664 + .word 0x0000C664, 0x0000CE88 + .word 0x0000CE88, 0x0000EEAC + .word 0x0000EEAC, 0x0000F6D0 + .word 0x0000F6D0, 0x0000FEF4 + .word 0x0000FEF4, 0x0001011C + .word 0x0001011C, 0x00010940 + .word 0x00010940, 0x00012180 + .word 0x00012180, 0x000121EF + .word 0x000121F0, 0x0001225B + .word 0x0001225C, 0x0001230C + .word 0x0001230C, 0x000123BC + .word 0x000123BC, 0x0001246C + .word 0x0001246C, 0x0001251C + .word 0x0001251C, 0x000125CC + .word 0x000125CC, 0x0001267C + .word 0x0001267C, 0x0001272C + .word 0x0001272C, 0x000127DC + .word 0x000127DC, 0x0001288C + .word 0x0001288C, 0x0001293C + .word 0x0001293C, 0x000129EC + .word 0x000129EC, 0x00012A9C + .word 0x00012A9C, 0x00012B4C + .word 0x00012B4C, 0x00012BFC + .word 0x00012BFC, 0x00012CAC + .word 0x00012CAC, 0x00012D5C + .word 0x00012D5C, 0x00012E0C + .word 0x00012E0C, 0x00012EBC + .word 0x00012EBC, 0x000130E4 + .word 0x000130E4, 0x0001330C + .word 0x0001330C, 0x00013534 + .word 0x00013534, 0x0001375C + .word 0x0001375C, 0x0001387E + .word 0x00013880, 0x0001390E + .word 0x00013910, 0x00013A40 + .word 0x00013A40, 0x00013B5B + .word 0x00013B5C, 0x00013C5B + .word 0x00013C5C, 0x00013D2C + .word 0x00013D2C, 0x00013DE3 + .word 0x00013DE4, 0x00013EBB + .word 0x00013EBC, 0x000141EC + .word 0x000141EC, 0x00014286 + .word 0x00014288, 0x00014316 + .word 0x00014318, 0x00014388 + .word 0x00014388, 0x000143F8 + .word 0x000143F8, 0x00014468 + .word 0x00014468, 0x000144D8 + .word 0x000144D8, 0x00014548 + .word 0x00014548, 0x000145B8 + .word 0x000145B8, 0x00014628 + .word 0x00014628, 0x0001474A + .word 0x0001474C, 0x000147DA + .word 0x000147DC, 0x0001484C + .word 0x0001484C, 0x000149BD + .word 0x000149C0, 0x00014B31 + .word 0x00014B34, 0x00014E04 + .word 0x00014E04, 0x0001502C + .word 0x0001502C, 0x000150D3 + .word 0x000150D4, 0x000151AB + .word 0x000151AC, 0x0001535C + .word 0x0001535C, 0x00015584 + .word 0x00015584, 0x000155F3 + .word 0x000155F4, 0x0001565F + .word 0x00015660, 0x00015890 + .word 0x00015890, 0x00015AC0 + .word 0x00015AC0, 0x00015CF0 + .word 0x00015CF0, 0x00015F20 + .word 0x00015F20, 0x00016150 + .word 0x00016150, 0x00016380 + .word 0x00016380, 0x000165B0 + .word 0x000165B0, 0x000167E0 + .word 0x000167E0, 0x00016A10 + .word 0x00016A10, 0x00016C40 + .word 0x00016C40, 0x00016E70 + .word 0x00016E70, 0x000170A0 + .word 0x000170A0, 0x000172D0 + .word 0x000172D0, 0x00017500 + .word 0x00017500, 0x00017730 + .word 0x00017730, 0x00017960 + .word 0x00017960, 0x00017B90 + .word 0x00017B90, 0x00017DC0 + .word 0x00017DC0, 0x00017FF0 + .word 0x00017FF0, 0x00018220 + .word 0x00018220, 0x00018450 + .word 0x00018450, 0x00018680 + .word 0x00018680, 0x000188B0 + .word 0x000188B0, 0x00018AE0 + .word 0x00018AE0, 0x00018D10 + .word 0x00018D10, 0x00018F40 + .word 0x00018F40, 0x00019170 + .word 0x00019170, 0x000193A0 + .word 0x000193A0, 0x000195D0 + .word 0x000195D0, 0x00019800 + .word 0x00019800, 0x00019A30 + .word 0x00019A30, 0x00019C60 + .word 0x00019C60, 0x00019E90 + .word 0x00019E90, 0x0001A0C0 + .word 0x0001A0C0, 0x0001A2F0 + .word 0x0001A2F0, 0x0001A520 + .word 0x0001A520, 0x0001A750 + .word 0x0001A750, 0x0001A980 + .word 0x0001A980, 0x0001ABB0 + .word 0x0001ABB0, 0x0001ADE0 + .word 0x0001ADE0, 0x0001B010 + .word 0x0001B010, 0x0001B240 + .word 0x0001B240, 0x0001B470 + .word 0x0001B470, 0x0001B6A0 + .word 0x0001B6A0, 0x0001B8D0 + .word 0x0001B8D0, 0x0001BB00 + .word 0x0001BB00, 0x0001BD30 + .word 0x0001BD30, 0x0001BF60 + .word 0x0001BF60, 0x0001C410 + .word 0x0001C410, 0x0001C640 + .word 0x0001C640, 0x0001C70F + .word 0x0001C710, 0x0001C83F + .word 0x0001C840, 0x0001CD70 + .word 0x0001CD70, 0x0001CDEB + .word 0x0001CDEC, 0x0001CE5B + .word 0x0001CE5C, 0x0001D156 + .word 0x0001D158, 0x0001D422 + .word 0x0001D424, 0x0001DE54 + .word 0x0001DE54, 0x0001DEEE + .word 0x0001DEF0, 0x0001DF8A + .word 0x0001DF8C, 0x0001E7BC + .word 0x0001E7BC, 0x0001E82B + .word 0x0001E82C, 0x0001E89B + .word 0x0001E89C, 0x0001EA0C + .word 0x0001EA0C, 0x0001EC34 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0001EC3C ; chunk size + .incbin "baserom.nds", 0x0, 0x3C40 + .incbin "baserom.nds", 0x3C40, 0x228 + .incbin "baserom.nds", 0x3E68, 0x4F00 + .incbin "baserom.nds", 0x8D68, 0x824 + .incbin "baserom.nds", 0x958C, 0x824 + .incbin "baserom.nds", 0x9DB0, 0x824 + .incbin "baserom.nds", 0xA5D4, 0x824 + .incbin "baserom.nds", 0xADF8, 0x824 + .incbin "baserom.nds", 0xB61C, 0x824 + .incbin "baserom.nds", 0xBE40, 0x824 + .incbin "baserom.nds", 0xC664, 0x824 + .incbin "baserom.nds", 0xCE88, 0x2024 + .incbin "baserom.nds", 0xEEAC, 0x824 + .incbin "baserom.nds", 0xF6D0, 0x824 + .incbin "baserom.nds", 0xFEF4, 0x228 + .incbin "baserom.nds", 0x1011C, 0x824 + .incbin "baserom.nds", 0x10940, 0x1840 + .incbin "baserom.nds", 0x12180, 0x6F + .incbin "baserom.nds", 0x121F0, 0x6B + .incbin "baserom.nds", 0x1225C, 0xB0 + .incbin "baserom.nds", 0x1230C, 0xB0 + .incbin "baserom.nds", 0x123BC, 0xB0 + .incbin "baserom.nds", 0x1246C, 0xB0 + .incbin "baserom.nds", 0x1251C, 0xB0 + .incbin "baserom.nds", 0x125CC, 0xB0 + .incbin "baserom.nds", 0x1267C, 0xB0 + .incbin "baserom.nds", 0x1272C, 0xB0 + .incbin "baserom.nds", 0x127DC, 0xB0 + .incbin "baserom.nds", 0x1288C, 0xB0 + .incbin "baserom.nds", 0x1293C, 0xB0 + .incbin "baserom.nds", 0x129EC, 0xB0 + .incbin "baserom.nds", 0x12A9C, 0xB0 + .incbin "baserom.nds", 0x12B4C, 0xB0 + .incbin "baserom.nds", 0x12BFC, 0xB0 + .incbin "baserom.nds", 0x12CAC, 0xB0 + .incbin "baserom.nds", 0x12D5C, 0xB0 + .incbin "baserom.nds", 0x12E0C, 0xB0 + .incbin "baserom.nds", 0x12EBC, 0x228 + .incbin "baserom.nds", 0x130E4, 0x228 + .incbin "baserom.nds", 0x1330C, 0x228 + .incbin "baserom.nds", 0x13534, 0x228 + .incbin "baserom.nds", 0x1375C, 0x122 + .incbin "baserom.nds", 0x13880, 0x8E + .incbin "baserom.nds", 0x13910, 0x130 + .incbin "baserom.nds", 0x13A40, 0x11B + .incbin "baserom.nds", 0x13B5C, 0xFF + .incbin "baserom.nds", 0x13C5C, 0xD0 + .incbin "baserom.nds", 0x13D2C, 0xB7 + .incbin "baserom.nds", 0x13DE4, 0xD7 + .incbin "baserom.nds", 0x13EBC, 0x330 + .incbin "baserom.nds", 0x141EC, 0x9A + .incbin "baserom.nds", 0x14288, 0x8E + .incbin "baserom.nds", 0x14318, 0x70 + .incbin "baserom.nds", 0x14388, 0x70 + .incbin "baserom.nds", 0x143F8, 0x70 + .incbin "baserom.nds", 0x14468, 0x70 + .incbin "baserom.nds", 0x144D8, 0x70 + .incbin "baserom.nds", 0x14548, 0x70 + .incbin "baserom.nds", 0x145B8, 0x70 + .incbin "baserom.nds", 0x14628, 0x122 + .incbin "baserom.nds", 0x1474C, 0x8E + .incbin "baserom.nds", 0x147DC, 0x70 + .incbin "baserom.nds", 0x1484C, 0x171 + .incbin "baserom.nds", 0x149C0, 0x171 + .incbin "baserom.nds", 0x14B34, 0x2D0 + .incbin "baserom.nds", 0x14E04, 0x228 + .incbin "baserom.nds", 0x1502C, 0xA7 + .incbin "baserom.nds", 0x150D4, 0xD7 + .incbin "baserom.nds", 0x151AC, 0x1B0 + .incbin "baserom.nds", 0x1535C, 0x228 + .incbin "baserom.nds", 0x15584, 0x6F + .incbin "baserom.nds", 0x155F4, 0x6B + .incbin "baserom.nds", 0x15660, 0x230 + .incbin "baserom.nds", 0x15890, 0x230 + .incbin "baserom.nds", 0x15AC0, 0x230 + .incbin "baserom.nds", 0x15CF0, 0x230 + .incbin "baserom.nds", 0x15F20, 0x230 + .incbin "baserom.nds", 0x16150, 0x230 + .incbin "baserom.nds", 0x16380, 0x230 + .incbin "baserom.nds", 0x165B0, 0x230 + .incbin "baserom.nds", 0x167E0, 0x230 + .incbin "baserom.nds", 0x16A10, 0x230 + .incbin "baserom.nds", 0x16C40, 0x230 + .incbin "baserom.nds", 0x16E70, 0x230 + .incbin "baserom.nds", 0x170A0, 0x230 + .incbin "baserom.nds", 0x172D0, 0x230 + .incbin "baserom.nds", 0x17500, 0x230 + .incbin "baserom.nds", 0x17730, 0x230 + .incbin "baserom.nds", 0x17960, 0x230 + .incbin "baserom.nds", 0x17B90, 0x230 + .incbin "baserom.nds", 0x17DC0, 0x230 + .incbin "baserom.nds", 0x17FF0, 0x230 + .incbin "baserom.nds", 0x18220, 0x230 + .incbin "baserom.nds", 0x18450, 0x230 + .incbin "baserom.nds", 0x18680, 0x230 + .incbin "baserom.nds", 0x188B0, 0x230 + .incbin "baserom.nds", 0x18AE0, 0x230 + .incbin "baserom.nds", 0x18D10, 0x230 + .incbin "baserom.nds", 0x18F40, 0x230 + .incbin "baserom.nds", 0x19170, 0x230 + .incbin "baserom.nds", 0x193A0, 0x230 + .incbin "baserom.nds", 0x195D0, 0x230 + .incbin "baserom.nds", 0x19800, 0x230 + .incbin "baserom.nds", 0x19A30, 0x230 + .incbin "baserom.nds", 0x19C60, 0x230 + .incbin "baserom.nds", 0x19E90, 0x230 + .incbin "baserom.nds", 0x1A0C0, 0x230 + .incbin "baserom.nds", 0x1A2F0, 0x230 + .incbin "baserom.nds", 0x1A520, 0x230 + .incbin "baserom.nds", 0x1A750, 0x230 + .incbin "baserom.nds", 0x1A980, 0x230 + .incbin "baserom.nds", 0x1ABB0, 0x230 + .incbin "baserom.nds", 0x1ADE0, 0x230 + .incbin "baserom.nds", 0x1B010, 0x230 + .incbin "baserom.nds", 0x1B240, 0x230 + .incbin "baserom.nds", 0x1B470, 0x230 + .incbin "baserom.nds", 0x1B6A0, 0x230 + .incbin "baserom.nds", 0x1B8D0, 0x230 + .incbin "baserom.nds", 0x1BB00, 0x230 + .incbin "baserom.nds", 0x1BD30, 0x230 + .incbin "baserom.nds", 0x1BF60, 0x4B0 + .incbin "baserom.nds", 0x1C410, 0x230 + .incbin "baserom.nds", 0x1C640, 0xCF + .incbin "baserom.nds", 0x1C710, 0x12F + .incbin "baserom.nds", 0x1C840, 0x530 + .incbin "baserom.nds", 0x1CD70, 0x7B + .incbin "baserom.nds", 0x1CDEC, 0x6F + .incbin "baserom.nds", 0x1CE5C, 0x2FA + .incbin "baserom.nds", 0x1D158, 0x2CA + .incbin "baserom.nds", 0x1D424, 0xA30 + .incbin "baserom.nds", 0x1DE54, 0x9A + .incbin "baserom.nds", 0x1DEF0, 0x9A + .incbin "baserom.nds", 0x1DF8C, 0x830 + .incbin "baserom.nds", 0x1E7BC, 0x6F + .incbin "baserom.nds", 0x1E82C, 0x6F + .incbin "baserom.nds", 0x1E89C, 0x170 + .incbin "baserom.nds", 0x1EA0C, 0x228 + .balign 4, 255 diff --git a/narc/graphic/ranking.narc.s b/narc/graphic/ranking.narc.s new file mode 100644 index 00000000..b94deed5 --- /dev/null +++ b/narc/graphic/ranking.narc.s @@ -0,0 +1,34 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x000014C8 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000002C ; chunk size + .short 4 ; number of files + .balign 4 + .word 0x00000000, 0x0000009E + .word 0x000000A0, 0x000012F0 + .word 0x000012F0, 0x000013E4 + .word 0x000013E4, 0x00001474 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0000147C ; chunk size + .incbin "baserom.nds", 0x0, 0x9E + .incbin "baserom.nds", 0xA0, 0x1250 + .incbin "baserom.nds", 0x12F0, 0xF4 + .incbin "baserom.nds", 0x13E4, 0x90 + .balign 4, 255 diff --git a/narc/graphic/record.narc.s b/narc/graphic/record.narc.s new file mode 100644 index 00000000..7c4ea1ef --- /dev/null +++ b/narc/graphic/record.narc.s @@ -0,0 +1,56 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x000059C4 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000084 ; chunk size + .short 15 ; number of files + .balign 4 + .word 0x00000000, 0x00000228 + .word 0x00000228, 0x00000450 + .word 0x00000450, 0x000008F1 + .word 0x000008F4, 0x00000B0F + .word 0x00000B10, 0x0000106F + .word 0x00001070, 0x000012BB + .word 0x000012BC, 0x00001503 + .word 0x00001504, 0x0000172C + .word 0x0000172C, 0x00001954 + .word 0x00001954, 0x00003AA0 + .word 0x00003AA0, 0x00003CFB + .word 0x00003CFC, 0x00003F3D + .word 0x00003F40, 0x00004FEB + .word 0x00004FEC, 0x000054E7 + .word 0x000054E8, 0x00005915 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00005920 ; chunk size + .incbin "baserom.nds", 0x0, 0x228 + .incbin "baserom.nds", 0x228, 0x228 + .incbin "baserom.nds", 0x450, 0x4A1 + .incbin "baserom.nds", 0x8F4, 0x21B + .incbin "baserom.nds", 0xB10, 0x55F + .incbin "baserom.nds", 0x1070, 0x24B + .incbin "baserom.nds", 0x12BC, 0x247 + .incbin "baserom.nds", 0x1504, 0x228 + .incbin "baserom.nds", 0x172C, 0x228 + .incbin "baserom.nds", 0x1954, 0x214C + .incbin "baserom.nds", 0x3AA0, 0x25B + .incbin "baserom.nds", 0x3CFC, 0x241 + .incbin "baserom.nds", 0x3F40, 0x10AB + .incbin "baserom.nds", 0x4FEC, 0x4FB + .incbin "baserom.nds", 0x54E8, 0x42D + .balign 4, 255 diff --git a/narc/graphic/shop_gra.narc.s b/narc/graphic/shop_gra.narc.s new file mode 100644 index 00000000..15230b4a --- /dev/null +++ b/narc/graphic/shop_gra.narc.s @@ -0,0 +1,48 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00002740 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000064 ; chunk size + .short 11 ; number of files + .balign 4 + .word 0x00000000, 0x00000840 + .word 0x00000840, 0x00000A68 + .word 0x00000A68, 0x0000108C + .word 0x0000108C, 0x000016B0 + .word 0x000016B0, 0x000017E0 + .word 0x000017E0, 0x0000186E + .word 0x00001870, 0x00001972 + .word 0x00001974, 0x000023A4 + .word 0x000023A4, 0x0000241B + .word 0x0000241C, 0x0000248B + .word 0x0000248C, 0x000026B4 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000026BC ; chunk size + .incbin "baserom.nds", 0x0, 0x840 + .incbin "baserom.nds", 0x840, 0x228 + .incbin "baserom.nds", 0xA68, 0x624 + .incbin "baserom.nds", 0x108C, 0x624 + .incbin "baserom.nds", 0x16B0, 0x130 + .incbin "baserom.nds", 0x17E0, 0x8E + .incbin "baserom.nds", 0x1870, 0x102 + .incbin "baserom.nds", 0x1974, 0xA30 + .incbin "baserom.nds", 0x23A4, 0x77 + .incbin "baserom.nds", 0x241C, 0x6F + .incbin "baserom.nds", 0x248C, 0x228 + .balign 4, 255 diff --git a/narc/graphic/tmap_gra.narc.s b/narc/graphic/tmap_gra.narc.s new file mode 100644 index 00000000..3e78df3a --- /dev/null +++ b/narc/graphic/tmap_gra.narc.s @@ -0,0 +1,86 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00014F10 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000000FC ; chunk size + .short 30 ; number of files + .balign 4 + .word 0x00000000, 0x0000007C + .word 0x0000007C, 0x0000015E + .word 0x00000160, 0x00000396 + .word 0x00000398, 0x000003F2 + .word 0x000003F4, 0x00001C24 + .word 0x00001C24, 0x00001CBB + .word 0x00001CBC, 0x00001D3F + .word 0x00001D40, 0x00001E70 + .word 0x00001E70, 0x00001EF0 + .word 0x00001EF0, 0x00001F68 + .word 0x00001F68, 0x00002098 + .word 0x00002098, 0x0000211A + .word 0x0000211C, 0x00002196 + .word 0x00002198, 0x000021E8 + .word 0x000021E8, 0x00002254 + .word 0x00002254, 0x000022C4 + .word 0x000022C4, 0x00002674 + .word 0x00002674, 0x00002760 + .word 0x00002760, 0x00002808 + .word 0x00002808, 0x00007848 + .word 0x00007848, 0x0000D888 + .word 0x0000D888, 0x0000F688 + .word 0x0000F688, 0x0000FCAC + .word 0x0000FCAC, 0x0000FD78 + .word 0x0000FD78, 0x0001039C + .word 0x0001039C, 0x000123C0 + .word 0x000123C0, 0x000143E4 + .word 0x000143E4, 0x0001454C + .word 0x0001454C, 0x00014B70 + .word 0x00014B70, 0x00014DEC + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00014DF4 ; chunk size + .incbin "baserom.nds", 0x0, 0x7C + .incbin "baserom.nds", 0x7C, 0xE2 + .incbin "baserom.nds", 0x160, 0x236 + .incbin "baserom.nds", 0x398, 0x5A + .incbin "baserom.nds", 0x3F4, 0x1830 + .incbin "baserom.nds", 0x1C24, 0x97 + .incbin "baserom.nds", 0x1CBC, 0x83 + .incbin "baserom.nds", 0x1D40, 0x130 + .incbin "baserom.nds", 0x1E70, 0x80 + .incbin "baserom.nds", 0x1EF0, 0x78 + .incbin "baserom.nds", 0x1F68, 0x130 + .incbin "baserom.nds", 0x2098, 0x82 + .incbin "baserom.nds", 0x211C, 0x7A + .incbin "baserom.nds", 0x2198, 0x50 + .incbin "baserom.nds", 0x21E8, 0x6C + .incbin "baserom.nds", 0x2254, 0x70 + .incbin "baserom.nds", 0x22C4, 0x3B0 + .incbin "baserom.nds", 0x2674, 0xEC + .incbin "baserom.nds", 0x2760, 0xA8 + .incbin "baserom.nds", 0x2808, 0x5040 + .incbin "baserom.nds", 0x7848, 0x6040 + .incbin "baserom.nds", 0xD888, 0x1E00 + .incbin "baserom.nds", 0xF688, 0x624 + .incbin "baserom.nds", 0xFCAC, 0xCC + .incbin "baserom.nds", 0xFD78, 0x624 + .incbin "baserom.nds", 0x1039C, 0x2024 + .incbin "baserom.nds", 0x123C0, 0x2024 + .incbin "baserom.nds", 0x143E4, 0x168 + .incbin "baserom.nds", 0x1454C, 0x624 + .incbin "baserom.nds", 0x14B70, 0x27C + .balign 4, 255 diff --git a/narc/graphic/touch_subwindow.narc.s b/narc/graphic/touch_subwindow.narc.s new file mode 100644 index 00000000..52f8fdad --- /dev/null +++ b/narc/graphic/touch_subwindow.narc.s @@ -0,0 +1,46 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00000998 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000005C ; chunk size + .short 10 ; number of files + .balign 4 + .word 0x00000000, 0x00000228 + .word 0x00000228, 0x0000061E + .word 0x00000620, 0x0000067A + .word 0x0000067C, 0x000006D9 + .word 0x000006DC, 0x00000739 + .word 0x0000073C, 0x00000799 + .word 0x0000079C, 0x000007F9 + .word 0x000007FC, 0x00000859 + .word 0x0000085C, 0x000008B5 + .word 0x000008B8, 0x00000914 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0000091C ; chunk size + .incbin "baserom.nds", 0x0, 0x228 + .incbin "baserom.nds", 0x228, 0x3F6 + .incbin "baserom.nds", 0x620, 0x5A + .incbin "baserom.nds", 0x67C, 0x5D + .incbin "baserom.nds", 0x6DC, 0x5D + .incbin "baserom.nds", 0x73C, 0x5D + .incbin "baserom.nds", 0x79C, 0x5D + .incbin "baserom.nds", 0x7FC, 0x5D + .incbin "baserom.nds", 0x85C, 0x59 + .incbin "baserom.nds", 0x8B8, 0x5C + .balign 4, 255 diff --git a/narc/graphic/trainer_case.narc.s b/narc/graphic/trainer_case.narc.s new file mode 100644 index 00000000..8ba77dec --- /dev/null +++ b/narc/graphic/trainer_case.narc.s @@ -0,0 +1,144 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00037BE0 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000001E4 ; chunk size + .short 59 ; number of files + .balign 4 + .word 0x00000000, 0x00000228 + .word 0x00000228, 0x00000450 + .word 0x00000450, 0x00000678 + .word 0x00000678, 0x000008A0 + .word 0x000008A0, 0x00000AC8 + .word 0x00000AC8, 0x00000CF0 + .word 0x00000CF0, 0x00000F18 + .word 0x00000F18, 0x00001140 + .word 0x00001140, 0x00001368 + .word 0x00001368, 0x00001590 + .word 0x00001590, 0x000017B8 + .word 0x000017B8, 0x000019E0 + .word 0x000019E0, 0x00001C08 + .word 0x00001C08, 0x00001E30 + .word 0x00001E30, 0x00002058 + .word 0x00002058, 0x00002280 + .word 0x00002280, 0x000024A8 + .word 0x000024A8, 0x000026D0 + .word 0x000026D0, 0x000028F8 + .word 0x000028F8, 0x00002B20 + .word 0x00002B20, 0x00002D48 + .word 0x00002D48, 0x00002F70 + .word 0x00002F70, 0x00003198 + .word 0x00003198, 0x00006DD8 + .word 0x00006DD8, 0x00007618 + .word 0x00007618, 0x00009658 + .word 0x00009658, 0x0000D698 + .word 0x0000D698, 0x0000EED8 + .word 0x0000EED8, 0x00016F08 + .word 0x00016F08, 0x00018738 + .word 0x00018738, 0x00018B5C + .word 0x00018B5C, 0x00018F80 + .word 0x00018F80, 0x000195A4 + .word 0x000195A4, 0x00019BC8 + .word 0x00019BC8, 0x00019FEC + .word 0x00019FEC, 0x0001A810 + .word 0x0001A810, 0x0001B034 + .word 0x0001B034, 0x0001B232 + .word 0x0001B234, 0x0001B2A3 + .word 0x0001B2A4, 0x0001B516 + .word 0x0001B518, 0x0001B587 + .word 0x0001B588, 0x0001B7B0 + .word 0x0001B7B0, 0x0001BDD4 + .word 0x0001BDD4, 0x0001D994 + .word 0x0001D994, 0x0001F554 + .word 0x0001F554, 0x00021114 + .word 0x00021114, 0x00022CD4 + .word 0x00022CD4, 0x00024894 + .word 0x00024894, 0x00026454 + .word 0x00026454, 0x00028014 + .word 0x00028014, 0x00029BD4 + .word 0x00029BD4, 0x0002B794 + .word 0x0002B794, 0x0002D354 + .word 0x0002D354, 0x0002EF14 + .word 0x0002EF14, 0x00030AD4 + .word 0x00030AD4, 0x00032694 + .word 0x00032694, 0x00034254 + .word 0x00034254, 0x00035E14 + .word 0x00035E14, 0x000379D4 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000379DC ; chunk size + .incbin "baserom.nds", 0x0, 0x228 + .incbin "baserom.nds", 0x228, 0x228 + .incbin "baserom.nds", 0x450, 0x228 + .incbin "baserom.nds", 0x678, 0x228 + .incbin "baserom.nds", 0x8A0, 0x228 + .incbin "baserom.nds", 0xAC8, 0x228 + .incbin "baserom.nds", 0xCF0, 0x228 + .incbin "baserom.nds", 0xF18, 0x228 + .incbin "baserom.nds", 0x1140, 0x228 + .incbin "baserom.nds", 0x1368, 0x228 + .incbin "baserom.nds", 0x1590, 0x228 + .incbin "baserom.nds", 0x17B8, 0x228 + .incbin "baserom.nds", 0x19E0, 0x228 + .incbin "baserom.nds", 0x1C08, 0x228 + .incbin "baserom.nds", 0x1E30, 0x228 + .incbin "baserom.nds", 0x2058, 0x228 + .incbin "baserom.nds", 0x2280, 0x228 + .incbin "baserom.nds", 0x24A8, 0x228 + .incbin "baserom.nds", 0x26D0, 0x228 + .incbin "baserom.nds", 0x28F8, 0x228 + .incbin "baserom.nds", 0x2B20, 0x228 + .incbin "baserom.nds", 0x2D48, 0x228 + .incbin "baserom.nds", 0x2F70, 0x228 + .incbin "baserom.nds", 0x3198, 0x3C40 + .incbin "baserom.nds", 0x6DD8, 0x840 + .incbin "baserom.nds", 0x7618, 0x2040 + .incbin "baserom.nds", 0x9658, 0x4040 + .incbin "baserom.nds", 0xD698, 0x1840 + .incbin "baserom.nds", 0xEED8, 0x8030 + .incbin "baserom.nds", 0x16F08, 0x1830 + .incbin "baserom.nds", 0x18738, 0x424 + .incbin "baserom.nds", 0x18B5C, 0x424 + .incbin "baserom.nds", 0x18F80, 0x624 + .incbin "baserom.nds", 0x195A4, 0x624 + .incbin "baserom.nds", 0x19BC8, 0x424 + .incbin "baserom.nds", 0x19FEC, 0x824 + .incbin "baserom.nds", 0x1A810, 0x824 + .incbin "baserom.nds", 0x1B034, 0x1FE + .incbin "baserom.nds", 0x1B234, 0x6F + .incbin "baserom.nds", 0x1B2A4, 0x272 + .incbin "baserom.nds", 0x1B518, 0x6F + .incbin "baserom.nds", 0x1B588, 0x228 + .incbin "baserom.nds", 0x1B7B0, 0x624 + .incbin "baserom.nds", 0x1BDD4, 0x1BC0 + .incbin "baserom.nds", 0x1D994, 0x1BC0 + .incbin "baserom.nds", 0x1F554, 0x1BC0 + .incbin "baserom.nds", 0x21114, 0x1BC0 + .incbin "baserom.nds", 0x22CD4, 0x1BC0 + .incbin "baserom.nds", 0x24894, 0x1BC0 + .incbin "baserom.nds", 0x26454, 0x1BC0 + .incbin "baserom.nds", 0x28014, 0x1BC0 + .incbin "baserom.nds", 0x29BD4, 0x1BC0 + .incbin "baserom.nds", 0x2B794, 0x1BC0 + .incbin "baserom.nds", 0x2D354, 0x1BC0 + .incbin "baserom.nds", 0x2EF14, 0x1BC0 + .incbin "baserom.nds", 0x30AD4, 0x1BC0 + .incbin "baserom.nds", 0x32694, 0x1BC0 + .incbin "baserom.nds", 0x34254, 0x1BC0 + .incbin "baserom.nds", 0x35E14, 0x1BC0 + .balign 4, 255 diff --git a/narc/graphic/unionroom.narc.s b/narc/graphic/unionroom.narc.s new file mode 100644 index 00000000..b2e18602 --- /dev/null +++ b/narc/graphic/unionroom.narc.s @@ -0,0 +1,42 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00001210 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000004C ; chunk size + .short 8 ; number of files + .balign 4 + .word 0x00000000, 0x00000228 + .word 0x00000228, 0x00000450 + .word 0x00000450, 0x00000859 + .word 0x0000085C, 0x00000BB2 + .word 0x00000BB4, 0x00000CD7 + .word 0x00000CD8, 0x00001006 + .word 0x00001008, 0x000010C4 + .word 0x000010C4, 0x0000119B + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000011A4 ; chunk size + .incbin "baserom.nds", 0x0, 0x228 + .incbin "baserom.nds", 0x228, 0x228 + .incbin "baserom.nds", 0x450, 0x409 + .incbin "baserom.nds", 0x85C, 0x356 + .incbin "baserom.nds", 0xBB4, 0x123 + .incbin "baserom.nds", 0xCD8, 0x32E + .incbin "baserom.nds", 0x1008, 0xBC + .incbin "baserom.nds", 0x10C4, 0xD7 + .balign 4, 255 diff --git a/narc/graphic/vs_demo_gra.narc.s b/narc/graphic/vs_demo_gra.narc.s new file mode 100644 index 00000000..bfa1670d --- /dev/null +++ b/narc/graphic/vs_demo_gra.narc.s @@ -0,0 +1,44 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00005180 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000054 ; chunk size + .short 9 ; number of files + .balign 4 + .word 0x00000000, 0x00002440 + .word 0x00002440, 0x00002668 + .word 0x00002668, 0x00002E8C + .word 0x00002E8C, 0x000036B0 + .word 0x000036B0, 0x00003ED4 + .word 0x00003ED4, 0x00004D04 + .word 0x00004D04, 0x00004DA5 + .word 0x00004DA8, 0x00004ED9 + .word 0x00004EDC, 0x00005104 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0000510C ; chunk size + .incbin "baserom.nds", 0x0, 0x2440 + .incbin "baserom.nds", 0x2440, 0x228 + .incbin "baserom.nds", 0x2668, 0x824 + .incbin "baserom.nds", 0x2E8C, 0x824 + .incbin "baserom.nds", 0x36B0, 0x824 + .incbin "baserom.nds", 0x3ED4, 0xE30 + .incbin "baserom.nds", 0x4D04, 0xA1 + .incbin "baserom.nds", 0x4DA8, 0x131 + .incbin "baserom.nds", 0x4EDC, 0x228 + .balign 4, 255 diff --git a/narc/graphic/waza_oshie_gra.narc.s b/narc/graphic/waza_oshie_gra.narc.s new file mode 100644 index 00000000..317911b5 --- /dev/null +++ b/narc/graphic/waza_oshie_gra.narc.s @@ -0,0 +1,52 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00002F34 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000074 ; chunk size + .short 13 ; number of files + .balign 4 + .word 0x00000000, 0x0000006F + .word 0x00000070, 0x000000EB + .word 0x000000EC, 0x0000051C + .word 0x0000051C, 0x0000063E + .word 0x00000640, 0x000006CE + .word 0x000006D0, 0x00000780 + .word 0x00000780, 0x000008A2 + .word 0x000008A4, 0x00000932 + .word 0x00000934, 0x000009E4 + .word 0x000009E4, 0x00000C0C + .word 0x00000C0C, 0x00001C4C + .word 0x00001C4C, 0x00002C70 + .word 0x00002C70, 0x00002E98 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00002EA0 ; chunk size + .incbin "baserom.nds", 0x0, 0x6F + .incbin "baserom.nds", 0x70, 0x7B + .incbin "baserom.nds", 0xEC, 0x430 + .incbin "baserom.nds", 0x51C, 0x122 + .incbin "baserom.nds", 0x640, 0x8E + .incbin "baserom.nds", 0x6D0, 0xB0 + .incbin "baserom.nds", 0x780, 0x122 + .incbin "baserom.nds", 0x8A4, 0x8E + .incbin "baserom.nds", 0x934, 0xB0 + .incbin "baserom.nds", 0x9E4, 0x228 + .incbin "baserom.nds", 0xC0C, 0x1040 + .incbin "baserom.nds", 0x1C4C, 0x1024 + .incbin "baserom.nds", 0x2C70, 0x228 + .balign 4, 255 diff --git a/narc/graphic/winframe.narc.s b/narc/graphic/winframe.narc.s new file mode 100644 index 00000000..423f93f4 --- /dev/null +++ b/narc/graphic/winframe.narc.s @@ -0,0 +1,126 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x000088E4 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000019C ; chunk size + .short 50 ; number of files + .balign 4 + .word 0x00000000, 0x00000160 + .word 0x00000160, 0x000002C0 + .word 0x000002C0, 0x00000540 + .word 0x00000540, 0x000007C0 + .word 0x000007C0, 0x00000A40 + .word 0x00000A40, 0x00000CC0 + .word 0x00000CC0, 0x00000F40 + .word 0x00000F40, 0x000011C0 + .word 0x000011C0, 0x00001440 + .word 0x00001440, 0x000016C0 + .word 0x000016C0, 0x00001940 + .word 0x00001940, 0x00001BC0 + .word 0x00001BC0, 0x00001E40 + .word 0x00001E40, 0x000020C0 + .word 0x000020C0, 0x00002340 + .word 0x00002340, 0x000025C0 + .word 0x000025C0, 0x00002840 + .word 0x00002840, 0x00002AC0 + .word 0x00002AC0, 0x00002D40 + .word 0x00002D40, 0x00002FC0 + .word 0x00002FC0, 0x00003240 + .word 0x00003240, 0x000034C0 + .word 0x000034C0, 0x00003680 + .word 0x00003680, 0x00003AC0 + .word 0x00003AC0, 0x00003CE8 + .word 0x00003CE8, 0x00003F10 + .word 0x00003F10, 0x00004138 + .word 0x00004138, 0x00004360 + .word 0x00004360, 0x00004588 + .word 0x00004588, 0x000047B0 + .word 0x000047B0, 0x000049D8 + .word 0x000049D8, 0x00004C00 + .word 0x00004C00, 0x00004E28 + .word 0x00004E28, 0x00005050 + .word 0x00005050, 0x00005278 + .word 0x00005278, 0x000054A0 + .word 0x000054A0, 0x000056C8 + .word 0x000056C8, 0x000058F0 + .word 0x000058F0, 0x00005B18 + .word 0x00005B18, 0x00005D40 + .word 0x00005D40, 0x00005F68 + .word 0x00005F68, 0x00006190 + .word 0x00006190, 0x000063B8 + .word 0x000063B8, 0x000065E0 + .word 0x000065E0, 0x00006808 + .word 0x00006808, 0x00006A30 + .word 0x00006A30, 0x00006AFA + .word 0x00006AFC, 0x00006BC6 + .word 0x00006BC8, 0x000084F8 + .word 0x000084F8, 0x00008720 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00008728 ; chunk size + .incbin "baserom.nds", 0x0, 0x160 + .incbin "baserom.nds", 0x160, 0x160 + .incbin "baserom.nds", 0x2C0, 0x280 + .incbin "baserom.nds", 0x540, 0x280 + .incbin "baserom.nds", 0x7C0, 0x280 + .incbin "baserom.nds", 0xA40, 0x280 + .incbin "baserom.nds", 0xCC0, 0x280 + .incbin "baserom.nds", 0xF40, 0x280 + .incbin "baserom.nds", 0x11C0, 0x280 + .incbin "baserom.nds", 0x1440, 0x280 + .incbin "baserom.nds", 0x16C0, 0x280 + .incbin "baserom.nds", 0x1940, 0x280 + .incbin "baserom.nds", 0x1BC0, 0x280 + .incbin "baserom.nds", 0x1E40, 0x280 + .incbin "baserom.nds", 0x20C0, 0x280 + .incbin "baserom.nds", 0x2340, 0x280 + .incbin "baserom.nds", 0x25C0, 0x280 + .incbin "baserom.nds", 0x2840, 0x280 + .incbin "baserom.nds", 0x2AC0, 0x280 + .incbin "baserom.nds", 0x2D40, 0x280 + .incbin "baserom.nds", 0x2FC0, 0x280 + .incbin "baserom.nds", 0x3240, 0x280 + .incbin "baserom.nds", 0x34C0, 0x1C0 + .incbin "baserom.nds", 0x3680, 0x440 + .incbin "baserom.nds", 0x3AC0, 0x228 + .incbin "baserom.nds", 0x3CE8, 0x228 + .incbin "baserom.nds", 0x3F10, 0x228 + .incbin "baserom.nds", 0x4138, 0x228 + .incbin "baserom.nds", 0x4360, 0x228 + .incbin "baserom.nds", 0x4588, 0x228 + .incbin "baserom.nds", 0x47B0, 0x228 + .incbin "baserom.nds", 0x49D8, 0x228 + .incbin "baserom.nds", 0x4C00, 0x228 + .incbin "baserom.nds", 0x4E28, 0x228 + .incbin "baserom.nds", 0x5050, 0x228 + .incbin "baserom.nds", 0x5278, 0x228 + .incbin "baserom.nds", 0x54A0, 0x228 + .incbin "baserom.nds", 0x56C8, 0x228 + .incbin "baserom.nds", 0x58F0, 0x228 + .incbin "baserom.nds", 0x5B18, 0x228 + .incbin "baserom.nds", 0x5D40, 0x228 + .incbin "baserom.nds", 0x5F68, 0x228 + .incbin "baserom.nds", 0x6190, 0x228 + .incbin "baserom.nds", 0x63B8, 0x228 + .incbin "baserom.nds", 0x65E0, 0x228 + .incbin "baserom.nds", 0x6808, 0x228 + .incbin "baserom.nds", 0x6A30, 0xCA + .incbin "baserom.nds", 0x6AFC, 0xCA + .incbin "baserom.nds", 0x6BC8, 0x1930 + .incbin "baserom.nds", 0x84F8, 0x228 + .balign 4, 255 diff --git a/narc/graphic/worldtrade.narc.s b/narc/graphic/worldtrade.narc.s new file mode 100644 index 00000000..714fe4b2 --- /dev/null +++ b/narc/graphic/worldtrade.narc.s @@ -0,0 +1,102 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0000B6D8 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000013C ; chunk size + .short 38 ; number of files + .balign 4 + .word 0x00000000, 0x00000228 + .word 0x00000228, 0x00000450 + .word 0x00000450, 0x00000678 + .word 0x00000678, 0x000008A0 + .word 0x000008A0, 0x00000AC8 + .word 0x00000AC8, 0x00000CF0 + .word 0x00000CF0, 0x00000F18 + .word 0x00000F18, 0x00001140 + .word 0x00001140, 0x00001368 + .word 0x00001368, 0x00001590 + .word 0x00001590, 0x00001995 + .word 0x00001998, 0x00001BA1 + .word 0x00001BA4, 0x00001DB8 + .word 0x00001DB8, 0x00001FA0 + .word 0x00001FA0, 0x000021BC + .word 0x000021BC, 0x00002F05 + .word 0x00002F08, 0x000076D1 + .word 0x000076D4, 0x00007907 + .word 0x00007908, 0x000088EF + .word 0x000088F0, 0x00008BDD + .word 0x00008BE0, 0x00008F25 + .word 0x00008F28, 0x000091C0 + .word 0x000091C0, 0x000092CD + .word 0x000092D0, 0x00009415 + .word 0x00009418, 0x00009545 + .word 0x00009548, 0x00009698 + .word 0x00009698, 0x000097DE + .word 0x000097E0, 0x0000993D + .word 0x00009940, 0x00009A9C + .word 0x00009A9C, 0x00009B82 + .word 0x00009B84, 0x00009C82 + .word 0x00009C84, 0x00009F32 + .word 0x00009F34, 0x0000ACCC + .word 0x0000ACCC, 0x0000B011 + .word 0x0000B014, 0x0000B40E + .word 0x0000B410, 0x0000B472 + .word 0x0000B474, 0x0000B4F4 + .word 0x0000B4F4, 0x0000B571 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0000B57C ; chunk size + .incbin "baserom.nds", 0x0, 0x228 + .incbin "baserom.nds", 0x228, 0x228 + .incbin "baserom.nds", 0x450, 0x228 + .incbin "baserom.nds", 0x678, 0x228 + .incbin "baserom.nds", 0x8A0, 0x228 + .incbin "baserom.nds", 0xAC8, 0x228 + .incbin "baserom.nds", 0xCF0, 0x228 + .incbin "baserom.nds", 0xF18, 0x228 + .incbin "baserom.nds", 0x1140, 0x228 + .incbin "baserom.nds", 0x1368, 0x228 + .incbin "baserom.nds", 0x1590, 0x405 + .incbin "baserom.nds", 0x1998, 0x209 + .incbin "baserom.nds", 0x1BA4, 0x214 + .incbin "baserom.nds", 0x1DB8, 0x1E8 + .incbin "baserom.nds", 0x1FA0, 0x21C + .incbin "baserom.nds", 0x21BC, 0xD49 + .incbin "baserom.nds", 0x2F08, 0x47C9 + .incbin "baserom.nds", 0x76D4, 0x233 + .incbin "baserom.nds", 0x7908, 0xFE7 + .incbin "baserom.nds", 0x88F0, 0x2ED + .incbin "baserom.nds", 0x8BE0, 0x345 + .incbin "baserom.nds", 0x8F28, 0x298 + .incbin "baserom.nds", 0x91C0, 0x10D + .incbin "baserom.nds", 0x92D0, 0x145 + .incbin "baserom.nds", 0x9418, 0x12D + .incbin "baserom.nds", 0x9548, 0x150 + .incbin "baserom.nds", 0x9698, 0x146 + .incbin "baserom.nds", 0x97E0, 0x15D + .incbin "baserom.nds", 0x9940, 0x15C + .incbin "baserom.nds", 0x9A9C, 0xE6 + .incbin "baserom.nds", 0x9B84, 0xFE + .incbin "baserom.nds", 0x9C84, 0x2AE + .incbin "baserom.nds", 0x9F34, 0xD98 + .incbin "baserom.nds", 0xACCC, 0x345 + .incbin "baserom.nds", 0xB014, 0x3FA + .incbin "baserom.nds", 0xB410, 0x62 + .incbin "baserom.nds", 0xB474, 0x80 + .incbin "baserom.nds", 0xB4F4, 0x7D + .balign 4, 255 diff --git a/narc/icongra/poke_icon.narc.s b/narc/icongra/poke_icon.narc.s new file mode 100644 index 00000000..e82fe52c --- /dev/null +++ b/narc/icongra/poke_icon.narc.s @@ -0,0 +1,1106 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0008D0F0 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000010EC ; chunk size + .short 540 ; number of files + .balign 4 + .word 0x00000000, 0x00000228 + .word 0x00000228, 0x000002C2 + .word 0x000002C4, 0x00000352 + .word 0x00000354, 0x000004D2 + .word 0x000004D4, 0x0000059E + .word 0x000005A0, 0x0000071E + .word 0x00000720, 0x000007EA + .word 0x000007EC, 0x00000C1C + .word 0x00000C1C, 0x0000104C + .word 0x0000104C, 0x0000147C + .word 0x0000147C, 0x000018AC + .word 0x000018AC, 0x00001CDC + .word 0x00001CDC, 0x0000210C + .word 0x0000210C, 0x0000253C + .word 0x0000253C, 0x0000296C + .word 0x0000296C, 0x00002D9C + .word 0x00002D9C, 0x000031CC + .word 0x000031CC, 0x000035FC + .word 0x000035FC, 0x00003A2C + .word 0x00003A2C, 0x00003E5C + .word 0x00003E5C, 0x0000428C + .word 0x0000428C, 0x000046BC + .word 0x000046BC, 0x00004AEC + .word 0x00004AEC, 0x00004F1C + .word 0x00004F1C, 0x0000534C + .word 0x0000534C, 0x0000577C + .word 0x0000577C, 0x00005BAC + .word 0x00005BAC, 0x00005FDC + .word 0x00005FDC, 0x0000640C + .word 0x0000640C, 0x0000683C + .word 0x0000683C, 0x00006C6C + .word 0x00006C6C, 0x0000709C + .word 0x0000709C, 0x000074CC + .word 0x000074CC, 0x000078FC + .word 0x000078FC, 0x00007D2C + .word 0x00007D2C, 0x0000815C + .word 0x0000815C, 0x0000858C + .word 0x0000858C, 0x000089BC + .word 0x000089BC, 0x00008DEC + .word 0x00008DEC, 0x0000921C + .word 0x0000921C, 0x0000964C + .word 0x0000964C, 0x00009A7C + .word 0x00009A7C, 0x00009EAC + .word 0x00009EAC, 0x0000A2DC + .word 0x0000A2DC, 0x0000A70C + .word 0x0000A70C, 0x0000AB3C + .word 0x0000AB3C, 0x0000AF6C + .word 0x0000AF6C, 0x0000B39C + .word 0x0000B39C, 0x0000B7CC + .word 0x0000B7CC, 0x0000BBFC + .word 0x0000BBFC, 0x0000C02C + .word 0x0000C02C, 0x0000C45C + .word 0x0000C45C, 0x0000C88C + .word 0x0000C88C, 0x0000CCBC + .word 0x0000CCBC, 0x0000D0EC + .word 0x0000D0EC, 0x0000D51C + .word 0x0000D51C, 0x0000D94C + .word 0x0000D94C, 0x0000DD7C + .word 0x0000DD7C, 0x0000E1AC + .word 0x0000E1AC, 0x0000E5DC + .word 0x0000E5DC, 0x0000EA0C + .word 0x0000EA0C, 0x0000EE3C + .word 0x0000EE3C, 0x0000F26C + .word 0x0000F26C, 0x0000F69C + .word 0x0000F69C, 0x0000FACC + .word 0x0000FACC, 0x0000FEFC + .word 0x0000FEFC, 0x0001032C + .word 0x0001032C, 0x0001075C + .word 0x0001075C, 0x00010B8C + .word 0x00010B8C, 0x00010FBC + .word 0x00010FBC, 0x000113EC + .word 0x000113EC, 0x0001181C + .word 0x0001181C, 0x00011C4C + .word 0x00011C4C, 0x0001207C + .word 0x0001207C, 0x000124AC + .word 0x000124AC, 0x000128DC + .word 0x000128DC, 0x00012D0C + .word 0x00012D0C, 0x0001313C + .word 0x0001313C, 0x0001356C + .word 0x0001356C, 0x0001399C + .word 0x0001399C, 0x00013DCC + .word 0x00013DCC, 0x000141FC + .word 0x000141FC, 0x0001462C + .word 0x0001462C, 0x00014A5C + .word 0x00014A5C, 0x00014E8C + .word 0x00014E8C, 0x000152BC + .word 0x000152BC, 0x000156EC + .word 0x000156EC, 0x00015B1C + .word 0x00015B1C, 0x00015F4C + .word 0x00015F4C, 0x0001637C + .word 0x0001637C, 0x000167AC + .word 0x000167AC, 0x00016BDC + .word 0x00016BDC, 0x0001700C + .word 0x0001700C, 0x0001743C + .word 0x0001743C, 0x0001786C + .word 0x0001786C, 0x00017C9C + .word 0x00017C9C, 0x000180CC + .word 0x000180CC, 0x000184FC + .word 0x000184FC, 0x0001892C + .word 0x0001892C, 0x00018D5C + .word 0x00018D5C, 0x0001918C + .word 0x0001918C, 0x000195BC + .word 0x000195BC, 0x000199EC + .word 0x000199EC, 0x00019E1C + .word 0x00019E1C, 0x0001A24C + .word 0x0001A24C, 0x0001A67C + .word 0x0001A67C, 0x0001AAAC + .word 0x0001AAAC, 0x0001AEDC + .word 0x0001AEDC, 0x0001B30C + .word 0x0001B30C, 0x0001B73C + .word 0x0001B73C, 0x0001BB6C + .word 0x0001BB6C, 0x0001BF9C + .word 0x0001BF9C, 0x0001C3CC + .word 0x0001C3CC, 0x0001C7FC + .word 0x0001C7FC, 0x0001CC2C + .word 0x0001CC2C, 0x0001D05C + .word 0x0001D05C, 0x0001D48C + .word 0x0001D48C, 0x0001D8BC + .word 0x0001D8BC, 0x0001DCEC + .word 0x0001DCEC, 0x0001E11C + .word 0x0001E11C, 0x0001E54C + .word 0x0001E54C, 0x0001E97C + .word 0x0001E97C, 0x0001EDAC + .word 0x0001EDAC, 0x0001F1DC + .word 0x0001F1DC, 0x0001F60C + .word 0x0001F60C, 0x0001FA3C + .word 0x0001FA3C, 0x0001FE6C + .word 0x0001FE6C, 0x0002029C + .word 0x0002029C, 0x000206CC + .word 0x000206CC, 0x00020AFC + .word 0x00020AFC, 0x00020F2C + .word 0x00020F2C, 0x0002135C + .word 0x0002135C, 0x0002178C + .word 0x0002178C, 0x00021BBC + .word 0x00021BBC, 0x00021FEC + .word 0x00021FEC, 0x0002241C + .word 0x0002241C, 0x0002284C + .word 0x0002284C, 0x00022C7C + .word 0x00022C7C, 0x000230AC + .word 0x000230AC, 0x000234DC + .word 0x000234DC, 0x0002390C + .word 0x0002390C, 0x00023D3C + .word 0x00023D3C, 0x0002416C + .word 0x0002416C, 0x0002459C + .word 0x0002459C, 0x000249CC + .word 0x000249CC, 0x00024DFC + .word 0x00024DFC, 0x0002522C + .word 0x0002522C, 0x0002565C + .word 0x0002565C, 0x00025A8C + .word 0x00025A8C, 0x00025EBC + .word 0x00025EBC, 0x000262EC + .word 0x000262EC, 0x0002671C + .word 0x0002671C, 0x00026B4C + .word 0x00026B4C, 0x00026F7C + .word 0x00026F7C, 0x000273AC + .word 0x000273AC, 0x000277DC + .word 0x000277DC, 0x00027C0C + .word 0x00027C0C, 0x0002803C + .word 0x0002803C, 0x0002846C + .word 0x0002846C, 0x0002889C + .word 0x0002889C, 0x00028CCC + .word 0x00028CCC, 0x000290FC + .word 0x000290FC, 0x0002952C + .word 0x0002952C, 0x0002995C + .word 0x0002995C, 0x00029D8C + .word 0x00029D8C, 0x0002A1BC + .word 0x0002A1BC, 0x0002A5EC + .word 0x0002A5EC, 0x0002AA1C + .word 0x0002AA1C, 0x0002AE4C + .word 0x0002AE4C, 0x0002B27C + .word 0x0002B27C, 0x0002B6AC + .word 0x0002B6AC, 0x0002BADC + .word 0x0002BADC, 0x0002BF0C + .word 0x0002BF0C, 0x0002C33C + .word 0x0002C33C, 0x0002C76C + .word 0x0002C76C, 0x0002CB9C + .word 0x0002CB9C, 0x0002CFCC + .word 0x0002CFCC, 0x0002D3FC + .word 0x0002D3FC, 0x0002D82C + .word 0x0002D82C, 0x0002DC5C + .word 0x0002DC5C, 0x0002E08C + .word 0x0002E08C, 0x0002E4BC + .word 0x0002E4BC, 0x0002E8EC + .word 0x0002E8EC, 0x0002ED1C + .word 0x0002ED1C, 0x0002F14C + .word 0x0002F14C, 0x0002F57C + .word 0x0002F57C, 0x0002F9AC + .word 0x0002F9AC, 0x0002FDDC + .word 0x0002FDDC, 0x0003020C + .word 0x0003020C, 0x0003063C + .word 0x0003063C, 0x00030A6C + .word 0x00030A6C, 0x00030E9C + .word 0x00030E9C, 0x000312CC + .word 0x000312CC, 0x000316FC + .word 0x000316FC, 0x00031B2C + .word 0x00031B2C, 0x00031F5C + .word 0x00031F5C, 0x0003238C + .word 0x0003238C, 0x000327BC + .word 0x000327BC, 0x00032BEC + .word 0x00032BEC, 0x0003301C + .word 0x0003301C, 0x0003344C + .word 0x0003344C, 0x0003387C + .word 0x0003387C, 0x00033CAC + .word 0x00033CAC, 0x000340DC + .word 0x000340DC, 0x0003450C + .word 0x0003450C, 0x0003493C + .word 0x0003493C, 0x00034D6C + .word 0x00034D6C, 0x0003519C + .word 0x0003519C, 0x000355CC + .word 0x000355CC, 0x000359FC + .word 0x000359FC, 0x00035E2C + .word 0x00035E2C, 0x0003625C + .word 0x0003625C, 0x0003668C + .word 0x0003668C, 0x00036ABC + .word 0x00036ABC, 0x00036EEC + .word 0x00036EEC, 0x0003731C + .word 0x0003731C, 0x0003774C + .word 0x0003774C, 0x00037B7C + .word 0x00037B7C, 0x00037FAC + .word 0x00037FAC, 0x000383DC + .word 0x000383DC, 0x0003880C + .word 0x0003880C, 0x00038C3C + .word 0x00038C3C, 0x0003906C + .word 0x0003906C, 0x0003949C + .word 0x0003949C, 0x000398CC + .word 0x000398CC, 0x00039CFC + .word 0x00039CFC, 0x0003A12C + .word 0x0003A12C, 0x0003A55C + .word 0x0003A55C, 0x0003A98C + .word 0x0003A98C, 0x0003ADBC + .word 0x0003ADBC, 0x0003B1EC + .word 0x0003B1EC, 0x0003B61C + .word 0x0003B61C, 0x0003BA4C + .word 0x0003BA4C, 0x0003BE7C + .word 0x0003BE7C, 0x0003C2AC + .word 0x0003C2AC, 0x0003C6DC + .word 0x0003C6DC, 0x0003CB0C + .word 0x0003CB0C, 0x0003CF3C + .word 0x0003CF3C, 0x0003D36C + .word 0x0003D36C, 0x0003D79C + .word 0x0003D79C, 0x0003DBCC + .word 0x0003DBCC, 0x0003DFFC + .word 0x0003DFFC, 0x0003E42C + .word 0x0003E42C, 0x0003E85C + .word 0x0003E85C, 0x0003EC8C + .word 0x0003EC8C, 0x0003F0BC + .word 0x0003F0BC, 0x0003F4EC + .word 0x0003F4EC, 0x0003F91C + .word 0x0003F91C, 0x0003FD4C + .word 0x0003FD4C, 0x0004017C + .word 0x0004017C, 0x000405AC + .word 0x000405AC, 0x000409DC + .word 0x000409DC, 0x00040E0C + .word 0x00040E0C, 0x0004123C + .word 0x0004123C, 0x0004166C + .word 0x0004166C, 0x00041A9C + .word 0x00041A9C, 0x00041ECC + .word 0x00041ECC, 0x000422FC + .word 0x000422FC, 0x0004272C + .word 0x0004272C, 0x00042B5C + .word 0x00042B5C, 0x00042F8C + .word 0x00042F8C, 0x000433BC + .word 0x000433BC, 0x000437EC + .word 0x000437EC, 0x00043C1C + .word 0x00043C1C, 0x0004404C + .word 0x0004404C, 0x0004447C + .word 0x0004447C, 0x000448AC + .word 0x000448AC, 0x00044CDC + .word 0x00044CDC, 0x0004510C + .word 0x0004510C, 0x0004553C + .word 0x0004553C, 0x0004596C + .word 0x0004596C, 0x00045D9C + .word 0x00045D9C, 0x000461CC + .word 0x000461CC, 0x000465FC + .word 0x000465FC, 0x00046A2C + .word 0x00046A2C, 0x00046E5C + .word 0x00046E5C, 0x0004728C + .word 0x0004728C, 0x000476BC + .word 0x000476BC, 0x00047AEC + .word 0x00047AEC, 0x00047F1C + .word 0x00047F1C, 0x0004834C + .word 0x0004834C, 0x0004877C + .word 0x0004877C, 0x00048BAC + .word 0x00048BAC, 0x00048FDC + .word 0x00048FDC, 0x0004940C + .word 0x0004940C, 0x0004983C + .word 0x0004983C, 0x00049C6C + .word 0x00049C6C, 0x0004A09C + .word 0x0004A09C, 0x0004A4CC + .word 0x0004A4CC, 0x0004A8FC + .word 0x0004A8FC, 0x0004AD2C + .word 0x0004AD2C, 0x0004B15C + .word 0x0004B15C, 0x0004B58C + .word 0x0004B58C, 0x0004B9BC + .word 0x0004B9BC, 0x0004BDEC + .word 0x0004BDEC, 0x0004C21C + .word 0x0004C21C, 0x0004C64C + .word 0x0004C64C, 0x0004CA7C + .word 0x0004CA7C, 0x0004CEAC + .word 0x0004CEAC, 0x0004D2DC + .word 0x0004D2DC, 0x0004D70C + .word 0x0004D70C, 0x0004DB3C + .word 0x0004DB3C, 0x0004DF6C + .word 0x0004DF6C, 0x0004E39C + .word 0x0004E39C, 0x0004E7CC + .word 0x0004E7CC, 0x0004EBFC + .word 0x0004EBFC, 0x0004F02C + .word 0x0004F02C, 0x0004F45C + .word 0x0004F45C, 0x0004F88C + .word 0x0004F88C, 0x0004FCBC + .word 0x0004FCBC, 0x000500EC + .word 0x000500EC, 0x0005051C + .word 0x0005051C, 0x0005094C + .word 0x0005094C, 0x00050D7C + .word 0x00050D7C, 0x000511AC + .word 0x000511AC, 0x000515DC + .word 0x000515DC, 0x00051A0C + .word 0x00051A0C, 0x00051E3C + .word 0x00051E3C, 0x0005226C + .word 0x0005226C, 0x0005269C + .word 0x0005269C, 0x00052ACC + .word 0x00052ACC, 0x00052EFC + .word 0x00052EFC, 0x0005332C + .word 0x0005332C, 0x0005375C + .word 0x0005375C, 0x00053B8C + .word 0x00053B8C, 0x00053FBC + .word 0x00053FBC, 0x000543EC + .word 0x000543EC, 0x0005481C + .word 0x0005481C, 0x00054C4C + .word 0x00054C4C, 0x0005507C + .word 0x0005507C, 0x000554AC + .word 0x000554AC, 0x000558DC + .word 0x000558DC, 0x00055D0C + .word 0x00055D0C, 0x0005613C + .word 0x0005613C, 0x0005656C + .word 0x0005656C, 0x0005699C + .word 0x0005699C, 0x00056DCC + .word 0x00056DCC, 0x000571FC + .word 0x000571FC, 0x0005762C + .word 0x0005762C, 0x00057A5C + .word 0x00057A5C, 0x00057E8C + .word 0x00057E8C, 0x000582BC + .word 0x000582BC, 0x000586EC + .word 0x000586EC, 0x00058B1C + .word 0x00058B1C, 0x00058F4C + .word 0x00058F4C, 0x0005937C + .word 0x0005937C, 0x000597AC + .word 0x000597AC, 0x00059BDC + .word 0x00059BDC, 0x0005A00C + .word 0x0005A00C, 0x0005A43C + .word 0x0005A43C, 0x0005A86C + .word 0x0005A86C, 0x0005AC9C + .word 0x0005AC9C, 0x0005B0CC + .word 0x0005B0CC, 0x0005B4FC + .word 0x0005B4FC, 0x0005B92C + .word 0x0005B92C, 0x0005BD5C + .word 0x0005BD5C, 0x0005C18C + .word 0x0005C18C, 0x0005C5BC + .word 0x0005C5BC, 0x0005C9EC + .word 0x0005C9EC, 0x0005CE1C + .word 0x0005CE1C, 0x0005D24C + .word 0x0005D24C, 0x0005D67C + .word 0x0005D67C, 0x0005DAAC + .word 0x0005DAAC, 0x0005DEDC + .word 0x0005DEDC, 0x0005E30C + .word 0x0005E30C, 0x0005E73C + .word 0x0005E73C, 0x0005EB6C + .word 0x0005EB6C, 0x0005EF9C + .word 0x0005EF9C, 0x0005F3CC + .word 0x0005F3CC, 0x0005F7FC + .word 0x0005F7FC, 0x0005FC2C + .word 0x0005FC2C, 0x0006005C + .word 0x0006005C, 0x0006048C + .word 0x0006048C, 0x000608BC + .word 0x000608BC, 0x00060CEC + .word 0x00060CEC, 0x0006111C + .word 0x0006111C, 0x0006154C + .word 0x0006154C, 0x0006197C + .word 0x0006197C, 0x00061DAC + .word 0x00061DAC, 0x000621DC + .word 0x000621DC, 0x0006260C + .word 0x0006260C, 0x00062A3C + .word 0x00062A3C, 0x00062E6C + .word 0x00062E6C, 0x0006329C + .word 0x0006329C, 0x000636CC + .word 0x000636CC, 0x00063AFC + .word 0x00063AFC, 0x00063F2C + .word 0x00063F2C, 0x0006435C + .word 0x0006435C, 0x0006478C + .word 0x0006478C, 0x00064BBC + .word 0x00064BBC, 0x00064FEC + .word 0x00064FEC, 0x0006541C + .word 0x0006541C, 0x0006584C + .word 0x0006584C, 0x00065C7C + .word 0x00065C7C, 0x000660AC + .word 0x000660AC, 0x000664DC + .word 0x000664DC, 0x0006690C + .word 0x0006690C, 0x00066D3C + .word 0x00066D3C, 0x0006716C + .word 0x0006716C, 0x0006759C + .word 0x0006759C, 0x000679CC + .word 0x000679CC, 0x00067DFC + .word 0x00067DFC, 0x0006822C + .word 0x0006822C, 0x0006865C + .word 0x0006865C, 0x00068A8C + .word 0x00068A8C, 0x00068EBC + .word 0x00068EBC, 0x000692EC + .word 0x000692EC, 0x0006971C + .word 0x0006971C, 0x00069B4C + .word 0x00069B4C, 0x00069F7C + .word 0x00069F7C, 0x0006A3AC + .word 0x0006A3AC, 0x0006A7DC + .word 0x0006A7DC, 0x0006AC0C + .word 0x0006AC0C, 0x0006B03C + .word 0x0006B03C, 0x0006B46C + .word 0x0006B46C, 0x0006B89C + .word 0x0006B89C, 0x0006BCCC + .word 0x0006BCCC, 0x0006C0FC + .word 0x0006C0FC, 0x0006C52C + .word 0x0006C52C, 0x0006C95C + .word 0x0006C95C, 0x0006CD8C + .word 0x0006CD8C, 0x0006D1BC + .word 0x0006D1BC, 0x0006D5EC + .word 0x0006D5EC, 0x0006DA1C + .word 0x0006DA1C, 0x0006DE4C + .word 0x0006DE4C, 0x0006E27C + .word 0x0006E27C, 0x0006E6AC + .word 0x0006E6AC, 0x0006EADC + .word 0x0006EADC, 0x0006EF0C + .word 0x0006EF0C, 0x0006F33C + .word 0x0006F33C, 0x0006F76C + .word 0x0006F76C, 0x0006FB9C + .word 0x0006FB9C, 0x0006FFCC + .word 0x0006FFCC, 0x000703FC + .word 0x000703FC, 0x0007082C + .word 0x0007082C, 0x00070C5C + .word 0x00070C5C, 0x0007108C + .word 0x0007108C, 0x000714BC + .word 0x000714BC, 0x000718EC + .word 0x000718EC, 0x00071D1C + .word 0x00071D1C, 0x0007214C + .word 0x0007214C, 0x0007257C + .word 0x0007257C, 0x000729AC + .word 0x000729AC, 0x00072DDC + .word 0x00072DDC, 0x0007320C + .word 0x0007320C, 0x0007363C + .word 0x0007363C, 0x00073A6C + .word 0x00073A6C, 0x00073E9C + .word 0x00073E9C, 0x000742CC + .word 0x000742CC, 0x000746FC + .word 0x000746FC, 0x00074B2C + .word 0x00074B2C, 0x00074F5C + .word 0x00074F5C, 0x0007538C + .word 0x0007538C, 0x000757BC + .word 0x000757BC, 0x00075BEC + .word 0x00075BEC, 0x0007601C + .word 0x0007601C, 0x0007644C + .word 0x0007644C, 0x0007687C + .word 0x0007687C, 0x00076CAC + .word 0x00076CAC, 0x000770DC + .word 0x000770DC, 0x0007750C + .word 0x0007750C, 0x0007793C + .word 0x0007793C, 0x00077D6C + .word 0x00077D6C, 0x0007819C + .word 0x0007819C, 0x000785CC + .word 0x000785CC, 0x000789FC + .word 0x000789FC, 0x00078E2C + .word 0x00078E2C, 0x0007925C + .word 0x0007925C, 0x0007968C + .word 0x0007968C, 0x00079ABC + .word 0x00079ABC, 0x00079EEC + .word 0x00079EEC, 0x0007A31C + .word 0x0007A31C, 0x0007A74C + .word 0x0007A74C, 0x0007AB7C + .word 0x0007AB7C, 0x0007AFAC + .word 0x0007AFAC, 0x0007B3DC + .word 0x0007B3DC, 0x0007B80C + .word 0x0007B80C, 0x0007BC3C + .word 0x0007BC3C, 0x0007C06C + .word 0x0007C06C, 0x0007C49C + .word 0x0007C49C, 0x0007C8CC + .word 0x0007C8CC, 0x0007CCFC + .word 0x0007CCFC, 0x0007D12C + .word 0x0007D12C, 0x0007D55C + .word 0x0007D55C, 0x0007D98C + .word 0x0007D98C, 0x0007DDBC + .word 0x0007DDBC, 0x0007E1EC + .word 0x0007E1EC, 0x0007E61C + .word 0x0007E61C, 0x0007EA4C + .word 0x0007EA4C, 0x0007EE7C + .word 0x0007EE7C, 0x0007F2AC + .word 0x0007F2AC, 0x0007F6DC + .word 0x0007F6DC, 0x0007FB0C + .word 0x0007FB0C, 0x0007FF3C + .word 0x0007FF3C, 0x0008036C + .word 0x0008036C, 0x0008079C + .word 0x0008079C, 0x00080BCC + .word 0x00080BCC, 0x00080FFC + .word 0x00080FFC, 0x0008142C + .word 0x0008142C, 0x0008185C + .word 0x0008185C, 0x00081C8C + .word 0x00081C8C, 0x000820BC + .word 0x000820BC, 0x000824EC + .word 0x000824EC, 0x0008291C + .word 0x0008291C, 0x00082D4C + .word 0x00082D4C, 0x0008317C + .word 0x0008317C, 0x000835AC + .word 0x000835AC, 0x000839DC + .word 0x000839DC, 0x00083E0C + .word 0x00083E0C, 0x0008423C + .word 0x0008423C, 0x0008466C + .word 0x0008466C, 0x00084A9C + .word 0x00084A9C, 0x00084ECC + .word 0x00084ECC, 0x000852FC + .word 0x000852FC, 0x0008572C + .word 0x0008572C, 0x00085B5C + .word 0x00085B5C, 0x00085F8C + .word 0x00085F8C, 0x000863BC + .word 0x000863BC, 0x000867EC + .word 0x000867EC, 0x00086C1C + .word 0x00086C1C, 0x0008704C + .word 0x0008704C, 0x0008747C + .word 0x0008747C, 0x000878AC + .word 0x000878AC, 0x00087CDC + .word 0x00087CDC, 0x0008810C + .word 0x0008810C, 0x0008853C + .word 0x0008853C, 0x0008896C + .word 0x0008896C, 0x00088D9C + .word 0x00088D9C, 0x000891CC + .word 0x000891CC, 0x000895FC + .word 0x000895FC, 0x00089A2C + .word 0x00089A2C, 0x00089E5C + .word 0x00089E5C, 0x0008A28C + .word 0x0008A28C, 0x0008A6BC + .word 0x0008A6BC, 0x0008AAEC + .word 0x0008AAEC, 0x0008AF1C + .word 0x0008AF1C, 0x0008B34C + .word 0x0008B34C, 0x0008B77C + .word 0x0008B77C, 0x0008BBAC + .word 0x0008BBAC, 0x0008BFDC + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0008BFE4 ; chunk size + .incbin "baserom.nds", 0x0, 0x228 + .incbin "baserom.nds", 0x228, 0x9A + .incbin "baserom.nds", 0x2C4, 0x8E + .incbin "baserom.nds", 0x354, 0x17E + .incbin "baserom.nds", 0x4D4, 0xCA + .incbin "baserom.nds", 0x5A0, 0x17E + .incbin "baserom.nds", 0x720, 0xCA + .incbin "baserom.nds", 0x7EC, 0x430 + .incbin "baserom.nds", 0xC1C, 0x430 + .incbin "baserom.nds", 0x104C, 0x430 + .incbin "baserom.nds", 0x147C, 0x430 + .incbin "baserom.nds", 0x18AC, 0x430 + .incbin "baserom.nds", 0x1CDC, 0x430 + .incbin "baserom.nds", 0x210C, 0x430 + .incbin "baserom.nds", 0x253C, 0x430 + .incbin "baserom.nds", 0x296C, 0x430 + .incbin "baserom.nds", 0x2D9C, 0x430 + .incbin "baserom.nds", 0x31CC, 0x430 + .incbin "baserom.nds", 0x35FC, 0x430 + .incbin "baserom.nds", 0x3A2C, 0x430 + .incbin "baserom.nds", 0x3E5C, 0x430 + .incbin "baserom.nds", 0x428C, 0x430 + .incbin "baserom.nds", 0x46BC, 0x430 + .incbin "baserom.nds", 0x4AEC, 0x430 + .incbin "baserom.nds", 0x4F1C, 0x430 + .incbin "baserom.nds", 0x534C, 0x430 + .incbin "baserom.nds", 0x577C, 0x430 + .incbin "baserom.nds", 0x5BAC, 0x430 + .incbin "baserom.nds", 0x5FDC, 0x430 + .incbin "baserom.nds", 0x640C, 0x430 + .incbin "baserom.nds", 0x683C, 0x430 + .incbin "baserom.nds", 0x6C6C, 0x430 + .incbin "baserom.nds", 0x709C, 0x430 + .incbin "baserom.nds", 0x74CC, 0x430 + .incbin "baserom.nds", 0x78FC, 0x430 + .incbin "baserom.nds", 0x7D2C, 0x430 + .incbin "baserom.nds", 0x815C, 0x430 + .incbin "baserom.nds", 0x858C, 0x430 + .incbin "baserom.nds", 0x89BC, 0x430 + .incbin "baserom.nds", 0x8DEC, 0x430 + .incbin "baserom.nds", 0x921C, 0x430 + .incbin "baserom.nds", 0x964C, 0x430 + .incbin "baserom.nds", 0x9A7C, 0x430 + .incbin "baserom.nds", 0x9EAC, 0x430 + .incbin "baserom.nds", 0xA2DC, 0x430 + .incbin "baserom.nds", 0xA70C, 0x430 + .incbin "baserom.nds", 0xAB3C, 0x430 + .incbin "baserom.nds", 0xAF6C, 0x430 + .incbin "baserom.nds", 0xB39C, 0x430 + .incbin "baserom.nds", 0xB7CC, 0x430 + .incbin "baserom.nds", 0xBBFC, 0x430 + .incbin "baserom.nds", 0xC02C, 0x430 + .incbin "baserom.nds", 0xC45C, 0x430 + .incbin "baserom.nds", 0xC88C, 0x430 + .incbin "baserom.nds", 0xCCBC, 0x430 + .incbin "baserom.nds", 0xD0EC, 0x430 + .incbin "baserom.nds", 0xD51C, 0x430 + .incbin "baserom.nds", 0xD94C, 0x430 + .incbin "baserom.nds", 0xDD7C, 0x430 + .incbin "baserom.nds", 0xE1AC, 0x430 + .incbin "baserom.nds", 0xE5DC, 0x430 + .incbin "baserom.nds", 0xEA0C, 0x430 + .incbin "baserom.nds", 0xEE3C, 0x430 + .incbin "baserom.nds", 0xF26C, 0x430 + .incbin "baserom.nds", 0xF69C, 0x430 + .incbin "baserom.nds", 0xFACC, 0x430 + .incbin "baserom.nds", 0xFEFC, 0x430 + .incbin "baserom.nds", 0x1032C, 0x430 + .incbin "baserom.nds", 0x1075C, 0x430 + .incbin "baserom.nds", 0x10B8C, 0x430 + .incbin "baserom.nds", 0x10FBC, 0x430 + .incbin "baserom.nds", 0x113EC, 0x430 + .incbin "baserom.nds", 0x1181C, 0x430 + .incbin "baserom.nds", 0x11C4C, 0x430 + .incbin "baserom.nds", 0x1207C, 0x430 + .incbin "baserom.nds", 0x124AC, 0x430 + .incbin "baserom.nds", 0x128DC, 0x430 + .incbin "baserom.nds", 0x12D0C, 0x430 + .incbin "baserom.nds", 0x1313C, 0x430 + .incbin "baserom.nds", 0x1356C, 0x430 + .incbin "baserom.nds", 0x1399C, 0x430 + .incbin "baserom.nds", 0x13DCC, 0x430 + .incbin "baserom.nds", 0x141FC, 0x430 + .incbin "baserom.nds", 0x1462C, 0x430 + .incbin "baserom.nds", 0x14A5C, 0x430 + .incbin "baserom.nds", 0x14E8C, 0x430 + .incbin "baserom.nds", 0x152BC, 0x430 + .incbin "baserom.nds", 0x156EC, 0x430 + .incbin "baserom.nds", 0x15B1C, 0x430 + .incbin "baserom.nds", 0x15F4C, 0x430 + .incbin "baserom.nds", 0x1637C, 0x430 + .incbin "baserom.nds", 0x167AC, 0x430 + .incbin "baserom.nds", 0x16BDC, 0x430 + .incbin "baserom.nds", 0x1700C, 0x430 + .incbin "baserom.nds", 0x1743C, 0x430 + .incbin "baserom.nds", 0x1786C, 0x430 + .incbin "baserom.nds", 0x17C9C, 0x430 + .incbin "baserom.nds", 0x180CC, 0x430 + .incbin "baserom.nds", 0x184FC, 0x430 + .incbin "baserom.nds", 0x1892C, 0x430 + .incbin "baserom.nds", 0x18D5C, 0x430 + .incbin "baserom.nds", 0x1918C, 0x430 + .incbin "baserom.nds", 0x195BC, 0x430 + .incbin "baserom.nds", 0x199EC, 0x430 + .incbin "baserom.nds", 0x19E1C, 0x430 + .incbin "baserom.nds", 0x1A24C, 0x430 + .incbin "baserom.nds", 0x1A67C, 0x430 + .incbin "baserom.nds", 0x1AAAC, 0x430 + .incbin "baserom.nds", 0x1AEDC, 0x430 + .incbin "baserom.nds", 0x1B30C, 0x430 + .incbin "baserom.nds", 0x1B73C, 0x430 + .incbin "baserom.nds", 0x1BB6C, 0x430 + .incbin "baserom.nds", 0x1BF9C, 0x430 + .incbin "baserom.nds", 0x1C3CC, 0x430 + .incbin "baserom.nds", 0x1C7FC, 0x430 + .incbin "baserom.nds", 0x1CC2C, 0x430 + .incbin "baserom.nds", 0x1D05C, 0x430 + .incbin "baserom.nds", 0x1D48C, 0x430 + .incbin "baserom.nds", 0x1D8BC, 0x430 + .incbin "baserom.nds", 0x1DCEC, 0x430 + .incbin "baserom.nds", 0x1E11C, 0x430 + .incbin "baserom.nds", 0x1E54C, 0x430 + .incbin "baserom.nds", 0x1E97C, 0x430 + .incbin "baserom.nds", 0x1EDAC, 0x430 + .incbin "baserom.nds", 0x1F1DC, 0x430 + .incbin "baserom.nds", 0x1F60C, 0x430 + .incbin "baserom.nds", 0x1FA3C, 0x430 + .incbin "baserom.nds", 0x1FE6C, 0x430 + .incbin "baserom.nds", 0x2029C, 0x430 + .incbin "baserom.nds", 0x206CC, 0x430 + .incbin "baserom.nds", 0x20AFC, 0x430 + .incbin "baserom.nds", 0x20F2C, 0x430 + .incbin "baserom.nds", 0x2135C, 0x430 + .incbin "baserom.nds", 0x2178C, 0x430 + .incbin "baserom.nds", 0x21BBC, 0x430 + .incbin "baserom.nds", 0x21FEC, 0x430 + .incbin "baserom.nds", 0x2241C, 0x430 + .incbin "baserom.nds", 0x2284C, 0x430 + .incbin "baserom.nds", 0x22C7C, 0x430 + .incbin "baserom.nds", 0x230AC, 0x430 + .incbin "baserom.nds", 0x234DC, 0x430 + .incbin "baserom.nds", 0x2390C, 0x430 + .incbin "baserom.nds", 0x23D3C, 0x430 + .incbin "baserom.nds", 0x2416C, 0x430 + .incbin "baserom.nds", 0x2459C, 0x430 + .incbin "baserom.nds", 0x249CC, 0x430 + .incbin "baserom.nds", 0x24DFC, 0x430 + .incbin "baserom.nds", 0x2522C, 0x430 + .incbin "baserom.nds", 0x2565C, 0x430 + .incbin "baserom.nds", 0x25A8C, 0x430 + .incbin "baserom.nds", 0x25EBC, 0x430 + .incbin "baserom.nds", 0x262EC, 0x430 + .incbin "baserom.nds", 0x2671C, 0x430 + .incbin "baserom.nds", 0x26B4C, 0x430 + .incbin "baserom.nds", 0x26F7C, 0x430 + .incbin "baserom.nds", 0x273AC, 0x430 + .incbin "baserom.nds", 0x277DC, 0x430 + .incbin "baserom.nds", 0x27C0C, 0x430 + .incbin "baserom.nds", 0x2803C, 0x430 + .incbin "baserom.nds", 0x2846C, 0x430 + .incbin "baserom.nds", 0x2889C, 0x430 + .incbin "baserom.nds", 0x28CCC, 0x430 + .incbin "baserom.nds", 0x290FC, 0x430 + .incbin "baserom.nds", 0x2952C, 0x430 + .incbin "baserom.nds", 0x2995C, 0x430 + .incbin "baserom.nds", 0x29D8C, 0x430 + .incbin "baserom.nds", 0x2A1BC, 0x430 + .incbin "baserom.nds", 0x2A5EC, 0x430 + .incbin "baserom.nds", 0x2AA1C, 0x430 + .incbin "baserom.nds", 0x2AE4C, 0x430 + .incbin "baserom.nds", 0x2B27C, 0x430 + .incbin "baserom.nds", 0x2B6AC, 0x430 + .incbin "baserom.nds", 0x2BADC, 0x430 + .incbin "baserom.nds", 0x2BF0C, 0x430 + .incbin "baserom.nds", 0x2C33C, 0x430 + .incbin "baserom.nds", 0x2C76C, 0x430 + .incbin "baserom.nds", 0x2CB9C, 0x430 + .incbin "baserom.nds", 0x2CFCC, 0x430 + .incbin "baserom.nds", 0x2D3FC, 0x430 + .incbin "baserom.nds", 0x2D82C, 0x430 + .incbin "baserom.nds", 0x2DC5C, 0x430 + .incbin "baserom.nds", 0x2E08C, 0x430 + .incbin "baserom.nds", 0x2E4BC, 0x430 + .incbin "baserom.nds", 0x2E8EC, 0x430 + .incbin "baserom.nds", 0x2ED1C, 0x430 + .incbin "baserom.nds", 0x2F14C, 0x430 + .incbin "baserom.nds", 0x2F57C, 0x430 + .incbin "baserom.nds", 0x2F9AC, 0x430 + .incbin "baserom.nds", 0x2FDDC, 0x430 + .incbin "baserom.nds", 0x3020C, 0x430 + .incbin "baserom.nds", 0x3063C, 0x430 + .incbin "baserom.nds", 0x30A6C, 0x430 + .incbin "baserom.nds", 0x30E9C, 0x430 + .incbin "baserom.nds", 0x312CC, 0x430 + .incbin "baserom.nds", 0x316FC, 0x430 + .incbin "baserom.nds", 0x31B2C, 0x430 + .incbin "baserom.nds", 0x31F5C, 0x430 + .incbin "baserom.nds", 0x3238C, 0x430 + .incbin "baserom.nds", 0x327BC, 0x430 + .incbin "baserom.nds", 0x32BEC, 0x430 + .incbin "baserom.nds", 0x3301C, 0x430 + .incbin "baserom.nds", 0x3344C, 0x430 + .incbin "baserom.nds", 0x3387C, 0x430 + .incbin "baserom.nds", 0x33CAC, 0x430 + .incbin "baserom.nds", 0x340DC, 0x430 + .incbin "baserom.nds", 0x3450C, 0x430 + .incbin "baserom.nds", 0x3493C, 0x430 + .incbin "baserom.nds", 0x34D6C, 0x430 + .incbin "baserom.nds", 0x3519C, 0x430 + .incbin "baserom.nds", 0x355CC, 0x430 + .incbin "baserom.nds", 0x359FC, 0x430 + .incbin "baserom.nds", 0x35E2C, 0x430 + .incbin "baserom.nds", 0x3625C, 0x430 + .incbin "baserom.nds", 0x3668C, 0x430 + .incbin "baserom.nds", 0x36ABC, 0x430 + .incbin "baserom.nds", 0x36EEC, 0x430 + .incbin "baserom.nds", 0x3731C, 0x430 + .incbin "baserom.nds", 0x3774C, 0x430 + .incbin "baserom.nds", 0x37B7C, 0x430 + .incbin "baserom.nds", 0x37FAC, 0x430 + .incbin "baserom.nds", 0x383DC, 0x430 + .incbin "baserom.nds", 0x3880C, 0x430 + .incbin "baserom.nds", 0x38C3C, 0x430 + .incbin "baserom.nds", 0x3906C, 0x430 + .incbin "baserom.nds", 0x3949C, 0x430 + .incbin "baserom.nds", 0x398CC, 0x430 + .incbin "baserom.nds", 0x39CFC, 0x430 + .incbin "baserom.nds", 0x3A12C, 0x430 + .incbin "baserom.nds", 0x3A55C, 0x430 + .incbin "baserom.nds", 0x3A98C, 0x430 + .incbin "baserom.nds", 0x3ADBC, 0x430 + .incbin "baserom.nds", 0x3B1EC, 0x430 + .incbin "baserom.nds", 0x3B61C, 0x430 + .incbin "baserom.nds", 0x3BA4C, 0x430 + .incbin "baserom.nds", 0x3BE7C, 0x430 + .incbin "baserom.nds", 0x3C2AC, 0x430 + .incbin "baserom.nds", 0x3C6DC, 0x430 + .incbin "baserom.nds", 0x3CB0C, 0x430 + .incbin "baserom.nds", 0x3CF3C, 0x430 + .incbin "baserom.nds", 0x3D36C, 0x430 + .incbin "baserom.nds", 0x3D79C, 0x430 + .incbin "baserom.nds", 0x3DBCC, 0x430 + .incbin "baserom.nds", 0x3DFFC, 0x430 + .incbin "baserom.nds", 0x3E42C, 0x430 + .incbin "baserom.nds", 0x3E85C, 0x430 + .incbin "baserom.nds", 0x3EC8C, 0x430 + .incbin "baserom.nds", 0x3F0BC, 0x430 + .incbin "baserom.nds", 0x3F4EC, 0x430 + .incbin "baserom.nds", 0x3F91C, 0x430 + .incbin "baserom.nds", 0x3FD4C, 0x430 + .incbin "baserom.nds", 0x4017C, 0x430 + .incbin "baserom.nds", 0x405AC, 0x430 + .incbin "baserom.nds", 0x409DC, 0x430 + .incbin "baserom.nds", 0x40E0C, 0x430 + .incbin "baserom.nds", 0x4123C, 0x430 + .incbin "baserom.nds", 0x4166C, 0x430 + .incbin "baserom.nds", 0x41A9C, 0x430 + .incbin "baserom.nds", 0x41ECC, 0x430 + .incbin "baserom.nds", 0x422FC, 0x430 + .incbin "baserom.nds", 0x4272C, 0x430 + .incbin "baserom.nds", 0x42B5C, 0x430 + .incbin "baserom.nds", 0x42F8C, 0x430 + .incbin "baserom.nds", 0x433BC, 0x430 + .incbin "baserom.nds", 0x437EC, 0x430 + .incbin "baserom.nds", 0x43C1C, 0x430 + .incbin "baserom.nds", 0x4404C, 0x430 + .incbin "baserom.nds", 0x4447C, 0x430 + .incbin "baserom.nds", 0x448AC, 0x430 + .incbin "baserom.nds", 0x44CDC, 0x430 + .incbin "baserom.nds", 0x4510C, 0x430 + .incbin "baserom.nds", 0x4553C, 0x430 + .incbin "baserom.nds", 0x4596C, 0x430 + .incbin "baserom.nds", 0x45D9C, 0x430 + .incbin "baserom.nds", 0x461CC, 0x430 + .incbin "baserom.nds", 0x465FC, 0x430 + .incbin "baserom.nds", 0x46A2C, 0x430 + .incbin "baserom.nds", 0x46E5C, 0x430 + .incbin "baserom.nds", 0x4728C, 0x430 + .incbin "baserom.nds", 0x476BC, 0x430 + .incbin "baserom.nds", 0x47AEC, 0x430 + .incbin "baserom.nds", 0x47F1C, 0x430 + .incbin "baserom.nds", 0x4834C, 0x430 + .incbin "baserom.nds", 0x4877C, 0x430 + .incbin "baserom.nds", 0x48BAC, 0x430 + .incbin "baserom.nds", 0x48FDC, 0x430 + .incbin "baserom.nds", 0x4940C, 0x430 + .incbin "baserom.nds", 0x4983C, 0x430 + .incbin "baserom.nds", 0x49C6C, 0x430 + .incbin "baserom.nds", 0x4A09C, 0x430 + .incbin "baserom.nds", 0x4A4CC, 0x430 + .incbin "baserom.nds", 0x4A8FC, 0x430 + .incbin "baserom.nds", 0x4AD2C, 0x430 + .incbin "baserom.nds", 0x4B15C, 0x430 + .incbin "baserom.nds", 0x4B58C, 0x430 + .incbin "baserom.nds", 0x4B9BC, 0x430 + .incbin "baserom.nds", 0x4BDEC, 0x430 + .incbin "baserom.nds", 0x4C21C, 0x430 + .incbin "baserom.nds", 0x4C64C, 0x430 + .incbin "baserom.nds", 0x4CA7C, 0x430 + .incbin "baserom.nds", 0x4CEAC, 0x430 + .incbin "baserom.nds", 0x4D2DC, 0x430 + .incbin "baserom.nds", 0x4D70C, 0x430 + .incbin "baserom.nds", 0x4DB3C, 0x430 + .incbin "baserom.nds", 0x4DF6C, 0x430 + .incbin "baserom.nds", 0x4E39C, 0x430 + .incbin "baserom.nds", 0x4E7CC, 0x430 + .incbin "baserom.nds", 0x4EBFC, 0x430 + .incbin "baserom.nds", 0x4F02C, 0x430 + .incbin "baserom.nds", 0x4F45C, 0x430 + .incbin "baserom.nds", 0x4F88C, 0x430 + .incbin "baserom.nds", 0x4FCBC, 0x430 + .incbin "baserom.nds", 0x500EC, 0x430 + .incbin "baserom.nds", 0x5051C, 0x430 + .incbin "baserom.nds", 0x5094C, 0x430 + .incbin "baserom.nds", 0x50D7C, 0x430 + .incbin "baserom.nds", 0x511AC, 0x430 + .incbin "baserom.nds", 0x515DC, 0x430 + .incbin "baserom.nds", 0x51A0C, 0x430 + .incbin "baserom.nds", 0x51E3C, 0x430 + .incbin "baserom.nds", 0x5226C, 0x430 + .incbin "baserom.nds", 0x5269C, 0x430 + .incbin "baserom.nds", 0x52ACC, 0x430 + .incbin "baserom.nds", 0x52EFC, 0x430 + .incbin "baserom.nds", 0x5332C, 0x430 + .incbin "baserom.nds", 0x5375C, 0x430 + .incbin "baserom.nds", 0x53B8C, 0x430 + .incbin "baserom.nds", 0x53FBC, 0x430 + .incbin "baserom.nds", 0x543EC, 0x430 + .incbin "baserom.nds", 0x5481C, 0x430 + .incbin "baserom.nds", 0x54C4C, 0x430 + .incbin "baserom.nds", 0x5507C, 0x430 + .incbin "baserom.nds", 0x554AC, 0x430 + .incbin "baserom.nds", 0x558DC, 0x430 + .incbin "baserom.nds", 0x55D0C, 0x430 + .incbin "baserom.nds", 0x5613C, 0x430 + .incbin "baserom.nds", 0x5656C, 0x430 + .incbin "baserom.nds", 0x5699C, 0x430 + .incbin "baserom.nds", 0x56DCC, 0x430 + .incbin "baserom.nds", 0x571FC, 0x430 + .incbin "baserom.nds", 0x5762C, 0x430 + .incbin "baserom.nds", 0x57A5C, 0x430 + .incbin "baserom.nds", 0x57E8C, 0x430 + .incbin "baserom.nds", 0x582BC, 0x430 + .incbin "baserom.nds", 0x586EC, 0x430 + .incbin "baserom.nds", 0x58B1C, 0x430 + .incbin "baserom.nds", 0x58F4C, 0x430 + .incbin "baserom.nds", 0x5937C, 0x430 + .incbin "baserom.nds", 0x597AC, 0x430 + .incbin "baserom.nds", 0x59BDC, 0x430 + .incbin "baserom.nds", 0x5A00C, 0x430 + .incbin "baserom.nds", 0x5A43C, 0x430 + .incbin "baserom.nds", 0x5A86C, 0x430 + .incbin "baserom.nds", 0x5AC9C, 0x430 + .incbin "baserom.nds", 0x5B0CC, 0x430 + .incbin "baserom.nds", 0x5B4FC, 0x430 + .incbin "baserom.nds", 0x5B92C, 0x430 + .incbin "baserom.nds", 0x5BD5C, 0x430 + .incbin "baserom.nds", 0x5C18C, 0x430 + .incbin "baserom.nds", 0x5C5BC, 0x430 + .incbin "baserom.nds", 0x5C9EC, 0x430 + .incbin "baserom.nds", 0x5CE1C, 0x430 + .incbin "baserom.nds", 0x5D24C, 0x430 + .incbin "baserom.nds", 0x5D67C, 0x430 + .incbin "baserom.nds", 0x5DAAC, 0x430 + .incbin "baserom.nds", 0x5DEDC, 0x430 + .incbin "baserom.nds", 0x5E30C, 0x430 + .incbin "baserom.nds", 0x5E73C, 0x430 + .incbin "baserom.nds", 0x5EB6C, 0x430 + .incbin "baserom.nds", 0x5EF9C, 0x430 + .incbin "baserom.nds", 0x5F3CC, 0x430 + .incbin "baserom.nds", 0x5F7FC, 0x430 + .incbin "baserom.nds", 0x5FC2C, 0x430 + .incbin "baserom.nds", 0x6005C, 0x430 + .incbin "baserom.nds", 0x6048C, 0x430 + .incbin "baserom.nds", 0x608BC, 0x430 + .incbin "baserom.nds", 0x60CEC, 0x430 + .incbin "baserom.nds", 0x6111C, 0x430 + .incbin "baserom.nds", 0x6154C, 0x430 + .incbin "baserom.nds", 0x6197C, 0x430 + .incbin "baserom.nds", 0x61DAC, 0x430 + .incbin "baserom.nds", 0x621DC, 0x430 + .incbin "baserom.nds", 0x6260C, 0x430 + .incbin "baserom.nds", 0x62A3C, 0x430 + .incbin "baserom.nds", 0x62E6C, 0x430 + .incbin "baserom.nds", 0x6329C, 0x430 + .incbin "baserom.nds", 0x636CC, 0x430 + .incbin "baserom.nds", 0x63AFC, 0x430 + .incbin "baserom.nds", 0x63F2C, 0x430 + .incbin "baserom.nds", 0x6435C, 0x430 + .incbin "baserom.nds", 0x6478C, 0x430 + .incbin "baserom.nds", 0x64BBC, 0x430 + .incbin "baserom.nds", 0x64FEC, 0x430 + .incbin "baserom.nds", 0x6541C, 0x430 + .incbin "baserom.nds", 0x6584C, 0x430 + .incbin "baserom.nds", 0x65C7C, 0x430 + .incbin "baserom.nds", 0x660AC, 0x430 + .incbin "baserom.nds", 0x664DC, 0x430 + .incbin "baserom.nds", 0x6690C, 0x430 + .incbin "baserom.nds", 0x66D3C, 0x430 + .incbin "baserom.nds", 0x6716C, 0x430 + .incbin "baserom.nds", 0x6759C, 0x430 + .incbin "baserom.nds", 0x679CC, 0x430 + .incbin "baserom.nds", 0x67DFC, 0x430 + .incbin "baserom.nds", 0x6822C, 0x430 + .incbin "baserom.nds", 0x6865C, 0x430 + .incbin "baserom.nds", 0x68A8C, 0x430 + .incbin "baserom.nds", 0x68EBC, 0x430 + .incbin "baserom.nds", 0x692EC, 0x430 + .incbin "baserom.nds", 0x6971C, 0x430 + .incbin "baserom.nds", 0x69B4C, 0x430 + .incbin "baserom.nds", 0x69F7C, 0x430 + .incbin "baserom.nds", 0x6A3AC, 0x430 + .incbin "baserom.nds", 0x6A7DC, 0x430 + .incbin "baserom.nds", 0x6AC0C, 0x430 + .incbin "baserom.nds", 0x6B03C, 0x430 + .incbin "baserom.nds", 0x6B46C, 0x430 + .incbin "baserom.nds", 0x6B89C, 0x430 + .incbin "baserom.nds", 0x6BCCC, 0x430 + .incbin "baserom.nds", 0x6C0FC, 0x430 + .incbin "baserom.nds", 0x6C52C, 0x430 + .incbin "baserom.nds", 0x6C95C, 0x430 + .incbin "baserom.nds", 0x6CD8C, 0x430 + .incbin "baserom.nds", 0x6D1BC, 0x430 + .incbin "baserom.nds", 0x6D5EC, 0x430 + .incbin "baserom.nds", 0x6DA1C, 0x430 + .incbin "baserom.nds", 0x6DE4C, 0x430 + .incbin "baserom.nds", 0x6E27C, 0x430 + .incbin "baserom.nds", 0x6E6AC, 0x430 + .incbin "baserom.nds", 0x6EADC, 0x430 + .incbin "baserom.nds", 0x6EF0C, 0x430 + .incbin "baserom.nds", 0x6F33C, 0x430 + .incbin "baserom.nds", 0x6F76C, 0x430 + .incbin "baserom.nds", 0x6FB9C, 0x430 + .incbin "baserom.nds", 0x6FFCC, 0x430 + .incbin "baserom.nds", 0x703FC, 0x430 + .incbin "baserom.nds", 0x7082C, 0x430 + .incbin "baserom.nds", 0x70C5C, 0x430 + .incbin "baserom.nds", 0x7108C, 0x430 + .incbin "baserom.nds", 0x714BC, 0x430 + .incbin "baserom.nds", 0x718EC, 0x430 + .incbin "baserom.nds", 0x71D1C, 0x430 + .incbin "baserom.nds", 0x7214C, 0x430 + .incbin "baserom.nds", 0x7257C, 0x430 + .incbin "baserom.nds", 0x729AC, 0x430 + .incbin "baserom.nds", 0x72DDC, 0x430 + .incbin "baserom.nds", 0x7320C, 0x430 + .incbin "baserom.nds", 0x7363C, 0x430 + .incbin "baserom.nds", 0x73A6C, 0x430 + .incbin "baserom.nds", 0x73E9C, 0x430 + .incbin "baserom.nds", 0x742CC, 0x430 + .incbin "baserom.nds", 0x746FC, 0x430 + .incbin "baserom.nds", 0x74B2C, 0x430 + .incbin "baserom.nds", 0x74F5C, 0x430 + .incbin "baserom.nds", 0x7538C, 0x430 + .incbin "baserom.nds", 0x757BC, 0x430 + .incbin "baserom.nds", 0x75BEC, 0x430 + .incbin "baserom.nds", 0x7601C, 0x430 + .incbin "baserom.nds", 0x7644C, 0x430 + .incbin "baserom.nds", 0x7687C, 0x430 + .incbin "baserom.nds", 0x76CAC, 0x430 + .incbin "baserom.nds", 0x770DC, 0x430 + .incbin "baserom.nds", 0x7750C, 0x430 + .incbin "baserom.nds", 0x7793C, 0x430 + .incbin "baserom.nds", 0x77D6C, 0x430 + .incbin "baserom.nds", 0x7819C, 0x430 + .incbin "baserom.nds", 0x785CC, 0x430 + .incbin "baserom.nds", 0x789FC, 0x430 + .incbin "baserom.nds", 0x78E2C, 0x430 + .incbin "baserom.nds", 0x7925C, 0x430 + .incbin "baserom.nds", 0x7968C, 0x430 + .incbin "baserom.nds", 0x79ABC, 0x430 + .incbin "baserom.nds", 0x79EEC, 0x430 + .incbin "baserom.nds", 0x7A31C, 0x430 + .incbin "baserom.nds", 0x7A74C, 0x430 + .incbin "baserom.nds", 0x7AB7C, 0x430 + .incbin "baserom.nds", 0x7AFAC, 0x430 + .incbin "baserom.nds", 0x7B3DC, 0x430 + .incbin "baserom.nds", 0x7B80C, 0x430 + .incbin "baserom.nds", 0x7BC3C, 0x430 + .incbin "baserom.nds", 0x7C06C, 0x430 + .incbin "baserom.nds", 0x7C49C, 0x430 + .incbin "baserom.nds", 0x7C8CC, 0x430 + .incbin "baserom.nds", 0x7CCFC, 0x430 + .incbin "baserom.nds", 0x7D12C, 0x430 + .incbin "baserom.nds", 0x7D55C, 0x430 + .incbin "baserom.nds", 0x7D98C, 0x430 + .incbin "baserom.nds", 0x7DDBC, 0x430 + .incbin "baserom.nds", 0x7E1EC, 0x430 + .incbin "baserom.nds", 0x7E61C, 0x430 + .incbin "baserom.nds", 0x7EA4C, 0x430 + .incbin "baserom.nds", 0x7EE7C, 0x430 + .incbin "baserom.nds", 0x7F2AC, 0x430 + .incbin "baserom.nds", 0x7F6DC, 0x430 + .incbin "baserom.nds", 0x7FB0C, 0x430 + .incbin "baserom.nds", 0x7FF3C, 0x430 + .incbin "baserom.nds", 0x8036C, 0x430 + .incbin "baserom.nds", 0x8079C, 0x430 + .incbin "baserom.nds", 0x80BCC, 0x430 + .incbin "baserom.nds", 0x80FFC, 0x430 + .incbin "baserom.nds", 0x8142C, 0x430 + .incbin "baserom.nds", 0x8185C, 0x430 + .incbin "baserom.nds", 0x81C8C, 0x430 + .incbin "baserom.nds", 0x820BC, 0x430 + .incbin "baserom.nds", 0x824EC, 0x430 + .incbin "baserom.nds", 0x8291C, 0x430 + .incbin "baserom.nds", 0x82D4C, 0x430 + .incbin "baserom.nds", 0x8317C, 0x430 + .incbin "baserom.nds", 0x835AC, 0x430 + .incbin "baserom.nds", 0x839DC, 0x430 + .incbin "baserom.nds", 0x83E0C, 0x430 + .incbin "baserom.nds", 0x8423C, 0x430 + .incbin "baserom.nds", 0x8466C, 0x430 + .incbin "baserom.nds", 0x84A9C, 0x430 + .incbin "baserom.nds", 0x84ECC, 0x430 + .incbin "baserom.nds", 0x852FC, 0x430 + .incbin "baserom.nds", 0x8572C, 0x430 + .incbin "baserom.nds", 0x85B5C, 0x430 + .incbin "baserom.nds", 0x85F8C, 0x430 + .incbin "baserom.nds", 0x863BC, 0x430 + .incbin "baserom.nds", 0x867EC, 0x430 + .incbin "baserom.nds", 0x86C1C, 0x430 + .incbin "baserom.nds", 0x8704C, 0x430 + .incbin "baserom.nds", 0x8747C, 0x430 + .incbin "baserom.nds", 0x878AC, 0x430 + .incbin "baserom.nds", 0x87CDC, 0x430 + .incbin "baserom.nds", 0x8810C, 0x430 + .incbin "baserom.nds", 0x8853C, 0x430 + .incbin "baserom.nds", 0x8896C, 0x430 + .incbin "baserom.nds", 0x88D9C, 0x430 + .incbin "baserom.nds", 0x891CC, 0x430 + .incbin "baserom.nds", 0x895FC, 0x430 + .incbin "baserom.nds", 0x89A2C, 0x430 + .incbin "baserom.nds", 0x89E5C, 0x430 + .incbin "baserom.nds", 0x8A28C, 0x430 + .incbin "baserom.nds", 0x8A6BC, 0x430 + .incbin "baserom.nds", 0x8AAEC, 0x430 + .incbin "baserom.nds", 0x8AF1C, 0x430 + .incbin "baserom.nds", 0x8B34C, 0x430 + .incbin "baserom.nds", 0x8B77C, 0x430 + .incbin "baserom.nds", 0x8BBAC, 0x430 + .balign 4, 255 diff --git a/narc/intro/intro.narc.s b/narc/intro/intro.narc.s new file mode 100644 index 00000000..3ac4b0f5 --- /dev/null +++ b/narc/intro/intro.narc.s @@ -0,0 +1,122 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0001B38C ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000018C ; chunk size + .short 48 ; number of files + .balign 4 + .word 0x00000000, 0x00001040 + .word 0x00001040, 0x00001268 + .word 0x00001268, 0x00001490 + .word 0x00001490, 0x00001AB4 + .word 0x00001AB4, 0x000020D8 + .word 0x000020D8, 0x000026FC + .word 0x000026FC, 0x00002D20 + .word 0x00002D20, 0x00003344 + .word 0x00003344, 0x00004384 + .word 0x00004384, 0x000053C4 + .word 0x000053C4, 0x00006404 + .word 0x00006404, 0x00007444 + .word 0x00007444, 0x0000766C + .word 0x0000766C, 0x000086AC + .word 0x000086AC, 0x000096EC + .word 0x000096EC, 0x0000A72C + .word 0x0000A72C, 0x0000B76C + .word 0x0000B76C, 0x0000B994 + .word 0x0000B994, 0x0000C9D4 + .word 0x0000C9D4, 0x0000CBFC + .word 0x0000CBFC, 0x0000DC3C + .word 0x0000DC3C, 0x0000DE64 + .word 0x0000DE64, 0x0000E488 + .word 0x0000E488, 0x0000F8C8 + .word 0x0000F8C8, 0x0000FAF0 + .word 0x0000FAF0, 0x0000FD18 + .word 0x0000FD18, 0x0001033C + .word 0x0001033C, 0x00010960 + .word 0x00010960, 0x00010F84 + .word 0x00010F84, 0x000115A8 + .word 0x000115A8, 0x000117E8 + .word 0x000117E8, 0x00011A28 + .word 0x00011A28, 0x00011C68 + .word 0x00011C68, 0x00011DA8 + .word 0x00011DA8, 0x00011EE8 + .word 0x00011EE8, 0x00012028 + .word 0x00012028, 0x00012168 + .word 0x00012168, 0x0001278C + .word 0x0001278C, 0x00012DB0 + .word 0x00012DB0, 0x00012FD8 + .word 0x00012FD8, 0x00014018 + .word 0x00014018, 0x00015058 + .word 0x00015058, 0x00016098 + .word 0x00016098, 0x000170D8 + .word 0x000170D8, 0x00018118 + .word 0x00018118, 0x00019158 + .word 0x00019158, 0x0001A198 + .word 0x0001A198, 0x0001B1D8 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0001B1E0 ; chunk size + .incbin "baserom.nds", 0x0, 0x1040 + .incbin "baserom.nds", 0x1040, 0x228 + .incbin "baserom.nds", 0x1268, 0x228 + .incbin "baserom.nds", 0x1490, 0x624 + .incbin "baserom.nds", 0x1AB4, 0x624 + .incbin "baserom.nds", 0x20D8, 0x624 + .incbin "baserom.nds", 0x26FC, 0x624 + .incbin "baserom.nds", 0x2D20, 0x624 + .incbin "baserom.nds", 0x3344, 0x1040 + .incbin "baserom.nds", 0x4384, 0x1040 + .incbin "baserom.nds", 0x53C4, 0x1040 + .incbin "baserom.nds", 0x6404, 0x1040 + .incbin "baserom.nds", 0x7444, 0x228 + .incbin "baserom.nds", 0x766C, 0x1040 + .incbin "baserom.nds", 0x86AC, 0x1040 + .incbin "baserom.nds", 0x96EC, 0x1040 + .incbin "baserom.nds", 0xA72C, 0x1040 + .incbin "baserom.nds", 0xB76C, 0x228 + .incbin "baserom.nds", 0xB994, 0x1040 + .incbin "baserom.nds", 0xC9D4, 0x228 + .incbin "baserom.nds", 0xCBFC, 0x1040 + .incbin "baserom.nds", 0xDC3C, 0x228 + .incbin "baserom.nds", 0xDE64, 0x624 + .incbin "baserom.nds", 0xE488, 0x1440 + .incbin "baserom.nds", 0xF8C8, 0x228 + .incbin "baserom.nds", 0xFAF0, 0x228 + .incbin "baserom.nds", 0xFD18, 0x624 + .incbin "baserom.nds", 0x1033C, 0x624 + .incbin "baserom.nds", 0x10960, 0x624 + .incbin "baserom.nds", 0x10F84, 0x624 + .incbin "baserom.nds", 0x115A8, 0x240 + .incbin "baserom.nds", 0x117E8, 0x240 + .incbin "baserom.nds", 0x11A28, 0x240 + .incbin "baserom.nds", 0x11C68, 0x140 + .incbin "baserom.nds", 0x11DA8, 0x140 + .incbin "baserom.nds", 0x11EE8, 0x140 + .incbin "baserom.nds", 0x12028, 0x140 + .incbin "baserom.nds", 0x12168, 0x624 + .incbin "baserom.nds", 0x1278C, 0x624 + .incbin "baserom.nds", 0x12DB0, 0x228 + .incbin "baserom.nds", 0x12FD8, 0x1040 + .incbin "baserom.nds", 0x14018, 0x1040 + .incbin "baserom.nds", 0x15058, 0x1040 + .incbin "baserom.nds", 0x16098, 0x1040 + .incbin "baserom.nds", 0x170D8, 0x1040 + .incbin "baserom.nds", 0x18118, 0x1040 + .incbin "baserom.nds", 0x19158, 0x1040 + .incbin "baserom.nds", 0x1A198, 0x1040 + .balign 4, 255 diff --git a/narc/intro/intro_tv.narc.s b/narc/intro/intro_tv.narc.s new file mode 100644 index 00000000..e9e5eac7 --- /dev/null +++ b/narc/intro/intro_tv.narc.s @@ -0,0 +1,40 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0000DFE0 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000044 ; chunk size + .short 7 ; number of files + .balign 4 + .word 0x00000000, 0x0000C040 + .word 0x0000C040, 0x0000C480 + .word 0x0000C480, 0x0000C4E0 + .word 0x0000C4E0, 0x0000CD04 + .word 0x0000CD04, 0x0000D528 + .word 0x0000D528, 0x0000DD4C + .word 0x0000DD4C, 0x0000DF74 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0000DF7C ; chunk size + .incbin "baserom.nds", 0x0, 0xC040 + .incbin "baserom.nds", 0xC040, 0x440 + .incbin "baserom.nds", 0xC480, 0x60 + .incbin "baserom.nds", 0xC4E0, 0x824 + .incbin "baserom.nds", 0xCD04, 0x824 + .incbin "baserom.nds", 0xD528, 0x824 + .incbin "baserom.nds", 0xDD4C, 0x228 + .balign 4, 255 diff --git a/narc/itemdata/item_data.narc.s b/narc/itemdata/item_data.narc.s new file mode 100644 index 00000000..0a30be69 --- /dev/null +++ b/narc/itemdata/item_data.narc.s @@ -0,0 +1,910 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00004C2C ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000DDC ; chunk size + .short 442 ; number of files + .balign 4 + .word 0x00000000, 0x00000022 + .word 0x00000024, 0x00000046 + .word 0x00000048, 0x0000006A + .word 0x0000006C, 0x0000008E + .word 0x00000090, 0x000000B2 + .word 0x000000B4, 0x000000D6 + .word 0x000000D8, 0x000000FA + .word 0x000000FC, 0x0000011E + .word 0x00000120, 0x00000142 + .word 0x00000144, 0x00000166 + .word 0x00000168, 0x0000018A + .word 0x0000018C, 0x000001AE + .word 0x000001B0, 0x000001D2 + .word 0x000001D4, 0x000001F6 + .word 0x000001F8, 0x0000021A + .word 0x0000021C, 0x0000023E + .word 0x00000240, 0x00000262 + .word 0x00000264, 0x00000286 + .word 0x00000288, 0x000002AA + .word 0x000002AC, 0x000002CE + .word 0x000002D0, 0x000002F2 + .word 0x000002F4, 0x00000316 + .word 0x00000318, 0x0000033A + .word 0x0000033C, 0x0000035E + .word 0x00000360, 0x00000382 + .word 0x00000384, 0x000003A6 + .word 0x000003A8, 0x000003CA + .word 0x000003CC, 0x000003EE + .word 0x000003F0, 0x00000412 + .word 0x00000414, 0x00000436 + .word 0x00000438, 0x0000045A + .word 0x0000045C, 0x0000047E + .word 0x00000480, 0x000004A2 + .word 0x000004A4, 0x000004C6 + .word 0x000004C8, 0x000004EA + .word 0x000004EC, 0x0000050E + .word 0x00000510, 0x00000532 + .word 0x00000534, 0x00000556 + .word 0x00000558, 0x0000057A + .word 0x0000057C, 0x0000059E + .word 0x000005A0, 0x000005C2 + .word 0x000005C4, 0x000005E6 + .word 0x000005E8, 0x0000060A + .word 0x0000060C, 0x0000062E + .word 0x00000630, 0x00000652 + .word 0x00000654, 0x00000676 + .word 0x00000678, 0x0000069A + .word 0x0000069C, 0x000006BE + .word 0x000006C0, 0x000006E2 + .word 0x000006E4, 0x00000706 + .word 0x00000708, 0x0000072A + .word 0x0000072C, 0x0000074E + .word 0x00000750, 0x00000772 + .word 0x00000774, 0x00000796 + .word 0x00000798, 0x000007BA + .word 0x000007BC, 0x000007DE + .word 0x000007E0, 0x00000802 + .word 0x00000804, 0x00000826 + .word 0x00000828, 0x0000084A + .word 0x0000084C, 0x0000086E + .word 0x00000870, 0x00000892 + .word 0x00000894, 0x000008B6 + .word 0x000008B8, 0x000008DA + .word 0x000008DC, 0x000008FE + .word 0x00000900, 0x00000922 + .word 0x00000924, 0x00000946 + .word 0x00000948, 0x0000096A + .word 0x0000096C, 0x0000098E + .word 0x00000990, 0x000009B2 + .word 0x000009B4, 0x000009D6 + .word 0x000009D8, 0x000009FA + .word 0x000009FC, 0x00000A1E + .word 0x00000A20, 0x00000A42 + .word 0x00000A44, 0x00000A66 + .word 0x00000A68, 0x00000A8A + .word 0x00000A8C, 0x00000AAE + .word 0x00000AB0, 0x00000AD2 + .word 0x00000AD4, 0x00000AF6 + .word 0x00000AF8, 0x00000B1A + .word 0x00000B1C, 0x00000B3E + .word 0x00000B40, 0x00000B62 + .word 0x00000B64, 0x00000B86 + .word 0x00000B88, 0x00000BAA + .word 0x00000BAC, 0x00000BCE + .word 0x00000BD0, 0x00000BF2 + .word 0x00000BF4, 0x00000C16 + .word 0x00000C18, 0x00000C3A + .word 0x00000C3C, 0x00000C5E + .word 0x00000C60, 0x00000C82 + .word 0x00000C84, 0x00000CA6 + .word 0x00000CA8, 0x00000CCA + .word 0x00000CCC, 0x00000CEE + .word 0x00000CF0, 0x00000D12 + .word 0x00000D14, 0x00000D36 + .word 0x00000D38, 0x00000D5A + .word 0x00000D5C, 0x00000D7E + .word 0x00000D80, 0x00000DA2 + .word 0x00000DA4, 0x00000DC6 + .word 0x00000DC8, 0x00000DEA + .word 0x00000DEC, 0x00000E0E + .word 0x00000E10, 0x00000E32 + .word 0x00000E34, 0x00000E56 + .word 0x00000E58, 0x00000E7A + .word 0x00000E7C, 0x00000E9E + .word 0x00000EA0, 0x00000EC2 + .word 0x00000EC4, 0x00000EE6 + .word 0x00000EE8, 0x00000F0A + .word 0x00000F0C, 0x00000F2E + .word 0x00000F30, 0x00000F52 + .word 0x00000F54, 0x00000F76 + .word 0x00000F78, 0x00000F9A + .word 0x00000F9C, 0x00000FBE + .word 0x00000FC0, 0x00000FE2 + .word 0x00000FE4, 0x00001006 + .word 0x00001008, 0x0000102A + .word 0x0000102C, 0x0000104E + .word 0x00001050, 0x00001072 + .word 0x00001074, 0x00001096 + .word 0x00001098, 0x000010BA + .word 0x000010BC, 0x000010DE + .word 0x000010E0, 0x00001102 + .word 0x00001104, 0x00001126 + .word 0x00001128, 0x0000114A + .word 0x0000114C, 0x0000116E + .word 0x00001170, 0x00001192 + .word 0x00001194, 0x000011B6 + .word 0x000011B8, 0x000011DA + .word 0x000011DC, 0x000011FE + .word 0x00001200, 0x00001222 + .word 0x00001224, 0x00001246 + .word 0x00001248, 0x0000126A + .word 0x0000126C, 0x0000128E + .word 0x00001290, 0x000012B2 + .word 0x000012B4, 0x000012D6 + .word 0x000012D8, 0x000012FA + .word 0x000012FC, 0x0000131E + .word 0x00001320, 0x00001342 + .word 0x00001344, 0x00001366 + .word 0x00001368, 0x0000138A + .word 0x0000138C, 0x000013AE + .word 0x000013B0, 0x000013D2 + .word 0x000013D4, 0x000013F6 + .word 0x000013F8, 0x0000141A + .word 0x0000141C, 0x0000143E + .word 0x00001440, 0x00001462 + .word 0x00001464, 0x00001486 + .word 0x00001488, 0x000014AA + .word 0x000014AC, 0x000014CE + .word 0x000014D0, 0x000014F2 + .word 0x000014F4, 0x00001516 + .word 0x00001518, 0x0000153A + .word 0x0000153C, 0x0000155E + .word 0x00001560, 0x00001582 + .word 0x00001584, 0x000015A6 + .word 0x000015A8, 0x000015CA + .word 0x000015CC, 0x000015EE + .word 0x000015F0, 0x00001612 + .word 0x00001614, 0x00001636 + .word 0x00001638, 0x0000165A + .word 0x0000165C, 0x0000167E + .word 0x00001680, 0x000016A2 + .word 0x000016A4, 0x000016C6 + .word 0x000016C8, 0x000016EA + .word 0x000016EC, 0x0000170E + .word 0x00001710, 0x00001732 + .word 0x00001734, 0x00001756 + .word 0x00001758, 0x0000177A + .word 0x0000177C, 0x0000179E + .word 0x000017A0, 0x000017C2 + .word 0x000017C4, 0x000017E6 + .word 0x000017E8, 0x0000180A + .word 0x0000180C, 0x0000182E + .word 0x00001830, 0x00001852 + .word 0x00001854, 0x00001876 + .word 0x00001878, 0x0000189A + .word 0x0000189C, 0x000018BE + .word 0x000018C0, 0x000018E2 + .word 0x000018E4, 0x00001906 + .word 0x00001908, 0x0000192A + .word 0x0000192C, 0x0000194E + .word 0x00001950, 0x00001972 + .word 0x00001974, 0x00001996 + .word 0x00001998, 0x000019BA + .word 0x000019BC, 0x000019DE + .word 0x000019E0, 0x00001A02 + .word 0x00001A04, 0x00001A26 + .word 0x00001A28, 0x00001A4A + .word 0x00001A4C, 0x00001A6E + .word 0x00001A70, 0x00001A92 + .word 0x00001A94, 0x00001AB6 + .word 0x00001AB8, 0x00001ADA + .word 0x00001ADC, 0x00001AFE + .word 0x00001B00, 0x00001B22 + .word 0x00001B24, 0x00001B46 + .word 0x00001B48, 0x00001B6A + .word 0x00001B6C, 0x00001B8E + .word 0x00001B90, 0x00001BB2 + .word 0x00001BB4, 0x00001BD6 + .word 0x00001BD8, 0x00001BFA + .word 0x00001BFC, 0x00001C1E + .word 0x00001C20, 0x00001C42 + .word 0x00001C44, 0x00001C66 + .word 0x00001C68, 0x00001C8A + .word 0x00001C8C, 0x00001CAE + .word 0x00001CB0, 0x00001CD2 + .word 0x00001CD4, 0x00001CF6 + .word 0x00001CF8, 0x00001D1A + .word 0x00001D1C, 0x00001D3E + .word 0x00001D40, 0x00001D62 + .word 0x00001D64, 0x00001D86 + .word 0x00001D88, 0x00001DAA + .word 0x00001DAC, 0x00001DCE + .word 0x00001DD0, 0x00001DF2 + .word 0x00001DF4, 0x00001E16 + .word 0x00001E18, 0x00001E3A + .word 0x00001E3C, 0x00001E5E + .word 0x00001E60, 0x00001E82 + .word 0x00001E84, 0x00001EA6 + .word 0x00001EA8, 0x00001ECA + .word 0x00001ECC, 0x00001EEE + .word 0x00001EF0, 0x00001F12 + .word 0x00001F14, 0x00001F36 + .word 0x00001F38, 0x00001F5A + .word 0x00001F5C, 0x00001F7E + .word 0x00001F80, 0x00001FA2 + .word 0x00001FA4, 0x00001FC6 + .word 0x00001FC8, 0x00001FEA + .word 0x00001FEC, 0x0000200E + .word 0x00002010, 0x00002032 + .word 0x00002034, 0x00002056 + .word 0x00002058, 0x0000207A + .word 0x0000207C, 0x0000209E + .word 0x000020A0, 0x000020C2 + .word 0x000020C4, 0x000020E6 + .word 0x000020E8, 0x0000210A + .word 0x0000210C, 0x0000212E + .word 0x00002130, 0x00002152 + .word 0x00002154, 0x00002176 + .word 0x00002178, 0x0000219A + .word 0x0000219C, 0x000021BE + .word 0x000021C0, 0x000021E2 + .word 0x000021E4, 0x00002206 + .word 0x00002208, 0x0000222A + .word 0x0000222C, 0x0000224E + .word 0x00002250, 0x00002272 + .word 0x00002274, 0x00002296 + .word 0x00002298, 0x000022BA + .word 0x000022BC, 0x000022DE + .word 0x000022E0, 0x00002302 + .word 0x00002304, 0x00002326 + .word 0x00002328, 0x0000234A + .word 0x0000234C, 0x0000236E + .word 0x00002370, 0x00002392 + .word 0x00002394, 0x000023B6 + .word 0x000023B8, 0x000023DA + .word 0x000023DC, 0x000023FE + .word 0x00002400, 0x00002422 + .word 0x00002424, 0x00002446 + .word 0x00002448, 0x0000246A + .word 0x0000246C, 0x0000248E + .word 0x00002490, 0x000024B2 + .word 0x000024B4, 0x000024D6 + .word 0x000024D8, 0x000024FA + .word 0x000024FC, 0x0000251E + .word 0x00002520, 0x00002542 + .word 0x00002544, 0x00002566 + .word 0x00002568, 0x0000258A + .word 0x0000258C, 0x000025AE + .word 0x000025B0, 0x000025D2 + .word 0x000025D4, 0x000025F6 + .word 0x000025F8, 0x0000261A + .word 0x0000261C, 0x0000263E + .word 0x00002640, 0x00002662 + .word 0x00002664, 0x00002686 + .word 0x00002688, 0x000026AA + .word 0x000026AC, 0x000026CE + .word 0x000026D0, 0x000026F2 + .word 0x000026F4, 0x00002716 + .word 0x00002718, 0x0000273A + .word 0x0000273C, 0x0000275E + .word 0x00002760, 0x00002782 + .word 0x00002784, 0x000027A6 + .word 0x000027A8, 0x000027CA + .word 0x000027CC, 0x000027EE + .word 0x000027F0, 0x00002812 + .word 0x00002814, 0x00002836 + .word 0x00002838, 0x0000285A + .word 0x0000285C, 0x0000287E + .word 0x00002880, 0x000028A2 + .word 0x000028A4, 0x000028C6 + .word 0x000028C8, 0x000028EA + .word 0x000028EC, 0x0000290E + .word 0x00002910, 0x00002932 + .word 0x00002934, 0x00002956 + .word 0x00002958, 0x0000297A + .word 0x0000297C, 0x0000299E + .word 0x000029A0, 0x000029C2 + .word 0x000029C4, 0x000029E6 + .word 0x000029E8, 0x00002A0A + .word 0x00002A0C, 0x00002A2E + .word 0x00002A30, 0x00002A52 + .word 0x00002A54, 0x00002A76 + .word 0x00002A78, 0x00002A9A + .word 0x00002A9C, 0x00002ABE + .word 0x00002AC0, 0x00002AE2 + .word 0x00002AE4, 0x00002B06 + .word 0x00002B08, 0x00002B2A + .word 0x00002B2C, 0x00002B4E + .word 0x00002B50, 0x00002B72 + .word 0x00002B74, 0x00002B96 + .word 0x00002B98, 0x00002BBA + .word 0x00002BBC, 0x00002BDE + .word 0x00002BE0, 0x00002C02 + .word 0x00002C04, 0x00002C26 + .word 0x00002C28, 0x00002C4A + .word 0x00002C4C, 0x00002C6E + .word 0x00002C70, 0x00002C92 + .word 0x00002C94, 0x00002CB6 + .word 0x00002CB8, 0x00002CDA + .word 0x00002CDC, 0x00002CFE + .word 0x00002D00, 0x00002D22 + .word 0x00002D24, 0x00002D46 + .word 0x00002D48, 0x00002D6A + .word 0x00002D6C, 0x00002D8E + .word 0x00002D90, 0x00002DB2 + .word 0x00002DB4, 0x00002DD6 + .word 0x00002DD8, 0x00002DFA + .word 0x00002DFC, 0x00002E1E + .word 0x00002E20, 0x00002E42 + .word 0x00002E44, 0x00002E66 + .word 0x00002E68, 0x00002E8A + .word 0x00002E8C, 0x00002EAE + .word 0x00002EB0, 0x00002ED2 + .word 0x00002ED4, 0x00002EF6 + .word 0x00002EF8, 0x00002F1A + .word 0x00002F1C, 0x00002F3E + .word 0x00002F40, 0x00002F62 + .word 0x00002F64, 0x00002F86 + .word 0x00002F88, 0x00002FAA + .word 0x00002FAC, 0x00002FCE + .word 0x00002FD0, 0x00002FF2 + .word 0x00002FF4, 0x00003016 + .word 0x00003018, 0x0000303A + .word 0x0000303C, 0x0000305E + .word 0x00003060, 0x00003082 + .word 0x00003084, 0x000030A6 + .word 0x000030A8, 0x000030CA + .word 0x000030CC, 0x000030EE + .word 0x000030F0, 0x00003112 + .word 0x00003114, 0x00003136 + .word 0x00003138, 0x0000315A + .word 0x0000315C, 0x0000317E + .word 0x00003180, 0x000031A2 + .word 0x000031A4, 0x000031C6 + .word 0x000031C8, 0x000031EA + .word 0x000031EC, 0x0000320E + .word 0x00003210, 0x00003232 + .word 0x00003234, 0x00003256 + .word 0x00003258, 0x0000327A + .word 0x0000327C, 0x0000329E + .word 0x000032A0, 0x000032C2 + .word 0x000032C4, 0x000032E6 + .word 0x000032E8, 0x0000330A + .word 0x0000330C, 0x0000332E + .word 0x00003330, 0x00003352 + .word 0x00003354, 0x00003376 + .word 0x00003378, 0x0000339A + .word 0x0000339C, 0x000033BE + .word 0x000033C0, 0x000033E2 + .word 0x000033E4, 0x00003406 + .word 0x00003408, 0x0000342A + .word 0x0000342C, 0x0000344E + .word 0x00003450, 0x00003472 + .word 0x00003474, 0x00003496 + .word 0x00003498, 0x000034BA + .word 0x000034BC, 0x000034DE + .word 0x000034E0, 0x00003502 + .word 0x00003504, 0x00003526 + .word 0x00003528, 0x0000354A + .word 0x0000354C, 0x0000356E + .word 0x00003570, 0x00003592 + .word 0x00003594, 0x000035B6 + .word 0x000035B8, 0x000035DA + .word 0x000035DC, 0x000035FE + .word 0x00003600, 0x00003622 + .word 0x00003624, 0x00003646 + .word 0x00003648, 0x0000366A + .word 0x0000366C, 0x0000368E + .word 0x00003690, 0x000036B2 + .word 0x000036B4, 0x000036D6 + .word 0x000036D8, 0x000036FA + .word 0x000036FC, 0x0000371E + .word 0x00003720, 0x00003742 + .word 0x00003744, 0x00003766 + .word 0x00003768, 0x0000378A + .word 0x0000378C, 0x000037AE + .word 0x000037B0, 0x000037D2 + .word 0x000037D4, 0x000037F6 + .word 0x000037F8, 0x0000381A + .word 0x0000381C, 0x0000383E + .word 0x00003840, 0x00003862 + .word 0x00003864, 0x00003886 + .word 0x00003888, 0x000038AA + .word 0x000038AC, 0x000038CE + .word 0x000038D0, 0x000038F2 + .word 0x000038F4, 0x00003916 + .word 0x00003918, 0x0000393A + .word 0x0000393C, 0x0000395E + .word 0x00003960, 0x00003982 + .word 0x00003984, 0x000039A6 + .word 0x000039A8, 0x000039CA + .word 0x000039CC, 0x000039EE + .word 0x000039F0, 0x00003A12 + .word 0x00003A14, 0x00003A36 + .word 0x00003A38, 0x00003A5A + .word 0x00003A5C, 0x00003A7E + .word 0x00003A80, 0x00003AA2 + .word 0x00003AA4, 0x00003AC6 + .word 0x00003AC8, 0x00003AEA + .word 0x00003AEC, 0x00003B0E + .word 0x00003B10, 0x00003B32 + .word 0x00003B34, 0x00003B56 + .word 0x00003B58, 0x00003B7A + .word 0x00003B7C, 0x00003B9E + .word 0x00003BA0, 0x00003BC2 + .word 0x00003BC4, 0x00003BE6 + .word 0x00003BE8, 0x00003C0A + .word 0x00003C0C, 0x00003C2E + .word 0x00003C30, 0x00003C52 + .word 0x00003C54, 0x00003C76 + .word 0x00003C78, 0x00003C9A + .word 0x00003C9C, 0x00003CBE + .word 0x00003CC0, 0x00003CE2 + .word 0x00003CE4, 0x00003D06 + .word 0x00003D08, 0x00003D2A + .word 0x00003D2C, 0x00003D4E + .word 0x00003D50, 0x00003D72 + .word 0x00003D74, 0x00003D96 + .word 0x00003D98, 0x00003DBA + .word 0x00003DBC, 0x00003DDE + .word 0x00003DE0, 0x00003E02 + .word 0x00003E04, 0x00003E26 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00003E30 ; chunk size + .incbin "baserom.nds", 0x0, 0x22 + .incbin "baserom.nds", 0x24, 0x22 + .incbin "baserom.nds", 0x48, 0x22 + .incbin "baserom.nds", 0x6C, 0x22 + .incbin "baserom.nds", 0x90, 0x22 + .incbin "baserom.nds", 0xB4, 0x22 + .incbin "baserom.nds", 0xD8, 0x22 + .incbin "baserom.nds", 0xFC, 0x22 + .incbin "baserom.nds", 0x120, 0x22 + .incbin "baserom.nds", 0x144, 0x22 + .incbin "baserom.nds", 0x168, 0x22 + .incbin "baserom.nds", 0x18C, 0x22 + .incbin "baserom.nds", 0x1B0, 0x22 + .incbin "baserom.nds", 0x1D4, 0x22 + .incbin "baserom.nds", 0x1F8, 0x22 + .incbin "baserom.nds", 0x21C, 0x22 + .incbin "baserom.nds", 0x240, 0x22 + .incbin "baserom.nds", 0x264, 0x22 + .incbin "baserom.nds", 0x288, 0x22 + .incbin "baserom.nds", 0x2AC, 0x22 + .incbin "baserom.nds", 0x2D0, 0x22 + .incbin "baserom.nds", 0x2F4, 0x22 + .incbin "baserom.nds", 0x318, 0x22 + .incbin "baserom.nds", 0x33C, 0x22 + .incbin "baserom.nds", 0x360, 0x22 + .incbin "baserom.nds", 0x384, 0x22 + .incbin "baserom.nds", 0x3A8, 0x22 + .incbin "baserom.nds", 0x3CC, 0x22 + .incbin "baserom.nds", 0x3F0, 0x22 + .incbin "baserom.nds", 0x414, 0x22 + .incbin "baserom.nds", 0x438, 0x22 + .incbin "baserom.nds", 0x45C, 0x22 + .incbin "baserom.nds", 0x480, 0x22 + .incbin "baserom.nds", 0x4A4, 0x22 + .incbin "baserom.nds", 0x4C8, 0x22 + .incbin "baserom.nds", 0x4EC, 0x22 + .incbin "baserom.nds", 0x510, 0x22 + .incbin "baserom.nds", 0x534, 0x22 + .incbin "baserom.nds", 0x558, 0x22 + .incbin "baserom.nds", 0x57C, 0x22 + .incbin "baserom.nds", 0x5A0, 0x22 + .incbin "baserom.nds", 0x5C4, 0x22 + .incbin "baserom.nds", 0x5E8, 0x22 + .incbin "baserom.nds", 0x60C, 0x22 + .incbin "baserom.nds", 0x630, 0x22 + .incbin "baserom.nds", 0x654, 0x22 + .incbin "baserom.nds", 0x678, 0x22 + .incbin "baserom.nds", 0x69C, 0x22 + .incbin "baserom.nds", 0x6C0, 0x22 + .incbin "baserom.nds", 0x6E4, 0x22 + .incbin "baserom.nds", 0x708, 0x22 + .incbin "baserom.nds", 0x72C, 0x22 + .incbin "baserom.nds", 0x750, 0x22 + .incbin "baserom.nds", 0x774, 0x22 + .incbin "baserom.nds", 0x798, 0x22 + .incbin "baserom.nds", 0x7BC, 0x22 + .incbin "baserom.nds", 0x7E0, 0x22 + .incbin "baserom.nds", 0x804, 0x22 + .incbin "baserom.nds", 0x828, 0x22 + .incbin "baserom.nds", 0x84C, 0x22 + .incbin "baserom.nds", 0x870, 0x22 + .incbin "baserom.nds", 0x894, 0x22 + .incbin "baserom.nds", 0x8B8, 0x22 + .incbin "baserom.nds", 0x8DC, 0x22 + .incbin "baserom.nds", 0x900, 0x22 + .incbin "baserom.nds", 0x924, 0x22 + .incbin "baserom.nds", 0x948, 0x22 + .incbin "baserom.nds", 0x96C, 0x22 + .incbin "baserom.nds", 0x990, 0x22 + .incbin "baserom.nds", 0x9B4, 0x22 + .incbin "baserom.nds", 0x9D8, 0x22 + .incbin "baserom.nds", 0x9FC, 0x22 + .incbin "baserom.nds", 0xA20, 0x22 + .incbin "baserom.nds", 0xA44, 0x22 + .incbin "baserom.nds", 0xA68, 0x22 + .incbin "baserom.nds", 0xA8C, 0x22 + .incbin "baserom.nds", 0xAB0, 0x22 + .incbin "baserom.nds", 0xAD4, 0x22 + .incbin "baserom.nds", 0xAF8, 0x22 + .incbin "baserom.nds", 0xB1C, 0x22 + .incbin "baserom.nds", 0xB40, 0x22 + .incbin "baserom.nds", 0xB64, 0x22 + .incbin "baserom.nds", 0xB88, 0x22 + .incbin "baserom.nds", 0xBAC, 0x22 + .incbin "baserom.nds", 0xBD0, 0x22 + .incbin "baserom.nds", 0xBF4, 0x22 + .incbin "baserom.nds", 0xC18, 0x22 + .incbin "baserom.nds", 0xC3C, 0x22 + .incbin "baserom.nds", 0xC60, 0x22 + .incbin "baserom.nds", 0xC84, 0x22 + .incbin "baserom.nds", 0xCA8, 0x22 + .incbin "baserom.nds", 0xCCC, 0x22 + .incbin "baserom.nds", 0xCF0, 0x22 + .incbin "baserom.nds", 0xD14, 0x22 + .incbin "baserom.nds", 0xD38, 0x22 + .incbin "baserom.nds", 0xD5C, 0x22 + .incbin "baserom.nds", 0xD80, 0x22 + .incbin "baserom.nds", 0xDA4, 0x22 + .incbin "baserom.nds", 0xDC8, 0x22 + .incbin "baserom.nds", 0xDEC, 0x22 + .incbin "baserom.nds", 0xE10, 0x22 + .incbin "baserom.nds", 0xE34, 0x22 + .incbin "baserom.nds", 0xE58, 0x22 + .incbin "baserom.nds", 0xE7C, 0x22 + .incbin "baserom.nds", 0xEA0, 0x22 + .incbin "baserom.nds", 0xEC4, 0x22 + .incbin "baserom.nds", 0xEE8, 0x22 + .incbin "baserom.nds", 0xF0C, 0x22 + .incbin "baserom.nds", 0xF30, 0x22 + .incbin "baserom.nds", 0xF54, 0x22 + .incbin "baserom.nds", 0xF78, 0x22 + .incbin "baserom.nds", 0xF9C, 0x22 + .incbin "baserom.nds", 0xFC0, 0x22 + .incbin "baserom.nds", 0xFE4, 0x22 + .incbin "baserom.nds", 0x1008, 0x22 + .incbin "baserom.nds", 0x102C, 0x22 + .incbin "baserom.nds", 0x1050, 0x22 + .incbin "baserom.nds", 0x1074, 0x22 + .incbin "baserom.nds", 0x1098, 0x22 + .incbin "baserom.nds", 0x10BC, 0x22 + .incbin "baserom.nds", 0x10E0, 0x22 + .incbin "baserom.nds", 0x1104, 0x22 + .incbin "baserom.nds", 0x1128, 0x22 + .incbin "baserom.nds", 0x114C, 0x22 + .incbin "baserom.nds", 0x1170, 0x22 + .incbin "baserom.nds", 0x1194, 0x22 + .incbin "baserom.nds", 0x11B8, 0x22 + .incbin "baserom.nds", 0x11DC, 0x22 + .incbin "baserom.nds", 0x1200, 0x22 + .incbin "baserom.nds", 0x1224, 0x22 + .incbin "baserom.nds", 0x1248, 0x22 + .incbin "baserom.nds", 0x126C, 0x22 + .incbin "baserom.nds", 0x1290, 0x22 + .incbin "baserom.nds", 0x12B4, 0x22 + .incbin "baserom.nds", 0x12D8, 0x22 + .incbin "baserom.nds", 0x12FC, 0x22 + .incbin "baserom.nds", 0x1320, 0x22 + .incbin "baserom.nds", 0x1344, 0x22 + .incbin "baserom.nds", 0x1368, 0x22 + .incbin "baserom.nds", 0x138C, 0x22 + .incbin "baserom.nds", 0x13B0, 0x22 + .incbin "baserom.nds", 0x13D4, 0x22 + .incbin "baserom.nds", 0x13F8, 0x22 + .incbin "baserom.nds", 0x141C, 0x22 + .incbin "baserom.nds", 0x1440, 0x22 + .incbin "baserom.nds", 0x1464, 0x22 + .incbin "baserom.nds", 0x1488, 0x22 + .incbin "baserom.nds", 0x14AC, 0x22 + .incbin "baserom.nds", 0x14D0, 0x22 + .incbin "baserom.nds", 0x14F4, 0x22 + .incbin "baserom.nds", 0x1518, 0x22 + .incbin "baserom.nds", 0x153C, 0x22 + .incbin "baserom.nds", 0x1560, 0x22 + .incbin "baserom.nds", 0x1584, 0x22 + .incbin "baserom.nds", 0x15A8, 0x22 + .incbin "baserom.nds", 0x15CC, 0x22 + .incbin "baserom.nds", 0x15F0, 0x22 + .incbin "baserom.nds", 0x1614, 0x22 + .incbin "baserom.nds", 0x1638, 0x22 + .incbin "baserom.nds", 0x165C, 0x22 + .incbin "baserom.nds", 0x1680, 0x22 + .incbin "baserom.nds", 0x16A4, 0x22 + .incbin "baserom.nds", 0x16C8, 0x22 + .incbin "baserom.nds", 0x16EC, 0x22 + .incbin "baserom.nds", 0x1710, 0x22 + .incbin "baserom.nds", 0x1734, 0x22 + .incbin "baserom.nds", 0x1758, 0x22 + .incbin "baserom.nds", 0x177C, 0x22 + .incbin "baserom.nds", 0x17A0, 0x22 + .incbin "baserom.nds", 0x17C4, 0x22 + .incbin "baserom.nds", 0x17E8, 0x22 + .incbin "baserom.nds", 0x180C, 0x22 + .incbin "baserom.nds", 0x1830, 0x22 + .incbin "baserom.nds", 0x1854, 0x22 + .incbin "baserom.nds", 0x1878, 0x22 + .incbin "baserom.nds", 0x189C, 0x22 + .incbin "baserom.nds", 0x18C0, 0x22 + .incbin "baserom.nds", 0x18E4, 0x22 + .incbin "baserom.nds", 0x1908, 0x22 + .incbin "baserom.nds", 0x192C, 0x22 + .incbin "baserom.nds", 0x1950, 0x22 + .incbin "baserom.nds", 0x1974, 0x22 + .incbin "baserom.nds", 0x1998, 0x22 + .incbin "baserom.nds", 0x19BC, 0x22 + .incbin "baserom.nds", 0x19E0, 0x22 + .incbin "baserom.nds", 0x1A04, 0x22 + .incbin "baserom.nds", 0x1A28, 0x22 + .incbin "baserom.nds", 0x1A4C, 0x22 + .incbin "baserom.nds", 0x1A70, 0x22 + .incbin "baserom.nds", 0x1A94, 0x22 + .incbin "baserom.nds", 0x1AB8, 0x22 + .incbin "baserom.nds", 0x1ADC, 0x22 + .incbin "baserom.nds", 0x1B00, 0x22 + .incbin "baserom.nds", 0x1B24, 0x22 + .incbin "baserom.nds", 0x1B48, 0x22 + .incbin "baserom.nds", 0x1B6C, 0x22 + .incbin "baserom.nds", 0x1B90, 0x22 + .incbin "baserom.nds", 0x1BB4, 0x22 + .incbin "baserom.nds", 0x1BD8, 0x22 + .incbin "baserom.nds", 0x1BFC, 0x22 + .incbin "baserom.nds", 0x1C20, 0x22 + .incbin "baserom.nds", 0x1C44, 0x22 + .incbin "baserom.nds", 0x1C68, 0x22 + .incbin "baserom.nds", 0x1C8C, 0x22 + .incbin "baserom.nds", 0x1CB0, 0x22 + .incbin "baserom.nds", 0x1CD4, 0x22 + .incbin "baserom.nds", 0x1CF8, 0x22 + .incbin "baserom.nds", 0x1D1C, 0x22 + .incbin "baserom.nds", 0x1D40, 0x22 + .incbin "baserom.nds", 0x1D64, 0x22 + .incbin "baserom.nds", 0x1D88, 0x22 + .incbin "baserom.nds", 0x1DAC, 0x22 + .incbin "baserom.nds", 0x1DD0, 0x22 + .incbin "baserom.nds", 0x1DF4, 0x22 + .incbin "baserom.nds", 0x1E18, 0x22 + .incbin "baserom.nds", 0x1E3C, 0x22 + .incbin "baserom.nds", 0x1E60, 0x22 + .incbin "baserom.nds", 0x1E84, 0x22 + .incbin "baserom.nds", 0x1EA8, 0x22 + .incbin "baserom.nds", 0x1ECC, 0x22 + .incbin "baserom.nds", 0x1EF0, 0x22 + .incbin "baserom.nds", 0x1F14, 0x22 + .incbin "baserom.nds", 0x1F38, 0x22 + .incbin "baserom.nds", 0x1F5C, 0x22 + .incbin "baserom.nds", 0x1F80, 0x22 + .incbin "baserom.nds", 0x1FA4, 0x22 + .incbin "baserom.nds", 0x1FC8, 0x22 + .incbin "baserom.nds", 0x1FEC, 0x22 + .incbin "baserom.nds", 0x2010, 0x22 + .incbin "baserom.nds", 0x2034, 0x22 + .incbin "baserom.nds", 0x2058, 0x22 + .incbin "baserom.nds", 0x207C, 0x22 + .incbin "baserom.nds", 0x20A0, 0x22 + .incbin "baserom.nds", 0x20C4, 0x22 + .incbin "baserom.nds", 0x20E8, 0x22 + .incbin "baserom.nds", 0x210C, 0x22 + .incbin "baserom.nds", 0x2130, 0x22 + .incbin "baserom.nds", 0x2154, 0x22 + .incbin "baserom.nds", 0x2178, 0x22 + .incbin "baserom.nds", 0x219C, 0x22 + .incbin "baserom.nds", 0x21C0, 0x22 + .incbin "baserom.nds", 0x21E4, 0x22 + .incbin "baserom.nds", 0x2208, 0x22 + .incbin "baserom.nds", 0x222C, 0x22 + .incbin "baserom.nds", 0x2250, 0x22 + .incbin "baserom.nds", 0x2274, 0x22 + .incbin "baserom.nds", 0x2298, 0x22 + .incbin "baserom.nds", 0x22BC, 0x22 + .incbin "baserom.nds", 0x22E0, 0x22 + .incbin "baserom.nds", 0x2304, 0x22 + .incbin "baserom.nds", 0x2328, 0x22 + .incbin "baserom.nds", 0x234C, 0x22 + .incbin "baserom.nds", 0x2370, 0x22 + .incbin "baserom.nds", 0x2394, 0x22 + .incbin "baserom.nds", 0x23B8, 0x22 + .incbin "baserom.nds", 0x23DC, 0x22 + .incbin "baserom.nds", 0x2400, 0x22 + .incbin "baserom.nds", 0x2424, 0x22 + .incbin "baserom.nds", 0x2448, 0x22 + .incbin "baserom.nds", 0x246C, 0x22 + .incbin "baserom.nds", 0x2490, 0x22 + .incbin "baserom.nds", 0x24B4, 0x22 + .incbin "baserom.nds", 0x24D8, 0x22 + .incbin "baserom.nds", 0x24FC, 0x22 + .incbin "baserom.nds", 0x2520, 0x22 + .incbin "baserom.nds", 0x2544, 0x22 + .incbin "baserom.nds", 0x2568, 0x22 + .incbin "baserom.nds", 0x258C, 0x22 + .incbin "baserom.nds", 0x25B0, 0x22 + .incbin "baserom.nds", 0x25D4, 0x22 + .incbin "baserom.nds", 0x25F8, 0x22 + .incbin "baserom.nds", 0x261C, 0x22 + .incbin "baserom.nds", 0x2640, 0x22 + .incbin "baserom.nds", 0x2664, 0x22 + .incbin "baserom.nds", 0x2688, 0x22 + .incbin "baserom.nds", 0x26AC, 0x22 + .incbin "baserom.nds", 0x26D0, 0x22 + .incbin "baserom.nds", 0x26F4, 0x22 + .incbin "baserom.nds", 0x2718, 0x22 + .incbin "baserom.nds", 0x273C, 0x22 + .incbin "baserom.nds", 0x2760, 0x22 + .incbin "baserom.nds", 0x2784, 0x22 + .incbin "baserom.nds", 0x27A8, 0x22 + .incbin "baserom.nds", 0x27CC, 0x22 + .incbin "baserom.nds", 0x27F0, 0x22 + .incbin "baserom.nds", 0x2814, 0x22 + .incbin "baserom.nds", 0x2838, 0x22 + .incbin "baserom.nds", 0x285C, 0x22 + .incbin "baserom.nds", 0x2880, 0x22 + .incbin "baserom.nds", 0x28A4, 0x22 + .incbin "baserom.nds", 0x28C8, 0x22 + .incbin "baserom.nds", 0x28EC, 0x22 + .incbin "baserom.nds", 0x2910, 0x22 + .incbin "baserom.nds", 0x2934, 0x22 + .incbin "baserom.nds", 0x2958, 0x22 + .incbin "baserom.nds", 0x297C, 0x22 + .incbin "baserom.nds", 0x29A0, 0x22 + .incbin "baserom.nds", 0x29C4, 0x22 + .incbin "baserom.nds", 0x29E8, 0x22 + .incbin "baserom.nds", 0x2A0C, 0x22 + .incbin "baserom.nds", 0x2A30, 0x22 + .incbin "baserom.nds", 0x2A54, 0x22 + .incbin "baserom.nds", 0x2A78, 0x22 + .incbin "baserom.nds", 0x2A9C, 0x22 + .incbin "baserom.nds", 0x2AC0, 0x22 + .incbin "baserom.nds", 0x2AE4, 0x22 + .incbin "baserom.nds", 0x2B08, 0x22 + .incbin "baserom.nds", 0x2B2C, 0x22 + .incbin "baserom.nds", 0x2B50, 0x22 + .incbin "baserom.nds", 0x2B74, 0x22 + .incbin "baserom.nds", 0x2B98, 0x22 + .incbin "baserom.nds", 0x2BBC, 0x22 + .incbin "baserom.nds", 0x2BE0, 0x22 + .incbin "baserom.nds", 0x2C04, 0x22 + .incbin "baserom.nds", 0x2C28, 0x22 + .incbin "baserom.nds", 0x2C4C, 0x22 + .incbin "baserom.nds", 0x2C70, 0x22 + .incbin "baserom.nds", 0x2C94, 0x22 + .incbin "baserom.nds", 0x2CB8, 0x22 + .incbin "baserom.nds", 0x2CDC, 0x22 + .incbin "baserom.nds", 0x2D00, 0x22 + .incbin "baserom.nds", 0x2D24, 0x22 + .incbin "baserom.nds", 0x2D48, 0x22 + .incbin "baserom.nds", 0x2D6C, 0x22 + .incbin "baserom.nds", 0x2D90, 0x22 + .incbin "baserom.nds", 0x2DB4, 0x22 + .incbin "baserom.nds", 0x2DD8, 0x22 + .incbin "baserom.nds", 0x2DFC, 0x22 + .incbin "baserom.nds", 0x2E20, 0x22 + .incbin "baserom.nds", 0x2E44, 0x22 + .incbin "baserom.nds", 0x2E68, 0x22 + .incbin "baserom.nds", 0x2E8C, 0x22 + .incbin "baserom.nds", 0x2EB0, 0x22 + .incbin "baserom.nds", 0x2ED4, 0x22 + .incbin "baserom.nds", 0x2EF8, 0x22 + .incbin "baserom.nds", 0x2F1C, 0x22 + .incbin "baserom.nds", 0x2F40, 0x22 + .incbin "baserom.nds", 0x2F64, 0x22 + .incbin "baserom.nds", 0x2F88, 0x22 + .incbin "baserom.nds", 0x2FAC, 0x22 + .incbin "baserom.nds", 0x2FD0, 0x22 + .incbin "baserom.nds", 0x2FF4, 0x22 + .incbin "baserom.nds", 0x3018, 0x22 + .incbin "baserom.nds", 0x303C, 0x22 + .incbin "baserom.nds", 0x3060, 0x22 + .incbin "baserom.nds", 0x3084, 0x22 + .incbin "baserom.nds", 0x30A8, 0x22 + .incbin "baserom.nds", 0x30CC, 0x22 + .incbin "baserom.nds", 0x30F0, 0x22 + .incbin "baserom.nds", 0x3114, 0x22 + .incbin "baserom.nds", 0x3138, 0x22 + .incbin "baserom.nds", 0x315C, 0x22 + .incbin "baserom.nds", 0x3180, 0x22 + .incbin "baserom.nds", 0x31A4, 0x22 + .incbin "baserom.nds", 0x31C8, 0x22 + .incbin "baserom.nds", 0x31EC, 0x22 + .incbin "baserom.nds", 0x3210, 0x22 + .incbin "baserom.nds", 0x3234, 0x22 + .incbin "baserom.nds", 0x3258, 0x22 + .incbin "baserom.nds", 0x327C, 0x22 + .incbin "baserom.nds", 0x32A0, 0x22 + .incbin "baserom.nds", 0x32C4, 0x22 + .incbin "baserom.nds", 0x32E8, 0x22 + .incbin "baserom.nds", 0x330C, 0x22 + .incbin "baserom.nds", 0x3330, 0x22 + .incbin "baserom.nds", 0x3354, 0x22 + .incbin "baserom.nds", 0x3378, 0x22 + .incbin "baserom.nds", 0x339C, 0x22 + .incbin "baserom.nds", 0x33C0, 0x22 + .incbin "baserom.nds", 0x33E4, 0x22 + .incbin "baserom.nds", 0x3408, 0x22 + .incbin "baserom.nds", 0x342C, 0x22 + .incbin "baserom.nds", 0x3450, 0x22 + .incbin "baserom.nds", 0x3474, 0x22 + .incbin "baserom.nds", 0x3498, 0x22 + .incbin "baserom.nds", 0x34BC, 0x22 + .incbin "baserom.nds", 0x34E0, 0x22 + .incbin "baserom.nds", 0x3504, 0x22 + .incbin "baserom.nds", 0x3528, 0x22 + .incbin "baserom.nds", 0x354C, 0x22 + .incbin "baserom.nds", 0x3570, 0x22 + .incbin "baserom.nds", 0x3594, 0x22 + .incbin "baserom.nds", 0x35B8, 0x22 + .incbin "baserom.nds", 0x35DC, 0x22 + .incbin "baserom.nds", 0x3600, 0x22 + .incbin "baserom.nds", 0x3624, 0x22 + .incbin "baserom.nds", 0x3648, 0x22 + .incbin "baserom.nds", 0x366C, 0x22 + .incbin "baserom.nds", 0x3690, 0x22 + .incbin "baserom.nds", 0x36B4, 0x22 + .incbin "baserom.nds", 0x36D8, 0x22 + .incbin "baserom.nds", 0x36FC, 0x22 + .incbin "baserom.nds", 0x3720, 0x22 + .incbin "baserom.nds", 0x3744, 0x22 + .incbin "baserom.nds", 0x3768, 0x22 + .incbin "baserom.nds", 0x378C, 0x22 + .incbin "baserom.nds", 0x37B0, 0x22 + .incbin "baserom.nds", 0x37D4, 0x22 + .incbin "baserom.nds", 0x37F8, 0x22 + .incbin "baserom.nds", 0x381C, 0x22 + .incbin "baserom.nds", 0x3840, 0x22 + .incbin "baserom.nds", 0x3864, 0x22 + .incbin "baserom.nds", 0x3888, 0x22 + .incbin "baserom.nds", 0x38AC, 0x22 + .incbin "baserom.nds", 0x38D0, 0x22 + .incbin "baserom.nds", 0x38F4, 0x22 + .incbin "baserom.nds", 0x3918, 0x22 + .incbin "baserom.nds", 0x393C, 0x22 + .incbin "baserom.nds", 0x3960, 0x22 + .incbin "baserom.nds", 0x3984, 0x22 + .incbin "baserom.nds", 0x39A8, 0x22 + .incbin "baserom.nds", 0x39CC, 0x22 + .incbin "baserom.nds", 0x39F0, 0x22 + .incbin "baserom.nds", 0x3A14, 0x22 + .incbin "baserom.nds", 0x3A38, 0x22 + .incbin "baserom.nds", 0x3A5C, 0x22 + .incbin "baserom.nds", 0x3A80, 0x22 + .incbin "baserom.nds", 0x3AA4, 0x22 + .incbin "baserom.nds", 0x3AC8, 0x22 + .incbin "baserom.nds", 0x3AEC, 0x22 + .incbin "baserom.nds", 0x3B10, 0x22 + .incbin "baserom.nds", 0x3B34, 0x22 + .incbin "baserom.nds", 0x3B58, 0x22 + .incbin "baserom.nds", 0x3B7C, 0x22 + .incbin "baserom.nds", 0x3BA0, 0x22 + .incbin "baserom.nds", 0x3BC4, 0x22 + .incbin "baserom.nds", 0x3BE8, 0x22 + .incbin "baserom.nds", 0x3C0C, 0x22 + .incbin "baserom.nds", 0x3C30, 0x22 + .incbin "baserom.nds", 0x3C54, 0x22 + .incbin "baserom.nds", 0x3C78, 0x22 + .incbin "baserom.nds", 0x3C9C, 0x22 + .incbin "baserom.nds", 0x3CC0, 0x22 + .incbin "baserom.nds", 0x3CE4, 0x22 + .incbin "baserom.nds", 0x3D08, 0x22 + .incbin "baserom.nds", 0x3D2C, 0x22 + .incbin "baserom.nds", 0x3D50, 0x22 + .incbin "baserom.nds", 0x3D74, 0x22 + .incbin "baserom.nds", 0x3D98, 0x22 + .incbin "baserom.nds", 0x3DBC, 0x22 + .incbin "baserom.nds", 0x3DE0, 0x22 + .incbin "baserom.nds", 0x3E04, 0x22 + .balign 4, 255 diff --git a/narc/itemdata/item_icon.narc.s b/narc/itemdata/item_icon.narc.s new file mode 100644 index 00000000..33037eea --- /dev/null +++ b/narc/itemdata/item_icon.narc.s @@ -0,0 +1,1432 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x000608B0 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00001604 ; chunk size + .short 703 ; number of files + .balign 4 + .word 0x00000000, 0x0000006F + .word 0x00000070, 0x000000DB + .word 0x000000DC, 0x0000030C + .word 0x0000030C, 0x00000534 + .word 0x00000534, 0x00000764 + .word 0x00000764, 0x0000098C + .word 0x0000098C, 0x00000BBC + .word 0x00000BBC, 0x00000DE4 + .word 0x00000DE4, 0x00001014 + .word 0x00001014, 0x0000123C + .word 0x0000123C, 0x0000146C + .word 0x0000146C, 0x00001694 + .word 0x00001694, 0x000018C4 + .word 0x000018C4, 0x00001AEC + .word 0x00001AEC, 0x00001D1C + .word 0x00001D1C, 0x00001F44 + .word 0x00001F44, 0x00002174 + .word 0x00002174, 0x0000239C + .word 0x0000239C, 0x000025CC + .word 0x000025CC, 0x000027F4 + .word 0x000027F4, 0x00002A24 + .word 0x00002A24, 0x00002C54 + .word 0x00002C54, 0x00002E7C + .word 0x00002E7C, 0x000030AC + .word 0x000030AC, 0x000032DC + .word 0x000032DC, 0x00003504 + .word 0x00003504, 0x00003734 + .word 0x00003734, 0x0000395C + .word 0x0000395C, 0x00003B84 + .word 0x00003B84, 0x00003DAC + .word 0x00003DAC, 0x00003FDC + .word 0x00003FDC, 0x00004204 + .word 0x00004204, 0x0000442C + .word 0x0000442C, 0x0000465C + .word 0x0000465C, 0x00004884 + .word 0x00004884, 0x00004AAC + .word 0x00004AAC, 0x00004CD4 + .word 0x00004CD4, 0x00004EFC + .word 0x00004EFC, 0x0000512C + .word 0x0000512C, 0x00005354 + .word 0x00005354, 0x00005584 + .word 0x00005584, 0x000057B4 + .word 0x000057B4, 0x000059DC + .word 0x000059DC, 0x00005C0C + .word 0x00005C0C, 0x00005E34 + .word 0x00005E34, 0x00006064 + .word 0x00006064, 0x0000628C + .word 0x0000628C, 0x000064BC + .word 0x000064BC, 0x000066E4 + .word 0x000066E4, 0x00006914 + .word 0x00006914, 0x00006B3C + .word 0x00006B3C, 0x00006D6C + .word 0x00006D6C, 0x00006F94 + .word 0x00006F94, 0x000071C4 + .word 0x000071C4, 0x000073EC + .word 0x000073EC, 0x00007614 + .word 0x00007614, 0x00007844 + .word 0x00007844, 0x00007A6C + .word 0x00007A6C, 0x00007C9C + .word 0x00007C9C, 0x00007EC4 + .word 0x00007EC4, 0x000080EC + .word 0x000080EC, 0x00008314 + .word 0x00008314, 0x0000853C + .word 0x0000853C, 0x0000876C + .word 0x0000876C, 0x00008994 + .word 0x00008994, 0x00008BC4 + .word 0x00008BC4, 0x00008DEC + .word 0x00008DEC, 0x00009014 + .word 0x00009014, 0x0000923C + .word 0x0000923C, 0x00009464 + .word 0x00009464, 0x0000968C + .word 0x0000968C, 0x000098BC + .word 0x000098BC, 0x00009AE4 + .word 0x00009AE4, 0x00009D14 + .word 0x00009D14, 0x00009F3C + .word 0x00009F3C, 0x0000A164 + .word 0x0000A164, 0x0000A394 + .word 0x0000A394, 0x0000A5BC + .word 0x0000A5BC, 0x0000A7EC + .word 0x0000A7EC, 0x0000AA14 + .word 0x0000AA14, 0x0000AC3C + .word 0x0000AC3C, 0x0000AE64 + .word 0x0000AE64, 0x0000B08C + .word 0x0000B08C, 0x0000B2BC + .word 0x0000B2BC, 0x0000B4E4 + .word 0x0000B4E4, 0x0000B714 + .word 0x0000B714, 0x0000B93C + .word 0x0000B93C, 0x0000BB64 + .word 0x0000BB64, 0x0000BD8C + .word 0x0000BD8C, 0x0000BFB4 + .word 0x0000BFB4, 0x0000C1E4 + .word 0x0000C1E4, 0x0000C40C + .word 0x0000C40C, 0x0000C63C + .word 0x0000C63C, 0x0000C864 + .word 0x0000C864, 0x0000CA8C + .word 0x0000CA8C, 0x0000CCBC + .word 0x0000CCBC, 0x0000CEE4 + .word 0x0000CEE4, 0x0000D10C + .word 0x0000D10C, 0x0000D334 + .word 0x0000D334, 0x0000D55C + .word 0x0000D55C, 0x0000D78C + .word 0x0000D78C, 0x0000D9B4 + .word 0x0000D9B4, 0x0000DBDC + .word 0x0000DBDC, 0x0000DE04 + .word 0x0000DE04, 0x0000E02C + .word 0x0000E02C, 0x0000E25C + .word 0x0000E25C, 0x0000E484 + .word 0x0000E484, 0x0000E6B4 + .word 0x0000E6B4, 0x0000E8DC + .word 0x0000E8DC, 0x0000EB0C + .word 0x0000EB0C, 0x0000ED34 + .word 0x0000ED34, 0x0000EF5C + .word 0x0000EF5C, 0x0000F18C + .word 0x0000F18C, 0x0000F3B4 + .word 0x0000F3B4, 0x0000F5DC + .word 0x0000F5DC, 0x0000F80C + .word 0x0000F80C, 0x0000FA34 + .word 0x0000FA34, 0x0000FC64 + .word 0x0000FC64, 0x0000FE8C + .word 0x0000FE8C, 0x000100BC + .word 0x000100BC, 0x000102E4 + .word 0x000102E4, 0x00010514 + .word 0x00010514, 0x0001073C + .word 0x0001073C, 0x0001096C + .word 0x0001096C, 0x00010B94 + .word 0x00010B94, 0x00010DC4 + .word 0x00010DC4, 0x00010FEC + .word 0x00010FEC, 0x0001121C + .word 0x0001121C, 0x0001144C + .word 0x0001144C, 0x00011674 + .word 0x00011674, 0x000118A4 + .word 0x000118A4, 0x00011ACC + .word 0x00011ACC, 0x00011CFC + .word 0x00011CFC, 0x00011F2C + .word 0x00011F2C, 0x00012154 + .word 0x00012154, 0x00012384 + .word 0x00012384, 0x000125B4 + .word 0x000125B4, 0x000127DC + .word 0x000127DC, 0x00012A0C + .word 0x00012A0C, 0x00012C34 + .word 0x00012C34, 0x00012E64 + .word 0x00012E64, 0x0001308C + .word 0x0001308C, 0x000132BC + .word 0x000132BC, 0x000134E4 + .word 0x000134E4, 0x00013714 + .word 0x00013714, 0x0001393C + .word 0x0001393C, 0x00013B6C + .word 0x00013B6C, 0x00013D94 + .word 0x00013D94, 0x00013FC4 + .word 0x00013FC4, 0x000141EC + .word 0x000141EC, 0x0001441C + .word 0x0001441C, 0x00014644 + .word 0x00014644, 0x00014874 + .word 0x00014874, 0x00014A9C + .word 0x00014A9C, 0x00014CCC + .word 0x00014CCC, 0x00014EF4 + .word 0x00014EF4, 0x00015124 + .word 0x00015124, 0x0001534C + .word 0x0001534C, 0x0001557C + .word 0x0001557C, 0x000157A4 + .word 0x000157A4, 0x000159D4 + .word 0x000159D4, 0x00015BFC + .word 0x00015BFC, 0x00015E2C + .word 0x00015E2C, 0x00016054 + .word 0x00016054, 0x00016284 + .word 0x00016284, 0x000164AC + .word 0x000164AC, 0x000166DC + .word 0x000166DC, 0x00016904 + .word 0x00016904, 0x00016B34 + .word 0x00016B34, 0x00016D5C + .word 0x00016D5C, 0x00016F8C + .word 0x00016F8C, 0x000171B4 + .word 0x000171B4, 0x000173E4 + .word 0x000173E4, 0x0001760C + .word 0x0001760C, 0x0001783C + .word 0x0001783C, 0x00017A64 + .word 0x00017A64, 0x00017C94 + .word 0x00017C94, 0x00017EBC + .word 0x00017EBC, 0x000180EC + .word 0x000180EC, 0x00018314 + .word 0x00018314, 0x00018544 + .word 0x00018544, 0x0001876C + .word 0x0001876C, 0x0001899C + .word 0x0001899C, 0x00018BC4 + .word 0x00018BC4, 0x00018DF4 + .word 0x00018DF4, 0x0001901C + .word 0x0001901C, 0x0001924C + .word 0x0001924C, 0x00019474 + .word 0x00019474, 0x000196A4 + .word 0x000196A4, 0x000198CC + .word 0x000198CC, 0x00019AFC + .word 0x00019AFC, 0x00019D24 + .word 0x00019D24, 0x00019F54 + .word 0x00019F54, 0x0001A17C + .word 0x0001A17C, 0x0001A3AC + .word 0x0001A3AC, 0x0001A5D4 + .word 0x0001A5D4, 0x0001A804 + .word 0x0001A804, 0x0001AA2C + .word 0x0001AA2C, 0x0001AC5C + .word 0x0001AC5C, 0x0001AE84 + .word 0x0001AE84, 0x0001B0B4 + .word 0x0001B0B4, 0x0001B2DC + .word 0x0001B2DC, 0x0001B50C + .word 0x0001B50C, 0x0001B734 + .word 0x0001B734, 0x0001B964 + .word 0x0001B964, 0x0001BB8C + .word 0x0001BB8C, 0x0001BDBC + .word 0x0001BDBC, 0x0001BFE4 + .word 0x0001BFE4, 0x0001C214 + .word 0x0001C214, 0x0001C43C + .word 0x0001C43C, 0x0001C66C + .word 0x0001C66C, 0x0001C894 + .word 0x0001C894, 0x0001CAC4 + .word 0x0001CAC4, 0x0001CCEC + .word 0x0001CCEC, 0x0001CF1C + .word 0x0001CF1C, 0x0001D144 + .word 0x0001D144, 0x0001D374 + .word 0x0001D374, 0x0001D59C + .word 0x0001D59C, 0x0001D7CC + .word 0x0001D7CC, 0x0001D9F4 + .word 0x0001D9F4, 0x0001DC24 + .word 0x0001DC24, 0x0001DE4C + .word 0x0001DE4C, 0x0001E07C + .word 0x0001E07C, 0x0001E2A4 + .word 0x0001E2A4, 0x0001E4D4 + .word 0x0001E4D4, 0x0001E6FC + .word 0x0001E6FC, 0x0001E92C + .word 0x0001E92C, 0x0001EB54 + .word 0x0001EB54, 0x0001ED84 + .word 0x0001ED84, 0x0001EFAC + .word 0x0001EFAC, 0x0001F1DC + .word 0x0001F1DC, 0x0001F404 + .word 0x0001F404, 0x0001F634 + .word 0x0001F634, 0x0001F85C + .word 0x0001F85C, 0x0001FA8C + .word 0x0001FA8C, 0x0001FCB4 + .word 0x0001FCB4, 0x0001FEE4 + .word 0x0001FEE4, 0x0002010C + .word 0x0002010C, 0x0002033C + .word 0x0002033C, 0x00020564 + .word 0x00020564, 0x00020794 + .word 0x00020794, 0x000209BC + .word 0x000209BC, 0x00020BEC + .word 0x00020BEC, 0x00020E14 + .word 0x00020E14, 0x00021044 + .word 0x00021044, 0x0002126C + .word 0x0002126C, 0x0002149C + .word 0x0002149C, 0x000216C4 + .word 0x000216C4, 0x000218F4 + .word 0x000218F4, 0x00021B1C + .word 0x00021B1C, 0x00021D4C + .word 0x00021D4C, 0x00021F74 + .word 0x00021F74, 0x000221A4 + .word 0x000221A4, 0x000223CC + .word 0x000223CC, 0x000225FC + .word 0x000225FC, 0x00022824 + .word 0x00022824, 0x00022A54 + .word 0x00022A54, 0x00022C7C + .word 0x00022C7C, 0x00022EAC + .word 0x00022EAC, 0x000230D4 + .word 0x000230D4, 0x00023304 + .word 0x00023304, 0x0002352C + .word 0x0002352C, 0x00023754 + .word 0x00023754, 0x00023984 + .word 0x00023984, 0x00023BAC + .word 0x00023BAC, 0x00023DDC + .word 0x00023DDC, 0x00024004 + .word 0x00024004, 0x00024234 + .word 0x00024234, 0x0002445C + .word 0x0002445C, 0x0002468C + .word 0x0002468C, 0x000248B4 + .word 0x000248B4, 0x00024AE4 + .word 0x00024AE4, 0x00024D0C + .word 0x00024D0C, 0x00024F3C + .word 0x00024F3C, 0x00025164 + .word 0x00025164, 0x00025394 + .word 0x00025394, 0x000255BC + .word 0x000255BC, 0x000257EC + .word 0x000257EC, 0x00025A14 + .word 0x00025A14, 0x00025C44 + .word 0x00025C44, 0x00025E6C + .word 0x00025E6C, 0x0002609C + .word 0x0002609C, 0x000262C4 + .word 0x000262C4, 0x000264F4 + .word 0x000264F4, 0x0002671C + .word 0x0002671C, 0x0002694C + .word 0x0002694C, 0x00026B74 + .word 0x00026B74, 0x00026DA4 + .word 0x00026DA4, 0x00026FCC + .word 0x00026FCC, 0x000271FC + .word 0x000271FC, 0x00027424 + .word 0x00027424, 0x00027654 + .word 0x00027654, 0x0002787C + .word 0x0002787C, 0x00027AAC + .word 0x00027AAC, 0x00027CD4 + .word 0x00027CD4, 0x00027F04 + .word 0x00027F04, 0x0002812C + .word 0x0002812C, 0x0002835C + .word 0x0002835C, 0x00028584 + .word 0x00028584, 0x000287B4 + .word 0x000287B4, 0x000289DC + .word 0x000289DC, 0x00028C0C + .word 0x00028C0C, 0x00028E34 + .word 0x00028E34, 0x00029064 + .word 0x00029064, 0x0002928C + .word 0x0002928C, 0x000294BC + .word 0x000294BC, 0x000296EC + .word 0x000296EC, 0x00029914 + .word 0x00029914, 0x00029B44 + .word 0x00029B44, 0x00029D6C + .word 0x00029D6C, 0x00029F9C + .word 0x00029F9C, 0x0002A1C4 + .word 0x0002A1C4, 0x0002A3F4 + .word 0x0002A3F4, 0x0002A61C + .word 0x0002A61C, 0x0002A84C + .word 0x0002A84C, 0x0002AA74 + .word 0x0002AA74, 0x0002ACA4 + .word 0x0002ACA4, 0x0002AECC + .word 0x0002AECC, 0x0002B0FC + .word 0x0002B0FC, 0x0002B324 + .word 0x0002B324, 0x0002B554 + .word 0x0002B554, 0x0002B77C + .word 0x0002B77C, 0x0002B9AC + .word 0x0002B9AC, 0x0002BBD4 + .word 0x0002BBD4, 0x0002BE04 + .word 0x0002BE04, 0x0002C02C + .word 0x0002C02C, 0x0002C25C + .word 0x0002C25C, 0x0002C484 + .word 0x0002C484, 0x0002C6B4 + .word 0x0002C6B4, 0x0002C8E4 + .word 0x0002C8E4, 0x0002CB0C + .word 0x0002CB0C, 0x0002CD3C + .word 0x0002CD3C, 0x0002CF64 + .word 0x0002CF64, 0x0002D194 + .word 0x0002D194, 0x0002D3BC + .word 0x0002D3BC, 0x0002D5EC + .word 0x0002D5EC, 0x0002D814 + .word 0x0002D814, 0x0002DA44 + .word 0x0002DA44, 0x0002DC6C + .word 0x0002DC6C, 0x0002DE9C + .word 0x0002DE9C, 0x0002E0C4 + .word 0x0002E0C4, 0x0002E2F4 + .word 0x0002E2F4, 0x0002E51C + .word 0x0002E51C, 0x0002E744 + .word 0x0002E744, 0x0002E96C + .word 0x0002E96C, 0x0002EB94 + .word 0x0002EB94, 0x0002EDBC + .word 0x0002EDBC, 0x0002EFEC + .word 0x0002EFEC, 0x0002F214 + .word 0x0002F214, 0x0002F444 + .word 0x0002F444, 0x0002F66C + .word 0x0002F66C, 0x0002F89C + .word 0x0002F89C, 0x0002FAC4 + .word 0x0002FAC4, 0x0002FCF4 + .word 0x0002FCF4, 0x0002FF1C + .word 0x0002FF1C, 0x0003014C + .word 0x0003014C, 0x00030374 + .word 0x00030374, 0x000305A4 + .word 0x000305A4, 0x000307CC + .word 0x000307CC, 0x000309FC + .word 0x000309FC, 0x00030C24 + .word 0x00030C24, 0x00030E54 + .word 0x00030E54, 0x0003107C + .word 0x0003107C, 0x000312AC + .word 0x000312AC, 0x000314D4 + .word 0x000314D4, 0x00031704 + .word 0x00031704, 0x0003192C + .word 0x0003192C, 0x00031B5C + .word 0x00031B5C, 0x00031D84 + .word 0x00031D84, 0x00031FB4 + .word 0x00031FB4, 0x000321DC + .word 0x000321DC, 0x0003240C + .word 0x0003240C, 0x00032634 + .word 0x00032634, 0x00032864 + .word 0x00032864, 0x00032A8C + .word 0x00032A8C, 0x00032CBC + .word 0x00032CBC, 0x00032EEC + .word 0x00032EEC, 0x00033114 + .word 0x00033114, 0x00033344 + .word 0x00033344, 0x0003356C + .word 0x0003356C, 0x00033794 + .word 0x00033794, 0x000339C4 + .word 0x000339C4, 0x00033BEC + .word 0x00033BEC, 0x00033E1C + .word 0x00033E1C, 0x00034044 + .word 0x00034044, 0x00034274 + .word 0x00034274, 0x0003449C + .word 0x0003449C, 0x000346CC + .word 0x000346CC, 0x000348FC + .word 0x000348FC, 0x00034B2C + .word 0x00034B2C, 0x00034D5C + .word 0x00034D5C, 0x00034F8C + .word 0x00034F8C, 0x000351BC + .word 0x000351BC, 0x000353E4 + .word 0x000353E4, 0x00035614 + .word 0x00035614, 0x00035844 + .word 0x00035844, 0x00035A6C + .word 0x00035A6C, 0x00035C9C + .word 0x00035C9C, 0x00035EC4 + .word 0x00035EC4, 0x000360EC + .word 0x000360EC, 0x00036314 + .word 0x00036314, 0x0003653C + .word 0x0003653C, 0x00036764 + .word 0x00036764, 0x0003698C + .word 0x0003698C, 0x00036BB4 + .word 0x00036BB4, 0x00036DDC + .word 0x00036DDC, 0x00037004 + .word 0x00037004, 0x0003722C + .word 0x0003722C, 0x00037454 + .word 0x00037454, 0x0003767C + .word 0x0003767C, 0x000378A4 + .word 0x000378A4, 0x00037ACC + .word 0x00037ACC, 0x00037CF4 + .word 0x00037CF4, 0x00037F1C + .word 0x00037F1C, 0x0003814C + .word 0x0003814C, 0x0003837C + .word 0x0003837C, 0x000385A4 + .word 0x000385A4, 0x000387D4 + .word 0x000387D4, 0x000389FC + .word 0x000389FC, 0x00038C2C + .word 0x00038C2C, 0x00038E54 + .word 0x00038E54, 0x00039084 + .word 0x00039084, 0x000392AC + .word 0x000392AC, 0x000394DC + .word 0x000394DC, 0x00039704 + .word 0x00039704, 0x00039934 + .word 0x00039934, 0x00039B5C + .word 0x00039B5C, 0x00039D8C + .word 0x00039D8C, 0x00039FB4 + .word 0x00039FB4, 0x0003A1E4 + .word 0x0003A1E4, 0x0003A40C + .word 0x0003A40C, 0x0003A63C + .word 0x0003A63C, 0x0003A864 + .word 0x0003A864, 0x0003AA94 + .word 0x0003AA94, 0x0003ACBC + .word 0x0003ACBC, 0x0003AEEC + .word 0x0003AEEC, 0x0003B114 + .word 0x0003B114, 0x0003B344 + .word 0x0003B344, 0x0003B56C + .word 0x0003B56C, 0x0003B79C + .word 0x0003B79C, 0x0003B9C4 + .word 0x0003B9C4, 0x0003BBF4 + .word 0x0003BBF4, 0x0003BE1C + .word 0x0003BE1C, 0x0003C04C + .word 0x0003C04C, 0x0003C274 + .word 0x0003C274, 0x0003C4A4 + .word 0x0003C4A4, 0x0003C6CC + .word 0x0003C6CC, 0x0003C8FC + .word 0x0003C8FC, 0x0003CB24 + .word 0x0003CB24, 0x0003CD54 + .word 0x0003CD54, 0x0003CF7C + .word 0x0003CF7C, 0x0003D1AC + .word 0x0003D1AC, 0x0003D3D4 + .word 0x0003D3D4, 0x0003D604 + .word 0x0003D604, 0x0003D82C + .word 0x0003D82C, 0x0003DA5C + .word 0x0003DA5C, 0x0003DC84 + .word 0x0003DC84, 0x0003DEB4 + .word 0x0003DEB4, 0x0003E0DC + .word 0x0003E0DC, 0x0003E30C + .word 0x0003E30C, 0x0003E534 + .word 0x0003E534, 0x0003E764 + .word 0x0003E764, 0x0003E98C + .word 0x0003E98C, 0x0003EBB4 + .word 0x0003EBB4, 0x0003EDE4 + .word 0x0003EDE4, 0x0003F00C + .word 0x0003F00C, 0x0003F23C + .word 0x0003F23C, 0x0003F464 + .word 0x0003F464, 0x0003F694 + .word 0x0003F694, 0x0003F8BC + .word 0x0003F8BC, 0x0003FAEC + .word 0x0003FAEC, 0x0003FD14 + .word 0x0003FD14, 0x0003FF44 + .word 0x0003FF44, 0x0004016C + .word 0x0004016C, 0x0004039C + .word 0x0004039C, 0x000405C4 + .word 0x000405C4, 0x000407F4 + .word 0x000407F4, 0x00040A1C + .word 0x00040A1C, 0x00040C4C + .word 0x00040C4C, 0x00040E74 + .word 0x00040E74, 0x000410A4 + .word 0x000410A4, 0x000412CC + .word 0x000412CC, 0x000414FC + .word 0x000414FC, 0x00041724 + .word 0x00041724, 0x00041954 + .word 0x00041954, 0x00041B7C + .word 0x00041B7C, 0x00041DAC + .word 0x00041DAC, 0x00041FD4 + .word 0x00041FD4, 0x00042204 + .word 0x00042204, 0x0004242C + .word 0x0004242C, 0x0004265C + .word 0x0004265C, 0x00042884 + .word 0x00042884, 0x00042AB4 + .word 0x00042AB4, 0x00042CDC + .word 0x00042CDC, 0x00042F0C + .word 0x00042F0C, 0x00043134 + .word 0x00043134, 0x00043364 + .word 0x00043364, 0x0004358C + .word 0x0004358C, 0x000437BC + .word 0x000437BC, 0x000439E4 + .word 0x000439E4, 0x00043C14 + .word 0x00043C14, 0x00043E3C + .word 0x00043E3C, 0x0004406C + .word 0x0004406C, 0x00044294 + .word 0x00044294, 0x000444C4 + .word 0x000444C4, 0x000446EC + .word 0x000446EC, 0x0004491C + .word 0x0004491C, 0x00044B44 + .word 0x00044B44, 0x00044D74 + .word 0x00044D74, 0x00044F9C + .word 0x00044F9C, 0x000451CC + .word 0x000451CC, 0x000453F4 + .word 0x000453F4, 0x00045624 + .word 0x00045624, 0x0004584C + .word 0x0004584C, 0x00045A7C + .word 0x00045A7C, 0x00045CA4 + .word 0x00045CA4, 0x00045ED4 + .word 0x00045ED4, 0x000460FC + .word 0x000460FC, 0x0004632C + .word 0x0004632C, 0x00046554 + .word 0x00046554, 0x00046784 + .word 0x00046784, 0x000469AC + .word 0x000469AC, 0x00046BDC + .word 0x00046BDC, 0x00046E04 + .word 0x00046E04, 0x00047034 + .word 0x00047034, 0x0004725C + .word 0x0004725C, 0x0004748C + .word 0x0004748C, 0x000476B4 + .word 0x000476B4, 0x000478E4 + .word 0x000478E4, 0x00047B0C + .word 0x00047B0C, 0x00047D3C + .word 0x00047D3C, 0x00047F64 + .word 0x00047F64, 0x00048194 + .word 0x00048194, 0x000483BC + .word 0x000483BC, 0x000485EC + .word 0x000485EC, 0x00048814 + .word 0x00048814, 0x00048A44 + .word 0x00048A44, 0x00048C6C + .word 0x00048C6C, 0x00048E9C + .word 0x00048E9C, 0x000490C4 + .word 0x000490C4, 0x000492F4 + .word 0x000492F4, 0x0004951C + .word 0x0004951C, 0x0004974C + .word 0x0004974C, 0x00049974 + .word 0x00049974, 0x00049BA4 + .word 0x00049BA4, 0x00049DCC + .word 0x00049DCC, 0x00049FFC + .word 0x00049FFC, 0x0004A224 + .word 0x0004A224, 0x0004A454 + .word 0x0004A454, 0x0004A67C + .word 0x0004A67C, 0x0004A8AC + .word 0x0004A8AC, 0x0004AAD4 + .word 0x0004AAD4, 0x0004AD04 + .word 0x0004AD04, 0x0004AF2C + .word 0x0004AF2C, 0x0004B15C + .word 0x0004B15C, 0x0004B384 + .word 0x0004B384, 0x0004B5B4 + .word 0x0004B5B4, 0x0004B7DC + .word 0x0004B7DC, 0x0004BA0C + .word 0x0004BA0C, 0x0004BC34 + .word 0x0004BC34, 0x0004BE64 + .word 0x0004BE64, 0x0004C08C + .word 0x0004C08C, 0x0004C2BC + .word 0x0004C2BC, 0x0004C4E4 + .word 0x0004C4E4, 0x0004C714 + .word 0x0004C714, 0x0004C93C + .word 0x0004C93C, 0x0004CB6C + .word 0x0004CB6C, 0x0004CD94 + .word 0x0004CD94, 0x0004CFC4 + .word 0x0004CFC4, 0x0004D1EC + .word 0x0004D1EC, 0x0004D41C + .word 0x0004D41C, 0x0004D644 + .word 0x0004D644, 0x0004D874 + .word 0x0004D874, 0x0004DA9C + .word 0x0004DA9C, 0x0004DCCC + .word 0x0004DCCC, 0x0004DEF4 + .word 0x0004DEF4, 0x0004E124 + .word 0x0004E124, 0x0004E34C + .word 0x0004E34C, 0x0004E57C + .word 0x0004E57C, 0x0004E7A4 + .word 0x0004E7A4, 0x0004E9D4 + .word 0x0004E9D4, 0x0004EBFC + .word 0x0004EBFC, 0x0004EE2C + .word 0x0004EE2C, 0x0004F054 + .word 0x0004F054, 0x0004F284 + .word 0x0004F284, 0x0004F4AC + .word 0x0004F4AC, 0x0004F6DC + .word 0x0004F6DC, 0x0004F904 + .word 0x0004F904, 0x0004FB34 + .word 0x0004FB34, 0x0004FD5C + .word 0x0004FD5C, 0x0004FF8C + .word 0x0004FF8C, 0x000501B4 + .word 0x000501B4, 0x000503E4 + .word 0x000503E4, 0x0005060C + .word 0x0005060C, 0x0005083C + .word 0x0005083C, 0x00050A64 + .word 0x00050A64, 0x00050C94 + .word 0x00050C94, 0x00050EBC + .word 0x00050EBC, 0x000510EC + .word 0x000510EC, 0x00051314 + .word 0x00051314, 0x00051544 + .word 0x00051544, 0x0005176C + .word 0x0005176C, 0x0005199C + .word 0x0005199C, 0x00051BC4 + .word 0x00051BC4, 0x00051DF4 + .word 0x00051DF4, 0x0005201C + .word 0x0005201C, 0x0005224C + .word 0x0005224C, 0x00052474 + .word 0x00052474, 0x000526A4 + .word 0x000526A4, 0x000528CC + .word 0x000528CC, 0x00052AF4 + .word 0x00052AF4, 0x00052D24 + .word 0x00052D24, 0x00052F4C + .word 0x00052F4C, 0x0005317C + .word 0x0005317C, 0x000533A4 + .word 0x000533A4, 0x000535D4 + .word 0x000535D4, 0x000537FC + .word 0x000537FC, 0x00053A2C + .word 0x00053A2C, 0x00053C54 + .word 0x00053C54, 0x00053E84 + .word 0x00053E84, 0x000540AC + .word 0x000540AC, 0x000542D4 + .word 0x000542D4, 0x000544FC + .word 0x000544FC, 0x00054724 + .word 0x00054724, 0x0005494C + .word 0x0005494C, 0x00054B74 + .word 0x00054B74, 0x00054D9C + .word 0x00054D9C, 0x00054FC4 + .word 0x00054FC4, 0x000551EC + .word 0x000551EC, 0x00055414 + .word 0x00055414, 0x0005563C + .word 0x0005563C, 0x00055864 + .word 0x00055864, 0x00055A8C + .word 0x00055A8C, 0x00055CB4 + .word 0x00055CB4, 0x00055EDC + .word 0x00055EDC, 0x00056104 + .word 0x00056104, 0x00056334 + .word 0x00056334, 0x0005655C + .word 0x0005655C, 0x0005678C + .word 0x0005678C, 0x000569B4 + .word 0x000569B4, 0x00056BE4 + .word 0x00056BE4, 0x00056E0C + .word 0x00056E0C, 0x0005703C + .word 0x0005703C, 0x00057264 + .word 0x00057264, 0x00057494 + .word 0x00057494, 0x000576BC + .word 0x000576BC, 0x000578EC + .word 0x000578EC, 0x00057B14 + .word 0x00057B14, 0x00057D44 + .word 0x00057D44, 0x00057F6C + .word 0x00057F6C, 0x0005819C + .word 0x0005819C, 0x000583C4 + .word 0x000583C4, 0x000585F4 + .word 0x000585F4, 0x0005881C + .word 0x0005881C, 0x00058A4C + .word 0x00058A4C, 0x00058C74 + .word 0x00058C74, 0x00058EA4 + .word 0x00058EA4, 0x000590CC + .word 0x000590CC, 0x000592F4 + .word 0x000592F4, 0x00059524 + .word 0x00059524, 0x0005974C + .word 0x0005974C, 0x0005997C + .word 0x0005997C, 0x00059BA4 + .word 0x00059BA4, 0x00059DD4 + .word 0x00059DD4, 0x00059FFC + .word 0x00059FFC, 0x0005A22C + .word 0x0005A22C, 0x0005A454 + .word 0x0005A454, 0x0005A684 + .word 0x0005A684, 0x0005A8AC + .word 0x0005A8AC, 0x0005AADC + .word 0x0005AADC, 0x0005AD04 + .word 0x0005AD04, 0x0005AF34 + .word 0x0005AF34, 0x0005B15C + .word 0x0005B15C, 0x0005B38C + .word 0x0005B38C, 0x0005B5B4 + .word 0x0005B5B4, 0x0005B7E4 + .word 0x0005B7E4, 0x0005BA0C + .word 0x0005BA0C, 0x0005BC3C + .word 0x0005BC3C, 0x0005BE64 + .word 0x0005BE64, 0x0005C094 + .word 0x0005C094, 0x0005C2BC + .word 0x0005C2BC, 0x0005C4EC + .word 0x0005C4EC, 0x0005C714 + .word 0x0005C714, 0x0005C944 + .word 0x0005C944, 0x0005CB6C + .word 0x0005CB6C, 0x0005CD9C + .word 0x0005CD9C, 0x0005CFC4 + .word 0x0005CFC4, 0x0005D1F4 + .word 0x0005D1F4, 0x0005D41C + .word 0x0005D41C, 0x0005D64C + .word 0x0005D64C, 0x0005D874 + .word 0x0005D874, 0x0005DAA4 + .word 0x0005DAA4, 0x0005DCCC + .word 0x0005DCCC, 0x0005DEFC + .word 0x0005DEFC, 0x0005E124 + .word 0x0005E124, 0x0005E354 + .word 0x0005E354, 0x0005E57C + .word 0x0005E57C, 0x0005E7AC + .word 0x0005E7AC, 0x0005E9D4 + .word 0x0005E9D4, 0x0005EC04 + .word 0x0005EC04, 0x0005EE2C + .word 0x0005EE2C, 0x0005F05C + .word 0x0005F05C, 0x0005F284 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0005F28C ; chunk size + .incbin "baserom.nds", 0x0, 0x6F + .incbin "baserom.nds", 0x70, 0x6B + .incbin "baserom.nds", 0xDC, 0x230 + .incbin "baserom.nds", 0x30C, 0x228 + .incbin "baserom.nds", 0x534, 0x230 + .incbin "baserom.nds", 0x764, 0x228 + .incbin "baserom.nds", 0x98C, 0x230 + .incbin "baserom.nds", 0xBBC, 0x228 + .incbin "baserom.nds", 0xDE4, 0x230 + .incbin "baserom.nds", 0x1014, 0x228 + .incbin "baserom.nds", 0x123C, 0x230 + .incbin "baserom.nds", 0x146C, 0x228 + .incbin "baserom.nds", 0x1694, 0x230 + .incbin "baserom.nds", 0x18C4, 0x228 + .incbin "baserom.nds", 0x1AEC, 0x230 + .incbin "baserom.nds", 0x1D1C, 0x228 + .incbin "baserom.nds", 0x1F44, 0x230 + .incbin "baserom.nds", 0x2174, 0x228 + .incbin "baserom.nds", 0x239C, 0x230 + .incbin "baserom.nds", 0x25CC, 0x228 + .incbin "baserom.nds", 0x27F4, 0x230 + .incbin "baserom.nds", 0x2A24, 0x230 + .incbin "baserom.nds", 0x2C54, 0x228 + .incbin "baserom.nds", 0x2E7C, 0x230 + .incbin "baserom.nds", 0x30AC, 0x230 + .incbin "baserom.nds", 0x32DC, 0x228 + .incbin "baserom.nds", 0x3504, 0x230 + .incbin "baserom.nds", 0x3734, 0x228 + .incbin "baserom.nds", 0x395C, 0x228 + .incbin "baserom.nds", 0x3B84, 0x228 + .incbin "baserom.nds", 0x3DAC, 0x230 + .incbin "baserom.nds", 0x3FDC, 0x228 + .incbin "baserom.nds", 0x4204, 0x228 + .incbin "baserom.nds", 0x442C, 0x230 + .incbin "baserom.nds", 0x465C, 0x228 + .incbin "baserom.nds", 0x4884, 0x228 + .incbin "baserom.nds", 0x4AAC, 0x228 + .incbin "baserom.nds", 0x4CD4, 0x228 + .incbin "baserom.nds", 0x4EFC, 0x230 + .incbin "baserom.nds", 0x512C, 0x228 + .incbin "baserom.nds", 0x5354, 0x230 + .incbin "baserom.nds", 0x5584, 0x230 + .incbin "baserom.nds", 0x57B4, 0x228 + .incbin "baserom.nds", 0x59DC, 0x230 + .incbin "baserom.nds", 0x5C0C, 0x228 + .incbin "baserom.nds", 0x5E34, 0x230 + .incbin "baserom.nds", 0x6064, 0x228 + .incbin "baserom.nds", 0x628C, 0x230 + .incbin "baserom.nds", 0x64BC, 0x228 + .incbin "baserom.nds", 0x66E4, 0x230 + .incbin "baserom.nds", 0x6914, 0x228 + .incbin "baserom.nds", 0x6B3C, 0x230 + .incbin "baserom.nds", 0x6D6C, 0x228 + .incbin "baserom.nds", 0x6F94, 0x230 + .incbin "baserom.nds", 0x71C4, 0x228 + .incbin "baserom.nds", 0x73EC, 0x228 + .incbin "baserom.nds", 0x7614, 0x230 + .incbin "baserom.nds", 0x7844, 0x228 + .incbin "baserom.nds", 0x7A6C, 0x230 + .incbin "baserom.nds", 0x7C9C, 0x228 + .incbin "baserom.nds", 0x7EC4, 0x228 + .incbin "baserom.nds", 0x80EC, 0x228 + .incbin "baserom.nds", 0x8314, 0x228 + .incbin "baserom.nds", 0x853C, 0x230 + .incbin "baserom.nds", 0x876C, 0x228 + .incbin "baserom.nds", 0x8994, 0x230 + .incbin "baserom.nds", 0x8BC4, 0x228 + .incbin "baserom.nds", 0x8DEC, 0x228 + .incbin "baserom.nds", 0x9014, 0x228 + .incbin "baserom.nds", 0x923C, 0x228 + .incbin "baserom.nds", 0x9464, 0x228 + .incbin "baserom.nds", 0x968C, 0x230 + .incbin "baserom.nds", 0x98BC, 0x228 + .incbin "baserom.nds", 0x9AE4, 0x230 + .incbin "baserom.nds", 0x9D14, 0x228 + .incbin "baserom.nds", 0x9F3C, 0x228 + .incbin "baserom.nds", 0xA164, 0x230 + .incbin "baserom.nds", 0xA394, 0x228 + .incbin "baserom.nds", 0xA5BC, 0x230 + .incbin "baserom.nds", 0xA7EC, 0x228 + .incbin "baserom.nds", 0xAA14, 0x228 + .incbin "baserom.nds", 0xAC3C, 0x228 + .incbin "baserom.nds", 0xAE64, 0x228 + .incbin "baserom.nds", 0xB08C, 0x230 + .incbin "baserom.nds", 0xB2BC, 0x228 + .incbin "baserom.nds", 0xB4E4, 0x230 + .incbin "baserom.nds", 0xB714, 0x228 + .incbin "baserom.nds", 0xB93C, 0x228 + .incbin "baserom.nds", 0xBB64, 0x228 + .incbin "baserom.nds", 0xBD8C, 0x228 + .incbin "baserom.nds", 0xBFB4, 0x230 + .incbin "baserom.nds", 0xC1E4, 0x228 + .incbin "baserom.nds", 0xC40C, 0x230 + .incbin "baserom.nds", 0xC63C, 0x228 + .incbin "baserom.nds", 0xC864, 0x228 + .incbin "baserom.nds", 0xCA8C, 0x230 + .incbin "baserom.nds", 0xCCBC, 0x228 + .incbin "baserom.nds", 0xCEE4, 0x228 + .incbin "baserom.nds", 0xD10C, 0x228 + .incbin "baserom.nds", 0xD334, 0x228 + .incbin "baserom.nds", 0xD55C, 0x230 + .incbin "baserom.nds", 0xD78C, 0x228 + .incbin "baserom.nds", 0xD9B4, 0x228 + .incbin "baserom.nds", 0xDBDC, 0x228 + .incbin "baserom.nds", 0xDE04, 0x228 + .incbin "baserom.nds", 0xE02C, 0x230 + .incbin "baserom.nds", 0xE25C, 0x228 + .incbin "baserom.nds", 0xE484, 0x230 + .incbin "baserom.nds", 0xE6B4, 0x228 + .incbin "baserom.nds", 0xE8DC, 0x230 + .incbin "baserom.nds", 0xEB0C, 0x228 + .incbin "baserom.nds", 0xED34, 0x228 + .incbin "baserom.nds", 0xEF5C, 0x230 + .incbin "baserom.nds", 0xF18C, 0x228 + .incbin "baserom.nds", 0xF3B4, 0x228 + .incbin "baserom.nds", 0xF5DC, 0x230 + .incbin "baserom.nds", 0xF80C, 0x228 + .incbin "baserom.nds", 0xFA34, 0x230 + .incbin "baserom.nds", 0xFC64, 0x228 + .incbin "baserom.nds", 0xFE8C, 0x230 + .incbin "baserom.nds", 0x100BC, 0x228 + .incbin "baserom.nds", 0x102E4, 0x230 + .incbin "baserom.nds", 0x10514, 0x228 + .incbin "baserom.nds", 0x1073C, 0x230 + .incbin "baserom.nds", 0x1096C, 0x228 + .incbin "baserom.nds", 0x10B94, 0x230 + .incbin "baserom.nds", 0x10DC4, 0x228 + .incbin "baserom.nds", 0x10FEC, 0x230 + .incbin "baserom.nds", 0x1121C, 0x230 + .incbin "baserom.nds", 0x1144C, 0x228 + .incbin "baserom.nds", 0x11674, 0x230 + .incbin "baserom.nds", 0x118A4, 0x228 + .incbin "baserom.nds", 0x11ACC, 0x230 + .incbin "baserom.nds", 0x11CFC, 0x230 + .incbin "baserom.nds", 0x11F2C, 0x228 + .incbin "baserom.nds", 0x12154, 0x230 + .incbin "baserom.nds", 0x12384, 0x230 + .incbin "baserom.nds", 0x125B4, 0x228 + .incbin "baserom.nds", 0x127DC, 0x230 + .incbin "baserom.nds", 0x12A0C, 0x228 + .incbin "baserom.nds", 0x12C34, 0x230 + .incbin "baserom.nds", 0x12E64, 0x228 + .incbin "baserom.nds", 0x1308C, 0x230 + .incbin "baserom.nds", 0x132BC, 0x228 + .incbin "baserom.nds", 0x134E4, 0x230 + .incbin "baserom.nds", 0x13714, 0x228 + .incbin "baserom.nds", 0x1393C, 0x230 + .incbin "baserom.nds", 0x13B6C, 0x228 + .incbin "baserom.nds", 0x13D94, 0x230 + .incbin "baserom.nds", 0x13FC4, 0x228 + .incbin "baserom.nds", 0x141EC, 0x230 + .incbin "baserom.nds", 0x1441C, 0x228 + .incbin "baserom.nds", 0x14644, 0x230 + .incbin "baserom.nds", 0x14874, 0x228 + .incbin "baserom.nds", 0x14A9C, 0x230 + .incbin "baserom.nds", 0x14CCC, 0x228 + .incbin "baserom.nds", 0x14EF4, 0x230 + .incbin "baserom.nds", 0x15124, 0x228 + .incbin "baserom.nds", 0x1534C, 0x230 + .incbin "baserom.nds", 0x1557C, 0x228 + .incbin "baserom.nds", 0x157A4, 0x230 + .incbin "baserom.nds", 0x159D4, 0x228 + .incbin "baserom.nds", 0x15BFC, 0x230 + .incbin "baserom.nds", 0x15E2C, 0x228 + .incbin "baserom.nds", 0x16054, 0x230 + .incbin "baserom.nds", 0x16284, 0x228 + .incbin "baserom.nds", 0x164AC, 0x230 + .incbin "baserom.nds", 0x166DC, 0x228 + .incbin "baserom.nds", 0x16904, 0x230 + .incbin "baserom.nds", 0x16B34, 0x228 + .incbin "baserom.nds", 0x16D5C, 0x230 + .incbin "baserom.nds", 0x16F8C, 0x228 + .incbin "baserom.nds", 0x171B4, 0x230 + .incbin "baserom.nds", 0x173E4, 0x228 + .incbin "baserom.nds", 0x1760C, 0x230 + .incbin "baserom.nds", 0x1783C, 0x228 + .incbin "baserom.nds", 0x17A64, 0x230 + .incbin "baserom.nds", 0x17C94, 0x228 + .incbin "baserom.nds", 0x17EBC, 0x230 + .incbin "baserom.nds", 0x180EC, 0x228 + .incbin "baserom.nds", 0x18314, 0x230 + .incbin "baserom.nds", 0x18544, 0x228 + .incbin "baserom.nds", 0x1876C, 0x230 + .incbin "baserom.nds", 0x1899C, 0x228 + .incbin "baserom.nds", 0x18BC4, 0x230 + .incbin "baserom.nds", 0x18DF4, 0x228 + .incbin "baserom.nds", 0x1901C, 0x230 + .incbin "baserom.nds", 0x1924C, 0x228 + .incbin "baserom.nds", 0x19474, 0x230 + .incbin "baserom.nds", 0x196A4, 0x228 + .incbin "baserom.nds", 0x198CC, 0x230 + .incbin "baserom.nds", 0x19AFC, 0x228 + .incbin "baserom.nds", 0x19D24, 0x230 + .incbin "baserom.nds", 0x19F54, 0x228 + .incbin "baserom.nds", 0x1A17C, 0x230 + .incbin "baserom.nds", 0x1A3AC, 0x228 + .incbin "baserom.nds", 0x1A5D4, 0x230 + .incbin "baserom.nds", 0x1A804, 0x228 + .incbin "baserom.nds", 0x1AA2C, 0x230 + .incbin "baserom.nds", 0x1AC5C, 0x228 + .incbin "baserom.nds", 0x1AE84, 0x230 + .incbin "baserom.nds", 0x1B0B4, 0x228 + .incbin "baserom.nds", 0x1B2DC, 0x230 + .incbin "baserom.nds", 0x1B50C, 0x228 + .incbin "baserom.nds", 0x1B734, 0x230 + .incbin "baserom.nds", 0x1B964, 0x228 + .incbin "baserom.nds", 0x1BB8C, 0x230 + .incbin "baserom.nds", 0x1BDBC, 0x228 + .incbin "baserom.nds", 0x1BFE4, 0x230 + .incbin "baserom.nds", 0x1C214, 0x228 + .incbin "baserom.nds", 0x1C43C, 0x230 + .incbin "baserom.nds", 0x1C66C, 0x228 + .incbin "baserom.nds", 0x1C894, 0x230 + .incbin "baserom.nds", 0x1CAC4, 0x228 + .incbin "baserom.nds", 0x1CCEC, 0x230 + .incbin "baserom.nds", 0x1CF1C, 0x228 + .incbin "baserom.nds", 0x1D144, 0x230 + .incbin "baserom.nds", 0x1D374, 0x228 + .incbin "baserom.nds", 0x1D59C, 0x230 + .incbin "baserom.nds", 0x1D7CC, 0x228 + .incbin "baserom.nds", 0x1D9F4, 0x230 + .incbin "baserom.nds", 0x1DC24, 0x228 + .incbin "baserom.nds", 0x1DE4C, 0x230 + .incbin "baserom.nds", 0x1E07C, 0x228 + .incbin "baserom.nds", 0x1E2A4, 0x230 + .incbin "baserom.nds", 0x1E4D4, 0x228 + .incbin "baserom.nds", 0x1E6FC, 0x230 + .incbin "baserom.nds", 0x1E92C, 0x228 + .incbin "baserom.nds", 0x1EB54, 0x230 + .incbin "baserom.nds", 0x1ED84, 0x228 + .incbin "baserom.nds", 0x1EFAC, 0x230 + .incbin "baserom.nds", 0x1F1DC, 0x228 + .incbin "baserom.nds", 0x1F404, 0x230 + .incbin "baserom.nds", 0x1F634, 0x228 + .incbin "baserom.nds", 0x1F85C, 0x230 + .incbin "baserom.nds", 0x1FA8C, 0x228 + .incbin "baserom.nds", 0x1FCB4, 0x230 + .incbin "baserom.nds", 0x1FEE4, 0x228 + .incbin "baserom.nds", 0x2010C, 0x230 + .incbin "baserom.nds", 0x2033C, 0x228 + .incbin "baserom.nds", 0x20564, 0x230 + .incbin "baserom.nds", 0x20794, 0x228 + .incbin "baserom.nds", 0x209BC, 0x230 + .incbin "baserom.nds", 0x20BEC, 0x228 + .incbin "baserom.nds", 0x20E14, 0x230 + .incbin "baserom.nds", 0x21044, 0x228 + .incbin "baserom.nds", 0x2126C, 0x230 + .incbin "baserom.nds", 0x2149C, 0x228 + .incbin "baserom.nds", 0x216C4, 0x230 + .incbin "baserom.nds", 0x218F4, 0x228 + .incbin "baserom.nds", 0x21B1C, 0x230 + .incbin "baserom.nds", 0x21D4C, 0x228 + .incbin "baserom.nds", 0x21F74, 0x230 + .incbin "baserom.nds", 0x221A4, 0x228 + .incbin "baserom.nds", 0x223CC, 0x230 + .incbin "baserom.nds", 0x225FC, 0x228 + .incbin "baserom.nds", 0x22824, 0x230 + .incbin "baserom.nds", 0x22A54, 0x228 + .incbin "baserom.nds", 0x22C7C, 0x230 + .incbin "baserom.nds", 0x22EAC, 0x228 + .incbin "baserom.nds", 0x230D4, 0x230 + .incbin "baserom.nds", 0x23304, 0x228 + .incbin "baserom.nds", 0x2352C, 0x228 + .incbin "baserom.nds", 0x23754, 0x230 + .incbin "baserom.nds", 0x23984, 0x228 + .incbin "baserom.nds", 0x23BAC, 0x230 + .incbin "baserom.nds", 0x23DDC, 0x228 + .incbin "baserom.nds", 0x24004, 0x230 + .incbin "baserom.nds", 0x24234, 0x228 + .incbin "baserom.nds", 0x2445C, 0x230 + .incbin "baserom.nds", 0x2468C, 0x228 + .incbin "baserom.nds", 0x248B4, 0x230 + .incbin "baserom.nds", 0x24AE4, 0x228 + .incbin "baserom.nds", 0x24D0C, 0x230 + .incbin "baserom.nds", 0x24F3C, 0x228 + .incbin "baserom.nds", 0x25164, 0x230 + .incbin "baserom.nds", 0x25394, 0x228 + .incbin "baserom.nds", 0x255BC, 0x230 + .incbin "baserom.nds", 0x257EC, 0x228 + .incbin "baserom.nds", 0x25A14, 0x230 + .incbin "baserom.nds", 0x25C44, 0x228 + .incbin "baserom.nds", 0x25E6C, 0x230 + .incbin "baserom.nds", 0x2609C, 0x228 + .incbin "baserom.nds", 0x262C4, 0x230 + .incbin "baserom.nds", 0x264F4, 0x228 + .incbin "baserom.nds", 0x2671C, 0x230 + .incbin "baserom.nds", 0x2694C, 0x228 + .incbin "baserom.nds", 0x26B74, 0x230 + .incbin "baserom.nds", 0x26DA4, 0x228 + .incbin "baserom.nds", 0x26FCC, 0x230 + .incbin "baserom.nds", 0x271FC, 0x228 + .incbin "baserom.nds", 0x27424, 0x230 + .incbin "baserom.nds", 0x27654, 0x228 + .incbin "baserom.nds", 0x2787C, 0x230 + .incbin "baserom.nds", 0x27AAC, 0x228 + .incbin "baserom.nds", 0x27CD4, 0x230 + .incbin "baserom.nds", 0x27F04, 0x228 + .incbin "baserom.nds", 0x2812C, 0x230 + .incbin "baserom.nds", 0x2835C, 0x228 + .incbin "baserom.nds", 0x28584, 0x230 + .incbin "baserom.nds", 0x287B4, 0x228 + .incbin "baserom.nds", 0x289DC, 0x230 + .incbin "baserom.nds", 0x28C0C, 0x228 + .incbin "baserom.nds", 0x28E34, 0x230 + .incbin "baserom.nds", 0x29064, 0x228 + .incbin "baserom.nds", 0x2928C, 0x230 + .incbin "baserom.nds", 0x294BC, 0x230 + .incbin "baserom.nds", 0x296EC, 0x228 + .incbin "baserom.nds", 0x29914, 0x230 + .incbin "baserom.nds", 0x29B44, 0x228 + .incbin "baserom.nds", 0x29D6C, 0x230 + .incbin "baserom.nds", 0x29F9C, 0x228 + .incbin "baserom.nds", 0x2A1C4, 0x230 + .incbin "baserom.nds", 0x2A3F4, 0x228 + .incbin "baserom.nds", 0x2A61C, 0x230 + .incbin "baserom.nds", 0x2A84C, 0x228 + .incbin "baserom.nds", 0x2AA74, 0x230 + .incbin "baserom.nds", 0x2ACA4, 0x228 + .incbin "baserom.nds", 0x2AECC, 0x230 + .incbin "baserom.nds", 0x2B0FC, 0x228 + .incbin "baserom.nds", 0x2B324, 0x230 + .incbin "baserom.nds", 0x2B554, 0x228 + .incbin "baserom.nds", 0x2B77C, 0x230 + .incbin "baserom.nds", 0x2B9AC, 0x228 + .incbin "baserom.nds", 0x2BBD4, 0x230 + .incbin "baserom.nds", 0x2BE04, 0x228 + .incbin "baserom.nds", 0x2C02C, 0x230 + .incbin "baserom.nds", 0x2C25C, 0x228 + .incbin "baserom.nds", 0x2C484, 0x230 + .incbin "baserom.nds", 0x2C6B4, 0x230 + .incbin "baserom.nds", 0x2C8E4, 0x228 + .incbin "baserom.nds", 0x2CB0C, 0x230 + .incbin "baserom.nds", 0x2CD3C, 0x228 + .incbin "baserom.nds", 0x2CF64, 0x230 + .incbin "baserom.nds", 0x2D194, 0x228 + .incbin "baserom.nds", 0x2D3BC, 0x230 + .incbin "baserom.nds", 0x2D5EC, 0x228 + .incbin "baserom.nds", 0x2D814, 0x230 + .incbin "baserom.nds", 0x2DA44, 0x228 + .incbin "baserom.nds", 0x2DC6C, 0x230 + .incbin "baserom.nds", 0x2DE9C, 0x228 + .incbin "baserom.nds", 0x2E0C4, 0x230 + .incbin "baserom.nds", 0x2E2F4, 0x228 + .incbin "baserom.nds", 0x2E51C, 0x228 + .incbin "baserom.nds", 0x2E744, 0x228 + .incbin "baserom.nds", 0x2E96C, 0x228 + .incbin "baserom.nds", 0x2EB94, 0x228 + .incbin "baserom.nds", 0x2EDBC, 0x230 + .incbin "baserom.nds", 0x2EFEC, 0x228 + .incbin "baserom.nds", 0x2F214, 0x230 + .incbin "baserom.nds", 0x2F444, 0x228 + .incbin "baserom.nds", 0x2F66C, 0x230 + .incbin "baserom.nds", 0x2F89C, 0x228 + .incbin "baserom.nds", 0x2FAC4, 0x230 + .incbin "baserom.nds", 0x2FCF4, 0x228 + .incbin "baserom.nds", 0x2FF1C, 0x230 + .incbin "baserom.nds", 0x3014C, 0x228 + .incbin "baserom.nds", 0x30374, 0x230 + .incbin "baserom.nds", 0x305A4, 0x228 + .incbin "baserom.nds", 0x307CC, 0x230 + .incbin "baserom.nds", 0x309FC, 0x228 + .incbin "baserom.nds", 0x30C24, 0x230 + .incbin "baserom.nds", 0x30E54, 0x228 + .incbin "baserom.nds", 0x3107C, 0x230 + .incbin "baserom.nds", 0x312AC, 0x228 + .incbin "baserom.nds", 0x314D4, 0x230 + .incbin "baserom.nds", 0x31704, 0x228 + .incbin "baserom.nds", 0x3192C, 0x230 + .incbin "baserom.nds", 0x31B5C, 0x228 + .incbin "baserom.nds", 0x31D84, 0x230 + .incbin "baserom.nds", 0x31FB4, 0x228 + .incbin "baserom.nds", 0x321DC, 0x230 + .incbin "baserom.nds", 0x3240C, 0x228 + .incbin "baserom.nds", 0x32634, 0x230 + .incbin "baserom.nds", 0x32864, 0x228 + .incbin "baserom.nds", 0x32A8C, 0x230 + .incbin "baserom.nds", 0x32CBC, 0x230 + .incbin "baserom.nds", 0x32EEC, 0x228 + .incbin "baserom.nds", 0x33114, 0x230 + .incbin "baserom.nds", 0x33344, 0x228 + .incbin "baserom.nds", 0x3356C, 0x228 + .incbin "baserom.nds", 0x33794, 0x230 + .incbin "baserom.nds", 0x339C4, 0x228 + .incbin "baserom.nds", 0x33BEC, 0x230 + .incbin "baserom.nds", 0x33E1C, 0x228 + .incbin "baserom.nds", 0x34044, 0x230 + .incbin "baserom.nds", 0x34274, 0x228 + .incbin "baserom.nds", 0x3449C, 0x230 + .incbin "baserom.nds", 0x346CC, 0x230 + .incbin "baserom.nds", 0x348FC, 0x230 + .incbin "baserom.nds", 0x34B2C, 0x230 + .incbin "baserom.nds", 0x34D5C, 0x230 + .incbin "baserom.nds", 0x34F8C, 0x230 + .incbin "baserom.nds", 0x351BC, 0x228 + .incbin "baserom.nds", 0x353E4, 0x230 + .incbin "baserom.nds", 0x35614, 0x230 + .incbin "baserom.nds", 0x35844, 0x228 + .incbin "baserom.nds", 0x35A6C, 0x230 + .incbin "baserom.nds", 0x35C9C, 0x228 + .incbin "baserom.nds", 0x35EC4, 0x228 + .incbin "baserom.nds", 0x360EC, 0x228 + .incbin "baserom.nds", 0x36314, 0x228 + .incbin "baserom.nds", 0x3653C, 0x228 + .incbin "baserom.nds", 0x36764, 0x228 + .incbin "baserom.nds", 0x3698C, 0x228 + .incbin "baserom.nds", 0x36BB4, 0x228 + .incbin "baserom.nds", 0x36DDC, 0x228 + .incbin "baserom.nds", 0x37004, 0x228 + .incbin "baserom.nds", 0x3722C, 0x228 + .incbin "baserom.nds", 0x37454, 0x228 + .incbin "baserom.nds", 0x3767C, 0x228 + .incbin "baserom.nds", 0x378A4, 0x228 + .incbin "baserom.nds", 0x37ACC, 0x228 + .incbin "baserom.nds", 0x37CF4, 0x228 + .incbin "baserom.nds", 0x37F1C, 0x230 + .incbin "baserom.nds", 0x3814C, 0x230 + .incbin "baserom.nds", 0x3837C, 0x228 + .incbin "baserom.nds", 0x385A4, 0x230 + .incbin "baserom.nds", 0x387D4, 0x228 + .incbin "baserom.nds", 0x389FC, 0x230 + .incbin "baserom.nds", 0x38C2C, 0x228 + .incbin "baserom.nds", 0x38E54, 0x230 + .incbin "baserom.nds", 0x39084, 0x228 + .incbin "baserom.nds", 0x392AC, 0x230 + .incbin "baserom.nds", 0x394DC, 0x228 + .incbin "baserom.nds", 0x39704, 0x230 + .incbin "baserom.nds", 0x39934, 0x228 + .incbin "baserom.nds", 0x39B5C, 0x230 + .incbin "baserom.nds", 0x39D8C, 0x228 + .incbin "baserom.nds", 0x39FB4, 0x230 + .incbin "baserom.nds", 0x3A1E4, 0x228 + .incbin "baserom.nds", 0x3A40C, 0x230 + .incbin "baserom.nds", 0x3A63C, 0x228 + .incbin "baserom.nds", 0x3A864, 0x230 + .incbin "baserom.nds", 0x3AA94, 0x228 + .incbin "baserom.nds", 0x3ACBC, 0x230 + .incbin "baserom.nds", 0x3AEEC, 0x228 + .incbin "baserom.nds", 0x3B114, 0x230 + .incbin "baserom.nds", 0x3B344, 0x228 + .incbin "baserom.nds", 0x3B56C, 0x230 + .incbin "baserom.nds", 0x3B79C, 0x228 + .incbin "baserom.nds", 0x3B9C4, 0x230 + .incbin "baserom.nds", 0x3BBF4, 0x228 + .incbin "baserom.nds", 0x3BE1C, 0x230 + .incbin "baserom.nds", 0x3C04C, 0x228 + .incbin "baserom.nds", 0x3C274, 0x230 + .incbin "baserom.nds", 0x3C4A4, 0x228 + .incbin "baserom.nds", 0x3C6CC, 0x230 + .incbin "baserom.nds", 0x3C8FC, 0x228 + .incbin "baserom.nds", 0x3CB24, 0x230 + .incbin "baserom.nds", 0x3CD54, 0x228 + .incbin "baserom.nds", 0x3CF7C, 0x230 + .incbin "baserom.nds", 0x3D1AC, 0x228 + .incbin "baserom.nds", 0x3D3D4, 0x230 + .incbin "baserom.nds", 0x3D604, 0x228 + .incbin "baserom.nds", 0x3D82C, 0x230 + .incbin "baserom.nds", 0x3DA5C, 0x228 + .incbin "baserom.nds", 0x3DC84, 0x230 + .incbin "baserom.nds", 0x3DEB4, 0x228 + .incbin "baserom.nds", 0x3E0DC, 0x230 + .incbin "baserom.nds", 0x3E30C, 0x228 + .incbin "baserom.nds", 0x3E534, 0x230 + .incbin "baserom.nds", 0x3E764, 0x228 + .incbin "baserom.nds", 0x3E98C, 0x228 + .incbin "baserom.nds", 0x3EBB4, 0x230 + .incbin "baserom.nds", 0x3EDE4, 0x228 + .incbin "baserom.nds", 0x3F00C, 0x230 + .incbin "baserom.nds", 0x3F23C, 0x228 + .incbin "baserom.nds", 0x3F464, 0x230 + .incbin "baserom.nds", 0x3F694, 0x228 + .incbin "baserom.nds", 0x3F8BC, 0x230 + .incbin "baserom.nds", 0x3FAEC, 0x228 + .incbin "baserom.nds", 0x3FD14, 0x230 + .incbin "baserom.nds", 0x3FF44, 0x228 + .incbin "baserom.nds", 0x4016C, 0x230 + .incbin "baserom.nds", 0x4039C, 0x228 + .incbin "baserom.nds", 0x405C4, 0x230 + .incbin "baserom.nds", 0x407F4, 0x228 + .incbin "baserom.nds", 0x40A1C, 0x230 + .incbin "baserom.nds", 0x40C4C, 0x228 + .incbin "baserom.nds", 0x40E74, 0x230 + .incbin "baserom.nds", 0x410A4, 0x228 + .incbin "baserom.nds", 0x412CC, 0x230 + .incbin "baserom.nds", 0x414FC, 0x228 + .incbin "baserom.nds", 0x41724, 0x230 + .incbin "baserom.nds", 0x41954, 0x228 + .incbin "baserom.nds", 0x41B7C, 0x230 + .incbin "baserom.nds", 0x41DAC, 0x228 + .incbin "baserom.nds", 0x41FD4, 0x230 + .incbin "baserom.nds", 0x42204, 0x228 + .incbin "baserom.nds", 0x4242C, 0x230 + .incbin "baserom.nds", 0x4265C, 0x228 + .incbin "baserom.nds", 0x42884, 0x230 + .incbin "baserom.nds", 0x42AB4, 0x228 + .incbin "baserom.nds", 0x42CDC, 0x230 + .incbin "baserom.nds", 0x42F0C, 0x228 + .incbin "baserom.nds", 0x43134, 0x230 + .incbin "baserom.nds", 0x43364, 0x228 + .incbin "baserom.nds", 0x4358C, 0x230 + .incbin "baserom.nds", 0x437BC, 0x228 + .incbin "baserom.nds", 0x439E4, 0x230 + .incbin "baserom.nds", 0x43C14, 0x228 + .incbin "baserom.nds", 0x43E3C, 0x230 + .incbin "baserom.nds", 0x4406C, 0x228 + .incbin "baserom.nds", 0x44294, 0x230 + .incbin "baserom.nds", 0x444C4, 0x228 + .incbin "baserom.nds", 0x446EC, 0x230 + .incbin "baserom.nds", 0x4491C, 0x228 + .incbin "baserom.nds", 0x44B44, 0x230 + .incbin "baserom.nds", 0x44D74, 0x228 + .incbin "baserom.nds", 0x44F9C, 0x230 + .incbin "baserom.nds", 0x451CC, 0x228 + .incbin "baserom.nds", 0x453F4, 0x230 + .incbin "baserom.nds", 0x45624, 0x228 + .incbin "baserom.nds", 0x4584C, 0x230 + .incbin "baserom.nds", 0x45A7C, 0x228 + .incbin "baserom.nds", 0x45CA4, 0x230 + .incbin "baserom.nds", 0x45ED4, 0x228 + .incbin "baserom.nds", 0x460FC, 0x230 + .incbin "baserom.nds", 0x4632C, 0x228 + .incbin "baserom.nds", 0x46554, 0x230 + .incbin "baserom.nds", 0x46784, 0x228 + .incbin "baserom.nds", 0x469AC, 0x230 + .incbin "baserom.nds", 0x46BDC, 0x228 + .incbin "baserom.nds", 0x46E04, 0x230 + .incbin "baserom.nds", 0x47034, 0x228 + .incbin "baserom.nds", 0x4725C, 0x230 + .incbin "baserom.nds", 0x4748C, 0x228 + .incbin "baserom.nds", 0x476B4, 0x230 + .incbin "baserom.nds", 0x478E4, 0x228 + .incbin "baserom.nds", 0x47B0C, 0x230 + .incbin "baserom.nds", 0x47D3C, 0x228 + .incbin "baserom.nds", 0x47F64, 0x230 + .incbin "baserom.nds", 0x48194, 0x228 + .incbin "baserom.nds", 0x483BC, 0x230 + .incbin "baserom.nds", 0x485EC, 0x228 + .incbin "baserom.nds", 0x48814, 0x230 + .incbin "baserom.nds", 0x48A44, 0x228 + .incbin "baserom.nds", 0x48C6C, 0x230 + .incbin "baserom.nds", 0x48E9C, 0x228 + .incbin "baserom.nds", 0x490C4, 0x230 + .incbin "baserom.nds", 0x492F4, 0x228 + .incbin "baserom.nds", 0x4951C, 0x230 + .incbin "baserom.nds", 0x4974C, 0x228 + .incbin "baserom.nds", 0x49974, 0x230 + .incbin "baserom.nds", 0x49BA4, 0x228 + .incbin "baserom.nds", 0x49DCC, 0x230 + .incbin "baserom.nds", 0x49FFC, 0x228 + .incbin "baserom.nds", 0x4A224, 0x230 + .incbin "baserom.nds", 0x4A454, 0x228 + .incbin "baserom.nds", 0x4A67C, 0x230 + .incbin "baserom.nds", 0x4A8AC, 0x228 + .incbin "baserom.nds", 0x4AAD4, 0x230 + .incbin "baserom.nds", 0x4AD04, 0x228 + .incbin "baserom.nds", 0x4AF2C, 0x230 + .incbin "baserom.nds", 0x4B15C, 0x228 + .incbin "baserom.nds", 0x4B384, 0x230 + .incbin "baserom.nds", 0x4B5B4, 0x228 + .incbin "baserom.nds", 0x4B7DC, 0x230 + .incbin "baserom.nds", 0x4BA0C, 0x228 + .incbin "baserom.nds", 0x4BC34, 0x230 + .incbin "baserom.nds", 0x4BE64, 0x228 + .incbin "baserom.nds", 0x4C08C, 0x230 + .incbin "baserom.nds", 0x4C2BC, 0x228 + .incbin "baserom.nds", 0x4C4E4, 0x230 + .incbin "baserom.nds", 0x4C714, 0x228 + .incbin "baserom.nds", 0x4C93C, 0x230 + .incbin "baserom.nds", 0x4CB6C, 0x228 + .incbin "baserom.nds", 0x4CD94, 0x230 + .incbin "baserom.nds", 0x4CFC4, 0x228 + .incbin "baserom.nds", 0x4D1EC, 0x230 + .incbin "baserom.nds", 0x4D41C, 0x228 + .incbin "baserom.nds", 0x4D644, 0x230 + .incbin "baserom.nds", 0x4D874, 0x228 + .incbin "baserom.nds", 0x4DA9C, 0x230 + .incbin "baserom.nds", 0x4DCCC, 0x228 + .incbin "baserom.nds", 0x4DEF4, 0x230 + .incbin "baserom.nds", 0x4E124, 0x228 + .incbin "baserom.nds", 0x4E34C, 0x230 + .incbin "baserom.nds", 0x4E57C, 0x228 + .incbin "baserom.nds", 0x4E7A4, 0x230 + .incbin "baserom.nds", 0x4E9D4, 0x228 + .incbin "baserom.nds", 0x4EBFC, 0x230 + .incbin "baserom.nds", 0x4EE2C, 0x228 + .incbin "baserom.nds", 0x4F054, 0x230 + .incbin "baserom.nds", 0x4F284, 0x228 + .incbin "baserom.nds", 0x4F4AC, 0x230 + .incbin "baserom.nds", 0x4F6DC, 0x228 + .incbin "baserom.nds", 0x4F904, 0x230 + .incbin "baserom.nds", 0x4FB34, 0x228 + .incbin "baserom.nds", 0x4FD5C, 0x230 + .incbin "baserom.nds", 0x4FF8C, 0x228 + .incbin "baserom.nds", 0x501B4, 0x230 + .incbin "baserom.nds", 0x503E4, 0x228 + .incbin "baserom.nds", 0x5060C, 0x230 + .incbin "baserom.nds", 0x5083C, 0x228 + .incbin "baserom.nds", 0x50A64, 0x230 + .incbin "baserom.nds", 0x50C94, 0x228 + .incbin "baserom.nds", 0x50EBC, 0x230 + .incbin "baserom.nds", 0x510EC, 0x228 + .incbin "baserom.nds", 0x51314, 0x230 + .incbin "baserom.nds", 0x51544, 0x228 + .incbin "baserom.nds", 0x5176C, 0x230 + .incbin "baserom.nds", 0x5199C, 0x228 + .incbin "baserom.nds", 0x51BC4, 0x230 + .incbin "baserom.nds", 0x51DF4, 0x228 + .incbin "baserom.nds", 0x5201C, 0x230 + .incbin "baserom.nds", 0x5224C, 0x228 + .incbin "baserom.nds", 0x52474, 0x230 + .incbin "baserom.nds", 0x526A4, 0x228 + .incbin "baserom.nds", 0x528CC, 0x228 + .incbin "baserom.nds", 0x52AF4, 0x230 + .incbin "baserom.nds", 0x52D24, 0x228 + .incbin "baserom.nds", 0x52F4C, 0x230 + .incbin "baserom.nds", 0x5317C, 0x228 + .incbin "baserom.nds", 0x533A4, 0x230 + .incbin "baserom.nds", 0x535D4, 0x228 + .incbin "baserom.nds", 0x537FC, 0x230 + .incbin "baserom.nds", 0x53A2C, 0x228 + .incbin "baserom.nds", 0x53C54, 0x230 + .incbin "baserom.nds", 0x53E84, 0x228 + .incbin "baserom.nds", 0x540AC, 0x228 + .incbin "baserom.nds", 0x542D4, 0x228 + .incbin "baserom.nds", 0x544FC, 0x228 + .incbin "baserom.nds", 0x54724, 0x228 + .incbin "baserom.nds", 0x5494C, 0x228 + .incbin "baserom.nds", 0x54B74, 0x228 + .incbin "baserom.nds", 0x54D9C, 0x228 + .incbin "baserom.nds", 0x54FC4, 0x228 + .incbin "baserom.nds", 0x551EC, 0x228 + .incbin "baserom.nds", 0x55414, 0x228 + .incbin "baserom.nds", 0x5563C, 0x228 + .incbin "baserom.nds", 0x55864, 0x228 + .incbin "baserom.nds", 0x55A8C, 0x228 + .incbin "baserom.nds", 0x55CB4, 0x228 + .incbin "baserom.nds", 0x55EDC, 0x228 + .incbin "baserom.nds", 0x56104, 0x230 + .incbin "baserom.nds", 0x56334, 0x228 + .incbin "baserom.nds", 0x5655C, 0x230 + .incbin "baserom.nds", 0x5678C, 0x228 + .incbin "baserom.nds", 0x569B4, 0x230 + .incbin "baserom.nds", 0x56BE4, 0x228 + .incbin "baserom.nds", 0x56E0C, 0x230 + .incbin "baserom.nds", 0x5703C, 0x228 + .incbin "baserom.nds", 0x57264, 0x230 + .incbin "baserom.nds", 0x57494, 0x228 + .incbin "baserom.nds", 0x576BC, 0x230 + .incbin "baserom.nds", 0x578EC, 0x228 + .incbin "baserom.nds", 0x57B14, 0x230 + .incbin "baserom.nds", 0x57D44, 0x228 + .incbin "baserom.nds", 0x57F6C, 0x230 + .incbin "baserom.nds", 0x5819C, 0x228 + .incbin "baserom.nds", 0x583C4, 0x230 + .incbin "baserom.nds", 0x585F4, 0x228 + .incbin "baserom.nds", 0x5881C, 0x230 + .incbin "baserom.nds", 0x58A4C, 0x228 + .incbin "baserom.nds", 0x58C74, 0x230 + .incbin "baserom.nds", 0x58EA4, 0x228 + .incbin "baserom.nds", 0x590CC, 0x228 + .incbin "baserom.nds", 0x592F4, 0x230 + .incbin "baserom.nds", 0x59524, 0x228 + .incbin "baserom.nds", 0x5974C, 0x230 + .incbin "baserom.nds", 0x5997C, 0x228 + .incbin "baserom.nds", 0x59BA4, 0x230 + .incbin "baserom.nds", 0x59DD4, 0x228 + .incbin "baserom.nds", 0x59FFC, 0x230 + .incbin "baserom.nds", 0x5A22C, 0x228 + .incbin "baserom.nds", 0x5A454, 0x230 + .incbin "baserom.nds", 0x5A684, 0x228 + .incbin "baserom.nds", 0x5A8AC, 0x230 + .incbin "baserom.nds", 0x5AADC, 0x228 + .incbin "baserom.nds", 0x5AD04, 0x230 + .incbin "baserom.nds", 0x5AF34, 0x228 + .incbin "baserom.nds", 0x5B15C, 0x230 + .incbin "baserom.nds", 0x5B38C, 0x228 + .incbin "baserom.nds", 0x5B5B4, 0x230 + .incbin "baserom.nds", 0x5B7E4, 0x228 + .incbin "baserom.nds", 0x5BA0C, 0x230 + .incbin "baserom.nds", 0x5BC3C, 0x228 + .incbin "baserom.nds", 0x5BE64, 0x230 + .incbin "baserom.nds", 0x5C094, 0x228 + .incbin "baserom.nds", 0x5C2BC, 0x230 + .incbin "baserom.nds", 0x5C4EC, 0x228 + .incbin "baserom.nds", 0x5C714, 0x230 + .incbin "baserom.nds", 0x5C944, 0x228 + .incbin "baserom.nds", 0x5CB6C, 0x230 + .incbin "baserom.nds", 0x5CD9C, 0x228 + .incbin "baserom.nds", 0x5CFC4, 0x230 + .incbin "baserom.nds", 0x5D1F4, 0x228 + .incbin "baserom.nds", 0x5D41C, 0x230 + .incbin "baserom.nds", 0x5D64C, 0x228 + .incbin "baserom.nds", 0x5D874, 0x230 + .incbin "baserom.nds", 0x5DAA4, 0x228 + .incbin "baserom.nds", 0x5DCCC, 0x230 + .incbin "baserom.nds", 0x5DEFC, 0x228 + .incbin "baserom.nds", 0x5E124, 0x230 + .incbin "baserom.nds", 0x5E354, 0x228 + .incbin "baserom.nds", 0x5E57C, 0x230 + .incbin "baserom.nds", 0x5E7AC, 0x228 + .incbin "baserom.nds", 0x5E9D4, 0x230 + .incbin "baserom.nds", 0x5EC04, 0x228 + .incbin "baserom.nds", 0x5EE2C, 0x230 + .incbin "baserom.nds", 0x5F05C, 0x228 + .balign 4, 255 diff --git a/narc/itemdata/nuts_data.narc.s b/narc/itemdata/nuts_data.narc.s new file mode 100644 index 00000000..a0b7a952 --- /dev/null +++ b/narc/itemdata/nuts_data.narc.s @@ -0,0 +1,154 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00000534 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000020C ; chunk size + .short 64 ; number of files + .balign 4 + .word 0x00000000, 0x0000000C + .word 0x0000000C, 0x00000018 + .word 0x00000018, 0x00000024 + .word 0x00000024, 0x00000030 + .word 0x00000030, 0x0000003C + .word 0x0000003C, 0x00000048 + .word 0x00000048, 0x00000054 + .word 0x00000054, 0x00000060 + .word 0x00000060, 0x0000006C + .word 0x0000006C, 0x00000078 + .word 0x00000078, 0x00000084 + .word 0x00000084, 0x00000090 + .word 0x00000090, 0x0000009C + .word 0x0000009C, 0x000000A8 + .word 0x000000A8, 0x000000B4 + .word 0x000000B4, 0x000000C0 + .word 0x000000C0, 0x000000CC + .word 0x000000CC, 0x000000D8 + .word 0x000000D8, 0x000000E4 + .word 0x000000E4, 0x000000F0 + .word 0x000000F0, 0x000000FC + .word 0x000000FC, 0x00000108 + .word 0x00000108, 0x00000114 + .word 0x00000114, 0x00000120 + .word 0x00000120, 0x0000012C + .word 0x0000012C, 0x00000138 + .word 0x00000138, 0x00000144 + .word 0x00000144, 0x00000150 + .word 0x00000150, 0x0000015C + .word 0x0000015C, 0x00000168 + .word 0x00000168, 0x00000174 + .word 0x00000174, 0x00000180 + .word 0x00000180, 0x0000018C + .word 0x0000018C, 0x00000198 + .word 0x00000198, 0x000001A4 + .word 0x000001A4, 0x000001B0 + .word 0x000001B0, 0x000001BC + .word 0x000001BC, 0x000001C8 + .word 0x000001C8, 0x000001D4 + .word 0x000001D4, 0x000001E0 + .word 0x000001E0, 0x000001EC + .word 0x000001EC, 0x000001F8 + .word 0x000001F8, 0x00000204 + .word 0x00000204, 0x00000210 + .word 0x00000210, 0x0000021C + .word 0x0000021C, 0x00000228 + .word 0x00000228, 0x00000234 + .word 0x00000234, 0x00000240 + .word 0x00000240, 0x0000024C + .word 0x0000024C, 0x00000258 + .word 0x00000258, 0x00000264 + .word 0x00000264, 0x00000270 + .word 0x00000270, 0x0000027C + .word 0x0000027C, 0x00000288 + .word 0x00000288, 0x00000294 + .word 0x00000294, 0x000002A0 + .word 0x000002A0, 0x000002AC + .word 0x000002AC, 0x000002B8 + .word 0x000002B8, 0x000002C4 + .word 0x000002C4, 0x000002D0 + .word 0x000002D0, 0x000002DC + .word 0x000002DC, 0x000002E8 + .word 0x000002E8, 0x000002F4 + .word 0x000002F4, 0x00000300 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00000308 ; chunk size + .incbin "baserom.nds", 0x0, 0xC + .incbin "baserom.nds", 0xC, 0xC + .incbin "baserom.nds", 0x18, 0xC + .incbin "baserom.nds", 0x24, 0xC + .incbin "baserom.nds", 0x30, 0xC + .incbin "baserom.nds", 0x3C, 0xC + .incbin "baserom.nds", 0x48, 0xC + .incbin "baserom.nds", 0x54, 0xC + .incbin "baserom.nds", 0x60, 0xC + .incbin "baserom.nds", 0x6C, 0xC + .incbin "baserom.nds", 0x78, 0xC + .incbin "baserom.nds", 0x84, 0xC + .incbin "baserom.nds", 0x90, 0xC + .incbin "baserom.nds", 0x9C, 0xC + .incbin "baserom.nds", 0xA8, 0xC + .incbin "baserom.nds", 0xB4, 0xC + .incbin "baserom.nds", 0xC0, 0xC + .incbin "baserom.nds", 0xCC, 0xC + .incbin "baserom.nds", 0xD8, 0xC + .incbin "baserom.nds", 0xE4, 0xC + .incbin "baserom.nds", 0xF0, 0xC + .incbin "baserom.nds", 0xFC, 0xC + .incbin "baserom.nds", 0x108, 0xC + .incbin "baserom.nds", 0x114, 0xC + .incbin "baserom.nds", 0x120, 0xC + .incbin "baserom.nds", 0x12C, 0xC + .incbin "baserom.nds", 0x138, 0xC + .incbin "baserom.nds", 0x144, 0xC + .incbin "baserom.nds", 0x150, 0xC + .incbin "baserom.nds", 0x15C, 0xC + .incbin "baserom.nds", 0x168, 0xC + .incbin "baserom.nds", 0x174, 0xC + .incbin "baserom.nds", 0x180, 0xC + .incbin "baserom.nds", 0x18C, 0xC + .incbin "baserom.nds", 0x198, 0xC + .incbin "baserom.nds", 0x1A4, 0xC + .incbin "baserom.nds", 0x1B0, 0xC + .incbin "baserom.nds", 0x1BC, 0xC + .incbin "baserom.nds", 0x1C8, 0xC + .incbin "baserom.nds", 0x1D4, 0xC + .incbin "baserom.nds", 0x1E0, 0xC + .incbin "baserom.nds", 0x1EC, 0xC + .incbin "baserom.nds", 0x1F8, 0xC + .incbin "baserom.nds", 0x204, 0xC + .incbin "baserom.nds", 0x210, 0xC + .incbin "baserom.nds", 0x21C, 0xC + .incbin "baserom.nds", 0x228, 0xC + .incbin "baserom.nds", 0x234, 0xC + .incbin "baserom.nds", 0x240, 0xC + .incbin "baserom.nds", 0x24C, 0xC + .incbin "baserom.nds", 0x258, 0xC + .incbin "baserom.nds", 0x264, 0xC + .incbin "baserom.nds", 0x270, 0xC + .incbin "baserom.nds", 0x27C, 0xC + .incbin "baserom.nds", 0x288, 0xC + .incbin "baserom.nds", 0x294, 0xC + .incbin "baserom.nds", 0x2A0, 0xC + .incbin "baserom.nds", 0x2AC, 0xC + .incbin "baserom.nds", 0x2B8, 0xC + .incbin "baserom.nds", 0x2C4, 0xC + .incbin "baserom.nds", 0x2D0, 0xC + .incbin "baserom.nds", 0x2DC, 0xC + .incbin "baserom.nds", 0x2E8, 0xC + .incbin "baserom.nds", 0x2F4, 0xC + .balign 4, 255 diff --git a/narc/land_data/land_data_release.narc.s b/narc/land_data/land_data_release.narc.s new file mode 100644 index 00000000..a8745360 --- /dev/null +++ b/narc/land_data/land_data_release.narc.s @@ -0,0 +1,1182 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00E17F2C ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000121C ; chunk size + .short 578 ; number of files + .balign 4 + .word 0x00000000, 0x00009434 + .word 0x00009434, 0x0000BADA + .word 0x0000BADC, 0x0000E18E + .word 0x0000E190, 0x00010852 + .word 0x00010854, 0x00014BEE + .word 0x00014BF0, 0x000193D6 + .word 0x000193D8, 0x0001D59A + .word 0x0001D59C, 0x00024012 + .word 0x00024014, 0x0002AAF6 + .word 0x0002AAF8, 0x00034A50 + .word 0x00034A50, 0x0003D580 + .word 0x0003D580, 0x00042222 + .word 0x00042224, 0x00047BEC + .word 0x00047BEC, 0x0004FC80 + .word 0x0004FC80, 0x00056F86 + .word 0x00056F88, 0x0005C0E8 + .word 0x0005C0E8, 0x000637D0 + .word 0x000637D0, 0x000673D4 + .word 0x000673D4, 0x0006CF72 + .word 0x0006CF74, 0x00073ACE + .word 0x00073AD0, 0x0007C04C + .word 0x0007C04C, 0x00085E4A + .word 0x00085E4C, 0x0008BD28 + .word 0x0008BD28, 0x00092DAA + .word 0x00092DAC, 0x00099588 + .word 0x00099588, 0x000A33D4 + .word 0x000A33D4, 0x000AD672 + .word 0x000AD674, 0x000B8880 + .word 0x000B8880, 0x000C6804 + .word 0x000C6804, 0x000D54DA + .word 0x000D54DC, 0x000DEA38 + .word 0x000DEA38, 0x000E9914 + .word 0x000E9914, 0x000EE852 + .word 0x000EE854, 0x000F590E + .word 0x000F5910, 0x00100258 + .word 0x00100258, 0x0010DD54 + .word 0x0010DD54, 0x0011509E + .word 0x001150A0, 0x0011F982 + .word 0x0011F984, 0x00123A1E + .word 0x00123A20, 0x00125DB2 + .word 0x00125DB4, 0x0012AE64 + .word 0x0012AE64, 0x001325D8 + .word 0x001325D8, 0x0013A672 + .word 0x0013A674, 0x00143A70 + .word 0x00143A70, 0x00149E1E + .word 0x00149E20, 0x0015037E + .word 0x00150380, 0x0015B5A2 + .word 0x0015B5A4, 0x00167568 + .word 0x00167568, 0x0016FF12 + .word 0x0016FF14, 0x00177058 + .word 0x00177058, 0x0017F062 + .word 0x0017F064, 0x001867F6 + .word 0x001867F8, 0x00194378 + .word 0x00194378, 0x001A36AC + .word 0x001A36AC, 0x001ADA70 + .word 0x001ADA70, 0x001BD5B2 + .word 0x001BD5B4, 0x001C7DD4 + .word 0x001C7DD4, 0x001D051E + .word 0x001D0520, 0x001D910E + .word 0x001D9110, 0x001DFAD2 + .word 0x001DFAD4, 0x001E6AA6 + .word 0x001E6AA8, 0x001F4ECC + .word 0x001F4ECC, 0x00201B5A + .word 0x00201B5C, 0x0020FA3A + .word 0x0020FA3C, 0x0021DE7C + .word 0x0021DE7C, 0x002290D2 + .word 0x002290D4, 0x00230A26 + .word 0x00230A28, 0x002382B2 + .word 0x002382B4, 0x00242E9A + .word 0x00242E9C, 0x0024F7AC + .word 0x0024F7AC, 0x0025BCD8 + .word 0x0025BCD8, 0x00263E14 + .word 0x00263E14, 0x00269906 + .word 0x00269908, 0x002727BE + .word 0x002727C0, 0x0027E9BE + .word 0x0027E9C0, 0x0028B546 + .word 0x0028B548, 0x00294836 + .word 0x00294838, 0x0029BB88 + .word 0x0029BB88, 0x002A3F7A + .word 0x002A3F7C, 0x002AE28E + .word 0x002AE290, 0x002BBD98 + .word 0x002BBD98, 0x002C0F12 + .word 0x002C0F14, 0x002C6472 + .word 0x002C6474, 0x002CD516 + .word 0x002CD518, 0x002D158C + .word 0x002D158C, 0x002DAD54 + .word 0x002DAD54, 0x002E1A80 + .word 0x002E1A80, 0x002EA49A + .word 0x002EA49C, 0x002F6152 + .word 0x002F6154, 0x0030221A + .word 0x0030221C, 0x0030D5BA + .word 0x0030D5BC, 0x00317440 + .word 0x00317440, 0x003201B6 + .word 0x003201B8, 0x0032C5CA + .word 0x0032C5CC, 0x003369F2 + .word 0x003369F4, 0x0033CCDA + .word 0x0033CCDC, 0x00346942 + .word 0x00346944, 0x00354118 + .word 0x00354118, 0x00361F32 + .word 0x00361F34, 0x0036E458 + .word 0x0036E458, 0x00372BE2 + .word 0x00372BE4, 0x00377366 + .word 0x00377368, 0x0037CB1E + .word 0x0037CB20, 0x00382852 + .word 0x00382854, 0x00388626 + .word 0x00388628, 0x0038E7B0 + .word 0x0038E7B0, 0x0039378E + .word 0x00393790, 0x00394B5A + .word 0x00394B5C, 0x00396FE6 + .word 0x00396FE8, 0x0039CAB6 + .word 0x0039CAB8, 0x003A564E + .word 0x003A5650, 0x003B204E + .word 0x003B2050, 0x003BB42E + .word 0x003BB430, 0x003C67AA + .word 0x003C67AC, 0x003D2568 + .word 0x003D2568, 0x003DEDCA + .word 0x003DEDCC, 0x003E6326 + .word 0x003E6328, 0x003EDA36 + .word 0x003EDA38, 0x003F775E + .word 0x003F7760, 0x004063FA + .word 0x004063FC, 0x0040D956 + .word 0x0040D958, 0x00415066 + .word 0x00415068, 0x0041ED8E + .word 0x0041ED90, 0x0042E12A + .word 0x0042E12C, 0x004307CE + .word 0x004307D0, 0x004331E2 + .word 0x004331E4, 0x00435B06 + .word 0x00435B08, 0x004381AA + .word 0x004381AC, 0x0043ABBE + .word 0x0043ABC0, 0x0043D4E2 + .word 0x0043D4E4, 0x0043FB86 + .word 0x0043FB88, 0x0044259A + .word 0x0044259C, 0x00448050 + .word 0x00448050, 0x0044DC2A + .word 0x0044DC2C, 0x00453C5E + .word 0x00453C60, 0x0045B704 + .word 0x0045B704, 0x00462424 + .word 0x00462424, 0x00470996 + .word 0x00470998, 0x00474E3A + .word 0x00474E3C, 0x00482E2C + .word 0x00482E2C, 0x00490EF4 + .word 0x00490EF4, 0x0049F23A + .word 0x0049F23C, 0x004A674E + .word 0x004A6750, 0x004ADC66 + .word 0x004ADC68, 0x004B6FA0 + .word 0x004B6FA0, 0x004BFBC4 + .word 0x004BFBC4, 0x004C77AC + .word 0x004C77AC, 0x004D2CD0 + .word 0x004D2CD0, 0x004DB9EA + .word 0x004DB9EC, 0x004E1B8C + .word 0x004E1B8C, 0x004E8584 + .word 0x004E8584, 0x004F12C0 + .word 0x004F12C0, 0x004F9F80 + .word 0x004F9F80, 0x00501D94 + .word 0x00501D94, 0x00509050 + .word 0x00509050, 0x0050B90A + .word 0x0050B90C, 0x00510F42 + .word 0x00510F44, 0x0051A42A + .word 0x0051A42C, 0x00525F56 + .word 0x00525F58, 0x0052A706 + .word 0x0052A708, 0x0052F72E + .word 0x0052F730, 0x00534782 + .word 0x00534784, 0x005380B2 + .word 0x005380B4, 0x005436F2 + .word 0x005436F4, 0x00553B8C + .word 0x00553B8C, 0x00562E2E + .word 0x00562E30, 0x0056F3FC + .word 0x0056F3FC, 0x0057B42E + .word 0x0057B430, 0x0058485C + .word 0x0058485C, 0x0058B36E + .word 0x0058B370, 0x00597314 + .word 0x00597314, 0x005A6DD2 + .word 0x005A6DD4, 0x005B4BEC + .word 0x005B4BEC, 0x005B9E8E + .word 0x005B9E90, 0x005BAB7E + .word 0x005BAB80, 0x005BB86E + .word 0x005BB870, 0x005C0B0A + .word 0x005C0B0C, 0x005C5DA6 + .word 0x005C5DA8, 0x005C683E + .word 0x005C6840, 0x005C7BB2 + .word 0x005C7BB4, 0x005C8FAA + .word 0x005C8FAC, 0x005C9FB6 + .word 0x005C9FB8, 0x005CAF32 + .word 0x005CAF34, 0x005CCFEA + .word 0x005CCFEC, 0x005CE5C2 + .word 0x005CE5C4, 0x005D063A + .word 0x005D063C, 0x005D1C46 + .word 0x005D1C48, 0x005D3240 + .word 0x005D3240, 0x005D4930 + .word 0x005D4930, 0x005D7322 + .word 0x005D7324, 0x005DA96A + .word 0x005DA96C, 0x005DF686 + .word 0x005DF688, 0x005E17BE + .word 0x005E17C0, 0x005E30EA + .word 0x005E30EC, 0x005E533A + .word 0x005E533C, 0x005E730E + .word 0x005E7310, 0x005EC02E + .word 0x005EC030, 0x005ED6AE + .word 0x005ED6B0, 0x005EEC34 + .word 0x005EEC34, 0x005F0482 + .word 0x005F0484, 0x005F2616 + .word 0x005F2618, 0x005F48E2 + .word 0x005F48E4, 0x005F6CEE + .word 0x005F6CF0, 0x005F8A7E + .word 0x005F8A80, 0x005FA9E6 + .word 0x005FA9E8, 0x005FBEDA + .word 0x005FBEDC, 0x005FE08A + .word 0x005FE08C, 0x00602786 + .word 0x00602788, 0x00605E5E + .word 0x00605E60, 0x0060713E + .word 0x00607140, 0x00609676 + .word 0x00609678, 0x0060C070 + .word 0x0060C070, 0x0060EF4C + .word 0x0060EF4C, 0x00612088 + .word 0x00612088, 0x00614BC4 + .word 0x00614BC4, 0x00616726 + .word 0x00616728, 0x00618B2E + .word 0x00618B30, 0x00619DB2 + .word 0x00619DB4, 0x0061B782 + .word 0x0061B784, 0x0061CA42 + .word 0x0061CA44, 0x0061EC2A + .word 0x0061EC2C, 0x006213BA + .word 0x006213BC, 0x0062A710 + .word 0x0062A710, 0x0062E4A4 + .word 0x0062E4A4, 0x006316E2 + .word 0x006316E4, 0x006332FA + .word 0x006332FC, 0x00634F12 + .word 0x00634F14, 0x00636B2A + .word 0x00636B2C, 0x0063DDC6 + .word 0x0063DDC8, 0x006429C2 + .word 0x006429C4, 0x00644656 + .word 0x00644658, 0x00649222 + .word 0x00649224, 0x0064B432 + .word 0x0064B434, 0x00650C76 + .word 0x00650C78, 0x00656A96 + .word 0x00656A98, 0x00658C86 + .word 0x00658C88, 0x0065A89E + .word 0x0065A8A0, 0x0065C4B6 + .word 0x0065C4B8, 0x0065E0CE + .word 0x0065E0D0, 0x0065FCE6 + .word 0x0065FCE8, 0x0066794E + .word 0x00667950, 0x0067570A + .word 0x0067570C, 0x0067DC18 + .word 0x0067DC18, 0x00681D1E + .word 0x00681D20, 0x00683B06 + .word 0x00683B08, 0x0068AB00 + .word 0x0068AB00, 0x0068C4B6 + .word 0x0068C4B8, 0x0068DDFE + .word 0x0068DE00, 0x00691C88 + .word 0x00691C88, 0x00695518 + .word 0x00695518, 0x00699398 + .word 0x00699398, 0x0069C0C8 + .word 0x0069C0C8, 0x0069DE84 + .word 0x0069DE84, 0x006A01AC + .word 0x006A01AC, 0x006A2756 + .word 0x006A2758, 0x006A4F8E + .word 0x006A4F90, 0x006A630A + .word 0x006A630C, 0x006A8892 + .word 0x006A8894, 0x006AA904 + .word 0x006AA904, 0x006ACE22 + .word 0x006ACE24, 0x006AF342 + .word 0x006AF344, 0x006B1862 + .word 0x006B1864, 0x006B3D82 + .word 0x006B3D84, 0x006B4E36 + .word 0x006B4E38, 0x006B5F6A + .word 0x006B5F6C, 0x006BB27E + .word 0x006BB280, 0x006BD272 + .word 0x006BD274, 0x006BED1A + .word 0x006BED1C, 0x006C0692 + .word 0x006C0694, 0x006C237E + .word 0x006C2380, 0x006C4036 + .word 0x006C4038, 0x006CD326 + .word 0x006CD328, 0x006D045E + .word 0x006D0460, 0x006D40CA + .word 0x006D40CC, 0x006D5CE2 + .word 0x006D5CE4, 0x006D861E + .word 0x006D8620, 0x006DA836 + .word 0x006DA838, 0x006DD0E6 + .word 0x006DD0E8, 0x006DFB0A + .word 0x006DFB0C, 0x006E1742 + .word 0x006E1744, 0x006E2D82 + .word 0x006E2D84, 0x006E5392 + .word 0x006E5394, 0x006E7B6A + .word 0x006E7B6C, 0x006E9E52 + .word 0x006E9E54, 0x006EBB18 + .word 0x006EBB18, 0x006ED798 + .word 0x006ED798, 0x006EF390 + .word 0x006EF390, 0x006F0FC4 + .word 0x006F0FC4, 0x006F2C7C + .word 0x006F2C7C, 0x006F3D8A + .word 0x006F3D8C, 0x006F6B50 + .word 0x006F6B50, 0x006F849C + .word 0x006F849C, 0x006F9EC0 + .word 0x006F9EC0, 0x006FBD76 + .word 0x006FBD78, 0x00702D8E + .word 0x00702D90, 0x00704858 + .word 0x00704858, 0x00706B34 + .word 0x00706B34, 0x007099AA + .word 0x007099AC, 0x0070B81A + .word 0x0070B81C, 0x0071065A + .word 0x0071065C, 0x00711BAE + .word 0x00711BB0, 0x00712E86 + .word 0x00712E88, 0x0071489A + .word 0x0071489C, 0x007162AE + .word 0x007162B0, 0x00718366 + .word 0x00718368, 0x0071AA02 + .word 0x0071AA04, 0x0071CEDA + .word 0x0071CEDC, 0x0071F582 + .word 0x0071F584, 0x00720DAA + .word 0x00720DAC, 0x00724D8E + .word 0x00724D90, 0x00727586 + .word 0x00727588, 0x0072A20A + .word 0x0072A20C, 0x0072B66E + .word 0x0072B670, 0x0073343E + .word 0x00733440, 0x00737012 + .word 0x00737014, 0x007393EE + .word 0x007393F0, 0x0073B7CA + .word 0x0073B7CC, 0x0074281A + .word 0x0074281C, 0x00745406 + .word 0x00745408, 0x0074A9B6 + .word 0x0074A9B8, 0x00753B5A + .word 0x00753B5C, 0x0075A5C2 + .word 0x0075A5C4, 0x00762992 + .word 0x00762994, 0x00768B6A + .word 0x00768B6C, 0x0076C92A + .word 0x0076C92C, 0x0076F8FA + .word 0x0076F8FC, 0x0077A552 + .word 0x0077A554, 0x007851AA + .word 0x007851AC, 0x00791AD6 + .word 0x00791AD8, 0x0079AEDA + .word 0x0079AEDC, 0x007A65AA + .word 0x007A65AC, 0x007ACB18 + .word 0x007ACB18, 0x007B9302 + .word 0x007B9304, 0x007C5724 + .word 0x007C5724, 0x007C6A34 + .word 0x007C6A34, 0x007CF994 + .word 0x007CF994, 0x007DA7D0 + .word 0x007DA7D0, 0x007E553C + .word 0x007E553C, 0x007EA98E + .word 0x007EA990, 0x007EC000 + .word 0x007EC000, 0x007F6216 + .word 0x007F6218, 0x007FB500 + .word 0x007FB500, 0x007FE14A + .word 0x007FE14C, 0x008043D2 + .word 0x008043D4, 0x0080B0A2 + .word 0x0080B0A4, 0x0081300A + .word 0x0081300C, 0x0081E264 + .word 0x0081E264, 0x008216A2 + .word 0x008216A4, 0x008265D4 + .word 0x008265D4, 0x0082E28A + .word 0x0082E28C, 0x008360D8 + .word 0x008360D8, 0x0083E290 + .word 0x0083E290, 0x00844E7E + .word 0x00844E80, 0x0084B6CA + .word 0x0084B6CC, 0x00852566 + .word 0x00852568, 0x00858C42 + .word 0x00858C44, 0x0085F936 + .word 0x0085F938, 0x0086607E + .word 0x00866080, 0x0086CF1A + .word 0x0086CF1C, 0x008735F6 + .word 0x008735F8, 0x0087A174 + .word 0x0087A174, 0x00880DEC + .word 0x00880DEC, 0x00887BB8 + .word 0x00887BB8, 0x0088E75E + .word 0x0088E760, 0x00893CAC + .word 0x00893CAC, 0x0089A654 + .word 0x0089A654, 0x0089CE7E + .word 0x0089CE80, 0x008A0A52 + .word 0x008A0A54, 0x008A433C + .word 0x008A433C, 0x008A64F2 + .word 0x008A64F4, 0x008A866E + .word 0x008A8670, 0x008AB4B8 + .word 0x008AB4B8, 0x008ACF9A + .word 0x008ACF9C, 0x008AFF96 + .word 0x008AFF98, 0x008B20C2 + .word 0x008B20C4, 0x008B59AE + .word 0x008B59B0, 0x008B74F2 + .word 0x008B74F4, 0x008BA52E + .word 0x008BA530, 0x008BDABE + .word 0x008BDAC0, 0x008BF9E2 + .word 0x008BF9E4, 0x008C2DB6 + .word 0x008C2DB8, 0x008C4ACE + .word 0x008C4AD0, 0x008C69A8 + .word 0x008C69A8, 0x008C8886 + .word 0x008C8888, 0x008CE0E8 + .word 0x008CE0E8, 0x008D5416 + .word 0x008D5418, 0x008E3C68 + .word 0x008E3C68, 0x008EDAAC + .word 0x008EDAAC, 0x008F3BA4 + .word 0x008F3BA4, 0x008F68BE + .word 0x008F68C0, 0x008FF2B2 + .word 0x008FF2B4, 0x0090455E + .word 0x00904560, 0x00907C02 + .word 0x00907C04, 0x0090A976 + .word 0x0090A978, 0x00915612 + .word 0x00915614, 0x00917B0C + .word 0x00917B0C, 0x0091E774 + .word 0x0091E774, 0x00920D4E + .word 0x00920D50, 0x00927AB6 + .word 0x00927AB8, 0x00930CA4 + .word 0x00930CA4, 0x009381C0 + .word 0x009381C0, 0x0093F6AA + .word 0x0093F6AC, 0x00947C82 + .word 0x00947C84, 0x00950236 + .word 0x00950238, 0x0095AB5E + .word 0x0095AB60, 0x00966146 + .word 0x00966148, 0x0096FB30 + .word 0x0096FB30, 0x00977CDC + .word 0x00977CDC, 0x0097EE22 + .word 0x0097EE24, 0x00985134 + .word 0x00985134, 0x0098A86E + .word 0x0098A870, 0x00991F30 + .word 0x00991F30, 0x0099C2E2 + .word 0x0099C2E4, 0x009A255C + .word 0x009A255C, 0x009A853C + .word 0x009A853C, 0x009AF442 + .word 0x009AF444, 0x009B6274 + .word 0x009B6274, 0x009BD050 + .word 0x009BD050, 0x009C263A + .word 0x009C263C, 0x009C99F0 + .word 0x009C99F0, 0x009D248C + .word 0x009D248C, 0x009D6F98 + .word 0x009D6F98, 0x009E3BB0 + .word 0x009E3BB0, 0x009F07C8 + .word 0x009F07C8, 0x009FD3E0 + .word 0x009FD3E0, 0x00A09FF8 + .word 0x00A09FF8, 0x00A16C10 + .word 0x00A16C10, 0x00A23828 + .word 0x00A23828, 0x00A30440 + .word 0x00A30440, 0x00A3D058 + .word 0x00A3D058, 0x00A49C70 + .word 0x00A49C70, 0x00A54E0C + .word 0x00A54E0C, 0x00A57EDE + .word 0x00A57EE0, 0x00A5F55C + .word 0x00A5F55C, 0x00A69E20 + .word 0x00A69E20, 0x00A74702 + .word 0x00A74704, 0x00A7D706 + .word 0x00A7D708, 0x00A86F20 + .word 0x00A86F20, 0x00A8D488 + .word 0x00A8D488, 0x00A942F2 + .word 0x00A942F4, 0x00A9ACC2 + .word 0x00A9ACC4, 0x00A9FDF8 + .word 0x00A9FDF8, 0x00AA456A + .word 0x00AA456C, 0x00AB3268 + .word 0x00AB3268, 0x00AC22DE + .word 0x00AC22E0, 0x00ACD2FA + .word 0x00ACD2FC, 0x00AD877A + .word 0x00AD877C, 0x00ADF638 + .word 0x00ADF638, 0x00AE3F16 + .word 0x00AE3F18, 0x00AEB3AC + .word 0x00AEB3AC, 0x00AF08D6 + .word 0x00AF08D8, 0x00AF54CA + .word 0x00AF54CC, 0x00AFA142 + .word 0x00AFA144, 0x00B06D5C + .word 0x00B06D5C, 0x00B0A5B4 + .word 0x00B0A5B4, 0x00B0DFD0 + .word 0x00B0DFD0, 0x00B11AA8 + .word 0x00B11AA8, 0x00B15588 + .word 0x00B15588, 0x00B19228 + .word 0x00B19228, 0x00B1CD5C + .word 0x00B1CD5C, 0x00B2296E + .word 0x00B22970, 0x00B27732 + .word 0x00B27734, 0x00B2B7F2 + .word 0x00B2B7F4, 0x00B2FAEE + .word 0x00B2FAF0, 0x00B35A4A + .word 0x00B35A4C, 0x00B3A966 + .word 0x00B3A968, 0x00B4AC6A + .word 0x00B4AC6C, 0x00B50116 + .word 0x00B50118, 0x00B54834 + .word 0x00B54834, 0x00B571DA + .word 0x00B571DC, 0x00B596F2 + .word 0x00B596F4, 0x00B5B8F6 + .word 0x00B5B8F8, 0x00B5F17E + .word 0x00B5F180, 0x00B61CCE + .word 0x00B61CD0, 0x00B63702 + .word 0x00B63704, 0x00B66F8A + .word 0x00B66F8C, 0x00B7050C + .word 0x00B7050C, 0x00B73324 + .word 0x00B73324, 0x00B775B4 + .word 0x00B775B4, 0x00B80564 + .word 0x00B80564, 0x00B85D26 + .word 0x00B85D28, 0x00B8F842 + .word 0x00B8F844, 0x00B931D8 + .word 0x00B931D8, 0x00B9A2A6 + .word 0x00B9A2A8, 0x00B9C0CC + .word 0x00B9C0CC, 0x00BA11FE + .word 0x00BA1200, 0x00BA60AE + .word 0x00BA60B0, 0x00BAA56A + .word 0x00BAA56C, 0x00BABD02 + .word 0x00BABD04, 0x00BAD3B6 + .word 0x00BAD3B8, 0x00BAF346 + .word 0x00BAF348, 0x00BB072E + .word 0x00BB0730, 0x00BB2022 + .word 0x00BB2024, 0x00BB3DDE + .word 0x00BB3DE0, 0x00BB5A46 + .word 0x00BB5A48, 0x00BB74D6 + .word 0x00BB74D8, 0x00BB8AA6 + .word 0x00BB8AA8, 0x00BBC8A6 + .word 0x00BBC8A8, 0x00BBED16 + .word 0x00BBED18, 0x00BC1E12 + .word 0x00BC1E14, 0x00BC4156 + .word 0x00BC4158, 0x00BC6D3E + .word 0x00BC6D40, 0x00BC8DE6 + .word 0x00BC8DE8, 0x00BCB80E + .word 0x00BCB810, 0x00BCDB72 + .word 0x00BCDB74, 0x00BCF882 + .word 0x00BCF884, 0x00BD13D2 + .word 0x00BD13D4, 0x00BD25F4 + .word 0x00BD25F4, 0x00BDB57C + .word 0x00BDB57C, 0x00BE4438 + .word 0x00BE4438, 0x00BE6722 + .word 0x00BE6724, 0x00BEF220 + .word 0x00BEF220, 0x00BF86B4 + .word 0x00BF86B4, 0x00BFA99E + .word 0x00BFA9A0, 0x00C03B00 + .word 0x00C03B00, 0x00C0CC54 + .word 0x00C0CC54, 0x00C0EF3E + .word 0x00C0EF40, 0x00C19100 + .word 0x00C19100, 0x00C24148 + .word 0x00C24148, 0x00C26432 + .word 0x00C26434, 0x00C30A92 + .word 0x00C30A94, 0x00C3EFBE + .word 0x00C3EFC0, 0x00C4AFB4 + .word 0x00C4AFB4, 0x00C54534 + .word 0x00C54534, 0x00C5D42C + .word 0x00C5D42C, 0x00C65398 + .word 0x00C65398, 0x00C6DD98 + .word 0x00C6DD98, 0x00C76498 + .word 0x00C76498, 0x00C7F58C + .word 0x00C7F58C, 0x00C8AA0A + .word 0x00C8AA0C, 0x00C9291C + .word 0x00C9291C, 0x00C9BA58 + .word 0x00C9BA58, 0x00CA43C4 + .word 0x00CA43C4, 0x00CAC600 + .word 0x00CAC600, 0x00CB5968 + .word 0x00CB5968, 0x00CBFE20 + .word 0x00CBFE20, 0x00CC9E64 + .word 0x00CC9E64, 0x00CD3C20 + .word 0x00CD3C20, 0x00CDE922 + .word 0x00CDE924, 0x00CE843A + .word 0x00CE843C, 0x00CECAA2 + .word 0x00CECAA4, 0x00CF1142 + .word 0x00CF1144, 0x00CF74AE + .word 0x00CF74B0, 0x00CFC446 + .word 0x00CFC448, 0x00CFD8CE + .word 0x00CFD8D0, 0x00CFF166 + .word 0x00CFF168, 0x00D00A7A + .word 0x00D00A7C, 0x00D07CB2 + .word 0x00D07CB4, 0x00D10DA6 + .word 0x00D10DA8, 0x00D1873A + .word 0x00D1873C, 0x00D216BA + .word 0x00D216BC, 0x00D26DC0 + .word 0x00D26DC0, 0x00D2E27C + .word 0x00D2E27C, 0x00D34EC4 + .word 0x00D34EC4, 0x00D3B768 + .word 0x00D3B768, 0x00D436AC + .word 0x00D436AC, 0x00D49E54 + .word 0x00D49E54, 0x00D50BA0 + .word 0x00D50BA0, 0x00D57340 + .word 0x00D57340, 0x00D5F284 + .word 0x00D5F284, 0x00D65A2C + .word 0x00D65A2C, 0x00D6EBA8 + .word 0x00D6EBA8, 0x00D7A0FC + .word 0x00D7A0FC, 0x00D84AE0 + .word 0x00D84AE0, 0x00D8F6C4 + .word 0x00D8F6C4, 0x00D9A438 + .word 0x00D9A438, 0x00DA51B8 + .word 0x00DA51B8, 0x00DAEDE4 + .word 0x00DAEDE4, 0x00DB87BC + .word 0x00DB87BC, 0x00DC239C + .word 0x00DC239C, 0x00DCBED4 + .word 0x00DCBED4, 0x00DD5F50 + .word 0x00DD5F50, 0x00DDFD18 + .word 0x00DDFD18, 0x00DEA068 + .word 0x00DEA068, 0x00DF4548 + .word 0x00DF4548, 0x00DFEC38 + .word 0x00DFEC38, 0x00E0938C + .word 0x00E0938C, 0x00E16CE8 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00E16CF0 ; chunk size + .incbin "baserom.nds", 0x0, 0x9434 + .incbin "baserom.nds", 0x9434, 0x26A6 + .incbin "baserom.nds", 0xBADC, 0x26B2 + .incbin "baserom.nds", 0xE190, 0x26C2 + .incbin "baserom.nds", 0x10854, 0x439A + .incbin "baserom.nds", 0x14BF0, 0x47E6 + .incbin "baserom.nds", 0x193D8, 0x41C2 + .incbin "baserom.nds", 0x1D59C, 0x6A76 + .incbin "baserom.nds", 0x24014, 0x6AE2 + .incbin "baserom.nds", 0x2AAF8, 0x9F58 + .incbin "baserom.nds", 0x34A50, 0x8B30 + .incbin "baserom.nds", 0x3D580, 0x4CA2 + .incbin "baserom.nds", 0x42224, 0x59C8 + .incbin "baserom.nds", 0x47BEC, 0x8094 + .incbin "baserom.nds", 0x4FC80, 0x7306 + .incbin "baserom.nds", 0x56F88, 0x5160 + .incbin "baserom.nds", 0x5C0E8, 0x76E8 + .incbin "baserom.nds", 0x637D0, 0x3C04 + .incbin "baserom.nds", 0x673D4, 0x5B9E + .incbin "baserom.nds", 0x6CF74, 0x6B5A + .incbin "baserom.nds", 0x73AD0, 0x857C + .incbin "baserom.nds", 0x7C04C, 0x9DFE + .incbin "baserom.nds", 0x85E4C, 0x5EDC + .incbin "baserom.nds", 0x8BD28, 0x7082 + .incbin "baserom.nds", 0x92DAC, 0x67DC + .incbin "baserom.nds", 0x99588, 0x9E4C + .incbin "baserom.nds", 0xA33D4, 0xA29E + .incbin "baserom.nds", 0xAD674, 0xB20C + .incbin "baserom.nds", 0xB8880, 0xDF84 + .incbin "baserom.nds", 0xC6804, 0xECD6 + .incbin "baserom.nds", 0xD54DC, 0x955C + .incbin "baserom.nds", 0xDEA38, 0xAEDC + .incbin "baserom.nds", 0xE9914, 0x4F3E + .incbin "baserom.nds", 0xEE854, 0x70BA + .incbin "baserom.nds", 0xF5910, 0xA948 + .incbin "baserom.nds", 0x100258, 0xDAFC + .incbin "baserom.nds", 0x10DD54, 0x734A + .incbin "baserom.nds", 0x1150A0, 0xA8E2 + .incbin "baserom.nds", 0x11F984, 0x409A + .incbin "baserom.nds", 0x123A20, 0x2392 + .incbin "baserom.nds", 0x125DB4, 0x50B0 + .incbin "baserom.nds", 0x12AE64, 0x7774 + .incbin "baserom.nds", 0x1325D8, 0x809A + .incbin "baserom.nds", 0x13A674, 0x93FC + .incbin "baserom.nds", 0x143A70, 0x63AE + .incbin "baserom.nds", 0x149E20, 0x655E + .incbin "baserom.nds", 0x150380, 0xB222 + .incbin "baserom.nds", 0x15B5A4, 0xBFC4 + .incbin "baserom.nds", 0x167568, 0x89AA + .incbin "baserom.nds", 0x16FF14, 0x7144 + .incbin "baserom.nds", 0x177058, 0x800A + .incbin "baserom.nds", 0x17F064, 0x7792 + .incbin "baserom.nds", 0x1867F8, 0xDB80 + .incbin "baserom.nds", 0x194378, 0xF334 + .incbin "baserom.nds", 0x1A36AC, 0xA3C4 + .incbin "baserom.nds", 0x1ADA70, 0xFB42 + .incbin "baserom.nds", 0x1BD5B4, 0xA820 + .incbin "baserom.nds", 0x1C7DD4, 0x874A + .incbin "baserom.nds", 0x1D0520, 0x8BEE + .incbin "baserom.nds", 0x1D9110, 0x69C2 + .incbin "baserom.nds", 0x1DFAD4, 0x6FD2 + .incbin "baserom.nds", 0x1E6AA8, 0xE424 + .incbin "baserom.nds", 0x1F4ECC, 0xCC8E + .incbin "baserom.nds", 0x201B5C, 0xDEDE + .incbin "baserom.nds", 0x20FA3C, 0xE440 + .incbin "baserom.nds", 0x21DE7C, 0xB256 + .incbin "baserom.nds", 0x2290D4, 0x7952 + .incbin "baserom.nds", 0x230A28, 0x788A + .incbin "baserom.nds", 0x2382B4, 0xABE6 + .incbin "baserom.nds", 0x242E9C, 0xC910 + .incbin "baserom.nds", 0x24F7AC, 0xC52C + .incbin "baserom.nds", 0x25BCD8, 0x813C + .incbin "baserom.nds", 0x263E14, 0x5AF2 + .incbin "baserom.nds", 0x269908, 0x8EB6 + .incbin "baserom.nds", 0x2727C0, 0xC1FE + .incbin "baserom.nds", 0x27E9C0, 0xCB86 + .incbin "baserom.nds", 0x28B548, 0x92EE + .incbin "baserom.nds", 0x294838, 0x7350 + .incbin "baserom.nds", 0x29BB88, 0x83F2 + .incbin "baserom.nds", 0x2A3F7C, 0xA312 + .incbin "baserom.nds", 0x2AE290, 0xDB08 + .incbin "baserom.nds", 0x2BBD98, 0x517A + .incbin "baserom.nds", 0x2C0F14, 0x555E + .incbin "baserom.nds", 0x2C6474, 0x70A2 + .incbin "baserom.nds", 0x2CD518, 0x4074 + .incbin "baserom.nds", 0x2D158C, 0x97C8 + .incbin "baserom.nds", 0x2DAD54, 0x6D2C + .incbin "baserom.nds", 0x2E1A80, 0x8A1A + .incbin "baserom.nds", 0x2EA49C, 0xBCB6 + .incbin "baserom.nds", 0x2F6154, 0xC0C6 + .incbin "baserom.nds", 0x30221C, 0xB39E + .incbin "baserom.nds", 0x30D5BC, 0x9E84 + .incbin "baserom.nds", 0x317440, 0x8D76 + .incbin "baserom.nds", 0x3201B8, 0xC412 + .incbin "baserom.nds", 0x32C5CC, 0xA426 + .incbin "baserom.nds", 0x3369F4, 0x62E6 + .incbin "baserom.nds", 0x33CCDC, 0x9C66 + .incbin "baserom.nds", 0x346944, 0xD7D4 + .incbin "baserom.nds", 0x354118, 0xDE1A + .incbin "baserom.nds", 0x361F34, 0xC524 + .incbin "baserom.nds", 0x36E458, 0x478A + .incbin "baserom.nds", 0x372BE4, 0x4782 + .incbin "baserom.nds", 0x377368, 0x57B6 + .incbin "baserom.nds", 0x37CB20, 0x5D32 + .incbin "baserom.nds", 0x382854, 0x5DD2 + .incbin "baserom.nds", 0x388628, 0x6188 + .incbin "baserom.nds", 0x38E7B0, 0x4FDE + .incbin "baserom.nds", 0x393790, 0x13CA + .incbin "baserom.nds", 0x394B5C, 0x248A + .incbin "baserom.nds", 0x396FE8, 0x5ACE + .incbin "baserom.nds", 0x39CAB8, 0x8B96 + .incbin "baserom.nds", 0x3A5650, 0xC9FE + .incbin "baserom.nds", 0x3B2050, 0x93DE + .incbin "baserom.nds", 0x3BB430, 0xB37A + .incbin "baserom.nds", 0x3C67AC, 0xBDBC + .incbin "baserom.nds", 0x3D2568, 0xC862 + .incbin "baserom.nds", 0x3DEDCC, 0x755A + .incbin "baserom.nds", 0x3E6328, 0x770E + .incbin "baserom.nds", 0x3EDA38, 0x9D26 + .incbin "baserom.nds", 0x3F7760, 0xEC9A + .incbin "baserom.nds", 0x4063FC, 0x755A + .incbin "baserom.nds", 0x40D958, 0x770E + .incbin "baserom.nds", 0x415068, 0x9D26 + .incbin "baserom.nds", 0x41ED90, 0xF39A + .incbin "baserom.nds", 0x42E12C, 0x26A2 + .incbin "baserom.nds", 0x4307D0, 0x2A12 + .incbin "baserom.nds", 0x4331E4, 0x2922 + .incbin "baserom.nds", 0x435B08, 0x26A2 + .incbin "baserom.nds", 0x4381AC, 0x2A12 + .incbin "baserom.nds", 0x43ABC0, 0x2922 + .incbin "baserom.nds", 0x43D4E4, 0x26A2 + .incbin "baserom.nds", 0x43FB88, 0x2A12 + .incbin "baserom.nds", 0x44259C, 0x5AB4 + .incbin "baserom.nds", 0x448050, 0x5BDA + .incbin "baserom.nds", 0x44DC2C, 0x6032 + .incbin "baserom.nds", 0x453C60, 0x7AA4 + .incbin "baserom.nds", 0x45B704, 0x6D20 + .incbin "baserom.nds", 0x462424, 0xE572 + .incbin "baserom.nds", 0x470998, 0x44A2 + .incbin "baserom.nds", 0x474E3C, 0xDFF0 + .incbin "baserom.nds", 0x482E2C, 0xE0C8 + .incbin "baserom.nds", 0x490EF4, 0xE346 + .incbin "baserom.nds", 0x49F23C, 0x7512 + .incbin "baserom.nds", 0x4A6750, 0x7516 + .incbin "baserom.nds", 0x4ADC68, 0x9338 + .incbin "baserom.nds", 0x4B6FA0, 0x8C24 + .incbin "baserom.nds", 0x4BFBC4, 0x7BE8 + .incbin "baserom.nds", 0x4C77AC, 0xB524 + .incbin "baserom.nds", 0x4D2CD0, 0x8D1A + .incbin "baserom.nds", 0x4DB9EC, 0x61A0 + .incbin "baserom.nds", 0x4E1B8C, 0x69F8 + .incbin "baserom.nds", 0x4E8584, 0x8D3C + .incbin "baserom.nds", 0x4F12C0, 0x8CC0 + .incbin "baserom.nds", 0x4F9F80, 0x7E14 + .incbin "baserom.nds", 0x501D94, 0x72BC + .incbin "baserom.nds", 0x509050, 0x28BA + .incbin "baserom.nds", 0x50B90C, 0x5636 + .incbin "baserom.nds", 0x510F44, 0x94E6 + .incbin "baserom.nds", 0x51A42C, 0xBB2A + .incbin "baserom.nds", 0x525F58, 0x47AE + .incbin "baserom.nds", 0x52A708, 0x5026 + .incbin "baserom.nds", 0x52F730, 0x5052 + .incbin "baserom.nds", 0x534784, 0x392E + .incbin "baserom.nds", 0x5380B4, 0xB63E + .incbin "baserom.nds", 0x5436F4, 0x10498 + .incbin "baserom.nds", 0x553B8C, 0xF2A2 + .incbin "baserom.nds", 0x562E30, 0xC5CC + .incbin "baserom.nds", 0x56F3FC, 0xC032 + .incbin "baserom.nds", 0x57B430, 0x942C + .incbin "baserom.nds", 0x58485C, 0x6B12 + .incbin "baserom.nds", 0x58B370, 0xBFA4 + .incbin "baserom.nds", 0x597314, 0xFABE + .incbin "baserom.nds", 0x5A6DD4, 0xDE18 + .incbin "baserom.nds", 0x5B4BEC, 0x52A2 + .incbin "baserom.nds", 0x5B9E90, 0xCEE + .incbin "baserom.nds", 0x5BAB80, 0xCEE + .incbin "baserom.nds", 0x5BB870, 0x529A + .incbin "baserom.nds", 0x5C0B0C, 0x529A + .incbin "baserom.nds", 0x5C5DA8, 0xA96 + .incbin "baserom.nds", 0x5C6840, 0x1372 + .incbin "baserom.nds", 0x5C7BB4, 0x13F6 + .incbin "baserom.nds", 0x5C8FAC, 0x100A + .incbin "baserom.nds", 0x5C9FB8, 0xF7A + .incbin "baserom.nds", 0x5CAF34, 0x20B6 + .incbin "baserom.nds", 0x5CCFEC, 0x15D6 + .incbin "baserom.nds", 0x5CE5C4, 0x2076 + .incbin "baserom.nds", 0x5D063C, 0x160A + .incbin "baserom.nds", 0x5D1C48, 0x15F8 + .incbin "baserom.nds", 0x5D3240, 0x16F0 + .incbin "baserom.nds", 0x5D4930, 0x29F2 + .incbin "baserom.nds", 0x5D7324, 0x3646 + .incbin "baserom.nds", 0x5DA96C, 0x4D1A + .incbin "baserom.nds", 0x5DF688, 0x2136 + .incbin "baserom.nds", 0x5E17C0, 0x192A + .incbin "baserom.nds", 0x5E30EC, 0x224E + .incbin "baserom.nds", 0x5E533C, 0x1FD2 + .incbin "baserom.nds", 0x5E7310, 0x4D1E + .incbin "baserom.nds", 0x5EC030, 0x167E + .incbin "baserom.nds", 0x5ED6B0, 0x1584 + .incbin "baserom.nds", 0x5EEC34, 0x184E + .incbin "baserom.nds", 0x5F0484, 0x2192 + .incbin "baserom.nds", 0x5F2618, 0x22CA + .incbin "baserom.nds", 0x5F48E4, 0x240A + .incbin "baserom.nds", 0x5F6CF0, 0x1D8E + .incbin "baserom.nds", 0x5F8A80, 0x1F66 + .incbin "baserom.nds", 0x5FA9E8, 0x14F2 + .incbin "baserom.nds", 0x5FBEDC, 0x21AE + .incbin "baserom.nds", 0x5FE08C, 0x46FA + .incbin "baserom.nds", 0x602788, 0x36D6 + .incbin "baserom.nds", 0x605E60, 0x12DE + .incbin "baserom.nds", 0x607140, 0x2536 + .incbin "baserom.nds", 0x609678, 0x29F8 + .incbin "baserom.nds", 0x60C070, 0x2EDC + .incbin "baserom.nds", 0x60EF4C, 0x313C + .incbin "baserom.nds", 0x612088, 0x2B3C + .incbin "baserom.nds", 0x614BC4, 0x1B62 + .incbin "baserom.nds", 0x616728, 0x2406 + .incbin "baserom.nds", 0x618B30, 0x1282 + .incbin "baserom.nds", 0x619DB4, 0x19CE + .incbin "baserom.nds", 0x61B784, 0x12BE + .incbin "baserom.nds", 0x61CA44, 0x21E6 + .incbin "baserom.nds", 0x61EC2C, 0x278E + .incbin "baserom.nds", 0x6213BC, 0x9354 + .incbin "baserom.nds", 0x62A710, 0x3D94 + .incbin "baserom.nds", 0x62E4A4, 0x323E + .incbin "baserom.nds", 0x6316E4, 0x1C16 + .incbin "baserom.nds", 0x6332FC, 0x1C16 + .incbin "baserom.nds", 0x634F14, 0x1C16 + .incbin "baserom.nds", 0x636B2C, 0x729A + .incbin "baserom.nds", 0x63DDC8, 0x4BFA + .incbin "baserom.nds", 0x6429C4, 0x1C92 + .incbin "baserom.nds", 0x644658, 0x4BCA + .incbin "baserom.nds", 0x649224, 0x220E + .incbin "baserom.nds", 0x64B434, 0x5842 + .incbin "baserom.nds", 0x650C78, 0x5E1E + .incbin "baserom.nds", 0x656A98, 0x21EE + .incbin "baserom.nds", 0x658C88, 0x1C16 + .incbin "baserom.nds", 0x65A8A0, 0x1C16 + .incbin "baserom.nds", 0x65C4B8, 0x1C16 + .incbin "baserom.nds", 0x65E0D0, 0x1C16 + .incbin "baserom.nds", 0x65FCE8, 0x7C66 + .incbin "baserom.nds", 0x667950, 0xDDBA + .incbin "baserom.nds", 0x67570C, 0x850C + .incbin "baserom.nds", 0x67DC18, 0x4106 + .incbin "baserom.nds", 0x681D20, 0x1DE6 + .incbin "baserom.nds", 0x683B08, 0x6FF8 + .incbin "baserom.nds", 0x68AB00, 0x19B6 + .incbin "baserom.nds", 0x68C4B8, 0x1946 + .incbin "baserom.nds", 0x68DE00, 0x3E88 + .incbin "baserom.nds", 0x691C88, 0x3890 + .incbin "baserom.nds", 0x695518, 0x3E80 + .incbin "baserom.nds", 0x699398, 0x2D30 + .incbin "baserom.nds", 0x69C0C8, 0x1DBC + .incbin "baserom.nds", 0x69DE84, 0x2328 + .incbin "baserom.nds", 0x6A01AC, 0x25AA + .incbin "baserom.nds", 0x6A2758, 0x2836 + .incbin "baserom.nds", 0x6A4F90, 0x137A + .incbin "baserom.nds", 0x6A630C, 0x2586 + .incbin "baserom.nds", 0x6A8894, 0x2070 + .incbin "baserom.nds", 0x6AA904, 0x251E + .incbin "baserom.nds", 0x6ACE24, 0x251E + .incbin "baserom.nds", 0x6AF344, 0x251E + .incbin "baserom.nds", 0x6B1864, 0x251E + .incbin "baserom.nds", 0x6B3D84, 0x10B2 + .incbin "baserom.nds", 0x6B4E38, 0x1132 + .incbin "baserom.nds", 0x6B5F6C, 0x5312 + .incbin "baserom.nds", 0x6BB280, 0x1FF2 + .incbin "baserom.nds", 0x6BD274, 0x1AA6 + .incbin "baserom.nds", 0x6BED1C, 0x1976 + .incbin "baserom.nds", 0x6C0694, 0x1CEA + .incbin "baserom.nds", 0x6C2380, 0x1CB6 + .incbin "baserom.nds", 0x6C4038, 0x92EE + .incbin "baserom.nds", 0x6CD328, 0x3136 + .incbin "baserom.nds", 0x6D0460, 0x3C6A + .incbin "baserom.nds", 0x6D40CC, 0x1C16 + .incbin "baserom.nds", 0x6D5CE4, 0x293A + .incbin "baserom.nds", 0x6D8620, 0x2216 + .incbin "baserom.nds", 0x6DA838, 0x28AE + .incbin "baserom.nds", 0x6DD0E8, 0x2A22 + .incbin "baserom.nds", 0x6DFB0C, 0x1C36 + .incbin "baserom.nds", 0x6E1744, 0x163E + .incbin "baserom.nds", 0x6E2D84, 0x260E + .incbin "baserom.nds", 0x6E5394, 0x27D6 + .incbin "baserom.nds", 0x6E7B6C, 0x22E6 + .incbin "baserom.nds", 0x6E9E54, 0x1CC4 + .incbin "baserom.nds", 0x6EBB18, 0x1C80 + .incbin "baserom.nds", 0x6ED798, 0x1BF8 + .incbin "baserom.nds", 0x6EF390, 0x1C34 + .incbin "baserom.nds", 0x6F0FC4, 0x1CB8 + .incbin "baserom.nds", 0x6F2C7C, 0x110E + .incbin "baserom.nds", 0x6F3D8C, 0x2DC4 + .incbin "baserom.nds", 0x6F6B50, 0x194C + .incbin "baserom.nds", 0x6F849C, 0x1A24 + .incbin "baserom.nds", 0x6F9EC0, 0x1EB6 + .incbin "baserom.nds", 0x6FBD78, 0x7016 + .incbin "baserom.nds", 0x702D90, 0x1AC8 + .incbin "baserom.nds", 0x704858, 0x22DC + .incbin "baserom.nds", 0x706B34, 0x2E76 + .incbin "baserom.nds", 0x7099AC, 0x1E6E + .incbin "baserom.nds", 0x70B81C, 0x4E3E + .incbin "baserom.nds", 0x71065C, 0x1552 + .incbin "baserom.nds", 0x711BB0, 0x12D6 + .incbin "baserom.nds", 0x712E88, 0x1A12 + .incbin "baserom.nds", 0x71489C, 0x1A12 + .incbin "baserom.nds", 0x7162B0, 0x20B6 + .incbin "baserom.nds", 0x718368, 0x269A + .incbin "baserom.nds", 0x71AA04, 0x24D6 + .incbin "baserom.nds", 0x71CEDC, 0x26A6 + .incbin "baserom.nds", 0x71F584, 0x1826 + .incbin "baserom.nds", 0x720DAC, 0x3FE2 + .incbin "baserom.nds", 0x724D90, 0x27F6 + .incbin "baserom.nds", 0x727588, 0x2C82 + .incbin "baserom.nds", 0x72A20C, 0x1462 + .incbin "baserom.nds", 0x72B670, 0x7DCE + .incbin "baserom.nds", 0x733440, 0x3BD2 + .incbin "baserom.nds", 0x737014, 0x23DA + .incbin "baserom.nds", 0x7393F0, 0x23DA + .incbin "baserom.nds", 0x73B7CC, 0x704E + .incbin "baserom.nds", 0x74281C, 0x2BEA + .incbin "baserom.nds", 0x745408, 0x55AE + .incbin "baserom.nds", 0x74A9B8, 0x91A2 + .incbin "baserom.nds", 0x753B5C, 0x6A66 + .incbin "baserom.nds", 0x75A5C4, 0x83CE + .incbin "baserom.nds", 0x762994, 0x61D6 + .incbin "baserom.nds", 0x768B6C, 0x3DBE + .incbin "baserom.nds", 0x76C92C, 0x2FCE + .incbin "baserom.nds", 0x76F8FC, 0xAC56 + .incbin "baserom.nds", 0x77A554, 0xAC56 + .incbin "baserom.nds", 0x7851AC, 0xC92A + .incbin "baserom.nds", 0x791AD8, 0x9402 + .incbin "baserom.nds", 0x79AEDC, 0xB6CE + .incbin "baserom.nds", 0x7A65AC, 0x656C + .incbin "baserom.nds", 0x7ACB18, 0xC7EA + .incbin "baserom.nds", 0x7B9304, 0xC420 + .incbin "baserom.nds", 0x7C5724, 0x1310 + .incbin "baserom.nds", 0x7C6A34, 0x8F60 + .incbin "baserom.nds", 0x7CF994, 0xAE3C + .incbin "baserom.nds", 0x7DA7D0, 0xAD6C + .incbin "baserom.nds", 0x7E553C, 0x5452 + .incbin "baserom.nds", 0x7EA990, 0x1670 + .incbin "baserom.nds", 0x7EC000, 0xA216 + .incbin "baserom.nds", 0x7F6218, 0x52E8 + .incbin "baserom.nds", 0x7FB500, 0x2C4A + .incbin "baserom.nds", 0x7FE14C, 0x6286 + .incbin "baserom.nds", 0x8043D4, 0x6CCE + .incbin "baserom.nds", 0x80B0A4, 0x7F66 + .incbin "baserom.nds", 0x81300C, 0xB258 + .incbin "baserom.nds", 0x81E264, 0x343E + .incbin "baserom.nds", 0x8216A4, 0x4F30 + .incbin "baserom.nds", 0x8265D4, 0x7CB6 + .incbin "baserom.nds", 0x82E28C, 0x7E4C + .incbin "baserom.nds", 0x8360D8, 0x81B8 + .incbin "baserom.nds", 0x83E290, 0x6BEE + .incbin "baserom.nds", 0x844E80, 0x684A + .incbin "baserom.nds", 0x84B6CC, 0x6E9A + .incbin "baserom.nds", 0x852568, 0x66DA + .incbin "baserom.nds", 0x858C44, 0x6CF2 + .incbin "baserom.nds", 0x85F938, 0x6746 + .incbin "baserom.nds", 0x866080, 0x6E9A + .incbin "baserom.nds", 0x86CF1C, 0x66DA + .incbin "baserom.nds", 0x8735F8, 0x6B7C + .incbin "baserom.nds", 0x87A174, 0x6C78 + .incbin "baserom.nds", 0x880DEC, 0x6DCC + .incbin "baserom.nds", 0x887BB8, 0x6BA6 + .incbin "baserom.nds", 0x88E760, 0x554C + .incbin "baserom.nds", 0x893CAC, 0x69A8 + .incbin "baserom.nds", 0x89A654, 0x282A + .incbin "baserom.nds", 0x89CE80, 0x3BD2 + .incbin "baserom.nds", 0x8A0A54, 0x38E8 + .incbin "baserom.nds", 0x8A433C, 0x21B6 + .incbin "baserom.nds", 0x8A64F4, 0x217A + .incbin "baserom.nds", 0x8A8670, 0x2E48 + .incbin "baserom.nds", 0x8AB4B8, 0x1AE2 + .incbin "baserom.nds", 0x8ACF9C, 0x2FFA + .incbin "baserom.nds", 0x8AFF98, 0x212A + .incbin "baserom.nds", 0x8B20C4, 0x38EA + .incbin "baserom.nds", 0x8B59B0, 0x1B42 + .incbin "baserom.nds", 0x8B74F4, 0x303A + .incbin "baserom.nds", 0x8BA530, 0x358E + .incbin "baserom.nds", 0x8BDAC0, 0x1F22 + .incbin "baserom.nds", 0x8BF9E4, 0x33D2 + .incbin "baserom.nds", 0x8C2DB8, 0x1D16 + .incbin "baserom.nds", 0x8C4AD0, 0x1ED8 + .incbin "baserom.nds", 0x8C69A8, 0x1EDE + .incbin "baserom.nds", 0x8C8888, 0x5860 + .incbin "baserom.nds", 0x8CE0E8, 0x732E + .incbin "baserom.nds", 0x8D5418, 0xE850 + .incbin "baserom.nds", 0x8E3C68, 0x9E44 + .incbin "baserom.nds", 0x8EDAAC, 0x60F8 + .incbin "baserom.nds", 0x8F3BA4, 0x2D1A + .incbin "baserom.nds", 0x8F68C0, 0x89F2 + .incbin "baserom.nds", 0x8FF2B4, 0x52AA + .incbin "baserom.nds", 0x904560, 0x36A2 + .incbin "baserom.nds", 0x907C04, 0x2D72 + .incbin "baserom.nds", 0x90A978, 0xAC9A + .incbin "baserom.nds", 0x915614, 0x24F8 + .incbin "baserom.nds", 0x917B0C, 0x6C68 + .incbin "baserom.nds", 0x91E774, 0x25DA + .incbin "baserom.nds", 0x920D50, 0x6D66 + .incbin "baserom.nds", 0x927AB8, 0x91EC + .incbin "baserom.nds", 0x930CA4, 0x751C + .incbin "baserom.nds", 0x9381C0, 0x74EA + .incbin "baserom.nds", 0x93F6AC, 0x85D6 + .incbin "baserom.nds", 0x947C84, 0x85B2 + .incbin "baserom.nds", 0x950238, 0xA926 + .incbin "baserom.nds", 0x95AB60, 0xB5E6 + .incbin "baserom.nds", 0x966148, 0x99E8 + .incbin "baserom.nds", 0x96FB30, 0x81AC + .incbin "baserom.nds", 0x977CDC, 0x7146 + .incbin "baserom.nds", 0x97EE24, 0x6310 + .incbin "baserom.nds", 0x985134, 0x573A + .incbin "baserom.nds", 0x98A870, 0x76C0 + .incbin "baserom.nds", 0x991F30, 0xA3B2 + .incbin "baserom.nds", 0x99C2E4, 0x6278 + .incbin "baserom.nds", 0x9A255C, 0x5FE0 + .incbin "baserom.nds", 0x9A853C, 0x6F06 + .incbin "baserom.nds", 0x9AF444, 0x6E30 + .incbin "baserom.nds", 0x9B6274, 0x6DDC + .incbin "baserom.nds", 0x9BD050, 0x55EA + .incbin "baserom.nds", 0x9C263C, 0x73B4 + .incbin "baserom.nds", 0x9C99F0, 0x8A9C + .incbin "baserom.nds", 0x9D248C, 0x4B0C + .incbin "baserom.nds", 0x9D6F98, 0xCC18 + .incbin "baserom.nds", 0x9E3BB0, 0xCC18 + .incbin "baserom.nds", 0x9F07C8, 0xCC18 + .incbin "baserom.nds", 0x9FD3E0, 0xCC18 + .incbin "baserom.nds", 0xA09FF8, 0xCC18 + .incbin "baserom.nds", 0xA16C10, 0xCC18 + .incbin "baserom.nds", 0xA23828, 0xCC18 + .incbin "baserom.nds", 0xA30440, 0xCC18 + .incbin "baserom.nds", 0xA3D058, 0xCC18 + .incbin "baserom.nds", 0xA49C70, 0xB19C + .incbin "baserom.nds", 0xA54E0C, 0x30D2 + .incbin "baserom.nds", 0xA57EE0, 0x767C + .incbin "baserom.nds", 0xA5F55C, 0xA8C4 + .incbin "baserom.nds", 0xA69E20, 0xA8E2 + .incbin "baserom.nds", 0xA74704, 0x9002 + .incbin "baserom.nds", 0xA7D708, 0x9818 + .incbin "baserom.nds", 0xA86F20, 0x6568 + .incbin "baserom.nds", 0xA8D488, 0x6E6A + .incbin "baserom.nds", 0xA942F4, 0x69CE + .incbin "baserom.nds", 0xA9ACC4, 0x5134 + .incbin "baserom.nds", 0xA9FDF8, 0x4772 + .incbin "baserom.nds", 0xAA456C, 0xECFC + .incbin "baserom.nds", 0xAB3268, 0xF076 + .incbin "baserom.nds", 0xAC22E0, 0xB01A + .incbin "baserom.nds", 0xACD2FC, 0xB47E + .incbin "baserom.nds", 0xAD877C, 0x6EBC + .incbin "baserom.nds", 0xADF638, 0x48DE + .incbin "baserom.nds", 0xAE3F18, 0x7494 + .incbin "baserom.nds", 0xAEB3AC, 0x552A + .incbin "baserom.nds", 0xAF08D8, 0x4BF2 + .incbin "baserom.nds", 0xAF54CC, 0x4C76 + .incbin "baserom.nds", 0xAFA144, 0xCC18 + .incbin "baserom.nds", 0xB06D5C, 0x3858 + .incbin "baserom.nds", 0xB0A5B4, 0x3A1C + .incbin "baserom.nds", 0xB0DFD0, 0x3AD8 + .incbin "baserom.nds", 0xB11AA8, 0x3AE0 + .incbin "baserom.nds", 0xB15588, 0x3CA0 + .incbin "baserom.nds", 0xB19228, 0x3B34 + .incbin "baserom.nds", 0xB1CD5C, 0x5C12 + .incbin "baserom.nds", 0xB22970, 0x4DC2 + .incbin "baserom.nds", 0xB27734, 0x40BE + .incbin "baserom.nds", 0xB2B7F4, 0x42FA + .incbin "baserom.nds", 0xB2FAF0, 0x5F5A + .incbin "baserom.nds", 0xB35A4C, 0x4F1A + .incbin "baserom.nds", 0xB3A968, 0x10302 + .incbin "baserom.nds", 0xB4AC6C, 0x54AA + .incbin "baserom.nds", 0xB50118, 0x471C + .incbin "baserom.nds", 0xB54834, 0x29A6 + .incbin "baserom.nds", 0xB571DC, 0x2516 + .incbin "baserom.nds", 0xB596F4, 0x2202 + .incbin "baserom.nds", 0xB5B8F8, 0x3886 + .incbin "baserom.nds", 0xB5F180, 0x2B4E + .incbin "baserom.nds", 0xB61CD0, 0x1A32 + .incbin "baserom.nds", 0xB63704, 0x3886 + .incbin "baserom.nds", 0xB66F8C, 0x9580 + .incbin "baserom.nds", 0xB7050C, 0x2E18 + .incbin "baserom.nds", 0xB73324, 0x4290 + .incbin "baserom.nds", 0xB775B4, 0x8FB0 + .incbin "baserom.nds", 0xB80564, 0x57C2 + .incbin "baserom.nds", 0xB85D28, 0x9B1A + .incbin "baserom.nds", 0xB8F844, 0x3994 + .incbin "baserom.nds", 0xB931D8, 0x70CE + .incbin "baserom.nds", 0xB9A2A8, 0x1E24 + .incbin "baserom.nds", 0xB9C0CC, 0x5132 + .incbin "baserom.nds", 0xBA1200, 0x4EAE + .incbin "baserom.nds", 0xBA60B0, 0x44BA + .incbin "baserom.nds", 0xBAA56C, 0x1796 + .incbin "baserom.nds", 0xBABD04, 0x16B2 + .incbin "baserom.nds", 0xBAD3B8, 0x1F8E + .incbin "baserom.nds", 0xBAF348, 0x13E6 + .incbin "baserom.nds", 0xBB0730, 0x18F2 + .incbin "baserom.nds", 0xBB2024, 0x1DBA + .incbin "baserom.nds", 0xBB3DE0, 0x1C66 + .incbin "baserom.nds", 0xBB5A48, 0x1A8E + .incbin "baserom.nds", 0xBB74D8, 0x15CE + .incbin "baserom.nds", 0xBB8AA8, 0x3DFE + .incbin "baserom.nds", 0xBBC8A8, 0x246E + .incbin "baserom.nds", 0xBBED18, 0x30FA + .incbin "baserom.nds", 0xBC1E14, 0x2342 + .incbin "baserom.nds", 0xBC4158, 0x2BE6 + .incbin "baserom.nds", 0xBC6D40, 0x20A6 + .incbin "baserom.nds", 0xBC8DE8, 0x2A26 + .incbin "baserom.nds", 0xBCB810, 0x2362 + .incbin "baserom.nds", 0xBCDB74, 0x1D0E + .incbin "baserom.nds", 0xBCF884, 0x1B4E + .incbin "baserom.nds", 0xBD13D4, 0x1220 + .incbin "baserom.nds", 0xBD25F4, 0x8F88 + .incbin "baserom.nds", 0xBDB57C, 0x8EBC + .incbin "baserom.nds", 0xBE4438, 0x22EA + .incbin "baserom.nds", 0xBE6724, 0x8AFC + .incbin "baserom.nds", 0xBEF220, 0x9494 + .incbin "baserom.nds", 0xBF86B4, 0x22EA + .incbin "baserom.nds", 0xBFA9A0, 0x9160 + .incbin "baserom.nds", 0xC03B00, 0x9154 + .incbin "baserom.nds", 0xC0CC54, 0x22EA + .incbin "baserom.nds", 0xC0EF40, 0xA1C0 + .incbin "baserom.nds", 0xC19100, 0xB048 + .incbin "baserom.nds", 0xC24148, 0x22EA + .incbin "baserom.nds", 0xC26434, 0xA65E + .incbin "baserom.nds", 0xC30A94, 0xE52A + .incbin "baserom.nds", 0xC3EFC0, 0xBFF4 + .incbin "baserom.nds", 0xC4AFB4, 0x9580 + .incbin "baserom.nds", 0xC54534, 0x8EF8 + .incbin "baserom.nds", 0xC5D42C, 0x7F6C + .incbin "baserom.nds", 0xC65398, 0x8A00 + .incbin "baserom.nds", 0xC6DD98, 0x8700 + .incbin "baserom.nds", 0xC76498, 0x90F4 + .incbin "baserom.nds", 0xC7F58C, 0xB47E + .incbin "baserom.nds", 0xC8AA0C, 0x7F10 + .incbin "baserom.nds", 0xC9291C, 0x913C + .incbin "baserom.nds", 0xC9BA58, 0x896C + .incbin "baserom.nds", 0xCA43C4, 0x823C + .incbin "baserom.nds", 0xCAC600, 0x9368 + .incbin "baserom.nds", 0xCB5968, 0xA4B8 + .incbin "baserom.nds", 0xCBFE20, 0xA044 + .incbin "baserom.nds", 0xCC9E64, 0x9DBC + .incbin "baserom.nds", 0xCD3C20, 0xAD02 + .incbin "baserom.nds", 0xCDE924, 0x9B16 + .incbin "baserom.nds", 0xCE843C, 0x4666 + .incbin "baserom.nds", 0xCECAA4, 0x469E + .incbin "baserom.nds", 0xCF1144, 0x636A + .incbin "baserom.nds", 0xCF74B0, 0x4F96 + .incbin "baserom.nds", 0xCFC448, 0x1486 + .incbin "baserom.nds", 0xCFD8D0, 0x1896 + .incbin "baserom.nds", 0xCFF168, 0x1912 + .incbin "baserom.nds", 0xD00A7C, 0x7236 + .incbin "baserom.nds", 0xD07CB4, 0x90F2 + .incbin "baserom.nds", 0xD10DA8, 0x7992 + .incbin "baserom.nds", 0xD1873C, 0x8F7E + .incbin "baserom.nds", 0xD216BC, 0x5704 + .incbin "baserom.nds", 0xD26DC0, 0x74BC + .incbin "baserom.nds", 0xD2E27C, 0x6C48 + .incbin "baserom.nds", 0xD34EC4, 0x68A4 + .incbin "baserom.nds", 0xD3B768, 0x7F44 + .incbin "baserom.nds", 0xD436AC, 0x67A8 + .incbin "baserom.nds", 0xD49E54, 0x6D4C + .incbin "baserom.nds", 0xD50BA0, 0x67A0 + .incbin "baserom.nds", 0xD57340, 0x7F44 + .incbin "baserom.nds", 0xD5F284, 0x67A8 + .incbin "baserom.nds", 0xD65A2C, 0x917C + .incbin "baserom.nds", 0xD6EBA8, 0xB554 + .incbin "baserom.nds", 0xD7A0FC, 0xA9E4 + .incbin "baserom.nds", 0xD84AE0, 0xABE4 + .incbin "baserom.nds", 0xD8F6C4, 0xAD74 + .incbin "baserom.nds", 0xD9A438, 0xAD80 + .incbin "baserom.nds", 0xDA51B8, 0x9C2C + .incbin "baserom.nds", 0xDAEDE4, 0x99D8 + .incbin "baserom.nds", 0xDB87BC, 0x9BE0 + .incbin "baserom.nds", 0xDC239C, 0x9B38 + .incbin "baserom.nds", 0xDCBED4, 0xA07C + .incbin "baserom.nds", 0xDD5F50, 0x9DC8 + .incbin "baserom.nds", 0xDDFD18, 0xA350 + .incbin "baserom.nds", 0xDEA068, 0xA4E0 + .incbin "baserom.nds", 0xDF4548, 0xA6F0 + .incbin "baserom.nds", 0xDFEC38, 0xA754 + .incbin "baserom.nds", 0xE0938C, 0xD95C + .balign 4, 255 diff --git a/narc/mapmatrix/map_matrix.narc.s b/narc/mapmatrix/map_matrix.narc.s new file mode 100644 index 00000000..d47c8f7f --- /dev/null +++ b/narc/mapmatrix/map_matrix.narc.s @@ -0,0 +1,516 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00002E18 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000007B4 ; chunk size + .short 245 ; number of files + .balign 4 + .word 0x00000000, 0x0000119C + .word 0x0000119C, 0x000011A9 + .word 0x000011AC, 0x00001378 + .word 0x00001378, 0x00001389 + .word 0x0000138C, 0x0000139F + .word 0x000013A0, 0x000013B1 + .word 0x000013B4, 0x000013C5 + .word 0x000013C8, 0x000013E9 + .word 0x000013EC, 0x000013FF + .word 0x00001400, 0x00001411 + .word 0x00001414, 0x00001427 + .word 0x00001428, 0x00001439 + .word 0x0000143C, 0x00001453 + .word 0x00001454, 0x0000146B + .word 0x0000146C, 0x0000147F + .word 0x00001480, 0x00001491 + .word 0x00001494, 0x000014A5 + .word 0x000014A8, 0x000014B9 + .word 0x000014BC, 0x000014CF + .word 0x000014D0, 0x000014E1 + .word 0x000014E4, 0x000014F7 + .word 0x000014F8, 0x0000150B + .word 0x0000150C, 0x00001523 + .word 0x00001524, 0x0000153B + .word 0x0000153C, 0x00001557 + .word 0x00001558, 0x00001569 + .word 0x0000156C, 0x0000157D + .word 0x00001580, 0x00001591 + .word 0x00001594, 0x000015A5 + .word 0x000015A8, 0x000015B9 + .word 0x000015BC, 0x000015CD + .word 0x000015D0, 0x000015E1 + .word 0x000015E4, 0x000015F5 + .word 0x000015F8, 0x00001609 + .word 0x0000160C, 0x0000161D + .word 0x00001620, 0x00001631 + .word 0x00001634, 0x00001645 + .word 0x00001648, 0x00001659 + .word 0x0000165C, 0x0000166D + .word 0x00001670, 0x00001681 + .word 0x00001684, 0x00001695 + .word 0x00001698, 0x000016A9 + .word 0x000016AC, 0x000016BD + .word 0x000016C0, 0x000016DB + .word 0x000016DC, 0x000016F3 + .word 0x000016F4, 0x0000170B + .word 0x0000170C, 0x00001723 + .word 0x00001724, 0x00001735 + .word 0x00001738, 0x00001749 + .word 0x0000174C, 0x00001763 + .word 0x00001764, 0x0000177B + .word 0x0000177C, 0x0000178F + .word 0x00001790, 0x000017A7 + .word 0x000017A8, 0x000017B9 + .word 0x000017BC, 0x000017D3 + .word 0x000017D4, 0x000017EB + .word 0x000017EC, 0x000017FD + .word 0x00001800, 0x00001813 + .word 0x00001814, 0x00001835 + .word 0x00001838, 0x00001849 + .word 0x0000184C, 0x00001863 + .word 0x00001864, 0x00001875 + .word 0x00001878, 0x00001889 + .word 0x0000188C, 0x0000189D + .word 0x000018A0, 0x000018B1 + .word 0x000018B4, 0x000018C5 + .word 0x000018C8, 0x000018D9 + .word 0x000018DC, 0x000018ED + .word 0x000018F0, 0x00001901 + .word 0x00001904, 0x00001915 + .word 0x00001918, 0x00001929 + .word 0x0000192C, 0x0000193D + .word 0x00001940, 0x00001951 + .word 0x00001954, 0x00001965 + .word 0x00001968, 0x00001983 + .word 0x00001984, 0x0000199B + .word 0x0000199C, 0x000019AD + .word 0x000019B0, 0x000019C3 + .word 0x000019C4, 0x000019D9 + .word 0x000019DC, 0x000019ED + .word 0x000019F0, 0x00001A01 + .word 0x00001A04, 0x00001A15 + .word 0x00001A18, 0x00001A29 + .word 0x00001A2C, 0x00001A3D + .word 0x00001A40, 0x00001A57 + .word 0x00001A58, 0x00001A69 + .word 0x00001A6C, 0x00001A7D + .word 0x00001A80, 0x00001A93 + .word 0x00001A94, 0x00001AA5 + .word 0x00001AA8, 0x00001ABB + .word 0x00001ABC, 0x00001ACD + .word 0x00001AD0, 0x00001AE1 + .word 0x00001AE4, 0x00001AF5 + .word 0x00001AF8, 0x00001B09 + .word 0x00001B0C, 0x00001B1D + .word 0x00001B20, 0x00001B33 + .word 0x00001B34, 0x00001B47 + .word 0x00001B48, 0x00001B5B + .word 0x00001B5C, 0x00001B6D + .word 0x00001B70, 0x00001B85 + .word 0x00001B88, 0x00001B99 + .word 0x00001B9C, 0x00001BB7 + .word 0x00001BB8, 0x00001BD3 + .word 0x00001BD4, 0x00001BE5 + .word 0x00001BE8, 0x00001BFF + .word 0x00001C00, 0x00001C17 + .word 0x00001C18, 0x00001C29 + .word 0x00001C2C, 0x00001C43 + .word 0x00001C44, 0x00001C5B + .word 0x00001C5C, 0x00001C6D + .word 0x00001C70, 0x00001C81 + .word 0x00001C84, 0x00001C95 + .word 0x00001C98, 0x00001CA7 + .word 0x00001CA8, 0x00001CB7 + .word 0x00001CB8, 0x00001CC7 + .word 0x00001CC8, 0x00001CD7 + .word 0x00001CD8, 0x00001CE6 + .word 0x00001CE8, 0x00001CF6 + .word 0x00001CF8, 0x00001D06 + .word 0x00001D08, 0x00001D16 + .word 0x00001D18, 0x00001D26 + .word 0x00001D28, 0x00001D36 + .word 0x00001D38, 0x00001D46 + .word 0x00001D48, 0x00001D55 + .word 0x00001D58, 0x00001D65 + .word 0x00001D68, 0x00001D75 + .word 0x00001D78, 0x00001D88 + .word 0x00001D88, 0x00001D98 + .word 0x00001D98, 0x00001DA8 + .word 0x00001DA8, 0x00001DB8 + .word 0x00001DB8, 0x00001DC8 + .word 0x00001DC8, 0x00001DD8 + .word 0x00001DD8, 0x00001DE8 + .word 0x00001DE8, 0x00001DF8 + .word 0x00001DF8, 0x00001E08 + .word 0x00001E08, 0x00001E18 + .word 0x00001E18, 0x00001E28 + .word 0x00001E28, 0x00001E38 + .word 0x00001E38, 0x00001E48 + .word 0x00001E48, 0x00001E58 + .word 0x00001E58, 0x00001E68 + .word 0x00001E68, 0x00001E78 + .word 0x00001E78, 0x00001E88 + .word 0x00001E88, 0x00001E98 + .word 0x00001E98, 0x00001EA8 + .word 0x00001EA8, 0x00001EB9 + .word 0x00001EBC, 0x00001ECD + .word 0x00001ED0, 0x00001EE1 + .word 0x00001EE4, 0x00001EF2 + .word 0x00001EF4, 0x00001F02 + .word 0x00001F04, 0x00001F12 + .word 0x00001F14, 0x00001F22 + .word 0x00001F24, 0x00001F32 + .word 0x00001F34, 0x00001F42 + .word 0x00001F44, 0x00001F52 + .word 0x00001F54, 0x00001F64 + .word 0x00001F64, 0x00001F74 + .word 0x00001F74, 0x00001F84 + .word 0x00001F84, 0x00001F94 + .word 0x00001F94, 0x00001FA4 + .word 0x00001FA4, 0x00001FB4 + .word 0x00001FB4, 0x00001FC5 + .word 0x00001FC8, 0x00001FD9 + .word 0x00001FDC, 0x00001FED + .word 0x00001FF0, 0x00002001 + .word 0x00002004, 0x00002014 + .word 0x00002014, 0x00002026 + .word 0x00002028, 0x00002038 + .word 0x00002038, 0x00002048 + .word 0x00002048, 0x0000205A + .word 0x0000205C, 0x0000206C + .word 0x0000206C, 0x0000207D + .word 0x00002080, 0x00002092 + .word 0x00002094, 0x000020A6 + .word 0x000020A8, 0x000020BA + .word 0x000020BC, 0x000020CE + .word 0x000020D0, 0x000020E2 + .word 0x000020E4, 0x000020F6 + .word 0x000020F8, 0x0000210A + .word 0x0000210C, 0x0000211C + .word 0x0000211C, 0x0000212C + .word 0x0000212C, 0x0000213C + .word 0x0000213C, 0x0000214C + .word 0x0000214C, 0x0000215D + .word 0x00002160, 0x00002171 + .word 0x00002174, 0x00002185 + .word 0x00002188, 0x00002199 + .word 0x0000219C, 0x000021AD + .word 0x000021B0, 0x000021C1 + .word 0x000021C4, 0x000021D5 + .word 0x000021D8, 0x000021E9 + .word 0x000021EC, 0x000021FE + .word 0x00002200, 0x00002212 + .word 0x00002214, 0x00002225 + .word 0x00002228, 0x00002239 + .word 0x0000223C, 0x0000224D + .word 0x00002250, 0x00002261 + .word 0x00002264, 0x00002275 + .word 0x00002278, 0x00002289 + .word 0x0000228C, 0x0000229D + .word 0x000022A0, 0x000022B1 + .word 0x000022B4, 0x000022C4 + .word 0x000022C4, 0x000022D4 + .word 0x000022D4, 0x000022E6 + .word 0x000022E8, 0x000022F8 + .word 0x000022F8, 0x00002308 + .word 0x00002308, 0x00002316 + .word 0x00002318, 0x00002326 + .word 0x00002328, 0x00002338 + .word 0x00002338, 0x00002348 + .word 0x00002348, 0x00002358 + .word 0x00002358, 0x00002368 + .word 0x00002368, 0x00002378 + .word 0x00002378, 0x00002388 + .word 0x00002388, 0x00002398 + .word 0x00002398, 0x000023A8 + .word 0x000023A8, 0x000023B8 + .word 0x000023B8, 0x000023C9 + .word 0x000023CC, 0x000023DD + .word 0x000023E0, 0x000023F1 + .word 0x000023F4, 0x00002405 + .word 0x00002408, 0x00002419 + .word 0x0000241C, 0x0000242D + .word 0x00002430, 0x00002441 + .word 0x00002444, 0x00002455 + .word 0x00002458, 0x00002469 + .word 0x0000246C, 0x0000247D + .word 0x00002480, 0x00002491 + .word 0x00002494, 0x000024A5 + .word 0x000024A8, 0x000024BF + .word 0x000024C0, 0x000024D2 + .word 0x000024D4, 0x000024E3 + .word 0x000024E4, 0x000024F3 + .word 0x000024F4, 0x00002503 + .word 0x00002504, 0x00002516 + .word 0x00002518, 0x00002526 + .word 0x00002528, 0x0000253A + .word 0x0000253C, 0x0000254E + .word 0x00002550, 0x00002561 + .word 0x00002564, 0x00002577 + .word 0x00002578, 0x000025EB + .word 0x000025EC, 0x00002603 + .word 0x00002604, 0x0000261B + .word 0x0000261C, 0x00002629 + .word 0x0000262C, 0x00002639 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00002644 ; chunk size + .incbin "baserom.nds", 0x0, 0x119C + .incbin "baserom.nds", 0x119C, 0xD + .incbin "baserom.nds", 0x11AC, 0x1CC + .incbin "baserom.nds", 0x1378, 0x11 + .incbin "baserom.nds", 0x138C, 0x13 + .incbin "baserom.nds", 0x13A0, 0x11 + .incbin "baserom.nds", 0x13B4, 0x11 + .incbin "baserom.nds", 0x13C8, 0x21 + .incbin "baserom.nds", 0x13EC, 0x13 + .incbin "baserom.nds", 0x1400, 0x11 + .incbin "baserom.nds", 0x1414, 0x13 + .incbin "baserom.nds", 0x1428, 0x11 + .incbin "baserom.nds", 0x143C, 0x17 + .incbin "baserom.nds", 0x1454, 0x17 + .incbin "baserom.nds", 0x146C, 0x13 + .incbin "baserom.nds", 0x1480, 0x11 + .incbin "baserom.nds", 0x1494, 0x11 + .incbin "baserom.nds", 0x14A8, 0x11 + .incbin "baserom.nds", 0x14BC, 0x13 + .incbin "baserom.nds", 0x14D0, 0x11 + .incbin "baserom.nds", 0x14E4, 0x13 + .incbin "baserom.nds", 0x14F8, 0x13 + .incbin "baserom.nds", 0x150C, 0x17 + .incbin "baserom.nds", 0x1524, 0x17 + .incbin "baserom.nds", 0x153C, 0x1B + .incbin "baserom.nds", 0x1558, 0x11 + .incbin "baserom.nds", 0x156C, 0x11 + .incbin "baserom.nds", 0x1580, 0x11 + .incbin "baserom.nds", 0x1594, 0x11 + .incbin "baserom.nds", 0x15A8, 0x11 + .incbin "baserom.nds", 0x15BC, 0x11 + .incbin "baserom.nds", 0x15D0, 0x11 + .incbin "baserom.nds", 0x15E4, 0x11 + .incbin "baserom.nds", 0x15F8, 0x11 + .incbin "baserom.nds", 0x160C, 0x11 + .incbin "baserom.nds", 0x1620, 0x11 + .incbin "baserom.nds", 0x1634, 0x11 + .incbin "baserom.nds", 0x1648, 0x11 + .incbin "baserom.nds", 0x165C, 0x11 + .incbin "baserom.nds", 0x1670, 0x11 + .incbin "baserom.nds", 0x1684, 0x11 + .incbin "baserom.nds", 0x1698, 0x11 + .incbin "baserom.nds", 0x16AC, 0x11 + .incbin "baserom.nds", 0x16C0, 0x1B + .incbin "baserom.nds", 0x16DC, 0x17 + .incbin "baserom.nds", 0x16F4, 0x17 + .incbin "baserom.nds", 0x170C, 0x17 + .incbin "baserom.nds", 0x1724, 0x11 + .incbin "baserom.nds", 0x1738, 0x11 + .incbin "baserom.nds", 0x174C, 0x17 + .incbin "baserom.nds", 0x1764, 0x17 + .incbin "baserom.nds", 0x177C, 0x13 + .incbin "baserom.nds", 0x1790, 0x17 + .incbin "baserom.nds", 0x17A8, 0x11 + .incbin "baserom.nds", 0x17BC, 0x17 + .incbin "baserom.nds", 0x17D4, 0x17 + .incbin "baserom.nds", 0x17EC, 0x11 + .incbin "baserom.nds", 0x1800, 0x13 + .incbin "baserom.nds", 0x1814, 0x21 + .incbin "baserom.nds", 0x1838, 0x11 + .incbin "baserom.nds", 0x184C, 0x17 + .incbin "baserom.nds", 0x1864, 0x11 + .incbin "baserom.nds", 0x1878, 0x11 + .incbin "baserom.nds", 0x188C, 0x11 + .incbin "baserom.nds", 0x18A0, 0x11 + .incbin "baserom.nds", 0x18B4, 0x11 + .incbin "baserom.nds", 0x18C8, 0x11 + .incbin "baserom.nds", 0x18DC, 0x11 + .incbin "baserom.nds", 0x18F0, 0x11 + .incbin "baserom.nds", 0x1904, 0x11 + .incbin "baserom.nds", 0x1918, 0x11 + .incbin "baserom.nds", 0x192C, 0x11 + .incbin "baserom.nds", 0x1940, 0x11 + .incbin "baserom.nds", 0x1954, 0x11 + .incbin "baserom.nds", 0x1968, 0x1B + .incbin "baserom.nds", 0x1984, 0x17 + .incbin "baserom.nds", 0x199C, 0x11 + .incbin "baserom.nds", 0x19B0, 0x13 + .incbin "baserom.nds", 0x19C4, 0x15 + .incbin "baserom.nds", 0x19DC, 0x11 + .incbin "baserom.nds", 0x19F0, 0x11 + .incbin "baserom.nds", 0x1A04, 0x11 + .incbin "baserom.nds", 0x1A18, 0x11 + .incbin "baserom.nds", 0x1A2C, 0x11 + .incbin "baserom.nds", 0x1A40, 0x17 + .incbin "baserom.nds", 0x1A58, 0x11 + .incbin "baserom.nds", 0x1A6C, 0x11 + .incbin "baserom.nds", 0x1A80, 0x13 + .incbin "baserom.nds", 0x1A94, 0x11 + .incbin "baserom.nds", 0x1AA8, 0x13 + .incbin "baserom.nds", 0x1ABC, 0x11 + .incbin "baserom.nds", 0x1AD0, 0x11 + .incbin "baserom.nds", 0x1AE4, 0x11 + .incbin "baserom.nds", 0x1AF8, 0x11 + .incbin "baserom.nds", 0x1B0C, 0x11 + .incbin "baserom.nds", 0x1B20, 0x13 + .incbin "baserom.nds", 0x1B34, 0x13 + .incbin "baserom.nds", 0x1B48, 0x13 + .incbin "baserom.nds", 0x1B5C, 0x11 + .incbin "baserom.nds", 0x1B70, 0x15 + .incbin "baserom.nds", 0x1B88, 0x11 + .incbin "baserom.nds", 0x1B9C, 0x1B + .incbin "baserom.nds", 0x1BB8, 0x1B + .incbin "baserom.nds", 0x1BD4, 0x11 + .incbin "baserom.nds", 0x1BE8, 0x17 + .incbin "baserom.nds", 0x1C00, 0x17 + .incbin "baserom.nds", 0x1C18, 0x11 + .incbin "baserom.nds", 0x1C2C, 0x17 + .incbin "baserom.nds", 0x1C44, 0x17 + .incbin "baserom.nds", 0x1C5C, 0x11 + .incbin "baserom.nds", 0x1C70, 0x11 + .incbin "baserom.nds", 0x1C84, 0x11 + .incbin "baserom.nds", 0x1C98, 0xF + .incbin "baserom.nds", 0x1CA8, 0xF + .incbin "baserom.nds", 0x1CB8, 0xF + .incbin "baserom.nds", 0x1CC8, 0xF + .incbin "baserom.nds", 0x1CD8, 0xE + .incbin "baserom.nds", 0x1CE8, 0xE + .incbin "baserom.nds", 0x1CF8, 0xE + .incbin "baserom.nds", 0x1D08, 0xE + .incbin "baserom.nds", 0x1D18, 0xE + .incbin "baserom.nds", 0x1D28, 0xE + .incbin "baserom.nds", 0x1D38, 0xE + .incbin "baserom.nds", 0x1D48, 0xD + .incbin "baserom.nds", 0x1D58, 0xD + .incbin "baserom.nds", 0x1D68, 0xD + .incbin "baserom.nds", 0x1D78, 0x10 + .incbin "baserom.nds", 0x1D88, 0x10 + .incbin "baserom.nds", 0x1D98, 0x10 + .incbin "baserom.nds", 0x1DA8, 0x10 + .incbin "baserom.nds", 0x1DB8, 0x10 + .incbin "baserom.nds", 0x1DC8, 0x10 + .incbin "baserom.nds", 0x1DD8, 0x10 + .incbin "baserom.nds", 0x1DE8, 0x10 + .incbin "baserom.nds", 0x1DF8, 0x10 + .incbin "baserom.nds", 0x1E08, 0x10 + .incbin "baserom.nds", 0x1E18, 0x10 + .incbin "baserom.nds", 0x1E28, 0x10 + .incbin "baserom.nds", 0x1E38, 0x10 + .incbin "baserom.nds", 0x1E48, 0x10 + .incbin "baserom.nds", 0x1E58, 0x10 + .incbin "baserom.nds", 0x1E68, 0x10 + .incbin "baserom.nds", 0x1E78, 0x10 + .incbin "baserom.nds", 0x1E88, 0x10 + .incbin "baserom.nds", 0x1E98, 0x10 + .incbin "baserom.nds", 0x1EA8, 0x11 + .incbin "baserom.nds", 0x1EBC, 0x11 + .incbin "baserom.nds", 0x1ED0, 0x11 + .incbin "baserom.nds", 0x1EE4, 0xE + .incbin "baserom.nds", 0x1EF4, 0xE + .incbin "baserom.nds", 0x1F04, 0xE + .incbin "baserom.nds", 0x1F14, 0xE + .incbin "baserom.nds", 0x1F24, 0xE + .incbin "baserom.nds", 0x1F34, 0xE + .incbin "baserom.nds", 0x1F44, 0xE + .incbin "baserom.nds", 0x1F54, 0x10 + .incbin "baserom.nds", 0x1F64, 0x10 + .incbin "baserom.nds", 0x1F74, 0x10 + .incbin "baserom.nds", 0x1F84, 0x10 + .incbin "baserom.nds", 0x1F94, 0x10 + .incbin "baserom.nds", 0x1FA4, 0x10 + .incbin "baserom.nds", 0x1FB4, 0x11 + .incbin "baserom.nds", 0x1FC8, 0x11 + .incbin "baserom.nds", 0x1FDC, 0x11 + .incbin "baserom.nds", 0x1FF0, 0x11 + .incbin "baserom.nds", 0x2004, 0x10 + .incbin "baserom.nds", 0x2014, 0x12 + .incbin "baserom.nds", 0x2028, 0x10 + .incbin "baserom.nds", 0x2038, 0x10 + .incbin "baserom.nds", 0x2048, 0x12 + .incbin "baserom.nds", 0x205C, 0x10 + .incbin "baserom.nds", 0x206C, 0x11 + .incbin "baserom.nds", 0x2080, 0x12 + .incbin "baserom.nds", 0x2094, 0x12 + .incbin "baserom.nds", 0x20A8, 0x12 + .incbin "baserom.nds", 0x20BC, 0x12 + .incbin "baserom.nds", 0x20D0, 0x12 + .incbin "baserom.nds", 0x20E4, 0x12 + .incbin "baserom.nds", 0x20F8, 0x12 + .incbin "baserom.nds", 0x210C, 0x10 + .incbin "baserom.nds", 0x211C, 0x10 + .incbin "baserom.nds", 0x212C, 0x10 + .incbin "baserom.nds", 0x213C, 0x10 + .incbin "baserom.nds", 0x214C, 0x11 + .incbin "baserom.nds", 0x2160, 0x11 + .incbin "baserom.nds", 0x2174, 0x11 + .incbin "baserom.nds", 0x2188, 0x11 + .incbin "baserom.nds", 0x219C, 0x11 + .incbin "baserom.nds", 0x21B0, 0x11 + .incbin "baserom.nds", 0x21C4, 0x11 + .incbin "baserom.nds", 0x21D8, 0x11 + .incbin "baserom.nds", 0x21EC, 0x12 + .incbin "baserom.nds", 0x2200, 0x12 + .incbin "baserom.nds", 0x2214, 0x11 + .incbin "baserom.nds", 0x2228, 0x11 + .incbin "baserom.nds", 0x223C, 0x11 + .incbin "baserom.nds", 0x2250, 0x11 + .incbin "baserom.nds", 0x2264, 0x11 + .incbin "baserom.nds", 0x2278, 0x11 + .incbin "baserom.nds", 0x228C, 0x11 + .incbin "baserom.nds", 0x22A0, 0x11 + .incbin "baserom.nds", 0x22B4, 0x10 + .incbin "baserom.nds", 0x22C4, 0x10 + .incbin "baserom.nds", 0x22D4, 0x12 + .incbin "baserom.nds", 0x22E8, 0x10 + .incbin "baserom.nds", 0x22F8, 0x10 + .incbin "baserom.nds", 0x2308, 0xE + .incbin "baserom.nds", 0x2318, 0xE + .incbin "baserom.nds", 0x2328, 0x10 + .incbin "baserom.nds", 0x2338, 0x10 + .incbin "baserom.nds", 0x2348, 0x10 + .incbin "baserom.nds", 0x2358, 0x10 + .incbin "baserom.nds", 0x2368, 0x10 + .incbin "baserom.nds", 0x2378, 0x10 + .incbin "baserom.nds", 0x2388, 0x10 + .incbin "baserom.nds", 0x2398, 0x10 + .incbin "baserom.nds", 0x23A8, 0x10 + .incbin "baserom.nds", 0x23B8, 0x11 + .incbin "baserom.nds", 0x23CC, 0x11 + .incbin "baserom.nds", 0x23E0, 0x11 + .incbin "baserom.nds", 0x23F4, 0x11 + .incbin "baserom.nds", 0x2408, 0x11 + .incbin "baserom.nds", 0x241C, 0x11 + .incbin "baserom.nds", 0x2430, 0x11 + .incbin "baserom.nds", 0x2444, 0x11 + .incbin "baserom.nds", 0x2458, 0x11 + .incbin "baserom.nds", 0x246C, 0x11 + .incbin "baserom.nds", 0x2480, 0x11 + .incbin "baserom.nds", 0x2494, 0x11 + .incbin "baserom.nds", 0x24A8, 0x17 + .incbin "baserom.nds", 0x24C0, 0x12 + .incbin "baserom.nds", 0x24D4, 0xF + .incbin "baserom.nds", 0x24E4, 0xF + .incbin "baserom.nds", 0x24F4, 0xF + .incbin "baserom.nds", 0x2504, 0x12 + .incbin "baserom.nds", 0x2518, 0xE + .incbin "baserom.nds", 0x2528, 0x12 + .incbin "baserom.nds", 0x253C, 0x12 + .incbin "baserom.nds", 0x2550, 0x11 + .incbin "baserom.nds", 0x2564, 0x13 + .incbin "baserom.nds", 0x2578, 0x73 + .incbin "baserom.nds", 0x25EC, 0x17 + .incbin "baserom.nds", 0x2604, 0x17 + .incbin "baserom.nds", 0x261C, 0xD + .incbin "baserom.nds", 0x262C, 0xD + .balign 4, 255 diff --git a/narc/maptable/mapname.bin.s b/narc/maptable/mapname.bin.s new file mode 100644 index 00000000..425f8195 --- /dev/null +++ b/narc/maptable/mapname.bin.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x385AA00, 0x22F0 diff --git a/narc/mm_list/move_model_list.narc.s b/narc/mm_list/move_model_list.narc.s new file mode 100644 index 00000000..ab6048c0 --- /dev/null +++ b/narc/mm_list/move_model_list.narc.s @@ -0,0 +1,58 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00000264 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000008C ; chunk size + .short 16 ; number of files + .balign 4 + .word 0x00000000, 0x0000001C + .word 0x0000001C, 0x00000038 + .word 0x00000038, 0x00000054 + .word 0x00000054, 0x00000070 + .word 0x00000070, 0x0000008C + .word 0x0000008C, 0x000000A8 + .word 0x000000A8, 0x000000C4 + .word 0x000000C4, 0x000000E0 + .word 0x000000E0, 0x000000FC + .word 0x000000FC, 0x00000118 + .word 0x00000118, 0x00000134 + .word 0x00000134, 0x00000150 + .word 0x00000150, 0x0000016C + .word 0x0000016C, 0x00000188 + .word 0x00000188, 0x000001AC + .word 0x000001AC, 0x000001B0 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000001B8 ; chunk size + .incbin "baserom.nds", 0x0, 0x1C + .incbin "baserom.nds", 0x1C, 0x1C + .incbin "baserom.nds", 0x38, 0x1C + .incbin "baserom.nds", 0x54, 0x1C + .incbin "baserom.nds", 0x70, 0x1C + .incbin "baserom.nds", 0x8C, 0x1C + .incbin "baserom.nds", 0xA8, 0x1C + .incbin "baserom.nds", 0xC4, 0x1C + .incbin "baserom.nds", 0xE0, 0x1C + .incbin "baserom.nds", 0xFC, 0x1C + .incbin "baserom.nds", 0x118, 0x1C + .incbin "baserom.nds", 0x134, 0x1C + .incbin "baserom.nds", 0x150, 0x1C + .incbin "baserom.nds", 0x16C, 0x1C + .incbin "baserom.nds", 0x188, 0x24 + .incbin "baserom.nds", 0x1AC, 0x4 + .balign 4, 255 diff --git a/narc/mmodel/fldeff.narc.s b/narc/mmodel/fldeff.narc.s new file mode 100644 index 00000000..76f7c135 --- /dev/null +++ b/narc/mmodel/fldeff.narc.s @@ -0,0 +1,284 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0001BE98 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000414 ; chunk size + .short 129 ; number of files + .balign 4 + .word 0x00000000, 0x00000908 + .word 0x00000908, 0x00000B84 + .word 0x00000B84, 0x00000E9C + .word 0x00000E9C, 0x000011B4 + .word 0x000011B4, 0x000012E8 + .word 0x000012E8, 0x00001704 + .word 0x00001704, 0x000017C8 + .word 0x000017C8, 0x00001A18 + .word 0x00001A18, 0x00001C10 + .word 0x00001C10, 0x00001E18 + .word 0x00001E18, 0x00002368 + .word 0x00002368, 0x000028B8 + .word 0x000028B8, 0x00002E08 + .word 0x00002E08, 0x00002F3C + .word 0x00002F3C, 0x00003224 + .word 0x00003224, 0x00003640 + .word 0x00003640, 0x00003A6C + .word 0x00003A6C, 0x00003D84 + .word 0x00003D84, 0x00004044 + .word 0x00004044, 0x00004304 + .word 0x00004304, 0x00004794 + .word 0x00004794, 0x00004A94 + .word 0x00004A94, 0x00004DA0 + .word 0x00004DA0, 0x000050AC + .word 0x000050AC, 0x000053B8 + .word 0x000053B8, 0x00005678 + .word 0x00005678, 0x00005994 + .word 0x00005994, 0x00005CB0 + .word 0x00005CB0, 0x00005FCC + .word 0x00005FCC, 0x000062E8 + .word 0x000062E8, 0x00006604 + .word 0x00006604, 0x00006920 + .word 0x00006920, 0x00006C3C + .word 0x00006C3C, 0x00006F58 + .word 0x00006F58, 0x00007274 + .word 0x00007274, 0x00007590 + .word 0x00007590, 0x000078AC + .word 0x000078AC, 0x00007BC8 + .word 0x00007BC8, 0x00007EE4 + .word 0x00007EE4, 0x00008200 + .word 0x00008200, 0x0000851C + .word 0x0000851C, 0x00008838 + .word 0x00008838, 0x00008B54 + .word 0x00008B54, 0x00008E70 + .word 0x00008E70, 0x0000918C + .word 0x0000918C, 0x000094A8 + .word 0x000094A8, 0x000097C4 + .word 0x000097C4, 0x00009AE0 + .word 0x00009AE0, 0x00009DFC + .word 0x00009DFC, 0x0000A108 + .word 0x0000A108, 0x0000A414 + .word 0x0000A414, 0x0000A720 + .word 0x0000A720, 0x0000AA2C + .word 0x0000AA2C, 0x0000AD48 + .word 0x0000AD48, 0x0000B064 + .word 0x0000B064, 0x0000B380 + .word 0x0000B380, 0x0000B69C + .word 0x0000B69C, 0x0000B9B8 + .word 0x0000B9B8, 0x0000C48C + .word 0x0000C48C, 0x0000C74C + .word 0x0000C74C, 0x0000CA0C + .word 0x0000CA0C, 0x0000CCCC + .word 0x0000CCCC, 0x0000CF8C + .word 0x0000CF8C, 0x0000D24C + .word 0x0000D24C, 0x0000D50C + .word 0x0000D50C, 0x0000D7CC + .word 0x0000D7CC, 0x0000DA8C + .word 0x0000DA8C, 0x0000DD4C + .word 0x0000DD4C, 0x0000E00C + .word 0x0000E00C, 0x0000E7DC + .word 0x0000E7DC, 0x0000F134 + .word 0x0000F134, 0x0000F888 + .word 0x0000F888, 0x0001029C + .word 0x0001029C, 0x00010D54 + .word 0x00010D54, 0x0001161C + .word 0x0001161C, 0x0001191C + .word 0x0001191C, 0x00011C1C + .word 0x00011C1C, 0x00011F1C + .word 0x00011F1C, 0x00012A3C + .word 0x00012A3C, 0x00012D3C + .word 0x00012D3C, 0x00012FFC + .word 0x00012FFC, 0x00013B04 + .word 0x00013B04, 0x00014568 + .word 0x00014568, 0x0001503C + .word 0x0001503C, 0x00015484 + .word 0x00015484, 0x00015784 + .word 0x00015784, 0x00015D6C + .word 0x00015D6C, 0x000160D8 + .word 0x000160D8, 0x00016508 + .word 0x00016508, 0x000168CC + .word 0x000168CC, 0x00016CA0 + .word 0x00016CA0, 0x00017558 + .word 0x00017558, 0x00017990 + .word 0x00017990, 0x00017C50 + .word 0x00017C50, 0x00017F10 + .word 0x00017F10, 0x000181D0 + .word 0x000181D0, 0x00018490 + .word 0x00018490, 0x00018750 + .word 0x00018750, 0x00018A10 + .word 0x00018A10, 0x00018CD0 + .word 0x00018CD0, 0x00018F90 + .word 0x00018F90, 0x00019250 + .word 0x00019250, 0x00019510 + .word 0x00019510, 0x000197D0 + .word 0x000197D0, 0x00019A90 + .word 0x00019A90, 0x00019D50 + .word 0x00019D50, 0x0001A010 + .word 0x0001A010, 0x0001A72C + .word 0x0001A72C, 0x0001AA2C + .word 0x0001AA2C, 0x0001AEE0 + .word 0x0001AEE0, 0x0001B360 + .word 0x0001B360, 0x0001B46C + .word 0x0001B46C, 0x0001B578 + .word 0x0001B578, 0x0001B654 + .word 0x0001B654, 0x0001B74C + .word 0x0001B74C, 0x0001B814 + .word 0x0001B814, 0x0001B920 + .word 0x0001B920, 0x0001B934 + .word 0x0001B934, 0x0001B964 + .word 0x0001B964, 0x0001B98C + .word 0x0001B98C, 0x0001B9C4 + .word 0x0001B9C4, 0x0001B9D4 + .word 0x0001B9D4, 0x0001B9E8 + .word 0x0001B9E8, 0x0001BA08 + .word 0x0001BA08, 0x0001BA14 + .word 0x0001BA14, 0x0001BA28 + .word 0x0001BA28, 0x0001BA3C + .word 0x0001BA3C, 0x0001BA50 + .word 0x0001BA50, 0x0001BA5C + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0001BA64 ; chunk size + .incbin "baserom.nds", 0x0, 0x908 + .incbin "baserom.nds", 0x908, 0x27C + .incbin "baserom.nds", 0xB84, 0x318 + .incbin "baserom.nds", 0xE9C, 0x318 + .incbin "baserom.nds", 0x11B4, 0x134 + .incbin "baserom.nds", 0x12E8, 0x41C + .incbin "baserom.nds", 0x1704, 0xC4 + .incbin "baserom.nds", 0x17C8, 0x250 + .incbin "baserom.nds", 0x1A18, 0x1F8 + .incbin "baserom.nds", 0x1C10, 0x208 + .incbin "baserom.nds", 0x1E18, 0x550 + .incbin "baserom.nds", 0x2368, 0x550 + .incbin "baserom.nds", 0x28B8, 0x550 + .incbin "baserom.nds", 0x2E08, 0x134 + .incbin "baserom.nds", 0x2F3C, 0x2E8 + .incbin "baserom.nds", 0x3224, 0x41C + .incbin "baserom.nds", 0x3640, 0x42C + .incbin "baserom.nds", 0x3A6C, 0x318 + .incbin "baserom.nds", 0x3D84, 0x2C0 + .incbin "baserom.nds", 0x4044, 0x2C0 + .incbin "baserom.nds", 0x4304, 0x490 + .incbin "baserom.nds", 0x4794, 0x300 + .incbin "baserom.nds", 0x4A94, 0x30C + .incbin "baserom.nds", 0x4DA0, 0x30C + .incbin "baserom.nds", 0x50AC, 0x30C + .incbin "baserom.nds", 0x53B8, 0x2C0 + .incbin "baserom.nds", 0x5678, 0x31C + .incbin "baserom.nds", 0x5994, 0x31C + .incbin "baserom.nds", 0x5CB0, 0x31C + .incbin "baserom.nds", 0x5FCC, 0x31C + .incbin "baserom.nds", 0x62E8, 0x31C + .incbin "baserom.nds", 0x6604, 0x31C + .incbin "baserom.nds", 0x6920, 0x31C + .incbin "baserom.nds", 0x6C3C, 0x31C + .incbin "baserom.nds", 0x6F58, 0x31C + .incbin "baserom.nds", 0x7274, 0x31C + .incbin "baserom.nds", 0x7590, 0x31C + .incbin "baserom.nds", 0x78AC, 0x31C + .incbin "baserom.nds", 0x7BC8, 0x31C + .incbin "baserom.nds", 0x7EE4, 0x31C + .incbin "baserom.nds", 0x8200, 0x31C + .incbin "baserom.nds", 0x851C, 0x31C + .incbin "baserom.nds", 0x8838, 0x31C + .incbin "baserom.nds", 0x8B54, 0x31C + .incbin "baserom.nds", 0x8E70, 0x31C + .incbin "baserom.nds", 0x918C, 0x31C + .incbin "baserom.nds", 0x94A8, 0x31C + .incbin "baserom.nds", 0x97C4, 0x31C + .incbin "baserom.nds", 0x9AE0, 0x31C + .incbin "baserom.nds", 0x9DFC, 0x30C + .incbin "baserom.nds", 0xA108, 0x30C + .incbin "baserom.nds", 0xA414, 0x30C + .incbin "baserom.nds", 0xA720, 0x30C + .incbin "baserom.nds", 0xAA2C, 0x31C + .incbin "baserom.nds", 0xAD48, 0x31C + .incbin "baserom.nds", 0xB064, 0x31C + .incbin "baserom.nds", 0xB380, 0x31C + .incbin "baserom.nds", 0xB69C, 0x31C + .incbin "baserom.nds", 0xB9B8, 0xAD4 + .incbin "baserom.nds", 0xC48C, 0x2C0 + .incbin "baserom.nds", 0xC74C, 0x2C0 + .incbin "baserom.nds", 0xCA0C, 0x2C0 + .incbin "baserom.nds", 0xCCCC, 0x2C0 + .incbin "baserom.nds", 0xCF8C, 0x2C0 + .incbin "baserom.nds", 0xD24C, 0x2C0 + .incbin "baserom.nds", 0xD50C, 0x2C0 + .incbin "baserom.nds", 0xD7CC, 0x2C0 + .incbin "baserom.nds", 0xDA8C, 0x2C0 + .incbin "baserom.nds", 0xDD4C, 0x2C0 + .incbin "baserom.nds", 0xE00C, 0x7D0 + .incbin "baserom.nds", 0xE7DC, 0x958 + .incbin "baserom.nds", 0xF134, 0x754 + .incbin "baserom.nds", 0xF888, 0xA14 + .incbin "baserom.nds", 0x1029C, 0xAB8 + .incbin "baserom.nds", 0x10D54, 0x8C8 + .incbin "baserom.nds", 0x1161C, 0x300 + .incbin "baserom.nds", 0x1191C, 0x300 + .incbin "baserom.nds", 0x11C1C, 0x300 + .incbin "baserom.nds", 0x11F1C, 0xB20 + .incbin "baserom.nds", 0x12A3C, 0x300 + .incbin "baserom.nds", 0x12D3C, 0x2C0 + .incbin "baserom.nds", 0x12FFC, 0xB08 + .incbin "baserom.nds", 0x13B04, 0xA64 + .incbin "baserom.nds", 0x14568, 0xAD4 + .incbin "baserom.nds", 0x1503C, 0x448 + .incbin "baserom.nds", 0x15484, 0x300 + .incbin "baserom.nds", 0x15784, 0x5E8 + .incbin "baserom.nds", 0x15D6C, 0x36C + .incbin "baserom.nds", 0x160D8, 0x430 + .incbin "baserom.nds", 0x16508, 0x3C4 + .incbin "baserom.nds", 0x168CC, 0x3D4 + .incbin "baserom.nds", 0x16CA0, 0x8B8 + .incbin "baserom.nds", 0x17558, 0x438 + .incbin "baserom.nds", 0x17990, 0x2C0 + .incbin "baserom.nds", 0x17C50, 0x2C0 + .incbin "baserom.nds", 0x17F10, 0x2C0 + .incbin "baserom.nds", 0x181D0, 0x2C0 + .incbin "baserom.nds", 0x18490, 0x2C0 + .incbin "baserom.nds", 0x18750, 0x2C0 + .incbin "baserom.nds", 0x18A10, 0x2C0 + .incbin "baserom.nds", 0x18CD0, 0x2C0 + .incbin "baserom.nds", 0x18F90, 0x2C0 + .incbin "baserom.nds", 0x19250, 0x2C0 + .incbin "baserom.nds", 0x19510, 0x2C0 + .incbin "baserom.nds", 0x197D0, 0x2C0 + .incbin "baserom.nds", 0x19A90, 0x2C0 + .incbin "baserom.nds", 0x19D50, 0x2C0 + .incbin "baserom.nds", 0x1A010, 0x71C + .incbin "baserom.nds", 0x1A72C, 0x300 + .incbin "baserom.nds", 0x1AA2C, 0x4B4 + .incbin "baserom.nds", 0x1AEE0, 0x480 + .incbin "baserom.nds", 0x1B360, 0x10C + .incbin "baserom.nds", 0x1B46C, 0x10C + .incbin "baserom.nds", 0x1B578, 0xDC + .incbin "baserom.nds", 0x1B654, 0xF8 + .incbin "baserom.nds", 0x1B74C, 0xC8 + .incbin "baserom.nds", 0x1B814, 0x10C + .incbin "baserom.nds", 0x1B920, 0x14 + .incbin "baserom.nds", 0x1B934, 0x30 + .incbin "baserom.nds", 0x1B964, 0x28 + .incbin "baserom.nds", 0x1B98C, 0x38 + .incbin "baserom.nds", 0x1B9C4, 0x10 + .incbin "baserom.nds", 0x1B9D4, 0x14 + .incbin "baserom.nds", 0x1B9E8, 0x20 + .incbin "baserom.nds", 0x1BA08, 0xC + .incbin "baserom.nds", 0x1BA14, 0x14 + .incbin "baserom.nds", 0x1BA28, 0x14 + .incbin "baserom.nds", 0x1BA3C, 0x14 + .incbin "baserom.nds", 0x1BA50, 0xC + .balign 4, 255 diff --git a/narc/mmodel/mmodel.narc.s b/narc/mmodel/mmodel.narc.s new file mode 100644 index 00000000..a5ffa0c6 --- /dev/null +++ b/narc/mmodel/mmodel.narc.s @@ -0,0 +1,854 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0012845C ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000CFC ; chunk size + .short 414 ; number of files + .balign 4 + .word 0x00000000, 0x00001A68 + .word 0x00001A68, 0x000034D0 + .word 0x000034D0, 0x00004F38 + .word 0x00004F38, 0x000069A0 + .word 0x000069A0, 0x00008408 + .word 0x00008408, 0x00009E70 + .word 0x00009E70, 0x0000B8D8 + .word 0x0000B8D8, 0x0000D340 + .word 0x0000D340, 0x0000EDA8 + .word 0x0000EDA8, 0x00010810 + .word 0x00010810, 0x00012278 + .word 0x00012278, 0x00013CE0 + .word 0x00013CE0, 0x00015748 + .word 0x00015748, 0x000171B0 + .word 0x000171B0, 0x00018C18 + .word 0x00018C18, 0x0001A680 + .word 0x0001A680, 0x0001C0E8 + .word 0x0001C0E8, 0x0001DB50 + .word 0x0001DB50, 0x0001F5B8 + .word 0x0001F5B8, 0x00021020 + .word 0x00021020, 0x00022A88 + .word 0x00022A88, 0x000244F0 + .word 0x000244F0, 0x00025F58 + .word 0x00025F58, 0x000279C0 + .word 0x000279C0, 0x00029644 + .word 0x00029644, 0x0002B0AC + .word 0x0002B0AC, 0x0002CB14 + .word 0x0002CB14, 0x0002E57C + .word 0x0002E57C, 0x0002FFE4 + .word 0x0002FFE4, 0x00031A4C + .word 0x00031A4C, 0x000334B4 + .word 0x000334B4, 0x00034F1C + .word 0x00034F1C, 0x00036984 + .word 0x00036984, 0x000383EC + .word 0x000383EC, 0x00039E54 + .word 0x00039E54, 0x0003B8BC + .word 0x0003B8BC, 0x0003D324 + .word 0x0003D324, 0x0003ED8C + .word 0x0003ED8C, 0x000407F4 + .word 0x000407F4, 0x0004225C + .word 0x0004225C, 0x00043CC4 + .word 0x00043CC4, 0x0004572C + .word 0x0004572C, 0x00047194 + .word 0x00047194, 0x00048BFC + .word 0x00048BFC, 0x0004A664 + .word 0x0004A664, 0x0004C0CC + .word 0x0004C0CC, 0x0004DB34 + .word 0x0004DB34, 0x0004F59C + .word 0x0004F59C, 0x00051004 + .word 0x00051004, 0x00052A6C + .word 0x00052A6C, 0x000544D4 + .word 0x000544D4, 0x00055F3C + .word 0x00055F3C, 0x000579A4 + .word 0x000579A4, 0x0005940C + .word 0x0005940C, 0x0005AE74 + .word 0x0005AE74, 0x0005B4DC + .word 0x0005B4DC, 0x0005BB44 + .word 0x0005BB44, 0x0005D5AC + .word 0x0005D5AC, 0x0005F014 + .word 0x0005F014, 0x0005F67C + .word 0x0005F67C, 0x000610E4 + .word 0x000610E4, 0x00062B4C + .word 0x00062B4C, 0x000645B4 + .word 0x000645B4, 0x0006601C + .word 0x0006601C, 0x00066684 + .word 0x00066684, 0x00066CEC + .word 0x00066CEC, 0x00068754 + .word 0x00068754, 0x0006A1BC + .word 0x0006A1BC, 0x0006BC24 + .word 0x0006BC24, 0x0006D68C + .word 0x0006D68C, 0x0006F0F4 + .word 0x0006F0F4, 0x00070B5C + .word 0x00070B5C, 0x000725C4 + .word 0x000725C4, 0x00072C2C + .word 0x00072C2C, 0x00073294 + .word 0x00073294, 0x000738FC + .word 0x000738FC, 0x00075364 + .word 0x00075364, 0x00076DCC + .word 0x00076DCC, 0x00077434 + .word 0x00077434, 0x0007869C + .word 0x0007869C, 0x0007A104 + .word 0x0007A104, 0x0007BB6C + .word 0x0007BB6C, 0x0007BCA0 + .word 0x0007BCA0, 0x0007BDD4 + .word 0x0007BDD4, 0x0007C088 + .word 0x0007C088, 0x0007C1BC + .word 0x0007C1BC, 0x0007DC24 + .word 0x0007DC24, 0x0007F68C + .word 0x0007F68C, 0x000810F4 + .word 0x000810F4, 0x00081510 + .word 0x00081510, 0x00084938 + .word 0x00084938, 0x00087D60 + .word 0x00087D60, 0x0008A8A8 + .word 0x0008A8A8, 0x0008D3F0 + .word 0x0008D3F0, 0x0008EE58 + .word 0x0008EE58, 0x0008F040 + .word 0x0008F040, 0x0008F328 + .word 0x0008F328, 0x0008F620 + .word 0x0008F620, 0x0008F918 + .word 0x0008F918, 0x00091380 + .word 0x00091380, 0x00092DE8 + .word 0x00092DE8, 0x00094850 + .word 0x00094850, 0x000962B8 + .word 0x000962B8, 0x00097D20 + .word 0x00097D20, 0x00099788 + .word 0x00099788, 0x0009B1F0 + .word 0x0009B1F0, 0x0009CC58 + .word 0x0009CC58, 0x0009E6C0 + .word 0x0009E6C0, 0x000A0128 + .word 0x000A0128, 0x000A1B90 + .word 0x000A1B90, 0x000A35F8 + .word 0x000A35F8, 0x000A5060 + .word 0x000A5060, 0x000A6AC8 + .word 0x000A6AC8, 0x000A8530 + .word 0x000A8530, 0x000A9F98 + .word 0x000A9F98, 0x000ABA00 + .word 0x000ABA00, 0x000AD468 + .word 0x000AD468, 0x000AEED0 + .word 0x000AEED0, 0x000B0938 + .word 0x000B0938, 0x000B23A0 + .word 0x000B23A0, 0x000B3E08 + .word 0x000B3E08, 0x000B5870 + .word 0x000B5870, 0x000B72D8 + .word 0x000B72D8, 0x000B8D40 + .word 0x000B8D40, 0x000BADA8 + .word 0x000BADA8, 0x000BB410 + .word 0x000BB410, 0x000BBA78 + .word 0x000BBA78, 0x000BD4E0 + .word 0x000BD4E0, 0x000BEF48 + .word 0x000BEF48, 0x000C09B0 + .word 0x000C09B0, 0x000C0E90 + .word 0x000C0E90, 0x000C1370 + .word 0x000C1370, 0x000C1850 + .word 0x000C1850, 0x000C2930 + .word 0x000C2930, 0x000C3A10 + .word 0x000C3A10, 0x000C4AF0 + .word 0x000C4AF0, 0x000C4FD0 + .word 0x000C4FD0, 0x000C6238 + .word 0x000C6238, 0x000C6718 + .word 0x000C6718, 0x000C77F8 + .word 0x000C77F8, 0x000C7CD8 + .word 0x000C7CD8, 0x000C8340 + .word 0x000C8340, 0x000C9DA8 + .word 0x000C9DA8, 0x000CB810 + .word 0x000CB810, 0x000CD278 + .word 0x000CD278, 0x000CECE0 + .word 0x000CECE0, 0x000D0748 + .word 0x000D0748, 0x000D21B0 + .word 0x000D21B0, 0x000D3C18 + .word 0x000D3C18, 0x000D5680 + .word 0x000D5680, 0x000D70E8 + .word 0x000D70E8, 0x000D8B50 + .word 0x000D8B50, 0x000D9468 + .word 0x000D9468, 0x000D972C + .word 0x000D972C, 0x000DB194 + .word 0x000DB194, 0x000DBAAC + .word 0x000DBAAC, 0x000DC3C4 + .word 0x000DC3C4, 0x000DCF30 + .word 0x000DCF30, 0x000DDA9C + .word 0x000DDA9C, 0x000DE3B4 + .word 0x000DE3B4, 0x000DECCC + .word 0x000DECCC, 0x000DEF90 + .word 0x000DEF90, 0x000DF854 + .word 0x000DF854, 0x000E12BC + .word 0x000E12BC, 0x000E2D24 + .word 0x000E2D24, 0x000E478C + .word 0x000E478C, 0x000E69F4 + .word 0x000E69F4, 0x000E8C5C + .word 0x000E8C5C, 0x000E8DA0 + .word 0x000E8DA0, 0x000E8ED4 + .word 0x000E8ED4, 0x000E9188 + .word 0x000E9188, 0x000E9480 + .word 0x000E9480, 0x000E9778 + .word 0x000E9778, 0x000E9A70 + .word 0x000E9A70, 0x000E9D58 + .word 0x000E9D58, 0x000EA050 + .word 0x000EA050, 0x000EA348 + .word 0x000EA348, 0x000EA630 + .word 0x000EA630, 0x000EA928 + .word 0x000EA928, 0x000EAC20 + .word 0x000EAC20, 0x000EAF18 + .word 0x000EAF18, 0x000EB210 + .word 0x000EB210, 0x000EB508 + .word 0x000EB508, 0x000EB7F0 + .word 0x000EB7F0, 0x000EBAE8 + .word 0x000EBAE8, 0x000EBDE0 + .word 0x000EBDE0, 0x000EC0D8 + .word 0x000EC0D8, 0x000EC3D0 + .word 0x000EC3D0, 0x000EC6C8 + .word 0x000EC6C8, 0x000EC9C0 + .word 0x000EC9C0, 0x000ECCB8 + .word 0x000ECCB8, 0x000ECFB0 + .word 0x000ECFB0, 0x000ED2A8 + .word 0x000ED2A8, 0x000ED5A0 + .word 0x000ED5A0, 0x000ED898 + .word 0x000ED898, 0x000EDBB0 + .word 0x000EDBB0, 0x000EDEA8 + .word 0x000EDEA8, 0x000EE1A0 + .word 0x000EE1A0, 0x000EE498 + .word 0x000EE498, 0x000EE790 + .word 0x000EE790, 0x000EEA88 + .word 0x000EEA88, 0x000EED80 + .word 0x000EED80, 0x000EF078 + .word 0x000EF078, 0x000EF370 + .word 0x000EF370, 0x000EF658 + .word 0x000EF658, 0x000EF950 + .word 0x000EF950, 0x000EFC48 + .word 0x000EFC48, 0x000EFF40 + .word 0x000EFF40, 0x000F0238 + .word 0x000F0238, 0x000F0530 + .word 0x000F0530, 0x000F0818 + .word 0x000F0818, 0x000F0B10 + .word 0x000F0B10, 0x000F0E08 + .word 0x000F0E08, 0x000F10F0 + .word 0x000F10F0, 0x000F13D8 + .word 0x000F13D8, 0x000F16D0 + .word 0x000F16D0, 0x000F19B8 + .word 0x000F19B8, 0x000F1CA0 + .word 0x000F1CA0, 0x000F1F98 + .word 0x000F1F98, 0x000F2280 + .word 0x000F2280, 0x000F2578 + .word 0x000F2578, 0x000F2870 + .word 0x000F2870, 0x000F2B58 + .word 0x000F2B58, 0x000F2E50 + .word 0x000F2E50, 0x000F3148 + .word 0x000F3148, 0x000F3430 + .word 0x000F3430, 0x000F3728 + .word 0x000F3728, 0x000F3A40 + .word 0x000F3A40, 0x000F3D58 + .word 0x000F3D58, 0x000F4050 + .word 0x000F4050, 0x000F4348 + .word 0x000F4348, 0x000F4630 + .word 0x000F4630, 0x000F4928 + .word 0x000F4928, 0x000F4C20 + .word 0x000F4C20, 0x000F4F08 + .word 0x000F4F08, 0x000F5200 + .word 0x000F5200, 0x000F54F8 + .word 0x000F54F8, 0x000F57E0 + .word 0x000F57E0, 0x000F5AD8 + .word 0x000F5AD8, 0x000F5DD0 + .word 0x000F5DD0, 0x000F60B8 + .word 0x000F60B8, 0x000F63C0 + .word 0x000F63C0, 0x000F66B8 + .word 0x000F66B8, 0x000F69B0 + .word 0x000F69B0, 0x000F6CA8 + .word 0x000F6CA8, 0x000F6FA0 + .word 0x000F6FA0, 0x000F7288 + .word 0x000F7288, 0x000F7580 + .word 0x000F7580, 0x000F7878 + .word 0x000F7878, 0x000F7B90 + .word 0x000F7B90, 0x000F7E88 + .word 0x000F7E88, 0x000F8180 + .word 0x000F8180, 0x000F8478 + .word 0x000F8478, 0x000F8770 + .word 0x000F8770, 0x000F8A68 + .word 0x000F8A68, 0x000F8D60 + .word 0x000F8D60, 0x000F9058 + .word 0x000F9058, 0x000F9350 + .word 0x000F9350, 0x000F9648 + .word 0x000F9648, 0x000F9940 + .word 0x000F9940, 0x000F9C58 + .word 0x000F9C58, 0x000F9F50 + .word 0x000F9F50, 0x000FA248 + .word 0x000FA248, 0x000FA540 + .word 0x000FA540, 0x000FA838 + .word 0x000FA838, 0x000FAB30 + .word 0x000FAB30, 0x000FAE28 + .word 0x000FAE28, 0x000FB120 + .word 0x000FB120, 0x000FB418 + .word 0x000FB418, 0x000FB710 + .word 0x000FB710, 0x000FB9F8 + .word 0x000FB9F8, 0x000FBCF0 + .word 0x000FBCF0, 0x000FBFE8 + .word 0x000FBFE8, 0x000FC2E0 + .word 0x000FC2E0, 0x000FC5D8 + .word 0x000FC5D8, 0x000FC8D0 + .word 0x000FC8D0, 0x000FCBC8 + .word 0x000FCBC8, 0x000FCEC0 + .word 0x000FCEC0, 0x000FD1B8 + .word 0x000FD1B8, 0x000FD4A0 + .word 0x000FD4A0, 0x000FD788 + .word 0x000FD788, 0x000FDA80 + .word 0x000FDA80, 0x000FDD78 + .word 0x000FDD78, 0x000FE070 + .word 0x000FE070, 0x000FE368 + .word 0x000FE368, 0x000FE650 + .word 0x000FE650, 0x000FE968 + .word 0x000FE968, 0x000FEC60 + .word 0x000FEC60, 0x000FEF48 + .word 0x000FEF48, 0x000FF240 + .word 0x000FF240, 0x000FF538 + .word 0x000FF538, 0x000FF820 + .word 0x000FF820, 0x000FFB38 + .word 0x000FFB38, 0x000FFE30 + .word 0x000FFE30, 0x00100128 + .word 0x00100128, 0x00100420 + .word 0x00100420, 0x00100718 + .word 0x00100718, 0x00100A00 + .word 0x00100A00, 0x00100CF8 + .word 0x00100CF8, 0x00100FF0 + .word 0x00100FF0, 0x001012E8 + .word 0x001012E8, 0x001015E0 + .word 0x001015E0, 0x001018D8 + .word 0x001018D8, 0x00101BC0 + .word 0x00101BC0, 0x00101EB8 + .word 0x00101EB8, 0x001021B0 + .word 0x001021B0, 0x001024A8 + .word 0x001024A8, 0x001027A0 + .word 0x001027A0, 0x00102A98 + .word 0x00102A98, 0x00102D80 + .word 0x00102D80, 0x00103068 + .word 0x00103068, 0x00103360 + .word 0x00103360, 0x00103658 + .word 0x00103658, 0x00103950 + .word 0x00103950, 0x00103C48 + .word 0x00103C48, 0x00103F30 + .word 0x00103F30, 0x00104228 + .word 0x00104228, 0x00104520 + .word 0x00104520, 0x00104808 + .word 0x00104808, 0x00104AF0 + .word 0x00104AF0, 0x00104DE8 + .word 0x00104DE8, 0x001050D0 + .word 0x001050D0, 0x001053E8 + .word 0x001053E8, 0x001056E0 + .word 0x001056E0, 0x001059C8 + .word 0x001059C8, 0x00105CB0 + .word 0x00105CB0, 0x00105FA8 + .word 0x00105FA8, 0x00106290 + .word 0x00106290, 0x00106588 + .word 0x00106588, 0x00106880 + .word 0x00106880, 0x00106B78 + .word 0x00106B78, 0x00106E70 + .word 0x00106E70, 0x00107168 + .word 0x00107168, 0x00107480 + .word 0x00107480, 0x00107778 + .word 0x00107778, 0x00107A70 + .word 0x00107A70, 0x00107D58 + .word 0x00107D58, 0x00108060 + .word 0x00108060, 0x00108358 + .word 0x00108358, 0x00108650 + .word 0x00108650, 0x00108948 + .word 0x00108948, 0x00108C40 + .word 0x00108C40, 0x00108F28 + .word 0x00108F28, 0x00109220 + .word 0x00109220, 0x00109518 + .word 0x00109518, 0x00109810 + .word 0x00109810, 0x00109B08 + .word 0x00109B08, 0x00109E00 + .word 0x00109E00, 0x0010A0E8 + .word 0x0010A0E8, 0x0010A3E0 + .word 0x0010A3E0, 0x0010A6D8 + .word 0x0010A6D8, 0x0010A9C0 + .word 0x0010A9C0, 0x0010ACA8 + .word 0x0010ACA8, 0x0010AFA0 + .word 0x0010AFA0, 0x0010B288 + .word 0x0010B288, 0x0010B580 + .word 0x0010B580, 0x0010B878 + .word 0x0010B878, 0x0010BB60 + .word 0x0010BB60, 0x0010BE58 + .word 0x0010BE58, 0x0010C150 + .word 0x0010C150, 0x0010CBB8 + .word 0x0010CBB8, 0x0010E620 + .word 0x0010E620, 0x0010EB00 + .word 0x0010EB00, 0x001104F8 + .word 0x001104F8, 0x00111EF0 + .word 0x00111EF0, 0x001123D0 + .word 0x001123D0, 0x001128B0 + .word 0x001128B0, 0x001136A8 + .word 0x001136A8, 0x001144A0 + .word 0x001144A0, 0x00114664 + .word 0x00114664, 0x00114F5C + .word 0x00114F5C, 0x001169C4 + .word 0x001169C4, 0x0011842C + .word 0x0011842C, 0x00119E94 + .word 0x00119E94, 0x0011B8FC + .word 0x0011B8FC, 0x0011D364 + .word 0x0011D364, 0x0011D7F4 + .word 0x0011D7F4, 0x0011DAF4 + .word 0x0011DAF4, 0x0011DDF4 + .word 0x0011DDF4, 0x0011E1A8 + .word 0x0011E1A8, 0x0011E65C + .word 0x0011E65C, 0x0011F17C + .word 0x0011F17C, 0x0011F47C + .word 0x0011F47C, 0x00120728 + .word 0x00120728, 0x00120EF8 + .word 0x00120EF8, 0x00121850 + .word 0x00121850, 0x00121FA4 + .word 0x00121FA4, 0x001229B8 + .word 0x001229B8, 0x00123470 + .word 0x00123470, 0x00123D38 + .word 0x00123D38, 0x0012616C + .word 0x0012616C, 0x001264FC + .word 0x001264FC, 0x00127408 + .word 0x00127408, 0x0012744C + .word 0x0012744C, 0x001274D0 + .word 0x001274D0, 0x001274DC + .word 0x001274DC, 0x00127540 + .word 0x00127540, 0x00127554 + .word 0x00127554, 0x00127574 + .word 0x00127574, 0x00127588 + .word 0x00127588, 0x0012759C + .word 0x0012759C, 0x001275A8 + .word 0x001275A8, 0x001275EC + .word 0x001275EC, 0x00127630 + .word 0x00127630, 0x00127678 + .word 0x00127678, 0x00127688 + .word 0x00127688, 0x001276BC + .word 0x001276BC, 0x001276C8 + .word 0x001276C8, 0x001276FC + .word 0x001276FC, 0x00127708 + .word 0x00127708, 0x00127714 + .word 0x00127714, 0x00127720 + .word 0x00127720, 0x0012772C + .word 0x0012772C, 0x00127738 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00127740 ; chunk size + .incbin "baserom.nds", 0x0, 0x1A68 + .incbin "baserom.nds", 0x1A68, 0x1A68 + .incbin "baserom.nds", 0x34D0, 0x1A68 + .incbin "baserom.nds", 0x4F38, 0x1A68 + .incbin "baserom.nds", 0x69A0, 0x1A68 + .incbin "baserom.nds", 0x8408, 0x1A68 + .incbin "baserom.nds", 0x9E70, 0x1A68 + .incbin "baserom.nds", 0xB8D8, 0x1A68 + .incbin "baserom.nds", 0xD340, 0x1A68 + .incbin "baserom.nds", 0xEDA8, 0x1A68 + .incbin "baserom.nds", 0x10810, 0x1A68 + .incbin "baserom.nds", 0x12278, 0x1A68 + .incbin "baserom.nds", 0x13CE0, 0x1A68 + .incbin "baserom.nds", 0x15748, 0x1A68 + .incbin "baserom.nds", 0x171B0, 0x1A68 + .incbin "baserom.nds", 0x18C18, 0x1A68 + .incbin "baserom.nds", 0x1A680, 0x1A68 + .incbin "baserom.nds", 0x1C0E8, 0x1A68 + .incbin "baserom.nds", 0x1DB50, 0x1A68 + .incbin "baserom.nds", 0x1F5B8, 0x1A68 + .incbin "baserom.nds", 0x21020, 0x1A68 + .incbin "baserom.nds", 0x22A88, 0x1A68 + .incbin "baserom.nds", 0x244F0, 0x1A68 + .incbin "baserom.nds", 0x25F58, 0x1A68 + .incbin "baserom.nds", 0x279C0, 0x1C84 + .incbin "baserom.nds", 0x29644, 0x1A68 + .incbin "baserom.nds", 0x2B0AC, 0x1A68 + .incbin "baserom.nds", 0x2CB14, 0x1A68 + .incbin "baserom.nds", 0x2E57C, 0x1A68 + .incbin "baserom.nds", 0x2FFE4, 0x1A68 + .incbin "baserom.nds", 0x31A4C, 0x1A68 + .incbin "baserom.nds", 0x334B4, 0x1A68 + .incbin "baserom.nds", 0x34F1C, 0x1A68 + .incbin "baserom.nds", 0x36984, 0x1A68 + .incbin "baserom.nds", 0x383EC, 0x1A68 + .incbin "baserom.nds", 0x39E54, 0x1A68 + .incbin "baserom.nds", 0x3B8BC, 0x1A68 + .incbin "baserom.nds", 0x3D324, 0x1A68 + .incbin "baserom.nds", 0x3ED8C, 0x1A68 + .incbin "baserom.nds", 0x407F4, 0x1A68 + .incbin "baserom.nds", 0x4225C, 0x1A68 + .incbin "baserom.nds", 0x43CC4, 0x1A68 + .incbin "baserom.nds", 0x4572C, 0x1A68 + .incbin "baserom.nds", 0x47194, 0x1A68 + .incbin "baserom.nds", 0x48BFC, 0x1A68 + .incbin "baserom.nds", 0x4A664, 0x1A68 + .incbin "baserom.nds", 0x4C0CC, 0x1A68 + .incbin "baserom.nds", 0x4DB34, 0x1A68 + .incbin "baserom.nds", 0x4F59C, 0x1A68 + .incbin "baserom.nds", 0x51004, 0x1A68 + .incbin "baserom.nds", 0x52A6C, 0x1A68 + .incbin "baserom.nds", 0x544D4, 0x1A68 + .incbin "baserom.nds", 0x55F3C, 0x1A68 + .incbin "baserom.nds", 0x579A4, 0x1A68 + .incbin "baserom.nds", 0x5940C, 0x1A68 + .incbin "baserom.nds", 0x5AE74, 0x668 + .incbin "baserom.nds", 0x5B4DC, 0x668 + .incbin "baserom.nds", 0x5BB44, 0x1A68 + .incbin "baserom.nds", 0x5D5AC, 0x1A68 + .incbin "baserom.nds", 0x5F014, 0x668 + .incbin "baserom.nds", 0x5F67C, 0x1A68 + .incbin "baserom.nds", 0x610E4, 0x1A68 + .incbin "baserom.nds", 0x62B4C, 0x1A68 + .incbin "baserom.nds", 0x645B4, 0x1A68 + .incbin "baserom.nds", 0x6601C, 0x668 + .incbin "baserom.nds", 0x66684, 0x668 + .incbin "baserom.nds", 0x66CEC, 0x1A68 + .incbin "baserom.nds", 0x68754, 0x1A68 + .incbin "baserom.nds", 0x6A1BC, 0x1A68 + .incbin "baserom.nds", 0x6BC24, 0x1A68 + .incbin "baserom.nds", 0x6D68C, 0x1A68 + .incbin "baserom.nds", 0x6F0F4, 0x1A68 + .incbin "baserom.nds", 0x70B5C, 0x1A68 + .incbin "baserom.nds", 0x725C4, 0x668 + .incbin "baserom.nds", 0x72C2C, 0x668 + .incbin "baserom.nds", 0x73294, 0x668 + .incbin "baserom.nds", 0x738FC, 0x1A68 + .incbin "baserom.nds", 0x75364, 0x1A68 + .incbin "baserom.nds", 0x76DCC, 0x668 + .incbin "baserom.nds", 0x77434, 0x1268 + .incbin "baserom.nds", 0x7869C, 0x1A68 + .incbin "baserom.nds", 0x7A104, 0x1A68 + .incbin "baserom.nds", 0x7BB6C, 0x134 + .incbin "baserom.nds", 0x7BCA0, 0x134 + .incbin "baserom.nds", 0x7BDD4, 0x2B4 + .incbin "baserom.nds", 0x7C088, 0x134 + .incbin "baserom.nds", 0x7C1BC, 0x1A68 + .incbin "baserom.nds", 0x7DC24, 0x1A68 + .incbin "baserom.nds", 0x7F68C, 0x1A68 + .incbin "baserom.nds", 0x810F4, 0x41C + .incbin "baserom.nds", 0x81510, 0x3428 + .incbin "baserom.nds", 0x84938, 0x3428 + .incbin "baserom.nds", 0x87D60, 0x2B48 + .incbin "baserom.nds", 0x8A8A8, 0x2B48 + .incbin "baserom.nds", 0x8D3F0, 0x1A68 + .incbin "baserom.nds", 0x8EE58, 0x1E8 + .incbin "baserom.nds", 0x8F040, 0x2E8 + .incbin "baserom.nds", 0x8F328, 0x2F8 + .incbin "baserom.nds", 0x8F620, 0x2F8 + .incbin "baserom.nds", 0x8F918, 0x1A68 + .incbin "baserom.nds", 0x91380, 0x1A68 + .incbin "baserom.nds", 0x92DE8, 0x1A68 + .incbin "baserom.nds", 0x94850, 0x1A68 + .incbin "baserom.nds", 0x962B8, 0x1A68 + .incbin "baserom.nds", 0x97D20, 0x1A68 + .incbin "baserom.nds", 0x99788, 0x1A68 + .incbin "baserom.nds", 0x9B1F0, 0x1A68 + .incbin "baserom.nds", 0x9CC58, 0x1A68 + .incbin "baserom.nds", 0x9E6C0, 0x1A68 + .incbin "baserom.nds", 0xA0128, 0x1A68 + .incbin "baserom.nds", 0xA1B90, 0x1A68 + .incbin "baserom.nds", 0xA35F8, 0x1A68 + .incbin "baserom.nds", 0xA5060, 0x1A68 + .incbin "baserom.nds", 0xA6AC8, 0x1A68 + .incbin "baserom.nds", 0xA8530, 0x1A68 + .incbin "baserom.nds", 0xA9F98, 0x1A68 + .incbin "baserom.nds", 0xABA00, 0x1A68 + .incbin "baserom.nds", 0xAD468, 0x1A68 + .incbin "baserom.nds", 0xAEED0, 0x1A68 + .incbin "baserom.nds", 0xB0938, 0x1A68 + .incbin "baserom.nds", 0xB23A0, 0x1A68 + .incbin "baserom.nds", 0xB3E08, 0x1A68 + .incbin "baserom.nds", 0xB5870, 0x1A68 + .incbin "baserom.nds", 0xB72D8, 0x1A68 + .incbin "baserom.nds", 0xB8D40, 0x2068 + .incbin "baserom.nds", 0xBADA8, 0x668 + .incbin "baserom.nds", 0xBB410, 0x668 + .incbin "baserom.nds", 0xBBA78, 0x1A68 + .incbin "baserom.nds", 0xBD4E0, 0x1A68 + .incbin "baserom.nds", 0xBEF48, 0x1A68 + .incbin "baserom.nds", 0xC09B0, 0x4E0 + .incbin "baserom.nds", 0xC0E90, 0x4E0 + .incbin "baserom.nds", 0xC1370, 0x4E0 + .incbin "baserom.nds", 0xC1850, 0x10E0 + .incbin "baserom.nds", 0xC2930, 0x10E0 + .incbin "baserom.nds", 0xC3A10, 0x10E0 + .incbin "baserom.nds", 0xC4AF0, 0x4E0 + .incbin "baserom.nds", 0xC4FD0, 0x1268 + .incbin "baserom.nds", 0xC6238, 0x4E0 + .incbin "baserom.nds", 0xC6718, 0x10E0 + .incbin "baserom.nds", 0xC77F8, 0x4E0 + .incbin "baserom.nds", 0xC7CD8, 0x668 + .incbin "baserom.nds", 0xC8340, 0x1A68 + .incbin "baserom.nds", 0xC9DA8, 0x1A68 + .incbin "baserom.nds", 0xCB810, 0x1A68 + .incbin "baserom.nds", 0xCD278, 0x1A68 + .incbin "baserom.nds", 0xCECE0, 0x1A68 + .incbin "baserom.nds", 0xD0748, 0x1A68 + .incbin "baserom.nds", 0xD21B0, 0x1A68 + .incbin "baserom.nds", 0xD3C18, 0x1A68 + .incbin "baserom.nds", 0xD5680, 0x1A68 + .incbin "baserom.nds", 0xD70E8, 0x1A68 + .incbin "baserom.nds", 0xD8B50, 0x918 + .incbin "baserom.nds", 0xD9468, 0x2C4 + .incbin "baserom.nds", 0xD972C, 0x1A68 + .incbin "baserom.nds", 0xDB194, 0x918 + .incbin "baserom.nds", 0xDBAAC, 0x918 + .incbin "baserom.nds", 0xDC3C4, 0xB6C + .incbin "baserom.nds", 0xDCF30, 0xB6C + .incbin "baserom.nds", 0xDDA9C, 0x918 + .incbin "baserom.nds", 0xDE3B4, 0x918 + .incbin "baserom.nds", 0xDECCC, 0x2C4 + .incbin "baserom.nds", 0xDEF90, 0x8C4 + .incbin "baserom.nds", 0xDF854, 0x1A68 + .incbin "baserom.nds", 0xE12BC, 0x1A68 + .incbin "baserom.nds", 0xE2D24, 0x1A68 + .incbin "baserom.nds", 0xE478C, 0x2268 + .incbin "baserom.nds", 0xE69F4, 0x2268 + .incbin "baserom.nds", 0xE8C5C, 0x144 + .incbin "baserom.nds", 0xE8DA0, 0x134 + .incbin "baserom.nds", 0xE8ED4, 0x2B4 + .incbin "baserom.nds", 0xE9188, 0x2F8 + .incbin "baserom.nds", 0xE9480, 0x2F8 + .incbin "baserom.nds", 0xE9778, 0x2F8 + .incbin "baserom.nds", 0xE9A70, 0x2E8 + .incbin "baserom.nds", 0xE9D58, 0x2F8 + .incbin "baserom.nds", 0xEA050, 0x2F8 + .incbin "baserom.nds", 0xEA348, 0x2E8 + .incbin "baserom.nds", 0xEA630, 0x2F8 + .incbin "baserom.nds", 0xEA928, 0x2F8 + .incbin "baserom.nds", 0xEAC20, 0x2F8 + .incbin "baserom.nds", 0xEAF18, 0x2F8 + .incbin "baserom.nds", 0xEB210, 0x2F8 + .incbin "baserom.nds", 0xEB508, 0x2E8 + .incbin "baserom.nds", 0xEB7F0, 0x2F8 + .incbin "baserom.nds", 0xEBAE8, 0x2F8 + .incbin "baserom.nds", 0xEBDE0, 0x2F8 + .incbin "baserom.nds", 0xEC0D8, 0x2F8 + .incbin "baserom.nds", 0xEC3D0, 0x2F8 + .incbin "baserom.nds", 0xEC6C8, 0x2F8 + .incbin "baserom.nds", 0xEC9C0, 0x2F8 + .incbin "baserom.nds", 0xECCB8, 0x2F8 + .incbin "baserom.nds", 0xECFB0, 0x2F8 + .incbin "baserom.nds", 0xED2A8, 0x2F8 + .incbin "baserom.nds", 0xED5A0, 0x2F8 + .incbin "baserom.nds", 0xED898, 0x318 + .incbin "baserom.nds", 0xEDBB0, 0x2F8 + .incbin "baserom.nds", 0xEDEA8, 0x2F8 + .incbin "baserom.nds", 0xEE1A0, 0x2F8 + .incbin "baserom.nds", 0xEE498, 0x2F8 + .incbin "baserom.nds", 0xEE790, 0x2F8 + .incbin "baserom.nds", 0xEEA88, 0x2F8 + .incbin "baserom.nds", 0xEED80, 0x2F8 + .incbin "baserom.nds", 0xEF078, 0x2F8 + .incbin "baserom.nds", 0xEF370, 0x2E8 + .incbin "baserom.nds", 0xEF658, 0x2F8 + .incbin "baserom.nds", 0xEF950, 0x2F8 + .incbin "baserom.nds", 0xEFC48, 0x2F8 + .incbin "baserom.nds", 0xEFF40, 0x2F8 + .incbin "baserom.nds", 0xF0238, 0x2F8 + .incbin "baserom.nds", 0xF0530, 0x2E8 + .incbin "baserom.nds", 0xF0818, 0x2F8 + .incbin "baserom.nds", 0xF0B10, 0x2F8 + .incbin "baserom.nds", 0xF0E08, 0x2E8 + .incbin "baserom.nds", 0xF10F0, 0x2E8 + .incbin "baserom.nds", 0xF13D8, 0x2F8 + .incbin "baserom.nds", 0xF16D0, 0x2E8 + .incbin "baserom.nds", 0xF19B8, 0x2E8 + .incbin "baserom.nds", 0xF1CA0, 0x2F8 + .incbin "baserom.nds", 0xF1F98, 0x2E8 + .incbin "baserom.nds", 0xF2280, 0x2F8 + .incbin "baserom.nds", 0xF2578, 0x2F8 + .incbin "baserom.nds", 0xF2870, 0x2E8 + .incbin "baserom.nds", 0xF2B58, 0x2F8 + .incbin "baserom.nds", 0xF2E50, 0x2F8 + .incbin "baserom.nds", 0xF3148, 0x2E8 + .incbin "baserom.nds", 0xF3430, 0x2F8 + .incbin "baserom.nds", 0xF3728, 0x318 + .incbin "baserom.nds", 0xF3A40, 0x318 + .incbin "baserom.nds", 0xF3D58, 0x2F8 + .incbin "baserom.nds", 0xF4050, 0x2F8 + .incbin "baserom.nds", 0xF4348, 0x2E8 + .incbin "baserom.nds", 0xF4630, 0x2F8 + .incbin "baserom.nds", 0xF4928, 0x2F8 + .incbin "baserom.nds", 0xF4C20, 0x2E8 + .incbin "baserom.nds", 0xF4F08, 0x2F8 + .incbin "baserom.nds", 0xF5200, 0x2F8 + .incbin "baserom.nds", 0xF54F8, 0x2E8 + .incbin "baserom.nds", 0xF57E0, 0x2F8 + .incbin "baserom.nds", 0xF5AD8, 0x2F8 + .incbin "baserom.nds", 0xF5DD0, 0x2E8 + .incbin "baserom.nds", 0xF60B8, 0x308 + .incbin "baserom.nds", 0xF63C0, 0x2F8 + .incbin "baserom.nds", 0xF66B8, 0x2F8 + .incbin "baserom.nds", 0xF69B0, 0x2F8 + .incbin "baserom.nds", 0xF6CA8, 0x2F8 + .incbin "baserom.nds", 0xF6FA0, 0x2E8 + .incbin "baserom.nds", 0xF7288, 0x2F8 + .incbin "baserom.nds", 0xF7580, 0x2F8 + .incbin "baserom.nds", 0xF7878, 0x318 + .incbin "baserom.nds", 0xF7B90, 0x2F8 + .incbin "baserom.nds", 0xF7E88, 0x2F8 + .incbin "baserom.nds", 0xF8180, 0x2F8 + .incbin "baserom.nds", 0xF8478, 0x2F8 + .incbin "baserom.nds", 0xF8770, 0x2F8 + .incbin "baserom.nds", 0xF8A68, 0x2F8 + .incbin "baserom.nds", 0xF8D60, 0x2F8 + .incbin "baserom.nds", 0xF9058, 0x2F8 + .incbin "baserom.nds", 0xF9350, 0x2F8 + .incbin "baserom.nds", 0xF9648, 0x2F8 + .incbin "baserom.nds", 0xF9940, 0x318 + .incbin "baserom.nds", 0xF9C58, 0x2F8 + .incbin "baserom.nds", 0xF9F50, 0x2F8 + .incbin "baserom.nds", 0xFA248, 0x2F8 + .incbin "baserom.nds", 0xFA540, 0x2F8 + .incbin "baserom.nds", 0xFA838, 0x2F8 + .incbin "baserom.nds", 0xFAB30, 0x2F8 + .incbin "baserom.nds", 0xFAE28, 0x2F8 + .incbin "baserom.nds", 0xFB120, 0x2F8 + .incbin "baserom.nds", 0xFB418, 0x2F8 + .incbin "baserom.nds", 0xFB710, 0x2E8 + .incbin "baserom.nds", 0xFB9F8, 0x2F8 + .incbin "baserom.nds", 0xFBCF0, 0x2F8 + .incbin "baserom.nds", 0xFBFE8, 0x2F8 + .incbin "baserom.nds", 0xFC2E0, 0x2F8 + .incbin "baserom.nds", 0xFC5D8, 0x2F8 + .incbin "baserom.nds", 0xFC8D0, 0x2F8 + .incbin "baserom.nds", 0xFCBC8, 0x2F8 + .incbin "baserom.nds", 0xFCEC0, 0x2F8 + .incbin "baserom.nds", 0xFD1B8, 0x2E8 + .incbin "baserom.nds", 0xFD4A0, 0x2E8 + .incbin "baserom.nds", 0xFD788, 0x2F8 + .incbin "baserom.nds", 0xFDA80, 0x2F8 + .incbin "baserom.nds", 0xFDD78, 0x2F8 + .incbin "baserom.nds", 0xFE070, 0x2F8 + .incbin "baserom.nds", 0xFE368, 0x2E8 + .incbin "baserom.nds", 0xFE650, 0x318 + .incbin "baserom.nds", 0xFE968, 0x2F8 + .incbin "baserom.nds", 0xFEC60, 0x2E8 + .incbin "baserom.nds", 0xFEF48, 0x2F8 + .incbin "baserom.nds", 0xFF240, 0x2F8 + .incbin "baserom.nds", 0xFF538, 0x2E8 + .incbin "baserom.nds", 0xFF820, 0x318 + .incbin "baserom.nds", 0xFFB38, 0x2F8 + .incbin "baserom.nds", 0xFFE30, 0x2F8 + .incbin "baserom.nds", 0x100128, 0x2F8 + .incbin "baserom.nds", 0x100420, 0x2F8 + .incbin "baserom.nds", 0x100718, 0x2E8 + .incbin "baserom.nds", 0x100A00, 0x2F8 + .incbin "baserom.nds", 0x100CF8, 0x2F8 + .incbin "baserom.nds", 0x100FF0, 0x2F8 + .incbin "baserom.nds", 0x1012E8, 0x2F8 + .incbin "baserom.nds", 0x1015E0, 0x2F8 + .incbin "baserom.nds", 0x1018D8, 0x2E8 + .incbin "baserom.nds", 0x101BC0, 0x2F8 + .incbin "baserom.nds", 0x101EB8, 0x2F8 + .incbin "baserom.nds", 0x1021B0, 0x2F8 + .incbin "baserom.nds", 0x1024A8, 0x2F8 + .incbin "baserom.nds", 0x1027A0, 0x2F8 + .incbin "baserom.nds", 0x102A98, 0x2E8 + .incbin "baserom.nds", 0x102D80, 0x2E8 + .incbin "baserom.nds", 0x103068, 0x2F8 + .incbin "baserom.nds", 0x103360, 0x2F8 + .incbin "baserom.nds", 0x103658, 0x2F8 + .incbin "baserom.nds", 0x103950, 0x2F8 + .incbin "baserom.nds", 0x103C48, 0x2E8 + .incbin "baserom.nds", 0x103F30, 0x2F8 + .incbin "baserom.nds", 0x104228, 0x2F8 + .incbin "baserom.nds", 0x104520, 0x2E8 + .incbin "baserom.nds", 0x104808, 0x2E8 + .incbin "baserom.nds", 0x104AF0, 0x2F8 + .incbin "baserom.nds", 0x104DE8, 0x2E8 + .incbin "baserom.nds", 0x1050D0, 0x318 + .incbin "baserom.nds", 0x1053E8, 0x2F8 + .incbin "baserom.nds", 0x1056E0, 0x2E8 + .incbin "baserom.nds", 0x1059C8, 0x2E8 + .incbin "baserom.nds", 0x105CB0, 0x2F8 + .incbin "baserom.nds", 0x105FA8, 0x2E8 + .incbin "baserom.nds", 0x106290, 0x2F8 + .incbin "baserom.nds", 0x106588, 0x2F8 + .incbin "baserom.nds", 0x106880, 0x2F8 + .incbin "baserom.nds", 0x106B78, 0x2F8 + .incbin "baserom.nds", 0x106E70, 0x2F8 + .incbin "baserom.nds", 0x107168, 0x318 + .incbin "baserom.nds", 0x107480, 0x2F8 + .incbin "baserom.nds", 0x107778, 0x2F8 + .incbin "baserom.nds", 0x107A70, 0x2E8 + .incbin "baserom.nds", 0x107D58, 0x308 + .incbin "baserom.nds", 0x108060, 0x2F8 + .incbin "baserom.nds", 0x108358, 0x2F8 + .incbin "baserom.nds", 0x108650, 0x2F8 + .incbin "baserom.nds", 0x108948, 0x2F8 + .incbin "baserom.nds", 0x108C40, 0x2E8 + .incbin "baserom.nds", 0x108F28, 0x2F8 + .incbin "baserom.nds", 0x109220, 0x2F8 + .incbin "baserom.nds", 0x109518, 0x2F8 + .incbin "baserom.nds", 0x109810, 0x2F8 + .incbin "baserom.nds", 0x109B08, 0x2F8 + .incbin "baserom.nds", 0x109E00, 0x2E8 + .incbin "baserom.nds", 0x10A0E8, 0x2F8 + .incbin "baserom.nds", 0x10A3E0, 0x2F8 + .incbin "baserom.nds", 0x10A6D8, 0x2E8 + .incbin "baserom.nds", 0x10A9C0, 0x2E8 + .incbin "baserom.nds", 0x10ACA8, 0x2F8 + .incbin "baserom.nds", 0x10AFA0, 0x2E8 + .incbin "baserom.nds", 0x10B288, 0x2F8 + .incbin "baserom.nds", 0x10B580, 0x2F8 + .incbin "baserom.nds", 0x10B878, 0x2E8 + .incbin "baserom.nds", 0x10BB60, 0x2F8 + .incbin "baserom.nds", 0x10BE58, 0x2F8 + .incbin "baserom.nds", 0x10C150, 0xA68 + .incbin "baserom.nds", 0x10CBB8, 0x1A68 + .incbin "baserom.nds", 0x10E620, 0x4E0 + .incbin "baserom.nds", 0x10EB00, 0x19F8 + .incbin "baserom.nds", 0x1104F8, 0x19F8 + .incbin "baserom.nds", 0x111EF0, 0x4E0 + .incbin "baserom.nds", 0x1123D0, 0x4E0 + .incbin "baserom.nds", 0x1128B0, 0xDF8 + .incbin "baserom.nds", 0x1136A8, 0xDF8 + .incbin "baserom.nds", 0x1144A0, 0x1C4 + .incbin "baserom.nds", 0x114664, 0x8F8 + .incbin "baserom.nds", 0x114F5C, 0x1A68 + .incbin "baserom.nds", 0x1169C4, 0x1A68 + .incbin "baserom.nds", 0x11842C, 0x1A68 + .incbin "baserom.nds", 0x119E94, 0x1A68 + .incbin "baserom.nds", 0x11B8FC, 0x1A68 + .incbin "baserom.nds", 0x11D364, 0x490 + .incbin "baserom.nds", 0x11D7F4, 0x300 + .incbin "baserom.nds", 0x11DAF4, 0x300 + .incbin "baserom.nds", 0x11DDF4, 0x3B4 + .incbin "baserom.nds", 0x11E1A8, 0x4B4 + .incbin "baserom.nds", 0x11E65C, 0xB20 + .incbin "baserom.nds", 0x11F17C, 0x300 + .incbin "baserom.nds", 0x11F47C, 0x12AC + .incbin "baserom.nds", 0x120728, 0x7D0 + .incbin "baserom.nds", 0x120EF8, 0x958 + .incbin "baserom.nds", 0x121850, 0x754 + .incbin "baserom.nds", 0x121FA4, 0xA14 + .incbin "baserom.nds", 0x1229B8, 0xAB8 + .incbin "baserom.nds", 0x123470, 0x8C8 + .incbin "baserom.nds", 0x123D38, 0x2434 + .incbin "baserom.nds", 0x12616C, 0x390 + .incbin "baserom.nds", 0x1264FC, 0xF0C + .incbin "baserom.nds", 0x127408, 0x44 + .incbin "baserom.nds", 0x12744C, 0x84 + .incbin "baserom.nds", 0x1274D0, 0xC + .incbin "baserom.nds", 0x1274DC, 0x64 + .incbin "baserom.nds", 0x127540, 0x14 + .incbin "baserom.nds", 0x127554, 0x20 + .incbin "baserom.nds", 0x127574, 0x14 + .incbin "baserom.nds", 0x127588, 0x14 + .incbin "baserom.nds", 0x12759C, 0xC + .incbin "baserom.nds", 0x1275A8, 0x44 + .incbin "baserom.nds", 0x1275EC, 0x44 + .incbin "baserom.nds", 0x127630, 0x48 + .incbin "baserom.nds", 0x127678, 0x10 + .incbin "baserom.nds", 0x127688, 0x34 + .incbin "baserom.nds", 0x1276BC, 0xC + .incbin "baserom.nds", 0x1276C8, 0x34 + .incbin "baserom.nds", 0x1276FC, 0xC + .incbin "baserom.nds", 0x127708, 0xC + .incbin "baserom.nds", 0x127714, 0xC + .incbin "baserom.nds", 0x127720, 0xC + .incbin "baserom.nds", 0x12772C, 0xC + .balign 4, 255 diff --git a/narc/msgdata/msg.narc.s b/narc/msgdata/msg.narc.s new file mode 100644 index 00000000..1b5dfba0 --- /dev/null +++ b/narc/msgdata/msg.narc.s @@ -0,0 +1,1274 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00292010 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000138C ; chunk size + .short 624 ; number of files + .balign 4 + .word 0x00000000, 0x000157D6 + .word 0x000157D8, 0x000159A2 + .word 0x000159A4, 0x00016106 + .word 0x00016108, 0x00016C56 + .word 0x00016C58, 0x00016DAE + .word 0x00016DB0, 0x00016F3A + .word 0x00016F3C, 0x00017124 + .word 0x00017124, 0x0001825E + .word 0x00018260, 0x00018544 + .word 0x00018544, 0x00018DB6 + .word 0x00018DB8, 0x000196EA + .word 0x000196EC, 0x0001A0BE + .word 0x0001A0C0, 0x0001A90A + .word 0x0001A90C, 0x0001AC66 + .word 0x0001AC68, 0x0001B342 + .word 0x0001B344, 0x0001BA92 + .word 0x0001BA94, 0x0001D3DA + .word 0x0001D3DC, 0x0001D84E + .word 0x0001D850, 0x00021EB8 + .word 0x00021EB8, 0x0002204E + .word 0x00022050, 0x000220AE + .word 0x000220B0, 0x000224C6 + .word 0x000224C8, 0x000231B8 + .word 0x000231B8, 0x00023452 + .word 0x00023454, 0x00025320 + .word 0x00025320, 0x000274A4 + .word 0x000274A4, 0x000276B6 + .word 0x000276B8, 0x000281F2 + .word 0x000281F4, 0x00028382 + .word 0x00028384, 0x00029196 + .word 0x00029198, 0x0002951E + .word 0x00029520, 0x0002974A + .word 0x0002974C, 0x0002997A + .word 0x0002997C, 0x00029BFE + .word 0x00029C00, 0x00029DA6 + .word 0x00029DA8, 0x00029E82 + .word 0x00029E84, 0x00029ED2 + .word 0x00029ED4, 0x0002A2CE + .word 0x0002A2D0, 0x0002A630 + .word 0x0002A630, 0x0002A7B6 + .word 0x0002A7B8, 0x0002A9CE + .word 0x0002A9D0, 0x0002BA0C + .word 0x0002BA0C, 0x0002D660 + .word 0x0002D660, 0x0002D8EC + .word 0x0002D8EC, 0x0002DC3A + .word 0x0002DC3C, 0x0002DCCC + .word 0x0002DCCC, 0x0002DD7C + .word 0x0002DD7C, 0x0002FBB4 + .word 0x0002FBB4, 0x0002FD02 + .word 0x0002FD04, 0x00030942 + .word 0x00030944, 0x00030BF4 + .word 0x00030BF4, 0x00031104 + .word 0x00031104, 0x000313EA + .word 0x000313EC, 0x00034DF4 + .word 0x00034DF4, 0x000351BE + .word 0x000351C0, 0x00035634 + .word 0x00035634, 0x0003578A + .word 0x0003578C, 0x000360C8 + .word 0x000360C8, 0x000378D8 + .word 0x000378D8, 0x00037B06 + .word 0x00037B08, 0x00038A70 + .word 0x00038A70, 0x0003900A + .word 0x0003900C, 0x00039188 + .word 0x00039188, 0x00039412 + .word 0x00039414, 0x0003974E + .word 0x00039750, 0x00039912 + .word 0x00039914, 0x00039A36 + .word 0x00039A38, 0x00039E92 + .word 0x00039E94, 0x0003A3AC + .word 0x0003A3AC, 0x0003A592 + .word 0x0003A594, 0x0003A740 + .word 0x0003A740, 0x0003A8FC + .word 0x0003A8FC, 0x0003B9A2 + .word 0x0003B9A4, 0x0003BC6C + .word 0x0003BC6C, 0x0003BE58 + .word 0x0003BE58, 0x0003C268 + .word 0x0003C268, 0x0003C3BC + .word 0x0003C3BC, 0x0003C4EA + .word 0x0003C4EC, 0x0003E0B0 + .word 0x0003E0B0, 0x0003E25C + .word 0x0003E25C, 0x0003E9C8 + .word 0x0003E9C8, 0x0003F6B0 + .word 0x0003F6B0, 0x0003FDF4 + .word 0x0003FDF4, 0x0003FF0A + .word 0x0003FF0C, 0x0004061C + .word 0x0004061C, 0x00040838 + .word 0x00040838, 0x000409D6 + .word 0x000409D8, 0x00040AEE + .word 0x00040AF0, 0x000412F8 + .word 0x000412F8, 0x00041E80 + .word 0x00041E80, 0x00042198 + .word 0x00042198, 0x000424C8 + .word 0x000424C8, 0x00042704 + .word 0x00042704, 0x00043142 + .word 0x00043144, 0x00043382 + .word 0x00043384, 0x000436CE + .word 0x000436D0, 0x000438FC + .word 0x000438FC, 0x000489DA + .word 0x000489DC, 0x0004C2F4 + .word 0x0004C2F4, 0x0004C492 + .word 0x0004C494, 0x0004CE16 + .word 0x0004CE18, 0x0004CEF2 + .word 0x0004CEF4, 0x0004CFCE + .word 0x0004CFD0, 0x0004D0BC + .word 0x0004D0BC, 0x0004D8B8 + .word 0x0004D8B8, 0x0004DD2E + .word 0x0004DD30, 0x0004DF18 + .word 0x0004DF18, 0x0004E0F6 + .word 0x0004E0F8, 0x0004E13E + .word 0x0004E140, 0x0004ECDE + .word 0x0004ECE0, 0x0004EEA0 + .word 0x0004EEA0, 0x0004F004 + .word 0x0004F004, 0x0004F1EE + .word 0x0004F1F0, 0x0004F2AC + .word 0x0004F2AC, 0x0004F624 + .word 0x0004F624, 0x0004FBE0 + .word 0x0004FBE0, 0x0004FFB2 + .word 0x0004FFB4, 0x0004FFFA + .word 0x0004FFFC, 0x000509EA + .word 0x000509EC, 0x00050E4A + .word 0x00050E4C, 0x00052696 + .word 0x00052698, 0x00052BF0 + .word 0x00052BF0, 0x00053304 + .word 0x00053304, 0x00055074 + .word 0x00055074, 0x00055354 + .word 0x00055354, 0x00055FD6 + .word 0x00055FD8, 0x00056244 + .word 0x00056244, 0x0005634E + .word 0x00056350, 0x00056DEC + .word 0x00056DEC, 0x00057286 + .word 0x00057288, 0x00057566 + .word 0x00057568, 0x00057A4A + .word 0x00057A4C, 0x000582AE + .word 0x000582B0, 0x000583D8 + .word 0x000583D8, 0x00058E34 + .word 0x00058E34, 0x0005BEEC + .word 0x0005BEEC, 0x0005CA3A + .word 0x0005CA3C, 0x0005CBFE + .word 0x0005CC00, 0x0005CC9C + .word 0x0005CC9C, 0x0005E0B6 + .word 0x0005E0B8, 0x0005E51C + .word 0x0005E51C, 0x0005EC96 + .word 0x0005EC98, 0x0005F2F0 + .word 0x0005F2F0, 0x0005F886 + .word 0x0005F888, 0x0005FE8C + .word 0x0005FE8C, 0x000602DC + .word 0x000602DC, 0x00060BEC + .word 0x00060BEC, 0x00060F7A + .word 0x00060F7C, 0x000612DC + .word 0x000612DC, 0x000614C4 + .word 0x000614C4, 0x000615E8 + .word 0x000615E8, 0x00061BCE + .word 0x00061BD0, 0x00061D7E + .word 0x00061D80, 0x0006363A + .word 0x0006363C, 0x000638CA + .word 0x000638CC, 0x00064048 + .word 0x00064048, 0x00064AE4 + .word 0x00064AE4, 0x00064F4C + .word 0x00064F4C, 0x00065610 + .word 0x00065610, 0x00066CB2 + .word 0x00066CB4, 0x0006736A + .word 0x0006736C, 0x000675F6 + .word 0x000675F8, 0x00067B00 + .word 0x00067B00, 0x00067E8C + .word 0x00067E8C, 0x000685FC + .word 0x000685FC, 0x00068E54 + .word 0x00068E54, 0x000695C0 + .word 0x000695C0, 0x0006A192 + .word 0x0006A194, 0x0006A418 + .word 0x0006A418, 0x0006AFE0 + .word 0x0006AFE0, 0x0006B190 + .word 0x0006B190, 0x0006B650 + .word 0x0006B650, 0x0006B944 + .word 0x0006B944, 0x0006BA06 + .word 0x0006BA08, 0x0006BAF0 + .word 0x0006BAF0, 0x0006C4C8 + .word 0x0006C4C8, 0x0006CB00 + .word 0x0006CB00, 0x0006CF70 + .word 0x0006CF70, 0x0006D678 + .word 0x0006D678, 0x0006DC9E + .word 0x0006DCA0, 0x0006E8C8 + .word 0x0006E8C8, 0x0006EDBC + .word 0x0006EDBC, 0x0006F470 + .word 0x0006F470, 0x00070D72 + .word 0x00070D74, 0x00070FBE + .word 0x00070FC0, 0x000711D2 + .word 0x000711D4, 0x00072B7A + .word 0x00072B7C, 0x00072C88 + .word 0x00072C88, 0x00072E4E + .word 0x00072E50, 0x0007319A + .word 0x0007319C, 0x000733AC + .word 0x000733AC, 0x00074D60 + .word 0x00074D60, 0x00075D22 + .word 0x00075D24, 0x0007675C + .word 0x0007675C, 0x00076860 + .word 0x00076860, 0x00076AC8 + .word 0x00076AC8, 0x000771C2 + .word 0x000771C4, 0x000781B0 + .word 0x000781B0, 0x00078FFC + .word 0x00078FFC, 0x0007D3D8 + .word 0x0007D3D8, 0x0007DA52 + .word 0x0007DA54, 0x0007DA72 + .word 0x0007DA74, 0x0007DC76 + .word 0x0007DC78, 0x0008435E + .word 0x00084360, 0x0008470E + .word 0x00084710, 0x000847BE + .word 0x000847C0, 0x00084B9C + .word 0x00084B9C, 0x00087FA0 + .word 0x00087FA0, 0x00088128 + .word 0x00088128, 0x000884C6 + .word 0x000884C8, 0x00088A6C + .word 0x00088A6C, 0x00089902 + .word 0x00089904, 0x00089B70 + .word 0x00089B70, 0x0008A848 + .word 0x0008A848, 0x0008A8A6 + .word 0x0008A8A8, 0x0008ABD8 + .word 0x0008ABD8, 0x0008B0D0 + .word 0x0008B0D0, 0x0008B154 + .word 0x0008B154, 0x0008B20C + .word 0x0008B20C, 0x0008B38C + .word 0x0008B38C, 0x0008EADA + .word 0x0008EADC, 0x0008EB4C + .word 0x0008EB4C, 0x0008EC22 + .word 0x0008EC24, 0x0008EDB2 + .word 0x0008EDB4, 0x0008EE64 + .word 0x0008EE64, 0x0008F0BA + .word 0x0008F0BC, 0x0008F20C + .word 0x0008F20C, 0x0008F394 + .word 0x0008F394, 0x0008F594 + .word 0x0008F594, 0x0008F5A6 + .word 0x0008F5A8, 0x0008F62C + .word 0x0008F62C, 0x0008F75C + .word 0x0008F75C, 0x0008F7FC + .word 0x0008F7FC, 0x0008FC56 + .word 0x0008FC58, 0x000901C2 + .word 0x000901C4, 0x00090690 + .word 0x00090690, 0x000918F8 + .word 0x000918F8, 0x00091A00 + .word 0x00091A00, 0x000925D0 + .word 0x000925D0, 0x00092854 + .word 0x00092854, 0x00092D74 + .word 0x00092D74, 0x00092E2E + .word 0x00092E30, 0x00093104 + .word 0x00093104, 0x000931CA + .word 0x000931CC, 0x00093214 + .word 0x00093214, 0x0009374C + .word 0x0009374C, 0x000941F8 + .word 0x000941F8, 0x000946C2 + .word 0x000946C4, 0x00094800 + .word 0x00094800, 0x00094820 + .word 0x00094820, 0x00094956 + .word 0x00094958, 0x000949D6 + .word 0x000949D8, 0x00094D70 + .word 0x00094D70, 0x0009541A + .word 0x0009541C, 0x000959CE + .word 0x000959D0, 0x00095F16 + .word 0x00095F18, 0x00095FFC + .word 0x00095FFC, 0x0009610C + .word 0x0009610C, 0x0009755E + .word 0x00097560, 0x00097918 + .word 0x00097918, 0x0009796E + .word 0x00097970, 0x00097B82 + .word 0x00097B84, 0x00098A1E + .word 0x00098A20, 0x000990B4 + .word 0x000990B4, 0x000993E0 + .word 0x000993E0, 0x0009AEF4 + .word 0x0009AEF4, 0x0009B04A + .word 0x0009B04C, 0x0009B2EA + .word 0x0009B2EC, 0x0009BEAE + .word 0x0009BEB0, 0x0009C08A + .word 0x0009C08C, 0x0009E0A6 + .word 0x0009E0A8, 0x0009F66A + .word 0x0009F66C, 0x0009FE24 + .word 0x0009FE24, 0x000A025E + .word 0x000A0260, 0x000A0994 + .word 0x000A0994, 0x000A0FFC + .word 0x000A0FFC, 0x000A13AC + .word 0x000A13AC, 0x000A1AEC + .word 0x000A1AEC, 0x000A1B68 + .word 0x000A1B68, 0x000A1C78 + .word 0x000A1C78, 0x000A1CFE + .word 0x000A1D00, 0x000A2ACE + .word 0x000A2AD0, 0x000A342E + .word 0x000A3430, 0x000AA1EC + .word 0x000AA1EC, 0x000AB172 + .word 0x000AB174, 0x000AB4E6 + .word 0x000AB4E8, 0x000AC05E + .word 0x000AC060, 0x000AC5D6 + .word 0x000AC5D8, 0x000AD656 + .word 0x000AD658, 0x000ADA12 + .word 0x000ADA14, 0x000AE604 + .word 0x000AE604, 0x000AEE5A + .word 0x000AEE5C, 0x000AF07E + .word 0x000AF080, 0x000B0402 + .word 0x000B0404, 0x000B069C + .word 0x000B069C, 0x000B06BE + .word 0x000B06C0, 0x000B095C + .word 0x000B095C, 0x000B0C64 + .word 0x000B0C64, 0x000B18E4 + .word 0x000B18E4, 0x000B2056 + .word 0x000B2058, 0x000B2D2C + .word 0x000B2D2C, 0x000B3466 + .word 0x000B3468, 0x000B3598 + .word 0x000B3598, 0x000B3AFA + .word 0x000B3AFC, 0x000B3D4A + .word 0x000B3D4C, 0x000B3FBA + .word 0x000B3FBC, 0x000B41A4 + .word 0x000B41A4, 0x000B54EC + .word 0x000B54EC, 0x000B584A + .word 0x000B584C, 0x000B5AC4 + .word 0x000B5AC4, 0x000B5FC4 + .word 0x000B5FC4, 0x000B6104 + .word 0x000B6104, 0x000B6400 + .word 0x000B6400, 0x000B64C4 + .word 0x000B64C4, 0x000B85FE + .word 0x000B8600, 0x000B9556 + .word 0x000B9558, 0x000B9BD8 + .word 0x000B9BD8, 0x000B9C10 + .word 0x000B9C10, 0x000BA1A8 + .word 0x000BA1A8, 0x000BA276 + .word 0x000BA278, 0x000BA586 + .word 0x000BA588, 0x000BC650 + .word 0x000BC650, 0x000BD748 + .word 0x000BD748, 0x000BD862 + .word 0x000BD864, 0x000D5B96 + .word 0x000D5B98, 0x000D5E32 + .word 0x000D5E34, 0x000D5EE4 + .word 0x000D5EE4, 0x000D5F60 + .word 0x000D5F60, 0x000D63BC + .word 0x000D63BC, 0x000D6F6A + .word 0x000D6F6C, 0x000D7D2A + .word 0x000D7D2C, 0x000D7E44 + .word 0x000D7E44, 0x000D87A6 + .word 0x000D87A8, 0x000D8A62 + .word 0x000D8A64, 0x000D9512 + .word 0x000D9514, 0x000DBA66 + .word 0x000DBA68, 0x000DBAE4 + .word 0x000DBAE4, 0x000DCEA2 + .word 0x000DCEA4, 0x000DDB52 + .word 0x000DDB54, 0x000DEFD2 + .word 0x000DEFD4, 0x000DF1E4 + .word 0x000DF1E4, 0x000E0A46 + .word 0x000E0A48, 0x000E2DF4 + .word 0x000E2DF4, 0x000F7C70 + .word 0x000F7C70, 0x000FAD86 + .word 0x000FAD88, 0x000FDEA0 + .word 0x000FDEA0, 0x00103298 + .word 0x00103298, 0x001067BA + .word 0x001067BC, 0x00106890 + .word 0x00106890, 0x001069F4 + .word 0x001069F4, 0x00107296 + .word 0x00107298, 0x00107400 + .word 0x00107400, 0x001076D2 + .word 0x001076D4, 0x00107720 + .word 0x00107720, 0x00108BDE + .word 0x00108BE0, 0x0011242C + .word 0x0011242C, 0x00112564 + .word 0x00112564, 0x00112D22 + .word 0x00112D24, 0x001130B4 + .word 0x001130B4, 0x001131C4 + .word 0x001131C4, 0x0011349A + .word 0x0011349C, 0x00113558 + .word 0x00113558, 0x001164EC + .word 0x001164EC, 0x0011BB82 + .word 0x0011BB84, 0x0011BC5E + .word 0x0011BC60, 0x00125336 + .word 0x00125338, 0x0012DB8A + .word 0x0012DB8C, 0x0012FA8A + .word 0x0012FA8C, 0x001379E2 + .word 0x001379E4, 0x00137F06 + .word 0x00137F08, 0x0013954E + .word 0x00139550, 0x001396C2 + .word 0x001396C4, 0x0013CAEC + .word 0x0013CAEC, 0x0013D018 + .word 0x0013D018, 0x0013D37E + .word 0x0013D380, 0x0013E108 + .word 0x0013E108, 0x0013E830 + .word 0x0013E830, 0x0013ECFC + .word 0x0013ECFC, 0x0014136E + .word 0x00141370, 0x00141F94 + .word 0x00141F94, 0x001421EA + .word 0x001421EC, 0x00142C3C + .word 0x00142C3C, 0x00143AE4 + .word 0x00143AE4, 0x00144630 + .word 0x00144630, 0x00144762 + .word 0x00144764, 0x001448B4 + .word 0x001448B4, 0x00144B76 + .word 0x00144B78, 0x00144BAA + .word 0x00144BAC, 0x00144F1A + .word 0x00144F1C, 0x00145204 + .word 0x00145204, 0x00145B3E + .word 0x00145B40, 0x00146480 + .word 0x00146480, 0x0014690C + .word 0x0014690C, 0x00146C84 + .word 0x00146C84, 0x00146ED8 + .word 0x00146ED8, 0x001473C6 + .word 0x001473C8, 0x001477BC + .word 0x001477BC, 0x00147BA2 + .word 0x00147BA4, 0x0014803A + .word 0x0014803C, 0x0014846C + .word 0x0014846C, 0x00149424 + .word 0x00149424, 0x001496BC + .word 0x001496BC, 0x0014B984 + .word 0x0014B984, 0x0014CE6C + .word 0x0014CE6C, 0x0014F4A2 + .word 0x0014F4A4, 0x0014F5BA + .word 0x0014F5BC, 0x0014F908 + .word 0x0014F908, 0x0014F936 + .word 0x0014F938, 0x0014F954 + .word 0x0014F954, 0x001501F0 + .word 0x001501F0, 0x00150414 + .word 0x00150414, 0x001504DC + .word 0x001504DC, 0x0015077A + .word 0x0015077C, 0x00150C4E + .word 0x00150C50, 0x001510FA + .word 0x001510FC, 0x0015242E + .word 0x00152430, 0x001536A4 + .word 0x001536A4, 0x00153DA0 + .word 0x00153DA0, 0x00153EF6 + .word 0x00153EF8, 0x001544E2 + .word 0x001544E4, 0x00154E2C + .word 0x00154E2C, 0x00154FF8 + .word 0x00154FF8, 0x001550DC + .word 0x001550DC, 0x001552E4 + .word 0x001552E4, 0x00155664 + .word 0x00155664, 0x0015572C + .word 0x0015572C, 0x0015671C + .word 0x0015671C, 0x00156A70 + .word 0x00156A70, 0x0015737E + .word 0x00157380, 0x001581A8 + .word 0x001581A8, 0x0015823E + .word 0x00158240, 0x001587C4 + .word 0x001587C4, 0x001592DE + .word 0x001592E0, 0x0015993A + .word 0x0015993C, 0x00159AA6 + .word 0x00159AA8, 0x0015A548 + .word 0x0015A548, 0x0015A652 + .word 0x0015A654, 0x0015AC22 + .word 0x0015AC24, 0x0015B0D2 + .word 0x0015B0D4, 0x0015B3B4 + .word 0x0015B3B4, 0x0015B602 + .word 0x0015B604, 0x0015CCA0 + .word 0x0015CCA0, 0x0015D1E8 + .word 0x0015D1E8, 0x0015D83E + .word 0x0015D840, 0x0015DF66 + .word 0x0015DF68, 0x0015E0CA + .word 0x0015E0CC, 0x00161F7A + .word 0x00161F7C, 0x00162200 + .word 0x00162200, 0x0016268C + .word 0x0016268C, 0x00162FFC + .word 0x00162FFC, 0x001633A8 + .word 0x001633A8, 0x00163410 + .word 0x00163410, 0x001636F6 + .word 0x001636F8, 0x00163C7C + .word 0x00163C7C, 0x00163D94 + .word 0x00163D94, 0x0016404C + .word 0x0016404C, 0x001641F8 + .word 0x001641F8, 0x0016475A + .word 0x0016475C, 0x001648AC + .word 0x001648AC, 0x00164918 + .word 0x00164918, 0x00164E9A + .word 0x00164E9C, 0x001657AA + .word 0x001657AC, 0x001657E4 + .word 0x001657E4, 0x00165926 + .word 0x00165928, 0x00169C68 + .word 0x00169C68, 0x0016A2C4 + .word 0x0016A2C4, 0x0016A8CC + .word 0x0016A8CC, 0x0016AA4E + .word 0x0016AA50, 0x0016B190 + .word 0x0016B190, 0x0016B356 + .word 0x0016B358, 0x0016BE42 + .word 0x0016BE44, 0x0016BEAA + .word 0x0016BEAC, 0x0016BFF2 + .word 0x0016BFF4, 0x0016C02C + .word 0x0016C02C, 0x0016CA28 + .word 0x0016CA28, 0x0016CD36 + .word 0x0016CD38, 0x0016CD8C + .word 0x0016CD8C, 0x0016CF68 + .word 0x0016CF68, 0x0016DA82 + .word 0x0016DA84, 0x0016DD9A + .word 0x0016DD9C, 0x0016DFFE + .word 0x0016E000, 0x0016E960 + .word 0x0016E960, 0x0016EF84 + .word 0x0016EF84, 0x0016F05A + .word 0x0016F05C, 0x001783F8 + .word 0x001783F8, 0x0017868A + .word 0x0017868C, 0x001788A8 + .word 0x001788A8, 0x00179DDA + .word 0x00179DDC, 0x0017A384 + .word 0x0017A384, 0x0017A4C8 + .word 0x0017A4C8, 0x001805F2 + .word 0x001805F4, 0x001806DC + .word 0x001806DC, 0x00181A42 + .word 0x00181A44, 0x00184346 + .word 0x00184348, 0x001845F8 + .word 0x001845F8, 0x001846CE + .word 0x001846D0, 0x00186228 + .word 0x00186228, 0x00186252 + .word 0x00186254, 0x00186BC6 + .word 0x00186BC8, 0x001872F8 + .word 0x001872F8, 0x00187604 + .word 0x00187604, 0x00189C7A + .word 0x00189C7C, 0x0018A15A + .word 0x0018A15C, 0x0018A2DE + .word 0x0018A2E0, 0x0018A5B6 + .word 0x0018A5B8, 0x0018BD26 + .word 0x0018BD28, 0x0018BEE6 + .word 0x0018BEE8, 0x0018C1CC + .word 0x0018C1CC, 0x0018C22A + .word 0x0018C22C, 0x0018FB80 + .word 0x0018FB80, 0x00190502 + .word 0x00190504, 0x00190696 + .word 0x00190698, 0x0019089E + .word 0x001908A0, 0x00191908 + .word 0x00191908, 0x00191AD4 + .word 0x00191AD4, 0x00191DCC + .word 0x00191DCC, 0x001925AA + .word 0x001925AC, 0x0019272A + .word 0x0019272C, 0x00192C10 + .word 0x00192C10, 0x00193556 + .word 0x00193558, 0x001936C2 + .word 0x001936C4, 0x00193834 + .word 0x00193834, 0x00193C46 + .word 0x00193C48, 0x00193DFA + .word 0x00193DFC, 0x001952B8 + .word 0x001952B8, 0x001954EE + .word 0x001954F0, 0x00195B90 + .word 0x00195B90, 0x00197110 + .word 0x00197110, 0x00197602 + .word 0x00197604, 0x001982F6 + .word 0x001982F8, 0x001988D2 + .word 0x001988D4, 0x00198A46 + .word 0x00198A48, 0x00198C68 + .word 0x00198C68, 0x00199596 + .word 0x00199598, 0x00199FA8 + .word 0x00199FA8, 0x0019A118 + .word 0x0019A118, 0x0019A504 + .word 0x0019A504, 0x0019ABD2 + .word 0x0019ABD4, 0x0019AE0A + .word 0x0019AE0C, 0x0019AF18 + .word 0x0019AF18, 0x0019B3CA + .word 0x0019B3CC, 0x0019B3FE + .word 0x0019B400, 0x0019B63C + .word 0x0019B63C, 0x0019C954 + .word 0x0019C954, 0x0019D0C4 + .word 0x0019D0C4, 0x0019D260 + .word 0x0019D260, 0x0019D702 + .word 0x0019D704, 0x0019DA20 + .word 0x0019DA20, 0x0019DAAC + .word 0x0019DAAC, 0x0019DC36 + .word 0x0019DC38, 0x0019DCAE + .word 0x0019DCB0, 0x0019DCD4 + .word 0x0019DCD4, 0x0019EA8C + .word 0x0019EA8C, 0x0019F844 + .word 0x0019F844, 0x001A248C + .word 0x001A248C, 0x001B4F66 + .word 0x001B4F68, 0x001BAC90 + .word 0x001BAC90, 0x001BAEAC + .word 0x001BAEAC, 0x0020361E + .word 0x00203620, 0x002078B6 + .word 0x002078B8, 0x002082F8 + .word 0x002082F8, 0x00208EDE + .word 0x00208EE0, 0x00209B38 + .word 0x00209B38, 0x0020D220 + .word 0x0020D220, 0x0020E7B4 + .word 0x0020E7B4, 0x0020E928 + .word 0x0020E928, 0x0020EB6A + .word 0x0020EB6C, 0x002130A2 + .word 0x002130A4, 0x00214BC0 + .word 0x00214BC0, 0x00217286 + .word 0x00217288, 0x00217E92 + .word 0x00217E94, 0x002193C2 + .word 0x002193C4, 0x00219A78 + .word 0x00219A78, 0x00219FD4 + .word 0x00219FD4, 0x0021A1BE + .word 0x0021A1C0, 0x0021D726 + .word 0x0021D728, 0x00223618 + .word 0x00223618, 0x00224F4A + .word 0x00224F4C, 0x0022562C + .word 0x0022562C, 0x00225F6A + .word 0x00225F6C, 0x00226F0E + .word 0x00226F10, 0x00227BD8 + .word 0x00227BD8, 0x00227D76 + .word 0x00227D78, 0x00227DD8 + .word 0x00227DD8, 0x00228B54 + .word 0x00228B54, 0x00228EA0 + .word 0x00228EA0, 0x002298A0 + .word 0x002298A0, 0x0023E902 + .word 0x0023E904, 0x00241C66 + .word 0x00241C68, 0x00244FCA + .word 0x00244FCC, 0x00245652 + .word 0x00245654, 0x00246F5A + .word 0x00246F5C, 0x00248126 + .word 0x00248128, 0x002489BA + .word 0x002489BC, 0x00248C90 + .word 0x00248C90, 0x00248D88 + .word 0x00248D88, 0x002490A8 + .word 0x002490A8, 0x00249290 + .word 0x00249290, 0x00249586 + .word 0x00249588, 0x002497C2 + .word 0x002497C4, 0x002499E4 + .word 0x002499E4, 0x00249AB2 + .word 0x00249AB4, 0x00249D84 + .word 0x00249D84, 0x00249F7A + .word 0x00249F7C, 0x0024A3C8 + .word 0x0024A3C8, 0x0024A610 + .word 0x0024A610, 0x0024AAFC + .word 0x0024AAFC, 0x0024AD42 + .word 0x0024AD44, 0x0024AF6C + .word 0x0024AF6C, 0x0024B12C + .word 0x0024B12C, 0x0024B400 + .word 0x0024B400, 0x0024B97E + .word 0x0024B980, 0x0024D500 + .word 0x0024D500, 0x0024EF66 + .word 0x0024EF68, 0x0024FB04 + .word 0x0024FB04, 0x002672CA + .word 0x002672CC, 0x0027EB90 + .word 0x0027EB90, 0x00282870 + .word 0x00282870, 0x00283B94 + .word 0x00283B94, 0x00287958 + .word 0x00287958, 0x0028A7AC + .word 0x0028A7AC, 0x0028F5C8 + .word 0x0028F5C8, 0x002900DE + .word 0x002900E0, 0x00290C5C + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00290C64 ; chunk size + .incbin "baserom.nds", 0x0, 0x157D6 + .incbin "baserom.nds", 0x157D8, 0x1CA + .incbin "baserom.nds", 0x159A4, 0x762 + .incbin "baserom.nds", 0x16108, 0xB4E + .incbin "baserom.nds", 0x16C58, 0x156 + .incbin "baserom.nds", 0x16DB0, 0x18A + .incbin "baserom.nds", 0x16F3C, 0x1E8 + .incbin "baserom.nds", 0x17124, 0x113A + .incbin "baserom.nds", 0x18260, 0x2E4 + .incbin "baserom.nds", 0x18544, 0x872 + .incbin "baserom.nds", 0x18DB8, 0x932 + .incbin "baserom.nds", 0x196EC, 0x9D2 + .incbin "baserom.nds", 0x1A0C0, 0x84A + .incbin "baserom.nds", 0x1A90C, 0x35A + .incbin "baserom.nds", 0x1AC68, 0x6DA + .incbin "baserom.nds", 0x1B344, 0x74E + .incbin "baserom.nds", 0x1BA94, 0x1946 + .incbin "baserom.nds", 0x1D3DC, 0x472 + .incbin "baserom.nds", 0x1D850, 0x4668 + .incbin "baserom.nds", 0x21EB8, 0x196 + .incbin "baserom.nds", 0x22050, 0x5E + .incbin "baserom.nds", 0x220B0, 0x416 + .incbin "baserom.nds", 0x224C8, 0xCF0 + .incbin "baserom.nds", 0x231B8, 0x29A + .incbin "baserom.nds", 0x23454, 0x1ECC + .incbin "baserom.nds", 0x25320, 0x2184 + .incbin "baserom.nds", 0x274A4, 0x212 + .incbin "baserom.nds", 0x276B8, 0xB3A + .incbin "baserom.nds", 0x281F4, 0x18E + .incbin "baserom.nds", 0x28384, 0xE12 + .incbin "baserom.nds", 0x29198, 0x386 + .incbin "baserom.nds", 0x29520, 0x22A + .incbin "baserom.nds", 0x2974C, 0x22E + .incbin "baserom.nds", 0x2997C, 0x282 + .incbin "baserom.nds", 0x29C00, 0x1A6 + .incbin "baserom.nds", 0x29DA8, 0xDA + .incbin "baserom.nds", 0x29E84, 0x4E + .incbin "baserom.nds", 0x29ED4, 0x3FA + .incbin "baserom.nds", 0x2A2D0, 0x360 + .incbin "baserom.nds", 0x2A630, 0x186 + .incbin "baserom.nds", 0x2A7B8, 0x216 + .incbin "baserom.nds", 0x2A9D0, 0x103C + .incbin "baserom.nds", 0x2BA0C, 0x1C54 + .incbin "baserom.nds", 0x2D660, 0x28C + .incbin "baserom.nds", 0x2D8EC, 0x34E + .incbin "baserom.nds", 0x2DC3C, 0x90 + .incbin "baserom.nds", 0x2DCCC, 0xB0 + .incbin "baserom.nds", 0x2DD7C, 0x1E38 + .incbin "baserom.nds", 0x2FBB4, 0x14E + .incbin "baserom.nds", 0x2FD04, 0xC3E + .incbin "baserom.nds", 0x30944, 0x2B0 + .incbin "baserom.nds", 0x30BF4, 0x510 + .incbin "baserom.nds", 0x31104, 0x2E6 + .incbin "baserom.nds", 0x313EC, 0x3A08 + .incbin "baserom.nds", 0x34DF4, 0x3CA + .incbin "baserom.nds", 0x351C0, 0x474 + .incbin "baserom.nds", 0x35634, 0x156 + .incbin "baserom.nds", 0x3578C, 0x93C + .incbin "baserom.nds", 0x360C8, 0x1810 + .incbin "baserom.nds", 0x378D8, 0x22E + .incbin "baserom.nds", 0x37B08, 0xF68 + .incbin "baserom.nds", 0x38A70, 0x59A + .incbin "baserom.nds", 0x3900C, 0x17C + .incbin "baserom.nds", 0x39188, 0x28A + .incbin "baserom.nds", 0x39414, 0x33A + .incbin "baserom.nds", 0x39750, 0x1C2 + .incbin "baserom.nds", 0x39914, 0x122 + .incbin "baserom.nds", 0x39A38, 0x45A + .incbin "baserom.nds", 0x39E94, 0x518 + .incbin "baserom.nds", 0x3A3AC, 0x1E6 + .incbin "baserom.nds", 0x3A594, 0x1AC + .incbin "baserom.nds", 0x3A740, 0x1BC + .incbin "baserom.nds", 0x3A8FC, 0x10A6 + .incbin "baserom.nds", 0x3B9A4, 0x2C8 + .incbin "baserom.nds", 0x3BC6C, 0x1EC + .incbin "baserom.nds", 0x3BE58, 0x410 + .incbin "baserom.nds", 0x3C268, 0x154 + .incbin "baserom.nds", 0x3C3BC, 0x12E + .incbin "baserom.nds", 0x3C4EC, 0x1BC4 + .incbin "baserom.nds", 0x3E0B0, 0x1AC + .incbin "baserom.nds", 0x3E25C, 0x76C + .incbin "baserom.nds", 0x3E9C8, 0xCE8 + .incbin "baserom.nds", 0x3F6B0, 0x744 + .incbin "baserom.nds", 0x3FDF4, 0x116 + .incbin "baserom.nds", 0x3FF0C, 0x710 + .incbin "baserom.nds", 0x4061C, 0x21C + .incbin "baserom.nds", 0x40838, 0x19E + .incbin "baserom.nds", 0x409D8, 0x116 + .incbin "baserom.nds", 0x40AF0, 0x808 + .incbin "baserom.nds", 0x412F8, 0xB88 + .incbin "baserom.nds", 0x41E80, 0x318 + .incbin "baserom.nds", 0x42198, 0x330 + .incbin "baserom.nds", 0x424C8, 0x23C + .incbin "baserom.nds", 0x42704, 0xA3E + .incbin "baserom.nds", 0x43144, 0x23E + .incbin "baserom.nds", 0x43384, 0x34A + .incbin "baserom.nds", 0x436D0, 0x22C + .incbin "baserom.nds", 0x438FC, 0x50DE + .incbin "baserom.nds", 0x489DC, 0x3918 + .incbin "baserom.nds", 0x4C2F4, 0x19E + .incbin "baserom.nds", 0x4C494, 0x982 + .incbin "baserom.nds", 0x4CE18, 0xDA + .incbin "baserom.nds", 0x4CEF4, 0xDA + .incbin "baserom.nds", 0x4CFD0, 0xEC + .incbin "baserom.nds", 0x4D0BC, 0x7FC + .incbin "baserom.nds", 0x4D8B8, 0x476 + .incbin "baserom.nds", 0x4DD30, 0x1E8 + .incbin "baserom.nds", 0x4DF18, 0x1DE + .incbin "baserom.nds", 0x4E0F8, 0x46 + .incbin "baserom.nds", 0x4E140, 0xB9E + .incbin "baserom.nds", 0x4ECE0, 0x1C0 + .incbin "baserom.nds", 0x4EEA0, 0x164 + .incbin "baserom.nds", 0x4F004, 0x1EA + .incbin "baserom.nds", 0x4F1F0, 0xBC + .incbin "baserom.nds", 0x4F2AC, 0x378 + .incbin "baserom.nds", 0x4F624, 0x5BC + .incbin "baserom.nds", 0x4FBE0, 0x3D2 + .incbin "baserom.nds", 0x4FFB4, 0x46 + .incbin "baserom.nds", 0x4FFFC, 0x9EE + .incbin "baserom.nds", 0x509EC, 0x45E + .incbin "baserom.nds", 0x50E4C, 0x184A + .incbin "baserom.nds", 0x52698, 0x558 + .incbin "baserom.nds", 0x52BF0, 0x714 + .incbin "baserom.nds", 0x53304, 0x1D70 + .incbin "baserom.nds", 0x55074, 0x2E0 + .incbin "baserom.nds", 0x55354, 0xC82 + .incbin "baserom.nds", 0x55FD8, 0x26C + .incbin "baserom.nds", 0x56244, 0x10A + .incbin "baserom.nds", 0x56350, 0xA9C + .incbin "baserom.nds", 0x56DEC, 0x49A + .incbin "baserom.nds", 0x57288, 0x2DE + .incbin "baserom.nds", 0x57568, 0x4E2 + .incbin "baserom.nds", 0x57A4C, 0x862 + .incbin "baserom.nds", 0x582B0, 0x128 + .incbin "baserom.nds", 0x583D8, 0xA5C + .incbin "baserom.nds", 0x58E34, 0x30B8 + .incbin "baserom.nds", 0x5BEEC, 0xB4E + .incbin "baserom.nds", 0x5CA3C, 0x1C2 + .incbin "baserom.nds", 0x5CC00, 0x9C + .incbin "baserom.nds", 0x5CC9C, 0x141A + .incbin "baserom.nds", 0x5E0B8, 0x464 + .incbin "baserom.nds", 0x5E51C, 0x77A + .incbin "baserom.nds", 0x5EC98, 0x658 + .incbin "baserom.nds", 0x5F2F0, 0x596 + .incbin "baserom.nds", 0x5F888, 0x604 + .incbin "baserom.nds", 0x5FE8C, 0x450 + .incbin "baserom.nds", 0x602DC, 0x910 + .incbin "baserom.nds", 0x60BEC, 0x38E + .incbin "baserom.nds", 0x60F7C, 0x360 + .incbin "baserom.nds", 0x612DC, 0x1E8 + .incbin "baserom.nds", 0x614C4, 0x124 + .incbin "baserom.nds", 0x615E8, 0x5E6 + .incbin "baserom.nds", 0x61BD0, 0x1AE + .incbin "baserom.nds", 0x61D80, 0x18BA + .incbin "baserom.nds", 0x6363C, 0x28E + .incbin "baserom.nds", 0x638CC, 0x77C + .incbin "baserom.nds", 0x64048, 0xA9C + .incbin "baserom.nds", 0x64AE4, 0x468 + .incbin "baserom.nds", 0x64F4C, 0x6C4 + .incbin "baserom.nds", 0x65610, 0x16A2 + .incbin "baserom.nds", 0x66CB4, 0x6B6 + .incbin "baserom.nds", 0x6736C, 0x28A + .incbin "baserom.nds", 0x675F8, 0x508 + .incbin "baserom.nds", 0x67B00, 0x38C + .incbin "baserom.nds", 0x67E8C, 0x770 + .incbin "baserom.nds", 0x685FC, 0x858 + .incbin "baserom.nds", 0x68E54, 0x76C + .incbin "baserom.nds", 0x695C0, 0xBD2 + .incbin "baserom.nds", 0x6A194, 0x284 + .incbin "baserom.nds", 0x6A418, 0xBC8 + .incbin "baserom.nds", 0x6AFE0, 0x1B0 + .incbin "baserom.nds", 0x6B190, 0x4C0 + .incbin "baserom.nds", 0x6B650, 0x2F4 + .incbin "baserom.nds", 0x6B944, 0xC2 + .incbin "baserom.nds", 0x6BA08, 0xE8 + .incbin "baserom.nds", 0x6BAF0, 0x9D8 + .incbin "baserom.nds", 0x6C4C8, 0x638 + .incbin "baserom.nds", 0x6CB00, 0x470 + .incbin "baserom.nds", 0x6CF70, 0x708 + .incbin "baserom.nds", 0x6D678, 0x626 + .incbin "baserom.nds", 0x6DCA0, 0xC28 + .incbin "baserom.nds", 0x6E8C8, 0x4F4 + .incbin "baserom.nds", 0x6EDBC, 0x6B4 + .incbin "baserom.nds", 0x6F470, 0x1902 + .incbin "baserom.nds", 0x70D74, 0x24A + .incbin "baserom.nds", 0x70FC0, 0x212 + .incbin "baserom.nds", 0x711D4, 0x19A6 + .incbin "baserom.nds", 0x72B7C, 0x10C + .incbin "baserom.nds", 0x72C88, 0x1C6 + .incbin "baserom.nds", 0x72E50, 0x34A + .incbin "baserom.nds", 0x7319C, 0x210 + .incbin "baserom.nds", 0x733AC, 0x19B4 + .incbin "baserom.nds", 0x74D60, 0xFC2 + .incbin "baserom.nds", 0x75D24, 0xA38 + .incbin "baserom.nds", 0x7675C, 0x104 + .incbin "baserom.nds", 0x76860, 0x268 + .incbin "baserom.nds", 0x76AC8, 0x6FA + .incbin "baserom.nds", 0x771C4, 0xFEC + .incbin "baserom.nds", 0x781B0, 0xE4C + .incbin "baserom.nds", 0x78FFC, 0x43DC + .incbin "baserom.nds", 0x7D3D8, 0x67A + .incbin "baserom.nds", 0x7DA54, 0x1E + .incbin "baserom.nds", 0x7DA74, 0x202 + .incbin "baserom.nds", 0x7DC78, 0x66E6 + .incbin "baserom.nds", 0x84360, 0x3AE + .incbin "baserom.nds", 0x84710, 0xAE + .incbin "baserom.nds", 0x847C0, 0x3DC + .incbin "baserom.nds", 0x84B9C, 0x3404 + .incbin "baserom.nds", 0x87FA0, 0x188 + .incbin "baserom.nds", 0x88128, 0x39E + .incbin "baserom.nds", 0x884C8, 0x5A4 + .incbin "baserom.nds", 0x88A6C, 0xE96 + .incbin "baserom.nds", 0x89904, 0x26C + .incbin "baserom.nds", 0x89B70, 0xCD8 + .incbin "baserom.nds", 0x8A848, 0x5E + .incbin "baserom.nds", 0x8A8A8, 0x330 + .incbin "baserom.nds", 0x8ABD8, 0x4F8 + .incbin "baserom.nds", 0x8B0D0, 0x84 + .incbin "baserom.nds", 0x8B154, 0xB8 + .incbin "baserom.nds", 0x8B20C, 0x180 + .incbin "baserom.nds", 0x8B38C, 0x374E + .incbin "baserom.nds", 0x8EADC, 0x70 + .incbin "baserom.nds", 0x8EB4C, 0xD6 + .incbin "baserom.nds", 0x8EC24, 0x18E + .incbin "baserom.nds", 0x8EDB4, 0xB0 + .incbin "baserom.nds", 0x8EE64, 0x256 + .incbin "baserom.nds", 0x8F0BC, 0x150 + .incbin "baserom.nds", 0x8F20C, 0x188 + .incbin "baserom.nds", 0x8F394, 0x200 + .incbin "baserom.nds", 0x8F594, 0x12 + .incbin "baserom.nds", 0x8F5A8, 0x84 + .incbin "baserom.nds", 0x8F62C, 0x130 + .incbin "baserom.nds", 0x8F75C, 0xA0 + .incbin "baserom.nds", 0x8F7FC, 0x45A + .incbin "baserom.nds", 0x8FC58, 0x56A + .incbin "baserom.nds", 0x901C4, 0x4CC + .incbin "baserom.nds", 0x90690, 0x1268 + .incbin "baserom.nds", 0x918F8, 0x108 + .incbin "baserom.nds", 0x91A00, 0xBD0 + .incbin "baserom.nds", 0x925D0, 0x284 + .incbin "baserom.nds", 0x92854, 0x520 + .incbin "baserom.nds", 0x92D74, 0xBA + .incbin "baserom.nds", 0x92E30, 0x2D4 + .incbin "baserom.nds", 0x93104, 0xC6 + .incbin "baserom.nds", 0x931CC, 0x48 + .incbin "baserom.nds", 0x93214, 0x538 + .incbin "baserom.nds", 0x9374C, 0xAAC + .incbin "baserom.nds", 0x941F8, 0x4CA + .incbin "baserom.nds", 0x946C4, 0x13C + .incbin "baserom.nds", 0x94800, 0x20 + .incbin "baserom.nds", 0x94820, 0x136 + .incbin "baserom.nds", 0x94958, 0x7E + .incbin "baserom.nds", 0x949D8, 0x398 + .incbin "baserom.nds", 0x94D70, 0x6AA + .incbin "baserom.nds", 0x9541C, 0x5B2 + .incbin "baserom.nds", 0x959D0, 0x546 + .incbin "baserom.nds", 0x95F18, 0xE4 + .incbin "baserom.nds", 0x95FFC, 0x110 + .incbin "baserom.nds", 0x9610C, 0x1452 + .incbin "baserom.nds", 0x97560, 0x3B8 + .incbin "baserom.nds", 0x97918, 0x56 + .incbin "baserom.nds", 0x97970, 0x212 + .incbin "baserom.nds", 0x97B84, 0xE9A + .incbin "baserom.nds", 0x98A20, 0x694 + .incbin "baserom.nds", 0x990B4, 0x32C + .incbin "baserom.nds", 0x993E0, 0x1B14 + .incbin "baserom.nds", 0x9AEF4, 0x156 + .incbin "baserom.nds", 0x9B04C, 0x29E + .incbin "baserom.nds", 0x9B2EC, 0xBC2 + .incbin "baserom.nds", 0x9BEB0, 0x1DA + .incbin "baserom.nds", 0x9C08C, 0x201A + .incbin "baserom.nds", 0x9E0A8, 0x15C2 + .incbin "baserom.nds", 0x9F66C, 0x7B8 + .incbin "baserom.nds", 0x9FE24, 0x43A + .incbin "baserom.nds", 0xA0260, 0x734 + .incbin "baserom.nds", 0xA0994, 0x668 + .incbin "baserom.nds", 0xA0FFC, 0x3B0 + .incbin "baserom.nds", 0xA13AC, 0x740 + .incbin "baserom.nds", 0xA1AEC, 0x7C + .incbin "baserom.nds", 0xA1B68, 0x110 + .incbin "baserom.nds", 0xA1C78, 0x86 + .incbin "baserom.nds", 0xA1D00, 0xDCE + .incbin "baserom.nds", 0xA2AD0, 0x95E + .incbin "baserom.nds", 0xA3430, 0x6DBC + .incbin "baserom.nds", 0xAA1EC, 0xF86 + .incbin "baserom.nds", 0xAB174, 0x372 + .incbin "baserom.nds", 0xAB4E8, 0xB76 + .incbin "baserom.nds", 0xAC060, 0x576 + .incbin "baserom.nds", 0xAC5D8, 0x107E + .incbin "baserom.nds", 0xAD658, 0x3BA + .incbin "baserom.nds", 0xADA14, 0xBF0 + .incbin "baserom.nds", 0xAE604, 0x856 + .incbin "baserom.nds", 0xAEE5C, 0x222 + .incbin "baserom.nds", 0xAF080, 0x1382 + .incbin "baserom.nds", 0xB0404, 0x298 + .incbin "baserom.nds", 0xB069C, 0x22 + .incbin "baserom.nds", 0xB06C0, 0x29C + .incbin "baserom.nds", 0xB095C, 0x308 + .incbin "baserom.nds", 0xB0C64, 0xC80 + .incbin "baserom.nds", 0xB18E4, 0x772 + .incbin "baserom.nds", 0xB2058, 0xCD4 + .incbin "baserom.nds", 0xB2D2C, 0x73A + .incbin "baserom.nds", 0xB3468, 0x130 + .incbin "baserom.nds", 0xB3598, 0x562 + .incbin "baserom.nds", 0xB3AFC, 0x24E + .incbin "baserom.nds", 0xB3D4C, 0x26E + .incbin "baserom.nds", 0xB3FBC, 0x1E8 + .incbin "baserom.nds", 0xB41A4, 0x1348 + .incbin "baserom.nds", 0xB54EC, 0x35E + .incbin "baserom.nds", 0xB584C, 0x278 + .incbin "baserom.nds", 0xB5AC4, 0x500 + .incbin "baserom.nds", 0xB5FC4, 0x140 + .incbin "baserom.nds", 0xB6104, 0x2FC + .incbin "baserom.nds", 0xB6400, 0xC4 + .incbin "baserom.nds", 0xB64C4, 0x213A + .incbin "baserom.nds", 0xB8600, 0xF56 + .incbin "baserom.nds", 0xB9558, 0x680 + .incbin "baserom.nds", 0xB9BD8, 0x38 + .incbin "baserom.nds", 0xB9C10, 0x598 + .incbin "baserom.nds", 0xBA1A8, 0xCE + .incbin "baserom.nds", 0xBA278, 0x30E + .incbin "baserom.nds", 0xBA588, 0x20C8 + .incbin "baserom.nds", 0xBC650, 0x10F8 + .incbin "baserom.nds", 0xBD748, 0x11A + .incbin "baserom.nds", 0xBD864, 0x18332 + .incbin "baserom.nds", 0xD5B98, 0x29A + .incbin "baserom.nds", 0xD5E34, 0xB0 + .incbin "baserom.nds", 0xD5EE4, 0x7C + .incbin "baserom.nds", 0xD5F60, 0x45C + .incbin "baserom.nds", 0xD63BC, 0xBAE + .incbin "baserom.nds", 0xD6F6C, 0xDBE + .incbin "baserom.nds", 0xD7D2C, 0x118 + .incbin "baserom.nds", 0xD7E44, 0x962 + .incbin "baserom.nds", 0xD87A8, 0x2BA + .incbin "baserom.nds", 0xD8A64, 0xAAE + .incbin "baserom.nds", 0xD9514, 0x2552 + .incbin "baserom.nds", 0xDBA68, 0x7C + .incbin "baserom.nds", 0xDBAE4, 0x13BE + .incbin "baserom.nds", 0xDCEA4, 0xCAE + .incbin "baserom.nds", 0xDDB54, 0x147E + .incbin "baserom.nds", 0xDEFD4, 0x210 + .incbin "baserom.nds", 0xDF1E4, 0x1862 + .incbin "baserom.nds", 0xE0A48, 0x23AC + .incbin "baserom.nds", 0xE2DF4, 0x14E7C + .incbin "baserom.nds", 0xF7C70, 0x3116 + .incbin "baserom.nds", 0xFAD88, 0x3118 + .incbin "baserom.nds", 0xFDEA0, 0x53F8 + .incbin "baserom.nds", 0x103298, 0x3522 + .incbin "baserom.nds", 0x1067BC, 0xD4 + .incbin "baserom.nds", 0x106890, 0x164 + .incbin "baserom.nds", 0x1069F4, 0x8A2 + .incbin "baserom.nds", 0x107298, 0x168 + .incbin "baserom.nds", 0x107400, 0x2D2 + .incbin "baserom.nds", 0x1076D4, 0x4C + .incbin "baserom.nds", 0x107720, 0x14BE + .incbin "baserom.nds", 0x108BE0, 0x984C + .incbin "baserom.nds", 0x11242C, 0x138 + .incbin "baserom.nds", 0x112564, 0x7BE + .incbin "baserom.nds", 0x112D24, 0x390 + .incbin "baserom.nds", 0x1130B4, 0x110 + .incbin "baserom.nds", 0x1131C4, 0x2D6 + .incbin "baserom.nds", 0x11349C, 0xBC + .incbin "baserom.nds", 0x113558, 0x2F94 + .incbin "baserom.nds", 0x1164EC, 0x5696 + .incbin "baserom.nds", 0x11BB84, 0xDA + .incbin "baserom.nds", 0x11BC60, 0x96D6 + .incbin "baserom.nds", 0x125338, 0x8852 + .incbin "baserom.nds", 0x12DB8C, 0x1EFE + .incbin "baserom.nds", 0x12FA8C, 0x7F56 + .incbin "baserom.nds", 0x1379E4, 0x522 + .incbin "baserom.nds", 0x137F08, 0x1646 + .incbin "baserom.nds", 0x139550, 0x172 + .incbin "baserom.nds", 0x1396C4, 0x3428 + .incbin "baserom.nds", 0x13CAEC, 0x52C + .incbin "baserom.nds", 0x13D018, 0x366 + .incbin "baserom.nds", 0x13D380, 0xD88 + .incbin "baserom.nds", 0x13E108, 0x728 + .incbin "baserom.nds", 0x13E830, 0x4CC + .incbin "baserom.nds", 0x13ECFC, 0x2672 + .incbin "baserom.nds", 0x141370, 0xC24 + .incbin "baserom.nds", 0x141F94, 0x256 + .incbin "baserom.nds", 0x1421EC, 0xA50 + .incbin "baserom.nds", 0x142C3C, 0xEA8 + .incbin "baserom.nds", 0x143AE4, 0xB4C + .incbin "baserom.nds", 0x144630, 0x132 + .incbin "baserom.nds", 0x144764, 0x150 + .incbin "baserom.nds", 0x1448B4, 0x2C2 + .incbin "baserom.nds", 0x144B78, 0x32 + .incbin "baserom.nds", 0x144BAC, 0x36E + .incbin "baserom.nds", 0x144F1C, 0x2E8 + .incbin "baserom.nds", 0x145204, 0x93A + .incbin "baserom.nds", 0x145B40, 0x940 + .incbin "baserom.nds", 0x146480, 0x48C + .incbin "baserom.nds", 0x14690C, 0x378 + .incbin "baserom.nds", 0x146C84, 0x254 + .incbin "baserom.nds", 0x146ED8, 0x4EE + .incbin "baserom.nds", 0x1473C8, 0x3F4 + .incbin "baserom.nds", 0x1477BC, 0x3E6 + .incbin "baserom.nds", 0x147BA4, 0x496 + .incbin "baserom.nds", 0x14803C, 0x430 + .incbin "baserom.nds", 0x14846C, 0xFB8 + .incbin "baserom.nds", 0x149424, 0x298 + .incbin "baserom.nds", 0x1496BC, 0x22C8 + .incbin "baserom.nds", 0x14B984, 0x14E8 + .incbin "baserom.nds", 0x14CE6C, 0x2636 + .incbin "baserom.nds", 0x14F4A4, 0x116 + .incbin "baserom.nds", 0x14F5BC, 0x34C + .incbin "baserom.nds", 0x14F908, 0x2E + .incbin "baserom.nds", 0x14F938, 0x1C + .incbin "baserom.nds", 0x14F954, 0x89C + .incbin "baserom.nds", 0x1501F0, 0x224 + .incbin "baserom.nds", 0x150414, 0xC8 + .incbin "baserom.nds", 0x1504DC, 0x29E + .incbin "baserom.nds", 0x15077C, 0x4D2 + .incbin "baserom.nds", 0x150C50, 0x4AA + .incbin "baserom.nds", 0x1510FC, 0x1332 + .incbin "baserom.nds", 0x152430, 0x1274 + .incbin "baserom.nds", 0x1536A4, 0x6FC + .incbin "baserom.nds", 0x153DA0, 0x156 + .incbin "baserom.nds", 0x153EF8, 0x5EA + .incbin "baserom.nds", 0x1544E4, 0x948 + .incbin "baserom.nds", 0x154E2C, 0x1CC + .incbin "baserom.nds", 0x154FF8, 0xE4 + .incbin "baserom.nds", 0x1550DC, 0x208 + .incbin "baserom.nds", 0x1552E4, 0x380 + .incbin "baserom.nds", 0x155664, 0xC8 + .incbin "baserom.nds", 0x15572C, 0xFF0 + .incbin "baserom.nds", 0x15671C, 0x354 + .incbin "baserom.nds", 0x156A70, 0x90E + .incbin "baserom.nds", 0x157380, 0xE28 + .incbin "baserom.nds", 0x1581A8, 0x96 + .incbin "baserom.nds", 0x158240, 0x584 + .incbin "baserom.nds", 0x1587C4, 0xB1A + .incbin "baserom.nds", 0x1592E0, 0x65A + .incbin "baserom.nds", 0x15993C, 0x16A + .incbin "baserom.nds", 0x159AA8, 0xAA0 + .incbin "baserom.nds", 0x15A548, 0x10A + .incbin "baserom.nds", 0x15A654, 0x5CE + .incbin "baserom.nds", 0x15AC24, 0x4AE + .incbin "baserom.nds", 0x15B0D4, 0x2E0 + .incbin "baserom.nds", 0x15B3B4, 0x24E + .incbin "baserom.nds", 0x15B604, 0x169C + .incbin "baserom.nds", 0x15CCA0, 0x548 + .incbin "baserom.nds", 0x15D1E8, 0x656 + .incbin "baserom.nds", 0x15D840, 0x726 + .incbin "baserom.nds", 0x15DF68, 0x162 + .incbin "baserom.nds", 0x15E0CC, 0x3EAE + .incbin "baserom.nds", 0x161F7C, 0x284 + .incbin "baserom.nds", 0x162200, 0x48C + .incbin "baserom.nds", 0x16268C, 0x970 + .incbin "baserom.nds", 0x162FFC, 0x3AC + .incbin "baserom.nds", 0x1633A8, 0x68 + .incbin "baserom.nds", 0x163410, 0x2E6 + .incbin "baserom.nds", 0x1636F8, 0x584 + .incbin "baserom.nds", 0x163C7C, 0x118 + .incbin "baserom.nds", 0x163D94, 0x2B8 + .incbin "baserom.nds", 0x16404C, 0x1AC + .incbin "baserom.nds", 0x1641F8, 0x562 + .incbin "baserom.nds", 0x16475C, 0x150 + .incbin "baserom.nds", 0x1648AC, 0x6C + .incbin "baserom.nds", 0x164918, 0x582 + .incbin "baserom.nds", 0x164E9C, 0x90E + .incbin "baserom.nds", 0x1657AC, 0x38 + .incbin "baserom.nds", 0x1657E4, 0x142 + .incbin "baserom.nds", 0x165928, 0x4340 + .incbin "baserom.nds", 0x169C68, 0x65C + .incbin "baserom.nds", 0x16A2C4, 0x608 + .incbin "baserom.nds", 0x16A8CC, 0x182 + .incbin "baserom.nds", 0x16AA50, 0x740 + .incbin "baserom.nds", 0x16B190, 0x1C6 + .incbin "baserom.nds", 0x16B358, 0xAEA + .incbin "baserom.nds", 0x16BE44, 0x66 + .incbin "baserom.nds", 0x16BEAC, 0x146 + .incbin "baserom.nds", 0x16BFF4, 0x38 + .incbin "baserom.nds", 0x16C02C, 0x9FC + .incbin "baserom.nds", 0x16CA28, 0x30E + .incbin "baserom.nds", 0x16CD38, 0x54 + .incbin "baserom.nds", 0x16CD8C, 0x1DC + .incbin "baserom.nds", 0x16CF68, 0xB1A + .incbin "baserom.nds", 0x16DA84, 0x316 + .incbin "baserom.nds", 0x16DD9C, 0x262 + .incbin "baserom.nds", 0x16E000, 0x960 + .incbin "baserom.nds", 0x16E960, 0x624 + .incbin "baserom.nds", 0x16EF84, 0xD6 + .incbin "baserom.nds", 0x16F05C, 0x939C + .incbin "baserom.nds", 0x1783F8, 0x292 + .incbin "baserom.nds", 0x17868C, 0x21C + .incbin "baserom.nds", 0x1788A8, 0x1532 + .incbin "baserom.nds", 0x179DDC, 0x5A8 + .incbin "baserom.nds", 0x17A384, 0x144 + .incbin "baserom.nds", 0x17A4C8, 0x612A + .incbin "baserom.nds", 0x1805F4, 0xE8 + .incbin "baserom.nds", 0x1806DC, 0x1366 + .incbin "baserom.nds", 0x181A44, 0x2902 + .incbin "baserom.nds", 0x184348, 0x2B0 + .incbin "baserom.nds", 0x1845F8, 0xD6 + .incbin "baserom.nds", 0x1846D0, 0x1B58 + .incbin "baserom.nds", 0x186228, 0x2A + .incbin "baserom.nds", 0x186254, 0x972 + .incbin "baserom.nds", 0x186BC8, 0x730 + .incbin "baserom.nds", 0x1872F8, 0x30C + .incbin "baserom.nds", 0x187604, 0x2676 + .incbin "baserom.nds", 0x189C7C, 0x4DE + .incbin "baserom.nds", 0x18A15C, 0x182 + .incbin "baserom.nds", 0x18A2E0, 0x2D6 + .incbin "baserom.nds", 0x18A5B8, 0x176E + .incbin "baserom.nds", 0x18BD28, 0x1BE + .incbin "baserom.nds", 0x18BEE8, 0x2E4 + .incbin "baserom.nds", 0x18C1CC, 0x5E + .incbin "baserom.nds", 0x18C22C, 0x3954 + .incbin "baserom.nds", 0x18FB80, 0x982 + .incbin "baserom.nds", 0x190504, 0x192 + .incbin "baserom.nds", 0x190698, 0x206 + .incbin "baserom.nds", 0x1908A0, 0x1068 + .incbin "baserom.nds", 0x191908, 0x1CC + .incbin "baserom.nds", 0x191AD4, 0x2F8 + .incbin "baserom.nds", 0x191DCC, 0x7DE + .incbin "baserom.nds", 0x1925AC, 0x17E + .incbin "baserom.nds", 0x19272C, 0x4E4 + .incbin "baserom.nds", 0x192C10, 0x946 + .incbin "baserom.nds", 0x193558, 0x16A + .incbin "baserom.nds", 0x1936C4, 0x170 + .incbin "baserom.nds", 0x193834, 0x412 + .incbin "baserom.nds", 0x193C48, 0x1B2 + .incbin "baserom.nds", 0x193DFC, 0x14BC + .incbin "baserom.nds", 0x1952B8, 0x236 + .incbin "baserom.nds", 0x1954F0, 0x6A0 + .incbin "baserom.nds", 0x195B90, 0x1580 + .incbin "baserom.nds", 0x197110, 0x4F2 + .incbin "baserom.nds", 0x197604, 0xCF2 + .incbin "baserom.nds", 0x1982F8, 0x5DA + .incbin "baserom.nds", 0x1988D4, 0x172 + .incbin "baserom.nds", 0x198A48, 0x220 + .incbin "baserom.nds", 0x198C68, 0x92E + .incbin "baserom.nds", 0x199598, 0xA10 + .incbin "baserom.nds", 0x199FA8, 0x170 + .incbin "baserom.nds", 0x19A118, 0x3EC + .incbin "baserom.nds", 0x19A504, 0x6CE + .incbin "baserom.nds", 0x19ABD4, 0x236 + .incbin "baserom.nds", 0x19AE0C, 0x10C + .incbin "baserom.nds", 0x19AF18, 0x4B2 + .incbin "baserom.nds", 0x19B3CC, 0x32 + .incbin "baserom.nds", 0x19B400, 0x23C + .incbin "baserom.nds", 0x19B63C, 0x1318 + .incbin "baserom.nds", 0x19C954, 0x770 + .incbin "baserom.nds", 0x19D0C4, 0x19C + .incbin "baserom.nds", 0x19D260, 0x4A2 + .incbin "baserom.nds", 0x19D704, 0x31C + .incbin "baserom.nds", 0x19DA20, 0x8C + .incbin "baserom.nds", 0x19DAAC, 0x18A + .incbin "baserom.nds", 0x19DC38, 0x76 + .incbin "baserom.nds", 0x19DCB0, 0x24 + .incbin "baserom.nds", 0x19DCD4, 0xDB8 + .incbin "baserom.nds", 0x19EA8C, 0xDB8 + .incbin "baserom.nds", 0x19F844, 0x2C48 + .incbin "baserom.nds", 0x1A248C, 0x12ADA + .incbin "baserom.nds", 0x1B4F68, 0x5D28 + .incbin "baserom.nds", 0x1BAC90, 0x21C + .incbin "baserom.nds", 0x1BAEAC, 0x48772 + .incbin "baserom.nds", 0x203620, 0x4296 + .incbin "baserom.nds", 0x2078B8, 0xA40 + .incbin "baserom.nds", 0x2082F8, 0xBE6 + .incbin "baserom.nds", 0x208EE0, 0xC58 + .incbin "baserom.nds", 0x209B38, 0x36E8 + .incbin "baserom.nds", 0x20D220, 0x1594 + .incbin "baserom.nds", 0x20E7B4, 0x174 + .incbin "baserom.nds", 0x20E928, 0x242 + .incbin "baserom.nds", 0x20EB6C, 0x4536 + .incbin "baserom.nds", 0x2130A4, 0x1B1C + .incbin "baserom.nds", 0x214BC0, 0x26C6 + .incbin "baserom.nds", 0x217288, 0xC0A + .incbin "baserom.nds", 0x217E94, 0x152E + .incbin "baserom.nds", 0x2193C4, 0x6B4 + .incbin "baserom.nds", 0x219A78, 0x55C + .incbin "baserom.nds", 0x219FD4, 0x1EA + .incbin "baserom.nds", 0x21A1C0, 0x3566 + .incbin "baserom.nds", 0x21D728, 0x5EF0 + .incbin "baserom.nds", 0x223618, 0x1932 + .incbin "baserom.nds", 0x224F4C, 0x6E0 + .incbin "baserom.nds", 0x22562C, 0x93E + .incbin "baserom.nds", 0x225F6C, 0xFA2 + .incbin "baserom.nds", 0x226F10, 0xCC8 + .incbin "baserom.nds", 0x227BD8, 0x19E + .incbin "baserom.nds", 0x227D78, 0x60 + .incbin "baserom.nds", 0x227DD8, 0xD7C + .incbin "baserom.nds", 0x228B54, 0x34C + .incbin "baserom.nds", 0x228EA0, 0xA00 + .incbin "baserom.nds", 0x2298A0, 0x15062 + .incbin "baserom.nds", 0x23E904, 0x3362 + .incbin "baserom.nds", 0x241C68, 0x3362 + .incbin "baserom.nds", 0x244FCC, 0x686 + .incbin "baserom.nds", 0x245654, 0x1906 + .incbin "baserom.nds", 0x246F5C, 0x11CA + .incbin "baserom.nds", 0x248128, 0x892 + .incbin "baserom.nds", 0x2489BC, 0x2D4 + .incbin "baserom.nds", 0x248C90, 0xF8 + .incbin "baserom.nds", 0x248D88, 0x320 + .incbin "baserom.nds", 0x2490A8, 0x1E8 + .incbin "baserom.nds", 0x249290, 0x2F6 + .incbin "baserom.nds", 0x249588, 0x23A + .incbin "baserom.nds", 0x2497C4, 0x220 + .incbin "baserom.nds", 0x2499E4, 0xCE + .incbin "baserom.nds", 0x249AB4, 0x2D0 + .incbin "baserom.nds", 0x249D84, 0x1F6 + .incbin "baserom.nds", 0x249F7C, 0x44C + .incbin "baserom.nds", 0x24A3C8, 0x248 + .incbin "baserom.nds", 0x24A610, 0x4EC + .incbin "baserom.nds", 0x24AAFC, 0x246 + .incbin "baserom.nds", 0x24AD44, 0x228 + .incbin "baserom.nds", 0x24AF6C, 0x1C0 + .incbin "baserom.nds", 0x24B12C, 0x2D4 + .incbin "baserom.nds", 0x24B400, 0x57E + .incbin "baserom.nds", 0x24B980, 0x1B80 + .incbin "baserom.nds", 0x24D500, 0x1A66 + .incbin "baserom.nds", 0x24EF68, 0xB9C + .incbin "baserom.nds", 0x24FB04, 0x177C6 + .incbin "baserom.nds", 0x2672CC, 0x178C4 + .incbin "baserom.nds", 0x27EB90, 0x3CE0 + .incbin "baserom.nds", 0x282870, 0x1324 + .incbin "baserom.nds", 0x283B94, 0x3DC4 + .incbin "baserom.nds", 0x287958, 0x2E54 + .incbin "baserom.nds", 0x28A7AC, 0x4E1C + .incbin "baserom.nds", 0x28F5C8, 0xB16 + .incbin "baserom.nds", 0x2900E0, 0xB7C + .balign 4, 255 diff --git a/narc/particledata/particledata.narc.s b/narc/particledata/particledata.narc.s new file mode 100644 index 00000000..b6265139 --- /dev/null +++ b/narc/particledata/particledata.narc.s @@ -0,0 +1,38 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x000085FC ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000003C ; chunk size + .short 6 ; number of files + .balign 4 + .word 0x00000000, 0x000002C8 + .word 0x000002C8, 0x0000078C + .word 0x0000078C, 0x00001F6C + .word 0x00001F6C, 0x000051D4 + .word 0x000051D4, 0x000070A8 + .word 0x000070A8, 0x00008598 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000085A0 ; chunk size + .incbin "baserom.nds", 0x0, 0x2C8 + .incbin "baserom.nds", 0x2C8, 0x4C4 + .incbin "baserom.nds", 0x78C, 0x17E0 + .incbin "baserom.nds", 0x1F6C, 0x3268 + .incbin "baserom.nds", 0x51D4, 0x1ED4 + .incbin "baserom.nds", 0x70A8, 0x14F0 + .balign 4, 255 diff --git a/narc/personal/evo.narc.s b/narc/personal/evo.narc.s new file mode 100644 index 00000000..03e42067 --- /dev/null +++ b/narc/personal/evo.narc.s @@ -0,0 +1,1028 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x000065F8 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000FB4 ; chunk size + .short 501 ; number of files + .balign 4 + .word 0x00000000, 0x0000002C + .word 0x0000002C, 0x00000058 + .word 0x00000058, 0x00000084 + .word 0x00000084, 0x000000B0 + .word 0x000000B0, 0x000000DC + .word 0x000000DC, 0x00000108 + .word 0x00000108, 0x00000134 + .word 0x00000134, 0x00000160 + .word 0x00000160, 0x0000018C + .word 0x0000018C, 0x000001B8 + .word 0x000001B8, 0x000001E4 + .word 0x000001E4, 0x00000210 + .word 0x00000210, 0x0000023C + .word 0x0000023C, 0x00000268 + .word 0x00000268, 0x00000294 + .word 0x00000294, 0x000002C0 + .word 0x000002C0, 0x000002EC + .word 0x000002EC, 0x00000318 + .word 0x00000318, 0x00000344 + .word 0x00000344, 0x00000370 + .word 0x00000370, 0x0000039C + .word 0x0000039C, 0x000003C8 + .word 0x000003C8, 0x000003F4 + .word 0x000003F4, 0x00000420 + .word 0x00000420, 0x0000044C + .word 0x0000044C, 0x00000478 + .word 0x00000478, 0x000004A4 + .word 0x000004A4, 0x000004D0 + .word 0x000004D0, 0x000004FC + .word 0x000004FC, 0x00000528 + .word 0x00000528, 0x00000554 + .word 0x00000554, 0x00000580 + .word 0x00000580, 0x000005AC + .word 0x000005AC, 0x000005D8 + .word 0x000005D8, 0x00000604 + .word 0x00000604, 0x00000630 + .word 0x00000630, 0x0000065C + .word 0x0000065C, 0x00000688 + .word 0x00000688, 0x000006B4 + .word 0x000006B4, 0x000006E0 + .word 0x000006E0, 0x0000070C + .word 0x0000070C, 0x00000738 + .word 0x00000738, 0x00000764 + .word 0x00000764, 0x00000790 + .word 0x00000790, 0x000007BC + .word 0x000007BC, 0x000007E8 + .word 0x000007E8, 0x00000814 + .word 0x00000814, 0x00000840 + .word 0x00000840, 0x0000086C + .word 0x0000086C, 0x00000898 + .word 0x00000898, 0x000008C4 + .word 0x000008C4, 0x000008F0 + .word 0x000008F0, 0x0000091C + .word 0x0000091C, 0x00000948 + .word 0x00000948, 0x00000974 + .word 0x00000974, 0x000009A0 + .word 0x000009A0, 0x000009CC + .word 0x000009CC, 0x000009F8 + .word 0x000009F8, 0x00000A24 + .word 0x00000A24, 0x00000A50 + .word 0x00000A50, 0x00000A7C + .word 0x00000A7C, 0x00000AA8 + .word 0x00000AA8, 0x00000AD4 + .word 0x00000AD4, 0x00000B00 + .word 0x00000B00, 0x00000B2C + .word 0x00000B2C, 0x00000B58 + .word 0x00000B58, 0x00000B84 + .word 0x00000B84, 0x00000BB0 + .word 0x00000BB0, 0x00000BDC + .word 0x00000BDC, 0x00000C08 + .word 0x00000C08, 0x00000C34 + .word 0x00000C34, 0x00000C60 + .word 0x00000C60, 0x00000C8C + .word 0x00000C8C, 0x00000CB8 + .word 0x00000CB8, 0x00000CE4 + .word 0x00000CE4, 0x00000D10 + .word 0x00000D10, 0x00000D3C + .word 0x00000D3C, 0x00000D68 + .word 0x00000D68, 0x00000D94 + .word 0x00000D94, 0x00000DC0 + .word 0x00000DC0, 0x00000DEC + .word 0x00000DEC, 0x00000E18 + .word 0x00000E18, 0x00000E44 + .word 0x00000E44, 0x00000E70 + .word 0x00000E70, 0x00000E9C + .word 0x00000E9C, 0x00000EC8 + .word 0x00000EC8, 0x00000EF4 + .word 0x00000EF4, 0x00000F20 + .word 0x00000F20, 0x00000F4C + .word 0x00000F4C, 0x00000F78 + .word 0x00000F78, 0x00000FA4 + .word 0x00000FA4, 0x00000FD0 + .word 0x00000FD0, 0x00000FFC + .word 0x00000FFC, 0x00001028 + .word 0x00001028, 0x00001054 + .word 0x00001054, 0x00001080 + .word 0x00001080, 0x000010AC + .word 0x000010AC, 0x000010D8 + .word 0x000010D8, 0x00001104 + .word 0x00001104, 0x00001130 + .word 0x00001130, 0x0000115C + .word 0x0000115C, 0x00001188 + .word 0x00001188, 0x000011B4 + .word 0x000011B4, 0x000011E0 + .word 0x000011E0, 0x0000120C + .word 0x0000120C, 0x00001238 + .word 0x00001238, 0x00001264 + .word 0x00001264, 0x00001290 + .word 0x00001290, 0x000012BC + .word 0x000012BC, 0x000012E8 + .word 0x000012E8, 0x00001314 + .word 0x00001314, 0x00001340 + .word 0x00001340, 0x0000136C + .word 0x0000136C, 0x00001398 + .word 0x00001398, 0x000013C4 + .word 0x000013C4, 0x000013F0 + .word 0x000013F0, 0x0000141C + .word 0x0000141C, 0x00001448 + .word 0x00001448, 0x00001474 + .word 0x00001474, 0x000014A0 + .word 0x000014A0, 0x000014CC + .word 0x000014CC, 0x000014F8 + .word 0x000014F8, 0x00001524 + .word 0x00001524, 0x00001550 + .word 0x00001550, 0x0000157C + .word 0x0000157C, 0x000015A8 + .word 0x000015A8, 0x000015D4 + .word 0x000015D4, 0x00001600 + .word 0x00001600, 0x0000162C + .word 0x0000162C, 0x00001658 + .word 0x00001658, 0x00001684 + .word 0x00001684, 0x000016B0 + .word 0x000016B0, 0x000016DC + .word 0x000016DC, 0x00001708 + .word 0x00001708, 0x00001734 + .word 0x00001734, 0x00001760 + .word 0x00001760, 0x0000178C + .word 0x0000178C, 0x000017B8 + .word 0x000017B8, 0x000017E4 + .word 0x000017E4, 0x00001810 + .word 0x00001810, 0x0000183C + .word 0x0000183C, 0x00001868 + .word 0x00001868, 0x00001894 + .word 0x00001894, 0x000018C0 + .word 0x000018C0, 0x000018EC + .word 0x000018EC, 0x00001918 + .word 0x00001918, 0x00001944 + .word 0x00001944, 0x00001970 + .word 0x00001970, 0x0000199C + .word 0x0000199C, 0x000019C8 + .word 0x000019C8, 0x000019F4 + .word 0x000019F4, 0x00001A20 + .word 0x00001A20, 0x00001A4C + .word 0x00001A4C, 0x00001A78 + .word 0x00001A78, 0x00001AA4 + .word 0x00001AA4, 0x00001AD0 + .word 0x00001AD0, 0x00001AFC + .word 0x00001AFC, 0x00001B28 + .word 0x00001B28, 0x00001B54 + .word 0x00001B54, 0x00001B80 + .word 0x00001B80, 0x00001BAC + .word 0x00001BAC, 0x00001BD8 + .word 0x00001BD8, 0x00001C04 + .word 0x00001C04, 0x00001C30 + .word 0x00001C30, 0x00001C5C + .word 0x00001C5C, 0x00001C88 + .word 0x00001C88, 0x00001CB4 + .word 0x00001CB4, 0x00001CE0 + .word 0x00001CE0, 0x00001D0C + .word 0x00001D0C, 0x00001D38 + .word 0x00001D38, 0x00001D64 + .word 0x00001D64, 0x00001D90 + .word 0x00001D90, 0x00001DBC + .word 0x00001DBC, 0x00001DE8 + .word 0x00001DE8, 0x00001E14 + .word 0x00001E14, 0x00001E40 + .word 0x00001E40, 0x00001E6C + .word 0x00001E6C, 0x00001E98 + .word 0x00001E98, 0x00001EC4 + .word 0x00001EC4, 0x00001EF0 + .word 0x00001EF0, 0x00001F1C + .word 0x00001F1C, 0x00001F48 + .word 0x00001F48, 0x00001F74 + .word 0x00001F74, 0x00001FA0 + .word 0x00001FA0, 0x00001FCC + .word 0x00001FCC, 0x00001FF8 + .word 0x00001FF8, 0x00002024 + .word 0x00002024, 0x00002050 + .word 0x00002050, 0x0000207C + .word 0x0000207C, 0x000020A8 + .word 0x000020A8, 0x000020D4 + .word 0x000020D4, 0x00002100 + .word 0x00002100, 0x0000212C + .word 0x0000212C, 0x00002158 + .word 0x00002158, 0x00002184 + .word 0x00002184, 0x000021B0 + .word 0x000021B0, 0x000021DC + .word 0x000021DC, 0x00002208 + .word 0x00002208, 0x00002234 + .word 0x00002234, 0x00002260 + .word 0x00002260, 0x0000228C + .word 0x0000228C, 0x000022B8 + .word 0x000022B8, 0x000022E4 + .word 0x000022E4, 0x00002310 + .word 0x00002310, 0x0000233C + .word 0x0000233C, 0x00002368 + .word 0x00002368, 0x00002394 + .word 0x00002394, 0x000023C0 + .word 0x000023C0, 0x000023EC + .word 0x000023EC, 0x00002418 + .word 0x00002418, 0x00002444 + .word 0x00002444, 0x00002470 + .word 0x00002470, 0x0000249C + .word 0x0000249C, 0x000024C8 + .word 0x000024C8, 0x000024F4 + .word 0x000024F4, 0x00002520 + .word 0x00002520, 0x0000254C + .word 0x0000254C, 0x00002578 + .word 0x00002578, 0x000025A4 + .word 0x000025A4, 0x000025D0 + .word 0x000025D0, 0x000025FC + .word 0x000025FC, 0x00002628 + .word 0x00002628, 0x00002654 + .word 0x00002654, 0x00002680 + .word 0x00002680, 0x000026AC + .word 0x000026AC, 0x000026D8 + .word 0x000026D8, 0x00002704 + .word 0x00002704, 0x00002730 + .word 0x00002730, 0x0000275C + .word 0x0000275C, 0x00002788 + .word 0x00002788, 0x000027B4 + .word 0x000027B4, 0x000027E0 + .word 0x000027E0, 0x0000280C + .word 0x0000280C, 0x00002838 + .word 0x00002838, 0x00002864 + .word 0x00002864, 0x00002890 + .word 0x00002890, 0x000028BC + .word 0x000028BC, 0x000028E8 + .word 0x000028E8, 0x00002914 + .word 0x00002914, 0x00002940 + .word 0x00002940, 0x0000296C + .word 0x0000296C, 0x00002998 + .word 0x00002998, 0x000029C4 + .word 0x000029C4, 0x000029F0 + .word 0x000029F0, 0x00002A1C + .word 0x00002A1C, 0x00002A48 + .word 0x00002A48, 0x00002A74 + .word 0x00002A74, 0x00002AA0 + .word 0x00002AA0, 0x00002ACC + .word 0x00002ACC, 0x00002AF8 + .word 0x00002AF8, 0x00002B24 + .word 0x00002B24, 0x00002B50 + .word 0x00002B50, 0x00002B7C + .word 0x00002B7C, 0x00002BA8 + .word 0x00002BA8, 0x00002BD4 + .word 0x00002BD4, 0x00002C00 + .word 0x00002C00, 0x00002C2C + .word 0x00002C2C, 0x00002C58 + .word 0x00002C58, 0x00002C84 + .word 0x00002C84, 0x00002CB0 + .word 0x00002CB0, 0x00002CDC + .word 0x00002CDC, 0x00002D08 + .word 0x00002D08, 0x00002D34 + .word 0x00002D34, 0x00002D60 + .word 0x00002D60, 0x00002D8C + .word 0x00002D8C, 0x00002DB8 + .word 0x00002DB8, 0x00002DE4 + .word 0x00002DE4, 0x00002E10 + .word 0x00002E10, 0x00002E3C + .word 0x00002E3C, 0x00002E68 + .word 0x00002E68, 0x00002E94 + .word 0x00002E94, 0x00002EC0 + .word 0x00002EC0, 0x00002EEC + .word 0x00002EEC, 0x00002F18 + .word 0x00002F18, 0x00002F44 + .word 0x00002F44, 0x00002F70 + .word 0x00002F70, 0x00002F9C + .word 0x00002F9C, 0x00002FC8 + .word 0x00002FC8, 0x00002FF4 + .word 0x00002FF4, 0x00003020 + .word 0x00003020, 0x0000304C + .word 0x0000304C, 0x00003078 + .word 0x00003078, 0x000030A4 + .word 0x000030A4, 0x000030D0 + .word 0x000030D0, 0x000030FC + .word 0x000030FC, 0x00003128 + .word 0x00003128, 0x00003154 + .word 0x00003154, 0x00003180 + .word 0x00003180, 0x000031AC + .word 0x000031AC, 0x000031D8 + .word 0x000031D8, 0x00003204 + .word 0x00003204, 0x00003230 + .word 0x00003230, 0x0000325C + .word 0x0000325C, 0x00003288 + .word 0x00003288, 0x000032B4 + .word 0x000032B4, 0x000032E0 + .word 0x000032E0, 0x0000330C + .word 0x0000330C, 0x00003338 + .word 0x00003338, 0x00003364 + .word 0x00003364, 0x00003390 + .word 0x00003390, 0x000033BC + .word 0x000033BC, 0x000033E8 + .word 0x000033E8, 0x00003414 + .word 0x00003414, 0x00003440 + .word 0x00003440, 0x0000346C + .word 0x0000346C, 0x00003498 + .word 0x00003498, 0x000034C4 + .word 0x000034C4, 0x000034F0 + .word 0x000034F0, 0x0000351C + .word 0x0000351C, 0x00003548 + .word 0x00003548, 0x00003574 + .word 0x00003574, 0x000035A0 + .word 0x000035A0, 0x000035CC + .word 0x000035CC, 0x000035F8 + .word 0x000035F8, 0x00003624 + .word 0x00003624, 0x00003650 + .word 0x00003650, 0x0000367C + .word 0x0000367C, 0x000036A8 + .word 0x000036A8, 0x000036D4 + .word 0x000036D4, 0x00003700 + .word 0x00003700, 0x0000372C + .word 0x0000372C, 0x00003758 + .word 0x00003758, 0x00003784 + .word 0x00003784, 0x000037B0 + .word 0x000037B0, 0x000037DC + .word 0x000037DC, 0x00003808 + .word 0x00003808, 0x00003834 + .word 0x00003834, 0x00003860 + .word 0x00003860, 0x0000388C + .word 0x0000388C, 0x000038B8 + .word 0x000038B8, 0x000038E4 + .word 0x000038E4, 0x00003910 + .word 0x00003910, 0x0000393C + .word 0x0000393C, 0x00003968 + .word 0x00003968, 0x00003994 + .word 0x00003994, 0x000039C0 + .word 0x000039C0, 0x000039EC + .word 0x000039EC, 0x00003A18 + .word 0x00003A18, 0x00003A44 + .word 0x00003A44, 0x00003A70 + .word 0x00003A70, 0x00003A9C + .word 0x00003A9C, 0x00003AC8 + .word 0x00003AC8, 0x00003AF4 + .word 0x00003AF4, 0x00003B20 + .word 0x00003B20, 0x00003B4C + .word 0x00003B4C, 0x00003B78 + .word 0x00003B78, 0x00003BA4 + .word 0x00003BA4, 0x00003BD0 + .word 0x00003BD0, 0x00003BFC + .word 0x00003BFC, 0x00003C28 + .word 0x00003C28, 0x00003C54 + .word 0x00003C54, 0x00003C80 + .word 0x00003C80, 0x00003CAC + .word 0x00003CAC, 0x00003CD8 + .word 0x00003CD8, 0x00003D04 + .word 0x00003D04, 0x00003D30 + .word 0x00003D30, 0x00003D5C + .word 0x00003D5C, 0x00003D88 + .word 0x00003D88, 0x00003DB4 + .word 0x00003DB4, 0x00003DE0 + .word 0x00003DE0, 0x00003E0C + .word 0x00003E0C, 0x00003E38 + .word 0x00003E38, 0x00003E64 + .word 0x00003E64, 0x00003E90 + .word 0x00003E90, 0x00003EBC + .word 0x00003EBC, 0x00003EE8 + .word 0x00003EE8, 0x00003F14 + .word 0x00003F14, 0x00003F40 + .word 0x00003F40, 0x00003F6C + .word 0x00003F6C, 0x00003F98 + .word 0x00003F98, 0x00003FC4 + .word 0x00003FC4, 0x00003FF0 + .word 0x00003FF0, 0x0000401C + .word 0x0000401C, 0x00004048 + .word 0x00004048, 0x00004074 + .word 0x00004074, 0x000040A0 + .word 0x000040A0, 0x000040CC + .word 0x000040CC, 0x000040F8 + .word 0x000040F8, 0x00004124 + .word 0x00004124, 0x00004150 + .word 0x00004150, 0x0000417C + .word 0x0000417C, 0x000041A8 + .word 0x000041A8, 0x000041D4 + .word 0x000041D4, 0x00004200 + .word 0x00004200, 0x0000422C + .word 0x0000422C, 0x00004258 + .word 0x00004258, 0x00004284 + .word 0x00004284, 0x000042B0 + .word 0x000042B0, 0x000042DC + .word 0x000042DC, 0x00004308 + .word 0x00004308, 0x00004334 + .word 0x00004334, 0x00004360 + .word 0x00004360, 0x0000438C + .word 0x0000438C, 0x000043B8 + .word 0x000043B8, 0x000043E4 + .word 0x000043E4, 0x00004410 + .word 0x00004410, 0x0000443C + .word 0x0000443C, 0x00004468 + .word 0x00004468, 0x00004494 + .word 0x00004494, 0x000044C0 + .word 0x000044C0, 0x000044EC + .word 0x000044EC, 0x00004518 + .word 0x00004518, 0x00004544 + .word 0x00004544, 0x00004570 + .word 0x00004570, 0x0000459C + .word 0x0000459C, 0x000045C8 + .word 0x000045C8, 0x000045F4 + .word 0x000045F4, 0x00004620 + .word 0x00004620, 0x0000464C + .word 0x0000464C, 0x00004678 + .word 0x00004678, 0x000046A4 + .word 0x000046A4, 0x000046D0 + .word 0x000046D0, 0x000046FC + .word 0x000046FC, 0x00004728 + .word 0x00004728, 0x00004754 + .word 0x00004754, 0x00004780 + .word 0x00004780, 0x000047AC + .word 0x000047AC, 0x000047D8 + .word 0x000047D8, 0x00004804 + .word 0x00004804, 0x00004830 + .word 0x00004830, 0x0000485C + .word 0x0000485C, 0x00004888 + .word 0x00004888, 0x000048B4 + .word 0x000048B4, 0x000048E0 + .word 0x000048E0, 0x0000490C + .word 0x0000490C, 0x00004938 + .word 0x00004938, 0x00004964 + .word 0x00004964, 0x00004990 + .word 0x00004990, 0x000049BC + .word 0x000049BC, 0x000049E8 + .word 0x000049E8, 0x00004A14 + .word 0x00004A14, 0x00004A40 + .word 0x00004A40, 0x00004A6C + .word 0x00004A6C, 0x00004A98 + .word 0x00004A98, 0x00004AC4 + .word 0x00004AC4, 0x00004AF0 + .word 0x00004AF0, 0x00004B1C + .word 0x00004B1C, 0x00004B48 + .word 0x00004B48, 0x00004B74 + .word 0x00004B74, 0x00004BA0 + .word 0x00004BA0, 0x00004BCC + .word 0x00004BCC, 0x00004BF8 + .word 0x00004BF8, 0x00004C24 + .word 0x00004C24, 0x00004C50 + .word 0x00004C50, 0x00004C7C + .word 0x00004C7C, 0x00004CA8 + .word 0x00004CA8, 0x00004CD4 + .word 0x00004CD4, 0x00004D00 + .word 0x00004D00, 0x00004D2C + .word 0x00004D2C, 0x00004D58 + .word 0x00004D58, 0x00004D84 + .word 0x00004D84, 0x00004DB0 + .word 0x00004DB0, 0x00004DDC + .word 0x00004DDC, 0x00004E08 + .word 0x00004E08, 0x00004E34 + .word 0x00004E34, 0x00004E60 + .word 0x00004E60, 0x00004E8C + .word 0x00004E8C, 0x00004EB8 + .word 0x00004EB8, 0x00004EE4 + .word 0x00004EE4, 0x00004F10 + .word 0x00004F10, 0x00004F3C + .word 0x00004F3C, 0x00004F68 + .word 0x00004F68, 0x00004F94 + .word 0x00004F94, 0x00004FC0 + .word 0x00004FC0, 0x00004FEC + .word 0x00004FEC, 0x00005018 + .word 0x00005018, 0x00005044 + .word 0x00005044, 0x00005070 + .word 0x00005070, 0x0000509C + .word 0x0000509C, 0x000050C8 + .word 0x000050C8, 0x000050F4 + .word 0x000050F4, 0x00005120 + .word 0x00005120, 0x0000514C + .word 0x0000514C, 0x00005178 + .word 0x00005178, 0x000051A4 + .word 0x000051A4, 0x000051D0 + .word 0x000051D0, 0x000051FC + .word 0x000051FC, 0x00005228 + .word 0x00005228, 0x00005254 + .word 0x00005254, 0x00005280 + .word 0x00005280, 0x000052AC + .word 0x000052AC, 0x000052D8 + .word 0x000052D8, 0x00005304 + .word 0x00005304, 0x00005330 + .word 0x00005330, 0x0000535C + .word 0x0000535C, 0x00005388 + .word 0x00005388, 0x000053B4 + .word 0x000053B4, 0x000053E0 + .word 0x000053E0, 0x0000540C + .word 0x0000540C, 0x00005438 + .word 0x00005438, 0x00005464 + .word 0x00005464, 0x00005490 + .word 0x00005490, 0x000054BC + .word 0x000054BC, 0x000054E8 + .word 0x000054E8, 0x00005514 + .word 0x00005514, 0x00005540 + .word 0x00005540, 0x0000556C + .word 0x0000556C, 0x00005598 + .word 0x00005598, 0x000055C4 + .word 0x000055C4, 0x000055F0 + .word 0x000055F0, 0x0000561C + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00005624 ; chunk size + .incbin "baserom.nds", 0x0, 0x2C + .incbin "baserom.nds", 0x2C, 0x2C + .incbin "baserom.nds", 0x58, 0x2C + .incbin "baserom.nds", 0x84, 0x2C + .incbin "baserom.nds", 0xB0, 0x2C + .incbin "baserom.nds", 0xDC, 0x2C + .incbin "baserom.nds", 0x108, 0x2C + .incbin "baserom.nds", 0x134, 0x2C + .incbin "baserom.nds", 0x160, 0x2C + .incbin "baserom.nds", 0x18C, 0x2C + .incbin "baserom.nds", 0x1B8, 0x2C + .incbin "baserom.nds", 0x1E4, 0x2C + .incbin "baserom.nds", 0x210, 0x2C + .incbin "baserom.nds", 0x23C, 0x2C + .incbin "baserom.nds", 0x268, 0x2C + .incbin "baserom.nds", 0x294, 0x2C + .incbin "baserom.nds", 0x2C0, 0x2C + .incbin "baserom.nds", 0x2EC, 0x2C + .incbin "baserom.nds", 0x318, 0x2C + .incbin "baserom.nds", 0x344, 0x2C + .incbin "baserom.nds", 0x370, 0x2C + .incbin "baserom.nds", 0x39C, 0x2C + .incbin "baserom.nds", 0x3C8, 0x2C + .incbin "baserom.nds", 0x3F4, 0x2C + .incbin "baserom.nds", 0x420, 0x2C + .incbin "baserom.nds", 0x44C, 0x2C + .incbin "baserom.nds", 0x478, 0x2C + .incbin "baserom.nds", 0x4A4, 0x2C + .incbin "baserom.nds", 0x4D0, 0x2C + .incbin "baserom.nds", 0x4FC, 0x2C + .incbin "baserom.nds", 0x528, 0x2C + .incbin "baserom.nds", 0x554, 0x2C + .incbin "baserom.nds", 0x580, 0x2C + .incbin "baserom.nds", 0x5AC, 0x2C + .incbin "baserom.nds", 0x5D8, 0x2C + .incbin "baserom.nds", 0x604, 0x2C + .incbin "baserom.nds", 0x630, 0x2C + .incbin "baserom.nds", 0x65C, 0x2C + .incbin "baserom.nds", 0x688, 0x2C + .incbin "baserom.nds", 0x6B4, 0x2C + .incbin "baserom.nds", 0x6E0, 0x2C + .incbin "baserom.nds", 0x70C, 0x2C + .incbin "baserom.nds", 0x738, 0x2C + .incbin "baserom.nds", 0x764, 0x2C + .incbin "baserom.nds", 0x790, 0x2C + .incbin "baserom.nds", 0x7BC, 0x2C + .incbin "baserom.nds", 0x7E8, 0x2C + .incbin "baserom.nds", 0x814, 0x2C + .incbin "baserom.nds", 0x840, 0x2C + .incbin "baserom.nds", 0x86C, 0x2C + .incbin "baserom.nds", 0x898, 0x2C + .incbin "baserom.nds", 0x8C4, 0x2C + .incbin "baserom.nds", 0x8F0, 0x2C + .incbin "baserom.nds", 0x91C, 0x2C + .incbin "baserom.nds", 0x948, 0x2C + .incbin "baserom.nds", 0x974, 0x2C + .incbin "baserom.nds", 0x9A0, 0x2C + .incbin "baserom.nds", 0x9CC, 0x2C + .incbin "baserom.nds", 0x9F8, 0x2C + .incbin "baserom.nds", 0xA24, 0x2C + .incbin "baserom.nds", 0xA50, 0x2C + .incbin "baserom.nds", 0xA7C, 0x2C + .incbin "baserom.nds", 0xAA8, 0x2C + .incbin "baserom.nds", 0xAD4, 0x2C + .incbin "baserom.nds", 0xB00, 0x2C + .incbin "baserom.nds", 0xB2C, 0x2C + .incbin "baserom.nds", 0xB58, 0x2C + .incbin "baserom.nds", 0xB84, 0x2C + .incbin "baserom.nds", 0xBB0, 0x2C + .incbin "baserom.nds", 0xBDC, 0x2C + .incbin "baserom.nds", 0xC08, 0x2C + .incbin "baserom.nds", 0xC34, 0x2C + .incbin "baserom.nds", 0xC60, 0x2C + .incbin "baserom.nds", 0xC8C, 0x2C + .incbin "baserom.nds", 0xCB8, 0x2C + .incbin "baserom.nds", 0xCE4, 0x2C + .incbin "baserom.nds", 0xD10, 0x2C + .incbin "baserom.nds", 0xD3C, 0x2C + .incbin "baserom.nds", 0xD68, 0x2C + .incbin "baserom.nds", 0xD94, 0x2C + .incbin "baserom.nds", 0xDC0, 0x2C + .incbin "baserom.nds", 0xDEC, 0x2C + .incbin "baserom.nds", 0xE18, 0x2C + .incbin "baserom.nds", 0xE44, 0x2C + .incbin "baserom.nds", 0xE70, 0x2C + .incbin "baserom.nds", 0xE9C, 0x2C + .incbin "baserom.nds", 0xEC8, 0x2C + .incbin "baserom.nds", 0xEF4, 0x2C + .incbin "baserom.nds", 0xF20, 0x2C + .incbin "baserom.nds", 0xF4C, 0x2C + .incbin "baserom.nds", 0xF78, 0x2C + .incbin "baserom.nds", 0xFA4, 0x2C + .incbin "baserom.nds", 0xFD0, 0x2C + .incbin "baserom.nds", 0xFFC, 0x2C + .incbin "baserom.nds", 0x1028, 0x2C + .incbin "baserom.nds", 0x1054, 0x2C + .incbin "baserom.nds", 0x1080, 0x2C + .incbin "baserom.nds", 0x10AC, 0x2C + .incbin "baserom.nds", 0x10D8, 0x2C + .incbin "baserom.nds", 0x1104, 0x2C + .incbin "baserom.nds", 0x1130, 0x2C + .incbin "baserom.nds", 0x115C, 0x2C + .incbin "baserom.nds", 0x1188, 0x2C + .incbin "baserom.nds", 0x11B4, 0x2C + .incbin "baserom.nds", 0x11E0, 0x2C + .incbin "baserom.nds", 0x120C, 0x2C + .incbin "baserom.nds", 0x1238, 0x2C + .incbin "baserom.nds", 0x1264, 0x2C + .incbin "baserom.nds", 0x1290, 0x2C + .incbin "baserom.nds", 0x12BC, 0x2C + .incbin "baserom.nds", 0x12E8, 0x2C + .incbin "baserom.nds", 0x1314, 0x2C + .incbin "baserom.nds", 0x1340, 0x2C + .incbin "baserom.nds", 0x136C, 0x2C + .incbin "baserom.nds", 0x1398, 0x2C + .incbin "baserom.nds", 0x13C4, 0x2C + .incbin "baserom.nds", 0x13F0, 0x2C + .incbin "baserom.nds", 0x141C, 0x2C + .incbin "baserom.nds", 0x1448, 0x2C + .incbin "baserom.nds", 0x1474, 0x2C + .incbin "baserom.nds", 0x14A0, 0x2C + .incbin "baserom.nds", 0x14CC, 0x2C + .incbin "baserom.nds", 0x14F8, 0x2C + .incbin "baserom.nds", 0x1524, 0x2C + .incbin "baserom.nds", 0x1550, 0x2C + .incbin "baserom.nds", 0x157C, 0x2C + .incbin "baserom.nds", 0x15A8, 0x2C + .incbin "baserom.nds", 0x15D4, 0x2C + .incbin "baserom.nds", 0x1600, 0x2C + .incbin "baserom.nds", 0x162C, 0x2C + .incbin "baserom.nds", 0x1658, 0x2C + .incbin "baserom.nds", 0x1684, 0x2C + .incbin "baserom.nds", 0x16B0, 0x2C + .incbin "baserom.nds", 0x16DC, 0x2C + .incbin "baserom.nds", 0x1708, 0x2C + .incbin "baserom.nds", 0x1734, 0x2C + .incbin "baserom.nds", 0x1760, 0x2C + .incbin "baserom.nds", 0x178C, 0x2C + .incbin "baserom.nds", 0x17B8, 0x2C + .incbin "baserom.nds", 0x17E4, 0x2C + .incbin "baserom.nds", 0x1810, 0x2C + .incbin "baserom.nds", 0x183C, 0x2C + .incbin "baserom.nds", 0x1868, 0x2C + .incbin "baserom.nds", 0x1894, 0x2C + .incbin "baserom.nds", 0x18C0, 0x2C + .incbin "baserom.nds", 0x18EC, 0x2C + .incbin "baserom.nds", 0x1918, 0x2C + .incbin "baserom.nds", 0x1944, 0x2C + .incbin "baserom.nds", 0x1970, 0x2C + .incbin "baserom.nds", 0x199C, 0x2C + .incbin "baserom.nds", 0x19C8, 0x2C + .incbin "baserom.nds", 0x19F4, 0x2C + .incbin "baserom.nds", 0x1A20, 0x2C + .incbin "baserom.nds", 0x1A4C, 0x2C + .incbin "baserom.nds", 0x1A78, 0x2C + .incbin "baserom.nds", 0x1AA4, 0x2C + .incbin "baserom.nds", 0x1AD0, 0x2C + .incbin "baserom.nds", 0x1AFC, 0x2C + .incbin "baserom.nds", 0x1B28, 0x2C + .incbin "baserom.nds", 0x1B54, 0x2C + .incbin "baserom.nds", 0x1B80, 0x2C + .incbin "baserom.nds", 0x1BAC, 0x2C + .incbin "baserom.nds", 0x1BD8, 0x2C + .incbin "baserom.nds", 0x1C04, 0x2C + .incbin "baserom.nds", 0x1C30, 0x2C + .incbin "baserom.nds", 0x1C5C, 0x2C + .incbin "baserom.nds", 0x1C88, 0x2C + .incbin "baserom.nds", 0x1CB4, 0x2C + .incbin "baserom.nds", 0x1CE0, 0x2C + .incbin "baserom.nds", 0x1D0C, 0x2C + .incbin "baserom.nds", 0x1D38, 0x2C + .incbin "baserom.nds", 0x1D64, 0x2C + .incbin "baserom.nds", 0x1D90, 0x2C + .incbin "baserom.nds", 0x1DBC, 0x2C + .incbin "baserom.nds", 0x1DE8, 0x2C + .incbin "baserom.nds", 0x1E14, 0x2C + .incbin "baserom.nds", 0x1E40, 0x2C + .incbin "baserom.nds", 0x1E6C, 0x2C + .incbin "baserom.nds", 0x1E98, 0x2C + .incbin "baserom.nds", 0x1EC4, 0x2C + .incbin "baserom.nds", 0x1EF0, 0x2C + .incbin "baserom.nds", 0x1F1C, 0x2C + .incbin "baserom.nds", 0x1F48, 0x2C + .incbin "baserom.nds", 0x1F74, 0x2C + .incbin "baserom.nds", 0x1FA0, 0x2C + .incbin "baserom.nds", 0x1FCC, 0x2C + .incbin "baserom.nds", 0x1FF8, 0x2C + .incbin "baserom.nds", 0x2024, 0x2C + .incbin "baserom.nds", 0x2050, 0x2C + .incbin "baserom.nds", 0x207C, 0x2C + .incbin "baserom.nds", 0x20A8, 0x2C + .incbin "baserom.nds", 0x20D4, 0x2C + .incbin "baserom.nds", 0x2100, 0x2C + .incbin "baserom.nds", 0x212C, 0x2C + .incbin "baserom.nds", 0x2158, 0x2C + .incbin "baserom.nds", 0x2184, 0x2C + .incbin "baserom.nds", 0x21B0, 0x2C + .incbin "baserom.nds", 0x21DC, 0x2C + .incbin "baserom.nds", 0x2208, 0x2C + .incbin "baserom.nds", 0x2234, 0x2C + .incbin "baserom.nds", 0x2260, 0x2C + .incbin "baserom.nds", 0x228C, 0x2C + .incbin "baserom.nds", 0x22B8, 0x2C + .incbin "baserom.nds", 0x22E4, 0x2C + .incbin "baserom.nds", 0x2310, 0x2C + .incbin "baserom.nds", 0x233C, 0x2C + .incbin "baserom.nds", 0x2368, 0x2C + .incbin "baserom.nds", 0x2394, 0x2C + .incbin "baserom.nds", 0x23C0, 0x2C + .incbin "baserom.nds", 0x23EC, 0x2C + .incbin "baserom.nds", 0x2418, 0x2C + .incbin "baserom.nds", 0x2444, 0x2C + .incbin "baserom.nds", 0x2470, 0x2C + .incbin "baserom.nds", 0x249C, 0x2C + .incbin "baserom.nds", 0x24C8, 0x2C + .incbin "baserom.nds", 0x24F4, 0x2C + .incbin "baserom.nds", 0x2520, 0x2C + .incbin "baserom.nds", 0x254C, 0x2C + .incbin "baserom.nds", 0x2578, 0x2C + .incbin "baserom.nds", 0x25A4, 0x2C + .incbin "baserom.nds", 0x25D0, 0x2C + .incbin "baserom.nds", 0x25FC, 0x2C + .incbin "baserom.nds", 0x2628, 0x2C + .incbin "baserom.nds", 0x2654, 0x2C + .incbin "baserom.nds", 0x2680, 0x2C + .incbin "baserom.nds", 0x26AC, 0x2C + .incbin "baserom.nds", 0x26D8, 0x2C + .incbin "baserom.nds", 0x2704, 0x2C + .incbin "baserom.nds", 0x2730, 0x2C + .incbin "baserom.nds", 0x275C, 0x2C + .incbin "baserom.nds", 0x2788, 0x2C + .incbin "baserom.nds", 0x27B4, 0x2C + .incbin "baserom.nds", 0x27E0, 0x2C + .incbin "baserom.nds", 0x280C, 0x2C + .incbin "baserom.nds", 0x2838, 0x2C + .incbin "baserom.nds", 0x2864, 0x2C + .incbin "baserom.nds", 0x2890, 0x2C + .incbin "baserom.nds", 0x28BC, 0x2C + .incbin "baserom.nds", 0x28E8, 0x2C + .incbin "baserom.nds", 0x2914, 0x2C + .incbin "baserom.nds", 0x2940, 0x2C + .incbin "baserom.nds", 0x296C, 0x2C + .incbin "baserom.nds", 0x2998, 0x2C + .incbin "baserom.nds", 0x29C4, 0x2C + .incbin "baserom.nds", 0x29F0, 0x2C + .incbin "baserom.nds", 0x2A1C, 0x2C + .incbin "baserom.nds", 0x2A48, 0x2C + .incbin "baserom.nds", 0x2A74, 0x2C + .incbin "baserom.nds", 0x2AA0, 0x2C + .incbin "baserom.nds", 0x2ACC, 0x2C + .incbin "baserom.nds", 0x2AF8, 0x2C + .incbin "baserom.nds", 0x2B24, 0x2C + .incbin "baserom.nds", 0x2B50, 0x2C + .incbin "baserom.nds", 0x2B7C, 0x2C + .incbin "baserom.nds", 0x2BA8, 0x2C + .incbin "baserom.nds", 0x2BD4, 0x2C + .incbin "baserom.nds", 0x2C00, 0x2C + .incbin "baserom.nds", 0x2C2C, 0x2C + .incbin "baserom.nds", 0x2C58, 0x2C + .incbin "baserom.nds", 0x2C84, 0x2C + .incbin "baserom.nds", 0x2CB0, 0x2C + .incbin "baserom.nds", 0x2CDC, 0x2C + .incbin "baserom.nds", 0x2D08, 0x2C + .incbin "baserom.nds", 0x2D34, 0x2C + .incbin "baserom.nds", 0x2D60, 0x2C + .incbin "baserom.nds", 0x2D8C, 0x2C + .incbin "baserom.nds", 0x2DB8, 0x2C + .incbin "baserom.nds", 0x2DE4, 0x2C + .incbin "baserom.nds", 0x2E10, 0x2C + .incbin "baserom.nds", 0x2E3C, 0x2C + .incbin "baserom.nds", 0x2E68, 0x2C + .incbin "baserom.nds", 0x2E94, 0x2C + .incbin "baserom.nds", 0x2EC0, 0x2C + .incbin "baserom.nds", 0x2EEC, 0x2C + .incbin "baserom.nds", 0x2F18, 0x2C + .incbin "baserom.nds", 0x2F44, 0x2C + .incbin "baserom.nds", 0x2F70, 0x2C + .incbin "baserom.nds", 0x2F9C, 0x2C + .incbin "baserom.nds", 0x2FC8, 0x2C + .incbin "baserom.nds", 0x2FF4, 0x2C + .incbin "baserom.nds", 0x3020, 0x2C + .incbin "baserom.nds", 0x304C, 0x2C + .incbin "baserom.nds", 0x3078, 0x2C + .incbin "baserom.nds", 0x30A4, 0x2C + .incbin "baserom.nds", 0x30D0, 0x2C + .incbin "baserom.nds", 0x30FC, 0x2C + .incbin "baserom.nds", 0x3128, 0x2C + .incbin "baserom.nds", 0x3154, 0x2C + .incbin "baserom.nds", 0x3180, 0x2C + .incbin "baserom.nds", 0x31AC, 0x2C + .incbin "baserom.nds", 0x31D8, 0x2C + .incbin "baserom.nds", 0x3204, 0x2C + .incbin "baserom.nds", 0x3230, 0x2C + .incbin "baserom.nds", 0x325C, 0x2C + .incbin "baserom.nds", 0x3288, 0x2C + .incbin "baserom.nds", 0x32B4, 0x2C + .incbin "baserom.nds", 0x32E0, 0x2C + .incbin "baserom.nds", 0x330C, 0x2C + .incbin "baserom.nds", 0x3338, 0x2C + .incbin "baserom.nds", 0x3364, 0x2C + .incbin "baserom.nds", 0x3390, 0x2C + .incbin "baserom.nds", 0x33BC, 0x2C + .incbin "baserom.nds", 0x33E8, 0x2C + .incbin "baserom.nds", 0x3414, 0x2C + .incbin "baserom.nds", 0x3440, 0x2C + .incbin "baserom.nds", 0x346C, 0x2C + .incbin "baserom.nds", 0x3498, 0x2C + .incbin "baserom.nds", 0x34C4, 0x2C + .incbin "baserom.nds", 0x34F0, 0x2C + .incbin "baserom.nds", 0x351C, 0x2C + .incbin "baserom.nds", 0x3548, 0x2C + .incbin "baserom.nds", 0x3574, 0x2C + .incbin "baserom.nds", 0x35A0, 0x2C + .incbin "baserom.nds", 0x35CC, 0x2C + .incbin "baserom.nds", 0x35F8, 0x2C + .incbin "baserom.nds", 0x3624, 0x2C + .incbin "baserom.nds", 0x3650, 0x2C + .incbin "baserom.nds", 0x367C, 0x2C + .incbin "baserom.nds", 0x36A8, 0x2C + .incbin "baserom.nds", 0x36D4, 0x2C + .incbin "baserom.nds", 0x3700, 0x2C + .incbin "baserom.nds", 0x372C, 0x2C + .incbin "baserom.nds", 0x3758, 0x2C + .incbin "baserom.nds", 0x3784, 0x2C + .incbin "baserom.nds", 0x37B0, 0x2C + .incbin "baserom.nds", 0x37DC, 0x2C + .incbin "baserom.nds", 0x3808, 0x2C + .incbin "baserom.nds", 0x3834, 0x2C + .incbin "baserom.nds", 0x3860, 0x2C + .incbin "baserom.nds", 0x388C, 0x2C + .incbin "baserom.nds", 0x38B8, 0x2C + .incbin "baserom.nds", 0x38E4, 0x2C + .incbin "baserom.nds", 0x3910, 0x2C + .incbin "baserom.nds", 0x393C, 0x2C + .incbin "baserom.nds", 0x3968, 0x2C + .incbin "baserom.nds", 0x3994, 0x2C + .incbin "baserom.nds", 0x39C0, 0x2C + .incbin "baserom.nds", 0x39EC, 0x2C + .incbin "baserom.nds", 0x3A18, 0x2C + .incbin "baserom.nds", 0x3A44, 0x2C + .incbin "baserom.nds", 0x3A70, 0x2C + .incbin "baserom.nds", 0x3A9C, 0x2C + .incbin "baserom.nds", 0x3AC8, 0x2C + .incbin "baserom.nds", 0x3AF4, 0x2C + .incbin "baserom.nds", 0x3B20, 0x2C + .incbin "baserom.nds", 0x3B4C, 0x2C + .incbin "baserom.nds", 0x3B78, 0x2C + .incbin "baserom.nds", 0x3BA4, 0x2C + .incbin "baserom.nds", 0x3BD0, 0x2C + .incbin "baserom.nds", 0x3BFC, 0x2C + .incbin "baserom.nds", 0x3C28, 0x2C + .incbin "baserom.nds", 0x3C54, 0x2C + .incbin "baserom.nds", 0x3C80, 0x2C + .incbin "baserom.nds", 0x3CAC, 0x2C + .incbin "baserom.nds", 0x3CD8, 0x2C + .incbin "baserom.nds", 0x3D04, 0x2C + .incbin "baserom.nds", 0x3D30, 0x2C + .incbin "baserom.nds", 0x3D5C, 0x2C + .incbin "baserom.nds", 0x3D88, 0x2C + .incbin "baserom.nds", 0x3DB4, 0x2C + .incbin "baserom.nds", 0x3DE0, 0x2C + .incbin "baserom.nds", 0x3E0C, 0x2C + .incbin "baserom.nds", 0x3E38, 0x2C + .incbin "baserom.nds", 0x3E64, 0x2C + .incbin "baserom.nds", 0x3E90, 0x2C + .incbin "baserom.nds", 0x3EBC, 0x2C + .incbin "baserom.nds", 0x3EE8, 0x2C + .incbin "baserom.nds", 0x3F14, 0x2C + .incbin "baserom.nds", 0x3F40, 0x2C + .incbin "baserom.nds", 0x3F6C, 0x2C + .incbin "baserom.nds", 0x3F98, 0x2C + .incbin "baserom.nds", 0x3FC4, 0x2C + .incbin "baserom.nds", 0x3FF0, 0x2C + .incbin "baserom.nds", 0x401C, 0x2C + .incbin "baserom.nds", 0x4048, 0x2C + .incbin "baserom.nds", 0x4074, 0x2C + .incbin "baserom.nds", 0x40A0, 0x2C + .incbin "baserom.nds", 0x40CC, 0x2C + .incbin "baserom.nds", 0x40F8, 0x2C + .incbin "baserom.nds", 0x4124, 0x2C + .incbin "baserom.nds", 0x4150, 0x2C + .incbin "baserom.nds", 0x417C, 0x2C + .incbin "baserom.nds", 0x41A8, 0x2C + .incbin "baserom.nds", 0x41D4, 0x2C + .incbin "baserom.nds", 0x4200, 0x2C + .incbin "baserom.nds", 0x422C, 0x2C + .incbin "baserom.nds", 0x4258, 0x2C + .incbin "baserom.nds", 0x4284, 0x2C + .incbin "baserom.nds", 0x42B0, 0x2C + .incbin "baserom.nds", 0x42DC, 0x2C + .incbin "baserom.nds", 0x4308, 0x2C + .incbin "baserom.nds", 0x4334, 0x2C + .incbin "baserom.nds", 0x4360, 0x2C + .incbin "baserom.nds", 0x438C, 0x2C + .incbin "baserom.nds", 0x43B8, 0x2C + .incbin "baserom.nds", 0x43E4, 0x2C + .incbin "baserom.nds", 0x4410, 0x2C + .incbin "baserom.nds", 0x443C, 0x2C + .incbin "baserom.nds", 0x4468, 0x2C + .incbin "baserom.nds", 0x4494, 0x2C + .incbin "baserom.nds", 0x44C0, 0x2C + .incbin "baserom.nds", 0x44EC, 0x2C + .incbin "baserom.nds", 0x4518, 0x2C + .incbin "baserom.nds", 0x4544, 0x2C + .incbin "baserom.nds", 0x4570, 0x2C + .incbin "baserom.nds", 0x459C, 0x2C + .incbin "baserom.nds", 0x45C8, 0x2C + .incbin "baserom.nds", 0x45F4, 0x2C + .incbin "baserom.nds", 0x4620, 0x2C + .incbin "baserom.nds", 0x464C, 0x2C + .incbin "baserom.nds", 0x4678, 0x2C + .incbin "baserom.nds", 0x46A4, 0x2C + .incbin "baserom.nds", 0x46D0, 0x2C + .incbin "baserom.nds", 0x46FC, 0x2C + .incbin "baserom.nds", 0x4728, 0x2C + .incbin "baserom.nds", 0x4754, 0x2C + .incbin "baserom.nds", 0x4780, 0x2C + .incbin "baserom.nds", 0x47AC, 0x2C + .incbin "baserom.nds", 0x47D8, 0x2C + .incbin "baserom.nds", 0x4804, 0x2C + .incbin "baserom.nds", 0x4830, 0x2C + .incbin "baserom.nds", 0x485C, 0x2C + .incbin "baserom.nds", 0x4888, 0x2C + .incbin "baserom.nds", 0x48B4, 0x2C + .incbin "baserom.nds", 0x48E0, 0x2C + .incbin "baserom.nds", 0x490C, 0x2C + .incbin "baserom.nds", 0x4938, 0x2C + .incbin "baserom.nds", 0x4964, 0x2C + .incbin "baserom.nds", 0x4990, 0x2C + .incbin "baserom.nds", 0x49BC, 0x2C + .incbin "baserom.nds", 0x49E8, 0x2C + .incbin "baserom.nds", 0x4A14, 0x2C + .incbin "baserom.nds", 0x4A40, 0x2C + .incbin "baserom.nds", 0x4A6C, 0x2C + .incbin "baserom.nds", 0x4A98, 0x2C + .incbin "baserom.nds", 0x4AC4, 0x2C + .incbin "baserom.nds", 0x4AF0, 0x2C + .incbin "baserom.nds", 0x4B1C, 0x2C + .incbin "baserom.nds", 0x4B48, 0x2C + .incbin "baserom.nds", 0x4B74, 0x2C + .incbin "baserom.nds", 0x4BA0, 0x2C + .incbin "baserom.nds", 0x4BCC, 0x2C + .incbin "baserom.nds", 0x4BF8, 0x2C + .incbin "baserom.nds", 0x4C24, 0x2C + .incbin "baserom.nds", 0x4C50, 0x2C + .incbin "baserom.nds", 0x4C7C, 0x2C + .incbin "baserom.nds", 0x4CA8, 0x2C + .incbin "baserom.nds", 0x4CD4, 0x2C + .incbin "baserom.nds", 0x4D00, 0x2C + .incbin "baserom.nds", 0x4D2C, 0x2C + .incbin "baserom.nds", 0x4D58, 0x2C + .incbin "baserom.nds", 0x4D84, 0x2C + .incbin "baserom.nds", 0x4DB0, 0x2C + .incbin "baserom.nds", 0x4DDC, 0x2C + .incbin "baserom.nds", 0x4E08, 0x2C + .incbin "baserom.nds", 0x4E34, 0x2C + .incbin "baserom.nds", 0x4E60, 0x2C + .incbin "baserom.nds", 0x4E8C, 0x2C + .incbin "baserom.nds", 0x4EB8, 0x2C + .incbin "baserom.nds", 0x4EE4, 0x2C + .incbin "baserom.nds", 0x4F10, 0x2C + .incbin "baserom.nds", 0x4F3C, 0x2C + .incbin "baserom.nds", 0x4F68, 0x2C + .incbin "baserom.nds", 0x4F94, 0x2C + .incbin "baserom.nds", 0x4FC0, 0x2C + .incbin "baserom.nds", 0x4FEC, 0x2C + .incbin "baserom.nds", 0x5018, 0x2C + .incbin "baserom.nds", 0x5044, 0x2C + .incbin "baserom.nds", 0x5070, 0x2C + .incbin "baserom.nds", 0x509C, 0x2C + .incbin "baserom.nds", 0x50C8, 0x2C + .incbin "baserom.nds", 0x50F4, 0x2C + .incbin "baserom.nds", 0x5120, 0x2C + .incbin "baserom.nds", 0x514C, 0x2C + .incbin "baserom.nds", 0x5178, 0x2C + .incbin "baserom.nds", 0x51A4, 0x2C + .incbin "baserom.nds", 0x51D0, 0x2C + .incbin "baserom.nds", 0x51FC, 0x2C + .incbin "baserom.nds", 0x5228, 0x2C + .incbin "baserom.nds", 0x5254, 0x2C + .incbin "baserom.nds", 0x5280, 0x2C + .incbin "baserom.nds", 0x52AC, 0x2C + .incbin "baserom.nds", 0x52D8, 0x2C + .incbin "baserom.nds", 0x5304, 0x2C + .incbin "baserom.nds", 0x5330, 0x2C + .incbin "baserom.nds", 0x535C, 0x2C + .incbin "baserom.nds", 0x5388, 0x2C + .incbin "baserom.nds", 0x53B4, 0x2C + .incbin "baserom.nds", 0x53E0, 0x2C + .incbin "baserom.nds", 0x540C, 0x2C + .incbin "baserom.nds", 0x5438, 0x2C + .incbin "baserom.nds", 0x5464, 0x2C + .incbin "baserom.nds", 0x5490, 0x2C + .incbin "baserom.nds", 0x54BC, 0x2C + .incbin "baserom.nds", 0x54E8, 0x2C + .incbin "baserom.nds", 0x5514, 0x2C + .incbin "baserom.nds", 0x5540, 0x2C + .incbin "baserom.nds", 0x556C, 0x2C + .incbin "baserom.nds", 0x5598, 0x2C + .incbin "baserom.nds", 0x55C4, 0x2C + .incbin "baserom.nds", 0x55F0, 0x2C + .balign 4, 255 diff --git a/narc/personal/growtbl.narc.s b/narc/personal/growtbl.narc.s new file mode 100644 index 00000000..038986a5 --- /dev/null +++ b/narc/personal/growtbl.narc.s @@ -0,0 +1,42 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00000D14 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000004C ; chunk size + .short 8 ; number of files + .balign 4 + .word 0x00000000, 0x00000194 + .word 0x00000194, 0x00000328 + .word 0x00000328, 0x000004BC + .word 0x000004BC, 0x00000650 + .word 0x00000650, 0x000007E4 + .word 0x000007E4, 0x00000978 + .word 0x00000978, 0x00000B0C + .word 0x00000B0C, 0x00000CA0 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00000CA8 ; chunk size + .incbin "baserom.nds", 0x0, 0x194 + .incbin "baserom.nds", 0x194, 0x194 + .incbin "baserom.nds", 0x328, 0x194 + .incbin "baserom.nds", 0x4BC, 0x194 + .incbin "baserom.nds", 0x650, 0x194 + .incbin "baserom.nds", 0x7E4, 0x194 + .incbin "baserom.nds", 0x978, 0x194 + .incbin "baserom.nds", 0xB0C, 0x194 + .balign 4, 255 diff --git a/narc/personal/personal.narc.s b/narc/personal/personal.narc.s new file mode 100644 index 00000000..03e42067 --- /dev/null +++ b/narc/personal/personal.narc.s @@ -0,0 +1,1028 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x000065F8 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000FB4 ; chunk size + .short 501 ; number of files + .balign 4 + .word 0x00000000, 0x0000002C + .word 0x0000002C, 0x00000058 + .word 0x00000058, 0x00000084 + .word 0x00000084, 0x000000B0 + .word 0x000000B0, 0x000000DC + .word 0x000000DC, 0x00000108 + .word 0x00000108, 0x00000134 + .word 0x00000134, 0x00000160 + .word 0x00000160, 0x0000018C + .word 0x0000018C, 0x000001B8 + .word 0x000001B8, 0x000001E4 + .word 0x000001E4, 0x00000210 + .word 0x00000210, 0x0000023C + .word 0x0000023C, 0x00000268 + .word 0x00000268, 0x00000294 + .word 0x00000294, 0x000002C0 + .word 0x000002C0, 0x000002EC + .word 0x000002EC, 0x00000318 + .word 0x00000318, 0x00000344 + .word 0x00000344, 0x00000370 + .word 0x00000370, 0x0000039C + .word 0x0000039C, 0x000003C8 + .word 0x000003C8, 0x000003F4 + .word 0x000003F4, 0x00000420 + .word 0x00000420, 0x0000044C + .word 0x0000044C, 0x00000478 + .word 0x00000478, 0x000004A4 + .word 0x000004A4, 0x000004D0 + .word 0x000004D0, 0x000004FC + .word 0x000004FC, 0x00000528 + .word 0x00000528, 0x00000554 + .word 0x00000554, 0x00000580 + .word 0x00000580, 0x000005AC + .word 0x000005AC, 0x000005D8 + .word 0x000005D8, 0x00000604 + .word 0x00000604, 0x00000630 + .word 0x00000630, 0x0000065C + .word 0x0000065C, 0x00000688 + .word 0x00000688, 0x000006B4 + .word 0x000006B4, 0x000006E0 + .word 0x000006E0, 0x0000070C + .word 0x0000070C, 0x00000738 + .word 0x00000738, 0x00000764 + .word 0x00000764, 0x00000790 + .word 0x00000790, 0x000007BC + .word 0x000007BC, 0x000007E8 + .word 0x000007E8, 0x00000814 + .word 0x00000814, 0x00000840 + .word 0x00000840, 0x0000086C + .word 0x0000086C, 0x00000898 + .word 0x00000898, 0x000008C4 + .word 0x000008C4, 0x000008F0 + .word 0x000008F0, 0x0000091C + .word 0x0000091C, 0x00000948 + .word 0x00000948, 0x00000974 + .word 0x00000974, 0x000009A0 + .word 0x000009A0, 0x000009CC + .word 0x000009CC, 0x000009F8 + .word 0x000009F8, 0x00000A24 + .word 0x00000A24, 0x00000A50 + .word 0x00000A50, 0x00000A7C + .word 0x00000A7C, 0x00000AA8 + .word 0x00000AA8, 0x00000AD4 + .word 0x00000AD4, 0x00000B00 + .word 0x00000B00, 0x00000B2C + .word 0x00000B2C, 0x00000B58 + .word 0x00000B58, 0x00000B84 + .word 0x00000B84, 0x00000BB0 + .word 0x00000BB0, 0x00000BDC + .word 0x00000BDC, 0x00000C08 + .word 0x00000C08, 0x00000C34 + .word 0x00000C34, 0x00000C60 + .word 0x00000C60, 0x00000C8C + .word 0x00000C8C, 0x00000CB8 + .word 0x00000CB8, 0x00000CE4 + .word 0x00000CE4, 0x00000D10 + .word 0x00000D10, 0x00000D3C + .word 0x00000D3C, 0x00000D68 + .word 0x00000D68, 0x00000D94 + .word 0x00000D94, 0x00000DC0 + .word 0x00000DC0, 0x00000DEC + .word 0x00000DEC, 0x00000E18 + .word 0x00000E18, 0x00000E44 + .word 0x00000E44, 0x00000E70 + .word 0x00000E70, 0x00000E9C + .word 0x00000E9C, 0x00000EC8 + .word 0x00000EC8, 0x00000EF4 + .word 0x00000EF4, 0x00000F20 + .word 0x00000F20, 0x00000F4C + .word 0x00000F4C, 0x00000F78 + .word 0x00000F78, 0x00000FA4 + .word 0x00000FA4, 0x00000FD0 + .word 0x00000FD0, 0x00000FFC + .word 0x00000FFC, 0x00001028 + .word 0x00001028, 0x00001054 + .word 0x00001054, 0x00001080 + .word 0x00001080, 0x000010AC + .word 0x000010AC, 0x000010D8 + .word 0x000010D8, 0x00001104 + .word 0x00001104, 0x00001130 + .word 0x00001130, 0x0000115C + .word 0x0000115C, 0x00001188 + .word 0x00001188, 0x000011B4 + .word 0x000011B4, 0x000011E0 + .word 0x000011E0, 0x0000120C + .word 0x0000120C, 0x00001238 + .word 0x00001238, 0x00001264 + .word 0x00001264, 0x00001290 + .word 0x00001290, 0x000012BC + .word 0x000012BC, 0x000012E8 + .word 0x000012E8, 0x00001314 + .word 0x00001314, 0x00001340 + .word 0x00001340, 0x0000136C + .word 0x0000136C, 0x00001398 + .word 0x00001398, 0x000013C4 + .word 0x000013C4, 0x000013F0 + .word 0x000013F0, 0x0000141C + .word 0x0000141C, 0x00001448 + .word 0x00001448, 0x00001474 + .word 0x00001474, 0x000014A0 + .word 0x000014A0, 0x000014CC + .word 0x000014CC, 0x000014F8 + .word 0x000014F8, 0x00001524 + .word 0x00001524, 0x00001550 + .word 0x00001550, 0x0000157C + .word 0x0000157C, 0x000015A8 + .word 0x000015A8, 0x000015D4 + .word 0x000015D4, 0x00001600 + .word 0x00001600, 0x0000162C + .word 0x0000162C, 0x00001658 + .word 0x00001658, 0x00001684 + .word 0x00001684, 0x000016B0 + .word 0x000016B0, 0x000016DC + .word 0x000016DC, 0x00001708 + .word 0x00001708, 0x00001734 + .word 0x00001734, 0x00001760 + .word 0x00001760, 0x0000178C + .word 0x0000178C, 0x000017B8 + .word 0x000017B8, 0x000017E4 + .word 0x000017E4, 0x00001810 + .word 0x00001810, 0x0000183C + .word 0x0000183C, 0x00001868 + .word 0x00001868, 0x00001894 + .word 0x00001894, 0x000018C0 + .word 0x000018C0, 0x000018EC + .word 0x000018EC, 0x00001918 + .word 0x00001918, 0x00001944 + .word 0x00001944, 0x00001970 + .word 0x00001970, 0x0000199C + .word 0x0000199C, 0x000019C8 + .word 0x000019C8, 0x000019F4 + .word 0x000019F4, 0x00001A20 + .word 0x00001A20, 0x00001A4C + .word 0x00001A4C, 0x00001A78 + .word 0x00001A78, 0x00001AA4 + .word 0x00001AA4, 0x00001AD0 + .word 0x00001AD0, 0x00001AFC + .word 0x00001AFC, 0x00001B28 + .word 0x00001B28, 0x00001B54 + .word 0x00001B54, 0x00001B80 + .word 0x00001B80, 0x00001BAC + .word 0x00001BAC, 0x00001BD8 + .word 0x00001BD8, 0x00001C04 + .word 0x00001C04, 0x00001C30 + .word 0x00001C30, 0x00001C5C + .word 0x00001C5C, 0x00001C88 + .word 0x00001C88, 0x00001CB4 + .word 0x00001CB4, 0x00001CE0 + .word 0x00001CE0, 0x00001D0C + .word 0x00001D0C, 0x00001D38 + .word 0x00001D38, 0x00001D64 + .word 0x00001D64, 0x00001D90 + .word 0x00001D90, 0x00001DBC + .word 0x00001DBC, 0x00001DE8 + .word 0x00001DE8, 0x00001E14 + .word 0x00001E14, 0x00001E40 + .word 0x00001E40, 0x00001E6C + .word 0x00001E6C, 0x00001E98 + .word 0x00001E98, 0x00001EC4 + .word 0x00001EC4, 0x00001EF0 + .word 0x00001EF0, 0x00001F1C + .word 0x00001F1C, 0x00001F48 + .word 0x00001F48, 0x00001F74 + .word 0x00001F74, 0x00001FA0 + .word 0x00001FA0, 0x00001FCC + .word 0x00001FCC, 0x00001FF8 + .word 0x00001FF8, 0x00002024 + .word 0x00002024, 0x00002050 + .word 0x00002050, 0x0000207C + .word 0x0000207C, 0x000020A8 + .word 0x000020A8, 0x000020D4 + .word 0x000020D4, 0x00002100 + .word 0x00002100, 0x0000212C + .word 0x0000212C, 0x00002158 + .word 0x00002158, 0x00002184 + .word 0x00002184, 0x000021B0 + .word 0x000021B0, 0x000021DC + .word 0x000021DC, 0x00002208 + .word 0x00002208, 0x00002234 + .word 0x00002234, 0x00002260 + .word 0x00002260, 0x0000228C + .word 0x0000228C, 0x000022B8 + .word 0x000022B8, 0x000022E4 + .word 0x000022E4, 0x00002310 + .word 0x00002310, 0x0000233C + .word 0x0000233C, 0x00002368 + .word 0x00002368, 0x00002394 + .word 0x00002394, 0x000023C0 + .word 0x000023C0, 0x000023EC + .word 0x000023EC, 0x00002418 + .word 0x00002418, 0x00002444 + .word 0x00002444, 0x00002470 + .word 0x00002470, 0x0000249C + .word 0x0000249C, 0x000024C8 + .word 0x000024C8, 0x000024F4 + .word 0x000024F4, 0x00002520 + .word 0x00002520, 0x0000254C + .word 0x0000254C, 0x00002578 + .word 0x00002578, 0x000025A4 + .word 0x000025A4, 0x000025D0 + .word 0x000025D0, 0x000025FC + .word 0x000025FC, 0x00002628 + .word 0x00002628, 0x00002654 + .word 0x00002654, 0x00002680 + .word 0x00002680, 0x000026AC + .word 0x000026AC, 0x000026D8 + .word 0x000026D8, 0x00002704 + .word 0x00002704, 0x00002730 + .word 0x00002730, 0x0000275C + .word 0x0000275C, 0x00002788 + .word 0x00002788, 0x000027B4 + .word 0x000027B4, 0x000027E0 + .word 0x000027E0, 0x0000280C + .word 0x0000280C, 0x00002838 + .word 0x00002838, 0x00002864 + .word 0x00002864, 0x00002890 + .word 0x00002890, 0x000028BC + .word 0x000028BC, 0x000028E8 + .word 0x000028E8, 0x00002914 + .word 0x00002914, 0x00002940 + .word 0x00002940, 0x0000296C + .word 0x0000296C, 0x00002998 + .word 0x00002998, 0x000029C4 + .word 0x000029C4, 0x000029F0 + .word 0x000029F0, 0x00002A1C + .word 0x00002A1C, 0x00002A48 + .word 0x00002A48, 0x00002A74 + .word 0x00002A74, 0x00002AA0 + .word 0x00002AA0, 0x00002ACC + .word 0x00002ACC, 0x00002AF8 + .word 0x00002AF8, 0x00002B24 + .word 0x00002B24, 0x00002B50 + .word 0x00002B50, 0x00002B7C + .word 0x00002B7C, 0x00002BA8 + .word 0x00002BA8, 0x00002BD4 + .word 0x00002BD4, 0x00002C00 + .word 0x00002C00, 0x00002C2C + .word 0x00002C2C, 0x00002C58 + .word 0x00002C58, 0x00002C84 + .word 0x00002C84, 0x00002CB0 + .word 0x00002CB0, 0x00002CDC + .word 0x00002CDC, 0x00002D08 + .word 0x00002D08, 0x00002D34 + .word 0x00002D34, 0x00002D60 + .word 0x00002D60, 0x00002D8C + .word 0x00002D8C, 0x00002DB8 + .word 0x00002DB8, 0x00002DE4 + .word 0x00002DE4, 0x00002E10 + .word 0x00002E10, 0x00002E3C + .word 0x00002E3C, 0x00002E68 + .word 0x00002E68, 0x00002E94 + .word 0x00002E94, 0x00002EC0 + .word 0x00002EC0, 0x00002EEC + .word 0x00002EEC, 0x00002F18 + .word 0x00002F18, 0x00002F44 + .word 0x00002F44, 0x00002F70 + .word 0x00002F70, 0x00002F9C + .word 0x00002F9C, 0x00002FC8 + .word 0x00002FC8, 0x00002FF4 + .word 0x00002FF4, 0x00003020 + .word 0x00003020, 0x0000304C + .word 0x0000304C, 0x00003078 + .word 0x00003078, 0x000030A4 + .word 0x000030A4, 0x000030D0 + .word 0x000030D0, 0x000030FC + .word 0x000030FC, 0x00003128 + .word 0x00003128, 0x00003154 + .word 0x00003154, 0x00003180 + .word 0x00003180, 0x000031AC + .word 0x000031AC, 0x000031D8 + .word 0x000031D8, 0x00003204 + .word 0x00003204, 0x00003230 + .word 0x00003230, 0x0000325C + .word 0x0000325C, 0x00003288 + .word 0x00003288, 0x000032B4 + .word 0x000032B4, 0x000032E0 + .word 0x000032E0, 0x0000330C + .word 0x0000330C, 0x00003338 + .word 0x00003338, 0x00003364 + .word 0x00003364, 0x00003390 + .word 0x00003390, 0x000033BC + .word 0x000033BC, 0x000033E8 + .word 0x000033E8, 0x00003414 + .word 0x00003414, 0x00003440 + .word 0x00003440, 0x0000346C + .word 0x0000346C, 0x00003498 + .word 0x00003498, 0x000034C4 + .word 0x000034C4, 0x000034F0 + .word 0x000034F0, 0x0000351C + .word 0x0000351C, 0x00003548 + .word 0x00003548, 0x00003574 + .word 0x00003574, 0x000035A0 + .word 0x000035A0, 0x000035CC + .word 0x000035CC, 0x000035F8 + .word 0x000035F8, 0x00003624 + .word 0x00003624, 0x00003650 + .word 0x00003650, 0x0000367C + .word 0x0000367C, 0x000036A8 + .word 0x000036A8, 0x000036D4 + .word 0x000036D4, 0x00003700 + .word 0x00003700, 0x0000372C + .word 0x0000372C, 0x00003758 + .word 0x00003758, 0x00003784 + .word 0x00003784, 0x000037B0 + .word 0x000037B0, 0x000037DC + .word 0x000037DC, 0x00003808 + .word 0x00003808, 0x00003834 + .word 0x00003834, 0x00003860 + .word 0x00003860, 0x0000388C + .word 0x0000388C, 0x000038B8 + .word 0x000038B8, 0x000038E4 + .word 0x000038E4, 0x00003910 + .word 0x00003910, 0x0000393C + .word 0x0000393C, 0x00003968 + .word 0x00003968, 0x00003994 + .word 0x00003994, 0x000039C0 + .word 0x000039C0, 0x000039EC + .word 0x000039EC, 0x00003A18 + .word 0x00003A18, 0x00003A44 + .word 0x00003A44, 0x00003A70 + .word 0x00003A70, 0x00003A9C + .word 0x00003A9C, 0x00003AC8 + .word 0x00003AC8, 0x00003AF4 + .word 0x00003AF4, 0x00003B20 + .word 0x00003B20, 0x00003B4C + .word 0x00003B4C, 0x00003B78 + .word 0x00003B78, 0x00003BA4 + .word 0x00003BA4, 0x00003BD0 + .word 0x00003BD0, 0x00003BFC + .word 0x00003BFC, 0x00003C28 + .word 0x00003C28, 0x00003C54 + .word 0x00003C54, 0x00003C80 + .word 0x00003C80, 0x00003CAC + .word 0x00003CAC, 0x00003CD8 + .word 0x00003CD8, 0x00003D04 + .word 0x00003D04, 0x00003D30 + .word 0x00003D30, 0x00003D5C + .word 0x00003D5C, 0x00003D88 + .word 0x00003D88, 0x00003DB4 + .word 0x00003DB4, 0x00003DE0 + .word 0x00003DE0, 0x00003E0C + .word 0x00003E0C, 0x00003E38 + .word 0x00003E38, 0x00003E64 + .word 0x00003E64, 0x00003E90 + .word 0x00003E90, 0x00003EBC + .word 0x00003EBC, 0x00003EE8 + .word 0x00003EE8, 0x00003F14 + .word 0x00003F14, 0x00003F40 + .word 0x00003F40, 0x00003F6C + .word 0x00003F6C, 0x00003F98 + .word 0x00003F98, 0x00003FC4 + .word 0x00003FC4, 0x00003FF0 + .word 0x00003FF0, 0x0000401C + .word 0x0000401C, 0x00004048 + .word 0x00004048, 0x00004074 + .word 0x00004074, 0x000040A0 + .word 0x000040A0, 0x000040CC + .word 0x000040CC, 0x000040F8 + .word 0x000040F8, 0x00004124 + .word 0x00004124, 0x00004150 + .word 0x00004150, 0x0000417C + .word 0x0000417C, 0x000041A8 + .word 0x000041A8, 0x000041D4 + .word 0x000041D4, 0x00004200 + .word 0x00004200, 0x0000422C + .word 0x0000422C, 0x00004258 + .word 0x00004258, 0x00004284 + .word 0x00004284, 0x000042B0 + .word 0x000042B0, 0x000042DC + .word 0x000042DC, 0x00004308 + .word 0x00004308, 0x00004334 + .word 0x00004334, 0x00004360 + .word 0x00004360, 0x0000438C + .word 0x0000438C, 0x000043B8 + .word 0x000043B8, 0x000043E4 + .word 0x000043E4, 0x00004410 + .word 0x00004410, 0x0000443C + .word 0x0000443C, 0x00004468 + .word 0x00004468, 0x00004494 + .word 0x00004494, 0x000044C0 + .word 0x000044C0, 0x000044EC + .word 0x000044EC, 0x00004518 + .word 0x00004518, 0x00004544 + .word 0x00004544, 0x00004570 + .word 0x00004570, 0x0000459C + .word 0x0000459C, 0x000045C8 + .word 0x000045C8, 0x000045F4 + .word 0x000045F4, 0x00004620 + .word 0x00004620, 0x0000464C + .word 0x0000464C, 0x00004678 + .word 0x00004678, 0x000046A4 + .word 0x000046A4, 0x000046D0 + .word 0x000046D0, 0x000046FC + .word 0x000046FC, 0x00004728 + .word 0x00004728, 0x00004754 + .word 0x00004754, 0x00004780 + .word 0x00004780, 0x000047AC + .word 0x000047AC, 0x000047D8 + .word 0x000047D8, 0x00004804 + .word 0x00004804, 0x00004830 + .word 0x00004830, 0x0000485C + .word 0x0000485C, 0x00004888 + .word 0x00004888, 0x000048B4 + .word 0x000048B4, 0x000048E0 + .word 0x000048E0, 0x0000490C + .word 0x0000490C, 0x00004938 + .word 0x00004938, 0x00004964 + .word 0x00004964, 0x00004990 + .word 0x00004990, 0x000049BC + .word 0x000049BC, 0x000049E8 + .word 0x000049E8, 0x00004A14 + .word 0x00004A14, 0x00004A40 + .word 0x00004A40, 0x00004A6C + .word 0x00004A6C, 0x00004A98 + .word 0x00004A98, 0x00004AC4 + .word 0x00004AC4, 0x00004AF0 + .word 0x00004AF0, 0x00004B1C + .word 0x00004B1C, 0x00004B48 + .word 0x00004B48, 0x00004B74 + .word 0x00004B74, 0x00004BA0 + .word 0x00004BA0, 0x00004BCC + .word 0x00004BCC, 0x00004BF8 + .word 0x00004BF8, 0x00004C24 + .word 0x00004C24, 0x00004C50 + .word 0x00004C50, 0x00004C7C + .word 0x00004C7C, 0x00004CA8 + .word 0x00004CA8, 0x00004CD4 + .word 0x00004CD4, 0x00004D00 + .word 0x00004D00, 0x00004D2C + .word 0x00004D2C, 0x00004D58 + .word 0x00004D58, 0x00004D84 + .word 0x00004D84, 0x00004DB0 + .word 0x00004DB0, 0x00004DDC + .word 0x00004DDC, 0x00004E08 + .word 0x00004E08, 0x00004E34 + .word 0x00004E34, 0x00004E60 + .word 0x00004E60, 0x00004E8C + .word 0x00004E8C, 0x00004EB8 + .word 0x00004EB8, 0x00004EE4 + .word 0x00004EE4, 0x00004F10 + .word 0x00004F10, 0x00004F3C + .word 0x00004F3C, 0x00004F68 + .word 0x00004F68, 0x00004F94 + .word 0x00004F94, 0x00004FC0 + .word 0x00004FC0, 0x00004FEC + .word 0x00004FEC, 0x00005018 + .word 0x00005018, 0x00005044 + .word 0x00005044, 0x00005070 + .word 0x00005070, 0x0000509C + .word 0x0000509C, 0x000050C8 + .word 0x000050C8, 0x000050F4 + .word 0x000050F4, 0x00005120 + .word 0x00005120, 0x0000514C + .word 0x0000514C, 0x00005178 + .word 0x00005178, 0x000051A4 + .word 0x000051A4, 0x000051D0 + .word 0x000051D0, 0x000051FC + .word 0x000051FC, 0x00005228 + .word 0x00005228, 0x00005254 + .word 0x00005254, 0x00005280 + .word 0x00005280, 0x000052AC + .word 0x000052AC, 0x000052D8 + .word 0x000052D8, 0x00005304 + .word 0x00005304, 0x00005330 + .word 0x00005330, 0x0000535C + .word 0x0000535C, 0x00005388 + .word 0x00005388, 0x000053B4 + .word 0x000053B4, 0x000053E0 + .word 0x000053E0, 0x0000540C + .word 0x0000540C, 0x00005438 + .word 0x00005438, 0x00005464 + .word 0x00005464, 0x00005490 + .word 0x00005490, 0x000054BC + .word 0x000054BC, 0x000054E8 + .word 0x000054E8, 0x00005514 + .word 0x00005514, 0x00005540 + .word 0x00005540, 0x0000556C + .word 0x0000556C, 0x00005598 + .word 0x00005598, 0x000055C4 + .word 0x000055C4, 0x000055F0 + .word 0x000055F0, 0x0000561C + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00005624 ; chunk size + .incbin "baserom.nds", 0x0, 0x2C + .incbin "baserom.nds", 0x2C, 0x2C + .incbin "baserom.nds", 0x58, 0x2C + .incbin "baserom.nds", 0x84, 0x2C + .incbin "baserom.nds", 0xB0, 0x2C + .incbin "baserom.nds", 0xDC, 0x2C + .incbin "baserom.nds", 0x108, 0x2C + .incbin "baserom.nds", 0x134, 0x2C + .incbin "baserom.nds", 0x160, 0x2C + .incbin "baserom.nds", 0x18C, 0x2C + .incbin "baserom.nds", 0x1B8, 0x2C + .incbin "baserom.nds", 0x1E4, 0x2C + .incbin "baserom.nds", 0x210, 0x2C + .incbin "baserom.nds", 0x23C, 0x2C + .incbin "baserom.nds", 0x268, 0x2C + .incbin "baserom.nds", 0x294, 0x2C + .incbin "baserom.nds", 0x2C0, 0x2C + .incbin "baserom.nds", 0x2EC, 0x2C + .incbin "baserom.nds", 0x318, 0x2C + .incbin "baserom.nds", 0x344, 0x2C + .incbin "baserom.nds", 0x370, 0x2C + .incbin "baserom.nds", 0x39C, 0x2C + .incbin "baserom.nds", 0x3C8, 0x2C + .incbin "baserom.nds", 0x3F4, 0x2C + .incbin "baserom.nds", 0x420, 0x2C + .incbin "baserom.nds", 0x44C, 0x2C + .incbin "baserom.nds", 0x478, 0x2C + .incbin "baserom.nds", 0x4A4, 0x2C + .incbin "baserom.nds", 0x4D0, 0x2C + .incbin "baserom.nds", 0x4FC, 0x2C + .incbin "baserom.nds", 0x528, 0x2C + .incbin "baserom.nds", 0x554, 0x2C + .incbin "baserom.nds", 0x580, 0x2C + .incbin "baserom.nds", 0x5AC, 0x2C + .incbin "baserom.nds", 0x5D8, 0x2C + .incbin "baserom.nds", 0x604, 0x2C + .incbin "baserom.nds", 0x630, 0x2C + .incbin "baserom.nds", 0x65C, 0x2C + .incbin "baserom.nds", 0x688, 0x2C + .incbin "baserom.nds", 0x6B4, 0x2C + .incbin "baserom.nds", 0x6E0, 0x2C + .incbin "baserom.nds", 0x70C, 0x2C + .incbin "baserom.nds", 0x738, 0x2C + .incbin "baserom.nds", 0x764, 0x2C + .incbin "baserom.nds", 0x790, 0x2C + .incbin "baserom.nds", 0x7BC, 0x2C + .incbin "baserom.nds", 0x7E8, 0x2C + .incbin "baserom.nds", 0x814, 0x2C + .incbin "baserom.nds", 0x840, 0x2C + .incbin "baserom.nds", 0x86C, 0x2C + .incbin "baserom.nds", 0x898, 0x2C + .incbin "baserom.nds", 0x8C4, 0x2C + .incbin "baserom.nds", 0x8F0, 0x2C + .incbin "baserom.nds", 0x91C, 0x2C + .incbin "baserom.nds", 0x948, 0x2C + .incbin "baserom.nds", 0x974, 0x2C + .incbin "baserom.nds", 0x9A0, 0x2C + .incbin "baserom.nds", 0x9CC, 0x2C + .incbin "baserom.nds", 0x9F8, 0x2C + .incbin "baserom.nds", 0xA24, 0x2C + .incbin "baserom.nds", 0xA50, 0x2C + .incbin "baserom.nds", 0xA7C, 0x2C + .incbin "baserom.nds", 0xAA8, 0x2C + .incbin "baserom.nds", 0xAD4, 0x2C + .incbin "baserom.nds", 0xB00, 0x2C + .incbin "baserom.nds", 0xB2C, 0x2C + .incbin "baserom.nds", 0xB58, 0x2C + .incbin "baserom.nds", 0xB84, 0x2C + .incbin "baserom.nds", 0xBB0, 0x2C + .incbin "baserom.nds", 0xBDC, 0x2C + .incbin "baserom.nds", 0xC08, 0x2C + .incbin "baserom.nds", 0xC34, 0x2C + .incbin "baserom.nds", 0xC60, 0x2C + .incbin "baserom.nds", 0xC8C, 0x2C + .incbin "baserom.nds", 0xCB8, 0x2C + .incbin "baserom.nds", 0xCE4, 0x2C + .incbin "baserom.nds", 0xD10, 0x2C + .incbin "baserom.nds", 0xD3C, 0x2C + .incbin "baserom.nds", 0xD68, 0x2C + .incbin "baserom.nds", 0xD94, 0x2C + .incbin "baserom.nds", 0xDC0, 0x2C + .incbin "baserom.nds", 0xDEC, 0x2C + .incbin "baserom.nds", 0xE18, 0x2C + .incbin "baserom.nds", 0xE44, 0x2C + .incbin "baserom.nds", 0xE70, 0x2C + .incbin "baserom.nds", 0xE9C, 0x2C + .incbin "baserom.nds", 0xEC8, 0x2C + .incbin "baserom.nds", 0xEF4, 0x2C + .incbin "baserom.nds", 0xF20, 0x2C + .incbin "baserom.nds", 0xF4C, 0x2C + .incbin "baserom.nds", 0xF78, 0x2C + .incbin "baserom.nds", 0xFA4, 0x2C + .incbin "baserom.nds", 0xFD0, 0x2C + .incbin "baserom.nds", 0xFFC, 0x2C + .incbin "baserom.nds", 0x1028, 0x2C + .incbin "baserom.nds", 0x1054, 0x2C + .incbin "baserom.nds", 0x1080, 0x2C + .incbin "baserom.nds", 0x10AC, 0x2C + .incbin "baserom.nds", 0x10D8, 0x2C + .incbin "baserom.nds", 0x1104, 0x2C + .incbin "baserom.nds", 0x1130, 0x2C + .incbin "baserom.nds", 0x115C, 0x2C + .incbin "baserom.nds", 0x1188, 0x2C + .incbin "baserom.nds", 0x11B4, 0x2C + .incbin "baserom.nds", 0x11E0, 0x2C + .incbin "baserom.nds", 0x120C, 0x2C + .incbin "baserom.nds", 0x1238, 0x2C + .incbin "baserom.nds", 0x1264, 0x2C + .incbin "baserom.nds", 0x1290, 0x2C + .incbin "baserom.nds", 0x12BC, 0x2C + .incbin "baserom.nds", 0x12E8, 0x2C + .incbin "baserom.nds", 0x1314, 0x2C + .incbin "baserom.nds", 0x1340, 0x2C + .incbin "baserom.nds", 0x136C, 0x2C + .incbin "baserom.nds", 0x1398, 0x2C + .incbin "baserom.nds", 0x13C4, 0x2C + .incbin "baserom.nds", 0x13F0, 0x2C + .incbin "baserom.nds", 0x141C, 0x2C + .incbin "baserom.nds", 0x1448, 0x2C + .incbin "baserom.nds", 0x1474, 0x2C + .incbin "baserom.nds", 0x14A0, 0x2C + .incbin "baserom.nds", 0x14CC, 0x2C + .incbin "baserom.nds", 0x14F8, 0x2C + .incbin "baserom.nds", 0x1524, 0x2C + .incbin "baserom.nds", 0x1550, 0x2C + .incbin "baserom.nds", 0x157C, 0x2C + .incbin "baserom.nds", 0x15A8, 0x2C + .incbin "baserom.nds", 0x15D4, 0x2C + .incbin "baserom.nds", 0x1600, 0x2C + .incbin "baserom.nds", 0x162C, 0x2C + .incbin "baserom.nds", 0x1658, 0x2C + .incbin "baserom.nds", 0x1684, 0x2C + .incbin "baserom.nds", 0x16B0, 0x2C + .incbin "baserom.nds", 0x16DC, 0x2C + .incbin "baserom.nds", 0x1708, 0x2C + .incbin "baserom.nds", 0x1734, 0x2C + .incbin "baserom.nds", 0x1760, 0x2C + .incbin "baserom.nds", 0x178C, 0x2C + .incbin "baserom.nds", 0x17B8, 0x2C + .incbin "baserom.nds", 0x17E4, 0x2C + .incbin "baserom.nds", 0x1810, 0x2C + .incbin "baserom.nds", 0x183C, 0x2C + .incbin "baserom.nds", 0x1868, 0x2C + .incbin "baserom.nds", 0x1894, 0x2C + .incbin "baserom.nds", 0x18C0, 0x2C + .incbin "baserom.nds", 0x18EC, 0x2C + .incbin "baserom.nds", 0x1918, 0x2C + .incbin "baserom.nds", 0x1944, 0x2C + .incbin "baserom.nds", 0x1970, 0x2C + .incbin "baserom.nds", 0x199C, 0x2C + .incbin "baserom.nds", 0x19C8, 0x2C + .incbin "baserom.nds", 0x19F4, 0x2C + .incbin "baserom.nds", 0x1A20, 0x2C + .incbin "baserom.nds", 0x1A4C, 0x2C + .incbin "baserom.nds", 0x1A78, 0x2C + .incbin "baserom.nds", 0x1AA4, 0x2C + .incbin "baserom.nds", 0x1AD0, 0x2C + .incbin "baserom.nds", 0x1AFC, 0x2C + .incbin "baserom.nds", 0x1B28, 0x2C + .incbin "baserom.nds", 0x1B54, 0x2C + .incbin "baserom.nds", 0x1B80, 0x2C + .incbin "baserom.nds", 0x1BAC, 0x2C + .incbin "baserom.nds", 0x1BD8, 0x2C + .incbin "baserom.nds", 0x1C04, 0x2C + .incbin "baserom.nds", 0x1C30, 0x2C + .incbin "baserom.nds", 0x1C5C, 0x2C + .incbin "baserom.nds", 0x1C88, 0x2C + .incbin "baserom.nds", 0x1CB4, 0x2C + .incbin "baserom.nds", 0x1CE0, 0x2C + .incbin "baserom.nds", 0x1D0C, 0x2C + .incbin "baserom.nds", 0x1D38, 0x2C + .incbin "baserom.nds", 0x1D64, 0x2C + .incbin "baserom.nds", 0x1D90, 0x2C + .incbin "baserom.nds", 0x1DBC, 0x2C + .incbin "baserom.nds", 0x1DE8, 0x2C + .incbin "baserom.nds", 0x1E14, 0x2C + .incbin "baserom.nds", 0x1E40, 0x2C + .incbin "baserom.nds", 0x1E6C, 0x2C + .incbin "baserom.nds", 0x1E98, 0x2C + .incbin "baserom.nds", 0x1EC4, 0x2C + .incbin "baserom.nds", 0x1EF0, 0x2C + .incbin "baserom.nds", 0x1F1C, 0x2C + .incbin "baserom.nds", 0x1F48, 0x2C + .incbin "baserom.nds", 0x1F74, 0x2C + .incbin "baserom.nds", 0x1FA0, 0x2C + .incbin "baserom.nds", 0x1FCC, 0x2C + .incbin "baserom.nds", 0x1FF8, 0x2C + .incbin "baserom.nds", 0x2024, 0x2C + .incbin "baserom.nds", 0x2050, 0x2C + .incbin "baserom.nds", 0x207C, 0x2C + .incbin "baserom.nds", 0x20A8, 0x2C + .incbin "baserom.nds", 0x20D4, 0x2C + .incbin "baserom.nds", 0x2100, 0x2C + .incbin "baserom.nds", 0x212C, 0x2C + .incbin "baserom.nds", 0x2158, 0x2C + .incbin "baserom.nds", 0x2184, 0x2C + .incbin "baserom.nds", 0x21B0, 0x2C + .incbin "baserom.nds", 0x21DC, 0x2C + .incbin "baserom.nds", 0x2208, 0x2C + .incbin "baserom.nds", 0x2234, 0x2C + .incbin "baserom.nds", 0x2260, 0x2C + .incbin "baserom.nds", 0x228C, 0x2C + .incbin "baserom.nds", 0x22B8, 0x2C + .incbin "baserom.nds", 0x22E4, 0x2C + .incbin "baserom.nds", 0x2310, 0x2C + .incbin "baserom.nds", 0x233C, 0x2C + .incbin "baserom.nds", 0x2368, 0x2C + .incbin "baserom.nds", 0x2394, 0x2C + .incbin "baserom.nds", 0x23C0, 0x2C + .incbin "baserom.nds", 0x23EC, 0x2C + .incbin "baserom.nds", 0x2418, 0x2C + .incbin "baserom.nds", 0x2444, 0x2C + .incbin "baserom.nds", 0x2470, 0x2C + .incbin "baserom.nds", 0x249C, 0x2C + .incbin "baserom.nds", 0x24C8, 0x2C + .incbin "baserom.nds", 0x24F4, 0x2C + .incbin "baserom.nds", 0x2520, 0x2C + .incbin "baserom.nds", 0x254C, 0x2C + .incbin "baserom.nds", 0x2578, 0x2C + .incbin "baserom.nds", 0x25A4, 0x2C + .incbin "baserom.nds", 0x25D0, 0x2C + .incbin "baserom.nds", 0x25FC, 0x2C + .incbin "baserom.nds", 0x2628, 0x2C + .incbin "baserom.nds", 0x2654, 0x2C + .incbin "baserom.nds", 0x2680, 0x2C + .incbin "baserom.nds", 0x26AC, 0x2C + .incbin "baserom.nds", 0x26D8, 0x2C + .incbin "baserom.nds", 0x2704, 0x2C + .incbin "baserom.nds", 0x2730, 0x2C + .incbin "baserom.nds", 0x275C, 0x2C + .incbin "baserom.nds", 0x2788, 0x2C + .incbin "baserom.nds", 0x27B4, 0x2C + .incbin "baserom.nds", 0x27E0, 0x2C + .incbin "baserom.nds", 0x280C, 0x2C + .incbin "baserom.nds", 0x2838, 0x2C + .incbin "baserom.nds", 0x2864, 0x2C + .incbin "baserom.nds", 0x2890, 0x2C + .incbin "baserom.nds", 0x28BC, 0x2C + .incbin "baserom.nds", 0x28E8, 0x2C + .incbin "baserom.nds", 0x2914, 0x2C + .incbin "baserom.nds", 0x2940, 0x2C + .incbin "baserom.nds", 0x296C, 0x2C + .incbin "baserom.nds", 0x2998, 0x2C + .incbin "baserom.nds", 0x29C4, 0x2C + .incbin "baserom.nds", 0x29F0, 0x2C + .incbin "baserom.nds", 0x2A1C, 0x2C + .incbin "baserom.nds", 0x2A48, 0x2C + .incbin "baserom.nds", 0x2A74, 0x2C + .incbin "baserom.nds", 0x2AA0, 0x2C + .incbin "baserom.nds", 0x2ACC, 0x2C + .incbin "baserom.nds", 0x2AF8, 0x2C + .incbin "baserom.nds", 0x2B24, 0x2C + .incbin "baserom.nds", 0x2B50, 0x2C + .incbin "baserom.nds", 0x2B7C, 0x2C + .incbin "baserom.nds", 0x2BA8, 0x2C + .incbin "baserom.nds", 0x2BD4, 0x2C + .incbin "baserom.nds", 0x2C00, 0x2C + .incbin "baserom.nds", 0x2C2C, 0x2C + .incbin "baserom.nds", 0x2C58, 0x2C + .incbin "baserom.nds", 0x2C84, 0x2C + .incbin "baserom.nds", 0x2CB0, 0x2C + .incbin "baserom.nds", 0x2CDC, 0x2C + .incbin "baserom.nds", 0x2D08, 0x2C + .incbin "baserom.nds", 0x2D34, 0x2C + .incbin "baserom.nds", 0x2D60, 0x2C + .incbin "baserom.nds", 0x2D8C, 0x2C + .incbin "baserom.nds", 0x2DB8, 0x2C + .incbin "baserom.nds", 0x2DE4, 0x2C + .incbin "baserom.nds", 0x2E10, 0x2C + .incbin "baserom.nds", 0x2E3C, 0x2C + .incbin "baserom.nds", 0x2E68, 0x2C + .incbin "baserom.nds", 0x2E94, 0x2C + .incbin "baserom.nds", 0x2EC0, 0x2C + .incbin "baserom.nds", 0x2EEC, 0x2C + .incbin "baserom.nds", 0x2F18, 0x2C + .incbin "baserom.nds", 0x2F44, 0x2C + .incbin "baserom.nds", 0x2F70, 0x2C + .incbin "baserom.nds", 0x2F9C, 0x2C + .incbin "baserom.nds", 0x2FC8, 0x2C + .incbin "baserom.nds", 0x2FF4, 0x2C + .incbin "baserom.nds", 0x3020, 0x2C + .incbin "baserom.nds", 0x304C, 0x2C + .incbin "baserom.nds", 0x3078, 0x2C + .incbin "baserom.nds", 0x30A4, 0x2C + .incbin "baserom.nds", 0x30D0, 0x2C + .incbin "baserom.nds", 0x30FC, 0x2C + .incbin "baserom.nds", 0x3128, 0x2C + .incbin "baserom.nds", 0x3154, 0x2C + .incbin "baserom.nds", 0x3180, 0x2C + .incbin "baserom.nds", 0x31AC, 0x2C + .incbin "baserom.nds", 0x31D8, 0x2C + .incbin "baserom.nds", 0x3204, 0x2C + .incbin "baserom.nds", 0x3230, 0x2C + .incbin "baserom.nds", 0x325C, 0x2C + .incbin "baserom.nds", 0x3288, 0x2C + .incbin "baserom.nds", 0x32B4, 0x2C + .incbin "baserom.nds", 0x32E0, 0x2C + .incbin "baserom.nds", 0x330C, 0x2C + .incbin "baserom.nds", 0x3338, 0x2C + .incbin "baserom.nds", 0x3364, 0x2C + .incbin "baserom.nds", 0x3390, 0x2C + .incbin "baserom.nds", 0x33BC, 0x2C + .incbin "baserom.nds", 0x33E8, 0x2C + .incbin "baserom.nds", 0x3414, 0x2C + .incbin "baserom.nds", 0x3440, 0x2C + .incbin "baserom.nds", 0x346C, 0x2C + .incbin "baserom.nds", 0x3498, 0x2C + .incbin "baserom.nds", 0x34C4, 0x2C + .incbin "baserom.nds", 0x34F0, 0x2C + .incbin "baserom.nds", 0x351C, 0x2C + .incbin "baserom.nds", 0x3548, 0x2C + .incbin "baserom.nds", 0x3574, 0x2C + .incbin "baserom.nds", 0x35A0, 0x2C + .incbin "baserom.nds", 0x35CC, 0x2C + .incbin "baserom.nds", 0x35F8, 0x2C + .incbin "baserom.nds", 0x3624, 0x2C + .incbin "baserom.nds", 0x3650, 0x2C + .incbin "baserom.nds", 0x367C, 0x2C + .incbin "baserom.nds", 0x36A8, 0x2C + .incbin "baserom.nds", 0x36D4, 0x2C + .incbin "baserom.nds", 0x3700, 0x2C + .incbin "baserom.nds", 0x372C, 0x2C + .incbin "baserom.nds", 0x3758, 0x2C + .incbin "baserom.nds", 0x3784, 0x2C + .incbin "baserom.nds", 0x37B0, 0x2C + .incbin "baserom.nds", 0x37DC, 0x2C + .incbin "baserom.nds", 0x3808, 0x2C + .incbin "baserom.nds", 0x3834, 0x2C + .incbin "baserom.nds", 0x3860, 0x2C + .incbin "baserom.nds", 0x388C, 0x2C + .incbin "baserom.nds", 0x38B8, 0x2C + .incbin "baserom.nds", 0x38E4, 0x2C + .incbin "baserom.nds", 0x3910, 0x2C + .incbin "baserom.nds", 0x393C, 0x2C + .incbin "baserom.nds", 0x3968, 0x2C + .incbin "baserom.nds", 0x3994, 0x2C + .incbin "baserom.nds", 0x39C0, 0x2C + .incbin "baserom.nds", 0x39EC, 0x2C + .incbin "baserom.nds", 0x3A18, 0x2C + .incbin "baserom.nds", 0x3A44, 0x2C + .incbin "baserom.nds", 0x3A70, 0x2C + .incbin "baserom.nds", 0x3A9C, 0x2C + .incbin "baserom.nds", 0x3AC8, 0x2C + .incbin "baserom.nds", 0x3AF4, 0x2C + .incbin "baserom.nds", 0x3B20, 0x2C + .incbin "baserom.nds", 0x3B4C, 0x2C + .incbin "baserom.nds", 0x3B78, 0x2C + .incbin "baserom.nds", 0x3BA4, 0x2C + .incbin "baserom.nds", 0x3BD0, 0x2C + .incbin "baserom.nds", 0x3BFC, 0x2C + .incbin "baserom.nds", 0x3C28, 0x2C + .incbin "baserom.nds", 0x3C54, 0x2C + .incbin "baserom.nds", 0x3C80, 0x2C + .incbin "baserom.nds", 0x3CAC, 0x2C + .incbin "baserom.nds", 0x3CD8, 0x2C + .incbin "baserom.nds", 0x3D04, 0x2C + .incbin "baserom.nds", 0x3D30, 0x2C + .incbin "baserom.nds", 0x3D5C, 0x2C + .incbin "baserom.nds", 0x3D88, 0x2C + .incbin "baserom.nds", 0x3DB4, 0x2C + .incbin "baserom.nds", 0x3DE0, 0x2C + .incbin "baserom.nds", 0x3E0C, 0x2C + .incbin "baserom.nds", 0x3E38, 0x2C + .incbin "baserom.nds", 0x3E64, 0x2C + .incbin "baserom.nds", 0x3E90, 0x2C + .incbin "baserom.nds", 0x3EBC, 0x2C + .incbin "baserom.nds", 0x3EE8, 0x2C + .incbin "baserom.nds", 0x3F14, 0x2C + .incbin "baserom.nds", 0x3F40, 0x2C + .incbin "baserom.nds", 0x3F6C, 0x2C + .incbin "baserom.nds", 0x3F98, 0x2C + .incbin "baserom.nds", 0x3FC4, 0x2C + .incbin "baserom.nds", 0x3FF0, 0x2C + .incbin "baserom.nds", 0x401C, 0x2C + .incbin "baserom.nds", 0x4048, 0x2C + .incbin "baserom.nds", 0x4074, 0x2C + .incbin "baserom.nds", 0x40A0, 0x2C + .incbin "baserom.nds", 0x40CC, 0x2C + .incbin "baserom.nds", 0x40F8, 0x2C + .incbin "baserom.nds", 0x4124, 0x2C + .incbin "baserom.nds", 0x4150, 0x2C + .incbin "baserom.nds", 0x417C, 0x2C + .incbin "baserom.nds", 0x41A8, 0x2C + .incbin "baserom.nds", 0x41D4, 0x2C + .incbin "baserom.nds", 0x4200, 0x2C + .incbin "baserom.nds", 0x422C, 0x2C + .incbin "baserom.nds", 0x4258, 0x2C + .incbin "baserom.nds", 0x4284, 0x2C + .incbin "baserom.nds", 0x42B0, 0x2C + .incbin "baserom.nds", 0x42DC, 0x2C + .incbin "baserom.nds", 0x4308, 0x2C + .incbin "baserom.nds", 0x4334, 0x2C + .incbin "baserom.nds", 0x4360, 0x2C + .incbin "baserom.nds", 0x438C, 0x2C + .incbin "baserom.nds", 0x43B8, 0x2C + .incbin "baserom.nds", 0x43E4, 0x2C + .incbin "baserom.nds", 0x4410, 0x2C + .incbin "baserom.nds", 0x443C, 0x2C + .incbin "baserom.nds", 0x4468, 0x2C + .incbin "baserom.nds", 0x4494, 0x2C + .incbin "baserom.nds", 0x44C0, 0x2C + .incbin "baserom.nds", 0x44EC, 0x2C + .incbin "baserom.nds", 0x4518, 0x2C + .incbin "baserom.nds", 0x4544, 0x2C + .incbin "baserom.nds", 0x4570, 0x2C + .incbin "baserom.nds", 0x459C, 0x2C + .incbin "baserom.nds", 0x45C8, 0x2C + .incbin "baserom.nds", 0x45F4, 0x2C + .incbin "baserom.nds", 0x4620, 0x2C + .incbin "baserom.nds", 0x464C, 0x2C + .incbin "baserom.nds", 0x4678, 0x2C + .incbin "baserom.nds", 0x46A4, 0x2C + .incbin "baserom.nds", 0x46D0, 0x2C + .incbin "baserom.nds", 0x46FC, 0x2C + .incbin "baserom.nds", 0x4728, 0x2C + .incbin "baserom.nds", 0x4754, 0x2C + .incbin "baserom.nds", 0x4780, 0x2C + .incbin "baserom.nds", 0x47AC, 0x2C + .incbin "baserom.nds", 0x47D8, 0x2C + .incbin "baserom.nds", 0x4804, 0x2C + .incbin "baserom.nds", 0x4830, 0x2C + .incbin "baserom.nds", 0x485C, 0x2C + .incbin "baserom.nds", 0x4888, 0x2C + .incbin "baserom.nds", 0x48B4, 0x2C + .incbin "baserom.nds", 0x48E0, 0x2C + .incbin "baserom.nds", 0x490C, 0x2C + .incbin "baserom.nds", 0x4938, 0x2C + .incbin "baserom.nds", 0x4964, 0x2C + .incbin "baserom.nds", 0x4990, 0x2C + .incbin "baserom.nds", 0x49BC, 0x2C + .incbin "baserom.nds", 0x49E8, 0x2C + .incbin "baserom.nds", 0x4A14, 0x2C + .incbin "baserom.nds", 0x4A40, 0x2C + .incbin "baserom.nds", 0x4A6C, 0x2C + .incbin "baserom.nds", 0x4A98, 0x2C + .incbin "baserom.nds", 0x4AC4, 0x2C + .incbin "baserom.nds", 0x4AF0, 0x2C + .incbin "baserom.nds", 0x4B1C, 0x2C + .incbin "baserom.nds", 0x4B48, 0x2C + .incbin "baserom.nds", 0x4B74, 0x2C + .incbin "baserom.nds", 0x4BA0, 0x2C + .incbin "baserom.nds", 0x4BCC, 0x2C + .incbin "baserom.nds", 0x4BF8, 0x2C + .incbin "baserom.nds", 0x4C24, 0x2C + .incbin "baserom.nds", 0x4C50, 0x2C + .incbin "baserom.nds", 0x4C7C, 0x2C + .incbin "baserom.nds", 0x4CA8, 0x2C + .incbin "baserom.nds", 0x4CD4, 0x2C + .incbin "baserom.nds", 0x4D00, 0x2C + .incbin "baserom.nds", 0x4D2C, 0x2C + .incbin "baserom.nds", 0x4D58, 0x2C + .incbin "baserom.nds", 0x4D84, 0x2C + .incbin "baserom.nds", 0x4DB0, 0x2C + .incbin "baserom.nds", 0x4DDC, 0x2C + .incbin "baserom.nds", 0x4E08, 0x2C + .incbin "baserom.nds", 0x4E34, 0x2C + .incbin "baserom.nds", 0x4E60, 0x2C + .incbin "baserom.nds", 0x4E8C, 0x2C + .incbin "baserom.nds", 0x4EB8, 0x2C + .incbin "baserom.nds", 0x4EE4, 0x2C + .incbin "baserom.nds", 0x4F10, 0x2C + .incbin "baserom.nds", 0x4F3C, 0x2C + .incbin "baserom.nds", 0x4F68, 0x2C + .incbin "baserom.nds", 0x4F94, 0x2C + .incbin "baserom.nds", 0x4FC0, 0x2C + .incbin "baserom.nds", 0x4FEC, 0x2C + .incbin "baserom.nds", 0x5018, 0x2C + .incbin "baserom.nds", 0x5044, 0x2C + .incbin "baserom.nds", 0x5070, 0x2C + .incbin "baserom.nds", 0x509C, 0x2C + .incbin "baserom.nds", 0x50C8, 0x2C + .incbin "baserom.nds", 0x50F4, 0x2C + .incbin "baserom.nds", 0x5120, 0x2C + .incbin "baserom.nds", 0x514C, 0x2C + .incbin "baserom.nds", 0x5178, 0x2C + .incbin "baserom.nds", 0x51A4, 0x2C + .incbin "baserom.nds", 0x51D0, 0x2C + .incbin "baserom.nds", 0x51FC, 0x2C + .incbin "baserom.nds", 0x5228, 0x2C + .incbin "baserom.nds", 0x5254, 0x2C + .incbin "baserom.nds", 0x5280, 0x2C + .incbin "baserom.nds", 0x52AC, 0x2C + .incbin "baserom.nds", 0x52D8, 0x2C + .incbin "baserom.nds", 0x5304, 0x2C + .incbin "baserom.nds", 0x5330, 0x2C + .incbin "baserom.nds", 0x535C, 0x2C + .incbin "baserom.nds", 0x5388, 0x2C + .incbin "baserom.nds", 0x53B4, 0x2C + .incbin "baserom.nds", 0x53E0, 0x2C + .incbin "baserom.nds", 0x540C, 0x2C + .incbin "baserom.nds", 0x5438, 0x2C + .incbin "baserom.nds", 0x5464, 0x2C + .incbin "baserom.nds", 0x5490, 0x2C + .incbin "baserom.nds", 0x54BC, 0x2C + .incbin "baserom.nds", 0x54E8, 0x2C + .incbin "baserom.nds", 0x5514, 0x2C + .incbin "baserom.nds", 0x5540, 0x2C + .incbin "baserom.nds", 0x556C, 0x2C + .incbin "baserom.nds", 0x5598, 0x2C + .incbin "baserom.nds", 0x55C4, 0x2C + .incbin "baserom.nds", 0x55F0, 0x2C + .balign 4, 255 diff --git a/narc/personal/pms.narc.s b/narc/personal/pms.narc.s new file mode 100644 index 00000000..09cc1e1f --- /dev/null +++ b/narc/personal/pms.narc.s @@ -0,0 +1 @@ + .text diff --git a/narc/personal/wotbl.narc.s b/narc/personal/wotbl.narc.s new file mode 100644 index 00000000..d5476d96 --- /dev/null +++ b/narc/personal/wotbl.narc.s @@ -0,0 +1,1028 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00004940 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000FB4 ; chunk size + .short 501 ; number of files + .balign 4 + .word 0x00000000, 0x00000004 + .word 0x00000004, 0x00000024 + .word 0x00000024, 0x00000048 + .word 0x00000048, 0x00000070 + .word 0x00000070, 0x00000088 + .word 0x00000088, 0x000000A0 + .word 0x000000A0, 0x000000C8 + .word 0x000000C8, 0x000000E4 + .word 0x000000E4, 0x00000104 + .word 0x00000104, 0x00000128 + .word 0x00000128, 0x00000130 + .word 0x00000130, 0x00000138 + .word 0x00000138, 0x00000158 + .word 0x00000158, 0x00000160 + .word 0x00000160, 0x00000168 + .word 0x00000168, 0x00000184 + .word 0x00000184, 0x000001A0 + .word 0x000001A0, 0x000001C0 + .word 0x000001C0, 0x000001E4 + .word 0x000001E4, 0x00000200 + .word 0x00000200, 0x00000224 + .word 0x00000224, 0x0000023C + .word 0x0000023C, 0x0000025C + .word 0x0000025C, 0x0000027C + .word 0x0000027C, 0x000002A8 + .word 0x000002A8, 0x000002C4 + .word 0x000002C4, 0x000002D0 + .word 0x000002D0, 0x000002EC + .word 0x000002EC, 0x00000310 + .word 0x00000310, 0x0000032C + .word 0x0000032C, 0x00000348 + .word 0x00000348, 0x00000358 + .word 0x00000358, 0x00000374 + .word 0x00000374, 0x00000390 + .word 0x00000390, 0x000003A0 + .word 0x000003A0, 0x000003C4 + .word 0x000003C4, 0x000003D0 + .word 0x000003D0, 0x000003F0 + .word 0x000003F0, 0x000003FC + .word 0x000003FC, 0x00000418 + .word 0x00000418, 0x00000424 + .word 0x00000424, 0x0000043C + .word 0x0000043C, 0x0000045C + .word 0x0000045C, 0x00000478 + .word 0x00000478, 0x00000498 + .word 0x00000498, 0x000004A8 + .word 0x000004A8, 0x000004C0 + .word 0x000004C0, 0x000004E0 + .word 0x000004E0, 0x00000500 + .word 0x00000500, 0x00000528 + .word 0x00000528, 0x00000544 + .word 0x00000544, 0x00000568 + .word 0x00000568, 0x00000588 + .word 0x00000588, 0x000005AC + .word 0x000005AC, 0x000005C8 + .word 0x000005C8, 0x000005E8 + .word 0x000005E8, 0x00000608 + .word 0x00000608, 0x0000062C + .word 0x0000062C, 0x0000064C + .word 0x0000064C, 0x0000065C + .word 0x0000065C, 0x00000678 + .word 0x00000678, 0x00000698 + .word 0x00000698, 0x000006A8 + .word 0x000006A8, 0x000006AC + .word 0x000006AC, 0x000006CC + .word 0x000006CC, 0x000006EC + .word 0x000006EC, 0x00000708 + .word 0x00000708, 0x00000728 + .word 0x00000728, 0x00000748 + .word 0x00000748, 0x00000764 + .word 0x00000764, 0x00000784 + .word 0x00000784, 0x00000798 + .word 0x00000798, 0x000007B4 + .word 0x000007B4, 0x000007D4 + .word 0x000007D4, 0x000007F0 + .word 0x000007F0, 0x00000810 + .word 0x00000810, 0x00000830 + .word 0x00000830, 0x00000848 + .word 0x00000848, 0x0000086C + .word 0x0000086C, 0x0000088C + .word 0x0000088C, 0x000008B0 + .word 0x000008B0, 0x000008D0 + .word 0x000008D0, 0x000008F8 + .word 0x000008F8, 0x00000918 + .word 0x00000918, 0x00000934 + .word 0x00000934, 0x00000954 + .word 0x00000954, 0x00000978 + .word 0x00000978, 0x000009A4 + .word 0x000009A4, 0x000009C4 + .word 0x000009C4, 0x000009E8 + .word 0x000009E8, 0x00000A04 + .word 0x00000A04, 0x00000A14 + .word 0x00000A14, 0x00000A34 + .word 0x00000A34, 0x00000A58 + .word 0x00000A58, 0x00000A7C + .word 0x00000A7C, 0x00000AA0 + .word 0x00000AA0, 0x00000AC0 + .word 0x00000AC0, 0x00000AE8 + .word 0x00000AE8, 0x00000B08 + .word 0x00000B08, 0x00000B2C + .word 0x00000B2C, 0x00000B4C + .word 0x00000B4C, 0x00000B70 + .word 0x00000B70, 0x00000B90 + .word 0x00000B90, 0x00000BA4 + .word 0x00000BA4, 0x00000BC4 + .word 0x00000BC4, 0x00000BE8 + .word 0x00000BE8, 0x00000C0C + .word 0x00000C0C, 0x00000C30 + .word 0x00000C30, 0x00000C50 + .word 0x00000C50, 0x00000C6C + .word 0x00000C6C, 0x00000C8C + .word 0x00000C8C, 0x00000CA4 + .word 0x00000CA4, 0x00000CC4 + .word 0x00000CC4, 0x00000CE4 + .word 0x00000CE4, 0x00000D08 + .word 0x00000D08, 0x00000D28 + .word 0x00000D28, 0x00000D44 + .word 0x00000D44, 0x00000D64 + .word 0x00000D64, 0x00000D80 + .word 0x00000D80, 0x00000DA0 + .word 0x00000DA0, 0x00000DC0 + .word 0x00000DC0, 0x00000DCC + .word 0x00000DCC, 0x00000DF8 + .word 0x00000DF8, 0x00000E1C + .word 0x00000E1C, 0x00000E40 + .word 0x00000E40, 0x00000E5C + .word 0x00000E5C, 0x00000E78 + .word 0x00000E78, 0x00000E98 + .word 0x00000E98, 0x00000EB4 + .word 0x00000EB4, 0x00000EBC + .word 0x00000EBC, 0x00000ED4 + .word 0x00000ED4, 0x00000EF4 + .word 0x00000EF4, 0x00000EF8 + .word 0x00000EF8, 0x00000F10 + .word 0x00000F10, 0x00000F2C + .word 0x00000F2C, 0x00000F48 + .word 0x00000F48, 0x00000F64 + .word 0x00000F64, 0x00000F84 + .word 0x00000F84, 0x00000FA0 + .word 0x00000FA0, 0x00000FC0 + .word 0x00000FC0, 0x00000FDC + .word 0x00000FDC, 0x00000FFC + .word 0x00000FFC, 0x00001020 + .word 0x00001020, 0x00001040 + .word 0x00001040, 0x00001060 + .word 0x00001060, 0x00001080 + .word 0x00001080, 0x000010A0 + .word 0x000010A0, 0x000010BC + .word 0x000010BC, 0x000010DC + .word 0x000010DC, 0x00001104 + .word 0x00001104, 0x00001128 + .word 0x00001128, 0x00001144 + .word 0x00001144, 0x00001164 + .word 0x00001164, 0x00001188 + .word 0x00001188, 0x000011AC + .word 0x000011AC, 0x000011C8 + .word 0x000011C8, 0x000011E8 + .word 0x000011E8, 0x0000120C + .word 0x0000120C, 0x0000122C + .word 0x0000122C, 0x0000124C + .word 0x0000124C, 0x00001270 + .word 0x00001270, 0x00001290 + .word 0x00001290, 0x000012B4 + .word 0x000012B4, 0x000012D4 + .word 0x000012D4, 0x000012F8 + .word 0x000012F8, 0x00001314 + .word 0x00001314, 0x00001334 + .word 0x00001334, 0x00001354 + .word 0x00001354, 0x00001378 + .word 0x00001378, 0x00001398 + .word 0x00001398, 0x000013B8 + .word 0x000013B8, 0x000013E0 + .word 0x000013E0, 0x000013F0 + .word 0x000013F0, 0x00001400 + .word 0x00001400, 0x00001410 + .word 0x00001410, 0x0000142C + .word 0x0000142C, 0x00001450 + .word 0x00001450, 0x00001470 + .word 0x00001470, 0x00001494 + .word 0x00001494, 0x000014AC + .word 0x000014AC, 0x000014C8 + .word 0x000014C8, 0x000014EC + .word 0x000014EC, 0x000014FC + .word 0x000014FC, 0x00001514 + .word 0x00001514, 0x00001534 + .word 0x00001534, 0x00001558 + .word 0x00001558, 0x00001568 + .word 0x00001568, 0x0000158C + .word 0x0000158C, 0x000015B4 + .word 0x000015B4, 0x000015DC + .word 0x000015DC, 0x000015FC + .word 0x000015FC, 0x00001618 + .word 0x00001618, 0x00001638 + .word 0x00001638, 0x0000165C + .word 0x0000165C, 0x00001678 + .word 0x00001678, 0x00001698 + .word 0x00001698, 0x000016B4 + .word 0x000016B4, 0x000016D0 + .word 0x000016D0, 0x000016E8 + .word 0x000016E8, 0x0000170C + .word 0x0000170C, 0x00001728 + .word 0x00001728, 0x0000172C + .word 0x0000172C, 0x00001738 + .word 0x00001738, 0x0000175C + .word 0x0000175C, 0x00001778 + .word 0x00001778, 0x000017A0 + .word 0x000017A0, 0x000017C0 + .word 0x000017C0, 0x000017DC + .word 0x000017DC, 0x00001804 + .word 0x00001804, 0x00001824 + .word 0x00001824, 0x00001844 + .word 0x00001844, 0x0000186C + .word 0x0000186C, 0x00001890 + .word 0x00001890, 0x000018A4 + .word 0x000018A4, 0x000018C4 + .word 0x000018C4, 0x000018E0 + .word 0x000018E0, 0x00001900 + .word 0x00001900, 0x00001920 + .word 0x00001920, 0x0000193C + .word 0x0000193C, 0x0000195C + .word 0x0000195C, 0x0000197C + .word 0x0000197C, 0x000019A4 + .word 0x000019A4, 0x000019C4 + .word 0x000019C4, 0x000019DC + .word 0x000019DC, 0x00001A00 + .word 0x00001A00, 0x00001A04 + .word 0x00001A04, 0x00001A2C + .word 0x00001A2C, 0x00001A48 + .word 0x00001A48, 0x00001A68 + .word 0x00001A68, 0x00001A8C + .word 0x00001A8C, 0x00001AB0 + .word 0x00001AB0, 0x00001ACC + .word 0x00001ACC, 0x00001AF0 + .word 0x00001AF0, 0x00001B14 + .word 0x00001B14, 0x00001B34 + .word 0x00001B34, 0x00001B4C + .word 0x00001B4C, 0x00001B54 + .word 0x00001B54, 0x00001B74 + .word 0x00001B74, 0x00001B94 + .word 0x00001B94, 0x00001BB0 + .word 0x00001BB0, 0x00001BCC + .word 0x00001BCC, 0x00001BE8 + .word 0x00001BE8, 0x00001C08 + .word 0x00001C08, 0x00001C24 + .word 0x00001C24, 0x00001C40 + .word 0x00001C40, 0x00001C5C + .word 0x00001C5C, 0x00001C78 + .word 0x00001C78, 0x00001C98 + .word 0x00001C98, 0x00001CC0 + .word 0x00001CC0, 0x00001CE0 + .word 0x00001CE0, 0x00001D00 + .word 0x00001D00, 0x00001D20 + .word 0x00001D20, 0x00001D3C + .word 0x00001D3C, 0x00001D5C + .word 0x00001D5C, 0x00001D80 + .word 0x00001D80, 0x00001D98 + .word 0x00001D98, 0x00001DB8 + .word 0x00001DB8, 0x00001DDC + .word 0x00001DDC, 0x00001DF8 + .word 0x00001DF8, 0x00001E18 + .word 0x00001E18, 0x00001E3C + .word 0x00001E3C, 0x00001E5C + .word 0x00001E5C, 0x00001E80 + .word 0x00001E80, 0x00001E9C + .word 0x00001E9C, 0x00001EC0 + .word 0x00001EC0, 0x00001EC8 + .word 0x00001EC8, 0x00001ED0 + .word 0x00001ED0, 0x00001EE8 + .word 0x00001EE8, 0x00001EF0 + .word 0x00001EF0, 0x00001F08 + .word 0x00001F08, 0x00001F20 + .word 0x00001F20, 0x00001F38 + .word 0x00001F38, 0x00001F44 + .word 0x00001F44, 0x00001F54 + .word 0x00001F54, 0x00001F6C + .word 0x00001F6C, 0x00001F78 + .word 0x00001F78, 0x00001F90 + .word 0x00001F90, 0x00001FAC + .word 0x00001FAC, 0x00001FC8 + .word 0x00001FC8, 0x00001FEC + .word 0x00001FEC, 0x00002008 + .word 0x00002008, 0x0000202C + .word 0x0000202C, 0x00002050 + .word 0x00002050, 0x00002064 + .word 0x00002064, 0x00002084 + .word 0x00002084, 0x000020A0 + .word 0x000020A0, 0x000020C4 + .word 0x000020C4, 0x000020D8 + .word 0x000020D8, 0x000020F4 + .word 0x000020F4, 0x00002114 + .word 0x00002114, 0x0000212C + .word 0x0000212C, 0x00002150 + .word 0x00002150, 0x0000216C + .word 0x0000216C, 0x00002184 + .word 0x00002184, 0x000021A4 + .word 0x000021A4, 0x000021D0 + .word 0x000021D0, 0x000021F4 + .word 0x000021F4, 0x0000221C + .word 0x0000221C, 0x0000222C + .word 0x0000222C, 0x00002248 + .word 0x00002248, 0x0000226C + .word 0x0000226C, 0x00002278 + .word 0x00002278, 0x000022A0 + .word 0x000022A0, 0x000022C0 + .word 0x000022C0, 0x000022E0 + .word 0x000022E0, 0x00002304 + .word 0x00002304, 0x00002328 + .word 0x00002328, 0x00002348 + .word 0x00002348, 0x00002374 + .word 0x00002374, 0x00002390 + .word 0x00002390, 0x000023B4 + .word 0x000023B4, 0x000023D8 + .word 0x000023D8, 0x000023FC + .word 0x000023FC, 0x00002418 + .word 0x00002418, 0x00002434 + .word 0x00002434, 0x00002458 + .word 0x00002458, 0x00002478 + .word 0x00002478, 0x000024A0 + .word 0x000024A0, 0x000024BC + .word 0x000024BC, 0x000024E4 + .word 0x000024E4, 0x00002504 + .word 0x00002504, 0x0000252C + .word 0x0000252C, 0x00002548 + .word 0x00002548, 0x00002568 + .word 0x00002568, 0x00002588 + .word 0x00002588, 0x000025A8 + .word 0x000025A8, 0x000025CC + .word 0x000025CC, 0x000025E8 + .word 0x000025E8, 0x00002604 + .word 0x00002604, 0x00002620 + .word 0x00002620, 0x0000263C + .word 0x0000263C, 0x00002660 + .word 0x00002660, 0x00002688 + .word 0x00002688, 0x000026A4 + .word 0x000026A4, 0x000026CC + .word 0x000026CC, 0x000026EC + .word 0x000026EC, 0x00002708 + .word 0x00002708, 0x00002724 + .word 0x00002724, 0x00002740 + .word 0x00002740, 0x00002760 + .word 0x00002760, 0x00002788 + .word 0x00002788, 0x000027A4 + .word 0x000027A4, 0x000027C8 + .word 0x000027C8, 0x000027E8 + .word 0x000027E8, 0x00002810 + .word 0x00002810, 0x0000282C + .word 0x0000282C, 0x0000284C + .word 0x0000284C, 0x00002868 + .word 0x00002868, 0x00002888 + .word 0x00002888, 0x00002890 + .word 0x00002890, 0x000028B0 + .word 0x000028B0, 0x000028C4 + .word 0x000028C4, 0x000028E8 + .word 0x000028E8, 0x00002908 + .word 0x00002908, 0x0000292C + .word 0x0000292C, 0x00002948 + .word 0x00002948, 0x00002974 + .word 0x00002974, 0x00002994 + .word 0x00002994, 0x000029B0 + .word 0x000029B0, 0x000029D4 + .word 0x000029D4, 0x000029E4 + .word 0x000029E4, 0x00002A00 + .word 0x00002A00, 0x00002A20 + .word 0x00002A20, 0x00002A3C + .word 0x00002A3C, 0x00002A5C + .word 0x00002A5C, 0x00002A80 + .word 0x00002A80, 0x00002A8C + .word 0x00002A8C, 0x00002AA8 + .word 0x00002AA8, 0x00002AC4 + .word 0x00002AC4, 0x00002AE0 + .word 0x00002AE0, 0x00002AFC + .word 0x00002AFC, 0x00002B18 + .word 0x00002B18, 0x00002B3C + .word 0x00002B3C, 0x00002B64 + .word 0x00002B64, 0x00002B68 + .word 0x00002B68, 0x00002B88 + .word 0x00002B88, 0x00002BAC + .word 0x00002BAC, 0x00002BC8 + .word 0x00002BC8, 0x00002BE4 + .word 0x00002BE4, 0x00002C04 + .word 0x00002C04, 0x00002C24 + .word 0x00002C24, 0x00002C44 + .word 0x00002C44, 0x00002C60 + .word 0x00002C60, 0x00002C7C + .word 0x00002C7C, 0x00002C98 + .word 0x00002C98, 0x00002CBC + .word 0x00002CBC, 0x00002CDC + .word 0x00002CDC, 0x00002CF8 + .word 0x00002CF8, 0x00002D14 + .word 0x00002D14, 0x00002D38 + .word 0x00002D38, 0x00002D54 + .word 0x00002D54, 0x00002D74 + .word 0x00002D74, 0x00002D94 + .word 0x00002D94, 0x00002DB0 + .word 0x00002DB0, 0x00002DD0 + .word 0x00002DD0, 0x00002DF4 + .word 0x00002DF4, 0x00002E0C + .word 0x00002E0C, 0x00002E28 + .word 0x00002E28, 0x00002E48 + .word 0x00002E48, 0x00002E60 + .word 0x00002E60, 0x00002E7C + .word 0x00002E7C, 0x00002E84 + .word 0x00002E84, 0x00002E9C + .word 0x00002E9C, 0x00002EB4 + .word 0x00002EB4, 0x00002ED0 + .word 0x00002ED0, 0x00002EEC + .word 0x00002EEC, 0x00002EFC + .word 0x00002EFC, 0x00002F08 + .word 0x00002F08, 0x00002F20 + .word 0x00002F20, 0x00002F3C + .word 0x00002F3C, 0x00002F54 + .word 0x00002F54, 0x00002F74 + .word 0x00002F74, 0x00002F7C + .word 0x00002F7C, 0x00002F98 + .word 0x00002F98, 0x00002FB4 + .word 0x00002FB4, 0x00002FBC + .word 0x00002FBC, 0x00002FE0 + .word 0x00002FE0, 0x00002FF8 + .word 0x00002FF8, 0x00003010 + .word 0x00003010, 0x00003030 + .word 0x00003030, 0x00003048 + .word 0x00003048, 0x00003064 + .word 0x00003064, 0x0000307C + .word 0x0000307C, 0x00003098 + .word 0x00003098, 0x000030BC + .word 0x000030BC, 0x000030D8 + .word 0x000030D8, 0x000030F8 + .word 0x000030F8, 0x00003118 + .word 0x00003118, 0x0000313C + .word 0x0000313C, 0x0000314C + .word 0x0000314C, 0x00003160 + .word 0x00003160, 0x0000317C + .word 0x0000317C, 0x0000319C + .word 0x0000319C, 0x000031AC + .word 0x000031AC, 0x000031C4 + .word 0x000031C4, 0x000031E0 + .word 0x000031E0, 0x000031FC + .word 0x000031FC, 0x00003224 + .word 0x00003224, 0x00003240 + .word 0x00003240, 0x00003268 + .word 0x00003268, 0x00003274 + .word 0x00003274, 0x00003290 + .word 0x00003290, 0x000032AC + .word 0x000032AC, 0x000032C4 + .word 0x000032C4, 0x000032DC + .word 0x000032DC, 0x000032FC + .word 0x000032FC, 0x0000331C + .word 0x0000331C, 0x00003330 + .word 0x00003330, 0x00003354 + .word 0x00003354, 0x0000336C + .word 0x0000336C, 0x0000338C + .word 0x0000338C, 0x000033A4 + .word 0x000033A4, 0x000033C8 + .word 0x000033C8, 0x000033E8 + .word 0x000033E8, 0x0000340C + .word 0x0000340C, 0x00003428 + .word 0x00003428, 0x00003444 + .word 0x00003444, 0x00003464 + .word 0x00003464, 0x00003480 + .word 0x00003480, 0x0000349C + .word 0x0000349C, 0x000034BC + .word 0x000034BC, 0x000034E0 + .word 0x000034E0, 0x00003508 + .word 0x00003508, 0x00003528 + .word 0x00003528, 0x0000354C + .word 0x0000354C, 0x00003574 + .word 0x00003574, 0x00003598 + .word 0x00003598, 0x000035BC + .word 0x000035BC, 0x000035C8 + .word 0x000035C8, 0x000035F0 + .word 0x000035F0, 0x0000360C + .word 0x0000360C, 0x00003628 + .word 0x00003628, 0x00003650 + .word 0x00003650, 0x00003678 + .word 0x00003678, 0x0000369C + .word 0x0000369C, 0x000036C4 + .word 0x000036C4, 0x000036EC + .word 0x000036EC, 0x00003718 + .word 0x00003718, 0x00003738 + .word 0x00003738, 0x00003754 + .word 0x00003754, 0x0000376C + .word 0x0000376C, 0x00003784 + .word 0x00003784, 0x0000379C + .word 0x0000379C, 0x000037B4 + .word 0x000037B4, 0x000037CC + .word 0x000037CC, 0x000037E8 + .word 0x000037E8, 0x00003800 + .word 0x00003800, 0x00003818 + .word 0x00003818, 0x00003834 + .word 0x00003834, 0x0000384C + .word 0x0000384C, 0x00003868 + .word 0x00003868, 0x00003884 + .word 0x00003884, 0x000038A0 + .word 0x000038A0, 0x000038C0 + .word 0x000038C0, 0x000038C4 + .word 0x000038C4, 0x000038C8 + .word 0x000038C8, 0x000038E8 + .word 0x000038E8, 0x0000390C + .word 0x0000390C, 0x0000392C + .word 0x0000392C, 0x00003948 + .word 0x00003948, 0x00003964 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0000396C ; chunk size + .incbin "baserom.nds", 0x0, 0x4 + .incbin "baserom.nds", 0x4, 0x20 + .incbin "baserom.nds", 0x24, 0x24 + .incbin "baserom.nds", 0x48, 0x28 + .incbin "baserom.nds", 0x70, 0x18 + .incbin "baserom.nds", 0x88, 0x18 + .incbin "baserom.nds", 0xA0, 0x28 + .incbin "baserom.nds", 0xC8, 0x1C + .incbin "baserom.nds", 0xE4, 0x20 + .incbin "baserom.nds", 0x104, 0x24 + .incbin "baserom.nds", 0x128, 0x8 + .incbin "baserom.nds", 0x130, 0x8 + .incbin "baserom.nds", 0x138, 0x20 + .incbin "baserom.nds", 0x158, 0x8 + .incbin "baserom.nds", 0x160, 0x8 + .incbin "baserom.nds", 0x168, 0x1C + .incbin "baserom.nds", 0x184, 0x1C + .incbin "baserom.nds", 0x1A0, 0x20 + .incbin "baserom.nds", 0x1C0, 0x24 + .incbin "baserom.nds", 0x1E4, 0x1C + .incbin "baserom.nds", 0x200, 0x24 + .incbin "baserom.nds", 0x224, 0x18 + .incbin "baserom.nds", 0x23C, 0x20 + .incbin "baserom.nds", 0x25C, 0x20 + .incbin "baserom.nds", 0x27C, 0x2C + .incbin "baserom.nds", 0x2A8, 0x1C + .incbin "baserom.nds", 0x2C4, 0xC + .incbin "baserom.nds", 0x2D0, 0x1C + .incbin "baserom.nds", 0x2EC, 0x24 + .incbin "baserom.nds", 0x310, 0x1C + .incbin "baserom.nds", 0x32C, 0x1C + .incbin "baserom.nds", 0x348, 0x10 + .incbin "baserom.nds", 0x358, 0x1C + .incbin "baserom.nds", 0x374, 0x1C + .incbin "baserom.nds", 0x390, 0x10 + .incbin "baserom.nds", 0x3A0, 0x24 + .incbin "baserom.nds", 0x3C4, 0xC + .incbin "baserom.nds", 0x3D0, 0x20 + .incbin "baserom.nds", 0x3F0, 0xC + .incbin "baserom.nds", 0x3FC, 0x1C + .incbin "baserom.nds", 0x418, 0xC + .incbin "baserom.nds", 0x424, 0x18 + .incbin "baserom.nds", 0x43C, 0x20 + .incbin "baserom.nds", 0x45C, 0x1C + .incbin "baserom.nds", 0x478, 0x20 + .incbin "baserom.nds", 0x498, 0x10 + .incbin "baserom.nds", 0x4A8, 0x18 + .incbin "baserom.nds", 0x4C0, 0x20 + .incbin "baserom.nds", 0x4E0, 0x20 + .incbin "baserom.nds", 0x500, 0x28 + .incbin "baserom.nds", 0x528, 0x1C + .incbin "baserom.nds", 0x544, 0x24 + .incbin "baserom.nds", 0x568, 0x20 + .incbin "baserom.nds", 0x588, 0x24 + .incbin "baserom.nds", 0x5AC, 0x1C + .incbin "baserom.nds", 0x5C8, 0x20 + .incbin "baserom.nds", 0x5E8, 0x20 + .incbin "baserom.nds", 0x608, 0x24 + .incbin "baserom.nds", 0x62C, 0x20 + .incbin "baserom.nds", 0x64C, 0x10 + .incbin "baserom.nds", 0x65C, 0x1C + .incbin "baserom.nds", 0x678, 0x20 + .incbin "baserom.nds", 0x698, 0x10 + .incbin "baserom.nds", 0x6A8, 0x4 + .incbin "baserom.nds", 0x6AC, 0x20 + .incbin "baserom.nds", 0x6CC, 0x20 + .incbin "baserom.nds", 0x6EC, 0x1C + .incbin "baserom.nds", 0x708, 0x20 + .incbin "baserom.nds", 0x728, 0x20 + .incbin "baserom.nds", 0x748, 0x1C + .incbin "baserom.nds", 0x764, 0x20 + .incbin "baserom.nds", 0x784, 0x14 + .incbin "baserom.nds", 0x798, 0x1C + .incbin "baserom.nds", 0x7B4, 0x20 + .incbin "baserom.nds", 0x7D4, 0x1C + .incbin "baserom.nds", 0x7F0, 0x20 + .incbin "baserom.nds", 0x810, 0x20 + .incbin "baserom.nds", 0x830, 0x18 + .incbin "baserom.nds", 0x848, 0x24 + .incbin "baserom.nds", 0x86C, 0x20 + .incbin "baserom.nds", 0x88C, 0x24 + .incbin "baserom.nds", 0x8B0, 0x20 + .incbin "baserom.nds", 0x8D0, 0x28 + .incbin "baserom.nds", 0x8F8, 0x20 + .incbin "baserom.nds", 0x918, 0x1C + .incbin "baserom.nds", 0x934, 0x20 + .incbin "baserom.nds", 0x954, 0x24 + .incbin "baserom.nds", 0x978, 0x2C + .incbin "baserom.nds", 0x9A4, 0x20 + .incbin "baserom.nds", 0x9C4, 0x24 + .incbin "baserom.nds", 0x9E8, 0x1C + .incbin "baserom.nds", 0xA04, 0x10 + .incbin "baserom.nds", 0xA14, 0x20 + .incbin "baserom.nds", 0xA34, 0x24 + .incbin "baserom.nds", 0xA58, 0x24 + .incbin "baserom.nds", 0xA7C, 0x24 + .incbin "baserom.nds", 0xAA0, 0x20 + .incbin "baserom.nds", 0xAC0, 0x28 + .incbin "baserom.nds", 0xAE8, 0x20 + .incbin "baserom.nds", 0xB08, 0x24 + .incbin "baserom.nds", 0xB2C, 0x20 + .incbin "baserom.nds", 0xB4C, 0x24 + .incbin "baserom.nds", 0xB70, 0x20 + .incbin "baserom.nds", 0xB90, 0x14 + .incbin "baserom.nds", 0xBA4, 0x20 + .incbin "baserom.nds", 0xBC4, 0x24 + .incbin "baserom.nds", 0xBE8, 0x24 + .incbin "baserom.nds", 0xC0C, 0x24 + .incbin "baserom.nds", 0xC30, 0x20 + .incbin "baserom.nds", 0xC50, 0x1C + .incbin "baserom.nds", 0xC6C, 0x20 + .incbin "baserom.nds", 0xC8C, 0x18 + .incbin "baserom.nds", 0xCA4, 0x20 + .incbin "baserom.nds", 0xCC4, 0x20 + .incbin "baserom.nds", 0xCE4, 0x24 + .incbin "baserom.nds", 0xD08, 0x20 + .incbin "baserom.nds", 0xD28, 0x1C + .incbin "baserom.nds", 0xD44, 0x20 + .incbin "baserom.nds", 0xD64, 0x1C + .incbin "baserom.nds", 0xD80, 0x20 + .incbin "baserom.nds", 0xDA0, 0x20 + .incbin "baserom.nds", 0xDC0, 0xC + .incbin "baserom.nds", 0xDCC, 0x2C + .incbin "baserom.nds", 0xDF8, 0x24 + .incbin "baserom.nds", 0xE1C, 0x24 + .incbin "baserom.nds", 0xE40, 0x1C + .incbin "baserom.nds", 0xE5C, 0x1C + .incbin "baserom.nds", 0xE78, 0x20 + .incbin "baserom.nds", 0xE98, 0x1C + .incbin "baserom.nds", 0xEB4, 0x8 + .incbin "baserom.nds", 0xEBC, 0x18 + .incbin "baserom.nds", 0xED4, 0x20 + .incbin "baserom.nds", 0xEF4, 0x4 + .incbin "baserom.nds", 0xEF8, 0x18 + .incbin "baserom.nds", 0xF10, 0x1C + .incbin "baserom.nds", 0xF2C, 0x1C + .incbin "baserom.nds", 0xF48, 0x1C + .incbin "baserom.nds", 0xF64, 0x20 + .incbin "baserom.nds", 0xF84, 0x1C + .incbin "baserom.nds", 0xFA0, 0x20 + .incbin "baserom.nds", 0xFC0, 0x1C + .incbin "baserom.nds", 0xFDC, 0x20 + .incbin "baserom.nds", 0xFFC, 0x24 + .incbin "baserom.nds", 0x1020, 0x20 + .incbin "baserom.nds", 0x1040, 0x20 + .incbin "baserom.nds", 0x1060, 0x20 + .incbin "baserom.nds", 0x1080, 0x20 + .incbin "baserom.nds", 0x10A0, 0x1C + .incbin "baserom.nds", 0x10BC, 0x20 + .incbin "baserom.nds", 0x10DC, 0x28 + .incbin "baserom.nds", 0x1104, 0x24 + .incbin "baserom.nds", 0x1128, 0x1C + .incbin "baserom.nds", 0x1144, 0x20 + .incbin "baserom.nds", 0x1164, 0x24 + .incbin "baserom.nds", 0x1188, 0x24 + .incbin "baserom.nds", 0x11AC, 0x1C + .incbin "baserom.nds", 0x11C8, 0x20 + .incbin "baserom.nds", 0x11E8, 0x24 + .incbin "baserom.nds", 0x120C, 0x20 + .incbin "baserom.nds", 0x122C, 0x20 + .incbin "baserom.nds", 0x124C, 0x24 + .incbin "baserom.nds", 0x1270, 0x20 + .incbin "baserom.nds", 0x1290, 0x24 + .incbin "baserom.nds", 0x12B4, 0x20 + .incbin "baserom.nds", 0x12D4, 0x24 + .incbin "baserom.nds", 0x12F8, 0x1C + .incbin "baserom.nds", 0x1314, 0x20 + .incbin "baserom.nds", 0x1334, 0x20 + .incbin "baserom.nds", 0x1354, 0x24 + .incbin "baserom.nds", 0x1378, 0x20 + .incbin "baserom.nds", 0x1398, 0x20 + .incbin "baserom.nds", 0x13B8, 0x28 + .incbin "baserom.nds", 0x13E0, 0x10 + .incbin "baserom.nds", 0x13F0, 0x10 + .incbin "baserom.nds", 0x1400, 0x10 + .incbin "baserom.nds", 0x1410, 0x1C + .incbin "baserom.nds", 0x142C, 0x24 + .incbin "baserom.nds", 0x1450, 0x20 + .incbin "baserom.nds", 0x1470, 0x24 + .incbin "baserom.nds", 0x1494, 0x18 + .incbin "baserom.nds", 0x14AC, 0x1C + .incbin "baserom.nds", 0x14C8, 0x24 + .incbin "baserom.nds", 0x14EC, 0x10 + .incbin "baserom.nds", 0x14FC, 0x18 + .incbin "baserom.nds", 0x1514, 0x20 + .incbin "baserom.nds", 0x1534, 0x24 + .incbin "baserom.nds", 0x1558, 0x10 + .incbin "baserom.nds", 0x1568, 0x24 + .incbin "baserom.nds", 0x158C, 0x28 + .incbin "baserom.nds", 0x15B4, 0x28 + .incbin "baserom.nds", 0x15DC, 0x20 + .incbin "baserom.nds", 0x15FC, 0x1C + .incbin "baserom.nds", 0x1618, 0x20 + .incbin "baserom.nds", 0x1638, 0x24 + .incbin "baserom.nds", 0x165C, 0x1C + .incbin "baserom.nds", 0x1678, 0x20 + .incbin "baserom.nds", 0x1698, 0x1C + .incbin "baserom.nds", 0x16B4, 0x1C + .incbin "baserom.nds", 0x16D0, 0x18 + .incbin "baserom.nds", 0x16E8, 0x24 + .incbin "baserom.nds", 0x170C, 0x1C + .incbin "baserom.nds", 0x1728, 0x4 + .incbin "baserom.nds", 0x172C, 0xC + .incbin "baserom.nds", 0x1738, 0x24 + .incbin "baserom.nds", 0x175C, 0x1C + .incbin "baserom.nds", 0x1778, 0x28 + .incbin "baserom.nds", 0x17A0, 0x20 + .incbin "baserom.nds", 0x17C0, 0x1C + .incbin "baserom.nds", 0x17DC, 0x28 + .incbin "baserom.nds", 0x1804, 0x20 + .incbin "baserom.nds", 0x1824, 0x20 + .incbin "baserom.nds", 0x1844, 0x28 + .incbin "baserom.nds", 0x186C, 0x24 + .incbin "baserom.nds", 0x1890, 0x14 + .incbin "baserom.nds", 0x18A4, 0x20 + .incbin "baserom.nds", 0x18C4, 0x1C + .incbin "baserom.nds", 0x18E0, 0x20 + .incbin "baserom.nds", 0x1900, 0x20 + .incbin "baserom.nds", 0x1920, 0x1C + .incbin "baserom.nds", 0x193C, 0x20 + .incbin "baserom.nds", 0x195C, 0x20 + .incbin "baserom.nds", 0x197C, 0x28 + .incbin "baserom.nds", 0x19A4, 0x20 + .incbin "baserom.nds", 0x19C4, 0x18 + .incbin "baserom.nds", 0x19DC, 0x24 + .incbin "baserom.nds", 0x1A00, 0x4 + .incbin "baserom.nds", 0x1A04, 0x28 + .incbin "baserom.nds", 0x1A2C, 0x1C + .incbin "baserom.nds", 0x1A48, 0x20 + .incbin "baserom.nds", 0x1A68, 0x24 + .incbin "baserom.nds", 0x1A8C, 0x24 + .incbin "baserom.nds", 0x1AB0, 0x1C + .incbin "baserom.nds", 0x1ACC, 0x24 + .incbin "baserom.nds", 0x1AF0, 0x24 + .incbin "baserom.nds", 0x1B14, 0x20 + .incbin "baserom.nds", 0x1B34, 0x18 + .incbin "baserom.nds", 0x1B4C, 0x8 + .incbin "baserom.nds", 0x1B54, 0x20 + .incbin "baserom.nds", 0x1B74, 0x20 + .incbin "baserom.nds", 0x1B94, 0x1C + .incbin "baserom.nds", 0x1BB0, 0x1C + .incbin "baserom.nds", 0x1BCC, 0x1C + .incbin "baserom.nds", 0x1BE8, 0x20 + .incbin "baserom.nds", 0x1C08, 0x1C + .incbin "baserom.nds", 0x1C24, 0x1C + .incbin "baserom.nds", 0x1C40, 0x1C + .incbin "baserom.nds", 0x1C5C, 0x1C + .incbin "baserom.nds", 0x1C78, 0x20 + .incbin "baserom.nds", 0x1C98, 0x28 + .incbin "baserom.nds", 0x1CC0, 0x20 + .incbin "baserom.nds", 0x1CE0, 0x20 + .incbin "baserom.nds", 0x1D00, 0x20 + .incbin "baserom.nds", 0x1D20, 0x1C + .incbin "baserom.nds", 0x1D3C, 0x20 + .incbin "baserom.nds", 0x1D5C, 0x24 + .incbin "baserom.nds", 0x1D80, 0x18 + .incbin "baserom.nds", 0x1D98, 0x20 + .incbin "baserom.nds", 0x1DB8, 0x24 + .incbin "baserom.nds", 0x1DDC, 0x1C + .incbin "baserom.nds", 0x1DF8, 0x20 + .incbin "baserom.nds", 0x1E18, 0x24 + .incbin "baserom.nds", 0x1E3C, 0x20 + .incbin "baserom.nds", 0x1E5C, 0x24 + .incbin "baserom.nds", 0x1E80, 0x1C + .incbin "baserom.nds", 0x1E9C, 0x24 + .incbin "baserom.nds", 0x1EC0, 0x8 + .incbin "baserom.nds", 0x1EC8, 0x8 + .incbin "baserom.nds", 0x1ED0, 0x18 + .incbin "baserom.nds", 0x1EE8, 0x8 + .incbin "baserom.nds", 0x1EF0, 0x18 + .incbin "baserom.nds", 0x1F08, 0x18 + .incbin "baserom.nds", 0x1F20, 0x18 + .incbin "baserom.nds", 0x1F38, 0xC + .incbin "baserom.nds", 0x1F44, 0x10 + .incbin "baserom.nds", 0x1F54, 0x18 + .incbin "baserom.nds", 0x1F6C, 0xC + .incbin "baserom.nds", 0x1F78, 0x18 + .incbin "baserom.nds", 0x1F90, 0x1C + .incbin "baserom.nds", 0x1FAC, 0x1C + .incbin "baserom.nds", 0x1FC8, 0x24 + .incbin "baserom.nds", 0x1FEC, 0x1C + .incbin "baserom.nds", 0x2008, 0x24 + .incbin "baserom.nds", 0x202C, 0x24 + .incbin "baserom.nds", 0x2050, 0x14 + .incbin "baserom.nds", 0x2064, 0x20 + .incbin "baserom.nds", 0x2084, 0x1C + .incbin "baserom.nds", 0x20A0, 0x24 + .incbin "baserom.nds", 0x20C4, 0x14 + .incbin "baserom.nds", 0x20D8, 0x1C + .incbin "baserom.nds", 0x20F4, 0x20 + .incbin "baserom.nds", 0x2114, 0x18 + .incbin "baserom.nds", 0x212C, 0x24 + .incbin "baserom.nds", 0x2150, 0x1C + .incbin "baserom.nds", 0x216C, 0x18 + .incbin "baserom.nds", 0x2184, 0x20 + .incbin "baserom.nds", 0x21A4, 0x2C + .incbin "baserom.nds", 0x21D0, 0x24 + .incbin "baserom.nds", 0x21F4, 0x28 + .incbin "baserom.nds", 0x221C, 0x10 + .incbin "baserom.nds", 0x222C, 0x1C + .incbin "baserom.nds", 0x2248, 0x24 + .incbin "baserom.nds", 0x226C, 0xC + .incbin "baserom.nds", 0x2278, 0x28 + .incbin "baserom.nds", 0x22A0, 0x20 + .incbin "baserom.nds", 0x22C0, 0x20 + .incbin "baserom.nds", 0x22E0, 0x24 + .incbin "baserom.nds", 0x2304, 0x24 + .incbin "baserom.nds", 0x2328, 0x20 + .incbin "baserom.nds", 0x2348, 0x2C + .incbin "baserom.nds", 0x2374, 0x1C + .incbin "baserom.nds", 0x2390, 0x24 + .incbin "baserom.nds", 0x23B4, 0x24 + .incbin "baserom.nds", 0x23D8, 0x24 + .incbin "baserom.nds", 0x23FC, 0x1C + .incbin "baserom.nds", 0x2418, 0x1C + .incbin "baserom.nds", 0x2434, 0x24 + .incbin "baserom.nds", 0x2458, 0x20 + .incbin "baserom.nds", 0x2478, 0x28 + .incbin "baserom.nds", 0x24A0, 0x1C + .incbin "baserom.nds", 0x24BC, 0x28 + .incbin "baserom.nds", 0x24E4, 0x20 + .incbin "baserom.nds", 0x2504, 0x28 + .incbin "baserom.nds", 0x252C, 0x1C + .incbin "baserom.nds", 0x2548, 0x20 + .incbin "baserom.nds", 0x2568, 0x20 + .incbin "baserom.nds", 0x2588, 0x20 + .incbin "baserom.nds", 0x25A8, 0x24 + .incbin "baserom.nds", 0x25CC, 0x1C + .incbin "baserom.nds", 0x25E8, 0x1C + .incbin "baserom.nds", 0x2604, 0x1C + .incbin "baserom.nds", 0x2620, 0x1C + .incbin "baserom.nds", 0x263C, 0x24 + .incbin "baserom.nds", 0x2660, 0x28 + .incbin "baserom.nds", 0x2688, 0x1C + .incbin "baserom.nds", 0x26A4, 0x28 + .incbin "baserom.nds", 0x26CC, 0x20 + .incbin "baserom.nds", 0x26EC, 0x1C + .incbin "baserom.nds", 0x2708, 0x1C + .incbin "baserom.nds", 0x2724, 0x1C + .incbin "baserom.nds", 0x2740, 0x20 + .incbin "baserom.nds", 0x2760, 0x28 + .incbin "baserom.nds", 0x2788, 0x1C + .incbin "baserom.nds", 0x27A4, 0x24 + .incbin "baserom.nds", 0x27C8, 0x20 + .incbin "baserom.nds", 0x27E8, 0x28 + .incbin "baserom.nds", 0x2810, 0x1C + .incbin "baserom.nds", 0x282C, 0x20 + .incbin "baserom.nds", 0x284C, 0x1C + .incbin "baserom.nds", 0x2868, 0x20 + .incbin "baserom.nds", 0x2888, 0x8 + .incbin "baserom.nds", 0x2890, 0x20 + .incbin "baserom.nds", 0x28B0, 0x14 + .incbin "baserom.nds", 0x28C4, 0x24 + .incbin "baserom.nds", 0x28E8, 0x20 + .incbin "baserom.nds", 0x2908, 0x24 + .incbin "baserom.nds", 0x292C, 0x1C + .incbin "baserom.nds", 0x2948, 0x2C + .incbin "baserom.nds", 0x2974, 0x20 + .incbin "baserom.nds", 0x2994, 0x1C + .incbin "baserom.nds", 0x29B0, 0x24 + .incbin "baserom.nds", 0x29D4, 0x10 + .incbin "baserom.nds", 0x29E4, 0x1C + .incbin "baserom.nds", 0x2A00, 0x20 + .incbin "baserom.nds", 0x2A20, 0x1C + .incbin "baserom.nds", 0x2A3C, 0x20 + .incbin "baserom.nds", 0x2A5C, 0x24 + .incbin "baserom.nds", 0x2A80, 0xC + .incbin "baserom.nds", 0x2A8C, 0x1C + .incbin "baserom.nds", 0x2AA8, 0x1C + .incbin "baserom.nds", 0x2AC4, 0x1C + .incbin "baserom.nds", 0x2AE0, 0x1C + .incbin "baserom.nds", 0x2AFC, 0x1C + .incbin "baserom.nds", 0x2B18, 0x24 + .incbin "baserom.nds", 0x2B3C, 0x28 + .incbin "baserom.nds", 0x2B64, 0x4 + .incbin "baserom.nds", 0x2B68, 0x20 + .incbin "baserom.nds", 0x2B88, 0x24 + .incbin "baserom.nds", 0x2BAC, 0x1C + .incbin "baserom.nds", 0x2BC8, 0x1C + .incbin "baserom.nds", 0x2BE4, 0x20 + .incbin "baserom.nds", 0x2C04, 0x20 + .incbin "baserom.nds", 0x2C24, 0x20 + .incbin "baserom.nds", 0x2C44, 0x1C + .incbin "baserom.nds", 0x2C60, 0x1C + .incbin "baserom.nds", 0x2C7C, 0x1C + .incbin "baserom.nds", 0x2C98, 0x24 + .incbin "baserom.nds", 0x2CBC, 0x20 + .incbin "baserom.nds", 0x2CDC, 0x1C + .incbin "baserom.nds", 0x2CF8, 0x1C + .incbin "baserom.nds", 0x2D14, 0x24 + .incbin "baserom.nds", 0x2D38, 0x1C + .incbin "baserom.nds", 0x2D54, 0x20 + .incbin "baserom.nds", 0x2D74, 0x20 + .incbin "baserom.nds", 0x2D94, 0x1C + .incbin "baserom.nds", 0x2DB0, 0x20 + .incbin "baserom.nds", 0x2DD0, 0x24 + .incbin "baserom.nds", 0x2DF4, 0x18 + .incbin "baserom.nds", 0x2E0C, 0x1C + .incbin "baserom.nds", 0x2E28, 0x20 + .incbin "baserom.nds", 0x2E48, 0x18 + .incbin "baserom.nds", 0x2E60, 0x1C + .incbin "baserom.nds", 0x2E7C, 0x8 + .incbin "baserom.nds", 0x2E84, 0x18 + .incbin "baserom.nds", 0x2E9C, 0x18 + .incbin "baserom.nds", 0x2EB4, 0x1C + .incbin "baserom.nds", 0x2ED0, 0x1C + .incbin "baserom.nds", 0x2EEC, 0x10 + .incbin "baserom.nds", 0x2EFC, 0xC + .incbin "baserom.nds", 0x2F08, 0x18 + .incbin "baserom.nds", 0x2F20, 0x1C + .incbin "baserom.nds", 0x2F3C, 0x18 + .incbin "baserom.nds", 0x2F54, 0x20 + .incbin "baserom.nds", 0x2F74, 0x8 + .incbin "baserom.nds", 0x2F7C, 0x1C + .incbin "baserom.nds", 0x2F98, 0x1C + .incbin "baserom.nds", 0x2FB4, 0x8 + .incbin "baserom.nds", 0x2FBC, 0x24 + .incbin "baserom.nds", 0x2FE0, 0x18 + .incbin "baserom.nds", 0x2FF8, 0x18 + .incbin "baserom.nds", 0x3010, 0x20 + .incbin "baserom.nds", 0x3030, 0x18 + .incbin "baserom.nds", 0x3048, 0x1C + .incbin "baserom.nds", 0x3064, 0x18 + .incbin "baserom.nds", 0x307C, 0x1C + .incbin "baserom.nds", 0x3098, 0x24 + .incbin "baserom.nds", 0x30BC, 0x1C + .incbin "baserom.nds", 0x30D8, 0x20 + .incbin "baserom.nds", 0x30F8, 0x20 + .incbin "baserom.nds", 0x3118, 0x24 + .incbin "baserom.nds", 0x313C, 0x10 + .incbin "baserom.nds", 0x314C, 0x14 + .incbin "baserom.nds", 0x3160, 0x1C + .incbin "baserom.nds", 0x317C, 0x20 + .incbin "baserom.nds", 0x319C, 0x10 + .incbin "baserom.nds", 0x31AC, 0x18 + .incbin "baserom.nds", 0x31C4, 0x1C + .incbin "baserom.nds", 0x31E0, 0x1C + .incbin "baserom.nds", 0x31FC, 0x28 + .incbin "baserom.nds", 0x3224, 0x1C + .incbin "baserom.nds", 0x3240, 0x28 + .incbin "baserom.nds", 0x3268, 0xC + .incbin "baserom.nds", 0x3274, 0x1C + .incbin "baserom.nds", 0x3290, 0x1C + .incbin "baserom.nds", 0x32AC, 0x18 + .incbin "baserom.nds", 0x32C4, 0x18 + .incbin "baserom.nds", 0x32DC, 0x20 + .incbin "baserom.nds", 0x32FC, 0x20 + .incbin "baserom.nds", 0x331C, 0x14 + .incbin "baserom.nds", 0x3330, 0x24 + .incbin "baserom.nds", 0x3354, 0x18 + .incbin "baserom.nds", 0x336C, 0x20 + .incbin "baserom.nds", 0x338C, 0x18 + .incbin "baserom.nds", 0x33A4, 0x24 + .incbin "baserom.nds", 0x33C8, 0x20 + .incbin "baserom.nds", 0x33E8, 0x24 + .incbin "baserom.nds", 0x340C, 0x1C + .incbin "baserom.nds", 0x3428, 0x1C + .incbin "baserom.nds", 0x3444, 0x20 + .incbin "baserom.nds", 0x3464, 0x1C + .incbin "baserom.nds", 0x3480, 0x1C + .incbin "baserom.nds", 0x349C, 0x20 + .incbin "baserom.nds", 0x34BC, 0x24 + .incbin "baserom.nds", 0x34E0, 0x28 + .incbin "baserom.nds", 0x3508, 0x20 + .incbin "baserom.nds", 0x3528, 0x24 + .incbin "baserom.nds", 0x354C, 0x28 + .incbin "baserom.nds", 0x3574, 0x24 + .incbin "baserom.nds", 0x3598, 0x24 + .incbin "baserom.nds", 0x35BC, 0xC + .incbin "baserom.nds", 0x35C8, 0x28 + .incbin "baserom.nds", 0x35F0, 0x1C + .incbin "baserom.nds", 0x360C, 0x1C + .incbin "baserom.nds", 0x3628, 0x28 + .incbin "baserom.nds", 0x3650, 0x28 + .incbin "baserom.nds", 0x3678, 0x24 + .incbin "baserom.nds", 0x369C, 0x28 + .incbin "baserom.nds", 0x36C4, 0x28 + .incbin "baserom.nds", 0x36EC, 0x2C + .incbin "baserom.nds", 0x3718, 0x20 + .incbin "baserom.nds", 0x3738, 0x1C + .incbin "baserom.nds", 0x3754, 0x18 + .incbin "baserom.nds", 0x376C, 0x18 + .incbin "baserom.nds", 0x3784, 0x18 + .incbin "baserom.nds", 0x379C, 0x18 + .incbin "baserom.nds", 0x37B4, 0x18 + .incbin "baserom.nds", 0x37CC, 0x1C + .incbin "baserom.nds", 0x37E8, 0x18 + .incbin "baserom.nds", 0x3800, 0x18 + .incbin "baserom.nds", 0x3818, 0x1C + .incbin "baserom.nds", 0x3834, 0x18 + .incbin "baserom.nds", 0x384C, 0x1C + .incbin "baserom.nds", 0x3868, 0x1C + .incbin "baserom.nds", 0x3884, 0x1C + .incbin "baserom.nds", 0x38A0, 0x20 + .incbin "baserom.nds", 0x38C0, 0x4 + .incbin "baserom.nds", 0x38C4, 0x4 + .incbin "baserom.nds", 0x38C8, 0x20 + .incbin "baserom.nds", 0x38E8, 0x24 + .incbin "baserom.nds", 0x390C, 0x20 + .incbin "baserom.nds", 0x392C, 0x1C + .incbin "baserom.nds", 0x3948, 0x1C + .balign 4, 255 diff --git a/narc/pokeanime/poke_anm.narc.s b/narc/pokeanime/poke_anm.narc.s new file mode 100644 index 00000000..5b3ebe12 --- /dev/null +++ b/narc/pokeanime/poke_anm.narc.s @@ -0,0 +1,294 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00006344 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000043C ; chunk size + .short 134 ; number of files + .balign 4 + .word 0x00000000, 0x00000084 + .word 0x00000084, 0x000000B0 + .word 0x000000B0, 0x00000110 + .word 0x00000110, 0x00000228 + .word 0x00000228, 0x000002AC + .word 0x000002AC, 0x000002D8 + .word 0x000002D8, 0x00000338 + .word 0x00000338, 0x000004B0 + .word 0x000004B0, 0x000004DC + .word 0x000004DC, 0x0000052C + .word 0x0000052C, 0x00000804 + .word 0x00000804, 0x0000098C + .word 0x0000098C, 0x00000C64 + .word 0x00000C64, 0x00000CB4 + .word 0x00000CB4, 0x00000E50 + .word 0x00000E50, 0x00000EE4 + .word 0x00000EE4, 0x00000F10 + .word 0x00000F10, 0x00000F60 + .word 0x00000F60, 0x00000FB0 + .word 0x00000FB0, 0x00001070 + .word 0x00001070, 0x000010C0 + .word 0x000010C0, 0x00001120 + .word 0x00001120, 0x00001170 + .word 0x00001170, 0x00001448 + .word 0x00001448, 0x000014CC + .word 0x000014CC, 0x00001550 + .word 0x00001550, 0x000015D4 + .word 0x000015D4, 0x00001658 + .word 0x00001658, 0x000016DC + .word 0x000016DC, 0x00001760 + .word 0x00001760, 0x000017E4 + .word 0x000017E4, 0x00001868 + .word 0x00001868, 0x000018EC + .word 0x000018EC, 0x00001970 + .word 0x00001970, 0x000019F4 + .word 0x000019F4, 0x00001A78 + .word 0x00001A78, 0x00001AFC + .word 0x00001AFC, 0x00001B80 + .word 0x00001B80, 0x00001C04 + .word 0x00001C04, 0x00001C88 + .word 0x00001C88, 0x00001D0C + .word 0x00001D0C, 0x00001D90 + .word 0x00001D90, 0x00001E14 + .word 0x00001E14, 0x00001E98 + .word 0x00001E98, 0x00001F1C + .word 0x00001F1C, 0x00001FA0 + .word 0x00001FA0, 0x00002024 + .word 0x00002024, 0x000020A8 + .word 0x000020A8, 0x0000212C + .word 0x0000212C, 0x000021B0 + .word 0x000021B0, 0x00002244 + .word 0x00002244, 0x000022D8 + .word 0x000022D8, 0x0000236C + .word 0x0000236C, 0x00002398 + .word 0x00002398, 0x000023C4 + .word 0x000023C4, 0x000023F0 + .word 0x000023F0, 0x0000241C + .word 0x0000241C, 0x00002448 + .word 0x00002448, 0x00002474 + .word 0x00002474, 0x000024A0 + .word 0x000024A0, 0x000024CC + .word 0x000024CC, 0x000024F8 + .word 0x000024F8, 0x00002554 + .word 0x00002554, 0x000025A4 + .word 0x000025A4, 0x000025F4 + .word 0x000025F4, 0x00002650 + .word 0x00002650, 0x000026A0 + .word 0x000026A0, 0x000026F0 + .word 0x000026F0, 0x00002794 + .word 0x00002794, 0x0000282C + .word 0x0000282C, 0x000028C4 + .word 0x000028C4, 0x00002A60 + .word 0x00002A60, 0x00002BFC + .word 0x00002BFC, 0x00002D98 + .word 0x00002D98, 0x00002F3C + .word 0x00002F3C, 0x000030D4 + .word 0x000030D4, 0x0000326C + .word 0x0000326C, 0x0000340C + .word 0x0000340C, 0x000035A0 + .word 0x000035A0, 0x00003734 + .word 0x00003734, 0x000038D4 + .word 0x000038D4, 0x00003A68 + .word 0x00003A68, 0x00003BFC + .word 0x00003BFC, 0x00003DC8 + .word 0x00003DC8, 0x00003EFC + .word 0x00003EFC, 0x00004030 + .word 0x00004030, 0x0000407C + .word 0x0000407C, 0x000040BC + .word 0x000040BC, 0x000040FC + .word 0x000040FC, 0x00004214 + .word 0x00004214, 0x0000432C + .word 0x0000432C, 0x00004444 + .word 0x00004444, 0x00004520 + .word 0x00004520, 0x000045FC + .word 0x000045FC, 0x000046D8 + .word 0x000046D8, 0x00004734 + .word 0x00004734, 0x00004790 + .word 0x00004790, 0x000047EC + .word 0x000047EC, 0x00004848 + .word 0x00004848, 0x000048A4 + .word 0x000048A4, 0x00004900 + .word 0x00004900, 0x0000495C + .word 0x0000495C, 0x000049B8 + .word 0x000049B8, 0x00004A14 + .word 0x00004A14, 0x00004C18 + .word 0x00004C18, 0x00004D28 + .word 0x00004D28, 0x00004F98 + .word 0x00004F98, 0x00005068 + .word 0x00005068, 0x0000512C + .word 0x0000512C, 0x000051F0 + .word 0x000051F0, 0x00005258 + .word 0x00005258, 0x000052C0 + .word 0x000052C0, 0x00005328 + .word 0x00005328, 0x00005384 + .word 0x00005384, 0x000053D4 + .word 0x000053D4, 0x00005424 + .word 0x00005424, 0x00005484 + .word 0x00005484, 0x000054E4 + .word 0x000054E4, 0x00005544 + .word 0x00005544, 0x000055EC + .word 0x000055EC, 0x00005688 + .word 0x00005688, 0x00005724 + .word 0x00005724, 0x00005864 + .word 0x00005864, 0x00005998 + .word 0x00005998, 0x00005ACC + .word 0x00005ACC, 0x00005B2C + .word 0x00005B2C, 0x00005B8C + .word 0x00005B8C, 0x00005BE0 + .word 0x00005BE0, 0x00005C48 + .word 0x00005C48, 0x00005CB0 + .word 0x00005CB0, 0x00005D18 + .word 0x00005D18, 0x00005DB0 + .word 0x00005DB0, 0x00005E48 + .word 0x00005E48, 0x00005EE0 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00005EE8 ; chunk size + .incbin "baserom.nds", 0x0, 0x84 + .incbin "baserom.nds", 0x84, 0x2C + .incbin "baserom.nds", 0xB0, 0x60 + .incbin "baserom.nds", 0x110, 0x118 + .incbin "baserom.nds", 0x228, 0x84 + .incbin "baserom.nds", 0x2AC, 0x2C + .incbin "baserom.nds", 0x2D8, 0x60 + .incbin "baserom.nds", 0x338, 0x178 + .incbin "baserom.nds", 0x4B0, 0x2C + .incbin "baserom.nds", 0x4DC, 0x50 + .incbin "baserom.nds", 0x52C, 0x2D8 + .incbin "baserom.nds", 0x804, 0x188 + .incbin "baserom.nds", 0x98C, 0x2D8 + .incbin "baserom.nds", 0xC64, 0x50 + .incbin "baserom.nds", 0xCB4, 0x19C + .incbin "baserom.nds", 0xE50, 0x94 + .incbin "baserom.nds", 0xEE4, 0x2C + .incbin "baserom.nds", 0xF10, 0x50 + .incbin "baserom.nds", 0xF60, 0x50 + .incbin "baserom.nds", 0xFB0, 0xC0 + .incbin "baserom.nds", 0x1070, 0x50 + .incbin "baserom.nds", 0x10C0, 0x60 + .incbin "baserom.nds", 0x1120, 0x50 + .incbin "baserom.nds", 0x1170, 0x2D8 + .incbin "baserom.nds", 0x1448, 0x84 + .incbin "baserom.nds", 0x14CC, 0x84 + .incbin "baserom.nds", 0x1550, 0x84 + .incbin "baserom.nds", 0x15D4, 0x84 + .incbin "baserom.nds", 0x1658, 0x84 + .incbin "baserom.nds", 0x16DC, 0x84 + .incbin "baserom.nds", 0x1760, 0x84 + .incbin "baserom.nds", 0x17E4, 0x84 + .incbin "baserom.nds", 0x1868, 0x84 + .incbin "baserom.nds", 0x18EC, 0x84 + .incbin "baserom.nds", 0x1970, 0x84 + .incbin "baserom.nds", 0x19F4, 0x84 + .incbin "baserom.nds", 0x1A78, 0x84 + .incbin "baserom.nds", 0x1AFC, 0x84 + .incbin "baserom.nds", 0x1B80, 0x84 + .incbin "baserom.nds", 0x1C04, 0x84 + .incbin "baserom.nds", 0x1C88, 0x84 + .incbin "baserom.nds", 0x1D0C, 0x84 + .incbin "baserom.nds", 0x1D90, 0x84 + .incbin "baserom.nds", 0x1E14, 0x84 + .incbin "baserom.nds", 0x1E98, 0x84 + .incbin "baserom.nds", 0x1F1C, 0x84 + .incbin "baserom.nds", 0x1FA0, 0x84 + .incbin "baserom.nds", 0x2024, 0x84 + .incbin "baserom.nds", 0x20A8, 0x84 + .incbin "baserom.nds", 0x212C, 0x84 + .incbin "baserom.nds", 0x21B0, 0x94 + .incbin "baserom.nds", 0x2244, 0x94 + .incbin "baserom.nds", 0x22D8, 0x94 + .incbin "baserom.nds", 0x236C, 0x2C + .incbin "baserom.nds", 0x2398, 0x2C + .incbin "baserom.nds", 0x23C4, 0x2C + .incbin "baserom.nds", 0x23F0, 0x2C + .incbin "baserom.nds", 0x241C, 0x2C + .incbin "baserom.nds", 0x2448, 0x2C + .incbin "baserom.nds", 0x2474, 0x2C + .incbin "baserom.nds", 0x24A0, 0x2C + .incbin "baserom.nds", 0x24CC, 0x2C + .incbin "baserom.nds", 0x24F8, 0x5C + .incbin "baserom.nds", 0x2554, 0x50 + .incbin "baserom.nds", 0x25A4, 0x50 + .incbin "baserom.nds", 0x25F4, 0x5C + .incbin "baserom.nds", 0x2650, 0x50 + .incbin "baserom.nds", 0x26A0, 0x50 + .incbin "baserom.nds", 0x26F0, 0xA4 + .incbin "baserom.nds", 0x2794, 0x98 + .incbin "baserom.nds", 0x282C, 0x98 + .incbin "baserom.nds", 0x28C4, 0x19C + .incbin "baserom.nds", 0x2A60, 0x19C + .incbin "baserom.nds", 0x2BFC, 0x19C + .incbin "baserom.nds", 0x2D98, 0x1A4 + .incbin "baserom.nds", 0x2F3C, 0x198 + .incbin "baserom.nds", 0x30D4, 0x198 + .incbin "baserom.nds", 0x326C, 0x1A0 + .incbin "baserom.nds", 0x340C, 0x194 + .incbin "baserom.nds", 0x35A0, 0x194 + .incbin "baserom.nds", 0x3734, 0x1A0 + .incbin "baserom.nds", 0x38D4, 0x194 + .incbin "baserom.nds", 0x3A68, 0x194 + .incbin "baserom.nds", 0x3BFC, 0x1CC + .incbin "baserom.nds", 0x3DC8, 0x134 + .incbin "baserom.nds", 0x3EFC, 0x134 + .incbin "baserom.nds", 0x4030, 0x4C + .incbin "baserom.nds", 0x407C, 0x40 + .incbin "baserom.nds", 0x40BC, 0x40 + .incbin "baserom.nds", 0x40FC, 0x118 + .incbin "baserom.nds", 0x4214, 0x118 + .incbin "baserom.nds", 0x432C, 0x118 + .incbin "baserom.nds", 0x4444, 0xDC + .incbin "baserom.nds", 0x4520, 0xDC + .incbin "baserom.nds", 0x45FC, 0xDC + .incbin "baserom.nds", 0x46D8, 0x5C + .incbin "baserom.nds", 0x4734, 0x5C + .incbin "baserom.nds", 0x4790, 0x5C + .incbin "baserom.nds", 0x47EC, 0x5C + .incbin "baserom.nds", 0x4848, 0x5C + .incbin "baserom.nds", 0x48A4, 0x5C + .incbin "baserom.nds", 0x4900, 0x5C + .incbin "baserom.nds", 0x495C, 0x5C + .incbin "baserom.nds", 0x49B8, 0x5C + .incbin "baserom.nds", 0x4A14, 0x204 + .incbin "baserom.nds", 0x4C18, 0x110 + .incbin "baserom.nds", 0x4D28, 0x270 + .incbin "baserom.nds", 0x4F98, 0xD0 + .incbin "baserom.nds", 0x5068, 0xC4 + .incbin "baserom.nds", 0x512C, 0xC4 + .incbin "baserom.nds", 0x51F0, 0x68 + .incbin "baserom.nds", 0x5258, 0x68 + .incbin "baserom.nds", 0x52C0, 0x68 + .incbin "baserom.nds", 0x5328, 0x5C + .incbin "baserom.nds", 0x5384, 0x50 + .incbin "baserom.nds", 0x53D4, 0x50 + .incbin "baserom.nds", 0x5424, 0x60 + .incbin "baserom.nds", 0x5484, 0x60 + .incbin "baserom.nds", 0x54E4, 0x60 + .incbin "baserom.nds", 0x5544, 0xA8 + .incbin "baserom.nds", 0x55EC, 0x9C + .incbin "baserom.nds", 0x5688, 0x9C + .incbin "baserom.nds", 0x5724, 0x140 + .incbin "baserom.nds", 0x5864, 0x134 + .incbin "baserom.nds", 0x5998, 0x134 + .incbin "baserom.nds", 0x5ACC, 0x60 + .incbin "baserom.nds", 0x5B2C, 0x60 + .incbin "baserom.nds", 0x5B8C, 0x54 + .incbin "baserom.nds", 0x5BE0, 0x68 + .incbin "baserom.nds", 0x5C48, 0x68 + .incbin "baserom.nds", 0x5CB0, 0x68 + .incbin "baserom.nds", 0x5D18, 0x98 + .incbin "baserom.nds", 0x5DB0, 0x98 + .incbin "baserom.nds", 0x5E48, 0x98 + .balign 4, 255 diff --git a/narc/pokeanm/pokeanm.narc.s b/narc/pokeanm/pokeanm.narc.s new file mode 100644 index 00000000..e4ce89dd --- /dev/null +++ b/narc/pokeanm/pokeanm.narc.s @@ -0,0 +1,28 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00003644 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000014 ; chunk size + .short 1 ; number of files + .balign 4 + .word 0x00000000, 0x00003608 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00003610 ; chunk size + .incbin "baserom.nds", 0x0, 0x3608 + .balign 4, 255 diff --git a/narc/pokefoot/pokefoot.narc.s b/narc/pokefoot/pokefoot.narc.s new file mode 100644 index 00000000..7096f0f7 --- /dev/null +++ b/narc/pokefoot/pokefoot.narc.s @@ -0,0 +1,1020 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0000E4EC ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000F94 ; chunk size + .short 497 ; number of files + .balign 4 + .word 0x00000000, 0x00000228 + .word 0x00000228, 0x00000281 + .word 0x00000284, 0x000002D9 + .word 0x000002DC, 0x0000034C + .word 0x0000034C, 0x000003BC + .word 0x000003BC, 0x00000437 + .word 0x00000438, 0x000004B8 + .word 0x000004B8, 0x00000530 + .word 0x00000530, 0x000005AB + .word 0x000005AC, 0x00000629 + .word 0x0000062C, 0x0000069B + .word 0x0000069C, 0x00000715 + .word 0x00000718, 0x00000794 + .word 0x00000794, 0x000007F8 + .word 0x000007F8, 0x0000084E + .word 0x00000850, 0x000008BE + .word 0x000008C0, 0x00000924 + .word 0x00000924, 0x0000097A + .word 0x0000097C, 0x000009E0 + .word 0x000009E0, 0x00000A52 + .word 0x00000A54, 0x00000ACA + .word 0x00000ACC, 0x00000B4D + .word 0x00000B50, 0x00000BB4 + .word 0x00000BB4, 0x00000C2A + .word 0x00000C2C, 0x00000C9E + .word 0x00000CA0, 0x00000D20 + .word 0x00000D20, 0x00000D76 + .word 0x00000D78, 0x00000DCE + .word 0x00000DD0, 0x00000E34 + .word 0x00000E34, 0x00000EA5 + .word 0x00000EA8, 0x00000F17 + .word 0x00000F18, 0x00000F8A + .word 0x00000F8C, 0x00000FFA + .word 0x00000FFC, 0x00001077 + .word 0x00001078, 0x000010F9 + .word 0x000010FC, 0x0000116E + .word 0x00001170, 0x000011EB + .word 0x000011EC, 0x0000126A + .word 0x0000126C, 0x000012D3 + .word 0x000012D4, 0x00001354 + .word 0x00001354, 0x000013CD + .word 0x000013D0, 0x00001449 + .word 0x0000144C, 0x000014B2 + .word 0x000014B4, 0x0000151F + .word 0x00001520, 0x00001576 + .word 0x00001578, 0x000015E5 + .word 0x000015E8, 0x00001648 + .word 0x00001648, 0x000016AF + .word 0x000016B0, 0x00001716 + .word 0x00001718, 0x0000177A + .word 0x0000177C, 0x000017DE + .word 0x000017E0, 0x0000184A + .word 0x0000184C, 0x000018A6 + .word 0x000018A8, 0x000018FE + .word 0x00001900, 0x00001956 + .word 0x00001958, 0x000019CA + .word 0x000019CC, 0x00001A47 + .word 0x00001A48, 0x00001AC9 + .word 0x00001ACC, 0x00001B50 + .word 0x00001B50, 0x00001BC5 + .word 0x00001BC8, 0x00001C3D + .word 0x00001C40, 0x00001CB4 + .word 0x00001CB4, 0x00001D2F + .word 0x00001D30, 0x00001D9B + .word 0x00001D9C, 0x00001E08 + .word 0x00001E08, 0x00001E7A + .word 0x00001E7C, 0x00001EEB + .word 0x00001EEC, 0x00001F68 + .word 0x00001F68, 0x00001FE3 + .word 0x00001FE4, 0x00002054 + .word 0x00002054, 0x000020C0 + .word 0x000020C0, 0x0000212F + .word 0x00002130, 0x000021A9 + .word 0x000021AC, 0x00002202 + .word 0x00002204, 0x0000225A + .word 0x0000225C, 0x000022B2 + .word 0x000022B4, 0x0000230A + .word 0x0000230C, 0x00002362 + .word 0x00002364, 0x000023D6 + .word 0x000023D8, 0x00002459 + .word 0x0000245C, 0x000024CE + .word 0x000024D0, 0x00002546 + .word 0x00002548, 0x000025B5 + .word 0x000025B8, 0x0000262F + .word 0x00002630, 0x00002693 + .word 0x00002694, 0x00002700 + .word 0x00002700, 0x00002786 + .word 0x00002788, 0x00002805 + .word 0x00002808, 0x0000288B + .word 0x0000288C, 0x000028E2 + .word 0x000028E4, 0x0000293A + .word 0x0000293C, 0x00002992 + .word 0x00002994, 0x000029EA + .word 0x000029EC, 0x00002A42 + .word 0x00002A44, 0x00002A9A + .word 0x00002A9C, 0x00002AF2 + .word 0x00002AF4, 0x00002B4A + .word 0x00002B4C, 0x00002BC4 + .word 0x00002BC4, 0x00002C1A + .word 0x00002C1C, 0x00002C89 + .word 0x00002C8C, 0x00002D08 + .word 0x00002D08, 0x00002D72 + .word 0x00002D74, 0x00002DE8 + .word 0x00002DE8, 0x00002E3E + .word 0x00002E40, 0x00002E96 + .word 0x00002E98, 0x00002EEE + .word 0x00002EF0, 0x00002F64 + .word 0x00002F64, 0x00002FD2 + .word 0x00002FD4, 0x00003044 + .word 0x00003044, 0x000030CD + .word 0x000030D0, 0x00003137 + .word 0x00003138, 0x000031BD + .word 0x000031C0, 0x00003216 + .word 0x00003218, 0x0000326E + .word 0x00003270, 0x000032E0 + .word 0x000032E0, 0x0000335A + .word 0x0000335C, 0x000033C3 + .word 0x000033C4, 0x00003438 + .word 0x00003438, 0x000034B0 + .word 0x000034B0, 0x00003506 + .word 0x00003508, 0x0000355E + .word 0x00003560, 0x000035B6 + .word 0x000035B8, 0x0000360E + .word 0x00003610, 0x00003674 + .word 0x00003674, 0x000036D8 + .word 0x000036D8, 0x00003743 + .word 0x00003744, 0x000037C4 + .word 0x000037C4, 0x0000381A + .word 0x0000381C, 0x0000388D + .word 0x00003890, 0x00003909 + .word 0x0000390C, 0x00003976 + .word 0x00003978, 0x000039E7 + .word 0x000039E8, 0x00003A3E + .word 0x00003A40, 0x00003A96 + .word 0x00003A98, 0x00003AEE + .word 0x00003AF0, 0x00003B46 + .word 0x00003B48, 0x00003BC5 + .word 0x00003BC8, 0x00003C41 + .word 0x00003C44, 0x00003CB6 + .word 0x00003CB8, 0x00003D35 + .word 0x00003D38, 0x00003DA2 + .word 0x00003DA4, 0x00003E02 + .word 0x00003E04, 0x00003E6A + .word 0x00003E6C, 0x00003EC6 + .word 0x00003EC8, 0x00003F3D + .word 0x00003F40, 0x00003FAB + .word 0x00003FAC, 0x0000402D + .word 0x00004030, 0x000040B2 + .word 0x000040B4, 0x0000413E + .word 0x00004140, 0x000041BB + .word 0x000041BC, 0x00004212 + .word 0x00004214, 0x0000426A + .word 0x0000426C, 0x000042E8 + .word 0x000042E8, 0x00004362 + .word 0x00004364, 0x000043C9 + .word 0x000043CC, 0x0000442B + .word 0x0000442C, 0x00004499 + .word 0x0000449C, 0x00004514 + .word 0x00004514, 0x0000457C + .word 0x0000457C, 0x000045E6 + .word 0x000045E8, 0x00004654 + .word 0x00004654, 0x000046BD + .word 0x000046C0, 0x00004729 + .word 0x0000472C, 0x000047AA + .word 0x000047AC, 0x00004812 + .word 0x00004814, 0x0000487A + .word 0x0000487C, 0x000048FA + .word 0x000048FC, 0x00004981 + .word 0x00004984, 0x000049F5 + .word 0x000049F8, 0x00004A6F + .word 0x00004A70, 0x00004ACA + .word 0x00004ACC, 0x00004B35 + .word 0x00004B38, 0x00004B8E + .word 0x00004B90, 0x00004BE6 + .word 0x00004BE8, 0x00004C3E + .word 0x00004C40, 0x00004CA2 + .word 0x00004CA4, 0x00004D03 + .word 0x00004D04, 0x00004D6C + .word 0x00004D6C, 0x00004DD7 + .word 0x00004DD8, 0x00004E48 + .word 0x00004E48, 0x00004EA8 + .word 0x00004EA8, 0x00004F14 + .word 0x00004F14, 0x00004F75 + .word 0x00004F78, 0x00004FDC + .word 0x00004FDC, 0x0000504C + .word 0x0000504C, 0x000050A2 + .word 0x000050A4, 0x00005107 + .word 0x00005108, 0x0000516E + .word 0x00005170, 0x000051D6 + .word 0x000051D8, 0x00005250 + .word 0x00005250, 0x000052B4 + .word 0x000052B4, 0x0000531C + .word 0x0000531C, 0x00005384 + .word 0x00005384, 0x000053F2 + .word 0x000053F4, 0x0000544A + .word 0x0000544C, 0x000054B9 + .word 0x000054BC, 0x00005520 + .word 0x00005520, 0x00005582 + .word 0x00005584, 0x000055F3 + .word 0x000055F4, 0x00005655 + .word 0x00005658, 0x000056C3 + .word 0x000056C4, 0x00005733 + .word 0x00005734, 0x0000579C + .word 0x0000579C, 0x000057F2 + .word 0x000057F4, 0x0000584A + .word 0x0000584C, 0x000058B1 + .word 0x000058B4, 0x00005917 + .word 0x00005918, 0x0000596E + .word 0x00005970, 0x000059C6 + .word 0x000059C8, 0x00005A1E + .word 0x00005A20, 0x00005A8C + .word 0x00005A8C, 0x00005AE2 + .word 0x00005AE4, 0x00005B54 + .word 0x00005B54, 0x00005BCE + .word 0x00005BD0, 0x00005C26 + .word 0x00005C28, 0x00005C9C + .word 0x00005C9C, 0x00005D06 + .word 0x00005D08, 0x00005D7B + .word 0x00005D7C, 0x00005DE8 + .word 0x00005DE8, 0x00005E57 + .word 0x00005E58, 0x00005ED7 + .word 0x00005ED8, 0x00005F2E + .word 0x00005F30, 0x00005F86 + .word 0x00005F88, 0x00005FEB + .word 0x00005FEC, 0x00006065 + .word 0x00006068, 0x000060CB + .word 0x000060CC, 0x00006122 + .word 0x00006124, 0x0000619C + .word 0x0000619C, 0x0000620C + .word 0x0000620C, 0x00006262 + .word 0x00006264, 0x000062D7 + .word 0x000062D8, 0x00006347 + .word 0x00006348, 0x000063CD + .word 0x000063D0, 0x00006426 + .word 0x00006428, 0x00006494 + .word 0x00006494, 0x00006507 + .word 0x00006508, 0x00006571 + .word 0x00006574, 0x000065D6 + .word 0x000065D8, 0x00006652 + .word 0x00006654, 0x000066B6 + .word 0x000066B8, 0x0000673B + .word 0x0000673C, 0x0000679F + .word 0x000067A0, 0x0000680C + .word 0x0000680C, 0x0000687C + .word 0x0000687C, 0x000068E2 + .word 0x000068E4, 0x00006955 + .word 0x00006958, 0x000069CE + .word 0x000069D0, 0x00006A48 + .word 0x00006A48, 0x00006AB0 + .word 0x00006AB0, 0x00006B0E + .word 0x00006B10, 0x00006B66 + .word 0x00006B68, 0x00006BE3 + .word 0x00006BE4, 0x00006C5D + .word 0x00006C60, 0x00006CE2 + .word 0x00006CE4, 0x00006D4C + .word 0x00006D4C, 0x00006DC9 + .word 0x00006DCC, 0x00006E40 + .word 0x00006E40, 0x00006EC8 + .word 0x00006EC8, 0x00006F49 + .word 0x00006F4C, 0x00006FCC + .word 0x00006FCC, 0x00007063 + .word 0x00007064, 0x000070D7 + .word 0x000070D8, 0x0000714B + .word 0x0000714C, 0x000071CC + .word 0x000071CC, 0x00007244 + .word 0x00007244, 0x000072D4 + .word 0x000072D4, 0x0000734F + .word 0x00007350, 0x000073B7 + .word 0x000073B8, 0x00007418 + .word 0x00007418, 0x0000746E + .word 0x00007470, 0x000074D9 + .word 0x000074DC, 0x00007532 + .word 0x00007534, 0x00007597 + .word 0x00007598, 0x00007605 + .word 0x00007608, 0x00007698 + .word 0x00007698, 0x00007703 + .word 0x00007704, 0x0000777B + .word 0x0000777C, 0x000077FA + .word 0x000077FC, 0x00007858 + .word 0x00007858, 0x000078D3 + .word 0x000078D4, 0x00007954 + .word 0x00007954, 0x000079C8 + .word 0x000079C8, 0x00007A47 + .word 0x00007A48, 0x00007AA1 + .word 0x00007AA4, 0x00007B08 + .word 0x00007B08, 0x00007B6D + .word 0x00007B70, 0x00007BD8 + .word 0x00007BD8, 0x00007C2E + .word 0x00007C30, 0x00007C9C + .word 0x00007C9C, 0x00007D0B + .word 0x00007D0C, 0x00007D80 + .word 0x00007D80, 0x00007E06 + .word 0x00007E08, 0x00007E99 + .word 0x00007E9C, 0x00007F0A + .word 0x00007F0C, 0x00007F79 + .word 0x00007F7C, 0x00007FE3 + .word 0x00007FE4, 0x0000806C + .word 0x0000806C, 0x000080E7 + .word 0x000080E8, 0x00008175 + .word 0x00008178, 0x000081F3 + .word 0x000081F4, 0x00008277 + .word 0x00008278, 0x000082E3 + .word 0x000082E4, 0x00008359 + .word 0x0000835C, 0x000083D4 + .word 0x000083D4, 0x00008464 + .word 0x00008464, 0x000084C6 + .word 0x000084C8, 0x00008539 + .word 0x0000853C, 0x000085A9 + .word 0x000085AC, 0x0000862A + .word 0x0000862C, 0x000086AF + .word 0x000086B0, 0x0000871C + .word 0x0000871C, 0x0000877F + .word 0x00008780, 0x000087F4 + .word 0x000087F4, 0x00008869 + .word 0x0000886C, 0x000088D9 + .word 0x000088DC, 0x00008949 + .word 0x0000894C, 0x000089B1 + .word 0x000089B4, 0x00008A1A + .word 0x00008A1C, 0x00008A7C + .word 0x00008A7C, 0x00008AD2 + .word 0x00008AD4, 0x00008B2A + .word 0x00008B2C, 0x00008B82 + .word 0x00008B84, 0x00008BDA + .word 0x00008BDC, 0x00008C32 + .word 0x00008C34, 0x00008C8A + .word 0x00008C8C, 0x00008CFD + .word 0x00008D00, 0x00008D93 + .word 0x00008D94, 0x00008E1C + .word 0x00008E1C, 0x00008E72 + .word 0x00008E74, 0x00008EEA + .word 0x00008EEC, 0x00008F53 + .word 0x00008F54, 0x00008FC3 + .word 0x00008FC4, 0x0000902F + .word 0x00009030, 0x000090A3 + .word 0x000090A4, 0x00009106 + .word 0x00009108, 0x00009177 + .word 0x00009178, 0x000091D5 + .word 0x000091D8, 0x00009254 + .word 0x00009254, 0x000092D2 + .word 0x000092D4, 0x0000932A + .word 0x0000932C, 0x00009382 + .word 0x00009384, 0x000093DA + .word 0x000093DC, 0x00009432 + .word 0x00009434, 0x0000948A + .word 0x0000948C, 0x000094FC + .word 0x000094FC, 0x00009581 + .word 0x00009584, 0x000095DD + .word 0x000095E0, 0x00009640 + .word 0x00009640, 0x000096BD + .word 0x000096C0, 0x00009742 + .word 0x00009744, 0x0000979A + .word 0x0000979C, 0x00009817 + .word 0x00009818, 0x0000986E + .word 0x00009870, 0x000098C6 + .word 0x000098C8, 0x0000991E + .word 0x00009920, 0x0000998F + .word 0x00009990, 0x000099E6 + .word 0x000099E8, 0x00009A50 + .word 0x00009A50, 0x00009AA6 + .word 0x00009AA8, 0x00009B3D + .word 0x00009B40, 0x00009BC1 + .word 0x00009BC4, 0x00009C1A + .word 0x00009C1C, 0x00009CA2 + .word 0x00009CA4, 0x00009D08 + .word 0x00009D08, 0x00009D7F + .word 0x00009D80, 0x00009DD6 + .word 0x00009DD8, 0x00009E2E + .word 0x00009E30, 0x00009E86 + .word 0x00009E88, 0x00009EDE + .word 0x00009EE0, 0x00009F36 + .word 0x00009F38, 0x00009F8E + .word 0x00009F90, 0x00009FE6 + .word 0x00009FE8, 0x0000A03E + .word 0x0000A040, 0x0000A096 + .word 0x0000A098, 0x0000A107 + .word 0x0000A108, 0x0000A175 + .word 0x0000A178, 0x0000A1F9 + .word 0x0000A1FC, 0x0000A25B + .word 0x0000A25C, 0x0000A2C4 + .word 0x0000A2C4, 0x0000A337 + .word 0x0000A338, 0x0000A3C0 + .word 0x0000A3C0, 0x0000A419 + .word 0x0000A41C, 0x0000A4A0 + .word 0x0000A4A0, 0x0000A51A + .word 0x0000A51C, 0x0000A592 + .word 0x0000A594, 0x0000A60D + .word 0x0000A610, 0x0000A69F + .word 0x0000A6A0, 0x0000A6F6 + .word 0x0000A6F8, 0x0000A760 + .word 0x0000A760, 0x0000A7C0 + .word 0x0000A7C0, 0x0000A827 + .word 0x0000A828, 0x0000A8A0 + .word 0x0000A8A0, 0x0000A91D + .word 0x0000A920, 0x0000A991 + .word 0x0000A994, 0x0000AA05 + .word 0x0000AA08, 0x0000AA92 + .word 0x0000AA94, 0x0000AAFD + .word 0x0000AB00, 0x0000AB7B + .word 0x0000AB7C, 0x0000ABFF + .word 0x0000AC00, 0x0000AC6D + .word 0x0000AC70, 0x0000ACDE + .word 0x0000ACE0, 0x0000AD50 + .word 0x0000AD50, 0x0000ADBB + .word 0x0000ADBC, 0x0000AE38 + .word 0x0000AE38, 0x0000AE9D + .word 0x0000AEA0, 0x0000AEFA + .word 0x0000AEFC, 0x0000AF64 + .word 0x0000AF64, 0x0000AFD3 + .word 0x0000AFD4, 0x0000B043 + .word 0x0000B044, 0x0000B0A8 + .word 0x0000B0A8, 0x0000B10A + .word 0x0000B10C, 0x0000B179 + .word 0x0000B17C, 0x0000B1F5 + .word 0x0000B1F8, 0x0000B25F + .word 0x0000B260, 0x0000B2D6 + .word 0x0000B2D8, 0x0000B32E + .word 0x0000B330, 0x0000B386 + .word 0x0000B388, 0x0000B3E2 + .word 0x0000B3E4, 0x0000B43A + .word 0x0000B43C, 0x0000B492 + .word 0x0000B494, 0x0000B4FB + .word 0x0000B4FC, 0x0000B56E + .word 0x0000B570, 0x0000B5DA + .word 0x0000B5DC, 0x0000B640 + .word 0x0000B640, 0x0000B6A4 + .word 0x0000B6A4, 0x0000B704 + .word 0x0000B704, 0x0000B76A + .word 0x0000B76C, 0x0000B7DE + .word 0x0000B7E0, 0x0000B836 + .word 0x0000B838, 0x0000B88E + .word 0x0000B890, 0x0000B905 + .word 0x0000B908, 0x0000B978 + .word 0x0000B978, 0x0000B9CE + .word 0x0000B9D0, 0x0000BA51 + .word 0x0000BA54, 0x0000BAC2 + .word 0x0000BAC4, 0x0000BB39 + .word 0x0000BB3C, 0x0000BBA0 + .word 0x0000BBA0, 0x0000BC08 + .word 0x0000BC08, 0x0000BC78 + .word 0x0000BC78, 0x0000BCCE + .word 0x0000BCD0, 0x0000BD26 + .word 0x0000BD28, 0x0000BD95 + .word 0x0000BD98, 0x0000BDFA + .word 0x0000BDFC, 0x0000BE6A + .word 0x0000BE6C, 0x0000BEEF + .word 0x0000BEF0, 0x0000BF46 + .word 0x0000BF48, 0x0000BFB6 + .word 0x0000BFB8, 0x0000C031 + .word 0x0000C034, 0x0000C0AC + .word 0x0000C0AC, 0x0000C126 + .word 0x0000C128, 0x0000C197 + .word 0x0000C198, 0x0000C20D + .word 0x0000C210, 0x0000C27E + .word 0x0000C280, 0x0000C302 + .word 0x0000C304, 0x0000C35E + .word 0x0000C360, 0x0000C3BA + .word 0x0000C3BC, 0x0000C42F + .word 0x0000C430, 0x0000C4A7 + .word 0x0000C4A8, 0x0000C4FE + .word 0x0000C500, 0x0000C556 + .word 0x0000C558, 0x0000C5AE + .word 0x0000C5B0, 0x0000C606 + .word 0x0000C608, 0x0000C672 + .word 0x0000C674, 0x0000C6F6 + .word 0x0000C6F8, 0x0000C771 + .word 0x0000C774, 0x0000C7CA + .word 0x0000C7CC, 0x0000C84A + .word 0x0000C84C, 0x0000C8BD + .word 0x0000C8C0, 0x0000C93D + .word 0x0000C940, 0x0000C9B9 + .word 0x0000C9BC, 0x0000CA33 + .word 0x0000CA34, 0x0000CAA2 + .word 0x0000CAA4, 0x0000CB0C + .word 0x0000CB0C, 0x0000CB77 + .word 0x0000CB78, 0x0000CBE3 + .word 0x0000CBE4, 0x0000CC52 + .word 0x0000CC54, 0x0000CCCD + .word 0x0000CCD0, 0x0000CD34 + .word 0x0000CD34, 0x0000CDB4 + .word 0x0000CDB4, 0x0000CE2D + .word 0x0000CE30, 0x0000CE86 + .word 0x0000CE88, 0x0000CEDE + .word 0x0000CEE0, 0x0000CF36 + .word 0x0000CF38, 0x0000CF9E + .word 0x0000CFA0, 0x0000D006 + .word 0x0000D008, 0x0000D06E + .word 0x0000D070, 0x0000D0F0 + .word 0x0000D0F0, 0x0000D16B + .word 0x0000D16C, 0x0000D1ED + .word 0x0000D1F0, 0x0000D278 + .word 0x0000D278, 0x0000D2FB + .word 0x0000D2FC, 0x0000D352 + .word 0x0000D354, 0x0000D3AA + .word 0x0000D3AC, 0x0000D402 + .word 0x0000D404, 0x0000D468 + .word 0x0000D468, 0x0000D4CD + .word 0x0000D4D0, 0x0000D530 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0000D538 ; chunk size + .incbin "baserom.nds", 0x0, 0x228 + .incbin "baserom.nds", 0x228, 0x59 + .incbin "baserom.nds", 0x284, 0x55 + .incbin "baserom.nds", 0x2DC, 0x70 + .incbin "baserom.nds", 0x34C, 0x70 + .incbin "baserom.nds", 0x3BC, 0x7B + .incbin "baserom.nds", 0x438, 0x80 + .incbin "baserom.nds", 0x4B8, 0x78 + .incbin "baserom.nds", 0x530, 0x7B + .incbin "baserom.nds", 0x5AC, 0x7D + .incbin "baserom.nds", 0x62C, 0x6F + .incbin "baserom.nds", 0x69C, 0x79 + .incbin "baserom.nds", 0x718, 0x7C + .incbin "baserom.nds", 0x794, 0x64 + .incbin "baserom.nds", 0x7F8, 0x56 + .incbin "baserom.nds", 0x850, 0x6E + .incbin "baserom.nds", 0x8C0, 0x64 + .incbin "baserom.nds", 0x924, 0x56 + .incbin "baserom.nds", 0x97C, 0x64 + .incbin "baserom.nds", 0x9E0, 0x72 + .incbin "baserom.nds", 0xA54, 0x76 + .incbin "baserom.nds", 0xACC, 0x81 + .incbin "baserom.nds", 0xB50, 0x64 + .incbin "baserom.nds", 0xBB4, 0x76 + .incbin "baserom.nds", 0xC2C, 0x72 + .incbin "baserom.nds", 0xCA0, 0x80 + .incbin "baserom.nds", 0xD20, 0x56 + .incbin "baserom.nds", 0xD78, 0x56 + .incbin "baserom.nds", 0xDD0, 0x64 + .incbin "baserom.nds", 0xE34, 0x71 + .incbin "baserom.nds", 0xEA8, 0x6F + .incbin "baserom.nds", 0xF18, 0x72 + .incbin "baserom.nds", 0xF8C, 0x6E + .incbin "baserom.nds", 0xFFC, 0x7B + .incbin "baserom.nds", 0x1078, 0x81 + .incbin "baserom.nds", 0x10FC, 0x72 + .incbin "baserom.nds", 0x1170, 0x7B + .incbin "baserom.nds", 0x11EC, 0x7E + .incbin "baserom.nds", 0x126C, 0x67 + .incbin "baserom.nds", 0x12D4, 0x80 + .incbin "baserom.nds", 0x1354, 0x79 + .incbin "baserom.nds", 0x13D0, 0x79 + .incbin "baserom.nds", 0x144C, 0x66 + .incbin "baserom.nds", 0x14B4, 0x6B + .incbin "baserom.nds", 0x1520, 0x56 + .incbin "baserom.nds", 0x1578, 0x6D + .incbin "baserom.nds", 0x15E8, 0x60 + .incbin "baserom.nds", 0x1648, 0x67 + .incbin "baserom.nds", 0x16B0, 0x66 + .incbin "baserom.nds", 0x1718, 0x62 + .incbin "baserom.nds", 0x177C, 0x62 + .incbin "baserom.nds", 0x17E0, 0x6A + .incbin "baserom.nds", 0x184C, 0x5A + .incbin "baserom.nds", 0x18A8, 0x56 + .incbin "baserom.nds", 0x1900, 0x56 + .incbin "baserom.nds", 0x1958, 0x72 + .incbin "baserom.nds", 0x19CC, 0x7B + .incbin "baserom.nds", 0x1A48, 0x81 + .incbin "baserom.nds", 0x1ACC, 0x84 + .incbin "baserom.nds", 0x1B50, 0x75 + .incbin "baserom.nds", 0x1BC8, 0x75 + .incbin "baserom.nds", 0x1C40, 0x74 + .incbin "baserom.nds", 0x1CB4, 0x7B + .incbin "baserom.nds", 0x1D30, 0x6B + .incbin "baserom.nds", 0x1D9C, 0x6C + .incbin "baserom.nds", 0x1E08, 0x72 + .incbin "baserom.nds", 0x1E7C, 0x6F + .incbin "baserom.nds", 0x1EEC, 0x7C + .incbin "baserom.nds", 0x1F68, 0x7B + .incbin "baserom.nds", 0x1FE4, 0x70 + .incbin "baserom.nds", 0x2054, 0x6C + .incbin "baserom.nds", 0x20C0, 0x6F + .incbin "baserom.nds", 0x2130, 0x79 + .incbin "baserom.nds", 0x21AC, 0x56 + .incbin "baserom.nds", 0x2204, 0x56 + .incbin "baserom.nds", 0x225C, 0x56 + .incbin "baserom.nds", 0x22B4, 0x56 + .incbin "baserom.nds", 0x230C, 0x56 + .incbin "baserom.nds", 0x2364, 0x72 + .incbin "baserom.nds", 0x23D8, 0x81 + .incbin "baserom.nds", 0x245C, 0x72 + .incbin "baserom.nds", 0x24D0, 0x76 + .incbin "baserom.nds", 0x2548, 0x6D + .incbin "baserom.nds", 0x25B8, 0x77 + .incbin "baserom.nds", 0x2630, 0x63 + .incbin "baserom.nds", 0x2694, 0x6C + .incbin "baserom.nds", 0x2700, 0x86 + .incbin "baserom.nds", 0x2788, 0x7D + .incbin "baserom.nds", 0x2808, 0x83 + .incbin "baserom.nds", 0x288C, 0x56 + .incbin "baserom.nds", 0x28E4, 0x56 + .incbin "baserom.nds", 0x293C, 0x56 + .incbin "baserom.nds", 0x2994, 0x56 + .incbin "baserom.nds", 0x29EC, 0x56 + .incbin "baserom.nds", 0x2A44, 0x56 + .incbin "baserom.nds", 0x2A9C, 0x56 + .incbin "baserom.nds", 0x2AF4, 0x56 + .incbin "baserom.nds", 0x2B4C, 0x78 + .incbin "baserom.nds", 0x2BC4, 0x56 + .incbin "baserom.nds", 0x2C1C, 0x6D + .incbin "baserom.nds", 0x2C8C, 0x7C + .incbin "baserom.nds", 0x2D08, 0x6A + .incbin "baserom.nds", 0x2D74, 0x74 + .incbin "baserom.nds", 0x2DE8, 0x56 + .incbin "baserom.nds", 0x2E40, 0x56 + .incbin "baserom.nds", 0x2E98, 0x56 + .incbin "baserom.nds", 0x2EF0, 0x74 + .incbin "baserom.nds", 0x2F64, 0x6E + .incbin "baserom.nds", 0x2FD4, 0x70 + .incbin "baserom.nds", 0x3044, 0x89 + .incbin "baserom.nds", 0x30D0, 0x67 + .incbin "baserom.nds", 0x3138, 0x85 + .incbin "baserom.nds", 0x31C0, 0x56 + .incbin "baserom.nds", 0x3218, 0x56 + .incbin "baserom.nds", 0x3270, 0x70 + .incbin "baserom.nds", 0x32E0, 0x7A + .incbin "baserom.nds", 0x335C, 0x67 + .incbin "baserom.nds", 0x33C4, 0x74 + .incbin "baserom.nds", 0x3438, 0x78 + .incbin "baserom.nds", 0x34B0, 0x56 + .incbin "baserom.nds", 0x3508, 0x56 + .incbin "baserom.nds", 0x3560, 0x56 + .incbin "baserom.nds", 0x35B8, 0x56 + .incbin "baserom.nds", 0x3610, 0x64 + .incbin "baserom.nds", 0x3674, 0x64 + .incbin "baserom.nds", 0x36D8, 0x6B + .incbin "baserom.nds", 0x3744, 0x80 + .incbin "baserom.nds", 0x37C4, 0x56 + .incbin "baserom.nds", 0x381C, 0x71 + .incbin "baserom.nds", 0x3890, 0x79 + .incbin "baserom.nds", 0x390C, 0x6A + .incbin "baserom.nds", 0x3978, 0x6F + .incbin "baserom.nds", 0x39E8, 0x56 + .incbin "baserom.nds", 0x3A40, 0x56 + .incbin "baserom.nds", 0x3A98, 0x56 + .incbin "baserom.nds", 0x3AF0, 0x56 + .incbin "baserom.nds", 0x3B48, 0x7D + .incbin "baserom.nds", 0x3BC8, 0x79 + .incbin "baserom.nds", 0x3C44, 0x72 + .incbin "baserom.nds", 0x3CB8, 0x7D + .incbin "baserom.nds", 0x3D38, 0x6A + .incbin "baserom.nds", 0x3DA4, 0x5E + .incbin "baserom.nds", 0x3E04, 0x66 + .incbin "baserom.nds", 0x3E6C, 0x5A + .incbin "baserom.nds", 0x3EC8, 0x75 + .incbin "baserom.nds", 0x3F40, 0x6B + .incbin "baserom.nds", 0x3FAC, 0x81 + .incbin "baserom.nds", 0x4030, 0x82 + .incbin "baserom.nds", 0x40B4, 0x8A + .incbin "baserom.nds", 0x4140, 0x7B + .incbin "baserom.nds", 0x41BC, 0x56 + .incbin "baserom.nds", 0x4214, 0x56 + .incbin "baserom.nds", 0x426C, 0x7C + .incbin "baserom.nds", 0x42E8, 0x7A + .incbin "baserom.nds", 0x4364, 0x65 + .incbin "baserom.nds", 0x43CC, 0x5F + .incbin "baserom.nds", 0x442C, 0x6D + .incbin "baserom.nds", 0x449C, 0x78 + .incbin "baserom.nds", 0x4514, 0x68 + .incbin "baserom.nds", 0x457C, 0x6A + .incbin "baserom.nds", 0x45E8, 0x6C + .incbin "baserom.nds", 0x4654, 0x69 + .incbin "baserom.nds", 0x46C0, 0x69 + .incbin "baserom.nds", 0x472C, 0x7E + .incbin "baserom.nds", 0x47AC, 0x66 + .incbin "baserom.nds", 0x4814, 0x66 + .incbin "baserom.nds", 0x487C, 0x7E + .incbin "baserom.nds", 0x48FC, 0x85 + .incbin "baserom.nds", 0x4984, 0x71 + .incbin "baserom.nds", 0x49F8, 0x77 + .incbin "baserom.nds", 0x4A70, 0x5A + .incbin "baserom.nds", 0x4ACC, 0x69 + .incbin "baserom.nds", 0x4B38, 0x56 + .incbin "baserom.nds", 0x4B90, 0x56 + .incbin "baserom.nds", 0x4BE8, 0x56 + .incbin "baserom.nds", 0x4C40, 0x62 + .incbin "baserom.nds", 0x4CA4, 0x5F + .incbin "baserom.nds", 0x4D04, 0x68 + .incbin "baserom.nds", 0x4D6C, 0x6B + .incbin "baserom.nds", 0x4DD8, 0x70 + .incbin "baserom.nds", 0x4E48, 0x60 + .incbin "baserom.nds", 0x4EA8, 0x6C + .incbin "baserom.nds", 0x4F14, 0x61 + .incbin "baserom.nds", 0x4F78, 0x64 + .incbin "baserom.nds", 0x4FDC, 0x70 + .incbin "baserom.nds", 0x504C, 0x56 + .incbin "baserom.nds", 0x50A4, 0x63 + .incbin "baserom.nds", 0x5108, 0x66 + .incbin "baserom.nds", 0x5170, 0x66 + .incbin "baserom.nds", 0x51D8, 0x78 + .incbin "baserom.nds", 0x5250, 0x64 + .incbin "baserom.nds", 0x52B4, 0x68 + .incbin "baserom.nds", 0x531C, 0x68 + .incbin "baserom.nds", 0x5384, 0x6E + .incbin "baserom.nds", 0x53F4, 0x56 + .incbin "baserom.nds", 0x544C, 0x6D + .incbin "baserom.nds", 0x54BC, 0x64 + .incbin "baserom.nds", 0x5520, 0x62 + .incbin "baserom.nds", 0x5584, 0x6F + .incbin "baserom.nds", 0x55F4, 0x61 + .incbin "baserom.nds", 0x5658, 0x6B + .incbin "baserom.nds", 0x56C4, 0x6F + .incbin "baserom.nds", 0x5734, 0x68 + .incbin "baserom.nds", 0x579C, 0x56 + .incbin "baserom.nds", 0x57F4, 0x56 + .incbin "baserom.nds", 0x584C, 0x65 + .incbin "baserom.nds", 0x58B4, 0x63 + .incbin "baserom.nds", 0x5918, 0x56 + .incbin "baserom.nds", 0x5970, 0x56 + .incbin "baserom.nds", 0x59C8, 0x56 + .incbin "baserom.nds", 0x5A20, 0x6C + .incbin "baserom.nds", 0x5A8C, 0x56 + .incbin "baserom.nds", 0x5AE4, 0x70 + .incbin "baserom.nds", 0x5B54, 0x7A + .incbin "baserom.nds", 0x5BD0, 0x56 + .incbin "baserom.nds", 0x5C28, 0x74 + .incbin "baserom.nds", 0x5C9C, 0x6A + .incbin "baserom.nds", 0x5D08, 0x73 + .incbin "baserom.nds", 0x5D7C, 0x6C + .incbin "baserom.nds", 0x5DE8, 0x6F + .incbin "baserom.nds", 0x5E58, 0x7F + .incbin "baserom.nds", 0x5ED8, 0x56 + .incbin "baserom.nds", 0x5F30, 0x56 + .incbin "baserom.nds", 0x5F88, 0x63 + .incbin "baserom.nds", 0x5FEC, 0x79 + .incbin "baserom.nds", 0x6068, 0x63 + .incbin "baserom.nds", 0x60CC, 0x56 + .incbin "baserom.nds", 0x6124, 0x78 + .incbin "baserom.nds", 0x619C, 0x70 + .incbin "baserom.nds", 0x620C, 0x56 + .incbin "baserom.nds", 0x6264, 0x73 + .incbin "baserom.nds", 0x62D8, 0x6F + .incbin "baserom.nds", 0x6348, 0x85 + .incbin "baserom.nds", 0x63D0, 0x56 + .incbin "baserom.nds", 0x6428, 0x6C + .incbin "baserom.nds", 0x6494, 0x73 + .incbin "baserom.nds", 0x6508, 0x69 + .incbin "baserom.nds", 0x6574, 0x62 + .incbin "baserom.nds", 0x65D8, 0x7A + .incbin "baserom.nds", 0x6654, 0x62 + .incbin "baserom.nds", 0x66B8, 0x83 + .incbin "baserom.nds", 0x673C, 0x63 + .incbin "baserom.nds", 0x67A0, 0x6C + .incbin "baserom.nds", 0x680C, 0x70 + .incbin "baserom.nds", 0x687C, 0x66 + .incbin "baserom.nds", 0x68E4, 0x71 + .incbin "baserom.nds", 0x6958, 0x76 + .incbin "baserom.nds", 0x69D0, 0x78 + .incbin "baserom.nds", 0x6A48, 0x68 + .incbin "baserom.nds", 0x6AB0, 0x5E + .incbin "baserom.nds", 0x6B10, 0x56 + .incbin "baserom.nds", 0x6B68, 0x7B + .incbin "baserom.nds", 0x6BE4, 0x79 + .incbin "baserom.nds", 0x6C60, 0x82 + .incbin "baserom.nds", 0x6CE4, 0x68 + .incbin "baserom.nds", 0x6D4C, 0x7D + .incbin "baserom.nds", 0x6DCC, 0x74 + .incbin "baserom.nds", 0x6E40, 0x88 + .incbin "baserom.nds", 0x6EC8, 0x81 + .incbin "baserom.nds", 0x6F4C, 0x80 + .incbin "baserom.nds", 0x6FCC, 0x97 + .incbin "baserom.nds", 0x7064, 0x73 + .incbin "baserom.nds", 0x70D8, 0x73 + .incbin "baserom.nds", 0x714C, 0x80 + .incbin "baserom.nds", 0x71CC, 0x78 + .incbin "baserom.nds", 0x7244, 0x90 + .incbin "baserom.nds", 0x72D4, 0x7B + .incbin "baserom.nds", 0x7350, 0x67 + .incbin "baserom.nds", 0x73B8, 0x60 + .incbin "baserom.nds", 0x7418, 0x56 + .incbin "baserom.nds", 0x7470, 0x69 + .incbin "baserom.nds", 0x74DC, 0x56 + .incbin "baserom.nds", 0x7534, 0x63 + .incbin "baserom.nds", 0x7598, 0x6D + .incbin "baserom.nds", 0x7608, 0x90 + .incbin "baserom.nds", 0x7698, 0x6B + .incbin "baserom.nds", 0x7704, 0x77 + .incbin "baserom.nds", 0x777C, 0x7E + .incbin "baserom.nds", 0x77FC, 0x5C + .incbin "baserom.nds", 0x7858, 0x7B + .incbin "baserom.nds", 0x78D4, 0x80 + .incbin "baserom.nds", 0x7954, 0x74 + .incbin "baserom.nds", 0x79C8, 0x7F + .incbin "baserom.nds", 0x7A48, 0x59 + .incbin "baserom.nds", 0x7AA4, 0x64 + .incbin "baserom.nds", 0x7B08, 0x65 + .incbin "baserom.nds", 0x7B70, 0x68 + .incbin "baserom.nds", 0x7BD8, 0x56 + .incbin "baserom.nds", 0x7C30, 0x6C + .incbin "baserom.nds", 0x7C9C, 0x6F + .incbin "baserom.nds", 0x7D0C, 0x74 + .incbin "baserom.nds", 0x7D80, 0x86 + .incbin "baserom.nds", 0x7E08, 0x91 + .incbin "baserom.nds", 0x7E9C, 0x6E + .incbin "baserom.nds", 0x7F0C, 0x6D + .incbin "baserom.nds", 0x7F7C, 0x67 + .incbin "baserom.nds", 0x7FE4, 0x88 + .incbin "baserom.nds", 0x806C, 0x7B + .incbin "baserom.nds", 0x80E8, 0x8D + .incbin "baserom.nds", 0x8178, 0x7B + .incbin "baserom.nds", 0x81F4, 0x83 + .incbin "baserom.nds", 0x8278, 0x6B + .incbin "baserom.nds", 0x82E4, 0x75 + .incbin "baserom.nds", 0x835C, 0x78 + .incbin "baserom.nds", 0x83D4, 0x90 + .incbin "baserom.nds", 0x8464, 0x62 + .incbin "baserom.nds", 0x84C8, 0x71 + .incbin "baserom.nds", 0x853C, 0x6D + .incbin "baserom.nds", 0x85AC, 0x7E + .incbin "baserom.nds", 0x862C, 0x83 + .incbin "baserom.nds", 0x86B0, 0x6C + .incbin "baserom.nds", 0x871C, 0x63 + .incbin "baserom.nds", 0x8780, 0x74 + .incbin "baserom.nds", 0x87F4, 0x75 + .incbin "baserom.nds", 0x886C, 0x6D + .incbin "baserom.nds", 0x88DC, 0x6D + .incbin "baserom.nds", 0x894C, 0x65 + .incbin "baserom.nds", 0x89B4, 0x66 + .incbin "baserom.nds", 0x8A1C, 0x60 + .incbin "baserom.nds", 0x8A7C, 0x56 + .incbin "baserom.nds", 0x8AD4, 0x56 + .incbin "baserom.nds", 0x8B2C, 0x56 + .incbin "baserom.nds", 0x8B84, 0x56 + .incbin "baserom.nds", 0x8BDC, 0x56 + .incbin "baserom.nds", 0x8C34, 0x56 + .incbin "baserom.nds", 0x8C8C, 0x71 + .incbin "baserom.nds", 0x8D00, 0x93 + .incbin "baserom.nds", 0x8D94, 0x88 + .incbin "baserom.nds", 0x8E1C, 0x56 + .incbin "baserom.nds", 0x8E74, 0x76 + .incbin "baserom.nds", 0x8EEC, 0x67 + .incbin "baserom.nds", 0x8F54, 0x6F + .incbin "baserom.nds", 0x8FC4, 0x6B + .incbin "baserom.nds", 0x9030, 0x73 + .incbin "baserom.nds", 0x90A4, 0x62 + .incbin "baserom.nds", 0x9108, 0x6F + .incbin "baserom.nds", 0x9178, 0x5D + .incbin "baserom.nds", 0x91D8, 0x7C + .incbin "baserom.nds", 0x9254, 0x7E + .incbin "baserom.nds", 0x92D4, 0x56 + .incbin "baserom.nds", 0x932C, 0x56 + .incbin "baserom.nds", 0x9384, 0x56 + .incbin "baserom.nds", 0x93DC, 0x56 + .incbin "baserom.nds", 0x9434, 0x56 + .incbin "baserom.nds", 0x948C, 0x70 + .incbin "baserom.nds", 0x94FC, 0x85 + .incbin "baserom.nds", 0x9584, 0x59 + .incbin "baserom.nds", 0x95E0, 0x60 + .incbin "baserom.nds", 0x9640, 0x7D + .incbin "baserom.nds", 0x96C0, 0x82 + .incbin "baserom.nds", 0x9744, 0x56 + .incbin "baserom.nds", 0x979C, 0x7B + .incbin "baserom.nds", 0x9818, 0x56 + .incbin "baserom.nds", 0x9870, 0x56 + .incbin "baserom.nds", 0x98C8, 0x56 + .incbin "baserom.nds", 0x9920, 0x6F + .incbin "baserom.nds", 0x9990, 0x56 + .incbin "baserom.nds", 0x99E8, 0x68 + .incbin "baserom.nds", 0x9A50, 0x56 + .incbin "baserom.nds", 0x9AA8, 0x95 + .incbin "baserom.nds", 0x9B40, 0x81 + .incbin "baserom.nds", 0x9BC4, 0x56 + .incbin "baserom.nds", 0x9C1C, 0x86 + .incbin "baserom.nds", 0x9CA4, 0x64 + .incbin "baserom.nds", 0x9D08, 0x77 + .incbin "baserom.nds", 0x9D80, 0x56 + .incbin "baserom.nds", 0x9DD8, 0x56 + .incbin "baserom.nds", 0x9E30, 0x56 + .incbin "baserom.nds", 0x9E88, 0x56 + .incbin "baserom.nds", 0x9EE0, 0x56 + .incbin "baserom.nds", 0x9F38, 0x56 + .incbin "baserom.nds", 0x9F90, 0x56 + .incbin "baserom.nds", 0x9FE8, 0x56 + .incbin "baserom.nds", 0xA040, 0x56 + .incbin "baserom.nds", 0xA098, 0x6F + .incbin "baserom.nds", 0xA108, 0x6D + .incbin "baserom.nds", 0xA178, 0x81 + .incbin "baserom.nds", 0xA1FC, 0x5F + .incbin "baserom.nds", 0xA25C, 0x68 + .incbin "baserom.nds", 0xA2C4, 0x73 + .incbin "baserom.nds", 0xA338, 0x88 + .incbin "baserom.nds", 0xA3C0, 0x59 + .incbin "baserom.nds", 0xA41C, 0x84 + .incbin "baserom.nds", 0xA4A0, 0x7A + .incbin "baserom.nds", 0xA51C, 0x76 + .incbin "baserom.nds", 0xA594, 0x79 + .incbin "baserom.nds", 0xA610, 0x8F + .incbin "baserom.nds", 0xA6A0, 0x56 + .incbin "baserom.nds", 0xA6F8, 0x68 + .incbin "baserom.nds", 0xA760, 0x60 + .incbin "baserom.nds", 0xA7C0, 0x67 + .incbin "baserom.nds", 0xA828, 0x78 + .incbin "baserom.nds", 0xA8A0, 0x7D + .incbin "baserom.nds", 0xA920, 0x71 + .incbin "baserom.nds", 0xA994, 0x71 + .incbin "baserom.nds", 0xAA08, 0x8A + .incbin "baserom.nds", 0xAA94, 0x69 + .incbin "baserom.nds", 0xAB00, 0x7B + .incbin "baserom.nds", 0xAB7C, 0x83 + .incbin "baserom.nds", 0xAC00, 0x6D + .incbin "baserom.nds", 0xAC70, 0x6E + .incbin "baserom.nds", 0xACE0, 0x70 + .incbin "baserom.nds", 0xAD50, 0x6B + .incbin "baserom.nds", 0xADBC, 0x7C + .incbin "baserom.nds", 0xAE38, 0x65 + .incbin "baserom.nds", 0xAEA0, 0x5A + .incbin "baserom.nds", 0xAEFC, 0x68 + .incbin "baserom.nds", 0xAF64, 0x6F + .incbin "baserom.nds", 0xAFD4, 0x6F + .incbin "baserom.nds", 0xB044, 0x64 + .incbin "baserom.nds", 0xB0A8, 0x62 + .incbin "baserom.nds", 0xB10C, 0x6D + .incbin "baserom.nds", 0xB17C, 0x79 + .incbin "baserom.nds", 0xB1F8, 0x67 + .incbin "baserom.nds", 0xB260, 0x76 + .incbin "baserom.nds", 0xB2D8, 0x56 + .incbin "baserom.nds", 0xB330, 0x56 + .incbin "baserom.nds", 0xB388, 0x5A + .incbin "baserom.nds", 0xB3E4, 0x56 + .incbin "baserom.nds", 0xB43C, 0x56 + .incbin "baserom.nds", 0xB494, 0x67 + .incbin "baserom.nds", 0xB4FC, 0x72 + .incbin "baserom.nds", 0xB570, 0x6A + .incbin "baserom.nds", 0xB5DC, 0x64 + .incbin "baserom.nds", 0xB640, 0x64 + .incbin "baserom.nds", 0xB6A4, 0x60 + .incbin "baserom.nds", 0xB704, 0x66 + .incbin "baserom.nds", 0xB76C, 0x72 + .incbin "baserom.nds", 0xB7E0, 0x56 + .incbin "baserom.nds", 0xB838, 0x56 + .incbin "baserom.nds", 0xB890, 0x75 + .incbin "baserom.nds", 0xB908, 0x70 + .incbin "baserom.nds", 0xB978, 0x56 + .incbin "baserom.nds", 0xB9D0, 0x81 + .incbin "baserom.nds", 0xBA54, 0x6E + .incbin "baserom.nds", 0xBAC4, 0x75 + .incbin "baserom.nds", 0xBB3C, 0x64 + .incbin "baserom.nds", 0xBBA0, 0x68 + .incbin "baserom.nds", 0xBC08, 0x70 + .incbin "baserom.nds", 0xBC78, 0x56 + .incbin "baserom.nds", 0xBCD0, 0x56 + .incbin "baserom.nds", 0xBD28, 0x6D + .incbin "baserom.nds", 0xBD98, 0x62 + .incbin "baserom.nds", 0xBDFC, 0x6E + .incbin "baserom.nds", 0xBE6C, 0x83 + .incbin "baserom.nds", 0xBEF0, 0x56 + .incbin "baserom.nds", 0xBF48, 0x6E + .incbin "baserom.nds", 0xBFB8, 0x79 + .incbin "baserom.nds", 0xC034, 0x78 + .incbin "baserom.nds", 0xC0AC, 0x7A + .incbin "baserom.nds", 0xC128, 0x6F + .incbin "baserom.nds", 0xC198, 0x75 + .incbin "baserom.nds", 0xC210, 0x6E + .incbin "baserom.nds", 0xC280, 0x82 + .incbin "baserom.nds", 0xC304, 0x5A + .incbin "baserom.nds", 0xC360, 0x5A + .incbin "baserom.nds", 0xC3BC, 0x73 + .incbin "baserom.nds", 0xC430, 0x77 + .incbin "baserom.nds", 0xC4A8, 0x56 + .incbin "baserom.nds", 0xC500, 0x56 + .incbin "baserom.nds", 0xC558, 0x56 + .incbin "baserom.nds", 0xC5B0, 0x56 + .incbin "baserom.nds", 0xC608, 0x6A + .incbin "baserom.nds", 0xC674, 0x82 + .incbin "baserom.nds", 0xC6F8, 0x79 + .incbin "baserom.nds", 0xC774, 0x56 + .incbin "baserom.nds", 0xC7CC, 0x7E + .incbin "baserom.nds", 0xC84C, 0x71 + .incbin "baserom.nds", 0xC8C0, 0x7D + .incbin "baserom.nds", 0xC940, 0x79 + .incbin "baserom.nds", 0xC9BC, 0x77 + .incbin "baserom.nds", 0xCA34, 0x6E + .incbin "baserom.nds", 0xCAA4, 0x68 + .incbin "baserom.nds", 0xCB0C, 0x6B + .incbin "baserom.nds", 0xCB78, 0x6B + .incbin "baserom.nds", 0xCBE4, 0x6E + .incbin "baserom.nds", 0xCC54, 0x79 + .incbin "baserom.nds", 0xCCD0, 0x64 + .incbin "baserom.nds", 0xCD34, 0x80 + .incbin "baserom.nds", 0xCDB4, 0x79 + .incbin "baserom.nds", 0xCE30, 0x56 + .incbin "baserom.nds", 0xCE88, 0x56 + .incbin "baserom.nds", 0xCEE0, 0x56 + .incbin "baserom.nds", 0xCF38, 0x66 + .incbin "baserom.nds", 0xCFA0, 0x66 + .incbin "baserom.nds", 0xD008, 0x66 + .incbin "baserom.nds", 0xD070, 0x80 + .incbin "baserom.nds", 0xD0F0, 0x7B + .incbin "baserom.nds", 0xD16C, 0x81 + .incbin "baserom.nds", 0xD1F0, 0x88 + .incbin "baserom.nds", 0xD278, 0x83 + .incbin "baserom.nds", 0xD2FC, 0x56 + .incbin "baserom.nds", 0xD354, 0x56 + .incbin "baserom.nds", 0xD3AC, 0x56 + .incbin "baserom.nds", 0xD404, 0x64 + .incbin "baserom.nds", 0xD468, 0x65 + .incbin "baserom.nds", 0xD4D0, 0x60 + .balign 4, 255 diff --git a/narc/pokegra/height.narc.s b/narc/pokegra/height.narc.s new file mode 100644 index 00000000..ef0b9aef --- /dev/null +++ b/narc/pokegra/height.narc.s @@ -0,0 +1,3978 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00005A44 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00003DCC ; chunk size + .short 1976 ; number of files + .balign 4 + .word 0x00000000, 0x00000001 + .word 0x00000004, 0x00000005 + .word 0x00000008, 0x00000009 + .word 0x0000000C, 0x0000000D + .word 0x00000010, 0x00000011 + .word 0x00000014, 0x00000015 + .word 0x00000018, 0x00000019 + .word 0x0000001C, 0x0000001D + .word 0x00000020, 0x00000021 + .word 0x00000024, 0x00000025 + .word 0x00000028, 0x00000029 + .word 0x0000002C, 0x0000002D + .word 0x00000030, 0x00000031 + .word 0x00000034, 0x00000035 + .word 0x00000038, 0x00000039 + .word 0x0000003C, 0x0000003D + .word 0x00000040, 0x00000041 + .word 0x00000044, 0x00000045 + .word 0x00000048, 0x00000049 + .word 0x0000004C, 0x0000004D + .word 0x00000050, 0x00000051 + .word 0x00000054, 0x00000055 + .word 0x00000058, 0x00000059 + .word 0x0000005C, 0x0000005D + .word 0x00000060, 0x00000061 + .word 0x00000064, 0x00000065 + .word 0x00000068, 0x00000069 + .word 0x0000006C, 0x0000006D + .word 0x00000070, 0x00000071 + .word 0x00000074, 0x00000075 + .word 0x00000078, 0x00000079 + .word 0x0000007C, 0x0000007D + .word 0x00000080, 0x00000081 + .word 0x00000084, 0x00000085 + .word 0x00000088, 0x00000089 + .word 0x0000008C, 0x0000008D + .word 0x00000090, 0x00000091 + .word 0x00000094, 0x00000095 + .word 0x00000098, 0x00000099 + .word 0x0000009C, 0x0000009D + .word 0x000000A0, 0x000000A1 + .word 0x000000A4, 0x000000A5 + .word 0x000000A8, 0x000000A9 + .word 0x000000AC, 0x000000AD + .word 0x000000B0, 0x000000B1 + .word 0x000000B4, 0x000000B5 + .word 0x000000B8, 0x000000B9 + .word 0x000000BC, 0x000000BD + .word 0x000000C0, 0x000000C1 + .word 0x000000C4, 0x000000C5 + .word 0x000000C8, 0x000000C9 + .word 0x000000CC, 0x000000CD + .word 0x000000D0, 0x000000D1 + .word 0x000000D4, 0x000000D5 + .word 0x000000D8, 0x000000D9 + .word 0x000000DC, 0x000000DD + .word 0x000000E0, 0x000000E1 + .word 0x000000E4, 0x000000E5 + .word 0x000000E8, 0x000000E9 + .word 0x000000EC, 0x000000ED + .word 0x000000F0, 0x000000F1 + .word 0x000000F4, 0x000000F5 + .word 0x000000F8, 0x000000F9 + .word 0x000000FC, 0x000000FD + .word 0x00000100, 0x00000101 + .word 0x00000104, 0x00000105 + .word 0x00000108, 0x00000109 + .word 0x0000010C, 0x0000010D + .word 0x00000110, 0x00000111 + .word 0x00000114, 0x00000115 + .word 0x00000118, 0x00000119 + .word 0x0000011C, 0x0000011D + .word 0x00000120, 0x00000121 + .word 0x00000124, 0x00000125 + .word 0x00000128, 0x00000129 + .word 0x0000012C, 0x0000012D + .word 0x00000130, 0x00000131 + .word 0x00000134, 0x00000135 + .word 0x00000138, 0x00000139 + .word 0x0000013C, 0x0000013D + .word 0x00000140, 0x00000141 + .word 0x00000144, 0x00000145 + .word 0x00000148, 0x00000149 + .word 0x0000014C, 0x0000014D + .word 0x00000150, 0x00000151 + .word 0x00000154, 0x00000155 + .word 0x00000158, 0x00000159 + .word 0x0000015C, 0x0000015D + .word 0x00000160, 0x00000161 + .word 0x00000164, 0x00000165 + .word 0x00000168, 0x00000169 + .word 0x0000016C, 0x0000016D + .word 0x00000170, 0x00000171 + .word 0x00000174, 0x00000175 + .word 0x00000178, 0x00000179 + .word 0x0000017C, 0x0000017D + .word 0x00000180, 0x00000181 + .word 0x00000184, 0x00000185 + .word 0x00000188, 0x00000189 + .word 0x0000018C, 0x0000018D + .word 0x00000190, 0x00000191 + .word 0x00000194, 0x00000195 + .word 0x00000198, 0x00000199 + .word 0x0000019C, 0x0000019D + .word 0x000001A0, 0x000001A1 + .word 0x000001A4, 0x000001A5 + .word 0x000001A8, 0x000001A9 + .word 0x000001AC, 0x000001AD + .word 0x000001B0, 0x000001B1 + .word 0x000001B4, 0x000001B5 + .word 0x000001B8, 0x000001B9 + .word 0x000001BC, 0x000001BD + .word 0x000001C0, 0x000001C1 + .word 0x000001C4, 0x000001C5 + .word 0x000001C8, 0x000001C9 + .word 0x000001CC, 0x000001CD + .word 0x000001D0, 0x000001D1 + .word 0x000001D4, 0x000001D4 + .word 0x000001D4, 0x000001D5 + .word 0x000001D8, 0x000001D8 + .word 0x000001D8, 0x000001D9 + .word 0x000001DC, 0x000001DC + .word 0x000001DC, 0x000001DD + .word 0x000001E0, 0x000001E0 + .word 0x000001E0, 0x000001E1 + .word 0x000001E4, 0x000001E4 + .word 0x000001E4, 0x000001E5 + .word 0x000001E8, 0x000001E8 + .word 0x000001E8, 0x000001E8 + .word 0x000001E8, 0x000001E9 + .word 0x000001EC, 0x000001EC + .word 0x000001EC, 0x000001ED + .word 0x000001F0, 0x000001F0 + .word 0x000001F0, 0x000001F1 + .word 0x000001F4, 0x000001F4 + .word 0x000001F4, 0x000001F5 + .word 0x000001F8, 0x000001F8 + .word 0x000001F8, 0x000001F9 + .word 0x000001FC, 0x000001FC + .word 0x000001FC, 0x000001FD + .word 0x00000200, 0x00000201 + .word 0x00000204, 0x00000205 + .word 0x00000208, 0x00000209 + .word 0x0000020C, 0x0000020D + .word 0x00000210, 0x00000211 + .word 0x00000214, 0x00000215 + .word 0x00000218, 0x00000219 + .word 0x0000021C, 0x0000021D + .word 0x00000220, 0x00000221 + .word 0x00000224, 0x00000225 + .word 0x00000228, 0x00000229 + .word 0x0000022C, 0x0000022D + .word 0x00000230, 0x00000231 + .word 0x00000234, 0x00000235 + .word 0x00000238, 0x00000239 + .word 0x0000023C, 0x0000023D + .word 0x00000240, 0x00000241 + .word 0x00000244, 0x00000245 + .word 0x00000248, 0x00000249 + .word 0x0000024C, 0x0000024D + .word 0x00000250, 0x00000251 + .word 0x00000254, 0x00000255 + .word 0x00000258, 0x00000259 + .word 0x0000025C, 0x0000025D + .word 0x00000260, 0x00000261 + .word 0x00000264, 0x00000265 + .word 0x00000268, 0x00000269 + .word 0x0000026C, 0x0000026D + .word 0x00000270, 0x00000271 + .word 0x00000274, 0x00000275 + .word 0x00000278, 0x00000279 + .word 0x0000027C, 0x0000027D + .word 0x00000280, 0x00000281 + .word 0x00000284, 0x00000285 + .word 0x00000288, 0x00000289 + .word 0x0000028C, 0x0000028D + .word 0x00000290, 0x00000291 + .word 0x00000294, 0x00000295 + .word 0x00000298, 0x00000299 + .word 0x0000029C, 0x0000029D + .word 0x000002A0, 0x000002A1 + .word 0x000002A4, 0x000002A5 + .word 0x000002A8, 0x000002A9 + .word 0x000002AC, 0x000002AD + .word 0x000002B0, 0x000002B1 + .word 0x000002B4, 0x000002B5 + .word 0x000002B8, 0x000002B9 + .word 0x000002BC, 0x000002BD + .word 0x000002C0, 0x000002C1 + .word 0x000002C4, 0x000002C5 + .word 0x000002C8, 0x000002C9 + .word 0x000002CC, 0x000002CD + .word 0x000002D0, 0x000002D1 + .word 0x000002D4, 0x000002D5 + .word 0x000002D8, 0x000002D9 + .word 0x000002DC, 0x000002DD + .word 0x000002E0, 0x000002E1 + .word 0x000002E4, 0x000002E5 + .word 0x000002E8, 0x000002E9 + .word 0x000002EC, 0x000002ED + .word 0x000002F0, 0x000002F1 + .word 0x000002F4, 0x000002F5 + .word 0x000002F8, 0x000002F9 + .word 0x000002FC, 0x000002FD + .word 0x00000300, 0x00000301 + .word 0x00000304, 0x00000305 + .word 0x00000308, 0x00000309 + .word 0x0000030C, 0x0000030D + .word 0x00000310, 0x00000311 + .word 0x00000314, 0x00000315 + .word 0x00000318, 0x00000319 + .word 0x0000031C, 0x0000031D + .word 0x00000320, 0x00000321 + .word 0x00000324, 0x00000325 + .word 0x00000328, 0x00000329 + .word 0x0000032C, 0x0000032D + .word 0x00000330, 0x00000331 + .word 0x00000334, 0x00000335 + .word 0x00000338, 0x00000339 + .word 0x0000033C, 0x0000033D + .word 0x00000340, 0x00000341 + .word 0x00000344, 0x00000345 + .word 0x00000348, 0x00000349 + .word 0x0000034C, 0x0000034D + .word 0x00000350, 0x00000351 + .word 0x00000354, 0x00000355 + .word 0x00000358, 0x00000359 + .word 0x0000035C, 0x0000035D + .word 0x00000360, 0x00000361 + .word 0x00000364, 0x00000365 + .word 0x00000368, 0x00000369 + .word 0x0000036C, 0x0000036D + .word 0x00000370, 0x00000371 + .word 0x00000374, 0x00000375 + .word 0x00000378, 0x00000379 + .word 0x0000037C, 0x0000037D + .word 0x00000380, 0x00000381 + .word 0x00000384, 0x00000385 + .word 0x00000388, 0x00000389 + .word 0x0000038C, 0x0000038D + .word 0x00000390, 0x00000391 + .word 0x00000394, 0x00000395 + .word 0x00000398, 0x00000399 + .word 0x0000039C, 0x0000039D + .word 0x000003A0, 0x000003A1 + .word 0x000003A4, 0x000003A5 + .word 0x000003A8, 0x000003A9 + .word 0x000003AC, 0x000003AD + .word 0x000003B0, 0x000003B1 + .word 0x000003B4, 0x000003B5 + .word 0x000003B8, 0x000003B9 + .word 0x000003BC, 0x000003BD + .word 0x000003C0, 0x000003C1 + .word 0x000003C4, 0x000003C5 + .word 0x000003C8, 0x000003C9 + .word 0x000003CC, 0x000003CD + .word 0x000003D0, 0x000003D1 + .word 0x000003D4, 0x000003D5 + .word 0x000003D8, 0x000003D9 + .word 0x000003DC, 0x000003DD + .word 0x000003E0, 0x000003E1 + .word 0x000003E4, 0x000003E5 + .word 0x000003E8, 0x000003E9 + .word 0x000003EC, 0x000003ED + .word 0x000003F0, 0x000003F1 + .word 0x000003F4, 0x000003F5 + .word 0x000003F8, 0x000003F9 + .word 0x000003FC, 0x000003FD + .word 0x00000400, 0x00000401 + .word 0x00000404, 0x00000405 + .word 0x00000408, 0x00000409 + .word 0x0000040C, 0x0000040D + .word 0x00000410, 0x00000411 + .word 0x00000414, 0x00000415 + .word 0x00000418, 0x00000419 + .word 0x0000041C, 0x0000041D + .word 0x00000420, 0x00000421 + .word 0x00000424, 0x00000425 + .word 0x00000428, 0x00000429 + .word 0x0000042C, 0x0000042D + .word 0x00000430, 0x00000431 + .word 0x00000434, 0x00000435 + .word 0x00000438, 0x00000439 + .word 0x0000043C, 0x0000043D + .word 0x00000440, 0x00000441 + .word 0x00000444, 0x00000445 + .word 0x00000448, 0x00000449 + .word 0x0000044C, 0x0000044D + .word 0x00000450, 0x00000451 + .word 0x00000454, 0x00000455 + .word 0x00000458, 0x00000459 + .word 0x0000045C, 0x0000045D + .word 0x00000460, 0x00000461 + .word 0x00000464, 0x00000465 + .word 0x00000468, 0x00000469 + .word 0x0000046C, 0x0000046D + .word 0x00000470, 0x00000471 + .word 0x00000474, 0x00000475 + .word 0x00000478, 0x00000479 + .word 0x0000047C, 0x0000047D + .word 0x00000480, 0x00000481 + .word 0x00000484, 0x00000485 + .word 0x00000488, 0x00000489 + .word 0x0000048C, 0x0000048D + .word 0x00000490, 0x00000491 + .word 0x00000494, 0x00000495 + .word 0x00000498, 0x00000499 + .word 0x0000049C, 0x0000049D + .word 0x000004A0, 0x000004A1 + .word 0x000004A4, 0x000004A5 + .word 0x000004A8, 0x000004A9 + .word 0x000004AC, 0x000004AD + .word 0x000004B0, 0x000004B1 + .word 0x000004B4, 0x000004B5 + .word 0x000004B8, 0x000004B9 + .word 0x000004BC, 0x000004BD + .word 0x000004C0, 0x000004C1 + .word 0x000004C4, 0x000004C5 + .word 0x000004C8, 0x000004C9 + .word 0x000004CC, 0x000004CD + .word 0x000004D0, 0x000004D1 + .word 0x000004D4, 0x000004D5 + .word 0x000004D8, 0x000004D9 + .word 0x000004DC, 0x000004DD + .word 0x000004E0, 0x000004E0 + .word 0x000004E0, 0x000004E1 + .word 0x000004E4, 0x000004E4 + .word 0x000004E4, 0x000004E5 + .word 0x000004E8, 0x000004E8 + .word 0x000004E8, 0x000004E9 + .word 0x000004EC, 0x000004EC + .word 0x000004EC, 0x000004ED + .word 0x000004F0, 0x000004F1 + .word 0x000004F4, 0x000004F5 + .word 0x000004F8, 0x000004F9 + .word 0x000004FC, 0x000004FD + .word 0x00000500, 0x00000501 + .word 0x00000504, 0x00000505 + .word 0x00000508, 0x00000509 + .word 0x0000050C, 0x0000050D + .word 0x00000510, 0x00000511 + .word 0x00000514, 0x00000515 + .word 0x00000518, 0x00000519 + .word 0x0000051C, 0x0000051D + .word 0x00000520, 0x00000521 + .word 0x00000524, 0x00000525 + .word 0x00000528, 0x00000529 + .word 0x0000052C, 0x0000052D + .word 0x00000530, 0x00000531 + .word 0x00000534, 0x00000535 + .word 0x00000538, 0x00000539 + .word 0x0000053C, 0x0000053D + .word 0x00000540, 0x00000541 + .word 0x00000544, 0x00000545 + .word 0x00000548, 0x00000549 + .word 0x0000054C, 0x0000054D + .word 0x00000550, 0x00000551 + .word 0x00000554, 0x00000555 + .word 0x00000558, 0x00000559 + .word 0x0000055C, 0x0000055D + .word 0x00000560, 0x00000561 + .word 0x00000564, 0x00000565 + .word 0x00000568, 0x00000569 + .word 0x0000056C, 0x0000056D + .word 0x00000570, 0x00000571 + .word 0x00000574, 0x00000575 + .word 0x00000578, 0x00000579 + .word 0x0000057C, 0x0000057D + .word 0x00000580, 0x00000581 + .word 0x00000584, 0x00000585 + .word 0x00000588, 0x00000589 + .word 0x0000058C, 0x0000058D + .word 0x00000590, 0x00000591 + .word 0x00000594, 0x00000595 + .word 0x00000598, 0x00000599 + .word 0x0000059C, 0x0000059D + .word 0x000005A0, 0x000005A1 + .word 0x000005A4, 0x000005A5 + .word 0x000005A8, 0x000005A9 + .word 0x000005AC, 0x000005AD + .word 0x000005B0, 0x000005B1 + .word 0x000005B4, 0x000005B5 + .word 0x000005B8, 0x000005B9 + .word 0x000005BC, 0x000005BD + .word 0x000005C0, 0x000005C1 + .word 0x000005C4, 0x000005C5 + .word 0x000005C8, 0x000005C9 + .word 0x000005CC, 0x000005CD + .word 0x000005D0, 0x000005D1 + .word 0x000005D4, 0x000005D5 + .word 0x000005D8, 0x000005D9 + .word 0x000005DC, 0x000005DD + .word 0x000005E0, 0x000005E1 + .word 0x000005E4, 0x000005E5 + .word 0x000005E8, 0x000005E9 + .word 0x000005EC, 0x000005ED + .word 0x000005F0, 0x000005F1 + .word 0x000005F4, 0x000005F5 + .word 0x000005F8, 0x000005F9 + .word 0x000005FC, 0x000005FD + .word 0x00000600, 0x00000600 + .word 0x00000600, 0x00000601 + .word 0x00000604, 0x00000604 + .word 0x00000604, 0x00000605 + .word 0x00000608, 0x00000608 + .word 0x00000608, 0x00000609 + .word 0x0000060C, 0x0000060C + .word 0x0000060C, 0x0000060D + .word 0x00000610, 0x00000611 + .word 0x00000614, 0x00000615 + .word 0x00000618, 0x00000619 + .word 0x0000061C, 0x0000061D + .word 0x00000620, 0x00000621 + .word 0x00000624, 0x00000625 + .word 0x00000628, 0x00000629 + .word 0x0000062C, 0x0000062D + .word 0x00000630, 0x00000631 + .word 0x00000634, 0x00000635 + .word 0x00000638, 0x00000639 + .word 0x0000063C, 0x0000063D + .word 0x00000640, 0x00000641 + .word 0x00000644, 0x00000645 + .word 0x00000648, 0x00000649 + .word 0x0000064C, 0x0000064D + .word 0x00000650, 0x00000650 + .word 0x00000650, 0x00000651 + .word 0x00000654, 0x00000654 + .word 0x00000654, 0x00000655 + .word 0x00000658, 0x00000658 + .word 0x00000658, 0x00000659 + .word 0x0000065C, 0x0000065C + .word 0x0000065C, 0x0000065D + .word 0x00000660, 0x00000661 + .word 0x00000664, 0x00000665 + .word 0x00000668, 0x00000669 + .word 0x0000066C, 0x0000066D + .word 0x00000670, 0x00000671 + .word 0x00000674, 0x00000675 + .word 0x00000678, 0x00000679 + .word 0x0000067C, 0x0000067D + .word 0x00000680, 0x00000681 + .word 0x00000684, 0x00000685 + .word 0x00000688, 0x00000689 + .word 0x0000068C, 0x0000068D + .word 0x00000690, 0x00000691 + .word 0x00000694, 0x00000695 + .word 0x00000698, 0x00000699 + .word 0x0000069C, 0x0000069D + .word 0x000006A0, 0x000006A1 + .word 0x000006A4, 0x000006A5 + .word 0x000006A8, 0x000006A9 + .word 0x000006AC, 0x000006AD + .word 0x000006B0, 0x000006B1 + .word 0x000006B4, 0x000006B4 + .word 0x000006B4, 0x000006B5 + .word 0x000006B8, 0x000006B8 + .word 0x000006B8, 0x000006B9 + .word 0x000006BC, 0x000006BD + .word 0x000006C0, 0x000006C1 + .word 0x000006C4, 0x000006C5 + .word 0x000006C8, 0x000006C9 + .word 0x000006CC, 0x000006CC + .word 0x000006CC, 0x000006CD + .word 0x000006D0, 0x000006D0 + .word 0x000006D0, 0x000006D1 + .word 0x000006D4, 0x000006D5 + .word 0x000006D8, 0x000006D9 + .word 0x000006DC, 0x000006DD + .word 0x000006E0, 0x000006E1 + .word 0x000006E4, 0x000006E5 + .word 0x000006E8, 0x000006E9 + .word 0x000006EC, 0x000006ED + .word 0x000006F0, 0x000006F1 + .word 0x000006F4, 0x000006F5 + .word 0x000006F8, 0x000006F9 + .word 0x000006FC, 0x000006FD + .word 0x00000700, 0x00000701 + .word 0x00000704, 0x00000705 + .word 0x00000708, 0x00000709 + .word 0x0000070C, 0x0000070D + .word 0x00000710, 0x00000710 + .word 0x00000710, 0x00000711 + .word 0x00000714, 0x00000714 + .word 0x00000714, 0x00000715 + .word 0x00000718, 0x00000718 + .word 0x00000718, 0x00000719 + .word 0x0000071C, 0x0000071C + .word 0x0000071C, 0x0000071D + .word 0x00000720, 0x00000721 + .word 0x00000724, 0x00000725 + .word 0x00000728, 0x00000729 + .word 0x0000072C, 0x0000072D + .word 0x00000730, 0x00000731 + .word 0x00000734, 0x00000735 + .word 0x00000738, 0x00000739 + .word 0x0000073C, 0x0000073D + .word 0x00000740, 0x00000741 + .word 0x00000744, 0x00000744 + .word 0x00000744, 0x00000745 + .word 0x00000748, 0x00000748 + .word 0x00000748, 0x00000749 + .word 0x0000074C, 0x0000074D + .word 0x00000750, 0x00000751 + .word 0x00000754, 0x00000755 + .word 0x00000758, 0x00000759 + .word 0x0000075C, 0x0000075D + .word 0x00000760, 0x00000761 + .word 0x00000764, 0x00000765 + .word 0x00000768, 0x00000769 + .word 0x0000076C, 0x0000076D + .word 0x00000770, 0x00000771 + .word 0x00000774, 0x00000775 + .word 0x00000778, 0x00000778 + .word 0x00000778, 0x00000779 + .word 0x0000077C, 0x0000077C + .word 0x0000077C, 0x0000077D + .word 0x00000780, 0x00000781 + .word 0x00000784, 0x00000785 + .word 0x00000788, 0x00000789 + .word 0x0000078C, 0x0000078D + .word 0x00000790, 0x00000791 + .word 0x00000794, 0x00000795 + .word 0x00000798, 0x00000799 + .word 0x0000079C, 0x0000079D + .word 0x000007A0, 0x000007A1 + .word 0x000007A4, 0x000007A5 + .word 0x000007A8, 0x000007A9 + .word 0x000007AC, 0x000007AD + .word 0x000007B0, 0x000007B0 + .word 0x000007B0, 0x000007B1 + .word 0x000007B4, 0x000007B4 + .word 0x000007B4, 0x000007B5 + .word 0x000007B8, 0x000007B9 + .word 0x000007BC, 0x000007BD + .word 0x000007C0, 0x000007C1 + .word 0x000007C4, 0x000007C5 + .word 0x000007C8, 0x000007C9 + .word 0x000007CC, 0x000007CD + .word 0x000007D0, 0x000007D1 + .word 0x000007D4, 0x000007D5 + .word 0x000007D8, 0x000007D9 + .word 0x000007DC, 0x000007DD + .word 0x000007E0, 0x000007E1 + .word 0x000007E4, 0x000007E5 + .word 0x000007E8, 0x000007E9 + .word 0x000007EC, 0x000007ED + .word 0x000007F0, 0x000007F1 + .word 0x000007F4, 0x000007F5 + .word 0x000007F8, 0x000007F8 + .word 0x000007F8, 0x000007F9 + .word 0x000007FC, 0x000007FC + .word 0x000007FC, 0x000007FD + .word 0x00000800, 0x00000801 + .word 0x00000804, 0x00000805 + .word 0x00000808, 0x00000809 + .word 0x0000080C, 0x0000080D + .word 0x00000810, 0x00000811 + .word 0x00000814, 0x00000815 + .word 0x00000818, 0x00000819 + .word 0x0000081C, 0x0000081D + .word 0x00000820, 0x00000821 + .word 0x00000824, 0x00000825 + .word 0x00000828, 0x00000829 + .word 0x0000082C, 0x0000082D + .word 0x00000830, 0x00000831 + .word 0x00000834, 0x00000835 + .word 0x00000838, 0x00000839 + .word 0x0000083C, 0x0000083D + .word 0x00000840, 0x00000841 + .word 0x00000844, 0x00000845 + .word 0x00000848, 0x00000849 + .word 0x0000084C, 0x0000084D + .word 0x00000850, 0x00000851 + .word 0x00000854, 0x00000855 + .word 0x00000858, 0x00000859 + .word 0x0000085C, 0x0000085D + .word 0x00000860, 0x00000860 + .word 0x00000860, 0x00000861 + .word 0x00000864, 0x00000864 + .word 0x00000864, 0x00000865 + .word 0x00000868, 0x00000868 + .word 0x00000868, 0x00000869 + .word 0x0000086C, 0x0000086C + .word 0x0000086C, 0x0000086D + .word 0x00000870, 0x00000870 + .word 0x00000870, 0x00000871 + .word 0x00000874, 0x00000874 + .word 0x00000874, 0x00000875 + .word 0x00000878, 0x00000879 + .word 0x0000087C, 0x0000087D + .word 0x00000880, 0x00000881 + .word 0x00000884, 0x00000885 + .word 0x00000888, 0x00000889 + .word 0x0000088C, 0x0000088D + .word 0x00000890, 0x00000891 + .word 0x00000894, 0x00000895 + .word 0x00000898, 0x00000899 + .word 0x0000089C, 0x0000089D + .word 0x000008A0, 0x000008A1 + .word 0x000008A4, 0x000008A5 + .word 0x000008A8, 0x000008A8 + .word 0x000008A8, 0x000008A9 + .word 0x000008AC, 0x000008AC + .word 0x000008AC, 0x000008AD + .word 0x000008B0, 0x000008B0 + .word 0x000008B0, 0x000008B1 + .word 0x000008B4, 0x000008B4 + .word 0x000008B4, 0x000008B5 + .word 0x000008B8, 0x000008B9 + .word 0x000008BC, 0x000008BD + .word 0x000008C0, 0x000008C1 + .word 0x000008C4, 0x000008C5 + .word 0x000008C8, 0x000008C9 + .word 0x000008CC, 0x000008CD + .word 0x000008D0, 0x000008D1 + .word 0x000008D4, 0x000008D5 + .word 0x000008D8, 0x000008D9 + .word 0x000008DC, 0x000008DD + .word 0x000008E0, 0x000008E1 + .word 0x000008E4, 0x000008E5 + .word 0x000008E8, 0x000008E9 + .word 0x000008EC, 0x000008ED + .word 0x000008F0, 0x000008F1 + .word 0x000008F4, 0x000008F5 + .word 0x000008F8, 0x000008F9 + .word 0x000008FC, 0x000008FD + .word 0x00000900, 0x00000901 + .word 0x00000904, 0x00000905 + .word 0x00000908, 0x00000909 + .word 0x0000090C, 0x0000090D + .word 0x00000910, 0x00000911 + .word 0x00000914, 0x00000915 + .word 0x00000918, 0x00000919 + .word 0x0000091C, 0x0000091D + .word 0x00000920, 0x00000921 + .word 0x00000924, 0x00000925 + .word 0x00000928, 0x00000929 + .word 0x0000092C, 0x0000092D + .word 0x00000930, 0x00000931 + .word 0x00000934, 0x00000935 + .word 0x00000938, 0x00000939 + .word 0x0000093C, 0x0000093D + .word 0x00000940, 0x00000941 + .word 0x00000944, 0x00000945 + .word 0x00000948, 0x00000949 + .word 0x0000094C, 0x0000094D + .word 0x00000950, 0x00000951 + .word 0x00000954, 0x00000955 + .word 0x00000958, 0x00000959 + .word 0x0000095C, 0x0000095D + .word 0x00000960, 0x00000961 + .word 0x00000964, 0x00000965 + .word 0x00000968, 0x00000969 + .word 0x0000096C, 0x0000096D + .word 0x00000970, 0x00000971 + .word 0x00000974, 0x00000975 + .word 0x00000978, 0x00000979 + .word 0x0000097C, 0x0000097D + .word 0x00000980, 0x00000981 + .word 0x00000984, 0x00000985 + .word 0x00000988, 0x00000989 + .word 0x0000098C, 0x0000098D + .word 0x00000990, 0x00000991 + .word 0x00000994, 0x00000995 + .word 0x00000998, 0x00000999 + .word 0x0000099C, 0x0000099D + .word 0x000009A0, 0x000009A1 + .word 0x000009A4, 0x000009A5 + .word 0x000009A8, 0x000009A9 + .word 0x000009AC, 0x000009AD + .word 0x000009B0, 0x000009B1 + .word 0x000009B4, 0x000009B5 + .word 0x000009B8, 0x000009B9 + .word 0x000009BC, 0x000009BD + .word 0x000009C0, 0x000009C1 + .word 0x000009C4, 0x000009C5 + .word 0x000009C8, 0x000009C9 + .word 0x000009CC, 0x000009CD + .word 0x000009D0, 0x000009D1 + .word 0x000009D4, 0x000009D5 + .word 0x000009D8, 0x000009D9 + .word 0x000009DC, 0x000009DD + .word 0x000009E0, 0x000009E1 + .word 0x000009E4, 0x000009E5 + .word 0x000009E8, 0x000009E9 + .word 0x000009EC, 0x000009ED + .word 0x000009F0, 0x000009F1 + .word 0x000009F4, 0x000009F5 + .word 0x000009F8, 0x000009F9 + .word 0x000009FC, 0x000009FD + .word 0x00000A00, 0x00000A01 + .word 0x00000A04, 0x00000A05 + .word 0x00000A08, 0x00000A09 + .word 0x00000A0C, 0x00000A0D + .word 0x00000A10, 0x00000A11 + .word 0x00000A14, 0x00000A15 + .word 0x00000A18, 0x00000A19 + .word 0x00000A1C, 0x00000A1D + .word 0x00000A20, 0x00000A21 + .word 0x00000A24, 0x00000A25 + .word 0x00000A28, 0x00000A29 + .word 0x00000A2C, 0x00000A2D + .word 0x00000A30, 0x00000A31 + .word 0x00000A34, 0x00000A35 + .word 0x00000A38, 0x00000A39 + .word 0x00000A3C, 0x00000A3D + .word 0x00000A40, 0x00000A41 + .word 0x00000A44, 0x00000A45 + .word 0x00000A48, 0x00000A49 + .word 0x00000A4C, 0x00000A4D + .word 0x00000A50, 0x00000A51 + .word 0x00000A54, 0x00000A55 + .word 0x00000A58, 0x00000A59 + .word 0x00000A5C, 0x00000A5D + .word 0x00000A60, 0x00000A61 + .word 0x00000A64, 0x00000A65 + .word 0x00000A68, 0x00000A69 + .word 0x00000A6C, 0x00000A6D + .word 0x00000A70, 0x00000A71 + .word 0x00000A74, 0x00000A75 + .word 0x00000A78, 0x00000A79 + .word 0x00000A7C, 0x00000A7D + .word 0x00000A80, 0x00000A81 + .word 0x00000A84, 0x00000A85 + .word 0x00000A88, 0x00000A89 + .word 0x00000A8C, 0x00000A8D + .word 0x00000A90, 0x00000A91 + .word 0x00000A94, 0x00000A95 + .word 0x00000A98, 0x00000A99 + .word 0x00000A9C, 0x00000A9D + .word 0x00000AA0, 0x00000AA1 + .word 0x00000AA4, 0x00000AA5 + .word 0x00000AA8, 0x00000AA9 + .word 0x00000AAC, 0x00000AAD + .word 0x00000AB0, 0x00000AB1 + .word 0x00000AB4, 0x00000AB5 + .word 0x00000AB8, 0x00000AB9 + .word 0x00000ABC, 0x00000ABD + .word 0x00000AC0, 0x00000AC1 + .word 0x00000AC4, 0x00000AC5 + .word 0x00000AC8, 0x00000AC9 + .word 0x00000ACC, 0x00000ACD + .word 0x00000AD0, 0x00000AD1 + .word 0x00000AD4, 0x00000AD5 + .word 0x00000AD8, 0x00000AD9 + .word 0x00000ADC, 0x00000ADD + .word 0x00000AE0, 0x00000AE1 + .word 0x00000AE4, 0x00000AE5 + .word 0x00000AE8, 0x00000AE9 + .word 0x00000AEC, 0x00000AED + .word 0x00000AF0, 0x00000AF1 + .word 0x00000AF4, 0x00000AF5 + .word 0x00000AF8, 0x00000AF9 + .word 0x00000AFC, 0x00000AFD + .word 0x00000B00, 0x00000B01 + .word 0x00000B04, 0x00000B05 + .word 0x00000B08, 0x00000B09 + .word 0x00000B0C, 0x00000B0D + .word 0x00000B10, 0x00000B11 + .word 0x00000B14, 0x00000B15 + .word 0x00000B18, 0x00000B19 + .word 0x00000B1C, 0x00000B1D + .word 0x00000B20, 0x00000B21 + .word 0x00000B24, 0x00000B25 + .word 0x00000B28, 0x00000B29 + .word 0x00000B2C, 0x00000B2D + .word 0x00000B30, 0x00000B31 + .word 0x00000B34, 0x00000B35 + .word 0x00000B38, 0x00000B39 + .word 0x00000B3C, 0x00000B3D + .word 0x00000B40, 0x00000B41 + .word 0x00000B44, 0x00000B45 + .word 0x00000B48, 0x00000B49 + .word 0x00000B4C, 0x00000B4D + .word 0x00000B50, 0x00000B51 + .word 0x00000B54, 0x00000B55 + .word 0x00000B58, 0x00000B59 + .word 0x00000B5C, 0x00000B5D + .word 0x00000B60, 0x00000B61 + .word 0x00000B64, 0x00000B65 + .word 0x00000B68, 0x00000B69 + .word 0x00000B6C, 0x00000B6D + .word 0x00000B70, 0x00000B71 + .word 0x00000B74, 0x00000B75 + .word 0x00000B78, 0x00000B79 + .word 0x00000B7C, 0x00000B7D + .word 0x00000B80, 0x00000B81 + .word 0x00000B84, 0x00000B85 + .word 0x00000B88, 0x00000B89 + .word 0x00000B8C, 0x00000B8D + .word 0x00000B90, 0x00000B91 + .word 0x00000B94, 0x00000B95 + .word 0x00000B98, 0x00000B99 + .word 0x00000B9C, 0x00000B9D + .word 0x00000BA0, 0x00000BA1 + .word 0x00000BA4, 0x00000BA5 + .word 0x00000BA8, 0x00000BA9 + .word 0x00000BAC, 0x00000BAD + .word 0x00000BB0, 0x00000BB1 + .word 0x00000BB4, 0x00000BB5 + .word 0x00000BB8, 0x00000BB9 + .word 0x00000BBC, 0x00000BBD + .word 0x00000BC0, 0x00000BC1 + .word 0x00000BC4, 0x00000BC5 + .word 0x00000BC8, 0x00000BC8 + .word 0x00000BC8, 0x00000BC9 + .word 0x00000BCC, 0x00000BCC + .word 0x00000BCC, 0x00000BCD + .word 0x00000BD0, 0x00000BD1 + .word 0x00000BD4, 0x00000BD5 + .word 0x00000BD8, 0x00000BD9 + .word 0x00000BDC, 0x00000BDD + .word 0x00000BE0, 0x00000BE1 + .word 0x00000BE4, 0x00000BE5 + .word 0x00000BE8, 0x00000BE9 + .word 0x00000BEC, 0x00000BED + .word 0x00000BF0, 0x00000BF1 + .word 0x00000BF4, 0x00000BF5 + .word 0x00000BF8, 0x00000BF9 + .word 0x00000BFC, 0x00000BFD + .word 0x00000C00, 0x00000C01 + .word 0x00000C04, 0x00000C05 + .word 0x00000C08, 0x00000C09 + .word 0x00000C0C, 0x00000C0D + .word 0x00000C10, 0x00000C11 + .word 0x00000C14, 0x00000C15 + .word 0x00000C18, 0x00000C19 + .word 0x00000C1C, 0x00000C1D + .word 0x00000C20, 0x00000C21 + .word 0x00000C24, 0x00000C25 + .word 0x00000C28, 0x00000C29 + .word 0x00000C2C, 0x00000C2D + .word 0x00000C30, 0x00000C31 + .word 0x00000C34, 0x00000C35 + .word 0x00000C38, 0x00000C39 + .word 0x00000C3C, 0x00000C3D + .word 0x00000C40, 0x00000C41 + .word 0x00000C44, 0x00000C45 + .word 0x00000C48, 0x00000C49 + .word 0x00000C4C, 0x00000C4D + .word 0x00000C50, 0x00000C51 + .word 0x00000C54, 0x00000C55 + .word 0x00000C58, 0x00000C59 + .word 0x00000C5C, 0x00000C5D + .word 0x00000C60, 0x00000C61 + .word 0x00000C64, 0x00000C65 + .word 0x00000C68, 0x00000C69 + .word 0x00000C6C, 0x00000C6D + .word 0x00000C70, 0x00000C71 + .word 0x00000C74, 0x00000C75 + .word 0x00000C78, 0x00000C79 + .word 0x00000C7C, 0x00000C7D + .word 0x00000C80, 0x00000C81 + .word 0x00000C84, 0x00000C85 + .word 0x00000C88, 0x00000C89 + .word 0x00000C8C, 0x00000C8D + .word 0x00000C90, 0x00000C91 + .word 0x00000C94, 0x00000C95 + .word 0x00000C98, 0x00000C99 + .word 0x00000C9C, 0x00000C9D + .word 0x00000CA0, 0x00000CA1 + .word 0x00000CA4, 0x00000CA5 + .word 0x00000CA8, 0x00000CA9 + .word 0x00000CAC, 0x00000CAD + .word 0x00000CB0, 0x00000CB1 + .word 0x00000CB4, 0x00000CB5 + .word 0x00000CB8, 0x00000CB9 + .word 0x00000CBC, 0x00000CBD + .word 0x00000CC0, 0x00000CC1 + .word 0x00000CC4, 0x00000CC5 + .word 0x00000CC8, 0x00000CC9 + .word 0x00000CCC, 0x00000CCD + .word 0x00000CD0, 0x00000CD1 + .word 0x00000CD4, 0x00000CD5 + .word 0x00000CD8, 0x00000CD9 + .word 0x00000CDC, 0x00000CDD + .word 0x00000CE0, 0x00000CE1 + .word 0x00000CE4, 0x00000CE5 + .word 0x00000CE8, 0x00000CE9 + .word 0x00000CEC, 0x00000CED + .word 0x00000CF0, 0x00000CF1 + .word 0x00000CF4, 0x00000CF5 + .word 0x00000CF8, 0x00000CF9 + .word 0x00000CFC, 0x00000CFD + .word 0x00000D00, 0x00000D01 + .word 0x00000D04, 0x00000D05 + .word 0x00000D08, 0x00000D09 + .word 0x00000D0C, 0x00000D0D + .word 0x00000D10, 0x00000D11 + .word 0x00000D14, 0x00000D15 + .word 0x00000D18, 0x00000D19 + .word 0x00000D1C, 0x00000D1D + .word 0x00000D20, 0x00000D21 + .word 0x00000D24, 0x00000D25 + .word 0x00000D28, 0x00000D29 + .word 0x00000D2C, 0x00000D2D + .word 0x00000D30, 0x00000D31 + .word 0x00000D34, 0x00000D35 + .word 0x00000D38, 0x00000D39 + .word 0x00000D3C, 0x00000D3D + .word 0x00000D40, 0x00000D41 + .word 0x00000D44, 0x00000D45 + .word 0x00000D48, 0x00000D49 + .word 0x00000D4C, 0x00000D4D + .word 0x00000D50, 0x00000D51 + .word 0x00000D54, 0x00000D55 + .word 0x00000D58, 0x00000D59 + .word 0x00000D5C, 0x00000D5D + .word 0x00000D60, 0x00000D61 + .word 0x00000D64, 0x00000D65 + .word 0x00000D68, 0x00000D69 + .word 0x00000D6C, 0x00000D6D + .word 0x00000D70, 0x00000D71 + .word 0x00000D74, 0x00000D75 + .word 0x00000D78, 0x00000D79 + .word 0x00000D7C, 0x00000D7D + .word 0x00000D80, 0x00000D81 + .word 0x00000D84, 0x00000D85 + .word 0x00000D88, 0x00000D89 + .word 0x00000D8C, 0x00000D8D + .word 0x00000D90, 0x00000D91 + .word 0x00000D94, 0x00000D95 + .word 0x00000D98, 0x00000D99 + .word 0x00000D9C, 0x00000D9D + .word 0x00000DA0, 0x00000DA1 + .word 0x00000DA4, 0x00000DA5 + .word 0x00000DA8, 0x00000DA9 + .word 0x00000DAC, 0x00000DAD + .word 0x00000DB0, 0x00000DB1 + .word 0x00000DB4, 0x00000DB5 + .word 0x00000DB8, 0x00000DB9 + .word 0x00000DBC, 0x00000DBD + .word 0x00000DC0, 0x00000DC0 + .word 0x00000DC0, 0x00000DC1 + .word 0x00000DC4, 0x00000DC4 + .word 0x00000DC4, 0x00000DC5 + .word 0x00000DC8, 0x00000DC9 + .word 0x00000DCC, 0x00000DCD + .word 0x00000DD0, 0x00000DD1 + .word 0x00000DD4, 0x00000DD5 + .word 0x00000DD8, 0x00000DD9 + .word 0x00000DDC, 0x00000DDD + .word 0x00000DE0, 0x00000DE1 + .word 0x00000DE4, 0x00000DE5 + .word 0x00000DE8, 0x00000DE8 + .word 0x00000DE8, 0x00000DE9 + .word 0x00000DEC, 0x00000DEC + .word 0x00000DEC, 0x00000DED + .word 0x00000DF0, 0x00000DF0 + .word 0x00000DF0, 0x00000DF1 + .word 0x00000DF4, 0x00000DF4 + .word 0x00000DF4, 0x00000DF5 + .word 0x00000DF8, 0x00000DF9 + .word 0x00000DFC, 0x00000DFC + .word 0x00000DFC, 0x00000DFD + .word 0x00000E00, 0x00000E00 + .word 0x00000E00, 0x00000E01 + .word 0x00000E04, 0x00000E05 + .word 0x00000E08, 0x00000E09 + .word 0x00000E0C, 0x00000E0D + .word 0x00000E10, 0x00000E11 + .word 0x00000E14, 0x00000E15 + .word 0x00000E18, 0x00000E19 + .word 0x00000E1C, 0x00000E1D + .word 0x00000E20, 0x00000E21 + .word 0x00000E24, 0x00000E24 + .word 0x00000E24, 0x00000E25 + .word 0x00000E28, 0x00000E28 + .word 0x00000E28, 0x00000E29 + .word 0x00000E2C, 0x00000E2C + .word 0x00000E2C, 0x00000E2D + .word 0x00000E30, 0x00000E30 + .word 0x00000E30, 0x00000E30 + .word 0x00000E30, 0x00000E31 + .word 0x00000E34, 0x00000E34 + .word 0x00000E34, 0x00000E35 + .word 0x00000E38, 0x00000E38 + .word 0x00000E38, 0x00000E39 + .word 0x00000E3C, 0x00000E3C + .word 0x00000E3C, 0x00000E3D + .word 0x00000E40, 0x00000E40 + .word 0x00000E40, 0x00000E41 + .word 0x00000E44, 0x00000E44 + .word 0x00000E44, 0x00000E45 + .word 0x00000E48, 0x00000E49 + .word 0x00000E4C, 0x00000E4D + .word 0x00000E50, 0x00000E51 + .word 0x00000E54, 0x00000E55 + .word 0x00000E58, 0x00000E59 + .word 0x00000E5C, 0x00000E5D + .word 0x00000E60, 0x00000E61 + .word 0x00000E64, 0x00000E65 + .word 0x00000E68, 0x00000E69 + .word 0x00000E6C, 0x00000E6D + .word 0x00000E70, 0x00000E71 + .word 0x00000E74, 0x00000E75 + .word 0x00000E78, 0x00000E78 + .word 0x00000E78, 0x00000E79 + .word 0x00000E7C, 0x00000E7C + .word 0x00000E7C, 0x00000E7D + .word 0x00000E80, 0x00000E80 + .word 0x00000E80, 0x00000E81 + .word 0x00000E84, 0x00000E84 + .word 0x00000E84, 0x00000E85 + .word 0x00000E88, 0x00000E88 + .word 0x00000E88, 0x00000E89 + .word 0x00000E8C, 0x00000E8C + .word 0x00000E8C, 0x00000E8D + .word 0x00000E90, 0x00000E91 + .word 0x00000E94, 0x00000E95 + .word 0x00000E98, 0x00000E99 + .word 0x00000E9C, 0x00000E9D + .word 0x00000EA0, 0x00000EA1 + .word 0x00000EA4, 0x00000EA5 + .word 0x00000EA8, 0x00000EA9 + .word 0x00000EAC, 0x00000EAD + .word 0x00000EB0, 0x00000EB1 + .word 0x00000EB4, 0x00000EB5 + .word 0x00000EB8, 0x00000EB9 + .word 0x00000EBC, 0x00000EBD + .word 0x00000EC0, 0x00000EC1 + .word 0x00000EC4, 0x00000EC5 + .word 0x00000EC8, 0x00000EC9 + .word 0x00000ECC, 0x00000ECD + .word 0x00000ED0, 0x00000ED1 + .word 0x00000ED4, 0x00000ED5 + .word 0x00000ED8, 0x00000ED9 + .word 0x00000EDC, 0x00000EDD + .word 0x00000EE0, 0x00000EE1 + .word 0x00000EE4, 0x00000EE5 + .word 0x00000EE8, 0x00000EE9 + .word 0x00000EEC, 0x00000EED + .word 0x00000EF0, 0x00000EF1 + .word 0x00000EF4, 0x00000EF5 + .word 0x00000EF8, 0x00000EF9 + .word 0x00000EFC, 0x00000EFD + .word 0x00000F00, 0x00000F01 + .word 0x00000F04, 0x00000F05 + .word 0x00000F08, 0x00000F09 + .word 0x00000F0C, 0x00000F0D + .word 0x00000F10, 0x00000F11 + .word 0x00000F14, 0x00000F15 + .word 0x00000F18, 0x00000F19 + .word 0x00000F1C, 0x00000F1D + .word 0x00000F20, 0x00000F21 + .word 0x00000F24, 0x00000F25 + .word 0x00000F28, 0x00000F29 + .word 0x00000F2C, 0x00000F2D + .word 0x00000F30, 0x00000F31 + .word 0x00000F34, 0x00000F35 + .word 0x00000F38, 0x00000F39 + .word 0x00000F3C, 0x00000F3D + .word 0x00000F40, 0x00000F41 + .word 0x00000F44, 0x00000F45 + .word 0x00000F48, 0x00000F49 + .word 0x00000F4C, 0x00000F4D + .word 0x00000F50, 0x00000F51 + .word 0x00000F54, 0x00000F55 + .word 0x00000F58, 0x00000F59 + .word 0x00000F5C, 0x00000F5D + .word 0x00000F60, 0x00000F61 + .word 0x00000F64, 0x00000F65 + .word 0x00000F68, 0x00000F69 + .word 0x00000F6C, 0x00000F6D + .word 0x00000F70, 0x00000F71 + .word 0x00000F74, 0x00000F75 + .word 0x00000F78, 0x00000F79 + .word 0x00000F7C, 0x00000F7D + .word 0x00000F80, 0x00000F81 + .word 0x00000F84, 0x00000F85 + .word 0x00000F88, 0x00000F89 + .word 0x00000F8C, 0x00000F8D + .word 0x00000F90, 0x00000F91 + .word 0x00000F94, 0x00000F95 + .word 0x00000F98, 0x00000F99 + .word 0x00000F9C, 0x00000F9D + .word 0x00000FA0, 0x00000FA1 + .word 0x00000FA4, 0x00000FA5 + .word 0x00000FA8, 0x00000FA9 + .word 0x00000FAC, 0x00000FAD + .word 0x00000FB0, 0x00000FB1 + .word 0x00000FB4, 0x00000FB5 + .word 0x00000FB8, 0x00000FB9 + .word 0x00000FBC, 0x00000FBD + .word 0x00000FC0, 0x00000FC1 + .word 0x00000FC4, 0x00000FC5 + .word 0x00000FC8, 0x00000FC9 + .word 0x00000FCC, 0x00000FCD + .word 0x00000FD0, 0x00000FD1 + .word 0x00000FD4, 0x00000FD5 + .word 0x00000FD8, 0x00000FD9 + .word 0x00000FDC, 0x00000FDD + .word 0x00000FE0, 0x00000FE1 + .word 0x00000FE4, 0x00000FE5 + .word 0x00000FE8, 0x00000FE9 + .word 0x00000FEC, 0x00000FED + .word 0x00000FF0, 0x00000FF1 + .word 0x00000FF4, 0x00000FF5 + .word 0x00000FF8, 0x00000FF9 + .word 0x00000FFC, 0x00000FFD + .word 0x00001000, 0x00001001 + .word 0x00001004, 0x00001005 + .word 0x00001008, 0x00001009 + .word 0x0000100C, 0x0000100D + .word 0x00001010, 0x00001011 + .word 0x00001014, 0x00001015 + .word 0x00001018, 0x00001019 + .word 0x0000101C, 0x0000101D + .word 0x00001020, 0x00001021 + .word 0x00001024, 0x00001025 + .word 0x00001028, 0x00001029 + .word 0x0000102C, 0x0000102D + .word 0x00001030, 0x00001031 + .word 0x00001034, 0x00001035 + .word 0x00001038, 0x00001039 + .word 0x0000103C, 0x0000103D + .word 0x00001040, 0x00001041 + .word 0x00001044, 0x00001045 + .word 0x00001048, 0x00001049 + .word 0x0000104C, 0x0000104D + .word 0x00001050, 0x00001051 + .word 0x00001054, 0x00001055 + .word 0x00001058, 0x00001059 + .word 0x0000105C, 0x0000105D + .word 0x00001060, 0x00001061 + .word 0x00001064, 0x00001065 + .word 0x00001068, 0x00001069 + .word 0x0000106C, 0x0000106D + .word 0x00001070, 0x00001071 + .word 0x00001074, 0x00001075 + .word 0x00001078, 0x00001079 + .word 0x0000107C, 0x0000107D + .word 0x00001080, 0x00001081 + .word 0x00001084, 0x00001085 + .word 0x00001088, 0x00001089 + .word 0x0000108C, 0x0000108D + .word 0x00001090, 0x00001091 + .word 0x00001094, 0x00001095 + .word 0x00001098, 0x00001099 + .word 0x0000109C, 0x0000109D + .word 0x000010A0, 0x000010A1 + .word 0x000010A4, 0x000010A5 + .word 0x000010A8, 0x000010A9 + .word 0x000010AC, 0x000010AD + .word 0x000010B0, 0x000010B1 + .word 0x000010B4, 0x000010B5 + .word 0x000010B8, 0x000010B9 + .word 0x000010BC, 0x000010BD + .word 0x000010C0, 0x000010C1 + .word 0x000010C4, 0x000010C5 + .word 0x000010C8, 0x000010C9 + .word 0x000010CC, 0x000010CD + .word 0x000010D0, 0x000010D1 + .word 0x000010D4, 0x000010D5 + .word 0x000010D8, 0x000010D9 + .word 0x000010DC, 0x000010DD + .word 0x000010E0, 0x000010E1 + .word 0x000010E4, 0x000010E5 + .word 0x000010E8, 0x000010E9 + .word 0x000010EC, 0x000010ED + .word 0x000010F0, 0x000010F1 + .word 0x000010F4, 0x000010F5 + .word 0x000010F8, 0x000010F9 + .word 0x000010FC, 0x000010FD + .word 0x00001100, 0x00001101 + .word 0x00001104, 0x00001105 + .word 0x00001108, 0x00001109 + .word 0x0000110C, 0x0000110D + .word 0x00001110, 0x00001110 + .word 0x00001110, 0x00001111 + .word 0x00001114, 0x00001114 + .word 0x00001114, 0x00001115 + .word 0x00001118, 0x00001119 + .word 0x0000111C, 0x0000111D + .word 0x00001120, 0x00001121 + .word 0x00001124, 0x00001125 + .word 0x00001128, 0x00001129 + .word 0x0000112C, 0x0000112D + .word 0x00001130, 0x00001131 + .word 0x00001134, 0x00001135 + .word 0x00001138, 0x00001139 + .word 0x0000113C, 0x0000113D + .word 0x00001140, 0x00001141 + .word 0x00001144, 0x00001145 + .word 0x00001148, 0x00001149 + .word 0x0000114C, 0x0000114D + .word 0x00001150, 0x00001151 + .word 0x00001154, 0x00001155 + .word 0x00001158, 0x00001159 + .word 0x0000115C, 0x0000115D + .word 0x00001160, 0x00001161 + .word 0x00001164, 0x00001165 + .word 0x00001168, 0x00001169 + .word 0x0000116C, 0x0000116D + .word 0x00001170, 0x00001171 + .word 0x00001174, 0x00001175 + .word 0x00001178, 0x00001179 + .word 0x0000117C, 0x0000117D + .word 0x00001180, 0x00001181 + .word 0x00001184, 0x00001185 + .word 0x00001188, 0x00001189 + .word 0x0000118C, 0x0000118D + .word 0x00001190, 0x00001191 + .word 0x00001194, 0x00001195 + .word 0x00001198, 0x00001199 + .word 0x0000119C, 0x0000119D + .word 0x000011A0, 0x000011A1 + .word 0x000011A4, 0x000011A5 + .word 0x000011A8, 0x000011A9 + .word 0x000011AC, 0x000011AD + .word 0x000011B0, 0x000011B1 + .word 0x000011B4, 0x000011B5 + .word 0x000011B8, 0x000011B9 + .word 0x000011BC, 0x000011BD + .word 0x000011C0, 0x000011C1 + .word 0x000011C4, 0x000011C5 + .word 0x000011C8, 0x000011C9 + .word 0x000011CC, 0x000011CD + .word 0x000011D0, 0x000011D1 + .word 0x000011D4, 0x000011D5 + .word 0x000011D8, 0x000011D9 + .word 0x000011DC, 0x000011DD + .word 0x000011E0, 0x000011E1 + .word 0x000011E4, 0x000011E5 + .word 0x000011E8, 0x000011E9 + .word 0x000011EC, 0x000011ED + .word 0x000011F0, 0x000011F1 + .word 0x000011F4, 0x000011F5 + .word 0x000011F8, 0x000011F9 + .word 0x000011FC, 0x000011FD + .word 0x00001200, 0x00001201 + .word 0x00001204, 0x00001205 + .word 0x00001208, 0x00001209 + .word 0x0000120C, 0x0000120D + .word 0x00001210, 0x00001211 + .word 0x00001214, 0x00001215 + .word 0x00001218, 0x00001219 + .word 0x0000121C, 0x0000121D + .word 0x00001220, 0x00001221 + .word 0x00001224, 0x00001225 + .word 0x00001228, 0x00001229 + .word 0x0000122C, 0x0000122D + .word 0x00001230, 0x00001231 + .word 0x00001234, 0x00001235 + .word 0x00001238, 0x00001239 + .word 0x0000123C, 0x0000123D + .word 0x00001240, 0x00001241 + .word 0x00001244, 0x00001245 + .word 0x00001248, 0x00001249 + .word 0x0000124C, 0x0000124D + .word 0x00001250, 0x00001251 + .word 0x00001254, 0x00001255 + .word 0x00001258, 0x00001258 + .word 0x00001258, 0x00001259 + .word 0x0000125C, 0x0000125C + .word 0x0000125C, 0x0000125D + .word 0x00001260, 0x00001261 + .word 0x00001264, 0x00001264 + .word 0x00001264, 0x00001265 + .word 0x00001268, 0x00001268 + .word 0x00001268, 0x00001269 + .word 0x0000126C, 0x0000126D + .word 0x00001270, 0x00001271 + .word 0x00001274, 0x00001275 + .word 0x00001278, 0x00001279 + .word 0x0000127C, 0x0000127D + .word 0x00001280, 0x00001281 + .word 0x00001284, 0x00001285 + .word 0x00001288, 0x00001289 + .word 0x0000128C, 0x0000128D + .word 0x00001290, 0x00001291 + .word 0x00001294, 0x00001295 + .word 0x00001298, 0x00001299 + .word 0x0000129C, 0x0000129D + .word 0x000012A0, 0x000012A1 + .word 0x000012A4, 0x000012A5 + .word 0x000012A8, 0x000012A9 + .word 0x000012AC, 0x000012AD + .word 0x000012B0, 0x000012B1 + .word 0x000012B4, 0x000012B5 + .word 0x000012B8, 0x000012B9 + .word 0x000012BC, 0x000012BD + .word 0x000012C0, 0x000012C1 + .word 0x000012C4, 0x000012C5 + .word 0x000012C8, 0x000012C9 + .word 0x000012CC, 0x000012CD + .word 0x000012D0, 0x000012D1 + .word 0x000012D4, 0x000012D5 + .word 0x000012D8, 0x000012D9 + .word 0x000012DC, 0x000012DD + .word 0x000012E0, 0x000012E1 + .word 0x000012E4, 0x000012E5 + .word 0x000012E8, 0x000012E9 + .word 0x000012EC, 0x000012ED + .word 0x000012F0, 0x000012F1 + .word 0x000012F4, 0x000012F5 + .word 0x000012F8, 0x000012F9 + .word 0x000012FC, 0x000012FD + .word 0x00001300, 0x00001301 + .word 0x00001304, 0x00001305 + .word 0x00001308, 0x00001309 + .word 0x0000130C, 0x0000130D + .word 0x00001310, 0x00001311 + .word 0x00001314, 0x00001315 + .word 0x00001318, 0x00001319 + .word 0x0000131C, 0x0000131D + .word 0x00001320, 0x00001321 + .word 0x00001324, 0x00001325 + .word 0x00001328, 0x00001329 + .word 0x0000132C, 0x0000132D + .word 0x00001330, 0x00001331 + .word 0x00001334, 0x00001335 + .word 0x00001338, 0x00001339 + .word 0x0000133C, 0x0000133D + .word 0x00001340, 0x00001341 + .word 0x00001344, 0x00001345 + .word 0x00001348, 0x00001349 + .word 0x0000134C, 0x0000134D + .word 0x00001350, 0x00001351 + .word 0x00001354, 0x00001355 + .word 0x00001358, 0x00001359 + .word 0x0000135C, 0x0000135D + .word 0x00001360, 0x00001361 + .word 0x00001364, 0x00001365 + .word 0x00001368, 0x00001369 + .word 0x0000136C, 0x0000136D + .word 0x00001370, 0x00001371 + .word 0x00001374, 0x00001375 + .word 0x00001378, 0x00001379 + .word 0x0000137C, 0x0000137D + .word 0x00001380, 0x00001381 + .word 0x00001384, 0x00001385 + .word 0x00001388, 0x00001389 + .word 0x0000138C, 0x0000138D + .word 0x00001390, 0x00001391 + .word 0x00001394, 0x00001395 + .word 0x00001398, 0x00001399 + .word 0x0000139C, 0x0000139D + .word 0x000013A0, 0x000013A1 + .word 0x000013A4, 0x000013A5 + .word 0x000013A8, 0x000013A9 + .word 0x000013AC, 0x000013AD + .word 0x000013B0, 0x000013B1 + .word 0x000013B4, 0x000013B5 + .word 0x000013B8, 0x000013B9 + .word 0x000013BC, 0x000013BD + .word 0x000013C0, 0x000013C1 + .word 0x000013C4, 0x000013C5 + .word 0x000013C8, 0x000013C8 + .word 0x000013C8, 0x000013C9 + .word 0x000013CC, 0x000013CC + .word 0x000013CC, 0x000013CD + .word 0x000013D0, 0x000013D0 + .word 0x000013D0, 0x000013D1 + .word 0x000013D4, 0x000013D4 + .word 0x000013D4, 0x000013D5 + .word 0x000013D8, 0x000013D9 + .word 0x000013DC, 0x000013DD + .word 0x000013E0, 0x000013E1 + .word 0x000013E4, 0x000013E5 + .word 0x000013E8, 0x000013E9 + .word 0x000013EC, 0x000013ED + .word 0x000013F0, 0x000013F1 + .word 0x000013F4, 0x000013F5 + .word 0x000013F8, 0x000013F9 + .word 0x000013FC, 0x000013FD + .word 0x00001400, 0x00001401 + .word 0x00001404, 0x00001405 + .word 0x00001408, 0x00001409 + .word 0x0000140C, 0x0000140D + .word 0x00001410, 0x00001411 + .word 0x00001414, 0x00001415 + .word 0x00001418, 0x00001418 + .word 0x00001418, 0x00001419 + .word 0x0000141C, 0x0000141C + .word 0x0000141C, 0x0000141D + .word 0x00001420, 0x00001420 + .word 0x00001420, 0x00001421 + .word 0x00001424, 0x00001424 + .word 0x00001424, 0x00001425 + .word 0x00001428, 0x00001429 + .word 0x0000142C, 0x0000142D + .word 0x00001430, 0x00001431 + .word 0x00001434, 0x00001435 + .word 0x00001438, 0x00001439 + .word 0x0000143C, 0x0000143D + .word 0x00001440, 0x00001441 + .word 0x00001444, 0x00001445 + .word 0x00001448, 0x00001449 + .word 0x0000144C, 0x0000144D + .word 0x00001450, 0x00001451 + .word 0x00001454, 0x00001455 + .word 0x00001458, 0x00001459 + .word 0x0000145C, 0x0000145D + .word 0x00001460, 0x00001461 + .word 0x00001464, 0x00001465 + .word 0x00001468, 0x00001469 + .word 0x0000146C, 0x0000146D + .word 0x00001470, 0x00001471 + .word 0x00001474, 0x00001475 + .word 0x00001478, 0x00001479 + .word 0x0000147C, 0x0000147D + .word 0x00001480, 0x00001481 + .word 0x00001484, 0x00001485 + .word 0x00001488, 0x00001489 + .word 0x0000148C, 0x0000148D + .word 0x00001490, 0x00001491 + .word 0x00001494, 0x00001495 + .word 0x00001498, 0x00001499 + .word 0x0000149C, 0x0000149D + .word 0x000014A0, 0x000014A1 + .word 0x000014A4, 0x000014A5 + .word 0x000014A8, 0x000014A9 + .word 0x000014AC, 0x000014AD + .word 0x000014B0, 0x000014B1 + .word 0x000014B4, 0x000014B5 + .word 0x000014B8, 0x000014B9 + .word 0x000014BC, 0x000014BD + .word 0x000014C0, 0x000014C1 + .word 0x000014C4, 0x000014C5 + .word 0x000014C8, 0x000014C9 + .word 0x000014CC, 0x000014CD + .word 0x000014D0, 0x000014D1 + .word 0x000014D4, 0x000014D5 + .word 0x000014D8, 0x000014D9 + .word 0x000014DC, 0x000014DD + .word 0x000014E0, 0x000014E1 + .word 0x000014E4, 0x000014E5 + .word 0x000014E8, 0x000014E9 + .word 0x000014EC, 0x000014ED + .word 0x000014F0, 0x000014F1 + .word 0x000014F4, 0x000014F5 + .word 0x000014F8, 0x000014F9 + .word 0x000014FC, 0x000014FD + .word 0x00001500, 0x00001501 + .word 0x00001504, 0x00001505 + .word 0x00001508, 0x00001509 + .word 0x0000150C, 0x0000150D + .word 0x00001510, 0x00001511 + .word 0x00001514, 0x00001515 + .word 0x00001518, 0x00001519 + .word 0x0000151C, 0x0000151D + .word 0x00001520, 0x00001521 + .word 0x00001524, 0x00001525 + .word 0x00001528, 0x00001529 + .word 0x0000152C, 0x0000152D + .word 0x00001530, 0x00001531 + .word 0x00001534, 0x00001535 + .word 0x00001538, 0x00001539 + .word 0x0000153C, 0x0000153D + .word 0x00001540, 0x00001541 + .word 0x00001544, 0x00001545 + .word 0x00001548, 0x00001549 + .word 0x0000154C, 0x0000154D + .word 0x00001550, 0x00001551 + .word 0x00001554, 0x00001555 + .word 0x00001558, 0x00001559 + .word 0x0000155C, 0x0000155D + .word 0x00001560, 0x00001561 + .word 0x00001564, 0x00001565 + .word 0x00001568, 0x00001569 + .word 0x0000156C, 0x0000156D + .word 0x00001570, 0x00001571 + .word 0x00001574, 0x00001575 + .word 0x00001578, 0x00001579 + .word 0x0000157C, 0x0000157D + .word 0x00001580, 0x00001581 + .word 0x00001584, 0x00001585 + .word 0x00001588, 0x00001589 + .word 0x0000158C, 0x0000158D + .word 0x00001590, 0x00001591 + .word 0x00001594, 0x00001595 + .word 0x00001598, 0x00001599 + .word 0x0000159C, 0x0000159D + .word 0x000015A0, 0x000015A1 + .word 0x000015A4, 0x000015A5 + .word 0x000015A8, 0x000015A9 + .word 0x000015AC, 0x000015AD + .word 0x000015B0, 0x000015B1 + .word 0x000015B4, 0x000015B5 + .word 0x000015B8, 0x000015B9 + .word 0x000015BC, 0x000015BD + .word 0x000015C0, 0x000015C1 + .word 0x000015C4, 0x000015C5 + .word 0x000015C8, 0x000015C9 + .word 0x000015CC, 0x000015CD + .word 0x000015D0, 0x000015D1 + .word 0x000015D4, 0x000015D5 + .word 0x000015D8, 0x000015D9 + .word 0x000015DC, 0x000015DD + .word 0x000015E0, 0x000015E1 + .word 0x000015E4, 0x000015E5 + .word 0x000015E8, 0x000015E9 + .word 0x000015EC, 0x000015ED + .word 0x000015F0, 0x000015F1 + .word 0x000015F4, 0x000015F5 + .word 0x000015F8, 0x000015F8 + .word 0x000015F8, 0x000015F9 + .word 0x000015FC, 0x000015FC + .word 0x000015FC, 0x000015FD + .word 0x00001600, 0x00001600 + .word 0x00001600, 0x00001601 + .word 0x00001604, 0x00001604 + .word 0x00001604, 0x00001605 + .word 0x00001608, 0x00001608 + .word 0x00001608, 0x00001609 + .word 0x0000160C, 0x0000160C + .word 0x0000160C, 0x0000160D + .word 0x00001610, 0x00001610 + .word 0x00001610, 0x00001611 + .word 0x00001614, 0x00001614 + .word 0x00001614, 0x00001615 + .word 0x00001618, 0x00001618 + .word 0x00001618, 0x00001619 + .word 0x0000161C, 0x0000161C + .word 0x0000161C, 0x0000161D + .word 0x00001620, 0x00001620 + .word 0x00001620, 0x00001621 + .word 0x00001624, 0x00001624 + .word 0x00001624, 0x00001625 + .word 0x00001628, 0x00001629 + .word 0x0000162C, 0x0000162C + .word 0x0000162C, 0x0000162D + .word 0x00001630, 0x00001630 + .word 0x00001630, 0x00001630 + .word 0x00001630, 0x00001631 + .word 0x00001634, 0x00001634 + .word 0x00001634, 0x00001635 + .word 0x00001638, 0x00001638 + .word 0x00001638, 0x00001639 + .word 0x0000163C, 0x0000163C + .word 0x0000163C, 0x0000163D + .word 0x00001640, 0x00001640 + .word 0x00001640, 0x00001641 + .word 0x00001644, 0x00001644 + .word 0x00001644, 0x00001645 + .word 0x00001648, 0x00001648 + .word 0x00001648, 0x00001649 + .word 0x0000164C, 0x0000164C + .word 0x0000164C, 0x0000164D + .word 0x00001650, 0x00001650 + .word 0x00001650, 0x00001651 + .word 0x00001654, 0x00001654 + .word 0x00001654, 0x00001655 + .word 0x00001658, 0x00001658 + .word 0x00001658, 0x00001659 + .word 0x0000165C, 0x0000165C + .word 0x0000165C, 0x0000165D + .word 0x00001660, 0x00001661 + .word 0x00001664, 0x00001665 + .word 0x00001668, 0x00001669 + .word 0x0000166C, 0x0000166D + .word 0x00001670, 0x00001671 + .word 0x00001674, 0x00001675 + .word 0x00001678, 0x00001679 + .word 0x0000167C, 0x0000167D + .word 0x00001680, 0x00001681 + .word 0x00001684, 0x00001685 + .word 0x00001688, 0x00001689 + .word 0x0000168C, 0x0000168D + .word 0x00001690, 0x00001691 + .word 0x00001694, 0x00001695 + .word 0x00001698, 0x00001699 + .word 0x0000169C, 0x0000169D + .word 0x000016A0, 0x000016A1 + .word 0x000016A4, 0x000016A5 + .word 0x000016A8, 0x000016A9 + .word 0x000016AC, 0x000016AD + .word 0x000016B0, 0x000016B1 + .word 0x000016B4, 0x000016B5 + .word 0x000016B8, 0x000016B9 + .word 0x000016BC, 0x000016BD + .word 0x000016C0, 0x000016C1 + .word 0x000016C4, 0x000016C5 + .word 0x000016C8, 0x000016C9 + .word 0x000016CC, 0x000016CD + .word 0x000016D0, 0x000016D1 + .word 0x000016D4, 0x000016D5 + .word 0x000016D8, 0x000016D9 + .word 0x000016DC, 0x000016DD + .word 0x000016E0, 0x000016E1 + .word 0x000016E4, 0x000016E5 + .word 0x000016E8, 0x000016E9 + .word 0x000016EC, 0x000016ED + .word 0x000016F0, 0x000016F1 + .word 0x000016F4, 0x000016F5 + .word 0x000016F8, 0x000016F9 + .word 0x000016FC, 0x000016FD + .word 0x00001700, 0x00001701 + .word 0x00001704, 0x00001705 + .word 0x00001708, 0x00001709 + .word 0x0000170C, 0x0000170D + .word 0x00001710, 0x00001711 + .word 0x00001714, 0x00001715 + .word 0x00001718, 0x00001719 + .word 0x0000171C, 0x0000171D + .word 0x00001720, 0x00001721 + .word 0x00001724, 0x00001725 + .word 0x00001728, 0x00001729 + .word 0x0000172C, 0x0000172D + .word 0x00001730, 0x00001731 + .word 0x00001734, 0x00001735 + .word 0x00001738, 0x00001739 + .word 0x0000173C, 0x0000173D + .word 0x00001740, 0x00001741 + .word 0x00001744, 0x00001745 + .word 0x00001748, 0x00001749 + .word 0x0000174C, 0x0000174D + .word 0x00001750, 0x00001751 + .word 0x00001754, 0x00001755 + .word 0x00001758, 0x00001759 + .word 0x0000175C, 0x0000175D + .word 0x00001760, 0x00001761 + .word 0x00001764, 0x00001765 + .word 0x00001768, 0x00001769 + .word 0x0000176C, 0x0000176D + .word 0x00001770, 0x00001771 + .word 0x00001774, 0x00001775 + .word 0x00001778, 0x00001779 + .word 0x0000177C, 0x0000177D + .word 0x00001780, 0x00001781 + .word 0x00001784, 0x00001785 + .word 0x00001788, 0x00001789 + .word 0x0000178C, 0x0000178D + .word 0x00001790, 0x00001791 + .word 0x00001794, 0x00001795 + .word 0x00001798, 0x00001799 + .word 0x0000179C, 0x0000179D + .word 0x000017A0, 0x000017A1 + .word 0x000017A4, 0x000017A5 + .word 0x000017A8, 0x000017A9 + .word 0x000017AC, 0x000017AD + .word 0x000017B0, 0x000017B1 + .word 0x000017B4, 0x000017B5 + .word 0x000017B8, 0x000017B9 + .word 0x000017BC, 0x000017BD + .word 0x000017C0, 0x000017C1 + .word 0x000017C4, 0x000017C5 + .word 0x000017C8, 0x000017C9 + .word 0x000017CC, 0x000017CD + .word 0x000017D0, 0x000017D1 + .word 0x000017D4, 0x000017D5 + .word 0x000017D8, 0x000017D9 + .word 0x000017DC, 0x000017DD + .word 0x000017E0, 0x000017E1 + .word 0x000017E4, 0x000017E5 + .word 0x000017E8, 0x000017E9 + .word 0x000017EC, 0x000017ED + .word 0x000017F0, 0x000017F1 + .word 0x000017F4, 0x000017F5 + .word 0x000017F8, 0x000017F9 + .word 0x000017FC, 0x000017FD + .word 0x00001800, 0x00001801 + .word 0x00001804, 0x00001804 + .word 0x00001804, 0x00001805 + .word 0x00001808, 0x00001808 + .word 0x00001808, 0x00001808 + .word 0x00001808, 0x00001809 + .word 0x0000180C, 0x0000180C + .word 0x0000180C, 0x0000180D + .word 0x00001810, 0x00001811 + .word 0x00001814, 0x00001815 + .word 0x00001818, 0x00001819 + .word 0x0000181C, 0x0000181D + .word 0x00001820, 0x00001821 + .word 0x00001824, 0x00001824 + .word 0x00001824, 0x00001825 + .word 0x00001828, 0x00001828 + .word 0x00001828, 0x00001829 + .word 0x0000182C, 0x0000182D + .word 0x00001830, 0x00001831 + .word 0x00001834, 0x00001835 + .word 0x00001838, 0x00001839 + .word 0x0000183C, 0x0000183D + .word 0x00001840, 0x00001841 + .word 0x00001844, 0x00001845 + .word 0x00001848, 0x00001849 + .word 0x0000184C, 0x0000184D + .word 0x00001850, 0x00001851 + .word 0x00001854, 0x00001855 + .word 0x00001858, 0x00001859 + .word 0x0000185C, 0x0000185D + .word 0x00001860, 0x00001861 + .word 0x00001864, 0x00001865 + .word 0x00001868, 0x00001869 + .word 0x0000186C, 0x0000186D + .word 0x00001870, 0x00001871 + .word 0x00001874, 0x00001875 + .word 0x00001878, 0x00001879 + .word 0x0000187C, 0x0000187D + .word 0x00001880, 0x00001881 + .word 0x00001884, 0x00001885 + .word 0x00001888, 0x00001889 + .word 0x0000188C, 0x0000188D + .word 0x00001890, 0x00001891 + .word 0x00001894, 0x00001895 + .word 0x00001898, 0x00001899 + .word 0x0000189C, 0x0000189D + .word 0x000018A0, 0x000018A1 + .word 0x000018A4, 0x000018A5 + .word 0x000018A8, 0x000018A9 + .word 0x000018AC, 0x000018AD + .word 0x000018B0, 0x000018B1 + .word 0x000018B4, 0x000018B5 + .word 0x000018B8, 0x000018B9 + .word 0x000018BC, 0x000018BD + .word 0x000018C0, 0x000018C1 + .word 0x000018C4, 0x000018C5 + .word 0x000018C8, 0x000018C9 + .word 0x000018CC, 0x000018CD + .word 0x000018D0, 0x000018D1 + .word 0x000018D4, 0x000018D5 + .word 0x000018D8, 0x000018D9 + .word 0x000018DC, 0x000018DD + .word 0x000018E0, 0x000018E1 + .word 0x000018E4, 0x000018E5 + .word 0x000018E8, 0x000018E9 + .word 0x000018EC, 0x000018ED + .word 0x000018F0, 0x000018F1 + .word 0x000018F4, 0x000018F5 + .word 0x000018F8, 0x000018F9 + .word 0x000018FC, 0x000018FD + .word 0x00001900, 0x00001901 + .word 0x00001904, 0x00001905 + .word 0x00001908, 0x00001909 + .word 0x0000190C, 0x0000190D + .word 0x00001910, 0x00001911 + .word 0x00001914, 0x00001915 + .word 0x00001918, 0x00001919 + .word 0x0000191C, 0x0000191D + .word 0x00001920, 0x00001921 + .word 0x00001924, 0x00001925 + .word 0x00001928, 0x00001929 + .word 0x0000192C, 0x0000192D + .word 0x00001930, 0x00001931 + .word 0x00001934, 0x00001935 + .word 0x00001938, 0x00001939 + .word 0x0000193C, 0x0000193D + .word 0x00001940, 0x00001941 + .word 0x00001944, 0x00001945 + .word 0x00001948, 0x00001949 + .word 0x0000194C, 0x0000194D + .word 0x00001950, 0x00001951 + .word 0x00001954, 0x00001955 + .word 0x00001958, 0x00001958 + .word 0x00001958, 0x00001959 + .word 0x0000195C, 0x0000195C + .word 0x0000195C, 0x0000195D + .word 0x00001960, 0x00001960 + .word 0x00001960, 0x00001961 + .word 0x00001964, 0x00001964 + .word 0x00001964, 0x00001965 + .word 0x00001968, 0x00001969 + .word 0x0000196C, 0x0000196D + .word 0x00001970, 0x00001971 + .word 0x00001974, 0x00001975 + .word 0x00001978, 0x00001979 + .word 0x0000197C, 0x0000197D + .word 0x00001980, 0x00001981 + .word 0x00001984, 0x00001985 + .word 0x00001988, 0x00001989 + .word 0x0000198C, 0x0000198C + .word 0x0000198C, 0x0000198D + .word 0x00001990, 0x00001990 + .word 0x00001990, 0x00001991 + .word 0x00001994, 0x00001995 + .word 0x00001998, 0x00001999 + .word 0x0000199C, 0x0000199D + .word 0x000019A0, 0x000019A1 + .word 0x000019A4, 0x000019A5 + .word 0x000019A8, 0x000019A9 + .word 0x000019AC, 0x000019AD + .word 0x000019B0, 0x000019B1 + .word 0x000019B4, 0x000019B5 + .word 0x000019B8, 0x000019B9 + .word 0x000019BC, 0x000019BD + .word 0x000019C0, 0x000019C1 + .word 0x000019C4, 0x000019C5 + .word 0x000019C8, 0x000019C9 + .word 0x000019CC, 0x000019CD + .word 0x000019D0, 0x000019D1 + .word 0x000019D4, 0x000019D5 + .word 0x000019D8, 0x000019D9 + .word 0x000019DC, 0x000019DD + .word 0x000019E0, 0x000019E1 + .word 0x000019E4, 0x000019E5 + .word 0x000019E8, 0x000019E9 + .word 0x000019EC, 0x000019ED + .word 0x000019F0, 0x000019F1 + .word 0x000019F4, 0x000019F5 + .word 0x000019F8, 0x000019F9 + .word 0x000019FC, 0x000019FD + .word 0x00001A00, 0x00001A01 + .word 0x00001A04, 0x00001A05 + .word 0x00001A08, 0x00001A09 + .word 0x00001A0C, 0x00001A0D + .word 0x00001A10, 0x00001A11 + .word 0x00001A14, 0x00001A15 + .word 0x00001A18, 0x00001A19 + .word 0x00001A1C, 0x00001A1D + .word 0x00001A20, 0x00001A21 + .word 0x00001A24, 0x00001A25 + .word 0x00001A28, 0x00001A29 + .word 0x00001A2C, 0x00001A2D + .word 0x00001A30, 0x00001A31 + .word 0x00001A34, 0x00001A35 + .word 0x00001A38, 0x00001A39 + .word 0x00001A3C, 0x00001A3D + .word 0x00001A40, 0x00001A41 + .word 0x00001A44, 0x00001A45 + .word 0x00001A48, 0x00001A49 + .word 0x00001A4C, 0x00001A4D + .word 0x00001A50, 0x00001A51 + .word 0x00001A54, 0x00001A55 + .word 0x00001A58, 0x00001A59 + .word 0x00001A5C, 0x00001A5D + .word 0x00001A60, 0x00001A61 + .word 0x00001A64, 0x00001A65 + .word 0x00001A68, 0x00001A69 + .word 0x00001A6C, 0x00001A6D + .word 0x00001A70, 0x00001A71 + .word 0x00001A74, 0x00001A75 + .word 0x00001A78, 0x00001A79 + .word 0x00001A7C, 0x00001A7D + .word 0x00001A80, 0x00001A81 + .word 0x00001A84, 0x00001A85 + .word 0x00001A88, 0x00001A89 + .word 0x00001A8C, 0x00001A8D + .word 0x00001A90, 0x00001A91 + .word 0x00001A94, 0x00001A95 + .word 0x00001A98, 0x00001A99 + .word 0x00001A9C, 0x00001A9D + .word 0x00001AA0, 0x00001AA1 + .word 0x00001AA4, 0x00001AA5 + .word 0x00001AA8, 0x00001AA9 + .word 0x00001AAC, 0x00001AAD + .word 0x00001AB0, 0x00001AB1 + .word 0x00001AB4, 0x00001AB5 + .word 0x00001AB8, 0x00001AB9 + .word 0x00001ABC, 0x00001ABD + .word 0x00001AC0, 0x00001AC1 + .word 0x00001AC4, 0x00001AC5 + .word 0x00001AC8, 0x00001AC9 + .word 0x00001ACC, 0x00001ACD + .word 0x00001AD0, 0x00001AD1 + .word 0x00001AD4, 0x00001AD5 + .word 0x00001AD8, 0x00001AD9 + .word 0x00001ADC, 0x00001ADD + .word 0x00001AE0, 0x00001AE0 + .word 0x00001AE0, 0x00001AE1 + .word 0x00001AE4, 0x00001AE4 + .word 0x00001AE4, 0x00001AE5 + .word 0x00001AE8, 0x00001AE9 + .word 0x00001AEC, 0x00001AED + .word 0x00001AF0, 0x00001AF1 + .word 0x00001AF4, 0x00001AF5 + .word 0x00001AF8, 0x00001AF9 + .word 0x00001AFC, 0x00001AFD + .word 0x00001B00, 0x00001B01 + .word 0x00001B04, 0x00001B05 + .word 0x00001B08, 0x00001B09 + .word 0x00001B0C, 0x00001B0D + .word 0x00001B10, 0x00001B11 + .word 0x00001B14, 0x00001B15 + .word 0x00001B18, 0x00001B19 + .word 0x00001B1C, 0x00001B1D + .word 0x00001B20, 0x00001B21 + .word 0x00001B24, 0x00001B25 + .word 0x00001B28, 0x00001B29 + .word 0x00001B2C, 0x00001B2D + .word 0x00001B30, 0x00001B31 + .word 0x00001B34, 0x00001B35 + .word 0x00001B38, 0x00001B39 + .word 0x00001B3C, 0x00001B3D + .word 0x00001B40, 0x00001B41 + .word 0x00001B44, 0x00001B45 + .word 0x00001B48, 0x00001B49 + .word 0x00001B4C, 0x00001B4D + .word 0x00001B50, 0x00001B51 + .word 0x00001B54, 0x00001B55 + .word 0x00001B58, 0x00001B59 + .word 0x00001B5C, 0x00001B5D + .word 0x00001B60, 0x00001B61 + .word 0x00001B64, 0x00001B65 + .word 0x00001B68, 0x00001B69 + .word 0x00001B6C, 0x00001B6D + .word 0x00001B70, 0x00001B71 + .word 0x00001B74, 0x00001B75 + .word 0x00001B78, 0x00001B79 + .word 0x00001B7C, 0x00001B7D + .word 0x00001B80, 0x00001B81 + .word 0x00001B84, 0x00001B85 + .word 0x00001B88, 0x00001B89 + .word 0x00001B8C, 0x00001B8D + .word 0x00001B90, 0x00001B91 + .word 0x00001B94, 0x00001B95 + .word 0x00001B98, 0x00001B98 + .word 0x00001B98, 0x00001B99 + .word 0x00001B9C, 0x00001B9C + .word 0x00001B9C, 0x00001B9D + .word 0x00001BA0, 0x00001BA0 + .word 0x00001BA0, 0x00001BA1 + .word 0x00001BA4, 0x00001BA4 + .word 0x00001BA4, 0x00001BA5 + .word 0x00001BA8, 0x00001BA9 + .word 0x00001BAC, 0x00001BAD + .word 0x00001BB0, 0x00001BB1 + .word 0x00001BB4, 0x00001BB5 + .word 0x00001BB8, 0x00001BB9 + .word 0x00001BBC, 0x00001BBD + .word 0x00001BC0, 0x00001BC1 + .word 0x00001BC4, 0x00001BC5 + .word 0x00001BC8, 0x00001BC9 + .word 0x00001BCC, 0x00001BCC + .word 0x00001BCC, 0x00001BCD + .word 0x00001BD0, 0x00001BD0 + .word 0x00001BD0, 0x00001BD0 + .word 0x00001BD0, 0x00001BD1 + .word 0x00001BD4, 0x00001BD4 + .word 0x00001BD4, 0x00001BD5 + .word 0x00001BD8, 0x00001BD8 + .word 0x00001BD8, 0x00001BD9 + .word 0x00001BDC, 0x00001BDC + .word 0x00001BDC, 0x00001BDD + .word 0x00001BE0, 0x00001BE0 + .word 0x00001BE0, 0x00001BE1 + .word 0x00001BE4, 0x00001BE4 + .word 0x00001BE4, 0x00001BE5 + .word 0x00001BE8, 0x00001BE8 + .word 0x00001BE8, 0x00001BE9 + .word 0x00001BEC, 0x00001BEC + .word 0x00001BEC, 0x00001BED + .word 0x00001BF0, 0x00001BF0 + .word 0x00001BF0, 0x00001BF1 + .word 0x00001BF4, 0x00001BF4 + .word 0x00001BF4, 0x00001BF5 + .word 0x00001BF8, 0x00001BF8 + .word 0x00001BF8, 0x00001BF9 + .word 0x00001BFC, 0x00001BFC + .word 0x00001BFC, 0x00001BFD + .word 0x00001C00, 0x00001C01 + .word 0x00001C04, 0x00001C05 + .word 0x00001C08, 0x00001C09 + .word 0x00001C0C, 0x00001C0D + .word 0x00001C10, 0x00001C10 + .word 0x00001C10, 0x00001C11 + .word 0x00001C14, 0x00001C14 + .word 0x00001C14, 0x00001C15 + .word 0x00001C18, 0x00001C18 + .word 0x00001C18, 0x00001C19 + .word 0x00001C1C, 0x00001C1C + .word 0x00001C1C, 0x00001C1D + .word 0x00001C20, 0x00001C21 + .word 0x00001C24, 0x00001C24 + .word 0x00001C24, 0x00001C25 + .word 0x00001C28, 0x00001C28 + .word 0x00001C28, 0x00001C28 + .word 0x00001C28, 0x00001C29 + .word 0x00001C2C, 0x00001C2C + .word 0x00001C2C, 0x00001C2D + .word 0x00001C30, 0x00001C30 + .word 0x00001C30, 0x00001C31 + .word 0x00001C34, 0x00001C34 + .word 0x00001C34, 0x00001C35 + .word 0x00001C38, 0x00001C38 + .word 0x00001C38, 0x00001C39 + .word 0x00001C3C, 0x00001C3C + .word 0x00001C3C, 0x00001C3D + .word 0x00001C40, 0x00001C40 + .word 0x00001C40, 0x00001C41 + .word 0x00001C44, 0x00001C44 + .word 0x00001C44, 0x00001C45 + .word 0x00001C48, 0x00001C48 + .word 0x00001C48, 0x00001C49 + .word 0x00001C4C, 0x00001C4C + .word 0x00001C4C, 0x00001C4D + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00001C58 ; chunk size + .incbin "baserom.nds", 0x0, 0x1 + .incbin "baserom.nds", 0x4, 0x1 + .incbin "baserom.nds", 0x8, 0x1 + .incbin "baserom.nds", 0xC, 0x1 + .incbin "baserom.nds", 0x10, 0x1 + .incbin "baserom.nds", 0x14, 0x1 + .incbin "baserom.nds", 0x18, 0x1 + .incbin "baserom.nds", 0x1C, 0x1 + .incbin "baserom.nds", 0x20, 0x1 + .incbin "baserom.nds", 0x24, 0x1 + .incbin "baserom.nds", 0x28, 0x1 + .incbin "baserom.nds", 0x2C, 0x1 + .incbin "baserom.nds", 0x30, 0x1 + .incbin "baserom.nds", 0x34, 0x1 + .incbin "baserom.nds", 0x38, 0x1 + .incbin "baserom.nds", 0x3C, 0x1 + .incbin "baserom.nds", 0x40, 0x1 + .incbin "baserom.nds", 0x44, 0x1 + .incbin "baserom.nds", 0x48, 0x1 + .incbin "baserom.nds", 0x4C, 0x1 + .incbin "baserom.nds", 0x50, 0x1 + .incbin "baserom.nds", 0x54, 0x1 + .incbin "baserom.nds", 0x58, 0x1 + .incbin "baserom.nds", 0x5C, 0x1 + .incbin "baserom.nds", 0x60, 0x1 + .incbin "baserom.nds", 0x64, 0x1 + .incbin "baserom.nds", 0x68, 0x1 + .incbin "baserom.nds", 0x6C, 0x1 + .incbin "baserom.nds", 0x70, 0x1 + .incbin "baserom.nds", 0x74, 0x1 + .incbin "baserom.nds", 0x78, 0x1 + .incbin "baserom.nds", 0x7C, 0x1 + .incbin "baserom.nds", 0x80, 0x1 + .incbin "baserom.nds", 0x84, 0x1 + .incbin "baserom.nds", 0x88, 0x1 + .incbin "baserom.nds", 0x8C, 0x1 + .incbin "baserom.nds", 0x90, 0x1 + .incbin "baserom.nds", 0x94, 0x1 + .incbin "baserom.nds", 0x98, 0x1 + .incbin "baserom.nds", 0x9C, 0x1 + .incbin "baserom.nds", 0xA0, 0x1 + .incbin "baserom.nds", 0xA4, 0x1 + .incbin "baserom.nds", 0xA8, 0x1 + .incbin "baserom.nds", 0xAC, 0x1 + .incbin "baserom.nds", 0xB0, 0x1 + .incbin "baserom.nds", 0xB4, 0x1 + .incbin "baserom.nds", 0xB8, 0x1 + .incbin "baserom.nds", 0xBC, 0x1 + .incbin "baserom.nds", 0xC0, 0x1 + .incbin "baserom.nds", 0xC4, 0x1 + .incbin "baserom.nds", 0xC8, 0x1 + .incbin "baserom.nds", 0xCC, 0x1 + .incbin "baserom.nds", 0xD0, 0x1 + .incbin "baserom.nds", 0xD4, 0x1 + .incbin "baserom.nds", 0xD8, 0x1 + .incbin "baserom.nds", 0xDC, 0x1 + .incbin "baserom.nds", 0xE0, 0x1 + .incbin "baserom.nds", 0xE4, 0x1 + .incbin "baserom.nds", 0xE8, 0x1 + .incbin "baserom.nds", 0xEC, 0x1 + .incbin "baserom.nds", 0xF0, 0x1 + .incbin "baserom.nds", 0xF4, 0x1 + .incbin "baserom.nds", 0xF8, 0x1 + .incbin "baserom.nds", 0xFC, 0x1 + .incbin "baserom.nds", 0x100, 0x1 + .incbin "baserom.nds", 0x104, 0x1 + .incbin "baserom.nds", 0x108, 0x1 + .incbin "baserom.nds", 0x10C, 0x1 + .incbin "baserom.nds", 0x110, 0x1 + .incbin "baserom.nds", 0x114, 0x1 + .incbin "baserom.nds", 0x118, 0x1 + .incbin "baserom.nds", 0x11C, 0x1 + .incbin "baserom.nds", 0x120, 0x1 + .incbin "baserom.nds", 0x124, 0x1 + .incbin "baserom.nds", 0x128, 0x1 + .incbin "baserom.nds", 0x12C, 0x1 + .incbin "baserom.nds", 0x130, 0x1 + .incbin "baserom.nds", 0x134, 0x1 + .incbin "baserom.nds", 0x138, 0x1 + .incbin "baserom.nds", 0x13C, 0x1 + .incbin "baserom.nds", 0x140, 0x1 + .incbin "baserom.nds", 0x144, 0x1 + .incbin "baserom.nds", 0x148, 0x1 + .incbin "baserom.nds", 0x14C, 0x1 + .incbin "baserom.nds", 0x150, 0x1 + .incbin "baserom.nds", 0x154, 0x1 + .incbin "baserom.nds", 0x158, 0x1 + .incbin "baserom.nds", 0x15C, 0x1 + .incbin "baserom.nds", 0x160, 0x1 + .incbin "baserom.nds", 0x164, 0x1 + .incbin "baserom.nds", 0x168, 0x1 + .incbin "baserom.nds", 0x16C, 0x1 + .incbin "baserom.nds", 0x170, 0x1 + .incbin "baserom.nds", 0x174, 0x1 + .incbin "baserom.nds", 0x178, 0x1 + .incbin "baserom.nds", 0x17C, 0x1 + .incbin "baserom.nds", 0x180, 0x1 + .incbin "baserom.nds", 0x184, 0x1 + .incbin "baserom.nds", 0x188, 0x1 + .incbin "baserom.nds", 0x18C, 0x1 + .incbin "baserom.nds", 0x190, 0x1 + .incbin "baserom.nds", 0x194, 0x1 + .incbin "baserom.nds", 0x198, 0x1 + .incbin "baserom.nds", 0x19C, 0x1 + .incbin "baserom.nds", 0x1A0, 0x1 + .incbin "baserom.nds", 0x1A4, 0x1 + .incbin "baserom.nds", 0x1A8, 0x1 + .incbin "baserom.nds", 0x1AC, 0x1 + .incbin "baserom.nds", 0x1B0, 0x1 + .incbin "baserom.nds", 0x1B4, 0x1 + .incbin "baserom.nds", 0x1B8, 0x1 + .incbin "baserom.nds", 0x1BC, 0x1 + .incbin "baserom.nds", 0x1C0, 0x1 + .incbin "baserom.nds", 0x1C4, 0x1 + .incbin "baserom.nds", 0x1C8, 0x1 + .incbin "baserom.nds", 0x1CC, 0x1 + .incbin "baserom.nds", 0x1D0, 0x1 + .incbin "baserom.nds", 0x1D4, 0x0 + .incbin "baserom.nds", 0x1D4, 0x1 + .incbin "baserom.nds", 0x1D8, 0x0 + .incbin "baserom.nds", 0x1D8, 0x1 + .incbin "baserom.nds", 0x1DC, 0x0 + .incbin "baserom.nds", 0x1DC, 0x1 + .incbin "baserom.nds", 0x1E0, 0x0 + .incbin "baserom.nds", 0x1E0, 0x1 + .incbin "baserom.nds", 0x1E4, 0x0 + .incbin "baserom.nds", 0x1E4, 0x1 + .incbin "baserom.nds", 0x1E8, 0x0 + .incbin "baserom.nds", 0x1E8, 0x0 + .incbin "baserom.nds", 0x1E8, 0x1 + .incbin "baserom.nds", 0x1EC, 0x0 + .incbin "baserom.nds", 0x1EC, 0x1 + .incbin "baserom.nds", 0x1F0, 0x0 + .incbin "baserom.nds", 0x1F0, 0x1 + .incbin "baserom.nds", 0x1F4, 0x0 + .incbin "baserom.nds", 0x1F4, 0x1 + .incbin "baserom.nds", 0x1F8, 0x0 + .incbin "baserom.nds", 0x1F8, 0x1 + .incbin "baserom.nds", 0x1FC, 0x0 + .incbin "baserom.nds", 0x1FC, 0x1 + .incbin "baserom.nds", 0x200, 0x1 + .incbin "baserom.nds", 0x204, 0x1 + .incbin "baserom.nds", 0x208, 0x1 + .incbin "baserom.nds", 0x20C, 0x1 + .incbin "baserom.nds", 0x210, 0x1 + .incbin "baserom.nds", 0x214, 0x1 + .incbin "baserom.nds", 0x218, 0x1 + .incbin "baserom.nds", 0x21C, 0x1 + .incbin "baserom.nds", 0x220, 0x1 + .incbin "baserom.nds", 0x224, 0x1 + .incbin "baserom.nds", 0x228, 0x1 + .incbin "baserom.nds", 0x22C, 0x1 + .incbin "baserom.nds", 0x230, 0x1 + .incbin "baserom.nds", 0x234, 0x1 + .incbin "baserom.nds", 0x238, 0x1 + .incbin "baserom.nds", 0x23C, 0x1 + .incbin "baserom.nds", 0x240, 0x1 + .incbin "baserom.nds", 0x244, 0x1 + .incbin "baserom.nds", 0x248, 0x1 + .incbin "baserom.nds", 0x24C, 0x1 + .incbin "baserom.nds", 0x250, 0x1 + .incbin "baserom.nds", 0x254, 0x1 + .incbin "baserom.nds", 0x258, 0x1 + .incbin "baserom.nds", 0x25C, 0x1 + .incbin "baserom.nds", 0x260, 0x1 + .incbin "baserom.nds", 0x264, 0x1 + .incbin "baserom.nds", 0x268, 0x1 + .incbin "baserom.nds", 0x26C, 0x1 + .incbin "baserom.nds", 0x270, 0x1 + .incbin "baserom.nds", 0x274, 0x1 + .incbin "baserom.nds", 0x278, 0x1 + .incbin "baserom.nds", 0x27C, 0x1 + .incbin "baserom.nds", 0x280, 0x1 + .incbin "baserom.nds", 0x284, 0x1 + .incbin "baserom.nds", 0x288, 0x1 + .incbin "baserom.nds", 0x28C, 0x1 + .incbin "baserom.nds", 0x290, 0x1 + .incbin "baserom.nds", 0x294, 0x1 + .incbin "baserom.nds", 0x298, 0x1 + .incbin "baserom.nds", 0x29C, 0x1 + .incbin "baserom.nds", 0x2A0, 0x1 + .incbin "baserom.nds", 0x2A4, 0x1 + .incbin "baserom.nds", 0x2A8, 0x1 + .incbin "baserom.nds", 0x2AC, 0x1 + .incbin "baserom.nds", 0x2B0, 0x1 + .incbin "baserom.nds", 0x2B4, 0x1 + .incbin "baserom.nds", 0x2B8, 0x1 + .incbin "baserom.nds", 0x2BC, 0x1 + .incbin "baserom.nds", 0x2C0, 0x1 + .incbin "baserom.nds", 0x2C4, 0x1 + .incbin "baserom.nds", 0x2C8, 0x1 + .incbin "baserom.nds", 0x2CC, 0x1 + .incbin "baserom.nds", 0x2D0, 0x1 + .incbin "baserom.nds", 0x2D4, 0x1 + .incbin "baserom.nds", 0x2D8, 0x1 + .incbin "baserom.nds", 0x2DC, 0x1 + .incbin "baserom.nds", 0x2E0, 0x1 + .incbin "baserom.nds", 0x2E4, 0x1 + .incbin "baserom.nds", 0x2E8, 0x1 + .incbin "baserom.nds", 0x2EC, 0x1 + .incbin "baserom.nds", 0x2F0, 0x1 + .incbin "baserom.nds", 0x2F4, 0x1 + .incbin "baserom.nds", 0x2F8, 0x1 + .incbin "baserom.nds", 0x2FC, 0x1 + .incbin "baserom.nds", 0x300, 0x1 + .incbin "baserom.nds", 0x304, 0x1 + .incbin "baserom.nds", 0x308, 0x1 + .incbin "baserom.nds", 0x30C, 0x1 + .incbin "baserom.nds", 0x310, 0x1 + .incbin "baserom.nds", 0x314, 0x1 + .incbin "baserom.nds", 0x318, 0x1 + .incbin "baserom.nds", 0x31C, 0x1 + .incbin "baserom.nds", 0x320, 0x1 + .incbin "baserom.nds", 0x324, 0x1 + .incbin "baserom.nds", 0x328, 0x1 + .incbin "baserom.nds", 0x32C, 0x1 + .incbin "baserom.nds", 0x330, 0x1 + .incbin "baserom.nds", 0x334, 0x1 + .incbin "baserom.nds", 0x338, 0x1 + .incbin "baserom.nds", 0x33C, 0x1 + .incbin "baserom.nds", 0x340, 0x1 + .incbin "baserom.nds", 0x344, 0x1 + .incbin "baserom.nds", 0x348, 0x1 + .incbin "baserom.nds", 0x34C, 0x1 + .incbin "baserom.nds", 0x350, 0x1 + .incbin "baserom.nds", 0x354, 0x1 + .incbin "baserom.nds", 0x358, 0x1 + .incbin "baserom.nds", 0x35C, 0x1 + .incbin "baserom.nds", 0x360, 0x1 + .incbin "baserom.nds", 0x364, 0x1 + .incbin "baserom.nds", 0x368, 0x1 + .incbin "baserom.nds", 0x36C, 0x1 + .incbin "baserom.nds", 0x370, 0x1 + .incbin "baserom.nds", 0x374, 0x1 + .incbin "baserom.nds", 0x378, 0x1 + .incbin "baserom.nds", 0x37C, 0x1 + .incbin "baserom.nds", 0x380, 0x1 + .incbin "baserom.nds", 0x384, 0x1 + .incbin "baserom.nds", 0x388, 0x1 + .incbin "baserom.nds", 0x38C, 0x1 + .incbin "baserom.nds", 0x390, 0x1 + .incbin "baserom.nds", 0x394, 0x1 + .incbin "baserom.nds", 0x398, 0x1 + .incbin "baserom.nds", 0x39C, 0x1 + .incbin "baserom.nds", 0x3A0, 0x1 + .incbin "baserom.nds", 0x3A4, 0x1 + .incbin "baserom.nds", 0x3A8, 0x1 + .incbin "baserom.nds", 0x3AC, 0x1 + .incbin "baserom.nds", 0x3B0, 0x1 + .incbin "baserom.nds", 0x3B4, 0x1 + .incbin "baserom.nds", 0x3B8, 0x1 + .incbin "baserom.nds", 0x3BC, 0x1 + .incbin "baserom.nds", 0x3C0, 0x1 + .incbin "baserom.nds", 0x3C4, 0x1 + .incbin "baserom.nds", 0x3C8, 0x1 + .incbin "baserom.nds", 0x3CC, 0x1 + .incbin "baserom.nds", 0x3D0, 0x1 + .incbin "baserom.nds", 0x3D4, 0x1 + .incbin "baserom.nds", 0x3D8, 0x1 + .incbin "baserom.nds", 0x3DC, 0x1 + .incbin "baserom.nds", 0x3E0, 0x1 + .incbin "baserom.nds", 0x3E4, 0x1 + .incbin "baserom.nds", 0x3E8, 0x1 + .incbin "baserom.nds", 0x3EC, 0x1 + .incbin "baserom.nds", 0x3F0, 0x1 + .incbin "baserom.nds", 0x3F4, 0x1 + .incbin "baserom.nds", 0x3F8, 0x1 + .incbin "baserom.nds", 0x3FC, 0x1 + .incbin "baserom.nds", 0x400, 0x1 + .incbin "baserom.nds", 0x404, 0x1 + .incbin "baserom.nds", 0x408, 0x1 + .incbin "baserom.nds", 0x40C, 0x1 + .incbin "baserom.nds", 0x410, 0x1 + .incbin "baserom.nds", 0x414, 0x1 + .incbin "baserom.nds", 0x418, 0x1 + .incbin "baserom.nds", 0x41C, 0x1 + .incbin "baserom.nds", 0x420, 0x1 + .incbin "baserom.nds", 0x424, 0x1 + .incbin "baserom.nds", 0x428, 0x1 + .incbin "baserom.nds", 0x42C, 0x1 + .incbin "baserom.nds", 0x430, 0x1 + .incbin "baserom.nds", 0x434, 0x1 + .incbin "baserom.nds", 0x438, 0x1 + .incbin "baserom.nds", 0x43C, 0x1 + .incbin "baserom.nds", 0x440, 0x1 + .incbin "baserom.nds", 0x444, 0x1 + .incbin "baserom.nds", 0x448, 0x1 + .incbin "baserom.nds", 0x44C, 0x1 + .incbin "baserom.nds", 0x450, 0x1 + .incbin "baserom.nds", 0x454, 0x1 + .incbin "baserom.nds", 0x458, 0x1 + .incbin "baserom.nds", 0x45C, 0x1 + .incbin "baserom.nds", 0x460, 0x1 + .incbin "baserom.nds", 0x464, 0x1 + .incbin "baserom.nds", 0x468, 0x1 + .incbin "baserom.nds", 0x46C, 0x1 + .incbin "baserom.nds", 0x470, 0x1 + .incbin "baserom.nds", 0x474, 0x1 + .incbin "baserom.nds", 0x478, 0x1 + .incbin "baserom.nds", 0x47C, 0x1 + .incbin "baserom.nds", 0x480, 0x1 + .incbin "baserom.nds", 0x484, 0x1 + .incbin "baserom.nds", 0x488, 0x1 + .incbin "baserom.nds", 0x48C, 0x1 + .incbin "baserom.nds", 0x490, 0x1 + .incbin "baserom.nds", 0x494, 0x1 + .incbin "baserom.nds", 0x498, 0x1 + .incbin "baserom.nds", 0x49C, 0x1 + .incbin "baserom.nds", 0x4A0, 0x1 + .incbin "baserom.nds", 0x4A4, 0x1 + .incbin "baserom.nds", 0x4A8, 0x1 + .incbin "baserom.nds", 0x4AC, 0x1 + .incbin "baserom.nds", 0x4B0, 0x1 + .incbin "baserom.nds", 0x4B4, 0x1 + .incbin "baserom.nds", 0x4B8, 0x1 + .incbin "baserom.nds", 0x4BC, 0x1 + .incbin "baserom.nds", 0x4C0, 0x1 + .incbin "baserom.nds", 0x4C4, 0x1 + .incbin "baserom.nds", 0x4C8, 0x1 + .incbin "baserom.nds", 0x4CC, 0x1 + .incbin "baserom.nds", 0x4D0, 0x1 + .incbin "baserom.nds", 0x4D4, 0x1 + .incbin "baserom.nds", 0x4D8, 0x1 + .incbin "baserom.nds", 0x4DC, 0x1 + .incbin "baserom.nds", 0x4E0, 0x0 + .incbin "baserom.nds", 0x4E0, 0x1 + .incbin "baserom.nds", 0x4E4, 0x0 + .incbin "baserom.nds", 0x4E4, 0x1 + .incbin "baserom.nds", 0x4E8, 0x0 + .incbin "baserom.nds", 0x4E8, 0x1 + .incbin "baserom.nds", 0x4EC, 0x0 + .incbin "baserom.nds", 0x4EC, 0x1 + .incbin "baserom.nds", 0x4F0, 0x1 + .incbin "baserom.nds", 0x4F4, 0x1 + .incbin "baserom.nds", 0x4F8, 0x1 + .incbin "baserom.nds", 0x4FC, 0x1 + .incbin "baserom.nds", 0x500, 0x1 + .incbin "baserom.nds", 0x504, 0x1 + .incbin "baserom.nds", 0x508, 0x1 + .incbin "baserom.nds", 0x50C, 0x1 + .incbin "baserom.nds", 0x510, 0x1 + .incbin "baserom.nds", 0x514, 0x1 + .incbin "baserom.nds", 0x518, 0x1 + .incbin "baserom.nds", 0x51C, 0x1 + .incbin "baserom.nds", 0x520, 0x1 + .incbin "baserom.nds", 0x524, 0x1 + .incbin "baserom.nds", 0x528, 0x1 + .incbin "baserom.nds", 0x52C, 0x1 + .incbin "baserom.nds", 0x530, 0x1 + .incbin "baserom.nds", 0x534, 0x1 + .incbin "baserom.nds", 0x538, 0x1 + .incbin "baserom.nds", 0x53C, 0x1 + .incbin "baserom.nds", 0x540, 0x1 + .incbin "baserom.nds", 0x544, 0x1 + .incbin "baserom.nds", 0x548, 0x1 + .incbin "baserom.nds", 0x54C, 0x1 + .incbin "baserom.nds", 0x550, 0x1 + .incbin "baserom.nds", 0x554, 0x1 + .incbin "baserom.nds", 0x558, 0x1 + .incbin "baserom.nds", 0x55C, 0x1 + .incbin "baserom.nds", 0x560, 0x1 + .incbin "baserom.nds", 0x564, 0x1 + .incbin "baserom.nds", 0x568, 0x1 + .incbin "baserom.nds", 0x56C, 0x1 + .incbin "baserom.nds", 0x570, 0x1 + .incbin "baserom.nds", 0x574, 0x1 + .incbin "baserom.nds", 0x578, 0x1 + .incbin "baserom.nds", 0x57C, 0x1 + .incbin "baserom.nds", 0x580, 0x1 + .incbin "baserom.nds", 0x584, 0x1 + .incbin "baserom.nds", 0x588, 0x1 + .incbin "baserom.nds", 0x58C, 0x1 + .incbin "baserom.nds", 0x590, 0x1 + .incbin "baserom.nds", 0x594, 0x1 + .incbin "baserom.nds", 0x598, 0x1 + .incbin "baserom.nds", 0x59C, 0x1 + .incbin "baserom.nds", 0x5A0, 0x1 + .incbin "baserom.nds", 0x5A4, 0x1 + .incbin "baserom.nds", 0x5A8, 0x1 + .incbin "baserom.nds", 0x5AC, 0x1 + .incbin "baserom.nds", 0x5B0, 0x1 + .incbin "baserom.nds", 0x5B4, 0x1 + .incbin "baserom.nds", 0x5B8, 0x1 + .incbin "baserom.nds", 0x5BC, 0x1 + .incbin "baserom.nds", 0x5C0, 0x1 + .incbin "baserom.nds", 0x5C4, 0x1 + .incbin "baserom.nds", 0x5C8, 0x1 + .incbin "baserom.nds", 0x5CC, 0x1 + .incbin "baserom.nds", 0x5D0, 0x1 + .incbin "baserom.nds", 0x5D4, 0x1 + .incbin "baserom.nds", 0x5D8, 0x1 + .incbin "baserom.nds", 0x5DC, 0x1 + .incbin "baserom.nds", 0x5E0, 0x1 + .incbin "baserom.nds", 0x5E4, 0x1 + .incbin "baserom.nds", 0x5E8, 0x1 + .incbin "baserom.nds", 0x5EC, 0x1 + .incbin "baserom.nds", 0x5F0, 0x1 + .incbin "baserom.nds", 0x5F4, 0x1 + .incbin "baserom.nds", 0x5F8, 0x1 + .incbin "baserom.nds", 0x5FC, 0x1 + .incbin "baserom.nds", 0x600, 0x0 + .incbin "baserom.nds", 0x600, 0x1 + .incbin "baserom.nds", 0x604, 0x0 + .incbin "baserom.nds", 0x604, 0x1 + .incbin "baserom.nds", 0x608, 0x0 + .incbin "baserom.nds", 0x608, 0x1 + .incbin "baserom.nds", 0x60C, 0x0 + .incbin "baserom.nds", 0x60C, 0x1 + .incbin "baserom.nds", 0x610, 0x1 + .incbin "baserom.nds", 0x614, 0x1 + .incbin "baserom.nds", 0x618, 0x1 + .incbin "baserom.nds", 0x61C, 0x1 + .incbin "baserom.nds", 0x620, 0x1 + .incbin "baserom.nds", 0x624, 0x1 + .incbin "baserom.nds", 0x628, 0x1 + .incbin "baserom.nds", 0x62C, 0x1 + .incbin "baserom.nds", 0x630, 0x1 + .incbin "baserom.nds", 0x634, 0x1 + .incbin "baserom.nds", 0x638, 0x1 + .incbin "baserom.nds", 0x63C, 0x1 + .incbin "baserom.nds", 0x640, 0x1 + .incbin "baserom.nds", 0x644, 0x1 + .incbin "baserom.nds", 0x648, 0x1 + .incbin "baserom.nds", 0x64C, 0x1 + .incbin "baserom.nds", 0x650, 0x0 + .incbin "baserom.nds", 0x650, 0x1 + .incbin "baserom.nds", 0x654, 0x0 + .incbin "baserom.nds", 0x654, 0x1 + .incbin "baserom.nds", 0x658, 0x0 + .incbin "baserom.nds", 0x658, 0x1 + .incbin "baserom.nds", 0x65C, 0x0 + .incbin "baserom.nds", 0x65C, 0x1 + .incbin "baserom.nds", 0x660, 0x1 + .incbin "baserom.nds", 0x664, 0x1 + .incbin "baserom.nds", 0x668, 0x1 + .incbin "baserom.nds", 0x66C, 0x1 + .incbin "baserom.nds", 0x670, 0x1 + .incbin "baserom.nds", 0x674, 0x1 + .incbin "baserom.nds", 0x678, 0x1 + .incbin "baserom.nds", 0x67C, 0x1 + .incbin "baserom.nds", 0x680, 0x1 + .incbin "baserom.nds", 0x684, 0x1 + .incbin "baserom.nds", 0x688, 0x1 + .incbin "baserom.nds", 0x68C, 0x1 + .incbin "baserom.nds", 0x690, 0x1 + .incbin "baserom.nds", 0x694, 0x1 + .incbin "baserom.nds", 0x698, 0x1 + .incbin "baserom.nds", 0x69C, 0x1 + .incbin "baserom.nds", 0x6A0, 0x1 + .incbin "baserom.nds", 0x6A4, 0x1 + .incbin "baserom.nds", 0x6A8, 0x1 + .incbin "baserom.nds", 0x6AC, 0x1 + .incbin "baserom.nds", 0x6B0, 0x1 + .incbin "baserom.nds", 0x6B4, 0x0 + .incbin "baserom.nds", 0x6B4, 0x1 + .incbin "baserom.nds", 0x6B8, 0x0 + .incbin "baserom.nds", 0x6B8, 0x1 + .incbin "baserom.nds", 0x6BC, 0x1 + .incbin "baserom.nds", 0x6C0, 0x1 + .incbin "baserom.nds", 0x6C4, 0x1 + .incbin "baserom.nds", 0x6C8, 0x1 + .incbin "baserom.nds", 0x6CC, 0x0 + .incbin "baserom.nds", 0x6CC, 0x1 + .incbin "baserom.nds", 0x6D0, 0x0 + .incbin "baserom.nds", 0x6D0, 0x1 + .incbin "baserom.nds", 0x6D4, 0x1 + .incbin "baserom.nds", 0x6D8, 0x1 + .incbin "baserom.nds", 0x6DC, 0x1 + .incbin "baserom.nds", 0x6E0, 0x1 + .incbin "baserom.nds", 0x6E4, 0x1 + .incbin "baserom.nds", 0x6E8, 0x1 + .incbin "baserom.nds", 0x6EC, 0x1 + .incbin "baserom.nds", 0x6F0, 0x1 + .incbin "baserom.nds", 0x6F4, 0x1 + .incbin "baserom.nds", 0x6F8, 0x1 + .incbin "baserom.nds", 0x6FC, 0x1 + .incbin "baserom.nds", 0x700, 0x1 + .incbin "baserom.nds", 0x704, 0x1 + .incbin "baserom.nds", 0x708, 0x1 + .incbin "baserom.nds", 0x70C, 0x1 + .incbin "baserom.nds", 0x710, 0x0 + .incbin "baserom.nds", 0x710, 0x1 + .incbin "baserom.nds", 0x714, 0x0 + .incbin "baserom.nds", 0x714, 0x1 + .incbin "baserom.nds", 0x718, 0x0 + .incbin "baserom.nds", 0x718, 0x1 + .incbin "baserom.nds", 0x71C, 0x0 + .incbin "baserom.nds", 0x71C, 0x1 + .incbin "baserom.nds", 0x720, 0x1 + .incbin "baserom.nds", 0x724, 0x1 + .incbin "baserom.nds", 0x728, 0x1 + .incbin "baserom.nds", 0x72C, 0x1 + .incbin "baserom.nds", 0x730, 0x1 + .incbin "baserom.nds", 0x734, 0x1 + .incbin "baserom.nds", 0x738, 0x1 + .incbin "baserom.nds", 0x73C, 0x1 + .incbin "baserom.nds", 0x740, 0x1 + .incbin "baserom.nds", 0x744, 0x0 + .incbin "baserom.nds", 0x744, 0x1 + .incbin "baserom.nds", 0x748, 0x0 + .incbin "baserom.nds", 0x748, 0x1 + .incbin "baserom.nds", 0x74C, 0x1 + .incbin "baserom.nds", 0x750, 0x1 + .incbin "baserom.nds", 0x754, 0x1 + .incbin "baserom.nds", 0x758, 0x1 + .incbin "baserom.nds", 0x75C, 0x1 + .incbin "baserom.nds", 0x760, 0x1 + .incbin "baserom.nds", 0x764, 0x1 + .incbin "baserom.nds", 0x768, 0x1 + .incbin "baserom.nds", 0x76C, 0x1 + .incbin "baserom.nds", 0x770, 0x1 + .incbin "baserom.nds", 0x774, 0x1 + .incbin "baserom.nds", 0x778, 0x0 + .incbin "baserom.nds", 0x778, 0x1 + .incbin "baserom.nds", 0x77C, 0x0 + .incbin "baserom.nds", 0x77C, 0x1 + .incbin "baserom.nds", 0x780, 0x1 + .incbin "baserom.nds", 0x784, 0x1 + .incbin "baserom.nds", 0x788, 0x1 + .incbin "baserom.nds", 0x78C, 0x1 + .incbin "baserom.nds", 0x790, 0x1 + .incbin "baserom.nds", 0x794, 0x1 + .incbin "baserom.nds", 0x798, 0x1 + .incbin "baserom.nds", 0x79C, 0x1 + .incbin "baserom.nds", 0x7A0, 0x1 + .incbin "baserom.nds", 0x7A4, 0x1 + .incbin "baserom.nds", 0x7A8, 0x1 + .incbin "baserom.nds", 0x7AC, 0x1 + .incbin "baserom.nds", 0x7B0, 0x0 + .incbin "baserom.nds", 0x7B0, 0x1 + .incbin "baserom.nds", 0x7B4, 0x0 + .incbin "baserom.nds", 0x7B4, 0x1 + .incbin "baserom.nds", 0x7B8, 0x1 + .incbin "baserom.nds", 0x7BC, 0x1 + .incbin "baserom.nds", 0x7C0, 0x1 + .incbin "baserom.nds", 0x7C4, 0x1 + .incbin "baserom.nds", 0x7C8, 0x1 + .incbin "baserom.nds", 0x7CC, 0x1 + .incbin "baserom.nds", 0x7D0, 0x1 + .incbin "baserom.nds", 0x7D4, 0x1 + .incbin "baserom.nds", 0x7D8, 0x1 + .incbin "baserom.nds", 0x7DC, 0x1 + .incbin "baserom.nds", 0x7E0, 0x1 + .incbin "baserom.nds", 0x7E4, 0x1 + .incbin "baserom.nds", 0x7E8, 0x1 + .incbin "baserom.nds", 0x7EC, 0x1 + .incbin "baserom.nds", 0x7F0, 0x1 + .incbin "baserom.nds", 0x7F4, 0x1 + .incbin "baserom.nds", 0x7F8, 0x0 + .incbin "baserom.nds", 0x7F8, 0x1 + .incbin "baserom.nds", 0x7FC, 0x0 + .incbin "baserom.nds", 0x7FC, 0x1 + .incbin "baserom.nds", 0x800, 0x1 + .incbin "baserom.nds", 0x804, 0x1 + .incbin "baserom.nds", 0x808, 0x1 + .incbin "baserom.nds", 0x80C, 0x1 + .incbin "baserom.nds", 0x810, 0x1 + .incbin "baserom.nds", 0x814, 0x1 + .incbin "baserom.nds", 0x818, 0x1 + .incbin "baserom.nds", 0x81C, 0x1 + .incbin "baserom.nds", 0x820, 0x1 + .incbin "baserom.nds", 0x824, 0x1 + .incbin "baserom.nds", 0x828, 0x1 + .incbin "baserom.nds", 0x82C, 0x1 + .incbin "baserom.nds", 0x830, 0x1 + .incbin "baserom.nds", 0x834, 0x1 + .incbin "baserom.nds", 0x838, 0x1 + .incbin "baserom.nds", 0x83C, 0x1 + .incbin "baserom.nds", 0x840, 0x1 + .incbin "baserom.nds", 0x844, 0x1 + .incbin "baserom.nds", 0x848, 0x1 + .incbin "baserom.nds", 0x84C, 0x1 + .incbin "baserom.nds", 0x850, 0x1 + .incbin "baserom.nds", 0x854, 0x1 + .incbin "baserom.nds", 0x858, 0x1 + .incbin "baserom.nds", 0x85C, 0x1 + .incbin "baserom.nds", 0x860, 0x0 + .incbin "baserom.nds", 0x860, 0x1 + .incbin "baserom.nds", 0x864, 0x0 + .incbin "baserom.nds", 0x864, 0x1 + .incbin "baserom.nds", 0x868, 0x0 + .incbin "baserom.nds", 0x868, 0x1 + .incbin "baserom.nds", 0x86C, 0x0 + .incbin "baserom.nds", 0x86C, 0x1 + .incbin "baserom.nds", 0x870, 0x0 + .incbin "baserom.nds", 0x870, 0x1 + .incbin "baserom.nds", 0x874, 0x0 + .incbin "baserom.nds", 0x874, 0x1 + .incbin "baserom.nds", 0x878, 0x1 + .incbin "baserom.nds", 0x87C, 0x1 + .incbin "baserom.nds", 0x880, 0x1 + .incbin "baserom.nds", 0x884, 0x1 + .incbin "baserom.nds", 0x888, 0x1 + .incbin "baserom.nds", 0x88C, 0x1 + .incbin "baserom.nds", 0x890, 0x1 + .incbin "baserom.nds", 0x894, 0x1 + .incbin "baserom.nds", 0x898, 0x1 + .incbin "baserom.nds", 0x89C, 0x1 + .incbin "baserom.nds", 0x8A0, 0x1 + .incbin "baserom.nds", 0x8A4, 0x1 + .incbin "baserom.nds", 0x8A8, 0x0 + .incbin "baserom.nds", 0x8A8, 0x1 + .incbin "baserom.nds", 0x8AC, 0x0 + .incbin "baserom.nds", 0x8AC, 0x1 + .incbin "baserom.nds", 0x8B0, 0x0 + .incbin "baserom.nds", 0x8B0, 0x1 + .incbin "baserom.nds", 0x8B4, 0x0 + .incbin "baserom.nds", 0x8B4, 0x1 + .incbin "baserom.nds", 0x8B8, 0x1 + .incbin "baserom.nds", 0x8BC, 0x1 + .incbin "baserom.nds", 0x8C0, 0x1 + .incbin "baserom.nds", 0x8C4, 0x1 + .incbin "baserom.nds", 0x8C8, 0x1 + .incbin "baserom.nds", 0x8CC, 0x1 + .incbin "baserom.nds", 0x8D0, 0x1 + .incbin "baserom.nds", 0x8D4, 0x1 + .incbin "baserom.nds", 0x8D8, 0x1 + .incbin "baserom.nds", 0x8DC, 0x1 + .incbin "baserom.nds", 0x8E0, 0x1 + .incbin "baserom.nds", 0x8E4, 0x1 + .incbin "baserom.nds", 0x8E8, 0x1 + .incbin "baserom.nds", 0x8EC, 0x1 + .incbin "baserom.nds", 0x8F0, 0x1 + .incbin "baserom.nds", 0x8F4, 0x1 + .incbin "baserom.nds", 0x8F8, 0x1 + .incbin "baserom.nds", 0x8FC, 0x1 + .incbin "baserom.nds", 0x900, 0x1 + .incbin "baserom.nds", 0x904, 0x1 + .incbin "baserom.nds", 0x908, 0x1 + .incbin "baserom.nds", 0x90C, 0x1 + .incbin "baserom.nds", 0x910, 0x1 + .incbin "baserom.nds", 0x914, 0x1 + .incbin "baserom.nds", 0x918, 0x1 + .incbin "baserom.nds", 0x91C, 0x1 + .incbin "baserom.nds", 0x920, 0x1 + .incbin "baserom.nds", 0x924, 0x1 + .incbin "baserom.nds", 0x928, 0x1 + .incbin "baserom.nds", 0x92C, 0x1 + .incbin "baserom.nds", 0x930, 0x1 + .incbin "baserom.nds", 0x934, 0x1 + .incbin "baserom.nds", 0x938, 0x1 + .incbin "baserom.nds", 0x93C, 0x1 + .incbin "baserom.nds", 0x940, 0x1 + .incbin "baserom.nds", 0x944, 0x1 + .incbin "baserom.nds", 0x948, 0x1 + .incbin "baserom.nds", 0x94C, 0x1 + .incbin "baserom.nds", 0x950, 0x1 + .incbin "baserom.nds", 0x954, 0x1 + .incbin "baserom.nds", 0x958, 0x1 + .incbin "baserom.nds", 0x95C, 0x1 + .incbin "baserom.nds", 0x960, 0x1 + .incbin "baserom.nds", 0x964, 0x1 + .incbin "baserom.nds", 0x968, 0x1 + .incbin "baserom.nds", 0x96C, 0x1 + .incbin "baserom.nds", 0x970, 0x1 + .incbin "baserom.nds", 0x974, 0x1 + .incbin "baserom.nds", 0x978, 0x1 + .incbin "baserom.nds", 0x97C, 0x1 + .incbin "baserom.nds", 0x980, 0x1 + .incbin "baserom.nds", 0x984, 0x1 + .incbin "baserom.nds", 0x988, 0x1 + .incbin "baserom.nds", 0x98C, 0x1 + .incbin "baserom.nds", 0x990, 0x1 + .incbin "baserom.nds", 0x994, 0x1 + .incbin "baserom.nds", 0x998, 0x1 + .incbin "baserom.nds", 0x99C, 0x1 + .incbin "baserom.nds", 0x9A0, 0x1 + .incbin "baserom.nds", 0x9A4, 0x1 + .incbin "baserom.nds", 0x9A8, 0x1 + .incbin "baserom.nds", 0x9AC, 0x1 + .incbin "baserom.nds", 0x9B0, 0x1 + .incbin "baserom.nds", 0x9B4, 0x1 + .incbin "baserom.nds", 0x9B8, 0x1 + .incbin "baserom.nds", 0x9BC, 0x1 + .incbin "baserom.nds", 0x9C0, 0x1 + .incbin "baserom.nds", 0x9C4, 0x1 + .incbin "baserom.nds", 0x9C8, 0x1 + .incbin "baserom.nds", 0x9CC, 0x1 + .incbin "baserom.nds", 0x9D0, 0x1 + .incbin "baserom.nds", 0x9D4, 0x1 + .incbin "baserom.nds", 0x9D8, 0x1 + .incbin "baserom.nds", 0x9DC, 0x1 + .incbin "baserom.nds", 0x9E0, 0x1 + .incbin "baserom.nds", 0x9E4, 0x1 + .incbin "baserom.nds", 0x9E8, 0x1 + .incbin "baserom.nds", 0x9EC, 0x1 + .incbin "baserom.nds", 0x9F0, 0x1 + .incbin "baserom.nds", 0x9F4, 0x1 + .incbin "baserom.nds", 0x9F8, 0x1 + .incbin "baserom.nds", 0x9FC, 0x1 + .incbin "baserom.nds", 0xA00, 0x1 + .incbin "baserom.nds", 0xA04, 0x1 + .incbin "baserom.nds", 0xA08, 0x1 + .incbin "baserom.nds", 0xA0C, 0x1 + .incbin "baserom.nds", 0xA10, 0x1 + .incbin "baserom.nds", 0xA14, 0x1 + .incbin "baserom.nds", 0xA18, 0x1 + .incbin "baserom.nds", 0xA1C, 0x1 + .incbin "baserom.nds", 0xA20, 0x1 + .incbin "baserom.nds", 0xA24, 0x1 + .incbin "baserom.nds", 0xA28, 0x1 + .incbin "baserom.nds", 0xA2C, 0x1 + .incbin "baserom.nds", 0xA30, 0x1 + .incbin "baserom.nds", 0xA34, 0x1 + .incbin "baserom.nds", 0xA38, 0x1 + .incbin "baserom.nds", 0xA3C, 0x1 + .incbin "baserom.nds", 0xA40, 0x1 + .incbin "baserom.nds", 0xA44, 0x1 + .incbin "baserom.nds", 0xA48, 0x1 + .incbin "baserom.nds", 0xA4C, 0x1 + .incbin "baserom.nds", 0xA50, 0x1 + .incbin "baserom.nds", 0xA54, 0x1 + .incbin "baserom.nds", 0xA58, 0x1 + .incbin "baserom.nds", 0xA5C, 0x1 + .incbin "baserom.nds", 0xA60, 0x1 + .incbin "baserom.nds", 0xA64, 0x1 + .incbin "baserom.nds", 0xA68, 0x1 + .incbin "baserom.nds", 0xA6C, 0x1 + .incbin "baserom.nds", 0xA70, 0x1 + .incbin "baserom.nds", 0xA74, 0x1 + .incbin "baserom.nds", 0xA78, 0x1 + .incbin "baserom.nds", 0xA7C, 0x1 + .incbin "baserom.nds", 0xA80, 0x1 + .incbin "baserom.nds", 0xA84, 0x1 + .incbin "baserom.nds", 0xA88, 0x1 + .incbin "baserom.nds", 0xA8C, 0x1 + .incbin "baserom.nds", 0xA90, 0x1 + .incbin "baserom.nds", 0xA94, 0x1 + .incbin "baserom.nds", 0xA98, 0x1 + .incbin "baserom.nds", 0xA9C, 0x1 + .incbin "baserom.nds", 0xAA0, 0x1 + .incbin "baserom.nds", 0xAA4, 0x1 + .incbin "baserom.nds", 0xAA8, 0x1 + .incbin "baserom.nds", 0xAAC, 0x1 + .incbin "baserom.nds", 0xAB0, 0x1 + .incbin "baserom.nds", 0xAB4, 0x1 + .incbin "baserom.nds", 0xAB8, 0x1 + .incbin "baserom.nds", 0xABC, 0x1 + .incbin "baserom.nds", 0xAC0, 0x1 + .incbin "baserom.nds", 0xAC4, 0x1 + .incbin "baserom.nds", 0xAC8, 0x1 + .incbin "baserom.nds", 0xACC, 0x1 + .incbin "baserom.nds", 0xAD0, 0x1 + .incbin "baserom.nds", 0xAD4, 0x1 + .incbin "baserom.nds", 0xAD8, 0x1 + .incbin "baserom.nds", 0xADC, 0x1 + .incbin "baserom.nds", 0xAE0, 0x1 + .incbin "baserom.nds", 0xAE4, 0x1 + .incbin "baserom.nds", 0xAE8, 0x1 + .incbin "baserom.nds", 0xAEC, 0x1 + .incbin "baserom.nds", 0xAF0, 0x1 + .incbin "baserom.nds", 0xAF4, 0x1 + .incbin "baserom.nds", 0xAF8, 0x1 + .incbin "baserom.nds", 0xAFC, 0x1 + .incbin "baserom.nds", 0xB00, 0x1 + .incbin "baserom.nds", 0xB04, 0x1 + .incbin "baserom.nds", 0xB08, 0x1 + .incbin "baserom.nds", 0xB0C, 0x1 + .incbin "baserom.nds", 0xB10, 0x1 + .incbin "baserom.nds", 0xB14, 0x1 + .incbin "baserom.nds", 0xB18, 0x1 + .incbin "baserom.nds", 0xB1C, 0x1 + .incbin "baserom.nds", 0xB20, 0x1 + .incbin "baserom.nds", 0xB24, 0x1 + .incbin "baserom.nds", 0xB28, 0x1 + .incbin "baserom.nds", 0xB2C, 0x1 + .incbin "baserom.nds", 0xB30, 0x1 + .incbin "baserom.nds", 0xB34, 0x1 + .incbin "baserom.nds", 0xB38, 0x1 + .incbin "baserom.nds", 0xB3C, 0x1 + .incbin "baserom.nds", 0xB40, 0x1 + .incbin "baserom.nds", 0xB44, 0x1 + .incbin "baserom.nds", 0xB48, 0x1 + .incbin "baserom.nds", 0xB4C, 0x1 + .incbin "baserom.nds", 0xB50, 0x1 + .incbin "baserom.nds", 0xB54, 0x1 + .incbin "baserom.nds", 0xB58, 0x1 + .incbin "baserom.nds", 0xB5C, 0x1 + .incbin "baserom.nds", 0xB60, 0x1 + .incbin "baserom.nds", 0xB64, 0x1 + .incbin "baserom.nds", 0xB68, 0x1 + .incbin "baserom.nds", 0xB6C, 0x1 + .incbin "baserom.nds", 0xB70, 0x1 + .incbin "baserom.nds", 0xB74, 0x1 + .incbin "baserom.nds", 0xB78, 0x1 + .incbin "baserom.nds", 0xB7C, 0x1 + .incbin "baserom.nds", 0xB80, 0x1 + .incbin "baserom.nds", 0xB84, 0x1 + .incbin "baserom.nds", 0xB88, 0x1 + .incbin "baserom.nds", 0xB8C, 0x1 + .incbin "baserom.nds", 0xB90, 0x1 + .incbin "baserom.nds", 0xB94, 0x1 + .incbin "baserom.nds", 0xB98, 0x1 + .incbin "baserom.nds", 0xB9C, 0x1 + .incbin "baserom.nds", 0xBA0, 0x1 + .incbin "baserom.nds", 0xBA4, 0x1 + .incbin "baserom.nds", 0xBA8, 0x1 + .incbin "baserom.nds", 0xBAC, 0x1 + .incbin "baserom.nds", 0xBB0, 0x1 + .incbin "baserom.nds", 0xBB4, 0x1 + .incbin "baserom.nds", 0xBB8, 0x1 + .incbin "baserom.nds", 0xBBC, 0x1 + .incbin "baserom.nds", 0xBC0, 0x1 + .incbin "baserom.nds", 0xBC4, 0x1 + .incbin "baserom.nds", 0xBC8, 0x0 + .incbin "baserom.nds", 0xBC8, 0x1 + .incbin "baserom.nds", 0xBCC, 0x0 + .incbin "baserom.nds", 0xBCC, 0x1 + .incbin "baserom.nds", 0xBD0, 0x1 + .incbin "baserom.nds", 0xBD4, 0x1 + .incbin "baserom.nds", 0xBD8, 0x1 + .incbin "baserom.nds", 0xBDC, 0x1 + .incbin "baserom.nds", 0xBE0, 0x1 + .incbin "baserom.nds", 0xBE4, 0x1 + .incbin "baserom.nds", 0xBE8, 0x1 + .incbin "baserom.nds", 0xBEC, 0x1 + .incbin "baserom.nds", 0xBF0, 0x1 + .incbin "baserom.nds", 0xBF4, 0x1 + .incbin "baserom.nds", 0xBF8, 0x1 + .incbin "baserom.nds", 0xBFC, 0x1 + .incbin "baserom.nds", 0xC00, 0x1 + .incbin "baserom.nds", 0xC04, 0x1 + .incbin "baserom.nds", 0xC08, 0x1 + .incbin "baserom.nds", 0xC0C, 0x1 + .incbin "baserom.nds", 0xC10, 0x1 + .incbin "baserom.nds", 0xC14, 0x1 + .incbin "baserom.nds", 0xC18, 0x1 + .incbin "baserom.nds", 0xC1C, 0x1 + .incbin "baserom.nds", 0xC20, 0x1 + .incbin "baserom.nds", 0xC24, 0x1 + .incbin "baserom.nds", 0xC28, 0x1 + .incbin "baserom.nds", 0xC2C, 0x1 + .incbin "baserom.nds", 0xC30, 0x1 + .incbin "baserom.nds", 0xC34, 0x1 + .incbin "baserom.nds", 0xC38, 0x1 + .incbin "baserom.nds", 0xC3C, 0x1 + .incbin "baserom.nds", 0xC40, 0x1 + .incbin "baserom.nds", 0xC44, 0x1 + .incbin "baserom.nds", 0xC48, 0x1 + .incbin "baserom.nds", 0xC4C, 0x1 + .incbin "baserom.nds", 0xC50, 0x1 + .incbin "baserom.nds", 0xC54, 0x1 + .incbin "baserom.nds", 0xC58, 0x1 + .incbin "baserom.nds", 0xC5C, 0x1 + .incbin "baserom.nds", 0xC60, 0x1 + .incbin "baserom.nds", 0xC64, 0x1 + .incbin "baserom.nds", 0xC68, 0x1 + .incbin "baserom.nds", 0xC6C, 0x1 + .incbin "baserom.nds", 0xC70, 0x1 + .incbin "baserom.nds", 0xC74, 0x1 + .incbin "baserom.nds", 0xC78, 0x1 + .incbin "baserom.nds", 0xC7C, 0x1 + .incbin "baserom.nds", 0xC80, 0x1 + .incbin "baserom.nds", 0xC84, 0x1 + .incbin "baserom.nds", 0xC88, 0x1 + .incbin "baserom.nds", 0xC8C, 0x1 + .incbin "baserom.nds", 0xC90, 0x1 + .incbin "baserom.nds", 0xC94, 0x1 + .incbin "baserom.nds", 0xC98, 0x1 + .incbin "baserom.nds", 0xC9C, 0x1 + .incbin "baserom.nds", 0xCA0, 0x1 + .incbin "baserom.nds", 0xCA4, 0x1 + .incbin "baserom.nds", 0xCA8, 0x1 + .incbin "baserom.nds", 0xCAC, 0x1 + .incbin "baserom.nds", 0xCB0, 0x1 + .incbin "baserom.nds", 0xCB4, 0x1 + .incbin "baserom.nds", 0xCB8, 0x1 + .incbin "baserom.nds", 0xCBC, 0x1 + .incbin "baserom.nds", 0xCC0, 0x1 + .incbin "baserom.nds", 0xCC4, 0x1 + .incbin "baserom.nds", 0xCC8, 0x1 + .incbin "baserom.nds", 0xCCC, 0x1 + .incbin "baserom.nds", 0xCD0, 0x1 + .incbin "baserom.nds", 0xCD4, 0x1 + .incbin "baserom.nds", 0xCD8, 0x1 + .incbin "baserom.nds", 0xCDC, 0x1 + .incbin "baserom.nds", 0xCE0, 0x1 + .incbin "baserom.nds", 0xCE4, 0x1 + .incbin "baserom.nds", 0xCE8, 0x1 + .incbin "baserom.nds", 0xCEC, 0x1 + .incbin "baserom.nds", 0xCF0, 0x1 + .incbin "baserom.nds", 0xCF4, 0x1 + .incbin "baserom.nds", 0xCF8, 0x1 + .incbin "baserom.nds", 0xCFC, 0x1 + .incbin "baserom.nds", 0xD00, 0x1 + .incbin "baserom.nds", 0xD04, 0x1 + .incbin "baserom.nds", 0xD08, 0x1 + .incbin "baserom.nds", 0xD0C, 0x1 + .incbin "baserom.nds", 0xD10, 0x1 + .incbin "baserom.nds", 0xD14, 0x1 + .incbin "baserom.nds", 0xD18, 0x1 + .incbin "baserom.nds", 0xD1C, 0x1 + .incbin "baserom.nds", 0xD20, 0x1 + .incbin "baserom.nds", 0xD24, 0x1 + .incbin "baserom.nds", 0xD28, 0x1 + .incbin "baserom.nds", 0xD2C, 0x1 + .incbin "baserom.nds", 0xD30, 0x1 + .incbin "baserom.nds", 0xD34, 0x1 + .incbin "baserom.nds", 0xD38, 0x1 + .incbin "baserom.nds", 0xD3C, 0x1 + .incbin "baserom.nds", 0xD40, 0x1 + .incbin "baserom.nds", 0xD44, 0x1 + .incbin "baserom.nds", 0xD48, 0x1 + .incbin "baserom.nds", 0xD4C, 0x1 + .incbin "baserom.nds", 0xD50, 0x1 + .incbin "baserom.nds", 0xD54, 0x1 + .incbin "baserom.nds", 0xD58, 0x1 + .incbin "baserom.nds", 0xD5C, 0x1 + .incbin "baserom.nds", 0xD60, 0x1 + .incbin "baserom.nds", 0xD64, 0x1 + .incbin "baserom.nds", 0xD68, 0x1 + .incbin "baserom.nds", 0xD6C, 0x1 + .incbin "baserom.nds", 0xD70, 0x1 + .incbin "baserom.nds", 0xD74, 0x1 + .incbin "baserom.nds", 0xD78, 0x1 + .incbin "baserom.nds", 0xD7C, 0x1 + .incbin "baserom.nds", 0xD80, 0x1 + .incbin "baserom.nds", 0xD84, 0x1 + .incbin "baserom.nds", 0xD88, 0x1 + .incbin "baserom.nds", 0xD8C, 0x1 + .incbin "baserom.nds", 0xD90, 0x1 + .incbin "baserom.nds", 0xD94, 0x1 + .incbin "baserom.nds", 0xD98, 0x1 + .incbin "baserom.nds", 0xD9C, 0x1 + .incbin "baserom.nds", 0xDA0, 0x1 + .incbin "baserom.nds", 0xDA4, 0x1 + .incbin "baserom.nds", 0xDA8, 0x1 + .incbin "baserom.nds", 0xDAC, 0x1 + .incbin "baserom.nds", 0xDB0, 0x1 + .incbin "baserom.nds", 0xDB4, 0x1 + .incbin "baserom.nds", 0xDB8, 0x1 + .incbin "baserom.nds", 0xDBC, 0x1 + .incbin "baserom.nds", 0xDC0, 0x0 + .incbin "baserom.nds", 0xDC0, 0x1 + .incbin "baserom.nds", 0xDC4, 0x0 + .incbin "baserom.nds", 0xDC4, 0x1 + .incbin "baserom.nds", 0xDC8, 0x1 + .incbin "baserom.nds", 0xDCC, 0x1 + .incbin "baserom.nds", 0xDD0, 0x1 + .incbin "baserom.nds", 0xDD4, 0x1 + .incbin "baserom.nds", 0xDD8, 0x1 + .incbin "baserom.nds", 0xDDC, 0x1 + .incbin "baserom.nds", 0xDE0, 0x1 + .incbin "baserom.nds", 0xDE4, 0x1 + .incbin "baserom.nds", 0xDE8, 0x0 + .incbin "baserom.nds", 0xDE8, 0x1 + .incbin "baserom.nds", 0xDEC, 0x0 + .incbin "baserom.nds", 0xDEC, 0x1 + .incbin "baserom.nds", 0xDF0, 0x0 + .incbin "baserom.nds", 0xDF0, 0x1 + .incbin "baserom.nds", 0xDF4, 0x0 + .incbin "baserom.nds", 0xDF4, 0x1 + .incbin "baserom.nds", 0xDF8, 0x1 + .incbin "baserom.nds", 0xDFC, 0x0 + .incbin "baserom.nds", 0xDFC, 0x1 + .incbin "baserom.nds", 0xE00, 0x0 + .incbin "baserom.nds", 0xE00, 0x1 + .incbin "baserom.nds", 0xE04, 0x1 + .incbin "baserom.nds", 0xE08, 0x1 + .incbin "baserom.nds", 0xE0C, 0x1 + .incbin "baserom.nds", 0xE10, 0x1 + .incbin "baserom.nds", 0xE14, 0x1 + .incbin "baserom.nds", 0xE18, 0x1 + .incbin "baserom.nds", 0xE1C, 0x1 + .incbin "baserom.nds", 0xE20, 0x1 + .incbin "baserom.nds", 0xE24, 0x0 + .incbin "baserom.nds", 0xE24, 0x1 + .incbin "baserom.nds", 0xE28, 0x0 + .incbin "baserom.nds", 0xE28, 0x1 + .incbin "baserom.nds", 0xE2C, 0x0 + .incbin "baserom.nds", 0xE2C, 0x1 + .incbin "baserom.nds", 0xE30, 0x0 + .incbin "baserom.nds", 0xE30, 0x0 + .incbin "baserom.nds", 0xE30, 0x1 + .incbin "baserom.nds", 0xE34, 0x0 + .incbin "baserom.nds", 0xE34, 0x1 + .incbin "baserom.nds", 0xE38, 0x0 + .incbin "baserom.nds", 0xE38, 0x1 + .incbin "baserom.nds", 0xE3C, 0x0 + .incbin "baserom.nds", 0xE3C, 0x1 + .incbin "baserom.nds", 0xE40, 0x0 + .incbin "baserom.nds", 0xE40, 0x1 + .incbin "baserom.nds", 0xE44, 0x0 + .incbin "baserom.nds", 0xE44, 0x1 + .incbin "baserom.nds", 0xE48, 0x1 + .incbin "baserom.nds", 0xE4C, 0x1 + .incbin "baserom.nds", 0xE50, 0x1 + .incbin "baserom.nds", 0xE54, 0x1 + .incbin "baserom.nds", 0xE58, 0x1 + .incbin "baserom.nds", 0xE5C, 0x1 + .incbin "baserom.nds", 0xE60, 0x1 + .incbin "baserom.nds", 0xE64, 0x1 + .incbin "baserom.nds", 0xE68, 0x1 + .incbin "baserom.nds", 0xE6C, 0x1 + .incbin "baserom.nds", 0xE70, 0x1 + .incbin "baserom.nds", 0xE74, 0x1 + .incbin "baserom.nds", 0xE78, 0x0 + .incbin "baserom.nds", 0xE78, 0x1 + .incbin "baserom.nds", 0xE7C, 0x0 + .incbin "baserom.nds", 0xE7C, 0x1 + .incbin "baserom.nds", 0xE80, 0x0 + .incbin "baserom.nds", 0xE80, 0x1 + .incbin "baserom.nds", 0xE84, 0x0 + .incbin "baserom.nds", 0xE84, 0x1 + .incbin "baserom.nds", 0xE88, 0x0 + .incbin "baserom.nds", 0xE88, 0x1 + .incbin "baserom.nds", 0xE8C, 0x0 + .incbin "baserom.nds", 0xE8C, 0x1 + .incbin "baserom.nds", 0xE90, 0x1 + .incbin "baserom.nds", 0xE94, 0x1 + .incbin "baserom.nds", 0xE98, 0x1 + .incbin "baserom.nds", 0xE9C, 0x1 + .incbin "baserom.nds", 0xEA0, 0x1 + .incbin "baserom.nds", 0xEA4, 0x1 + .incbin "baserom.nds", 0xEA8, 0x1 + .incbin "baserom.nds", 0xEAC, 0x1 + .incbin "baserom.nds", 0xEB0, 0x1 + .incbin "baserom.nds", 0xEB4, 0x1 + .incbin "baserom.nds", 0xEB8, 0x1 + .incbin "baserom.nds", 0xEBC, 0x1 + .incbin "baserom.nds", 0xEC0, 0x1 + .incbin "baserom.nds", 0xEC4, 0x1 + .incbin "baserom.nds", 0xEC8, 0x1 + .incbin "baserom.nds", 0xECC, 0x1 + .incbin "baserom.nds", 0xED0, 0x1 + .incbin "baserom.nds", 0xED4, 0x1 + .incbin "baserom.nds", 0xED8, 0x1 + .incbin "baserom.nds", 0xEDC, 0x1 + .incbin "baserom.nds", 0xEE0, 0x1 + .incbin "baserom.nds", 0xEE4, 0x1 + .incbin "baserom.nds", 0xEE8, 0x1 + .incbin "baserom.nds", 0xEEC, 0x1 + .incbin "baserom.nds", 0xEF0, 0x1 + .incbin "baserom.nds", 0xEF4, 0x1 + .incbin "baserom.nds", 0xEF8, 0x1 + .incbin "baserom.nds", 0xEFC, 0x1 + .incbin "baserom.nds", 0xF00, 0x1 + .incbin "baserom.nds", 0xF04, 0x1 + .incbin "baserom.nds", 0xF08, 0x1 + .incbin "baserom.nds", 0xF0C, 0x1 + .incbin "baserom.nds", 0xF10, 0x1 + .incbin "baserom.nds", 0xF14, 0x1 + .incbin "baserom.nds", 0xF18, 0x1 + .incbin "baserom.nds", 0xF1C, 0x1 + .incbin "baserom.nds", 0xF20, 0x1 + .incbin "baserom.nds", 0xF24, 0x1 + .incbin "baserom.nds", 0xF28, 0x1 + .incbin "baserom.nds", 0xF2C, 0x1 + .incbin "baserom.nds", 0xF30, 0x1 + .incbin "baserom.nds", 0xF34, 0x1 + .incbin "baserom.nds", 0xF38, 0x1 + .incbin "baserom.nds", 0xF3C, 0x1 + .incbin "baserom.nds", 0xF40, 0x1 + .incbin "baserom.nds", 0xF44, 0x1 + .incbin "baserom.nds", 0xF48, 0x1 + .incbin "baserom.nds", 0xF4C, 0x1 + .incbin "baserom.nds", 0xF50, 0x1 + .incbin "baserom.nds", 0xF54, 0x1 + .incbin "baserom.nds", 0xF58, 0x1 + .incbin "baserom.nds", 0xF5C, 0x1 + .incbin "baserom.nds", 0xF60, 0x1 + .incbin "baserom.nds", 0xF64, 0x1 + .incbin "baserom.nds", 0xF68, 0x1 + .incbin "baserom.nds", 0xF6C, 0x1 + .incbin "baserom.nds", 0xF70, 0x1 + .incbin "baserom.nds", 0xF74, 0x1 + .incbin "baserom.nds", 0xF78, 0x1 + .incbin "baserom.nds", 0xF7C, 0x1 + .incbin "baserom.nds", 0xF80, 0x1 + .incbin "baserom.nds", 0xF84, 0x1 + .incbin "baserom.nds", 0xF88, 0x1 + .incbin "baserom.nds", 0xF8C, 0x1 + .incbin "baserom.nds", 0xF90, 0x1 + .incbin "baserom.nds", 0xF94, 0x1 + .incbin "baserom.nds", 0xF98, 0x1 + .incbin "baserom.nds", 0xF9C, 0x1 + .incbin "baserom.nds", 0xFA0, 0x1 + .incbin "baserom.nds", 0xFA4, 0x1 + .incbin "baserom.nds", 0xFA8, 0x1 + .incbin "baserom.nds", 0xFAC, 0x1 + .incbin "baserom.nds", 0xFB0, 0x1 + .incbin "baserom.nds", 0xFB4, 0x1 + .incbin "baserom.nds", 0xFB8, 0x1 + .incbin "baserom.nds", 0xFBC, 0x1 + .incbin "baserom.nds", 0xFC0, 0x1 + .incbin "baserom.nds", 0xFC4, 0x1 + .incbin "baserom.nds", 0xFC8, 0x1 + .incbin "baserom.nds", 0xFCC, 0x1 + .incbin "baserom.nds", 0xFD0, 0x1 + .incbin "baserom.nds", 0xFD4, 0x1 + .incbin "baserom.nds", 0xFD8, 0x1 + .incbin "baserom.nds", 0xFDC, 0x1 + .incbin "baserom.nds", 0xFE0, 0x1 + .incbin "baserom.nds", 0xFE4, 0x1 + .incbin "baserom.nds", 0xFE8, 0x1 + .incbin "baserom.nds", 0xFEC, 0x1 + .incbin "baserom.nds", 0xFF0, 0x1 + .incbin "baserom.nds", 0xFF4, 0x1 + .incbin "baserom.nds", 0xFF8, 0x1 + .incbin "baserom.nds", 0xFFC, 0x1 + .incbin "baserom.nds", 0x1000, 0x1 + .incbin "baserom.nds", 0x1004, 0x1 + .incbin "baserom.nds", 0x1008, 0x1 + .incbin "baserom.nds", 0x100C, 0x1 + .incbin "baserom.nds", 0x1010, 0x1 + .incbin "baserom.nds", 0x1014, 0x1 + .incbin "baserom.nds", 0x1018, 0x1 + .incbin "baserom.nds", 0x101C, 0x1 + .incbin "baserom.nds", 0x1020, 0x1 + .incbin "baserom.nds", 0x1024, 0x1 + .incbin "baserom.nds", 0x1028, 0x1 + .incbin "baserom.nds", 0x102C, 0x1 + .incbin "baserom.nds", 0x1030, 0x1 + .incbin "baserom.nds", 0x1034, 0x1 + .incbin "baserom.nds", 0x1038, 0x1 + .incbin "baserom.nds", 0x103C, 0x1 + .incbin "baserom.nds", 0x1040, 0x1 + .incbin "baserom.nds", 0x1044, 0x1 + .incbin "baserom.nds", 0x1048, 0x1 + .incbin "baserom.nds", 0x104C, 0x1 + .incbin "baserom.nds", 0x1050, 0x1 + .incbin "baserom.nds", 0x1054, 0x1 + .incbin "baserom.nds", 0x1058, 0x1 + .incbin "baserom.nds", 0x105C, 0x1 + .incbin "baserom.nds", 0x1060, 0x1 + .incbin "baserom.nds", 0x1064, 0x1 + .incbin "baserom.nds", 0x1068, 0x1 + .incbin "baserom.nds", 0x106C, 0x1 + .incbin "baserom.nds", 0x1070, 0x1 + .incbin "baserom.nds", 0x1074, 0x1 + .incbin "baserom.nds", 0x1078, 0x1 + .incbin "baserom.nds", 0x107C, 0x1 + .incbin "baserom.nds", 0x1080, 0x1 + .incbin "baserom.nds", 0x1084, 0x1 + .incbin "baserom.nds", 0x1088, 0x1 + .incbin "baserom.nds", 0x108C, 0x1 + .incbin "baserom.nds", 0x1090, 0x1 + .incbin "baserom.nds", 0x1094, 0x1 + .incbin "baserom.nds", 0x1098, 0x1 + .incbin "baserom.nds", 0x109C, 0x1 + .incbin "baserom.nds", 0x10A0, 0x1 + .incbin "baserom.nds", 0x10A4, 0x1 + .incbin "baserom.nds", 0x10A8, 0x1 + .incbin "baserom.nds", 0x10AC, 0x1 + .incbin "baserom.nds", 0x10B0, 0x1 + .incbin "baserom.nds", 0x10B4, 0x1 + .incbin "baserom.nds", 0x10B8, 0x1 + .incbin "baserom.nds", 0x10BC, 0x1 + .incbin "baserom.nds", 0x10C0, 0x1 + .incbin "baserom.nds", 0x10C4, 0x1 + .incbin "baserom.nds", 0x10C8, 0x1 + .incbin "baserom.nds", 0x10CC, 0x1 + .incbin "baserom.nds", 0x10D0, 0x1 + .incbin "baserom.nds", 0x10D4, 0x1 + .incbin "baserom.nds", 0x10D8, 0x1 + .incbin "baserom.nds", 0x10DC, 0x1 + .incbin "baserom.nds", 0x10E0, 0x1 + .incbin "baserom.nds", 0x10E4, 0x1 + .incbin "baserom.nds", 0x10E8, 0x1 + .incbin "baserom.nds", 0x10EC, 0x1 + .incbin "baserom.nds", 0x10F0, 0x1 + .incbin "baserom.nds", 0x10F4, 0x1 + .incbin "baserom.nds", 0x10F8, 0x1 + .incbin "baserom.nds", 0x10FC, 0x1 + .incbin "baserom.nds", 0x1100, 0x1 + .incbin "baserom.nds", 0x1104, 0x1 + .incbin "baserom.nds", 0x1108, 0x1 + .incbin "baserom.nds", 0x110C, 0x1 + .incbin "baserom.nds", 0x1110, 0x0 + .incbin "baserom.nds", 0x1110, 0x1 + .incbin "baserom.nds", 0x1114, 0x0 + .incbin "baserom.nds", 0x1114, 0x1 + .incbin "baserom.nds", 0x1118, 0x1 + .incbin "baserom.nds", 0x111C, 0x1 + .incbin "baserom.nds", 0x1120, 0x1 + .incbin "baserom.nds", 0x1124, 0x1 + .incbin "baserom.nds", 0x1128, 0x1 + .incbin "baserom.nds", 0x112C, 0x1 + .incbin "baserom.nds", 0x1130, 0x1 + .incbin "baserom.nds", 0x1134, 0x1 + .incbin "baserom.nds", 0x1138, 0x1 + .incbin "baserom.nds", 0x113C, 0x1 + .incbin "baserom.nds", 0x1140, 0x1 + .incbin "baserom.nds", 0x1144, 0x1 + .incbin "baserom.nds", 0x1148, 0x1 + .incbin "baserom.nds", 0x114C, 0x1 + .incbin "baserom.nds", 0x1150, 0x1 + .incbin "baserom.nds", 0x1154, 0x1 + .incbin "baserom.nds", 0x1158, 0x1 + .incbin "baserom.nds", 0x115C, 0x1 + .incbin "baserom.nds", 0x1160, 0x1 + .incbin "baserom.nds", 0x1164, 0x1 + .incbin "baserom.nds", 0x1168, 0x1 + .incbin "baserom.nds", 0x116C, 0x1 + .incbin "baserom.nds", 0x1170, 0x1 + .incbin "baserom.nds", 0x1174, 0x1 + .incbin "baserom.nds", 0x1178, 0x1 + .incbin "baserom.nds", 0x117C, 0x1 + .incbin "baserom.nds", 0x1180, 0x1 + .incbin "baserom.nds", 0x1184, 0x1 + .incbin "baserom.nds", 0x1188, 0x1 + .incbin "baserom.nds", 0x118C, 0x1 + .incbin "baserom.nds", 0x1190, 0x1 + .incbin "baserom.nds", 0x1194, 0x1 + .incbin "baserom.nds", 0x1198, 0x1 + .incbin "baserom.nds", 0x119C, 0x1 + .incbin "baserom.nds", 0x11A0, 0x1 + .incbin "baserom.nds", 0x11A4, 0x1 + .incbin "baserom.nds", 0x11A8, 0x1 + .incbin "baserom.nds", 0x11AC, 0x1 + .incbin "baserom.nds", 0x11B0, 0x1 + .incbin "baserom.nds", 0x11B4, 0x1 + .incbin "baserom.nds", 0x11B8, 0x1 + .incbin "baserom.nds", 0x11BC, 0x1 + .incbin "baserom.nds", 0x11C0, 0x1 + .incbin "baserom.nds", 0x11C4, 0x1 + .incbin "baserom.nds", 0x11C8, 0x1 + .incbin "baserom.nds", 0x11CC, 0x1 + .incbin "baserom.nds", 0x11D0, 0x1 + .incbin "baserom.nds", 0x11D4, 0x1 + .incbin "baserom.nds", 0x11D8, 0x1 + .incbin "baserom.nds", 0x11DC, 0x1 + .incbin "baserom.nds", 0x11E0, 0x1 + .incbin "baserom.nds", 0x11E4, 0x1 + .incbin "baserom.nds", 0x11E8, 0x1 + .incbin "baserom.nds", 0x11EC, 0x1 + .incbin "baserom.nds", 0x11F0, 0x1 + .incbin "baserom.nds", 0x11F4, 0x1 + .incbin "baserom.nds", 0x11F8, 0x1 + .incbin "baserom.nds", 0x11FC, 0x1 + .incbin "baserom.nds", 0x1200, 0x1 + .incbin "baserom.nds", 0x1204, 0x1 + .incbin "baserom.nds", 0x1208, 0x1 + .incbin "baserom.nds", 0x120C, 0x1 + .incbin "baserom.nds", 0x1210, 0x1 + .incbin "baserom.nds", 0x1214, 0x1 + .incbin "baserom.nds", 0x1218, 0x1 + .incbin "baserom.nds", 0x121C, 0x1 + .incbin "baserom.nds", 0x1220, 0x1 + .incbin "baserom.nds", 0x1224, 0x1 + .incbin "baserom.nds", 0x1228, 0x1 + .incbin "baserom.nds", 0x122C, 0x1 + .incbin "baserom.nds", 0x1230, 0x1 + .incbin "baserom.nds", 0x1234, 0x1 + .incbin "baserom.nds", 0x1238, 0x1 + .incbin "baserom.nds", 0x123C, 0x1 + .incbin "baserom.nds", 0x1240, 0x1 + .incbin "baserom.nds", 0x1244, 0x1 + .incbin "baserom.nds", 0x1248, 0x1 + .incbin "baserom.nds", 0x124C, 0x1 + .incbin "baserom.nds", 0x1250, 0x1 + .incbin "baserom.nds", 0x1254, 0x1 + .incbin "baserom.nds", 0x1258, 0x0 + .incbin "baserom.nds", 0x1258, 0x1 + .incbin "baserom.nds", 0x125C, 0x0 + .incbin "baserom.nds", 0x125C, 0x1 + .incbin "baserom.nds", 0x1260, 0x1 + .incbin "baserom.nds", 0x1264, 0x0 + .incbin "baserom.nds", 0x1264, 0x1 + .incbin "baserom.nds", 0x1268, 0x0 + .incbin "baserom.nds", 0x1268, 0x1 + .incbin "baserom.nds", 0x126C, 0x1 + .incbin "baserom.nds", 0x1270, 0x1 + .incbin "baserom.nds", 0x1274, 0x1 + .incbin "baserom.nds", 0x1278, 0x1 + .incbin "baserom.nds", 0x127C, 0x1 + .incbin "baserom.nds", 0x1280, 0x1 + .incbin "baserom.nds", 0x1284, 0x1 + .incbin "baserom.nds", 0x1288, 0x1 + .incbin "baserom.nds", 0x128C, 0x1 + .incbin "baserom.nds", 0x1290, 0x1 + .incbin "baserom.nds", 0x1294, 0x1 + .incbin "baserom.nds", 0x1298, 0x1 + .incbin "baserom.nds", 0x129C, 0x1 + .incbin "baserom.nds", 0x12A0, 0x1 + .incbin "baserom.nds", 0x12A4, 0x1 + .incbin "baserom.nds", 0x12A8, 0x1 + .incbin "baserom.nds", 0x12AC, 0x1 + .incbin "baserom.nds", 0x12B0, 0x1 + .incbin "baserom.nds", 0x12B4, 0x1 + .incbin "baserom.nds", 0x12B8, 0x1 + .incbin "baserom.nds", 0x12BC, 0x1 + .incbin "baserom.nds", 0x12C0, 0x1 + .incbin "baserom.nds", 0x12C4, 0x1 + .incbin "baserom.nds", 0x12C8, 0x1 + .incbin "baserom.nds", 0x12CC, 0x1 + .incbin "baserom.nds", 0x12D0, 0x1 + .incbin "baserom.nds", 0x12D4, 0x1 + .incbin "baserom.nds", 0x12D8, 0x1 + .incbin "baserom.nds", 0x12DC, 0x1 + .incbin "baserom.nds", 0x12E0, 0x1 + .incbin "baserom.nds", 0x12E4, 0x1 + .incbin "baserom.nds", 0x12E8, 0x1 + .incbin "baserom.nds", 0x12EC, 0x1 + .incbin "baserom.nds", 0x12F0, 0x1 + .incbin "baserom.nds", 0x12F4, 0x1 + .incbin "baserom.nds", 0x12F8, 0x1 + .incbin "baserom.nds", 0x12FC, 0x1 + .incbin "baserom.nds", 0x1300, 0x1 + .incbin "baserom.nds", 0x1304, 0x1 + .incbin "baserom.nds", 0x1308, 0x1 + .incbin "baserom.nds", 0x130C, 0x1 + .incbin "baserom.nds", 0x1310, 0x1 + .incbin "baserom.nds", 0x1314, 0x1 + .incbin "baserom.nds", 0x1318, 0x1 + .incbin "baserom.nds", 0x131C, 0x1 + .incbin "baserom.nds", 0x1320, 0x1 + .incbin "baserom.nds", 0x1324, 0x1 + .incbin "baserom.nds", 0x1328, 0x1 + .incbin "baserom.nds", 0x132C, 0x1 + .incbin "baserom.nds", 0x1330, 0x1 + .incbin "baserom.nds", 0x1334, 0x1 + .incbin "baserom.nds", 0x1338, 0x1 + .incbin "baserom.nds", 0x133C, 0x1 + .incbin "baserom.nds", 0x1340, 0x1 + .incbin "baserom.nds", 0x1344, 0x1 + .incbin "baserom.nds", 0x1348, 0x1 + .incbin "baserom.nds", 0x134C, 0x1 + .incbin "baserom.nds", 0x1350, 0x1 + .incbin "baserom.nds", 0x1354, 0x1 + .incbin "baserom.nds", 0x1358, 0x1 + .incbin "baserom.nds", 0x135C, 0x1 + .incbin "baserom.nds", 0x1360, 0x1 + .incbin "baserom.nds", 0x1364, 0x1 + .incbin "baserom.nds", 0x1368, 0x1 + .incbin "baserom.nds", 0x136C, 0x1 + .incbin "baserom.nds", 0x1370, 0x1 + .incbin "baserom.nds", 0x1374, 0x1 + .incbin "baserom.nds", 0x1378, 0x1 + .incbin "baserom.nds", 0x137C, 0x1 + .incbin "baserom.nds", 0x1380, 0x1 + .incbin "baserom.nds", 0x1384, 0x1 + .incbin "baserom.nds", 0x1388, 0x1 + .incbin "baserom.nds", 0x138C, 0x1 + .incbin "baserom.nds", 0x1390, 0x1 + .incbin "baserom.nds", 0x1394, 0x1 + .incbin "baserom.nds", 0x1398, 0x1 + .incbin "baserom.nds", 0x139C, 0x1 + .incbin "baserom.nds", 0x13A0, 0x1 + .incbin "baserom.nds", 0x13A4, 0x1 + .incbin "baserom.nds", 0x13A8, 0x1 + .incbin "baserom.nds", 0x13AC, 0x1 + .incbin "baserom.nds", 0x13B0, 0x1 + .incbin "baserom.nds", 0x13B4, 0x1 + .incbin "baserom.nds", 0x13B8, 0x1 + .incbin "baserom.nds", 0x13BC, 0x1 + .incbin "baserom.nds", 0x13C0, 0x1 + .incbin "baserom.nds", 0x13C4, 0x1 + .incbin "baserom.nds", 0x13C8, 0x0 + .incbin "baserom.nds", 0x13C8, 0x1 + .incbin "baserom.nds", 0x13CC, 0x0 + .incbin "baserom.nds", 0x13CC, 0x1 + .incbin "baserom.nds", 0x13D0, 0x0 + .incbin "baserom.nds", 0x13D0, 0x1 + .incbin "baserom.nds", 0x13D4, 0x0 + .incbin "baserom.nds", 0x13D4, 0x1 + .incbin "baserom.nds", 0x13D8, 0x1 + .incbin "baserom.nds", 0x13DC, 0x1 + .incbin "baserom.nds", 0x13E0, 0x1 + .incbin "baserom.nds", 0x13E4, 0x1 + .incbin "baserom.nds", 0x13E8, 0x1 + .incbin "baserom.nds", 0x13EC, 0x1 + .incbin "baserom.nds", 0x13F0, 0x1 + .incbin "baserom.nds", 0x13F4, 0x1 + .incbin "baserom.nds", 0x13F8, 0x1 + .incbin "baserom.nds", 0x13FC, 0x1 + .incbin "baserom.nds", 0x1400, 0x1 + .incbin "baserom.nds", 0x1404, 0x1 + .incbin "baserom.nds", 0x1408, 0x1 + .incbin "baserom.nds", 0x140C, 0x1 + .incbin "baserom.nds", 0x1410, 0x1 + .incbin "baserom.nds", 0x1414, 0x1 + .incbin "baserom.nds", 0x1418, 0x0 + .incbin "baserom.nds", 0x1418, 0x1 + .incbin "baserom.nds", 0x141C, 0x0 + .incbin "baserom.nds", 0x141C, 0x1 + .incbin "baserom.nds", 0x1420, 0x0 + .incbin "baserom.nds", 0x1420, 0x1 + .incbin "baserom.nds", 0x1424, 0x0 + .incbin "baserom.nds", 0x1424, 0x1 + .incbin "baserom.nds", 0x1428, 0x1 + .incbin "baserom.nds", 0x142C, 0x1 + .incbin "baserom.nds", 0x1430, 0x1 + .incbin "baserom.nds", 0x1434, 0x1 + .incbin "baserom.nds", 0x1438, 0x1 + .incbin "baserom.nds", 0x143C, 0x1 + .incbin "baserom.nds", 0x1440, 0x1 + .incbin "baserom.nds", 0x1444, 0x1 + .incbin "baserom.nds", 0x1448, 0x1 + .incbin "baserom.nds", 0x144C, 0x1 + .incbin "baserom.nds", 0x1450, 0x1 + .incbin "baserom.nds", 0x1454, 0x1 + .incbin "baserom.nds", 0x1458, 0x1 + .incbin "baserom.nds", 0x145C, 0x1 + .incbin "baserom.nds", 0x1460, 0x1 + .incbin "baserom.nds", 0x1464, 0x1 + .incbin "baserom.nds", 0x1468, 0x1 + .incbin "baserom.nds", 0x146C, 0x1 + .incbin "baserom.nds", 0x1470, 0x1 + .incbin "baserom.nds", 0x1474, 0x1 + .incbin "baserom.nds", 0x1478, 0x1 + .incbin "baserom.nds", 0x147C, 0x1 + .incbin "baserom.nds", 0x1480, 0x1 + .incbin "baserom.nds", 0x1484, 0x1 + .incbin "baserom.nds", 0x1488, 0x1 + .incbin "baserom.nds", 0x148C, 0x1 + .incbin "baserom.nds", 0x1490, 0x1 + .incbin "baserom.nds", 0x1494, 0x1 + .incbin "baserom.nds", 0x1498, 0x1 + .incbin "baserom.nds", 0x149C, 0x1 + .incbin "baserom.nds", 0x14A0, 0x1 + .incbin "baserom.nds", 0x14A4, 0x1 + .incbin "baserom.nds", 0x14A8, 0x1 + .incbin "baserom.nds", 0x14AC, 0x1 + .incbin "baserom.nds", 0x14B0, 0x1 + .incbin "baserom.nds", 0x14B4, 0x1 + .incbin "baserom.nds", 0x14B8, 0x1 + .incbin "baserom.nds", 0x14BC, 0x1 + .incbin "baserom.nds", 0x14C0, 0x1 + .incbin "baserom.nds", 0x14C4, 0x1 + .incbin "baserom.nds", 0x14C8, 0x1 + .incbin "baserom.nds", 0x14CC, 0x1 + .incbin "baserom.nds", 0x14D0, 0x1 + .incbin "baserom.nds", 0x14D4, 0x1 + .incbin "baserom.nds", 0x14D8, 0x1 + .incbin "baserom.nds", 0x14DC, 0x1 + .incbin "baserom.nds", 0x14E0, 0x1 + .incbin "baserom.nds", 0x14E4, 0x1 + .incbin "baserom.nds", 0x14E8, 0x1 + .incbin "baserom.nds", 0x14EC, 0x1 + .incbin "baserom.nds", 0x14F0, 0x1 + .incbin "baserom.nds", 0x14F4, 0x1 + .incbin "baserom.nds", 0x14F8, 0x1 + .incbin "baserom.nds", 0x14FC, 0x1 + .incbin "baserom.nds", 0x1500, 0x1 + .incbin "baserom.nds", 0x1504, 0x1 + .incbin "baserom.nds", 0x1508, 0x1 + .incbin "baserom.nds", 0x150C, 0x1 + .incbin "baserom.nds", 0x1510, 0x1 + .incbin "baserom.nds", 0x1514, 0x1 + .incbin "baserom.nds", 0x1518, 0x1 + .incbin "baserom.nds", 0x151C, 0x1 + .incbin "baserom.nds", 0x1520, 0x1 + .incbin "baserom.nds", 0x1524, 0x1 + .incbin "baserom.nds", 0x1528, 0x1 + .incbin "baserom.nds", 0x152C, 0x1 + .incbin "baserom.nds", 0x1530, 0x1 + .incbin "baserom.nds", 0x1534, 0x1 + .incbin "baserom.nds", 0x1538, 0x1 + .incbin "baserom.nds", 0x153C, 0x1 + .incbin "baserom.nds", 0x1540, 0x1 + .incbin "baserom.nds", 0x1544, 0x1 + .incbin "baserom.nds", 0x1548, 0x1 + .incbin "baserom.nds", 0x154C, 0x1 + .incbin "baserom.nds", 0x1550, 0x1 + .incbin "baserom.nds", 0x1554, 0x1 + .incbin "baserom.nds", 0x1558, 0x1 + .incbin "baserom.nds", 0x155C, 0x1 + .incbin "baserom.nds", 0x1560, 0x1 + .incbin "baserom.nds", 0x1564, 0x1 + .incbin "baserom.nds", 0x1568, 0x1 + .incbin "baserom.nds", 0x156C, 0x1 + .incbin "baserom.nds", 0x1570, 0x1 + .incbin "baserom.nds", 0x1574, 0x1 + .incbin "baserom.nds", 0x1578, 0x1 + .incbin "baserom.nds", 0x157C, 0x1 + .incbin "baserom.nds", 0x1580, 0x1 + .incbin "baserom.nds", 0x1584, 0x1 + .incbin "baserom.nds", 0x1588, 0x1 + .incbin "baserom.nds", 0x158C, 0x1 + .incbin "baserom.nds", 0x1590, 0x1 + .incbin "baserom.nds", 0x1594, 0x1 + .incbin "baserom.nds", 0x1598, 0x1 + .incbin "baserom.nds", 0x159C, 0x1 + .incbin "baserom.nds", 0x15A0, 0x1 + .incbin "baserom.nds", 0x15A4, 0x1 + .incbin "baserom.nds", 0x15A8, 0x1 + .incbin "baserom.nds", 0x15AC, 0x1 + .incbin "baserom.nds", 0x15B0, 0x1 + .incbin "baserom.nds", 0x15B4, 0x1 + .incbin "baserom.nds", 0x15B8, 0x1 + .incbin "baserom.nds", 0x15BC, 0x1 + .incbin "baserom.nds", 0x15C0, 0x1 + .incbin "baserom.nds", 0x15C4, 0x1 + .incbin "baserom.nds", 0x15C8, 0x1 + .incbin "baserom.nds", 0x15CC, 0x1 + .incbin "baserom.nds", 0x15D0, 0x1 + .incbin "baserom.nds", 0x15D4, 0x1 + .incbin "baserom.nds", 0x15D8, 0x1 + .incbin "baserom.nds", 0x15DC, 0x1 + .incbin "baserom.nds", 0x15E0, 0x1 + .incbin "baserom.nds", 0x15E4, 0x1 + .incbin "baserom.nds", 0x15E8, 0x1 + .incbin "baserom.nds", 0x15EC, 0x1 + .incbin "baserom.nds", 0x15F0, 0x1 + .incbin "baserom.nds", 0x15F4, 0x1 + .incbin "baserom.nds", 0x15F8, 0x0 + .incbin "baserom.nds", 0x15F8, 0x1 + .incbin "baserom.nds", 0x15FC, 0x0 + .incbin "baserom.nds", 0x15FC, 0x1 + .incbin "baserom.nds", 0x1600, 0x0 + .incbin "baserom.nds", 0x1600, 0x1 + .incbin "baserom.nds", 0x1604, 0x0 + .incbin "baserom.nds", 0x1604, 0x1 + .incbin "baserom.nds", 0x1608, 0x0 + .incbin "baserom.nds", 0x1608, 0x1 + .incbin "baserom.nds", 0x160C, 0x0 + .incbin "baserom.nds", 0x160C, 0x1 + .incbin "baserom.nds", 0x1610, 0x0 + .incbin "baserom.nds", 0x1610, 0x1 + .incbin "baserom.nds", 0x1614, 0x0 + .incbin "baserom.nds", 0x1614, 0x1 + .incbin "baserom.nds", 0x1618, 0x0 + .incbin "baserom.nds", 0x1618, 0x1 + .incbin "baserom.nds", 0x161C, 0x0 + .incbin "baserom.nds", 0x161C, 0x1 + .incbin "baserom.nds", 0x1620, 0x0 + .incbin "baserom.nds", 0x1620, 0x1 + .incbin "baserom.nds", 0x1624, 0x0 + .incbin "baserom.nds", 0x1624, 0x1 + .incbin "baserom.nds", 0x1628, 0x1 + .incbin "baserom.nds", 0x162C, 0x0 + .incbin "baserom.nds", 0x162C, 0x1 + .incbin "baserom.nds", 0x1630, 0x0 + .incbin "baserom.nds", 0x1630, 0x0 + .incbin "baserom.nds", 0x1630, 0x1 + .incbin "baserom.nds", 0x1634, 0x0 + .incbin "baserom.nds", 0x1634, 0x1 + .incbin "baserom.nds", 0x1638, 0x0 + .incbin "baserom.nds", 0x1638, 0x1 + .incbin "baserom.nds", 0x163C, 0x0 + .incbin "baserom.nds", 0x163C, 0x1 + .incbin "baserom.nds", 0x1640, 0x0 + .incbin "baserom.nds", 0x1640, 0x1 + .incbin "baserom.nds", 0x1644, 0x0 + .incbin "baserom.nds", 0x1644, 0x1 + .incbin "baserom.nds", 0x1648, 0x0 + .incbin "baserom.nds", 0x1648, 0x1 + .incbin "baserom.nds", 0x164C, 0x0 + .incbin "baserom.nds", 0x164C, 0x1 + .incbin "baserom.nds", 0x1650, 0x0 + .incbin "baserom.nds", 0x1650, 0x1 + .incbin "baserom.nds", 0x1654, 0x0 + .incbin "baserom.nds", 0x1654, 0x1 + .incbin "baserom.nds", 0x1658, 0x0 + .incbin "baserom.nds", 0x1658, 0x1 + .incbin "baserom.nds", 0x165C, 0x0 + .incbin "baserom.nds", 0x165C, 0x1 + .incbin "baserom.nds", 0x1660, 0x1 + .incbin "baserom.nds", 0x1664, 0x1 + .incbin "baserom.nds", 0x1668, 0x1 + .incbin "baserom.nds", 0x166C, 0x1 + .incbin "baserom.nds", 0x1670, 0x1 + .incbin "baserom.nds", 0x1674, 0x1 + .incbin "baserom.nds", 0x1678, 0x1 + .incbin "baserom.nds", 0x167C, 0x1 + .incbin "baserom.nds", 0x1680, 0x1 + .incbin "baserom.nds", 0x1684, 0x1 + .incbin "baserom.nds", 0x1688, 0x1 + .incbin "baserom.nds", 0x168C, 0x1 + .incbin "baserom.nds", 0x1690, 0x1 + .incbin "baserom.nds", 0x1694, 0x1 + .incbin "baserom.nds", 0x1698, 0x1 + .incbin "baserom.nds", 0x169C, 0x1 + .incbin "baserom.nds", 0x16A0, 0x1 + .incbin "baserom.nds", 0x16A4, 0x1 + .incbin "baserom.nds", 0x16A8, 0x1 + .incbin "baserom.nds", 0x16AC, 0x1 + .incbin "baserom.nds", 0x16B0, 0x1 + .incbin "baserom.nds", 0x16B4, 0x1 + .incbin "baserom.nds", 0x16B8, 0x1 + .incbin "baserom.nds", 0x16BC, 0x1 + .incbin "baserom.nds", 0x16C0, 0x1 + .incbin "baserom.nds", 0x16C4, 0x1 + .incbin "baserom.nds", 0x16C8, 0x1 + .incbin "baserom.nds", 0x16CC, 0x1 + .incbin "baserom.nds", 0x16D0, 0x1 + .incbin "baserom.nds", 0x16D4, 0x1 + .incbin "baserom.nds", 0x16D8, 0x1 + .incbin "baserom.nds", 0x16DC, 0x1 + .incbin "baserom.nds", 0x16E0, 0x1 + .incbin "baserom.nds", 0x16E4, 0x1 + .incbin "baserom.nds", 0x16E8, 0x1 + .incbin "baserom.nds", 0x16EC, 0x1 + .incbin "baserom.nds", 0x16F0, 0x1 + .incbin "baserom.nds", 0x16F4, 0x1 + .incbin "baserom.nds", 0x16F8, 0x1 + .incbin "baserom.nds", 0x16FC, 0x1 + .incbin "baserom.nds", 0x1700, 0x1 + .incbin "baserom.nds", 0x1704, 0x1 + .incbin "baserom.nds", 0x1708, 0x1 + .incbin "baserom.nds", 0x170C, 0x1 + .incbin "baserom.nds", 0x1710, 0x1 + .incbin "baserom.nds", 0x1714, 0x1 + .incbin "baserom.nds", 0x1718, 0x1 + .incbin "baserom.nds", 0x171C, 0x1 + .incbin "baserom.nds", 0x1720, 0x1 + .incbin "baserom.nds", 0x1724, 0x1 + .incbin "baserom.nds", 0x1728, 0x1 + .incbin "baserom.nds", 0x172C, 0x1 + .incbin "baserom.nds", 0x1730, 0x1 + .incbin "baserom.nds", 0x1734, 0x1 + .incbin "baserom.nds", 0x1738, 0x1 + .incbin "baserom.nds", 0x173C, 0x1 + .incbin "baserom.nds", 0x1740, 0x1 + .incbin "baserom.nds", 0x1744, 0x1 + .incbin "baserom.nds", 0x1748, 0x1 + .incbin "baserom.nds", 0x174C, 0x1 + .incbin "baserom.nds", 0x1750, 0x1 + .incbin "baserom.nds", 0x1754, 0x1 + .incbin "baserom.nds", 0x1758, 0x1 + .incbin "baserom.nds", 0x175C, 0x1 + .incbin "baserom.nds", 0x1760, 0x1 + .incbin "baserom.nds", 0x1764, 0x1 + .incbin "baserom.nds", 0x1768, 0x1 + .incbin "baserom.nds", 0x176C, 0x1 + .incbin "baserom.nds", 0x1770, 0x1 + .incbin "baserom.nds", 0x1774, 0x1 + .incbin "baserom.nds", 0x1778, 0x1 + .incbin "baserom.nds", 0x177C, 0x1 + .incbin "baserom.nds", 0x1780, 0x1 + .incbin "baserom.nds", 0x1784, 0x1 + .incbin "baserom.nds", 0x1788, 0x1 + .incbin "baserom.nds", 0x178C, 0x1 + .incbin "baserom.nds", 0x1790, 0x1 + .incbin "baserom.nds", 0x1794, 0x1 + .incbin "baserom.nds", 0x1798, 0x1 + .incbin "baserom.nds", 0x179C, 0x1 + .incbin "baserom.nds", 0x17A0, 0x1 + .incbin "baserom.nds", 0x17A4, 0x1 + .incbin "baserom.nds", 0x17A8, 0x1 + .incbin "baserom.nds", 0x17AC, 0x1 + .incbin "baserom.nds", 0x17B0, 0x1 + .incbin "baserom.nds", 0x17B4, 0x1 + .incbin "baserom.nds", 0x17B8, 0x1 + .incbin "baserom.nds", 0x17BC, 0x1 + .incbin "baserom.nds", 0x17C0, 0x1 + .incbin "baserom.nds", 0x17C4, 0x1 + .incbin "baserom.nds", 0x17C8, 0x1 + .incbin "baserom.nds", 0x17CC, 0x1 + .incbin "baserom.nds", 0x17D0, 0x1 + .incbin "baserom.nds", 0x17D4, 0x1 + .incbin "baserom.nds", 0x17D8, 0x1 + .incbin "baserom.nds", 0x17DC, 0x1 + .incbin "baserom.nds", 0x17E0, 0x1 + .incbin "baserom.nds", 0x17E4, 0x1 + .incbin "baserom.nds", 0x17E8, 0x1 + .incbin "baserom.nds", 0x17EC, 0x1 + .incbin "baserom.nds", 0x17F0, 0x1 + .incbin "baserom.nds", 0x17F4, 0x1 + .incbin "baserom.nds", 0x17F8, 0x1 + .incbin "baserom.nds", 0x17FC, 0x1 + .incbin "baserom.nds", 0x1800, 0x1 + .incbin "baserom.nds", 0x1804, 0x0 + .incbin "baserom.nds", 0x1804, 0x1 + .incbin "baserom.nds", 0x1808, 0x0 + .incbin "baserom.nds", 0x1808, 0x0 + .incbin "baserom.nds", 0x1808, 0x1 + .incbin "baserom.nds", 0x180C, 0x0 + .incbin "baserom.nds", 0x180C, 0x1 + .incbin "baserom.nds", 0x1810, 0x1 + .incbin "baserom.nds", 0x1814, 0x1 + .incbin "baserom.nds", 0x1818, 0x1 + .incbin "baserom.nds", 0x181C, 0x1 + .incbin "baserom.nds", 0x1820, 0x1 + .incbin "baserom.nds", 0x1824, 0x0 + .incbin "baserom.nds", 0x1824, 0x1 + .incbin "baserom.nds", 0x1828, 0x0 + .incbin "baserom.nds", 0x1828, 0x1 + .incbin "baserom.nds", 0x182C, 0x1 + .incbin "baserom.nds", 0x1830, 0x1 + .incbin "baserom.nds", 0x1834, 0x1 + .incbin "baserom.nds", 0x1838, 0x1 + .incbin "baserom.nds", 0x183C, 0x1 + .incbin "baserom.nds", 0x1840, 0x1 + .incbin "baserom.nds", 0x1844, 0x1 + .incbin "baserom.nds", 0x1848, 0x1 + .incbin "baserom.nds", 0x184C, 0x1 + .incbin "baserom.nds", 0x1850, 0x1 + .incbin "baserom.nds", 0x1854, 0x1 + .incbin "baserom.nds", 0x1858, 0x1 + .incbin "baserom.nds", 0x185C, 0x1 + .incbin "baserom.nds", 0x1860, 0x1 + .incbin "baserom.nds", 0x1864, 0x1 + .incbin "baserom.nds", 0x1868, 0x1 + .incbin "baserom.nds", 0x186C, 0x1 + .incbin "baserom.nds", 0x1870, 0x1 + .incbin "baserom.nds", 0x1874, 0x1 + .incbin "baserom.nds", 0x1878, 0x1 + .incbin "baserom.nds", 0x187C, 0x1 + .incbin "baserom.nds", 0x1880, 0x1 + .incbin "baserom.nds", 0x1884, 0x1 + .incbin "baserom.nds", 0x1888, 0x1 + .incbin "baserom.nds", 0x188C, 0x1 + .incbin "baserom.nds", 0x1890, 0x1 + .incbin "baserom.nds", 0x1894, 0x1 + .incbin "baserom.nds", 0x1898, 0x1 + .incbin "baserom.nds", 0x189C, 0x1 + .incbin "baserom.nds", 0x18A0, 0x1 + .incbin "baserom.nds", 0x18A4, 0x1 + .incbin "baserom.nds", 0x18A8, 0x1 + .incbin "baserom.nds", 0x18AC, 0x1 + .incbin "baserom.nds", 0x18B0, 0x1 + .incbin "baserom.nds", 0x18B4, 0x1 + .incbin "baserom.nds", 0x18B8, 0x1 + .incbin "baserom.nds", 0x18BC, 0x1 + .incbin "baserom.nds", 0x18C0, 0x1 + .incbin "baserom.nds", 0x18C4, 0x1 + .incbin "baserom.nds", 0x18C8, 0x1 + .incbin "baserom.nds", 0x18CC, 0x1 + .incbin "baserom.nds", 0x18D0, 0x1 + .incbin "baserom.nds", 0x18D4, 0x1 + .incbin "baserom.nds", 0x18D8, 0x1 + .incbin "baserom.nds", 0x18DC, 0x1 + .incbin "baserom.nds", 0x18E0, 0x1 + .incbin "baserom.nds", 0x18E4, 0x1 + .incbin "baserom.nds", 0x18E8, 0x1 + .incbin "baserom.nds", 0x18EC, 0x1 + .incbin "baserom.nds", 0x18F0, 0x1 + .incbin "baserom.nds", 0x18F4, 0x1 + .incbin "baserom.nds", 0x18F8, 0x1 + .incbin "baserom.nds", 0x18FC, 0x1 + .incbin "baserom.nds", 0x1900, 0x1 + .incbin "baserom.nds", 0x1904, 0x1 + .incbin "baserom.nds", 0x1908, 0x1 + .incbin "baserom.nds", 0x190C, 0x1 + .incbin "baserom.nds", 0x1910, 0x1 + .incbin "baserom.nds", 0x1914, 0x1 + .incbin "baserom.nds", 0x1918, 0x1 + .incbin "baserom.nds", 0x191C, 0x1 + .incbin "baserom.nds", 0x1920, 0x1 + .incbin "baserom.nds", 0x1924, 0x1 + .incbin "baserom.nds", 0x1928, 0x1 + .incbin "baserom.nds", 0x192C, 0x1 + .incbin "baserom.nds", 0x1930, 0x1 + .incbin "baserom.nds", 0x1934, 0x1 + .incbin "baserom.nds", 0x1938, 0x1 + .incbin "baserom.nds", 0x193C, 0x1 + .incbin "baserom.nds", 0x1940, 0x1 + .incbin "baserom.nds", 0x1944, 0x1 + .incbin "baserom.nds", 0x1948, 0x1 + .incbin "baserom.nds", 0x194C, 0x1 + .incbin "baserom.nds", 0x1950, 0x1 + .incbin "baserom.nds", 0x1954, 0x1 + .incbin "baserom.nds", 0x1958, 0x0 + .incbin "baserom.nds", 0x1958, 0x1 + .incbin "baserom.nds", 0x195C, 0x0 + .incbin "baserom.nds", 0x195C, 0x1 + .incbin "baserom.nds", 0x1960, 0x0 + .incbin "baserom.nds", 0x1960, 0x1 + .incbin "baserom.nds", 0x1964, 0x0 + .incbin "baserom.nds", 0x1964, 0x1 + .incbin "baserom.nds", 0x1968, 0x1 + .incbin "baserom.nds", 0x196C, 0x1 + .incbin "baserom.nds", 0x1970, 0x1 + .incbin "baserom.nds", 0x1974, 0x1 + .incbin "baserom.nds", 0x1978, 0x1 + .incbin "baserom.nds", 0x197C, 0x1 + .incbin "baserom.nds", 0x1980, 0x1 + .incbin "baserom.nds", 0x1984, 0x1 + .incbin "baserom.nds", 0x1988, 0x1 + .incbin "baserom.nds", 0x198C, 0x0 + .incbin "baserom.nds", 0x198C, 0x1 + .incbin "baserom.nds", 0x1990, 0x0 + .incbin "baserom.nds", 0x1990, 0x1 + .incbin "baserom.nds", 0x1994, 0x1 + .incbin "baserom.nds", 0x1998, 0x1 + .incbin "baserom.nds", 0x199C, 0x1 + .incbin "baserom.nds", 0x19A0, 0x1 + .incbin "baserom.nds", 0x19A4, 0x1 + .incbin "baserom.nds", 0x19A8, 0x1 + .incbin "baserom.nds", 0x19AC, 0x1 + .incbin "baserom.nds", 0x19B0, 0x1 + .incbin "baserom.nds", 0x19B4, 0x1 + .incbin "baserom.nds", 0x19B8, 0x1 + .incbin "baserom.nds", 0x19BC, 0x1 + .incbin "baserom.nds", 0x19C0, 0x1 + .incbin "baserom.nds", 0x19C4, 0x1 + .incbin "baserom.nds", 0x19C8, 0x1 + .incbin "baserom.nds", 0x19CC, 0x1 + .incbin "baserom.nds", 0x19D0, 0x1 + .incbin "baserom.nds", 0x19D4, 0x1 + .incbin "baserom.nds", 0x19D8, 0x1 + .incbin "baserom.nds", 0x19DC, 0x1 + .incbin "baserom.nds", 0x19E0, 0x1 + .incbin "baserom.nds", 0x19E4, 0x1 + .incbin "baserom.nds", 0x19E8, 0x1 + .incbin "baserom.nds", 0x19EC, 0x1 + .incbin "baserom.nds", 0x19F0, 0x1 + .incbin "baserom.nds", 0x19F4, 0x1 + .incbin "baserom.nds", 0x19F8, 0x1 + .incbin "baserom.nds", 0x19FC, 0x1 + .incbin "baserom.nds", 0x1A00, 0x1 + .incbin "baserom.nds", 0x1A04, 0x1 + .incbin "baserom.nds", 0x1A08, 0x1 + .incbin "baserom.nds", 0x1A0C, 0x1 + .incbin "baserom.nds", 0x1A10, 0x1 + .incbin "baserom.nds", 0x1A14, 0x1 + .incbin "baserom.nds", 0x1A18, 0x1 + .incbin "baserom.nds", 0x1A1C, 0x1 + .incbin "baserom.nds", 0x1A20, 0x1 + .incbin "baserom.nds", 0x1A24, 0x1 + .incbin "baserom.nds", 0x1A28, 0x1 + .incbin "baserom.nds", 0x1A2C, 0x1 + .incbin "baserom.nds", 0x1A30, 0x1 + .incbin "baserom.nds", 0x1A34, 0x1 + .incbin "baserom.nds", 0x1A38, 0x1 + .incbin "baserom.nds", 0x1A3C, 0x1 + .incbin "baserom.nds", 0x1A40, 0x1 + .incbin "baserom.nds", 0x1A44, 0x1 + .incbin "baserom.nds", 0x1A48, 0x1 + .incbin "baserom.nds", 0x1A4C, 0x1 + .incbin "baserom.nds", 0x1A50, 0x1 + .incbin "baserom.nds", 0x1A54, 0x1 + .incbin "baserom.nds", 0x1A58, 0x1 + .incbin "baserom.nds", 0x1A5C, 0x1 + .incbin "baserom.nds", 0x1A60, 0x1 + .incbin "baserom.nds", 0x1A64, 0x1 + .incbin "baserom.nds", 0x1A68, 0x1 + .incbin "baserom.nds", 0x1A6C, 0x1 + .incbin "baserom.nds", 0x1A70, 0x1 + .incbin "baserom.nds", 0x1A74, 0x1 + .incbin "baserom.nds", 0x1A78, 0x1 + .incbin "baserom.nds", 0x1A7C, 0x1 + .incbin "baserom.nds", 0x1A80, 0x1 + .incbin "baserom.nds", 0x1A84, 0x1 + .incbin "baserom.nds", 0x1A88, 0x1 + .incbin "baserom.nds", 0x1A8C, 0x1 + .incbin "baserom.nds", 0x1A90, 0x1 + .incbin "baserom.nds", 0x1A94, 0x1 + .incbin "baserom.nds", 0x1A98, 0x1 + .incbin "baserom.nds", 0x1A9C, 0x1 + .incbin "baserom.nds", 0x1AA0, 0x1 + .incbin "baserom.nds", 0x1AA4, 0x1 + .incbin "baserom.nds", 0x1AA8, 0x1 + .incbin "baserom.nds", 0x1AAC, 0x1 + .incbin "baserom.nds", 0x1AB0, 0x1 + .incbin "baserom.nds", 0x1AB4, 0x1 + .incbin "baserom.nds", 0x1AB8, 0x1 + .incbin "baserom.nds", 0x1ABC, 0x1 + .incbin "baserom.nds", 0x1AC0, 0x1 + .incbin "baserom.nds", 0x1AC4, 0x1 + .incbin "baserom.nds", 0x1AC8, 0x1 + .incbin "baserom.nds", 0x1ACC, 0x1 + .incbin "baserom.nds", 0x1AD0, 0x1 + .incbin "baserom.nds", 0x1AD4, 0x1 + .incbin "baserom.nds", 0x1AD8, 0x1 + .incbin "baserom.nds", 0x1ADC, 0x1 + .incbin "baserom.nds", 0x1AE0, 0x0 + .incbin "baserom.nds", 0x1AE0, 0x1 + .incbin "baserom.nds", 0x1AE4, 0x0 + .incbin "baserom.nds", 0x1AE4, 0x1 + .incbin "baserom.nds", 0x1AE8, 0x1 + .incbin "baserom.nds", 0x1AEC, 0x1 + .incbin "baserom.nds", 0x1AF0, 0x1 + .incbin "baserom.nds", 0x1AF4, 0x1 + .incbin "baserom.nds", 0x1AF8, 0x1 + .incbin "baserom.nds", 0x1AFC, 0x1 + .incbin "baserom.nds", 0x1B00, 0x1 + .incbin "baserom.nds", 0x1B04, 0x1 + .incbin "baserom.nds", 0x1B08, 0x1 + .incbin "baserom.nds", 0x1B0C, 0x1 + .incbin "baserom.nds", 0x1B10, 0x1 + .incbin "baserom.nds", 0x1B14, 0x1 + .incbin "baserom.nds", 0x1B18, 0x1 + .incbin "baserom.nds", 0x1B1C, 0x1 + .incbin "baserom.nds", 0x1B20, 0x1 + .incbin "baserom.nds", 0x1B24, 0x1 + .incbin "baserom.nds", 0x1B28, 0x1 + .incbin "baserom.nds", 0x1B2C, 0x1 + .incbin "baserom.nds", 0x1B30, 0x1 + .incbin "baserom.nds", 0x1B34, 0x1 + .incbin "baserom.nds", 0x1B38, 0x1 + .incbin "baserom.nds", 0x1B3C, 0x1 + .incbin "baserom.nds", 0x1B40, 0x1 + .incbin "baserom.nds", 0x1B44, 0x1 + .incbin "baserom.nds", 0x1B48, 0x1 + .incbin "baserom.nds", 0x1B4C, 0x1 + .incbin "baserom.nds", 0x1B50, 0x1 + .incbin "baserom.nds", 0x1B54, 0x1 + .incbin "baserom.nds", 0x1B58, 0x1 + .incbin "baserom.nds", 0x1B5C, 0x1 + .incbin "baserom.nds", 0x1B60, 0x1 + .incbin "baserom.nds", 0x1B64, 0x1 + .incbin "baserom.nds", 0x1B68, 0x1 + .incbin "baserom.nds", 0x1B6C, 0x1 + .incbin "baserom.nds", 0x1B70, 0x1 + .incbin "baserom.nds", 0x1B74, 0x1 + .incbin "baserom.nds", 0x1B78, 0x1 + .incbin "baserom.nds", 0x1B7C, 0x1 + .incbin "baserom.nds", 0x1B80, 0x1 + .incbin "baserom.nds", 0x1B84, 0x1 + .incbin "baserom.nds", 0x1B88, 0x1 + .incbin "baserom.nds", 0x1B8C, 0x1 + .incbin "baserom.nds", 0x1B90, 0x1 + .incbin "baserom.nds", 0x1B94, 0x1 + .incbin "baserom.nds", 0x1B98, 0x0 + .incbin "baserom.nds", 0x1B98, 0x1 + .incbin "baserom.nds", 0x1B9C, 0x0 + .incbin "baserom.nds", 0x1B9C, 0x1 + .incbin "baserom.nds", 0x1BA0, 0x0 + .incbin "baserom.nds", 0x1BA0, 0x1 + .incbin "baserom.nds", 0x1BA4, 0x0 + .incbin "baserom.nds", 0x1BA4, 0x1 + .incbin "baserom.nds", 0x1BA8, 0x1 + .incbin "baserom.nds", 0x1BAC, 0x1 + .incbin "baserom.nds", 0x1BB0, 0x1 + .incbin "baserom.nds", 0x1BB4, 0x1 + .incbin "baserom.nds", 0x1BB8, 0x1 + .incbin "baserom.nds", 0x1BBC, 0x1 + .incbin "baserom.nds", 0x1BC0, 0x1 + .incbin "baserom.nds", 0x1BC4, 0x1 + .incbin "baserom.nds", 0x1BC8, 0x1 + .incbin "baserom.nds", 0x1BCC, 0x0 + .incbin "baserom.nds", 0x1BCC, 0x1 + .incbin "baserom.nds", 0x1BD0, 0x0 + .incbin "baserom.nds", 0x1BD0, 0x0 + .incbin "baserom.nds", 0x1BD0, 0x1 + .incbin "baserom.nds", 0x1BD4, 0x0 + .incbin "baserom.nds", 0x1BD4, 0x1 + .incbin "baserom.nds", 0x1BD8, 0x0 + .incbin "baserom.nds", 0x1BD8, 0x1 + .incbin "baserom.nds", 0x1BDC, 0x0 + .incbin "baserom.nds", 0x1BDC, 0x1 + .incbin "baserom.nds", 0x1BE0, 0x0 + .incbin "baserom.nds", 0x1BE0, 0x1 + .incbin "baserom.nds", 0x1BE4, 0x0 + .incbin "baserom.nds", 0x1BE4, 0x1 + .incbin "baserom.nds", 0x1BE8, 0x0 + .incbin "baserom.nds", 0x1BE8, 0x1 + .incbin "baserom.nds", 0x1BEC, 0x0 + .incbin "baserom.nds", 0x1BEC, 0x1 + .incbin "baserom.nds", 0x1BF0, 0x0 + .incbin "baserom.nds", 0x1BF0, 0x1 + .incbin "baserom.nds", 0x1BF4, 0x0 + .incbin "baserom.nds", 0x1BF4, 0x1 + .incbin "baserom.nds", 0x1BF8, 0x0 + .incbin "baserom.nds", 0x1BF8, 0x1 + .incbin "baserom.nds", 0x1BFC, 0x0 + .incbin "baserom.nds", 0x1BFC, 0x1 + .incbin "baserom.nds", 0x1C00, 0x1 + .incbin "baserom.nds", 0x1C04, 0x1 + .incbin "baserom.nds", 0x1C08, 0x1 + .incbin "baserom.nds", 0x1C0C, 0x1 + .incbin "baserom.nds", 0x1C10, 0x0 + .incbin "baserom.nds", 0x1C10, 0x1 + .incbin "baserom.nds", 0x1C14, 0x0 + .incbin "baserom.nds", 0x1C14, 0x1 + .incbin "baserom.nds", 0x1C18, 0x0 + .incbin "baserom.nds", 0x1C18, 0x1 + .incbin "baserom.nds", 0x1C1C, 0x0 + .incbin "baserom.nds", 0x1C1C, 0x1 + .incbin "baserom.nds", 0x1C20, 0x1 + .incbin "baserom.nds", 0x1C24, 0x0 + .incbin "baserom.nds", 0x1C24, 0x1 + .incbin "baserom.nds", 0x1C28, 0x0 + .incbin "baserom.nds", 0x1C28, 0x0 + .incbin "baserom.nds", 0x1C28, 0x1 + .incbin "baserom.nds", 0x1C2C, 0x0 + .incbin "baserom.nds", 0x1C2C, 0x1 + .incbin "baserom.nds", 0x1C30, 0x0 + .incbin "baserom.nds", 0x1C30, 0x1 + .incbin "baserom.nds", 0x1C34, 0x0 + .incbin "baserom.nds", 0x1C34, 0x1 + .incbin "baserom.nds", 0x1C38, 0x0 + .incbin "baserom.nds", 0x1C38, 0x1 + .incbin "baserom.nds", 0x1C3C, 0x0 + .incbin "baserom.nds", 0x1C3C, 0x1 + .incbin "baserom.nds", 0x1C40, 0x0 + .incbin "baserom.nds", 0x1C40, 0x1 + .incbin "baserom.nds", 0x1C44, 0x0 + .incbin "baserom.nds", 0x1C44, 0x1 + .incbin "baserom.nds", 0x1C48, 0x0 + .incbin "baserom.nds", 0x1C48, 0x1 + .incbin "baserom.nds", 0x1C4C, 0x0 + .incbin "baserom.nds", 0x1C4C, 0x1 + .balign 4, 255 diff --git a/narc/pokegra/height_o.narc.s b/narc/pokegra/height_o.narc.s new file mode 100644 index 00000000..18564703 --- /dev/null +++ b/narc/pokegra/height_o.narc.s @@ -0,0 +1,298 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00000694 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000044C ; chunk size + .short 136 ; number of files + .balign 4 + .word 0x00000000, 0x00000001 + .word 0x00000004, 0x00000005 + .word 0x00000008, 0x00000009 + .word 0x0000000C, 0x0000000D + .word 0x00000010, 0x00000011 + .word 0x00000014, 0x00000015 + .word 0x00000018, 0x00000019 + .word 0x0000001C, 0x0000001D + .word 0x00000020, 0x00000021 + .word 0x00000024, 0x00000025 + .word 0x00000028, 0x00000029 + .word 0x0000002C, 0x0000002D + .word 0x00000030, 0x00000031 + .word 0x00000034, 0x00000035 + .word 0x00000038, 0x00000039 + .word 0x0000003C, 0x0000003D + .word 0x00000040, 0x00000041 + .word 0x00000044, 0x00000045 + .word 0x00000048, 0x00000049 + .word 0x0000004C, 0x0000004D + .word 0x00000050, 0x00000051 + .word 0x00000054, 0x00000055 + .word 0x00000058, 0x00000059 + .word 0x0000005C, 0x0000005D + .word 0x00000060, 0x00000061 + .word 0x00000064, 0x00000065 + .word 0x00000068, 0x00000069 + .word 0x0000006C, 0x0000006D + .word 0x00000070, 0x00000071 + .word 0x00000074, 0x00000075 + .word 0x00000078, 0x00000079 + .word 0x0000007C, 0x0000007D + .word 0x00000080, 0x00000081 + .word 0x00000084, 0x00000085 + .word 0x00000088, 0x00000089 + .word 0x0000008C, 0x0000008D + .word 0x00000090, 0x00000091 + .word 0x00000094, 0x00000095 + .word 0x00000098, 0x00000099 + .word 0x0000009C, 0x0000009D + .word 0x000000A0, 0x000000A1 + .word 0x000000A4, 0x000000A5 + .word 0x000000A8, 0x000000A9 + .word 0x000000AC, 0x000000AD + .word 0x000000B0, 0x000000B1 + .word 0x000000B4, 0x000000B5 + .word 0x000000B8, 0x000000B9 + .word 0x000000BC, 0x000000BD + .word 0x000000C0, 0x000000C1 + .word 0x000000C4, 0x000000C5 + .word 0x000000C8, 0x000000C9 + .word 0x000000CC, 0x000000CD + .word 0x000000D0, 0x000000D1 + .word 0x000000D4, 0x000000D5 + .word 0x000000D8, 0x000000D9 + .word 0x000000DC, 0x000000DD + .word 0x000000E0, 0x000000E1 + .word 0x000000E4, 0x000000E5 + .word 0x000000E8, 0x000000E9 + .word 0x000000EC, 0x000000ED + .word 0x000000F0, 0x000000F1 + .word 0x000000F4, 0x000000F5 + .word 0x000000F8, 0x000000F9 + .word 0x000000FC, 0x000000FD + .word 0x00000100, 0x00000101 + .word 0x00000104, 0x00000105 + .word 0x00000108, 0x00000109 + .word 0x0000010C, 0x0000010D + .word 0x00000110, 0x00000111 + .word 0x00000114, 0x00000115 + .word 0x00000118, 0x00000119 + .word 0x0000011C, 0x0000011D + .word 0x00000120, 0x00000121 + .word 0x00000124, 0x00000125 + .word 0x00000128, 0x00000129 + .word 0x0000012C, 0x0000012D + .word 0x00000130, 0x00000131 + .word 0x00000134, 0x00000135 + .word 0x00000138, 0x00000139 + .word 0x0000013C, 0x0000013D + .word 0x00000140, 0x00000141 + .word 0x00000144, 0x00000145 + .word 0x00000148, 0x00000149 + .word 0x0000014C, 0x0000014D + .word 0x00000150, 0x00000151 + .word 0x00000154, 0x00000155 + .word 0x00000158, 0x00000159 + .word 0x0000015C, 0x0000015D + .word 0x00000160, 0x00000161 + .word 0x00000164, 0x00000165 + .word 0x00000168, 0x00000169 + .word 0x0000016C, 0x0000016D + .word 0x00000170, 0x00000171 + .word 0x00000174, 0x00000175 + .word 0x00000178, 0x00000179 + .word 0x0000017C, 0x0000017D + .word 0x00000180, 0x00000181 + .word 0x00000184, 0x00000185 + .word 0x00000188, 0x00000189 + .word 0x0000018C, 0x0000018D + .word 0x00000190, 0x00000191 + .word 0x00000194, 0x00000195 + .word 0x00000198, 0x00000199 + .word 0x0000019C, 0x0000019D + .word 0x000001A0, 0x000001A1 + .word 0x000001A4, 0x000001A5 + .word 0x000001A8, 0x000001A9 + .word 0x000001AC, 0x000001AD + .word 0x000001B0, 0x000001B1 + .word 0x000001B4, 0x000001B5 + .word 0x000001B8, 0x000001B9 + .word 0x000001BC, 0x000001BD + .word 0x000001C0, 0x000001C1 + .word 0x000001C4, 0x000001C5 + .word 0x000001C8, 0x000001C9 + .word 0x000001CC, 0x000001CD + .word 0x000001D0, 0x000001D1 + .word 0x000001D4, 0x000001D5 + .word 0x000001D8, 0x000001D9 + .word 0x000001DC, 0x000001DD + .word 0x000001E0, 0x000001E1 + .word 0x000001E4, 0x000001E5 + .word 0x000001E8, 0x000001E9 + .word 0x000001EC, 0x000001ED + .word 0x000001F0, 0x000001F1 + .word 0x000001F4, 0x000001F5 + .word 0x000001F8, 0x000001F9 + .word 0x000001FC, 0x000001FD + .word 0x00000200, 0x00000201 + .word 0x00000204, 0x00000205 + .word 0x00000208, 0x00000209 + .word 0x0000020C, 0x0000020D + .word 0x00000210, 0x00000211 + .word 0x00000214, 0x00000215 + .word 0x00000218, 0x00000219 + .word 0x0000021C, 0x0000021D + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00000228 ; chunk size + .incbin "baserom.nds", 0x0, 0x1 + .incbin "baserom.nds", 0x4, 0x1 + .incbin "baserom.nds", 0x8, 0x1 + .incbin "baserom.nds", 0xC, 0x1 + .incbin "baserom.nds", 0x10, 0x1 + .incbin "baserom.nds", 0x14, 0x1 + .incbin "baserom.nds", 0x18, 0x1 + .incbin "baserom.nds", 0x1C, 0x1 + .incbin "baserom.nds", 0x20, 0x1 + .incbin "baserom.nds", 0x24, 0x1 + .incbin "baserom.nds", 0x28, 0x1 + .incbin "baserom.nds", 0x2C, 0x1 + .incbin "baserom.nds", 0x30, 0x1 + .incbin "baserom.nds", 0x34, 0x1 + .incbin "baserom.nds", 0x38, 0x1 + .incbin "baserom.nds", 0x3C, 0x1 + .incbin "baserom.nds", 0x40, 0x1 + .incbin "baserom.nds", 0x44, 0x1 + .incbin "baserom.nds", 0x48, 0x1 + .incbin "baserom.nds", 0x4C, 0x1 + .incbin "baserom.nds", 0x50, 0x1 + .incbin "baserom.nds", 0x54, 0x1 + .incbin "baserom.nds", 0x58, 0x1 + .incbin "baserom.nds", 0x5C, 0x1 + .incbin "baserom.nds", 0x60, 0x1 + .incbin "baserom.nds", 0x64, 0x1 + .incbin "baserom.nds", 0x68, 0x1 + .incbin "baserom.nds", 0x6C, 0x1 + .incbin "baserom.nds", 0x70, 0x1 + .incbin "baserom.nds", 0x74, 0x1 + .incbin "baserom.nds", 0x78, 0x1 + .incbin "baserom.nds", 0x7C, 0x1 + .incbin "baserom.nds", 0x80, 0x1 + .incbin "baserom.nds", 0x84, 0x1 + .incbin "baserom.nds", 0x88, 0x1 + .incbin "baserom.nds", 0x8C, 0x1 + .incbin "baserom.nds", 0x90, 0x1 + .incbin "baserom.nds", 0x94, 0x1 + .incbin "baserom.nds", 0x98, 0x1 + .incbin "baserom.nds", 0x9C, 0x1 + .incbin "baserom.nds", 0xA0, 0x1 + .incbin "baserom.nds", 0xA4, 0x1 + .incbin "baserom.nds", 0xA8, 0x1 + .incbin "baserom.nds", 0xAC, 0x1 + .incbin "baserom.nds", 0xB0, 0x1 + .incbin "baserom.nds", 0xB4, 0x1 + .incbin "baserom.nds", 0xB8, 0x1 + .incbin "baserom.nds", 0xBC, 0x1 + .incbin "baserom.nds", 0xC0, 0x1 + .incbin "baserom.nds", 0xC4, 0x1 + .incbin "baserom.nds", 0xC8, 0x1 + .incbin "baserom.nds", 0xCC, 0x1 + .incbin "baserom.nds", 0xD0, 0x1 + .incbin "baserom.nds", 0xD4, 0x1 + .incbin "baserom.nds", 0xD8, 0x1 + .incbin "baserom.nds", 0xDC, 0x1 + .incbin "baserom.nds", 0xE0, 0x1 + .incbin "baserom.nds", 0xE4, 0x1 + .incbin "baserom.nds", 0xE8, 0x1 + .incbin "baserom.nds", 0xEC, 0x1 + .incbin "baserom.nds", 0xF0, 0x1 + .incbin "baserom.nds", 0xF4, 0x1 + .incbin "baserom.nds", 0xF8, 0x1 + .incbin "baserom.nds", 0xFC, 0x1 + .incbin "baserom.nds", 0x100, 0x1 + .incbin "baserom.nds", 0x104, 0x1 + .incbin "baserom.nds", 0x108, 0x1 + .incbin "baserom.nds", 0x10C, 0x1 + .incbin "baserom.nds", 0x110, 0x1 + .incbin "baserom.nds", 0x114, 0x1 + .incbin "baserom.nds", 0x118, 0x1 + .incbin "baserom.nds", 0x11C, 0x1 + .incbin "baserom.nds", 0x120, 0x1 + .incbin "baserom.nds", 0x124, 0x1 + .incbin "baserom.nds", 0x128, 0x1 + .incbin "baserom.nds", 0x12C, 0x1 + .incbin "baserom.nds", 0x130, 0x1 + .incbin "baserom.nds", 0x134, 0x1 + .incbin "baserom.nds", 0x138, 0x1 + .incbin "baserom.nds", 0x13C, 0x1 + .incbin "baserom.nds", 0x140, 0x1 + .incbin "baserom.nds", 0x144, 0x1 + .incbin "baserom.nds", 0x148, 0x1 + .incbin "baserom.nds", 0x14C, 0x1 + .incbin "baserom.nds", 0x150, 0x1 + .incbin "baserom.nds", 0x154, 0x1 + .incbin "baserom.nds", 0x158, 0x1 + .incbin "baserom.nds", 0x15C, 0x1 + .incbin "baserom.nds", 0x160, 0x1 + .incbin "baserom.nds", 0x164, 0x1 + .incbin "baserom.nds", 0x168, 0x1 + .incbin "baserom.nds", 0x16C, 0x1 + .incbin "baserom.nds", 0x170, 0x1 + .incbin "baserom.nds", 0x174, 0x1 + .incbin "baserom.nds", 0x178, 0x1 + .incbin "baserom.nds", 0x17C, 0x1 + .incbin "baserom.nds", 0x180, 0x1 + .incbin "baserom.nds", 0x184, 0x1 + .incbin "baserom.nds", 0x188, 0x1 + .incbin "baserom.nds", 0x18C, 0x1 + .incbin "baserom.nds", 0x190, 0x1 + .incbin "baserom.nds", 0x194, 0x1 + .incbin "baserom.nds", 0x198, 0x1 + .incbin "baserom.nds", 0x19C, 0x1 + .incbin "baserom.nds", 0x1A0, 0x1 + .incbin "baserom.nds", 0x1A4, 0x1 + .incbin "baserom.nds", 0x1A8, 0x1 + .incbin "baserom.nds", 0x1AC, 0x1 + .incbin "baserom.nds", 0x1B0, 0x1 + .incbin "baserom.nds", 0x1B4, 0x1 + .incbin "baserom.nds", 0x1B8, 0x1 + .incbin "baserom.nds", 0x1BC, 0x1 + .incbin "baserom.nds", 0x1C0, 0x1 + .incbin "baserom.nds", 0x1C4, 0x1 + .incbin "baserom.nds", 0x1C8, 0x1 + .incbin "baserom.nds", 0x1CC, 0x1 + .incbin "baserom.nds", 0x1D0, 0x1 + .incbin "baserom.nds", 0x1D4, 0x1 + .incbin "baserom.nds", 0x1D8, 0x1 + .incbin "baserom.nds", 0x1DC, 0x1 + .incbin "baserom.nds", 0x1E0, 0x1 + .incbin "baserom.nds", 0x1E4, 0x1 + .incbin "baserom.nds", 0x1E8, 0x1 + .incbin "baserom.nds", 0x1EC, 0x1 + .incbin "baserom.nds", 0x1F0, 0x1 + .incbin "baserom.nds", 0x1F4, 0x1 + .incbin "baserom.nds", 0x1F8, 0x1 + .incbin "baserom.nds", 0x1FC, 0x1 + .incbin "baserom.nds", 0x200, 0x1 + .incbin "baserom.nds", 0x204, 0x1 + .incbin "baserom.nds", 0x208, 0x1 + .incbin "baserom.nds", 0x20C, 0x1 + .incbin "baserom.nds", 0x210, 0x1 + .incbin "baserom.nds", 0x214, 0x1 + .incbin "baserom.nds", 0x218, 0x1 + .incbin "baserom.nds", 0x21C, 0x1 + .balign 4, 255 diff --git a/narc/pokegra/otherpoke.narc.s b/narc/pokegra/otherpoke.narc.s new file mode 100644 index 00000000..66b32fef --- /dev/null +++ b/narc/pokegra/otherpoke.narc.s @@ -0,0 +1,452 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x000D96EC ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000006B4 ; chunk size + .short 213 ; number of files + .balign 4 + .word 0x00000000, 0x00001930 + .word 0x00001930, 0x00003260 + .word 0x00003260, 0x00004B90 + .word 0x00004B90, 0x000064C0 + .word 0x000064C0, 0x00007DF0 + .word 0x00007DF0, 0x00009720 + .word 0x00009720, 0x0000B050 + .word 0x0000B050, 0x0000C980 + .word 0x0000C980, 0x0000E2B0 + .word 0x0000E2B0, 0x0000FBE0 + .word 0x0000FBE0, 0x00011510 + .word 0x00011510, 0x00012E40 + .word 0x00012E40, 0x00014770 + .word 0x00014770, 0x000160A0 + .word 0x000160A0, 0x000179D0 + .word 0x000179D0, 0x00019300 + .word 0x00019300, 0x0001AC30 + .word 0x0001AC30, 0x0001C560 + .word 0x0001C560, 0x0001DE90 + .word 0x0001DE90, 0x0001F7C0 + .word 0x0001F7C0, 0x000210F0 + .word 0x000210F0, 0x00022A20 + .word 0x00022A20, 0x00024350 + .word 0x00024350, 0x00025C80 + .word 0x00025C80, 0x000275B0 + .word 0x000275B0, 0x00028EE0 + .word 0x00028EE0, 0x0002A810 + .word 0x0002A810, 0x0002C140 + .word 0x0002C140, 0x0002DA70 + .word 0x0002DA70, 0x0002F3A0 + .word 0x0002F3A0, 0x00030CD0 + .word 0x00030CD0, 0x00032600 + .word 0x00032600, 0x00033F30 + .word 0x00033F30, 0x00035860 + .word 0x00035860, 0x00037190 + .word 0x00037190, 0x00038AC0 + .word 0x00038AC0, 0x0003A3F0 + .word 0x0003A3F0, 0x0003BD20 + .word 0x0003BD20, 0x0003D650 + .word 0x0003D650, 0x0003EF80 + .word 0x0003EF80, 0x000408B0 + .word 0x000408B0, 0x000421E0 + .word 0x000421E0, 0x00043B10 + .word 0x00043B10, 0x00045440 + .word 0x00045440, 0x00046D70 + .word 0x00046D70, 0x000486A0 + .word 0x000486A0, 0x00049FD0 + .word 0x00049FD0, 0x0004B900 + .word 0x0004B900, 0x0004D230 + .word 0x0004D230, 0x0004EB60 + .word 0x0004EB60, 0x00050490 + .word 0x00050490, 0x00051DC0 + .word 0x00051DC0, 0x000536F0 + .word 0x000536F0, 0x00055020 + .word 0x00055020, 0x00056950 + .word 0x00056950, 0x00058280 + .word 0x00058280, 0x00059BB0 + .word 0x00059BB0, 0x0005B4E0 + .word 0x0005B4E0, 0x0005CE10 + .word 0x0005CE10, 0x0005E740 + .word 0x0005E740, 0x00060070 + .word 0x00060070, 0x000619A0 + .word 0x000619A0, 0x000632D0 + .word 0x000632D0, 0x00064C00 + .word 0x00064C00, 0x00066530 + .word 0x00066530, 0x00067E60 + .word 0x00067E60, 0x00069790 + .word 0x00069790, 0x0006B0C0 + .word 0x0006B0C0, 0x0006C9F0 + .word 0x0006C9F0, 0x0006E320 + .word 0x0006E320, 0x0006FC50 + .word 0x0006FC50, 0x00071580 + .word 0x00071580, 0x00072EB0 + .word 0x00072EB0, 0x000747E0 + .word 0x000747E0, 0x00076110 + .word 0x00076110, 0x00077A40 + .word 0x00077A40, 0x00079370 + .word 0x00079370, 0x0007ACA0 + .word 0x0007ACA0, 0x0007C5D0 + .word 0x0007C5D0, 0x0007DF00 + .word 0x0007DF00, 0x0007F830 + .word 0x0007F830, 0x00081160 + .word 0x00081160, 0x00082A90 + .word 0x00082A90, 0x000843C0 + .word 0x000843C0, 0x00085CF0 + .word 0x00085CF0, 0x00087620 + .word 0x00087620, 0x00088F50 + .word 0x00088F50, 0x0008A880 + .word 0x0008A880, 0x0008C1B0 + .word 0x0008C1B0, 0x0008DAE0 + .word 0x0008DAE0, 0x0008F410 + .word 0x0008F410, 0x00090D40 + .word 0x00090D40, 0x00092670 + .word 0x00092670, 0x00093FA0 + .word 0x00093FA0, 0x000958D0 + .word 0x000958D0, 0x00097200 + .word 0x00097200, 0x00098B30 + .word 0x00098B30, 0x0009A460 + .word 0x0009A460, 0x0009BD90 + .word 0x0009BD90, 0x0009D6C0 + .word 0x0009D6C0, 0x0009EFF0 + .word 0x0009EFF0, 0x000A0920 + .word 0x000A0920, 0x000A2250 + .word 0x000A2250, 0x000A3B80 + .word 0x000A3B80, 0x000A54B0 + .word 0x000A54B0, 0x000A6DE0 + .word 0x000A6DE0, 0x000A8710 + .word 0x000A8710, 0x000AA040 + .word 0x000AA040, 0x000AB970 + .word 0x000AB970, 0x000AD2A0 + .word 0x000AD2A0, 0x000AEBD0 + .word 0x000AEBD0, 0x000B0500 + .word 0x000B0500, 0x000B1E30 + .word 0x000B1E30, 0x000B3760 + .word 0x000B3760, 0x000B5090 + .word 0x000B5090, 0x000B69C0 + .word 0x000B69C0, 0x000B82F0 + .word 0x000B82F0, 0x000B9C20 + .word 0x000B9C20, 0x000BB550 + .word 0x000BB550, 0x000BCE80 + .word 0x000BCE80, 0x000BE7B0 + .word 0x000BE7B0, 0x000C00E0 + .word 0x000C00E0, 0x000C1A10 + .word 0x000C1A10, 0x000C3340 + .word 0x000C3340, 0x000C4C70 + .word 0x000C4C70, 0x000C65A0 + .word 0x000C65A0, 0x000C7ED0 + .word 0x000C7ED0, 0x000C9800 + .word 0x000C9800, 0x000CB130 + .word 0x000CB130, 0x000CCA60 + .word 0x000CCA60, 0x000CE390 + .word 0x000CE390, 0x000CFCC0 + .word 0x000CFCC0, 0x000D15F0 + .word 0x000D15F0, 0x000D2F20 + .word 0x000D2F20, 0x000D2F68 + .word 0x000D2F68, 0x000D2FB0 + .word 0x000D2FB0, 0x000D2FF8 + .word 0x000D2FF8, 0x000D3040 + .word 0x000D3040, 0x000D3088 + .word 0x000D3088, 0x000D30D0 + .word 0x000D30D0, 0x000D3118 + .word 0x000D3118, 0x000D3160 + .word 0x000D3160, 0x000D31A8 + .word 0x000D31A8, 0x000D31F0 + .word 0x000D31F0, 0x000D3238 + .word 0x000D3238, 0x000D3280 + .word 0x000D3280, 0x000D32C8 + .word 0x000D32C8, 0x000D3310 + .word 0x000D3310, 0x000D3358 + .word 0x000D3358, 0x000D33A0 + .word 0x000D33A0, 0x000D33E8 + .word 0x000D33E8, 0x000D3430 + .word 0x000D3430, 0x000D3478 + .word 0x000D3478, 0x000D34C0 + .word 0x000D34C0, 0x000D3508 + .word 0x000D3508, 0x000D3550 + .word 0x000D3550, 0x000D3598 + .word 0x000D3598, 0x000D35E0 + .word 0x000D35E0, 0x000D3628 + .word 0x000D3628, 0x000D3670 + .word 0x000D3670, 0x000D36B8 + .word 0x000D36B8, 0x000D3700 + .word 0x000D3700, 0x000D3748 + .word 0x000D3748, 0x000D3790 + .word 0x000D3790, 0x000D37D8 + .word 0x000D37D8, 0x000D3820 + .word 0x000D3820, 0x000D3868 + .word 0x000D3868, 0x000D38B0 + .word 0x000D38B0, 0x000D38F8 + .word 0x000D38F8, 0x000D3940 + .word 0x000D3940, 0x000D3988 + .word 0x000D3988, 0x000D39D0 + .word 0x000D39D0, 0x000D3A18 + .word 0x000D3A18, 0x000D3A60 + .word 0x000D3A60, 0x000D3AA8 + .word 0x000D3AA8, 0x000D3AF0 + .word 0x000D3AF0, 0x000D3B38 + .word 0x000D3B38, 0x000D3B80 + .word 0x000D3B80, 0x000D3BC8 + .word 0x000D3BC8, 0x000D3C10 + .word 0x000D3C10, 0x000D3C58 + .word 0x000D3C58, 0x000D3CA0 + .word 0x000D3CA0, 0x000D3CE8 + .word 0x000D3CE8, 0x000D3D30 + .word 0x000D3D30, 0x000D3D78 + .word 0x000D3D78, 0x000D3DC0 + .word 0x000D3DC0, 0x000D3E08 + .word 0x000D3E08, 0x000D3E50 + .word 0x000D3E50, 0x000D3E98 + .word 0x000D3E98, 0x000D3EE0 + .word 0x000D3EE0, 0x000D3F28 + .word 0x000D3F28, 0x000D3F70 + .word 0x000D3F70, 0x000D3FB8 + .word 0x000D3FB8, 0x000D4000 + .word 0x000D4000, 0x000D4048 + .word 0x000D4048, 0x000D4090 + .word 0x000D4090, 0x000D40D8 + .word 0x000D40D8, 0x000D4120 + .word 0x000D4120, 0x000D4168 + .word 0x000D4168, 0x000D41B0 + .word 0x000D41B0, 0x000D41F8 + .word 0x000D41F8, 0x000D4240 + .word 0x000D4240, 0x000D4288 + .word 0x000D4288, 0x000D42D0 + .word 0x000D42D0, 0x000D4318 + .word 0x000D4318, 0x000D4360 + .word 0x000D4360, 0x000D43A8 + .word 0x000D43A8, 0x000D43F0 + .word 0x000D43F0, 0x000D5D20 + .word 0x000D5D20, 0x000D7650 + .word 0x000D7650, 0x000D7698 + .word 0x000D7698, 0x000D8FC8 + .word 0x000D8FC8, 0x000D9010 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000D9018 ; chunk size + .incbin "baserom.nds", 0x0, 0x1930 + .incbin "baserom.nds", 0x1930, 0x1930 + .incbin "baserom.nds", 0x3260, 0x1930 + .incbin "baserom.nds", 0x4B90, 0x1930 + .incbin "baserom.nds", 0x64C0, 0x1930 + .incbin "baserom.nds", 0x7DF0, 0x1930 + .incbin "baserom.nds", 0x9720, 0x1930 + .incbin "baserom.nds", 0xB050, 0x1930 + .incbin "baserom.nds", 0xC980, 0x1930 + .incbin "baserom.nds", 0xE2B0, 0x1930 + .incbin "baserom.nds", 0xFBE0, 0x1930 + .incbin "baserom.nds", 0x11510, 0x1930 + .incbin "baserom.nds", 0x12E40, 0x1930 + .incbin "baserom.nds", 0x14770, 0x1930 + .incbin "baserom.nds", 0x160A0, 0x1930 + .incbin "baserom.nds", 0x179D0, 0x1930 + .incbin "baserom.nds", 0x19300, 0x1930 + .incbin "baserom.nds", 0x1AC30, 0x1930 + .incbin "baserom.nds", 0x1C560, 0x1930 + .incbin "baserom.nds", 0x1DE90, 0x1930 + .incbin "baserom.nds", 0x1F7C0, 0x1930 + .incbin "baserom.nds", 0x210F0, 0x1930 + .incbin "baserom.nds", 0x22A20, 0x1930 + .incbin "baserom.nds", 0x24350, 0x1930 + .incbin "baserom.nds", 0x25C80, 0x1930 + .incbin "baserom.nds", 0x275B0, 0x1930 + .incbin "baserom.nds", 0x28EE0, 0x1930 + .incbin "baserom.nds", 0x2A810, 0x1930 + .incbin "baserom.nds", 0x2C140, 0x1930 + .incbin "baserom.nds", 0x2DA70, 0x1930 + .incbin "baserom.nds", 0x2F3A0, 0x1930 + .incbin "baserom.nds", 0x30CD0, 0x1930 + .incbin "baserom.nds", 0x32600, 0x1930 + .incbin "baserom.nds", 0x33F30, 0x1930 + .incbin "baserom.nds", 0x35860, 0x1930 + .incbin "baserom.nds", 0x37190, 0x1930 + .incbin "baserom.nds", 0x38AC0, 0x1930 + .incbin "baserom.nds", 0x3A3F0, 0x1930 + .incbin "baserom.nds", 0x3BD20, 0x1930 + .incbin "baserom.nds", 0x3D650, 0x1930 + .incbin "baserom.nds", 0x3EF80, 0x1930 + .incbin "baserom.nds", 0x408B0, 0x1930 + .incbin "baserom.nds", 0x421E0, 0x1930 + .incbin "baserom.nds", 0x43B10, 0x1930 + .incbin "baserom.nds", 0x45440, 0x1930 + .incbin "baserom.nds", 0x46D70, 0x1930 + .incbin "baserom.nds", 0x486A0, 0x1930 + .incbin "baserom.nds", 0x49FD0, 0x1930 + .incbin "baserom.nds", 0x4B900, 0x1930 + .incbin "baserom.nds", 0x4D230, 0x1930 + .incbin "baserom.nds", 0x4EB60, 0x1930 + .incbin "baserom.nds", 0x50490, 0x1930 + .incbin "baserom.nds", 0x51DC0, 0x1930 + .incbin "baserom.nds", 0x536F0, 0x1930 + .incbin "baserom.nds", 0x55020, 0x1930 + .incbin "baserom.nds", 0x56950, 0x1930 + .incbin "baserom.nds", 0x58280, 0x1930 + .incbin "baserom.nds", 0x59BB0, 0x1930 + .incbin "baserom.nds", 0x5B4E0, 0x1930 + .incbin "baserom.nds", 0x5CE10, 0x1930 + .incbin "baserom.nds", 0x5E740, 0x1930 + .incbin "baserom.nds", 0x60070, 0x1930 + .incbin "baserom.nds", 0x619A0, 0x1930 + .incbin "baserom.nds", 0x632D0, 0x1930 + .incbin "baserom.nds", 0x64C00, 0x1930 + .incbin "baserom.nds", 0x66530, 0x1930 + .incbin "baserom.nds", 0x67E60, 0x1930 + .incbin "baserom.nds", 0x69790, 0x1930 + .incbin "baserom.nds", 0x6B0C0, 0x1930 + .incbin "baserom.nds", 0x6C9F0, 0x1930 + .incbin "baserom.nds", 0x6E320, 0x1930 + .incbin "baserom.nds", 0x6FC50, 0x1930 + .incbin "baserom.nds", 0x71580, 0x1930 + .incbin "baserom.nds", 0x72EB0, 0x1930 + .incbin "baserom.nds", 0x747E0, 0x1930 + .incbin "baserom.nds", 0x76110, 0x1930 + .incbin "baserom.nds", 0x77A40, 0x1930 + .incbin "baserom.nds", 0x79370, 0x1930 + .incbin "baserom.nds", 0x7ACA0, 0x1930 + .incbin "baserom.nds", 0x7C5D0, 0x1930 + .incbin "baserom.nds", 0x7DF00, 0x1930 + .incbin "baserom.nds", 0x7F830, 0x1930 + .incbin "baserom.nds", 0x81160, 0x1930 + .incbin "baserom.nds", 0x82A90, 0x1930 + .incbin "baserom.nds", 0x843C0, 0x1930 + .incbin "baserom.nds", 0x85CF0, 0x1930 + .incbin "baserom.nds", 0x87620, 0x1930 + .incbin "baserom.nds", 0x88F50, 0x1930 + .incbin "baserom.nds", 0x8A880, 0x1930 + .incbin "baserom.nds", 0x8C1B0, 0x1930 + .incbin "baserom.nds", 0x8DAE0, 0x1930 + .incbin "baserom.nds", 0x8F410, 0x1930 + .incbin "baserom.nds", 0x90D40, 0x1930 + .incbin "baserom.nds", 0x92670, 0x1930 + .incbin "baserom.nds", 0x93FA0, 0x1930 + .incbin "baserom.nds", 0x958D0, 0x1930 + .incbin "baserom.nds", 0x97200, 0x1930 + .incbin "baserom.nds", 0x98B30, 0x1930 + .incbin "baserom.nds", 0x9A460, 0x1930 + .incbin "baserom.nds", 0x9BD90, 0x1930 + .incbin "baserom.nds", 0x9D6C0, 0x1930 + .incbin "baserom.nds", 0x9EFF0, 0x1930 + .incbin "baserom.nds", 0xA0920, 0x1930 + .incbin "baserom.nds", 0xA2250, 0x1930 + .incbin "baserom.nds", 0xA3B80, 0x1930 + .incbin "baserom.nds", 0xA54B0, 0x1930 + .incbin "baserom.nds", 0xA6DE0, 0x1930 + .incbin "baserom.nds", 0xA8710, 0x1930 + .incbin "baserom.nds", 0xAA040, 0x1930 + .incbin "baserom.nds", 0xAB970, 0x1930 + .incbin "baserom.nds", 0xAD2A0, 0x1930 + .incbin "baserom.nds", 0xAEBD0, 0x1930 + .incbin "baserom.nds", 0xB0500, 0x1930 + .incbin "baserom.nds", 0xB1E30, 0x1930 + .incbin "baserom.nds", 0xB3760, 0x1930 + .incbin "baserom.nds", 0xB5090, 0x1930 + .incbin "baserom.nds", 0xB69C0, 0x1930 + .incbin "baserom.nds", 0xB82F0, 0x1930 + .incbin "baserom.nds", 0xB9C20, 0x1930 + .incbin "baserom.nds", 0xBB550, 0x1930 + .incbin "baserom.nds", 0xBCE80, 0x1930 + .incbin "baserom.nds", 0xBE7B0, 0x1930 + .incbin "baserom.nds", 0xC00E0, 0x1930 + .incbin "baserom.nds", 0xC1A10, 0x1930 + .incbin "baserom.nds", 0xC3340, 0x1930 + .incbin "baserom.nds", 0xC4C70, 0x1930 + .incbin "baserom.nds", 0xC65A0, 0x1930 + .incbin "baserom.nds", 0xC7ED0, 0x1930 + .incbin "baserom.nds", 0xC9800, 0x1930 + .incbin "baserom.nds", 0xCB130, 0x1930 + .incbin "baserom.nds", 0xCCA60, 0x1930 + .incbin "baserom.nds", 0xCE390, 0x1930 + .incbin "baserom.nds", 0xCFCC0, 0x1930 + .incbin "baserom.nds", 0xD15F0, 0x1930 + .incbin "baserom.nds", 0xD2F20, 0x48 + .incbin "baserom.nds", 0xD2F68, 0x48 + .incbin "baserom.nds", 0xD2FB0, 0x48 + .incbin "baserom.nds", 0xD2FF8, 0x48 + .incbin "baserom.nds", 0xD3040, 0x48 + .incbin "baserom.nds", 0xD3088, 0x48 + .incbin "baserom.nds", 0xD30D0, 0x48 + .incbin "baserom.nds", 0xD3118, 0x48 + .incbin "baserom.nds", 0xD3160, 0x48 + .incbin "baserom.nds", 0xD31A8, 0x48 + .incbin "baserom.nds", 0xD31F0, 0x48 + .incbin "baserom.nds", 0xD3238, 0x48 + .incbin "baserom.nds", 0xD3280, 0x48 + .incbin "baserom.nds", 0xD32C8, 0x48 + .incbin "baserom.nds", 0xD3310, 0x48 + .incbin "baserom.nds", 0xD3358, 0x48 + .incbin "baserom.nds", 0xD33A0, 0x48 + .incbin "baserom.nds", 0xD33E8, 0x48 + .incbin "baserom.nds", 0xD3430, 0x48 + .incbin "baserom.nds", 0xD3478, 0x48 + .incbin "baserom.nds", 0xD34C0, 0x48 + .incbin "baserom.nds", 0xD3508, 0x48 + .incbin "baserom.nds", 0xD3550, 0x48 + .incbin "baserom.nds", 0xD3598, 0x48 + .incbin "baserom.nds", 0xD35E0, 0x48 + .incbin "baserom.nds", 0xD3628, 0x48 + .incbin "baserom.nds", 0xD3670, 0x48 + .incbin "baserom.nds", 0xD36B8, 0x48 + .incbin "baserom.nds", 0xD3700, 0x48 + .incbin "baserom.nds", 0xD3748, 0x48 + .incbin "baserom.nds", 0xD3790, 0x48 + .incbin "baserom.nds", 0xD37D8, 0x48 + .incbin "baserom.nds", 0xD3820, 0x48 + .incbin "baserom.nds", 0xD3868, 0x48 + .incbin "baserom.nds", 0xD38B0, 0x48 + .incbin "baserom.nds", 0xD38F8, 0x48 + .incbin "baserom.nds", 0xD3940, 0x48 + .incbin "baserom.nds", 0xD3988, 0x48 + .incbin "baserom.nds", 0xD39D0, 0x48 + .incbin "baserom.nds", 0xD3A18, 0x48 + .incbin "baserom.nds", 0xD3A60, 0x48 + .incbin "baserom.nds", 0xD3AA8, 0x48 + .incbin "baserom.nds", 0xD3AF0, 0x48 + .incbin "baserom.nds", 0xD3B38, 0x48 + .incbin "baserom.nds", 0xD3B80, 0x48 + .incbin "baserom.nds", 0xD3BC8, 0x48 + .incbin "baserom.nds", 0xD3C10, 0x48 + .incbin "baserom.nds", 0xD3C58, 0x48 + .incbin "baserom.nds", 0xD3CA0, 0x48 + .incbin "baserom.nds", 0xD3CE8, 0x48 + .incbin "baserom.nds", 0xD3D30, 0x48 + .incbin "baserom.nds", 0xD3D78, 0x48 + .incbin "baserom.nds", 0xD3DC0, 0x48 + .incbin "baserom.nds", 0xD3E08, 0x48 + .incbin "baserom.nds", 0xD3E50, 0x48 + .incbin "baserom.nds", 0xD3E98, 0x48 + .incbin "baserom.nds", 0xD3EE0, 0x48 + .incbin "baserom.nds", 0xD3F28, 0x48 + .incbin "baserom.nds", 0xD3F70, 0x48 + .incbin "baserom.nds", 0xD3FB8, 0x48 + .incbin "baserom.nds", 0xD4000, 0x48 + .incbin "baserom.nds", 0xD4048, 0x48 + .incbin "baserom.nds", 0xD4090, 0x48 + .incbin "baserom.nds", 0xD40D8, 0x48 + .incbin "baserom.nds", 0xD4120, 0x48 + .incbin "baserom.nds", 0xD4168, 0x48 + .incbin "baserom.nds", 0xD41B0, 0x48 + .incbin "baserom.nds", 0xD41F8, 0x48 + .incbin "baserom.nds", 0xD4240, 0x48 + .incbin "baserom.nds", 0xD4288, 0x48 + .incbin "baserom.nds", 0xD42D0, 0x48 + .incbin "baserom.nds", 0xD4318, 0x48 + .incbin "baserom.nds", 0xD4360, 0x48 + .incbin "baserom.nds", 0xD43A8, 0x48 + .incbin "baserom.nds", 0xD43F0, 0x1930 + .incbin "baserom.nds", 0xD5D20, 0x1930 + .incbin "baserom.nds", 0xD7650, 0x48 + .incbin "baserom.nds", 0xD7698, 0x1930 + .incbin "baserom.nds", 0xD8FC8, 0x48 + .balign 4, 255 diff --git a/narc/pokegra/poke_shadow.narc.s b/narc/pokegra/poke_shadow.narc.s new file mode 100644 index 00000000..2929cf0e --- /dev/null +++ b/narc/pokegra/poke_shadow.narc.s @@ -0,0 +1,28 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0000022C ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000014 ; chunk size + .short 1 ; number of files + .balign 4 + .word 0x00000000, 0x000001EE + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000001F8 ; chunk size + .incbin "baserom.nds", 0x0, 0x1EE + .balign 4, 255 diff --git a/narc/pokegra/poke_shadow_ofx.narc.s b/narc/pokegra/poke_shadow_ofx.narc.s new file mode 100644 index 00000000..2929cf0e --- /dev/null +++ b/narc/pokegra/poke_shadow_ofx.narc.s @@ -0,0 +1,28 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0000022C ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000014 ; chunk size + .short 1 ; number of files + .balign 4 + .word 0x00000000, 0x000001EE + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000001F8 ; chunk size + .incbin "baserom.nds", 0x0, 0x1EE + .balign 4, 255 diff --git a/narc/pokegra/poke_yofs.narc.s b/narc/pokegra/poke_yofs.narc.s new file mode 100644 index 00000000..2929cf0e --- /dev/null +++ b/narc/pokegra/poke_yofs.narc.s @@ -0,0 +1,28 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0000022C ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000014 ; chunk size + .short 1 ; number of files + .balign 4 + .word 0x00000000, 0x000001EE + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000001F8 ; chunk size + .incbin "baserom.nds", 0x0, 0x1EE + .balign 4, 255 diff --git a/narc/pokegra/pokegra.narc.s b/narc/pokegra/pokegra.narc.s new file mode 100644 index 00000000..138f8f2b --- /dev/null +++ b/narc/pokegra/pokegra.narc.s @@ -0,0 +1,5954 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00B3BA74 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00005CAC ; chunk size + .short 2964 ; number of files + .balign 4 + .word 0x00000000, 0x00001930 + .word 0x00001930, 0x00003260 + .word 0x00003260, 0x00004B90 + .word 0x00004B90, 0x000064C0 + .word 0x000064C0, 0x00006508 + .word 0x00006508, 0x00006550 + .word 0x00006550, 0x00007E80 + .word 0x00007E80, 0x000097B0 + .word 0x000097B0, 0x0000B0E0 + .word 0x0000B0E0, 0x0000CA10 + .word 0x0000CA10, 0x0000CA58 + .word 0x0000CA58, 0x0000CAA0 + .word 0x0000CAA0, 0x0000E3D0 + .word 0x0000E3D0, 0x0000FD00 + .word 0x0000FD00, 0x00011630 + .word 0x00011630, 0x00012F60 + .word 0x00012F60, 0x00012FA8 + .word 0x00012FA8, 0x00012FF0 + .word 0x00012FF0, 0x00014920 + .word 0x00014920, 0x00016250 + .word 0x00016250, 0x00017B80 + .word 0x00017B80, 0x000194B0 + .word 0x000194B0, 0x000194F8 + .word 0x000194F8, 0x00019540 + .word 0x00019540, 0x0001AE70 + .word 0x0001AE70, 0x0001C7A0 + .word 0x0001C7A0, 0x0001E0D0 + .word 0x0001E0D0, 0x0001FA00 + .word 0x0001FA00, 0x0001FA48 + .word 0x0001FA48, 0x0001FA90 + .word 0x0001FA90, 0x000213C0 + .word 0x000213C0, 0x00022CF0 + .word 0x00022CF0, 0x00024620 + .word 0x00024620, 0x00025F50 + .word 0x00025F50, 0x00025F98 + .word 0x00025F98, 0x00025FE0 + .word 0x00025FE0, 0x00027910 + .word 0x00027910, 0x00029240 + .word 0x00029240, 0x0002AB70 + .word 0x0002AB70, 0x0002C4A0 + .word 0x0002C4A0, 0x0002C4E8 + .word 0x0002C4E8, 0x0002C530 + .word 0x0002C530, 0x0002DE60 + .word 0x0002DE60, 0x0002F790 + .word 0x0002F790, 0x000310C0 + .word 0x000310C0, 0x000329F0 + .word 0x000329F0, 0x00032A38 + .word 0x00032A38, 0x00032A80 + .word 0x00032A80, 0x000343B0 + .word 0x000343B0, 0x00035CE0 + .word 0x00035CE0, 0x00037610 + .word 0x00037610, 0x00038F40 + .word 0x00038F40, 0x00038F88 + .word 0x00038F88, 0x00038FD0 + .word 0x00038FD0, 0x0003A900 + .word 0x0003A900, 0x0003C230 + .word 0x0003C230, 0x0003DB60 + .word 0x0003DB60, 0x0003F490 + .word 0x0003F490, 0x0003F4D8 + .word 0x0003F4D8, 0x0003F520 + .word 0x0003F520, 0x00040E50 + .word 0x00040E50, 0x00042780 + .word 0x00042780, 0x000440B0 + .word 0x000440B0, 0x000459E0 + .word 0x000459E0, 0x00045A28 + .word 0x00045A28, 0x00045A70 + .word 0x00045A70, 0x000473A0 + .word 0x000473A0, 0x00048CD0 + .word 0x00048CD0, 0x0004A600 + .word 0x0004A600, 0x0004BF30 + .word 0x0004BF30, 0x0004BF78 + .word 0x0004BF78, 0x0004BFC0 + .word 0x0004BFC0, 0x0004D8F0 + .word 0x0004D8F0, 0x0004F220 + .word 0x0004F220, 0x00050B50 + .word 0x00050B50, 0x00052480 + .word 0x00052480, 0x000524C8 + .word 0x000524C8, 0x00052510 + .word 0x00052510, 0x00053E40 + .word 0x00053E40, 0x00055770 + .word 0x00055770, 0x000570A0 + .word 0x000570A0, 0x000589D0 + .word 0x000589D0, 0x00058A18 + .word 0x00058A18, 0x00058A60 + .word 0x00058A60, 0x0005A390 + .word 0x0005A390, 0x0005BCC0 + .word 0x0005BCC0, 0x0005D5F0 + .word 0x0005D5F0, 0x0005EF20 + .word 0x0005EF20, 0x0005EF68 + .word 0x0005EF68, 0x0005EFB0 + .word 0x0005EFB0, 0x000608E0 + .word 0x000608E0, 0x00062210 + .word 0x00062210, 0x00063B40 + .word 0x00063B40, 0x00065470 + .word 0x00065470, 0x000654B8 + .word 0x000654B8, 0x00065500 + .word 0x00065500, 0x00066E30 + .word 0x00066E30, 0x00068760 + .word 0x00068760, 0x0006A090 + .word 0x0006A090, 0x0006B9C0 + .word 0x0006B9C0, 0x0006BA08 + .word 0x0006BA08, 0x0006BA50 + .word 0x0006BA50, 0x0006D380 + .word 0x0006D380, 0x0006ECB0 + .word 0x0006ECB0, 0x000705E0 + .word 0x000705E0, 0x00071F10 + .word 0x00071F10, 0x00071F58 + .word 0x00071F58, 0x00071FA0 + .word 0x00071FA0, 0x000738D0 + .word 0x000738D0, 0x00075200 + .word 0x00075200, 0x00076B30 + .word 0x00076B30, 0x00078460 + .word 0x00078460, 0x000784A8 + .word 0x000784A8, 0x000784F0 + .word 0x000784F0, 0x00079E20 + .word 0x00079E20, 0x0007B750 + .word 0x0007B750, 0x0007D080 + .word 0x0007D080, 0x0007E9B0 + .word 0x0007E9B0, 0x0007E9F8 + .word 0x0007E9F8, 0x0007EA40 + .word 0x0007EA40, 0x00080370 + .word 0x00080370, 0x00081CA0 + .word 0x00081CA0, 0x000835D0 + .word 0x000835D0, 0x00084F00 + .word 0x00084F00, 0x00084F48 + .word 0x00084F48, 0x00084F90 + .word 0x00084F90, 0x000868C0 + .word 0x000868C0, 0x000881F0 + .word 0x000881F0, 0x00089B20 + .word 0x00089B20, 0x0008B450 + .word 0x0008B450, 0x0008B498 + .word 0x0008B498, 0x0008B4E0 + .word 0x0008B4E0, 0x0008CE10 + .word 0x0008CE10, 0x0008E740 + .word 0x0008E740, 0x00090070 + .word 0x00090070, 0x000919A0 + .word 0x000919A0, 0x000919E8 + .word 0x000919E8, 0x00091A30 + .word 0x00091A30, 0x00093360 + .word 0x00093360, 0x00094C90 + .word 0x00094C90, 0x000965C0 + .word 0x000965C0, 0x00097EF0 + .word 0x00097EF0, 0x00097F38 + .word 0x00097F38, 0x00097F80 + .word 0x00097F80, 0x000998B0 + .word 0x000998B0, 0x0009B1E0 + .word 0x0009B1E0, 0x0009CB10 + .word 0x0009CB10, 0x0009E440 + .word 0x0009E440, 0x0009E488 + .word 0x0009E488, 0x0009E4D0 + .word 0x0009E4D0, 0x0009FE00 + .word 0x0009FE00, 0x000A1730 + .word 0x000A1730, 0x000A3060 + .word 0x000A3060, 0x000A4990 + .word 0x000A4990, 0x000A49D8 + .word 0x000A49D8, 0x000A4A20 + .word 0x000A4A20, 0x000A6350 + .word 0x000A6350, 0x000A7C80 + .word 0x000A7C80, 0x000A95B0 + .word 0x000A95B0, 0x000AAEE0 + .word 0x000AAEE0, 0x000AAF28 + .word 0x000AAF28, 0x000AAF70 + .word 0x000AAF70, 0x000AC8A0 + .word 0x000AC8A0, 0x000AE1D0 + .word 0x000AE1D0, 0x000AFB00 + .word 0x000AFB00, 0x000B1430 + .word 0x000B1430, 0x000B1478 + .word 0x000B1478, 0x000B14C0 + .word 0x000B14C0, 0x000B2DF0 + .word 0x000B2DF0, 0x000B4720 + .word 0x000B4720, 0x000B6050 + .word 0x000B6050, 0x000B7980 + .word 0x000B7980, 0x000B79C8 + .word 0x000B79C8, 0x000B7A10 + .word 0x000B7A10, 0x000B9340 + .word 0x000B9340, 0x000B9340 + .word 0x000B9340, 0x000BAC70 + .word 0x000BAC70, 0x000BAC70 + .word 0x000BAC70, 0x000BACB8 + .word 0x000BACB8, 0x000BAD00 + .word 0x000BAD00, 0x000BC630 + .word 0x000BC630, 0x000BC630 + .word 0x000BC630, 0x000BDF60 + .word 0x000BDF60, 0x000BDF60 + .word 0x000BDF60, 0x000BDFA8 + .word 0x000BDFA8, 0x000BDFF0 + .word 0x000BDFF0, 0x000BF920 + .word 0x000BF920, 0x000BF920 + .word 0x000BF920, 0x000C1250 + .word 0x000C1250, 0x000C1250 + .word 0x000C1250, 0x000C1298 + .word 0x000C1298, 0x000C12E0 + .word 0x000C12E0, 0x000C12E0 + .word 0x000C12E0, 0x000C2C10 + .word 0x000C2C10, 0x000C2C10 + .word 0x000C2C10, 0x000C4540 + .word 0x000C4540, 0x000C4588 + .word 0x000C4588, 0x000C45D0 + .word 0x000C45D0, 0x000C45D0 + .word 0x000C45D0, 0x000C5F00 + .word 0x000C5F00, 0x000C5F00 + .word 0x000C5F00, 0x000C7830 + .word 0x000C7830, 0x000C7878 + .word 0x000C7878, 0x000C78C0 + .word 0x000C78C0, 0x000C78C0 + .word 0x000C78C0, 0x000C91F0 + .word 0x000C91F0, 0x000C91F0 + .word 0x000C91F0, 0x000CAB20 + .word 0x000CAB20, 0x000CAB68 + .word 0x000CAB68, 0x000CABB0 + .word 0x000CABB0, 0x000CC4E0 + .word 0x000CC4E0, 0x000CDE10 + .word 0x000CDE10, 0x000CF740 + .word 0x000CF740, 0x000D1070 + .word 0x000D1070, 0x000D10B8 + .word 0x000D10B8, 0x000D1100 + .word 0x000D1100, 0x000D2A30 + .word 0x000D2A30, 0x000D4360 + .word 0x000D4360, 0x000D5C90 + .word 0x000D5C90, 0x000D75C0 + .word 0x000D75C0, 0x000D7608 + .word 0x000D7608, 0x000D7650 + .word 0x000D7650, 0x000D8F80 + .word 0x000D8F80, 0x000DA8B0 + .word 0x000DA8B0, 0x000DC1E0 + .word 0x000DC1E0, 0x000DDB10 + .word 0x000DDB10, 0x000DDB58 + .word 0x000DDB58, 0x000DDBA0 + .word 0x000DDBA0, 0x000DF4D0 + .word 0x000DF4D0, 0x000E0E00 + .word 0x000E0E00, 0x000E2730 + .word 0x000E2730, 0x000E4060 + .word 0x000E4060, 0x000E40A8 + .word 0x000E40A8, 0x000E40F0 + .word 0x000E40F0, 0x000E5A20 + .word 0x000E5A20, 0x000E7350 + .word 0x000E7350, 0x000E8C80 + .word 0x000E8C80, 0x000EA5B0 + .word 0x000EA5B0, 0x000EA5F8 + .word 0x000EA5F8, 0x000EA640 + .word 0x000EA640, 0x000EBF70 + .word 0x000EBF70, 0x000ED8A0 + .word 0x000ED8A0, 0x000EF1D0 + .word 0x000EF1D0, 0x000F0B00 + .word 0x000F0B00, 0x000F0B48 + .word 0x000F0B48, 0x000F0B90 + .word 0x000F0B90, 0x000F24C0 + .word 0x000F24C0, 0x000F3DF0 + .word 0x000F3DF0, 0x000F5720 + .word 0x000F5720, 0x000F7050 + .word 0x000F7050, 0x000F7098 + .word 0x000F7098, 0x000F70E0 + .word 0x000F70E0, 0x000F8A10 + .word 0x000F8A10, 0x000FA340 + .word 0x000FA340, 0x000FBC70 + .word 0x000FBC70, 0x000FD5A0 + .word 0x000FD5A0, 0x000FD5E8 + .word 0x000FD5E8, 0x000FD630 + .word 0x000FD630, 0x000FEF60 + .word 0x000FEF60, 0x00100890 + .word 0x00100890, 0x001021C0 + .word 0x001021C0, 0x00103AF0 + .word 0x00103AF0, 0x00103B38 + .word 0x00103B38, 0x00103B80 + .word 0x00103B80, 0x001054B0 + .word 0x001054B0, 0x00106DE0 + .word 0x00106DE0, 0x00108710 + .word 0x00108710, 0x0010A040 + .word 0x0010A040, 0x0010A088 + .word 0x0010A088, 0x0010A0D0 + .word 0x0010A0D0, 0x0010BA00 + .word 0x0010BA00, 0x0010D330 + .word 0x0010D330, 0x0010EC60 + .word 0x0010EC60, 0x00110590 + .word 0x00110590, 0x001105D8 + .word 0x001105D8, 0x00110620 + .word 0x00110620, 0x00111F50 + .word 0x00111F50, 0x00113880 + .word 0x00113880, 0x001151B0 + .word 0x001151B0, 0x00116AE0 + .word 0x00116AE0, 0x00116B28 + .word 0x00116B28, 0x00116B70 + .word 0x00116B70, 0x001184A0 + .word 0x001184A0, 0x00119DD0 + .word 0x00119DD0, 0x0011B700 + .word 0x0011B700, 0x0011D030 + .word 0x0011D030, 0x0011D078 + .word 0x0011D078, 0x0011D0C0 + .word 0x0011D0C0, 0x0011E9F0 + .word 0x0011E9F0, 0x00120320 + .word 0x00120320, 0x00121C50 + .word 0x00121C50, 0x00123580 + .word 0x00123580, 0x001235C8 + .word 0x001235C8, 0x00123610 + .word 0x00123610, 0x00124F40 + .word 0x00124F40, 0x00126870 + .word 0x00126870, 0x001281A0 + .word 0x001281A0, 0x00129AD0 + .word 0x00129AD0, 0x00129B18 + .word 0x00129B18, 0x00129B60 + .word 0x00129B60, 0x0012B490 + .word 0x0012B490, 0x0012CDC0 + .word 0x0012CDC0, 0x0012E6F0 + .word 0x0012E6F0, 0x00130020 + .word 0x00130020, 0x00130068 + .word 0x00130068, 0x001300B0 + .word 0x001300B0, 0x001319E0 + .word 0x001319E0, 0x00133310 + .word 0x00133310, 0x00134C40 + .word 0x00134C40, 0x00136570 + .word 0x00136570, 0x001365B8 + .word 0x001365B8, 0x00136600 + .word 0x00136600, 0x00137F30 + .word 0x00137F30, 0x00139860 + .word 0x00139860, 0x0013B190 + .word 0x0013B190, 0x0013CAC0 + .word 0x0013CAC0, 0x0013CB08 + .word 0x0013CB08, 0x0013CB50 + .word 0x0013CB50, 0x0013E480 + .word 0x0013E480, 0x0013FDB0 + .word 0x0013FDB0, 0x001416E0 + .word 0x001416E0, 0x00143010 + .word 0x00143010, 0x00143058 + .word 0x00143058, 0x001430A0 + .word 0x001430A0, 0x001449D0 + .word 0x001449D0, 0x00146300 + .word 0x00146300, 0x00147C30 + .word 0x00147C30, 0x00149560 + .word 0x00149560, 0x001495A8 + .word 0x001495A8, 0x001495F0 + .word 0x001495F0, 0x0014AF20 + .word 0x0014AF20, 0x0014C850 + .word 0x0014C850, 0x0014E180 + .word 0x0014E180, 0x0014FAB0 + .word 0x0014FAB0, 0x0014FAF8 + .word 0x0014FAF8, 0x0014FB40 + .word 0x0014FB40, 0x00151470 + .word 0x00151470, 0x00152DA0 + .word 0x00152DA0, 0x001546D0 + .word 0x001546D0, 0x00156000 + .word 0x00156000, 0x00156048 + .word 0x00156048, 0x00156090 + .word 0x00156090, 0x001579C0 + .word 0x001579C0, 0x001592F0 + .word 0x001592F0, 0x0015AC20 + .word 0x0015AC20, 0x0015C550 + .word 0x0015C550, 0x0015C598 + .word 0x0015C598, 0x0015C5E0 + .word 0x0015C5E0, 0x0015DF10 + .word 0x0015DF10, 0x0015F840 + .word 0x0015F840, 0x00161170 + .word 0x00161170, 0x00162AA0 + .word 0x00162AA0, 0x00162AE8 + .word 0x00162AE8, 0x00162B30 + .word 0x00162B30, 0x00164460 + .word 0x00164460, 0x00165D90 + .word 0x00165D90, 0x001676C0 + .word 0x001676C0, 0x00168FF0 + .word 0x00168FF0, 0x00169038 + .word 0x00169038, 0x00169080 + .word 0x00169080, 0x0016A9B0 + .word 0x0016A9B0, 0x0016C2E0 + .word 0x0016C2E0, 0x0016DC10 + .word 0x0016DC10, 0x0016F540 + .word 0x0016F540, 0x0016F588 + .word 0x0016F588, 0x0016F5D0 + .word 0x0016F5D0, 0x00170F00 + .word 0x00170F00, 0x00172830 + .word 0x00172830, 0x00174160 + .word 0x00174160, 0x00175A90 + .word 0x00175A90, 0x00175AD8 + .word 0x00175AD8, 0x00175B20 + .word 0x00175B20, 0x00177450 + .word 0x00177450, 0x00178D80 + .word 0x00178D80, 0x0017A6B0 + .word 0x0017A6B0, 0x0017BFE0 + .word 0x0017BFE0, 0x0017C028 + .word 0x0017C028, 0x0017C070 + .word 0x0017C070, 0x0017D9A0 + .word 0x0017D9A0, 0x0017F2D0 + .word 0x0017F2D0, 0x00180C00 + .word 0x00180C00, 0x00182530 + .word 0x00182530, 0x00182578 + .word 0x00182578, 0x001825C0 + .word 0x001825C0, 0x00183EF0 + .word 0x00183EF0, 0x00185820 + .word 0x00185820, 0x00187150 + .word 0x00187150, 0x00188A80 + .word 0x00188A80, 0x00188AC8 + .word 0x00188AC8, 0x00188B10 + .word 0x00188B10, 0x0018A440 + .word 0x0018A440, 0x0018BD70 + .word 0x0018BD70, 0x0018D6A0 + .word 0x0018D6A0, 0x0018EFD0 + .word 0x0018EFD0, 0x0018F018 + .word 0x0018F018, 0x0018F060 + .word 0x0018F060, 0x00190990 + .word 0x00190990, 0x001922C0 + .word 0x001922C0, 0x00193BF0 + .word 0x00193BF0, 0x00195520 + .word 0x00195520, 0x00195568 + .word 0x00195568, 0x001955B0 + .word 0x001955B0, 0x00196EE0 + .word 0x00196EE0, 0x00198810 + .word 0x00198810, 0x0019A140 + .word 0x0019A140, 0x0019BA70 + .word 0x0019BA70, 0x0019BAB8 + .word 0x0019BAB8, 0x0019BB00 + .word 0x0019BB00, 0x0019D430 + .word 0x0019D430, 0x0019ED60 + .word 0x0019ED60, 0x001A0690 + .word 0x001A0690, 0x001A1FC0 + .word 0x001A1FC0, 0x001A2008 + .word 0x001A2008, 0x001A2050 + .word 0x001A2050, 0x001A3980 + .word 0x001A3980, 0x001A52B0 + .word 0x001A52B0, 0x001A6BE0 + .word 0x001A6BE0, 0x001A8510 + .word 0x001A8510, 0x001A8558 + .word 0x001A8558, 0x001A85A0 + .word 0x001A85A0, 0x001A9ED0 + .word 0x001A9ED0, 0x001AB800 + .word 0x001AB800, 0x001AD130 + .word 0x001AD130, 0x001AEA60 + .word 0x001AEA60, 0x001AEAA8 + .word 0x001AEAA8, 0x001AEAF0 + .word 0x001AEAF0, 0x001B0420 + .word 0x001B0420, 0x001B1D50 + .word 0x001B1D50, 0x001B3680 + .word 0x001B3680, 0x001B4FB0 + .word 0x001B4FB0, 0x001B4FF8 + .word 0x001B4FF8, 0x001B5040 + .word 0x001B5040, 0x001B6970 + .word 0x001B6970, 0x001B82A0 + .word 0x001B82A0, 0x001B9BD0 + .word 0x001B9BD0, 0x001BB500 + .word 0x001BB500, 0x001BB548 + .word 0x001BB548, 0x001BB590 + .word 0x001BB590, 0x001BCEC0 + .word 0x001BCEC0, 0x001BE7F0 + .word 0x001BE7F0, 0x001C0120 + .word 0x001C0120, 0x001C1A50 + .word 0x001C1A50, 0x001C1A98 + .word 0x001C1A98, 0x001C1AE0 + .word 0x001C1AE0, 0x001C3410 + .word 0x001C3410, 0x001C4D40 + .word 0x001C4D40, 0x001C6670 + .word 0x001C6670, 0x001C7FA0 + .word 0x001C7FA0, 0x001C7FE8 + .word 0x001C7FE8, 0x001C8030 + .word 0x001C8030, 0x001C9960 + .word 0x001C9960, 0x001CB290 + .word 0x001CB290, 0x001CCBC0 + .word 0x001CCBC0, 0x001CE4F0 + .word 0x001CE4F0, 0x001CE538 + .word 0x001CE538, 0x001CE580 + .word 0x001CE580, 0x001CFEB0 + .word 0x001CFEB0, 0x001D17E0 + .word 0x001D17E0, 0x001D3110 + .word 0x001D3110, 0x001D4A40 + .word 0x001D4A40, 0x001D4A88 + .word 0x001D4A88, 0x001D4AD0 + .word 0x001D4AD0, 0x001D6400 + .word 0x001D6400, 0x001D7D30 + .word 0x001D7D30, 0x001D9660 + .word 0x001D9660, 0x001DAF90 + .word 0x001DAF90, 0x001DAFD8 + .word 0x001DAFD8, 0x001DB020 + .word 0x001DB020, 0x001DC950 + .word 0x001DC950, 0x001DE280 + .word 0x001DE280, 0x001DFBB0 + .word 0x001DFBB0, 0x001E14E0 + .word 0x001E14E0, 0x001E1528 + .word 0x001E1528, 0x001E1570 + .word 0x001E1570, 0x001E2EA0 + .word 0x001E2EA0, 0x001E47D0 + .word 0x001E47D0, 0x001E6100 + .word 0x001E6100, 0x001E7A30 + .word 0x001E7A30, 0x001E7A78 + .word 0x001E7A78, 0x001E7AC0 + .word 0x001E7AC0, 0x001E93F0 + .word 0x001E93F0, 0x001EAD20 + .word 0x001EAD20, 0x001EC650 + .word 0x001EC650, 0x001EDF80 + .word 0x001EDF80, 0x001EDFC8 + .word 0x001EDFC8, 0x001EE010 + .word 0x001EE010, 0x001EE010 + .word 0x001EE010, 0x001EF940 + .word 0x001EF940, 0x001EF940 + .word 0x001EF940, 0x001F1270 + .word 0x001F1270, 0x001F12B8 + .word 0x001F12B8, 0x001F1300 + .word 0x001F1300, 0x001F1300 + .word 0x001F1300, 0x001F2C30 + .word 0x001F2C30, 0x001F2C30 + .word 0x001F2C30, 0x001F4560 + .word 0x001F4560, 0x001F45A8 + .word 0x001F45A8, 0x001F45F0 + .word 0x001F45F0, 0x001F5F20 + .word 0x001F5F20, 0x001F7850 + .word 0x001F7850, 0x001F9180 + .word 0x001F9180, 0x001FAAB0 + .word 0x001FAAB0, 0x001FAAF8 + .word 0x001FAAF8, 0x001FAB40 + .word 0x001FAB40, 0x001FC470 + .word 0x001FC470, 0x001FDDA0 + .word 0x001FDDA0, 0x001FF6D0 + .word 0x001FF6D0, 0x00201000 + .word 0x00201000, 0x00201048 + .word 0x00201048, 0x00201090 + .word 0x00201090, 0x002029C0 + .word 0x002029C0, 0x002042F0 + .word 0x002042F0, 0x00205C20 + .word 0x00205C20, 0x00207550 + .word 0x00207550, 0x00207598 + .word 0x00207598, 0x002075E0 + .word 0x002075E0, 0x00208F10 + .word 0x00208F10, 0x0020A840 + .word 0x0020A840, 0x0020C170 + .word 0x0020C170, 0x0020DAA0 + .word 0x0020DAA0, 0x0020DAE8 + .word 0x0020DAE8, 0x0020DB30 + .word 0x0020DB30, 0x0020F460 + .word 0x0020F460, 0x00210D90 + .word 0x00210D90, 0x002126C0 + .word 0x002126C0, 0x00213FF0 + .word 0x00213FF0, 0x00214038 + .word 0x00214038, 0x00214080 + .word 0x00214080, 0x002159B0 + .word 0x002159B0, 0x002172E0 + .word 0x002172E0, 0x00218C10 + .word 0x00218C10, 0x0021A540 + .word 0x0021A540, 0x0021A588 + .word 0x0021A588, 0x0021A5D0 + .word 0x0021A5D0, 0x0021BF00 + .word 0x0021BF00, 0x0021D830 + .word 0x0021D830, 0x0021F160 + .word 0x0021F160, 0x00220A90 + .word 0x00220A90, 0x00220AD8 + .word 0x00220AD8, 0x00220B20 + .word 0x00220B20, 0x00222450 + .word 0x00222450, 0x00223D80 + .word 0x00223D80, 0x002256B0 + .word 0x002256B0, 0x00226FE0 + .word 0x00226FE0, 0x00227028 + .word 0x00227028, 0x00227070 + .word 0x00227070, 0x002289A0 + .word 0x002289A0, 0x0022A2D0 + .word 0x0022A2D0, 0x0022BC00 + .word 0x0022BC00, 0x0022D530 + .word 0x0022D530, 0x0022D578 + .word 0x0022D578, 0x0022D5C0 + .word 0x0022D5C0, 0x0022EEF0 + .word 0x0022EEF0, 0x00230820 + .word 0x00230820, 0x00232150 + .word 0x00232150, 0x00233A80 + .word 0x00233A80, 0x00233AC8 + .word 0x00233AC8, 0x00233B10 + .word 0x00233B10, 0x00235440 + .word 0x00235440, 0x00236D70 + .word 0x00236D70, 0x002386A0 + .word 0x002386A0, 0x00239FD0 + .word 0x00239FD0, 0x0023A018 + .word 0x0023A018, 0x0023A060 + .word 0x0023A060, 0x0023B990 + .word 0x0023B990, 0x0023D2C0 + .word 0x0023D2C0, 0x0023EBF0 + .word 0x0023EBF0, 0x00240520 + .word 0x00240520, 0x00240568 + .word 0x00240568, 0x002405B0 + .word 0x002405B0, 0x00241EE0 + .word 0x00241EE0, 0x00243810 + .word 0x00243810, 0x00245140 + .word 0x00245140, 0x00246A70 + .word 0x00246A70, 0x00246AB8 + .word 0x00246AB8, 0x00246B00 + .word 0x00246B00, 0x00248430 + .word 0x00248430, 0x00249D60 + .word 0x00249D60, 0x0024B690 + .word 0x0024B690, 0x0024CFC0 + .word 0x0024CFC0, 0x0024D008 + .word 0x0024D008, 0x0024D050 + .word 0x0024D050, 0x0024E980 + .word 0x0024E980, 0x002502B0 + .word 0x002502B0, 0x00251BE0 + .word 0x00251BE0, 0x00253510 + .word 0x00253510, 0x00253558 + .word 0x00253558, 0x002535A0 + .word 0x002535A0, 0x00254ED0 + .word 0x00254ED0, 0x00256800 + .word 0x00256800, 0x00258130 + .word 0x00258130, 0x00259A60 + .word 0x00259A60, 0x00259AA8 + .word 0x00259AA8, 0x00259AF0 + .word 0x00259AF0, 0x0025B420 + .word 0x0025B420, 0x0025CD50 + .word 0x0025CD50, 0x0025E680 + .word 0x0025E680, 0x0025FFB0 + .word 0x0025FFB0, 0x0025FFF8 + .word 0x0025FFF8, 0x00260040 + .word 0x00260040, 0x00260040 + .word 0x00260040, 0x00261970 + .word 0x00261970, 0x00261970 + .word 0x00261970, 0x002632A0 + .word 0x002632A0, 0x002632E8 + .word 0x002632E8, 0x00263330 + .word 0x00263330, 0x00263330 + .word 0x00263330, 0x00264C60 + .word 0x00264C60, 0x00264C60 + .word 0x00264C60, 0x00266590 + .word 0x00266590, 0x002665D8 + .word 0x002665D8, 0x00266620 + .word 0x00266620, 0x00267F50 + .word 0x00267F50, 0x00269880 + .word 0x00269880, 0x0026B1B0 + .word 0x0026B1B0, 0x0026CAE0 + .word 0x0026CAE0, 0x0026CB28 + .word 0x0026CB28, 0x0026CB70 + .word 0x0026CB70, 0x0026E4A0 + .word 0x0026E4A0, 0x0026FDD0 + .word 0x0026FDD0, 0x00271700 + .word 0x00271700, 0x00273030 + .word 0x00273030, 0x00273078 + .word 0x00273078, 0x002730C0 + .word 0x002730C0, 0x002749F0 + .word 0x002749F0, 0x00276320 + .word 0x00276320, 0x00277C50 + .word 0x00277C50, 0x00279580 + .word 0x00279580, 0x002795C8 + .word 0x002795C8, 0x00279610 + .word 0x00279610, 0x0027AF40 + .word 0x0027AF40, 0x0027C870 + .word 0x0027C870, 0x0027E1A0 + .word 0x0027E1A0, 0x0027FAD0 + .word 0x0027FAD0, 0x0027FB18 + .word 0x0027FB18, 0x0027FB60 + .word 0x0027FB60, 0x0027FB60 + .word 0x0027FB60, 0x00281490 + .word 0x00281490, 0x00281490 + .word 0x00281490, 0x00282DC0 + .word 0x00282DC0, 0x00282E08 + .word 0x00282E08, 0x00282E50 + .word 0x00282E50, 0x00282E50 + .word 0x00282E50, 0x00284780 + .word 0x00284780, 0x00284780 + .word 0x00284780, 0x002860B0 + .word 0x002860B0, 0x002860F8 + .word 0x002860F8, 0x00286140 + .word 0x00286140, 0x00287A70 + .word 0x00287A70, 0x002893A0 + .word 0x002893A0, 0x0028ACD0 + .word 0x0028ACD0, 0x0028C600 + .word 0x0028C600, 0x0028C648 + .word 0x0028C648, 0x0028C690 + .word 0x0028C690, 0x0028DFC0 + .word 0x0028DFC0, 0x0028F8F0 + .word 0x0028F8F0, 0x00291220 + .word 0x00291220, 0x00292B50 + .word 0x00292B50, 0x00292B98 + .word 0x00292B98, 0x00292BE0 + .word 0x00292BE0, 0x00294510 + .word 0x00294510, 0x00295E40 + .word 0x00295E40, 0x00297770 + .word 0x00297770, 0x002990A0 + .word 0x002990A0, 0x002990E8 + .word 0x002990E8, 0x00299130 + .word 0x00299130, 0x0029AA60 + .word 0x0029AA60, 0x0029C390 + .word 0x0029C390, 0x0029DCC0 + .word 0x0029DCC0, 0x0029F5F0 + .word 0x0029F5F0, 0x0029F638 + .word 0x0029F638, 0x0029F680 + .word 0x0029F680, 0x002A0FB0 + .word 0x002A0FB0, 0x002A28E0 + .word 0x002A28E0, 0x002A4210 + .word 0x002A4210, 0x002A5B40 + .word 0x002A5B40, 0x002A5B88 + .word 0x002A5B88, 0x002A5BD0 + .word 0x002A5BD0, 0x002A7500 + .word 0x002A7500, 0x002A7500 + .word 0x002A7500, 0x002A8E30 + .word 0x002A8E30, 0x002A8E30 + .word 0x002A8E30, 0x002A8E78 + .word 0x002A8E78, 0x002A8EC0 + .word 0x002A8EC0, 0x002AA7F0 + .word 0x002AA7F0, 0x002AC120 + .word 0x002AC120, 0x002ADA50 + .word 0x002ADA50, 0x002AF380 + .word 0x002AF380, 0x002AF3C8 + .word 0x002AF3C8, 0x002AF410 + .word 0x002AF410, 0x002B0D40 + .word 0x002B0D40, 0x002B0D40 + .word 0x002B0D40, 0x002B2670 + .word 0x002B2670, 0x002B2670 + .word 0x002B2670, 0x002B26B8 + .word 0x002B26B8, 0x002B2700 + .word 0x002B2700, 0x002B4030 + .word 0x002B4030, 0x002B5960 + .word 0x002B5960, 0x002B7290 + .word 0x002B7290, 0x002B8BC0 + .word 0x002B8BC0, 0x002B8C08 + .word 0x002B8C08, 0x002B8C50 + .word 0x002B8C50, 0x002BA580 + .word 0x002BA580, 0x002BBEB0 + .word 0x002BBEB0, 0x002BD7E0 + .word 0x002BD7E0, 0x002BF110 + .word 0x002BF110, 0x002BF158 + .word 0x002BF158, 0x002BF1A0 + .word 0x002BF1A0, 0x002C0AD0 + .word 0x002C0AD0, 0x002C2400 + .word 0x002C2400, 0x002C3D30 + .word 0x002C3D30, 0x002C5660 + .word 0x002C5660, 0x002C56A8 + .word 0x002C56A8, 0x002C56F0 + .word 0x002C56F0, 0x002C7020 + .word 0x002C7020, 0x002C8950 + .word 0x002C8950, 0x002CA280 + .word 0x002CA280, 0x002CBBB0 + .word 0x002CBBB0, 0x002CBBF8 + .word 0x002CBBF8, 0x002CBC40 + .word 0x002CBC40, 0x002CBC40 + .word 0x002CBC40, 0x002CD570 + .word 0x002CD570, 0x002CD570 + .word 0x002CD570, 0x002CEEA0 + .word 0x002CEEA0, 0x002CEEE8 + .word 0x002CEEE8, 0x002CEF30 + .word 0x002CEF30, 0x002CEF30 + .word 0x002CEF30, 0x002D0860 + .word 0x002D0860, 0x002D0860 + .word 0x002D0860, 0x002D2190 + .word 0x002D2190, 0x002D21D8 + .word 0x002D21D8, 0x002D2220 + .word 0x002D2220, 0x002D3B50 + .word 0x002D3B50, 0x002D5480 + .word 0x002D5480, 0x002D6DB0 + .word 0x002D6DB0, 0x002D86E0 + .word 0x002D86E0, 0x002D8728 + .word 0x002D8728, 0x002D8770 + .word 0x002D8770, 0x002DA0A0 + .word 0x002DA0A0, 0x002DB9D0 + .word 0x002DB9D0, 0x002DD300 + .word 0x002DD300, 0x002DEC30 + .word 0x002DEC30, 0x002DEC78 + .word 0x002DEC78, 0x002DECC0 + .word 0x002DECC0, 0x002E05F0 + .word 0x002E05F0, 0x002E05F0 + .word 0x002E05F0, 0x002E1F20 + .word 0x002E1F20, 0x002E1F20 + .word 0x002E1F20, 0x002E1F68 + .word 0x002E1F68, 0x002E1FB0 + .word 0x002E1FB0, 0x002E38E0 + .word 0x002E38E0, 0x002E5210 + .word 0x002E5210, 0x002E6B40 + .word 0x002E6B40, 0x002E8470 + .word 0x002E8470, 0x002E84B8 + .word 0x002E84B8, 0x002E8500 + .word 0x002E8500, 0x002E9E30 + .word 0x002E9E30, 0x002EB760 + .word 0x002EB760, 0x002ED090 + .word 0x002ED090, 0x002EE9C0 + .word 0x002EE9C0, 0x002EEA08 + .word 0x002EEA08, 0x002EEA50 + .word 0x002EEA50, 0x002F0380 + .word 0x002F0380, 0x002F1CB0 + .word 0x002F1CB0, 0x002F35E0 + .word 0x002F35E0, 0x002F4F10 + .word 0x002F4F10, 0x002F4F58 + .word 0x002F4F58, 0x002F4FA0 + .word 0x002F4FA0, 0x002F4FA0 + .word 0x002F4FA0, 0x002F68D0 + .word 0x002F68D0, 0x002F68D0 + .word 0x002F68D0, 0x002F8200 + .word 0x002F8200, 0x002F8248 + .word 0x002F8248, 0x002F8290 + .word 0x002F8290, 0x002F9BC0 + .word 0x002F9BC0, 0x002FB4F0 + .word 0x002FB4F0, 0x002FCE20 + .word 0x002FCE20, 0x002FE750 + .word 0x002FE750, 0x002FE798 + .word 0x002FE798, 0x002FE7E0 + .word 0x002FE7E0, 0x00300110 + .word 0x00300110, 0x00301A40 + .word 0x00301A40, 0x00303370 + .word 0x00303370, 0x00304CA0 + .word 0x00304CA0, 0x00304CE8 + .word 0x00304CE8, 0x00304D30 + .word 0x00304D30, 0x00306660 + .word 0x00306660, 0x00307F90 + .word 0x00307F90, 0x003098C0 + .word 0x003098C0, 0x0030B1F0 + .word 0x0030B1F0, 0x0030B238 + .word 0x0030B238, 0x0030B280 + .word 0x0030B280, 0x0030B280 + .word 0x0030B280, 0x0030CBB0 + .word 0x0030CBB0, 0x0030CBB0 + .word 0x0030CBB0, 0x0030E4E0 + .word 0x0030E4E0, 0x0030E528 + .word 0x0030E528, 0x0030E570 + .word 0x0030E570, 0x0030FEA0 + .word 0x0030FEA0, 0x003117D0 + .word 0x003117D0, 0x00313100 + .word 0x00313100, 0x00314A30 + .word 0x00314A30, 0x00314A78 + .word 0x00314A78, 0x00314AC0 + .word 0x00314AC0, 0x003163F0 + .word 0x003163F0, 0x00317D20 + .word 0x00317D20, 0x00319650 + .word 0x00319650, 0x0031AF80 + .word 0x0031AF80, 0x0031AFC8 + .word 0x0031AFC8, 0x0031B010 + .word 0x0031B010, 0x0031C940 + .word 0x0031C940, 0x0031E270 + .word 0x0031E270, 0x0031FBA0 + .word 0x0031FBA0, 0x003214D0 + .word 0x003214D0, 0x00321518 + .word 0x00321518, 0x00321560 + .word 0x00321560, 0x00322E90 + .word 0x00322E90, 0x003247C0 + .word 0x003247C0, 0x003260F0 + .word 0x003260F0, 0x00327A20 + .word 0x00327A20, 0x00327A68 + .word 0x00327A68, 0x00327AB0 + .word 0x00327AB0, 0x00327AB0 + .word 0x00327AB0, 0x003293E0 + .word 0x003293E0, 0x003293E0 + .word 0x003293E0, 0x0032AD10 + .word 0x0032AD10, 0x0032AD58 + .word 0x0032AD58, 0x0032ADA0 + .word 0x0032ADA0, 0x0032C6D0 + .word 0x0032C6D0, 0x0032E000 + .word 0x0032E000, 0x0032F930 + .word 0x0032F930, 0x00331260 + .word 0x00331260, 0x003312A8 + .word 0x003312A8, 0x003312F0 + .word 0x003312F0, 0x00332C20 + .word 0x00332C20, 0x00334550 + .word 0x00334550, 0x00335E80 + .word 0x00335E80, 0x003377B0 + .word 0x003377B0, 0x003377F8 + .word 0x003377F8, 0x00337840 + .word 0x00337840, 0x00339170 + .word 0x00339170, 0x0033AAA0 + .word 0x0033AAA0, 0x0033C3D0 + .word 0x0033C3D0, 0x0033DD00 + .word 0x0033DD00, 0x0033DD48 + .word 0x0033DD48, 0x0033DD90 + .word 0x0033DD90, 0x0033F6C0 + .word 0x0033F6C0, 0x00340FF0 + .word 0x00340FF0, 0x00342920 + .word 0x00342920, 0x00344250 + .word 0x00344250, 0x00344298 + .word 0x00344298, 0x003442E0 + .word 0x003442E0, 0x00345C10 + .word 0x00345C10, 0x00347540 + .word 0x00347540, 0x00348E70 + .word 0x00348E70, 0x0034A7A0 + .word 0x0034A7A0, 0x0034A7E8 + .word 0x0034A7E8, 0x0034A830 + .word 0x0034A830, 0x0034C160 + .word 0x0034C160, 0x0034DA90 + .word 0x0034DA90, 0x0034F3C0 + .word 0x0034F3C0, 0x00350CF0 + .word 0x00350CF0, 0x00350D38 + .word 0x00350D38, 0x00350D80 + .word 0x00350D80, 0x00350D80 + .word 0x00350D80, 0x003526B0 + .word 0x003526B0, 0x003526B0 + .word 0x003526B0, 0x00353FE0 + .word 0x00353FE0, 0x00354028 + .word 0x00354028, 0x00354070 + .word 0x00354070, 0x00354070 + .word 0x00354070, 0x003559A0 + .word 0x003559A0, 0x003559A0 + .word 0x003559A0, 0x003572D0 + .word 0x003572D0, 0x00357318 + .word 0x00357318, 0x00357360 + .word 0x00357360, 0x00357360 + .word 0x00357360, 0x00358C90 + .word 0x00358C90, 0x00358C90 + .word 0x00358C90, 0x0035A5C0 + .word 0x0035A5C0, 0x0035A608 + .word 0x0035A608, 0x0035A650 + .word 0x0035A650, 0x0035BF80 + .word 0x0035BF80, 0x0035D8B0 + .word 0x0035D8B0, 0x0035F1E0 + .word 0x0035F1E0, 0x00360B10 + .word 0x00360B10, 0x00360B58 + .word 0x00360B58, 0x00360BA0 + .word 0x00360BA0, 0x003624D0 + .word 0x003624D0, 0x00363E00 + .word 0x00363E00, 0x00365730 + .word 0x00365730, 0x00367060 + .word 0x00367060, 0x003670A8 + .word 0x003670A8, 0x003670F0 + .word 0x003670F0, 0x00368A20 + .word 0x00368A20, 0x0036A350 + .word 0x0036A350, 0x0036BC80 + .word 0x0036BC80, 0x0036D5B0 + .word 0x0036D5B0, 0x0036D5F8 + .word 0x0036D5F8, 0x0036D640 + .word 0x0036D640, 0x0036D640 + .word 0x0036D640, 0x0036EF70 + .word 0x0036EF70, 0x0036EF70 + .word 0x0036EF70, 0x003708A0 + .word 0x003708A0, 0x003708E8 + .word 0x003708E8, 0x00370930 + .word 0x00370930, 0x00370930 + .word 0x00370930, 0x00372260 + .word 0x00372260, 0x00372260 + .word 0x00372260, 0x00373B90 + .word 0x00373B90, 0x00373BD8 + .word 0x00373BD8, 0x00373C20 + .word 0x00373C20, 0x00375550 + .word 0x00375550, 0x00376E80 + .word 0x00376E80, 0x003787B0 + .word 0x003787B0, 0x0037A0E0 + .word 0x0037A0E0, 0x0037A128 + .word 0x0037A128, 0x0037A170 + .word 0x0037A170, 0x0037BAA0 + .word 0x0037BAA0, 0x0037D3D0 + .word 0x0037D3D0, 0x0037ED00 + .word 0x0037ED00, 0x00380630 + .word 0x00380630, 0x00380678 + .word 0x00380678, 0x003806C0 + .word 0x003806C0, 0x00381FF0 + .word 0x00381FF0, 0x00383920 + .word 0x00383920, 0x00385250 + .word 0x00385250, 0x00386B80 + .word 0x00386B80, 0x00386BC8 + .word 0x00386BC8, 0x00386C10 + .word 0x00386C10, 0x00388540 + .word 0x00388540, 0x00389E70 + .word 0x00389E70, 0x0038B7A0 + .word 0x0038B7A0, 0x0038D0D0 + .word 0x0038D0D0, 0x0038D118 + .word 0x0038D118, 0x0038D160 + .word 0x0038D160, 0x0038EA90 + .word 0x0038EA90, 0x003903C0 + .word 0x003903C0, 0x00391CF0 + .word 0x00391CF0, 0x00393620 + .word 0x00393620, 0x00393668 + .word 0x00393668, 0x003936B0 + .word 0x003936B0, 0x00394FE0 + .word 0x00394FE0, 0x00396910 + .word 0x00396910, 0x00398240 + .word 0x00398240, 0x00399B70 + .word 0x00399B70, 0x00399BB8 + .word 0x00399BB8, 0x00399C00 + .word 0x00399C00, 0x0039B530 + .word 0x0039B530, 0x0039CE60 + .word 0x0039CE60, 0x0039E790 + .word 0x0039E790, 0x003A00C0 + .word 0x003A00C0, 0x003A0108 + .word 0x003A0108, 0x003A0150 + .word 0x003A0150, 0x003A1A80 + .word 0x003A1A80, 0x003A33B0 + .word 0x003A33B0, 0x003A4CE0 + .word 0x003A4CE0, 0x003A6610 + .word 0x003A6610, 0x003A6658 + .word 0x003A6658, 0x003A66A0 + .word 0x003A66A0, 0x003A7FD0 + .word 0x003A7FD0, 0x003A9900 + .word 0x003A9900, 0x003AB230 + .word 0x003AB230, 0x003ACB60 + .word 0x003ACB60, 0x003ACBA8 + .word 0x003ACBA8, 0x003ACBF0 + .word 0x003ACBF0, 0x003AE520 + .word 0x003AE520, 0x003AFE50 + .word 0x003AFE50, 0x003B1780 + .word 0x003B1780, 0x003B30B0 + .word 0x003B30B0, 0x003B30F8 + .word 0x003B30F8, 0x003B3140 + .word 0x003B3140, 0x003B4A70 + .word 0x003B4A70, 0x003B63A0 + .word 0x003B63A0, 0x003B7CD0 + .word 0x003B7CD0, 0x003B9600 + .word 0x003B9600, 0x003B9648 + .word 0x003B9648, 0x003B9690 + .word 0x003B9690, 0x003BAFC0 + .word 0x003BAFC0, 0x003BC8F0 + .word 0x003BC8F0, 0x003BE220 + .word 0x003BE220, 0x003BFB50 + .word 0x003BFB50, 0x003BFB98 + .word 0x003BFB98, 0x003BFBE0 + .word 0x003BFBE0, 0x003C1510 + .word 0x003C1510, 0x003C2E40 + .word 0x003C2E40, 0x003C4770 + .word 0x003C4770, 0x003C60A0 + .word 0x003C60A0, 0x003C60E8 + .word 0x003C60E8, 0x003C6130 + .word 0x003C6130, 0x003C7A60 + .word 0x003C7A60, 0x003C9390 + .word 0x003C9390, 0x003CACC0 + .word 0x003CACC0, 0x003CC5F0 + .word 0x003CC5F0, 0x003CC638 + .word 0x003CC638, 0x003CC680 + .word 0x003CC680, 0x003CDFB0 + .word 0x003CDFB0, 0x003CF8E0 + .word 0x003CF8E0, 0x003D1210 + .word 0x003D1210, 0x003D2B40 + .word 0x003D2B40, 0x003D2B88 + .word 0x003D2B88, 0x003D2BD0 + .word 0x003D2BD0, 0x003D4500 + .word 0x003D4500, 0x003D5E30 + .word 0x003D5E30, 0x003D7760 + .word 0x003D7760, 0x003D9090 + .word 0x003D9090, 0x003D90D8 + .word 0x003D90D8, 0x003D9120 + .word 0x003D9120, 0x003DAA50 + .word 0x003DAA50, 0x003DC380 + .word 0x003DC380, 0x003DDCB0 + .word 0x003DDCB0, 0x003DF5E0 + .word 0x003DF5E0, 0x003DF628 + .word 0x003DF628, 0x003DF670 + .word 0x003DF670, 0x003E0FA0 + .word 0x003E0FA0, 0x003E28D0 + .word 0x003E28D0, 0x003E4200 + .word 0x003E4200, 0x003E5B30 + .word 0x003E5B30, 0x003E5B78 + .word 0x003E5B78, 0x003E5BC0 + .word 0x003E5BC0, 0x003E74F0 + .word 0x003E74F0, 0x003E8E20 + .word 0x003E8E20, 0x003EA750 + .word 0x003EA750, 0x003EC080 + .word 0x003EC080, 0x003EC0C8 + .word 0x003EC0C8, 0x003EC110 + .word 0x003EC110, 0x003EDA40 + .word 0x003EDA40, 0x003EF370 + .word 0x003EF370, 0x003F0CA0 + .word 0x003F0CA0, 0x003F25D0 + .word 0x003F25D0, 0x003F2618 + .word 0x003F2618, 0x003F2660 + .word 0x003F2660, 0x003F3F90 + .word 0x003F3F90, 0x003F58C0 + .word 0x003F58C0, 0x003F71F0 + .word 0x003F71F0, 0x003F8B20 + .word 0x003F8B20, 0x003F8B68 + .word 0x003F8B68, 0x003F8BB0 + .word 0x003F8BB0, 0x003FA4E0 + .word 0x003FA4E0, 0x003FBE10 + .word 0x003FBE10, 0x003FD740 + .word 0x003FD740, 0x003FF070 + .word 0x003FF070, 0x003FF0B8 + .word 0x003FF0B8, 0x003FF100 + .word 0x003FF100, 0x00400A30 + .word 0x00400A30, 0x00402360 + .word 0x00402360, 0x00403C90 + .word 0x00403C90, 0x004055C0 + .word 0x004055C0, 0x00405608 + .word 0x00405608, 0x00405650 + .word 0x00405650, 0x00406F80 + .word 0x00406F80, 0x004088B0 + .word 0x004088B0, 0x0040A1E0 + .word 0x0040A1E0, 0x0040BB10 + .word 0x0040BB10, 0x0040BB58 + .word 0x0040BB58, 0x0040BBA0 + .word 0x0040BBA0, 0x0040D4D0 + .word 0x0040D4D0, 0x0040EE00 + .word 0x0040EE00, 0x00410730 + .word 0x00410730, 0x00412060 + .word 0x00412060, 0x004120A8 + .word 0x004120A8, 0x004120F0 + .word 0x004120F0, 0x00413A20 + .word 0x00413A20, 0x00415350 + .word 0x00415350, 0x00416C80 + .word 0x00416C80, 0x004185B0 + .word 0x004185B0, 0x004185F8 + .word 0x004185F8, 0x00418640 + .word 0x00418640, 0x00419F70 + .word 0x00419F70, 0x0041B8A0 + .word 0x0041B8A0, 0x0041D1D0 + .word 0x0041D1D0, 0x0041EB00 + .word 0x0041EB00, 0x0041EB48 + .word 0x0041EB48, 0x0041EB90 + .word 0x0041EB90, 0x004204C0 + .word 0x004204C0, 0x00421DF0 + .word 0x00421DF0, 0x00423720 + .word 0x00423720, 0x00425050 + .word 0x00425050, 0x00425098 + .word 0x00425098, 0x004250E0 + .word 0x004250E0, 0x00426A10 + .word 0x00426A10, 0x00428340 + .word 0x00428340, 0x00429C70 + .word 0x00429C70, 0x0042B5A0 + .word 0x0042B5A0, 0x0042B5E8 + .word 0x0042B5E8, 0x0042B630 + .word 0x0042B630, 0x0042CF60 + .word 0x0042CF60, 0x0042E890 + .word 0x0042E890, 0x004301C0 + .word 0x004301C0, 0x00431AF0 + .word 0x00431AF0, 0x00431B38 + .word 0x00431B38, 0x00431B80 + .word 0x00431B80, 0x004334B0 + .word 0x004334B0, 0x00434DE0 + .word 0x00434DE0, 0x00436710 + .word 0x00436710, 0x00438040 + .word 0x00438040, 0x00438088 + .word 0x00438088, 0x004380D0 + .word 0x004380D0, 0x00439A00 + .word 0x00439A00, 0x0043B330 + .word 0x0043B330, 0x0043CC60 + .word 0x0043CC60, 0x0043E590 + .word 0x0043E590, 0x0043E5D8 + .word 0x0043E5D8, 0x0043E620 + .word 0x0043E620, 0x0043FF50 + .word 0x0043FF50, 0x00441880 + .word 0x00441880, 0x004431B0 + .word 0x004431B0, 0x00444AE0 + .word 0x00444AE0, 0x00444B28 + .word 0x00444B28, 0x00444B70 + .word 0x00444B70, 0x004464A0 + .word 0x004464A0, 0x00447DD0 + .word 0x00447DD0, 0x00449700 + .word 0x00449700, 0x0044B030 + .word 0x0044B030, 0x0044B078 + .word 0x0044B078, 0x0044B0C0 + .word 0x0044B0C0, 0x0044C9F0 + .word 0x0044C9F0, 0x0044E320 + .word 0x0044E320, 0x0044FC50 + .word 0x0044FC50, 0x00451580 + .word 0x00451580, 0x004515C8 + .word 0x004515C8, 0x00451610 + .word 0x00451610, 0x00452F40 + .word 0x00452F40, 0x00454870 + .word 0x00454870, 0x004561A0 + .word 0x004561A0, 0x00457AD0 + .word 0x00457AD0, 0x00457B18 + .word 0x00457B18, 0x00457B60 + .word 0x00457B60, 0x00459490 + .word 0x00459490, 0x0045ADC0 + .word 0x0045ADC0, 0x0045C6F0 + .word 0x0045C6F0, 0x0045E020 + .word 0x0045E020, 0x0045E068 + .word 0x0045E068, 0x0045E0B0 + .word 0x0045E0B0, 0x0045F9E0 + .word 0x0045F9E0, 0x00461310 + .word 0x00461310, 0x00462C40 + .word 0x00462C40, 0x00464570 + .word 0x00464570, 0x004645B8 + .word 0x004645B8, 0x00464600 + .word 0x00464600, 0x00465F30 + .word 0x00465F30, 0x00467860 + .word 0x00467860, 0x00469190 + .word 0x00469190, 0x0046AAC0 + .word 0x0046AAC0, 0x0046AB08 + .word 0x0046AB08, 0x0046AB50 + .word 0x0046AB50, 0x0046C480 + .word 0x0046C480, 0x0046DDB0 + .word 0x0046DDB0, 0x0046F6E0 + .word 0x0046F6E0, 0x00471010 + .word 0x00471010, 0x00471058 + .word 0x00471058, 0x004710A0 + .word 0x004710A0, 0x004729D0 + .word 0x004729D0, 0x00474300 + .word 0x00474300, 0x00475C30 + .word 0x00475C30, 0x00477560 + .word 0x00477560, 0x004775A8 + .word 0x004775A8, 0x004775F0 + .word 0x004775F0, 0x00478F20 + .word 0x00478F20, 0x0047A850 + .word 0x0047A850, 0x0047C180 + .word 0x0047C180, 0x0047DAB0 + .word 0x0047DAB0, 0x0047DAF8 + .word 0x0047DAF8, 0x0047DB40 + .word 0x0047DB40, 0x0047F470 + .word 0x0047F470, 0x00480DA0 + .word 0x00480DA0, 0x004826D0 + .word 0x004826D0, 0x00484000 + .word 0x00484000, 0x00484048 + .word 0x00484048, 0x00484090 + .word 0x00484090, 0x004859C0 + .word 0x004859C0, 0x004872F0 + .word 0x004872F0, 0x00488C20 + .word 0x00488C20, 0x0048A550 + .word 0x0048A550, 0x0048A598 + .word 0x0048A598, 0x0048A5E0 + .word 0x0048A5E0, 0x0048BF10 + .word 0x0048BF10, 0x0048D840 + .word 0x0048D840, 0x0048F170 + .word 0x0048F170, 0x00490AA0 + .word 0x00490AA0, 0x00490AE8 + .word 0x00490AE8, 0x00490B30 + .word 0x00490B30, 0x00492460 + .word 0x00492460, 0x00493D90 + .word 0x00493D90, 0x004956C0 + .word 0x004956C0, 0x00496FF0 + .word 0x00496FF0, 0x00497038 + .word 0x00497038, 0x00497080 + .word 0x00497080, 0x004989B0 + .word 0x004989B0, 0x0049A2E0 + .word 0x0049A2E0, 0x0049BC10 + .word 0x0049BC10, 0x0049D540 + .word 0x0049D540, 0x0049D588 + .word 0x0049D588, 0x0049D5D0 + .word 0x0049D5D0, 0x0049EF00 + .word 0x0049EF00, 0x004A0830 + .word 0x004A0830, 0x004A2160 + .word 0x004A2160, 0x004A3A90 + .word 0x004A3A90, 0x004A3AD8 + .word 0x004A3AD8, 0x004A3B20 + .word 0x004A3B20, 0x004A5450 + .word 0x004A5450, 0x004A6D80 + .word 0x004A6D80, 0x004A86B0 + .word 0x004A86B0, 0x004A9FE0 + .word 0x004A9FE0, 0x004AA028 + .word 0x004AA028, 0x004AA070 + .word 0x004AA070, 0x004AA070 + .word 0x004AA070, 0x004AB9A0 + .word 0x004AB9A0, 0x004AB9A0 + .word 0x004AB9A0, 0x004AD2D0 + .word 0x004AD2D0, 0x004AD318 + .word 0x004AD318, 0x004AD360 + .word 0x004AD360, 0x004AEC90 + .word 0x004AEC90, 0x004B05C0 + .word 0x004B05C0, 0x004B1EF0 + .word 0x004B1EF0, 0x004B3820 + .word 0x004B3820, 0x004B3868 + .word 0x004B3868, 0x004B38B0 + .word 0x004B38B0, 0x004B51E0 + .word 0x004B51E0, 0x004B6B10 + .word 0x004B6B10, 0x004B8440 + .word 0x004B8440, 0x004B9D70 + .word 0x004B9D70, 0x004B9DB8 + .word 0x004B9DB8, 0x004B9E00 + .word 0x004B9E00, 0x004BB730 + .word 0x004BB730, 0x004BD060 + .word 0x004BD060, 0x004BE990 + .word 0x004BE990, 0x004C02C0 + .word 0x004C02C0, 0x004C0308 + .word 0x004C0308, 0x004C0350 + .word 0x004C0350, 0x004C1C80 + .word 0x004C1C80, 0x004C35B0 + .word 0x004C35B0, 0x004C4EE0 + .word 0x004C4EE0, 0x004C6810 + .word 0x004C6810, 0x004C6858 + .word 0x004C6858, 0x004C68A0 + .word 0x004C68A0, 0x004C81D0 + .word 0x004C81D0, 0x004C9B00 + .word 0x004C9B00, 0x004CB430 + .word 0x004CB430, 0x004CCD60 + .word 0x004CCD60, 0x004CCDA8 + .word 0x004CCDA8, 0x004CCDF0 + .word 0x004CCDF0, 0x004CE720 + .word 0x004CE720, 0x004D0050 + .word 0x004D0050, 0x004D1980 + .word 0x004D1980, 0x004D32B0 + .word 0x004D32B0, 0x004D32F8 + .word 0x004D32F8, 0x004D3340 + .word 0x004D3340, 0x004D4C70 + .word 0x004D4C70, 0x004D65A0 + .word 0x004D65A0, 0x004D7ED0 + .word 0x004D7ED0, 0x004D9800 + .word 0x004D9800, 0x004D9848 + .word 0x004D9848, 0x004D9890 + .word 0x004D9890, 0x004DB1C0 + .word 0x004DB1C0, 0x004DCAF0 + .word 0x004DCAF0, 0x004DE420 + .word 0x004DE420, 0x004DFD50 + .word 0x004DFD50, 0x004DFD98 + .word 0x004DFD98, 0x004DFDE0 + .word 0x004DFDE0, 0x004E1710 + .word 0x004E1710, 0x004E3040 + .word 0x004E3040, 0x004E4970 + .word 0x004E4970, 0x004E62A0 + .word 0x004E62A0, 0x004E62E8 + .word 0x004E62E8, 0x004E6330 + .word 0x004E6330, 0x004E7C60 + .word 0x004E7C60, 0x004E9590 + .word 0x004E9590, 0x004EAEC0 + .word 0x004EAEC0, 0x004EC7F0 + .word 0x004EC7F0, 0x004EC838 + .word 0x004EC838, 0x004EC880 + .word 0x004EC880, 0x004EE1B0 + .word 0x004EE1B0, 0x004EFAE0 + .word 0x004EFAE0, 0x004F1410 + .word 0x004F1410, 0x004F2D40 + .word 0x004F2D40, 0x004F2D88 + .word 0x004F2D88, 0x004F2DD0 + .word 0x004F2DD0, 0x004F4700 + .word 0x004F4700, 0x004F6030 + .word 0x004F6030, 0x004F7960 + .word 0x004F7960, 0x004F9290 + .word 0x004F9290, 0x004F92D8 + .word 0x004F92D8, 0x004F9320 + .word 0x004F9320, 0x004FAC50 + .word 0x004FAC50, 0x004FC580 + .word 0x004FC580, 0x004FDEB0 + .word 0x004FDEB0, 0x004FF7E0 + .word 0x004FF7E0, 0x004FF828 + .word 0x004FF828, 0x004FF870 + .word 0x004FF870, 0x005011A0 + .word 0x005011A0, 0x00502AD0 + .word 0x00502AD0, 0x00504400 + .word 0x00504400, 0x00505D30 + .word 0x00505D30, 0x00505D78 + .word 0x00505D78, 0x00505DC0 + .word 0x00505DC0, 0x005076F0 + .word 0x005076F0, 0x00509020 + .word 0x00509020, 0x0050A950 + .word 0x0050A950, 0x0050C280 + .word 0x0050C280, 0x0050C2C8 + .word 0x0050C2C8, 0x0050C310 + .word 0x0050C310, 0x0050DC40 + .word 0x0050DC40, 0x0050F570 + .word 0x0050F570, 0x00510EA0 + .word 0x00510EA0, 0x005127D0 + .word 0x005127D0, 0x00512818 + .word 0x00512818, 0x00512860 + .word 0x00512860, 0x00514190 + .word 0x00514190, 0x00515AC0 + .word 0x00515AC0, 0x005173F0 + .word 0x005173F0, 0x00518D20 + .word 0x00518D20, 0x00518D68 + .word 0x00518D68, 0x00518DB0 + .word 0x00518DB0, 0x0051A6E0 + .word 0x0051A6E0, 0x0051C010 + .word 0x0051C010, 0x0051D940 + .word 0x0051D940, 0x0051F270 + .word 0x0051F270, 0x0051F2B8 + .word 0x0051F2B8, 0x0051F300 + .word 0x0051F300, 0x00520C30 + .word 0x00520C30, 0x00522560 + .word 0x00522560, 0x00523E90 + .word 0x00523E90, 0x005257C0 + .word 0x005257C0, 0x00525808 + .word 0x00525808, 0x00525850 + .word 0x00525850, 0x00527180 + .word 0x00527180, 0x00528AB0 + .word 0x00528AB0, 0x0052A3E0 + .word 0x0052A3E0, 0x0052BD10 + .word 0x0052BD10, 0x0052BD58 + .word 0x0052BD58, 0x0052BDA0 + .word 0x0052BDA0, 0x0052D6D0 + .word 0x0052D6D0, 0x0052F000 + .word 0x0052F000, 0x00530930 + .word 0x00530930, 0x00532260 + .word 0x00532260, 0x005322A8 + .word 0x005322A8, 0x005322F0 + .word 0x005322F0, 0x00533C20 + .word 0x00533C20, 0x00535550 + .word 0x00535550, 0x00536E80 + .word 0x00536E80, 0x005387B0 + .word 0x005387B0, 0x005387F8 + .word 0x005387F8, 0x00538840 + .word 0x00538840, 0x0053A170 + .word 0x0053A170, 0x0053BAA0 + .word 0x0053BAA0, 0x0053D3D0 + .word 0x0053D3D0, 0x0053ED00 + .word 0x0053ED00, 0x0053ED48 + .word 0x0053ED48, 0x0053ED90 + .word 0x0053ED90, 0x005406C0 + .word 0x005406C0, 0x00541FF0 + .word 0x00541FF0, 0x00543920 + .word 0x00543920, 0x00545250 + .word 0x00545250, 0x00545298 + .word 0x00545298, 0x005452E0 + .word 0x005452E0, 0x00546C10 + .word 0x00546C10, 0x00548540 + .word 0x00548540, 0x00549E70 + .word 0x00549E70, 0x0054B7A0 + .word 0x0054B7A0, 0x0054B7E8 + .word 0x0054B7E8, 0x0054B830 + .word 0x0054B830, 0x0054D160 + .word 0x0054D160, 0x0054EA90 + .word 0x0054EA90, 0x005503C0 + .word 0x005503C0, 0x00551CF0 + .word 0x00551CF0, 0x00551D38 + .word 0x00551D38, 0x00551D80 + .word 0x00551D80, 0x005536B0 + .word 0x005536B0, 0x00554FE0 + .word 0x00554FE0, 0x00556910 + .word 0x00556910, 0x00558240 + .word 0x00558240, 0x00558288 + .word 0x00558288, 0x005582D0 + .word 0x005582D0, 0x00559C00 + .word 0x00559C00, 0x0055B530 + .word 0x0055B530, 0x0055CE60 + .word 0x0055CE60, 0x0055E790 + .word 0x0055E790, 0x0055E7D8 + .word 0x0055E7D8, 0x0055E820 + .word 0x0055E820, 0x00560150 + .word 0x00560150, 0x00561A80 + .word 0x00561A80, 0x005633B0 + .word 0x005633B0, 0x00564CE0 + .word 0x00564CE0, 0x00564D28 + .word 0x00564D28, 0x00564D70 + .word 0x00564D70, 0x005666A0 + .word 0x005666A0, 0x00567FD0 + .word 0x00567FD0, 0x00569900 + .word 0x00569900, 0x0056B230 + .word 0x0056B230, 0x0056B278 + .word 0x0056B278, 0x0056B2C0 + .word 0x0056B2C0, 0x0056CBF0 + .word 0x0056CBF0, 0x0056E520 + .word 0x0056E520, 0x0056FE50 + .word 0x0056FE50, 0x00571780 + .word 0x00571780, 0x005717C8 + .word 0x005717C8, 0x00571810 + .word 0x00571810, 0x00571810 + .word 0x00571810, 0x00573140 + .word 0x00573140, 0x00573140 + .word 0x00573140, 0x00574A70 + .word 0x00574A70, 0x00574AB8 + .word 0x00574AB8, 0x00574B00 + .word 0x00574B00, 0x00576430 + .word 0x00576430, 0x00577D60 + .word 0x00577D60, 0x00579690 + .word 0x00579690, 0x0057AFC0 + .word 0x0057AFC0, 0x0057B008 + .word 0x0057B008, 0x0057B050 + .word 0x0057B050, 0x0057C980 + .word 0x0057C980, 0x0057E2B0 + .word 0x0057E2B0, 0x0057FBE0 + .word 0x0057FBE0, 0x00581510 + .word 0x00581510, 0x00581558 + .word 0x00581558, 0x005815A0 + .word 0x005815A0, 0x005815A0 + .word 0x005815A0, 0x00582ED0 + .word 0x00582ED0, 0x00582ED0 + .word 0x00582ED0, 0x00584800 + .word 0x00584800, 0x00584848 + .word 0x00584848, 0x00584890 + .word 0x00584890, 0x00584890 + .word 0x00584890, 0x005861C0 + .word 0x005861C0, 0x005861C0 + .word 0x005861C0, 0x00587AF0 + .word 0x00587AF0, 0x00587B38 + .word 0x00587B38, 0x00587B80 + .word 0x00587B80, 0x005894B0 + .word 0x005894B0, 0x005894B0 + .word 0x005894B0, 0x0058ADE0 + .word 0x0058ADE0, 0x0058ADE0 + .word 0x0058ADE0, 0x0058AE28 + .word 0x0058AE28, 0x0058AE70 + .word 0x0058AE70, 0x0058C7A0 + .word 0x0058C7A0, 0x0058E0D0 + .word 0x0058E0D0, 0x0058FA00 + .word 0x0058FA00, 0x00591330 + .word 0x00591330, 0x00591378 + .word 0x00591378, 0x005913C0 + .word 0x005913C0, 0x00592CF0 + .word 0x00592CF0, 0x00594620 + .word 0x00594620, 0x00595F50 + .word 0x00595F50, 0x00597880 + .word 0x00597880, 0x005978C8 + .word 0x005978C8, 0x00597910 + .word 0x00597910, 0x00599240 + .word 0x00599240, 0x00599240 + .word 0x00599240, 0x0059AB70 + .word 0x0059AB70, 0x0059AB70 + .word 0x0059AB70, 0x0059ABB8 + .word 0x0059ABB8, 0x0059AC00 + .word 0x0059AC00, 0x0059C530 + .word 0x0059C530, 0x0059C530 + .word 0x0059C530, 0x0059DE60 + .word 0x0059DE60, 0x0059DE60 + .word 0x0059DE60, 0x0059DEA8 + .word 0x0059DEA8, 0x0059DEF0 + .word 0x0059DEF0, 0x0059DEF0 + .word 0x0059DEF0, 0x0059F820 + .word 0x0059F820, 0x0059F820 + .word 0x0059F820, 0x005A1150 + .word 0x005A1150, 0x005A1198 + .word 0x005A1198, 0x005A11E0 + .word 0x005A11E0, 0x005A11E0 + .word 0x005A11E0, 0x005A2B10 + .word 0x005A2B10, 0x005A2B10 + .word 0x005A2B10, 0x005A4440 + .word 0x005A4440, 0x005A4488 + .word 0x005A4488, 0x005A44D0 + .word 0x005A44D0, 0x005A44D0 + .word 0x005A44D0, 0x005A5E00 + .word 0x005A5E00, 0x005A5E00 + .word 0x005A5E00, 0x005A7730 + .word 0x005A7730, 0x005A7778 + .word 0x005A7778, 0x005A77C0 + .word 0x005A77C0, 0x005A90F0 + .word 0x005A90F0, 0x005AAA20 + .word 0x005AAA20, 0x005AC350 + .word 0x005AC350, 0x005ADC80 + .word 0x005ADC80, 0x005ADCC8 + .word 0x005ADCC8, 0x005ADD10 + .word 0x005ADD10, 0x005AF640 + .word 0x005AF640, 0x005B0F70 + .word 0x005B0F70, 0x005B28A0 + .word 0x005B28A0, 0x005B41D0 + .word 0x005B41D0, 0x005B4218 + .word 0x005B4218, 0x005B4260 + .word 0x005B4260, 0x005B5B90 + .word 0x005B5B90, 0x005B74C0 + .word 0x005B74C0, 0x005B8DF0 + .word 0x005B8DF0, 0x005BA720 + .word 0x005BA720, 0x005BA768 + .word 0x005BA768, 0x005BA7B0 + .word 0x005BA7B0, 0x005BA7B0 + .word 0x005BA7B0, 0x005BC0E0 + .word 0x005BC0E0, 0x005BC0E0 + .word 0x005BC0E0, 0x005BDA10 + .word 0x005BDA10, 0x005BDA58 + .word 0x005BDA58, 0x005BDAA0 + .word 0x005BDAA0, 0x005BDAA0 + .word 0x005BDAA0, 0x005BF3D0 + .word 0x005BF3D0, 0x005BF3D0 + .word 0x005BF3D0, 0x005C0D00 + .word 0x005C0D00, 0x005C0D48 + .word 0x005C0D48, 0x005C0D90 + .word 0x005C0D90, 0x005C0D90 + .word 0x005C0D90, 0x005C26C0 + .word 0x005C26C0, 0x005C26C0 + .word 0x005C26C0, 0x005C3FF0 + .word 0x005C3FF0, 0x005C4038 + .word 0x005C4038, 0x005C4080 + .word 0x005C4080, 0x005C59B0 + .word 0x005C59B0, 0x005C72E0 + .word 0x005C72E0, 0x005C8C10 + .word 0x005C8C10, 0x005CA540 + .word 0x005CA540, 0x005CA588 + .word 0x005CA588, 0x005CA5D0 + .word 0x005CA5D0, 0x005CBF00 + .word 0x005CBF00, 0x005CD830 + .word 0x005CD830, 0x005CF160 + .word 0x005CF160, 0x005D0A90 + .word 0x005D0A90, 0x005D0AD8 + .word 0x005D0AD8, 0x005D0B20 + .word 0x005D0B20, 0x005D2450 + .word 0x005D2450, 0x005D3D80 + .word 0x005D3D80, 0x005D56B0 + .word 0x005D56B0, 0x005D6FE0 + .word 0x005D6FE0, 0x005D7028 + .word 0x005D7028, 0x005D7070 + .word 0x005D7070, 0x005D89A0 + .word 0x005D89A0, 0x005DA2D0 + .word 0x005DA2D0, 0x005DBC00 + .word 0x005DBC00, 0x005DD530 + .word 0x005DD530, 0x005DD578 + .word 0x005DD578, 0x005DD5C0 + .word 0x005DD5C0, 0x005DEEF0 + .word 0x005DEEF0, 0x005E0820 + .word 0x005E0820, 0x005E2150 + .word 0x005E2150, 0x005E3A80 + .word 0x005E3A80, 0x005E3AC8 + .word 0x005E3AC8, 0x005E3B10 + .word 0x005E3B10, 0x005E5440 + .word 0x005E5440, 0x005E6D70 + .word 0x005E6D70, 0x005E86A0 + .word 0x005E86A0, 0x005E9FD0 + .word 0x005E9FD0, 0x005EA018 + .word 0x005EA018, 0x005EA060 + .word 0x005EA060, 0x005EB990 + .word 0x005EB990, 0x005ED2C0 + .word 0x005ED2C0, 0x005EEBF0 + .word 0x005EEBF0, 0x005F0520 + .word 0x005F0520, 0x005F0568 + .word 0x005F0568, 0x005F05B0 + .word 0x005F05B0, 0x005F1EE0 + .word 0x005F1EE0, 0x005F3810 + .word 0x005F3810, 0x005F5140 + .word 0x005F5140, 0x005F6A70 + .word 0x005F6A70, 0x005F6AB8 + .word 0x005F6AB8, 0x005F6B00 + .word 0x005F6B00, 0x005F8430 + .word 0x005F8430, 0x005F9D60 + .word 0x005F9D60, 0x005FB690 + .word 0x005FB690, 0x005FCFC0 + .word 0x005FCFC0, 0x005FD008 + .word 0x005FD008, 0x005FD050 + .word 0x005FD050, 0x005FE980 + .word 0x005FE980, 0x006002B0 + .word 0x006002B0, 0x00601BE0 + .word 0x00601BE0, 0x00603510 + .word 0x00603510, 0x00603558 + .word 0x00603558, 0x006035A0 + .word 0x006035A0, 0x00604ED0 + .word 0x00604ED0, 0x00606800 + .word 0x00606800, 0x00608130 + .word 0x00608130, 0x00609A60 + .word 0x00609A60, 0x00609AA8 + .word 0x00609AA8, 0x00609AF0 + .word 0x00609AF0, 0x0060B420 + .word 0x0060B420, 0x0060CD50 + .word 0x0060CD50, 0x0060E680 + .word 0x0060E680, 0x0060FFB0 + .word 0x0060FFB0, 0x0060FFF8 + .word 0x0060FFF8, 0x00610040 + .word 0x00610040, 0x00611970 + .word 0x00611970, 0x006132A0 + .word 0x006132A0, 0x00614BD0 + .word 0x00614BD0, 0x00616500 + .word 0x00616500, 0x00616548 + .word 0x00616548, 0x00616590 + .word 0x00616590, 0x00617EC0 + .word 0x00617EC0, 0x006197F0 + .word 0x006197F0, 0x0061B120 + .word 0x0061B120, 0x0061CA50 + .word 0x0061CA50, 0x0061CA98 + .word 0x0061CA98, 0x0061CAE0 + .word 0x0061CAE0, 0x0061E410 + .word 0x0061E410, 0x0061FD40 + .word 0x0061FD40, 0x00621670 + .word 0x00621670, 0x00622FA0 + .word 0x00622FA0, 0x00622FE8 + .word 0x00622FE8, 0x00623030 + .word 0x00623030, 0x00624960 + .word 0x00624960, 0x00626290 + .word 0x00626290, 0x00627BC0 + .word 0x00627BC0, 0x006294F0 + .word 0x006294F0, 0x00629538 + .word 0x00629538, 0x00629580 + .word 0x00629580, 0x0062AEB0 + .word 0x0062AEB0, 0x0062C7E0 + .word 0x0062C7E0, 0x0062E110 + .word 0x0062E110, 0x0062FA40 + .word 0x0062FA40, 0x0062FA88 + .word 0x0062FA88, 0x0062FAD0 + .word 0x0062FAD0, 0x00631400 + .word 0x00631400, 0x00632D30 + .word 0x00632D30, 0x00634660 + .word 0x00634660, 0x00635F90 + .word 0x00635F90, 0x00635FD8 + .word 0x00635FD8, 0x00636020 + .word 0x00636020, 0x00637950 + .word 0x00637950, 0x00639280 + .word 0x00639280, 0x0063ABB0 + .word 0x0063ABB0, 0x0063C4E0 + .word 0x0063C4E0, 0x0063C528 + .word 0x0063C528, 0x0063C570 + .word 0x0063C570, 0x0063DEA0 + .word 0x0063DEA0, 0x0063F7D0 + .word 0x0063F7D0, 0x00641100 + .word 0x00641100, 0x00642A30 + .word 0x00642A30, 0x00642A78 + .word 0x00642A78, 0x00642AC0 + .word 0x00642AC0, 0x006443F0 + .word 0x006443F0, 0x00645D20 + .word 0x00645D20, 0x00647650 + .word 0x00647650, 0x00648F80 + .word 0x00648F80, 0x00648FC8 + .word 0x00648FC8, 0x00649010 + .word 0x00649010, 0x0064A940 + .word 0x0064A940, 0x0064C270 + .word 0x0064C270, 0x0064DBA0 + .word 0x0064DBA0, 0x0064F4D0 + .word 0x0064F4D0, 0x0064F518 + .word 0x0064F518, 0x0064F560 + .word 0x0064F560, 0x00650E90 + .word 0x00650E90, 0x006527C0 + .word 0x006527C0, 0x006540F0 + .word 0x006540F0, 0x00655A20 + .word 0x00655A20, 0x00655A68 + .word 0x00655A68, 0x00655AB0 + .word 0x00655AB0, 0x006573E0 + .word 0x006573E0, 0x00658D10 + .word 0x00658D10, 0x0065A640 + .word 0x0065A640, 0x0065BF70 + .word 0x0065BF70, 0x0065BFB8 + .word 0x0065BFB8, 0x0065C000 + .word 0x0065C000, 0x0065D930 + .word 0x0065D930, 0x0065F260 + .word 0x0065F260, 0x00660B90 + .word 0x00660B90, 0x006624C0 + .word 0x006624C0, 0x00662508 + .word 0x00662508, 0x00662550 + .word 0x00662550, 0x00663E80 + .word 0x00663E80, 0x006657B0 + .word 0x006657B0, 0x006670E0 + .word 0x006670E0, 0x00668A10 + .word 0x00668A10, 0x00668A58 + .word 0x00668A58, 0x00668AA0 + .word 0x00668AA0, 0x0066A3D0 + .word 0x0066A3D0, 0x0066BD00 + .word 0x0066BD00, 0x0066D630 + .word 0x0066D630, 0x0066EF60 + .word 0x0066EF60, 0x0066EFA8 + .word 0x0066EFA8, 0x0066EFF0 + .word 0x0066EFF0, 0x00670920 + .word 0x00670920, 0x00672250 + .word 0x00672250, 0x00673B80 + .word 0x00673B80, 0x006754B0 + .word 0x006754B0, 0x006754F8 + .word 0x006754F8, 0x00675540 + .word 0x00675540, 0x00676E70 + .word 0x00676E70, 0x006787A0 + .word 0x006787A0, 0x0067A0D0 + .word 0x0067A0D0, 0x0067BA00 + .word 0x0067BA00, 0x0067BA48 + .word 0x0067BA48, 0x0067BA90 + .word 0x0067BA90, 0x0067D3C0 + .word 0x0067D3C0, 0x0067ECF0 + .word 0x0067ECF0, 0x00680620 + .word 0x00680620, 0x00681F50 + .word 0x00681F50, 0x00681F98 + .word 0x00681F98, 0x00681FE0 + .word 0x00681FE0, 0x00683910 + .word 0x00683910, 0x00685240 + .word 0x00685240, 0x00686B70 + .word 0x00686B70, 0x006884A0 + .word 0x006884A0, 0x006884E8 + .word 0x006884E8, 0x00688530 + .word 0x00688530, 0x00689E60 + .word 0x00689E60, 0x0068B790 + .word 0x0068B790, 0x0068D0C0 + .word 0x0068D0C0, 0x0068E9F0 + .word 0x0068E9F0, 0x0068EA38 + .word 0x0068EA38, 0x0068EA80 + .word 0x0068EA80, 0x006903B0 + .word 0x006903B0, 0x00691CE0 + .word 0x00691CE0, 0x00693610 + .word 0x00693610, 0x00694F40 + .word 0x00694F40, 0x00694F88 + .word 0x00694F88, 0x00694FD0 + .word 0x00694FD0, 0x00696900 + .word 0x00696900, 0x00698230 + .word 0x00698230, 0x00699B60 + .word 0x00699B60, 0x0069B490 + .word 0x0069B490, 0x0069B4D8 + .word 0x0069B4D8, 0x0069B520 + .word 0x0069B520, 0x0069CE50 + .word 0x0069CE50, 0x0069E780 + .word 0x0069E780, 0x006A00B0 + .word 0x006A00B0, 0x006A19E0 + .word 0x006A19E0, 0x006A1A28 + .word 0x006A1A28, 0x006A1A70 + .word 0x006A1A70, 0x006A33A0 + .word 0x006A33A0, 0x006A4CD0 + .word 0x006A4CD0, 0x006A6600 + .word 0x006A6600, 0x006A7F30 + .word 0x006A7F30, 0x006A7F78 + .word 0x006A7F78, 0x006A7FC0 + .word 0x006A7FC0, 0x006A98F0 + .word 0x006A98F0, 0x006AB220 + .word 0x006AB220, 0x006ACB50 + .word 0x006ACB50, 0x006AE480 + .word 0x006AE480, 0x006AE4C8 + .word 0x006AE4C8, 0x006AE510 + .word 0x006AE510, 0x006AFE40 + .word 0x006AFE40, 0x006B1770 + .word 0x006B1770, 0x006B30A0 + .word 0x006B30A0, 0x006B49D0 + .word 0x006B49D0, 0x006B4A18 + .word 0x006B4A18, 0x006B4A60 + .word 0x006B4A60, 0x006B6390 + .word 0x006B6390, 0x006B7CC0 + .word 0x006B7CC0, 0x006B95F0 + .word 0x006B95F0, 0x006BAF20 + .word 0x006BAF20, 0x006BAF68 + .word 0x006BAF68, 0x006BAFB0 + .word 0x006BAFB0, 0x006BC8E0 + .word 0x006BC8E0, 0x006BE210 + .word 0x006BE210, 0x006BFB40 + .word 0x006BFB40, 0x006C1470 + .word 0x006C1470, 0x006C14B8 + .word 0x006C14B8, 0x006C1500 + .word 0x006C1500, 0x006C1500 + .word 0x006C1500, 0x006C2E30 + .word 0x006C2E30, 0x006C2E30 + .word 0x006C2E30, 0x006C4760 + .word 0x006C4760, 0x006C47A8 + .word 0x006C47A8, 0x006C47F0 + .word 0x006C47F0, 0x006C6120 + .word 0x006C6120, 0x006C7A50 + .word 0x006C7A50, 0x006C9380 + .word 0x006C9380, 0x006CACB0 + .word 0x006CACB0, 0x006CACF8 + .word 0x006CACF8, 0x006CAD40 + .word 0x006CAD40, 0x006CC670 + .word 0x006CC670, 0x006CDFA0 + .word 0x006CDFA0, 0x006CF8D0 + .word 0x006CF8D0, 0x006D1200 + .word 0x006D1200, 0x006D1248 + .word 0x006D1248, 0x006D1290 + .word 0x006D1290, 0x006D2BC0 + .word 0x006D2BC0, 0x006D44F0 + .word 0x006D44F0, 0x006D5E20 + .word 0x006D5E20, 0x006D7750 + .word 0x006D7750, 0x006D7798 + .word 0x006D7798, 0x006D77E0 + .word 0x006D77E0, 0x006D9110 + .word 0x006D9110, 0x006DAA40 + .word 0x006DAA40, 0x006DC370 + .word 0x006DC370, 0x006DDCA0 + .word 0x006DDCA0, 0x006DDCE8 + .word 0x006DDCE8, 0x006DDD30 + .word 0x006DDD30, 0x006DF660 + .word 0x006DF660, 0x006E0F90 + .word 0x006E0F90, 0x006E28C0 + .word 0x006E28C0, 0x006E41F0 + .word 0x006E41F0, 0x006E4238 + .word 0x006E4238, 0x006E4280 + .word 0x006E4280, 0x006E5BB0 + .word 0x006E5BB0, 0x006E74E0 + .word 0x006E74E0, 0x006E8E10 + .word 0x006E8E10, 0x006EA740 + .word 0x006EA740, 0x006EA788 + .word 0x006EA788, 0x006EA7D0 + .word 0x006EA7D0, 0x006EC100 + .word 0x006EC100, 0x006EDA30 + .word 0x006EDA30, 0x006EF360 + .word 0x006EF360, 0x006F0C90 + .word 0x006F0C90, 0x006F0CD8 + .word 0x006F0CD8, 0x006F0D20 + .word 0x006F0D20, 0x006F2650 + .word 0x006F2650, 0x006F3F80 + .word 0x006F3F80, 0x006F58B0 + .word 0x006F58B0, 0x006F71E0 + .word 0x006F71E0, 0x006F7228 + .word 0x006F7228, 0x006F7270 + .word 0x006F7270, 0x006F8BA0 + .word 0x006F8BA0, 0x006FA4D0 + .word 0x006FA4D0, 0x006FBE00 + .word 0x006FBE00, 0x006FD730 + .word 0x006FD730, 0x006FD778 + .word 0x006FD778, 0x006FD7C0 + .word 0x006FD7C0, 0x006FF0F0 + .word 0x006FF0F0, 0x00700A20 + .word 0x00700A20, 0x00702350 + .word 0x00702350, 0x00703C80 + .word 0x00703C80, 0x00703CC8 + .word 0x00703CC8, 0x00703D10 + .word 0x00703D10, 0x00705640 + .word 0x00705640, 0x00706F70 + .word 0x00706F70, 0x007088A0 + .word 0x007088A0, 0x0070A1D0 + .word 0x0070A1D0, 0x0070A218 + .word 0x0070A218, 0x0070A260 + .word 0x0070A260, 0x0070BB90 + .word 0x0070BB90, 0x0070D4C0 + .word 0x0070D4C0, 0x0070EDF0 + .word 0x0070EDF0, 0x00710720 + .word 0x00710720, 0x00710768 + .word 0x00710768, 0x007107B0 + .word 0x007107B0, 0x007120E0 + .word 0x007120E0, 0x00713A10 + .word 0x00713A10, 0x00715340 + .word 0x00715340, 0x00716C70 + .word 0x00716C70, 0x00716CB8 + .word 0x00716CB8, 0x00716D00 + .word 0x00716D00, 0x00718630 + .word 0x00718630, 0x00719F60 + .word 0x00719F60, 0x0071B890 + .word 0x0071B890, 0x0071D1C0 + .word 0x0071D1C0, 0x0071D208 + .word 0x0071D208, 0x0071D250 + .word 0x0071D250, 0x0071EB80 + .word 0x0071EB80, 0x007204B0 + .word 0x007204B0, 0x00721DE0 + .word 0x00721DE0, 0x00723710 + .word 0x00723710, 0x00723758 + .word 0x00723758, 0x007237A0 + .word 0x007237A0, 0x007250D0 + .word 0x007250D0, 0x00726A00 + .word 0x00726A00, 0x00728330 + .word 0x00728330, 0x00729C60 + .word 0x00729C60, 0x00729CA8 + .word 0x00729CA8, 0x00729CF0 + .word 0x00729CF0, 0x0072B620 + .word 0x0072B620, 0x0072CF50 + .word 0x0072CF50, 0x0072E880 + .word 0x0072E880, 0x007301B0 + .word 0x007301B0, 0x007301F8 + .word 0x007301F8, 0x00730240 + .word 0x00730240, 0x00731B70 + .word 0x00731B70, 0x007334A0 + .word 0x007334A0, 0x00734DD0 + .word 0x00734DD0, 0x00736700 + .word 0x00736700, 0x00736748 + .word 0x00736748, 0x00736790 + .word 0x00736790, 0x007380C0 + .word 0x007380C0, 0x007399F0 + .word 0x007399F0, 0x0073B320 + .word 0x0073B320, 0x0073CC50 + .word 0x0073CC50, 0x0073CC98 + .word 0x0073CC98, 0x0073CCE0 + .word 0x0073CCE0, 0x0073E610 + .word 0x0073E610, 0x0073FF40 + .word 0x0073FF40, 0x00741870 + .word 0x00741870, 0x007431A0 + .word 0x007431A0, 0x007431E8 + .word 0x007431E8, 0x00743230 + .word 0x00743230, 0x00743230 + .word 0x00743230, 0x00744B60 + .word 0x00744B60, 0x00744B60 + .word 0x00744B60, 0x00746490 + .word 0x00746490, 0x007464D8 + .word 0x007464D8, 0x00746520 + .word 0x00746520, 0x00747E50 + .word 0x00747E50, 0x00747E50 + .word 0x00747E50, 0x00749780 + .word 0x00749780, 0x00749780 + .word 0x00749780, 0x007497C8 + .word 0x007497C8, 0x00749810 + .word 0x00749810, 0x0074B140 + .word 0x0074B140, 0x0074CA70 + .word 0x0074CA70, 0x0074E3A0 + .word 0x0074E3A0, 0x0074FCD0 + .word 0x0074FCD0, 0x0074FD18 + .word 0x0074FD18, 0x0074FD60 + .word 0x0074FD60, 0x00751690 + .word 0x00751690, 0x00752FC0 + .word 0x00752FC0, 0x007548F0 + .word 0x007548F0, 0x00756220 + .word 0x00756220, 0x00756268 + .word 0x00756268, 0x007562B0 + .word 0x007562B0, 0x00757BE0 + .word 0x00757BE0, 0x00759510 + .word 0x00759510, 0x0075AE40 + .word 0x0075AE40, 0x0075C770 + .word 0x0075C770, 0x0075C7B8 + .word 0x0075C7B8, 0x0075C800 + .word 0x0075C800, 0x0075E130 + .word 0x0075E130, 0x0075FA60 + .word 0x0075FA60, 0x00761390 + .word 0x00761390, 0x00762CC0 + .word 0x00762CC0, 0x00762D08 + .word 0x00762D08, 0x00762D50 + .word 0x00762D50, 0x00764680 + .word 0x00764680, 0x00765FB0 + .word 0x00765FB0, 0x007678E0 + .word 0x007678E0, 0x00769210 + .word 0x00769210, 0x00769258 + .word 0x00769258, 0x007692A0 + .word 0x007692A0, 0x0076ABD0 + .word 0x0076ABD0, 0x0076C500 + .word 0x0076C500, 0x0076DE30 + .word 0x0076DE30, 0x0076F760 + .word 0x0076F760, 0x0076F7A8 + .word 0x0076F7A8, 0x0076F7F0 + .word 0x0076F7F0, 0x00771120 + .word 0x00771120, 0x00772A50 + .word 0x00772A50, 0x00774380 + .word 0x00774380, 0x00775CB0 + .word 0x00775CB0, 0x00775CF8 + .word 0x00775CF8, 0x00775D40 + .word 0x00775D40, 0x00777670 + .word 0x00777670, 0x00778FA0 + .word 0x00778FA0, 0x0077A8D0 + .word 0x0077A8D0, 0x0077C200 + .word 0x0077C200, 0x0077C248 + .word 0x0077C248, 0x0077C290 + .word 0x0077C290, 0x0077DBC0 + .word 0x0077DBC0, 0x0077F4F0 + .word 0x0077F4F0, 0x00780E20 + .word 0x00780E20, 0x00782750 + .word 0x00782750, 0x00782798 + .word 0x00782798, 0x007827E0 + .word 0x007827E0, 0x00784110 + .word 0x00784110, 0x00785A40 + .word 0x00785A40, 0x00787370 + .word 0x00787370, 0x00788CA0 + .word 0x00788CA0, 0x00788CE8 + .word 0x00788CE8, 0x00788D30 + .word 0x00788D30, 0x0078A660 + .word 0x0078A660, 0x0078BF90 + .word 0x0078BF90, 0x0078D8C0 + .word 0x0078D8C0, 0x0078F1F0 + .word 0x0078F1F0, 0x0078F238 + .word 0x0078F238, 0x0078F280 + .word 0x0078F280, 0x00790BB0 + .word 0x00790BB0, 0x007924E0 + .word 0x007924E0, 0x00793E10 + .word 0x00793E10, 0x00795740 + .word 0x00795740, 0x00795788 + .word 0x00795788, 0x007957D0 + .word 0x007957D0, 0x00797100 + .word 0x00797100, 0x00798A30 + .word 0x00798A30, 0x0079A360 + .word 0x0079A360, 0x0079BC90 + .word 0x0079BC90, 0x0079BCD8 + .word 0x0079BCD8, 0x0079BD20 + .word 0x0079BD20, 0x0079D650 + .word 0x0079D650, 0x0079EF80 + .word 0x0079EF80, 0x007A08B0 + .word 0x007A08B0, 0x007A21E0 + .word 0x007A21E0, 0x007A2228 + .word 0x007A2228, 0x007A2270 + .word 0x007A2270, 0x007A3BA0 + .word 0x007A3BA0, 0x007A54D0 + .word 0x007A54D0, 0x007A6E00 + .word 0x007A6E00, 0x007A8730 + .word 0x007A8730, 0x007A8778 + .word 0x007A8778, 0x007A87C0 + .word 0x007A87C0, 0x007AA0F0 + .word 0x007AA0F0, 0x007ABA20 + .word 0x007ABA20, 0x007AD350 + .word 0x007AD350, 0x007AEC80 + .word 0x007AEC80, 0x007AECC8 + .word 0x007AECC8, 0x007AED10 + .word 0x007AED10, 0x007B0640 + .word 0x007B0640, 0x007B1F70 + .word 0x007B1F70, 0x007B38A0 + .word 0x007B38A0, 0x007B51D0 + .word 0x007B51D0, 0x007B5218 + .word 0x007B5218, 0x007B5260 + .word 0x007B5260, 0x007B6B90 + .word 0x007B6B90, 0x007B84C0 + .word 0x007B84C0, 0x007B9DF0 + .word 0x007B9DF0, 0x007BB720 + .word 0x007BB720, 0x007BB768 + .word 0x007BB768, 0x007BB7B0 + .word 0x007BB7B0, 0x007BD0E0 + .word 0x007BD0E0, 0x007BEA10 + .word 0x007BEA10, 0x007C0340 + .word 0x007C0340, 0x007C1C70 + .word 0x007C1C70, 0x007C1CB8 + .word 0x007C1CB8, 0x007C1D00 + .word 0x007C1D00, 0x007C3630 + .word 0x007C3630, 0x007C4F60 + .word 0x007C4F60, 0x007C6890 + .word 0x007C6890, 0x007C81C0 + .word 0x007C81C0, 0x007C8208 + .word 0x007C8208, 0x007C8250 + .word 0x007C8250, 0x007C9B80 + .word 0x007C9B80, 0x007CB4B0 + .word 0x007CB4B0, 0x007CCDE0 + .word 0x007CCDE0, 0x007CE710 + .word 0x007CE710, 0x007CE758 + .word 0x007CE758, 0x007CE7A0 + .word 0x007CE7A0, 0x007D00D0 + .word 0x007D00D0, 0x007D1A00 + .word 0x007D1A00, 0x007D3330 + .word 0x007D3330, 0x007D4C60 + .word 0x007D4C60, 0x007D4CA8 + .word 0x007D4CA8, 0x007D4CF0 + .word 0x007D4CF0, 0x007D4CF0 + .word 0x007D4CF0, 0x007D6620 + .word 0x007D6620, 0x007D6620 + .word 0x007D6620, 0x007D7F50 + .word 0x007D7F50, 0x007D7F98 + .word 0x007D7F98, 0x007D7FE0 + .word 0x007D7FE0, 0x007D7FE0 + .word 0x007D7FE0, 0x007D9910 + .word 0x007D9910, 0x007D9910 + .word 0x007D9910, 0x007DB240 + .word 0x007DB240, 0x007DB288 + .word 0x007DB288, 0x007DB2D0 + .word 0x007DB2D0, 0x007DCC00 + .word 0x007DCC00, 0x007DE530 + .word 0x007DE530, 0x007DFE60 + .word 0x007DFE60, 0x007E1790 + .word 0x007E1790, 0x007E17D8 + .word 0x007E17D8, 0x007E1820 + .word 0x007E1820, 0x007E3150 + .word 0x007E3150, 0x007E4A80 + .word 0x007E4A80, 0x007E63B0 + .word 0x007E63B0, 0x007E7CE0 + .word 0x007E7CE0, 0x007E7D28 + .word 0x007E7D28, 0x007E7D70 + .word 0x007E7D70, 0x007E96A0 + .word 0x007E96A0, 0x007EAFD0 + .word 0x007EAFD0, 0x007EC900 + .word 0x007EC900, 0x007EE230 + .word 0x007EE230, 0x007EE278 + .word 0x007EE278, 0x007EE2C0 + .word 0x007EE2C0, 0x007EFBF0 + .word 0x007EFBF0, 0x007F1520 + .word 0x007F1520, 0x007F2E50 + .word 0x007F2E50, 0x007F4780 + .word 0x007F4780, 0x007F47C8 + .word 0x007F47C8, 0x007F4810 + .word 0x007F4810, 0x007F4810 + .word 0x007F4810, 0x007F6140 + .word 0x007F6140, 0x007F6140 + .word 0x007F6140, 0x007F7A70 + .word 0x007F7A70, 0x007F7AB8 + .word 0x007F7AB8, 0x007F7B00 + .word 0x007F7B00, 0x007F7B00 + .word 0x007F7B00, 0x007F9430 + .word 0x007F9430, 0x007F9430 + .word 0x007F9430, 0x007FAD60 + .word 0x007FAD60, 0x007FADA8 + .word 0x007FADA8, 0x007FADF0 + .word 0x007FADF0, 0x007FC720 + .word 0x007FC720, 0x007FE050 + .word 0x007FE050, 0x007FF980 + .word 0x007FF980, 0x008012B0 + .word 0x008012B0, 0x008012F8 + .word 0x008012F8, 0x00801340 + .word 0x00801340, 0x00802C70 + .word 0x00802C70, 0x008045A0 + .word 0x008045A0, 0x00805ED0 + .word 0x00805ED0, 0x00807800 + .word 0x00807800, 0x00807848 + .word 0x00807848, 0x00807890 + .word 0x00807890, 0x008091C0 + .word 0x008091C0, 0x0080AAF0 + .word 0x0080AAF0, 0x0080C420 + .word 0x0080C420, 0x0080DD50 + .word 0x0080DD50, 0x0080DD98 + .word 0x0080DD98, 0x0080DDE0 + .word 0x0080DDE0, 0x0080F710 + .word 0x0080F710, 0x00811040 + .word 0x00811040, 0x00812970 + .word 0x00812970, 0x008142A0 + .word 0x008142A0, 0x008142E8 + .word 0x008142E8, 0x00814330 + .word 0x00814330, 0x00815C60 + .word 0x00815C60, 0x00817590 + .word 0x00817590, 0x00818EC0 + .word 0x00818EC0, 0x0081A7F0 + .word 0x0081A7F0, 0x0081A838 + .word 0x0081A838, 0x0081A880 + .word 0x0081A880, 0x0081C1B0 + .word 0x0081C1B0, 0x0081DAE0 + .word 0x0081DAE0, 0x0081F410 + .word 0x0081F410, 0x00820D40 + .word 0x00820D40, 0x00820D88 + .word 0x00820D88, 0x00820DD0 + .word 0x00820DD0, 0x00822700 + .word 0x00822700, 0x00824030 + .word 0x00824030, 0x00825960 + .word 0x00825960, 0x00827290 + .word 0x00827290, 0x008272D8 + .word 0x008272D8, 0x00827320 + .word 0x00827320, 0x00828C50 + .word 0x00828C50, 0x0082A580 + .word 0x0082A580, 0x0082BEB0 + .word 0x0082BEB0, 0x0082D7E0 + .word 0x0082D7E0, 0x0082D828 + .word 0x0082D828, 0x0082D870 + .word 0x0082D870, 0x0082F1A0 + .word 0x0082F1A0, 0x00830AD0 + .word 0x00830AD0, 0x00832400 + .word 0x00832400, 0x00833D30 + .word 0x00833D30, 0x00833D78 + .word 0x00833D78, 0x00833DC0 + .word 0x00833DC0, 0x008356F0 + .word 0x008356F0, 0x00837020 + .word 0x00837020, 0x00838950 + .word 0x00838950, 0x0083A280 + .word 0x0083A280, 0x0083A2C8 + .word 0x0083A2C8, 0x0083A310 + .word 0x0083A310, 0x0083BC40 + .word 0x0083BC40, 0x0083D570 + .word 0x0083D570, 0x0083EEA0 + .word 0x0083EEA0, 0x008407D0 + .word 0x008407D0, 0x00840818 + .word 0x00840818, 0x00840860 + .word 0x00840860, 0x00842190 + .word 0x00842190, 0x00843AC0 + .word 0x00843AC0, 0x008453F0 + .word 0x008453F0, 0x00846D20 + .word 0x00846D20, 0x00846D68 + .word 0x00846D68, 0x00846DB0 + .word 0x00846DB0, 0x008486E0 + .word 0x008486E0, 0x0084A010 + .word 0x0084A010, 0x0084B940 + .word 0x0084B940, 0x0084D270 + .word 0x0084D270, 0x0084D2B8 + .word 0x0084D2B8, 0x0084D300 + .word 0x0084D300, 0x0084EC30 + .word 0x0084EC30, 0x00850560 + .word 0x00850560, 0x00851E90 + .word 0x00851E90, 0x008537C0 + .word 0x008537C0, 0x00853808 + .word 0x00853808, 0x00853850 + .word 0x00853850, 0x00855180 + .word 0x00855180, 0x00856AB0 + .word 0x00856AB0, 0x008583E0 + .word 0x008583E0, 0x00859D10 + .word 0x00859D10, 0x00859D58 + .word 0x00859D58, 0x00859DA0 + .word 0x00859DA0, 0x0085B6D0 + .word 0x0085B6D0, 0x0085D000 + .word 0x0085D000, 0x0085E930 + .word 0x0085E930, 0x00860260 + .word 0x00860260, 0x008602A8 + .word 0x008602A8, 0x008602F0 + .word 0x008602F0, 0x00861C20 + .word 0x00861C20, 0x00863550 + .word 0x00863550, 0x00864E80 + .word 0x00864E80, 0x008667B0 + .word 0x008667B0, 0x008667F8 + .word 0x008667F8, 0x00866840 + .word 0x00866840, 0x00868170 + .word 0x00868170, 0x00869AA0 + .word 0x00869AA0, 0x0086B3D0 + .word 0x0086B3D0, 0x0086CD00 + .word 0x0086CD00, 0x0086CD48 + .word 0x0086CD48, 0x0086CD90 + .word 0x0086CD90, 0x0086E6C0 + .word 0x0086E6C0, 0x0086FFF0 + .word 0x0086FFF0, 0x00871920 + .word 0x00871920, 0x00873250 + .word 0x00873250, 0x00873298 + .word 0x00873298, 0x008732E0 + .word 0x008732E0, 0x00874C10 + .word 0x00874C10, 0x00876540 + .word 0x00876540, 0x00877E70 + .word 0x00877E70, 0x008797A0 + .word 0x008797A0, 0x008797E8 + .word 0x008797E8, 0x00879830 + .word 0x00879830, 0x0087B160 + .word 0x0087B160, 0x0087CA90 + .word 0x0087CA90, 0x0087E3C0 + .word 0x0087E3C0, 0x0087FCF0 + .word 0x0087FCF0, 0x0087FD38 + .word 0x0087FD38, 0x0087FD80 + .word 0x0087FD80, 0x008816B0 + .word 0x008816B0, 0x00882FE0 + .word 0x00882FE0, 0x00884910 + .word 0x00884910, 0x00886240 + .word 0x00886240, 0x00886288 + .word 0x00886288, 0x008862D0 + .word 0x008862D0, 0x00887C00 + .word 0x00887C00, 0x00889530 + .word 0x00889530, 0x0088AE60 + .word 0x0088AE60, 0x0088C790 + .word 0x0088C790, 0x0088C7D8 + .word 0x0088C7D8, 0x0088C820 + .word 0x0088C820, 0x0088E150 + .word 0x0088E150, 0x0088FA80 + .word 0x0088FA80, 0x008913B0 + .word 0x008913B0, 0x00892CE0 + .word 0x00892CE0, 0x00892D28 + .word 0x00892D28, 0x00892D70 + .word 0x00892D70, 0x008946A0 + .word 0x008946A0, 0x00895FD0 + .word 0x00895FD0, 0x00897900 + .word 0x00897900, 0x00899230 + .word 0x00899230, 0x00899278 + .word 0x00899278, 0x008992C0 + .word 0x008992C0, 0x0089ABF0 + .word 0x0089ABF0, 0x0089C520 + .word 0x0089C520, 0x0089DE50 + .word 0x0089DE50, 0x0089F780 + .word 0x0089F780, 0x0089F7C8 + .word 0x0089F7C8, 0x0089F810 + .word 0x0089F810, 0x008A1140 + .word 0x008A1140, 0x008A2A70 + .word 0x008A2A70, 0x008A43A0 + .word 0x008A43A0, 0x008A5CD0 + .word 0x008A5CD0, 0x008A5D18 + .word 0x008A5D18, 0x008A5D60 + .word 0x008A5D60, 0x008A7690 + .word 0x008A7690, 0x008A8FC0 + .word 0x008A8FC0, 0x008AA8F0 + .word 0x008AA8F0, 0x008AC220 + .word 0x008AC220, 0x008AC268 + .word 0x008AC268, 0x008AC2B0 + .word 0x008AC2B0, 0x008ADBE0 + .word 0x008ADBE0, 0x008AF510 + .word 0x008AF510, 0x008B0E40 + .word 0x008B0E40, 0x008B2770 + .word 0x008B2770, 0x008B27B8 + .word 0x008B27B8, 0x008B2800 + .word 0x008B2800, 0x008B2800 + .word 0x008B2800, 0x008B4130 + .word 0x008B4130, 0x008B4130 + .word 0x008B4130, 0x008B5A60 + .word 0x008B5A60, 0x008B5AA8 + .word 0x008B5AA8, 0x008B5AF0 + .word 0x008B5AF0, 0x008B5AF0 + .word 0x008B5AF0, 0x008B7420 + .word 0x008B7420, 0x008B7420 + .word 0x008B7420, 0x008B8D50 + .word 0x008B8D50, 0x008B8D98 + .word 0x008B8D98, 0x008B8DE0 + .word 0x008B8DE0, 0x008B8DE0 + .word 0x008B8DE0, 0x008BA710 + .word 0x008BA710, 0x008BA710 + .word 0x008BA710, 0x008BC040 + .word 0x008BC040, 0x008BC088 + .word 0x008BC088, 0x008BC0D0 + .word 0x008BC0D0, 0x008BC0D0 + .word 0x008BC0D0, 0x008BDA00 + .word 0x008BDA00, 0x008BDA00 + .word 0x008BDA00, 0x008BF330 + .word 0x008BF330, 0x008BF378 + .word 0x008BF378, 0x008BF3C0 + .word 0x008BF3C0, 0x008BF3C0 + .word 0x008BF3C0, 0x008C0CF0 + .word 0x008C0CF0, 0x008C0CF0 + .word 0x008C0CF0, 0x008C2620 + .word 0x008C2620, 0x008C2668 + .word 0x008C2668, 0x008C26B0 + .word 0x008C26B0, 0x008C26B0 + .word 0x008C26B0, 0x008C3FE0 + .word 0x008C3FE0, 0x008C3FE0 + .word 0x008C3FE0, 0x008C5910 + .word 0x008C5910, 0x008C5958 + .word 0x008C5958, 0x008C59A0 + .word 0x008C59A0, 0x008C72D0 + .word 0x008C72D0, 0x008C72D0 + .word 0x008C72D0, 0x008C8C00 + .word 0x008C8C00, 0x008C8C00 + .word 0x008C8C00, 0x008C8C48 + .word 0x008C8C48, 0x008C8C90 + .word 0x008C8C90, 0x008C8C90 + .word 0x008C8C90, 0x008CA5C0 + .word 0x008CA5C0, 0x008CA5C0 + .word 0x008CA5C0, 0x008CBEF0 + .word 0x008CBEF0, 0x008CBF38 + .word 0x008CBF38, 0x008CBF80 + .word 0x008CBF80, 0x008CBF80 + .word 0x008CBF80, 0x008CD8B0 + .word 0x008CD8B0, 0x008CD8B0 + .word 0x008CD8B0, 0x008CF1E0 + .word 0x008CF1E0, 0x008CF228 + .word 0x008CF228, 0x008CF270 + .word 0x008CF270, 0x008CF270 + .word 0x008CF270, 0x008D0BA0 + .word 0x008D0BA0, 0x008D0BA0 + .word 0x008D0BA0, 0x008D24D0 + .word 0x008D24D0, 0x008D2518 + .word 0x008D2518, 0x008D2560 + .word 0x008D2560, 0x008D2560 + .word 0x008D2560, 0x008D3E90 + .word 0x008D3E90, 0x008D3E90 + .word 0x008D3E90, 0x008D57C0 + .word 0x008D57C0, 0x008D5808 + .word 0x008D5808, 0x008D5850 + .word 0x008D5850, 0x008D5850 + .word 0x008D5850, 0x008D7180 + .word 0x008D7180, 0x008D7180 + .word 0x008D7180, 0x008D8AB0 + .word 0x008D8AB0, 0x008D8AF8 + .word 0x008D8AF8, 0x008D8B40 + .word 0x008D8B40, 0x008D8B40 + .word 0x008D8B40, 0x008DA470 + .word 0x008DA470, 0x008DA470 + .word 0x008DA470, 0x008DBDA0 + .word 0x008DBDA0, 0x008DBDE8 + .word 0x008DBDE8, 0x008DBE30 + .word 0x008DBE30, 0x008DD760 + .word 0x008DD760, 0x008DF090 + .word 0x008DF090, 0x008E09C0 + .word 0x008E09C0, 0x008E22F0 + .word 0x008E22F0, 0x008E2338 + .word 0x008E2338, 0x008E2380 + .word 0x008E2380, 0x008E3CB0 + .word 0x008E3CB0, 0x008E55E0 + .word 0x008E55E0, 0x008E6F10 + .word 0x008E6F10, 0x008E8840 + .word 0x008E8840, 0x008E8888 + .word 0x008E8888, 0x008E88D0 + .word 0x008E88D0, 0x008EA200 + .word 0x008EA200, 0x008EBB30 + .word 0x008EBB30, 0x008ED460 + .word 0x008ED460, 0x008EED90 + .word 0x008EED90, 0x008EEDD8 + .word 0x008EEDD8, 0x008EEE20 + .word 0x008EEE20, 0x008F0750 + .word 0x008F0750, 0x008F2080 + .word 0x008F2080, 0x008F39B0 + .word 0x008F39B0, 0x008F52E0 + .word 0x008F52E0, 0x008F5328 + .word 0x008F5328, 0x008F5370 + .word 0x008F5370, 0x008F6CA0 + .word 0x008F6CA0, 0x008F85D0 + .word 0x008F85D0, 0x008F9F00 + .word 0x008F9F00, 0x008FB830 + .word 0x008FB830, 0x008FB878 + .word 0x008FB878, 0x008FB8C0 + .word 0x008FB8C0, 0x008FD1F0 + .word 0x008FD1F0, 0x008FEB20 + .word 0x008FEB20, 0x00900450 + .word 0x00900450, 0x00901D80 + .word 0x00901D80, 0x00901DC8 + .word 0x00901DC8, 0x00901E10 + .word 0x00901E10, 0x00903740 + .word 0x00903740, 0x00905070 + .word 0x00905070, 0x009069A0 + .word 0x009069A0, 0x009082D0 + .word 0x009082D0, 0x00908318 + .word 0x00908318, 0x00908360 + .word 0x00908360, 0x00909C90 + .word 0x00909C90, 0x0090B5C0 + .word 0x0090B5C0, 0x0090CEF0 + .word 0x0090CEF0, 0x0090E820 + .word 0x0090E820, 0x0090E868 + .word 0x0090E868, 0x0090E8B0 + .word 0x0090E8B0, 0x009101E0 + .word 0x009101E0, 0x00911B10 + .word 0x00911B10, 0x00913440 + .word 0x00913440, 0x00914D70 + .word 0x00914D70, 0x00914DB8 + .word 0x00914DB8, 0x00914E00 + .word 0x00914E00, 0x00916730 + .word 0x00916730, 0x00918060 + .word 0x00918060, 0x00919990 + .word 0x00919990, 0x0091B2C0 + .word 0x0091B2C0, 0x0091B308 + .word 0x0091B308, 0x0091B350 + .word 0x0091B350, 0x0091CC80 + .word 0x0091CC80, 0x0091E5B0 + .word 0x0091E5B0, 0x0091FEE0 + .word 0x0091FEE0, 0x00921810 + .word 0x00921810, 0x00921858 + .word 0x00921858, 0x009218A0 + .word 0x009218A0, 0x009231D0 + .word 0x009231D0, 0x00924B00 + .word 0x00924B00, 0x00926430 + .word 0x00926430, 0x00927D60 + .word 0x00927D60, 0x00927DA8 + .word 0x00927DA8, 0x00927DF0 + .word 0x00927DF0, 0x00929720 + .word 0x00929720, 0x0092B050 + .word 0x0092B050, 0x0092C980 + .word 0x0092C980, 0x0092E2B0 + .word 0x0092E2B0, 0x0092E2F8 + .word 0x0092E2F8, 0x0092E340 + .word 0x0092E340, 0x0092FC70 + .word 0x0092FC70, 0x009315A0 + .word 0x009315A0, 0x00932ED0 + .word 0x00932ED0, 0x00934800 + .word 0x00934800, 0x00934848 + .word 0x00934848, 0x00934890 + .word 0x00934890, 0x009361C0 + .word 0x009361C0, 0x00937AF0 + .word 0x00937AF0, 0x00939420 + .word 0x00939420, 0x0093AD50 + .word 0x0093AD50, 0x0093AD98 + .word 0x0093AD98, 0x0093ADE0 + .word 0x0093ADE0, 0x0093C710 + .word 0x0093C710, 0x0093E040 + .word 0x0093E040, 0x0093F970 + .word 0x0093F970, 0x009412A0 + .word 0x009412A0, 0x009412E8 + .word 0x009412E8, 0x00941330 + .word 0x00941330, 0x00942C60 + .word 0x00942C60, 0x00944590 + .word 0x00944590, 0x00945EC0 + .word 0x00945EC0, 0x009477F0 + .word 0x009477F0, 0x00947838 + .word 0x00947838, 0x00947880 + .word 0x00947880, 0x009491B0 + .word 0x009491B0, 0x0094AAE0 + .word 0x0094AAE0, 0x0094C410 + .word 0x0094C410, 0x0094DD40 + .word 0x0094DD40, 0x0094DD88 + .word 0x0094DD88, 0x0094DDD0 + .word 0x0094DDD0, 0x0094F700 + .word 0x0094F700, 0x00951030 + .word 0x00951030, 0x00952960 + .word 0x00952960, 0x00954290 + .word 0x00954290, 0x009542D8 + .word 0x009542D8, 0x00954320 + .word 0x00954320, 0x00955C50 + .word 0x00955C50, 0x00957580 + .word 0x00957580, 0x00958EB0 + .word 0x00958EB0, 0x0095A7E0 + .word 0x0095A7E0, 0x0095A828 + .word 0x0095A828, 0x0095A870 + .word 0x0095A870, 0x0095C1A0 + .word 0x0095C1A0, 0x0095DAD0 + .word 0x0095DAD0, 0x0095F400 + .word 0x0095F400, 0x00960D30 + .word 0x00960D30, 0x00960D78 + .word 0x00960D78, 0x00960DC0 + .word 0x00960DC0, 0x009626F0 + .word 0x009626F0, 0x00964020 + .word 0x00964020, 0x00965950 + .word 0x00965950, 0x00967280 + .word 0x00967280, 0x009672C8 + .word 0x009672C8, 0x00967310 + .word 0x00967310, 0x00968C40 + .word 0x00968C40, 0x0096A570 + .word 0x0096A570, 0x0096BEA0 + .word 0x0096BEA0, 0x0096D7D0 + .word 0x0096D7D0, 0x0096D818 + .word 0x0096D818, 0x0096D860 + .word 0x0096D860, 0x0096F190 + .word 0x0096F190, 0x00970AC0 + .word 0x00970AC0, 0x009723F0 + .word 0x009723F0, 0x00973D20 + .word 0x00973D20, 0x00973D68 + .word 0x00973D68, 0x00973DB0 + .word 0x00973DB0, 0x009756E0 + .word 0x009756E0, 0x00977010 + .word 0x00977010, 0x00978940 + .word 0x00978940, 0x0097A270 + .word 0x0097A270, 0x0097A2B8 + .word 0x0097A2B8, 0x0097A300 + .word 0x0097A300, 0x0097BC30 + .word 0x0097BC30, 0x0097D560 + .word 0x0097D560, 0x0097EE90 + .word 0x0097EE90, 0x009807C0 + .word 0x009807C0, 0x00980808 + .word 0x00980808, 0x00980850 + .word 0x00980850, 0x00982180 + .word 0x00982180, 0x00982180 + .word 0x00982180, 0x00983AB0 + .word 0x00983AB0, 0x00983AB0 + .word 0x00983AB0, 0x00983AF8 + .word 0x00983AF8, 0x00983B40 + .word 0x00983B40, 0x00983B40 + .word 0x00983B40, 0x00985470 + .word 0x00985470, 0x00985470 + .word 0x00985470, 0x00986DA0 + .word 0x00986DA0, 0x00986DE8 + .word 0x00986DE8, 0x00986E30 + .word 0x00986E30, 0x00988760 + .word 0x00988760, 0x0098A090 + .word 0x0098A090, 0x0098B9C0 + .word 0x0098B9C0, 0x0098D2F0 + .word 0x0098D2F0, 0x0098D338 + .word 0x0098D338, 0x0098D380 + .word 0x0098D380, 0x0098ECB0 + .word 0x0098ECB0, 0x0098ECB0 + .word 0x0098ECB0, 0x009905E0 + .word 0x009905E0, 0x009905E0 + .word 0x009905E0, 0x00990628 + .word 0x00990628, 0x00990670 + .word 0x00990670, 0x00991FA0 + .word 0x00991FA0, 0x009938D0 + .word 0x009938D0, 0x00995200 + .word 0x00995200, 0x00996B30 + .word 0x00996B30, 0x00996B78 + .word 0x00996B78, 0x00996BC0 + .word 0x00996BC0, 0x009984F0 + .word 0x009984F0, 0x00999E20 + .word 0x00999E20, 0x0099B750 + .word 0x0099B750, 0x0099D080 + .word 0x0099D080, 0x0099D0C8 + .word 0x0099D0C8, 0x0099D110 + .word 0x0099D110, 0x0099EA40 + .word 0x0099EA40, 0x009A0370 + .word 0x009A0370, 0x009A1CA0 + .word 0x009A1CA0, 0x009A35D0 + .word 0x009A35D0, 0x009A3618 + .word 0x009A3618, 0x009A3660 + .word 0x009A3660, 0x009A4F90 + .word 0x009A4F90, 0x009A68C0 + .word 0x009A68C0, 0x009A81F0 + .word 0x009A81F0, 0x009A9B20 + .word 0x009A9B20, 0x009A9B68 + .word 0x009A9B68, 0x009A9BB0 + .word 0x009A9BB0, 0x009AB4E0 + .word 0x009AB4E0, 0x009ACE10 + .word 0x009ACE10, 0x009AE740 + .word 0x009AE740, 0x009B0070 + .word 0x009B0070, 0x009B00B8 + .word 0x009B00B8, 0x009B0100 + .word 0x009B0100, 0x009B1A30 + .word 0x009B1A30, 0x009B3360 + .word 0x009B3360, 0x009B4C90 + .word 0x009B4C90, 0x009B65C0 + .word 0x009B65C0, 0x009B6608 + .word 0x009B6608, 0x009B6650 + .word 0x009B6650, 0x009B7F80 + .word 0x009B7F80, 0x009B98B0 + .word 0x009B98B0, 0x009BB1E0 + .word 0x009BB1E0, 0x009BCB10 + .word 0x009BCB10, 0x009BCB58 + .word 0x009BCB58, 0x009BCBA0 + .word 0x009BCBA0, 0x009BE4D0 + .word 0x009BE4D0, 0x009BFE00 + .word 0x009BFE00, 0x009C1730 + .word 0x009C1730, 0x009C3060 + .word 0x009C3060, 0x009C30A8 + .word 0x009C30A8, 0x009C30F0 + .word 0x009C30F0, 0x009C4A20 + .word 0x009C4A20, 0x009C6350 + .word 0x009C6350, 0x009C7C80 + .word 0x009C7C80, 0x009C95B0 + .word 0x009C95B0, 0x009C95F8 + .word 0x009C95F8, 0x009C9640 + .word 0x009C9640, 0x009CAF70 + .word 0x009CAF70, 0x009CC8A0 + .word 0x009CC8A0, 0x009CE1D0 + .word 0x009CE1D0, 0x009CFB00 + .word 0x009CFB00, 0x009CFB48 + .word 0x009CFB48, 0x009CFB90 + .word 0x009CFB90, 0x009D14C0 + .word 0x009D14C0, 0x009D2DF0 + .word 0x009D2DF0, 0x009D4720 + .word 0x009D4720, 0x009D6050 + .word 0x009D6050, 0x009D6098 + .word 0x009D6098, 0x009D60E0 + .word 0x009D60E0, 0x009D7A10 + .word 0x009D7A10, 0x009D9340 + .word 0x009D9340, 0x009DAC70 + .word 0x009DAC70, 0x009DC5A0 + .word 0x009DC5A0, 0x009DC5E8 + .word 0x009DC5E8, 0x009DC630 + .word 0x009DC630, 0x009DDF60 + .word 0x009DDF60, 0x009DF890 + .word 0x009DF890, 0x009E11C0 + .word 0x009E11C0, 0x009E2AF0 + .word 0x009E2AF0, 0x009E2B38 + .word 0x009E2B38, 0x009E2B80 + .word 0x009E2B80, 0x009E44B0 + .word 0x009E44B0, 0x009E5DE0 + .word 0x009E5DE0, 0x009E7710 + .word 0x009E7710, 0x009E9040 + .word 0x009E9040, 0x009E9088 + .word 0x009E9088, 0x009E90D0 + .word 0x009E90D0, 0x009EAA00 + .word 0x009EAA00, 0x009EC330 + .word 0x009EC330, 0x009EDC60 + .word 0x009EDC60, 0x009EF590 + .word 0x009EF590, 0x009EF5D8 + .word 0x009EF5D8, 0x009EF620 + .word 0x009EF620, 0x009F0F50 + .word 0x009F0F50, 0x009F2880 + .word 0x009F2880, 0x009F41B0 + .word 0x009F41B0, 0x009F5AE0 + .word 0x009F5AE0, 0x009F5B28 + .word 0x009F5B28, 0x009F5B70 + .word 0x009F5B70, 0x009F74A0 + .word 0x009F74A0, 0x009F8DD0 + .word 0x009F8DD0, 0x009FA700 + .word 0x009FA700, 0x009FC030 + .word 0x009FC030, 0x009FC078 + .word 0x009FC078, 0x009FC0C0 + .word 0x009FC0C0, 0x009FD9F0 + .word 0x009FD9F0, 0x009FF320 + .word 0x009FF320, 0x00A00C50 + .word 0x00A00C50, 0x00A02580 + .word 0x00A02580, 0x00A025C8 + .word 0x00A025C8, 0x00A02610 + .word 0x00A02610, 0x00A03F40 + .word 0x00A03F40, 0x00A05870 + .word 0x00A05870, 0x00A071A0 + .word 0x00A071A0, 0x00A08AD0 + .word 0x00A08AD0, 0x00A08B18 + .word 0x00A08B18, 0x00A08B60 + .word 0x00A08B60, 0x00A08B60 + .word 0x00A08B60, 0x00A0A490 + .word 0x00A0A490, 0x00A0A490 + .word 0x00A0A490, 0x00A0BDC0 + .word 0x00A0BDC0, 0x00A0BE08 + .word 0x00A0BE08, 0x00A0BE50 + .word 0x00A0BE50, 0x00A0BE50 + .word 0x00A0BE50, 0x00A0D780 + .word 0x00A0D780, 0x00A0D780 + .word 0x00A0D780, 0x00A0F0B0 + .word 0x00A0F0B0, 0x00A0F0F8 + .word 0x00A0F0F8, 0x00A0F140 + .word 0x00A0F140, 0x00A10A70 + .word 0x00A10A70, 0x00A123A0 + .word 0x00A123A0, 0x00A13CD0 + .word 0x00A13CD0, 0x00A15600 + .word 0x00A15600, 0x00A15648 + .word 0x00A15648, 0x00A15690 + .word 0x00A15690, 0x00A16FC0 + .word 0x00A16FC0, 0x00A188F0 + .word 0x00A188F0, 0x00A1A220 + .word 0x00A1A220, 0x00A1BB50 + .word 0x00A1BB50, 0x00A1BB98 + .word 0x00A1BB98, 0x00A1BBE0 + .word 0x00A1BBE0, 0x00A1D510 + .word 0x00A1D510, 0x00A1D510 + .word 0x00A1D510, 0x00A1EE40 + .word 0x00A1EE40, 0x00A1EE40 + .word 0x00A1EE40, 0x00A1EE88 + .word 0x00A1EE88, 0x00A1EED0 + .word 0x00A1EED0, 0x00A20800 + .word 0x00A20800, 0x00A22130 + .word 0x00A22130, 0x00A23A60 + .word 0x00A23A60, 0x00A25390 + .word 0x00A25390, 0x00A253D8 + .word 0x00A253D8, 0x00A25420 + .word 0x00A25420, 0x00A26D50 + .word 0x00A26D50, 0x00A28680 + .word 0x00A28680, 0x00A29FB0 + .word 0x00A29FB0, 0x00A2B8E0 + .word 0x00A2B8E0, 0x00A2B928 + .word 0x00A2B928, 0x00A2B970 + .word 0x00A2B970, 0x00A2D2A0 + .word 0x00A2D2A0, 0x00A2EBD0 + .word 0x00A2EBD0, 0x00A30500 + .word 0x00A30500, 0x00A31E30 + .word 0x00A31E30, 0x00A31E78 + .word 0x00A31E78, 0x00A31EC0 + .word 0x00A31EC0, 0x00A337F0 + .word 0x00A337F0, 0x00A35120 + .word 0x00A35120, 0x00A36A50 + .word 0x00A36A50, 0x00A38380 + .word 0x00A38380, 0x00A383C8 + .word 0x00A383C8, 0x00A38410 + .word 0x00A38410, 0x00A39D40 + .word 0x00A39D40, 0x00A3B670 + .word 0x00A3B670, 0x00A3CFA0 + .word 0x00A3CFA0, 0x00A3E8D0 + .word 0x00A3E8D0, 0x00A3E918 + .word 0x00A3E918, 0x00A3E960 + .word 0x00A3E960, 0x00A40290 + .word 0x00A40290, 0x00A41BC0 + .word 0x00A41BC0, 0x00A434F0 + .word 0x00A434F0, 0x00A44E20 + .word 0x00A44E20, 0x00A44E68 + .word 0x00A44E68, 0x00A44EB0 + .word 0x00A44EB0, 0x00A467E0 + .word 0x00A467E0, 0x00A48110 + .word 0x00A48110, 0x00A49A40 + .word 0x00A49A40, 0x00A4B370 + .word 0x00A4B370, 0x00A4B3B8 + .word 0x00A4B3B8, 0x00A4B400 + .word 0x00A4B400, 0x00A4CD30 + .word 0x00A4CD30, 0x00A4E660 + .word 0x00A4E660, 0x00A4FF90 + .word 0x00A4FF90, 0x00A518C0 + .word 0x00A518C0, 0x00A51908 + .word 0x00A51908, 0x00A51950 + .word 0x00A51950, 0x00A53280 + .word 0x00A53280, 0x00A54BB0 + .word 0x00A54BB0, 0x00A564E0 + .word 0x00A564E0, 0x00A57E10 + .word 0x00A57E10, 0x00A57E58 + .word 0x00A57E58, 0x00A57EA0 + .word 0x00A57EA0, 0x00A597D0 + .word 0x00A597D0, 0x00A5B100 + .word 0x00A5B100, 0x00A5CA30 + .word 0x00A5CA30, 0x00A5E360 + .word 0x00A5E360, 0x00A5E3A8 + .word 0x00A5E3A8, 0x00A5E3F0 + .word 0x00A5E3F0, 0x00A5FD20 + .word 0x00A5FD20, 0x00A61650 + .word 0x00A61650, 0x00A62F80 + .word 0x00A62F80, 0x00A648B0 + .word 0x00A648B0, 0x00A648F8 + .word 0x00A648F8, 0x00A64940 + .word 0x00A64940, 0x00A66270 + .word 0x00A66270, 0x00A67BA0 + .word 0x00A67BA0, 0x00A694D0 + .word 0x00A694D0, 0x00A6AE00 + .word 0x00A6AE00, 0x00A6AE48 + .word 0x00A6AE48, 0x00A6AE90 + .word 0x00A6AE90, 0x00A6C7C0 + .word 0x00A6C7C0, 0x00A6E0F0 + .word 0x00A6E0F0, 0x00A6FA20 + .word 0x00A6FA20, 0x00A71350 + .word 0x00A71350, 0x00A71398 + .word 0x00A71398, 0x00A713E0 + .word 0x00A713E0, 0x00A72D10 + .word 0x00A72D10, 0x00A74640 + .word 0x00A74640, 0x00A75F70 + .word 0x00A75F70, 0x00A778A0 + .word 0x00A778A0, 0x00A778E8 + .word 0x00A778E8, 0x00A77930 + .word 0x00A77930, 0x00A79260 + .word 0x00A79260, 0x00A7AB90 + .word 0x00A7AB90, 0x00A7C4C0 + .word 0x00A7C4C0, 0x00A7DDF0 + .word 0x00A7DDF0, 0x00A7DE38 + .word 0x00A7DE38, 0x00A7DE80 + .word 0x00A7DE80, 0x00A7F7B0 + .word 0x00A7F7B0, 0x00A810E0 + .word 0x00A810E0, 0x00A82A10 + .word 0x00A82A10, 0x00A84340 + .word 0x00A84340, 0x00A84388 + .word 0x00A84388, 0x00A843D0 + .word 0x00A843D0, 0x00A85D00 + .word 0x00A85D00, 0x00A87630 + .word 0x00A87630, 0x00A88F60 + .word 0x00A88F60, 0x00A8A890 + .word 0x00A8A890, 0x00A8A8D8 + .word 0x00A8A8D8, 0x00A8A920 + .word 0x00A8A920, 0x00A8C250 + .word 0x00A8C250, 0x00A8DB80 + .word 0x00A8DB80, 0x00A8F4B0 + .word 0x00A8F4B0, 0x00A90DE0 + .word 0x00A90DE0, 0x00A90E28 + .word 0x00A90E28, 0x00A90E70 + .word 0x00A90E70, 0x00A927A0 + .word 0x00A927A0, 0x00A940D0 + .word 0x00A940D0, 0x00A95A00 + .word 0x00A95A00, 0x00A97330 + .word 0x00A97330, 0x00A97378 + .word 0x00A97378, 0x00A973C0 + .word 0x00A973C0, 0x00A98CF0 + .word 0x00A98CF0, 0x00A9A620 + .word 0x00A9A620, 0x00A9BF50 + .word 0x00A9BF50, 0x00A9D880 + .word 0x00A9D880, 0x00A9D8C8 + .word 0x00A9D8C8, 0x00A9D910 + .word 0x00A9D910, 0x00A9F240 + .word 0x00A9F240, 0x00AA0B70 + .word 0x00AA0B70, 0x00AA24A0 + .word 0x00AA24A0, 0x00AA3DD0 + .word 0x00AA3DD0, 0x00AA3E18 + .word 0x00AA3E18, 0x00AA3E60 + .word 0x00AA3E60, 0x00AA3E60 + .word 0x00AA3E60, 0x00AA5790 + .word 0x00AA5790, 0x00AA5790 + .word 0x00AA5790, 0x00AA70C0 + .word 0x00AA70C0, 0x00AA7108 + .word 0x00AA7108, 0x00AA7150 + .word 0x00AA7150, 0x00AA8A80 + .word 0x00AA8A80, 0x00AAA3B0 + .word 0x00AAA3B0, 0x00AABCE0 + .word 0x00AABCE0, 0x00AAD610 + .word 0x00AAD610, 0x00AAD658 + .word 0x00AAD658, 0x00AAD6A0 + .word 0x00AAD6A0, 0x00AAEFD0 + .word 0x00AAEFD0, 0x00AB0900 + .word 0x00AB0900, 0x00AB2230 + .word 0x00AB2230, 0x00AB3B60 + .word 0x00AB3B60, 0x00AB3BA8 + .word 0x00AB3BA8, 0x00AB3BF0 + .word 0x00AB3BF0, 0x00AB5520 + .word 0x00AB5520, 0x00AB6E50 + .word 0x00AB6E50, 0x00AB8780 + .word 0x00AB8780, 0x00ABA0B0 + .word 0x00ABA0B0, 0x00ABA0F8 + .word 0x00ABA0F8, 0x00ABA140 + .word 0x00ABA140, 0x00ABBA70 + .word 0x00ABBA70, 0x00ABD3A0 + .word 0x00ABD3A0, 0x00ABECD0 + .word 0x00ABECD0, 0x00AC0600 + .word 0x00AC0600, 0x00AC0648 + .word 0x00AC0648, 0x00AC0690 + .word 0x00AC0690, 0x00AC1FC0 + .word 0x00AC1FC0, 0x00AC38F0 + .word 0x00AC38F0, 0x00AC5220 + .word 0x00AC5220, 0x00AC6B50 + .word 0x00AC6B50, 0x00AC6B98 + .word 0x00AC6B98, 0x00AC6BE0 + .word 0x00AC6BE0, 0x00AC8510 + .word 0x00AC8510, 0x00AC9E40 + .word 0x00AC9E40, 0x00ACB770 + .word 0x00ACB770, 0x00ACD0A0 + .word 0x00ACD0A0, 0x00ACD0E8 + .word 0x00ACD0E8, 0x00ACD130 + .word 0x00ACD130, 0x00ACEA60 + .word 0x00ACEA60, 0x00AD0390 + .word 0x00AD0390, 0x00AD1CC0 + .word 0x00AD1CC0, 0x00AD35F0 + .word 0x00AD35F0, 0x00AD3638 + .word 0x00AD3638, 0x00AD3680 + .word 0x00AD3680, 0x00AD4FB0 + .word 0x00AD4FB0, 0x00AD68E0 + .word 0x00AD68E0, 0x00AD8210 + .word 0x00AD8210, 0x00AD9B40 + .word 0x00AD9B40, 0x00AD9B88 + .word 0x00AD9B88, 0x00AD9BD0 + .word 0x00AD9BD0, 0x00ADB500 + .word 0x00ADB500, 0x00ADCE30 + .word 0x00ADCE30, 0x00ADE760 + .word 0x00ADE760, 0x00AE0090 + .word 0x00AE0090, 0x00AE00D8 + .word 0x00AE00D8, 0x00AE0120 + .word 0x00AE0120, 0x00AE1A50 + .word 0x00AE1A50, 0x00AE3380 + .word 0x00AE3380, 0x00AE4CB0 + .word 0x00AE4CB0, 0x00AE65E0 + .word 0x00AE65E0, 0x00AE6628 + .word 0x00AE6628, 0x00AE6670 + .word 0x00AE6670, 0x00AE7FA0 + .word 0x00AE7FA0, 0x00AE98D0 + .word 0x00AE98D0, 0x00AEB200 + .word 0x00AEB200, 0x00AECB30 + .word 0x00AECB30, 0x00AECB78 + .word 0x00AECB78, 0x00AECBC0 + .word 0x00AECBC0, 0x00AECBC0 + .word 0x00AECBC0, 0x00AEE4F0 + .word 0x00AEE4F0, 0x00AEE4F0 + .word 0x00AEE4F0, 0x00AEFE20 + .word 0x00AEFE20, 0x00AEFE68 + .word 0x00AEFE68, 0x00AEFEB0 + .word 0x00AEFEB0, 0x00AEFEB0 + .word 0x00AEFEB0, 0x00AF17E0 + .word 0x00AF17E0, 0x00AF17E0 + .word 0x00AF17E0, 0x00AF3110 + .word 0x00AF3110, 0x00AF3158 + .word 0x00AF3158, 0x00AF31A0 + .word 0x00AF31A0, 0x00AF4AD0 + .word 0x00AF4AD0, 0x00AF6400 + .word 0x00AF6400, 0x00AF7D30 + .word 0x00AF7D30, 0x00AF9660 + .word 0x00AF9660, 0x00AF96A8 + .word 0x00AF96A8, 0x00AF96F0 + .word 0x00AF96F0, 0x00AFB020 + .word 0x00AFB020, 0x00AFC950 + .word 0x00AFC950, 0x00AFE280 + .word 0x00AFE280, 0x00AFFBB0 + .word 0x00AFFBB0, 0x00AFFBF8 + .word 0x00AFFBF8, 0x00AFFC40 + .word 0x00AFFC40, 0x00B01570 + .word 0x00B01570, 0x00B01570 + .word 0x00B01570, 0x00B02EA0 + .word 0x00B02EA0, 0x00B02EA0 + .word 0x00B02EA0, 0x00B02EE8 + .word 0x00B02EE8, 0x00B02F30 + .word 0x00B02F30, 0x00B02F30 + .word 0x00B02F30, 0x00B04860 + .word 0x00B04860, 0x00B04860 + .word 0x00B04860, 0x00B06190 + .word 0x00B06190, 0x00B061D8 + .word 0x00B061D8, 0x00B06220 + .word 0x00B06220, 0x00B06220 + .word 0x00B06220, 0x00B07B50 + .word 0x00B07B50, 0x00B07B50 + .word 0x00B07B50, 0x00B09480 + .word 0x00B09480, 0x00B094C8 + .word 0x00B094C8, 0x00B09510 + .word 0x00B09510, 0x00B09510 + .word 0x00B09510, 0x00B0AE40 + .word 0x00B0AE40, 0x00B0AE40 + .word 0x00B0AE40, 0x00B0C770 + .word 0x00B0C770, 0x00B0C7B8 + .word 0x00B0C7B8, 0x00B0C800 + .word 0x00B0C800, 0x00B0C800 + .word 0x00B0C800, 0x00B0E130 + .word 0x00B0E130, 0x00B0E130 + .word 0x00B0E130, 0x00B0FA60 + .word 0x00B0FA60, 0x00B0FAA8 + .word 0x00B0FAA8, 0x00B0FAF0 + .word 0x00B0FAF0, 0x00B0FAF0 + .word 0x00B0FAF0, 0x00B11420 + .word 0x00B11420, 0x00B11420 + .word 0x00B11420, 0x00B12D50 + .word 0x00B12D50, 0x00B12D98 + .word 0x00B12D98, 0x00B12DE0 + .word 0x00B12DE0, 0x00B12DE0 + .word 0x00B12DE0, 0x00B14710 + .word 0x00B14710, 0x00B14710 + .word 0x00B14710, 0x00B16040 + .word 0x00B16040, 0x00B16088 + .word 0x00B16088, 0x00B160D0 + .word 0x00B160D0, 0x00B17A00 + .word 0x00B17A00, 0x00B19330 + .word 0x00B19330, 0x00B1AC60 + .word 0x00B1AC60, 0x00B1C590 + .word 0x00B1C590, 0x00B1C5D8 + .word 0x00B1C5D8, 0x00B1C620 + .word 0x00B1C620, 0x00B1C620 + .word 0x00B1C620, 0x00B1DF50 + .word 0x00B1DF50, 0x00B1DF50 + .word 0x00B1DF50, 0x00B1F880 + .word 0x00B1F880, 0x00B1F8C8 + .word 0x00B1F8C8, 0x00B1F910 + .word 0x00B1F910, 0x00B1F910 + .word 0x00B1F910, 0x00B21240 + .word 0x00B21240, 0x00B21240 + .word 0x00B21240, 0x00B22B70 + .word 0x00B22B70, 0x00B22BB8 + .word 0x00B22BB8, 0x00B22C00 + .word 0x00B22C00, 0x00B24530 + .word 0x00B24530, 0x00B24530 + .word 0x00B24530, 0x00B25E60 + .word 0x00B25E60, 0x00B25E60 + .word 0x00B25E60, 0x00B25EA8 + .word 0x00B25EA8, 0x00B25EF0 + .word 0x00B25EF0, 0x00B25EF0 + .word 0x00B25EF0, 0x00B27820 + .word 0x00B27820, 0x00B27820 + .word 0x00B27820, 0x00B29150 + .word 0x00B29150, 0x00B29198 + .word 0x00B29198, 0x00B291E0 + .word 0x00B291E0, 0x00B291E0 + .word 0x00B291E0, 0x00B2AB10 + .word 0x00B2AB10, 0x00B2AB10 + .word 0x00B2AB10, 0x00B2C440 + .word 0x00B2C440, 0x00B2C488 + .word 0x00B2C488, 0x00B2C4D0 + .word 0x00B2C4D0, 0x00B2C4D0 + .word 0x00B2C4D0, 0x00B2DE00 + .word 0x00B2DE00, 0x00B2DE00 + .word 0x00B2DE00, 0x00B2F730 + .word 0x00B2F730, 0x00B2F778 + .word 0x00B2F778, 0x00B2F7C0 + .word 0x00B2F7C0, 0x00B2F7C0 + .word 0x00B2F7C0, 0x00B310F0 + .word 0x00B310F0, 0x00B310F0 + .word 0x00B310F0, 0x00B32A20 + .word 0x00B32A20, 0x00B32A68 + .word 0x00B32A68, 0x00B32AB0 + .word 0x00B32AB0, 0x00B32AB0 + .word 0x00B32AB0, 0x00B343E0 + .word 0x00B343E0, 0x00B343E0 + .word 0x00B343E0, 0x00B35D10 + .word 0x00B35D10, 0x00B35D58 + .word 0x00B35D58, 0x00B35DA0 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00B35DA8 ; chunk size + .incbin "baserom.nds", 0x0, 0x1930 + .incbin "baserom.nds", 0x1930, 0x1930 + .incbin "baserom.nds", 0x3260, 0x1930 + .incbin "baserom.nds", 0x4B90, 0x1930 + .incbin "baserom.nds", 0x64C0, 0x48 + .incbin "baserom.nds", 0x6508, 0x48 + .incbin "baserom.nds", 0x6550, 0x1930 + .incbin "baserom.nds", 0x7E80, 0x1930 + .incbin "baserom.nds", 0x97B0, 0x1930 + .incbin "baserom.nds", 0xB0E0, 0x1930 + .incbin "baserom.nds", 0xCA10, 0x48 + .incbin "baserom.nds", 0xCA58, 0x48 + .incbin "baserom.nds", 0xCAA0, 0x1930 + .incbin "baserom.nds", 0xE3D0, 0x1930 + .incbin "baserom.nds", 0xFD00, 0x1930 + .incbin "baserom.nds", 0x11630, 0x1930 + .incbin "baserom.nds", 0x12F60, 0x48 + .incbin "baserom.nds", 0x12FA8, 0x48 + .incbin "baserom.nds", 0x12FF0, 0x1930 + .incbin "baserom.nds", 0x14920, 0x1930 + .incbin "baserom.nds", 0x16250, 0x1930 + .incbin "baserom.nds", 0x17B80, 0x1930 + .incbin "baserom.nds", 0x194B0, 0x48 + .incbin "baserom.nds", 0x194F8, 0x48 + .incbin "baserom.nds", 0x19540, 0x1930 + .incbin "baserom.nds", 0x1AE70, 0x1930 + .incbin "baserom.nds", 0x1C7A0, 0x1930 + .incbin "baserom.nds", 0x1E0D0, 0x1930 + .incbin "baserom.nds", 0x1FA00, 0x48 + .incbin "baserom.nds", 0x1FA48, 0x48 + .incbin "baserom.nds", 0x1FA90, 0x1930 + .incbin "baserom.nds", 0x213C0, 0x1930 + .incbin "baserom.nds", 0x22CF0, 0x1930 + .incbin "baserom.nds", 0x24620, 0x1930 + .incbin "baserom.nds", 0x25F50, 0x48 + .incbin "baserom.nds", 0x25F98, 0x48 + .incbin "baserom.nds", 0x25FE0, 0x1930 + .incbin "baserom.nds", 0x27910, 0x1930 + .incbin "baserom.nds", 0x29240, 0x1930 + .incbin "baserom.nds", 0x2AB70, 0x1930 + .incbin "baserom.nds", 0x2C4A0, 0x48 + .incbin "baserom.nds", 0x2C4E8, 0x48 + .incbin "baserom.nds", 0x2C530, 0x1930 + .incbin "baserom.nds", 0x2DE60, 0x1930 + .incbin "baserom.nds", 0x2F790, 0x1930 + .incbin "baserom.nds", 0x310C0, 0x1930 + .incbin "baserom.nds", 0x329F0, 0x48 + .incbin "baserom.nds", 0x32A38, 0x48 + .incbin "baserom.nds", 0x32A80, 0x1930 + .incbin "baserom.nds", 0x343B0, 0x1930 + .incbin "baserom.nds", 0x35CE0, 0x1930 + .incbin "baserom.nds", 0x37610, 0x1930 + .incbin "baserom.nds", 0x38F40, 0x48 + .incbin "baserom.nds", 0x38F88, 0x48 + .incbin "baserom.nds", 0x38FD0, 0x1930 + .incbin "baserom.nds", 0x3A900, 0x1930 + .incbin "baserom.nds", 0x3C230, 0x1930 + .incbin "baserom.nds", 0x3DB60, 0x1930 + .incbin "baserom.nds", 0x3F490, 0x48 + .incbin "baserom.nds", 0x3F4D8, 0x48 + .incbin "baserom.nds", 0x3F520, 0x1930 + .incbin "baserom.nds", 0x40E50, 0x1930 + .incbin "baserom.nds", 0x42780, 0x1930 + .incbin "baserom.nds", 0x440B0, 0x1930 + .incbin "baserom.nds", 0x459E0, 0x48 + .incbin "baserom.nds", 0x45A28, 0x48 + .incbin "baserom.nds", 0x45A70, 0x1930 + .incbin "baserom.nds", 0x473A0, 0x1930 + .incbin "baserom.nds", 0x48CD0, 0x1930 + .incbin "baserom.nds", 0x4A600, 0x1930 + .incbin "baserom.nds", 0x4BF30, 0x48 + .incbin "baserom.nds", 0x4BF78, 0x48 + .incbin "baserom.nds", 0x4BFC0, 0x1930 + .incbin "baserom.nds", 0x4D8F0, 0x1930 + .incbin "baserom.nds", 0x4F220, 0x1930 + .incbin "baserom.nds", 0x50B50, 0x1930 + .incbin "baserom.nds", 0x52480, 0x48 + .incbin "baserom.nds", 0x524C8, 0x48 + .incbin "baserom.nds", 0x52510, 0x1930 + .incbin "baserom.nds", 0x53E40, 0x1930 + .incbin "baserom.nds", 0x55770, 0x1930 + .incbin "baserom.nds", 0x570A0, 0x1930 + .incbin "baserom.nds", 0x589D0, 0x48 + .incbin "baserom.nds", 0x58A18, 0x48 + .incbin "baserom.nds", 0x58A60, 0x1930 + .incbin "baserom.nds", 0x5A390, 0x1930 + .incbin "baserom.nds", 0x5BCC0, 0x1930 + .incbin "baserom.nds", 0x5D5F0, 0x1930 + .incbin "baserom.nds", 0x5EF20, 0x48 + .incbin "baserom.nds", 0x5EF68, 0x48 + .incbin "baserom.nds", 0x5EFB0, 0x1930 + .incbin "baserom.nds", 0x608E0, 0x1930 + .incbin "baserom.nds", 0x62210, 0x1930 + .incbin "baserom.nds", 0x63B40, 0x1930 + .incbin "baserom.nds", 0x65470, 0x48 + .incbin "baserom.nds", 0x654B8, 0x48 + .incbin "baserom.nds", 0x65500, 0x1930 + .incbin "baserom.nds", 0x66E30, 0x1930 + .incbin "baserom.nds", 0x68760, 0x1930 + .incbin "baserom.nds", 0x6A090, 0x1930 + .incbin "baserom.nds", 0x6B9C0, 0x48 + .incbin "baserom.nds", 0x6BA08, 0x48 + .incbin "baserom.nds", 0x6BA50, 0x1930 + .incbin "baserom.nds", 0x6D380, 0x1930 + .incbin "baserom.nds", 0x6ECB0, 0x1930 + .incbin "baserom.nds", 0x705E0, 0x1930 + .incbin "baserom.nds", 0x71F10, 0x48 + .incbin "baserom.nds", 0x71F58, 0x48 + .incbin "baserom.nds", 0x71FA0, 0x1930 + .incbin "baserom.nds", 0x738D0, 0x1930 + .incbin "baserom.nds", 0x75200, 0x1930 + .incbin "baserom.nds", 0x76B30, 0x1930 + .incbin "baserom.nds", 0x78460, 0x48 + .incbin "baserom.nds", 0x784A8, 0x48 + .incbin "baserom.nds", 0x784F0, 0x1930 + .incbin "baserom.nds", 0x79E20, 0x1930 + .incbin "baserom.nds", 0x7B750, 0x1930 + .incbin "baserom.nds", 0x7D080, 0x1930 + .incbin "baserom.nds", 0x7E9B0, 0x48 + .incbin "baserom.nds", 0x7E9F8, 0x48 + .incbin "baserom.nds", 0x7EA40, 0x1930 + .incbin "baserom.nds", 0x80370, 0x1930 + .incbin "baserom.nds", 0x81CA0, 0x1930 + .incbin "baserom.nds", 0x835D0, 0x1930 + .incbin "baserom.nds", 0x84F00, 0x48 + .incbin "baserom.nds", 0x84F48, 0x48 + .incbin "baserom.nds", 0x84F90, 0x1930 + .incbin "baserom.nds", 0x868C0, 0x1930 + .incbin "baserom.nds", 0x881F0, 0x1930 + .incbin "baserom.nds", 0x89B20, 0x1930 + .incbin "baserom.nds", 0x8B450, 0x48 + .incbin "baserom.nds", 0x8B498, 0x48 + .incbin "baserom.nds", 0x8B4E0, 0x1930 + .incbin "baserom.nds", 0x8CE10, 0x1930 + .incbin "baserom.nds", 0x8E740, 0x1930 + .incbin "baserom.nds", 0x90070, 0x1930 + .incbin "baserom.nds", 0x919A0, 0x48 + .incbin "baserom.nds", 0x919E8, 0x48 + .incbin "baserom.nds", 0x91A30, 0x1930 + .incbin "baserom.nds", 0x93360, 0x1930 + .incbin "baserom.nds", 0x94C90, 0x1930 + .incbin "baserom.nds", 0x965C0, 0x1930 + .incbin "baserom.nds", 0x97EF0, 0x48 + .incbin "baserom.nds", 0x97F38, 0x48 + .incbin "baserom.nds", 0x97F80, 0x1930 + .incbin "baserom.nds", 0x998B0, 0x1930 + .incbin "baserom.nds", 0x9B1E0, 0x1930 + .incbin "baserom.nds", 0x9CB10, 0x1930 + .incbin "baserom.nds", 0x9E440, 0x48 + .incbin "baserom.nds", 0x9E488, 0x48 + .incbin "baserom.nds", 0x9E4D0, 0x1930 + .incbin "baserom.nds", 0x9FE00, 0x1930 + .incbin "baserom.nds", 0xA1730, 0x1930 + .incbin "baserom.nds", 0xA3060, 0x1930 + .incbin "baserom.nds", 0xA4990, 0x48 + .incbin "baserom.nds", 0xA49D8, 0x48 + .incbin "baserom.nds", 0xA4A20, 0x1930 + .incbin "baserom.nds", 0xA6350, 0x1930 + .incbin "baserom.nds", 0xA7C80, 0x1930 + .incbin "baserom.nds", 0xA95B0, 0x1930 + .incbin "baserom.nds", 0xAAEE0, 0x48 + .incbin "baserom.nds", 0xAAF28, 0x48 + .incbin "baserom.nds", 0xAAF70, 0x1930 + .incbin "baserom.nds", 0xAC8A0, 0x1930 + .incbin "baserom.nds", 0xAE1D0, 0x1930 + .incbin "baserom.nds", 0xAFB00, 0x1930 + .incbin "baserom.nds", 0xB1430, 0x48 + .incbin "baserom.nds", 0xB1478, 0x48 + .incbin "baserom.nds", 0xB14C0, 0x1930 + .incbin "baserom.nds", 0xB2DF0, 0x1930 + .incbin "baserom.nds", 0xB4720, 0x1930 + .incbin "baserom.nds", 0xB6050, 0x1930 + .incbin "baserom.nds", 0xB7980, 0x48 + .incbin "baserom.nds", 0xB79C8, 0x48 + .incbin "baserom.nds", 0xB7A10, 0x1930 + .incbin "baserom.nds", 0xB9340, 0x0 + .incbin "baserom.nds", 0xB9340, 0x1930 + .incbin "baserom.nds", 0xBAC70, 0x0 + .incbin "baserom.nds", 0xBAC70, 0x48 + .incbin "baserom.nds", 0xBACB8, 0x48 + .incbin "baserom.nds", 0xBAD00, 0x1930 + .incbin "baserom.nds", 0xBC630, 0x0 + .incbin "baserom.nds", 0xBC630, 0x1930 + .incbin "baserom.nds", 0xBDF60, 0x0 + .incbin "baserom.nds", 0xBDF60, 0x48 + .incbin "baserom.nds", 0xBDFA8, 0x48 + .incbin "baserom.nds", 0xBDFF0, 0x1930 + .incbin "baserom.nds", 0xBF920, 0x0 + .incbin "baserom.nds", 0xBF920, 0x1930 + .incbin "baserom.nds", 0xC1250, 0x0 + .incbin "baserom.nds", 0xC1250, 0x48 + .incbin "baserom.nds", 0xC1298, 0x48 + .incbin "baserom.nds", 0xC12E0, 0x0 + .incbin "baserom.nds", 0xC12E0, 0x1930 + .incbin "baserom.nds", 0xC2C10, 0x0 + .incbin "baserom.nds", 0xC2C10, 0x1930 + .incbin "baserom.nds", 0xC4540, 0x48 + .incbin "baserom.nds", 0xC4588, 0x48 + .incbin "baserom.nds", 0xC45D0, 0x0 + .incbin "baserom.nds", 0xC45D0, 0x1930 + .incbin "baserom.nds", 0xC5F00, 0x0 + .incbin "baserom.nds", 0xC5F00, 0x1930 + .incbin "baserom.nds", 0xC7830, 0x48 + .incbin "baserom.nds", 0xC7878, 0x48 + .incbin "baserom.nds", 0xC78C0, 0x0 + .incbin "baserom.nds", 0xC78C0, 0x1930 + .incbin "baserom.nds", 0xC91F0, 0x0 + .incbin "baserom.nds", 0xC91F0, 0x1930 + .incbin "baserom.nds", 0xCAB20, 0x48 + .incbin "baserom.nds", 0xCAB68, 0x48 + .incbin "baserom.nds", 0xCABB0, 0x1930 + .incbin "baserom.nds", 0xCC4E0, 0x1930 + .incbin "baserom.nds", 0xCDE10, 0x1930 + .incbin "baserom.nds", 0xCF740, 0x1930 + .incbin "baserom.nds", 0xD1070, 0x48 + .incbin "baserom.nds", 0xD10B8, 0x48 + .incbin "baserom.nds", 0xD1100, 0x1930 + .incbin "baserom.nds", 0xD2A30, 0x1930 + .incbin "baserom.nds", 0xD4360, 0x1930 + .incbin "baserom.nds", 0xD5C90, 0x1930 + .incbin "baserom.nds", 0xD75C0, 0x48 + .incbin "baserom.nds", 0xD7608, 0x48 + .incbin "baserom.nds", 0xD7650, 0x1930 + .incbin "baserom.nds", 0xD8F80, 0x1930 + .incbin "baserom.nds", 0xDA8B0, 0x1930 + .incbin "baserom.nds", 0xDC1E0, 0x1930 + .incbin "baserom.nds", 0xDDB10, 0x48 + .incbin "baserom.nds", 0xDDB58, 0x48 + .incbin "baserom.nds", 0xDDBA0, 0x1930 + .incbin "baserom.nds", 0xDF4D0, 0x1930 + .incbin "baserom.nds", 0xE0E00, 0x1930 + .incbin "baserom.nds", 0xE2730, 0x1930 + .incbin "baserom.nds", 0xE4060, 0x48 + .incbin "baserom.nds", 0xE40A8, 0x48 + .incbin "baserom.nds", 0xE40F0, 0x1930 + .incbin "baserom.nds", 0xE5A20, 0x1930 + .incbin "baserom.nds", 0xE7350, 0x1930 + .incbin "baserom.nds", 0xE8C80, 0x1930 + .incbin "baserom.nds", 0xEA5B0, 0x48 + .incbin "baserom.nds", 0xEA5F8, 0x48 + .incbin "baserom.nds", 0xEA640, 0x1930 + .incbin "baserom.nds", 0xEBF70, 0x1930 + .incbin "baserom.nds", 0xED8A0, 0x1930 + .incbin "baserom.nds", 0xEF1D0, 0x1930 + .incbin "baserom.nds", 0xF0B00, 0x48 + .incbin "baserom.nds", 0xF0B48, 0x48 + .incbin "baserom.nds", 0xF0B90, 0x1930 + .incbin "baserom.nds", 0xF24C0, 0x1930 + .incbin "baserom.nds", 0xF3DF0, 0x1930 + .incbin "baserom.nds", 0xF5720, 0x1930 + .incbin "baserom.nds", 0xF7050, 0x48 + .incbin "baserom.nds", 0xF7098, 0x48 + .incbin "baserom.nds", 0xF70E0, 0x1930 + .incbin "baserom.nds", 0xF8A10, 0x1930 + .incbin "baserom.nds", 0xFA340, 0x1930 + .incbin "baserom.nds", 0xFBC70, 0x1930 + .incbin "baserom.nds", 0xFD5A0, 0x48 + .incbin "baserom.nds", 0xFD5E8, 0x48 + .incbin "baserom.nds", 0xFD630, 0x1930 + .incbin "baserom.nds", 0xFEF60, 0x1930 + .incbin "baserom.nds", 0x100890, 0x1930 + .incbin "baserom.nds", 0x1021C0, 0x1930 + .incbin "baserom.nds", 0x103AF0, 0x48 + .incbin "baserom.nds", 0x103B38, 0x48 + .incbin "baserom.nds", 0x103B80, 0x1930 + .incbin "baserom.nds", 0x1054B0, 0x1930 + .incbin "baserom.nds", 0x106DE0, 0x1930 + .incbin "baserom.nds", 0x108710, 0x1930 + .incbin "baserom.nds", 0x10A040, 0x48 + .incbin "baserom.nds", 0x10A088, 0x48 + .incbin "baserom.nds", 0x10A0D0, 0x1930 + .incbin "baserom.nds", 0x10BA00, 0x1930 + .incbin "baserom.nds", 0x10D330, 0x1930 + .incbin "baserom.nds", 0x10EC60, 0x1930 + .incbin "baserom.nds", 0x110590, 0x48 + .incbin "baserom.nds", 0x1105D8, 0x48 + .incbin "baserom.nds", 0x110620, 0x1930 + .incbin "baserom.nds", 0x111F50, 0x1930 + .incbin "baserom.nds", 0x113880, 0x1930 + .incbin "baserom.nds", 0x1151B0, 0x1930 + .incbin "baserom.nds", 0x116AE0, 0x48 + .incbin "baserom.nds", 0x116B28, 0x48 + .incbin "baserom.nds", 0x116B70, 0x1930 + .incbin "baserom.nds", 0x1184A0, 0x1930 + .incbin "baserom.nds", 0x119DD0, 0x1930 + .incbin "baserom.nds", 0x11B700, 0x1930 + .incbin "baserom.nds", 0x11D030, 0x48 + .incbin "baserom.nds", 0x11D078, 0x48 + .incbin "baserom.nds", 0x11D0C0, 0x1930 + .incbin "baserom.nds", 0x11E9F0, 0x1930 + .incbin "baserom.nds", 0x120320, 0x1930 + .incbin "baserom.nds", 0x121C50, 0x1930 + .incbin "baserom.nds", 0x123580, 0x48 + .incbin "baserom.nds", 0x1235C8, 0x48 + .incbin "baserom.nds", 0x123610, 0x1930 + .incbin "baserom.nds", 0x124F40, 0x1930 + .incbin "baserom.nds", 0x126870, 0x1930 + .incbin "baserom.nds", 0x1281A0, 0x1930 + .incbin "baserom.nds", 0x129AD0, 0x48 + .incbin "baserom.nds", 0x129B18, 0x48 + .incbin "baserom.nds", 0x129B60, 0x1930 + .incbin "baserom.nds", 0x12B490, 0x1930 + .incbin "baserom.nds", 0x12CDC0, 0x1930 + .incbin "baserom.nds", 0x12E6F0, 0x1930 + .incbin "baserom.nds", 0x130020, 0x48 + .incbin "baserom.nds", 0x130068, 0x48 + .incbin "baserom.nds", 0x1300B0, 0x1930 + .incbin "baserom.nds", 0x1319E0, 0x1930 + .incbin "baserom.nds", 0x133310, 0x1930 + .incbin "baserom.nds", 0x134C40, 0x1930 + .incbin "baserom.nds", 0x136570, 0x48 + .incbin "baserom.nds", 0x1365B8, 0x48 + .incbin "baserom.nds", 0x136600, 0x1930 + .incbin "baserom.nds", 0x137F30, 0x1930 + .incbin "baserom.nds", 0x139860, 0x1930 + .incbin "baserom.nds", 0x13B190, 0x1930 + .incbin "baserom.nds", 0x13CAC0, 0x48 + .incbin "baserom.nds", 0x13CB08, 0x48 + .incbin "baserom.nds", 0x13CB50, 0x1930 + .incbin "baserom.nds", 0x13E480, 0x1930 + .incbin "baserom.nds", 0x13FDB0, 0x1930 + .incbin "baserom.nds", 0x1416E0, 0x1930 + .incbin "baserom.nds", 0x143010, 0x48 + .incbin "baserom.nds", 0x143058, 0x48 + .incbin "baserom.nds", 0x1430A0, 0x1930 + .incbin "baserom.nds", 0x1449D0, 0x1930 + .incbin "baserom.nds", 0x146300, 0x1930 + .incbin "baserom.nds", 0x147C30, 0x1930 + .incbin "baserom.nds", 0x149560, 0x48 + .incbin "baserom.nds", 0x1495A8, 0x48 + .incbin "baserom.nds", 0x1495F0, 0x1930 + .incbin "baserom.nds", 0x14AF20, 0x1930 + .incbin "baserom.nds", 0x14C850, 0x1930 + .incbin "baserom.nds", 0x14E180, 0x1930 + .incbin "baserom.nds", 0x14FAB0, 0x48 + .incbin "baserom.nds", 0x14FAF8, 0x48 + .incbin "baserom.nds", 0x14FB40, 0x1930 + .incbin "baserom.nds", 0x151470, 0x1930 + .incbin "baserom.nds", 0x152DA0, 0x1930 + .incbin "baserom.nds", 0x1546D0, 0x1930 + .incbin "baserom.nds", 0x156000, 0x48 + .incbin "baserom.nds", 0x156048, 0x48 + .incbin "baserom.nds", 0x156090, 0x1930 + .incbin "baserom.nds", 0x1579C0, 0x1930 + .incbin "baserom.nds", 0x1592F0, 0x1930 + .incbin "baserom.nds", 0x15AC20, 0x1930 + .incbin "baserom.nds", 0x15C550, 0x48 + .incbin "baserom.nds", 0x15C598, 0x48 + .incbin "baserom.nds", 0x15C5E0, 0x1930 + .incbin "baserom.nds", 0x15DF10, 0x1930 + .incbin "baserom.nds", 0x15F840, 0x1930 + .incbin "baserom.nds", 0x161170, 0x1930 + .incbin "baserom.nds", 0x162AA0, 0x48 + .incbin "baserom.nds", 0x162AE8, 0x48 + .incbin "baserom.nds", 0x162B30, 0x1930 + .incbin "baserom.nds", 0x164460, 0x1930 + .incbin "baserom.nds", 0x165D90, 0x1930 + .incbin "baserom.nds", 0x1676C0, 0x1930 + .incbin "baserom.nds", 0x168FF0, 0x48 + .incbin "baserom.nds", 0x169038, 0x48 + .incbin "baserom.nds", 0x169080, 0x1930 + .incbin "baserom.nds", 0x16A9B0, 0x1930 + .incbin "baserom.nds", 0x16C2E0, 0x1930 + .incbin "baserom.nds", 0x16DC10, 0x1930 + .incbin "baserom.nds", 0x16F540, 0x48 + .incbin "baserom.nds", 0x16F588, 0x48 + .incbin "baserom.nds", 0x16F5D0, 0x1930 + .incbin "baserom.nds", 0x170F00, 0x1930 + .incbin "baserom.nds", 0x172830, 0x1930 + .incbin "baserom.nds", 0x174160, 0x1930 + .incbin "baserom.nds", 0x175A90, 0x48 + .incbin "baserom.nds", 0x175AD8, 0x48 + .incbin "baserom.nds", 0x175B20, 0x1930 + .incbin "baserom.nds", 0x177450, 0x1930 + .incbin "baserom.nds", 0x178D80, 0x1930 + .incbin "baserom.nds", 0x17A6B0, 0x1930 + .incbin "baserom.nds", 0x17BFE0, 0x48 + .incbin "baserom.nds", 0x17C028, 0x48 + .incbin "baserom.nds", 0x17C070, 0x1930 + .incbin "baserom.nds", 0x17D9A0, 0x1930 + .incbin "baserom.nds", 0x17F2D0, 0x1930 + .incbin "baserom.nds", 0x180C00, 0x1930 + .incbin "baserom.nds", 0x182530, 0x48 + .incbin "baserom.nds", 0x182578, 0x48 + .incbin "baserom.nds", 0x1825C0, 0x1930 + .incbin "baserom.nds", 0x183EF0, 0x1930 + .incbin "baserom.nds", 0x185820, 0x1930 + .incbin "baserom.nds", 0x187150, 0x1930 + .incbin "baserom.nds", 0x188A80, 0x48 + .incbin "baserom.nds", 0x188AC8, 0x48 + .incbin "baserom.nds", 0x188B10, 0x1930 + .incbin "baserom.nds", 0x18A440, 0x1930 + .incbin "baserom.nds", 0x18BD70, 0x1930 + .incbin "baserom.nds", 0x18D6A0, 0x1930 + .incbin "baserom.nds", 0x18EFD0, 0x48 + .incbin "baserom.nds", 0x18F018, 0x48 + .incbin "baserom.nds", 0x18F060, 0x1930 + .incbin "baserom.nds", 0x190990, 0x1930 + .incbin "baserom.nds", 0x1922C0, 0x1930 + .incbin "baserom.nds", 0x193BF0, 0x1930 + .incbin "baserom.nds", 0x195520, 0x48 + .incbin "baserom.nds", 0x195568, 0x48 + .incbin "baserom.nds", 0x1955B0, 0x1930 + .incbin "baserom.nds", 0x196EE0, 0x1930 + .incbin "baserom.nds", 0x198810, 0x1930 + .incbin "baserom.nds", 0x19A140, 0x1930 + .incbin "baserom.nds", 0x19BA70, 0x48 + .incbin "baserom.nds", 0x19BAB8, 0x48 + .incbin "baserom.nds", 0x19BB00, 0x1930 + .incbin "baserom.nds", 0x19D430, 0x1930 + .incbin "baserom.nds", 0x19ED60, 0x1930 + .incbin "baserom.nds", 0x1A0690, 0x1930 + .incbin "baserom.nds", 0x1A1FC0, 0x48 + .incbin "baserom.nds", 0x1A2008, 0x48 + .incbin "baserom.nds", 0x1A2050, 0x1930 + .incbin "baserom.nds", 0x1A3980, 0x1930 + .incbin "baserom.nds", 0x1A52B0, 0x1930 + .incbin "baserom.nds", 0x1A6BE0, 0x1930 + .incbin "baserom.nds", 0x1A8510, 0x48 + .incbin "baserom.nds", 0x1A8558, 0x48 + .incbin "baserom.nds", 0x1A85A0, 0x1930 + .incbin "baserom.nds", 0x1A9ED0, 0x1930 + .incbin "baserom.nds", 0x1AB800, 0x1930 + .incbin "baserom.nds", 0x1AD130, 0x1930 + .incbin "baserom.nds", 0x1AEA60, 0x48 + .incbin "baserom.nds", 0x1AEAA8, 0x48 + .incbin "baserom.nds", 0x1AEAF0, 0x1930 + .incbin "baserom.nds", 0x1B0420, 0x1930 + .incbin "baserom.nds", 0x1B1D50, 0x1930 + .incbin "baserom.nds", 0x1B3680, 0x1930 + .incbin "baserom.nds", 0x1B4FB0, 0x48 + .incbin "baserom.nds", 0x1B4FF8, 0x48 + .incbin "baserom.nds", 0x1B5040, 0x1930 + .incbin "baserom.nds", 0x1B6970, 0x1930 + .incbin "baserom.nds", 0x1B82A0, 0x1930 + .incbin "baserom.nds", 0x1B9BD0, 0x1930 + .incbin "baserom.nds", 0x1BB500, 0x48 + .incbin "baserom.nds", 0x1BB548, 0x48 + .incbin "baserom.nds", 0x1BB590, 0x1930 + .incbin "baserom.nds", 0x1BCEC0, 0x1930 + .incbin "baserom.nds", 0x1BE7F0, 0x1930 + .incbin "baserom.nds", 0x1C0120, 0x1930 + .incbin "baserom.nds", 0x1C1A50, 0x48 + .incbin "baserom.nds", 0x1C1A98, 0x48 + .incbin "baserom.nds", 0x1C1AE0, 0x1930 + .incbin "baserom.nds", 0x1C3410, 0x1930 + .incbin "baserom.nds", 0x1C4D40, 0x1930 + .incbin "baserom.nds", 0x1C6670, 0x1930 + .incbin "baserom.nds", 0x1C7FA0, 0x48 + .incbin "baserom.nds", 0x1C7FE8, 0x48 + .incbin "baserom.nds", 0x1C8030, 0x1930 + .incbin "baserom.nds", 0x1C9960, 0x1930 + .incbin "baserom.nds", 0x1CB290, 0x1930 + .incbin "baserom.nds", 0x1CCBC0, 0x1930 + .incbin "baserom.nds", 0x1CE4F0, 0x48 + .incbin "baserom.nds", 0x1CE538, 0x48 + .incbin "baserom.nds", 0x1CE580, 0x1930 + .incbin "baserom.nds", 0x1CFEB0, 0x1930 + .incbin "baserom.nds", 0x1D17E0, 0x1930 + .incbin "baserom.nds", 0x1D3110, 0x1930 + .incbin "baserom.nds", 0x1D4A40, 0x48 + .incbin "baserom.nds", 0x1D4A88, 0x48 + .incbin "baserom.nds", 0x1D4AD0, 0x1930 + .incbin "baserom.nds", 0x1D6400, 0x1930 + .incbin "baserom.nds", 0x1D7D30, 0x1930 + .incbin "baserom.nds", 0x1D9660, 0x1930 + .incbin "baserom.nds", 0x1DAF90, 0x48 + .incbin "baserom.nds", 0x1DAFD8, 0x48 + .incbin "baserom.nds", 0x1DB020, 0x1930 + .incbin "baserom.nds", 0x1DC950, 0x1930 + .incbin "baserom.nds", 0x1DE280, 0x1930 + .incbin "baserom.nds", 0x1DFBB0, 0x1930 + .incbin "baserom.nds", 0x1E14E0, 0x48 + .incbin "baserom.nds", 0x1E1528, 0x48 + .incbin "baserom.nds", 0x1E1570, 0x1930 + .incbin "baserom.nds", 0x1E2EA0, 0x1930 + .incbin "baserom.nds", 0x1E47D0, 0x1930 + .incbin "baserom.nds", 0x1E6100, 0x1930 + .incbin "baserom.nds", 0x1E7A30, 0x48 + .incbin "baserom.nds", 0x1E7A78, 0x48 + .incbin "baserom.nds", 0x1E7AC0, 0x1930 + .incbin "baserom.nds", 0x1E93F0, 0x1930 + .incbin "baserom.nds", 0x1EAD20, 0x1930 + .incbin "baserom.nds", 0x1EC650, 0x1930 + .incbin "baserom.nds", 0x1EDF80, 0x48 + .incbin "baserom.nds", 0x1EDFC8, 0x48 + .incbin "baserom.nds", 0x1EE010, 0x0 + .incbin "baserom.nds", 0x1EE010, 0x1930 + .incbin "baserom.nds", 0x1EF940, 0x0 + .incbin "baserom.nds", 0x1EF940, 0x1930 + .incbin "baserom.nds", 0x1F1270, 0x48 + .incbin "baserom.nds", 0x1F12B8, 0x48 + .incbin "baserom.nds", 0x1F1300, 0x0 + .incbin "baserom.nds", 0x1F1300, 0x1930 + .incbin "baserom.nds", 0x1F2C30, 0x0 + .incbin "baserom.nds", 0x1F2C30, 0x1930 + .incbin "baserom.nds", 0x1F4560, 0x48 + .incbin "baserom.nds", 0x1F45A8, 0x48 + .incbin "baserom.nds", 0x1F45F0, 0x1930 + .incbin "baserom.nds", 0x1F5F20, 0x1930 + .incbin "baserom.nds", 0x1F7850, 0x1930 + .incbin "baserom.nds", 0x1F9180, 0x1930 + .incbin "baserom.nds", 0x1FAAB0, 0x48 + .incbin "baserom.nds", 0x1FAAF8, 0x48 + .incbin "baserom.nds", 0x1FAB40, 0x1930 + .incbin "baserom.nds", 0x1FC470, 0x1930 + .incbin "baserom.nds", 0x1FDDA0, 0x1930 + .incbin "baserom.nds", 0x1FF6D0, 0x1930 + .incbin "baserom.nds", 0x201000, 0x48 + .incbin "baserom.nds", 0x201048, 0x48 + .incbin "baserom.nds", 0x201090, 0x1930 + .incbin "baserom.nds", 0x2029C0, 0x1930 + .incbin "baserom.nds", 0x2042F0, 0x1930 + .incbin "baserom.nds", 0x205C20, 0x1930 + .incbin "baserom.nds", 0x207550, 0x48 + .incbin "baserom.nds", 0x207598, 0x48 + .incbin "baserom.nds", 0x2075E0, 0x1930 + .incbin "baserom.nds", 0x208F10, 0x1930 + .incbin "baserom.nds", 0x20A840, 0x1930 + .incbin "baserom.nds", 0x20C170, 0x1930 + .incbin "baserom.nds", 0x20DAA0, 0x48 + .incbin "baserom.nds", 0x20DAE8, 0x48 + .incbin "baserom.nds", 0x20DB30, 0x1930 + .incbin "baserom.nds", 0x20F460, 0x1930 + .incbin "baserom.nds", 0x210D90, 0x1930 + .incbin "baserom.nds", 0x2126C0, 0x1930 + .incbin "baserom.nds", 0x213FF0, 0x48 + .incbin "baserom.nds", 0x214038, 0x48 + .incbin "baserom.nds", 0x214080, 0x1930 + .incbin "baserom.nds", 0x2159B0, 0x1930 + .incbin "baserom.nds", 0x2172E0, 0x1930 + .incbin "baserom.nds", 0x218C10, 0x1930 + .incbin "baserom.nds", 0x21A540, 0x48 + .incbin "baserom.nds", 0x21A588, 0x48 + .incbin "baserom.nds", 0x21A5D0, 0x1930 + .incbin "baserom.nds", 0x21BF00, 0x1930 + .incbin "baserom.nds", 0x21D830, 0x1930 + .incbin "baserom.nds", 0x21F160, 0x1930 + .incbin "baserom.nds", 0x220A90, 0x48 + .incbin "baserom.nds", 0x220AD8, 0x48 + .incbin "baserom.nds", 0x220B20, 0x1930 + .incbin "baserom.nds", 0x222450, 0x1930 + .incbin "baserom.nds", 0x223D80, 0x1930 + .incbin "baserom.nds", 0x2256B0, 0x1930 + .incbin "baserom.nds", 0x226FE0, 0x48 + .incbin "baserom.nds", 0x227028, 0x48 + .incbin "baserom.nds", 0x227070, 0x1930 + .incbin "baserom.nds", 0x2289A0, 0x1930 + .incbin "baserom.nds", 0x22A2D0, 0x1930 + .incbin "baserom.nds", 0x22BC00, 0x1930 + .incbin "baserom.nds", 0x22D530, 0x48 + .incbin "baserom.nds", 0x22D578, 0x48 + .incbin "baserom.nds", 0x22D5C0, 0x1930 + .incbin "baserom.nds", 0x22EEF0, 0x1930 + .incbin "baserom.nds", 0x230820, 0x1930 + .incbin "baserom.nds", 0x232150, 0x1930 + .incbin "baserom.nds", 0x233A80, 0x48 + .incbin "baserom.nds", 0x233AC8, 0x48 + .incbin "baserom.nds", 0x233B10, 0x1930 + .incbin "baserom.nds", 0x235440, 0x1930 + .incbin "baserom.nds", 0x236D70, 0x1930 + .incbin "baserom.nds", 0x2386A0, 0x1930 + .incbin "baserom.nds", 0x239FD0, 0x48 + .incbin "baserom.nds", 0x23A018, 0x48 + .incbin "baserom.nds", 0x23A060, 0x1930 + .incbin "baserom.nds", 0x23B990, 0x1930 + .incbin "baserom.nds", 0x23D2C0, 0x1930 + .incbin "baserom.nds", 0x23EBF0, 0x1930 + .incbin "baserom.nds", 0x240520, 0x48 + .incbin "baserom.nds", 0x240568, 0x48 + .incbin "baserom.nds", 0x2405B0, 0x1930 + .incbin "baserom.nds", 0x241EE0, 0x1930 + .incbin "baserom.nds", 0x243810, 0x1930 + .incbin "baserom.nds", 0x245140, 0x1930 + .incbin "baserom.nds", 0x246A70, 0x48 + .incbin "baserom.nds", 0x246AB8, 0x48 + .incbin "baserom.nds", 0x246B00, 0x1930 + .incbin "baserom.nds", 0x248430, 0x1930 + .incbin "baserom.nds", 0x249D60, 0x1930 + .incbin "baserom.nds", 0x24B690, 0x1930 + .incbin "baserom.nds", 0x24CFC0, 0x48 + .incbin "baserom.nds", 0x24D008, 0x48 + .incbin "baserom.nds", 0x24D050, 0x1930 + .incbin "baserom.nds", 0x24E980, 0x1930 + .incbin "baserom.nds", 0x2502B0, 0x1930 + .incbin "baserom.nds", 0x251BE0, 0x1930 + .incbin "baserom.nds", 0x253510, 0x48 + .incbin "baserom.nds", 0x253558, 0x48 + .incbin "baserom.nds", 0x2535A0, 0x1930 + .incbin "baserom.nds", 0x254ED0, 0x1930 + .incbin "baserom.nds", 0x256800, 0x1930 + .incbin "baserom.nds", 0x258130, 0x1930 + .incbin "baserom.nds", 0x259A60, 0x48 + .incbin "baserom.nds", 0x259AA8, 0x48 + .incbin "baserom.nds", 0x259AF0, 0x1930 + .incbin "baserom.nds", 0x25B420, 0x1930 + .incbin "baserom.nds", 0x25CD50, 0x1930 + .incbin "baserom.nds", 0x25E680, 0x1930 + .incbin "baserom.nds", 0x25FFB0, 0x48 + .incbin "baserom.nds", 0x25FFF8, 0x48 + .incbin "baserom.nds", 0x260040, 0x0 + .incbin "baserom.nds", 0x260040, 0x1930 + .incbin "baserom.nds", 0x261970, 0x0 + .incbin "baserom.nds", 0x261970, 0x1930 + .incbin "baserom.nds", 0x2632A0, 0x48 + .incbin "baserom.nds", 0x2632E8, 0x48 + .incbin "baserom.nds", 0x263330, 0x0 + .incbin "baserom.nds", 0x263330, 0x1930 + .incbin "baserom.nds", 0x264C60, 0x0 + .incbin "baserom.nds", 0x264C60, 0x1930 + .incbin "baserom.nds", 0x266590, 0x48 + .incbin "baserom.nds", 0x2665D8, 0x48 + .incbin "baserom.nds", 0x266620, 0x1930 + .incbin "baserom.nds", 0x267F50, 0x1930 + .incbin "baserom.nds", 0x269880, 0x1930 + .incbin "baserom.nds", 0x26B1B0, 0x1930 + .incbin "baserom.nds", 0x26CAE0, 0x48 + .incbin "baserom.nds", 0x26CB28, 0x48 + .incbin "baserom.nds", 0x26CB70, 0x1930 + .incbin "baserom.nds", 0x26E4A0, 0x1930 + .incbin "baserom.nds", 0x26FDD0, 0x1930 + .incbin "baserom.nds", 0x271700, 0x1930 + .incbin "baserom.nds", 0x273030, 0x48 + .incbin "baserom.nds", 0x273078, 0x48 + .incbin "baserom.nds", 0x2730C0, 0x1930 + .incbin "baserom.nds", 0x2749F0, 0x1930 + .incbin "baserom.nds", 0x276320, 0x1930 + .incbin "baserom.nds", 0x277C50, 0x1930 + .incbin "baserom.nds", 0x279580, 0x48 + .incbin "baserom.nds", 0x2795C8, 0x48 + .incbin "baserom.nds", 0x279610, 0x1930 + .incbin "baserom.nds", 0x27AF40, 0x1930 + .incbin "baserom.nds", 0x27C870, 0x1930 + .incbin "baserom.nds", 0x27E1A0, 0x1930 + .incbin "baserom.nds", 0x27FAD0, 0x48 + .incbin "baserom.nds", 0x27FB18, 0x48 + .incbin "baserom.nds", 0x27FB60, 0x0 + .incbin "baserom.nds", 0x27FB60, 0x1930 + .incbin "baserom.nds", 0x281490, 0x0 + .incbin "baserom.nds", 0x281490, 0x1930 + .incbin "baserom.nds", 0x282DC0, 0x48 + .incbin "baserom.nds", 0x282E08, 0x48 + .incbin "baserom.nds", 0x282E50, 0x0 + .incbin "baserom.nds", 0x282E50, 0x1930 + .incbin "baserom.nds", 0x284780, 0x0 + .incbin "baserom.nds", 0x284780, 0x1930 + .incbin "baserom.nds", 0x2860B0, 0x48 + .incbin "baserom.nds", 0x2860F8, 0x48 + .incbin "baserom.nds", 0x286140, 0x1930 + .incbin "baserom.nds", 0x287A70, 0x1930 + .incbin "baserom.nds", 0x2893A0, 0x1930 + .incbin "baserom.nds", 0x28ACD0, 0x1930 + .incbin "baserom.nds", 0x28C600, 0x48 + .incbin "baserom.nds", 0x28C648, 0x48 + .incbin "baserom.nds", 0x28C690, 0x1930 + .incbin "baserom.nds", 0x28DFC0, 0x1930 + .incbin "baserom.nds", 0x28F8F0, 0x1930 + .incbin "baserom.nds", 0x291220, 0x1930 + .incbin "baserom.nds", 0x292B50, 0x48 + .incbin "baserom.nds", 0x292B98, 0x48 + .incbin "baserom.nds", 0x292BE0, 0x1930 + .incbin "baserom.nds", 0x294510, 0x1930 + .incbin "baserom.nds", 0x295E40, 0x1930 + .incbin "baserom.nds", 0x297770, 0x1930 + .incbin "baserom.nds", 0x2990A0, 0x48 + .incbin "baserom.nds", 0x2990E8, 0x48 + .incbin "baserom.nds", 0x299130, 0x1930 + .incbin "baserom.nds", 0x29AA60, 0x1930 + .incbin "baserom.nds", 0x29C390, 0x1930 + .incbin "baserom.nds", 0x29DCC0, 0x1930 + .incbin "baserom.nds", 0x29F5F0, 0x48 + .incbin "baserom.nds", 0x29F638, 0x48 + .incbin "baserom.nds", 0x29F680, 0x1930 + .incbin "baserom.nds", 0x2A0FB0, 0x1930 + .incbin "baserom.nds", 0x2A28E0, 0x1930 + .incbin "baserom.nds", 0x2A4210, 0x1930 + .incbin "baserom.nds", 0x2A5B40, 0x48 + .incbin "baserom.nds", 0x2A5B88, 0x48 + .incbin "baserom.nds", 0x2A5BD0, 0x1930 + .incbin "baserom.nds", 0x2A7500, 0x0 + .incbin "baserom.nds", 0x2A7500, 0x1930 + .incbin "baserom.nds", 0x2A8E30, 0x0 + .incbin "baserom.nds", 0x2A8E30, 0x48 + .incbin "baserom.nds", 0x2A8E78, 0x48 + .incbin "baserom.nds", 0x2A8EC0, 0x1930 + .incbin "baserom.nds", 0x2AA7F0, 0x1930 + .incbin "baserom.nds", 0x2AC120, 0x1930 + .incbin "baserom.nds", 0x2ADA50, 0x1930 + .incbin "baserom.nds", 0x2AF380, 0x48 + .incbin "baserom.nds", 0x2AF3C8, 0x48 + .incbin "baserom.nds", 0x2AF410, 0x1930 + .incbin "baserom.nds", 0x2B0D40, 0x0 + .incbin "baserom.nds", 0x2B0D40, 0x1930 + .incbin "baserom.nds", 0x2B2670, 0x0 + .incbin "baserom.nds", 0x2B2670, 0x48 + .incbin "baserom.nds", 0x2B26B8, 0x48 + .incbin "baserom.nds", 0x2B2700, 0x1930 + .incbin "baserom.nds", 0x2B4030, 0x1930 + .incbin "baserom.nds", 0x2B5960, 0x1930 + .incbin "baserom.nds", 0x2B7290, 0x1930 + .incbin "baserom.nds", 0x2B8BC0, 0x48 + .incbin "baserom.nds", 0x2B8C08, 0x48 + .incbin "baserom.nds", 0x2B8C50, 0x1930 + .incbin "baserom.nds", 0x2BA580, 0x1930 + .incbin "baserom.nds", 0x2BBEB0, 0x1930 + .incbin "baserom.nds", 0x2BD7E0, 0x1930 + .incbin "baserom.nds", 0x2BF110, 0x48 + .incbin "baserom.nds", 0x2BF158, 0x48 + .incbin "baserom.nds", 0x2BF1A0, 0x1930 + .incbin "baserom.nds", 0x2C0AD0, 0x1930 + .incbin "baserom.nds", 0x2C2400, 0x1930 + .incbin "baserom.nds", 0x2C3D30, 0x1930 + .incbin "baserom.nds", 0x2C5660, 0x48 + .incbin "baserom.nds", 0x2C56A8, 0x48 + .incbin "baserom.nds", 0x2C56F0, 0x1930 + .incbin "baserom.nds", 0x2C7020, 0x1930 + .incbin "baserom.nds", 0x2C8950, 0x1930 + .incbin "baserom.nds", 0x2CA280, 0x1930 + .incbin "baserom.nds", 0x2CBBB0, 0x48 + .incbin "baserom.nds", 0x2CBBF8, 0x48 + .incbin "baserom.nds", 0x2CBC40, 0x0 + .incbin "baserom.nds", 0x2CBC40, 0x1930 + .incbin "baserom.nds", 0x2CD570, 0x0 + .incbin "baserom.nds", 0x2CD570, 0x1930 + .incbin "baserom.nds", 0x2CEEA0, 0x48 + .incbin "baserom.nds", 0x2CEEE8, 0x48 + .incbin "baserom.nds", 0x2CEF30, 0x0 + .incbin "baserom.nds", 0x2CEF30, 0x1930 + .incbin "baserom.nds", 0x2D0860, 0x0 + .incbin "baserom.nds", 0x2D0860, 0x1930 + .incbin "baserom.nds", 0x2D2190, 0x48 + .incbin "baserom.nds", 0x2D21D8, 0x48 + .incbin "baserom.nds", 0x2D2220, 0x1930 + .incbin "baserom.nds", 0x2D3B50, 0x1930 + .incbin "baserom.nds", 0x2D5480, 0x1930 + .incbin "baserom.nds", 0x2D6DB0, 0x1930 + .incbin "baserom.nds", 0x2D86E0, 0x48 + .incbin "baserom.nds", 0x2D8728, 0x48 + .incbin "baserom.nds", 0x2D8770, 0x1930 + .incbin "baserom.nds", 0x2DA0A0, 0x1930 + .incbin "baserom.nds", 0x2DB9D0, 0x1930 + .incbin "baserom.nds", 0x2DD300, 0x1930 + .incbin "baserom.nds", 0x2DEC30, 0x48 + .incbin "baserom.nds", 0x2DEC78, 0x48 + .incbin "baserom.nds", 0x2DECC0, 0x1930 + .incbin "baserom.nds", 0x2E05F0, 0x0 + .incbin "baserom.nds", 0x2E05F0, 0x1930 + .incbin "baserom.nds", 0x2E1F20, 0x0 + .incbin "baserom.nds", 0x2E1F20, 0x48 + .incbin "baserom.nds", 0x2E1F68, 0x48 + .incbin "baserom.nds", 0x2E1FB0, 0x1930 + .incbin "baserom.nds", 0x2E38E0, 0x1930 + .incbin "baserom.nds", 0x2E5210, 0x1930 + .incbin "baserom.nds", 0x2E6B40, 0x1930 + .incbin "baserom.nds", 0x2E8470, 0x48 + .incbin "baserom.nds", 0x2E84B8, 0x48 + .incbin "baserom.nds", 0x2E8500, 0x1930 + .incbin "baserom.nds", 0x2E9E30, 0x1930 + .incbin "baserom.nds", 0x2EB760, 0x1930 + .incbin "baserom.nds", 0x2ED090, 0x1930 + .incbin "baserom.nds", 0x2EE9C0, 0x48 + .incbin "baserom.nds", 0x2EEA08, 0x48 + .incbin "baserom.nds", 0x2EEA50, 0x1930 + .incbin "baserom.nds", 0x2F0380, 0x1930 + .incbin "baserom.nds", 0x2F1CB0, 0x1930 + .incbin "baserom.nds", 0x2F35E0, 0x1930 + .incbin "baserom.nds", 0x2F4F10, 0x48 + .incbin "baserom.nds", 0x2F4F58, 0x48 + .incbin "baserom.nds", 0x2F4FA0, 0x0 + .incbin "baserom.nds", 0x2F4FA0, 0x1930 + .incbin "baserom.nds", 0x2F68D0, 0x0 + .incbin "baserom.nds", 0x2F68D0, 0x1930 + .incbin "baserom.nds", 0x2F8200, 0x48 + .incbin "baserom.nds", 0x2F8248, 0x48 + .incbin "baserom.nds", 0x2F8290, 0x1930 + .incbin "baserom.nds", 0x2F9BC0, 0x1930 + .incbin "baserom.nds", 0x2FB4F0, 0x1930 + .incbin "baserom.nds", 0x2FCE20, 0x1930 + .incbin "baserom.nds", 0x2FE750, 0x48 + .incbin "baserom.nds", 0x2FE798, 0x48 + .incbin "baserom.nds", 0x2FE7E0, 0x1930 + .incbin "baserom.nds", 0x300110, 0x1930 + .incbin "baserom.nds", 0x301A40, 0x1930 + .incbin "baserom.nds", 0x303370, 0x1930 + .incbin "baserom.nds", 0x304CA0, 0x48 + .incbin "baserom.nds", 0x304CE8, 0x48 + .incbin "baserom.nds", 0x304D30, 0x1930 + .incbin "baserom.nds", 0x306660, 0x1930 + .incbin "baserom.nds", 0x307F90, 0x1930 + .incbin "baserom.nds", 0x3098C0, 0x1930 + .incbin "baserom.nds", 0x30B1F0, 0x48 + .incbin "baserom.nds", 0x30B238, 0x48 + .incbin "baserom.nds", 0x30B280, 0x0 + .incbin "baserom.nds", 0x30B280, 0x1930 + .incbin "baserom.nds", 0x30CBB0, 0x0 + .incbin "baserom.nds", 0x30CBB0, 0x1930 + .incbin "baserom.nds", 0x30E4E0, 0x48 + .incbin "baserom.nds", 0x30E528, 0x48 + .incbin "baserom.nds", 0x30E570, 0x1930 + .incbin "baserom.nds", 0x30FEA0, 0x1930 + .incbin "baserom.nds", 0x3117D0, 0x1930 + .incbin "baserom.nds", 0x313100, 0x1930 + .incbin "baserom.nds", 0x314A30, 0x48 + .incbin "baserom.nds", 0x314A78, 0x48 + .incbin "baserom.nds", 0x314AC0, 0x1930 + .incbin "baserom.nds", 0x3163F0, 0x1930 + .incbin "baserom.nds", 0x317D20, 0x1930 + .incbin "baserom.nds", 0x319650, 0x1930 + .incbin "baserom.nds", 0x31AF80, 0x48 + .incbin "baserom.nds", 0x31AFC8, 0x48 + .incbin "baserom.nds", 0x31B010, 0x1930 + .incbin "baserom.nds", 0x31C940, 0x1930 + .incbin "baserom.nds", 0x31E270, 0x1930 + .incbin "baserom.nds", 0x31FBA0, 0x1930 + .incbin "baserom.nds", 0x3214D0, 0x48 + .incbin "baserom.nds", 0x321518, 0x48 + .incbin "baserom.nds", 0x321560, 0x1930 + .incbin "baserom.nds", 0x322E90, 0x1930 + .incbin "baserom.nds", 0x3247C0, 0x1930 + .incbin "baserom.nds", 0x3260F0, 0x1930 + .incbin "baserom.nds", 0x327A20, 0x48 + .incbin "baserom.nds", 0x327A68, 0x48 + .incbin "baserom.nds", 0x327AB0, 0x0 + .incbin "baserom.nds", 0x327AB0, 0x1930 + .incbin "baserom.nds", 0x3293E0, 0x0 + .incbin "baserom.nds", 0x3293E0, 0x1930 + .incbin "baserom.nds", 0x32AD10, 0x48 + .incbin "baserom.nds", 0x32AD58, 0x48 + .incbin "baserom.nds", 0x32ADA0, 0x1930 + .incbin "baserom.nds", 0x32C6D0, 0x1930 + .incbin "baserom.nds", 0x32E000, 0x1930 + .incbin "baserom.nds", 0x32F930, 0x1930 + .incbin "baserom.nds", 0x331260, 0x48 + .incbin "baserom.nds", 0x3312A8, 0x48 + .incbin "baserom.nds", 0x3312F0, 0x1930 + .incbin "baserom.nds", 0x332C20, 0x1930 + .incbin "baserom.nds", 0x334550, 0x1930 + .incbin "baserom.nds", 0x335E80, 0x1930 + .incbin "baserom.nds", 0x3377B0, 0x48 + .incbin "baserom.nds", 0x3377F8, 0x48 + .incbin "baserom.nds", 0x337840, 0x1930 + .incbin "baserom.nds", 0x339170, 0x1930 + .incbin "baserom.nds", 0x33AAA0, 0x1930 + .incbin "baserom.nds", 0x33C3D0, 0x1930 + .incbin "baserom.nds", 0x33DD00, 0x48 + .incbin "baserom.nds", 0x33DD48, 0x48 + .incbin "baserom.nds", 0x33DD90, 0x1930 + .incbin "baserom.nds", 0x33F6C0, 0x1930 + .incbin "baserom.nds", 0x340FF0, 0x1930 + .incbin "baserom.nds", 0x342920, 0x1930 + .incbin "baserom.nds", 0x344250, 0x48 + .incbin "baserom.nds", 0x344298, 0x48 + .incbin "baserom.nds", 0x3442E0, 0x1930 + .incbin "baserom.nds", 0x345C10, 0x1930 + .incbin "baserom.nds", 0x347540, 0x1930 + .incbin "baserom.nds", 0x348E70, 0x1930 + .incbin "baserom.nds", 0x34A7A0, 0x48 + .incbin "baserom.nds", 0x34A7E8, 0x48 + .incbin "baserom.nds", 0x34A830, 0x1930 + .incbin "baserom.nds", 0x34C160, 0x1930 + .incbin "baserom.nds", 0x34DA90, 0x1930 + .incbin "baserom.nds", 0x34F3C0, 0x1930 + .incbin "baserom.nds", 0x350CF0, 0x48 + .incbin "baserom.nds", 0x350D38, 0x48 + .incbin "baserom.nds", 0x350D80, 0x0 + .incbin "baserom.nds", 0x350D80, 0x1930 + .incbin "baserom.nds", 0x3526B0, 0x0 + .incbin "baserom.nds", 0x3526B0, 0x1930 + .incbin "baserom.nds", 0x353FE0, 0x48 + .incbin "baserom.nds", 0x354028, 0x48 + .incbin "baserom.nds", 0x354070, 0x0 + .incbin "baserom.nds", 0x354070, 0x1930 + .incbin "baserom.nds", 0x3559A0, 0x0 + .incbin "baserom.nds", 0x3559A0, 0x1930 + .incbin "baserom.nds", 0x3572D0, 0x48 + .incbin "baserom.nds", 0x357318, 0x48 + .incbin "baserom.nds", 0x357360, 0x0 + .incbin "baserom.nds", 0x357360, 0x1930 + .incbin "baserom.nds", 0x358C90, 0x0 + .incbin "baserom.nds", 0x358C90, 0x1930 + .incbin "baserom.nds", 0x35A5C0, 0x48 + .incbin "baserom.nds", 0x35A608, 0x48 + .incbin "baserom.nds", 0x35A650, 0x1930 + .incbin "baserom.nds", 0x35BF80, 0x1930 + .incbin "baserom.nds", 0x35D8B0, 0x1930 + .incbin "baserom.nds", 0x35F1E0, 0x1930 + .incbin "baserom.nds", 0x360B10, 0x48 + .incbin "baserom.nds", 0x360B58, 0x48 + .incbin "baserom.nds", 0x360BA0, 0x1930 + .incbin "baserom.nds", 0x3624D0, 0x1930 + .incbin "baserom.nds", 0x363E00, 0x1930 + .incbin "baserom.nds", 0x365730, 0x1930 + .incbin "baserom.nds", 0x367060, 0x48 + .incbin "baserom.nds", 0x3670A8, 0x48 + .incbin "baserom.nds", 0x3670F0, 0x1930 + .incbin "baserom.nds", 0x368A20, 0x1930 + .incbin "baserom.nds", 0x36A350, 0x1930 + .incbin "baserom.nds", 0x36BC80, 0x1930 + .incbin "baserom.nds", 0x36D5B0, 0x48 + .incbin "baserom.nds", 0x36D5F8, 0x48 + .incbin "baserom.nds", 0x36D640, 0x0 + .incbin "baserom.nds", 0x36D640, 0x1930 + .incbin "baserom.nds", 0x36EF70, 0x0 + .incbin "baserom.nds", 0x36EF70, 0x1930 + .incbin "baserom.nds", 0x3708A0, 0x48 + .incbin "baserom.nds", 0x3708E8, 0x48 + .incbin "baserom.nds", 0x370930, 0x0 + .incbin "baserom.nds", 0x370930, 0x1930 + .incbin "baserom.nds", 0x372260, 0x0 + .incbin "baserom.nds", 0x372260, 0x1930 + .incbin "baserom.nds", 0x373B90, 0x48 + .incbin "baserom.nds", 0x373BD8, 0x48 + .incbin "baserom.nds", 0x373C20, 0x1930 + .incbin "baserom.nds", 0x375550, 0x1930 + .incbin "baserom.nds", 0x376E80, 0x1930 + .incbin "baserom.nds", 0x3787B0, 0x1930 + .incbin "baserom.nds", 0x37A0E0, 0x48 + .incbin "baserom.nds", 0x37A128, 0x48 + .incbin "baserom.nds", 0x37A170, 0x1930 + .incbin "baserom.nds", 0x37BAA0, 0x1930 + .incbin "baserom.nds", 0x37D3D0, 0x1930 + .incbin "baserom.nds", 0x37ED00, 0x1930 + .incbin "baserom.nds", 0x380630, 0x48 + .incbin "baserom.nds", 0x380678, 0x48 + .incbin "baserom.nds", 0x3806C0, 0x1930 + .incbin "baserom.nds", 0x381FF0, 0x1930 + .incbin "baserom.nds", 0x383920, 0x1930 + .incbin "baserom.nds", 0x385250, 0x1930 + .incbin "baserom.nds", 0x386B80, 0x48 + .incbin "baserom.nds", 0x386BC8, 0x48 + .incbin "baserom.nds", 0x386C10, 0x1930 + .incbin "baserom.nds", 0x388540, 0x1930 + .incbin "baserom.nds", 0x389E70, 0x1930 + .incbin "baserom.nds", 0x38B7A0, 0x1930 + .incbin "baserom.nds", 0x38D0D0, 0x48 + .incbin "baserom.nds", 0x38D118, 0x48 + .incbin "baserom.nds", 0x38D160, 0x1930 + .incbin "baserom.nds", 0x38EA90, 0x1930 + .incbin "baserom.nds", 0x3903C0, 0x1930 + .incbin "baserom.nds", 0x391CF0, 0x1930 + .incbin "baserom.nds", 0x393620, 0x48 + .incbin "baserom.nds", 0x393668, 0x48 + .incbin "baserom.nds", 0x3936B0, 0x1930 + .incbin "baserom.nds", 0x394FE0, 0x1930 + .incbin "baserom.nds", 0x396910, 0x1930 + .incbin "baserom.nds", 0x398240, 0x1930 + .incbin "baserom.nds", 0x399B70, 0x48 + .incbin "baserom.nds", 0x399BB8, 0x48 + .incbin "baserom.nds", 0x399C00, 0x1930 + .incbin "baserom.nds", 0x39B530, 0x1930 + .incbin "baserom.nds", 0x39CE60, 0x1930 + .incbin "baserom.nds", 0x39E790, 0x1930 + .incbin "baserom.nds", 0x3A00C0, 0x48 + .incbin "baserom.nds", 0x3A0108, 0x48 + .incbin "baserom.nds", 0x3A0150, 0x1930 + .incbin "baserom.nds", 0x3A1A80, 0x1930 + .incbin "baserom.nds", 0x3A33B0, 0x1930 + .incbin "baserom.nds", 0x3A4CE0, 0x1930 + .incbin "baserom.nds", 0x3A6610, 0x48 + .incbin "baserom.nds", 0x3A6658, 0x48 + .incbin "baserom.nds", 0x3A66A0, 0x1930 + .incbin "baserom.nds", 0x3A7FD0, 0x1930 + .incbin "baserom.nds", 0x3A9900, 0x1930 + .incbin "baserom.nds", 0x3AB230, 0x1930 + .incbin "baserom.nds", 0x3ACB60, 0x48 + .incbin "baserom.nds", 0x3ACBA8, 0x48 + .incbin "baserom.nds", 0x3ACBF0, 0x1930 + .incbin "baserom.nds", 0x3AE520, 0x1930 + .incbin "baserom.nds", 0x3AFE50, 0x1930 + .incbin "baserom.nds", 0x3B1780, 0x1930 + .incbin "baserom.nds", 0x3B30B0, 0x48 + .incbin "baserom.nds", 0x3B30F8, 0x48 + .incbin "baserom.nds", 0x3B3140, 0x1930 + .incbin "baserom.nds", 0x3B4A70, 0x1930 + .incbin "baserom.nds", 0x3B63A0, 0x1930 + .incbin "baserom.nds", 0x3B7CD0, 0x1930 + .incbin "baserom.nds", 0x3B9600, 0x48 + .incbin "baserom.nds", 0x3B9648, 0x48 + .incbin "baserom.nds", 0x3B9690, 0x1930 + .incbin "baserom.nds", 0x3BAFC0, 0x1930 + .incbin "baserom.nds", 0x3BC8F0, 0x1930 + .incbin "baserom.nds", 0x3BE220, 0x1930 + .incbin "baserom.nds", 0x3BFB50, 0x48 + .incbin "baserom.nds", 0x3BFB98, 0x48 + .incbin "baserom.nds", 0x3BFBE0, 0x1930 + .incbin "baserom.nds", 0x3C1510, 0x1930 + .incbin "baserom.nds", 0x3C2E40, 0x1930 + .incbin "baserom.nds", 0x3C4770, 0x1930 + .incbin "baserom.nds", 0x3C60A0, 0x48 + .incbin "baserom.nds", 0x3C60E8, 0x48 + .incbin "baserom.nds", 0x3C6130, 0x1930 + .incbin "baserom.nds", 0x3C7A60, 0x1930 + .incbin "baserom.nds", 0x3C9390, 0x1930 + .incbin "baserom.nds", 0x3CACC0, 0x1930 + .incbin "baserom.nds", 0x3CC5F0, 0x48 + .incbin "baserom.nds", 0x3CC638, 0x48 + .incbin "baserom.nds", 0x3CC680, 0x1930 + .incbin "baserom.nds", 0x3CDFB0, 0x1930 + .incbin "baserom.nds", 0x3CF8E0, 0x1930 + .incbin "baserom.nds", 0x3D1210, 0x1930 + .incbin "baserom.nds", 0x3D2B40, 0x48 + .incbin "baserom.nds", 0x3D2B88, 0x48 + .incbin "baserom.nds", 0x3D2BD0, 0x1930 + .incbin "baserom.nds", 0x3D4500, 0x1930 + .incbin "baserom.nds", 0x3D5E30, 0x1930 + .incbin "baserom.nds", 0x3D7760, 0x1930 + .incbin "baserom.nds", 0x3D9090, 0x48 + .incbin "baserom.nds", 0x3D90D8, 0x48 + .incbin "baserom.nds", 0x3D9120, 0x1930 + .incbin "baserom.nds", 0x3DAA50, 0x1930 + .incbin "baserom.nds", 0x3DC380, 0x1930 + .incbin "baserom.nds", 0x3DDCB0, 0x1930 + .incbin "baserom.nds", 0x3DF5E0, 0x48 + .incbin "baserom.nds", 0x3DF628, 0x48 + .incbin "baserom.nds", 0x3DF670, 0x1930 + .incbin "baserom.nds", 0x3E0FA0, 0x1930 + .incbin "baserom.nds", 0x3E28D0, 0x1930 + .incbin "baserom.nds", 0x3E4200, 0x1930 + .incbin "baserom.nds", 0x3E5B30, 0x48 + .incbin "baserom.nds", 0x3E5B78, 0x48 + .incbin "baserom.nds", 0x3E5BC0, 0x1930 + .incbin "baserom.nds", 0x3E74F0, 0x1930 + .incbin "baserom.nds", 0x3E8E20, 0x1930 + .incbin "baserom.nds", 0x3EA750, 0x1930 + .incbin "baserom.nds", 0x3EC080, 0x48 + .incbin "baserom.nds", 0x3EC0C8, 0x48 + .incbin "baserom.nds", 0x3EC110, 0x1930 + .incbin "baserom.nds", 0x3EDA40, 0x1930 + .incbin "baserom.nds", 0x3EF370, 0x1930 + .incbin "baserom.nds", 0x3F0CA0, 0x1930 + .incbin "baserom.nds", 0x3F25D0, 0x48 + .incbin "baserom.nds", 0x3F2618, 0x48 + .incbin "baserom.nds", 0x3F2660, 0x1930 + .incbin "baserom.nds", 0x3F3F90, 0x1930 + .incbin "baserom.nds", 0x3F58C0, 0x1930 + .incbin "baserom.nds", 0x3F71F0, 0x1930 + .incbin "baserom.nds", 0x3F8B20, 0x48 + .incbin "baserom.nds", 0x3F8B68, 0x48 + .incbin "baserom.nds", 0x3F8BB0, 0x1930 + .incbin "baserom.nds", 0x3FA4E0, 0x1930 + .incbin "baserom.nds", 0x3FBE10, 0x1930 + .incbin "baserom.nds", 0x3FD740, 0x1930 + .incbin "baserom.nds", 0x3FF070, 0x48 + .incbin "baserom.nds", 0x3FF0B8, 0x48 + .incbin "baserom.nds", 0x3FF100, 0x1930 + .incbin "baserom.nds", 0x400A30, 0x1930 + .incbin "baserom.nds", 0x402360, 0x1930 + .incbin "baserom.nds", 0x403C90, 0x1930 + .incbin "baserom.nds", 0x4055C0, 0x48 + .incbin "baserom.nds", 0x405608, 0x48 + .incbin "baserom.nds", 0x405650, 0x1930 + .incbin "baserom.nds", 0x406F80, 0x1930 + .incbin "baserom.nds", 0x4088B0, 0x1930 + .incbin "baserom.nds", 0x40A1E0, 0x1930 + .incbin "baserom.nds", 0x40BB10, 0x48 + .incbin "baserom.nds", 0x40BB58, 0x48 + .incbin "baserom.nds", 0x40BBA0, 0x1930 + .incbin "baserom.nds", 0x40D4D0, 0x1930 + .incbin "baserom.nds", 0x40EE00, 0x1930 + .incbin "baserom.nds", 0x410730, 0x1930 + .incbin "baserom.nds", 0x412060, 0x48 + .incbin "baserom.nds", 0x4120A8, 0x48 + .incbin "baserom.nds", 0x4120F0, 0x1930 + .incbin "baserom.nds", 0x413A20, 0x1930 + .incbin "baserom.nds", 0x415350, 0x1930 + .incbin "baserom.nds", 0x416C80, 0x1930 + .incbin "baserom.nds", 0x4185B0, 0x48 + .incbin "baserom.nds", 0x4185F8, 0x48 + .incbin "baserom.nds", 0x418640, 0x1930 + .incbin "baserom.nds", 0x419F70, 0x1930 + .incbin "baserom.nds", 0x41B8A0, 0x1930 + .incbin "baserom.nds", 0x41D1D0, 0x1930 + .incbin "baserom.nds", 0x41EB00, 0x48 + .incbin "baserom.nds", 0x41EB48, 0x48 + .incbin "baserom.nds", 0x41EB90, 0x1930 + .incbin "baserom.nds", 0x4204C0, 0x1930 + .incbin "baserom.nds", 0x421DF0, 0x1930 + .incbin "baserom.nds", 0x423720, 0x1930 + .incbin "baserom.nds", 0x425050, 0x48 + .incbin "baserom.nds", 0x425098, 0x48 + .incbin "baserom.nds", 0x4250E0, 0x1930 + .incbin "baserom.nds", 0x426A10, 0x1930 + .incbin "baserom.nds", 0x428340, 0x1930 + .incbin "baserom.nds", 0x429C70, 0x1930 + .incbin "baserom.nds", 0x42B5A0, 0x48 + .incbin "baserom.nds", 0x42B5E8, 0x48 + .incbin "baserom.nds", 0x42B630, 0x1930 + .incbin "baserom.nds", 0x42CF60, 0x1930 + .incbin "baserom.nds", 0x42E890, 0x1930 + .incbin "baserom.nds", 0x4301C0, 0x1930 + .incbin "baserom.nds", 0x431AF0, 0x48 + .incbin "baserom.nds", 0x431B38, 0x48 + .incbin "baserom.nds", 0x431B80, 0x1930 + .incbin "baserom.nds", 0x4334B0, 0x1930 + .incbin "baserom.nds", 0x434DE0, 0x1930 + .incbin "baserom.nds", 0x436710, 0x1930 + .incbin "baserom.nds", 0x438040, 0x48 + .incbin "baserom.nds", 0x438088, 0x48 + .incbin "baserom.nds", 0x4380D0, 0x1930 + .incbin "baserom.nds", 0x439A00, 0x1930 + .incbin "baserom.nds", 0x43B330, 0x1930 + .incbin "baserom.nds", 0x43CC60, 0x1930 + .incbin "baserom.nds", 0x43E590, 0x48 + .incbin "baserom.nds", 0x43E5D8, 0x48 + .incbin "baserom.nds", 0x43E620, 0x1930 + .incbin "baserom.nds", 0x43FF50, 0x1930 + .incbin "baserom.nds", 0x441880, 0x1930 + .incbin "baserom.nds", 0x4431B0, 0x1930 + .incbin "baserom.nds", 0x444AE0, 0x48 + .incbin "baserom.nds", 0x444B28, 0x48 + .incbin "baserom.nds", 0x444B70, 0x1930 + .incbin "baserom.nds", 0x4464A0, 0x1930 + .incbin "baserom.nds", 0x447DD0, 0x1930 + .incbin "baserom.nds", 0x449700, 0x1930 + .incbin "baserom.nds", 0x44B030, 0x48 + .incbin "baserom.nds", 0x44B078, 0x48 + .incbin "baserom.nds", 0x44B0C0, 0x1930 + .incbin "baserom.nds", 0x44C9F0, 0x1930 + .incbin "baserom.nds", 0x44E320, 0x1930 + .incbin "baserom.nds", 0x44FC50, 0x1930 + .incbin "baserom.nds", 0x451580, 0x48 + .incbin "baserom.nds", 0x4515C8, 0x48 + .incbin "baserom.nds", 0x451610, 0x1930 + .incbin "baserom.nds", 0x452F40, 0x1930 + .incbin "baserom.nds", 0x454870, 0x1930 + .incbin "baserom.nds", 0x4561A0, 0x1930 + .incbin "baserom.nds", 0x457AD0, 0x48 + .incbin "baserom.nds", 0x457B18, 0x48 + .incbin "baserom.nds", 0x457B60, 0x1930 + .incbin "baserom.nds", 0x459490, 0x1930 + .incbin "baserom.nds", 0x45ADC0, 0x1930 + .incbin "baserom.nds", 0x45C6F0, 0x1930 + .incbin "baserom.nds", 0x45E020, 0x48 + .incbin "baserom.nds", 0x45E068, 0x48 + .incbin "baserom.nds", 0x45E0B0, 0x1930 + .incbin "baserom.nds", 0x45F9E0, 0x1930 + .incbin "baserom.nds", 0x461310, 0x1930 + .incbin "baserom.nds", 0x462C40, 0x1930 + .incbin "baserom.nds", 0x464570, 0x48 + .incbin "baserom.nds", 0x4645B8, 0x48 + .incbin "baserom.nds", 0x464600, 0x1930 + .incbin "baserom.nds", 0x465F30, 0x1930 + .incbin "baserom.nds", 0x467860, 0x1930 + .incbin "baserom.nds", 0x469190, 0x1930 + .incbin "baserom.nds", 0x46AAC0, 0x48 + .incbin "baserom.nds", 0x46AB08, 0x48 + .incbin "baserom.nds", 0x46AB50, 0x1930 + .incbin "baserom.nds", 0x46C480, 0x1930 + .incbin "baserom.nds", 0x46DDB0, 0x1930 + .incbin "baserom.nds", 0x46F6E0, 0x1930 + .incbin "baserom.nds", 0x471010, 0x48 + .incbin "baserom.nds", 0x471058, 0x48 + .incbin "baserom.nds", 0x4710A0, 0x1930 + .incbin "baserom.nds", 0x4729D0, 0x1930 + .incbin "baserom.nds", 0x474300, 0x1930 + .incbin "baserom.nds", 0x475C30, 0x1930 + .incbin "baserom.nds", 0x477560, 0x48 + .incbin "baserom.nds", 0x4775A8, 0x48 + .incbin "baserom.nds", 0x4775F0, 0x1930 + .incbin "baserom.nds", 0x478F20, 0x1930 + .incbin "baserom.nds", 0x47A850, 0x1930 + .incbin "baserom.nds", 0x47C180, 0x1930 + .incbin "baserom.nds", 0x47DAB0, 0x48 + .incbin "baserom.nds", 0x47DAF8, 0x48 + .incbin "baserom.nds", 0x47DB40, 0x1930 + .incbin "baserom.nds", 0x47F470, 0x1930 + .incbin "baserom.nds", 0x480DA0, 0x1930 + .incbin "baserom.nds", 0x4826D0, 0x1930 + .incbin "baserom.nds", 0x484000, 0x48 + .incbin "baserom.nds", 0x484048, 0x48 + .incbin "baserom.nds", 0x484090, 0x1930 + .incbin "baserom.nds", 0x4859C0, 0x1930 + .incbin "baserom.nds", 0x4872F0, 0x1930 + .incbin "baserom.nds", 0x488C20, 0x1930 + .incbin "baserom.nds", 0x48A550, 0x48 + .incbin "baserom.nds", 0x48A598, 0x48 + .incbin "baserom.nds", 0x48A5E0, 0x1930 + .incbin "baserom.nds", 0x48BF10, 0x1930 + .incbin "baserom.nds", 0x48D840, 0x1930 + .incbin "baserom.nds", 0x48F170, 0x1930 + .incbin "baserom.nds", 0x490AA0, 0x48 + .incbin "baserom.nds", 0x490AE8, 0x48 + .incbin "baserom.nds", 0x490B30, 0x1930 + .incbin "baserom.nds", 0x492460, 0x1930 + .incbin "baserom.nds", 0x493D90, 0x1930 + .incbin "baserom.nds", 0x4956C0, 0x1930 + .incbin "baserom.nds", 0x496FF0, 0x48 + .incbin "baserom.nds", 0x497038, 0x48 + .incbin "baserom.nds", 0x497080, 0x1930 + .incbin "baserom.nds", 0x4989B0, 0x1930 + .incbin "baserom.nds", 0x49A2E0, 0x1930 + .incbin "baserom.nds", 0x49BC10, 0x1930 + .incbin "baserom.nds", 0x49D540, 0x48 + .incbin "baserom.nds", 0x49D588, 0x48 + .incbin "baserom.nds", 0x49D5D0, 0x1930 + .incbin "baserom.nds", 0x49EF00, 0x1930 + .incbin "baserom.nds", 0x4A0830, 0x1930 + .incbin "baserom.nds", 0x4A2160, 0x1930 + .incbin "baserom.nds", 0x4A3A90, 0x48 + .incbin "baserom.nds", 0x4A3AD8, 0x48 + .incbin "baserom.nds", 0x4A3B20, 0x1930 + .incbin "baserom.nds", 0x4A5450, 0x1930 + .incbin "baserom.nds", 0x4A6D80, 0x1930 + .incbin "baserom.nds", 0x4A86B0, 0x1930 + .incbin "baserom.nds", 0x4A9FE0, 0x48 + .incbin "baserom.nds", 0x4AA028, 0x48 + .incbin "baserom.nds", 0x4AA070, 0x0 + .incbin "baserom.nds", 0x4AA070, 0x1930 + .incbin "baserom.nds", 0x4AB9A0, 0x0 + .incbin "baserom.nds", 0x4AB9A0, 0x1930 + .incbin "baserom.nds", 0x4AD2D0, 0x48 + .incbin "baserom.nds", 0x4AD318, 0x48 + .incbin "baserom.nds", 0x4AD360, 0x1930 + .incbin "baserom.nds", 0x4AEC90, 0x1930 + .incbin "baserom.nds", 0x4B05C0, 0x1930 + .incbin "baserom.nds", 0x4B1EF0, 0x1930 + .incbin "baserom.nds", 0x4B3820, 0x48 + .incbin "baserom.nds", 0x4B3868, 0x48 + .incbin "baserom.nds", 0x4B38B0, 0x1930 + .incbin "baserom.nds", 0x4B51E0, 0x1930 + .incbin "baserom.nds", 0x4B6B10, 0x1930 + .incbin "baserom.nds", 0x4B8440, 0x1930 + .incbin "baserom.nds", 0x4B9D70, 0x48 + .incbin "baserom.nds", 0x4B9DB8, 0x48 + .incbin "baserom.nds", 0x4B9E00, 0x1930 + .incbin "baserom.nds", 0x4BB730, 0x1930 + .incbin "baserom.nds", 0x4BD060, 0x1930 + .incbin "baserom.nds", 0x4BE990, 0x1930 + .incbin "baserom.nds", 0x4C02C0, 0x48 + .incbin "baserom.nds", 0x4C0308, 0x48 + .incbin "baserom.nds", 0x4C0350, 0x1930 + .incbin "baserom.nds", 0x4C1C80, 0x1930 + .incbin "baserom.nds", 0x4C35B0, 0x1930 + .incbin "baserom.nds", 0x4C4EE0, 0x1930 + .incbin "baserom.nds", 0x4C6810, 0x48 + .incbin "baserom.nds", 0x4C6858, 0x48 + .incbin "baserom.nds", 0x4C68A0, 0x1930 + .incbin "baserom.nds", 0x4C81D0, 0x1930 + .incbin "baserom.nds", 0x4C9B00, 0x1930 + .incbin "baserom.nds", 0x4CB430, 0x1930 + .incbin "baserom.nds", 0x4CCD60, 0x48 + .incbin "baserom.nds", 0x4CCDA8, 0x48 + .incbin "baserom.nds", 0x4CCDF0, 0x1930 + .incbin "baserom.nds", 0x4CE720, 0x1930 + .incbin "baserom.nds", 0x4D0050, 0x1930 + .incbin "baserom.nds", 0x4D1980, 0x1930 + .incbin "baserom.nds", 0x4D32B0, 0x48 + .incbin "baserom.nds", 0x4D32F8, 0x48 + .incbin "baserom.nds", 0x4D3340, 0x1930 + .incbin "baserom.nds", 0x4D4C70, 0x1930 + .incbin "baserom.nds", 0x4D65A0, 0x1930 + .incbin "baserom.nds", 0x4D7ED0, 0x1930 + .incbin "baserom.nds", 0x4D9800, 0x48 + .incbin "baserom.nds", 0x4D9848, 0x48 + .incbin "baserom.nds", 0x4D9890, 0x1930 + .incbin "baserom.nds", 0x4DB1C0, 0x1930 + .incbin "baserom.nds", 0x4DCAF0, 0x1930 + .incbin "baserom.nds", 0x4DE420, 0x1930 + .incbin "baserom.nds", 0x4DFD50, 0x48 + .incbin "baserom.nds", 0x4DFD98, 0x48 + .incbin "baserom.nds", 0x4DFDE0, 0x1930 + .incbin "baserom.nds", 0x4E1710, 0x1930 + .incbin "baserom.nds", 0x4E3040, 0x1930 + .incbin "baserom.nds", 0x4E4970, 0x1930 + .incbin "baserom.nds", 0x4E62A0, 0x48 + .incbin "baserom.nds", 0x4E62E8, 0x48 + .incbin "baserom.nds", 0x4E6330, 0x1930 + .incbin "baserom.nds", 0x4E7C60, 0x1930 + .incbin "baserom.nds", 0x4E9590, 0x1930 + .incbin "baserom.nds", 0x4EAEC0, 0x1930 + .incbin "baserom.nds", 0x4EC7F0, 0x48 + .incbin "baserom.nds", 0x4EC838, 0x48 + .incbin "baserom.nds", 0x4EC880, 0x1930 + .incbin "baserom.nds", 0x4EE1B0, 0x1930 + .incbin "baserom.nds", 0x4EFAE0, 0x1930 + .incbin "baserom.nds", 0x4F1410, 0x1930 + .incbin "baserom.nds", 0x4F2D40, 0x48 + .incbin "baserom.nds", 0x4F2D88, 0x48 + .incbin "baserom.nds", 0x4F2DD0, 0x1930 + .incbin "baserom.nds", 0x4F4700, 0x1930 + .incbin "baserom.nds", 0x4F6030, 0x1930 + .incbin "baserom.nds", 0x4F7960, 0x1930 + .incbin "baserom.nds", 0x4F9290, 0x48 + .incbin "baserom.nds", 0x4F92D8, 0x48 + .incbin "baserom.nds", 0x4F9320, 0x1930 + .incbin "baserom.nds", 0x4FAC50, 0x1930 + .incbin "baserom.nds", 0x4FC580, 0x1930 + .incbin "baserom.nds", 0x4FDEB0, 0x1930 + .incbin "baserom.nds", 0x4FF7E0, 0x48 + .incbin "baserom.nds", 0x4FF828, 0x48 + .incbin "baserom.nds", 0x4FF870, 0x1930 + .incbin "baserom.nds", 0x5011A0, 0x1930 + .incbin "baserom.nds", 0x502AD0, 0x1930 + .incbin "baserom.nds", 0x504400, 0x1930 + .incbin "baserom.nds", 0x505D30, 0x48 + .incbin "baserom.nds", 0x505D78, 0x48 + .incbin "baserom.nds", 0x505DC0, 0x1930 + .incbin "baserom.nds", 0x5076F0, 0x1930 + .incbin "baserom.nds", 0x509020, 0x1930 + .incbin "baserom.nds", 0x50A950, 0x1930 + .incbin "baserom.nds", 0x50C280, 0x48 + .incbin "baserom.nds", 0x50C2C8, 0x48 + .incbin "baserom.nds", 0x50C310, 0x1930 + .incbin "baserom.nds", 0x50DC40, 0x1930 + .incbin "baserom.nds", 0x50F570, 0x1930 + .incbin "baserom.nds", 0x510EA0, 0x1930 + .incbin "baserom.nds", 0x5127D0, 0x48 + .incbin "baserom.nds", 0x512818, 0x48 + .incbin "baserom.nds", 0x512860, 0x1930 + .incbin "baserom.nds", 0x514190, 0x1930 + .incbin "baserom.nds", 0x515AC0, 0x1930 + .incbin "baserom.nds", 0x5173F0, 0x1930 + .incbin "baserom.nds", 0x518D20, 0x48 + .incbin "baserom.nds", 0x518D68, 0x48 + .incbin "baserom.nds", 0x518DB0, 0x1930 + .incbin "baserom.nds", 0x51A6E0, 0x1930 + .incbin "baserom.nds", 0x51C010, 0x1930 + .incbin "baserom.nds", 0x51D940, 0x1930 + .incbin "baserom.nds", 0x51F270, 0x48 + .incbin "baserom.nds", 0x51F2B8, 0x48 + .incbin "baserom.nds", 0x51F300, 0x1930 + .incbin "baserom.nds", 0x520C30, 0x1930 + .incbin "baserom.nds", 0x522560, 0x1930 + .incbin "baserom.nds", 0x523E90, 0x1930 + .incbin "baserom.nds", 0x5257C0, 0x48 + .incbin "baserom.nds", 0x525808, 0x48 + .incbin "baserom.nds", 0x525850, 0x1930 + .incbin "baserom.nds", 0x527180, 0x1930 + .incbin "baserom.nds", 0x528AB0, 0x1930 + .incbin "baserom.nds", 0x52A3E0, 0x1930 + .incbin "baserom.nds", 0x52BD10, 0x48 + .incbin "baserom.nds", 0x52BD58, 0x48 + .incbin "baserom.nds", 0x52BDA0, 0x1930 + .incbin "baserom.nds", 0x52D6D0, 0x1930 + .incbin "baserom.nds", 0x52F000, 0x1930 + .incbin "baserom.nds", 0x530930, 0x1930 + .incbin "baserom.nds", 0x532260, 0x48 + .incbin "baserom.nds", 0x5322A8, 0x48 + .incbin "baserom.nds", 0x5322F0, 0x1930 + .incbin "baserom.nds", 0x533C20, 0x1930 + .incbin "baserom.nds", 0x535550, 0x1930 + .incbin "baserom.nds", 0x536E80, 0x1930 + .incbin "baserom.nds", 0x5387B0, 0x48 + .incbin "baserom.nds", 0x5387F8, 0x48 + .incbin "baserom.nds", 0x538840, 0x1930 + .incbin "baserom.nds", 0x53A170, 0x1930 + .incbin "baserom.nds", 0x53BAA0, 0x1930 + .incbin "baserom.nds", 0x53D3D0, 0x1930 + .incbin "baserom.nds", 0x53ED00, 0x48 + .incbin "baserom.nds", 0x53ED48, 0x48 + .incbin "baserom.nds", 0x53ED90, 0x1930 + .incbin "baserom.nds", 0x5406C0, 0x1930 + .incbin "baserom.nds", 0x541FF0, 0x1930 + .incbin "baserom.nds", 0x543920, 0x1930 + .incbin "baserom.nds", 0x545250, 0x48 + .incbin "baserom.nds", 0x545298, 0x48 + .incbin "baserom.nds", 0x5452E0, 0x1930 + .incbin "baserom.nds", 0x546C10, 0x1930 + .incbin "baserom.nds", 0x548540, 0x1930 + .incbin "baserom.nds", 0x549E70, 0x1930 + .incbin "baserom.nds", 0x54B7A0, 0x48 + .incbin "baserom.nds", 0x54B7E8, 0x48 + .incbin "baserom.nds", 0x54B830, 0x1930 + .incbin "baserom.nds", 0x54D160, 0x1930 + .incbin "baserom.nds", 0x54EA90, 0x1930 + .incbin "baserom.nds", 0x5503C0, 0x1930 + .incbin "baserom.nds", 0x551CF0, 0x48 + .incbin "baserom.nds", 0x551D38, 0x48 + .incbin "baserom.nds", 0x551D80, 0x1930 + .incbin "baserom.nds", 0x5536B0, 0x1930 + .incbin "baserom.nds", 0x554FE0, 0x1930 + .incbin "baserom.nds", 0x556910, 0x1930 + .incbin "baserom.nds", 0x558240, 0x48 + .incbin "baserom.nds", 0x558288, 0x48 + .incbin "baserom.nds", 0x5582D0, 0x1930 + .incbin "baserom.nds", 0x559C00, 0x1930 + .incbin "baserom.nds", 0x55B530, 0x1930 + .incbin "baserom.nds", 0x55CE60, 0x1930 + .incbin "baserom.nds", 0x55E790, 0x48 + .incbin "baserom.nds", 0x55E7D8, 0x48 + .incbin "baserom.nds", 0x55E820, 0x1930 + .incbin "baserom.nds", 0x560150, 0x1930 + .incbin "baserom.nds", 0x561A80, 0x1930 + .incbin "baserom.nds", 0x5633B0, 0x1930 + .incbin "baserom.nds", 0x564CE0, 0x48 + .incbin "baserom.nds", 0x564D28, 0x48 + .incbin "baserom.nds", 0x564D70, 0x1930 + .incbin "baserom.nds", 0x5666A0, 0x1930 + .incbin "baserom.nds", 0x567FD0, 0x1930 + .incbin "baserom.nds", 0x569900, 0x1930 + .incbin "baserom.nds", 0x56B230, 0x48 + .incbin "baserom.nds", 0x56B278, 0x48 + .incbin "baserom.nds", 0x56B2C0, 0x1930 + .incbin "baserom.nds", 0x56CBF0, 0x1930 + .incbin "baserom.nds", 0x56E520, 0x1930 + .incbin "baserom.nds", 0x56FE50, 0x1930 + .incbin "baserom.nds", 0x571780, 0x48 + .incbin "baserom.nds", 0x5717C8, 0x48 + .incbin "baserom.nds", 0x571810, 0x0 + .incbin "baserom.nds", 0x571810, 0x1930 + .incbin "baserom.nds", 0x573140, 0x0 + .incbin "baserom.nds", 0x573140, 0x1930 + .incbin "baserom.nds", 0x574A70, 0x48 + .incbin "baserom.nds", 0x574AB8, 0x48 + .incbin "baserom.nds", 0x574B00, 0x1930 + .incbin "baserom.nds", 0x576430, 0x1930 + .incbin "baserom.nds", 0x577D60, 0x1930 + .incbin "baserom.nds", 0x579690, 0x1930 + .incbin "baserom.nds", 0x57AFC0, 0x48 + .incbin "baserom.nds", 0x57B008, 0x48 + .incbin "baserom.nds", 0x57B050, 0x1930 + .incbin "baserom.nds", 0x57C980, 0x1930 + .incbin "baserom.nds", 0x57E2B0, 0x1930 + .incbin "baserom.nds", 0x57FBE0, 0x1930 + .incbin "baserom.nds", 0x581510, 0x48 + .incbin "baserom.nds", 0x581558, 0x48 + .incbin "baserom.nds", 0x5815A0, 0x0 + .incbin "baserom.nds", 0x5815A0, 0x1930 + .incbin "baserom.nds", 0x582ED0, 0x0 + .incbin "baserom.nds", 0x582ED0, 0x1930 + .incbin "baserom.nds", 0x584800, 0x48 + .incbin "baserom.nds", 0x584848, 0x48 + .incbin "baserom.nds", 0x584890, 0x0 + .incbin "baserom.nds", 0x584890, 0x1930 + .incbin "baserom.nds", 0x5861C0, 0x0 + .incbin "baserom.nds", 0x5861C0, 0x1930 + .incbin "baserom.nds", 0x587AF0, 0x48 + .incbin "baserom.nds", 0x587B38, 0x48 + .incbin "baserom.nds", 0x587B80, 0x1930 + .incbin "baserom.nds", 0x5894B0, 0x0 + .incbin "baserom.nds", 0x5894B0, 0x1930 + .incbin "baserom.nds", 0x58ADE0, 0x0 + .incbin "baserom.nds", 0x58ADE0, 0x48 + .incbin "baserom.nds", 0x58AE28, 0x48 + .incbin "baserom.nds", 0x58AE70, 0x1930 + .incbin "baserom.nds", 0x58C7A0, 0x1930 + .incbin "baserom.nds", 0x58E0D0, 0x1930 + .incbin "baserom.nds", 0x58FA00, 0x1930 + .incbin "baserom.nds", 0x591330, 0x48 + .incbin "baserom.nds", 0x591378, 0x48 + .incbin "baserom.nds", 0x5913C0, 0x1930 + .incbin "baserom.nds", 0x592CF0, 0x1930 + .incbin "baserom.nds", 0x594620, 0x1930 + .incbin "baserom.nds", 0x595F50, 0x1930 + .incbin "baserom.nds", 0x597880, 0x48 + .incbin "baserom.nds", 0x5978C8, 0x48 + .incbin "baserom.nds", 0x597910, 0x1930 + .incbin "baserom.nds", 0x599240, 0x0 + .incbin "baserom.nds", 0x599240, 0x1930 + .incbin "baserom.nds", 0x59AB70, 0x0 + .incbin "baserom.nds", 0x59AB70, 0x48 + .incbin "baserom.nds", 0x59ABB8, 0x48 + .incbin "baserom.nds", 0x59AC00, 0x1930 + .incbin "baserom.nds", 0x59C530, 0x0 + .incbin "baserom.nds", 0x59C530, 0x1930 + .incbin "baserom.nds", 0x59DE60, 0x0 + .incbin "baserom.nds", 0x59DE60, 0x48 + .incbin "baserom.nds", 0x59DEA8, 0x48 + .incbin "baserom.nds", 0x59DEF0, 0x0 + .incbin "baserom.nds", 0x59DEF0, 0x1930 + .incbin "baserom.nds", 0x59F820, 0x0 + .incbin "baserom.nds", 0x59F820, 0x1930 + .incbin "baserom.nds", 0x5A1150, 0x48 + .incbin "baserom.nds", 0x5A1198, 0x48 + .incbin "baserom.nds", 0x5A11E0, 0x0 + .incbin "baserom.nds", 0x5A11E0, 0x1930 + .incbin "baserom.nds", 0x5A2B10, 0x0 + .incbin "baserom.nds", 0x5A2B10, 0x1930 + .incbin "baserom.nds", 0x5A4440, 0x48 + .incbin "baserom.nds", 0x5A4488, 0x48 + .incbin "baserom.nds", 0x5A44D0, 0x0 + .incbin "baserom.nds", 0x5A44D0, 0x1930 + .incbin "baserom.nds", 0x5A5E00, 0x0 + .incbin "baserom.nds", 0x5A5E00, 0x1930 + .incbin "baserom.nds", 0x5A7730, 0x48 + .incbin "baserom.nds", 0x5A7778, 0x48 + .incbin "baserom.nds", 0x5A77C0, 0x1930 + .incbin "baserom.nds", 0x5A90F0, 0x1930 + .incbin "baserom.nds", 0x5AAA20, 0x1930 + .incbin "baserom.nds", 0x5AC350, 0x1930 + .incbin "baserom.nds", 0x5ADC80, 0x48 + .incbin "baserom.nds", 0x5ADCC8, 0x48 + .incbin "baserom.nds", 0x5ADD10, 0x1930 + .incbin "baserom.nds", 0x5AF640, 0x1930 + .incbin "baserom.nds", 0x5B0F70, 0x1930 + .incbin "baserom.nds", 0x5B28A0, 0x1930 + .incbin "baserom.nds", 0x5B41D0, 0x48 + .incbin "baserom.nds", 0x5B4218, 0x48 + .incbin "baserom.nds", 0x5B4260, 0x1930 + .incbin "baserom.nds", 0x5B5B90, 0x1930 + .incbin "baserom.nds", 0x5B74C0, 0x1930 + .incbin "baserom.nds", 0x5B8DF0, 0x1930 + .incbin "baserom.nds", 0x5BA720, 0x48 + .incbin "baserom.nds", 0x5BA768, 0x48 + .incbin "baserom.nds", 0x5BA7B0, 0x0 + .incbin "baserom.nds", 0x5BA7B0, 0x1930 + .incbin "baserom.nds", 0x5BC0E0, 0x0 + .incbin "baserom.nds", 0x5BC0E0, 0x1930 + .incbin "baserom.nds", 0x5BDA10, 0x48 + .incbin "baserom.nds", 0x5BDA58, 0x48 + .incbin "baserom.nds", 0x5BDAA0, 0x0 + .incbin "baserom.nds", 0x5BDAA0, 0x1930 + .incbin "baserom.nds", 0x5BF3D0, 0x0 + .incbin "baserom.nds", 0x5BF3D0, 0x1930 + .incbin "baserom.nds", 0x5C0D00, 0x48 + .incbin "baserom.nds", 0x5C0D48, 0x48 + .incbin "baserom.nds", 0x5C0D90, 0x0 + .incbin "baserom.nds", 0x5C0D90, 0x1930 + .incbin "baserom.nds", 0x5C26C0, 0x0 + .incbin "baserom.nds", 0x5C26C0, 0x1930 + .incbin "baserom.nds", 0x5C3FF0, 0x48 + .incbin "baserom.nds", 0x5C4038, 0x48 + .incbin "baserom.nds", 0x5C4080, 0x1930 + .incbin "baserom.nds", 0x5C59B0, 0x1930 + .incbin "baserom.nds", 0x5C72E0, 0x1930 + .incbin "baserom.nds", 0x5C8C10, 0x1930 + .incbin "baserom.nds", 0x5CA540, 0x48 + .incbin "baserom.nds", 0x5CA588, 0x48 + .incbin "baserom.nds", 0x5CA5D0, 0x1930 + .incbin "baserom.nds", 0x5CBF00, 0x1930 + .incbin "baserom.nds", 0x5CD830, 0x1930 + .incbin "baserom.nds", 0x5CF160, 0x1930 + .incbin "baserom.nds", 0x5D0A90, 0x48 + .incbin "baserom.nds", 0x5D0AD8, 0x48 + .incbin "baserom.nds", 0x5D0B20, 0x1930 + .incbin "baserom.nds", 0x5D2450, 0x1930 + .incbin "baserom.nds", 0x5D3D80, 0x1930 + .incbin "baserom.nds", 0x5D56B0, 0x1930 + .incbin "baserom.nds", 0x5D6FE0, 0x48 + .incbin "baserom.nds", 0x5D7028, 0x48 + .incbin "baserom.nds", 0x5D7070, 0x1930 + .incbin "baserom.nds", 0x5D89A0, 0x1930 + .incbin "baserom.nds", 0x5DA2D0, 0x1930 + .incbin "baserom.nds", 0x5DBC00, 0x1930 + .incbin "baserom.nds", 0x5DD530, 0x48 + .incbin "baserom.nds", 0x5DD578, 0x48 + .incbin "baserom.nds", 0x5DD5C0, 0x1930 + .incbin "baserom.nds", 0x5DEEF0, 0x1930 + .incbin "baserom.nds", 0x5E0820, 0x1930 + .incbin "baserom.nds", 0x5E2150, 0x1930 + .incbin "baserom.nds", 0x5E3A80, 0x48 + .incbin "baserom.nds", 0x5E3AC8, 0x48 + .incbin "baserom.nds", 0x5E3B10, 0x1930 + .incbin "baserom.nds", 0x5E5440, 0x1930 + .incbin "baserom.nds", 0x5E6D70, 0x1930 + .incbin "baserom.nds", 0x5E86A0, 0x1930 + .incbin "baserom.nds", 0x5E9FD0, 0x48 + .incbin "baserom.nds", 0x5EA018, 0x48 + .incbin "baserom.nds", 0x5EA060, 0x1930 + .incbin "baserom.nds", 0x5EB990, 0x1930 + .incbin "baserom.nds", 0x5ED2C0, 0x1930 + .incbin "baserom.nds", 0x5EEBF0, 0x1930 + .incbin "baserom.nds", 0x5F0520, 0x48 + .incbin "baserom.nds", 0x5F0568, 0x48 + .incbin "baserom.nds", 0x5F05B0, 0x1930 + .incbin "baserom.nds", 0x5F1EE0, 0x1930 + .incbin "baserom.nds", 0x5F3810, 0x1930 + .incbin "baserom.nds", 0x5F5140, 0x1930 + .incbin "baserom.nds", 0x5F6A70, 0x48 + .incbin "baserom.nds", 0x5F6AB8, 0x48 + .incbin "baserom.nds", 0x5F6B00, 0x1930 + .incbin "baserom.nds", 0x5F8430, 0x1930 + .incbin "baserom.nds", 0x5F9D60, 0x1930 + .incbin "baserom.nds", 0x5FB690, 0x1930 + .incbin "baserom.nds", 0x5FCFC0, 0x48 + .incbin "baserom.nds", 0x5FD008, 0x48 + .incbin "baserom.nds", 0x5FD050, 0x1930 + .incbin "baserom.nds", 0x5FE980, 0x1930 + .incbin "baserom.nds", 0x6002B0, 0x1930 + .incbin "baserom.nds", 0x601BE0, 0x1930 + .incbin "baserom.nds", 0x603510, 0x48 + .incbin "baserom.nds", 0x603558, 0x48 + .incbin "baserom.nds", 0x6035A0, 0x1930 + .incbin "baserom.nds", 0x604ED0, 0x1930 + .incbin "baserom.nds", 0x606800, 0x1930 + .incbin "baserom.nds", 0x608130, 0x1930 + .incbin "baserom.nds", 0x609A60, 0x48 + .incbin "baserom.nds", 0x609AA8, 0x48 + .incbin "baserom.nds", 0x609AF0, 0x1930 + .incbin "baserom.nds", 0x60B420, 0x1930 + .incbin "baserom.nds", 0x60CD50, 0x1930 + .incbin "baserom.nds", 0x60E680, 0x1930 + .incbin "baserom.nds", 0x60FFB0, 0x48 + .incbin "baserom.nds", 0x60FFF8, 0x48 + .incbin "baserom.nds", 0x610040, 0x1930 + .incbin "baserom.nds", 0x611970, 0x1930 + .incbin "baserom.nds", 0x6132A0, 0x1930 + .incbin "baserom.nds", 0x614BD0, 0x1930 + .incbin "baserom.nds", 0x616500, 0x48 + .incbin "baserom.nds", 0x616548, 0x48 + .incbin "baserom.nds", 0x616590, 0x1930 + .incbin "baserom.nds", 0x617EC0, 0x1930 + .incbin "baserom.nds", 0x6197F0, 0x1930 + .incbin "baserom.nds", 0x61B120, 0x1930 + .incbin "baserom.nds", 0x61CA50, 0x48 + .incbin "baserom.nds", 0x61CA98, 0x48 + .incbin "baserom.nds", 0x61CAE0, 0x1930 + .incbin "baserom.nds", 0x61E410, 0x1930 + .incbin "baserom.nds", 0x61FD40, 0x1930 + .incbin "baserom.nds", 0x621670, 0x1930 + .incbin "baserom.nds", 0x622FA0, 0x48 + .incbin "baserom.nds", 0x622FE8, 0x48 + .incbin "baserom.nds", 0x623030, 0x1930 + .incbin "baserom.nds", 0x624960, 0x1930 + .incbin "baserom.nds", 0x626290, 0x1930 + .incbin "baserom.nds", 0x627BC0, 0x1930 + .incbin "baserom.nds", 0x6294F0, 0x48 + .incbin "baserom.nds", 0x629538, 0x48 + .incbin "baserom.nds", 0x629580, 0x1930 + .incbin "baserom.nds", 0x62AEB0, 0x1930 + .incbin "baserom.nds", 0x62C7E0, 0x1930 + .incbin "baserom.nds", 0x62E110, 0x1930 + .incbin "baserom.nds", 0x62FA40, 0x48 + .incbin "baserom.nds", 0x62FA88, 0x48 + .incbin "baserom.nds", 0x62FAD0, 0x1930 + .incbin "baserom.nds", 0x631400, 0x1930 + .incbin "baserom.nds", 0x632D30, 0x1930 + .incbin "baserom.nds", 0x634660, 0x1930 + .incbin "baserom.nds", 0x635F90, 0x48 + .incbin "baserom.nds", 0x635FD8, 0x48 + .incbin "baserom.nds", 0x636020, 0x1930 + .incbin "baserom.nds", 0x637950, 0x1930 + .incbin "baserom.nds", 0x639280, 0x1930 + .incbin "baserom.nds", 0x63ABB0, 0x1930 + .incbin "baserom.nds", 0x63C4E0, 0x48 + .incbin "baserom.nds", 0x63C528, 0x48 + .incbin "baserom.nds", 0x63C570, 0x1930 + .incbin "baserom.nds", 0x63DEA0, 0x1930 + .incbin "baserom.nds", 0x63F7D0, 0x1930 + .incbin "baserom.nds", 0x641100, 0x1930 + .incbin "baserom.nds", 0x642A30, 0x48 + .incbin "baserom.nds", 0x642A78, 0x48 + .incbin "baserom.nds", 0x642AC0, 0x1930 + .incbin "baserom.nds", 0x6443F0, 0x1930 + .incbin "baserom.nds", 0x645D20, 0x1930 + .incbin "baserom.nds", 0x647650, 0x1930 + .incbin "baserom.nds", 0x648F80, 0x48 + .incbin "baserom.nds", 0x648FC8, 0x48 + .incbin "baserom.nds", 0x649010, 0x1930 + .incbin "baserom.nds", 0x64A940, 0x1930 + .incbin "baserom.nds", 0x64C270, 0x1930 + .incbin "baserom.nds", 0x64DBA0, 0x1930 + .incbin "baserom.nds", 0x64F4D0, 0x48 + .incbin "baserom.nds", 0x64F518, 0x48 + .incbin "baserom.nds", 0x64F560, 0x1930 + .incbin "baserom.nds", 0x650E90, 0x1930 + .incbin "baserom.nds", 0x6527C0, 0x1930 + .incbin "baserom.nds", 0x6540F0, 0x1930 + .incbin "baserom.nds", 0x655A20, 0x48 + .incbin "baserom.nds", 0x655A68, 0x48 + .incbin "baserom.nds", 0x655AB0, 0x1930 + .incbin "baserom.nds", 0x6573E0, 0x1930 + .incbin "baserom.nds", 0x658D10, 0x1930 + .incbin "baserom.nds", 0x65A640, 0x1930 + .incbin "baserom.nds", 0x65BF70, 0x48 + .incbin "baserom.nds", 0x65BFB8, 0x48 + .incbin "baserom.nds", 0x65C000, 0x1930 + .incbin "baserom.nds", 0x65D930, 0x1930 + .incbin "baserom.nds", 0x65F260, 0x1930 + .incbin "baserom.nds", 0x660B90, 0x1930 + .incbin "baserom.nds", 0x6624C0, 0x48 + .incbin "baserom.nds", 0x662508, 0x48 + .incbin "baserom.nds", 0x662550, 0x1930 + .incbin "baserom.nds", 0x663E80, 0x1930 + .incbin "baserom.nds", 0x6657B0, 0x1930 + .incbin "baserom.nds", 0x6670E0, 0x1930 + .incbin "baserom.nds", 0x668A10, 0x48 + .incbin "baserom.nds", 0x668A58, 0x48 + .incbin "baserom.nds", 0x668AA0, 0x1930 + .incbin "baserom.nds", 0x66A3D0, 0x1930 + .incbin "baserom.nds", 0x66BD00, 0x1930 + .incbin "baserom.nds", 0x66D630, 0x1930 + .incbin "baserom.nds", 0x66EF60, 0x48 + .incbin "baserom.nds", 0x66EFA8, 0x48 + .incbin "baserom.nds", 0x66EFF0, 0x1930 + .incbin "baserom.nds", 0x670920, 0x1930 + .incbin "baserom.nds", 0x672250, 0x1930 + .incbin "baserom.nds", 0x673B80, 0x1930 + .incbin "baserom.nds", 0x6754B0, 0x48 + .incbin "baserom.nds", 0x6754F8, 0x48 + .incbin "baserom.nds", 0x675540, 0x1930 + .incbin "baserom.nds", 0x676E70, 0x1930 + .incbin "baserom.nds", 0x6787A0, 0x1930 + .incbin "baserom.nds", 0x67A0D0, 0x1930 + .incbin "baserom.nds", 0x67BA00, 0x48 + .incbin "baserom.nds", 0x67BA48, 0x48 + .incbin "baserom.nds", 0x67BA90, 0x1930 + .incbin "baserom.nds", 0x67D3C0, 0x1930 + .incbin "baserom.nds", 0x67ECF0, 0x1930 + .incbin "baserom.nds", 0x680620, 0x1930 + .incbin "baserom.nds", 0x681F50, 0x48 + .incbin "baserom.nds", 0x681F98, 0x48 + .incbin "baserom.nds", 0x681FE0, 0x1930 + .incbin "baserom.nds", 0x683910, 0x1930 + .incbin "baserom.nds", 0x685240, 0x1930 + .incbin "baserom.nds", 0x686B70, 0x1930 + .incbin "baserom.nds", 0x6884A0, 0x48 + .incbin "baserom.nds", 0x6884E8, 0x48 + .incbin "baserom.nds", 0x688530, 0x1930 + .incbin "baserom.nds", 0x689E60, 0x1930 + .incbin "baserom.nds", 0x68B790, 0x1930 + .incbin "baserom.nds", 0x68D0C0, 0x1930 + .incbin "baserom.nds", 0x68E9F0, 0x48 + .incbin "baserom.nds", 0x68EA38, 0x48 + .incbin "baserom.nds", 0x68EA80, 0x1930 + .incbin "baserom.nds", 0x6903B0, 0x1930 + .incbin "baserom.nds", 0x691CE0, 0x1930 + .incbin "baserom.nds", 0x693610, 0x1930 + .incbin "baserom.nds", 0x694F40, 0x48 + .incbin "baserom.nds", 0x694F88, 0x48 + .incbin "baserom.nds", 0x694FD0, 0x1930 + .incbin "baserom.nds", 0x696900, 0x1930 + .incbin "baserom.nds", 0x698230, 0x1930 + .incbin "baserom.nds", 0x699B60, 0x1930 + .incbin "baserom.nds", 0x69B490, 0x48 + .incbin "baserom.nds", 0x69B4D8, 0x48 + .incbin "baserom.nds", 0x69B520, 0x1930 + .incbin "baserom.nds", 0x69CE50, 0x1930 + .incbin "baserom.nds", 0x69E780, 0x1930 + .incbin "baserom.nds", 0x6A00B0, 0x1930 + .incbin "baserom.nds", 0x6A19E0, 0x48 + .incbin "baserom.nds", 0x6A1A28, 0x48 + .incbin "baserom.nds", 0x6A1A70, 0x1930 + .incbin "baserom.nds", 0x6A33A0, 0x1930 + .incbin "baserom.nds", 0x6A4CD0, 0x1930 + .incbin "baserom.nds", 0x6A6600, 0x1930 + .incbin "baserom.nds", 0x6A7F30, 0x48 + .incbin "baserom.nds", 0x6A7F78, 0x48 + .incbin "baserom.nds", 0x6A7FC0, 0x1930 + .incbin "baserom.nds", 0x6A98F0, 0x1930 + .incbin "baserom.nds", 0x6AB220, 0x1930 + .incbin "baserom.nds", 0x6ACB50, 0x1930 + .incbin "baserom.nds", 0x6AE480, 0x48 + .incbin "baserom.nds", 0x6AE4C8, 0x48 + .incbin "baserom.nds", 0x6AE510, 0x1930 + .incbin "baserom.nds", 0x6AFE40, 0x1930 + .incbin "baserom.nds", 0x6B1770, 0x1930 + .incbin "baserom.nds", 0x6B30A0, 0x1930 + .incbin "baserom.nds", 0x6B49D0, 0x48 + .incbin "baserom.nds", 0x6B4A18, 0x48 + .incbin "baserom.nds", 0x6B4A60, 0x1930 + .incbin "baserom.nds", 0x6B6390, 0x1930 + .incbin "baserom.nds", 0x6B7CC0, 0x1930 + .incbin "baserom.nds", 0x6B95F0, 0x1930 + .incbin "baserom.nds", 0x6BAF20, 0x48 + .incbin "baserom.nds", 0x6BAF68, 0x48 + .incbin "baserom.nds", 0x6BAFB0, 0x1930 + .incbin "baserom.nds", 0x6BC8E0, 0x1930 + .incbin "baserom.nds", 0x6BE210, 0x1930 + .incbin "baserom.nds", 0x6BFB40, 0x1930 + .incbin "baserom.nds", 0x6C1470, 0x48 + .incbin "baserom.nds", 0x6C14B8, 0x48 + .incbin "baserom.nds", 0x6C1500, 0x0 + .incbin "baserom.nds", 0x6C1500, 0x1930 + .incbin "baserom.nds", 0x6C2E30, 0x0 + .incbin "baserom.nds", 0x6C2E30, 0x1930 + .incbin "baserom.nds", 0x6C4760, 0x48 + .incbin "baserom.nds", 0x6C47A8, 0x48 + .incbin "baserom.nds", 0x6C47F0, 0x1930 + .incbin "baserom.nds", 0x6C6120, 0x1930 + .incbin "baserom.nds", 0x6C7A50, 0x1930 + .incbin "baserom.nds", 0x6C9380, 0x1930 + .incbin "baserom.nds", 0x6CACB0, 0x48 + .incbin "baserom.nds", 0x6CACF8, 0x48 + .incbin "baserom.nds", 0x6CAD40, 0x1930 + .incbin "baserom.nds", 0x6CC670, 0x1930 + .incbin "baserom.nds", 0x6CDFA0, 0x1930 + .incbin "baserom.nds", 0x6CF8D0, 0x1930 + .incbin "baserom.nds", 0x6D1200, 0x48 + .incbin "baserom.nds", 0x6D1248, 0x48 + .incbin "baserom.nds", 0x6D1290, 0x1930 + .incbin "baserom.nds", 0x6D2BC0, 0x1930 + .incbin "baserom.nds", 0x6D44F0, 0x1930 + .incbin "baserom.nds", 0x6D5E20, 0x1930 + .incbin "baserom.nds", 0x6D7750, 0x48 + .incbin "baserom.nds", 0x6D7798, 0x48 + .incbin "baserom.nds", 0x6D77E0, 0x1930 + .incbin "baserom.nds", 0x6D9110, 0x1930 + .incbin "baserom.nds", 0x6DAA40, 0x1930 + .incbin "baserom.nds", 0x6DC370, 0x1930 + .incbin "baserom.nds", 0x6DDCA0, 0x48 + .incbin "baserom.nds", 0x6DDCE8, 0x48 + .incbin "baserom.nds", 0x6DDD30, 0x1930 + .incbin "baserom.nds", 0x6DF660, 0x1930 + .incbin "baserom.nds", 0x6E0F90, 0x1930 + .incbin "baserom.nds", 0x6E28C0, 0x1930 + .incbin "baserom.nds", 0x6E41F0, 0x48 + .incbin "baserom.nds", 0x6E4238, 0x48 + .incbin "baserom.nds", 0x6E4280, 0x1930 + .incbin "baserom.nds", 0x6E5BB0, 0x1930 + .incbin "baserom.nds", 0x6E74E0, 0x1930 + .incbin "baserom.nds", 0x6E8E10, 0x1930 + .incbin "baserom.nds", 0x6EA740, 0x48 + .incbin "baserom.nds", 0x6EA788, 0x48 + .incbin "baserom.nds", 0x6EA7D0, 0x1930 + .incbin "baserom.nds", 0x6EC100, 0x1930 + .incbin "baserom.nds", 0x6EDA30, 0x1930 + .incbin "baserom.nds", 0x6EF360, 0x1930 + .incbin "baserom.nds", 0x6F0C90, 0x48 + .incbin "baserom.nds", 0x6F0CD8, 0x48 + .incbin "baserom.nds", 0x6F0D20, 0x1930 + .incbin "baserom.nds", 0x6F2650, 0x1930 + .incbin "baserom.nds", 0x6F3F80, 0x1930 + .incbin "baserom.nds", 0x6F58B0, 0x1930 + .incbin "baserom.nds", 0x6F71E0, 0x48 + .incbin "baserom.nds", 0x6F7228, 0x48 + .incbin "baserom.nds", 0x6F7270, 0x1930 + .incbin "baserom.nds", 0x6F8BA0, 0x1930 + .incbin "baserom.nds", 0x6FA4D0, 0x1930 + .incbin "baserom.nds", 0x6FBE00, 0x1930 + .incbin "baserom.nds", 0x6FD730, 0x48 + .incbin "baserom.nds", 0x6FD778, 0x48 + .incbin "baserom.nds", 0x6FD7C0, 0x1930 + .incbin "baserom.nds", 0x6FF0F0, 0x1930 + .incbin "baserom.nds", 0x700A20, 0x1930 + .incbin "baserom.nds", 0x702350, 0x1930 + .incbin "baserom.nds", 0x703C80, 0x48 + .incbin "baserom.nds", 0x703CC8, 0x48 + .incbin "baserom.nds", 0x703D10, 0x1930 + .incbin "baserom.nds", 0x705640, 0x1930 + .incbin "baserom.nds", 0x706F70, 0x1930 + .incbin "baserom.nds", 0x7088A0, 0x1930 + .incbin "baserom.nds", 0x70A1D0, 0x48 + .incbin "baserom.nds", 0x70A218, 0x48 + .incbin "baserom.nds", 0x70A260, 0x1930 + .incbin "baserom.nds", 0x70BB90, 0x1930 + .incbin "baserom.nds", 0x70D4C0, 0x1930 + .incbin "baserom.nds", 0x70EDF0, 0x1930 + .incbin "baserom.nds", 0x710720, 0x48 + .incbin "baserom.nds", 0x710768, 0x48 + .incbin "baserom.nds", 0x7107B0, 0x1930 + .incbin "baserom.nds", 0x7120E0, 0x1930 + .incbin "baserom.nds", 0x713A10, 0x1930 + .incbin "baserom.nds", 0x715340, 0x1930 + .incbin "baserom.nds", 0x716C70, 0x48 + .incbin "baserom.nds", 0x716CB8, 0x48 + .incbin "baserom.nds", 0x716D00, 0x1930 + .incbin "baserom.nds", 0x718630, 0x1930 + .incbin "baserom.nds", 0x719F60, 0x1930 + .incbin "baserom.nds", 0x71B890, 0x1930 + .incbin "baserom.nds", 0x71D1C0, 0x48 + .incbin "baserom.nds", 0x71D208, 0x48 + .incbin "baserom.nds", 0x71D250, 0x1930 + .incbin "baserom.nds", 0x71EB80, 0x1930 + .incbin "baserom.nds", 0x7204B0, 0x1930 + .incbin "baserom.nds", 0x721DE0, 0x1930 + .incbin "baserom.nds", 0x723710, 0x48 + .incbin "baserom.nds", 0x723758, 0x48 + .incbin "baserom.nds", 0x7237A0, 0x1930 + .incbin "baserom.nds", 0x7250D0, 0x1930 + .incbin "baserom.nds", 0x726A00, 0x1930 + .incbin "baserom.nds", 0x728330, 0x1930 + .incbin "baserom.nds", 0x729C60, 0x48 + .incbin "baserom.nds", 0x729CA8, 0x48 + .incbin "baserom.nds", 0x729CF0, 0x1930 + .incbin "baserom.nds", 0x72B620, 0x1930 + .incbin "baserom.nds", 0x72CF50, 0x1930 + .incbin "baserom.nds", 0x72E880, 0x1930 + .incbin "baserom.nds", 0x7301B0, 0x48 + .incbin "baserom.nds", 0x7301F8, 0x48 + .incbin "baserom.nds", 0x730240, 0x1930 + .incbin "baserom.nds", 0x731B70, 0x1930 + .incbin "baserom.nds", 0x7334A0, 0x1930 + .incbin "baserom.nds", 0x734DD0, 0x1930 + .incbin "baserom.nds", 0x736700, 0x48 + .incbin "baserom.nds", 0x736748, 0x48 + .incbin "baserom.nds", 0x736790, 0x1930 + .incbin "baserom.nds", 0x7380C0, 0x1930 + .incbin "baserom.nds", 0x7399F0, 0x1930 + .incbin "baserom.nds", 0x73B320, 0x1930 + .incbin "baserom.nds", 0x73CC50, 0x48 + .incbin "baserom.nds", 0x73CC98, 0x48 + .incbin "baserom.nds", 0x73CCE0, 0x1930 + .incbin "baserom.nds", 0x73E610, 0x1930 + .incbin "baserom.nds", 0x73FF40, 0x1930 + .incbin "baserom.nds", 0x741870, 0x1930 + .incbin "baserom.nds", 0x7431A0, 0x48 + .incbin "baserom.nds", 0x7431E8, 0x48 + .incbin "baserom.nds", 0x743230, 0x0 + .incbin "baserom.nds", 0x743230, 0x1930 + .incbin "baserom.nds", 0x744B60, 0x0 + .incbin "baserom.nds", 0x744B60, 0x1930 + .incbin "baserom.nds", 0x746490, 0x48 + .incbin "baserom.nds", 0x7464D8, 0x48 + .incbin "baserom.nds", 0x746520, 0x1930 + .incbin "baserom.nds", 0x747E50, 0x0 + .incbin "baserom.nds", 0x747E50, 0x1930 + .incbin "baserom.nds", 0x749780, 0x0 + .incbin "baserom.nds", 0x749780, 0x48 + .incbin "baserom.nds", 0x7497C8, 0x48 + .incbin "baserom.nds", 0x749810, 0x1930 + .incbin "baserom.nds", 0x74B140, 0x1930 + .incbin "baserom.nds", 0x74CA70, 0x1930 + .incbin "baserom.nds", 0x74E3A0, 0x1930 + .incbin "baserom.nds", 0x74FCD0, 0x48 + .incbin "baserom.nds", 0x74FD18, 0x48 + .incbin "baserom.nds", 0x74FD60, 0x1930 + .incbin "baserom.nds", 0x751690, 0x1930 + .incbin "baserom.nds", 0x752FC0, 0x1930 + .incbin "baserom.nds", 0x7548F0, 0x1930 + .incbin "baserom.nds", 0x756220, 0x48 + .incbin "baserom.nds", 0x756268, 0x48 + .incbin "baserom.nds", 0x7562B0, 0x1930 + .incbin "baserom.nds", 0x757BE0, 0x1930 + .incbin "baserom.nds", 0x759510, 0x1930 + .incbin "baserom.nds", 0x75AE40, 0x1930 + .incbin "baserom.nds", 0x75C770, 0x48 + .incbin "baserom.nds", 0x75C7B8, 0x48 + .incbin "baserom.nds", 0x75C800, 0x1930 + .incbin "baserom.nds", 0x75E130, 0x1930 + .incbin "baserom.nds", 0x75FA60, 0x1930 + .incbin "baserom.nds", 0x761390, 0x1930 + .incbin "baserom.nds", 0x762CC0, 0x48 + .incbin "baserom.nds", 0x762D08, 0x48 + .incbin "baserom.nds", 0x762D50, 0x1930 + .incbin "baserom.nds", 0x764680, 0x1930 + .incbin "baserom.nds", 0x765FB0, 0x1930 + .incbin "baserom.nds", 0x7678E0, 0x1930 + .incbin "baserom.nds", 0x769210, 0x48 + .incbin "baserom.nds", 0x769258, 0x48 + .incbin "baserom.nds", 0x7692A0, 0x1930 + .incbin "baserom.nds", 0x76ABD0, 0x1930 + .incbin "baserom.nds", 0x76C500, 0x1930 + .incbin "baserom.nds", 0x76DE30, 0x1930 + .incbin "baserom.nds", 0x76F760, 0x48 + .incbin "baserom.nds", 0x76F7A8, 0x48 + .incbin "baserom.nds", 0x76F7F0, 0x1930 + .incbin "baserom.nds", 0x771120, 0x1930 + .incbin "baserom.nds", 0x772A50, 0x1930 + .incbin "baserom.nds", 0x774380, 0x1930 + .incbin "baserom.nds", 0x775CB0, 0x48 + .incbin "baserom.nds", 0x775CF8, 0x48 + .incbin "baserom.nds", 0x775D40, 0x1930 + .incbin "baserom.nds", 0x777670, 0x1930 + .incbin "baserom.nds", 0x778FA0, 0x1930 + .incbin "baserom.nds", 0x77A8D0, 0x1930 + .incbin "baserom.nds", 0x77C200, 0x48 + .incbin "baserom.nds", 0x77C248, 0x48 + .incbin "baserom.nds", 0x77C290, 0x1930 + .incbin "baserom.nds", 0x77DBC0, 0x1930 + .incbin "baserom.nds", 0x77F4F0, 0x1930 + .incbin "baserom.nds", 0x780E20, 0x1930 + .incbin "baserom.nds", 0x782750, 0x48 + .incbin "baserom.nds", 0x782798, 0x48 + .incbin "baserom.nds", 0x7827E0, 0x1930 + .incbin "baserom.nds", 0x784110, 0x1930 + .incbin "baserom.nds", 0x785A40, 0x1930 + .incbin "baserom.nds", 0x787370, 0x1930 + .incbin "baserom.nds", 0x788CA0, 0x48 + .incbin "baserom.nds", 0x788CE8, 0x48 + .incbin "baserom.nds", 0x788D30, 0x1930 + .incbin "baserom.nds", 0x78A660, 0x1930 + .incbin "baserom.nds", 0x78BF90, 0x1930 + .incbin "baserom.nds", 0x78D8C0, 0x1930 + .incbin "baserom.nds", 0x78F1F0, 0x48 + .incbin "baserom.nds", 0x78F238, 0x48 + .incbin "baserom.nds", 0x78F280, 0x1930 + .incbin "baserom.nds", 0x790BB0, 0x1930 + .incbin "baserom.nds", 0x7924E0, 0x1930 + .incbin "baserom.nds", 0x793E10, 0x1930 + .incbin "baserom.nds", 0x795740, 0x48 + .incbin "baserom.nds", 0x795788, 0x48 + .incbin "baserom.nds", 0x7957D0, 0x1930 + .incbin "baserom.nds", 0x797100, 0x1930 + .incbin "baserom.nds", 0x798A30, 0x1930 + .incbin "baserom.nds", 0x79A360, 0x1930 + .incbin "baserom.nds", 0x79BC90, 0x48 + .incbin "baserom.nds", 0x79BCD8, 0x48 + .incbin "baserom.nds", 0x79BD20, 0x1930 + .incbin "baserom.nds", 0x79D650, 0x1930 + .incbin "baserom.nds", 0x79EF80, 0x1930 + .incbin "baserom.nds", 0x7A08B0, 0x1930 + .incbin "baserom.nds", 0x7A21E0, 0x48 + .incbin "baserom.nds", 0x7A2228, 0x48 + .incbin "baserom.nds", 0x7A2270, 0x1930 + .incbin "baserom.nds", 0x7A3BA0, 0x1930 + .incbin "baserom.nds", 0x7A54D0, 0x1930 + .incbin "baserom.nds", 0x7A6E00, 0x1930 + .incbin "baserom.nds", 0x7A8730, 0x48 + .incbin "baserom.nds", 0x7A8778, 0x48 + .incbin "baserom.nds", 0x7A87C0, 0x1930 + .incbin "baserom.nds", 0x7AA0F0, 0x1930 + .incbin "baserom.nds", 0x7ABA20, 0x1930 + .incbin "baserom.nds", 0x7AD350, 0x1930 + .incbin "baserom.nds", 0x7AEC80, 0x48 + .incbin "baserom.nds", 0x7AECC8, 0x48 + .incbin "baserom.nds", 0x7AED10, 0x1930 + .incbin "baserom.nds", 0x7B0640, 0x1930 + .incbin "baserom.nds", 0x7B1F70, 0x1930 + .incbin "baserom.nds", 0x7B38A0, 0x1930 + .incbin "baserom.nds", 0x7B51D0, 0x48 + .incbin "baserom.nds", 0x7B5218, 0x48 + .incbin "baserom.nds", 0x7B5260, 0x1930 + .incbin "baserom.nds", 0x7B6B90, 0x1930 + .incbin "baserom.nds", 0x7B84C0, 0x1930 + .incbin "baserom.nds", 0x7B9DF0, 0x1930 + .incbin "baserom.nds", 0x7BB720, 0x48 + .incbin "baserom.nds", 0x7BB768, 0x48 + .incbin "baserom.nds", 0x7BB7B0, 0x1930 + .incbin "baserom.nds", 0x7BD0E0, 0x1930 + .incbin "baserom.nds", 0x7BEA10, 0x1930 + .incbin "baserom.nds", 0x7C0340, 0x1930 + .incbin "baserom.nds", 0x7C1C70, 0x48 + .incbin "baserom.nds", 0x7C1CB8, 0x48 + .incbin "baserom.nds", 0x7C1D00, 0x1930 + .incbin "baserom.nds", 0x7C3630, 0x1930 + .incbin "baserom.nds", 0x7C4F60, 0x1930 + .incbin "baserom.nds", 0x7C6890, 0x1930 + .incbin "baserom.nds", 0x7C81C0, 0x48 + .incbin "baserom.nds", 0x7C8208, 0x48 + .incbin "baserom.nds", 0x7C8250, 0x1930 + .incbin "baserom.nds", 0x7C9B80, 0x1930 + .incbin "baserom.nds", 0x7CB4B0, 0x1930 + .incbin "baserom.nds", 0x7CCDE0, 0x1930 + .incbin "baserom.nds", 0x7CE710, 0x48 + .incbin "baserom.nds", 0x7CE758, 0x48 + .incbin "baserom.nds", 0x7CE7A0, 0x1930 + .incbin "baserom.nds", 0x7D00D0, 0x1930 + .incbin "baserom.nds", 0x7D1A00, 0x1930 + .incbin "baserom.nds", 0x7D3330, 0x1930 + .incbin "baserom.nds", 0x7D4C60, 0x48 + .incbin "baserom.nds", 0x7D4CA8, 0x48 + .incbin "baserom.nds", 0x7D4CF0, 0x0 + .incbin "baserom.nds", 0x7D4CF0, 0x1930 + .incbin "baserom.nds", 0x7D6620, 0x0 + .incbin "baserom.nds", 0x7D6620, 0x1930 + .incbin "baserom.nds", 0x7D7F50, 0x48 + .incbin "baserom.nds", 0x7D7F98, 0x48 + .incbin "baserom.nds", 0x7D7FE0, 0x0 + .incbin "baserom.nds", 0x7D7FE0, 0x1930 + .incbin "baserom.nds", 0x7D9910, 0x0 + .incbin "baserom.nds", 0x7D9910, 0x1930 + .incbin "baserom.nds", 0x7DB240, 0x48 + .incbin "baserom.nds", 0x7DB288, 0x48 + .incbin "baserom.nds", 0x7DB2D0, 0x1930 + .incbin "baserom.nds", 0x7DCC00, 0x1930 + .incbin "baserom.nds", 0x7DE530, 0x1930 + .incbin "baserom.nds", 0x7DFE60, 0x1930 + .incbin "baserom.nds", 0x7E1790, 0x48 + .incbin "baserom.nds", 0x7E17D8, 0x48 + .incbin "baserom.nds", 0x7E1820, 0x1930 + .incbin "baserom.nds", 0x7E3150, 0x1930 + .incbin "baserom.nds", 0x7E4A80, 0x1930 + .incbin "baserom.nds", 0x7E63B0, 0x1930 + .incbin "baserom.nds", 0x7E7CE0, 0x48 + .incbin "baserom.nds", 0x7E7D28, 0x48 + .incbin "baserom.nds", 0x7E7D70, 0x1930 + .incbin "baserom.nds", 0x7E96A0, 0x1930 + .incbin "baserom.nds", 0x7EAFD0, 0x1930 + .incbin "baserom.nds", 0x7EC900, 0x1930 + .incbin "baserom.nds", 0x7EE230, 0x48 + .incbin "baserom.nds", 0x7EE278, 0x48 + .incbin "baserom.nds", 0x7EE2C0, 0x1930 + .incbin "baserom.nds", 0x7EFBF0, 0x1930 + .incbin "baserom.nds", 0x7F1520, 0x1930 + .incbin "baserom.nds", 0x7F2E50, 0x1930 + .incbin "baserom.nds", 0x7F4780, 0x48 + .incbin "baserom.nds", 0x7F47C8, 0x48 + .incbin "baserom.nds", 0x7F4810, 0x0 + .incbin "baserom.nds", 0x7F4810, 0x1930 + .incbin "baserom.nds", 0x7F6140, 0x0 + .incbin "baserom.nds", 0x7F6140, 0x1930 + .incbin "baserom.nds", 0x7F7A70, 0x48 + .incbin "baserom.nds", 0x7F7AB8, 0x48 + .incbin "baserom.nds", 0x7F7B00, 0x0 + .incbin "baserom.nds", 0x7F7B00, 0x1930 + .incbin "baserom.nds", 0x7F9430, 0x0 + .incbin "baserom.nds", 0x7F9430, 0x1930 + .incbin "baserom.nds", 0x7FAD60, 0x48 + .incbin "baserom.nds", 0x7FADA8, 0x48 + .incbin "baserom.nds", 0x7FADF0, 0x1930 + .incbin "baserom.nds", 0x7FC720, 0x1930 + .incbin "baserom.nds", 0x7FE050, 0x1930 + .incbin "baserom.nds", 0x7FF980, 0x1930 + .incbin "baserom.nds", 0x8012B0, 0x48 + .incbin "baserom.nds", 0x8012F8, 0x48 + .incbin "baserom.nds", 0x801340, 0x1930 + .incbin "baserom.nds", 0x802C70, 0x1930 + .incbin "baserom.nds", 0x8045A0, 0x1930 + .incbin "baserom.nds", 0x805ED0, 0x1930 + .incbin "baserom.nds", 0x807800, 0x48 + .incbin "baserom.nds", 0x807848, 0x48 + .incbin "baserom.nds", 0x807890, 0x1930 + .incbin "baserom.nds", 0x8091C0, 0x1930 + .incbin "baserom.nds", 0x80AAF0, 0x1930 + .incbin "baserom.nds", 0x80C420, 0x1930 + .incbin "baserom.nds", 0x80DD50, 0x48 + .incbin "baserom.nds", 0x80DD98, 0x48 + .incbin "baserom.nds", 0x80DDE0, 0x1930 + .incbin "baserom.nds", 0x80F710, 0x1930 + .incbin "baserom.nds", 0x811040, 0x1930 + .incbin "baserom.nds", 0x812970, 0x1930 + .incbin "baserom.nds", 0x8142A0, 0x48 + .incbin "baserom.nds", 0x8142E8, 0x48 + .incbin "baserom.nds", 0x814330, 0x1930 + .incbin "baserom.nds", 0x815C60, 0x1930 + .incbin "baserom.nds", 0x817590, 0x1930 + .incbin "baserom.nds", 0x818EC0, 0x1930 + .incbin "baserom.nds", 0x81A7F0, 0x48 + .incbin "baserom.nds", 0x81A838, 0x48 + .incbin "baserom.nds", 0x81A880, 0x1930 + .incbin "baserom.nds", 0x81C1B0, 0x1930 + .incbin "baserom.nds", 0x81DAE0, 0x1930 + .incbin "baserom.nds", 0x81F410, 0x1930 + .incbin "baserom.nds", 0x820D40, 0x48 + .incbin "baserom.nds", 0x820D88, 0x48 + .incbin "baserom.nds", 0x820DD0, 0x1930 + .incbin "baserom.nds", 0x822700, 0x1930 + .incbin "baserom.nds", 0x824030, 0x1930 + .incbin "baserom.nds", 0x825960, 0x1930 + .incbin "baserom.nds", 0x827290, 0x48 + .incbin "baserom.nds", 0x8272D8, 0x48 + .incbin "baserom.nds", 0x827320, 0x1930 + .incbin "baserom.nds", 0x828C50, 0x1930 + .incbin "baserom.nds", 0x82A580, 0x1930 + .incbin "baserom.nds", 0x82BEB0, 0x1930 + .incbin "baserom.nds", 0x82D7E0, 0x48 + .incbin "baserom.nds", 0x82D828, 0x48 + .incbin "baserom.nds", 0x82D870, 0x1930 + .incbin "baserom.nds", 0x82F1A0, 0x1930 + .incbin "baserom.nds", 0x830AD0, 0x1930 + .incbin "baserom.nds", 0x832400, 0x1930 + .incbin "baserom.nds", 0x833D30, 0x48 + .incbin "baserom.nds", 0x833D78, 0x48 + .incbin "baserom.nds", 0x833DC0, 0x1930 + .incbin "baserom.nds", 0x8356F0, 0x1930 + .incbin "baserom.nds", 0x837020, 0x1930 + .incbin "baserom.nds", 0x838950, 0x1930 + .incbin "baserom.nds", 0x83A280, 0x48 + .incbin "baserom.nds", 0x83A2C8, 0x48 + .incbin "baserom.nds", 0x83A310, 0x1930 + .incbin "baserom.nds", 0x83BC40, 0x1930 + .incbin "baserom.nds", 0x83D570, 0x1930 + .incbin "baserom.nds", 0x83EEA0, 0x1930 + .incbin "baserom.nds", 0x8407D0, 0x48 + .incbin "baserom.nds", 0x840818, 0x48 + .incbin "baserom.nds", 0x840860, 0x1930 + .incbin "baserom.nds", 0x842190, 0x1930 + .incbin "baserom.nds", 0x843AC0, 0x1930 + .incbin "baserom.nds", 0x8453F0, 0x1930 + .incbin "baserom.nds", 0x846D20, 0x48 + .incbin "baserom.nds", 0x846D68, 0x48 + .incbin "baserom.nds", 0x846DB0, 0x1930 + .incbin "baserom.nds", 0x8486E0, 0x1930 + .incbin "baserom.nds", 0x84A010, 0x1930 + .incbin "baserom.nds", 0x84B940, 0x1930 + .incbin "baserom.nds", 0x84D270, 0x48 + .incbin "baserom.nds", 0x84D2B8, 0x48 + .incbin "baserom.nds", 0x84D300, 0x1930 + .incbin "baserom.nds", 0x84EC30, 0x1930 + .incbin "baserom.nds", 0x850560, 0x1930 + .incbin "baserom.nds", 0x851E90, 0x1930 + .incbin "baserom.nds", 0x8537C0, 0x48 + .incbin "baserom.nds", 0x853808, 0x48 + .incbin "baserom.nds", 0x853850, 0x1930 + .incbin "baserom.nds", 0x855180, 0x1930 + .incbin "baserom.nds", 0x856AB0, 0x1930 + .incbin "baserom.nds", 0x8583E0, 0x1930 + .incbin "baserom.nds", 0x859D10, 0x48 + .incbin "baserom.nds", 0x859D58, 0x48 + .incbin "baserom.nds", 0x859DA0, 0x1930 + .incbin "baserom.nds", 0x85B6D0, 0x1930 + .incbin "baserom.nds", 0x85D000, 0x1930 + .incbin "baserom.nds", 0x85E930, 0x1930 + .incbin "baserom.nds", 0x860260, 0x48 + .incbin "baserom.nds", 0x8602A8, 0x48 + .incbin "baserom.nds", 0x8602F0, 0x1930 + .incbin "baserom.nds", 0x861C20, 0x1930 + .incbin "baserom.nds", 0x863550, 0x1930 + .incbin "baserom.nds", 0x864E80, 0x1930 + .incbin "baserom.nds", 0x8667B0, 0x48 + .incbin "baserom.nds", 0x8667F8, 0x48 + .incbin "baserom.nds", 0x866840, 0x1930 + .incbin "baserom.nds", 0x868170, 0x1930 + .incbin "baserom.nds", 0x869AA0, 0x1930 + .incbin "baserom.nds", 0x86B3D0, 0x1930 + .incbin "baserom.nds", 0x86CD00, 0x48 + .incbin "baserom.nds", 0x86CD48, 0x48 + .incbin "baserom.nds", 0x86CD90, 0x1930 + .incbin "baserom.nds", 0x86E6C0, 0x1930 + .incbin "baserom.nds", 0x86FFF0, 0x1930 + .incbin "baserom.nds", 0x871920, 0x1930 + .incbin "baserom.nds", 0x873250, 0x48 + .incbin "baserom.nds", 0x873298, 0x48 + .incbin "baserom.nds", 0x8732E0, 0x1930 + .incbin "baserom.nds", 0x874C10, 0x1930 + .incbin "baserom.nds", 0x876540, 0x1930 + .incbin "baserom.nds", 0x877E70, 0x1930 + .incbin "baserom.nds", 0x8797A0, 0x48 + .incbin "baserom.nds", 0x8797E8, 0x48 + .incbin "baserom.nds", 0x879830, 0x1930 + .incbin "baserom.nds", 0x87B160, 0x1930 + .incbin "baserom.nds", 0x87CA90, 0x1930 + .incbin "baserom.nds", 0x87E3C0, 0x1930 + .incbin "baserom.nds", 0x87FCF0, 0x48 + .incbin "baserom.nds", 0x87FD38, 0x48 + .incbin "baserom.nds", 0x87FD80, 0x1930 + .incbin "baserom.nds", 0x8816B0, 0x1930 + .incbin "baserom.nds", 0x882FE0, 0x1930 + .incbin "baserom.nds", 0x884910, 0x1930 + .incbin "baserom.nds", 0x886240, 0x48 + .incbin "baserom.nds", 0x886288, 0x48 + .incbin "baserom.nds", 0x8862D0, 0x1930 + .incbin "baserom.nds", 0x887C00, 0x1930 + .incbin "baserom.nds", 0x889530, 0x1930 + .incbin "baserom.nds", 0x88AE60, 0x1930 + .incbin "baserom.nds", 0x88C790, 0x48 + .incbin "baserom.nds", 0x88C7D8, 0x48 + .incbin "baserom.nds", 0x88C820, 0x1930 + .incbin "baserom.nds", 0x88E150, 0x1930 + .incbin "baserom.nds", 0x88FA80, 0x1930 + .incbin "baserom.nds", 0x8913B0, 0x1930 + .incbin "baserom.nds", 0x892CE0, 0x48 + .incbin "baserom.nds", 0x892D28, 0x48 + .incbin "baserom.nds", 0x892D70, 0x1930 + .incbin "baserom.nds", 0x8946A0, 0x1930 + .incbin "baserom.nds", 0x895FD0, 0x1930 + .incbin "baserom.nds", 0x897900, 0x1930 + .incbin "baserom.nds", 0x899230, 0x48 + .incbin "baserom.nds", 0x899278, 0x48 + .incbin "baserom.nds", 0x8992C0, 0x1930 + .incbin "baserom.nds", 0x89ABF0, 0x1930 + .incbin "baserom.nds", 0x89C520, 0x1930 + .incbin "baserom.nds", 0x89DE50, 0x1930 + .incbin "baserom.nds", 0x89F780, 0x48 + .incbin "baserom.nds", 0x89F7C8, 0x48 + .incbin "baserom.nds", 0x89F810, 0x1930 + .incbin "baserom.nds", 0x8A1140, 0x1930 + .incbin "baserom.nds", 0x8A2A70, 0x1930 + .incbin "baserom.nds", 0x8A43A0, 0x1930 + .incbin "baserom.nds", 0x8A5CD0, 0x48 + .incbin "baserom.nds", 0x8A5D18, 0x48 + .incbin "baserom.nds", 0x8A5D60, 0x1930 + .incbin "baserom.nds", 0x8A7690, 0x1930 + .incbin "baserom.nds", 0x8A8FC0, 0x1930 + .incbin "baserom.nds", 0x8AA8F0, 0x1930 + .incbin "baserom.nds", 0x8AC220, 0x48 + .incbin "baserom.nds", 0x8AC268, 0x48 + .incbin "baserom.nds", 0x8AC2B0, 0x1930 + .incbin "baserom.nds", 0x8ADBE0, 0x1930 + .incbin "baserom.nds", 0x8AF510, 0x1930 + .incbin "baserom.nds", 0x8B0E40, 0x1930 + .incbin "baserom.nds", 0x8B2770, 0x48 + .incbin "baserom.nds", 0x8B27B8, 0x48 + .incbin "baserom.nds", 0x8B2800, 0x0 + .incbin "baserom.nds", 0x8B2800, 0x1930 + .incbin "baserom.nds", 0x8B4130, 0x0 + .incbin "baserom.nds", 0x8B4130, 0x1930 + .incbin "baserom.nds", 0x8B5A60, 0x48 + .incbin "baserom.nds", 0x8B5AA8, 0x48 + .incbin "baserom.nds", 0x8B5AF0, 0x0 + .incbin "baserom.nds", 0x8B5AF0, 0x1930 + .incbin "baserom.nds", 0x8B7420, 0x0 + .incbin "baserom.nds", 0x8B7420, 0x1930 + .incbin "baserom.nds", 0x8B8D50, 0x48 + .incbin "baserom.nds", 0x8B8D98, 0x48 + .incbin "baserom.nds", 0x8B8DE0, 0x0 + .incbin "baserom.nds", 0x8B8DE0, 0x1930 + .incbin "baserom.nds", 0x8BA710, 0x0 + .incbin "baserom.nds", 0x8BA710, 0x1930 + .incbin "baserom.nds", 0x8BC040, 0x48 + .incbin "baserom.nds", 0x8BC088, 0x48 + .incbin "baserom.nds", 0x8BC0D0, 0x0 + .incbin "baserom.nds", 0x8BC0D0, 0x1930 + .incbin "baserom.nds", 0x8BDA00, 0x0 + .incbin "baserom.nds", 0x8BDA00, 0x1930 + .incbin "baserom.nds", 0x8BF330, 0x48 + .incbin "baserom.nds", 0x8BF378, 0x48 + .incbin "baserom.nds", 0x8BF3C0, 0x0 + .incbin "baserom.nds", 0x8BF3C0, 0x1930 + .incbin "baserom.nds", 0x8C0CF0, 0x0 + .incbin "baserom.nds", 0x8C0CF0, 0x1930 + .incbin "baserom.nds", 0x8C2620, 0x48 + .incbin "baserom.nds", 0x8C2668, 0x48 + .incbin "baserom.nds", 0x8C26B0, 0x0 + .incbin "baserom.nds", 0x8C26B0, 0x1930 + .incbin "baserom.nds", 0x8C3FE0, 0x0 + .incbin "baserom.nds", 0x8C3FE0, 0x1930 + .incbin "baserom.nds", 0x8C5910, 0x48 + .incbin "baserom.nds", 0x8C5958, 0x48 + .incbin "baserom.nds", 0x8C59A0, 0x1930 + .incbin "baserom.nds", 0x8C72D0, 0x0 + .incbin "baserom.nds", 0x8C72D0, 0x1930 + .incbin "baserom.nds", 0x8C8C00, 0x0 + .incbin "baserom.nds", 0x8C8C00, 0x48 + .incbin "baserom.nds", 0x8C8C48, 0x48 + .incbin "baserom.nds", 0x8C8C90, 0x0 + .incbin "baserom.nds", 0x8C8C90, 0x1930 + .incbin "baserom.nds", 0x8CA5C0, 0x0 + .incbin "baserom.nds", 0x8CA5C0, 0x1930 + .incbin "baserom.nds", 0x8CBEF0, 0x48 + .incbin "baserom.nds", 0x8CBF38, 0x48 + .incbin "baserom.nds", 0x8CBF80, 0x0 + .incbin "baserom.nds", 0x8CBF80, 0x1930 + .incbin "baserom.nds", 0x8CD8B0, 0x0 + .incbin "baserom.nds", 0x8CD8B0, 0x1930 + .incbin "baserom.nds", 0x8CF1E0, 0x48 + .incbin "baserom.nds", 0x8CF228, 0x48 + .incbin "baserom.nds", 0x8CF270, 0x0 + .incbin "baserom.nds", 0x8CF270, 0x1930 + .incbin "baserom.nds", 0x8D0BA0, 0x0 + .incbin "baserom.nds", 0x8D0BA0, 0x1930 + .incbin "baserom.nds", 0x8D24D0, 0x48 + .incbin "baserom.nds", 0x8D2518, 0x48 + .incbin "baserom.nds", 0x8D2560, 0x0 + .incbin "baserom.nds", 0x8D2560, 0x1930 + .incbin "baserom.nds", 0x8D3E90, 0x0 + .incbin "baserom.nds", 0x8D3E90, 0x1930 + .incbin "baserom.nds", 0x8D57C0, 0x48 + .incbin "baserom.nds", 0x8D5808, 0x48 + .incbin "baserom.nds", 0x8D5850, 0x0 + .incbin "baserom.nds", 0x8D5850, 0x1930 + .incbin "baserom.nds", 0x8D7180, 0x0 + .incbin "baserom.nds", 0x8D7180, 0x1930 + .incbin "baserom.nds", 0x8D8AB0, 0x48 + .incbin "baserom.nds", 0x8D8AF8, 0x48 + .incbin "baserom.nds", 0x8D8B40, 0x0 + .incbin "baserom.nds", 0x8D8B40, 0x1930 + .incbin "baserom.nds", 0x8DA470, 0x0 + .incbin "baserom.nds", 0x8DA470, 0x1930 + .incbin "baserom.nds", 0x8DBDA0, 0x48 + .incbin "baserom.nds", 0x8DBDE8, 0x48 + .incbin "baserom.nds", 0x8DBE30, 0x1930 + .incbin "baserom.nds", 0x8DD760, 0x1930 + .incbin "baserom.nds", 0x8DF090, 0x1930 + .incbin "baserom.nds", 0x8E09C0, 0x1930 + .incbin "baserom.nds", 0x8E22F0, 0x48 + .incbin "baserom.nds", 0x8E2338, 0x48 + .incbin "baserom.nds", 0x8E2380, 0x1930 + .incbin "baserom.nds", 0x8E3CB0, 0x1930 + .incbin "baserom.nds", 0x8E55E0, 0x1930 + .incbin "baserom.nds", 0x8E6F10, 0x1930 + .incbin "baserom.nds", 0x8E8840, 0x48 + .incbin "baserom.nds", 0x8E8888, 0x48 + .incbin "baserom.nds", 0x8E88D0, 0x1930 + .incbin "baserom.nds", 0x8EA200, 0x1930 + .incbin "baserom.nds", 0x8EBB30, 0x1930 + .incbin "baserom.nds", 0x8ED460, 0x1930 + .incbin "baserom.nds", 0x8EED90, 0x48 + .incbin "baserom.nds", 0x8EEDD8, 0x48 + .incbin "baserom.nds", 0x8EEE20, 0x1930 + .incbin "baserom.nds", 0x8F0750, 0x1930 + .incbin "baserom.nds", 0x8F2080, 0x1930 + .incbin "baserom.nds", 0x8F39B0, 0x1930 + .incbin "baserom.nds", 0x8F52E0, 0x48 + .incbin "baserom.nds", 0x8F5328, 0x48 + .incbin "baserom.nds", 0x8F5370, 0x1930 + .incbin "baserom.nds", 0x8F6CA0, 0x1930 + .incbin "baserom.nds", 0x8F85D0, 0x1930 + .incbin "baserom.nds", 0x8F9F00, 0x1930 + .incbin "baserom.nds", 0x8FB830, 0x48 + .incbin "baserom.nds", 0x8FB878, 0x48 + .incbin "baserom.nds", 0x8FB8C0, 0x1930 + .incbin "baserom.nds", 0x8FD1F0, 0x1930 + .incbin "baserom.nds", 0x8FEB20, 0x1930 + .incbin "baserom.nds", 0x900450, 0x1930 + .incbin "baserom.nds", 0x901D80, 0x48 + .incbin "baserom.nds", 0x901DC8, 0x48 + .incbin "baserom.nds", 0x901E10, 0x1930 + .incbin "baserom.nds", 0x903740, 0x1930 + .incbin "baserom.nds", 0x905070, 0x1930 + .incbin "baserom.nds", 0x9069A0, 0x1930 + .incbin "baserom.nds", 0x9082D0, 0x48 + .incbin "baserom.nds", 0x908318, 0x48 + .incbin "baserom.nds", 0x908360, 0x1930 + .incbin "baserom.nds", 0x909C90, 0x1930 + .incbin "baserom.nds", 0x90B5C0, 0x1930 + .incbin "baserom.nds", 0x90CEF0, 0x1930 + .incbin "baserom.nds", 0x90E820, 0x48 + .incbin "baserom.nds", 0x90E868, 0x48 + .incbin "baserom.nds", 0x90E8B0, 0x1930 + .incbin "baserom.nds", 0x9101E0, 0x1930 + .incbin "baserom.nds", 0x911B10, 0x1930 + .incbin "baserom.nds", 0x913440, 0x1930 + .incbin "baserom.nds", 0x914D70, 0x48 + .incbin "baserom.nds", 0x914DB8, 0x48 + .incbin "baserom.nds", 0x914E00, 0x1930 + .incbin "baserom.nds", 0x916730, 0x1930 + .incbin "baserom.nds", 0x918060, 0x1930 + .incbin "baserom.nds", 0x919990, 0x1930 + .incbin "baserom.nds", 0x91B2C0, 0x48 + .incbin "baserom.nds", 0x91B308, 0x48 + .incbin "baserom.nds", 0x91B350, 0x1930 + .incbin "baserom.nds", 0x91CC80, 0x1930 + .incbin "baserom.nds", 0x91E5B0, 0x1930 + .incbin "baserom.nds", 0x91FEE0, 0x1930 + .incbin "baserom.nds", 0x921810, 0x48 + .incbin "baserom.nds", 0x921858, 0x48 + .incbin "baserom.nds", 0x9218A0, 0x1930 + .incbin "baserom.nds", 0x9231D0, 0x1930 + .incbin "baserom.nds", 0x924B00, 0x1930 + .incbin "baserom.nds", 0x926430, 0x1930 + .incbin "baserom.nds", 0x927D60, 0x48 + .incbin "baserom.nds", 0x927DA8, 0x48 + .incbin "baserom.nds", 0x927DF0, 0x1930 + .incbin "baserom.nds", 0x929720, 0x1930 + .incbin "baserom.nds", 0x92B050, 0x1930 + .incbin "baserom.nds", 0x92C980, 0x1930 + .incbin "baserom.nds", 0x92E2B0, 0x48 + .incbin "baserom.nds", 0x92E2F8, 0x48 + .incbin "baserom.nds", 0x92E340, 0x1930 + .incbin "baserom.nds", 0x92FC70, 0x1930 + .incbin "baserom.nds", 0x9315A0, 0x1930 + .incbin "baserom.nds", 0x932ED0, 0x1930 + .incbin "baserom.nds", 0x934800, 0x48 + .incbin "baserom.nds", 0x934848, 0x48 + .incbin "baserom.nds", 0x934890, 0x1930 + .incbin "baserom.nds", 0x9361C0, 0x1930 + .incbin "baserom.nds", 0x937AF0, 0x1930 + .incbin "baserom.nds", 0x939420, 0x1930 + .incbin "baserom.nds", 0x93AD50, 0x48 + .incbin "baserom.nds", 0x93AD98, 0x48 + .incbin "baserom.nds", 0x93ADE0, 0x1930 + .incbin "baserom.nds", 0x93C710, 0x1930 + .incbin "baserom.nds", 0x93E040, 0x1930 + .incbin "baserom.nds", 0x93F970, 0x1930 + .incbin "baserom.nds", 0x9412A0, 0x48 + .incbin "baserom.nds", 0x9412E8, 0x48 + .incbin "baserom.nds", 0x941330, 0x1930 + .incbin "baserom.nds", 0x942C60, 0x1930 + .incbin "baserom.nds", 0x944590, 0x1930 + .incbin "baserom.nds", 0x945EC0, 0x1930 + .incbin "baserom.nds", 0x9477F0, 0x48 + .incbin "baserom.nds", 0x947838, 0x48 + .incbin "baserom.nds", 0x947880, 0x1930 + .incbin "baserom.nds", 0x9491B0, 0x1930 + .incbin "baserom.nds", 0x94AAE0, 0x1930 + .incbin "baserom.nds", 0x94C410, 0x1930 + .incbin "baserom.nds", 0x94DD40, 0x48 + .incbin "baserom.nds", 0x94DD88, 0x48 + .incbin "baserom.nds", 0x94DDD0, 0x1930 + .incbin "baserom.nds", 0x94F700, 0x1930 + .incbin "baserom.nds", 0x951030, 0x1930 + .incbin "baserom.nds", 0x952960, 0x1930 + .incbin "baserom.nds", 0x954290, 0x48 + .incbin "baserom.nds", 0x9542D8, 0x48 + .incbin "baserom.nds", 0x954320, 0x1930 + .incbin "baserom.nds", 0x955C50, 0x1930 + .incbin "baserom.nds", 0x957580, 0x1930 + .incbin "baserom.nds", 0x958EB0, 0x1930 + .incbin "baserom.nds", 0x95A7E0, 0x48 + .incbin "baserom.nds", 0x95A828, 0x48 + .incbin "baserom.nds", 0x95A870, 0x1930 + .incbin "baserom.nds", 0x95C1A0, 0x1930 + .incbin "baserom.nds", 0x95DAD0, 0x1930 + .incbin "baserom.nds", 0x95F400, 0x1930 + .incbin "baserom.nds", 0x960D30, 0x48 + .incbin "baserom.nds", 0x960D78, 0x48 + .incbin "baserom.nds", 0x960DC0, 0x1930 + .incbin "baserom.nds", 0x9626F0, 0x1930 + .incbin "baserom.nds", 0x964020, 0x1930 + .incbin "baserom.nds", 0x965950, 0x1930 + .incbin "baserom.nds", 0x967280, 0x48 + .incbin "baserom.nds", 0x9672C8, 0x48 + .incbin "baserom.nds", 0x967310, 0x1930 + .incbin "baserom.nds", 0x968C40, 0x1930 + .incbin "baserom.nds", 0x96A570, 0x1930 + .incbin "baserom.nds", 0x96BEA0, 0x1930 + .incbin "baserom.nds", 0x96D7D0, 0x48 + .incbin "baserom.nds", 0x96D818, 0x48 + .incbin "baserom.nds", 0x96D860, 0x1930 + .incbin "baserom.nds", 0x96F190, 0x1930 + .incbin "baserom.nds", 0x970AC0, 0x1930 + .incbin "baserom.nds", 0x9723F0, 0x1930 + .incbin "baserom.nds", 0x973D20, 0x48 + .incbin "baserom.nds", 0x973D68, 0x48 + .incbin "baserom.nds", 0x973DB0, 0x1930 + .incbin "baserom.nds", 0x9756E0, 0x1930 + .incbin "baserom.nds", 0x977010, 0x1930 + .incbin "baserom.nds", 0x978940, 0x1930 + .incbin "baserom.nds", 0x97A270, 0x48 + .incbin "baserom.nds", 0x97A2B8, 0x48 + .incbin "baserom.nds", 0x97A300, 0x1930 + .incbin "baserom.nds", 0x97BC30, 0x1930 + .incbin "baserom.nds", 0x97D560, 0x1930 + .incbin "baserom.nds", 0x97EE90, 0x1930 + .incbin "baserom.nds", 0x9807C0, 0x48 + .incbin "baserom.nds", 0x980808, 0x48 + .incbin "baserom.nds", 0x980850, 0x1930 + .incbin "baserom.nds", 0x982180, 0x0 + .incbin "baserom.nds", 0x982180, 0x1930 + .incbin "baserom.nds", 0x983AB0, 0x0 + .incbin "baserom.nds", 0x983AB0, 0x48 + .incbin "baserom.nds", 0x983AF8, 0x48 + .incbin "baserom.nds", 0x983B40, 0x0 + .incbin "baserom.nds", 0x983B40, 0x1930 + .incbin "baserom.nds", 0x985470, 0x0 + .incbin "baserom.nds", 0x985470, 0x1930 + .incbin "baserom.nds", 0x986DA0, 0x48 + .incbin "baserom.nds", 0x986DE8, 0x48 + .incbin "baserom.nds", 0x986E30, 0x1930 + .incbin "baserom.nds", 0x988760, 0x1930 + .incbin "baserom.nds", 0x98A090, 0x1930 + .incbin "baserom.nds", 0x98B9C0, 0x1930 + .incbin "baserom.nds", 0x98D2F0, 0x48 + .incbin "baserom.nds", 0x98D338, 0x48 + .incbin "baserom.nds", 0x98D380, 0x1930 + .incbin "baserom.nds", 0x98ECB0, 0x0 + .incbin "baserom.nds", 0x98ECB0, 0x1930 + .incbin "baserom.nds", 0x9905E0, 0x0 + .incbin "baserom.nds", 0x9905E0, 0x48 + .incbin "baserom.nds", 0x990628, 0x48 + .incbin "baserom.nds", 0x990670, 0x1930 + .incbin "baserom.nds", 0x991FA0, 0x1930 + .incbin "baserom.nds", 0x9938D0, 0x1930 + .incbin "baserom.nds", 0x995200, 0x1930 + .incbin "baserom.nds", 0x996B30, 0x48 + .incbin "baserom.nds", 0x996B78, 0x48 + .incbin "baserom.nds", 0x996BC0, 0x1930 + .incbin "baserom.nds", 0x9984F0, 0x1930 + .incbin "baserom.nds", 0x999E20, 0x1930 + .incbin "baserom.nds", 0x99B750, 0x1930 + .incbin "baserom.nds", 0x99D080, 0x48 + .incbin "baserom.nds", 0x99D0C8, 0x48 + .incbin "baserom.nds", 0x99D110, 0x1930 + .incbin "baserom.nds", 0x99EA40, 0x1930 + .incbin "baserom.nds", 0x9A0370, 0x1930 + .incbin "baserom.nds", 0x9A1CA0, 0x1930 + .incbin "baserom.nds", 0x9A35D0, 0x48 + .incbin "baserom.nds", 0x9A3618, 0x48 + .incbin "baserom.nds", 0x9A3660, 0x1930 + .incbin "baserom.nds", 0x9A4F90, 0x1930 + .incbin "baserom.nds", 0x9A68C0, 0x1930 + .incbin "baserom.nds", 0x9A81F0, 0x1930 + .incbin "baserom.nds", 0x9A9B20, 0x48 + .incbin "baserom.nds", 0x9A9B68, 0x48 + .incbin "baserom.nds", 0x9A9BB0, 0x1930 + .incbin "baserom.nds", 0x9AB4E0, 0x1930 + .incbin "baserom.nds", 0x9ACE10, 0x1930 + .incbin "baserom.nds", 0x9AE740, 0x1930 + .incbin "baserom.nds", 0x9B0070, 0x48 + .incbin "baserom.nds", 0x9B00B8, 0x48 + .incbin "baserom.nds", 0x9B0100, 0x1930 + .incbin "baserom.nds", 0x9B1A30, 0x1930 + .incbin "baserom.nds", 0x9B3360, 0x1930 + .incbin "baserom.nds", 0x9B4C90, 0x1930 + .incbin "baserom.nds", 0x9B65C0, 0x48 + .incbin "baserom.nds", 0x9B6608, 0x48 + .incbin "baserom.nds", 0x9B6650, 0x1930 + .incbin "baserom.nds", 0x9B7F80, 0x1930 + .incbin "baserom.nds", 0x9B98B0, 0x1930 + .incbin "baserom.nds", 0x9BB1E0, 0x1930 + .incbin "baserom.nds", 0x9BCB10, 0x48 + .incbin "baserom.nds", 0x9BCB58, 0x48 + .incbin "baserom.nds", 0x9BCBA0, 0x1930 + .incbin "baserom.nds", 0x9BE4D0, 0x1930 + .incbin "baserom.nds", 0x9BFE00, 0x1930 + .incbin "baserom.nds", 0x9C1730, 0x1930 + .incbin "baserom.nds", 0x9C3060, 0x48 + .incbin "baserom.nds", 0x9C30A8, 0x48 + .incbin "baserom.nds", 0x9C30F0, 0x1930 + .incbin "baserom.nds", 0x9C4A20, 0x1930 + .incbin "baserom.nds", 0x9C6350, 0x1930 + .incbin "baserom.nds", 0x9C7C80, 0x1930 + .incbin "baserom.nds", 0x9C95B0, 0x48 + .incbin "baserom.nds", 0x9C95F8, 0x48 + .incbin "baserom.nds", 0x9C9640, 0x1930 + .incbin "baserom.nds", 0x9CAF70, 0x1930 + .incbin "baserom.nds", 0x9CC8A0, 0x1930 + .incbin "baserom.nds", 0x9CE1D0, 0x1930 + .incbin "baserom.nds", 0x9CFB00, 0x48 + .incbin "baserom.nds", 0x9CFB48, 0x48 + .incbin "baserom.nds", 0x9CFB90, 0x1930 + .incbin "baserom.nds", 0x9D14C0, 0x1930 + .incbin "baserom.nds", 0x9D2DF0, 0x1930 + .incbin "baserom.nds", 0x9D4720, 0x1930 + .incbin "baserom.nds", 0x9D6050, 0x48 + .incbin "baserom.nds", 0x9D6098, 0x48 + .incbin "baserom.nds", 0x9D60E0, 0x1930 + .incbin "baserom.nds", 0x9D7A10, 0x1930 + .incbin "baserom.nds", 0x9D9340, 0x1930 + .incbin "baserom.nds", 0x9DAC70, 0x1930 + .incbin "baserom.nds", 0x9DC5A0, 0x48 + .incbin "baserom.nds", 0x9DC5E8, 0x48 + .incbin "baserom.nds", 0x9DC630, 0x1930 + .incbin "baserom.nds", 0x9DDF60, 0x1930 + .incbin "baserom.nds", 0x9DF890, 0x1930 + .incbin "baserom.nds", 0x9E11C0, 0x1930 + .incbin "baserom.nds", 0x9E2AF0, 0x48 + .incbin "baserom.nds", 0x9E2B38, 0x48 + .incbin "baserom.nds", 0x9E2B80, 0x1930 + .incbin "baserom.nds", 0x9E44B0, 0x1930 + .incbin "baserom.nds", 0x9E5DE0, 0x1930 + .incbin "baserom.nds", 0x9E7710, 0x1930 + .incbin "baserom.nds", 0x9E9040, 0x48 + .incbin "baserom.nds", 0x9E9088, 0x48 + .incbin "baserom.nds", 0x9E90D0, 0x1930 + .incbin "baserom.nds", 0x9EAA00, 0x1930 + .incbin "baserom.nds", 0x9EC330, 0x1930 + .incbin "baserom.nds", 0x9EDC60, 0x1930 + .incbin "baserom.nds", 0x9EF590, 0x48 + .incbin "baserom.nds", 0x9EF5D8, 0x48 + .incbin "baserom.nds", 0x9EF620, 0x1930 + .incbin "baserom.nds", 0x9F0F50, 0x1930 + .incbin "baserom.nds", 0x9F2880, 0x1930 + .incbin "baserom.nds", 0x9F41B0, 0x1930 + .incbin "baserom.nds", 0x9F5AE0, 0x48 + .incbin "baserom.nds", 0x9F5B28, 0x48 + .incbin "baserom.nds", 0x9F5B70, 0x1930 + .incbin "baserom.nds", 0x9F74A0, 0x1930 + .incbin "baserom.nds", 0x9F8DD0, 0x1930 + .incbin "baserom.nds", 0x9FA700, 0x1930 + .incbin "baserom.nds", 0x9FC030, 0x48 + .incbin "baserom.nds", 0x9FC078, 0x48 + .incbin "baserom.nds", 0x9FC0C0, 0x1930 + .incbin "baserom.nds", 0x9FD9F0, 0x1930 + .incbin "baserom.nds", 0x9FF320, 0x1930 + .incbin "baserom.nds", 0xA00C50, 0x1930 + .incbin "baserom.nds", 0xA02580, 0x48 + .incbin "baserom.nds", 0xA025C8, 0x48 + .incbin "baserom.nds", 0xA02610, 0x1930 + .incbin "baserom.nds", 0xA03F40, 0x1930 + .incbin "baserom.nds", 0xA05870, 0x1930 + .incbin "baserom.nds", 0xA071A0, 0x1930 + .incbin "baserom.nds", 0xA08AD0, 0x48 + .incbin "baserom.nds", 0xA08B18, 0x48 + .incbin "baserom.nds", 0xA08B60, 0x0 + .incbin "baserom.nds", 0xA08B60, 0x1930 + .incbin "baserom.nds", 0xA0A490, 0x0 + .incbin "baserom.nds", 0xA0A490, 0x1930 + .incbin "baserom.nds", 0xA0BDC0, 0x48 + .incbin "baserom.nds", 0xA0BE08, 0x48 + .incbin "baserom.nds", 0xA0BE50, 0x0 + .incbin "baserom.nds", 0xA0BE50, 0x1930 + .incbin "baserom.nds", 0xA0D780, 0x0 + .incbin "baserom.nds", 0xA0D780, 0x1930 + .incbin "baserom.nds", 0xA0F0B0, 0x48 + .incbin "baserom.nds", 0xA0F0F8, 0x48 + .incbin "baserom.nds", 0xA0F140, 0x1930 + .incbin "baserom.nds", 0xA10A70, 0x1930 + .incbin "baserom.nds", 0xA123A0, 0x1930 + .incbin "baserom.nds", 0xA13CD0, 0x1930 + .incbin "baserom.nds", 0xA15600, 0x48 + .incbin "baserom.nds", 0xA15648, 0x48 + .incbin "baserom.nds", 0xA15690, 0x1930 + .incbin "baserom.nds", 0xA16FC0, 0x1930 + .incbin "baserom.nds", 0xA188F0, 0x1930 + .incbin "baserom.nds", 0xA1A220, 0x1930 + .incbin "baserom.nds", 0xA1BB50, 0x48 + .incbin "baserom.nds", 0xA1BB98, 0x48 + .incbin "baserom.nds", 0xA1BBE0, 0x1930 + .incbin "baserom.nds", 0xA1D510, 0x0 + .incbin "baserom.nds", 0xA1D510, 0x1930 + .incbin "baserom.nds", 0xA1EE40, 0x0 + .incbin "baserom.nds", 0xA1EE40, 0x48 + .incbin "baserom.nds", 0xA1EE88, 0x48 + .incbin "baserom.nds", 0xA1EED0, 0x1930 + .incbin "baserom.nds", 0xA20800, 0x1930 + .incbin "baserom.nds", 0xA22130, 0x1930 + .incbin "baserom.nds", 0xA23A60, 0x1930 + .incbin "baserom.nds", 0xA25390, 0x48 + .incbin "baserom.nds", 0xA253D8, 0x48 + .incbin "baserom.nds", 0xA25420, 0x1930 + .incbin "baserom.nds", 0xA26D50, 0x1930 + .incbin "baserom.nds", 0xA28680, 0x1930 + .incbin "baserom.nds", 0xA29FB0, 0x1930 + .incbin "baserom.nds", 0xA2B8E0, 0x48 + .incbin "baserom.nds", 0xA2B928, 0x48 + .incbin "baserom.nds", 0xA2B970, 0x1930 + .incbin "baserom.nds", 0xA2D2A0, 0x1930 + .incbin "baserom.nds", 0xA2EBD0, 0x1930 + .incbin "baserom.nds", 0xA30500, 0x1930 + .incbin "baserom.nds", 0xA31E30, 0x48 + .incbin "baserom.nds", 0xA31E78, 0x48 + .incbin "baserom.nds", 0xA31EC0, 0x1930 + .incbin "baserom.nds", 0xA337F0, 0x1930 + .incbin "baserom.nds", 0xA35120, 0x1930 + .incbin "baserom.nds", 0xA36A50, 0x1930 + .incbin "baserom.nds", 0xA38380, 0x48 + .incbin "baserom.nds", 0xA383C8, 0x48 + .incbin "baserom.nds", 0xA38410, 0x1930 + .incbin "baserom.nds", 0xA39D40, 0x1930 + .incbin "baserom.nds", 0xA3B670, 0x1930 + .incbin "baserom.nds", 0xA3CFA0, 0x1930 + .incbin "baserom.nds", 0xA3E8D0, 0x48 + .incbin "baserom.nds", 0xA3E918, 0x48 + .incbin "baserom.nds", 0xA3E960, 0x1930 + .incbin "baserom.nds", 0xA40290, 0x1930 + .incbin "baserom.nds", 0xA41BC0, 0x1930 + .incbin "baserom.nds", 0xA434F0, 0x1930 + .incbin "baserom.nds", 0xA44E20, 0x48 + .incbin "baserom.nds", 0xA44E68, 0x48 + .incbin "baserom.nds", 0xA44EB0, 0x1930 + .incbin "baserom.nds", 0xA467E0, 0x1930 + .incbin "baserom.nds", 0xA48110, 0x1930 + .incbin "baserom.nds", 0xA49A40, 0x1930 + .incbin "baserom.nds", 0xA4B370, 0x48 + .incbin "baserom.nds", 0xA4B3B8, 0x48 + .incbin "baserom.nds", 0xA4B400, 0x1930 + .incbin "baserom.nds", 0xA4CD30, 0x1930 + .incbin "baserom.nds", 0xA4E660, 0x1930 + .incbin "baserom.nds", 0xA4FF90, 0x1930 + .incbin "baserom.nds", 0xA518C0, 0x48 + .incbin "baserom.nds", 0xA51908, 0x48 + .incbin "baserom.nds", 0xA51950, 0x1930 + .incbin "baserom.nds", 0xA53280, 0x1930 + .incbin "baserom.nds", 0xA54BB0, 0x1930 + .incbin "baserom.nds", 0xA564E0, 0x1930 + .incbin "baserom.nds", 0xA57E10, 0x48 + .incbin "baserom.nds", 0xA57E58, 0x48 + .incbin "baserom.nds", 0xA57EA0, 0x1930 + .incbin "baserom.nds", 0xA597D0, 0x1930 + .incbin "baserom.nds", 0xA5B100, 0x1930 + .incbin "baserom.nds", 0xA5CA30, 0x1930 + .incbin "baserom.nds", 0xA5E360, 0x48 + .incbin "baserom.nds", 0xA5E3A8, 0x48 + .incbin "baserom.nds", 0xA5E3F0, 0x1930 + .incbin "baserom.nds", 0xA5FD20, 0x1930 + .incbin "baserom.nds", 0xA61650, 0x1930 + .incbin "baserom.nds", 0xA62F80, 0x1930 + .incbin "baserom.nds", 0xA648B0, 0x48 + .incbin "baserom.nds", 0xA648F8, 0x48 + .incbin "baserom.nds", 0xA64940, 0x1930 + .incbin "baserom.nds", 0xA66270, 0x1930 + .incbin "baserom.nds", 0xA67BA0, 0x1930 + .incbin "baserom.nds", 0xA694D0, 0x1930 + .incbin "baserom.nds", 0xA6AE00, 0x48 + .incbin "baserom.nds", 0xA6AE48, 0x48 + .incbin "baserom.nds", 0xA6AE90, 0x1930 + .incbin "baserom.nds", 0xA6C7C0, 0x1930 + .incbin "baserom.nds", 0xA6E0F0, 0x1930 + .incbin "baserom.nds", 0xA6FA20, 0x1930 + .incbin "baserom.nds", 0xA71350, 0x48 + .incbin "baserom.nds", 0xA71398, 0x48 + .incbin "baserom.nds", 0xA713E0, 0x1930 + .incbin "baserom.nds", 0xA72D10, 0x1930 + .incbin "baserom.nds", 0xA74640, 0x1930 + .incbin "baserom.nds", 0xA75F70, 0x1930 + .incbin "baserom.nds", 0xA778A0, 0x48 + .incbin "baserom.nds", 0xA778E8, 0x48 + .incbin "baserom.nds", 0xA77930, 0x1930 + .incbin "baserom.nds", 0xA79260, 0x1930 + .incbin "baserom.nds", 0xA7AB90, 0x1930 + .incbin "baserom.nds", 0xA7C4C0, 0x1930 + .incbin "baserom.nds", 0xA7DDF0, 0x48 + .incbin "baserom.nds", 0xA7DE38, 0x48 + .incbin "baserom.nds", 0xA7DE80, 0x1930 + .incbin "baserom.nds", 0xA7F7B0, 0x1930 + .incbin "baserom.nds", 0xA810E0, 0x1930 + .incbin "baserom.nds", 0xA82A10, 0x1930 + .incbin "baserom.nds", 0xA84340, 0x48 + .incbin "baserom.nds", 0xA84388, 0x48 + .incbin "baserom.nds", 0xA843D0, 0x1930 + .incbin "baserom.nds", 0xA85D00, 0x1930 + .incbin "baserom.nds", 0xA87630, 0x1930 + .incbin "baserom.nds", 0xA88F60, 0x1930 + .incbin "baserom.nds", 0xA8A890, 0x48 + .incbin "baserom.nds", 0xA8A8D8, 0x48 + .incbin "baserom.nds", 0xA8A920, 0x1930 + .incbin "baserom.nds", 0xA8C250, 0x1930 + .incbin "baserom.nds", 0xA8DB80, 0x1930 + .incbin "baserom.nds", 0xA8F4B0, 0x1930 + .incbin "baserom.nds", 0xA90DE0, 0x48 + .incbin "baserom.nds", 0xA90E28, 0x48 + .incbin "baserom.nds", 0xA90E70, 0x1930 + .incbin "baserom.nds", 0xA927A0, 0x1930 + .incbin "baserom.nds", 0xA940D0, 0x1930 + .incbin "baserom.nds", 0xA95A00, 0x1930 + .incbin "baserom.nds", 0xA97330, 0x48 + .incbin "baserom.nds", 0xA97378, 0x48 + .incbin "baserom.nds", 0xA973C0, 0x1930 + .incbin "baserom.nds", 0xA98CF0, 0x1930 + .incbin "baserom.nds", 0xA9A620, 0x1930 + .incbin "baserom.nds", 0xA9BF50, 0x1930 + .incbin "baserom.nds", 0xA9D880, 0x48 + .incbin "baserom.nds", 0xA9D8C8, 0x48 + .incbin "baserom.nds", 0xA9D910, 0x1930 + .incbin "baserom.nds", 0xA9F240, 0x1930 + .incbin "baserom.nds", 0xAA0B70, 0x1930 + .incbin "baserom.nds", 0xAA24A0, 0x1930 + .incbin "baserom.nds", 0xAA3DD0, 0x48 + .incbin "baserom.nds", 0xAA3E18, 0x48 + .incbin "baserom.nds", 0xAA3E60, 0x0 + .incbin "baserom.nds", 0xAA3E60, 0x1930 + .incbin "baserom.nds", 0xAA5790, 0x0 + .incbin "baserom.nds", 0xAA5790, 0x1930 + .incbin "baserom.nds", 0xAA70C0, 0x48 + .incbin "baserom.nds", 0xAA7108, 0x48 + .incbin "baserom.nds", 0xAA7150, 0x1930 + .incbin "baserom.nds", 0xAA8A80, 0x1930 + .incbin "baserom.nds", 0xAAA3B0, 0x1930 + .incbin "baserom.nds", 0xAABCE0, 0x1930 + .incbin "baserom.nds", 0xAAD610, 0x48 + .incbin "baserom.nds", 0xAAD658, 0x48 + .incbin "baserom.nds", 0xAAD6A0, 0x1930 + .incbin "baserom.nds", 0xAAEFD0, 0x1930 + .incbin "baserom.nds", 0xAB0900, 0x1930 + .incbin "baserom.nds", 0xAB2230, 0x1930 + .incbin "baserom.nds", 0xAB3B60, 0x48 + .incbin "baserom.nds", 0xAB3BA8, 0x48 + .incbin "baserom.nds", 0xAB3BF0, 0x1930 + .incbin "baserom.nds", 0xAB5520, 0x1930 + .incbin "baserom.nds", 0xAB6E50, 0x1930 + .incbin "baserom.nds", 0xAB8780, 0x1930 + .incbin "baserom.nds", 0xABA0B0, 0x48 + .incbin "baserom.nds", 0xABA0F8, 0x48 + .incbin "baserom.nds", 0xABA140, 0x1930 + .incbin "baserom.nds", 0xABBA70, 0x1930 + .incbin "baserom.nds", 0xABD3A0, 0x1930 + .incbin "baserom.nds", 0xABECD0, 0x1930 + .incbin "baserom.nds", 0xAC0600, 0x48 + .incbin "baserom.nds", 0xAC0648, 0x48 + .incbin "baserom.nds", 0xAC0690, 0x1930 + .incbin "baserom.nds", 0xAC1FC0, 0x1930 + .incbin "baserom.nds", 0xAC38F0, 0x1930 + .incbin "baserom.nds", 0xAC5220, 0x1930 + .incbin "baserom.nds", 0xAC6B50, 0x48 + .incbin "baserom.nds", 0xAC6B98, 0x48 + .incbin "baserom.nds", 0xAC6BE0, 0x1930 + .incbin "baserom.nds", 0xAC8510, 0x1930 + .incbin "baserom.nds", 0xAC9E40, 0x1930 + .incbin "baserom.nds", 0xACB770, 0x1930 + .incbin "baserom.nds", 0xACD0A0, 0x48 + .incbin "baserom.nds", 0xACD0E8, 0x48 + .incbin "baserom.nds", 0xACD130, 0x1930 + .incbin "baserom.nds", 0xACEA60, 0x1930 + .incbin "baserom.nds", 0xAD0390, 0x1930 + .incbin "baserom.nds", 0xAD1CC0, 0x1930 + .incbin "baserom.nds", 0xAD35F0, 0x48 + .incbin "baserom.nds", 0xAD3638, 0x48 + .incbin "baserom.nds", 0xAD3680, 0x1930 + .incbin "baserom.nds", 0xAD4FB0, 0x1930 + .incbin "baserom.nds", 0xAD68E0, 0x1930 + .incbin "baserom.nds", 0xAD8210, 0x1930 + .incbin "baserom.nds", 0xAD9B40, 0x48 + .incbin "baserom.nds", 0xAD9B88, 0x48 + .incbin "baserom.nds", 0xAD9BD0, 0x1930 + .incbin "baserom.nds", 0xADB500, 0x1930 + .incbin "baserom.nds", 0xADCE30, 0x1930 + .incbin "baserom.nds", 0xADE760, 0x1930 + .incbin "baserom.nds", 0xAE0090, 0x48 + .incbin "baserom.nds", 0xAE00D8, 0x48 + .incbin "baserom.nds", 0xAE0120, 0x1930 + .incbin "baserom.nds", 0xAE1A50, 0x1930 + .incbin "baserom.nds", 0xAE3380, 0x1930 + .incbin "baserom.nds", 0xAE4CB0, 0x1930 + .incbin "baserom.nds", 0xAE65E0, 0x48 + .incbin "baserom.nds", 0xAE6628, 0x48 + .incbin "baserom.nds", 0xAE6670, 0x1930 + .incbin "baserom.nds", 0xAE7FA0, 0x1930 + .incbin "baserom.nds", 0xAE98D0, 0x1930 + .incbin "baserom.nds", 0xAEB200, 0x1930 + .incbin "baserom.nds", 0xAECB30, 0x48 + .incbin "baserom.nds", 0xAECB78, 0x48 + .incbin "baserom.nds", 0xAECBC0, 0x0 + .incbin "baserom.nds", 0xAECBC0, 0x1930 + .incbin "baserom.nds", 0xAEE4F0, 0x0 + .incbin "baserom.nds", 0xAEE4F0, 0x1930 + .incbin "baserom.nds", 0xAEFE20, 0x48 + .incbin "baserom.nds", 0xAEFE68, 0x48 + .incbin "baserom.nds", 0xAEFEB0, 0x0 + .incbin "baserom.nds", 0xAEFEB0, 0x1930 + .incbin "baserom.nds", 0xAF17E0, 0x0 + .incbin "baserom.nds", 0xAF17E0, 0x1930 + .incbin "baserom.nds", 0xAF3110, 0x48 + .incbin "baserom.nds", 0xAF3158, 0x48 + .incbin "baserom.nds", 0xAF31A0, 0x1930 + .incbin "baserom.nds", 0xAF4AD0, 0x1930 + .incbin "baserom.nds", 0xAF6400, 0x1930 + .incbin "baserom.nds", 0xAF7D30, 0x1930 + .incbin "baserom.nds", 0xAF9660, 0x48 + .incbin "baserom.nds", 0xAF96A8, 0x48 + .incbin "baserom.nds", 0xAF96F0, 0x1930 + .incbin "baserom.nds", 0xAFB020, 0x1930 + .incbin "baserom.nds", 0xAFC950, 0x1930 + .incbin "baserom.nds", 0xAFE280, 0x1930 + .incbin "baserom.nds", 0xAFFBB0, 0x48 + .incbin "baserom.nds", 0xAFFBF8, 0x48 + .incbin "baserom.nds", 0xAFFC40, 0x1930 + .incbin "baserom.nds", 0xB01570, 0x0 + .incbin "baserom.nds", 0xB01570, 0x1930 + .incbin "baserom.nds", 0xB02EA0, 0x0 + .incbin "baserom.nds", 0xB02EA0, 0x48 + .incbin "baserom.nds", 0xB02EE8, 0x48 + .incbin "baserom.nds", 0xB02F30, 0x0 + .incbin "baserom.nds", 0xB02F30, 0x1930 + .incbin "baserom.nds", 0xB04860, 0x0 + .incbin "baserom.nds", 0xB04860, 0x1930 + .incbin "baserom.nds", 0xB06190, 0x48 + .incbin "baserom.nds", 0xB061D8, 0x48 + .incbin "baserom.nds", 0xB06220, 0x0 + .incbin "baserom.nds", 0xB06220, 0x1930 + .incbin "baserom.nds", 0xB07B50, 0x0 + .incbin "baserom.nds", 0xB07B50, 0x1930 + .incbin "baserom.nds", 0xB09480, 0x48 + .incbin "baserom.nds", 0xB094C8, 0x48 + .incbin "baserom.nds", 0xB09510, 0x0 + .incbin "baserom.nds", 0xB09510, 0x1930 + .incbin "baserom.nds", 0xB0AE40, 0x0 + .incbin "baserom.nds", 0xB0AE40, 0x1930 + .incbin "baserom.nds", 0xB0C770, 0x48 + .incbin "baserom.nds", 0xB0C7B8, 0x48 + .incbin "baserom.nds", 0xB0C800, 0x0 + .incbin "baserom.nds", 0xB0C800, 0x1930 + .incbin "baserom.nds", 0xB0E130, 0x0 + .incbin "baserom.nds", 0xB0E130, 0x1930 + .incbin "baserom.nds", 0xB0FA60, 0x48 + .incbin "baserom.nds", 0xB0FAA8, 0x48 + .incbin "baserom.nds", 0xB0FAF0, 0x0 + .incbin "baserom.nds", 0xB0FAF0, 0x1930 + .incbin "baserom.nds", 0xB11420, 0x0 + .incbin "baserom.nds", 0xB11420, 0x1930 + .incbin "baserom.nds", 0xB12D50, 0x48 + .incbin "baserom.nds", 0xB12D98, 0x48 + .incbin "baserom.nds", 0xB12DE0, 0x0 + .incbin "baserom.nds", 0xB12DE0, 0x1930 + .incbin "baserom.nds", 0xB14710, 0x0 + .incbin "baserom.nds", 0xB14710, 0x1930 + .incbin "baserom.nds", 0xB16040, 0x48 + .incbin "baserom.nds", 0xB16088, 0x48 + .incbin "baserom.nds", 0xB160D0, 0x1930 + .incbin "baserom.nds", 0xB17A00, 0x1930 + .incbin "baserom.nds", 0xB19330, 0x1930 + .incbin "baserom.nds", 0xB1AC60, 0x1930 + .incbin "baserom.nds", 0xB1C590, 0x48 + .incbin "baserom.nds", 0xB1C5D8, 0x48 + .incbin "baserom.nds", 0xB1C620, 0x0 + .incbin "baserom.nds", 0xB1C620, 0x1930 + .incbin "baserom.nds", 0xB1DF50, 0x0 + .incbin "baserom.nds", 0xB1DF50, 0x1930 + .incbin "baserom.nds", 0xB1F880, 0x48 + .incbin "baserom.nds", 0xB1F8C8, 0x48 + .incbin "baserom.nds", 0xB1F910, 0x0 + .incbin "baserom.nds", 0xB1F910, 0x1930 + .incbin "baserom.nds", 0xB21240, 0x0 + .incbin "baserom.nds", 0xB21240, 0x1930 + .incbin "baserom.nds", 0xB22B70, 0x48 + .incbin "baserom.nds", 0xB22BB8, 0x48 + .incbin "baserom.nds", 0xB22C00, 0x1930 + .incbin "baserom.nds", 0xB24530, 0x0 + .incbin "baserom.nds", 0xB24530, 0x1930 + .incbin "baserom.nds", 0xB25E60, 0x0 + .incbin "baserom.nds", 0xB25E60, 0x48 + .incbin "baserom.nds", 0xB25EA8, 0x48 + .incbin "baserom.nds", 0xB25EF0, 0x0 + .incbin "baserom.nds", 0xB25EF0, 0x1930 + .incbin "baserom.nds", 0xB27820, 0x0 + .incbin "baserom.nds", 0xB27820, 0x1930 + .incbin "baserom.nds", 0xB29150, 0x48 + .incbin "baserom.nds", 0xB29198, 0x48 + .incbin "baserom.nds", 0xB291E0, 0x0 + .incbin "baserom.nds", 0xB291E0, 0x1930 + .incbin "baserom.nds", 0xB2AB10, 0x0 + .incbin "baserom.nds", 0xB2AB10, 0x1930 + .incbin "baserom.nds", 0xB2C440, 0x48 + .incbin "baserom.nds", 0xB2C488, 0x48 + .incbin "baserom.nds", 0xB2C4D0, 0x0 + .incbin "baserom.nds", 0xB2C4D0, 0x1930 + .incbin "baserom.nds", 0xB2DE00, 0x0 + .incbin "baserom.nds", 0xB2DE00, 0x1930 + .incbin "baserom.nds", 0xB2F730, 0x48 + .incbin "baserom.nds", 0xB2F778, 0x48 + .incbin "baserom.nds", 0xB2F7C0, 0x0 + .incbin "baserom.nds", 0xB2F7C0, 0x1930 + .incbin "baserom.nds", 0xB310F0, 0x0 + .incbin "baserom.nds", 0xB310F0, 0x1930 + .incbin "baserom.nds", 0xB32A20, 0x48 + .incbin "baserom.nds", 0xB32A68, 0x48 + .incbin "baserom.nds", 0xB32AB0, 0x0 + .incbin "baserom.nds", 0xB32AB0, 0x1930 + .incbin "baserom.nds", 0xB343E0, 0x0 + .incbin "baserom.nds", 0xB343E0, 0x1930 + .incbin "baserom.nds", 0xB35D10, 0x48 + .incbin "baserom.nds", 0xB35D58, 0x48 + .balign 4, 255 diff --git a/narc/pokemon_trade/fld_trade.narc.s b/narc/pokemon_trade/fld_trade.narc.s new file mode 100644 index 00000000..2cc55466 --- /dev/null +++ b/narc/pokemon_trade/fld_trade.narc.s @@ -0,0 +1,34 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00000194 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000002C ; chunk size + .short 4 ; number of files + .balign 4 + .word 0x00000000, 0x00000050 + .word 0x00000050, 0x000000A0 + .word 0x000000A0, 0x000000F0 + .word 0x000000F0, 0x00000140 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00000148 ; chunk size + .incbin "baserom.nds", 0x0, 0x50 + .incbin "baserom.nds", 0x50, 0x50 + .incbin "baserom.nds", 0xA0, 0x50 + .incbin "baserom.nds", 0xF0, 0x50 + .balign 4, 255 diff --git a/narc/poketool/pokezukan.narc.s b/narc/poketool/pokezukan.narc.s new file mode 100644 index 00000000..d93fa295 --- /dev/null +++ b/narc/poketool/pokezukan.narc.s @@ -0,0 +1,28 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00000418 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000014 ; chunk size + .short 1 ; number of files + .balign 4 + .word 0x00000000, 0x000003DC + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000003E4 ; chunk size + .incbin "baserom.nds", 0x0, 0x3DC + .balign 4, 255 diff --git a/narc/poketool/shinzukan.narc.s b/narc/poketool/shinzukan.narc.s new file mode 100644 index 00000000..57c1ff48 --- /dev/null +++ b/narc/poketool/shinzukan.narc.s @@ -0,0 +1,28 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0000016C ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000014 ; chunk size + .short 1 ; number of files + .balign 4 + .word 0x00000000, 0x00000130 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00000138 ; chunk size + .incbin "baserom.nds", 0x0, 0x130 + .balign 4, 255 diff --git a/narc/pt_debug/debug_particle.narc.s b/narc/pt_debug/debug_particle.narc.s new file mode 100644 index 00000000..262cd41f --- /dev/null +++ b/narc/pt_debug/debug_particle.narc.s @@ -0,0 +1,30 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00000BC8 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000001C ; chunk size + .short 2 ; number of files + .balign 4 + .word 0x00000000, 0x0000029C + .word 0x0000029C, 0x00000B84 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00000B8C ; chunk size + .incbin "baserom.nds", 0x0, 0x29C + .incbin "baserom.nds", 0x29C, 0x8E8 + .balign 4, 255 diff --git a/narc/resource/trial/trial.narc.s b/narc/resource/trial/trial.narc.s new file mode 100644 index 00000000..bed3819f --- /dev/null +++ b/narc/resource/trial/trial.narc.s @@ -0,0 +1,42 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0000DBE4 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000004C ; chunk size + .short 8 ; number of files + .balign 4 + .word 0x00000000, 0x00000228 + .word 0x00000228, 0x00006268 + .word 0x00006268, 0x00006A8C + .word 0x00006A8C, 0x00006CB4 + .word 0x00006CB4, 0x0000CCF4 + .word 0x0000CCF4, 0x0000D518 + .word 0x0000D518, 0x0000D740 + .word 0x0000D740, 0x0000DB70 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0000DB78 ; chunk size + .incbin "baserom.nds", 0x0, 0x228 + .incbin "baserom.nds", 0x228, 0x6040 + .incbin "baserom.nds", 0x6268, 0x824 + .incbin "baserom.nds", 0x6A8C, 0x228 + .incbin "baserom.nds", 0x6CB4, 0x6040 + .incbin "baserom.nds", 0xCCF4, 0x824 + .incbin "baserom.nds", 0xD518, 0x228 + .incbin "baserom.nds", 0xD740, 0x430 + .balign 4, 255 diff --git a/narc/resource/zukan/zukan.narc.s b/narc/resource/zukan/zukan.narc.s new file mode 100644 index 00000000..25216280 --- /dev/null +++ b/narc/resource/zukan/zukan.narc.s @@ -0,0 +1,286 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00011D1C ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000041C ; chunk size + .short 130 ; number of files + .balign 4 + .word 0x00000000, 0x00000228 + .word 0x00000228, 0x00000450 + .word 0x00000450, 0x00000678 + .word 0x00000678, 0x000008A0 + .word 0x000008A0, 0x00000AC8 + .word 0x00000AC8, 0x00000CF0 + .word 0x00000CF0, 0x00000F18 + .word 0x00000F18, 0x00001140 + .word 0x00001140, 0x00001368 + .word 0x00001368, 0x00001590 + .word 0x00001590, 0x000017B8 + .word 0x000017B8, 0x000019E0 + .word 0x000019E0, 0x00001C08 + .word 0x00001C08, 0x00001E30 + .word 0x00001E30, 0x00002058 + .word 0x00002058, 0x00002280 + .word 0x00002280, 0x000024A8 + .word 0x000024A8, 0x000026D0 + .word 0x000026D0, 0x000028F8 + .word 0x000028F8, 0x00002B20 + .word 0x00002B20, 0x00002D48 + .word 0x00002D48, 0x00002F70 + .word 0x00002F70, 0x00003198 + .word 0x00003198, 0x000033C0 + .word 0x000033C0, 0x000035E8 + .word 0x000035E8, 0x00003810 + .word 0x00003810, 0x00003A38 + .word 0x00003A38, 0x00003CFC + .word 0x00003CFC, 0x00004597 + .word 0x00004598, 0x000048F5 + .word 0x000048F8, 0x00004A35 + .word 0x00004A38, 0x00004B75 + .word 0x00004B78, 0x00004C3D + .word 0x00004C40, 0x000061BB + .word 0x000061BC, 0x0000744B + .word 0x0000744C, 0x00007829 + .word 0x0000782C, 0x0000791A + .word 0x0000791C, 0x00007A16 + .word 0x00007A18, 0x00007B0D + .word 0x00007B10, 0x00007B98 + .word 0x00007B98, 0x00007D42 + .word 0x00007D44, 0x00007ED9 + .word 0x00007EDC, 0x00008089 + .word 0x0000808C, 0x0000820E + .word 0x00008210, 0x00008272 + .word 0x00008274, 0x000082E1 + .word 0x000082E4, 0x0000835E + .word 0x00008360, 0x000083DB + .word 0x000083DC, 0x00008422 + .word 0x00008424, 0x00008525 + .word 0x00008528, 0x00008613 + .word 0x00008614, 0x00008697 + .word 0x00008698, 0x00008708 + .word 0x00008708, 0x0000879E + .word 0x000087A0, 0x0000882A + .word 0x0000882C, 0x000088B5 + .word 0x000088B8, 0x0000894B + .word 0x0000894C, 0x00008A3F + .word 0x00008A40, 0x00008B75 + .word 0x00008B78, 0x00008C5C + .word 0x00008C5C, 0x00008CCC + .word 0x00008CCC, 0x00008E24 + .word 0x00008E24, 0x00008F0B + .word 0x00008F0C, 0x00008F7C + .word 0x00008F7C, 0x00009305 + .word 0x00009308, 0x00009337 + .word 0x00009338, 0x00009380 + .word 0x00009380, 0x000093AF + .word 0x000093B0, 0x000093E3 + .word 0x000093E4, 0x0000960C + .word 0x0000960C, 0x00009717 + .word 0x00009718, 0x00009B10 + .word 0x00009B10, 0x00009C42 + .word 0x00009C44, 0x00009D99 + .word 0x00009D9C, 0x00009EF1 + .word 0x00009EF4, 0x00009FED + .word 0x00009FF0, 0x0000A071 + .word 0x0000A074, 0x0000A0DE + .word 0x0000A0E0, 0x0000A2E4 + .word 0x0000A2E4, 0x0000A456 + .word 0x0000A458, 0x0000A5CF + .word 0x0000A5D0, 0x0000AED3 + .word 0x0000AED4, 0x0000B21E + .word 0x0000B220, 0x0000B31D + .word 0x0000B320, 0x0000BB91 + .word 0x0000BB94, 0x0000BBF0 + .word 0x0000BBF0, 0x0000BC4B + .word 0x0000BC4C, 0x0000BCB0 + .word 0x0000BCB0, 0x0000BE64 + .word 0x0000BE64, 0x0000BFDB + .word 0x0000BFDC, 0x0000CAE4 + .word 0x0000CAE4, 0x0000CBDD + .word 0x0000CBE0, 0x0000CC9F + .word 0x0000CCA0, 0x0000D40A + .word 0x0000D40C, 0x0000D56A + .word 0x0000D56C, 0x0000D673 + .word 0x0000D674, 0x0000DA37 + .word 0x0000DA38, 0x0000DB68 + .word 0x0000DB68, 0x0000DCDB + .word 0x0000DCDC, 0x0000DF08 + .word 0x0000DF08, 0x0000E099 + .word 0x0000E09C, 0x0000E140 + .word 0x0000E140, 0x0000E5B5 + .word 0x0000E5B8, 0x0000E632 + .word 0x0000E634, 0x0000E6AF + .word 0x0000E6B0, 0x0000ED97 + .word 0x0000ED98, 0x0000EE6C + .word 0x0000EE6C, 0x0000EF1D + .word 0x0000EF20, 0x0000EFD6 + .word 0x0000EFD8, 0x0000F034 + .word 0x0000F034, 0x0000F08D + .word 0x0000F090, 0x0000F34A + .word 0x0000F34C, 0x0000F491 + .word 0x0000F494, 0x0000FEA5 + .word 0x0000FEA8, 0x00010036 + .word 0x00010038, 0x000100A2 + .word 0x000100A4, 0x00010112 + .word 0x00010114, 0x00010172 + .word 0x00010174, 0x0001024F + .word 0x00010250, 0x000102AB + .word 0x000102AC, 0x00010335 + .word 0x00010338, 0x000103CC + .word 0x000103CC, 0x000107AE + .word 0x000107B0, 0x0001085D + .word 0x00010860, 0x0001097D + .word 0x00010980, 0x00010D64 + .word 0x00010D64, 0x00010F63 + .word 0x00010F64, 0x0001116A + .word 0x0001116C, 0x000114CE + .word 0x000114D0, 0x000118D5 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000118E0 ; chunk size + .incbin "baserom.nds", 0x0, 0x228 + .incbin "baserom.nds", 0x228, 0x228 + .incbin "baserom.nds", 0x450, 0x228 + .incbin "baserom.nds", 0x678, 0x228 + .incbin "baserom.nds", 0x8A0, 0x228 + .incbin "baserom.nds", 0xAC8, 0x228 + .incbin "baserom.nds", 0xCF0, 0x228 + .incbin "baserom.nds", 0xF18, 0x228 + .incbin "baserom.nds", 0x1140, 0x228 + .incbin "baserom.nds", 0x1368, 0x228 + .incbin "baserom.nds", 0x1590, 0x228 + .incbin "baserom.nds", 0x17B8, 0x228 + .incbin "baserom.nds", 0x19E0, 0x228 + .incbin "baserom.nds", 0x1C08, 0x228 + .incbin "baserom.nds", 0x1E30, 0x228 + .incbin "baserom.nds", 0x2058, 0x228 + .incbin "baserom.nds", 0x2280, 0x228 + .incbin "baserom.nds", 0x24A8, 0x228 + .incbin "baserom.nds", 0x26D0, 0x228 + .incbin "baserom.nds", 0x28F8, 0x228 + .incbin "baserom.nds", 0x2B20, 0x228 + .incbin "baserom.nds", 0x2D48, 0x228 + .incbin "baserom.nds", 0x2F70, 0x228 + .incbin "baserom.nds", 0x3198, 0x228 + .incbin "baserom.nds", 0x33C0, 0x228 + .incbin "baserom.nds", 0x35E8, 0x228 + .incbin "baserom.nds", 0x3810, 0x228 + .incbin "baserom.nds", 0x3A38, 0x2C4 + .incbin "baserom.nds", 0x3CFC, 0x89B + .incbin "baserom.nds", 0x4598, 0x35D + .incbin "baserom.nds", 0x48F8, 0x13D + .incbin "baserom.nds", 0x4A38, 0x13D + .incbin "baserom.nds", 0x4B78, 0xC5 + .incbin "baserom.nds", 0x4C40, 0x157B + .incbin "baserom.nds", 0x61BC, 0x128F + .incbin "baserom.nds", 0x744C, 0x3DD + .incbin "baserom.nds", 0x782C, 0xEE + .incbin "baserom.nds", 0x791C, 0xFA + .incbin "baserom.nds", 0x7A18, 0xF5 + .incbin "baserom.nds", 0x7B10, 0x88 + .incbin "baserom.nds", 0x7B98, 0x1AA + .incbin "baserom.nds", 0x7D44, 0x195 + .incbin "baserom.nds", 0x7EDC, 0x1AD + .incbin "baserom.nds", 0x808C, 0x182 + .incbin "baserom.nds", 0x8210, 0x62 + .incbin "baserom.nds", 0x8274, 0x6D + .incbin "baserom.nds", 0x82E4, 0x7A + .incbin "baserom.nds", 0x8360, 0x7B + .incbin "baserom.nds", 0x83DC, 0x46 + .incbin "baserom.nds", 0x8424, 0x101 + .incbin "baserom.nds", 0x8528, 0xEB + .incbin "baserom.nds", 0x8614, 0x83 + .incbin "baserom.nds", 0x8698, 0x70 + .incbin "baserom.nds", 0x8708, 0x96 + .incbin "baserom.nds", 0x87A0, 0x8A + .incbin "baserom.nds", 0x882C, 0x89 + .incbin "baserom.nds", 0x88B8, 0x93 + .incbin "baserom.nds", 0x894C, 0xF3 + .incbin "baserom.nds", 0x8A40, 0x135 + .incbin "baserom.nds", 0x8B78, 0xE4 + .incbin "baserom.nds", 0x8C5C, 0x70 + .incbin "baserom.nds", 0x8CCC, 0x158 + .incbin "baserom.nds", 0x8E24, 0xE7 + .incbin "baserom.nds", 0x8F0C, 0x70 + .incbin "baserom.nds", 0x8F7C, 0x389 + .incbin "baserom.nds", 0x9308, 0x2F + .incbin "baserom.nds", 0x9338, 0x48 + .incbin "baserom.nds", 0x9380, 0x2F + .incbin "baserom.nds", 0x93B0, 0x33 + .incbin "baserom.nds", 0x93E4, 0x228 + .incbin "baserom.nds", 0x960C, 0x10B + .incbin "baserom.nds", 0x9718, 0x3F8 + .incbin "baserom.nds", 0x9B10, 0x132 + .incbin "baserom.nds", 0x9C44, 0x155 + .incbin "baserom.nds", 0x9D9C, 0x155 + .incbin "baserom.nds", 0x9EF4, 0xF9 + .incbin "baserom.nds", 0x9FF0, 0x81 + .incbin "baserom.nds", 0xA074, 0x6A + .incbin "baserom.nds", 0xA0E0, 0x204 + .incbin "baserom.nds", 0xA2E4, 0x172 + .incbin "baserom.nds", 0xA458, 0x177 + .incbin "baserom.nds", 0xA5D0, 0x903 + .incbin "baserom.nds", 0xAED4, 0x34A + .incbin "baserom.nds", 0xB220, 0xFD + .incbin "baserom.nds", 0xB320, 0x871 + .incbin "baserom.nds", 0xBB94, 0x5C + .incbin "baserom.nds", 0xBBF0, 0x5B + .incbin "baserom.nds", 0xBC4C, 0x64 + .incbin "baserom.nds", 0xBCB0, 0x1B4 + .incbin "baserom.nds", 0xBE64, 0x177 + .incbin "baserom.nds", 0xBFDC, 0xB08 + .incbin "baserom.nds", 0xCAE4, 0xF9 + .incbin "baserom.nds", 0xCBE0, 0xBF + .incbin "baserom.nds", 0xCCA0, 0x76A + .incbin "baserom.nds", 0xD40C, 0x15E + .incbin "baserom.nds", 0xD56C, 0x107 + .incbin "baserom.nds", 0xD674, 0x3C3 + .incbin "baserom.nds", 0xDA38, 0x130 + .incbin "baserom.nds", 0xDB68, 0x173 + .incbin "baserom.nds", 0xDCDC, 0x22C + .incbin "baserom.nds", 0xDF08, 0x191 + .incbin "baserom.nds", 0xE09C, 0xA4 + .incbin "baserom.nds", 0xE140, 0x475 + .incbin "baserom.nds", 0xE5B8, 0x7A + .incbin "baserom.nds", 0xE634, 0x7B + .incbin "baserom.nds", 0xE6B0, 0x6E7 + .incbin "baserom.nds", 0xED98, 0xD4 + .incbin "baserom.nds", 0xEE6C, 0xB1 + .incbin "baserom.nds", 0xEF20, 0xB6 + .incbin "baserom.nds", 0xEFD8, 0x5C + .incbin "baserom.nds", 0xF034, 0x59 + .incbin "baserom.nds", 0xF090, 0x2BA + .incbin "baserom.nds", 0xF34C, 0x145 + .incbin "baserom.nds", 0xF494, 0xA11 + .incbin "baserom.nds", 0xFEA8, 0x18E + .incbin "baserom.nds", 0x10038, 0x6A + .incbin "baserom.nds", 0x100A4, 0x6E + .incbin "baserom.nds", 0x10114, 0x5E + .incbin "baserom.nds", 0x10174, 0xDB + .incbin "baserom.nds", 0x10250, 0x5B + .incbin "baserom.nds", 0x102AC, 0x89 + .incbin "baserom.nds", 0x10338, 0x94 + .incbin "baserom.nds", 0x103CC, 0x3E2 + .incbin "baserom.nds", 0x107B0, 0xAD + .incbin "baserom.nds", 0x10860, 0x11D + .incbin "baserom.nds", 0x10980, 0x3E4 + .incbin "baserom.nds", 0x10D64, 0x1FF + .incbin "baserom.nds", 0x10F64, 0x206 + .incbin "baserom.nds", 0x1116C, 0x362 + .incbin "baserom.nds", 0x114D0, 0x405 + .balign 4, 255 diff --git a/narc/scenario/scr_msg.narc.s b/narc/scenario/scr_msg.narc.s new file mode 100644 index 00000000..f1aee69c --- /dev/null +++ b/narc/scenario/scr_msg.narc.s @@ -0,0 +1,58 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00001A5C ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000008C ; chunk size + .short 16 ; number of files + .balign 4 + .word 0x00000000, 0x000008A0 + .word 0x000008A0, 0x00000A52 + .word 0x00000A54, 0x00000AB0 + .word 0x00000AB0, 0x00000D0C + .word 0x00000D0C, 0x00000E14 + .word 0x00000E14, 0x00000EF6 + .word 0x00000EF8, 0x00000F86 + .word 0x00000F88, 0x00001016 + .word 0x00001018, 0x000010AE + .word 0x000010B0, 0x00001148 + .word 0x00001148, 0x0000129C + .word 0x0000129C, 0x00001326 + .word 0x00001328, 0x000013D8 + .word 0x000013D8, 0x00001408 + .word 0x00001408, 0x000014E4 + .word 0x000014E4, 0x000019A8 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000019B0 ; chunk size + .incbin "baserom.nds", 0x0, 0x8A0 + .incbin "baserom.nds", 0x8A0, 0x1B2 + .incbin "baserom.nds", 0xA54, 0x5C + .incbin "baserom.nds", 0xAB0, 0x25C + .incbin "baserom.nds", 0xD0C, 0x108 + .incbin "baserom.nds", 0xE14, 0xE2 + .incbin "baserom.nds", 0xEF8, 0x8E + .incbin "baserom.nds", 0xF88, 0x8E + .incbin "baserom.nds", 0x1018, 0x96 + .incbin "baserom.nds", 0x10B0, 0x98 + .incbin "baserom.nds", 0x1148, 0x154 + .incbin "baserom.nds", 0x129C, 0x8A + .incbin "baserom.nds", 0x1328, 0xB0 + .incbin "baserom.nds", 0x13D8, 0x30 + .incbin "baserom.nds", 0x1408, 0xDC + .incbin "baserom.nds", 0x14E4, 0x4C4 + .balign 4, 255 diff --git a/narc/script/scr_seq_release.narc.s b/narc/script/scr_seq_release.narc.s new file mode 100644 index 00000000..003dfcd0 --- /dev/null +++ b/narc/script/scr_seq_release.narc.s @@ -0,0 +1,2128 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x000359D8 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000020E4 ; chunk size + .short 1051 ; number of files + .balign 4 + .word 0x00000000, 0x00000060 + .word 0x00000060, 0x00000134 + .word 0x00000134, 0x000011B0 + .word 0x000011B0, 0x00001214 + .word 0x00001214, 0x00001230 + .word 0x00001230, 0x00001288 + .word 0x00001288, 0x00001290 + .word 0x00001290, 0x00001298 + .word 0x00001298, 0x00001480 + .word 0x00001480, 0x000014F8 + .word 0x000014F8, 0x00001B8C + .word 0x00001B8C, 0x000022A8 + .word 0x000022A8, 0x00002370 + .word 0x00002370, 0x000024C0 + .word 0x000024C0, 0x000024F0 + .word 0x000024F0, 0x00002B8C + .word 0x00002B8C, 0x00002C20 + .word 0x00002C20, 0x00002CA0 + .word 0x00002CA0, 0x00002F44 + .word 0x00002F44, 0x00002F74 + .word 0x00002F74, 0x00002FA4 + .word 0x00002FA4, 0x00002FC0 + .word 0x00002FC0, 0x00002FC8 + .word 0x00002FC8, 0x00002FE4 + .word 0x00002FE4, 0x000030A8 + .word 0x000030A8, 0x000030D8 + .word 0x000030D8, 0x00003108 + .word 0x00003108, 0x00003168 + .word 0x00003168, 0x00003528 + .word 0x00003528, 0x00003944 + .word 0x00003944, 0x00003998 + .word 0x00003998, 0x000039F8 + .word 0x000039F8, 0x00003A28 + .word 0x00003A28, 0x00003A44 + .word 0x00003A44, 0x000043A0 + .word 0x000043A0, 0x00004410 + .word 0x00004410, 0x000045A4 + .word 0x000045A4, 0x000045FC + .word 0x000045FC, 0x00004604 + .word 0x00004604, 0x0000460C + .word 0x0000460C, 0x000046AC + .word 0x000046AC, 0x0000471C + .word 0x0000471C, 0x00004D2C + .word 0x00004D2C, 0x00004DA8 + .word 0x00004DA8, 0x00004EE4 + .word 0x00004EE4, 0x00005084 + .word 0x00005084, 0x0000536C + .word 0x0000536C, 0x00005398 + .word 0x00005398, 0x00005AA0 + .word 0x00005AA0, 0x00005B04 + .word 0x00005B04, 0x00005C90 + .word 0x00005C90, 0x00005D94 + .word 0x00005D94, 0x00005D9C + .word 0x00005D9C, 0x00005DB8 + .word 0x00005DB8, 0x00005E00 + .word 0x00005E00, 0x00005EB8 + .word 0x00005EB8, 0x00005F48 + .word 0x00005F48, 0x00005F90 + .word 0x00005F90, 0x00006064 + .word 0x00006064, 0x00006110 + .word 0x00006110, 0x00006158 + .word 0x00006158, 0x00006160 + .word 0x00006160, 0x00006190 + .word 0x00006190, 0x000066F0 + .word 0x000066F0, 0x00006744 + .word 0x00006744, 0x0000678C + .word 0x0000678C, 0x00006824 + .word 0x00006824, 0x00006854 + .word 0x00006854, 0x00006870 + .word 0x00006870, 0x00006FBC + .word 0x00006FBC, 0x0000702C + .word 0x0000702C, 0x000070E4 + .word 0x000070E4, 0x00007458 + .word 0x00007458, 0x00007590 + .word 0x00007590, 0x000075AC + .word 0x000075AC, 0x000075B4 + .word 0x000075B4, 0x0000768C + .word 0x0000768C, 0x000076BC + .word 0x000076BC, 0x000076EC + .word 0x000076EC, 0x00007708 + .word 0x00007708, 0x00007924 + .word 0x00007924, 0x00007B48 + .word 0x00007B48, 0x00007BC0 + .word 0x00007BC0, 0x00007C20 + .word 0x00007C20, 0x00007C80 + .word 0x00007C80, 0x00007D9C + .word 0x00007D9C, 0x00007DE8 + .word 0x00007DE8, 0x00007E64 + .word 0x00007E64, 0x00007E94 + .word 0x00007E94, 0x000085D4 + .word 0x000085D4, 0x0000952C + .word 0x0000952C, 0x00009590 + .word 0x00009590, 0x00009684 + .word 0x00009684, 0x000096C4 + .word 0x000096C4, 0x00009704 + .word 0x00009704, 0x00009744 + .word 0x00009744, 0x00009924 + .word 0x00009924, 0x00009994 + .word 0x00009994, 0x0000999C + .word 0x0000999C, 0x000099A4 + .word 0x000099A4, 0x000099D4 + .word 0x000099D4, 0x00009A64 + .word 0x00009A64, 0x00009B34 + .word 0x00009B34, 0x00009CE8 + .word 0x00009CE8, 0x00009D60 + .word 0x00009D60, 0x00009DB4 + .word 0x00009DB4, 0x00009E08 + .word 0x00009E08, 0x00009E24 + .word 0x00009E24, 0x00009E84 + .word 0x00009E84, 0x00009F60 + .word 0x00009F60, 0x00009FC0 + .word 0x00009FC0, 0x0000A090 + .word 0x0000A090, 0x0000A1CC + .word 0x0000A1CC, 0x0000A274 + .word 0x0000A274, 0x0000A700 + .word 0x0000A700, 0x0000A708 + .word 0x0000A708, 0x0000A768 + .word 0x0000A768, 0x0000A7F4 + .word 0x0000A7F4, 0x0000AE20 + .word 0x0000AE20, 0x0000AE9C + .word 0x0000AE9C, 0x0000B078 + .word 0x0000B078, 0x0000B0B8 + .word 0x0000B0B8, 0x0000B0D4 + .word 0x0000B0D4, 0x0000B0DC + .word 0x0000B0DC, 0x0000B380 + .word 0x0000B380, 0x0000B43C + .word 0x0000B43C, 0x0000B4BC + .word 0x0000B4BC, 0x0000B57C + .word 0x0000B57C, 0x0000B6A0 + .word 0x0000B6A0, 0x0000B6DC + .word 0x0000B6DC, 0x0000BA1C + .word 0x0000BA1C, 0x0000C5C0 + .word 0x0000C5C0, 0x0000C740 + .word 0x0000C740, 0x0000C788 + .word 0x0000C788, 0x0000C790 + .word 0x0000C790, 0x0000C7AC + .word 0x0000C7AC, 0x0000CC08 + .word 0x0000CC08, 0x0000CD3C + .word 0x0000CD3C, 0x0000CEFC + .word 0x0000CEFC, 0x0000D04C + .word 0x0000D04C, 0x0000D19C + .word 0x0000D19C, 0x0000D420 + .word 0x0000D420, 0x0000D7A8 + .word 0x0000D7A8, 0x0000D8A8 + .word 0x0000D8A8, 0x0000DA24 + .word 0x0000DA24, 0x0000DBC4 + .word 0x0000DBC4, 0x0000DC18 + .word 0x0000DC18, 0x0000DC48 + .word 0x0000DC48, 0x0000DD7C + .word 0x0000DD7C, 0x0000DDC4 + .word 0x0000DDC4, 0x0000E364 + .word 0x0000E364, 0x0000E3C8 + .word 0x0000E3C8, 0x0000E474 + .word 0x0000E474, 0x0000E4A0 + .word 0x0000E4A0, 0x0000E5BC + .word 0x0000E5BC, 0x0000E634 + .word 0x0000E634, 0x0000E63C + .word 0x0000E63C, 0x0000E644 + .word 0x0000E644, 0x0000E814 + .word 0x0000E814, 0x0000EC0C + .word 0x0000EC0C, 0x0000ECB0 + .word 0x0000ECB0, 0x0000ECE0 + .word 0x0000ECE0, 0x0000ECE8 + .word 0x0000ECE8, 0x0000ECF0 + .word 0x0000ECF0, 0x0000EE20 + .word 0x0000EE20, 0x0000EF7C + .word 0x0000EF7C, 0x0000F04C + .word 0x0000F04C, 0x0000F068 + .word 0x0000F068, 0x0000F354 + .word 0x0000F354, 0x0000F3B8 + .word 0x0000F3B8, 0x0000F540 + .word 0x0000F540, 0x0000F5A4 + .word 0x0000F5A4, 0x0000F5AC + .word 0x0000F5AC, 0x0000F5B4 + .word 0x0000F5B4, 0x0000F69C + .word 0x0000F69C, 0x0000F720 + .word 0x0000F720, 0x0000F770 + .word 0x0000F770, 0x0000F7F0 + .word 0x0000F7F0, 0x0000F7F8 + .word 0x0000F7F8, 0x0000F800 + .word 0x0000F800, 0x0000FB2C + .word 0x0000FB2C, 0x0000FB68 + .word 0x0000FB68, 0x0000FC04 + .word 0x0000FC04, 0x0000FC40 + .word 0x0000FC40, 0x0000FCDC + .word 0x0000FCDC, 0x0000FD18 + .word 0x0000FD18, 0x0000FDB4 + .word 0x0000FDB4, 0x0000FDF0 + .word 0x0000FDF0, 0x0000FE8C + .word 0x0000FE8C, 0x0000FEC8 + .word 0x0000FEC8, 0x0000FFDC + .word 0x0000FFDC, 0x00010188 + .word 0x00010188, 0x000103A8 + .word 0x000103A8, 0x000103B0 + .word 0x000103B0, 0x000103B8 + .word 0x000103B8, 0x00010918 + .word 0x00010918, 0x000109B4 + .word 0x000109B4, 0x00010A0C + .word 0x00010A0C, 0x00010A14 + .word 0x00010A14, 0x00010A1C + .word 0x00010A1C, 0x00010C90 + .word 0x00010C90, 0x00010CC0 + .word 0x00010CC0, 0x00010CF0 + .word 0x00010CF0, 0x00010D44 + .word 0x00010D44, 0x00010D4C + .word 0x00010D4C, 0x00012274 + .word 0x00012274, 0x0001361C + .word 0x0001361C, 0x00013D78 + .word 0x00013D78, 0x00013DB4 + .word 0x00013DB4, 0x00013F20 + .word 0x00013F20, 0x00014120 + .word 0x00014120, 0x00014474 + .word 0x00014474, 0x000144F8 + .word 0x000144F8, 0x000149D8 + .word 0x000149D8, 0x000149F8 + .word 0x000149F8, 0x00014A64 + .word 0x00014A64, 0x00014A74 + .word 0x00014A74, 0x00014B40 + .word 0x00014B40, 0x00014B58 + .word 0x00014B58, 0x00014B60 + .word 0x00014B60, 0x00014B68 + .word 0x00014B68, 0x00014B70 + .word 0x00014B70, 0x00014B78 + .word 0x00014B78, 0x00014B80 + .word 0x00014B80, 0x00014B88 + .word 0x00014B88, 0x00014B90 + .word 0x00014B90, 0x00014BBC + .word 0x00014BBC, 0x00014BC4 + .word 0x00014BC4, 0x00014BE0 + .word 0x00014BE0, 0x00014BE8 + .word 0x00014BE8, 0x00015E90 + .word 0x00015E90, 0x00015E98 + .word 0x00015E98, 0x00016008 + .word 0x00016008, 0x00016018 + .word 0x00016018, 0x00016064 + .word 0x00016064, 0x00016098 + .word 0x00016098, 0x000160CC + .word 0x000160CC, 0x00016100 + .word 0x00016100, 0x00016134 + .word 0x00016134, 0x00016168 + .word 0x00016168, 0x000161DC + .word 0x000161DC, 0x000161F4 + .word 0x000161F4, 0x00016218 + .word 0x00016218, 0x00016220 + .word 0x00016220, 0x00016228 + .word 0x00016228, 0x000162EC + .word 0x000162EC, 0x000162F4 + .word 0x000162F4, 0x000162FC + .word 0x000162FC, 0x00016304 + .word 0x00016304, 0x0001630C + .word 0x0001630C, 0x00016314 + .word 0x00016314, 0x0001631C + .word 0x0001631C, 0x00016324 + .word 0x00016324, 0x0001632C + .word 0x0001632C, 0x00016334 + .word 0x00016334, 0x0001633C + .word 0x0001633C, 0x00016354 + .word 0x00016354, 0x0001635C + .word 0x0001635C, 0x00016364 + .word 0x00016364, 0x000163D4 + .word 0x000163D4, 0x000163DC + .word 0x000163DC, 0x000163E4 + .word 0x000163E4, 0x00016820 + .word 0x00016820, 0x00016828 + .word 0x00016828, 0x00016830 + .word 0x00016830, 0x00016A1C + .word 0x00016A1C, 0x000176C8 + .word 0x000176C8, 0x000176D8 + .word 0x000176D8, 0x000176FC + .word 0x000176FC, 0x00017964 + .word 0x00017964, 0x00017994 + .word 0x00017994, 0x00017A64 + .word 0x00017A64, 0x00017A80 + .word 0x00017A80, 0x00017BCC + .word 0x00017BCC, 0x00017C5C + .word 0x00017C5C, 0x00017C84 + .word 0x00017C84, 0x00017DB0 + .word 0x00017DB0, 0x00017F88 + .word 0x00017F88, 0x00018178 + .word 0x00018178, 0x00018188 + .word 0x00018188, 0x00018190 + .word 0x00018190, 0x000181E8 + .word 0x000181E8, 0x00018238 + .word 0x00018238, 0x00018370 + .word 0x00018370, 0x0001838C + .word 0x0001838C, 0x000183A8 + .word 0x000183A8, 0x000183C4 + .word 0x000183C4, 0x000183D8 + .word 0x000183D8, 0x000183F0 + .word 0x000183F0, 0x00018404 + .word 0x00018404, 0x0001841C + .word 0x0001841C, 0x00018430 + .word 0x00018430, 0x00018448 + .word 0x00018448, 0x0001845C + .word 0x0001845C, 0x00018470 + .word 0x00018470, 0x00018488 + .word 0x00018488, 0x000184A0 + .word 0x000184A0, 0x000184B8 + .word 0x000184B8, 0x000184D0 + .word 0x000184D0, 0x000184E8 + .word 0x000184E8, 0x00018500 + .word 0x00018500, 0x0001851C + .word 0x0001851C, 0x000185B0 + .word 0x000185B0, 0x000185B8 + .word 0x000185B8, 0x000185C8 + .word 0x000185C8, 0x000185D0 + .word 0x000185D0, 0x000185D8 + .word 0x000185D8, 0x000185E0 + .word 0x000185E0, 0x000185E8 + .word 0x000185E8, 0x000186C0 + .word 0x000186C0, 0x00018900 + .word 0x00018900, 0x00018908 + .word 0x00018908, 0x00018948 + .word 0x00018948, 0x00018980 + .word 0x00018980, 0x0001899C + .word 0x0001899C, 0x000189AC + .word 0x000189AC, 0x00018AA4 + .word 0x00018AA4, 0x00018AB4 + .word 0x00018AB4, 0x00018ABC + .word 0x00018ABC, 0x00018AD0 + .word 0x00018AD0, 0x00018AD8 + .word 0x00018AD8, 0x00018FF4 + .word 0x00018FF4, 0x0001900C + .word 0x0001900C, 0x00019118 + .word 0x00019118, 0x0001913C + .word 0x0001913C, 0x000191C0 + .word 0x000191C0, 0x000191C8 + .word 0x000191C8, 0x000191D0 + .word 0x000191D0, 0x000191D8 + .word 0x000191D8, 0x000192A8 + .word 0x000192A8, 0x000192B0 + .word 0x000192B0, 0x0001931C + .word 0x0001931C, 0x00019324 + .word 0x00019324, 0x000194AC + .word 0x000194AC, 0x00019578 + .word 0x00019578, 0x00019644 + .word 0x00019644, 0x000198AC + .word 0x000198AC, 0x000198C8 + .word 0x000198C8, 0x00019994 + .word 0x00019994, 0x00019D2C + .word 0x00019D2C, 0x00019D74 + .word 0x00019D74, 0x00019D84 + .word 0x00019D84, 0x0001A45C + .word 0x0001A45C, 0x0001A77C + .word 0x0001A77C, 0x0001A91C + .word 0x0001A91C, 0x0001A92C + .word 0x0001A92C, 0x0001A998 + .word 0x0001A998, 0x0001A9A0 + .word 0x0001A9A0, 0x0001AAEC + .word 0x0001AAEC, 0x0001AAFC + .word 0x0001AAFC, 0x0001AB38 + .word 0x0001AB38, 0x0001AD74 + .word 0x0001AD74, 0x0001AE00 + .word 0x0001AE00, 0x0001AF50 + .word 0x0001AF50, 0x0001B048 + .word 0x0001B048, 0x0001B424 + .word 0x0001B424, 0x0001B61C + .word 0x0001B61C, 0x0001B624 + .word 0x0001B624, 0x0001C7F4 + .word 0x0001C7F4, 0x0001C9A8 + .word 0x0001C9A8, 0x0001CBB0 + .word 0x0001CBB0, 0x0001CDA8 + .word 0x0001CDA8, 0x0001D368 + .word 0x0001D368, 0x0001D9CC + .word 0x0001D9CC, 0x0001E1B0 + .word 0x0001E1B0, 0x0001E230 + .word 0x0001E230, 0x0001E23C + .word 0x0001E23C, 0x0001E248 + .word 0x0001E248, 0x0001E250 + .word 0x0001E250, 0x0001E258 + .word 0x0001E258, 0x0001FC64 + .word 0x0001FC64, 0x0001FC6C + .word 0x0001FC6C, 0x0002005C + .word 0x0002005C, 0x0002016C + .word 0x0002016C, 0x0002076C + .word 0x0002076C, 0x00020D8C + .word 0x00020D8C, 0x00020ED0 + .word 0x00020ED0, 0x00021024 + .word 0x00021024, 0x000215D0 + .word 0x000215D0, 0x00021858 + .word 0x00021858, 0x00021874 + .word 0x00021874, 0x00021DC4 + .word 0x00021DC4, 0x00023F00 + .word 0x00023F00, 0x00023F60 + .word 0x00023F60, 0x0002404C + .word 0x0002404C, 0x00024154 + .word 0x00024154, 0x0002415C + .word 0x0002415C, 0x000243FC + .word 0x000243FC, 0x000247E0 + .word 0x000247E0, 0x000248C8 + .word 0x000248C8, 0x000248F4 + .word 0x000248F4, 0x00024B7C + .word 0x00024B7C, 0x0002523C + .word 0x0002523C, 0x000256D8 + .word 0x000256D8, 0x00025944 + .word 0x00025944, 0x00025994 + .word 0x00025994, 0x00025A28 + .word 0x00025A28, 0x00025D04 + .word 0x00025D04, 0x00025D84 + .word 0x00025D84, 0x00025DD4 + .word 0x00025DD4, 0x00025EFC + .word 0x00025EFC, 0x00025F9C + .word 0x00025F9C, 0x00025FA4 + .word 0x00025FA4, 0x00026398 + .word 0x00026398, 0x00026464 + .word 0x00026464, 0x00026720 + .word 0x00026720, 0x000269FC + .word 0x000269FC, 0x00026A0C + .word 0x00026A0C, 0x00026A14 + .word 0x00026A14, 0x00026A1C + .word 0x00026A1C, 0x00026A24 + .word 0x00026A24, 0x00026AEC + .word 0x00026AEC, 0x00026EA8 + .word 0x00026EA8, 0x00026F94 + .word 0x00026F94, 0x00026FE4 + .word 0x00026FE4, 0x000271F0 + .word 0x000271F0, 0x00027240 + .word 0x00027240, 0x0002730C + .word 0x0002730C, 0x00027478 + .word 0x00027478, 0x00027534 + .word 0x00027534, 0x000275AC + .word 0x000275AC, 0x00027958 + .word 0x00027958, 0x00027A64 + .word 0x00027A64, 0x00028030 + .word 0x00028030, 0x00028198 + .word 0x00028198, 0x000281C8 + .word 0x000281C8, 0x000288BC + .word 0x000288BC, 0x00028918 + .word 0x00028918, 0x00028988 + .word 0x00028988, 0x00028AD8 + .word 0x00028AD8, 0x00028B54 + .word 0x00028B54, 0x00028C24 + .word 0x00028C24, 0x00028C5C + .word 0x00028C5C, 0x00028DC0 + .word 0x00028DC0, 0x00028E10 + .word 0x00028E10, 0x00028EAC + .word 0x00028EAC, 0x00028EF8 + .word 0x00028EF8, 0x00028F78 + .word 0x00028F78, 0x00028FDC + .word 0x00028FDC, 0x00029014 + .word 0x00029014, 0x000290D8 + .word 0x000290D8, 0x000291F0 + .word 0x000291F0, 0x00029210 + .word 0x00029210, 0x0002927C + .word 0x0002927C, 0x00029D04 + .word 0x00029D04, 0x00029E90 + .word 0x00029E90, 0x00029FEC + .word 0x00029FEC, 0x0002A0C0 + .word 0x0002A0C0, 0x0002A1EC + .word 0x0002A1EC, 0x0002A21C + .word 0x0002A21C, 0x0002A5D8 + .word 0x0002A5D8, 0x0002A610 + .word 0x0002A610, 0x0002A670 + .word 0x0002A670, 0x0002A678 + .word 0x0002A678, 0x0002A890 + .word 0x0002A890, 0x0002A914 + .word 0x0002A914, 0x0002A94C + .word 0x0002A94C, 0x0002A97C + .word 0x0002A97C, 0x0002AC54 + .word 0x0002AC54, 0x0002AC98 + .word 0x0002AC98, 0x0002AD14 + .word 0x0002AD14, 0x0002AD1C + .word 0x0002AD1C, 0x0002B47C + .word 0x0002B47C, 0x0002B4EC + .word 0x0002B4EC, 0x0002B9C8 + .word 0x0002B9C8, 0x0002B9D0 + .word 0x0002B9D0, 0x0002B9D8 + .word 0x0002B9D8, 0x0002B9DC + .word 0x0002B9DC, 0x0002B9E0 + .word 0x0002B9E0, 0x0002BA08 + .word 0x0002BA08, 0x0002BA18 + .word 0x0002BA18, 0x0002BA20 + .word 0x0002BA20, 0x0002BA24 + .word 0x0002BA24, 0x0002BA28 + .word 0x0002BA28, 0x0002BA30 + .word 0x0002BA30, 0x0002BA38 + .word 0x0002BA38, 0x0002BA3C + .word 0x0002BA3C, 0x0002BA40 + .word 0x0002BA40, 0x0002BA44 + .word 0x0002BA44, 0x0002BA48 + .word 0x0002BA48, 0x0002BA4C + .word 0x0002BA4C, 0x0002BA50 + .word 0x0002BA50, 0x0002BA54 + .word 0x0002BA54, 0x0002BA58 + .word 0x0002BA58, 0x0002BA5C + .word 0x0002BA5C, 0x0002BA60 + .word 0x0002BA60, 0x0002BA64 + .word 0x0002BA64, 0x0002BA68 + .word 0x0002BA68, 0x0002BA6C + .word 0x0002BA6C, 0x0002BA70 + .word 0x0002BA70, 0x0002BA74 + .word 0x0002BA74, 0x0002BA88 + .word 0x0002BA88, 0x0002BA8C + .word 0x0002BA8C, 0x0002BA90 + .word 0x0002BA90, 0x0002BA94 + .word 0x0002BA94, 0x0002BA98 + .word 0x0002BA98, 0x0002BA9C + .word 0x0002BA9C, 0x0002BAC0 + .word 0x0002BAC0, 0x0002BAC8 + .word 0x0002BAC8, 0x0002BAD0 + .word 0x0002BAD0, 0x0002BAD4 + .word 0x0002BAD4, 0x0002BAFC + .word 0x0002BAFC, 0x0002BB0C + .word 0x0002BB0C, 0x0002BB10 + .word 0x0002BB10, 0x0002BB14 + .word 0x0002BB14, 0x0002BB28 + .word 0x0002BB28, 0x0002BB2C + .word 0x0002BB2C, 0x0002BB30 + .word 0x0002BB30, 0x0002BB4C + .word 0x0002BB4C, 0x0002BB54 + .word 0x0002BB54, 0x0002BB5C + .word 0x0002BB5C, 0x0002BB60 + .word 0x0002BB60, 0x0002BB68 + .word 0x0002BB68, 0x0002BB6C + .word 0x0002BB6C, 0x0002BB70 + .word 0x0002BB70, 0x0002BB98 + .word 0x0002BB98, 0x0002BBA8 + .word 0x0002BBA8, 0x0002BBAC + .word 0x0002BBAC, 0x0002BBB0 + .word 0x0002BBB0, 0x0002BBB4 + .word 0x0002BBB4, 0x0002BBB8 + .word 0x0002BBB8, 0x0002BBBC + .word 0x0002BBBC, 0x0002BBC0 + .word 0x0002BBC0, 0x0002BBC4 + .word 0x0002BBC4, 0x0002BBC8 + .word 0x0002BBC8, 0x0002BBCC + .word 0x0002BBCC, 0x0002BBD0 + .word 0x0002BBD0, 0x0002BBD4 + .word 0x0002BBD4, 0x0002BBD8 + .word 0x0002BBD8, 0x0002BBDC + .word 0x0002BBDC, 0x0002BBE0 + .word 0x0002BBE0, 0x0002BBE4 + .word 0x0002BBE4, 0x0002BBEC + .word 0x0002BBEC, 0x0002BBF4 + .word 0x0002BBF4, 0x0002BBF8 + .word 0x0002BBF8, 0x0002BC04 + .word 0x0002BC04, 0x0002BC08 + .word 0x0002BC08, 0x0002BC30 + .word 0x0002BC30, 0x0002BC40 + .word 0x0002BC40, 0x0002BC44 + .word 0x0002BC44, 0x0002BC48 + .word 0x0002BC48, 0x0002BC4C + .word 0x0002BC4C, 0x0002BC50 + .word 0x0002BC50, 0x0002BC54 + .word 0x0002BC54, 0x0002BC58 + .word 0x0002BC58, 0x0002BC5C + .word 0x0002BC5C, 0x0002BC60 + .word 0x0002BC60, 0x0002BC64 + .word 0x0002BC64, 0x0002BC6C + .word 0x0002BC6C, 0x0002BC70 + .word 0x0002BC70, 0x0002BC74 + .word 0x0002BC74, 0x0002BC78 + .word 0x0002BC78, 0x0002BC7C + .word 0x0002BC7C, 0x0002BC90 + .word 0x0002BC90, 0x0002BC98 + .word 0x0002BC98, 0x0002BCA0 + .word 0x0002BCA0, 0x0002BCA8 + .word 0x0002BCA8, 0x0002BCB0 + .word 0x0002BCB0, 0x0002BCB8 + .word 0x0002BCB8, 0x0002BCBC + .word 0x0002BCBC, 0x0002BCC0 + .word 0x0002BCC0, 0x0002BCE8 + .word 0x0002BCE8, 0x0002BCF8 + .word 0x0002BCF8, 0x0002BCFC + .word 0x0002BCFC, 0x0002BD00 + .word 0x0002BD00, 0x0002BD10 + .word 0x0002BD10, 0x0002BD18 + .word 0x0002BD18, 0x0002BD20 + .word 0x0002BD20, 0x0002BD28 + .word 0x0002BD28, 0x0002BD2C + .word 0x0002BD2C, 0x0002BD30 + .word 0x0002BD30, 0x0002BD34 + .word 0x0002BD34, 0x0002BD38 + .word 0x0002BD38, 0x0002BD3C + .word 0x0002BD3C, 0x0002BD4C + .word 0x0002BD4C, 0x0002BD50 + .word 0x0002BD50, 0x0002BD5C + .word 0x0002BD5C, 0x0002BD78 + .word 0x0002BD78, 0x0002BD88 + .word 0x0002BD88, 0x0002BD8C + .word 0x0002BD8C, 0x0002BD90 + .word 0x0002BD90, 0x0002BD98 + .word 0x0002BD98, 0x0002BDA0 + .word 0x0002BDA0, 0x0002BDA8 + .word 0x0002BDA8, 0x0002BDAC + .word 0x0002BDAC, 0x0002BDD4 + .word 0x0002BDD4, 0x0002BDE4 + .word 0x0002BDE4, 0x0002BDF8 + .word 0x0002BDF8, 0x0002BDFC + .word 0x0002BDFC, 0x0002BE00 + .word 0x0002BE00, 0x0002BE04 + .word 0x0002BE04, 0x0002BE08 + .word 0x0002BE08, 0x0002BE0C + .word 0x0002BE0C, 0x0002BE10 + .word 0x0002BE10, 0x0002BE24 + .word 0x0002BE24, 0x0002BE2C + .word 0x0002BE2C, 0x0002BE30 + .word 0x0002BE30, 0x0002BE58 + .word 0x0002BE58, 0x0002BE68 + .word 0x0002BE68, 0x0002BE6C + .word 0x0002BE6C, 0x0002BE70 + .word 0x0002BE70, 0x0002BE74 + .word 0x0002BE74, 0x0002BE78 + .word 0x0002BE78, 0x0002BE7C + .word 0x0002BE7C, 0x0002BE80 + .word 0x0002BE80, 0x0002BE84 + .word 0x0002BE84, 0x0002BE88 + .word 0x0002BE88, 0x0002BE8C + .word 0x0002BE8C, 0x0002BE90 + .word 0x0002BE90, 0x0002BE94 + .word 0x0002BE94, 0x0002BE98 + .word 0x0002BE98, 0x0002BE9C + .word 0x0002BE9C, 0x0002BEA0 + .word 0x0002BEA0, 0x0002BEB4 + .word 0x0002BEB4, 0x0002BEBC + .word 0x0002BEBC, 0x0002BEC4 + .word 0x0002BEC4, 0x0002BECC + .word 0x0002BECC, 0x0002BED4 + .word 0x0002BED4, 0x0002BED8 + .word 0x0002BED8, 0x0002BF00 + .word 0x0002BF00, 0x0002BF10 + .word 0x0002BF10, 0x0002BF18 + .word 0x0002BF18, 0x0002BF1C + .word 0x0002BF1C, 0x0002BF20 + .word 0x0002BF20, 0x0002BF24 + .word 0x0002BF24, 0x0002BF28 + .word 0x0002BF28, 0x0002BF2C + .word 0x0002BF2C, 0x0002BF30 + .word 0x0002BF30, 0x0002BF34 + .word 0x0002BF34, 0x0002BF44 + .word 0x0002BF44, 0x0002BF48 + .word 0x0002BF48, 0x0002BF50 + .word 0x0002BF50, 0x0002BF58 + .word 0x0002BF58, 0x0002BF60 + .word 0x0002BF60, 0x0002BF64 + .word 0x0002BF64, 0x0002BF8C + .word 0x0002BF8C, 0x0002BF9C + .word 0x0002BF9C, 0x0002BFA0 + .word 0x0002BFA0, 0x0002BFA4 + .word 0x0002BFA4, 0x0002BFA8 + .word 0x0002BFA8, 0x0002BFB0 + .word 0x0002BFB0, 0x0002BFD8 + .word 0x0002BFD8, 0x0002BFE8 + .word 0x0002BFE8, 0x0002BFF0 + .word 0x0002BFF0, 0x0002BFF8 + .word 0x0002BFF8, 0x0002C008 + .word 0x0002C008, 0x0002C010 + .word 0x0002C010, 0x0002C020 + .word 0x0002C020, 0x0002C028 + .word 0x0002C028, 0x0002C038 + .word 0x0002C038, 0x0002C040 + .word 0x0002C040, 0x0002C050 + .word 0x0002C050, 0x0002C058 + .word 0x0002C058, 0x0002C06C + .word 0x0002C06C, 0x0002C07C + .word 0x0002C07C, 0x0002C08C + .word 0x0002C08C, 0x0002C0B4 + .word 0x0002C0B4, 0x0002C0C4 + .word 0x0002C0C4, 0x0002C0D8 + .word 0x0002C0D8, 0x0002C0E0 + .word 0x0002C0E0, 0x0002C0E4 + .word 0x0002C0E4, 0x0002C10C + .word 0x0002C10C, 0x0002C11C + .word 0x0002C11C, 0x0002C130 + .word 0x0002C130, 0x0002C134 + .word 0x0002C134, 0x0002C138 + .word 0x0002C138, 0x0002C13C + .word 0x0002C13C, 0x0002C140 + .word 0x0002C140, 0x0002C148 + .word 0x0002C148, 0x0002C14C + .word 0x0002C14C, 0x0002C15C + .word 0x0002C15C, 0x0002C170 + .word 0x0002C170, 0x0002C178 + .word 0x0002C178, 0x0002C180 + .word 0x0002C180, 0x0002C184 + .word 0x0002C184, 0x0002C18C + .word 0x0002C18C, 0x0002C194 + .word 0x0002C194, 0x0002C198 + .word 0x0002C198, 0x0002C19C + .word 0x0002C19C, 0x0002C1A0 + .word 0x0002C1A0, 0x0002C1A4 + .word 0x0002C1A4, 0x0002C1A8 + .word 0x0002C1A8, 0x0002C1AC + .word 0x0002C1AC, 0x0002C1B0 + .word 0x0002C1B0, 0x0002C1B4 + .word 0x0002C1B4, 0x0002C1B8 + .word 0x0002C1B8, 0x0002C1BC + .word 0x0002C1BC, 0x0002C1C0 + .word 0x0002C1C0, 0x0002C1C4 + .word 0x0002C1C4, 0x0002C1C8 + .word 0x0002C1C8, 0x0002C1D4 + .word 0x0002C1D4, 0x0002C1D8 + .word 0x0002C1D8, 0x0002C1E4 + .word 0x0002C1E4, 0x0002C1EC + .word 0x0002C1EC, 0x0002C1F0 + .word 0x0002C1F0, 0x0002C1F8 + .word 0x0002C1F8, 0x0002C200 + .word 0x0002C200, 0x0002C208 + .word 0x0002C208, 0x0002C210 + .word 0x0002C210, 0x0002C218 + .word 0x0002C218, 0x0002C220 + .word 0x0002C220, 0x0002C224 + .word 0x0002C224, 0x0002C22C + .word 0x0002C22C, 0x0002C230 + .word 0x0002C230, 0x0002C234 + .word 0x0002C234, 0x0002C238 + .word 0x0002C238, 0x0002C23C + .word 0x0002C23C, 0x0002C240 + .word 0x0002C240, 0x0002C244 + .word 0x0002C244, 0x0002C248 + .word 0x0002C248, 0x0002C24C + .word 0x0002C24C, 0x0002C250 + .word 0x0002C250, 0x0002C254 + .word 0x0002C254, 0x0002C258 + .word 0x0002C258, 0x0002C25C + .word 0x0002C25C, 0x0002C260 + .word 0x0002C260, 0x0002C264 + .word 0x0002C264, 0x0002C268 + .word 0x0002C268, 0x0002C26C + .word 0x0002C26C, 0x0002C274 + .word 0x0002C274, 0x0002C278 + .word 0x0002C278, 0x0002C27C + .word 0x0002C27C, 0x0002C284 + .word 0x0002C284, 0x0002C288 + .word 0x0002C288, 0x0002C28C + .word 0x0002C28C, 0x0002C2A0 + .word 0x0002C2A0, 0x0002C2A8 + .word 0x0002C2A8, 0x0002C2B0 + .word 0x0002C2B0, 0x0002C2B4 + .word 0x0002C2B4, 0x0002C2BC + .word 0x0002C2BC, 0x0002C2C0 + .word 0x0002C2C0, 0x0002C2C8 + .word 0x0002C2C8, 0x0002C2CC + .word 0x0002C2CC, 0x0002C2D4 + .word 0x0002C2D4, 0x0002C2D8 + .word 0x0002C2D8, 0x0002C2E0 + .word 0x0002C2E0, 0x0002C2E8 + .word 0x0002C2E8, 0x0002C2F0 + .word 0x0002C2F0, 0x0002C2FC + .word 0x0002C2FC, 0x0002C304 + .word 0x0002C304, 0x0002C308 + .word 0x0002C308, 0x0002C310 + .word 0x0002C310, 0x0002C318 + .word 0x0002C318, 0x0002C324 + .word 0x0002C324, 0x0002C32C + .word 0x0002C32C, 0x0002C334 + .word 0x0002C334, 0x0002C33C + .word 0x0002C33C, 0x0002C344 + .word 0x0002C344, 0x0002C34C + .word 0x0002C34C, 0x0002C354 + .word 0x0002C354, 0x0002C35C + .word 0x0002C35C, 0x0002C364 + .word 0x0002C364, 0x0002C36C + .word 0x0002C36C, 0x0002C374 + .word 0x0002C374, 0x0002C37C + .word 0x0002C37C, 0x0002C384 + .word 0x0002C384, 0x0002C38C + .word 0x0002C38C, 0x0002C394 + .word 0x0002C394, 0x0002C39C + .word 0x0002C39C, 0x0002C3A4 + .word 0x0002C3A4, 0x0002C3AC + .word 0x0002C3AC, 0x0002C3B4 + .word 0x0002C3B4, 0x0002C3C0 + .word 0x0002C3C0, 0x0002C3C4 + .word 0x0002C3C4, 0x0002C3CC + .word 0x0002C3CC, 0x0002C3D0 + .word 0x0002C3D0, 0x0002C3D4 + .word 0x0002C3D4, 0x0002C3D8 + .word 0x0002C3D8, 0x0002C3DC + .word 0x0002C3DC, 0x0002C3E4 + .word 0x0002C3E4, 0x0002C3EC + .word 0x0002C3EC, 0x0002C3F0 + .word 0x0002C3F0, 0x0002C3F8 + .word 0x0002C3F8, 0x0002C3FC + .word 0x0002C3FC, 0x0002C400 + .word 0x0002C400, 0x0002C408 + .word 0x0002C408, 0x0002C410 + .word 0x0002C410, 0x0002C418 + .word 0x0002C418, 0x0002C41C + .word 0x0002C41C, 0x0002C424 + .word 0x0002C424, 0x0002C428 + .word 0x0002C428, 0x0002C430 + .word 0x0002C430, 0x0002C438 + .word 0x0002C438, 0x0002C440 + .word 0x0002C440, 0x0002C448 + .word 0x0002C448, 0x0002C45C + .word 0x0002C45C, 0x0002C460 + .word 0x0002C460, 0x0002C464 + .word 0x0002C464, 0x0002C468 + .word 0x0002C468, 0x0002C46C + .word 0x0002C46C, 0x0002C470 + .word 0x0002C470, 0x0002C484 + .word 0x0002C484, 0x0002C488 + .word 0x0002C488, 0x0002C490 + .word 0x0002C490, 0x0002C494 + .word 0x0002C494, 0x0002C498 + .word 0x0002C498, 0x0002C49C + .word 0x0002C49C, 0x0002C4A0 + .word 0x0002C4A0, 0x0002C4A4 + .word 0x0002C4A4, 0x0002C4B0 + .word 0x0002C4B0, 0x0002C4B4 + .word 0x0002C4B4, 0x0002C4BC + .word 0x0002C4BC, 0x0002C4D4 + .word 0x0002C4D4, 0x0002C4EC + .word 0x0002C4EC, 0x0002C4F4 + .word 0x0002C4F4, 0x0002C4FC + .word 0x0002C4FC, 0x0002C500 + .word 0x0002C500, 0x0002C504 + .word 0x0002C504, 0x0002C510 + .word 0x0002C510, 0x0002C518 + .word 0x0002C518, 0x0002C51C + .word 0x0002C51C, 0x0002C52C + .word 0x0002C52C, 0x0002C538 + .word 0x0002C538, 0x0002C540 + .word 0x0002C540, 0x0002C54C + .word 0x0002C54C, 0x0002C550 + .word 0x0002C550, 0x0002C554 + .word 0x0002C554, 0x0002C558 + .word 0x0002C558, 0x0002C584 + .word 0x0002C584, 0x0002C5A4 + .word 0x0002C5A4, 0x0002C5BC + .word 0x0002C5BC, 0x0002C5D4 + .word 0x0002C5D4, 0x0002C5F4 + .word 0x0002C5F4, 0x0002C614 + .word 0x0002C614, 0x0002C634 + .word 0x0002C634, 0x0002C63C + .word 0x0002C63C, 0x0002C644 + .word 0x0002C644, 0x0002C648 + .word 0x0002C648, 0x0002C64C + .word 0x0002C64C, 0x0002C664 + .word 0x0002C664, 0x0002C668 + .word 0x0002C668, 0x0002C674 + .word 0x0002C674, 0x0002C688 + .word 0x0002C688, 0x0002C68C + .word 0x0002C68C, 0x0002C690 + .word 0x0002C690, 0x0002C69C + .word 0x0002C69C, 0x0002C6A0 + .word 0x0002C6A0, 0x0002C6A8 + .word 0x0002C6A8, 0x0002C6B0 + .word 0x0002C6B0, 0x0002C6B4 + .word 0x0002C6B4, 0x0002C6B8 + .word 0x0002C6B8, 0x0002C6BC + .word 0x0002C6BC, 0x0002C6C4 + .word 0x0002C6C4, 0x0002C6C8 + .word 0x0002C6C8, 0x0002C6CC + .word 0x0002C6CC, 0x0002C6E4 + .word 0x0002C6E4, 0x0002C6EC + .word 0x0002C6EC, 0x0002C6F0 + .word 0x0002C6F0, 0x0002C6F8 + .word 0x0002C6F8, 0x0002C6FC + .word 0x0002C6FC, 0x0002C704 + .word 0x0002C704, 0x0002C70C + .word 0x0002C70C, 0x0002C714 + .word 0x0002C714, 0x0002C718 + .word 0x0002C718, 0x0002C71C + .word 0x0002C71C, 0x0002C720 + .word 0x0002C720, 0x0002C724 + .word 0x0002C724, 0x0002C72C + .word 0x0002C72C, 0x0002C734 + .word 0x0002C734, 0x0002C738 + .word 0x0002C738, 0x0002C740 + .word 0x0002C740, 0x0002C744 + .word 0x0002C744, 0x0002C748 + .word 0x0002C748, 0x0002C750 + .word 0x0002C750, 0x0002C758 + .word 0x0002C758, 0x0002C75C + .word 0x0002C75C, 0x0002C764 + .word 0x0002C764, 0x0002C76C + .word 0x0002C76C, 0x0002C774 + .word 0x0002C774, 0x0002C77C + .word 0x0002C77C, 0x0002C780 + .word 0x0002C780, 0x0002C788 + .word 0x0002C788, 0x0002C790 + .word 0x0002C790, 0x0002C794 + .word 0x0002C794, 0x0002C798 + .word 0x0002C798, 0x0002C79C + .word 0x0002C79C, 0x0002C7A8 + .word 0x0002C7A8, 0x0002C7AC + .word 0x0002C7AC, 0x0002C7B4 + .word 0x0002C7B4, 0x0002C7B8 + .word 0x0002C7B8, 0x0002C7BC + .word 0x0002C7BC, 0x0002C7C0 + .word 0x0002C7C0, 0x0002C7C4 + .word 0x0002C7C4, 0x0002C7C8 + .word 0x0002C7C8, 0x0002C7CC + .word 0x0002C7CC, 0x0002C7D0 + .word 0x0002C7D0, 0x0002C7D4 + .word 0x0002C7D4, 0x0002C7D8 + .word 0x0002C7D8, 0x0002C7E0 + .word 0x0002C7E0, 0x0002C800 + .word 0x0002C800, 0x0002C804 + .word 0x0002C804, 0x0002C80C + .word 0x0002C80C, 0x0002C814 + .word 0x0002C814, 0x0002C81C + .word 0x0002C81C, 0x0002C820 + .word 0x0002C820, 0x0002C82C + .word 0x0002C82C, 0x0002C830 + .word 0x0002C830, 0x0002C834 + .word 0x0002C834, 0x0002C838 + .word 0x0002C838, 0x0002C83C + .word 0x0002C83C, 0x0002C840 + .word 0x0002C840, 0x0002C844 + .word 0x0002C844, 0x0002C848 + .word 0x0002C848, 0x0002C84C + .word 0x0002C84C, 0x0002C850 + .word 0x0002C850, 0x0002C854 + .word 0x0002C854, 0x0002C858 + .word 0x0002C858, 0x0002C85C + .word 0x0002C85C, 0x0002C864 + .word 0x0002C864, 0x0002C868 + .word 0x0002C868, 0x0002C878 + .word 0x0002C878, 0x0002C898 + .word 0x0002C898, 0x0002C8AC + .word 0x0002C8AC, 0x0002C8B0 + .word 0x0002C8B0, 0x0002C8B4 + .word 0x0002C8B4, 0x0002C8C8 + .word 0x0002C8C8, 0x0002C8D0 + .word 0x0002C8D0, 0x0002C8D4 + .word 0x0002C8D4, 0x0002C8FC + .word 0x0002C8FC, 0x0002C90C + .word 0x0002C90C, 0x0002C920 + .word 0x0002C920, 0x0002C924 + .word 0x0002C924, 0x0002C928 + .word 0x0002C928, 0x0002C92C + .word 0x0002C92C, 0x0002C934 + .word 0x0002C934, 0x0002C93C + .word 0x0002C93C, 0x0002C940 + .word 0x0002C940, 0x0002C968 + .word 0x0002C968, 0x0002C978 + .word 0x0002C978, 0x0002C97C + .word 0x0002C97C, 0x0002C980 + .word 0x0002C980, 0x0002C984 + .word 0x0002C984, 0x0002C990 + .word 0x0002C990, 0x0002C998 + .word 0x0002C998, 0x0002C99C + .word 0x0002C99C, 0x0002C9C4 + .word 0x0002C9C4, 0x0002C9D4 + .word 0x0002C9D4, 0x0002C9DC + .word 0x0002C9DC, 0x0002C9E0 + .word 0x0002C9E0, 0x0002C9E4 + .word 0x0002C9E4, 0x0002C9E8 + .word 0x0002C9E8, 0x0002C9EC + .word 0x0002C9EC, 0x0002CA00 + .word 0x0002CA00, 0x0002CA08 + .word 0x0002CA08, 0x0002CA0C + .word 0x0002CA0C, 0x0002CA34 + .word 0x0002CA34, 0x0002CA44 + .word 0x0002CA44, 0x0002CA4C + .word 0x0002CA4C, 0x0002CA50 + .word 0x0002CA50, 0x0002CA54 + .word 0x0002CA54, 0x0002CA58 + .word 0x0002CA58, 0x0002CA5C + .word 0x0002CA5C, 0x0002CA60 + .word 0x0002CA60, 0x0002CA68 + .word 0x0002CA68, 0x0002CA6C + .word 0x0002CA6C, 0x0002CA94 + .word 0x0002CA94, 0x0002CAA4 + .word 0x0002CAA4, 0x0002CAA8 + .word 0x0002CAA8, 0x0002CAAC + .word 0x0002CAAC, 0x0002CAB0 + .word 0x0002CAB0, 0x0002CAB4 + .word 0x0002CAB4, 0x0002CABC + .word 0x0002CABC, 0x0002CAC0 + .word 0x0002CAC0, 0x0002CAE8 + .word 0x0002CAE8, 0x0002CAF8 + .word 0x0002CAF8, 0x0002CB0C + .word 0x0002CB0C, 0x0002CB10 + .word 0x0002CB10, 0x0002CB14 + .word 0x0002CB14, 0x0002CB18 + .word 0x0002CB18, 0x0002CB1C + .word 0x0002CB1C, 0x0002CB34 + .word 0x0002CB34, 0x0002CB44 + .word 0x0002CB44, 0x0002CB48 + .word 0x0002CB48, 0x0002CB4C + .word 0x0002CB4C, 0x0002CB50 + .word 0x0002CB50, 0x0002CB58 + .word 0x0002CB58, 0x0002CB5C + .word 0x0002CB5C, 0x0002CF08 + .word 0x0002CF08, 0x0002D57C + .word 0x0002D57C, 0x0002D63C + .word 0x0002D63C, 0x0002D6F8 + .word 0x0002D6F8, 0x0002E048 + .word 0x0002E048, 0x0002E0E0 + .word 0x0002E0E0, 0x0002E11C + .word 0x0002E11C, 0x0002E17C + .word 0x0002E17C, 0x0002E994 + .word 0x0002E994, 0x0002E9E4 + .word 0x0002E9E4, 0x0002EA3C + .word 0x0002EA3C, 0x0002EA58 + .word 0x0002EA58, 0x0002EA60 + .word 0x0002EA60, 0x0002F174 + .word 0x0002F174, 0x0002F28C + .word 0x0002F28C, 0x0002F2BC + .word 0x0002F2BC, 0x0002F2EC + .word 0x0002F2EC, 0x0002F548 + .word 0x0002F548, 0x0002F5AC + .word 0x0002F5AC, 0x0002F604 + .word 0x0002F604, 0x0002F60C + .word 0x0002F60C, 0x0002F614 + .word 0x0002F614, 0x0002F6CC + .word 0x0002F6CC, 0x0002F6FC + .word 0x0002F6FC, 0x0002F7C4 + .word 0x0002F7C4, 0x0002F92C + .word 0x0002F92C, 0x0002F990 + .word 0x0002F990, 0x0002F9D0 + .word 0x0002F9D0, 0x0002F9D8 + .word 0x0002F9D8, 0x0002F9E0 + .word 0x0002F9E0, 0x0002FA50 + .word 0x0002FA50, 0x0002FA90 + .word 0x0002FA90, 0x0002FDC8 + .word 0x0002FDC8, 0x0002FDF8 + .word 0x0002FDF8, 0x0002FF40 + .word 0x0002FF40, 0x000302B4 + .word 0x000302B4, 0x000302EC + .word 0x000302EC, 0x000303D0 + .word 0x000303D0, 0x000303D8 + .word 0x000303D8, 0x000303E0 + .word 0x000303E0, 0x000304D0 + .word 0x000304D0, 0x00030650 + .word 0x00030650, 0x00030680 + .word 0x00030680, 0x000306E4 + .word 0x000306E4, 0x00030870 + .word 0x00030870, 0x00030918 + .word 0x00030918, 0x00030968 + .word 0x00030968, 0x000309C0 + .word 0x000309C0, 0x000309C8 + .word 0x000309C8, 0x000309D0 + .word 0x000309D0, 0x00030AC0 + .word 0x00030AC0, 0x00030B20 + .word 0x00030B20, 0x00030B3C + .word 0x00030B3C, 0x00030BE8 + .word 0x00030BE8, 0x00030C0C + .word 0x00030C0C, 0x00030C4C + .word 0x00030C4C, 0x00030C54 + .word 0x00030C54, 0x00030C5C + .word 0x00030C5C, 0x00030F40 + .word 0x00030F40, 0x00031248 + .word 0x00031248, 0x000313CC + .word 0x000313CC, 0x00031440 + .word 0x00031440, 0x0003148C + .word 0x0003148C, 0x000325BC + .word 0x000325BC, 0x000326D0 + .word 0x000326D0, 0x00032900 + .word 0x00032900, 0x00032C38 + .word 0x00032C38, 0x00033740 + .word 0x00033740, 0x00033748 + .word 0x00033748, 0x00033750 + .word 0x00033750, 0x00033788 + .word 0x00033788, 0x00033880 + .word 0x00033880, 0x000338CC + .word 0x000338CC, 0x000338CC + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000338D4 ; chunk size + .incbin "baserom.nds", 0x0, 0x60 + .incbin "baserom.nds", 0x60, 0xD4 + .incbin "baserom.nds", 0x134, 0x107C + .incbin "baserom.nds", 0x11B0, 0x64 + .incbin "baserom.nds", 0x1214, 0x1C + .incbin "baserom.nds", 0x1230, 0x58 + .incbin "baserom.nds", 0x1288, 0x8 + .incbin "baserom.nds", 0x1290, 0x8 + .incbin "baserom.nds", 0x1298, 0x1E8 + .incbin "baserom.nds", 0x1480, 0x78 + .incbin "baserom.nds", 0x14F8, 0x694 + .incbin "baserom.nds", 0x1B8C, 0x71C + .incbin "baserom.nds", 0x22A8, 0xC8 + .incbin "baserom.nds", 0x2370, 0x150 + .incbin "baserom.nds", 0x24C0, 0x30 + .incbin "baserom.nds", 0x24F0, 0x69C + .incbin "baserom.nds", 0x2B8C, 0x94 + .incbin "baserom.nds", 0x2C20, 0x80 + .incbin "baserom.nds", 0x2CA0, 0x2A4 + .incbin "baserom.nds", 0x2F44, 0x30 + .incbin "baserom.nds", 0x2F74, 0x30 + .incbin "baserom.nds", 0x2FA4, 0x1C + .incbin "baserom.nds", 0x2FC0, 0x8 + .incbin "baserom.nds", 0x2FC8, 0x1C + .incbin "baserom.nds", 0x2FE4, 0xC4 + .incbin "baserom.nds", 0x30A8, 0x30 + .incbin "baserom.nds", 0x30D8, 0x30 + .incbin "baserom.nds", 0x3108, 0x60 + .incbin "baserom.nds", 0x3168, 0x3C0 + .incbin "baserom.nds", 0x3528, 0x41C + .incbin "baserom.nds", 0x3944, 0x54 + .incbin "baserom.nds", 0x3998, 0x60 + .incbin "baserom.nds", 0x39F8, 0x30 + .incbin "baserom.nds", 0x3A28, 0x1C + .incbin "baserom.nds", 0x3A44, 0x95C + .incbin "baserom.nds", 0x43A0, 0x70 + .incbin "baserom.nds", 0x4410, 0x194 + .incbin "baserom.nds", 0x45A4, 0x58 + .incbin "baserom.nds", 0x45FC, 0x8 + .incbin "baserom.nds", 0x4604, 0x8 + .incbin "baserom.nds", 0x460C, 0xA0 + .incbin "baserom.nds", 0x46AC, 0x70 + .incbin "baserom.nds", 0x471C, 0x610 + .incbin "baserom.nds", 0x4D2C, 0x7C + .incbin "baserom.nds", 0x4DA8, 0x13C + .incbin "baserom.nds", 0x4EE4, 0x1A0 + .incbin "baserom.nds", 0x5084, 0x2E8 + .incbin "baserom.nds", 0x536C, 0x2C + .incbin "baserom.nds", 0x5398, 0x708 + .incbin "baserom.nds", 0x5AA0, 0x64 + .incbin "baserom.nds", 0x5B04, 0x18C + .incbin "baserom.nds", 0x5C90, 0x104 + .incbin "baserom.nds", 0x5D94, 0x8 + .incbin "baserom.nds", 0x5D9C, 0x1C + .incbin "baserom.nds", 0x5DB8, 0x48 + .incbin "baserom.nds", 0x5E00, 0xB8 + .incbin "baserom.nds", 0x5EB8, 0x90 + .incbin "baserom.nds", 0x5F48, 0x48 + .incbin "baserom.nds", 0x5F90, 0xD4 + .incbin "baserom.nds", 0x6064, 0xAC + .incbin "baserom.nds", 0x6110, 0x48 + .incbin "baserom.nds", 0x6158, 0x8 + .incbin "baserom.nds", 0x6160, 0x30 + .incbin "baserom.nds", 0x6190, 0x560 + .incbin "baserom.nds", 0x66F0, 0x54 + .incbin "baserom.nds", 0x6744, 0x48 + .incbin "baserom.nds", 0x678C, 0x98 + .incbin "baserom.nds", 0x6824, 0x30 + .incbin "baserom.nds", 0x6854, 0x1C + .incbin "baserom.nds", 0x6870, 0x74C + .incbin "baserom.nds", 0x6FBC, 0x70 + .incbin "baserom.nds", 0x702C, 0xB8 + .incbin "baserom.nds", 0x70E4, 0x374 + .incbin "baserom.nds", 0x7458, 0x138 + .incbin "baserom.nds", 0x7590, 0x1C + .incbin "baserom.nds", 0x75AC, 0x8 + .incbin "baserom.nds", 0x75B4, 0xD8 + .incbin "baserom.nds", 0x768C, 0x30 + .incbin "baserom.nds", 0x76BC, 0x30 + .incbin "baserom.nds", 0x76EC, 0x1C + .incbin "baserom.nds", 0x7708, 0x21C + .incbin "baserom.nds", 0x7924, 0x224 + .incbin "baserom.nds", 0x7B48, 0x78 + .incbin "baserom.nds", 0x7BC0, 0x60 + .incbin "baserom.nds", 0x7C20, 0x60 + .incbin "baserom.nds", 0x7C80, 0x11C + .incbin "baserom.nds", 0x7D9C, 0x4C + .incbin "baserom.nds", 0x7DE8, 0x7C + .incbin "baserom.nds", 0x7E64, 0x30 + .incbin "baserom.nds", 0x7E94, 0x740 + .incbin "baserom.nds", 0x85D4, 0xF58 + .incbin "baserom.nds", 0x952C, 0x64 + .incbin "baserom.nds", 0x9590, 0xF4 + .incbin "baserom.nds", 0x9684, 0x40 + .incbin "baserom.nds", 0x96C4, 0x40 + .incbin "baserom.nds", 0x9704, 0x40 + .incbin "baserom.nds", 0x9744, 0x1E0 + .incbin "baserom.nds", 0x9924, 0x70 + .incbin "baserom.nds", 0x9994, 0x8 + .incbin "baserom.nds", 0x999C, 0x8 + .incbin "baserom.nds", 0x99A4, 0x30 + .incbin "baserom.nds", 0x99D4, 0x90 + .incbin "baserom.nds", 0x9A64, 0xD0 + .incbin "baserom.nds", 0x9B34, 0x1B4 + .incbin "baserom.nds", 0x9CE8, 0x78 + .incbin "baserom.nds", 0x9D60, 0x54 + .incbin "baserom.nds", 0x9DB4, 0x54 + .incbin "baserom.nds", 0x9E08, 0x1C + .incbin "baserom.nds", 0x9E24, 0x60 + .incbin "baserom.nds", 0x9E84, 0xDC + .incbin "baserom.nds", 0x9F60, 0x60 + .incbin "baserom.nds", 0x9FC0, 0xD0 + .incbin "baserom.nds", 0xA090, 0x13C + .incbin "baserom.nds", 0xA1CC, 0xA8 + .incbin "baserom.nds", 0xA274, 0x48C + .incbin "baserom.nds", 0xA700, 0x8 + .incbin "baserom.nds", 0xA708, 0x60 + .incbin "baserom.nds", 0xA768, 0x8C + .incbin "baserom.nds", 0xA7F4, 0x62C + .incbin "baserom.nds", 0xAE20, 0x7C + .incbin "baserom.nds", 0xAE9C, 0x1DC + .incbin "baserom.nds", 0xB078, 0x40 + .incbin "baserom.nds", 0xB0B8, 0x1C + .incbin "baserom.nds", 0xB0D4, 0x8 + .incbin "baserom.nds", 0xB0DC, 0x2A4 + .incbin "baserom.nds", 0xB380, 0xBC + .incbin "baserom.nds", 0xB43C, 0x80 + .incbin "baserom.nds", 0xB4BC, 0xC0 + .incbin "baserom.nds", 0xB57C, 0x124 + .incbin "baserom.nds", 0xB6A0, 0x3C + .incbin "baserom.nds", 0xB6DC, 0x340 + .incbin "baserom.nds", 0xBA1C, 0xBA4 + .incbin "baserom.nds", 0xC5C0, 0x180 + .incbin "baserom.nds", 0xC740, 0x48 + .incbin "baserom.nds", 0xC788, 0x8 + .incbin "baserom.nds", 0xC790, 0x1C + .incbin "baserom.nds", 0xC7AC, 0x45C + .incbin "baserom.nds", 0xCC08, 0x134 + .incbin "baserom.nds", 0xCD3C, 0x1C0 + .incbin "baserom.nds", 0xCEFC, 0x150 + .incbin "baserom.nds", 0xD04C, 0x150 + .incbin "baserom.nds", 0xD19C, 0x284 + .incbin "baserom.nds", 0xD420, 0x388 + .incbin "baserom.nds", 0xD7A8, 0x100 + .incbin "baserom.nds", 0xD8A8, 0x17C + .incbin "baserom.nds", 0xDA24, 0x1A0 + .incbin "baserom.nds", 0xDBC4, 0x54 + .incbin "baserom.nds", 0xDC18, 0x30 + .incbin "baserom.nds", 0xDC48, 0x134 + .incbin "baserom.nds", 0xDD7C, 0x48 + .incbin "baserom.nds", 0xDDC4, 0x5A0 + .incbin "baserom.nds", 0xE364, 0x64 + .incbin "baserom.nds", 0xE3C8, 0xAC + .incbin "baserom.nds", 0xE474, 0x2C + .incbin "baserom.nds", 0xE4A0, 0x11C + .incbin "baserom.nds", 0xE5BC, 0x78 + .incbin "baserom.nds", 0xE634, 0x8 + .incbin "baserom.nds", 0xE63C, 0x8 + .incbin "baserom.nds", 0xE644, 0x1D0 + .incbin "baserom.nds", 0xE814, 0x3F8 + .incbin "baserom.nds", 0xEC0C, 0xA4 + .incbin "baserom.nds", 0xECB0, 0x30 + .incbin "baserom.nds", 0xECE0, 0x8 + .incbin "baserom.nds", 0xECE8, 0x8 + .incbin "baserom.nds", 0xECF0, 0x130 + .incbin "baserom.nds", 0xEE20, 0x15C + .incbin "baserom.nds", 0xEF7C, 0xD0 + .incbin "baserom.nds", 0xF04C, 0x1C + .incbin "baserom.nds", 0xF068, 0x2EC + .incbin "baserom.nds", 0xF354, 0x64 + .incbin "baserom.nds", 0xF3B8, 0x188 + .incbin "baserom.nds", 0xF540, 0x64 + .incbin "baserom.nds", 0xF5A4, 0x8 + .incbin "baserom.nds", 0xF5AC, 0x8 + .incbin "baserom.nds", 0xF5B4, 0xE8 + .incbin "baserom.nds", 0xF69C, 0x84 + .incbin "baserom.nds", 0xF720, 0x50 + .incbin "baserom.nds", 0xF770, 0x80 + .incbin "baserom.nds", 0xF7F0, 0x8 + .incbin "baserom.nds", 0xF7F8, 0x8 + .incbin "baserom.nds", 0xF800, 0x32C + .incbin "baserom.nds", 0xFB2C, 0x3C + .incbin "baserom.nds", 0xFB68, 0x9C + .incbin "baserom.nds", 0xFC04, 0x3C + .incbin "baserom.nds", 0xFC40, 0x9C + .incbin "baserom.nds", 0xFCDC, 0x3C + .incbin "baserom.nds", 0xFD18, 0x9C + .incbin "baserom.nds", 0xFDB4, 0x3C + .incbin "baserom.nds", 0xFDF0, 0x9C + .incbin "baserom.nds", 0xFE8C, 0x3C + .incbin "baserom.nds", 0xFEC8, 0x114 + .incbin "baserom.nds", 0xFFDC, 0x1AC + .incbin "baserom.nds", 0x10188, 0x220 + .incbin "baserom.nds", 0x103A8, 0x8 + .incbin "baserom.nds", 0x103B0, 0x8 + .incbin "baserom.nds", 0x103B8, 0x560 + .incbin "baserom.nds", 0x10918, 0x9C + .incbin "baserom.nds", 0x109B4, 0x58 + .incbin "baserom.nds", 0x10A0C, 0x8 + .incbin "baserom.nds", 0x10A14, 0x8 + .incbin "baserom.nds", 0x10A1C, 0x274 + .incbin "baserom.nds", 0x10C90, 0x30 + .incbin "baserom.nds", 0x10CC0, 0x30 + .incbin "baserom.nds", 0x10CF0, 0x54 + .incbin "baserom.nds", 0x10D44, 0x8 + .incbin "baserom.nds", 0x10D4C, 0x1528 + .incbin "baserom.nds", 0x12274, 0x13A8 + .incbin "baserom.nds", 0x1361C, 0x75C + .incbin "baserom.nds", 0x13D78, 0x3C + .incbin "baserom.nds", 0x13DB4, 0x16C + .incbin "baserom.nds", 0x13F20, 0x200 + .incbin "baserom.nds", 0x14120, 0x354 + .incbin "baserom.nds", 0x14474, 0x84 + .incbin "baserom.nds", 0x144F8, 0x4E0 + .incbin "baserom.nds", 0x149D8, 0x20 + .incbin "baserom.nds", 0x149F8, 0x6C + .incbin "baserom.nds", 0x14A64, 0x10 + .incbin "baserom.nds", 0x14A74, 0xCC + .incbin "baserom.nds", 0x14B40, 0x18 + .incbin "baserom.nds", 0x14B58, 0x8 + .incbin "baserom.nds", 0x14B60, 0x8 + .incbin "baserom.nds", 0x14B68, 0x8 + .incbin "baserom.nds", 0x14B70, 0x8 + .incbin "baserom.nds", 0x14B78, 0x8 + .incbin "baserom.nds", 0x14B80, 0x8 + .incbin "baserom.nds", 0x14B88, 0x8 + .incbin "baserom.nds", 0x14B90, 0x2C + .incbin "baserom.nds", 0x14BBC, 0x8 + .incbin "baserom.nds", 0x14BC4, 0x1C + .incbin "baserom.nds", 0x14BE0, 0x8 + .incbin "baserom.nds", 0x14BE8, 0x12A8 + .incbin "baserom.nds", 0x15E90, 0x8 + .incbin "baserom.nds", 0x15E98, 0x170 + .incbin "baserom.nds", 0x16008, 0x10 + .incbin "baserom.nds", 0x16018, 0x4C + .incbin "baserom.nds", 0x16064, 0x34 + .incbin "baserom.nds", 0x16098, 0x34 + .incbin "baserom.nds", 0x160CC, 0x34 + .incbin "baserom.nds", 0x16100, 0x34 + .incbin "baserom.nds", 0x16134, 0x34 + .incbin "baserom.nds", 0x16168, 0x74 + .incbin "baserom.nds", 0x161DC, 0x18 + .incbin "baserom.nds", 0x161F4, 0x24 + .incbin "baserom.nds", 0x16218, 0x8 + .incbin "baserom.nds", 0x16220, 0x8 + .incbin "baserom.nds", 0x16228, 0xC4 + .incbin "baserom.nds", 0x162EC, 0x8 + .incbin "baserom.nds", 0x162F4, 0x8 + .incbin "baserom.nds", 0x162FC, 0x8 + .incbin "baserom.nds", 0x16304, 0x8 + .incbin "baserom.nds", 0x1630C, 0x8 + .incbin "baserom.nds", 0x16314, 0x8 + .incbin "baserom.nds", 0x1631C, 0x8 + .incbin "baserom.nds", 0x16324, 0x8 + .incbin "baserom.nds", 0x1632C, 0x8 + .incbin "baserom.nds", 0x16334, 0x8 + .incbin "baserom.nds", 0x1633C, 0x18 + .incbin "baserom.nds", 0x16354, 0x8 + .incbin "baserom.nds", 0x1635C, 0x8 + .incbin "baserom.nds", 0x16364, 0x70 + .incbin "baserom.nds", 0x163D4, 0x8 + .incbin "baserom.nds", 0x163DC, 0x8 + .incbin "baserom.nds", 0x163E4, 0x43C + .incbin "baserom.nds", 0x16820, 0x8 + .incbin "baserom.nds", 0x16828, 0x8 + .incbin "baserom.nds", 0x16830, 0x1EC + .incbin "baserom.nds", 0x16A1C, 0xCAC + .incbin "baserom.nds", 0x176C8, 0x10 + .incbin "baserom.nds", 0x176D8, 0x24 + .incbin "baserom.nds", 0x176FC, 0x268 + .incbin "baserom.nds", 0x17964, 0x30 + .incbin "baserom.nds", 0x17994, 0xD0 + .incbin "baserom.nds", 0x17A64, 0x1C + .incbin "baserom.nds", 0x17A80, 0x14C + .incbin "baserom.nds", 0x17BCC, 0x90 + .incbin "baserom.nds", 0x17C5C, 0x28 + .incbin "baserom.nds", 0x17C84, 0x12C + .incbin "baserom.nds", 0x17DB0, 0x1D8 + .incbin "baserom.nds", 0x17F88, 0x1F0 + .incbin "baserom.nds", 0x18178, 0x10 + .incbin "baserom.nds", 0x18188, 0x8 + .incbin "baserom.nds", 0x18190, 0x58 + .incbin "baserom.nds", 0x181E8, 0x50 + .incbin "baserom.nds", 0x18238, 0x138 + .incbin "baserom.nds", 0x18370, 0x1C + .incbin "baserom.nds", 0x1838C, 0x1C + .incbin "baserom.nds", 0x183A8, 0x1C + .incbin "baserom.nds", 0x183C4, 0x14 + .incbin "baserom.nds", 0x183D8, 0x18 + .incbin "baserom.nds", 0x183F0, 0x14 + .incbin "baserom.nds", 0x18404, 0x18 + .incbin "baserom.nds", 0x1841C, 0x14 + .incbin "baserom.nds", 0x18430, 0x18 + .incbin "baserom.nds", 0x18448, 0x14 + .incbin "baserom.nds", 0x1845C, 0x14 + .incbin "baserom.nds", 0x18470, 0x18 + .incbin "baserom.nds", 0x18488, 0x18 + .incbin "baserom.nds", 0x184A0, 0x18 + .incbin "baserom.nds", 0x184B8, 0x18 + .incbin "baserom.nds", 0x184D0, 0x18 + .incbin "baserom.nds", 0x184E8, 0x18 + .incbin "baserom.nds", 0x18500, 0x1C + .incbin "baserom.nds", 0x1851C, 0x94 + .incbin "baserom.nds", 0x185B0, 0x8 + .incbin "baserom.nds", 0x185B8, 0x10 + .incbin "baserom.nds", 0x185C8, 0x8 + .incbin "baserom.nds", 0x185D0, 0x8 + .incbin "baserom.nds", 0x185D8, 0x8 + .incbin "baserom.nds", 0x185E0, 0x8 + .incbin "baserom.nds", 0x185E8, 0xD8 + .incbin "baserom.nds", 0x186C0, 0x240 + .incbin "baserom.nds", 0x18900, 0x8 + .incbin "baserom.nds", 0x18908, 0x40 + .incbin "baserom.nds", 0x18948, 0x38 + .incbin "baserom.nds", 0x18980, 0x1C + .incbin "baserom.nds", 0x1899C, 0x10 + .incbin "baserom.nds", 0x189AC, 0xF8 + .incbin "baserom.nds", 0x18AA4, 0x10 + .incbin "baserom.nds", 0x18AB4, 0x8 + .incbin "baserom.nds", 0x18ABC, 0x14 + .incbin "baserom.nds", 0x18AD0, 0x8 + .incbin "baserom.nds", 0x18AD8, 0x51C + .incbin "baserom.nds", 0x18FF4, 0x18 + .incbin "baserom.nds", 0x1900C, 0x10C + .incbin "baserom.nds", 0x19118, 0x24 + .incbin "baserom.nds", 0x1913C, 0x84 + .incbin "baserom.nds", 0x191C0, 0x8 + .incbin "baserom.nds", 0x191C8, 0x8 + .incbin "baserom.nds", 0x191D0, 0x8 + .incbin "baserom.nds", 0x191D8, 0xD0 + .incbin "baserom.nds", 0x192A8, 0x8 + .incbin "baserom.nds", 0x192B0, 0x6C + .incbin "baserom.nds", 0x1931C, 0x8 + .incbin "baserom.nds", 0x19324, 0x188 + .incbin "baserom.nds", 0x194AC, 0xCC + .incbin "baserom.nds", 0x19578, 0xCC + .incbin "baserom.nds", 0x19644, 0x268 + .incbin "baserom.nds", 0x198AC, 0x1C + .incbin "baserom.nds", 0x198C8, 0xCC + .incbin "baserom.nds", 0x19994, 0x398 + .incbin "baserom.nds", 0x19D2C, 0x48 + .incbin "baserom.nds", 0x19D74, 0x10 + .incbin "baserom.nds", 0x19D84, 0x6D8 + .incbin "baserom.nds", 0x1A45C, 0x320 + .incbin "baserom.nds", 0x1A77C, 0x1A0 + .incbin "baserom.nds", 0x1A91C, 0x10 + .incbin "baserom.nds", 0x1A92C, 0x6C + .incbin "baserom.nds", 0x1A998, 0x8 + .incbin "baserom.nds", 0x1A9A0, 0x14C + .incbin "baserom.nds", 0x1AAEC, 0x10 + .incbin "baserom.nds", 0x1AAFC, 0x3C + .incbin "baserom.nds", 0x1AB38, 0x23C + .incbin "baserom.nds", 0x1AD74, 0x8C + .incbin "baserom.nds", 0x1AE00, 0x150 + .incbin "baserom.nds", 0x1AF50, 0xF8 + .incbin "baserom.nds", 0x1B048, 0x3DC + .incbin "baserom.nds", 0x1B424, 0x1F8 + .incbin "baserom.nds", 0x1B61C, 0x8 + .incbin "baserom.nds", 0x1B624, 0x11D0 + .incbin "baserom.nds", 0x1C7F4, 0x1B4 + .incbin "baserom.nds", 0x1C9A8, 0x208 + .incbin "baserom.nds", 0x1CBB0, 0x1F8 + .incbin "baserom.nds", 0x1CDA8, 0x5C0 + .incbin "baserom.nds", 0x1D368, 0x664 + .incbin "baserom.nds", 0x1D9CC, 0x7E4 + .incbin "baserom.nds", 0x1E1B0, 0x80 + .incbin "baserom.nds", 0x1E230, 0xC + .incbin "baserom.nds", 0x1E23C, 0xC + .incbin "baserom.nds", 0x1E248, 0x8 + .incbin "baserom.nds", 0x1E250, 0x8 + .incbin "baserom.nds", 0x1E258, 0x1A0C + .incbin "baserom.nds", 0x1FC64, 0x8 + .incbin "baserom.nds", 0x1FC6C, 0x3F0 + .incbin "baserom.nds", 0x2005C, 0x110 + .incbin "baserom.nds", 0x2016C, 0x600 + .incbin "baserom.nds", 0x2076C, 0x620 + .incbin "baserom.nds", 0x20D8C, 0x144 + .incbin "baserom.nds", 0x20ED0, 0x154 + .incbin "baserom.nds", 0x21024, 0x5AC + .incbin "baserom.nds", 0x215D0, 0x288 + .incbin "baserom.nds", 0x21858, 0x1C + .incbin "baserom.nds", 0x21874, 0x550 + .incbin "baserom.nds", 0x21DC4, 0x213C + .incbin "baserom.nds", 0x23F00, 0x60 + .incbin "baserom.nds", 0x23F60, 0xEC + .incbin "baserom.nds", 0x2404C, 0x108 + .incbin "baserom.nds", 0x24154, 0x8 + .incbin "baserom.nds", 0x2415C, 0x2A0 + .incbin "baserom.nds", 0x243FC, 0x3E4 + .incbin "baserom.nds", 0x247E0, 0xE8 + .incbin "baserom.nds", 0x248C8, 0x2C + .incbin "baserom.nds", 0x248F4, 0x288 + .incbin "baserom.nds", 0x24B7C, 0x6C0 + .incbin "baserom.nds", 0x2523C, 0x49C + .incbin "baserom.nds", 0x256D8, 0x26C + .incbin "baserom.nds", 0x25944, 0x50 + .incbin "baserom.nds", 0x25994, 0x94 + .incbin "baserom.nds", 0x25A28, 0x2DC + .incbin "baserom.nds", 0x25D04, 0x80 + .incbin "baserom.nds", 0x25D84, 0x50 + .incbin "baserom.nds", 0x25DD4, 0x128 + .incbin "baserom.nds", 0x25EFC, 0xA0 + .incbin "baserom.nds", 0x25F9C, 0x8 + .incbin "baserom.nds", 0x25FA4, 0x3F4 + .incbin "baserom.nds", 0x26398, 0xCC + .incbin "baserom.nds", 0x26464, 0x2BC + .incbin "baserom.nds", 0x26720, 0x2DC + .incbin "baserom.nds", 0x269FC, 0x10 + .incbin "baserom.nds", 0x26A0C, 0x8 + .incbin "baserom.nds", 0x26A14, 0x8 + .incbin "baserom.nds", 0x26A1C, 0x8 + .incbin "baserom.nds", 0x26A24, 0xC8 + .incbin "baserom.nds", 0x26AEC, 0x3BC + .incbin "baserom.nds", 0x26EA8, 0xEC + .incbin "baserom.nds", 0x26F94, 0x50 + .incbin "baserom.nds", 0x26FE4, 0x20C + .incbin "baserom.nds", 0x271F0, 0x50 + .incbin "baserom.nds", 0x27240, 0xCC + .incbin "baserom.nds", 0x2730C, 0x16C + .incbin "baserom.nds", 0x27478, 0xBC + .incbin "baserom.nds", 0x27534, 0x78 + .incbin "baserom.nds", 0x275AC, 0x3AC + .incbin "baserom.nds", 0x27958, 0x10C + .incbin "baserom.nds", 0x27A64, 0x5CC + .incbin "baserom.nds", 0x28030, 0x168 + .incbin "baserom.nds", 0x28198, 0x30 + .incbin "baserom.nds", 0x281C8, 0x6F4 + .incbin "baserom.nds", 0x288BC, 0x5C + .incbin "baserom.nds", 0x28918, 0x70 + .incbin "baserom.nds", 0x28988, 0x150 + .incbin "baserom.nds", 0x28AD8, 0x7C + .incbin "baserom.nds", 0x28B54, 0xD0 + .incbin "baserom.nds", 0x28C24, 0x38 + .incbin "baserom.nds", 0x28C5C, 0x164 + .incbin "baserom.nds", 0x28DC0, 0x50 + .incbin "baserom.nds", 0x28E10, 0x9C + .incbin "baserom.nds", 0x28EAC, 0x4C + .incbin "baserom.nds", 0x28EF8, 0x80 + .incbin "baserom.nds", 0x28F78, 0x64 + .incbin "baserom.nds", 0x28FDC, 0x38 + .incbin "baserom.nds", 0x29014, 0xC4 + .incbin "baserom.nds", 0x290D8, 0x118 + .incbin "baserom.nds", 0x291F0, 0x20 + .incbin "baserom.nds", 0x29210, 0x6C + .incbin "baserom.nds", 0x2927C, 0xA88 + .incbin "baserom.nds", 0x29D04, 0x18C + .incbin "baserom.nds", 0x29E90, 0x15C + .incbin "baserom.nds", 0x29FEC, 0xD4 + .incbin "baserom.nds", 0x2A0C0, 0x12C + .incbin "baserom.nds", 0x2A1EC, 0x30 + .incbin "baserom.nds", 0x2A21C, 0x3BC + .incbin "baserom.nds", 0x2A5D8, 0x38 + .incbin "baserom.nds", 0x2A610, 0x60 + .incbin "baserom.nds", 0x2A670, 0x8 + .incbin "baserom.nds", 0x2A678, 0x218 + .incbin "baserom.nds", 0x2A890, 0x84 + .incbin "baserom.nds", 0x2A914, 0x38 + .incbin "baserom.nds", 0x2A94C, 0x30 + .incbin "baserom.nds", 0x2A97C, 0x2D8 + .incbin "baserom.nds", 0x2AC54, 0x44 + .incbin "baserom.nds", 0x2AC98, 0x7C + .incbin "baserom.nds", 0x2AD14, 0x8 + .incbin "baserom.nds", 0x2AD1C, 0x760 + .incbin "baserom.nds", 0x2B47C, 0x70 + .incbin "baserom.nds", 0x2B4EC, 0x4DC + .incbin "baserom.nds", 0x2B9C8, 0x8 + .incbin "baserom.nds", 0x2B9D0, 0x8 + .incbin "baserom.nds", 0x2B9D8, 0x4 + .incbin "baserom.nds", 0x2B9DC, 0x4 + .incbin "baserom.nds", 0x2B9E0, 0x28 + .incbin "baserom.nds", 0x2BA08, 0x10 + .incbin "baserom.nds", 0x2BA18, 0x8 + .incbin "baserom.nds", 0x2BA20, 0x4 + .incbin "baserom.nds", 0x2BA24, 0x4 + .incbin "baserom.nds", 0x2BA28, 0x8 + .incbin "baserom.nds", 0x2BA30, 0x8 + .incbin "baserom.nds", 0x2BA38, 0x4 + .incbin "baserom.nds", 0x2BA3C, 0x4 + .incbin "baserom.nds", 0x2BA40, 0x4 + .incbin "baserom.nds", 0x2BA44, 0x4 + .incbin "baserom.nds", 0x2BA48, 0x4 + .incbin "baserom.nds", 0x2BA4C, 0x4 + .incbin "baserom.nds", 0x2BA50, 0x4 + .incbin "baserom.nds", 0x2BA54, 0x4 + .incbin "baserom.nds", 0x2BA58, 0x4 + .incbin "baserom.nds", 0x2BA5C, 0x4 + .incbin "baserom.nds", 0x2BA60, 0x4 + .incbin "baserom.nds", 0x2BA64, 0x4 + .incbin "baserom.nds", 0x2BA68, 0x4 + .incbin "baserom.nds", 0x2BA6C, 0x4 + .incbin "baserom.nds", 0x2BA70, 0x4 + .incbin "baserom.nds", 0x2BA74, 0x14 + .incbin "baserom.nds", 0x2BA88, 0x4 + .incbin "baserom.nds", 0x2BA8C, 0x4 + .incbin "baserom.nds", 0x2BA90, 0x4 + .incbin "baserom.nds", 0x2BA94, 0x4 + .incbin "baserom.nds", 0x2BA98, 0x4 + .incbin "baserom.nds", 0x2BA9C, 0x24 + .incbin "baserom.nds", 0x2BAC0, 0x8 + .incbin "baserom.nds", 0x2BAC8, 0x8 + .incbin "baserom.nds", 0x2BAD0, 0x4 + .incbin "baserom.nds", 0x2BAD4, 0x28 + .incbin "baserom.nds", 0x2BAFC, 0x10 + .incbin "baserom.nds", 0x2BB0C, 0x4 + .incbin "baserom.nds", 0x2BB10, 0x4 + .incbin "baserom.nds", 0x2BB14, 0x14 + .incbin "baserom.nds", 0x2BB28, 0x4 + .incbin "baserom.nds", 0x2BB2C, 0x4 + .incbin "baserom.nds", 0x2BB30, 0x1C + .incbin "baserom.nds", 0x2BB4C, 0x8 + .incbin "baserom.nds", 0x2BB54, 0x8 + .incbin "baserom.nds", 0x2BB5C, 0x4 + .incbin "baserom.nds", 0x2BB60, 0x8 + .incbin "baserom.nds", 0x2BB68, 0x4 + .incbin "baserom.nds", 0x2BB6C, 0x4 + .incbin "baserom.nds", 0x2BB70, 0x28 + .incbin "baserom.nds", 0x2BB98, 0x10 + .incbin "baserom.nds", 0x2BBA8, 0x4 + .incbin "baserom.nds", 0x2BBAC, 0x4 + .incbin "baserom.nds", 0x2BBB0, 0x4 + .incbin "baserom.nds", 0x2BBB4, 0x4 + .incbin "baserom.nds", 0x2BBB8, 0x4 + .incbin "baserom.nds", 0x2BBBC, 0x4 + .incbin "baserom.nds", 0x2BBC0, 0x4 + .incbin "baserom.nds", 0x2BBC4, 0x4 + .incbin "baserom.nds", 0x2BBC8, 0x4 + .incbin "baserom.nds", 0x2BBCC, 0x4 + .incbin "baserom.nds", 0x2BBD0, 0x4 + .incbin "baserom.nds", 0x2BBD4, 0x4 + .incbin "baserom.nds", 0x2BBD8, 0x4 + .incbin "baserom.nds", 0x2BBDC, 0x4 + .incbin "baserom.nds", 0x2BBE0, 0x4 + .incbin "baserom.nds", 0x2BBE4, 0x8 + .incbin "baserom.nds", 0x2BBEC, 0x8 + .incbin "baserom.nds", 0x2BBF4, 0x4 + .incbin "baserom.nds", 0x2BBF8, 0xC + .incbin "baserom.nds", 0x2BC04, 0x4 + .incbin "baserom.nds", 0x2BC08, 0x28 + .incbin "baserom.nds", 0x2BC30, 0x10 + .incbin "baserom.nds", 0x2BC40, 0x4 + .incbin "baserom.nds", 0x2BC44, 0x4 + .incbin "baserom.nds", 0x2BC48, 0x4 + .incbin "baserom.nds", 0x2BC4C, 0x4 + .incbin "baserom.nds", 0x2BC50, 0x4 + .incbin "baserom.nds", 0x2BC54, 0x4 + .incbin "baserom.nds", 0x2BC58, 0x4 + .incbin "baserom.nds", 0x2BC5C, 0x4 + .incbin "baserom.nds", 0x2BC60, 0x4 + .incbin "baserom.nds", 0x2BC64, 0x8 + .incbin "baserom.nds", 0x2BC6C, 0x4 + .incbin "baserom.nds", 0x2BC70, 0x4 + .incbin "baserom.nds", 0x2BC74, 0x4 + .incbin "baserom.nds", 0x2BC78, 0x4 + .incbin "baserom.nds", 0x2BC7C, 0x14 + .incbin "baserom.nds", 0x2BC90, 0x8 + .incbin "baserom.nds", 0x2BC98, 0x8 + .incbin "baserom.nds", 0x2BCA0, 0x8 + .incbin "baserom.nds", 0x2BCA8, 0x8 + .incbin "baserom.nds", 0x2BCB0, 0x8 + .incbin "baserom.nds", 0x2BCB8, 0x4 + .incbin "baserom.nds", 0x2BCBC, 0x4 + .incbin "baserom.nds", 0x2BCC0, 0x28 + .incbin "baserom.nds", 0x2BCE8, 0x10 + .incbin "baserom.nds", 0x2BCF8, 0x4 + .incbin "baserom.nds", 0x2BCFC, 0x4 + .incbin "baserom.nds", 0x2BD00, 0x10 + .incbin "baserom.nds", 0x2BD10, 0x8 + .incbin "baserom.nds", 0x2BD18, 0x8 + .incbin "baserom.nds", 0x2BD20, 0x8 + .incbin "baserom.nds", 0x2BD28, 0x4 + .incbin "baserom.nds", 0x2BD2C, 0x4 + .incbin "baserom.nds", 0x2BD30, 0x4 + .incbin "baserom.nds", 0x2BD34, 0x4 + .incbin "baserom.nds", 0x2BD38, 0x4 + .incbin "baserom.nds", 0x2BD3C, 0x10 + .incbin "baserom.nds", 0x2BD4C, 0x4 + .incbin "baserom.nds", 0x2BD50, 0xC + .incbin "baserom.nds", 0x2BD5C, 0x1C + .incbin "baserom.nds", 0x2BD78, 0x10 + .incbin "baserom.nds", 0x2BD88, 0x4 + .incbin "baserom.nds", 0x2BD8C, 0x4 + .incbin "baserom.nds", 0x2BD90, 0x8 + .incbin "baserom.nds", 0x2BD98, 0x8 + .incbin "baserom.nds", 0x2BDA0, 0x8 + .incbin "baserom.nds", 0x2BDA8, 0x4 + .incbin "baserom.nds", 0x2BDAC, 0x28 + .incbin "baserom.nds", 0x2BDD4, 0x10 + .incbin "baserom.nds", 0x2BDE4, 0x14 + .incbin "baserom.nds", 0x2BDF8, 0x4 + .incbin "baserom.nds", 0x2BDFC, 0x4 + .incbin "baserom.nds", 0x2BE00, 0x4 + .incbin "baserom.nds", 0x2BE04, 0x4 + .incbin "baserom.nds", 0x2BE08, 0x4 + .incbin "baserom.nds", 0x2BE0C, 0x4 + .incbin "baserom.nds", 0x2BE10, 0x14 + .incbin "baserom.nds", 0x2BE24, 0x8 + .incbin "baserom.nds", 0x2BE2C, 0x4 + .incbin "baserom.nds", 0x2BE30, 0x28 + .incbin "baserom.nds", 0x2BE58, 0x10 + .incbin "baserom.nds", 0x2BE68, 0x4 + .incbin "baserom.nds", 0x2BE6C, 0x4 + .incbin "baserom.nds", 0x2BE70, 0x4 + .incbin "baserom.nds", 0x2BE74, 0x4 + .incbin "baserom.nds", 0x2BE78, 0x4 + .incbin "baserom.nds", 0x2BE7C, 0x4 + .incbin "baserom.nds", 0x2BE80, 0x4 + .incbin "baserom.nds", 0x2BE84, 0x4 + .incbin "baserom.nds", 0x2BE88, 0x4 + .incbin "baserom.nds", 0x2BE8C, 0x4 + .incbin "baserom.nds", 0x2BE90, 0x4 + .incbin "baserom.nds", 0x2BE94, 0x4 + .incbin "baserom.nds", 0x2BE98, 0x4 + .incbin "baserom.nds", 0x2BE9C, 0x4 + .incbin "baserom.nds", 0x2BEA0, 0x14 + .incbin "baserom.nds", 0x2BEB4, 0x8 + .incbin "baserom.nds", 0x2BEBC, 0x8 + .incbin "baserom.nds", 0x2BEC4, 0x8 + .incbin "baserom.nds", 0x2BECC, 0x8 + .incbin "baserom.nds", 0x2BED4, 0x4 + .incbin "baserom.nds", 0x2BED8, 0x28 + .incbin "baserom.nds", 0x2BF00, 0x10 + .incbin "baserom.nds", 0x2BF10, 0x8 + .incbin "baserom.nds", 0x2BF18, 0x4 + .incbin "baserom.nds", 0x2BF1C, 0x4 + .incbin "baserom.nds", 0x2BF20, 0x4 + .incbin "baserom.nds", 0x2BF24, 0x4 + .incbin "baserom.nds", 0x2BF28, 0x4 + .incbin "baserom.nds", 0x2BF2C, 0x4 + .incbin "baserom.nds", 0x2BF30, 0x4 + .incbin "baserom.nds", 0x2BF34, 0x10 + .incbin "baserom.nds", 0x2BF44, 0x4 + .incbin "baserom.nds", 0x2BF48, 0x8 + .incbin "baserom.nds", 0x2BF50, 0x8 + .incbin "baserom.nds", 0x2BF58, 0x8 + .incbin "baserom.nds", 0x2BF60, 0x4 + .incbin "baserom.nds", 0x2BF64, 0x28 + .incbin "baserom.nds", 0x2BF8C, 0x10 + .incbin "baserom.nds", 0x2BF9C, 0x4 + .incbin "baserom.nds", 0x2BFA0, 0x4 + .incbin "baserom.nds", 0x2BFA4, 0x4 + .incbin "baserom.nds", 0x2BFA8, 0x8 + .incbin "baserom.nds", 0x2BFB0, 0x28 + .incbin "baserom.nds", 0x2BFD8, 0x10 + .incbin "baserom.nds", 0x2BFE8, 0x8 + .incbin "baserom.nds", 0x2BFF0, 0x8 + .incbin "baserom.nds", 0x2BFF8, 0x10 + .incbin "baserom.nds", 0x2C008, 0x8 + .incbin "baserom.nds", 0x2C010, 0x10 + .incbin "baserom.nds", 0x2C020, 0x8 + .incbin "baserom.nds", 0x2C028, 0x10 + .incbin "baserom.nds", 0x2C038, 0x8 + .incbin "baserom.nds", 0x2C040, 0x10 + .incbin "baserom.nds", 0x2C050, 0x8 + .incbin "baserom.nds", 0x2C058, 0x14 + .incbin "baserom.nds", 0x2C06C, 0x10 + .incbin "baserom.nds", 0x2C07C, 0x10 + .incbin "baserom.nds", 0x2C08C, 0x28 + .incbin "baserom.nds", 0x2C0B4, 0x10 + .incbin "baserom.nds", 0x2C0C4, 0x14 + .incbin "baserom.nds", 0x2C0D8, 0x8 + .incbin "baserom.nds", 0x2C0E0, 0x4 + .incbin "baserom.nds", 0x2C0E4, 0x28 + .incbin "baserom.nds", 0x2C10C, 0x10 + .incbin "baserom.nds", 0x2C11C, 0x14 + .incbin "baserom.nds", 0x2C130, 0x4 + .incbin "baserom.nds", 0x2C134, 0x4 + .incbin "baserom.nds", 0x2C138, 0x4 + .incbin "baserom.nds", 0x2C13C, 0x4 + .incbin "baserom.nds", 0x2C140, 0x8 + .incbin "baserom.nds", 0x2C148, 0x4 + .incbin "baserom.nds", 0x2C14C, 0x10 + .incbin "baserom.nds", 0x2C15C, 0x14 + .incbin "baserom.nds", 0x2C170, 0x8 + .incbin "baserom.nds", 0x2C178, 0x8 + .incbin "baserom.nds", 0x2C180, 0x4 + .incbin "baserom.nds", 0x2C184, 0x8 + .incbin "baserom.nds", 0x2C18C, 0x8 + .incbin "baserom.nds", 0x2C194, 0x4 + .incbin "baserom.nds", 0x2C198, 0x4 + .incbin "baserom.nds", 0x2C19C, 0x4 + .incbin "baserom.nds", 0x2C1A0, 0x4 + .incbin "baserom.nds", 0x2C1A4, 0x4 + .incbin "baserom.nds", 0x2C1A8, 0x4 + .incbin "baserom.nds", 0x2C1AC, 0x4 + .incbin "baserom.nds", 0x2C1B0, 0x4 + .incbin "baserom.nds", 0x2C1B4, 0x4 + .incbin "baserom.nds", 0x2C1B8, 0x4 + .incbin "baserom.nds", 0x2C1BC, 0x4 + .incbin "baserom.nds", 0x2C1C0, 0x4 + .incbin "baserom.nds", 0x2C1C4, 0x4 + .incbin "baserom.nds", 0x2C1C8, 0xC + .incbin "baserom.nds", 0x2C1D4, 0x4 + .incbin "baserom.nds", 0x2C1D8, 0xC + .incbin "baserom.nds", 0x2C1E4, 0x8 + .incbin "baserom.nds", 0x2C1EC, 0x4 + .incbin "baserom.nds", 0x2C1F0, 0x8 + .incbin "baserom.nds", 0x2C1F8, 0x8 + .incbin "baserom.nds", 0x2C200, 0x8 + .incbin "baserom.nds", 0x2C208, 0x8 + .incbin "baserom.nds", 0x2C210, 0x8 + .incbin "baserom.nds", 0x2C218, 0x8 + .incbin "baserom.nds", 0x2C220, 0x4 + .incbin "baserom.nds", 0x2C224, 0x8 + .incbin "baserom.nds", 0x2C22C, 0x4 + .incbin "baserom.nds", 0x2C230, 0x4 + .incbin "baserom.nds", 0x2C234, 0x4 + .incbin "baserom.nds", 0x2C238, 0x4 + .incbin "baserom.nds", 0x2C23C, 0x4 + .incbin "baserom.nds", 0x2C240, 0x4 + .incbin "baserom.nds", 0x2C244, 0x4 + .incbin "baserom.nds", 0x2C248, 0x4 + .incbin "baserom.nds", 0x2C24C, 0x4 + .incbin "baserom.nds", 0x2C250, 0x4 + .incbin "baserom.nds", 0x2C254, 0x4 + .incbin "baserom.nds", 0x2C258, 0x4 + .incbin "baserom.nds", 0x2C25C, 0x4 + .incbin "baserom.nds", 0x2C260, 0x4 + .incbin "baserom.nds", 0x2C264, 0x4 + .incbin "baserom.nds", 0x2C268, 0x4 + .incbin "baserom.nds", 0x2C26C, 0x8 + .incbin "baserom.nds", 0x2C274, 0x4 + .incbin "baserom.nds", 0x2C278, 0x4 + .incbin "baserom.nds", 0x2C27C, 0x8 + .incbin "baserom.nds", 0x2C284, 0x4 + .incbin "baserom.nds", 0x2C288, 0x4 + .incbin "baserom.nds", 0x2C28C, 0x14 + .incbin "baserom.nds", 0x2C2A0, 0x8 + .incbin "baserom.nds", 0x2C2A8, 0x8 + .incbin "baserom.nds", 0x2C2B0, 0x4 + .incbin "baserom.nds", 0x2C2B4, 0x8 + .incbin "baserom.nds", 0x2C2BC, 0x4 + .incbin "baserom.nds", 0x2C2C0, 0x8 + .incbin "baserom.nds", 0x2C2C8, 0x4 + .incbin "baserom.nds", 0x2C2CC, 0x8 + .incbin "baserom.nds", 0x2C2D4, 0x4 + .incbin "baserom.nds", 0x2C2D8, 0x8 + .incbin "baserom.nds", 0x2C2E0, 0x8 + .incbin "baserom.nds", 0x2C2E8, 0x8 + .incbin "baserom.nds", 0x2C2F0, 0xC + .incbin "baserom.nds", 0x2C2FC, 0x8 + .incbin "baserom.nds", 0x2C304, 0x4 + .incbin "baserom.nds", 0x2C308, 0x8 + .incbin "baserom.nds", 0x2C310, 0x8 + .incbin "baserom.nds", 0x2C318, 0xC + .incbin "baserom.nds", 0x2C324, 0x8 + .incbin "baserom.nds", 0x2C32C, 0x8 + .incbin "baserom.nds", 0x2C334, 0x8 + .incbin "baserom.nds", 0x2C33C, 0x8 + .incbin "baserom.nds", 0x2C344, 0x8 + .incbin "baserom.nds", 0x2C34C, 0x8 + .incbin "baserom.nds", 0x2C354, 0x8 + .incbin "baserom.nds", 0x2C35C, 0x8 + .incbin "baserom.nds", 0x2C364, 0x8 + .incbin "baserom.nds", 0x2C36C, 0x8 + .incbin "baserom.nds", 0x2C374, 0x8 + .incbin "baserom.nds", 0x2C37C, 0x8 + .incbin "baserom.nds", 0x2C384, 0x8 + .incbin "baserom.nds", 0x2C38C, 0x8 + .incbin "baserom.nds", 0x2C394, 0x8 + .incbin "baserom.nds", 0x2C39C, 0x8 + .incbin "baserom.nds", 0x2C3A4, 0x8 + .incbin "baserom.nds", 0x2C3AC, 0x8 + .incbin "baserom.nds", 0x2C3B4, 0xC + .incbin "baserom.nds", 0x2C3C0, 0x4 + .incbin "baserom.nds", 0x2C3C4, 0x8 + .incbin "baserom.nds", 0x2C3CC, 0x4 + .incbin "baserom.nds", 0x2C3D0, 0x4 + .incbin "baserom.nds", 0x2C3D4, 0x4 + .incbin "baserom.nds", 0x2C3D8, 0x4 + .incbin "baserom.nds", 0x2C3DC, 0x8 + .incbin "baserom.nds", 0x2C3E4, 0x8 + .incbin "baserom.nds", 0x2C3EC, 0x4 + .incbin "baserom.nds", 0x2C3F0, 0x8 + .incbin "baserom.nds", 0x2C3F8, 0x4 + .incbin "baserom.nds", 0x2C3FC, 0x4 + .incbin "baserom.nds", 0x2C400, 0x8 + .incbin "baserom.nds", 0x2C408, 0x8 + .incbin "baserom.nds", 0x2C410, 0x8 + .incbin "baserom.nds", 0x2C418, 0x4 + .incbin "baserom.nds", 0x2C41C, 0x8 + .incbin "baserom.nds", 0x2C424, 0x4 + .incbin "baserom.nds", 0x2C428, 0x8 + .incbin "baserom.nds", 0x2C430, 0x8 + .incbin "baserom.nds", 0x2C438, 0x8 + .incbin "baserom.nds", 0x2C440, 0x8 + .incbin "baserom.nds", 0x2C448, 0x14 + .incbin "baserom.nds", 0x2C45C, 0x4 + .incbin "baserom.nds", 0x2C460, 0x4 + .incbin "baserom.nds", 0x2C464, 0x4 + .incbin "baserom.nds", 0x2C468, 0x4 + .incbin "baserom.nds", 0x2C46C, 0x4 + .incbin "baserom.nds", 0x2C470, 0x14 + .incbin "baserom.nds", 0x2C484, 0x4 + .incbin "baserom.nds", 0x2C488, 0x8 + .incbin "baserom.nds", 0x2C490, 0x4 + .incbin "baserom.nds", 0x2C494, 0x4 + .incbin "baserom.nds", 0x2C498, 0x4 + .incbin "baserom.nds", 0x2C49C, 0x4 + .incbin "baserom.nds", 0x2C4A0, 0x4 + .incbin "baserom.nds", 0x2C4A4, 0xC + .incbin "baserom.nds", 0x2C4B0, 0x4 + .incbin "baserom.nds", 0x2C4B4, 0x8 + .incbin "baserom.nds", 0x2C4BC, 0x18 + .incbin "baserom.nds", 0x2C4D4, 0x18 + .incbin "baserom.nds", 0x2C4EC, 0x8 + .incbin "baserom.nds", 0x2C4F4, 0x8 + .incbin "baserom.nds", 0x2C4FC, 0x4 + .incbin "baserom.nds", 0x2C500, 0x4 + .incbin "baserom.nds", 0x2C504, 0xC + .incbin "baserom.nds", 0x2C510, 0x8 + .incbin "baserom.nds", 0x2C518, 0x4 + .incbin "baserom.nds", 0x2C51C, 0x10 + .incbin "baserom.nds", 0x2C52C, 0xC + .incbin "baserom.nds", 0x2C538, 0x8 + .incbin "baserom.nds", 0x2C540, 0xC + .incbin "baserom.nds", 0x2C54C, 0x4 + .incbin "baserom.nds", 0x2C550, 0x4 + .incbin "baserom.nds", 0x2C554, 0x4 + .incbin "baserom.nds", 0x2C558, 0x2C + .incbin "baserom.nds", 0x2C584, 0x20 + .incbin "baserom.nds", 0x2C5A4, 0x18 + .incbin "baserom.nds", 0x2C5BC, 0x18 + .incbin "baserom.nds", 0x2C5D4, 0x20 + .incbin "baserom.nds", 0x2C5F4, 0x20 + .incbin "baserom.nds", 0x2C614, 0x20 + .incbin "baserom.nds", 0x2C634, 0x8 + .incbin "baserom.nds", 0x2C63C, 0x8 + .incbin "baserom.nds", 0x2C644, 0x4 + .incbin "baserom.nds", 0x2C648, 0x4 + .incbin "baserom.nds", 0x2C64C, 0x18 + .incbin "baserom.nds", 0x2C664, 0x4 + .incbin "baserom.nds", 0x2C668, 0xC + .incbin "baserom.nds", 0x2C674, 0x14 + .incbin "baserom.nds", 0x2C688, 0x4 + .incbin "baserom.nds", 0x2C68C, 0x4 + .incbin "baserom.nds", 0x2C690, 0xC + .incbin "baserom.nds", 0x2C69C, 0x4 + .incbin "baserom.nds", 0x2C6A0, 0x8 + .incbin "baserom.nds", 0x2C6A8, 0x8 + .incbin "baserom.nds", 0x2C6B0, 0x4 + .incbin "baserom.nds", 0x2C6B4, 0x4 + .incbin "baserom.nds", 0x2C6B8, 0x4 + .incbin "baserom.nds", 0x2C6BC, 0x8 + .incbin "baserom.nds", 0x2C6C4, 0x4 + .incbin "baserom.nds", 0x2C6C8, 0x4 + .incbin "baserom.nds", 0x2C6CC, 0x18 + .incbin "baserom.nds", 0x2C6E4, 0x8 + .incbin "baserom.nds", 0x2C6EC, 0x4 + .incbin "baserom.nds", 0x2C6F0, 0x8 + .incbin "baserom.nds", 0x2C6F8, 0x4 + .incbin "baserom.nds", 0x2C6FC, 0x8 + .incbin "baserom.nds", 0x2C704, 0x8 + .incbin "baserom.nds", 0x2C70C, 0x8 + .incbin "baserom.nds", 0x2C714, 0x4 + .incbin "baserom.nds", 0x2C718, 0x4 + .incbin "baserom.nds", 0x2C71C, 0x4 + .incbin "baserom.nds", 0x2C720, 0x4 + .incbin "baserom.nds", 0x2C724, 0x8 + .incbin "baserom.nds", 0x2C72C, 0x8 + .incbin "baserom.nds", 0x2C734, 0x4 + .incbin "baserom.nds", 0x2C738, 0x8 + .incbin "baserom.nds", 0x2C740, 0x4 + .incbin "baserom.nds", 0x2C744, 0x4 + .incbin "baserom.nds", 0x2C748, 0x8 + .incbin "baserom.nds", 0x2C750, 0x8 + .incbin "baserom.nds", 0x2C758, 0x4 + .incbin "baserom.nds", 0x2C75C, 0x8 + .incbin "baserom.nds", 0x2C764, 0x8 + .incbin "baserom.nds", 0x2C76C, 0x8 + .incbin "baserom.nds", 0x2C774, 0x8 + .incbin "baserom.nds", 0x2C77C, 0x4 + .incbin "baserom.nds", 0x2C780, 0x8 + .incbin "baserom.nds", 0x2C788, 0x8 + .incbin "baserom.nds", 0x2C790, 0x4 + .incbin "baserom.nds", 0x2C794, 0x4 + .incbin "baserom.nds", 0x2C798, 0x4 + .incbin "baserom.nds", 0x2C79C, 0xC + .incbin "baserom.nds", 0x2C7A8, 0x4 + .incbin "baserom.nds", 0x2C7AC, 0x8 + .incbin "baserom.nds", 0x2C7B4, 0x4 + .incbin "baserom.nds", 0x2C7B8, 0x4 + .incbin "baserom.nds", 0x2C7BC, 0x4 + .incbin "baserom.nds", 0x2C7C0, 0x4 + .incbin "baserom.nds", 0x2C7C4, 0x4 + .incbin "baserom.nds", 0x2C7C8, 0x4 + .incbin "baserom.nds", 0x2C7CC, 0x4 + .incbin "baserom.nds", 0x2C7D0, 0x4 + .incbin "baserom.nds", 0x2C7D4, 0x4 + .incbin "baserom.nds", 0x2C7D8, 0x8 + .incbin "baserom.nds", 0x2C7E0, 0x20 + .incbin "baserom.nds", 0x2C800, 0x4 + .incbin "baserom.nds", 0x2C804, 0x8 + .incbin "baserom.nds", 0x2C80C, 0x8 + .incbin "baserom.nds", 0x2C814, 0x8 + .incbin "baserom.nds", 0x2C81C, 0x4 + .incbin "baserom.nds", 0x2C820, 0xC + .incbin "baserom.nds", 0x2C82C, 0x4 + .incbin "baserom.nds", 0x2C830, 0x4 + .incbin "baserom.nds", 0x2C834, 0x4 + .incbin "baserom.nds", 0x2C838, 0x4 + .incbin "baserom.nds", 0x2C83C, 0x4 + .incbin "baserom.nds", 0x2C840, 0x4 + .incbin "baserom.nds", 0x2C844, 0x4 + .incbin "baserom.nds", 0x2C848, 0x4 + .incbin "baserom.nds", 0x2C84C, 0x4 + .incbin "baserom.nds", 0x2C850, 0x4 + .incbin "baserom.nds", 0x2C854, 0x4 + .incbin "baserom.nds", 0x2C858, 0x4 + .incbin "baserom.nds", 0x2C85C, 0x8 + .incbin "baserom.nds", 0x2C864, 0x4 + .incbin "baserom.nds", 0x2C868, 0x10 + .incbin "baserom.nds", 0x2C878, 0x20 + .incbin "baserom.nds", 0x2C898, 0x14 + .incbin "baserom.nds", 0x2C8AC, 0x4 + .incbin "baserom.nds", 0x2C8B0, 0x4 + .incbin "baserom.nds", 0x2C8B4, 0x14 + .incbin "baserom.nds", 0x2C8C8, 0x8 + .incbin "baserom.nds", 0x2C8D0, 0x4 + .incbin "baserom.nds", 0x2C8D4, 0x28 + .incbin "baserom.nds", 0x2C8FC, 0x10 + .incbin "baserom.nds", 0x2C90C, 0x14 + .incbin "baserom.nds", 0x2C920, 0x4 + .incbin "baserom.nds", 0x2C924, 0x4 + .incbin "baserom.nds", 0x2C928, 0x4 + .incbin "baserom.nds", 0x2C92C, 0x8 + .incbin "baserom.nds", 0x2C934, 0x8 + .incbin "baserom.nds", 0x2C93C, 0x4 + .incbin "baserom.nds", 0x2C940, 0x28 + .incbin "baserom.nds", 0x2C968, 0x10 + .incbin "baserom.nds", 0x2C978, 0x4 + .incbin "baserom.nds", 0x2C97C, 0x4 + .incbin "baserom.nds", 0x2C980, 0x4 + .incbin "baserom.nds", 0x2C984, 0xC + .incbin "baserom.nds", 0x2C990, 0x8 + .incbin "baserom.nds", 0x2C998, 0x4 + .incbin "baserom.nds", 0x2C99C, 0x28 + .incbin "baserom.nds", 0x2C9C4, 0x10 + .incbin "baserom.nds", 0x2C9D4, 0x8 + .incbin "baserom.nds", 0x2C9DC, 0x4 + .incbin "baserom.nds", 0x2C9E0, 0x4 + .incbin "baserom.nds", 0x2C9E4, 0x4 + .incbin "baserom.nds", 0x2C9E8, 0x4 + .incbin "baserom.nds", 0x2C9EC, 0x14 + .incbin "baserom.nds", 0x2CA00, 0x8 + .incbin "baserom.nds", 0x2CA08, 0x4 + .incbin "baserom.nds", 0x2CA0C, 0x28 + .incbin "baserom.nds", 0x2CA34, 0x10 + .incbin "baserom.nds", 0x2CA44, 0x8 + .incbin "baserom.nds", 0x2CA4C, 0x4 + .incbin "baserom.nds", 0x2CA50, 0x4 + .incbin "baserom.nds", 0x2CA54, 0x4 + .incbin "baserom.nds", 0x2CA58, 0x4 + .incbin "baserom.nds", 0x2CA5C, 0x4 + .incbin "baserom.nds", 0x2CA60, 0x8 + .incbin "baserom.nds", 0x2CA68, 0x4 + .incbin "baserom.nds", 0x2CA6C, 0x28 + .incbin "baserom.nds", 0x2CA94, 0x10 + .incbin "baserom.nds", 0x2CAA4, 0x4 + .incbin "baserom.nds", 0x2CAA8, 0x4 + .incbin "baserom.nds", 0x2CAAC, 0x4 + .incbin "baserom.nds", 0x2CAB0, 0x4 + .incbin "baserom.nds", 0x2CAB4, 0x8 + .incbin "baserom.nds", 0x2CABC, 0x4 + .incbin "baserom.nds", 0x2CAC0, 0x28 + .incbin "baserom.nds", 0x2CAE8, 0x10 + .incbin "baserom.nds", 0x2CAF8, 0x14 + .incbin "baserom.nds", 0x2CB0C, 0x4 + .incbin "baserom.nds", 0x2CB10, 0x4 + .incbin "baserom.nds", 0x2CB14, 0x4 + .incbin "baserom.nds", 0x2CB18, 0x4 + .incbin "baserom.nds", 0x2CB1C, 0x18 + .incbin "baserom.nds", 0x2CB34, 0x10 + .incbin "baserom.nds", 0x2CB44, 0x4 + .incbin "baserom.nds", 0x2CB48, 0x4 + .incbin "baserom.nds", 0x2CB4C, 0x4 + .incbin "baserom.nds", 0x2CB50, 0x8 + .incbin "baserom.nds", 0x2CB58, 0x4 + .incbin "baserom.nds", 0x2CB5C, 0x3AC + .incbin "baserom.nds", 0x2CF08, 0x674 + .incbin "baserom.nds", 0x2D57C, 0xC0 + .incbin "baserom.nds", 0x2D63C, 0xBC + .incbin "baserom.nds", 0x2D6F8, 0x950 + .incbin "baserom.nds", 0x2E048, 0x98 + .incbin "baserom.nds", 0x2E0E0, 0x3C + .incbin "baserom.nds", 0x2E11C, 0x60 + .incbin "baserom.nds", 0x2E17C, 0x818 + .incbin "baserom.nds", 0x2E994, 0x50 + .incbin "baserom.nds", 0x2E9E4, 0x58 + .incbin "baserom.nds", 0x2EA3C, 0x1C + .incbin "baserom.nds", 0x2EA58, 0x8 + .incbin "baserom.nds", 0x2EA60, 0x714 + .incbin "baserom.nds", 0x2F174, 0x118 + .incbin "baserom.nds", 0x2F28C, 0x30 + .incbin "baserom.nds", 0x2F2BC, 0x30 + .incbin "baserom.nds", 0x2F2EC, 0x25C + .incbin "baserom.nds", 0x2F548, 0x64 + .incbin "baserom.nds", 0x2F5AC, 0x58 + .incbin "baserom.nds", 0x2F604, 0x8 + .incbin "baserom.nds", 0x2F60C, 0x8 + .incbin "baserom.nds", 0x2F614, 0xB8 + .incbin "baserom.nds", 0x2F6CC, 0x30 + .incbin "baserom.nds", 0x2F6FC, 0xC8 + .incbin "baserom.nds", 0x2F7C4, 0x168 + .incbin "baserom.nds", 0x2F92C, 0x64 + .incbin "baserom.nds", 0x2F990, 0x40 + .incbin "baserom.nds", 0x2F9D0, 0x8 + .incbin "baserom.nds", 0x2F9D8, 0x8 + .incbin "baserom.nds", 0x2F9E0, 0x70 + .incbin "baserom.nds", 0x2FA50, 0x40 + .incbin "baserom.nds", 0x2FA90, 0x338 + .incbin "baserom.nds", 0x2FDC8, 0x30 + .incbin "baserom.nds", 0x2FDF8, 0x148 + .incbin "baserom.nds", 0x2FF40, 0x374 + .incbin "baserom.nds", 0x302B4, 0x38 + .incbin "baserom.nds", 0x302EC, 0xE4 + .incbin "baserom.nds", 0x303D0, 0x8 + .incbin "baserom.nds", 0x303D8, 0x8 + .incbin "baserom.nds", 0x303E0, 0xF0 + .incbin "baserom.nds", 0x304D0, 0x180 + .incbin "baserom.nds", 0x30650, 0x30 + .incbin "baserom.nds", 0x30680, 0x64 + .incbin "baserom.nds", 0x306E4, 0x18C + .incbin "baserom.nds", 0x30870, 0xA8 + .incbin "baserom.nds", 0x30918, 0x50 + .incbin "baserom.nds", 0x30968, 0x58 + .incbin "baserom.nds", 0x309C0, 0x8 + .incbin "baserom.nds", 0x309C8, 0x8 + .incbin "baserom.nds", 0x309D0, 0xF0 + .incbin "baserom.nds", 0x30AC0, 0x60 + .incbin "baserom.nds", 0x30B20, 0x1C + .incbin "baserom.nds", 0x30B3C, 0xAC + .incbin "baserom.nds", 0x30BE8, 0x24 + .incbin "baserom.nds", 0x30C0C, 0x40 + .incbin "baserom.nds", 0x30C4C, 0x8 + .incbin "baserom.nds", 0x30C54, 0x8 + .incbin "baserom.nds", 0x30C5C, 0x2E4 + .incbin "baserom.nds", 0x30F40, 0x308 + .incbin "baserom.nds", 0x31248, 0x184 + .incbin "baserom.nds", 0x313CC, 0x74 + .incbin "baserom.nds", 0x31440, 0x4C + .incbin "baserom.nds", 0x3148C, 0x1130 + .incbin "baserom.nds", 0x325BC, 0x114 + .incbin "baserom.nds", 0x326D0, 0x230 + .incbin "baserom.nds", 0x32900, 0x338 + .incbin "baserom.nds", 0x32C38, 0xB08 + .incbin "baserom.nds", 0x33740, 0x8 + .incbin "baserom.nds", 0x33748, 0x8 + .incbin "baserom.nds", 0x33750, 0x38 + .incbin "baserom.nds", 0x33788, 0xF8 + .incbin "baserom.nds", 0x33880, 0x4C + .incbin "baserom.nds", 0x338CC, 0x0 + .balign 4, 255 diff --git a/narc/shinka/particle/shinka_demo_particle.narc.s b/narc/shinka/particle/shinka_demo_particle.narc.s new file mode 100644 index 00000000..4f41d271 --- /dev/null +++ b/narc/shinka/particle/shinka_demo_particle.narc.s @@ -0,0 +1,30 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00002494 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000001C ; chunk size + .short 2 ; number of files + .balign 4 + .word 0x00000000, 0x0000227C + .word 0x0000227C, 0x00002450 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00002458 ; chunk size + .incbin "baserom.nds", 0x0, 0x227C + .incbin "baserom.nds", 0x227C, 0x1D4 + .balign 4, 255 diff --git a/narc/skill/be_seq.narc.s b/narc/skill/be_seq.narc.s new file mode 100644 index 00000000..5e0a3999 --- /dev/null +++ b/narc/skill/be_seq.narc.s @@ -0,0 +1,580 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x000041FC ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000008B4 ; chunk size + .short 277 ; number of files + .balign 4 + .word 0x00000000, 0x0000000C + .word 0x0000000C, 0x00000020 + .word 0x00000020, 0x0000003C + .word 0x0000003C, 0x00000058 + .word 0x00000058, 0x00000074 + .word 0x00000074, 0x00000090 + .word 0x00000090, 0x000000AC + .word 0x000000AC, 0x000001A4 + .word 0x000001A4, 0x00000224 + .word 0x00000224, 0x00000264 + .word 0x00000264, 0x00000278 + .word 0x00000278, 0x0000028C + .word 0x0000028C, 0x00000298 + .word 0x00000298, 0x000002AC + .word 0x000002AC, 0x000002B8 + .word 0x000002B8, 0x000002C4 + .word 0x000002C4, 0x000002D8 + .word 0x000002D8, 0x000002E4 + .word 0x000002E4, 0x000002F8 + .word 0x000002F8, 0x0000030C + .word 0x0000030C, 0x00000320 + .word 0x00000320, 0x0000032C + .word 0x0000032C, 0x00000338 + .word 0x00000338, 0x0000034C + .word 0x0000034C, 0x00000360 + .word 0x00000360, 0x00000374 + .word 0x00000374, 0x000003C8 + .word 0x000003C8, 0x000003FC + .word 0x000003FC, 0x00000410 + .word 0x00000410, 0x00000438 + .word 0x00000438, 0x0000044C + .word 0x0000044C, 0x00000468 + .word 0x00000468, 0x0000047C + .word 0x0000047C, 0x00000490 + .word 0x00000490, 0x000004AC + .word 0x000004AC, 0x000004C0 + .word 0x000004C0, 0x000004F8 + .word 0x000004F8, 0x0000050C + .word 0x0000050C, 0x00000514 + .word 0x00000514, 0x000005B8 + .word 0x000005B8, 0x000005FC + .word 0x000005FC, 0x00000648 + .word 0x00000648, 0x00000664 + .word 0x00000664, 0x00000680 + .word 0x00000680, 0x000006A8 + .word 0x000006A8, 0x000006E8 + .word 0x000006E8, 0x000006FC + .word 0x000006FC, 0x0000073C + .word 0x0000073C, 0x0000077C + .word 0x0000077C, 0x00000790 + .word 0x00000790, 0x000007A4 + .word 0x000007A4, 0x000007B8 + .word 0x000007B8, 0x000007CC + .word 0x000007CC, 0x000007E0 + .word 0x000007E0, 0x000007F4 + .word 0x000007F4, 0x00000800 + .word 0x00000800, 0x0000080C + .word 0x0000080C, 0x00000820 + .word 0x00000820, 0x00000834 + .word 0x00000834, 0x00000848 + .word 0x00000848, 0x0000085C + .word 0x0000085C, 0x00000868 + .word 0x00000868, 0x0000087C + .word 0x0000087C, 0x00000888 + .word 0x00000888, 0x00000894 + .word 0x00000894, 0x000008A8 + .word 0x000008A8, 0x000008BC + .word 0x000008BC, 0x000008D0 + .word 0x000008D0, 0x000008EC + .word 0x000008EC, 0x00000908 + .word 0x00000908, 0x00000924 + .word 0x00000924, 0x00000940 + .word 0x00000940, 0x0000095C + .word 0x0000095C, 0x00000978 + .word 0x00000978, 0x00000984 + .word 0x00000984, 0x00000A24 + .word 0x00000A24, 0x00000A40 + .word 0x00000A40, 0x00000A78 + .word 0x00000A78, 0x00000A84 + .word 0x00000A84, 0x00000A98 + .word 0x00000A98, 0x00000AB4 + .word 0x00000AB4, 0x00000AD0 + .word 0x00000AD0, 0x00000AE4 + .word 0x00000AE4, 0x00000B0C + .word 0x00000B0C, 0x00000B20 + .word 0x00000B20, 0x00000B34 + .word 0x00000B34, 0x00000B48 + .word 0x00000B48, 0x00000B80 + .word 0x00000B80, 0x00000C08 + .word 0x00000C08, 0x00000C20 + .word 0x00000C20, 0x00000C34 + .word 0x00000C34, 0x00000C48 + .word 0x00000C48, 0x00000CAC + .word 0x00000CAC, 0x00000CC0 + .word 0x00000CC0, 0x00000CD4 + .word 0x00000CD4, 0x00000CE8 + .word 0x00000CE8, 0x00000CF4 + .word 0x00000CF4, 0x00000D40 + .word 0x00000D40, 0x00000D54 + .word 0x00000D54, 0x00000D64 + .word 0x00000D64, 0x00000D78 + .word 0x00000D78, 0x00000D84 + .word 0x00000D84, 0x00000D98 + .word 0x00000D98, 0x00000DA4 + .word 0x00000DA4, 0x00000DDC + .word 0x00000DDC, 0x00000DF8 + .word 0x00000DF8, 0x00000E0C + .word 0x00000E0C, 0x00000E70 + .word 0x00000E70, 0x00000E84 + .word 0x00000E84, 0x00000F08 + .word 0x00000F08, 0x00000F14 + .word 0x00000F14, 0x00000F28 + .word 0x00000F28, 0x00000F68 + .word 0x00000F68, 0x00000F8C + .word 0x00000F8C, 0x00000FA0 + .word 0x00000FA0, 0x00001048 + .word 0x00001048, 0x0000105C + .word 0x0000105C, 0x0000106C + .word 0x0000106C, 0x00001080 + .word 0x00001080, 0x00001090 + .word 0x00001090, 0x000010B4 + .word 0x000010B4, 0x000010F4 + .word 0x000010F4, 0x0000114C + .word 0x0000114C, 0x0000119C + .word 0x0000119C, 0x000011B0 + .word 0x000011B0, 0x000011CC + .word 0x000011CC, 0x00001234 + .word 0x00001234, 0x00001248 + .word 0x00001248, 0x00001254 + .word 0x00001254, 0x00001270 + .word 0x00001270, 0x000012BC + .word 0x000012BC, 0x000012C8 + .word 0x000012C8, 0x00001300 + .word 0x00001300, 0x0000130C + .word 0x0000130C, 0x00001318 + .word 0x00001318, 0x00001328 + .word 0x00001328, 0x000013D0 + .word 0x000013D0, 0x00001478 + .word 0x00001478, 0x00001494 + .word 0x00001494, 0x000014B0 + .word 0x000014B0, 0x000014CC + .word 0x000014CC, 0x000014D8 + .word 0x000014D8, 0x000014EC + .word 0x000014EC, 0x00001518 + .word 0x00001518, 0x00001530 + .word 0x00001530, 0x000015C0 + .word 0x000015C0, 0x00001624 + .word 0x00001624, 0x00001678 + .word 0x00001678, 0x000016C0 + .word 0x000016C0, 0x00001714 + .word 0x00001714, 0x00001768 + .word 0x00001768, 0x00001804 + .word 0x00001804, 0x00001830 + .word 0x00001830, 0x0000186C + .word 0x0000186C, 0x000018A8 + .word 0x000018A8, 0x00001984 + .word 0x00001984, 0x000019AC + .word 0x000019AC, 0x000019B8 + .word 0x000019B8, 0x00001A00 + .word 0x00001A00, 0x00001A34 + .word 0x00001A34, 0x00001A48 + .word 0x00001A48, 0x00001B88 + .word 0x00001B88, 0x00001D00 + .word 0x00001D00, 0x00001D0C + .word 0x00001D0C, 0x00001DB4 + .word 0x00001DB4, 0x00001DC8 + .word 0x00001DC8, 0x00001DDC + .word 0x00001DDC, 0x00001DF0 + .word 0x00001DF0, 0x00001E70 + .word 0x00001E70, 0x00001EA4 + .word 0x00001EA4, 0x00001F0C + .word 0x00001F0C, 0x00001F74 + .word 0x00001F74, 0x00001F9C + .word 0x00001F9C, 0x00001FDC + .word 0x00001FDC, 0x00001FF0 + .word 0x00001FF0, 0x00002004 + .word 0x00002004, 0x00002058 + .word 0x00002058, 0x0000206C + .word 0x0000206C, 0x000020A8 + .word 0x000020A8, 0x000020C8 + .word 0x000020C8, 0x00002100 + .word 0x00002100, 0x00002164 + .word 0x00002164, 0x00002180 + .word 0x00002180, 0x000021C0 + .word 0x000021C0, 0x00002230 + .word 0x00002230, 0x00002240 + .word 0x00002240, 0x0000225C + .word 0x0000225C, 0x00002270 + .word 0x00002270, 0x0000228C + .word 0x0000228C, 0x00002310 + .word 0x00002310, 0x00002320 + .word 0x00002320, 0x00002334 + .word 0x00002334, 0x00002374 + .word 0x00002374, 0x00002388 + .word 0x00002388, 0x000023EC + .word 0x000023EC, 0x0000242C + .word 0x0000242C, 0x0000243C + .word 0x0000243C, 0x0000244C + .word 0x0000244C, 0x0000248C + .word 0x0000248C, 0x000024A0 + .word 0x000024A0, 0x000024CC + .word 0x000024CC, 0x0000252C + .word 0x0000252C, 0x00002548 + .word 0x00002548, 0x00002558 + .word 0x00002558, 0x00002574 + .word 0x00002574, 0x00002588 + .word 0x00002588, 0x0000259C + .word 0x0000259C, 0x000025B8 + .word 0x000025B8, 0x000025CC + .word 0x000025CC, 0x000025F8 + .word 0x000025F8, 0x00002658 + .word 0x00002658, 0x0000266C + .word 0x0000266C, 0x00002680 + .word 0x00002680, 0x000026D8 + .word 0x000026D8, 0x000026EC + .word 0x000026EC, 0x00002728 + .word 0x00002728, 0x0000274C + .word 0x0000274C, 0x000027B4 + .word 0x000027B4, 0x000027D0 + .word 0x000027D0, 0x000027E0 + .word 0x000027E0, 0x00002818 + .word 0x00002818, 0x00002888 + .word 0x00002888, 0x000028B8 + .word 0x000028B8, 0x000028F0 + .word 0x000028F0, 0x0000290C + .word 0x0000290C, 0x00002920 + .word 0x00002920, 0x0000294C + .word 0x0000294C, 0x0000297C + .word 0x0000297C, 0x00002998 + .word 0x00002998, 0x000029B4 + .word 0x000029B4, 0x000029C4 + .word 0x000029C4, 0x00002A1C + .word 0x00002A1C, 0x00002A50 + .word 0x00002A50, 0x00002AD8 + .word 0x00002AD8, 0x00002B08 + .word 0x00002B08, 0x00002B18 + .word 0x00002B18, 0x00002B2C + .word 0x00002B2C, 0x00002B3C + .word 0x00002B3C, 0x00002B50 + .word 0x00002B50, 0x00002B64 + .word 0x00002B64, 0x00002BA0 + .word 0x00002BA0, 0x00002BD8 + .word 0x00002BD8, 0x00002C10 + .word 0x00002C10, 0x00002C24 + .word 0x00002C24, 0x00002C38 + .word 0x00002C38, 0x00002C48 + .word 0x00002C48, 0x00002C70 + .word 0x00002C70, 0x00002C84 + .word 0x00002C84, 0x00002CAC + .word 0x00002CAC, 0x00002CEC + .word 0x00002CEC, 0x00002D00 + .word 0x00002D00, 0x00002D64 + .word 0x00002D64, 0x00002E08 + .word 0x00002E08, 0x00002E48 + .word 0x00002E48, 0x00002E64 + .word 0x00002E64, 0x00002F40 + .word 0x00002F40, 0x0000301C + .word 0x0000301C, 0x00003070 + .word 0x00003070, 0x00003084 + .word 0x00003084, 0x0000310C + .word 0x0000310C, 0x00003128 + .word 0x00003128, 0x0000318C + .word 0x0000318C, 0x000031CC + .word 0x000031CC, 0x000032B8 + .word 0x000032B8, 0x000032CC + .word 0x000032CC, 0x000033D8 + .word 0x000033D8, 0x00003434 + .word 0x00003434, 0x00003450 + .word 0x00003450, 0x0000371C + .word 0x0000371C, 0x0000375C + .word 0x0000375C, 0x00003794 + .word 0x00003794, 0x000037B0 + .word 0x000037B0, 0x000038B0 + .word 0x000038B0, 0x000038CC + .word 0x000038CC, 0x000038E8 + .word 0x000038E8, 0x00003904 + .word 0x00003904, 0x00003920 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00003928 ; chunk size + .incbin "baserom.nds", 0x0, 0xC + .incbin "baserom.nds", 0xC, 0x14 + .incbin "baserom.nds", 0x20, 0x1C + .incbin "baserom.nds", 0x3C, 0x1C + .incbin "baserom.nds", 0x58, 0x1C + .incbin "baserom.nds", 0x74, 0x1C + .incbin "baserom.nds", 0x90, 0x1C + .incbin "baserom.nds", 0xAC, 0xF8 + .incbin "baserom.nds", 0x1A4, 0x80 + .incbin "baserom.nds", 0x224, 0x40 + .incbin "baserom.nds", 0x264, 0x14 + .incbin "baserom.nds", 0x278, 0x14 + .incbin "baserom.nds", 0x28C, 0xC + .incbin "baserom.nds", 0x298, 0x14 + .incbin "baserom.nds", 0x2AC, 0xC + .incbin "baserom.nds", 0x2B8, 0xC + .incbin "baserom.nds", 0x2C4, 0x14 + .incbin "baserom.nds", 0x2D8, 0xC + .incbin "baserom.nds", 0x2E4, 0x14 + .incbin "baserom.nds", 0x2F8, 0x14 + .incbin "baserom.nds", 0x30C, 0x14 + .incbin "baserom.nds", 0x320, 0xC + .incbin "baserom.nds", 0x32C, 0xC + .incbin "baserom.nds", 0x338, 0x14 + .incbin "baserom.nds", 0x34C, 0x14 + .incbin "baserom.nds", 0x360, 0x14 + .incbin "baserom.nds", 0x374, 0x54 + .incbin "baserom.nds", 0x3C8, 0x34 + .incbin "baserom.nds", 0x3FC, 0x14 + .incbin "baserom.nds", 0x410, 0x28 + .incbin "baserom.nds", 0x438, 0x14 + .incbin "baserom.nds", 0x44C, 0x1C + .incbin "baserom.nds", 0x468, 0x14 + .incbin "baserom.nds", 0x47C, 0x14 + .incbin "baserom.nds", 0x490, 0x1C + .incbin "baserom.nds", 0x4AC, 0x14 + .incbin "baserom.nds", 0x4C0, 0x38 + .incbin "baserom.nds", 0x4F8, 0x14 + .incbin "baserom.nds", 0x50C, 0x8 + .incbin "baserom.nds", 0x514, 0xA4 + .incbin "baserom.nds", 0x5B8, 0x44 + .incbin "baserom.nds", 0x5FC, 0x4C + .incbin "baserom.nds", 0x648, 0x1C + .incbin "baserom.nds", 0x664, 0x1C + .incbin "baserom.nds", 0x680, 0x28 + .incbin "baserom.nds", 0x6A8, 0x40 + .incbin "baserom.nds", 0x6E8, 0x14 + .incbin "baserom.nds", 0x6FC, 0x40 + .incbin "baserom.nds", 0x73C, 0x40 + .incbin "baserom.nds", 0x77C, 0x14 + .incbin "baserom.nds", 0x790, 0x14 + .incbin "baserom.nds", 0x7A4, 0x14 + .incbin "baserom.nds", 0x7B8, 0x14 + .incbin "baserom.nds", 0x7CC, 0x14 + .incbin "baserom.nds", 0x7E0, 0x14 + .incbin "baserom.nds", 0x7F4, 0xC + .incbin "baserom.nds", 0x800, 0xC + .incbin "baserom.nds", 0x80C, 0x14 + .incbin "baserom.nds", 0x820, 0x14 + .incbin "baserom.nds", 0x834, 0x14 + .incbin "baserom.nds", 0x848, 0x14 + .incbin "baserom.nds", 0x85C, 0xC + .incbin "baserom.nds", 0x868, 0x14 + .incbin "baserom.nds", 0x87C, 0xC + .incbin "baserom.nds", 0x888, 0xC + .incbin "baserom.nds", 0x894, 0x14 + .incbin "baserom.nds", 0x8A8, 0x14 + .incbin "baserom.nds", 0x8BC, 0x14 + .incbin "baserom.nds", 0x8D0, 0x1C + .incbin "baserom.nds", 0x8EC, 0x1C + .incbin "baserom.nds", 0x908, 0x1C + .incbin "baserom.nds", 0x924, 0x1C + .incbin "baserom.nds", 0x940, 0x1C + .incbin "baserom.nds", 0x95C, 0x1C + .incbin "baserom.nds", 0x978, 0xC + .incbin "baserom.nds", 0x984, 0xA0 + .incbin "baserom.nds", 0xA24, 0x1C + .incbin "baserom.nds", 0xA40, 0x38 + .incbin "baserom.nds", 0xA78, 0xC + .incbin "baserom.nds", 0xA84, 0x14 + .incbin "baserom.nds", 0xA98, 0x1C + .incbin "baserom.nds", 0xAB4, 0x1C + .incbin "baserom.nds", 0xAD0, 0x14 + .incbin "baserom.nds", 0xAE4, 0x28 + .incbin "baserom.nds", 0xB0C, 0x14 + .incbin "baserom.nds", 0xB20, 0x14 + .incbin "baserom.nds", 0xB34, 0x14 + .incbin "baserom.nds", 0xB48, 0x38 + .incbin "baserom.nds", 0xB80, 0x88 + .incbin "baserom.nds", 0xC08, 0x18 + .incbin "baserom.nds", 0xC20, 0x14 + .incbin "baserom.nds", 0xC34, 0x14 + .incbin "baserom.nds", 0xC48, 0x64 + .incbin "baserom.nds", 0xCAC, 0x14 + .incbin "baserom.nds", 0xCC0, 0x14 + .incbin "baserom.nds", 0xCD4, 0x14 + .incbin "baserom.nds", 0xCE8, 0xC + .incbin "baserom.nds", 0xCF4, 0x4C + .incbin "baserom.nds", 0xD40, 0x14 + .incbin "baserom.nds", 0xD54, 0x10 + .incbin "baserom.nds", 0xD64, 0x14 + .incbin "baserom.nds", 0xD78, 0xC + .incbin "baserom.nds", 0xD84, 0x14 + .incbin "baserom.nds", 0xD98, 0xC + .incbin "baserom.nds", 0xDA4, 0x38 + .incbin "baserom.nds", 0xDDC, 0x1C + .incbin "baserom.nds", 0xDF8, 0x14 + .incbin "baserom.nds", 0xE0C, 0x64 + .incbin "baserom.nds", 0xE70, 0x14 + .incbin "baserom.nds", 0xE84, 0x84 + .incbin "baserom.nds", 0xF08, 0xC + .incbin "baserom.nds", 0xF14, 0x14 + .incbin "baserom.nds", 0xF28, 0x40 + .incbin "baserom.nds", 0xF68, 0x24 + .incbin "baserom.nds", 0xF8C, 0x14 + .incbin "baserom.nds", 0xFA0, 0xA8 + .incbin "baserom.nds", 0x1048, 0x14 + .incbin "baserom.nds", 0x105C, 0x10 + .incbin "baserom.nds", 0x106C, 0x14 + .incbin "baserom.nds", 0x1080, 0x10 + .incbin "baserom.nds", 0x1090, 0x24 + .incbin "baserom.nds", 0x10B4, 0x40 + .incbin "baserom.nds", 0x10F4, 0x58 + .incbin "baserom.nds", 0x114C, 0x50 + .incbin "baserom.nds", 0x119C, 0x14 + .incbin "baserom.nds", 0x11B0, 0x1C + .incbin "baserom.nds", 0x11CC, 0x68 + .incbin "baserom.nds", 0x1234, 0x14 + .incbin "baserom.nds", 0x1248, 0xC + .incbin "baserom.nds", 0x1254, 0x1C + .incbin "baserom.nds", 0x1270, 0x4C + .incbin "baserom.nds", 0x12BC, 0xC + .incbin "baserom.nds", 0x12C8, 0x38 + .incbin "baserom.nds", 0x1300, 0xC + .incbin "baserom.nds", 0x130C, 0xC + .incbin "baserom.nds", 0x1318, 0x10 + .incbin "baserom.nds", 0x1328, 0xA8 + .incbin "baserom.nds", 0x13D0, 0xA8 + .incbin "baserom.nds", 0x1478, 0x1C + .incbin "baserom.nds", 0x1494, 0x1C + .incbin "baserom.nds", 0x14B0, 0x1C + .incbin "baserom.nds", 0x14CC, 0xC + .incbin "baserom.nds", 0x14D8, 0x14 + .incbin "baserom.nds", 0x14EC, 0x2C + .incbin "baserom.nds", 0x1518, 0x18 + .incbin "baserom.nds", 0x1530, 0x90 + .incbin "baserom.nds", 0x15C0, 0x64 + .incbin "baserom.nds", 0x1624, 0x54 + .incbin "baserom.nds", 0x1678, 0x48 + .incbin "baserom.nds", 0x16C0, 0x54 + .incbin "baserom.nds", 0x1714, 0x54 + .incbin "baserom.nds", 0x1768, 0x9C + .incbin "baserom.nds", 0x1804, 0x2C + .incbin "baserom.nds", 0x1830, 0x3C + .incbin "baserom.nds", 0x186C, 0x3C + .incbin "baserom.nds", 0x18A8, 0xDC + .incbin "baserom.nds", 0x1984, 0x28 + .incbin "baserom.nds", 0x19AC, 0xC + .incbin "baserom.nds", 0x19B8, 0x48 + .incbin "baserom.nds", 0x1A00, 0x34 + .incbin "baserom.nds", 0x1A34, 0x14 + .incbin "baserom.nds", 0x1A48, 0x140 + .incbin "baserom.nds", 0x1B88, 0x178 + .incbin "baserom.nds", 0x1D00, 0xC + .incbin "baserom.nds", 0x1D0C, 0xA8 + .incbin "baserom.nds", 0x1DB4, 0x14 + .incbin "baserom.nds", 0x1DC8, 0x14 + .incbin "baserom.nds", 0x1DDC, 0x14 + .incbin "baserom.nds", 0x1DF0, 0x80 + .incbin "baserom.nds", 0x1E70, 0x34 + .incbin "baserom.nds", 0x1EA4, 0x68 + .incbin "baserom.nds", 0x1F0C, 0x68 + .incbin "baserom.nds", 0x1F74, 0x28 + .incbin "baserom.nds", 0x1F9C, 0x40 + .incbin "baserom.nds", 0x1FDC, 0x14 + .incbin "baserom.nds", 0x1FF0, 0x14 + .incbin "baserom.nds", 0x2004, 0x54 + .incbin "baserom.nds", 0x2058, 0x14 + .incbin "baserom.nds", 0x206C, 0x3C + .incbin "baserom.nds", 0x20A8, 0x20 + .incbin "baserom.nds", 0x20C8, 0x38 + .incbin "baserom.nds", 0x2100, 0x64 + .incbin "baserom.nds", 0x2164, 0x1C + .incbin "baserom.nds", 0x2180, 0x40 + .incbin "baserom.nds", 0x21C0, 0x70 + .incbin "baserom.nds", 0x2230, 0x10 + .incbin "baserom.nds", 0x2240, 0x1C + .incbin "baserom.nds", 0x225C, 0x14 + .incbin "baserom.nds", 0x2270, 0x1C + .incbin "baserom.nds", 0x228C, 0x84 + .incbin "baserom.nds", 0x2310, 0x10 + .incbin "baserom.nds", 0x2320, 0x14 + .incbin "baserom.nds", 0x2334, 0x40 + .incbin "baserom.nds", 0x2374, 0x14 + .incbin "baserom.nds", 0x2388, 0x64 + .incbin "baserom.nds", 0x23EC, 0x40 + .incbin "baserom.nds", 0x242C, 0x10 + .incbin "baserom.nds", 0x243C, 0x10 + .incbin "baserom.nds", 0x244C, 0x40 + .incbin "baserom.nds", 0x248C, 0x14 + .incbin "baserom.nds", 0x24A0, 0x2C + .incbin "baserom.nds", 0x24CC, 0x60 + .incbin "baserom.nds", 0x252C, 0x1C + .incbin "baserom.nds", 0x2548, 0x10 + .incbin "baserom.nds", 0x2558, 0x1C + .incbin "baserom.nds", 0x2574, 0x14 + .incbin "baserom.nds", 0x2588, 0x14 + .incbin "baserom.nds", 0x259C, 0x1C + .incbin "baserom.nds", 0x25B8, 0x14 + .incbin "baserom.nds", 0x25CC, 0x2C + .incbin "baserom.nds", 0x25F8, 0x60 + .incbin "baserom.nds", 0x2658, 0x14 + .incbin "baserom.nds", 0x266C, 0x14 + .incbin "baserom.nds", 0x2680, 0x58 + .incbin "baserom.nds", 0x26D8, 0x14 + .incbin "baserom.nds", 0x26EC, 0x3C + .incbin "baserom.nds", 0x2728, 0x24 + .incbin "baserom.nds", 0x274C, 0x68 + .incbin "baserom.nds", 0x27B4, 0x1C + .incbin "baserom.nds", 0x27D0, 0x10 + .incbin "baserom.nds", 0x27E0, 0x38 + .incbin "baserom.nds", 0x2818, 0x70 + .incbin "baserom.nds", 0x2888, 0x30 + .incbin "baserom.nds", 0x28B8, 0x38 + .incbin "baserom.nds", 0x28F0, 0x1C + .incbin "baserom.nds", 0x290C, 0x14 + .incbin "baserom.nds", 0x2920, 0x2C + .incbin "baserom.nds", 0x294C, 0x30 + .incbin "baserom.nds", 0x297C, 0x1C + .incbin "baserom.nds", 0x2998, 0x1C + .incbin "baserom.nds", 0x29B4, 0x10 + .incbin "baserom.nds", 0x29C4, 0x58 + .incbin "baserom.nds", 0x2A1C, 0x34 + .incbin "baserom.nds", 0x2A50, 0x88 + .incbin "baserom.nds", 0x2AD8, 0x30 + .incbin "baserom.nds", 0x2B08, 0x10 + .incbin "baserom.nds", 0x2B18, 0x14 + .incbin "baserom.nds", 0x2B2C, 0x10 + .incbin "baserom.nds", 0x2B3C, 0x14 + .incbin "baserom.nds", 0x2B50, 0x14 + .incbin "baserom.nds", 0x2B64, 0x3C + .incbin "baserom.nds", 0x2BA0, 0x38 + .incbin "baserom.nds", 0x2BD8, 0x38 + .incbin "baserom.nds", 0x2C10, 0x14 + .incbin "baserom.nds", 0x2C24, 0x14 + .incbin "baserom.nds", 0x2C38, 0x10 + .incbin "baserom.nds", 0x2C48, 0x28 + .incbin "baserom.nds", 0x2C70, 0x14 + .incbin "baserom.nds", 0x2C84, 0x28 + .incbin "baserom.nds", 0x2CAC, 0x40 + .incbin "baserom.nds", 0x2CEC, 0x14 + .incbin "baserom.nds", 0x2D00, 0x64 + .incbin "baserom.nds", 0x2D64, 0xA4 + .incbin "baserom.nds", 0x2E08, 0x40 + .incbin "baserom.nds", 0x2E48, 0x1C + .incbin "baserom.nds", 0x2E64, 0xDC + .incbin "baserom.nds", 0x2F40, 0xDC + .incbin "baserom.nds", 0x301C, 0x54 + .incbin "baserom.nds", 0x3070, 0x14 + .incbin "baserom.nds", 0x3084, 0x88 + .incbin "baserom.nds", 0x310C, 0x1C + .incbin "baserom.nds", 0x3128, 0x64 + .incbin "baserom.nds", 0x318C, 0x40 + .incbin "baserom.nds", 0x31CC, 0xEC + .incbin "baserom.nds", 0x32B8, 0x14 + .incbin "baserom.nds", 0x32CC, 0x10C + .incbin "baserom.nds", 0x33D8, 0x5C + .incbin "baserom.nds", 0x3434, 0x1C + .incbin "baserom.nds", 0x3450, 0x2CC + .incbin "baserom.nds", 0x371C, 0x40 + .incbin "baserom.nds", 0x375C, 0x38 + .incbin "baserom.nds", 0x3794, 0x1C + .incbin "baserom.nds", 0x37B0, 0x100 + .incbin "baserom.nds", 0x38B0, 0x1C + .incbin "baserom.nds", 0x38CC, 0x1C + .incbin "baserom.nds", 0x38E8, 0x1C + .incbin "baserom.nds", 0x3904, 0x1C + .balign 4, 255 diff --git a/narc/skill/sub_seq.narc.s b/narc/skill/sub_seq.narc.s new file mode 100644 index 00000000..1b5a837c --- /dev/null +++ b/narc/skill/sub_seq.narc.s @@ -0,0 +1,612 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0000C738 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000934 ; chunk size + .short 293 ; number of files + .balign 4 + .word 0x00000000, 0x00000310 + .word 0x00000310, 0x00000330 + .word 0x00000330, 0x000003B4 + .word 0x000003B4, 0x00000514 + .word 0x00000514, 0x00000784 + .word 0x00000784, 0x0000098C + .word 0x0000098C, 0x000009F0 + .word 0x000009F0, 0x00000C5C + .word 0x00000C5C, 0x00000C78 + .word 0x00000C78, 0x00000D84 + .word 0x00000D84, 0x00000E08 + .word 0x00000E08, 0x00000E30 + .word 0x00000E30, 0x00000F38 + .word 0x00000F38, 0x00000F84 + .word 0x00000F84, 0x00001064 + .word 0x00001064, 0x000010D8 + .word 0x000010D8, 0x000011A4 + .word 0x000011A4, 0x000011D8 + .word 0x000011D8, 0x00001710 + .word 0x00001710, 0x000017A4 + .word 0x000017A4, 0x000017D4 + .word 0x000017D4, 0x0000194C + .word 0x0000194C, 0x00001E5C + .word 0x00001E5C, 0x00001F40 + .word 0x00001F40, 0x000020B0 + .word 0x000020B0, 0x00002598 + .word 0x00002598, 0x00002644 + .word 0x00002644, 0x000028C0 + .word 0x000028C0, 0x000028F0 + .word 0x000028F0, 0x00002930 + .word 0x00002930, 0x00002974 + .word 0x00002974, 0x00002CE4 + .word 0x00002CE4, 0x00002D1C + .word 0x00002D1C, 0x00002E40 + .word 0x00002E40, 0x00002E60 + .word 0x00002E60, 0x00002E98 + .word 0x00002E98, 0x00002F54 + .word 0x00002F54, 0x000031E4 + .word 0x000031E4, 0x00003214 + .word 0x00003214, 0x0000327C + .word 0x0000327C, 0x0000329C + .word 0x0000329C, 0x000032D0 + .word 0x000032D0, 0x000032FC + .word 0x000032FC, 0x00003374 + .word 0x00003374, 0x000033B8 + .word 0x000033B8, 0x00003400 + .word 0x00003400, 0x00003444 + .word 0x00003444, 0x000039D8 + .word 0x000039D8, 0x00003A38 + .word 0x00003A38, 0x00003A4C + .word 0x00003A4C, 0x00003A70 + .word 0x00003A70, 0x00003AC0 + .word 0x00003AC0, 0x00003AD4 + .word 0x00003AD4, 0x00003AF0 + .word 0x00003AF0, 0x00003B14 + .word 0x00003B14, 0x00003D74 + .word 0x00003D74, 0x00003E04 + .word 0x00003E04, 0x00003E18 + .word 0x00003E18, 0x00003ECC + .word 0x00003ECC, 0x0000401C + .word 0x0000401C, 0x00004040 + .word 0x00004040, 0x00004120 + .word 0x00004120, 0x0000415C + .word 0x0000415C, 0x000041FC + .word 0x000041FC, 0x00004238 + .word 0x00004238, 0x00004260 + .word 0x00004260, 0x00004278 + .word 0x00004278, 0x000042D0 + .word 0x000042D0, 0x000043EC + .word 0x000043EC, 0x000045EC + .word 0x000045EC, 0x00004648 + .word 0x00004648, 0x0000468C + .word 0x0000468C, 0x000046AC + .word 0x000046AC, 0x000046DC + .word 0x000046DC, 0x000046FC + .word 0x000046FC, 0x00004728 + .word 0x00004728, 0x00004740 + .word 0x00004740, 0x00004884 + .word 0x00004884, 0x000048CC + .word 0x000048CC, 0x00004968 + .word 0x00004968, 0x000049BC + .word 0x000049BC, 0x00004A2C + .word 0x00004A2C, 0x00004A60 + .word 0x00004A60, 0x00004BC0 + .word 0x00004BC0, 0x00004C20 + .word 0x00004C20, 0x00004CE8 + .word 0x00004CE8, 0x00004DC0 + .word 0x00004DC0, 0x00004DF0 + .word 0x00004DF0, 0x00004EFC + .word 0x00004EFC, 0x00004FE4 + .word 0x00004FE4, 0x0000508C + .word 0x0000508C, 0x00005228 + .word 0x00005228, 0x0000529C + .word 0x0000529C, 0x00005328 + .word 0x00005328, 0x000053B4 + .word 0x000053B4, 0x000053E0 + .word 0x000053E0, 0x0000546C + .word 0x0000546C, 0x00005550 + .word 0x00005550, 0x000055DC + .word 0x000055DC, 0x00005788 + .word 0x00005788, 0x000057C0 + .word 0x000057C0, 0x0000588C + .word 0x0000588C, 0x000058D0 + .word 0x000058D0, 0x000058DC + .word 0x000058DC, 0x00005A78 + .word 0x00005A78, 0x00005B0C + .word 0x00005B0C, 0x00005CE8 + .word 0x00005CE8, 0x00005D1C + .word 0x00005D1C, 0x00005D4C + .word 0x00005D4C, 0x00005D60 + .word 0x00005D60, 0x00005D80 + .word 0x00005D80, 0x00005E4C + .word 0x00005E4C, 0x00005EC0 + .word 0x00005EC0, 0x00005F24 + .word 0x00005F24, 0x00005FB0 + .word 0x00005FB0, 0x00005FB8 + .word 0x00005FB8, 0x00005FE0 + .word 0x00005FE0, 0x00006004 + .word 0x00006004, 0x000060E8 + .word 0x000060E8, 0x00006194 + .word 0x00006194, 0x0000627C + .word 0x0000627C, 0x00006478 + .word 0x00006478, 0x000064F8 + .word 0x000064F8, 0x00006520 + .word 0x00006520, 0x00006694 + .word 0x00006694, 0x000066C4 + .word 0x000066C4, 0x00006700 + .word 0x00006700, 0x0000677C + .word 0x0000677C, 0x00006810 + .word 0x00006810, 0x0000695C + .word 0x0000695C, 0x000069B4 + .word 0x000069B4, 0x00006A24 + .word 0x00006A24, 0x00006AAC + .word 0x00006AAC, 0x00006AD8 + .word 0x00006AD8, 0x00006C68 + .word 0x00006C68, 0x00006DEC + .word 0x00006DEC, 0x00006EE4 + .word 0x00006EE4, 0x00006F9C + .word 0x00006F9C, 0x00007000 + .word 0x00007000, 0x00007048 + .word 0x00007048, 0x000070A8 + .word 0x000070A8, 0x00007230 + .word 0x00007230, 0x00007270 + .word 0x00007270, 0x000074C8 + .word 0x000074C8, 0x000074F4 + .word 0x000074F4, 0x00007568 + .word 0x00007568, 0x00007650 + .word 0x00007650, 0x000076F0 + .word 0x000076F0, 0x000077FC + .word 0x000077FC, 0x000078F8 + .word 0x000078F8, 0x000079F4 + .word 0x000079F4, 0x00007AF0 + .word 0x00007AF0, 0x00007BEC + .word 0x00007BEC, 0x00007EEC + .word 0x00007EEC, 0x00007F54 + .word 0x00007F54, 0x00007FAC + .word 0x00007FAC, 0x00008124 + .word 0x00008124, 0x00008148 + .word 0x00008148, 0x00008180 + .word 0x00008180, 0x000082B0 + .word 0x000082B0, 0x00008310 + .word 0x00008310, 0x00008374 + .word 0x00008374, 0x000083F8 + .word 0x000083F8, 0x00008498 + .word 0x00008498, 0x000084D8 + .word 0x000084D8, 0x00008598 + .word 0x00008598, 0x00008658 + .word 0x00008658, 0x000086FC + .word 0x000086FC, 0x00008A2C + .word 0x00008A2C, 0x00008AC8 + .word 0x00008AC8, 0x00008AF0 + .word 0x00008AF0, 0x00008DCC + .word 0x00008DCC, 0x00008DF0 + .word 0x00008DF0, 0x00008EA4 + .word 0x00008EA4, 0x00008EDC + .word 0x00008EDC, 0x00009194 + .word 0x00009194, 0x000091C4 + .word 0x000091C4, 0x000091E8 + .word 0x000091E8, 0x00009298 + .word 0x00009298, 0x00009320 + .word 0x00009320, 0x00009354 + .word 0x00009354, 0x0000938C + .word 0x0000938C, 0x00009438 + .word 0x00009438, 0x0000948C + .word 0x0000948C, 0x000094E0 + .word 0x000094E0, 0x00009534 + .word 0x00009534, 0x00009600 + .word 0x00009600, 0x00009658 + .word 0x00009658, 0x000096A8 + .word 0x000096A8, 0x000096E8 + .word 0x000096E8, 0x00009744 + .word 0x00009744, 0x0000976C + .word 0x0000976C, 0x000097A8 + .word 0x000097A8, 0x000097E8 + .word 0x000097E8, 0x0000980C + .word 0x0000980C, 0x00009834 + .word 0x00009834, 0x00009858 + .word 0x00009858, 0x0000987C + .word 0x0000987C, 0x000098D0 + .word 0x000098D0, 0x0000992C + .word 0x0000992C, 0x0000999C + .word 0x0000999C, 0x000099F8 + .word 0x000099F8, 0x00009A54 + .word 0x00009A54, 0x00009AB0 + .word 0x00009AB0, 0x00009AF0 + .word 0x00009AF0, 0x00009B40 + .word 0x00009B40, 0x00009BC4 + .word 0x00009BC4, 0x00009C3C + .word 0x00009C3C, 0x00009CA0 + .word 0x00009CA0, 0x00009CF0 + .word 0x00009CF0, 0x00009DA8 + .word 0x00009DA8, 0x00009DE4 + .word 0x00009DE4, 0x00009E38 + .word 0x00009E38, 0x00009E84 + .word 0x00009E84, 0x00009EA0 + .word 0x00009EA0, 0x00009EEC + .word 0x00009EEC, 0x00009F2C + .word 0x00009F2C, 0x00009FB8 + .word 0x00009FB8, 0x0000A06C + .word 0x0000A06C, 0x0000A0F8 + .word 0x0000A0F8, 0x0000A14C + .word 0x0000A14C, 0x0000A238 + .word 0x0000A238, 0x0000A29C + .word 0x0000A29C, 0x0000A2A0 + .word 0x0000A2A0, 0x0000A30C + .word 0x0000A30C, 0x0000A310 + .word 0x0000A310, 0x0000A338 + .word 0x0000A338, 0x0000A3D4 + .word 0x0000A3D4, 0x0000A460 + .word 0x0000A460, 0x0000A480 + .word 0x0000A480, 0x0000A4D4 + .word 0x0000A4D4, 0x0000A64C + .word 0x0000A64C, 0x0000A6A0 + .word 0x0000A6A0, 0x0000A6C0 + .word 0x0000A6C0, 0x0000A6EC + .word 0x0000A6EC, 0x0000A718 + .word 0x0000A718, 0x0000A744 + .word 0x0000A744, 0x0000A770 + .word 0x0000A770, 0x0000A78C + .word 0x0000A78C, 0x0000A7C0 + .word 0x0000A7C0, 0x0000A7E0 + .word 0x0000A7E0, 0x0000A800 + .word 0x0000A800, 0x0000A834 + .word 0x0000A834, 0x0000A87C + .word 0x0000A87C, 0x0000A8B0 + .word 0x0000A8B0, 0x0000A8D0 + .word 0x0000A8D0, 0x0000A970 + .word 0x0000A970, 0x0000A994 + .word 0x0000A994, 0x0000A9B8 + .word 0x0000A9B8, 0x0000A9DC + .word 0x0000A9DC, 0x0000A9FC + .word 0x0000A9FC, 0x0000AA18 + .word 0x0000AA18, 0x0000AA74 + .word 0x0000AA74, 0x0000AAA0 + .word 0x0000AAA0, 0x0000AAC8 + .word 0x0000AAC8, 0x0000AB88 + .word 0x0000AB88, 0x0000ABB0 + .word 0x0000ABB0, 0x0000AC00 + .word 0x0000AC00, 0x0000AC44 + .word 0x0000AC44, 0x0000AC7C + .word 0x0000AC7C, 0x0000AC90 + .word 0x0000AC90, 0x0000AE60 + .word 0x0000AE60, 0x0000AF50 + .word 0x0000AF50, 0x0000AFE8 + .word 0x0000AFE8, 0x0000B408 + .word 0x0000B408, 0x0000B458 + .word 0x0000B458, 0x0000B4D8 + .word 0x0000B4D8, 0x0000B584 + .word 0x0000B584, 0x0000B744 + .word 0x0000B744, 0x0000B7AC + .word 0x0000B7AC, 0x0000B80C + .word 0x0000B80C, 0x0000B848 + .word 0x0000B848, 0x0000B884 + .word 0x0000B884, 0x0000B8C0 + .word 0x0000B8C0, 0x0000B8FC + .word 0x0000B8FC, 0x0000B9D0 + .word 0x0000B9D0, 0x0000B9EC + .word 0x0000B9EC, 0x0000B9F8 + .word 0x0000B9F8, 0x0000BAE0 + .word 0x0000BAE0, 0x0000BB04 + .word 0x0000BB04, 0x0000BB28 + .word 0x0000BB28, 0x0000BB5C + .word 0x0000BB5C, 0x0000BBA8 + .word 0x0000BBA8, 0x0000BBC8 + .word 0x0000BBC8, 0x0000BC0C + .word 0x0000BC0C, 0x0000BC30 + .word 0x0000BC30, 0x0000BC50 + .word 0x0000BC50, 0x0000BC64 + .word 0x0000BC64, 0x0000BC98 + .word 0x0000BC98, 0x0000BCDC + .word 0x0000BCDC, 0x0000BD0C + .word 0x0000BD0C, 0x0000BD18 + .word 0x0000BD18, 0x0000BDDC + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0000BDE4 ; chunk size + .incbin "baserom.nds", 0x0, 0x310 + .incbin "baserom.nds", 0x310, 0x20 + .incbin "baserom.nds", 0x330, 0x84 + .incbin "baserom.nds", 0x3B4, 0x160 + .incbin "baserom.nds", 0x514, 0x270 + .incbin "baserom.nds", 0x784, 0x208 + .incbin "baserom.nds", 0x98C, 0x64 + .incbin "baserom.nds", 0x9F0, 0x26C + .incbin "baserom.nds", 0xC5C, 0x1C + .incbin "baserom.nds", 0xC78, 0x10C + .incbin "baserom.nds", 0xD84, 0x84 + .incbin "baserom.nds", 0xE08, 0x28 + .incbin "baserom.nds", 0xE30, 0x108 + .incbin "baserom.nds", 0xF38, 0x4C + .incbin "baserom.nds", 0xF84, 0xE0 + .incbin "baserom.nds", 0x1064, 0x74 + .incbin "baserom.nds", 0x10D8, 0xCC + .incbin "baserom.nds", 0x11A4, 0x34 + .incbin "baserom.nds", 0x11D8, 0x538 + .incbin "baserom.nds", 0x1710, 0x94 + .incbin "baserom.nds", 0x17A4, 0x30 + .incbin "baserom.nds", 0x17D4, 0x178 + .incbin "baserom.nds", 0x194C, 0x510 + .incbin "baserom.nds", 0x1E5C, 0xE4 + .incbin "baserom.nds", 0x1F40, 0x170 + .incbin "baserom.nds", 0x20B0, 0x4E8 + .incbin "baserom.nds", 0x2598, 0xAC + .incbin "baserom.nds", 0x2644, 0x27C + .incbin "baserom.nds", 0x28C0, 0x30 + .incbin "baserom.nds", 0x28F0, 0x40 + .incbin "baserom.nds", 0x2930, 0x44 + .incbin "baserom.nds", 0x2974, 0x370 + .incbin "baserom.nds", 0x2CE4, 0x38 + .incbin "baserom.nds", 0x2D1C, 0x124 + .incbin "baserom.nds", 0x2E40, 0x20 + .incbin "baserom.nds", 0x2E60, 0x38 + .incbin "baserom.nds", 0x2E98, 0xBC + .incbin "baserom.nds", 0x2F54, 0x290 + .incbin "baserom.nds", 0x31E4, 0x30 + .incbin "baserom.nds", 0x3214, 0x68 + .incbin "baserom.nds", 0x327C, 0x20 + .incbin "baserom.nds", 0x329C, 0x34 + .incbin "baserom.nds", 0x32D0, 0x2C + .incbin "baserom.nds", 0x32FC, 0x78 + .incbin "baserom.nds", 0x3374, 0x44 + .incbin "baserom.nds", 0x33B8, 0x48 + .incbin "baserom.nds", 0x3400, 0x44 + .incbin "baserom.nds", 0x3444, 0x594 + .incbin "baserom.nds", 0x39D8, 0x60 + .incbin "baserom.nds", 0x3A38, 0x14 + .incbin "baserom.nds", 0x3A4C, 0x24 + .incbin "baserom.nds", 0x3A70, 0x50 + .incbin "baserom.nds", 0x3AC0, 0x14 + .incbin "baserom.nds", 0x3AD4, 0x1C + .incbin "baserom.nds", 0x3AF0, 0x24 + .incbin "baserom.nds", 0x3B14, 0x260 + .incbin "baserom.nds", 0x3D74, 0x90 + .incbin "baserom.nds", 0x3E04, 0x14 + .incbin "baserom.nds", 0x3E18, 0xB4 + .incbin "baserom.nds", 0x3ECC, 0x150 + .incbin "baserom.nds", 0x401C, 0x24 + .incbin "baserom.nds", 0x4040, 0xE0 + .incbin "baserom.nds", 0x4120, 0x3C + .incbin "baserom.nds", 0x415C, 0xA0 + .incbin "baserom.nds", 0x41FC, 0x3C + .incbin "baserom.nds", 0x4238, 0x28 + .incbin "baserom.nds", 0x4260, 0x18 + .incbin "baserom.nds", 0x4278, 0x58 + .incbin "baserom.nds", 0x42D0, 0x11C + .incbin "baserom.nds", 0x43EC, 0x200 + .incbin "baserom.nds", 0x45EC, 0x5C + .incbin "baserom.nds", 0x4648, 0x44 + .incbin "baserom.nds", 0x468C, 0x20 + .incbin "baserom.nds", 0x46AC, 0x30 + .incbin "baserom.nds", 0x46DC, 0x20 + .incbin "baserom.nds", 0x46FC, 0x2C + .incbin "baserom.nds", 0x4728, 0x18 + .incbin "baserom.nds", 0x4740, 0x144 + .incbin "baserom.nds", 0x4884, 0x48 + .incbin "baserom.nds", 0x48CC, 0x9C + .incbin "baserom.nds", 0x4968, 0x54 + .incbin "baserom.nds", 0x49BC, 0x70 + .incbin "baserom.nds", 0x4A2C, 0x34 + .incbin "baserom.nds", 0x4A60, 0x160 + .incbin "baserom.nds", 0x4BC0, 0x60 + .incbin "baserom.nds", 0x4C20, 0xC8 + .incbin "baserom.nds", 0x4CE8, 0xD8 + .incbin "baserom.nds", 0x4DC0, 0x30 + .incbin "baserom.nds", 0x4DF0, 0x10C + .incbin "baserom.nds", 0x4EFC, 0xE8 + .incbin "baserom.nds", 0x4FE4, 0xA8 + .incbin "baserom.nds", 0x508C, 0x19C + .incbin "baserom.nds", 0x5228, 0x74 + .incbin "baserom.nds", 0x529C, 0x8C + .incbin "baserom.nds", 0x5328, 0x8C + .incbin "baserom.nds", 0x53B4, 0x2C + .incbin "baserom.nds", 0x53E0, 0x8C + .incbin "baserom.nds", 0x546C, 0xE4 + .incbin "baserom.nds", 0x5550, 0x8C + .incbin "baserom.nds", 0x55DC, 0x1AC + .incbin "baserom.nds", 0x5788, 0x38 + .incbin "baserom.nds", 0x57C0, 0xCC + .incbin "baserom.nds", 0x588C, 0x44 + .incbin "baserom.nds", 0x58D0, 0xC + .incbin "baserom.nds", 0x58DC, 0x19C + .incbin "baserom.nds", 0x5A78, 0x94 + .incbin "baserom.nds", 0x5B0C, 0x1DC + .incbin "baserom.nds", 0x5CE8, 0x34 + .incbin "baserom.nds", 0x5D1C, 0x30 + .incbin "baserom.nds", 0x5D4C, 0x14 + .incbin "baserom.nds", 0x5D60, 0x20 + .incbin "baserom.nds", 0x5D80, 0xCC + .incbin "baserom.nds", 0x5E4C, 0x74 + .incbin "baserom.nds", 0x5EC0, 0x64 + .incbin "baserom.nds", 0x5F24, 0x8C + .incbin "baserom.nds", 0x5FB0, 0x8 + .incbin "baserom.nds", 0x5FB8, 0x28 + .incbin "baserom.nds", 0x5FE0, 0x24 + .incbin "baserom.nds", 0x6004, 0xE4 + .incbin "baserom.nds", 0x60E8, 0xAC + .incbin "baserom.nds", 0x6194, 0xE8 + .incbin "baserom.nds", 0x627C, 0x1FC + .incbin "baserom.nds", 0x6478, 0x80 + .incbin "baserom.nds", 0x64F8, 0x28 + .incbin "baserom.nds", 0x6520, 0x174 + .incbin "baserom.nds", 0x6694, 0x30 + .incbin "baserom.nds", 0x66C4, 0x3C + .incbin "baserom.nds", 0x6700, 0x7C + .incbin "baserom.nds", 0x677C, 0x94 + .incbin "baserom.nds", 0x6810, 0x14C + .incbin "baserom.nds", 0x695C, 0x58 + .incbin "baserom.nds", 0x69B4, 0x70 + .incbin "baserom.nds", 0x6A24, 0x88 + .incbin "baserom.nds", 0x6AAC, 0x2C + .incbin "baserom.nds", 0x6AD8, 0x190 + .incbin "baserom.nds", 0x6C68, 0x184 + .incbin "baserom.nds", 0x6DEC, 0xF8 + .incbin "baserom.nds", 0x6EE4, 0xB8 + .incbin "baserom.nds", 0x6F9C, 0x64 + .incbin "baserom.nds", 0x7000, 0x48 + .incbin "baserom.nds", 0x7048, 0x60 + .incbin "baserom.nds", 0x70A8, 0x188 + .incbin "baserom.nds", 0x7230, 0x40 + .incbin "baserom.nds", 0x7270, 0x258 + .incbin "baserom.nds", 0x74C8, 0x2C + .incbin "baserom.nds", 0x74F4, 0x74 + .incbin "baserom.nds", 0x7568, 0xE8 + .incbin "baserom.nds", 0x7650, 0xA0 + .incbin "baserom.nds", 0x76F0, 0x10C + .incbin "baserom.nds", 0x77FC, 0xFC + .incbin "baserom.nds", 0x78F8, 0xFC + .incbin "baserom.nds", 0x79F4, 0xFC + .incbin "baserom.nds", 0x7AF0, 0xFC + .incbin "baserom.nds", 0x7BEC, 0x300 + .incbin "baserom.nds", 0x7EEC, 0x68 + .incbin "baserom.nds", 0x7F54, 0x58 + .incbin "baserom.nds", 0x7FAC, 0x178 + .incbin "baserom.nds", 0x8124, 0x24 + .incbin "baserom.nds", 0x8148, 0x38 + .incbin "baserom.nds", 0x8180, 0x130 + .incbin "baserom.nds", 0x82B0, 0x60 + .incbin "baserom.nds", 0x8310, 0x64 + .incbin "baserom.nds", 0x8374, 0x84 + .incbin "baserom.nds", 0x83F8, 0xA0 + .incbin "baserom.nds", 0x8498, 0x40 + .incbin "baserom.nds", 0x84D8, 0xC0 + .incbin "baserom.nds", 0x8598, 0xC0 + .incbin "baserom.nds", 0x8658, 0xA4 + .incbin "baserom.nds", 0x86FC, 0x330 + .incbin "baserom.nds", 0x8A2C, 0x9C + .incbin "baserom.nds", 0x8AC8, 0x28 + .incbin "baserom.nds", 0x8AF0, 0x2DC + .incbin "baserom.nds", 0x8DCC, 0x24 + .incbin "baserom.nds", 0x8DF0, 0xB4 + .incbin "baserom.nds", 0x8EA4, 0x38 + .incbin "baserom.nds", 0x8EDC, 0x2B8 + .incbin "baserom.nds", 0x9194, 0x30 + .incbin "baserom.nds", 0x91C4, 0x24 + .incbin "baserom.nds", 0x91E8, 0xB0 + .incbin "baserom.nds", 0x9298, 0x88 + .incbin "baserom.nds", 0x9320, 0x34 + .incbin "baserom.nds", 0x9354, 0x38 + .incbin "baserom.nds", 0x938C, 0xAC + .incbin "baserom.nds", 0x9438, 0x54 + .incbin "baserom.nds", 0x948C, 0x54 + .incbin "baserom.nds", 0x94E0, 0x54 + .incbin "baserom.nds", 0x9534, 0xCC + .incbin "baserom.nds", 0x9600, 0x58 + .incbin "baserom.nds", 0x9658, 0x50 + .incbin "baserom.nds", 0x96A8, 0x40 + .incbin "baserom.nds", 0x96E8, 0x5C + .incbin "baserom.nds", 0x9744, 0x28 + .incbin "baserom.nds", 0x976C, 0x3C + .incbin "baserom.nds", 0x97A8, 0x40 + .incbin "baserom.nds", 0x97E8, 0x24 + .incbin "baserom.nds", 0x980C, 0x28 + .incbin "baserom.nds", 0x9834, 0x24 + .incbin "baserom.nds", 0x9858, 0x24 + .incbin "baserom.nds", 0x987C, 0x54 + .incbin "baserom.nds", 0x98D0, 0x5C + .incbin "baserom.nds", 0x992C, 0x70 + .incbin "baserom.nds", 0x999C, 0x5C + .incbin "baserom.nds", 0x99F8, 0x5C + .incbin "baserom.nds", 0x9A54, 0x5C + .incbin "baserom.nds", 0x9AB0, 0x40 + .incbin "baserom.nds", 0x9AF0, 0x50 + .incbin "baserom.nds", 0x9B40, 0x84 + .incbin "baserom.nds", 0x9BC4, 0x78 + .incbin "baserom.nds", 0x9C3C, 0x64 + .incbin "baserom.nds", 0x9CA0, 0x50 + .incbin "baserom.nds", 0x9CF0, 0xB8 + .incbin "baserom.nds", 0x9DA8, 0x3C + .incbin "baserom.nds", 0x9DE4, 0x54 + .incbin "baserom.nds", 0x9E38, 0x4C + .incbin "baserom.nds", 0x9E84, 0x1C + .incbin "baserom.nds", 0x9EA0, 0x4C + .incbin "baserom.nds", 0x9EEC, 0x40 + .incbin "baserom.nds", 0x9F2C, 0x8C + .incbin "baserom.nds", 0x9FB8, 0xB4 + .incbin "baserom.nds", 0xA06C, 0x8C + .incbin "baserom.nds", 0xA0F8, 0x54 + .incbin "baserom.nds", 0xA14C, 0xEC + .incbin "baserom.nds", 0xA238, 0x64 + .incbin "baserom.nds", 0xA29C, 0x4 + .incbin "baserom.nds", 0xA2A0, 0x6C + .incbin "baserom.nds", 0xA30C, 0x4 + .incbin "baserom.nds", 0xA310, 0x28 + .incbin "baserom.nds", 0xA338, 0x9C + .incbin "baserom.nds", 0xA3D4, 0x8C + .incbin "baserom.nds", 0xA460, 0x20 + .incbin "baserom.nds", 0xA480, 0x54 + .incbin "baserom.nds", 0xA4D4, 0x178 + .incbin "baserom.nds", 0xA64C, 0x54 + .incbin "baserom.nds", 0xA6A0, 0x20 + .incbin "baserom.nds", 0xA6C0, 0x2C + .incbin "baserom.nds", 0xA6EC, 0x2C + .incbin "baserom.nds", 0xA718, 0x2C + .incbin "baserom.nds", 0xA744, 0x2C + .incbin "baserom.nds", 0xA770, 0x1C + .incbin "baserom.nds", 0xA78C, 0x34 + .incbin "baserom.nds", 0xA7C0, 0x20 + .incbin "baserom.nds", 0xA7E0, 0x20 + .incbin "baserom.nds", 0xA800, 0x34 + .incbin "baserom.nds", 0xA834, 0x48 + .incbin "baserom.nds", 0xA87C, 0x34 + .incbin "baserom.nds", 0xA8B0, 0x20 + .incbin "baserom.nds", 0xA8D0, 0xA0 + .incbin "baserom.nds", 0xA970, 0x24 + .incbin "baserom.nds", 0xA994, 0x24 + .incbin "baserom.nds", 0xA9B8, 0x24 + .incbin "baserom.nds", 0xA9DC, 0x20 + .incbin "baserom.nds", 0xA9FC, 0x1C + .incbin "baserom.nds", 0xAA18, 0x5C + .incbin "baserom.nds", 0xAA74, 0x2C + .incbin "baserom.nds", 0xAAA0, 0x28 + .incbin "baserom.nds", 0xAAC8, 0xC0 + .incbin "baserom.nds", 0xAB88, 0x28 + .incbin "baserom.nds", 0xABB0, 0x50 + .incbin "baserom.nds", 0xAC00, 0x44 + .incbin "baserom.nds", 0xAC44, 0x38 + .incbin "baserom.nds", 0xAC7C, 0x14 + .incbin "baserom.nds", 0xAC90, 0x1D0 + .incbin "baserom.nds", 0xAE60, 0xF0 + .incbin "baserom.nds", 0xAF50, 0x98 + .incbin "baserom.nds", 0xAFE8, 0x420 + .incbin "baserom.nds", 0xB408, 0x50 + .incbin "baserom.nds", 0xB458, 0x80 + .incbin "baserom.nds", 0xB4D8, 0xAC + .incbin "baserom.nds", 0xB584, 0x1C0 + .incbin "baserom.nds", 0xB744, 0x68 + .incbin "baserom.nds", 0xB7AC, 0x60 + .incbin "baserom.nds", 0xB80C, 0x3C + .incbin "baserom.nds", 0xB848, 0x3C + .incbin "baserom.nds", 0xB884, 0x3C + .incbin "baserom.nds", 0xB8C0, 0x3C + .incbin "baserom.nds", 0xB8FC, 0xD4 + .incbin "baserom.nds", 0xB9D0, 0x1C + .incbin "baserom.nds", 0xB9EC, 0xC + .incbin "baserom.nds", 0xB9F8, 0xE8 + .incbin "baserom.nds", 0xBAE0, 0x24 + .incbin "baserom.nds", 0xBB04, 0x24 + .incbin "baserom.nds", 0xBB28, 0x34 + .incbin "baserom.nds", 0xBB5C, 0x4C + .incbin "baserom.nds", 0xBBA8, 0x20 + .incbin "baserom.nds", 0xBBC8, 0x44 + .incbin "baserom.nds", 0xBC0C, 0x24 + .incbin "baserom.nds", 0xBC30, 0x20 + .incbin "baserom.nds", 0xBC50, 0x14 + .incbin "baserom.nds", 0xBC64, 0x34 + .incbin "baserom.nds", 0xBC98, 0x44 + .incbin "baserom.nds", 0xBCDC, 0x30 + .incbin "baserom.nds", 0xBD0C, 0xC + .incbin "baserom.nds", 0xBD18, 0xC4 + .balign 4, 255 diff --git a/narc/skill/waza_seq.narc.s b/narc/skill/waza_seq.narc.s new file mode 100644 index 00000000..8690f473 --- /dev/null +++ b/narc/skill/waza_seq.narc.s @@ -0,0 +1,1028 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00001910 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000FB4 ; chunk size + .short 501 ; number of files + .balign 4 + .word 0x00000000, 0x00000004 + .word 0x00000004, 0x00000008 + .word 0x00000008, 0x0000000C + .word 0x0000000C, 0x00000010 + .word 0x00000010, 0x00000014 + .word 0x00000014, 0x00000018 + .word 0x00000018, 0x0000001C + .word 0x0000001C, 0x00000020 + .word 0x00000020, 0x00000024 + .word 0x00000024, 0x00000028 + .word 0x00000028, 0x0000002C + .word 0x0000002C, 0x00000030 + .word 0x00000030, 0x00000034 + .word 0x00000034, 0x00000048 + .word 0x00000048, 0x0000004C + .word 0x0000004C, 0x00000050 + .word 0x00000050, 0x00000054 + .word 0x00000054, 0x00000058 + .word 0x00000058, 0x0000005C + .word 0x0000005C, 0x00000070 + .word 0x00000070, 0x00000088 + .word 0x00000088, 0x0000008C + .word 0x0000008C, 0x00000090 + .word 0x00000090, 0x00000094 + .word 0x00000094, 0x00000098 + .word 0x00000098, 0x0000009C + .word 0x0000009C, 0x000000A0 + .word 0x000000A0, 0x000000A4 + .word 0x000000A4, 0x000000A8 + .word 0x000000A8, 0x000000AC + .word 0x000000AC, 0x000000B0 + .word 0x000000B0, 0x000000B4 + .word 0x000000B4, 0x000000B8 + .word 0x000000B8, 0x000000BC + .word 0x000000BC, 0x000000C0 + .word 0x000000C0, 0x000000D8 + .word 0x000000D8, 0x000000DC + .word 0x000000DC, 0x000000E0 + .word 0x000000E0, 0x000000E4 + .word 0x000000E4, 0x000000E8 + .word 0x000000E8, 0x000000EC + .word 0x000000EC, 0x000000F0 + .word 0x000000F0, 0x000000F4 + .word 0x000000F4, 0x000000F8 + .word 0x000000F8, 0x000000FC + .word 0x000000FC, 0x00000100 + .word 0x00000100, 0x00000104 + .word 0x00000104, 0x00000108 + .word 0x00000108, 0x0000010C + .word 0x0000010C, 0x00000110 + .word 0x00000110, 0x00000114 + .word 0x00000114, 0x00000118 + .word 0x00000118, 0x0000011C + .word 0x0000011C, 0x00000120 + .word 0x00000120, 0x00000124 + .word 0x00000124, 0x00000128 + .word 0x00000128, 0x0000012C + .word 0x0000012C, 0x00000130 + .word 0x00000130, 0x00000134 + .word 0x00000134, 0x00000138 + .word 0x00000138, 0x0000013C + .word 0x0000013C, 0x00000140 + .word 0x00000140, 0x00000144 + .word 0x00000144, 0x00000148 + .word 0x00000148, 0x0000014C + .word 0x0000014C, 0x00000150 + .word 0x00000150, 0x00000154 + .word 0x00000154, 0x00000158 + .word 0x00000158, 0x0000015C + .word 0x0000015C, 0x00000160 + .word 0x00000160, 0x00000164 + .word 0x00000164, 0x00000168 + .word 0x00000168, 0x0000016C + .word 0x0000016C, 0x00000170 + .word 0x00000170, 0x00000174 + .word 0x00000174, 0x00000178 + .word 0x00000178, 0x0000018C + .word 0x0000018C, 0x00000190 + .word 0x00000190, 0x00000194 + .word 0x00000194, 0x00000198 + .word 0x00000198, 0x0000019C + .word 0x0000019C, 0x000001A0 + .word 0x000001A0, 0x000001A4 + .word 0x000001A4, 0x000001B8 + .word 0x000001B8, 0x000001BC + .word 0x000001BC, 0x000001C0 + .word 0x000001C0, 0x000001C4 + .word 0x000001C4, 0x000001C8 + .word 0x000001C8, 0x000001CC + .word 0x000001CC, 0x000001D0 + .word 0x000001D0, 0x000001D4 + .word 0x000001D4, 0x000001E8 + .word 0x000001E8, 0x000001EC + .word 0x000001EC, 0x000001F0 + .word 0x000001F0, 0x000001F4 + .word 0x000001F4, 0x000001F8 + .word 0x000001F8, 0x000001FC + .word 0x000001FC, 0x00000200 + .word 0x00000200, 0x00000204 + .word 0x00000204, 0x00000208 + .word 0x00000208, 0x0000020C + .word 0x0000020C, 0x00000210 + .word 0x00000210, 0x00000214 + .word 0x00000214, 0x00000218 + .word 0x00000218, 0x0000021C + .word 0x0000021C, 0x00000220 + .word 0x00000220, 0x00000224 + .word 0x00000224, 0x00000228 + .word 0x00000228, 0x0000022C + .word 0x0000022C, 0x00000230 + .word 0x00000230, 0x00000234 + .word 0x00000234, 0x00000238 + .word 0x00000238, 0x0000023C + .word 0x0000023C, 0x00000240 + .word 0x00000240, 0x00000244 + .word 0x00000244, 0x00000248 + .word 0x00000248, 0x0000024C + .word 0x0000024C, 0x00000250 + .word 0x00000250, 0x00000254 + .word 0x00000254, 0x00000258 + .word 0x00000258, 0x0000026C + .word 0x0000026C, 0x00000270 + .word 0x00000270, 0x00000274 + .word 0x00000274, 0x00000278 + .word 0x00000278, 0x0000027C + .word 0x0000027C, 0x00000280 + .word 0x00000280, 0x00000284 + .word 0x00000284, 0x00000288 + .word 0x00000288, 0x000002A0 + .word 0x000002A0, 0x000002A4 + .word 0x000002A4, 0x000002B8 + .word 0x000002B8, 0x000002BC + .word 0x000002BC, 0x000002C0 + .word 0x000002C0, 0x000002C4 + .word 0x000002C4, 0x000002C8 + .word 0x000002C8, 0x000002CC + .word 0x000002CC, 0x000002D0 + .word 0x000002D0, 0x000002D4 + .word 0x000002D4, 0x000002D8 + .word 0x000002D8, 0x000002DC + .word 0x000002DC, 0x000002E0 + .word 0x000002E0, 0x000002E4 + .word 0x000002E4, 0x000002E8 + .word 0x000002E8, 0x000002FC + .word 0x000002FC, 0x00000300 + .word 0x00000300, 0x00000304 + .word 0x00000304, 0x00000308 + .word 0x00000308, 0x0000030C + .word 0x0000030C, 0x00000310 + .word 0x00000310, 0x00000314 + .word 0x00000314, 0x00000328 + .word 0x00000328, 0x0000032C + .word 0x0000032C, 0x00000330 + .word 0x00000330, 0x00000344 + .word 0x00000344, 0x00000348 + .word 0x00000348, 0x0000034C + .word 0x0000034C, 0x00000350 + .word 0x00000350, 0x00000354 + .word 0x00000354, 0x00000358 + .word 0x00000358, 0x0000035C + .word 0x0000035C, 0x00000360 + .word 0x00000360, 0x00000364 + .word 0x00000364, 0x00000368 + .word 0x00000368, 0x0000036C + .word 0x0000036C, 0x00000370 + .word 0x00000370, 0x00000374 + .word 0x00000374, 0x00000378 + .word 0x00000378, 0x0000037C + .word 0x0000037C, 0x00000380 + .word 0x00000380, 0x00000384 + .word 0x00000384, 0x00000388 + .word 0x00000388, 0x0000038C + .word 0x0000038C, 0x00000390 + .word 0x00000390, 0x00000394 + .word 0x00000394, 0x00000398 + .word 0x00000398, 0x0000039C + .word 0x0000039C, 0x000003A0 + .word 0x000003A0, 0x000003A4 + .word 0x000003A4, 0x000003A8 + .word 0x000003A8, 0x000003AC + .word 0x000003AC, 0x000003B0 + .word 0x000003B0, 0x000003B4 + .word 0x000003B4, 0x000003B8 + .word 0x000003B8, 0x000003BC + .word 0x000003BC, 0x000003C0 + .word 0x000003C0, 0x000003C4 + .word 0x000003C4, 0x000003C8 + .word 0x000003C8, 0x000003CC + .word 0x000003CC, 0x000003D0 + .word 0x000003D0, 0x000003D4 + .word 0x000003D4, 0x000003D8 + .word 0x000003D8, 0x000003DC + .word 0x000003DC, 0x000003E0 + .word 0x000003E0, 0x000003E4 + .word 0x000003E4, 0x000003E8 + .word 0x000003E8, 0x000003EC + .word 0x000003EC, 0x000003F0 + .word 0x000003F0, 0x000003F4 + .word 0x000003F4, 0x000003F8 + .word 0x000003F8, 0x000003FC + .word 0x000003FC, 0x00000400 + .word 0x00000400, 0x00000404 + .word 0x00000404, 0x00000408 + .word 0x00000408, 0x0000040C + .word 0x0000040C, 0x00000410 + .word 0x00000410, 0x00000414 + .word 0x00000414, 0x00000418 + .word 0x00000418, 0x0000041C + .word 0x0000041C, 0x00000420 + .word 0x00000420, 0x00000424 + .word 0x00000424, 0x00000428 + .word 0x00000428, 0x0000042C + .word 0x0000042C, 0x00000430 + .word 0x00000430, 0x00000434 + .word 0x00000434, 0x00000438 + .word 0x00000438, 0x0000043C + .word 0x0000043C, 0x00000440 + .word 0x00000440, 0x00000444 + .word 0x00000444, 0x00000448 + .word 0x00000448, 0x0000044C + .word 0x0000044C, 0x00000450 + .word 0x00000450, 0x00000454 + .word 0x00000454, 0x00000458 + .word 0x00000458, 0x0000045C + .word 0x0000045C, 0x00000460 + .word 0x00000460, 0x00000464 + .word 0x00000464, 0x00000468 + .word 0x00000468, 0x0000046C + .word 0x0000046C, 0x00000470 + .word 0x00000470, 0x00000474 + .word 0x00000474, 0x00000478 + .word 0x00000478, 0x0000047C + .word 0x0000047C, 0x00000480 + .word 0x00000480, 0x00000484 + .word 0x00000484, 0x00000488 + .word 0x00000488, 0x0000048C + .word 0x0000048C, 0x00000490 + .word 0x00000490, 0x00000494 + .word 0x00000494, 0x00000498 + .word 0x00000498, 0x0000049C + .word 0x0000049C, 0x000004A0 + .word 0x000004A0, 0x000004A4 + .word 0x000004A4, 0x000004A8 + .word 0x000004A8, 0x000004AC + .word 0x000004AC, 0x000004B0 + .word 0x000004B0, 0x000004B4 + .word 0x000004B4, 0x000004B8 + .word 0x000004B8, 0x000004BC + .word 0x000004BC, 0x000004D0 + .word 0x000004D0, 0x000004D4 + .word 0x000004D4, 0x000004E8 + .word 0x000004E8, 0x000004EC + .word 0x000004EC, 0x000004F0 + .word 0x000004F0, 0x000004F4 + .word 0x000004F4, 0x000004F8 + .word 0x000004F8, 0x000004FC + .word 0x000004FC, 0x00000500 + .word 0x00000500, 0x00000504 + .word 0x00000504, 0x00000508 + .word 0x00000508, 0x0000050C + .word 0x0000050C, 0x00000510 + .word 0x00000510, 0x00000514 + .word 0x00000514, 0x00000518 + .word 0x00000518, 0x0000051C + .word 0x0000051C, 0x00000520 + .word 0x00000520, 0x00000524 + .word 0x00000524, 0x00000528 + .word 0x00000528, 0x0000052C + .word 0x0000052C, 0x00000530 + .word 0x00000530, 0x00000534 + .word 0x00000534, 0x00000538 + .word 0x00000538, 0x0000053C + .word 0x0000053C, 0x00000540 + .word 0x00000540, 0x00000544 + .word 0x00000544, 0x00000548 + .word 0x00000548, 0x0000054C + .word 0x0000054C, 0x00000550 + .word 0x00000550, 0x00000554 + .word 0x00000554, 0x00000558 + .word 0x00000558, 0x0000055C + .word 0x0000055C, 0x00000560 + .word 0x00000560, 0x00000564 + .word 0x00000564, 0x00000568 + .word 0x00000568, 0x0000056C + .word 0x0000056C, 0x00000570 + .word 0x00000570, 0x00000574 + .word 0x00000574, 0x00000578 + .word 0x00000578, 0x0000057C + .word 0x0000057C, 0x00000580 + .word 0x00000580, 0x00000584 + .word 0x00000584, 0x00000588 + .word 0x00000588, 0x0000059C + .word 0x0000059C, 0x000005A0 + .word 0x000005A0, 0x000005A4 + .word 0x000005A4, 0x000005A8 + .word 0x000005A8, 0x000005AC + .word 0x000005AC, 0x000005B0 + .word 0x000005B0, 0x000005B4 + .word 0x000005B4, 0x000005B8 + .word 0x000005B8, 0x000005BC + .word 0x000005BC, 0x000005C0 + .word 0x000005C0, 0x000005C4 + .word 0x000005C4, 0x000005C8 + .word 0x000005C8, 0x000005CC + .word 0x000005CC, 0x000005D0 + .word 0x000005D0, 0x000005D4 + .word 0x000005D4, 0x000005D8 + .word 0x000005D8, 0x000005DC + .word 0x000005DC, 0x000005E0 + .word 0x000005E0, 0x000005E4 + .word 0x000005E4, 0x000005E8 + .word 0x000005E8, 0x000005EC + .word 0x000005EC, 0x000005F0 + .word 0x000005F0, 0x000005F4 + .word 0x000005F4, 0x000005F8 + .word 0x000005F8, 0x000005FC + .word 0x000005FC, 0x00000600 + .word 0x00000600, 0x00000604 + .word 0x00000604, 0x00000608 + .word 0x00000608, 0x0000060C + .word 0x0000060C, 0x00000610 + .word 0x00000610, 0x00000614 + .word 0x00000614, 0x00000618 + .word 0x00000618, 0x0000061C + .word 0x0000061C, 0x00000620 + .word 0x00000620, 0x00000624 + .word 0x00000624, 0x00000628 + .word 0x00000628, 0x0000062C + .word 0x0000062C, 0x00000640 + .word 0x00000640, 0x00000644 + .word 0x00000644, 0x00000648 + .word 0x00000648, 0x0000064C + .word 0x0000064C, 0x00000650 + .word 0x00000650, 0x00000654 + .word 0x00000654, 0x00000658 + .word 0x00000658, 0x0000065C + .word 0x0000065C, 0x00000660 + .word 0x00000660, 0x00000664 + .word 0x00000664, 0x00000668 + .word 0x00000668, 0x0000066C + .word 0x0000066C, 0x00000680 + .word 0x00000680, 0x00000684 + .word 0x00000684, 0x00000688 + .word 0x00000688, 0x0000068C + .word 0x0000068C, 0x00000690 + .word 0x00000690, 0x00000694 + .word 0x00000694, 0x00000698 + .word 0x00000698, 0x0000069C + .word 0x0000069C, 0x000006A0 + .word 0x000006A0, 0x000006A4 + .word 0x000006A4, 0x000006A8 + .word 0x000006A8, 0x000006AC + .word 0x000006AC, 0x000006B0 + .word 0x000006B0, 0x000006C8 + .word 0x000006C8, 0x000006CC + .word 0x000006CC, 0x000006D0 + .word 0x000006D0, 0x000006D4 + .word 0x000006D4, 0x000006D8 + .word 0x000006D8, 0x000006DC + .word 0x000006DC, 0x000006E0 + .word 0x000006E0, 0x000006E4 + .word 0x000006E4, 0x000006E8 + .word 0x000006E8, 0x000006EC + .word 0x000006EC, 0x000006F0 + .word 0x000006F0, 0x000006F4 + .word 0x000006F4, 0x000006F8 + .word 0x000006F8, 0x000006FC + .word 0x000006FC, 0x00000700 + .word 0x00000700, 0x00000704 + .word 0x00000704, 0x00000708 + .word 0x00000708, 0x0000070C + .word 0x0000070C, 0x00000710 + .word 0x00000710, 0x00000714 + .word 0x00000714, 0x00000718 + .word 0x00000718, 0x0000071C + .word 0x0000071C, 0x00000720 + .word 0x00000720, 0x00000724 + .word 0x00000724, 0x00000728 + .word 0x00000728, 0x0000072C + .word 0x0000072C, 0x00000730 + .word 0x00000730, 0x00000734 + .word 0x00000734, 0x00000738 + .word 0x00000738, 0x0000073C + .word 0x0000073C, 0x00000740 + .word 0x00000740, 0x00000744 + .word 0x00000744, 0x00000748 + .word 0x00000748, 0x0000074C + .word 0x0000074C, 0x00000750 + .word 0x00000750, 0x00000754 + .word 0x00000754, 0x00000758 + .word 0x00000758, 0x0000075C + .word 0x0000075C, 0x00000760 + .word 0x00000760, 0x00000764 + .word 0x00000764, 0x00000768 + .word 0x00000768, 0x0000076C + .word 0x0000076C, 0x00000770 + .word 0x00000770, 0x00000774 + .word 0x00000774, 0x00000778 + .word 0x00000778, 0x0000077C + .word 0x0000077C, 0x00000780 + .word 0x00000780, 0x00000784 + .word 0x00000784, 0x00000788 + .word 0x00000788, 0x0000078C + .word 0x0000078C, 0x00000790 + .word 0x00000790, 0x00000794 + .word 0x00000794, 0x00000798 + .word 0x00000798, 0x0000079C + .word 0x0000079C, 0x000007A0 + .word 0x000007A0, 0x000007A4 + .word 0x000007A4, 0x000007A8 + .word 0x000007A8, 0x000007AC + .word 0x000007AC, 0x000007B0 + .word 0x000007B0, 0x000007B4 + .word 0x000007B4, 0x000007B8 + .word 0x000007B8, 0x000007BC + .word 0x000007BC, 0x000007C0 + .word 0x000007C0, 0x000007C4 + .word 0x000007C4, 0x000007C8 + .word 0x000007C8, 0x000007CC + .word 0x000007CC, 0x000007D0 + .word 0x000007D0, 0x000007D4 + .word 0x000007D4, 0x000007D8 + .word 0x000007D8, 0x000007DC + .word 0x000007DC, 0x000007E0 + .word 0x000007E0, 0x000007E4 + .word 0x000007E4, 0x000007E8 + .word 0x000007E8, 0x000007EC + .word 0x000007EC, 0x000007F0 + .word 0x000007F0, 0x000007F4 + .word 0x000007F4, 0x000007F8 + .word 0x000007F8, 0x000007FC + .word 0x000007FC, 0x00000800 + .word 0x00000800, 0x00000804 + .word 0x00000804, 0x00000808 + .word 0x00000808, 0x0000080C + .word 0x0000080C, 0x00000810 + .word 0x00000810, 0x00000814 + .word 0x00000814, 0x00000818 + .word 0x00000818, 0x0000081C + .word 0x0000081C, 0x00000820 + .word 0x00000820, 0x00000824 + .word 0x00000824, 0x00000828 + .word 0x00000828, 0x0000082C + .word 0x0000082C, 0x00000830 + .word 0x00000830, 0x00000834 + .word 0x00000834, 0x00000838 + .word 0x00000838, 0x0000083C + .word 0x0000083C, 0x00000840 + .word 0x00000840, 0x00000844 + .word 0x00000844, 0x00000848 + .word 0x00000848, 0x0000084C + .word 0x0000084C, 0x00000850 + .word 0x00000850, 0x00000854 + .word 0x00000854, 0x00000858 + .word 0x00000858, 0x0000085C + .word 0x0000085C, 0x00000860 + .word 0x00000860, 0x00000864 + .word 0x00000864, 0x00000868 + .word 0x00000868, 0x0000086C + .word 0x0000086C, 0x00000870 + .word 0x00000870, 0x00000874 + .word 0x00000874, 0x00000878 + .word 0x00000878, 0x0000087C + .word 0x0000087C, 0x00000890 + .word 0x00000890, 0x00000894 + .word 0x00000894, 0x00000898 + .word 0x00000898, 0x0000089C + .word 0x0000089C, 0x000008B0 + .word 0x000008B0, 0x000008B4 + .word 0x000008B4, 0x000008B8 + .word 0x000008B8, 0x000008BC + .word 0x000008BC, 0x000008C0 + .word 0x000008C0, 0x000008C4 + .word 0x000008C4, 0x000008C8 + .word 0x000008C8, 0x000008CC + .word 0x000008CC, 0x000008D0 + .word 0x000008D0, 0x000008D4 + .word 0x000008D4, 0x000008D8 + .word 0x000008D8, 0x000008DC + .word 0x000008DC, 0x000008E0 + .word 0x000008E0, 0x000008E4 + .word 0x000008E4, 0x000008E8 + .word 0x000008E8, 0x000008EC + .word 0x000008EC, 0x000008F0 + .word 0x000008F0, 0x000008F4 + .word 0x000008F4, 0x000008F8 + .word 0x000008F8, 0x000008FC + .word 0x000008FC, 0x00000900 + .word 0x00000900, 0x00000904 + .word 0x00000904, 0x00000908 + .word 0x00000908, 0x0000090C + .word 0x0000090C, 0x00000910 + .word 0x00000910, 0x00000914 + .word 0x00000914, 0x00000918 + .word 0x00000918, 0x0000091C + .word 0x0000091C, 0x00000920 + .word 0x00000920, 0x00000924 + .word 0x00000924, 0x00000928 + .word 0x00000928, 0x0000092C + .word 0x0000092C, 0x00000930 + .word 0x00000930, 0x00000934 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0000093C ; chunk size + .incbin "baserom.nds", 0x0, 0x4 + .incbin "baserom.nds", 0x4, 0x4 + .incbin "baserom.nds", 0x8, 0x4 + .incbin "baserom.nds", 0xC, 0x4 + .incbin "baserom.nds", 0x10, 0x4 + .incbin "baserom.nds", 0x14, 0x4 + .incbin "baserom.nds", 0x18, 0x4 + .incbin "baserom.nds", 0x1C, 0x4 + .incbin "baserom.nds", 0x20, 0x4 + .incbin "baserom.nds", 0x24, 0x4 + .incbin "baserom.nds", 0x28, 0x4 + .incbin "baserom.nds", 0x2C, 0x4 + .incbin "baserom.nds", 0x30, 0x4 + .incbin "baserom.nds", 0x34, 0x14 + .incbin "baserom.nds", 0x48, 0x4 + .incbin "baserom.nds", 0x4C, 0x4 + .incbin "baserom.nds", 0x50, 0x4 + .incbin "baserom.nds", 0x54, 0x4 + .incbin "baserom.nds", 0x58, 0x4 + .incbin "baserom.nds", 0x5C, 0x14 + .incbin "baserom.nds", 0x70, 0x18 + .incbin "baserom.nds", 0x88, 0x4 + .incbin "baserom.nds", 0x8C, 0x4 + .incbin "baserom.nds", 0x90, 0x4 + .incbin "baserom.nds", 0x94, 0x4 + .incbin "baserom.nds", 0x98, 0x4 + .incbin "baserom.nds", 0x9C, 0x4 + .incbin "baserom.nds", 0xA0, 0x4 + .incbin "baserom.nds", 0xA4, 0x4 + .incbin "baserom.nds", 0xA8, 0x4 + .incbin "baserom.nds", 0xAC, 0x4 + .incbin "baserom.nds", 0xB0, 0x4 + .incbin "baserom.nds", 0xB4, 0x4 + .incbin "baserom.nds", 0xB8, 0x4 + .incbin "baserom.nds", 0xBC, 0x4 + .incbin "baserom.nds", 0xC0, 0x18 + .incbin "baserom.nds", 0xD8, 0x4 + .incbin "baserom.nds", 0xDC, 0x4 + .incbin "baserom.nds", 0xE0, 0x4 + .incbin "baserom.nds", 0xE4, 0x4 + .incbin "baserom.nds", 0xE8, 0x4 + .incbin "baserom.nds", 0xEC, 0x4 + .incbin "baserom.nds", 0xF0, 0x4 + .incbin "baserom.nds", 0xF4, 0x4 + .incbin "baserom.nds", 0xF8, 0x4 + .incbin "baserom.nds", 0xFC, 0x4 + .incbin "baserom.nds", 0x100, 0x4 + .incbin "baserom.nds", 0x104, 0x4 + .incbin "baserom.nds", 0x108, 0x4 + .incbin "baserom.nds", 0x10C, 0x4 + .incbin "baserom.nds", 0x110, 0x4 + .incbin "baserom.nds", 0x114, 0x4 + .incbin "baserom.nds", 0x118, 0x4 + .incbin "baserom.nds", 0x11C, 0x4 + .incbin "baserom.nds", 0x120, 0x4 + .incbin "baserom.nds", 0x124, 0x4 + .incbin "baserom.nds", 0x128, 0x4 + .incbin "baserom.nds", 0x12C, 0x4 + .incbin "baserom.nds", 0x130, 0x4 + .incbin "baserom.nds", 0x134, 0x4 + .incbin "baserom.nds", 0x138, 0x4 + .incbin "baserom.nds", 0x13C, 0x4 + .incbin "baserom.nds", 0x140, 0x4 + .incbin "baserom.nds", 0x144, 0x4 + .incbin "baserom.nds", 0x148, 0x4 + .incbin "baserom.nds", 0x14C, 0x4 + .incbin "baserom.nds", 0x150, 0x4 + .incbin "baserom.nds", 0x154, 0x4 + .incbin "baserom.nds", 0x158, 0x4 + .incbin "baserom.nds", 0x15C, 0x4 + .incbin "baserom.nds", 0x160, 0x4 + .incbin "baserom.nds", 0x164, 0x4 + .incbin "baserom.nds", 0x168, 0x4 + .incbin "baserom.nds", 0x16C, 0x4 + .incbin "baserom.nds", 0x170, 0x4 + .incbin "baserom.nds", 0x174, 0x4 + .incbin "baserom.nds", 0x178, 0x14 + .incbin "baserom.nds", 0x18C, 0x4 + .incbin "baserom.nds", 0x190, 0x4 + .incbin "baserom.nds", 0x194, 0x4 + .incbin "baserom.nds", 0x198, 0x4 + .incbin "baserom.nds", 0x19C, 0x4 + .incbin "baserom.nds", 0x1A0, 0x4 + .incbin "baserom.nds", 0x1A4, 0x14 + .incbin "baserom.nds", 0x1B8, 0x4 + .incbin "baserom.nds", 0x1BC, 0x4 + .incbin "baserom.nds", 0x1C0, 0x4 + .incbin "baserom.nds", 0x1C4, 0x4 + .incbin "baserom.nds", 0x1C8, 0x4 + .incbin "baserom.nds", 0x1CC, 0x4 + .incbin "baserom.nds", 0x1D0, 0x4 + .incbin "baserom.nds", 0x1D4, 0x14 + .incbin "baserom.nds", 0x1E8, 0x4 + .incbin "baserom.nds", 0x1EC, 0x4 + .incbin "baserom.nds", 0x1F0, 0x4 + .incbin "baserom.nds", 0x1F4, 0x4 + .incbin "baserom.nds", 0x1F8, 0x4 + .incbin "baserom.nds", 0x1FC, 0x4 + .incbin "baserom.nds", 0x200, 0x4 + .incbin "baserom.nds", 0x204, 0x4 + .incbin "baserom.nds", 0x208, 0x4 + .incbin "baserom.nds", 0x20C, 0x4 + .incbin "baserom.nds", 0x210, 0x4 + .incbin "baserom.nds", 0x214, 0x4 + .incbin "baserom.nds", 0x218, 0x4 + .incbin "baserom.nds", 0x21C, 0x4 + .incbin "baserom.nds", 0x220, 0x4 + .incbin "baserom.nds", 0x224, 0x4 + .incbin "baserom.nds", 0x228, 0x4 + .incbin "baserom.nds", 0x22C, 0x4 + .incbin "baserom.nds", 0x230, 0x4 + .incbin "baserom.nds", 0x234, 0x4 + .incbin "baserom.nds", 0x238, 0x4 + .incbin "baserom.nds", 0x23C, 0x4 + .incbin "baserom.nds", 0x240, 0x4 + .incbin "baserom.nds", 0x244, 0x4 + .incbin "baserom.nds", 0x248, 0x4 + .incbin "baserom.nds", 0x24C, 0x4 + .incbin "baserom.nds", 0x250, 0x4 + .incbin "baserom.nds", 0x254, 0x4 + .incbin "baserom.nds", 0x258, 0x14 + .incbin "baserom.nds", 0x26C, 0x4 + .incbin "baserom.nds", 0x270, 0x4 + .incbin "baserom.nds", 0x274, 0x4 + .incbin "baserom.nds", 0x278, 0x4 + .incbin "baserom.nds", 0x27C, 0x4 + .incbin "baserom.nds", 0x280, 0x4 + .incbin "baserom.nds", 0x284, 0x4 + .incbin "baserom.nds", 0x288, 0x18 + .incbin "baserom.nds", 0x2A0, 0x4 + .incbin "baserom.nds", 0x2A4, 0x14 + .incbin "baserom.nds", 0x2B8, 0x4 + .incbin "baserom.nds", 0x2BC, 0x4 + .incbin "baserom.nds", 0x2C0, 0x4 + .incbin "baserom.nds", 0x2C4, 0x4 + .incbin "baserom.nds", 0x2C8, 0x4 + .incbin "baserom.nds", 0x2CC, 0x4 + .incbin "baserom.nds", 0x2D0, 0x4 + .incbin "baserom.nds", 0x2D4, 0x4 + .incbin "baserom.nds", 0x2D8, 0x4 + .incbin "baserom.nds", 0x2DC, 0x4 + .incbin "baserom.nds", 0x2E0, 0x4 + .incbin "baserom.nds", 0x2E4, 0x4 + .incbin "baserom.nds", 0x2E8, 0x14 + .incbin "baserom.nds", 0x2FC, 0x4 + .incbin "baserom.nds", 0x300, 0x4 + .incbin "baserom.nds", 0x304, 0x4 + .incbin "baserom.nds", 0x308, 0x4 + .incbin "baserom.nds", 0x30C, 0x4 + .incbin "baserom.nds", 0x310, 0x4 + .incbin "baserom.nds", 0x314, 0x14 + .incbin "baserom.nds", 0x328, 0x4 + .incbin "baserom.nds", 0x32C, 0x4 + .incbin "baserom.nds", 0x330, 0x14 + .incbin "baserom.nds", 0x344, 0x4 + .incbin "baserom.nds", 0x348, 0x4 + .incbin "baserom.nds", 0x34C, 0x4 + .incbin "baserom.nds", 0x350, 0x4 + .incbin "baserom.nds", 0x354, 0x4 + .incbin "baserom.nds", 0x358, 0x4 + .incbin "baserom.nds", 0x35C, 0x4 + .incbin "baserom.nds", 0x360, 0x4 + .incbin "baserom.nds", 0x364, 0x4 + .incbin "baserom.nds", 0x368, 0x4 + .incbin "baserom.nds", 0x36C, 0x4 + .incbin "baserom.nds", 0x370, 0x4 + .incbin "baserom.nds", 0x374, 0x4 + .incbin "baserom.nds", 0x378, 0x4 + .incbin "baserom.nds", 0x37C, 0x4 + .incbin "baserom.nds", 0x380, 0x4 + .incbin "baserom.nds", 0x384, 0x4 + .incbin "baserom.nds", 0x388, 0x4 + .incbin "baserom.nds", 0x38C, 0x4 + .incbin "baserom.nds", 0x390, 0x4 + .incbin "baserom.nds", 0x394, 0x4 + .incbin "baserom.nds", 0x398, 0x4 + .incbin "baserom.nds", 0x39C, 0x4 + .incbin "baserom.nds", 0x3A0, 0x4 + .incbin "baserom.nds", 0x3A4, 0x4 + .incbin "baserom.nds", 0x3A8, 0x4 + .incbin "baserom.nds", 0x3AC, 0x4 + .incbin "baserom.nds", 0x3B0, 0x4 + .incbin "baserom.nds", 0x3B4, 0x4 + .incbin "baserom.nds", 0x3B8, 0x4 + .incbin "baserom.nds", 0x3BC, 0x4 + .incbin "baserom.nds", 0x3C0, 0x4 + .incbin "baserom.nds", 0x3C4, 0x4 + .incbin "baserom.nds", 0x3C8, 0x4 + .incbin "baserom.nds", 0x3CC, 0x4 + .incbin "baserom.nds", 0x3D0, 0x4 + .incbin "baserom.nds", 0x3D4, 0x4 + .incbin "baserom.nds", 0x3D8, 0x4 + .incbin "baserom.nds", 0x3DC, 0x4 + .incbin "baserom.nds", 0x3E0, 0x4 + .incbin "baserom.nds", 0x3E4, 0x4 + .incbin "baserom.nds", 0x3E8, 0x4 + .incbin "baserom.nds", 0x3EC, 0x4 + .incbin "baserom.nds", 0x3F0, 0x4 + .incbin "baserom.nds", 0x3F4, 0x4 + .incbin "baserom.nds", 0x3F8, 0x4 + .incbin "baserom.nds", 0x3FC, 0x4 + .incbin "baserom.nds", 0x400, 0x4 + .incbin "baserom.nds", 0x404, 0x4 + .incbin "baserom.nds", 0x408, 0x4 + .incbin "baserom.nds", 0x40C, 0x4 + .incbin "baserom.nds", 0x410, 0x4 + .incbin "baserom.nds", 0x414, 0x4 + .incbin "baserom.nds", 0x418, 0x4 + .incbin "baserom.nds", 0x41C, 0x4 + .incbin "baserom.nds", 0x420, 0x4 + .incbin "baserom.nds", 0x424, 0x4 + .incbin "baserom.nds", 0x428, 0x4 + .incbin "baserom.nds", 0x42C, 0x4 + .incbin "baserom.nds", 0x430, 0x4 + .incbin "baserom.nds", 0x434, 0x4 + .incbin "baserom.nds", 0x438, 0x4 + .incbin "baserom.nds", 0x43C, 0x4 + .incbin "baserom.nds", 0x440, 0x4 + .incbin "baserom.nds", 0x444, 0x4 + .incbin "baserom.nds", 0x448, 0x4 + .incbin "baserom.nds", 0x44C, 0x4 + .incbin "baserom.nds", 0x450, 0x4 + .incbin "baserom.nds", 0x454, 0x4 + .incbin "baserom.nds", 0x458, 0x4 + .incbin "baserom.nds", 0x45C, 0x4 + .incbin "baserom.nds", 0x460, 0x4 + .incbin "baserom.nds", 0x464, 0x4 + .incbin "baserom.nds", 0x468, 0x4 + .incbin "baserom.nds", 0x46C, 0x4 + .incbin "baserom.nds", 0x470, 0x4 + .incbin "baserom.nds", 0x474, 0x4 + .incbin "baserom.nds", 0x478, 0x4 + .incbin "baserom.nds", 0x47C, 0x4 + .incbin "baserom.nds", 0x480, 0x4 + .incbin "baserom.nds", 0x484, 0x4 + .incbin "baserom.nds", 0x488, 0x4 + .incbin "baserom.nds", 0x48C, 0x4 + .incbin "baserom.nds", 0x490, 0x4 + .incbin "baserom.nds", 0x494, 0x4 + .incbin "baserom.nds", 0x498, 0x4 + .incbin "baserom.nds", 0x49C, 0x4 + .incbin "baserom.nds", 0x4A0, 0x4 + .incbin "baserom.nds", 0x4A4, 0x4 + .incbin "baserom.nds", 0x4A8, 0x4 + .incbin "baserom.nds", 0x4AC, 0x4 + .incbin "baserom.nds", 0x4B0, 0x4 + .incbin "baserom.nds", 0x4B4, 0x4 + .incbin "baserom.nds", 0x4B8, 0x4 + .incbin "baserom.nds", 0x4BC, 0x14 + .incbin "baserom.nds", 0x4D0, 0x4 + .incbin "baserom.nds", 0x4D4, 0x14 + .incbin "baserom.nds", 0x4E8, 0x4 + .incbin "baserom.nds", 0x4EC, 0x4 + .incbin "baserom.nds", 0x4F0, 0x4 + .incbin "baserom.nds", 0x4F4, 0x4 + .incbin "baserom.nds", 0x4F8, 0x4 + .incbin "baserom.nds", 0x4FC, 0x4 + .incbin "baserom.nds", 0x500, 0x4 + .incbin "baserom.nds", 0x504, 0x4 + .incbin "baserom.nds", 0x508, 0x4 + .incbin "baserom.nds", 0x50C, 0x4 + .incbin "baserom.nds", 0x510, 0x4 + .incbin "baserom.nds", 0x514, 0x4 + .incbin "baserom.nds", 0x518, 0x4 + .incbin "baserom.nds", 0x51C, 0x4 + .incbin "baserom.nds", 0x520, 0x4 + .incbin "baserom.nds", 0x524, 0x4 + .incbin "baserom.nds", 0x528, 0x4 + .incbin "baserom.nds", 0x52C, 0x4 + .incbin "baserom.nds", 0x530, 0x4 + .incbin "baserom.nds", 0x534, 0x4 + .incbin "baserom.nds", 0x538, 0x4 + .incbin "baserom.nds", 0x53C, 0x4 + .incbin "baserom.nds", 0x540, 0x4 + .incbin "baserom.nds", 0x544, 0x4 + .incbin "baserom.nds", 0x548, 0x4 + .incbin "baserom.nds", 0x54C, 0x4 + .incbin "baserom.nds", 0x550, 0x4 + .incbin "baserom.nds", 0x554, 0x4 + .incbin "baserom.nds", 0x558, 0x4 + .incbin "baserom.nds", 0x55C, 0x4 + .incbin "baserom.nds", 0x560, 0x4 + .incbin "baserom.nds", 0x564, 0x4 + .incbin "baserom.nds", 0x568, 0x4 + .incbin "baserom.nds", 0x56C, 0x4 + .incbin "baserom.nds", 0x570, 0x4 + .incbin "baserom.nds", 0x574, 0x4 + .incbin "baserom.nds", 0x578, 0x4 + .incbin "baserom.nds", 0x57C, 0x4 + .incbin "baserom.nds", 0x580, 0x4 + .incbin "baserom.nds", 0x584, 0x4 + .incbin "baserom.nds", 0x588, 0x14 + .incbin "baserom.nds", 0x59C, 0x4 + .incbin "baserom.nds", 0x5A0, 0x4 + .incbin "baserom.nds", 0x5A4, 0x4 + .incbin "baserom.nds", 0x5A8, 0x4 + .incbin "baserom.nds", 0x5AC, 0x4 + .incbin "baserom.nds", 0x5B0, 0x4 + .incbin "baserom.nds", 0x5B4, 0x4 + .incbin "baserom.nds", 0x5B8, 0x4 + .incbin "baserom.nds", 0x5BC, 0x4 + .incbin "baserom.nds", 0x5C0, 0x4 + .incbin "baserom.nds", 0x5C4, 0x4 + .incbin "baserom.nds", 0x5C8, 0x4 + .incbin "baserom.nds", 0x5CC, 0x4 + .incbin "baserom.nds", 0x5D0, 0x4 + .incbin "baserom.nds", 0x5D4, 0x4 + .incbin "baserom.nds", 0x5D8, 0x4 + .incbin "baserom.nds", 0x5DC, 0x4 + .incbin "baserom.nds", 0x5E0, 0x4 + .incbin "baserom.nds", 0x5E4, 0x4 + .incbin "baserom.nds", 0x5E8, 0x4 + .incbin "baserom.nds", 0x5EC, 0x4 + .incbin "baserom.nds", 0x5F0, 0x4 + .incbin "baserom.nds", 0x5F4, 0x4 + .incbin "baserom.nds", 0x5F8, 0x4 + .incbin "baserom.nds", 0x5FC, 0x4 + .incbin "baserom.nds", 0x600, 0x4 + .incbin "baserom.nds", 0x604, 0x4 + .incbin "baserom.nds", 0x608, 0x4 + .incbin "baserom.nds", 0x60C, 0x4 + .incbin "baserom.nds", 0x610, 0x4 + .incbin "baserom.nds", 0x614, 0x4 + .incbin "baserom.nds", 0x618, 0x4 + .incbin "baserom.nds", 0x61C, 0x4 + .incbin "baserom.nds", 0x620, 0x4 + .incbin "baserom.nds", 0x624, 0x4 + .incbin "baserom.nds", 0x628, 0x4 + .incbin "baserom.nds", 0x62C, 0x14 + .incbin "baserom.nds", 0x640, 0x4 + .incbin "baserom.nds", 0x644, 0x4 + .incbin "baserom.nds", 0x648, 0x4 + .incbin "baserom.nds", 0x64C, 0x4 + .incbin "baserom.nds", 0x650, 0x4 + .incbin "baserom.nds", 0x654, 0x4 + .incbin "baserom.nds", 0x658, 0x4 + .incbin "baserom.nds", 0x65C, 0x4 + .incbin "baserom.nds", 0x660, 0x4 + .incbin "baserom.nds", 0x664, 0x4 + .incbin "baserom.nds", 0x668, 0x4 + .incbin "baserom.nds", 0x66C, 0x14 + .incbin "baserom.nds", 0x680, 0x4 + .incbin "baserom.nds", 0x684, 0x4 + .incbin "baserom.nds", 0x688, 0x4 + .incbin "baserom.nds", 0x68C, 0x4 + .incbin "baserom.nds", 0x690, 0x4 + .incbin "baserom.nds", 0x694, 0x4 + .incbin "baserom.nds", 0x698, 0x4 + .incbin "baserom.nds", 0x69C, 0x4 + .incbin "baserom.nds", 0x6A0, 0x4 + .incbin "baserom.nds", 0x6A4, 0x4 + .incbin "baserom.nds", 0x6A8, 0x4 + .incbin "baserom.nds", 0x6AC, 0x4 + .incbin "baserom.nds", 0x6B0, 0x18 + .incbin "baserom.nds", 0x6C8, 0x4 + .incbin "baserom.nds", 0x6CC, 0x4 + .incbin "baserom.nds", 0x6D0, 0x4 + .incbin "baserom.nds", 0x6D4, 0x4 + .incbin "baserom.nds", 0x6D8, 0x4 + .incbin "baserom.nds", 0x6DC, 0x4 + .incbin "baserom.nds", 0x6E0, 0x4 + .incbin "baserom.nds", 0x6E4, 0x4 + .incbin "baserom.nds", 0x6E8, 0x4 + .incbin "baserom.nds", 0x6EC, 0x4 + .incbin "baserom.nds", 0x6F0, 0x4 + .incbin "baserom.nds", 0x6F4, 0x4 + .incbin "baserom.nds", 0x6F8, 0x4 + .incbin "baserom.nds", 0x6FC, 0x4 + .incbin "baserom.nds", 0x700, 0x4 + .incbin "baserom.nds", 0x704, 0x4 + .incbin "baserom.nds", 0x708, 0x4 + .incbin "baserom.nds", 0x70C, 0x4 + .incbin "baserom.nds", 0x710, 0x4 + .incbin "baserom.nds", 0x714, 0x4 + .incbin "baserom.nds", 0x718, 0x4 + .incbin "baserom.nds", 0x71C, 0x4 + .incbin "baserom.nds", 0x720, 0x4 + .incbin "baserom.nds", 0x724, 0x4 + .incbin "baserom.nds", 0x728, 0x4 + .incbin "baserom.nds", 0x72C, 0x4 + .incbin "baserom.nds", 0x730, 0x4 + .incbin "baserom.nds", 0x734, 0x4 + .incbin "baserom.nds", 0x738, 0x4 + .incbin "baserom.nds", 0x73C, 0x4 + .incbin "baserom.nds", 0x740, 0x4 + .incbin "baserom.nds", 0x744, 0x4 + .incbin "baserom.nds", 0x748, 0x4 + .incbin "baserom.nds", 0x74C, 0x4 + .incbin "baserom.nds", 0x750, 0x4 + .incbin "baserom.nds", 0x754, 0x4 + .incbin "baserom.nds", 0x758, 0x4 + .incbin "baserom.nds", 0x75C, 0x4 + .incbin "baserom.nds", 0x760, 0x4 + .incbin "baserom.nds", 0x764, 0x4 + .incbin "baserom.nds", 0x768, 0x4 + .incbin "baserom.nds", 0x76C, 0x4 + .incbin "baserom.nds", 0x770, 0x4 + .incbin "baserom.nds", 0x774, 0x4 + .incbin "baserom.nds", 0x778, 0x4 + .incbin "baserom.nds", 0x77C, 0x4 + .incbin "baserom.nds", 0x780, 0x4 + .incbin "baserom.nds", 0x784, 0x4 + .incbin "baserom.nds", 0x788, 0x4 + .incbin "baserom.nds", 0x78C, 0x4 + .incbin "baserom.nds", 0x790, 0x4 + .incbin "baserom.nds", 0x794, 0x4 + .incbin "baserom.nds", 0x798, 0x4 + .incbin "baserom.nds", 0x79C, 0x4 + .incbin "baserom.nds", 0x7A0, 0x4 + .incbin "baserom.nds", 0x7A4, 0x4 + .incbin "baserom.nds", 0x7A8, 0x4 + .incbin "baserom.nds", 0x7AC, 0x4 + .incbin "baserom.nds", 0x7B0, 0x4 + .incbin "baserom.nds", 0x7B4, 0x4 + .incbin "baserom.nds", 0x7B8, 0x4 + .incbin "baserom.nds", 0x7BC, 0x4 + .incbin "baserom.nds", 0x7C0, 0x4 + .incbin "baserom.nds", 0x7C4, 0x4 + .incbin "baserom.nds", 0x7C8, 0x4 + .incbin "baserom.nds", 0x7CC, 0x4 + .incbin "baserom.nds", 0x7D0, 0x4 + .incbin "baserom.nds", 0x7D4, 0x4 + .incbin "baserom.nds", 0x7D8, 0x4 + .incbin "baserom.nds", 0x7DC, 0x4 + .incbin "baserom.nds", 0x7E0, 0x4 + .incbin "baserom.nds", 0x7E4, 0x4 + .incbin "baserom.nds", 0x7E8, 0x4 + .incbin "baserom.nds", 0x7EC, 0x4 + .incbin "baserom.nds", 0x7F0, 0x4 + .incbin "baserom.nds", 0x7F4, 0x4 + .incbin "baserom.nds", 0x7F8, 0x4 + .incbin "baserom.nds", 0x7FC, 0x4 + .incbin "baserom.nds", 0x800, 0x4 + .incbin "baserom.nds", 0x804, 0x4 + .incbin "baserom.nds", 0x808, 0x4 + .incbin "baserom.nds", 0x80C, 0x4 + .incbin "baserom.nds", 0x810, 0x4 + .incbin "baserom.nds", 0x814, 0x4 + .incbin "baserom.nds", 0x818, 0x4 + .incbin "baserom.nds", 0x81C, 0x4 + .incbin "baserom.nds", 0x820, 0x4 + .incbin "baserom.nds", 0x824, 0x4 + .incbin "baserom.nds", 0x828, 0x4 + .incbin "baserom.nds", 0x82C, 0x4 + .incbin "baserom.nds", 0x830, 0x4 + .incbin "baserom.nds", 0x834, 0x4 + .incbin "baserom.nds", 0x838, 0x4 + .incbin "baserom.nds", 0x83C, 0x4 + .incbin "baserom.nds", 0x840, 0x4 + .incbin "baserom.nds", 0x844, 0x4 + .incbin "baserom.nds", 0x848, 0x4 + .incbin "baserom.nds", 0x84C, 0x4 + .incbin "baserom.nds", 0x850, 0x4 + .incbin "baserom.nds", 0x854, 0x4 + .incbin "baserom.nds", 0x858, 0x4 + .incbin "baserom.nds", 0x85C, 0x4 + .incbin "baserom.nds", 0x860, 0x4 + .incbin "baserom.nds", 0x864, 0x4 + .incbin "baserom.nds", 0x868, 0x4 + .incbin "baserom.nds", 0x86C, 0x4 + .incbin "baserom.nds", 0x870, 0x4 + .incbin "baserom.nds", 0x874, 0x4 + .incbin "baserom.nds", 0x878, 0x4 + .incbin "baserom.nds", 0x87C, 0x14 + .incbin "baserom.nds", 0x890, 0x4 + .incbin "baserom.nds", 0x894, 0x4 + .incbin "baserom.nds", 0x898, 0x4 + .incbin "baserom.nds", 0x89C, 0x14 + .incbin "baserom.nds", 0x8B0, 0x4 + .incbin "baserom.nds", 0x8B4, 0x4 + .incbin "baserom.nds", 0x8B8, 0x4 + .incbin "baserom.nds", 0x8BC, 0x4 + .incbin "baserom.nds", 0x8C0, 0x4 + .incbin "baserom.nds", 0x8C4, 0x4 + .incbin "baserom.nds", 0x8C8, 0x4 + .incbin "baserom.nds", 0x8CC, 0x4 + .incbin "baserom.nds", 0x8D0, 0x4 + .incbin "baserom.nds", 0x8D4, 0x4 + .incbin "baserom.nds", 0x8D8, 0x4 + .incbin "baserom.nds", 0x8DC, 0x4 + .incbin "baserom.nds", 0x8E0, 0x4 + .incbin "baserom.nds", 0x8E4, 0x4 + .incbin "baserom.nds", 0x8E8, 0x4 + .incbin "baserom.nds", 0x8EC, 0x4 + .incbin "baserom.nds", 0x8F0, 0x4 + .incbin "baserom.nds", 0x8F4, 0x4 + .incbin "baserom.nds", 0x8F8, 0x4 + .incbin "baserom.nds", 0x8FC, 0x4 + .incbin "baserom.nds", 0x900, 0x4 + .incbin "baserom.nds", 0x904, 0x4 + .incbin "baserom.nds", 0x908, 0x4 + .incbin "baserom.nds", 0x90C, 0x4 + .incbin "baserom.nds", 0x910, 0x4 + .incbin "baserom.nds", 0x914, 0x4 + .incbin "baserom.nds", 0x918, 0x4 + .incbin "baserom.nds", 0x91C, 0x4 + .incbin "baserom.nds", 0x920, 0x4 + .incbin "baserom.nds", 0x924, 0x4 + .incbin "baserom.nds", 0x928, 0x4 + .incbin "baserom.nds", 0x92C, 0x4 + .incbin "baserom.nds", 0x930, 0x4 + .balign 4, 255 diff --git a/narc/sound/sound_data.sdat.s b/narc/sound/sound_data.sdat.s new file mode 100644 index 00000000..26c1fd71 --- /dev/null +++ b/narc/sound/sound_data.sdat.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x597C00, 0x723560 diff --git a/narc/syoujyou/syoujyou.narc.s b/narc/syoujyou/syoujyou.narc.s new file mode 100644 index 00000000..6b8fae3c --- /dev/null +++ b/narc/syoujyou/syoujyou.narc.s @@ -0,0 +1,50 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x000064C4 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000006C ; chunk size + .short 12 ; number of files + .balign 4 + .word 0x00000000, 0x000011C0 + .word 0x000011C0, 0x00002A00 + .word 0x00002A00, 0x00002A80 + .word 0x00002A80, 0x00002B00 + .word 0x00002B00, 0x00002D28 + .word 0x00002D28, 0x00002F50 + .word 0x00002F50, 0x00003178 + .word 0x00003178, 0x000033A0 + .word 0x000033A0, 0x000043C4 + .word 0x000043C4, 0x000053E8 + .word 0x000053E8, 0x00005C0C + .word 0x00005C0C, 0x00006430 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00006438 ; chunk size + .incbin "baserom.nds", 0x0, 0x11C0 + .incbin "baserom.nds", 0x11C0, 0x1840 + .incbin "baserom.nds", 0x2A00, 0x80 + .incbin "baserom.nds", 0x2A80, 0x80 + .incbin "baserom.nds", 0x2B00, 0x228 + .incbin "baserom.nds", 0x2D28, 0x228 + .incbin "baserom.nds", 0x2F50, 0x228 + .incbin "baserom.nds", 0x3178, 0x228 + .incbin "baserom.nds", 0x33A0, 0x1024 + .incbin "baserom.nds", 0x43C4, 0x1024 + .incbin "baserom.nds", 0x53E8, 0x824 + .incbin "baserom.nds", 0x5C0C, 0x824 + .balign 4, 255 diff --git a/narc/title/op_demo.narc.s b/narc/title/op_demo.narc.s new file mode 100644 index 00000000..118f9745 --- /dev/null +++ b/narc/title/op_demo.narc.s @@ -0,0 +1,174 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00097188 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000025C ; chunk size + .short 74 ; number of files + .balign 4 + .word 0x00000000, 0x00000228 + .word 0x00000228, 0x00000A68 + .word 0x00000A68, 0x0000128C + .word 0x0000128C, 0x000014B4 + .word 0x000014B4, 0x00001764 + .word 0x00001764, 0x00001801 + .word 0x00001804, 0x0000189D + .word 0x000018A0, 0x00001AC8 + .word 0x00001AC8, 0x00009B08 + .word 0x00009B08, 0x0000A32C + .word 0x0000A32C, 0x0000A554 + .word 0x0000A554, 0x00012594 + .word 0x00012594, 0x00012DB8 + .word 0x00012DB8, 0x00012FE0 + .word 0x00012FE0, 0x0001B020 + .word 0x0001B020, 0x0001B844 + .word 0x0001B844, 0x0001BA6C + .word 0x0001BA6C, 0x00023AAC + .word 0x00023AAC, 0x00023CD4 + .word 0x00023CD4, 0x00025474 + .word 0x00025474, 0x00025A98 + .word 0x00025A98, 0x000260BC + .word 0x000260BC, 0x000266E0 + .word 0x000266E0, 0x00026908 + .word 0x00026908, 0x00026F2C + .word 0x00026F2C, 0x00027550 + .word 0x00027550, 0x00028574 + .word 0x00028574, 0x00029DB4 + .word 0x00029DB4, 0x00039DF4 + .word 0x00039DF4, 0x0003A01C + .word 0x0003A01C, 0x0003A244 + .word 0x0003A244, 0x0003A46C + .word 0x0003A46C, 0x0003A694 + .word 0x0003A694, 0x0003A8BC + .word 0x0003A8BC, 0x0003AAE4 + .word 0x0003AAE4, 0x0003AD0C + .word 0x0003AD0C, 0x0003AF34 + .word 0x0003AF34, 0x0003B15C + .word 0x0003B15C, 0x0003DB8C + .word 0x0003DB8C, 0x0004093C + .word 0x0004093C, 0x000410CC + .word 0x000410CC, 0x000413FC + .word 0x000413FC, 0x0004172C + .word 0x0004172C, 0x00041878 + .word 0x00041878, 0x000419F4 + .word 0x000419F4, 0x00041AC7 + .word 0x00041AC8, 0x00041B43 + .word 0x00041B44, 0x00041BEB + .word 0x00041BEC, 0x00041DF8 + .word 0x00041DF8, 0x00042004 + .word 0x00042004, 0x00042073 + .word 0x00042074, 0x000420EB + .word 0x000420EC, 0x0004218B + .word 0x0004218C, 0x000423B4 + .word 0x000423B4, 0x000437F4 + .word 0x000437F4, 0x00044434 + .word 0x00044434, 0x00046474 + .word 0x00046474, 0x0004ACB4 + .word 0x0004ACB4, 0x0004BCF4 + .word 0x0004BCF4, 0x0004C318 + .word 0x0004C318, 0x0004C93C + .word 0x0004C93C, 0x0004CD60 + .word 0x0004CD60, 0x0004DD84 + .word 0x0004DD84, 0x0004E3A8 + .word 0x0004E3A8, 0x00057AF8 + .word 0x00057AF8, 0x00062514 + .word 0x00062514, 0x0006CCE4 + .word 0x0006CCE4, 0x0007A308 + .word 0x0007A308, 0x00085758 + .word 0x00085758, 0x00088E7C + .word 0x00088E7C, 0x00094678 + .word 0x00094678, 0x000948A0 + .word 0x000948A0, 0x000968E0 + .word 0x000968E0, 0x00096F04 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00096F0C ; chunk size + .incbin "baserom.nds", 0x0, 0x228 + .incbin "baserom.nds", 0x228, 0x840 + .incbin "baserom.nds", 0xA68, 0x824 + .incbin "baserom.nds", 0x128C, 0x228 + .incbin "baserom.nds", 0x14B4, 0x2B0 + .incbin "baserom.nds", 0x1764, 0x9D + .incbin "baserom.nds", 0x1804, 0x99 + .incbin "baserom.nds", 0x18A0, 0x228 + .incbin "baserom.nds", 0x1AC8, 0x8040 + .incbin "baserom.nds", 0x9B08, 0x824 + .incbin "baserom.nds", 0xA32C, 0x228 + .incbin "baserom.nds", 0xA554, 0x8040 + .incbin "baserom.nds", 0x12594, 0x824 + .incbin "baserom.nds", 0x12DB8, 0x228 + .incbin "baserom.nds", 0x12FE0, 0x8040 + .incbin "baserom.nds", 0x1B020, 0x824 + .incbin "baserom.nds", 0x1B844, 0x228 + .incbin "baserom.nds", 0x1BA6C, 0x8040 + .incbin "baserom.nds", 0x23AAC, 0x228 + .incbin "baserom.nds", 0x23CD4, 0x17A0 + .incbin "baserom.nds", 0x25474, 0x624 + .incbin "baserom.nds", 0x25A98, 0x624 + .incbin "baserom.nds", 0x260BC, 0x624 + .incbin "baserom.nds", 0x266E0, 0x228 + .incbin "baserom.nds", 0x26908, 0x624 + .incbin "baserom.nds", 0x26F2C, 0x624 + .incbin "baserom.nds", 0x27550, 0x1024 + .incbin "baserom.nds", 0x28574, 0x1840 + .incbin "baserom.nds", 0x29DB4, 0x10040 + .incbin "baserom.nds", 0x39DF4, 0x228 + .incbin "baserom.nds", 0x3A01C, 0x228 + .incbin "baserom.nds", 0x3A244, 0x228 + .incbin "baserom.nds", 0x3A46C, 0x228 + .incbin "baserom.nds", 0x3A694, 0x228 + .incbin "baserom.nds", 0x3A8BC, 0x228 + .incbin "baserom.nds", 0x3AAE4, 0x228 + .incbin "baserom.nds", 0x3AD0C, 0x228 + .incbin "baserom.nds", 0x3AF34, 0x228 + .incbin "baserom.nds", 0x3B15C, 0x2A30 + .incbin "baserom.nds", 0x3DB8C, 0x2DB0 + .incbin "baserom.nds", 0x4093C, 0x790 + .incbin "baserom.nds", 0x410CC, 0x330 + .incbin "baserom.nds", 0x413FC, 0x330 + .incbin "baserom.nds", 0x4172C, 0x14C + .incbin "baserom.nds", 0x41878, 0x17C + .incbin "baserom.nds", 0x419F4, 0xD3 + .incbin "baserom.nds", 0x41AC8, 0x7B + .incbin "baserom.nds", 0x41B44, 0xA7 + .incbin "baserom.nds", 0x41BEC, 0x20C + .incbin "baserom.nds", 0x41DF8, 0x20C + .incbin "baserom.nds", 0x42004, 0x6F + .incbin "baserom.nds", 0x42074, 0x77 + .incbin "baserom.nds", 0x420EC, 0x9F + .incbin "baserom.nds", 0x4218C, 0x228 + .incbin "baserom.nds", 0x423B4, 0x1440 + .incbin "baserom.nds", 0x437F4, 0xC40 + .incbin "baserom.nds", 0x44434, 0x2040 + .incbin "baserom.nds", 0x46474, 0x4840 + .incbin "baserom.nds", 0x4ACB4, 0x1040 + .incbin "baserom.nds", 0x4BCF4, 0x624 + .incbin "baserom.nds", 0x4C318, 0x624 + .incbin "baserom.nds", 0x4C93C, 0x424 + .incbin "baserom.nds", 0x4CD60, 0x1024 + .incbin "baserom.nds", 0x4DD84, 0x624 + .incbin "baserom.nds", 0x4E3A8, 0x9750 + .incbin "baserom.nds", 0x57AF8, 0xAA1C + .incbin "baserom.nds", 0x62514, 0xA7D0 + .incbin "baserom.nds", 0x6CCE4, 0xD624 + .incbin "baserom.nds", 0x7A308, 0xB450 + .incbin "baserom.nds", 0x85758, 0x3724 + .incbin "baserom.nds", 0x88E7C, 0xB7FC + .incbin "baserom.nds", 0x94678, 0x228 + .incbin "baserom.nds", 0x948A0, 0x2040 + .incbin "baserom.nds", 0x968E0, 0x624 + .balign 4, 255 diff --git a/narc/title/titledemo.narc.s b/narc/title/titledemo.narc.s new file mode 100644 index 00000000..483b1d9d --- /dev/null +++ b/narc/title/titledemo.narc.s @@ -0,0 +1,66 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00037B10 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000000AC ; chunk size + .short 20 ; number of files + .balign 4 + .word 0x00000000, 0x00000824 + .word 0x00000824, 0x00008864 + .word 0x00008864, 0x00008A8C + .word 0x00008A8C, 0x00010ACC + .word 0x00010ACC, 0x00010CF4 + .word 0x00010CF4, 0x00020D24 + .word 0x00020D24, 0x0002D698 + .word 0x0002D698, 0x0002D7D8 + .word 0x0002D7D8, 0x0002DDFC + .word 0x0002DDFC, 0x0002E024 + .word 0x0002E024, 0x0002E24C + .word 0x0002E24C, 0x0002E38C + .word 0x0002E38C, 0x0002E9B0 + .word 0x0002E9B0, 0x0002EBD8 + .word 0x0002EBD8, 0x0002EE00 + .word 0x0002EE00, 0x00036E40 + .word 0x00036E40, 0x00037068 + .word 0x00037068, 0x0003768C + .word 0x0003768C, 0x00037864 + .word 0x00037864, 0x00037A3C + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00037A44 ; chunk size + .incbin "baserom.nds", 0x0, 0x824 + .incbin "baserom.nds", 0x824, 0x8040 + .incbin "baserom.nds", 0x8864, 0x228 + .incbin "baserom.nds", 0x8A8C, 0x8040 + .incbin "baserom.nds", 0x10ACC, 0x228 + .incbin "baserom.nds", 0x10CF4, 0x10030 + .incbin "baserom.nds", 0x20D24, 0xC974 + .incbin "baserom.nds", 0x2D698, 0x140 + .incbin "baserom.nds", 0x2D7D8, 0x624 + .incbin "baserom.nds", 0x2DDFC, 0x228 + .incbin "baserom.nds", 0x2E024, 0x228 + .incbin "baserom.nds", 0x2E24C, 0x140 + .incbin "baserom.nds", 0x2E38C, 0x624 + .incbin "baserom.nds", 0x2E9B0, 0x228 + .incbin "baserom.nds", 0x2EBD8, 0x228 + .incbin "baserom.nds", 0x2EE00, 0x8040 + .incbin "baserom.nds", 0x36E40, 0x228 + .incbin "baserom.nds", 0x37068, 0x624 + .incbin "baserom.nds", 0x3768C, 0x1D8 + .incbin "baserom.nds", 0x37864, 0x1D8 + .balign 4, 255 diff --git a/narc/tr_ai/tr_ai_seq.narc.s b/narc/tr_ai/tr_ai_seq.narc.s new file mode 100644 index 00000000..4d0f9b65 --- /dev/null +++ b/narc/tr_ai/tr_ai_seq.narc.s @@ -0,0 +1,28 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0000A5D0 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000014 ; chunk size + .short 1 ; number of files + .balign 4 + .word 0x00000000, 0x0000A594 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0000A59C ; chunk size + .incbin "baserom.nds", 0x0, 0xA594 + .balign 4, 255 diff --git a/narc/trainer/trdata.narc.s b/narc/trainer/trdata.narc.s new file mode 100644 index 00000000..e6b9c899 --- /dev/null +++ b/narc/trainer/trdata.narc.s @@ -0,0 +1,1726 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00005D2C ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00001A9C ; chunk size + .short 850 ; number of files + .balign 4 + .word 0x00000000, 0x00000014 + .word 0x00000014, 0x00000028 + .word 0x00000028, 0x0000003C + .word 0x0000003C, 0x00000050 + .word 0x00000050, 0x00000064 + .word 0x00000064, 0x00000078 + .word 0x00000078, 0x0000008C + .word 0x0000008C, 0x000000A0 + .word 0x000000A0, 0x000000B4 + .word 0x000000B4, 0x000000C8 + .word 0x000000C8, 0x000000DC + .word 0x000000DC, 0x000000F0 + .word 0x000000F0, 0x00000104 + .word 0x00000104, 0x00000118 + .word 0x00000118, 0x0000012C + .word 0x0000012C, 0x00000140 + .word 0x00000140, 0x00000154 + .word 0x00000154, 0x00000168 + .word 0x00000168, 0x0000017C + .word 0x0000017C, 0x00000190 + .word 0x00000190, 0x000001A4 + .word 0x000001A4, 0x000001B8 + .word 0x000001B8, 0x000001CC + .word 0x000001CC, 0x000001E0 + .word 0x000001E0, 0x000001F4 + .word 0x000001F4, 0x00000208 + .word 0x00000208, 0x0000021C + .word 0x0000021C, 0x00000230 + .word 0x00000230, 0x00000244 + .word 0x00000244, 0x00000258 + .word 0x00000258, 0x0000026C + .word 0x0000026C, 0x00000280 + .word 0x00000280, 0x00000294 + .word 0x00000294, 0x000002A8 + .word 0x000002A8, 0x000002BC + .word 0x000002BC, 0x000002D0 + .word 0x000002D0, 0x000002E4 + .word 0x000002E4, 0x000002F8 + .word 0x000002F8, 0x0000030C + .word 0x0000030C, 0x00000320 + .word 0x00000320, 0x00000334 + .word 0x00000334, 0x00000348 + .word 0x00000348, 0x0000035C + .word 0x0000035C, 0x00000370 + .word 0x00000370, 0x00000384 + .word 0x00000384, 0x00000398 + .word 0x00000398, 0x000003AC + .word 0x000003AC, 0x000003C0 + .word 0x000003C0, 0x000003D4 + .word 0x000003D4, 0x000003E8 + .word 0x000003E8, 0x000003FC + .word 0x000003FC, 0x00000410 + .word 0x00000410, 0x00000424 + .word 0x00000424, 0x00000438 + .word 0x00000438, 0x0000044C + .word 0x0000044C, 0x00000460 + .word 0x00000460, 0x00000474 + .word 0x00000474, 0x00000488 + .word 0x00000488, 0x0000049C + .word 0x0000049C, 0x000004B0 + .word 0x000004B0, 0x000004C4 + .word 0x000004C4, 0x000004D8 + .word 0x000004D8, 0x000004EC + .word 0x000004EC, 0x00000500 + .word 0x00000500, 0x00000514 + .word 0x00000514, 0x00000528 + .word 0x00000528, 0x0000053C + .word 0x0000053C, 0x00000550 + .word 0x00000550, 0x00000564 + .word 0x00000564, 0x00000578 + .word 0x00000578, 0x0000058C + .word 0x0000058C, 0x000005A0 + .word 0x000005A0, 0x000005B4 + .word 0x000005B4, 0x000005C8 + .word 0x000005C8, 0x000005DC + .word 0x000005DC, 0x000005F0 + .word 0x000005F0, 0x00000604 + .word 0x00000604, 0x00000618 + .word 0x00000618, 0x0000062C + .word 0x0000062C, 0x00000640 + .word 0x00000640, 0x00000654 + .word 0x00000654, 0x00000668 + .word 0x00000668, 0x0000067C + .word 0x0000067C, 0x00000690 + .word 0x00000690, 0x000006A4 + .word 0x000006A4, 0x000006B8 + .word 0x000006B8, 0x000006CC + .word 0x000006CC, 0x000006E0 + .word 0x000006E0, 0x000006F4 + .word 0x000006F4, 0x00000708 + .word 0x00000708, 0x0000071C + .word 0x0000071C, 0x00000730 + .word 0x00000730, 0x00000744 + .word 0x00000744, 0x00000758 + .word 0x00000758, 0x0000076C + .word 0x0000076C, 0x00000780 + .word 0x00000780, 0x00000794 + .word 0x00000794, 0x000007A8 + .word 0x000007A8, 0x000007BC + .word 0x000007BC, 0x000007D0 + .word 0x000007D0, 0x000007E4 + .word 0x000007E4, 0x000007F8 + .word 0x000007F8, 0x0000080C + .word 0x0000080C, 0x00000820 + .word 0x00000820, 0x00000834 + .word 0x00000834, 0x00000848 + .word 0x00000848, 0x0000085C + .word 0x0000085C, 0x00000870 + .word 0x00000870, 0x00000884 + .word 0x00000884, 0x00000898 + .word 0x00000898, 0x000008AC + .word 0x000008AC, 0x000008C0 + .word 0x000008C0, 0x000008D4 + .word 0x000008D4, 0x000008E8 + .word 0x000008E8, 0x000008FC + .word 0x000008FC, 0x00000910 + .word 0x00000910, 0x00000924 + .word 0x00000924, 0x00000938 + .word 0x00000938, 0x0000094C + .word 0x0000094C, 0x00000960 + .word 0x00000960, 0x00000974 + .word 0x00000974, 0x00000988 + .word 0x00000988, 0x0000099C + .word 0x0000099C, 0x000009B0 + .word 0x000009B0, 0x000009C4 + .word 0x000009C4, 0x000009D8 + .word 0x000009D8, 0x000009EC + .word 0x000009EC, 0x00000A00 + .word 0x00000A00, 0x00000A14 + .word 0x00000A14, 0x00000A28 + .word 0x00000A28, 0x00000A3C + .word 0x00000A3C, 0x00000A50 + .word 0x00000A50, 0x00000A64 + .word 0x00000A64, 0x00000A78 + .word 0x00000A78, 0x00000A8C + .word 0x00000A8C, 0x00000AA0 + .word 0x00000AA0, 0x00000AB4 + .word 0x00000AB4, 0x00000AC8 + .word 0x00000AC8, 0x00000ADC + .word 0x00000ADC, 0x00000AF0 + .word 0x00000AF0, 0x00000B04 + .word 0x00000B04, 0x00000B18 + .word 0x00000B18, 0x00000B2C + .word 0x00000B2C, 0x00000B40 + .word 0x00000B40, 0x00000B54 + .word 0x00000B54, 0x00000B68 + .word 0x00000B68, 0x00000B7C + .word 0x00000B7C, 0x00000B90 + .word 0x00000B90, 0x00000BA4 + .word 0x00000BA4, 0x00000BB8 + .word 0x00000BB8, 0x00000BCC + .word 0x00000BCC, 0x00000BE0 + .word 0x00000BE0, 0x00000BF4 + .word 0x00000BF4, 0x00000C08 + .word 0x00000C08, 0x00000C1C + .word 0x00000C1C, 0x00000C30 + .word 0x00000C30, 0x00000C44 + .word 0x00000C44, 0x00000C58 + .word 0x00000C58, 0x00000C6C + .word 0x00000C6C, 0x00000C80 + .word 0x00000C80, 0x00000C94 + .word 0x00000C94, 0x00000CA8 + .word 0x00000CA8, 0x00000CBC + .word 0x00000CBC, 0x00000CD0 + .word 0x00000CD0, 0x00000CE4 + .word 0x00000CE4, 0x00000CF8 + .word 0x00000CF8, 0x00000D0C + .word 0x00000D0C, 0x00000D20 + .word 0x00000D20, 0x00000D34 + .word 0x00000D34, 0x00000D48 + .word 0x00000D48, 0x00000D5C + .word 0x00000D5C, 0x00000D70 + .word 0x00000D70, 0x00000D84 + .word 0x00000D84, 0x00000D98 + .word 0x00000D98, 0x00000DAC + .word 0x00000DAC, 0x00000DC0 + .word 0x00000DC0, 0x00000DD4 + .word 0x00000DD4, 0x00000DE8 + .word 0x00000DE8, 0x00000DFC + .word 0x00000DFC, 0x00000E10 + .word 0x00000E10, 0x00000E24 + .word 0x00000E24, 0x00000E38 + .word 0x00000E38, 0x00000E4C + .word 0x00000E4C, 0x00000E60 + .word 0x00000E60, 0x00000E74 + .word 0x00000E74, 0x00000E88 + .word 0x00000E88, 0x00000E9C + .word 0x00000E9C, 0x00000EB0 + .word 0x00000EB0, 0x00000EC4 + .word 0x00000EC4, 0x00000ED8 + .word 0x00000ED8, 0x00000EEC + .word 0x00000EEC, 0x00000F00 + .word 0x00000F00, 0x00000F14 + .word 0x00000F14, 0x00000F28 + .word 0x00000F28, 0x00000F3C + .word 0x00000F3C, 0x00000F50 + .word 0x00000F50, 0x00000F64 + .word 0x00000F64, 0x00000F78 + .word 0x00000F78, 0x00000F8C + .word 0x00000F8C, 0x00000FA0 + .word 0x00000FA0, 0x00000FB4 + .word 0x00000FB4, 0x00000FC8 + .word 0x00000FC8, 0x00000FDC + .word 0x00000FDC, 0x00000FF0 + .word 0x00000FF0, 0x00001004 + .word 0x00001004, 0x00001018 + .word 0x00001018, 0x0000102C + .word 0x0000102C, 0x00001040 + .word 0x00001040, 0x00001054 + .word 0x00001054, 0x00001068 + .word 0x00001068, 0x0000107C + .word 0x0000107C, 0x00001090 + .word 0x00001090, 0x000010A4 + .word 0x000010A4, 0x000010B8 + .word 0x000010B8, 0x000010CC + .word 0x000010CC, 0x000010E0 + .word 0x000010E0, 0x000010F4 + .word 0x000010F4, 0x00001108 + .word 0x00001108, 0x0000111C + .word 0x0000111C, 0x00001130 + .word 0x00001130, 0x00001144 + .word 0x00001144, 0x00001158 + .word 0x00001158, 0x0000116C + .word 0x0000116C, 0x00001180 + .word 0x00001180, 0x00001194 + .word 0x00001194, 0x000011A8 + .word 0x000011A8, 0x000011BC + .word 0x000011BC, 0x000011D0 + .word 0x000011D0, 0x000011E4 + .word 0x000011E4, 0x000011F8 + .word 0x000011F8, 0x0000120C + .word 0x0000120C, 0x00001220 + .word 0x00001220, 0x00001234 + .word 0x00001234, 0x00001248 + .word 0x00001248, 0x0000125C + .word 0x0000125C, 0x00001270 + .word 0x00001270, 0x00001284 + .word 0x00001284, 0x00001298 + .word 0x00001298, 0x000012AC + .word 0x000012AC, 0x000012C0 + .word 0x000012C0, 0x000012D4 + .word 0x000012D4, 0x000012E8 + .word 0x000012E8, 0x000012FC + .word 0x000012FC, 0x00001310 + .word 0x00001310, 0x00001324 + .word 0x00001324, 0x00001338 + .word 0x00001338, 0x0000134C + .word 0x0000134C, 0x00001360 + .word 0x00001360, 0x00001374 + .word 0x00001374, 0x00001388 + .word 0x00001388, 0x0000139C + .word 0x0000139C, 0x000013B0 + .word 0x000013B0, 0x000013C4 + .word 0x000013C4, 0x000013D8 + .word 0x000013D8, 0x000013EC + .word 0x000013EC, 0x00001400 + .word 0x00001400, 0x00001414 + .word 0x00001414, 0x00001428 + .word 0x00001428, 0x0000143C + .word 0x0000143C, 0x00001450 + .word 0x00001450, 0x00001464 + .word 0x00001464, 0x00001478 + .word 0x00001478, 0x0000148C + .word 0x0000148C, 0x000014A0 + .word 0x000014A0, 0x000014B4 + .word 0x000014B4, 0x000014C8 + .word 0x000014C8, 0x000014DC + .word 0x000014DC, 0x000014F0 + .word 0x000014F0, 0x00001504 + .word 0x00001504, 0x00001518 + .word 0x00001518, 0x0000152C + .word 0x0000152C, 0x00001540 + .word 0x00001540, 0x00001554 + .word 0x00001554, 0x00001568 + .word 0x00001568, 0x0000157C + .word 0x0000157C, 0x00001590 + .word 0x00001590, 0x000015A4 + .word 0x000015A4, 0x000015B8 + .word 0x000015B8, 0x000015CC + .word 0x000015CC, 0x000015E0 + .word 0x000015E0, 0x000015F4 + .word 0x000015F4, 0x00001608 + .word 0x00001608, 0x0000161C + .word 0x0000161C, 0x00001630 + .word 0x00001630, 0x00001644 + .word 0x00001644, 0x00001658 + .word 0x00001658, 0x0000166C + .word 0x0000166C, 0x00001680 + .word 0x00001680, 0x00001694 + .word 0x00001694, 0x000016A8 + .word 0x000016A8, 0x000016BC + .word 0x000016BC, 0x000016D0 + .word 0x000016D0, 0x000016E4 + .word 0x000016E4, 0x000016F8 + .word 0x000016F8, 0x0000170C + .word 0x0000170C, 0x00001720 + .word 0x00001720, 0x00001734 + .word 0x00001734, 0x00001748 + .word 0x00001748, 0x0000175C + .word 0x0000175C, 0x00001770 + .word 0x00001770, 0x00001784 + .word 0x00001784, 0x00001798 + .word 0x00001798, 0x000017AC + .word 0x000017AC, 0x000017C0 + .word 0x000017C0, 0x000017D4 + .word 0x000017D4, 0x000017E8 + .word 0x000017E8, 0x000017FC + .word 0x000017FC, 0x00001810 + .word 0x00001810, 0x00001824 + .word 0x00001824, 0x00001838 + .word 0x00001838, 0x0000184C + .word 0x0000184C, 0x00001860 + .word 0x00001860, 0x00001874 + .word 0x00001874, 0x00001888 + .word 0x00001888, 0x0000189C + .word 0x0000189C, 0x000018B0 + .word 0x000018B0, 0x000018C4 + .word 0x000018C4, 0x000018D8 + .word 0x000018D8, 0x000018EC + .word 0x000018EC, 0x00001900 + .word 0x00001900, 0x00001914 + .word 0x00001914, 0x00001928 + .word 0x00001928, 0x0000193C + .word 0x0000193C, 0x00001950 + .word 0x00001950, 0x00001964 + .word 0x00001964, 0x00001978 + .word 0x00001978, 0x0000198C + .word 0x0000198C, 0x000019A0 + .word 0x000019A0, 0x000019B4 + .word 0x000019B4, 0x000019C8 + .word 0x000019C8, 0x000019DC + .word 0x000019DC, 0x000019F0 + .word 0x000019F0, 0x00001A04 + .word 0x00001A04, 0x00001A18 + .word 0x00001A18, 0x00001A2C + .word 0x00001A2C, 0x00001A40 + .word 0x00001A40, 0x00001A54 + .word 0x00001A54, 0x00001A68 + .word 0x00001A68, 0x00001A7C + .word 0x00001A7C, 0x00001A90 + .word 0x00001A90, 0x00001AA4 + .word 0x00001AA4, 0x00001AB8 + .word 0x00001AB8, 0x00001ACC + .word 0x00001ACC, 0x00001AE0 + .word 0x00001AE0, 0x00001AF4 + .word 0x00001AF4, 0x00001B08 + .word 0x00001B08, 0x00001B1C + .word 0x00001B1C, 0x00001B30 + .word 0x00001B30, 0x00001B44 + .word 0x00001B44, 0x00001B58 + .word 0x00001B58, 0x00001B6C + .word 0x00001B6C, 0x00001B80 + .word 0x00001B80, 0x00001B94 + .word 0x00001B94, 0x00001BA8 + .word 0x00001BA8, 0x00001BBC + .word 0x00001BBC, 0x00001BD0 + .word 0x00001BD0, 0x00001BE4 + .word 0x00001BE4, 0x00001BF8 + .word 0x00001BF8, 0x00001C0C + .word 0x00001C0C, 0x00001C20 + .word 0x00001C20, 0x00001C34 + .word 0x00001C34, 0x00001C48 + .word 0x00001C48, 0x00001C5C + .word 0x00001C5C, 0x00001C70 + .word 0x00001C70, 0x00001C84 + .word 0x00001C84, 0x00001C98 + .word 0x00001C98, 0x00001CAC + .word 0x00001CAC, 0x00001CC0 + .word 0x00001CC0, 0x00001CD4 + .word 0x00001CD4, 0x00001CE8 + .word 0x00001CE8, 0x00001CFC + .word 0x00001CFC, 0x00001D10 + .word 0x00001D10, 0x00001D24 + .word 0x00001D24, 0x00001D38 + .word 0x00001D38, 0x00001D4C + .word 0x00001D4C, 0x00001D60 + .word 0x00001D60, 0x00001D74 + .word 0x00001D74, 0x00001D88 + .word 0x00001D88, 0x00001D9C + .word 0x00001D9C, 0x00001DB0 + .word 0x00001DB0, 0x00001DC4 + .word 0x00001DC4, 0x00001DD8 + .word 0x00001DD8, 0x00001DEC + .word 0x00001DEC, 0x00001E00 + .word 0x00001E00, 0x00001E14 + .word 0x00001E14, 0x00001E28 + .word 0x00001E28, 0x00001E3C + .word 0x00001E3C, 0x00001E50 + .word 0x00001E50, 0x00001E64 + .word 0x00001E64, 0x00001E78 + .word 0x00001E78, 0x00001E8C + .word 0x00001E8C, 0x00001EA0 + .word 0x00001EA0, 0x00001EB4 + .word 0x00001EB4, 0x00001EC8 + .word 0x00001EC8, 0x00001EDC + .word 0x00001EDC, 0x00001EF0 + .word 0x00001EF0, 0x00001F04 + .word 0x00001F04, 0x00001F18 + .word 0x00001F18, 0x00001F2C + .word 0x00001F2C, 0x00001F40 + .word 0x00001F40, 0x00001F54 + .word 0x00001F54, 0x00001F68 + .word 0x00001F68, 0x00001F7C + .word 0x00001F7C, 0x00001F90 + .word 0x00001F90, 0x00001FA4 + .word 0x00001FA4, 0x00001FB8 + .word 0x00001FB8, 0x00001FCC + .word 0x00001FCC, 0x00001FE0 + .word 0x00001FE0, 0x00001FF4 + .word 0x00001FF4, 0x00002008 + .word 0x00002008, 0x0000201C + .word 0x0000201C, 0x00002030 + .word 0x00002030, 0x00002044 + .word 0x00002044, 0x00002058 + .word 0x00002058, 0x0000206C + .word 0x0000206C, 0x00002080 + .word 0x00002080, 0x00002094 + .word 0x00002094, 0x000020A8 + .word 0x000020A8, 0x000020BC + .word 0x000020BC, 0x000020D0 + .word 0x000020D0, 0x000020E4 + .word 0x000020E4, 0x000020F8 + .word 0x000020F8, 0x0000210C + .word 0x0000210C, 0x00002120 + .word 0x00002120, 0x00002134 + .word 0x00002134, 0x00002148 + .word 0x00002148, 0x0000215C + .word 0x0000215C, 0x00002170 + .word 0x00002170, 0x00002184 + .word 0x00002184, 0x00002198 + .word 0x00002198, 0x000021AC + .word 0x000021AC, 0x000021C0 + .word 0x000021C0, 0x000021D4 + .word 0x000021D4, 0x000021E8 + .word 0x000021E8, 0x000021FC + .word 0x000021FC, 0x00002210 + .word 0x00002210, 0x00002224 + .word 0x00002224, 0x00002238 + .word 0x00002238, 0x0000224C + .word 0x0000224C, 0x00002260 + .word 0x00002260, 0x00002274 + .word 0x00002274, 0x00002288 + .word 0x00002288, 0x0000229C + .word 0x0000229C, 0x000022B0 + .word 0x000022B0, 0x000022C4 + .word 0x000022C4, 0x000022D8 + .word 0x000022D8, 0x000022EC + .word 0x000022EC, 0x00002300 + .word 0x00002300, 0x00002314 + .word 0x00002314, 0x00002328 + .word 0x00002328, 0x0000233C + .word 0x0000233C, 0x00002350 + .word 0x00002350, 0x00002364 + .word 0x00002364, 0x00002378 + .word 0x00002378, 0x0000238C + .word 0x0000238C, 0x000023A0 + .word 0x000023A0, 0x000023B4 + .word 0x000023B4, 0x000023C8 + .word 0x000023C8, 0x000023DC + .word 0x000023DC, 0x000023F0 + .word 0x000023F0, 0x00002404 + .word 0x00002404, 0x00002418 + .word 0x00002418, 0x0000242C + .word 0x0000242C, 0x00002440 + .word 0x00002440, 0x00002454 + .word 0x00002454, 0x00002468 + .word 0x00002468, 0x0000247C + .word 0x0000247C, 0x00002490 + .word 0x00002490, 0x000024A4 + .word 0x000024A4, 0x000024B8 + .word 0x000024B8, 0x000024CC + .word 0x000024CC, 0x000024E0 + .word 0x000024E0, 0x000024F4 + .word 0x000024F4, 0x00002508 + .word 0x00002508, 0x0000251C + .word 0x0000251C, 0x00002530 + .word 0x00002530, 0x00002544 + .word 0x00002544, 0x00002558 + .word 0x00002558, 0x0000256C + .word 0x0000256C, 0x00002580 + .word 0x00002580, 0x00002594 + .word 0x00002594, 0x000025A8 + .word 0x000025A8, 0x000025BC + .word 0x000025BC, 0x000025D0 + .word 0x000025D0, 0x000025E4 + .word 0x000025E4, 0x000025F8 + .word 0x000025F8, 0x0000260C + .word 0x0000260C, 0x00002620 + .word 0x00002620, 0x00002634 + .word 0x00002634, 0x00002648 + .word 0x00002648, 0x0000265C + .word 0x0000265C, 0x00002670 + .word 0x00002670, 0x00002684 + .word 0x00002684, 0x00002698 + .word 0x00002698, 0x000026AC + .word 0x000026AC, 0x000026C0 + .word 0x000026C0, 0x000026D4 + .word 0x000026D4, 0x000026E8 + .word 0x000026E8, 0x000026FC + .word 0x000026FC, 0x00002710 + .word 0x00002710, 0x00002724 + .word 0x00002724, 0x00002738 + .word 0x00002738, 0x0000274C + .word 0x0000274C, 0x00002760 + .word 0x00002760, 0x00002774 + .word 0x00002774, 0x00002788 + .word 0x00002788, 0x0000279C + .word 0x0000279C, 0x000027B0 + .word 0x000027B0, 0x000027C4 + .word 0x000027C4, 0x000027D8 + .word 0x000027D8, 0x000027EC + .word 0x000027EC, 0x00002800 + .word 0x00002800, 0x00002814 + .word 0x00002814, 0x00002828 + .word 0x00002828, 0x0000283C + .word 0x0000283C, 0x00002850 + .word 0x00002850, 0x00002864 + .word 0x00002864, 0x00002878 + .word 0x00002878, 0x0000288C + .word 0x0000288C, 0x000028A0 + .word 0x000028A0, 0x000028B4 + .word 0x000028B4, 0x000028C8 + .word 0x000028C8, 0x000028DC + .word 0x000028DC, 0x000028F0 + .word 0x000028F0, 0x00002904 + .word 0x00002904, 0x00002918 + .word 0x00002918, 0x0000292C + .word 0x0000292C, 0x00002940 + .word 0x00002940, 0x00002954 + .word 0x00002954, 0x00002968 + .word 0x00002968, 0x0000297C + .word 0x0000297C, 0x00002990 + .word 0x00002990, 0x000029A4 + .word 0x000029A4, 0x000029B8 + .word 0x000029B8, 0x000029CC + .word 0x000029CC, 0x000029E0 + .word 0x000029E0, 0x000029F4 + .word 0x000029F4, 0x00002A08 + .word 0x00002A08, 0x00002A1C + .word 0x00002A1C, 0x00002A30 + .word 0x00002A30, 0x00002A44 + .word 0x00002A44, 0x00002A58 + .word 0x00002A58, 0x00002A6C + .word 0x00002A6C, 0x00002A80 + .word 0x00002A80, 0x00002A94 + .word 0x00002A94, 0x00002AA8 + .word 0x00002AA8, 0x00002ABC + .word 0x00002ABC, 0x00002AD0 + .word 0x00002AD0, 0x00002AE4 + .word 0x00002AE4, 0x00002AF8 + .word 0x00002AF8, 0x00002B0C + .word 0x00002B0C, 0x00002B20 + .word 0x00002B20, 0x00002B34 + .word 0x00002B34, 0x00002B48 + .word 0x00002B48, 0x00002B5C + .word 0x00002B5C, 0x00002B70 + .word 0x00002B70, 0x00002B84 + .word 0x00002B84, 0x00002B98 + .word 0x00002B98, 0x00002BAC + .word 0x00002BAC, 0x00002BC0 + .word 0x00002BC0, 0x00002BD4 + .word 0x00002BD4, 0x00002BE8 + .word 0x00002BE8, 0x00002BFC + .word 0x00002BFC, 0x00002C10 + .word 0x00002C10, 0x00002C24 + .word 0x00002C24, 0x00002C38 + .word 0x00002C38, 0x00002C4C + .word 0x00002C4C, 0x00002C60 + .word 0x00002C60, 0x00002C74 + .word 0x00002C74, 0x00002C88 + .word 0x00002C88, 0x00002C9C + .word 0x00002C9C, 0x00002CB0 + .word 0x00002CB0, 0x00002CC4 + .word 0x00002CC4, 0x00002CD8 + .word 0x00002CD8, 0x00002CEC + .word 0x00002CEC, 0x00002D00 + .word 0x00002D00, 0x00002D14 + .word 0x00002D14, 0x00002D28 + .word 0x00002D28, 0x00002D3C + .word 0x00002D3C, 0x00002D50 + .word 0x00002D50, 0x00002D64 + .word 0x00002D64, 0x00002D78 + .word 0x00002D78, 0x00002D8C + .word 0x00002D8C, 0x00002DA0 + .word 0x00002DA0, 0x00002DB4 + .word 0x00002DB4, 0x00002DC8 + .word 0x00002DC8, 0x00002DDC + .word 0x00002DDC, 0x00002DF0 + .word 0x00002DF0, 0x00002E04 + .word 0x00002E04, 0x00002E18 + .word 0x00002E18, 0x00002E2C + .word 0x00002E2C, 0x00002E40 + .word 0x00002E40, 0x00002E54 + .word 0x00002E54, 0x00002E68 + .word 0x00002E68, 0x00002E7C + .word 0x00002E7C, 0x00002E90 + .word 0x00002E90, 0x00002EA4 + .word 0x00002EA4, 0x00002EB8 + .word 0x00002EB8, 0x00002ECC + .word 0x00002ECC, 0x00002EE0 + .word 0x00002EE0, 0x00002EF4 + .word 0x00002EF4, 0x00002F08 + .word 0x00002F08, 0x00002F1C + .word 0x00002F1C, 0x00002F30 + .word 0x00002F30, 0x00002F44 + .word 0x00002F44, 0x00002F58 + .word 0x00002F58, 0x00002F6C + .word 0x00002F6C, 0x00002F80 + .word 0x00002F80, 0x00002F94 + .word 0x00002F94, 0x00002FA8 + .word 0x00002FA8, 0x00002FBC + .word 0x00002FBC, 0x00002FD0 + .word 0x00002FD0, 0x00002FE4 + .word 0x00002FE4, 0x00002FF8 + .word 0x00002FF8, 0x0000300C + .word 0x0000300C, 0x00003020 + .word 0x00003020, 0x00003034 + .word 0x00003034, 0x00003048 + .word 0x00003048, 0x0000305C + .word 0x0000305C, 0x00003070 + .word 0x00003070, 0x00003084 + .word 0x00003084, 0x00003098 + .word 0x00003098, 0x000030AC + .word 0x000030AC, 0x000030C0 + .word 0x000030C0, 0x000030D4 + .word 0x000030D4, 0x000030E8 + .word 0x000030E8, 0x000030FC + .word 0x000030FC, 0x00003110 + .word 0x00003110, 0x00003124 + .word 0x00003124, 0x00003138 + .word 0x00003138, 0x0000314C + .word 0x0000314C, 0x00003160 + .word 0x00003160, 0x00003174 + .word 0x00003174, 0x00003188 + .word 0x00003188, 0x0000319C + .word 0x0000319C, 0x000031B0 + .word 0x000031B0, 0x000031C4 + .word 0x000031C4, 0x000031D8 + .word 0x000031D8, 0x000031EC + .word 0x000031EC, 0x00003200 + .word 0x00003200, 0x00003214 + .word 0x00003214, 0x00003228 + .word 0x00003228, 0x0000323C + .word 0x0000323C, 0x00003250 + .word 0x00003250, 0x00003264 + .word 0x00003264, 0x00003278 + .word 0x00003278, 0x0000328C + .word 0x0000328C, 0x000032A0 + .word 0x000032A0, 0x000032B4 + .word 0x000032B4, 0x000032C8 + .word 0x000032C8, 0x000032DC + .word 0x000032DC, 0x000032F0 + .word 0x000032F0, 0x00003304 + .word 0x00003304, 0x00003318 + .word 0x00003318, 0x0000332C + .word 0x0000332C, 0x00003340 + .word 0x00003340, 0x00003354 + .word 0x00003354, 0x00003368 + .word 0x00003368, 0x0000337C + .word 0x0000337C, 0x00003390 + .word 0x00003390, 0x000033A4 + .word 0x000033A4, 0x000033B8 + .word 0x000033B8, 0x000033CC + .word 0x000033CC, 0x000033E0 + .word 0x000033E0, 0x000033F4 + .word 0x000033F4, 0x00003408 + .word 0x00003408, 0x0000341C + .word 0x0000341C, 0x00003430 + .word 0x00003430, 0x00003444 + .word 0x00003444, 0x00003458 + .word 0x00003458, 0x0000346C + .word 0x0000346C, 0x00003480 + .word 0x00003480, 0x00003494 + .word 0x00003494, 0x000034A8 + .word 0x000034A8, 0x000034BC + .word 0x000034BC, 0x000034D0 + .word 0x000034D0, 0x000034E4 + .word 0x000034E4, 0x000034F8 + .word 0x000034F8, 0x0000350C + .word 0x0000350C, 0x00003520 + .word 0x00003520, 0x00003534 + .word 0x00003534, 0x00003548 + .word 0x00003548, 0x0000355C + .word 0x0000355C, 0x00003570 + .word 0x00003570, 0x00003584 + .word 0x00003584, 0x00003598 + .word 0x00003598, 0x000035AC + .word 0x000035AC, 0x000035C0 + .word 0x000035C0, 0x000035D4 + .word 0x000035D4, 0x000035E8 + .word 0x000035E8, 0x000035FC + .word 0x000035FC, 0x00003610 + .word 0x00003610, 0x00003624 + .word 0x00003624, 0x00003638 + .word 0x00003638, 0x0000364C + .word 0x0000364C, 0x00003660 + .word 0x00003660, 0x00003674 + .word 0x00003674, 0x00003688 + .word 0x00003688, 0x0000369C + .word 0x0000369C, 0x000036B0 + .word 0x000036B0, 0x000036C4 + .word 0x000036C4, 0x000036D8 + .word 0x000036D8, 0x000036EC + .word 0x000036EC, 0x00003700 + .word 0x00003700, 0x00003714 + .word 0x00003714, 0x00003728 + .word 0x00003728, 0x0000373C + .word 0x0000373C, 0x00003750 + .word 0x00003750, 0x00003764 + .word 0x00003764, 0x00003778 + .word 0x00003778, 0x0000378C + .word 0x0000378C, 0x000037A0 + .word 0x000037A0, 0x000037B4 + .word 0x000037B4, 0x000037C8 + .word 0x000037C8, 0x000037DC + .word 0x000037DC, 0x000037F0 + .word 0x000037F0, 0x00003804 + .word 0x00003804, 0x00003818 + .word 0x00003818, 0x0000382C + .word 0x0000382C, 0x00003840 + .word 0x00003840, 0x00003854 + .word 0x00003854, 0x00003868 + .word 0x00003868, 0x0000387C + .word 0x0000387C, 0x00003890 + .word 0x00003890, 0x000038A4 + .word 0x000038A4, 0x000038B8 + .word 0x000038B8, 0x000038CC + .word 0x000038CC, 0x000038E0 + .word 0x000038E0, 0x000038F4 + .word 0x000038F4, 0x00003908 + .word 0x00003908, 0x0000391C + .word 0x0000391C, 0x00003930 + .word 0x00003930, 0x00003944 + .word 0x00003944, 0x00003958 + .word 0x00003958, 0x0000396C + .word 0x0000396C, 0x00003980 + .word 0x00003980, 0x00003994 + .word 0x00003994, 0x000039A8 + .word 0x000039A8, 0x000039BC + .word 0x000039BC, 0x000039D0 + .word 0x000039D0, 0x000039E4 + .word 0x000039E4, 0x000039F8 + .word 0x000039F8, 0x00003A0C + .word 0x00003A0C, 0x00003A20 + .word 0x00003A20, 0x00003A34 + .word 0x00003A34, 0x00003A48 + .word 0x00003A48, 0x00003A5C + .word 0x00003A5C, 0x00003A70 + .word 0x00003A70, 0x00003A84 + .word 0x00003A84, 0x00003A98 + .word 0x00003A98, 0x00003AAC + .word 0x00003AAC, 0x00003AC0 + .word 0x00003AC0, 0x00003AD4 + .word 0x00003AD4, 0x00003AE8 + .word 0x00003AE8, 0x00003AFC + .word 0x00003AFC, 0x00003B10 + .word 0x00003B10, 0x00003B24 + .word 0x00003B24, 0x00003B38 + .word 0x00003B38, 0x00003B4C + .word 0x00003B4C, 0x00003B60 + .word 0x00003B60, 0x00003B74 + .word 0x00003B74, 0x00003B88 + .word 0x00003B88, 0x00003B9C + .word 0x00003B9C, 0x00003BB0 + .word 0x00003BB0, 0x00003BC4 + .word 0x00003BC4, 0x00003BD8 + .word 0x00003BD8, 0x00003BEC + .word 0x00003BEC, 0x00003C00 + .word 0x00003C00, 0x00003C14 + .word 0x00003C14, 0x00003C28 + .word 0x00003C28, 0x00003C3C + .word 0x00003C3C, 0x00003C50 + .word 0x00003C50, 0x00003C64 + .word 0x00003C64, 0x00003C78 + .word 0x00003C78, 0x00003C8C + .word 0x00003C8C, 0x00003CA0 + .word 0x00003CA0, 0x00003CB4 + .word 0x00003CB4, 0x00003CC8 + .word 0x00003CC8, 0x00003CDC + .word 0x00003CDC, 0x00003CF0 + .word 0x00003CF0, 0x00003D04 + .word 0x00003D04, 0x00003D18 + .word 0x00003D18, 0x00003D2C + .word 0x00003D2C, 0x00003D40 + .word 0x00003D40, 0x00003D54 + .word 0x00003D54, 0x00003D68 + .word 0x00003D68, 0x00003D7C + .word 0x00003D7C, 0x00003D90 + .word 0x00003D90, 0x00003DA4 + .word 0x00003DA4, 0x00003DB8 + .word 0x00003DB8, 0x00003DCC + .word 0x00003DCC, 0x00003DE0 + .word 0x00003DE0, 0x00003DF4 + .word 0x00003DF4, 0x00003E08 + .word 0x00003E08, 0x00003E1C + .word 0x00003E1C, 0x00003E30 + .word 0x00003E30, 0x00003E44 + .word 0x00003E44, 0x00003E58 + .word 0x00003E58, 0x00003E6C + .word 0x00003E6C, 0x00003E80 + .word 0x00003E80, 0x00003E94 + .word 0x00003E94, 0x00003EA8 + .word 0x00003EA8, 0x00003EBC + .word 0x00003EBC, 0x00003ED0 + .word 0x00003ED0, 0x00003EE4 + .word 0x00003EE4, 0x00003EF8 + .word 0x00003EF8, 0x00003F0C + .word 0x00003F0C, 0x00003F20 + .word 0x00003F20, 0x00003F34 + .word 0x00003F34, 0x00003F48 + .word 0x00003F48, 0x00003F5C + .word 0x00003F5C, 0x00003F70 + .word 0x00003F70, 0x00003F84 + .word 0x00003F84, 0x00003F98 + .word 0x00003F98, 0x00003FAC + .word 0x00003FAC, 0x00003FC0 + .word 0x00003FC0, 0x00003FD4 + .word 0x00003FD4, 0x00003FE8 + .word 0x00003FE8, 0x00003FFC + .word 0x00003FFC, 0x00004010 + .word 0x00004010, 0x00004024 + .word 0x00004024, 0x00004038 + .word 0x00004038, 0x0000404C + .word 0x0000404C, 0x00004060 + .word 0x00004060, 0x00004074 + .word 0x00004074, 0x00004088 + .word 0x00004088, 0x0000409C + .word 0x0000409C, 0x000040B0 + .word 0x000040B0, 0x000040C4 + .word 0x000040C4, 0x000040D8 + .word 0x000040D8, 0x000040EC + .word 0x000040EC, 0x00004100 + .word 0x00004100, 0x00004114 + .word 0x00004114, 0x00004128 + .word 0x00004128, 0x0000413C + .word 0x0000413C, 0x00004150 + .word 0x00004150, 0x00004164 + .word 0x00004164, 0x00004178 + .word 0x00004178, 0x0000418C + .word 0x0000418C, 0x000041A0 + .word 0x000041A0, 0x000041B4 + .word 0x000041B4, 0x000041C8 + .word 0x000041C8, 0x000041DC + .word 0x000041DC, 0x000041F0 + .word 0x000041F0, 0x00004204 + .word 0x00004204, 0x00004218 + .word 0x00004218, 0x0000422C + .word 0x0000422C, 0x00004240 + .word 0x00004240, 0x00004254 + .word 0x00004254, 0x00004268 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00004270 ; chunk size + .incbin "baserom.nds", 0x0, 0x14 + .incbin "baserom.nds", 0x14, 0x14 + .incbin "baserom.nds", 0x28, 0x14 + .incbin "baserom.nds", 0x3C, 0x14 + .incbin "baserom.nds", 0x50, 0x14 + .incbin "baserom.nds", 0x64, 0x14 + .incbin "baserom.nds", 0x78, 0x14 + .incbin "baserom.nds", 0x8C, 0x14 + .incbin "baserom.nds", 0xA0, 0x14 + .incbin "baserom.nds", 0xB4, 0x14 + .incbin "baserom.nds", 0xC8, 0x14 + .incbin "baserom.nds", 0xDC, 0x14 + .incbin "baserom.nds", 0xF0, 0x14 + .incbin "baserom.nds", 0x104, 0x14 + .incbin "baserom.nds", 0x118, 0x14 + .incbin "baserom.nds", 0x12C, 0x14 + .incbin "baserom.nds", 0x140, 0x14 + .incbin "baserom.nds", 0x154, 0x14 + .incbin "baserom.nds", 0x168, 0x14 + .incbin "baserom.nds", 0x17C, 0x14 + .incbin "baserom.nds", 0x190, 0x14 + .incbin "baserom.nds", 0x1A4, 0x14 + .incbin "baserom.nds", 0x1B8, 0x14 + .incbin "baserom.nds", 0x1CC, 0x14 + .incbin "baserom.nds", 0x1E0, 0x14 + .incbin "baserom.nds", 0x1F4, 0x14 + .incbin "baserom.nds", 0x208, 0x14 + .incbin "baserom.nds", 0x21C, 0x14 + .incbin "baserom.nds", 0x230, 0x14 + .incbin "baserom.nds", 0x244, 0x14 + .incbin "baserom.nds", 0x258, 0x14 + .incbin "baserom.nds", 0x26C, 0x14 + .incbin "baserom.nds", 0x280, 0x14 + .incbin "baserom.nds", 0x294, 0x14 + .incbin "baserom.nds", 0x2A8, 0x14 + .incbin "baserom.nds", 0x2BC, 0x14 + .incbin "baserom.nds", 0x2D0, 0x14 + .incbin "baserom.nds", 0x2E4, 0x14 + .incbin "baserom.nds", 0x2F8, 0x14 + .incbin "baserom.nds", 0x30C, 0x14 + .incbin "baserom.nds", 0x320, 0x14 + .incbin "baserom.nds", 0x334, 0x14 + .incbin "baserom.nds", 0x348, 0x14 + .incbin "baserom.nds", 0x35C, 0x14 + .incbin "baserom.nds", 0x370, 0x14 + .incbin "baserom.nds", 0x384, 0x14 + .incbin "baserom.nds", 0x398, 0x14 + .incbin "baserom.nds", 0x3AC, 0x14 + .incbin "baserom.nds", 0x3C0, 0x14 + .incbin "baserom.nds", 0x3D4, 0x14 + .incbin "baserom.nds", 0x3E8, 0x14 + .incbin "baserom.nds", 0x3FC, 0x14 + .incbin "baserom.nds", 0x410, 0x14 + .incbin "baserom.nds", 0x424, 0x14 + .incbin "baserom.nds", 0x438, 0x14 + .incbin "baserom.nds", 0x44C, 0x14 + .incbin "baserom.nds", 0x460, 0x14 + .incbin "baserom.nds", 0x474, 0x14 + .incbin "baserom.nds", 0x488, 0x14 + .incbin "baserom.nds", 0x49C, 0x14 + .incbin "baserom.nds", 0x4B0, 0x14 + .incbin "baserom.nds", 0x4C4, 0x14 + .incbin "baserom.nds", 0x4D8, 0x14 + .incbin "baserom.nds", 0x4EC, 0x14 + .incbin "baserom.nds", 0x500, 0x14 + .incbin "baserom.nds", 0x514, 0x14 + .incbin "baserom.nds", 0x528, 0x14 + .incbin "baserom.nds", 0x53C, 0x14 + .incbin "baserom.nds", 0x550, 0x14 + .incbin "baserom.nds", 0x564, 0x14 + .incbin "baserom.nds", 0x578, 0x14 + .incbin "baserom.nds", 0x58C, 0x14 + .incbin "baserom.nds", 0x5A0, 0x14 + .incbin "baserom.nds", 0x5B4, 0x14 + .incbin "baserom.nds", 0x5C8, 0x14 + .incbin "baserom.nds", 0x5DC, 0x14 + .incbin "baserom.nds", 0x5F0, 0x14 + .incbin "baserom.nds", 0x604, 0x14 + .incbin "baserom.nds", 0x618, 0x14 + .incbin "baserom.nds", 0x62C, 0x14 + .incbin "baserom.nds", 0x640, 0x14 + .incbin "baserom.nds", 0x654, 0x14 + .incbin "baserom.nds", 0x668, 0x14 + .incbin "baserom.nds", 0x67C, 0x14 + .incbin "baserom.nds", 0x690, 0x14 + .incbin "baserom.nds", 0x6A4, 0x14 + .incbin "baserom.nds", 0x6B8, 0x14 + .incbin "baserom.nds", 0x6CC, 0x14 + .incbin "baserom.nds", 0x6E0, 0x14 + .incbin "baserom.nds", 0x6F4, 0x14 + .incbin "baserom.nds", 0x708, 0x14 + .incbin "baserom.nds", 0x71C, 0x14 + .incbin "baserom.nds", 0x730, 0x14 + .incbin "baserom.nds", 0x744, 0x14 + .incbin "baserom.nds", 0x758, 0x14 + .incbin "baserom.nds", 0x76C, 0x14 + .incbin "baserom.nds", 0x780, 0x14 + .incbin "baserom.nds", 0x794, 0x14 + .incbin "baserom.nds", 0x7A8, 0x14 + .incbin "baserom.nds", 0x7BC, 0x14 + .incbin "baserom.nds", 0x7D0, 0x14 + .incbin "baserom.nds", 0x7E4, 0x14 + .incbin "baserom.nds", 0x7F8, 0x14 + .incbin "baserom.nds", 0x80C, 0x14 + .incbin "baserom.nds", 0x820, 0x14 + .incbin "baserom.nds", 0x834, 0x14 + .incbin "baserom.nds", 0x848, 0x14 + .incbin "baserom.nds", 0x85C, 0x14 + .incbin "baserom.nds", 0x870, 0x14 + .incbin "baserom.nds", 0x884, 0x14 + .incbin "baserom.nds", 0x898, 0x14 + .incbin "baserom.nds", 0x8AC, 0x14 + .incbin "baserom.nds", 0x8C0, 0x14 + .incbin "baserom.nds", 0x8D4, 0x14 + .incbin "baserom.nds", 0x8E8, 0x14 + .incbin "baserom.nds", 0x8FC, 0x14 + .incbin "baserom.nds", 0x910, 0x14 + .incbin "baserom.nds", 0x924, 0x14 + .incbin "baserom.nds", 0x938, 0x14 + .incbin "baserom.nds", 0x94C, 0x14 + .incbin "baserom.nds", 0x960, 0x14 + .incbin "baserom.nds", 0x974, 0x14 + .incbin "baserom.nds", 0x988, 0x14 + .incbin "baserom.nds", 0x99C, 0x14 + .incbin "baserom.nds", 0x9B0, 0x14 + .incbin "baserom.nds", 0x9C4, 0x14 + .incbin "baserom.nds", 0x9D8, 0x14 + .incbin "baserom.nds", 0x9EC, 0x14 + .incbin "baserom.nds", 0xA00, 0x14 + .incbin "baserom.nds", 0xA14, 0x14 + .incbin "baserom.nds", 0xA28, 0x14 + .incbin "baserom.nds", 0xA3C, 0x14 + .incbin "baserom.nds", 0xA50, 0x14 + .incbin "baserom.nds", 0xA64, 0x14 + .incbin "baserom.nds", 0xA78, 0x14 + .incbin "baserom.nds", 0xA8C, 0x14 + .incbin "baserom.nds", 0xAA0, 0x14 + .incbin "baserom.nds", 0xAB4, 0x14 + .incbin "baserom.nds", 0xAC8, 0x14 + .incbin "baserom.nds", 0xADC, 0x14 + .incbin "baserom.nds", 0xAF0, 0x14 + .incbin "baserom.nds", 0xB04, 0x14 + .incbin "baserom.nds", 0xB18, 0x14 + .incbin "baserom.nds", 0xB2C, 0x14 + .incbin "baserom.nds", 0xB40, 0x14 + .incbin "baserom.nds", 0xB54, 0x14 + .incbin "baserom.nds", 0xB68, 0x14 + .incbin "baserom.nds", 0xB7C, 0x14 + .incbin "baserom.nds", 0xB90, 0x14 + .incbin "baserom.nds", 0xBA4, 0x14 + .incbin "baserom.nds", 0xBB8, 0x14 + .incbin "baserom.nds", 0xBCC, 0x14 + .incbin "baserom.nds", 0xBE0, 0x14 + .incbin "baserom.nds", 0xBF4, 0x14 + .incbin "baserom.nds", 0xC08, 0x14 + .incbin "baserom.nds", 0xC1C, 0x14 + .incbin "baserom.nds", 0xC30, 0x14 + .incbin "baserom.nds", 0xC44, 0x14 + .incbin "baserom.nds", 0xC58, 0x14 + .incbin "baserom.nds", 0xC6C, 0x14 + .incbin "baserom.nds", 0xC80, 0x14 + .incbin "baserom.nds", 0xC94, 0x14 + .incbin "baserom.nds", 0xCA8, 0x14 + .incbin "baserom.nds", 0xCBC, 0x14 + .incbin "baserom.nds", 0xCD0, 0x14 + .incbin "baserom.nds", 0xCE4, 0x14 + .incbin "baserom.nds", 0xCF8, 0x14 + .incbin "baserom.nds", 0xD0C, 0x14 + .incbin "baserom.nds", 0xD20, 0x14 + .incbin "baserom.nds", 0xD34, 0x14 + .incbin "baserom.nds", 0xD48, 0x14 + .incbin "baserom.nds", 0xD5C, 0x14 + .incbin "baserom.nds", 0xD70, 0x14 + .incbin "baserom.nds", 0xD84, 0x14 + .incbin "baserom.nds", 0xD98, 0x14 + .incbin "baserom.nds", 0xDAC, 0x14 + .incbin "baserom.nds", 0xDC0, 0x14 + .incbin "baserom.nds", 0xDD4, 0x14 + .incbin "baserom.nds", 0xDE8, 0x14 + .incbin "baserom.nds", 0xDFC, 0x14 + .incbin "baserom.nds", 0xE10, 0x14 + .incbin "baserom.nds", 0xE24, 0x14 + .incbin "baserom.nds", 0xE38, 0x14 + .incbin "baserom.nds", 0xE4C, 0x14 + .incbin "baserom.nds", 0xE60, 0x14 + .incbin "baserom.nds", 0xE74, 0x14 + .incbin "baserom.nds", 0xE88, 0x14 + .incbin "baserom.nds", 0xE9C, 0x14 + .incbin "baserom.nds", 0xEB0, 0x14 + .incbin "baserom.nds", 0xEC4, 0x14 + .incbin "baserom.nds", 0xED8, 0x14 + .incbin "baserom.nds", 0xEEC, 0x14 + .incbin "baserom.nds", 0xF00, 0x14 + .incbin "baserom.nds", 0xF14, 0x14 + .incbin "baserom.nds", 0xF28, 0x14 + .incbin "baserom.nds", 0xF3C, 0x14 + .incbin "baserom.nds", 0xF50, 0x14 + .incbin "baserom.nds", 0xF64, 0x14 + .incbin "baserom.nds", 0xF78, 0x14 + .incbin "baserom.nds", 0xF8C, 0x14 + .incbin "baserom.nds", 0xFA0, 0x14 + .incbin "baserom.nds", 0xFB4, 0x14 + .incbin "baserom.nds", 0xFC8, 0x14 + .incbin "baserom.nds", 0xFDC, 0x14 + .incbin "baserom.nds", 0xFF0, 0x14 + .incbin "baserom.nds", 0x1004, 0x14 + .incbin "baserom.nds", 0x1018, 0x14 + .incbin "baserom.nds", 0x102C, 0x14 + .incbin "baserom.nds", 0x1040, 0x14 + .incbin "baserom.nds", 0x1054, 0x14 + .incbin "baserom.nds", 0x1068, 0x14 + .incbin "baserom.nds", 0x107C, 0x14 + .incbin "baserom.nds", 0x1090, 0x14 + .incbin "baserom.nds", 0x10A4, 0x14 + .incbin "baserom.nds", 0x10B8, 0x14 + .incbin "baserom.nds", 0x10CC, 0x14 + .incbin "baserom.nds", 0x10E0, 0x14 + .incbin "baserom.nds", 0x10F4, 0x14 + .incbin "baserom.nds", 0x1108, 0x14 + .incbin "baserom.nds", 0x111C, 0x14 + .incbin "baserom.nds", 0x1130, 0x14 + .incbin "baserom.nds", 0x1144, 0x14 + .incbin "baserom.nds", 0x1158, 0x14 + .incbin "baserom.nds", 0x116C, 0x14 + .incbin "baserom.nds", 0x1180, 0x14 + .incbin "baserom.nds", 0x1194, 0x14 + .incbin "baserom.nds", 0x11A8, 0x14 + .incbin "baserom.nds", 0x11BC, 0x14 + .incbin "baserom.nds", 0x11D0, 0x14 + .incbin "baserom.nds", 0x11E4, 0x14 + .incbin "baserom.nds", 0x11F8, 0x14 + .incbin "baserom.nds", 0x120C, 0x14 + .incbin "baserom.nds", 0x1220, 0x14 + .incbin "baserom.nds", 0x1234, 0x14 + .incbin "baserom.nds", 0x1248, 0x14 + .incbin "baserom.nds", 0x125C, 0x14 + .incbin "baserom.nds", 0x1270, 0x14 + .incbin "baserom.nds", 0x1284, 0x14 + .incbin "baserom.nds", 0x1298, 0x14 + .incbin "baserom.nds", 0x12AC, 0x14 + .incbin "baserom.nds", 0x12C0, 0x14 + .incbin "baserom.nds", 0x12D4, 0x14 + .incbin "baserom.nds", 0x12E8, 0x14 + .incbin "baserom.nds", 0x12FC, 0x14 + .incbin "baserom.nds", 0x1310, 0x14 + .incbin "baserom.nds", 0x1324, 0x14 + .incbin "baserom.nds", 0x1338, 0x14 + .incbin "baserom.nds", 0x134C, 0x14 + .incbin "baserom.nds", 0x1360, 0x14 + .incbin "baserom.nds", 0x1374, 0x14 + .incbin "baserom.nds", 0x1388, 0x14 + .incbin "baserom.nds", 0x139C, 0x14 + .incbin "baserom.nds", 0x13B0, 0x14 + .incbin "baserom.nds", 0x13C4, 0x14 + .incbin "baserom.nds", 0x13D8, 0x14 + .incbin "baserom.nds", 0x13EC, 0x14 + .incbin "baserom.nds", 0x1400, 0x14 + .incbin "baserom.nds", 0x1414, 0x14 + .incbin "baserom.nds", 0x1428, 0x14 + .incbin "baserom.nds", 0x143C, 0x14 + .incbin "baserom.nds", 0x1450, 0x14 + .incbin "baserom.nds", 0x1464, 0x14 + .incbin "baserom.nds", 0x1478, 0x14 + .incbin "baserom.nds", 0x148C, 0x14 + .incbin "baserom.nds", 0x14A0, 0x14 + .incbin "baserom.nds", 0x14B4, 0x14 + .incbin "baserom.nds", 0x14C8, 0x14 + .incbin "baserom.nds", 0x14DC, 0x14 + .incbin "baserom.nds", 0x14F0, 0x14 + .incbin "baserom.nds", 0x1504, 0x14 + .incbin "baserom.nds", 0x1518, 0x14 + .incbin "baserom.nds", 0x152C, 0x14 + .incbin "baserom.nds", 0x1540, 0x14 + .incbin "baserom.nds", 0x1554, 0x14 + .incbin "baserom.nds", 0x1568, 0x14 + .incbin "baserom.nds", 0x157C, 0x14 + .incbin "baserom.nds", 0x1590, 0x14 + .incbin "baserom.nds", 0x15A4, 0x14 + .incbin "baserom.nds", 0x15B8, 0x14 + .incbin "baserom.nds", 0x15CC, 0x14 + .incbin "baserom.nds", 0x15E0, 0x14 + .incbin "baserom.nds", 0x15F4, 0x14 + .incbin "baserom.nds", 0x1608, 0x14 + .incbin "baserom.nds", 0x161C, 0x14 + .incbin "baserom.nds", 0x1630, 0x14 + .incbin "baserom.nds", 0x1644, 0x14 + .incbin "baserom.nds", 0x1658, 0x14 + .incbin "baserom.nds", 0x166C, 0x14 + .incbin "baserom.nds", 0x1680, 0x14 + .incbin "baserom.nds", 0x1694, 0x14 + .incbin "baserom.nds", 0x16A8, 0x14 + .incbin "baserom.nds", 0x16BC, 0x14 + .incbin "baserom.nds", 0x16D0, 0x14 + .incbin "baserom.nds", 0x16E4, 0x14 + .incbin "baserom.nds", 0x16F8, 0x14 + .incbin "baserom.nds", 0x170C, 0x14 + .incbin "baserom.nds", 0x1720, 0x14 + .incbin "baserom.nds", 0x1734, 0x14 + .incbin "baserom.nds", 0x1748, 0x14 + .incbin "baserom.nds", 0x175C, 0x14 + .incbin "baserom.nds", 0x1770, 0x14 + .incbin "baserom.nds", 0x1784, 0x14 + .incbin "baserom.nds", 0x1798, 0x14 + .incbin "baserom.nds", 0x17AC, 0x14 + .incbin "baserom.nds", 0x17C0, 0x14 + .incbin "baserom.nds", 0x17D4, 0x14 + .incbin "baserom.nds", 0x17E8, 0x14 + .incbin "baserom.nds", 0x17FC, 0x14 + .incbin "baserom.nds", 0x1810, 0x14 + .incbin "baserom.nds", 0x1824, 0x14 + .incbin "baserom.nds", 0x1838, 0x14 + .incbin "baserom.nds", 0x184C, 0x14 + .incbin "baserom.nds", 0x1860, 0x14 + .incbin "baserom.nds", 0x1874, 0x14 + .incbin "baserom.nds", 0x1888, 0x14 + .incbin "baserom.nds", 0x189C, 0x14 + .incbin "baserom.nds", 0x18B0, 0x14 + .incbin "baserom.nds", 0x18C4, 0x14 + .incbin "baserom.nds", 0x18D8, 0x14 + .incbin "baserom.nds", 0x18EC, 0x14 + .incbin "baserom.nds", 0x1900, 0x14 + .incbin "baserom.nds", 0x1914, 0x14 + .incbin "baserom.nds", 0x1928, 0x14 + .incbin "baserom.nds", 0x193C, 0x14 + .incbin "baserom.nds", 0x1950, 0x14 + .incbin "baserom.nds", 0x1964, 0x14 + .incbin "baserom.nds", 0x1978, 0x14 + .incbin "baserom.nds", 0x198C, 0x14 + .incbin "baserom.nds", 0x19A0, 0x14 + .incbin "baserom.nds", 0x19B4, 0x14 + .incbin "baserom.nds", 0x19C8, 0x14 + .incbin "baserom.nds", 0x19DC, 0x14 + .incbin "baserom.nds", 0x19F0, 0x14 + .incbin "baserom.nds", 0x1A04, 0x14 + .incbin "baserom.nds", 0x1A18, 0x14 + .incbin "baserom.nds", 0x1A2C, 0x14 + .incbin "baserom.nds", 0x1A40, 0x14 + .incbin "baserom.nds", 0x1A54, 0x14 + .incbin "baserom.nds", 0x1A68, 0x14 + .incbin "baserom.nds", 0x1A7C, 0x14 + .incbin "baserom.nds", 0x1A90, 0x14 + .incbin "baserom.nds", 0x1AA4, 0x14 + .incbin "baserom.nds", 0x1AB8, 0x14 + .incbin "baserom.nds", 0x1ACC, 0x14 + .incbin "baserom.nds", 0x1AE0, 0x14 + .incbin "baserom.nds", 0x1AF4, 0x14 + .incbin "baserom.nds", 0x1B08, 0x14 + .incbin "baserom.nds", 0x1B1C, 0x14 + .incbin "baserom.nds", 0x1B30, 0x14 + .incbin "baserom.nds", 0x1B44, 0x14 + .incbin "baserom.nds", 0x1B58, 0x14 + .incbin "baserom.nds", 0x1B6C, 0x14 + .incbin "baserom.nds", 0x1B80, 0x14 + .incbin "baserom.nds", 0x1B94, 0x14 + .incbin "baserom.nds", 0x1BA8, 0x14 + .incbin "baserom.nds", 0x1BBC, 0x14 + .incbin "baserom.nds", 0x1BD0, 0x14 + .incbin "baserom.nds", 0x1BE4, 0x14 + .incbin "baserom.nds", 0x1BF8, 0x14 + .incbin "baserom.nds", 0x1C0C, 0x14 + .incbin "baserom.nds", 0x1C20, 0x14 + .incbin "baserom.nds", 0x1C34, 0x14 + .incbin "baserom.nds", 0x1C48, 0x14 + .incbin "baserom.nds", 0x1C5C, 0x14 + .incbin "baserom.nds", 0x1C70, 0x14 + .incbin "baserom.nds", 0x1C84, 0x14 + .incbin "baserom.nds", 0x1C98, 0x14 + .incbin "baserom.nds", 0x1CAC, 0x14 + .incbin "baserom.nds", 0x1CC0, 0x14 + .incbin "baserom.nds", 0x1CD4, 0x14 + .incbin "baserom.nds", 0x1CE8, 0x14 + .incbin "baserom.nds", 0x1CFC, 0x14 + .incbin "baserom.nds", 0x1D10, 0x14 + .incbin "baserom.nds", 0x1D24, 0x14 + .incbin "baserom.nds", 0x1D38, 0x14 + .incbin "baserom.nds", 0x1D4C, 0x14 + .incbin "baserom.nds", 0x1D60, 0x14 + .incbin "baserom.nds", 0x1D74, 0x14 + .incbin "baserom.nds", 0x1D88, 0x14 + .incbin "baserom.nds", 0x1D9C, 0x14 + .incbin "baserom.nds", 0x1DB0, 0x14 + .incbin "baserom.nds", 0x1DC4, 0x14 + .incbin "baserom.nds", 0x1DD8, 0x14 + .incbin "baserom.nds", 0x1DEC, 0x14 + .incbin "baserom.nds", 0x1E00, 0x14 + .incbin "baserom.nds", 0x1E14, 0x14 + .incbin "baserom.nds", 0x1E28, 0x14 + .incbin "baserom.nds", 0x1E3C, 0x14 + .incbin "baserom.nds", 0x1E50, 0x14 + .incbin "baserom.nds", 0x1E64, 0x14 + .incbin "baserom.nds", 0x1E78, 0x14 + .incbin "baserom.nds", 0x1E8C, 0x14 + .incbin "baserom.nds", 0x1EA0, 0x14 + .incbin "baserom.nds", 0x1EB4, 0x14 + .incbin "baserom.nds", 0x1EC8, 0x14 + .incbin "baserom.nds", 0x1EDC, 0x14 + .incbin "baserom.nds", 0x1EF0, 0x14 + .incbin "baserom.nds", 0x1F04, 0x14 + .incbin "baserom.nds", 0x1F18, 0x14 + .incbin "baserom.nds", 0x1F2C, 0x14 + .incbin "baserom.nds", 0x1F40, 0x14 + .incbin "baserom.nds", 0x1F54, 0x14 + .incbin "baserom.nds", 0x1F68, 0x14 + .incbin "baserom.nds", 0x1F7C, 0x14 + .incbin "baserom.nds", 0x1F90, 0x14 + .incbin "baserom.nds", 0x1FA4, 0x14 + .incbin "baserom.nds", 0x1FB8, 0x14 + .incbin "baserom.nds", 0x1FCC, 0x14 + .incbin "baserom.nds", 0x1FE0, 0x14 + .incbin "baserom.nds", 0x1FF4, 0x14 + .incbin "baserom.nds", 0x2008, 0x14 + .incbin "baserom.nds", 0x201C, 0x14 + .incbin "baserom.nds", 0x2030, 0x14 + .incbin "baserom.nds", 0x2044, 0x14 + .incbin "baserom.nds", 0x2058, 0x14 + .incbin "baserom.nds", 0x206C, 0x14 + .incbin "baserom.nds", 0x2080, 0x14 + .incbin "baserom.nds", 0x2094, 0x14 + .incbin "baserom.nds", 0x20A8, 0x14 + .incbin "baserom.nds", 0x20BC, 0x14 + .incbin "baserom.nds", 0x20D0, 0x14 + .incbin "baserom.nds", 0x20E4, 0x14 + .incbin "baserom.nds", 0x20F8, 0x14 + .incbin "baserom.nds", 0x210C, 0x14 + .incbin "baserom.nds", 0x2120, 0x14 + .incbin "baserom.nds", 0x2134, 0x14 + .incbin "baserom.nds", 0x2148, 0x14 + .incbin "baserom.nds", 0x215C, 0x14 + .incbin "baserom.nds", 0x2170, 0x14 + .incbin "baserom.nds", 0x2184, 0x14 + .incbin "baserom.nds", 0x2198, 0x14 + .incbin "baserom.nds", 0x21AC, 0x14 + .incbin "baserom.nds", 0x21C0, 0x14 + .incbin "baserom.nds", 0x21D4, 0x14 + .incbin "baserom.nds", 0x21E8, 0x14 + .incbin "baserom.nds", 0x21FC, 0x14 + .incbin "baserom.nds", 0x2210, 0x14 + .incbin "baserom.nds", 0x2224, 0x14 + .incbin "baserom.nds", 0x2238, 0x14 + .incbin "baserom.nds", 0x224C, 0x14 + .incbin "baserom.nds", 0x2260, 0x14 + .incbin "baserom.nds", 0x2274, 0x14 + .incbin "baserom.nds", 0x2288, 0x14 + .incbin "baserom.nds", 0x229C, 0x14 + .incbin "baserom.nds", 0x22B0, 0x14 + .incbin "baserom.nds", 0x22C4, 0x14 + .incbin "baserom.nds", 0x22D8, 0x14 + .incbin "baserom.nds", 0x22EC, 0x14 + .incbin "baserom.nds", 0x2300, 0x14 + .incbin "baserom.nds", 0x2314, 0x14 + .incbin "baserom.nds", 0x2328, 0x14 + .incbin "baserom.nds", 0x233C, 0x14 + .incbin "baserom.nds", 0x2350, 0x14 + .incbin "baserom.nds", 0x2364, 0x14 + .incbin "baserom.nds", 0x2378, 0x14 + .incbin "baserom.nds", 0x238C, 0x14 + .incbin "baserom.nds", 0x23A0, 0x14 + .incbin "baserom.nds", 0x23B4, 0x14 + .incbin "baserom.nds", 0x23C8, 0x14 + .incbin "baserom.nds", 0x23DC, 0x14 + .incbin "baserom.nds", 0x23F0, 0x14 + .incbin "baserom.nds", 0x2404, 0x14 + .incbin "baserom.nds", 0x2418, 0x14 + .incbin "baserom.nds", 0x242C, 0x14 + .incbin "baserom.nds", 0x2440, 0x14 + .incbin "baserom.nds", 0x2454, 0x14 + .incbin "baserom.nds", 0x2468, 0x14 + .incbin "baserom.nds", 0x247C, 0x14 + .incbin "baserom.nds", 0x2490, 0x14 + .incbin "baserom.nds", 0x24A4, 0x14 + .incbin "baserom.nds", 0x24B8, 0x14 + .incbin "baserom.nds", 0x24CC, 0x14 + .incbin "baserom.nds", 0x24E0, 0x14 + .incbin "baserom.nds", 0x24F4, 0x14 + .incbin "baserom.nds", 0x2508, 0x14 + .incbin "baserom.nds", 0x251C, 0x14 + .incbin "baserom.nds", 0x2530, 0x14 + .incbin "baserom.nds", 0x2544, 0x14 + .incbin "baserom.nds", 0x2558, 0x14 + .incbin "baserom.nds", 0x256C, 0x14 + .incbin "baserom.nds", 0x2580, 0x14 + .incbin "baserom.nds", 0x2594, 0x14 + .incbin "baserom.nds", 0x25A8, 0x14 + .incbin "baserom.nds", 0x25BC, 0x14 + .incbin "baserom.nds", 0x25D0, 0x14 + .incbin "baserom.nds", 0x25E4, 0x14 + .incbin "baserom.nds", 0x25F8, 0x14 + .incbin "baserom.nds", 0x260C, 0x14 + .incbin "baserom.nds", 0x2620, 0x14 + .incbin "baserom.nds", 0x2634, 0x14 + .incbin "baserom.nds", 0x2648, 0x14 + .incbin "baserom.nds", 0x265C, 0x14 + .incbin "baserom.nds", 0x2670, 0x14 + .incbin "baserom.nds", 0x2684, 0x14 + .incbin "baserom.nds", 0x2698, 0x14 + .incbin "baserom.nds", 0x26AC, 0x14 + .incbin "baserom.nds", 0x26C0, 0x14 + .incbin "baserom.nds", 0x26D4, 0x14 + .incbin "baserom.nds", 0x26E8, 0x14 + .incbin "baserom.nds", 0x26FC, 0x14 + .incbin "baserom.nds", 0x2710, 0x14 + .incbin "baserom.nds", 0x2724, 0x14 + .incbin "baserom.nds", 0x2738, 0x14 + .incbin "baserom.nds", 0x274C, 0x14 + .incbin "baserom.nds", 0x2760, 0x14 + .incbin "baserom.nds", 0x2774, 0x14 + .incbin "baserom.nds", 0x2788, 0x14 + .incbin "baserom.nds", 0x279C, 0x14 + .incbin "baserom.nds", 0x27B0, 0x14 + .incbin "baserom.nds", 0x27C4, 0x14 + .incbin "baserom.nds", 0x27D8, 0x14 + .incbin "baserom.nds", 0x27EC, 0x14 + .incbin "baserom.nds", 0x2800, 0x14 + .incbin "baserom.nds", 0x2814, 0x14 + .incbin "baserom.nds", 0x2828, 0x14 + .incbin "baserom.nds", 0x283C, 0x14 + .incbin "baserom.nds", 0x2850, 0x14 + .incbin "baserom.nds", 0x2864, 0x14 + .incbin "baserom.nds", 0x2878, 0x14 + .incbin "baserom.nds", 0x288C, 0x14 + .incbin "baserom.nds", 0x28A0, 0x14 + .incbin "baserom.nds", 0x28B4, 0x14 + .incbin "baserom.nds", 0x28C8, 0x14 + .incbin "baserom.nds", 0x28DC, 0x14 + .incbin "baserom.nds", 0x28F0, 0x14 + .incbin "baserom.nds", 0x2904, 0x14 + .incbin "baserom.nds", 0x2918, 0x14 + .incbin "baserom.nds", 0x292C, 0x14 + .incbin "baserom.nds", 0x2940, 0x14 + .incbin "baserom.nds", 0x2954, 0x14 + .incbin "baserom.nds", 0x2968, 0x14 + .incbin "baserom.nds", 0x297C, 0x14 + .incbin "baserom.nds", 0x2990, 0x14 + .incbin "baserom.nds", 0x29A4, 0x14 + .incbin "baserom.nds", 0x29B8, 0x14 + .incbin "baserom.nds", 0x29CC, 0x14 + .incbin "baserom.nds", 0x29E0, 0x14 + .incbin "baserom.nds", 0x29F4, 0x14 + .incbin "baserom.nds", 0x2A08, 0x14 + .incbin "baserom.nds", 0x2A1C, 0x14 + .incbin "baserom.nds", 0x2A30, 0x14 + .incbin "baserom.nds", 0x2A44, 0x14 + .incbin "baserom.nds", 0x2A58, 0x14 + .incbin "baserom.nds", 0x2A6C, 0x14 + .incbin "baserom.nds", 0x2A80, 0x14 + .incbin "baserom.nds", 0x2A94, 0x14 + .incbin "baserom.nds", 0x2AA8, 0x14 + .incbin "baserom.nds", 0x2ABC, 0x14 + .incbin "baserom.nds", 0x2AD0, 0x14 + .incbin "baserom.nds", 0x2AE4, 0x14 + .incbin "baserom.nds", 0x2AF8, 0x14 + .incbin "baserom.nds", 0x2B0C, 0x14 + .incbin "baserom.nds", 0x2B20, 0x14 + .incbin "baserom.nds", 0x2B34, 0x14 + .incbin "baserom.nds", 0x2B48, 0x14 + .incbin "baserom.nds", 0x2B5C, 0x14 + .incbin "baserom.nds", 0x2B70, 0x14 + .incbin "baserom.nds", 0x2B84, 0x14 + .incbin "baserom.nds", 0x2B98, 0x14 + .incbin "baserom.nds", 0x2BAC, 0x14 + .incbin "baserom.nds", 0x2BC0, 0x14 + .incbin "baserom.nds", 0x2BD4, 0x14 + .incbin "baserom.nds", 0x2BE8, 0x14 + .incbin "baserom.nds", 0x2BFC, 0x14 + .incbin "baserom.nds", 0x2C10, 0x14 + .incbin "baserom.nds", 0x2C24, 0x14 + .incbin "baserom.nds", 0x2C38, 0x14 + .incbin "baserom.nds", 0x2C4C, 0x14 + .incbin "baserom.nds", 0x2C60, 0x14 + .incbin "baserom.nds", 0x2C74, 0x14 + .incbin "baserom.nds", 0x2C88, 0x14 + .incbin "baserom.nds", 0x2C9C, 0x14 + .incbin "baserom.nds", 0x2CB0, 0x14 + .incbin "baserom.nds", 0x2CC4, 0x14 + .incbin "baserom.nds", 0x2CD8, 0x14 + .incbin "baserom.nds", 0x2CEC, 0x14 + .incbin "baserom.nds", 0x2D00, 0x14 + .incbin "baserom.nds", 0x2D14, 0x14 + .incbin "baserom.nds", 0x2D28, 0x14 + .incbin "baserom.nds", 0x2D3C, 0x14 + .incbin "baserom.nds", 0x2D50, 0x14 + .incbin "baserom.nds", 0x2D64, 0x14 + .incbin "baserom.nds", 0x2D78, 0x14 + .incbin "baserom.nds", 0x2D8C, 0x14 + .incbin "baserom.nds", 0x2DA0, 0x14 + .incbin "baserom.nds", 0x2DB4, 0x14 + .incbin "baserom.nds", 0x2DC8, 0x14 + .incbin "baserom.nds", 0x2DDC, 0x14 + .incbin "baserom.nds", 0x2DF0, 0x14 + .incbin "baserom.nds", 0x2E04, 0x14 + .incbin "baserom.nds", 0x2E18, 0x14 + .incbin "baserom.nds", 0x2E2C, 0x14 + .incbin "baserom.nds", 0x2E40, 0x14 + .incbin "baserom.nds", 0x2E54, 0x14 + .incbin "baserom.nds", 0x2E68, 0x14 + .incbin "baserom.nds", 0x2E7C, 0x14 + .incbin "baserom.nds", 0x2E90, 0x14 + .incbin "baserom.nds", 0x2EA4, 0x14 + .incbin "baserom.nds", 0x2EB8, 0x14 + .incbin "baserom.nds", 0x2ECC, 0x14 + .incbin "baserom.nds", 0x2EE0, 0x14 + .incbin "baserom.nds", 0x2EF4, 0x14 + .incbin "baserom.nds", 0x2F08, 0x14 + .incbin "baserom.nds", 0x2F1C, 0x14 + .incbin "baserom.nds", 0x2F30, 0x14 + .incbin "baserom.nds", 0x2F44, 0x14 + .incbin "baserom.nds", 0x2F58, 0x14 + .incbin "baserom.nds", 0x2F6C, 0x14 + .incbin "baserom.nds", 0x2F80, 0x14 + .incbin "baserom.nds", 0x2F94, 0x14 + .incbin "baserom.nds", 0x2FA8, 0x14 + .incbin "baserom.nds", 0x2FBC, 0x14 + .incbin "baserom.nds", 0x2FD0, 0x14 + .incbin "baserom.nds", 0x2FE4, 0x14 + .incbin "baserom.nds", 0x2FF8, 0x14 + .incbin "baserom.nds", 0x300C, 0x14 + .incbin "baserom.nds", 0x3020, 0x14 + .incbin "baserom.nds", 0x3034, 0x14 + .incbin "baserom.nds", 0x3048, 0x14 + .incbin "baserom.nds", 0x305C, 0x14 + .incbin "baserom.nds", 0x3070, 0x14 + .incbin "baserom.nds", 0x3084, 0x14 + .incbin "baserom.nds", 0x3098, 0x14 + .incbin "baserom.nds", 0x30AC, 0x14 + .incbin "baserom.nds", 0x30C0, 0x14 + .incbin "baserom.nds", 0x30D4, 0x14 + .incbin "baserom.nds", 0x30E8, 0x14 + .incbin "baserom.nds", 0x30FC, 0x14 + .incbin "baserom.nds", 0x3110, 0x14 + .incbin "baserom.nds", 0x3124, 0x14 + .incbin "baserom.nds", 0x3138, 0x14 + .incbin "baserom.nds", 0x314C, 0x14 + .incbin "baserom.nds", 0x3160, 0x14 + .incbin "baserom.nds", 0x3174, 0x14 + .incbin "baserom.nds", 0x3188, 0x14 + .incbin "baserom.nds", 0x319C, 0x14 + .incbin "baserom.nds", 0x31B0, 0x14 + .incbin "baserom.nds", 0x31C4, 0x14 + .incbin "baserom.nds", 0x31D8, 0x14 + .incbin "baserom.nds", 0x31EC, 0x14 + .incbin "baserom.nds", 0x3200, 0x14 + .incbin "baserom.nds", 0x3214, 0x14 + .incbin "baserom.nds", 0x3228, 0x14 + .incbin "baserom.nds", 0x323C, 0x14 + .incbin "baserom.nds", 0x3250, 0x14 + .incbin "baserom.nds", 0x3264, 0x14 + .incbin "baserom.nds", 0x3278, 0x14 + .incbin "baserom.nds", 0x328C, 0x14 + .incbin "baserom.nds", 0x32A0, 0x14 + .incbin "baserom.nds", 0x32B4, 0x14 + .incbin "baserom.nds", 0x32C8, 0x14 + .incbin "baserom.nds", 0x32DC, 0x14 + .incbin "baserom.nds", 0x32F0, 0x14 + .incbin "baserom.nds", 0x3304, 0x14 + .incbin "baserom.nds", 0x3318, 0x14 + .incbin "baserom.nds", 0x332C, 0x14 + .incbin "baserom.nds", 0x3340, 0x14 + .incbin "baserom.nds", 0x3354, 0x14 + .incbin "baserom.nds", 0x3368, 0x14 + .incbin "baserom.nds", 0x337C, 0x14 + .incbin "baserom.nds", 0x3390, 0x14 + .incbin "baserom.nds", 0x33A4, 0x14 + .incbin "baserom.nds", 0x33B8, 0x14 + .incbin "baserom.nds", 0x33CC, 0x14 + .incbin "baserom.nds", 0x33E0, 0x14 + .incbin "baserom.nds", 0x33F4, 0x14 + .incbin "baserom.nds", 0x3408, 0x14 + .incbin "baserom.nds", 0x341C, 0x14 + .incbin "baserom.nds", 0x3430, 0x14 + .incbin "baserom.nds", 0x3444, 0x14 + .incbin "baserom.nds", 0x3458, 0x14 + .incbin "baserom.nds", 0x346C, 0x14 + .incbin "baserom.nds", 0x3480, 0x14 + .incbin "baserom.nds", 0x3494, 0x14 + .incbin "baserom.nds", 0x34A8, 0x14 + .incbin "baserom.nds", 0x34BC, 0x14 + .incbin "baserom.nds", 0x34D0, 0x14 + .incbin "baserom.nds", 0x34E4, 0x14 + .incbin "baserom.nds", 0x34F8, 0x14 + .incbin "baserom.nds", 0x350C, 0x14 + .incbin "baserom.nds", 0x3520, 0x14 + .incbin "baserom.nds", 0x3534, 0x14 + .incbin "baserom.nds", 0x3548, 0x14 + .incbin "baserom.nds", 0x355C, 0x14 + .incbin "baserom.nds", 0x3570, 0x14 + .incbin "baserom.nds", 0x3584, 0x14 + .incbin "baserom.nds", 0x3598, 0x14 + .incbin "baserom.nds", 0x35AC, 0x14 + .incbin "baserom.nds", 0x35C0, 0x14 + .incbin "baserom.nds", 0x35D4, 0x14 + .incbin "baserom.nds", 0x35E8, 0x14 + .incbin "baserom.nds", 0x35FC, 0x14 + .incbin "baserom.nds", 0x3610, 0x14 + .incbin "baserom.nds", 0x3624, 0x14 + .incbin "baserom.nds", 0x3638, 0x14 + .incbin "baserom.nds", 0x364C, 0x14 + .incbin "baserom.nds", 0x3660, 0x14 + .incbin "baserom.nds", 0x3674, 0x14 + .incbin "baserom.nds", 0x3688, 0x14 + .incbin "baserom.nds", 0x369C, 0x14 + .incbin "baserom.nds", 0x36B0, 0x14 + .incbin "baserom.nds", 0x36C4, 0x14 + .incbin "baserom.nds", 0x36D8, 0x14 + .incbin "baserom.nds", 0x36EC, 0x14 + .incbin "baserom.nds", 0x3700, 0x14 + .incbin "baserom.nds", 0x3714, 0x14 + .incbin "baserom.nds", 0x3728, 0x14 + .incbin "baserom.nds", 0x373C, 0x14 + .incbin "baserom.nds", 0x3750, 0x14 + .incbin "baserom.nds", 0x3764, 0x14 + .incbin "baserom.nds", 0x3778, 0x14 + .incbin "baserom.nds", 0x378C, 0x14 + .incbin "baserom.nds", 0x37A0, 0x14 + .incbin "baserom.nds", 0x37B4, 0x14 + .incbin "baserom.nds", 0x37C8, 0x14 + .incbin "baserom.nds", 0x37DC, 0x14 + .incbin "baserom.nds", 0x37F0, 0x14 + .incbin "baserom.nds", 0x3804, 0x14 + .incbin "baserom.nds", 0x3818, 0x14 + .incbin "baserom.nds", 0x382C, 0x14 + .incbin "baserom.nds", 0x3840, 0x14 + .incbin "baserom.nds", 0x3854, 0x14 + .incbin "baserom.nds", 0x3868, 0x14 + .incbin "baserom.nds", 0x387C, 0x14 + .incbin "baserom.nds", 0x3890, 0x14 + .incbin "baserom.nds", 0x38A4, 0x14 + .incbin "baserom.nds", 0x38B8, 0x14 + .incbin "baserom.nds", 0x38CC, 0x14 + .incbin "baserom.nds", 0x38E0, 0x14 + .incbin "baserom.nds", 0x38F4, 0x14 + .incbin "baserom.nds", 0x3908, 0x14 + .incbin "baserom.nds", 0x391C, 0x14 + .incbin "baserom.nds", 0x3930, 0x14 + .incbin "baserom.nds", 0x3944, 0x14 + .incbin "baserom.nds", 0x3958, 0x14 + .incbin "baserom.nds", 0x396C, 0x14 + .incbin "baserom.nds", 0x3980, 0x14 + .incbin "baserom.nds", 0x3994, 0x14 + .incbin "baserom.nds", 0x39A8, 0x14 + .incbin "baserom.nds", 0x39BC, 0x14 + .incbin "baserom.nds", 0x39D0, 0x14 + .incbin "baserom.nds", 0x39E4, 0x14 + .incbin "baserom.nds", 0x39F8, 0x14 + .incbin "baserom.nds", 0x3A0C, 0x14 + .incbin "baserom.nds", 0x3A20, 0x14 + .incbin "baserom.nds", 0x3A34, 0x14 + .incbin "baserom.nds", 0x3A48, 0x14 + .incbin "baserom.nds", 0x3A5C, 0x14 + .incbin "baserom.nds", 0x3A70, 0x14 + .incbin "baserom.nds", 0x3A84, 0x14 + .incbin "baserom.nds", 0x3A98, 0x14 + .incbin "baserom.nds", 0x3AAC, 0x14 + .incbin "baserom.nds", 0x3AC0, 0x14 + .incbin "baserom.nds", 0x3AD4, 0x14 + .incbin "baserom.nds", 0x3AE8, 0x14 + .incbin "baserom.nds", 0x3AFC, 0x14 + .incbin "baserom.nds", 0x3B10, 0x14 + .incbin "baserom.nds", 0x3B24, 0x14 + .incbin "baserom.nds", 0x3B38, 0x14 + .incbin "baserom.nds", 0x3B4C, 0x14 + .incbin "baserom.nds", 0x3B60, 0x14 + .incbin "baserom.nds", 0x3B74, 0x14 + .incbin "baserom.nds", 0x3B88, 0x14 + .incbin "baserom.nds", 0x3B9C, 0x14 + .incbin "baserom.nds", 0x3BB0, 0x14 + .incbin "baserom.nds", 0x3BC4, 0x14 + .incbin "baserom.nds", 0x3BD8, 0x14 + .incbin "baserom.nds", 0x3BEC, 0x14 + .incbin "baserom.nds", 0x3C00, 0x14 + .incbin "baserom.nds", 0x3C14, 0x14 + .incbin "baserom.nds", 0x3C28, 0x14 + .incbin "baserom.nds", 0x3C3C, 0x14 + .incbin "baserom.nds", 0x3C50, 0x14 + .incbin "baserom.nds", 0x3C64, 0x14 + .incbin "baserom.nds", 0x3C78, 0x14 + .incbin "baserom.nds", 0x3C8C, 0x14 + .incbin "baserom.nds", 0x3CA0, 0x14 + .incbin "baserom.nds", 0x3CB4, 0x14 + .incbin "baserom.nds", 0x3CC8, 0x14 + .incbin "baserom.nds", 0x3CDC, 0x14 + .incbin "baserom.nds", 0x3CF0, 0x14 + .incbin "baserom.nds", 0x3D04, 0x14 + .incbin "baserom.nds", 0x3D18, 0x14 + .incbin "baserom.nds", 0x3D2C, 0x14 + .incbin "baserom.nds", 0x3D40, 0x14 + .incbin "baserom.nds", 0x3D54, 0x14 + .incbin "baserom.nds", 0x3D68, 0x14 + .incbin "baserom.nds", 0x3D7C, 0x14 + .incbin "baserom.nds", 0x3D90, 0x14 + .incbin "baserom.nds", 0x3DA4, 0x14 + .incbin "baserom.nds", 0x3DB8, 0x14 + .incbin "baserom.nds", 0x3DCC, 0x14 + .incbin "baserom.nds", 0x3DE0, 0x14 + .incbin "baserom.nds", 0x3DF4, 0x14 + .incbin "baserom.nds", 0x3E08, 0x14 + .incbin "baserom.nds", 0x3E1C, 0x14 + .incbin "baserom.nds", 0x3E30, 0x14 + .incbin "baserom.nds", 0x3E44, 0x14 + .incbin "baserom.nds", 0x3E58, 0x14 + .incbin "baserom.nds", 0x3E6C, 0x14 + .incbin "baserom.nds", 0x3E80, 0x14 + .incbin "baserom.nds", 0x3E94, 0x14 + .incbin "baserom.nds", 0x3EA8, 0x14 + .incbin "baserom.nds", 0x3EBC, 0x14 + .incbin "baserom.nds", 0x3ED0, 0x14 + .incbin "baserom.nds", 0x3EE4, 0x14 + .incbin "baserom.nds", 0x3EF8, 0x14 + .incbin "baserom.nds", 0x3F0C, 0x14 + .incbin "baserom.nds", 0x3F20, 0x14 + .incbin "baserom.nds", 0x3F34, 0x14 + .incbin "baserom.nds", 0x3F48, 0x14 + .incbin "baserom.nds", 0x3F5C, 0x14 + .incbin "baserom.nds", 0x3F70, 0x14 + .incbin "baserom.nds", 0x3F84, 0x14 + .incbin "baserom.nds", 0x3F98, 0x14 + .incbin "baserom.nds", 0x3FAC, 0x14 + .incbin "baserom.nds", 0x3FC0, 0x14 + .incbin "baserom.nds", 0x3FD4, 0x14 + .incbin "baserom.nds", 0x3FE8, 0x14 + .incbin "baserom.nds", 0x3FFC, 0x14 + .incbin "baserom.nds", 0x4010, 0x14 + .incbin "baserom.nds", 0x4024, 0x14 + .incbin "baserom.nds", 0x4038, 0x14 + .incbin "baserom.nds", 0x404C, 0x14 + .incbin "baserom.nds", 0x4060, 0x14 + .incbin "baserom.nds", 0x4074, 0x14 + .incbin "baserom.nds", 0x4088, 0x14 + .incbin "baserom.nds", 0x409C, 0x14 + .incbin "baserom.nds", 0x40B0, 0x14 + .incbin "baserom.nds", 0x40C4, 0x14 + .incbin "baserom.nds", 0x40D8, 0x14 + .incbin "baserom.nds", 0x40EC, 0x14 + .incbin "baserom.nds", 0x4100, 0x14 + .incbin "baserom.nds", 0x4114, 0x14 + .incbin "baserom.nds", 0x4128, 0x14 + .incbin "baserom.nds", 0x413C, 0x14 + .incbin "baserom.nds", 0x4150, 0x14 + .incbin "baserom.nds", 0x4164, 0x14 + .incbin "baserom.nds", 0x4178, 0x14 + .incbin "baserom.nds", 0x418C, 0x14 + .incbin "baserom.nds", 0x41A0, 0x14 + .incbin "baserom.nds", 0x41B4, 0x14 + .incbin "baserom.nds", 0x41C8, 0x14 + .incbin "baserom.nds", 0x41DC, 0x14 + .incbin "baserom.nds", 0x41F0, 0x14 + .incbin "baserom.nds", 0x4204, 0x14 + .incbin "baserom.nds", 0x4218, 0x14 + .incbin "baserom.nds", 0x422C, 0x14 + .incbin "baserom.nds", 0x4240, 0x14 + .incbin "baserom.nds", 0x4254, 0x14 + .balign 4, 255 diff --git a/narc/trainer/trpoke.narc.s b/narc/trainer/trpoke.narc.s new file mode 100644 index 00000000..c4f119fc --- /dev/null +++ b/narc/trainer/trpoke.narc.s @@ -0,0 +1,1726 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00005594 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00001A9C ; chunk size + .short 850 ; number of files + .balign 4 + .word 0x00000000, 0x00000008 + .word 0x00000008, 0x00000010 + .word 0x00000010, 0x00000018 + .word 0x00000018, 0x00000024 + .word 0x00000024, 0x00000030 + .word 0x00000030, 0x00000038 + .word 0x00000038, 0x00000040 + .word 0x00000040, 0x00000048 + .word 0x00000048, 0x00000050 + .word 0x00000050, 0x00000058 + .word 0x00000058, 0x00000064 + .word 0x00000064, 0x0000006C + .word 0x0000006C, 0x00000074 + .word 0x00000074, 0x00000080 + .word 0x00000080, 0x0000008C + .word 0x0000008C, 0x00000098 + .word 0x00000098, 0x000000A8 + .word 0x000000A8, 0x000000C4 + .word 0x000000C4, 0x000000DC + .word 0x000000DC, 0x000000E4 + .word 0x000000E4, 0x000000EC + .word 0x000000EC, 0x000000F4 + .word 0x000000F4, 0x00000118 + .word 0x00000118, 0x00000120 + .word 0x00000120, 0x00000134 + .word 0x00000134, 0x0000013C + .word 0x0000013C, 0x00000144 + .word 0x00000144, 0x00000150 + .word 0x00000150, 0x00000158 + .word 0x00000158, 0x00000160 + .word 0x00000160, 0x0000016C + .word 0x0000016C, 0x00000174 + .word 0x00000174, 0x00000180 + .word 0x00000180, 0x00000194 + .word 0x00000194, 0x000001A4 + .word 0x000001A4, 0x000001B4 + .word 0x000001B4, 0x000001CC + .word 0x000001CC, 0x000001D8 + .word 0x000001D8, 0x000001E4 + .word 0x000001E4, 0x000001F0 + .word 0x000001F0, 0x00000204 + .word 0x00000204, 0x0000020C + .word 0x0000020C, 0x00000214 + .word 0x00000214, 0x00000220 + .word 0x00000220, 0x0000022C + .word 0x0000022C, 0x00000238 + .word 0x00000238, 0x0000024C + .word 0x0000024C, 0x00000260 + .word 0x00000260, 0x00000280 + .word 0x00000280, 0x00000288 + .word 0x00000288, 0x00000290 + .word 0x00000290, 0x00000298 + .word 0x00000298, 0x000002A0 + .word 0x000002A0, 0x000002A8 + .word 0x000002A8, 0x000002B0 + .word 0x000002B0, 0x000002BC + .word 0x000002BC, 0x000002D0 + .word 0x000002D0, 0x000002E4 + .word 0x000002E4, 0x000002EC + .word 0x000002EC, 0x000002F4 + .word 0x000002F4, 0x000002FC + .word 0x000002FC, 0x00000304 + .word 0x00000304, 0x0000030C + .word 0x0000030C, 0x00000314 + .word 0x00000314, 0x0000031C + .word 0x0000031C, 0x00000328 + .word 0x00000328, 0x00000354 + .word 0x00000354, 0x00000370 + .word 0x00000370, 0x0000039C + .word 0x0000039C, 0x000003A4 + .word 0x000003A4, 0x000003BC + .word 0x000003BC, 0x000003C8 + .word 0x000003C8, 0x000003D0 + .word 0x000003D0, 0x000003D8 + .word 0x000003D8, 0x000003E4 + .word 0x000003E4, 0x000003F0 + .word 0x000003F0, 0x000003F8 + .word 0x000003F8, 0x00000400 + .word 0x00000400, 0x00000414 + .word 0x00000414, 0x00000428 + .word 0x00000428, 0x00000434 + .word 0x00000434, 0x0000043C + .word 0x0000043C, 0x00000444 + .word 0x00000444, 0x0000044C + .word 0x0000044C, 0x00000454 + .word 0x00000454, 0x0000045C + .word 0x0000045C, 0x00000464 + .word 0x00000464, 0x0000046C + .word 0x0000046C, 0x00000478 + .word 0x00000478, 0x00000484 + .word 0x00000484, 0x00000490 + .word 0x00000490, 0x00000498 + .word 0x00000498, 0x000004A4 + .word 0x000004A4, 0x000004BC + .word 0x000004BC, 0x000004C8 + .word 0x000004C8, 0x000004D4 + .word 0x000004D4, 0x000004E0 + .word 0x000004E0, 0x000004E8 + .word 0x000004E8, 0x000004F0 + .word 0x000004F0, 0x00000500 + .word 0x00000500, 0x00000508 + .word 0x00000508, 0x00000510 + .word 0x00000510, 0x0000051C + .word 0x0000051C, 0x00000530 + .word 0x00000530, 0x0000053C + .word 0x0000053C, 0x00000548 + .word 0x00000548, 0x00000554 + .word 0x00000554, 0x00000568 + .word 0x00000568, 0x00000578 + .word 0x00000578, 0x00000580 + .word 0x00000580, 0x0000058C + .word 0x0000058C, 0x000005A0 + .word 0x000005A0, 0x000005AC + .word 0x000005AC, 0x000005C0 + .word 0x000005C0, 0x000005C8 + .word 0x000005C8, 0x000005D0 + .word 0x000005D0, 0x000005D8 + .word 0x000005D8, 0x000005E0 + .word 0x000005E0, 0x000005E8 + .word 0x000005E8, 0x000005F4 + .word 0x000005F4, 0x00000608 + .word 0x00000608, 0x00000634 + .word 0x00000634, 0x0000063C + .word 0x0000063C, 0x00000644 + .word 0x00000644, 0x0000064C + .word 0x0000064C, 0x00000654 + .word 0x00000654, 0x0000065C + .word 0x0000065C, 0x00000670 + .word 0x00000670, 0x00000678 + .word 0x00000678, 0x0000068C + .word 0x0000068C, 0x00000694 + .word 0x00000694, 0x0000069C + .word 0x0000069C, 0x000006B8 + .word 0x000006B8, 0x000006E4 + .word 0x000006E4, 0x000006F4 + .word 0x000006F4, 0x00000720 + .word 0x00000720, 0x00000734 + .word 0x00000734, 0x0000073C + .word 0x0000073C, 0x00000748 + .word 0x00000748, 0x00000750 + .word 0x00000750, 0x0000077C + .word 0x0000077C, 0x00000798 + .word 0x00000798, 0x000007B0 + .word 0x000007B0, 0x000007BC + .word 0x000007BC, 0x000007C8 + .word 0x000007C8, 0x000007D0 + .word 0x000007D0, 0x000007E8 + .word 0x000007E8, 0x000007F4 + .word 0x000007F4, 0x00000808 + .word 0x00000808, 0x00000810 + .word 0x00000810, 0x00000818 + .word 0x00000818, 0x00000820 + .word 0x00000820, 0x00000828 + .word 0x00000828, 0x00000834 + .word 0x00000834, 0x00000854 + .word 0x00000854, 0x00000860 + .word 0x00000860, 0x00000868 + .word 0x00000868, 0x00000870 + .word 0x00000870, 0x00000878 + .word 0x00000878, 0x0000088C + .word 0x0000088C, 0x00000894 + .word 0x00000894, 0x000008A0 + .word 0x000008A0, 0x000008B8 + .word 0x000008B8, 0x000008C4 + .word 0x000008C4, 0x000008F0 + .word 0x000008F0, 0x000008FC + .word 0x000008FC, 0x00000908 + .word 0x00000908, 0x00000910 + .word 0x00000910, 0x00000924 + .word 0x00000924, 0x0000092C + .word 0x0000092C, 0x00000948 + .word 0x00000948, 0x00000974 + .word 0x00000974, 0x00000988 + .word 0x00000988, 0x00000994 + .word 0x00000994, 0x000009AC + .word 0x000009AC, 0x000009C0 + .word 0x000009C0, 0x000009C8 + .word 0x000009C8, 0x000009D0 + .word 0x000009D0, 0x000009D8 + .word 0x000009D8, 0x000009E0 + .word 0x000009E0, 0x000009F4 + .word 0x000009F4, 0x000009FC + .word 0x000009FC, 0x00000A08 + .word 0x00000A08, 0x00000A14 + .word 0x00000A14, 0x00000A1C + .word 0x00000A1C, 0x00000A28 + .word 0x00000A28, 0x00000A3C + .word 0x00000A3C, 0x00000A44 + .word 0x00000A44, 0x00000A58 + .word 0x00000A58, 0x00000A60 + .word 0x00000A60, 0x00000A6C + .word 0x00000A6C, 0x00000A80 + .word 0x00000A80, 0x00000A8C + .word 0x00000A8C, 0x00000A98 + .word 0x00000A98, 0x00000AA0 + .word 0x00000AA0, 0x00000ABC + .word 0x00000ABC, 0x00000ACC + .word 0x00000ACC, 0x00000AD4 + .word 0x00000AD4, 0x00000ADC + .word 0x00000ADC, 0x00000AE4 + .word 0x00000AE4, 0x00000AEC + .word 0x00000AEC, 0x00000B00 + .word 0x00000B00, 0x00000B14 + .word 0x00000B14, 0x00000B20 + .word 0x00000B20, 0x00000B28 + .word 0x00000B28, 0x00000B38 + .word 0x00000B38, 0x00000B48 + .word 0x00000B48, 0x00000B54 + .word 0x00000B54, 0x00000B5C + .word 0x00000B5C, 0x00000B64 + .word 0x00000B64, 0x00000B6C + .word 0x00000B6C, 0x00000B74 + .word 0x00000B74, 0x00000B7C + .word 0x00000B7C, 0x00000B84 + .word 0x00000B84, 0x00000B8C + .word 0x00000B8C, 0x00000B94 + .word 0x00000B94, 0x00000B9C + .word 0x00000B9C, 0x00000BA4 + .word 0x00000BA4, 0x00000BAC + .word 0x00000BAC, 0x00000BB4 + .word 0x00000BB4, 0x00000BBC + .word 0x00000BBC, 0x00000BC4 + .word 0x00000BC4, 0x00000BCC + .word 0x00000BCC, 0x00000BD8 + .word 0x00000BD8, 0x00000C04 + .word 0x00000C04, 0x00000C14 + .word 0x00000C14, 0x00000C30 + .word 0x00000C30, 0x00000C4C + .word 0x00000C4C, 0x00000C78 + .word 0x00000C78, 0x00000C94 + .word 0x00000C94, 0x00000C9C + .word 0x00000C9C, 0x00000CB0 + .word 0x00000CB0, 0x00000CCC + .word 0x00000CCC, 0x00000CD8 + .word 0x00000CD8, 0x00000CEC + .word 0x00000CEC, 0x00000CF8 + .word 0x00000CF8, 0x00000D04 + .word 0x00000D04, 0x00000D10 + .word 0x00000D10, 0x00000D18 + .word 0x00000D18, 0x00000D20 + .word 0x00000D20, 0x00000D4C + .word 0x00000D4C, 0x00000D54 + .word 0x00000D54, 0x00000D5C + .word 0x00000D5C, 0x00000D64 + .word 0x00000D64, 0x00000D74 + .word 0x00000D74, 0x00000D90 + .word 0x00000D90, 0x00000DBC + .word 0x00000DBC, 0x00000DD8 + .word 0x00000DD8, 0x00000DF4 + .word 0x00000DF4, 0x00000E10 + .word 0x00000E10, 0x00000E40 + .word 0x00000E40, 0x00000E48 + .word 0x00000E48, 0x00000E50 + .word 0x00000E50, 0x00000E58 + .word 0x00000E58, 0x00000E60 + .word 0x00000E60, 0x00000E68 + .word 0x00000E68, 0x00000E94 + .word 0x00000E94, 0x00000EA4 + .word 0x00000EA4, 0x00000EAC + .word 0x00000EAC, 0x00000ED8 + .word 0x00000ED8, 0x00000EE8 + .word 0x00000EE8, 0x00000F38 + .word 0x00000F38, 0x00000F88 + .word 0x00000F88, 0x00000FD8 + .word 0x00000FD8, 0x00001028 + .word 0x00001028, 0x00001030 + .word 0x00001030, 0x0000105C + .word 0x0000105C, 0x000010BC + .word 0x000010BC, 0x000010D8 + .word 0x000010D8, 0x000010E8 + .word 0x000010E8, 0x00001114 + .word 0x00001114, 0x00001130 + .word 0x00001130, 0x00001144 + .word 0x00001144, 0x00001158 + .word 0x00001158, 0x0000116C + .word 0x0000116C, 0x00001180 + .word 0x00001180, 0x00001194 + .word 0x00001194, 0x000011A0 + .word 0x000011A0, 0x000011BC + .word 0x000011BC, 0x000011D8 + .word 0x000011D8, 0x00001204 + .word 0x00001204, 0x00001220 + .word 0x00001220, 0x0000123C + .word 0x0000123C, 0x0000124C + .word 0x0000124C, 0x00001268 + .word 0x00001268, 0x00001284 + .word 0x00001284, 0x00001294 + .word 0x00001294, 0x000012B0 + .word 0x000012B0, 0x000012BC + .word 0x000012BC, 0x000012C8 + .word 0x000012C8, 0x000012D4 + .word 0x000012D4, 0x000012DC + .word 0x000012DC, 0x000012F0 + .word 0x000012F0, 0x0000131C + .word 0x0000131C, 0x00001328 + .word 0x00001328, 0x00001348 + .word 0x00001348, 0x00001364 + .word 0x00001364, 0x00001374 + .word 0x00001374, 0x00001384 + .word 0x00001384, 0x00001390 + .word 0x00001390, 0x00001398 + .word 0x00001398, 0x000013A8 + .word 0x000013A8, 0x000013C4 + .word 0x000013C4, 0x000013D4 + .word 0x000013D4, 0x000013E0 + .word 0x000013E0, 0x000013E8 + .word 0x000013E8, 0x000013F0 + .word 0x000013F0, 0x00001404 + .word 0x00001404, 0x0000140C + .word 0x0000140C, 0x00001438 + .word 0x00001438, 0x00001464 + .word 0x00001464, 0x00001474 + .word 0x00001474, 0x00001490 + .word 0x00001490, 0x0000149C + .word 0x0000149C, 0x000014AC + .word 0x000014AC, 0x000014DC + .word 0x000014DC, 0x0000150C + .word 0x0000150C, 0x0000153C + .word 0x0000153C, 0x0000156C + .word 0x0000156C, 0x000015AC + .word 0x000015AC, 0x000015EC + .word 0x000015EC, 0x000015F4 + .word 0x000015F4, 0x00001600 + .word 0x00001600, 0x00001614 + .word 0x00001614, 0x00001630 + .word 0x00001630, 0x00001640 + .word 0x00001640, 0x0000164C + .word 0x0000164C, 0x00001658 + .word 0x00001658, 0x00001660 + .word 0x00001660, 0x0000167C + .word 0x0000167C, 0x00001698 + .word 0x00001698, 0x000016B0 + .word 0x000016B0, 0x000016BC + .word 0x000016BC, 0x000016C8 + .word 0x000016C8, 0x000016D0 + .word 0x000016D0, 0x000016D8 + .word 0x000016D8, 0x000016E0 + .word 0x000016E0, 0x000016E8 + .word 0x000016E8, 0x000016F4 + .word 0x000016F4, 0x00001710 + .word 0x00001710, 0x00001720 + .word 0x00001720, 0x00001730 + .word 0x00001730, 0x00001740 + .word 0x00001740, 0x0000175C + .word 0x0000175C, 0x0000176C + .word 0x0000176C, 0x0000177C + .word 0x0000177C, 0x00001784 + .word 0x00001784, 0x0000178C + .word 0x0000178C, 0x0000179C + .word 0x0000179C, 0x000017A4 + .word 0x000017A4, 0x000017AC + .word 0x000017AC, 0x000017B4 + .word 0x000017B4, 0x000017BC + .word 0x000017BC, 0x000017C4 + .word 0x000017C4, 0x000017CC + .word 0x000017CC, 0x000017D4 + .word 0x000017D4, 0x000017E4 + .word 0x000017E4, 0x00001800 + .word 0x00001800, 0x0000180C + .word 0x0000180C, 0x00001814 + .word 0x00001814, 0x00001820 + .word 0x00001820, 0x00001828 + .word 0x00001828, 0x00001854 + .word 0x00001854, 0x0000185C + .word 0x0000185C, 0x00001864 + .word 0x00001864, 0x0000186C + .word 0x0000186C, 0x00001874 + .word 0x00001874, 0x00001890 + .word 0x00001890, 0x0000189C + .word 0x0000189C, 0x000018A4 + .word 0x000018A4, 0x000018AC + .word 0x000018AC, 0x000018B8 + .word 0x000018B8, 0x000018C0 + .word 0x000018C0, 0x000018CC + .word 0x000018CC, 0x000018D4 + .word 0x000018D4, 0x000018DC + .word 0x000018DC, 0x000018E4 + .word 0x000018E4, 0x000018F4 + .word 0x000018F4, 0x00001910 + .word 0x00001910, 0x0000192C + .word 0x0000192C, 0x00001948 + .word 0x00001948, 0x0000195C + .word 0x0000195C, 0x00001970 + .word 0x00001970, 0x00001984 + .word 0x00001984, 0x0000198C + .word 0x0000198C, 0x00001994 + .word 0x00001994, 0x000019A0 + .word 0x000019A0, 0x000019A8 + .word 0x000019A8, 0x000019D4 + .word 0x000019D4, 0x00001A00 + .word 0x00001A00, 0x00001A1C + .word 0x00001A1C, 0x00001A24 + .word 0x00001A24, 0x00001A40 + .word 0x00001A40, 0x00001A6C + .word 0x00001A6C, 0x00001A98 + .word 0x00001A98, 0x00001AA0 + .word 0x00001AA0, 0x00001AA8 + .word 0x00001AA8, 0x00001AB0 + .word 0x00001AB0, 0x00001AC0 + .word 0x00001AC0, 0x00001ACC + .word 0x00001ACC, 0x00001AD8 + .word 0x00001AD8, 0x00001AE8 + .word 0x00001AE8, 0x00001AF0 + .word 0x00001AF0, 0x00001B20 + .word 0x00001B20, 0x00001B60 + .word 0x00001B60, 0x00001B90 + .word 0x00001B90, 0x00001BB0 + .word 0x00001BB0, 0x00001BE0 + .word 0x00001BE0, 0x00001C10 + .word 0x00001C10, 0x00001C40 + .word 0x00001C40, 0x00001C5C + .word 0x00001C5C, 0x00001C64 + .word 0x00001C64, 0x00001C80 + .word 0x00001C80, 0x00001C88 + .word 0x00001C88, 0x00001C98 + .word 0x00001C98, 0x00001CA0 + .word 0x00001CA0, 0x00001CAC + .word 0x00001CAC, 0x00001CB8 + .word 0x00001CB8, 0x00001CCC + .word 0x00001CCC, 0x00001CD4 + .word 0x00001CD4, 0x00001CE0 + .word 0x00001CE0, 0x00001CEC + .word 0x00001CEC, 0x00001CFC + .word 0x00001CFC, 0x00001D28 + .word 0x00001D28, 0x00001D30 + .word 0x00001D30, 0x00001D3C + .word 0x00001D3C, 0x00001D68 + .word 0x00001D68, 0x00001D74 + .word 0x00001D74, 0x00001D7C + .word 0x00001D7C, 0x00001D84 + .word 0x00001D84, 0x00001D90 + .word 0x00001D90, 0x00001D9C + .word 0x00001D9C, 0x00001DA4 + .word 0x00001DA4, 0x00001DAC + .word 0x00001DAC, 0x00001DB4 + .word 0x00001DB4, 0x00001DBC + .word 0x00001DBC, 0x00001DC4 + .word 0x00001DC4, 0x00001DCC + .word 0x00001DCC, 0x00001DD4 + .word 0x00001DD4, 0x00001DDC + .word 0x00001DDC, 0x00001DE4 + .word 0x00001DE4, 0x00001DEC + .word 0x00001DEC, 0x00001DF4 + .word 0x00001DF4, 0x00001E00 + .word 0x00001E00, 0x00001E08 + .word 0x00001E08, 0x00001E10 + .word 0x00001E10, 0x00001E1C + .word 0x00001E1C, 0x00001E28 + .word 0x00001E28, 0x00001E30 + .word 0x00001E30, 0x00001E38 + .word 0x00001E38, 0x00001E40 + .word 0x00001E40, 0x00001E4C + .word 0x00001E4C, 0x00001E60 + .word 0x00001E60, 0x00001E6C + .word 0x00001E6C, 0x00001E78 + .word 0x00001E78, 0x00001E80 + .word 0x00001E80, 0x00001E90 + .word 0x00001E90, 0x00001EAC + .word 0x00001EAC, 0x00001EC8 + .word 0x00001EC8, 0x00001ED8 + .word 0x00001ED8, 0x00001EE0 + .word 0x00001EE0, 0x00001EE8 + .word 0x00001EE8, 0x00001EF0 + .word 0x00001EF0, 0x00001EF8 + .word 0x00001EF8, 0x00001F00 + .word 0x00001F00, 0x00001F0C + .word 0x00001F0C, 0x00001F14 + .word 0x00001F14, 0x00001F1C + .word 0x00001F1C, 0x00001F24 + .word 0x00001F24, 0x00001F2C + .word 0x00001F2C, 0x00001F64 + .word 0x00001F64, 0x00001F9C + .word 0x00001F9C, 0x00001FD4 + .word 0x00001FD4, 0x0000200C + .word 0x0000200C, 0x00002044 + .word 0x00002044, 0x0000207C + .word 0x0000207C, 0x000020C4 + .word 0x000020C4, 0x0000210C + .word 0x0000210C, 0x00002154 + .word 0x00002154, 0x000021A8 + .word 0x000021A8, 0x000021FC + .word 0x000021FC, 0x00002250 + .word 0x00002250, 0x00002264 + .word 0x00002264, 0x00002290 + .word 0x00002290, 0x00002298 + .word 0x00002298, 0x000022A0 + .word 0x000022A0, 0x000022BC + .word 0x000022BC, 0x000022C4 + .word 0x000022C4, 0x000022D8 + .word 0x000022D8, 0x000022E4 + .word 0x000022E4, 0x000022EC + .word 0x000022EC, 0x000022F4 + .word 0x000022F4, 0x000022FC + .word 0x000022FC, 0x00002304 + .word 0x00002304, 0x0000230C + .word 0x0000230C, 0x00002314 + .word 0x00002314, 0x00002328 + .word 0x00002328, 0x00002338 + .word 0x00002338, 0x00002354 + .word 0x00002354, 0x00002380 + .word 0x00002380, 0x000023AC + .word 0x000023AC, 0x000023B4 + .word 0x000023B4, 0x000023BC + .word 0x000023BC, 0x000023C8 + .word 0x000023C8, 0x000023D0 + .word 0x000023D0, 0x000023DC + .word 0x000023DC, 0x000023F0 + .word 0x000023F0, 0x000023F8 + .word 0x000023F8, 0x00002404 + .word 0x00002404, 0x0000240C + .word 0x0000240C, 0x00002420 + .word 0x00002420, 0x00002428 + .word 0x00002428, 0x00002434 + .word 0x00002434, 0x00002440 + .word 0x00002440, 0x0000244C + .word 0x0000244C, 0x00002454 + .word 0x00002454, 0x00002468 + .word 0x00002468, 0x00002474 + .word 0x00002474, 0x00002488 + .word 0x00002488, 0x00002490 + .word 0x00002490, 0x0000249C + .word 0x0000249C, 0x000024A8 + .word 0x000024A8, 0x000024BC + .word 0x000024BC, 0x000024C4 + .word 0x000024C4, 0x000024D8 + .word 0x000024D8, 0x000024E4 + .word 0x000024E4, 0x000024F8 + .word 0x000024F8, 0x00002504 + .word 0x00002504, 0x00002534 + .word 0x00002534, 0x0000253C + .word 0x0000253C, 0x00002550 + .word 0x00002550, 0x00002558 + .word 0x00002558, 0x0000256C + .word 0x0000256C, 0x00002578 + .word 0x00002578, 0x00002584 + .word 0x00002584, 0x0000258C + .word 0x0000258C, 0x00002594 + .word 0x00002594, 0x000025A0 + .word 0x000025A0, 0x000025AC + .word 0x000025AC, 0x000025C0 + .word 0x000025C0, 0x000025CC + .word 0x000025CC, 0x000025E8 + .word 0x000025E8, 0x000025F4 + .word 0x000025F4, 0x00002600 + .word 0x00002600, 0x0000260C + .word 0x0000260C, 0x00002614 + .word 0x00002614, 0x00002620 + .word 0x00002620, 0x00002628 + .word 0x00002628, 0x00002638 + .word 0x00002638, 0x00002640 + .word 0x00002640, 0x00002648 + .word 0x00002648, 0x00002650 + .word 0x00002650, 0x0000266C + .word 0x0000266C, 0x00002680 + .word 0x00002680, 0x0000268C + .word 0x0000268C, 0x00002698 + .word 0x00002698, 0x000026AC + .word 0x000026AC, 0x000026B8 + .word 0x000026B8, 0x000026C0 + .word 0x000026C0, 0x000026C8 + .word 0x000026C8, 0x000026D4 + .word 0x000026D4, 0x000026E8 + .word 0x000026E8, 0x000026F4 + .word 0x000026F4, 0x00002710 + .word 0x00002710, 0x00002720 + .word 0x00002720, 0x0000273C + .word 0x0000273C, 0x00002758 + .word 0x00002758, 0x00002774 + .word 0x00002774, 0x00002784 + .word 0x00002784, 0x000027A0 + .word 0x000027A0, 0x000027BC + .word 0x000027BC, 0x000027D8 + .word 0x000027D8, 0x000027E8 + .word 0x000027E8, 0x00002804 + .word 0x00002804, 0x00002830 + .word 0x00002830, 0x0000284C + .word 0x0000284C, 0x00002878 + .word 0x00002878, 0x00002894 + .word 0x00002894, 0x000028A4 + .word 0x000028A4, 0x000028C0 + .word 0x000028C0, 0x000028D0 + .word 0x000028D0, 0x000028FC + .word 0x000028FC, 0x00002918 + .word 0x00002918, 0x00002924 + .word 0x00002924, 0x00002930 + .word 0x00002930, 0x0000293C + .word 0x0000293C, 0x00002948 + .word 0x00002948, 0x0000295C + .word 0x0000295C, 0x00002968 + .word 0x00002968, 0x0000297C + .word 0x0000297C, 0x00002984 + .word 0x00002984, 0x00002990 + .word 0x00002990, 0x0000299C + .word 0x0000299C, 0x000029A4 + .word 0x000029A4, 0x000029B0 + .word 0x000029B0, 0x000029BC + .word 0x000029BC, 0x000029C8 + .word 0x000029C8, 0x000029D4 + .word 0x000029D4, 0x000029DC + .word 0x000029DC, 0x000029E8 + .word 0x000029E8, 0x000029FC + .word 0x000029FC, 0x00002A08 + .word 0x00002A08, 0x00002A14 + .word 0x00002A14, 0x00002A20 + .word 0x00002A20, 0x00002A34 + .word 0x00002A34, 0x00002A3C + .word 0x00002A3C, 0x00002A68 + .word 0x00002A68, 0x00002ABC + .word 0x00002ABC, 0x00002ACC + .word 0x00002ACC, 0x00002ADC + .word 0x00002ADC, 0x00002AEC + .word 0x00002AEC, 0x00002AFC + .word 0x00002AFC, 0x00002B0C + .word 0x00002B0C, 0x00002B1C + .word 0x00002B1C, 0x00002B2C + .word 0x00002B2C, 0x00002B3C + .word 0x00002B3C, 0x00002B4C + .word 0x00002B4C, 0x00002B5C + .word 0x00002B5C, 0x00002B6C + .word 0x00002B6C, 0x00002BC0 + .word 0x00002BC0, 0x00002C14 + .word 0x00002C14, 0x00002C40 + .word 0x00002C40, 0x00002C6C + .word 0x00002C6C, 0x00002C98 + .word 0x00002C98, 0x00002CC4 + .word 0x00002CC4, 0x00002CF0 + .word 0x00002CF0, 0x00002D1C + .word 0x00002D1C, 0x00002D24 + .word 0x00002D24, 0x00002D2C + .word 0x00002D2C, 0x00002D34 + .word 0x00002D34, 0x00002D40 + .word 0x00002D40, 0x00002D4C + .word 0x00002D4C, 0x00002D58 + .word 0x00002D58, 0x00002D64 + .word 0x00002D64, 0x00002D70 + .word 0x00002D70, 0x00002D7C + .word 0x00002D7C, 0x00002D88 + .word 0x00002D88, 0x00002D94 + .word 0x00002D94, 0x00002DA0 + .word 0x00002DA0, 0x00002DB4 + .word 0x00002DB4, 0x00002DC8 + .word 0x00002DC8, 0x00002DDC + .word 0x00002DDC, 0x00002DF0 + .word 0x00002DF0, 0x00002E04 + .word 0x00002E04, 0x00002E18 + .word 0x00002E18, 0x00002E28 + .word 0x00002E28, 0x00002E38 + .word 0x00002E38, 0x00002E48 + .word 0x00002E48, 0x00002E74 + .word 0x00002E74, 0x00002E90 + .word 0x00002E90, 0x00002EA4 + .word 0x00002EA4, 0x00002EAC + .word 0x00002EAC, 0x00002EB4 + .word 0x00002EB4, 0x00002EC0 + .word 0x00002EC0, 0x00002ECC + .word 0x00002ECC, 0x00002ED8 + .word 0x00002ED8, 0x00002EE0 + .word 0x00002EE0, 0x00002EE8 + .word 0x00002EE8, 0x00002EF0 + .word 0x00002EF0, 0x00002EF8 + .word 0x00002EF8, 0x00002F00 + .word 0x00002F00, 0x00002F0C + .word 0x00002F0C, 0x00002F18 + .word 0x00002F18, 0x00002F34 + .word 0x00002F34, 0x00002F60 + .word 0x00002F60, 0x00002F8C + .word 0x00002F8C, 0x00002FA8 + .word 0x00002FA8, 0x00002FB8 + .word 0x00002FB8, 0x00002FE4 + .word 0x00002FE4, 0x00003000 + .word 0x00003000, 0x0000301C + .word 0x0000301C, 0x00003038 + .word 0x00003038, 0x00003064 + .word 0x00003064, 0x00003070 + .word 0x00003070, 0x0000307C + .word 0x0000307C, 0x00003088 + .word 0x00003088, 0x00003094 + .word 0x00003094, 0x000030A8 + .word 0x000030A8, 0x000030BC + .word 0x000030BC, 0x000030C8 + .word 0x000030C8, 0x000030D4 + .word 0x000030D4, 0x000030E8 + .word 0x000030E8, 0x000030FC + .word 0x000030FC, 0x00003104 + .word 0x00003104, 0x0000310C + .word 0x0000310C, 0x00003118 + .word 0x00003118, 0x00003124 + .word 0x00003124, 0x00003130 + .word 0x00003130, 0x0000313C + .word 0x0000313C, 0x00003168 + .word 0x00003168, 0x00003194 + .word 0x00003194, 0x0000319C + .word 0x0000319C, 0x000031A4 + .word 0x000031A4, 0x000031AC + .word 0x000031AC, 0x000031B4 + .word 0x000031B4, 0x000031BC + .word 0x000031BC, 0x000031C4 + .word 0x000031C4, 0x000031D8 + .word 0x000031D8, 0x000031EC + .word 0x000031EC, 0x000031F4 + .word 0x000031F4, 0x00003208 + .word 0x00003208, 0x00003210 + .word 0x00003210, 0x00003218 + .word 0x00003218, 0x00003220 + .word 0x00003220, 0x00003228 + .word 0x00003228, 0x00003230 + .word 0x00003230, 0x0000323C + .word 0x0000323C, 0x00003248 + .word 0x00003248, 0x00003254 + .word 0x00003254, 0x00003260 + .word 0x00003260, 0x0000326C + .word 0x0000326C, 0x00003278 + .word 0x00003278, 0x00003284 + .word 0x00003284, 0x00003290 + .word 0x00003290, 0x0000329C + .word 0x0000329C, 0x000032A8 + .word 0x000032A8, 0x000032B4 + .word 0x000032B4, 0x000032C0 + .word 0x000032C0, 0x000032D0 + .word 0x000032D0, 0x000032E0 + .word 0x000032E0, 0x000032F0 + .word 0x000032F0, 0x000032F8 + .word 0x000032F8, 0x00003300 + .word 0x00003300, 0x00003308 + .word 0x00003308, 0x00003314 + .word 0x00003314, 0x00003320 + .word 0x00003320, 0x0000332C + .word 0x0000332C, 0x00003334 + .word 0x00003334, 0x0000333C + .word 0x0000333C, 0x00003344 + .word 0x00003344, 0x0000334C + .word 0x0000334C, 0x00003354 + .word 0x00003354, 0x00003360 + .word 0x00003360, 0x0000336C + .word 0x0000336C, 0x00003378 + .word 0x00003378, 0x00003384 + .word 0x00003384, 0x00003390 + .word 0x00003390, 0x0000339C + .word 0x0000339C, 0x000033A8 + .word 0x000033A8, 0x000033B4 + .word 0x000033B4, 0x000033C0 + .word 0x000033C0, 0x000033CC + .word 0x000033CC, 0x000033E0 + .word 0x000033E0, 0x000033EC + .word 0x000033EC, 0x000033F8 + .word 0x000033F8, 0x00003404 + .word 0x00003404, 0x00003418 + .word 0x00003418, 0x0000342C + .word 0x0000342C, 0x00003440 + .word 0x00003440, 0x00003448 + .word 0x00003448, 0x00003450 + .word 0x00003450, 0x00003458 + .word 0x00003458, 0x00003460 + .word 0x00003460, 0x0000346C + .word 0x0000346C, 0x00003478 + .word 0x00003478, 0x00003480 + .word 0x00003480, 0x00003488 + .word 0x00003488, 0x00003490 + .word 0x00003490, 0x00003498 + .word 0x00003498, 0x000034A4 + .word 0x000034A4, 0x000034B0 + .word 0x000034B0, 0x000034BC + .word 0x000034BC, 0x000034C4 + .word 0x000034C4, 0x000034D0 + .word 0x000034D0, 0x000034DC + .word 0x000034DC, 0x000034E4 + .word 0x000034E4, 0x000034EC + .word 0x000034EC, 0x000034F4 + .word 0x000034F4, 0x000034FC + .word 0x000034FC, 0x00003504 + .word 0x00003504, 0x0000350C + .word 0x0000350C, 0x00003520 + .word 0x00003520, 0x00003534 + .word 0x00003534, 0x00003544 + .word 0x00003544, 0x00003570 + .word 0x00003570, 0x00003580 + .word 0x00003580, 0x000035AC + .word 0x000035AC, 0x000035D8 + .word 0x000035D8, 0x000035E0 + .word 0x000035E0, 0x000035E8 + .word 0x000035E8, 0x000035F0 + .word 0x000035F0, 0x000035F8 + .word 0x000035F8, 0x00003600 + .word 0x00003600, 0x00003608 + .word 0x00003608, 0x00003610 + .word 0x00003610, 0x00003618 + .word 0x00003618, 0x00003620 + .word 0x00003620, 0x00003628 + .word 0x00003628, 0x00003630 + .word 0x00003630, 0x00003638 + .word 0x00003638, 0x00003640 + .word 0x00003640, 0x00003648 + .word 0x00003648, 0x00003650 + .word 0x00003650, 0x00003658 + .word 0x00003658, 0x00003660 + .word 0x00003660, 0x0000366C + .word 0x0000366C, 0x00003678 + .word 0x00003678, 0x00003684 + .word 0x00003684, 0x00003690 + .word 0x00003690, 0x00003698 + .word 0x00003698, 0x000036A0 + .word 0x000036A0, 0x000036A8 + .word 0x000036A8, 0x000036B0 + .word 0x000036B0, 0x000036B8 + .word 0x000036B8, 0x000036C0 + .word 0x000036C0, 0x000036C8 + .word 0x000036C8, 0x000036D0 + .word 0x000036D0, 0x000036D8 + .word 0x000036D8, 0x000036E0 + .word 0x000036E0, 0x000036E8 + .word 0x000036E8, 0x000036F0 + .word 0x000036F0, 0x000036F8 + .word 0x000036F8, 0x00003700 + .word 0x00003700, 0x00003708 + .word 0x00003708, 0x00003710 + .word 0x00003710, 0x00003718 + .word 0x00003718, 0x00003720 + .word 0x00003720, 0x0000372C + .word 0x0000372C, 0x00003748 + .word 0x00003748, 0x00003754 + .word 0x00003754, 0x00003760 + .word 0x00003760, 0x0000377C + .word 0x0000377C, 0x00003788 + .word 0x00003788, 0x00003794 + .word 0x00003794, 0x000037A0 + .word 0x000037A0, 0x000037BC + .word 0x000037BC, 0x000037C4 + .word 0x000037C4, 0x000037D4 + .word 0x000037D4, 0x000037E4 + .word 0x000037E4, 0x000037F4 + .word 0x000037F4, 0x00003810 + .word 0x00003810, 0x00003820 + .word 0x00003820, 0x0000382C + .word 0x0000382C, 0x00003858 + .word 0x00003858, 0x0000386C + .word 0x0000386C, 0x00003880 + .word 0x00003880, 0x00003894 + .word 0x00003894, 0x000038E8 + .word 0x000038E8, 0x0000393C + .word 0x0000393C, 0x00003990 + .word 0x00003990, 0x000039E4 + .word 0x000039E4, 0x00003A38 + .word 0x00003A38, 0x00003A8C + .word 0x00003A8C, 0x00003A94 + .word 0x00003A94, 0x00003AA0 + .word 0x00003AA0, 0x00003AA8 + .word 0x00003AA8, 0x00003AB0 + .word 0x00003AB0, 0x00003AB8 + .word 0x00003AB8, 0x00003AC4 + .word 0x00003AC4, 0x00003AD0 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00003AD8 ; chunk size + .incbin "baserom.nds", 0x0, 0x8 + .incbin "baserom.nds", 0x8, 0x8 + .incbin "baserom.nds", 0x10, 0x8 + .incbin "baserom.nds", 0x18, 0xC + .incbin "baserom.nds", 0x24, 0xC + .incbin "baserom.nds", 0x30, 0x8 + .incbin "baserom.nds", 0x38, 0x8 + .incbin "baserom.nds", 0x40, 0x8 + .incbin "baserom.nds", 0x48, 0x8 + .incbin "baserom.nds", 0x50, 0x8 + .incbin "baserom.nds", 0x58, 0xC + .incbin "baserom.nds", 0x64, 0x8 + .incbin "baserom.nds", 0x6C, 0x8 + .incbin "baserom.nds", 0x74, 0xC + .incbin "baserom.nds", 0x80, 0xC + .incbin "baserom.nds", 0x8C, 0xC + .incbin "baserom.nds", 0x98, 0x10 + .incbin "baserom.nds", 0xA8, 0x1C + .incbin "baserom.nds", 0xC4, 0x18 + .incbin "baserom.nds", 0xDC, 0x8 + .incbin "baserom.nds", 0xE4, 0x8 + .incbin "baserom.nds", 0xEC, 0x8 + .incbin "baserom.nds", 0xF4, 0x24 + .incbin "baserom.nds", 0x118, 0x8 + .incbin "baserom.nds", 0x120, 0x14 + .incbin "baserom.nds", 0x134, 0x8 + .incbin "baserom.nds", 0x13C, 0x8 + .incbin "baserom.nds", 0x144, 0xC + .incbin "baserom.nds", 0x150, 0x8 + .incbin "baserom.nds", 0x158, 0x8 + .incbin "baserom.nds", 0x160, 0xC + .incbin "baserom.nds", 0x16C, 0x8 + .incbin "baserom.nds", 0x174, 0xC + .incbin "baserom.nds", 0x180, 0x14 + .incbin "baserom.nds", 0x194, 0x10 + .incbin "baserom.nds", 0x1A4, 0x10 + .incbin "baserom.nds", 0x1B4, 0x18 + .incbin "baserom.nds", 0x1CC, 0xC + .incbin "baserom.nds", 0x1D8, 0xC + .incbin "baserom.nds", 0x1E4, 0xC + .incbin "baserom.nds", 0x1F0, 0x14 + .incbin "baserom.nds", 0x204, 0x8 + .incbin "baserom.nds", 0x20C, 0x8 + .incbin "baserom.nds", 0x214, 0xC + .incbin "baserom.nds", 0x220, 0xC + .incbin "baserom.nds", 0x22C, 0xC + .incbin "baserom.nds", 0x238, 0x14 + .incbin "baserom.nds", 0x24C, 0x14 + .incbin "baserom.nds", 0x260, 0x20 + .incbin "baserom.nds", 0x280, 0x8 + .incbin "baserom.nds", 0x288, 0x8 + .incbin "baserom.nds", 0x290, 0x8 + .incbin "baserom.nds", 0x298, 0x8 + .incbin "baserom.nds", 0x2A0, 0x8 + .incbin "baserom.nds", 0x2A8, 0x8 + .incbin "baserom.nds", 0x2B0, 0xC + .incbin "baserom.nds", 0x2BC, 0x14 + .incbin "baserom.nds", 0x2D0, 0x14 + .incbin "baserom.nds", 0x2E4, 0x8 + .incbin "baserom.nds", 0x2EC, 0x8 + .incbin "baserom.nds", 0x2F4, 0x8 + .incbin "baserom.nds", 0x2FC, 0x8 + .incbin "baserom.nds", 0x304, 0x8 + .incbin "baserom.nds", 0x30C, 0x8 + .incbin "baserom.nds", 0x314, 0x8 + .incbin "baserom.nds", 0x31C, 0xC + .incbin "baserom.nds", 0x328, 0x2C + .incbin "baserom.nds", 0x354, 0x1C + .incbin "baserom.nds", 0x370, 0x2C + .incbin "baserom.nds", 0x39C, 0x8 + .incbin "baserom.nds", 0x3A4, 0x18 + .incbin "baserom.nds", 0x3BC, 0xC + .incbin "baserom.nds", 0x3C8, 0x8 + .incbin "baserom.nds", 0x3D0, 0x8 + .incbin "baserom.nds", 0x3D8, 0xC + .incbin "baserom.nds", 0x3E4, 0xC + .incbin "baserom.nds", 0x3F0, 0x8 + .incbin "baserom.nds", 0x3F8, 0x8 + .incbin "baserom.nds", 0x400, 0x14 + .incbin "baserom.nds", 0x414, 0x14 + .incbin "baserom.nds", 0x428, 0xC + .incbin "baserom.nds", 0x434, 0x8 + .incbin "baserom.nds", 0x43C, 0x8 + .incbin "baserom.nds", 0x444, 0x8 + .incbin "baserom.nds", 0x44C, 0x8 + .incbin "baserom.nds", 0x454, 0x8 + .incbin "baserom.nds", 0x45C, 0x8 + .incbin "baserom.nds", 0x464, 0x8 + .incbin "baserom.nds", 0x46C, 0xC + .incbin "baserom.nds", 0x478, 0xC + .incbin "baserom.nds", 0x484, 0xC + .incbin "baserom.nds", 0x490, 0x8 + .incbin "baserom.nds", 0x498, 0xC + .incbin "baserom.nds", 0x4A4, 0x18 + .incbin "baserom.nds", 0x4BC, 0xC + .incbin "baserom.nds", 0x4C8, 0xC + .incbin "baserom.nds", 0x4D4, 0xC + .incbin "baserom.nds", 0x4E0, 0x8 + .incbin "baserom.nds", 0x4E8, 0x8 + .incbin "baserom.nds", 0x4F0, 0x10 + .incbin "baserom.nds", 0x500, 0x8 + .incbin "baserom.nds", 0x508, 0x8 + .incbin "baserom.nds", 0x510, 0xC + .incbin "baserom.nds", 0x51C, 0x14 + .incbin "baserom.nds", 0x530, 0xC + .incbin "baserom.nds", 0x53C, 0xC + .incbin "baserom.nds", 0x548, 0xC + .incbin "baserom.nds", 0x554, 0x14 + .incbin "baserom.nds", 0x568, 0x10 + .incbin "baserom.nds", 0x578, 0x8 + .incbin "baserom.nds", 0x580, 0xC + .incbin "baserom.nds", 0x58C, 0x14 + .incbin "baserom.nds", 0x5A0, 0xC + .incbin "baserom.nds", 0x5AC, 0x14 + .incbin "baserom.nds", 0x5C0, 0x8 + .incbin "baserom.nds", 0x5C8, 0x8 + .incbin "baserom.nds", 0x5D0, 0x8 + .incbin "baserom.nds", 0x5D8, 0x8 + .incbin "baserom.nds", 0x5E0, 0x8 + .incbin "baserom.nds", 0x5E8, 0xC + .incbin "baserom.nds", 0x5F4, 0x14 + .incbin "baserom.nds", 0x608, 0x2C + .incbin "baserom.nds", 0x634, 0x8 + .incbin "baserom.nds", 0x63C, 0x8 + .incbin "baserom.nds", 0x644, 0x8 + .incbin "baserom.nds", 0x64C, 0x8 + .incbin "baserom.nds", 0x654, 0x8 + .incbin "baserom.nds", 0x65C, 0x14 + .incbin "baserom.nds", 0x670, 0x8 + .incbin "baserom.nds", 0x678, 0x14 + .incbin "baserom.nds", 0x68C, 0x8 + .incbin "baserom.nds", 0x694, 0x8 + .incbin "baserom.nds", 0x69C, 0x1C + .incbin "baserom.nds", 0x6B8, 0x2C + .incbin "baserom.nds", 0x6E4, 0x10 + .incbin "baserom.nds", 0x6F4, 0x2C + .incbin "baserom.nds", 0x720, 0x14 + .incbin "baserom.nds", 0x734, 0x8 + .incbin "baserom.nds", 0x73C, 0xC + .incbin "baserom.nds", 0x748, 0x8 + .incbin "baserom.nds", 0x750, 0x2C + .incbin "baserom.nds", 0x77C, 0x1C + .incbin "baserom.nds", 0x798, 0x18 + .incbin "baserom.nds", 0x7B0, 0xC + .incbin "baserom.nds", 0x7BC, 0xC + .incbin "baserom.nds", 0x7C8, 0x8 + .incbin "baserom.nds", 0x7D0, 0x18 + .incbin "baserom.nds", 0x7E8, 0xC + .incbin "baserom.nds", 0x7F4, 0x14 + .incbin "baserom.nds", 0x808, 0x8 + .incbin "baserom.nds", 0x810, 0x8 + .incbin "baserom.nds", 0x818, 0x8 + .incbin "baserom.nds", 0x820, 0x8 + .incbin "baserom.nds", 0x828, 0xC + .incbin "baserom.nds", 0x834, 0x20 + .incbin "baserom.nds", 0x854, 0xC + .incbin "baserom.nds", 0x860, 0x8 + .incbin "baserom.nds", 0x868, 0x8 + .incbin "baserom.nds", 0x870, 0x8 + .incbin "baserom.nds", 0x878, 0x14 + .incbin "baserom.nds", 0x88C, 0x8 + .incbin "baserom.nds", 0x894, 0xC + .incbin "baserom.nds", 0x8A0, 0x18 + .incbin "baserom.nds", 0x8B8, 0xC + .incbin "baserom.nds", 0x8C4, 0x2C + .incbin "baserom.nds", 0x8F0, 0xC + .incbin "baserom.nds", 0x8FC, 0xC + .incbin "baserom.nds", 0x908, 0x8 + .incbin "baserom.nds", 0x910, 0x14 + .incbin "baserom.nds", 0x924, 0x8 + .incbin "baserom.nds", 0x92C, 0x1C + .incbin "baserom.nds", 0x948, 0x2C + .incbin "baserom.nds", 0x974, 0x14 + .incbin "baserom.nds", 0x988, 0xC + .incbin "baserom.nds", 0x994, 0x18 + .incbin "baserom.nds", 0x9AC, 0x14 + .incbin "baserom.nds", 0x9C0, 0x8 + .incbin "baserom.nds", 0x9C8, 0x8 + .incbin "baserom.nds", 0x9D0, 0x8 + .incbin "baserom.nds", 0x9D8, 0x8 + .incbin "baserom.nds", 0x9E0, 0x14 + .incbin "baserom.nds", 0x9F4, 0x8 + .incbin "baserom.nds", 0x9FC, 0xC + .incbin "baserom.nds", 0xA08, 0xC + .incbin "baserom.nds", 0xA14, 0x8 + .incbin "baserom.nds", 0xA1C, 0xC + .incbin "baserom.nds", 0xA28, 0x14 + .incbin "baserom.nds", 0xA3C, 0x8 + .incbin "baserom.nds", 0xA44, 0x14 + .incbin "baserom.nds", 0xA58, 0x8 + .incbin "baserom.nds", 0xA60, 0xC + .incbin "baserom.nds", 0xA6C, 0x14 + .incbin "baserom.nds", 0xA80, 0xC + .incbin "baserom.nds", 0xA8C, 0xC + .incbin "baserom.nds", 0xA98, 0x8 + .incbin "baserom.nds", 0xAA0, 0x1C + .incbin "baserom.nds", 0xABC, 0x10 + .incbin "baserom.nds", 0xACC, 0x8 + .incbin "baserom.nds", 0xAD4, 0x8 + .incbin "baserom.nds", 0xADC, 0x8 + .incbin "baserom.nds", 0xAE4, 0x8 + .incbin "baserom.nds", 0xAEC, 0x14 + .incbin "baserom.nds", 0xB00, 0x14 + .incbin "baserom.nds", 0xB14, 0xC + .incbin "baserom.nds", 0xB20, 0x8 + .incbin "baserom.nds", 0xB28, 0x10 + .incbin "baserom.nds", 0xB38, 0x10 + .incbin "baserom.nds", 0xB48, 0xC + .incbin "baserom.nds", 0xB54, 0x8 + .incbin "baserom.nds", 0xB5C, 0x8 + .incbin "baserom.nds", 0xB64, 0x8 + .incbin "baserom.nds", 0xB6C, 0x8 + .incbin "baserom.nds", 0xB74, 0x8 + .incbin "baserom.nds", 0xB7C, 0x8 + .incbin "baserom.nds", 0xB84, 0x8 + .incbin "baserom.nds", 0xB8C, 0x8 + .incbin "baserom.nds", 0xB94, 0x8 + .incbin "baserom.nds", 0xB9C, 0x8 + .incbin "baserom.nds", 0xBA4, 0x8 + .incbin "baserom.nds", 0xBAC, 0x8 + .incbin "baserom.nds", 0xBB4, 0x8 + .incbin "baserom.nds", 0xBBC, 0x8 + .incbin "baserom.nds", 0xBC4, 0x8 + .incbin "baserom.nds", 0xBCC, 0xC + .incbin "baserom.nds", 0xBD8, 0x2C + .incbin "baserom.nds", 0xC04, 0x10 + .incbin "baserom.nds", 0xC14, 0x1C + .incbin "baserom.nds", 0xC30, 0x1C + .incbin "baserom.nds", 0xC4C, 0x2C + .incbin "baserom.nds", 0xC78, 0x1C + .incbin "baserom.nds", 0xC94, 0x8 + .incbin "baserom.nds", 0xC9C, 0x14 + .incbin "baserom.nds", 0xCB0, 0x1C + .incbin "baserom.nds", 0xCCC, 0xC + .incbin "baserom.nds", 0xCD8, 0x14 + .incbin "baserom.nds", 0xCEC, 0xC + .incbin "baserom.nds", 0xCF8, 0xC + .incbin "baserom.nds", 0xD04, 0xC + .incbin "baserom.nds", 0xD10, 0x8 + .incbin "baserom.nds", 0xD18, 0x8 + .incbin "baserom.nds", 0xD20, 0x2C + .incbin "baserom.nds", 0xD4C, 0x8 + .incbin "baserom.nds", 0xD54, 0x8 + .incbin "baserom.nds", 0xD5C, 0x8 + .incbin "baserom.nds", 0xD64, 0x10 + .incbin "baserom.nds", 0xD74, 0x1C + .incbin "baserom.nds", 0xD90, 0x2C + .incbin "baserom.nds", 0xDBC, 0x1C + .incbin "baserom.nds", 0xDD8, 0x1C + .incbin "baserom.nds", 0xDF4, 0x1C + .incbin "baserom.nds", 0xE10, 0x30 + .incbin "baserom.nds", 0xE40, 0x8 + .incbin "baserom.nds", 0xE48, 0x8 + .incbin "baserom.nds", 0xE50, 0x8 + .incbin "baserom.nds", 0xE58, 0x8 + .incbin "baserom.nds", 0xE60, 0x8 + .incbin "baserom.nds", 0xE68, 0x2C + .incbin "baserom.nds", 0xE94, 0x10 + .incbin "baserom.nds", 0xEA4, 0x8 + .incbin "baserom.nds", 0xEAC, 0x2C + .incbin "baserom.nds", 0xED8, 0x10 + .incbin "baserom.nds", 0xEE8, 0x50 + .incbin "baserom.nds", 0xF38, 0x50 + .incbin "baserom.nds", 0xF88, 0x50 + .incbin "baserom.nds", 0xFD8, 0x50 + .incbin "baserom.nds", 0x1028, 0x8 + .incbin "baserom.nds", 0x1030, 0x2C + .incbin "baserom.nds", 0x105C, 0x60 + .incbin "baserom.nds", 0x10BC, 0x1C + .incbin "baserom.nds", 0x10D8, 0x10 + .incbin "baserom.nds", 0x10E8, 0x2C + .incbin "baserom.nds", 0x1114, 0x1C + .incbin "baserom.nds", 0x1130, 0x14 + .incbin "baserom.nds", 0x1144, 0x14 + .incbin "baserom.nds", 0x1158, 0x14 + .incbin "baserom.nds", 0x116C, 0x14 + .incbin "baserom.nds", 0x1180, 0x14 + .incbin "baserom.nds", 0x1194, 0xC + .incbin "baserom.nds", 0x11A0, 0x1C + .incbin "baserom.nds", 0x11BC, 0x1C + .incbin "baserom.nds", 0x11D8, 0x2C + .incbin "baserom.nds", 0x1204, 0x1C + .incbin "baserom.nds", 0x1220, 0x1C + .incbin "baserom.nds", 0x123C, 0x10 + .incbin "baserom.nds", 0x124C, 0x1C + .incbin "baserom.nds", 0x1268, 0x1C + .incbin "baserom.nds", 0x1284, 0x10 + .incbin "baserom.nds", 0x1294, 0x1C + .incbin "baserom.nds", 0x12B0, 0xC + .incbin "baserom.nds", 0x12BC, 0xC + .incbin "baserom.nds", 0x12C8, 0xC + .incbin "baserom.nds", 0x12D4, 0x8 + .incbin "baserom.nds", 0x12DC, 0x14 + .incbin "baserom.nds", 0x12F0, 0x2C + .incbin "baserom.nds", 0x131C, 0xC + .incbin "baserom.nds", 0x1328, 0x20 + .incbin "baserom.nds", 0x1348, 0x1C + .incbin "baserom.nds", 0x1364, 0x10 + .incbin "baserom.nds", 0x1374, 0x10 + .incbin "baserom.nds", 0x1384, 0xC + .incbin "baserom.nds", 0x1390, 0x8 + .incbin "baserom.nds", 0x1398, 0x10 + .incbin "baserom.nds", 0x13A8, 0x1C + .incbin "baserom.nds", 0x13C4, 0x10 + .incbin "baserom.nds", 0x13D4, 0xC + .incbin "baserom.nds", 0x13E0, 0x8 + .incbin "baserom.nds", 0x13E8, 0x8 + .incbin "baserom.nds", 0x13F0, 0x14 + .incbin "baserom.nds", 0x1404, 0x8 + .incbin "baserom.nds", 0x140C, 0x2C + .incbin "baserom.nds", 0x1438, 0x2C + .incbin "baserom.nds", 0x1464, 0x10 + .incbin "baserom.nds", 0x1474, 0x1C + .incbin "baserom.nds", 0x1490, 0xC + .incbin "baserom.nds", 0x149C, 0x10 + .incbin "baserom.nds", 0x14AC, 0x30 + .incbin "baserom.nds", 0x14DC, 0x30 + .incbin "baserom.nds", 0x150C, 0x30 + .incbin "baserom.nds", 0x153C, 0x30 + .incbin "baserom.nds", 0x156C, 0x40 + .incbin "baserom.nds", 0x15AC, 0x40 + .incbin "baserom.nds", 0x15EC, 0x8 + .incbin "baserom.nds", 0x15F4, 0xC + .incbin "baserom.nds", 0x1600, 0x14 + .incbin "baserom.nds", 0x1614, 0x1C + .incbin "baserom.nds", 0x1630, 0x10 + .incbin "baserom.nds", 0x1640, 0xC + .incbin "baserom.nds", 0x164C, 0xC + .incbin "baserom.nds", 0x1658, 0x8 + .incbin "baserom.nds", 0x1660, 0x1C + .incbin "baserom.nds", 0x167C, 0x1C + .incbin "baserom.nds", 0x1698, 0x18 + .incbin "baserom.nds", 0x16B0, 0xC + .incbin "baserom.nds", 0x16BC, 0xC + .incbin "baserom.nds", 0x16C8, 0x8 + .incbin "baserom.nds", 0x16D0, 0x8 + .incbin "baserom.nds", 0x16D8, 0x8 + .incbin "baserom.nds", 0x16E0, 0x8 + .incbin "baserom.nds", 0x16E8, 0xC + .incbin "baserom.nds", 0x16F4, 0x1C + .incbin "baserom.nds", 0x1710, 0x10 + .incbin "baserom.nds", 0x1720, 0x10 + .incbin "baserom.nds", 0x1730, 0x10 + .incbin "baserom.nds", 0x1740, 0x1C + .incbin "baserom.nds", 0x175C, 0x10 + .incbin "baserom.nds", 0x176C, 0x10 + .incbin "baserom.nds", 0x177C, 0x8 + .incbin "baserom.nds", 0x1784, 0x8 + .incbin "baserom.nds", 0x178C, 0x10 + .incbin "baserom.nds", 0x179C, 0x8 + .incbin "baserom.nds", 0x17A4, 0x8 + .incbin "baserom.nds", 0x17AC, 0x8 + .incbin "baserom.nds", 0x17B4, 0x8 + .incbin "baserom.nds", 0x17BC, 0x8 + .incbin "baserom.nds", 0x17C4, 0x8 + .incbin "baserom.nds", 0x17CC, 0x8 + .incbin "baserom.nds", 0x17D4, 0x10 + .incbin "baserom.nds", 0x17E4, 0x1C + .incbin "baserom.nds", 0x1800, 0xC + .incbin "baserom.nds", 0x180C, 0x8 + .incbin "baserom.nds", 0x1814, 0xC + .incbin "baserom.nds", 0x1820, 0x8 + .incbin "baserom.nds", 0x1828, 0x2C + .incbin "baserom.nds", 0x1854, 0x8 + .incbin "baserom.nds", 0x185C, 0x8 + .incbin "baserom.nds", 0x1864, 0x8 + .incbin "baserom.nds", 0x186C, 0x8 + .incbin "baserom.nds", 0x1874, 0x1C + .incbin "baserom.nds", 0x1890, 0xC + .incbin "baserom.nds", 0x189C, 0x8 + .incbin "baserom.nds", 0x18A4, 0x8 + .incbin "baserom.nds", 0x18AC, 0xC + .incbin "baserom.nds", 0x18B8, 0x8 + .incbin "baserom.nds", 0x18C0, 0xC + .incbin "baserom.nds", 0x18CC, 0x8 + .incbin "baserom.nds", 0x18D4, 0x8 + .incbin "baserom.nds", 0x18DC, 0x8 + .incbin "baserom.nds", 0x18E4, 0x10 + .incbin "baserom.nds", 0x18F4, 0x1C + .incbin "baserom.nds", 0x1910, 0x1C + .incbin "baserom.nds", 0x192C, 0x1C + .incbin "baserom.nds", 0x1948, 0x14 + .incbin "baserom.nds", 0x195C, 0x14 + .incbin "baserom.nds", 0x1970, 0x14 + .incbin "baserom.nds", 0x1984, 0x8 + .incbin "baserom.nds", 0x198C, 0x8 + .incbin "baserom.nds", 0x1994, 0xC + .incbin "baserom.nds", 0x19A0, 0x8 + .incbin "baserom.nds", 0x19A8, 0x2C + .incbin "baserom.nds", 0x19D4, 0x2C + .incbin "baserom.nds", 0x1A00, 0x1C + .incbin "baserom.nds", 0x1A1C, 0x8 + .incbin "baserom.nds", 0x1A24, 0x1C + .incbin "baserom.nds", 0x1A40, 0x2C + .incbin "baserom.nds", 0x1A6C, 0x2C + .incbin "baserom.nds", 0x1A98, 0x8 + .incbin "baserom.nds", 0x1AA0, 0x8 + .incbin "baserom.nds", 0x1AA8, 0x8 + .incbin "baserom.nds", 0x1AB0, 0x10 + .incbin "baserom.nds", 0x1AC0, 0xC + .incbin "baserom.nds", 0x1ACC, 0xC + .incbin "baserom.nds", 0x1AD8, 0x10 + .incbin "baserom.nds", 0x1AE8, 0x8 + .incbin "baserom.nds", 0x1AF0, 0x30 + .incbin "baserom.nds", 0x1B20, 0x40 + .incbin "baserom.nds", 0x1B60, 0x30 + .incbin "baserom.nds", 0x1B90, 0x20 + .incbin "baserom.nds", 0x1BB0, 0x30 + .incbin "baserom.nds", 0x1BE0, 0x30 + .incbin "baserom.nds", 0x1C10, 0x30 + .incbin "baserom.nds", 0x1C40, 0x1C + .incbin "baserom.nds", 0x1C5C, 0x8 + .incbin "baserom.nds", 0x1C64, 0x1C + .incbin "baserom.nds", 0x1C80, 0x8 + .incbin "baserom.nds", 0x1C88, 0x10 + .incbin "baserom.nds", 0x1C98, 0x8 + .incbin "baserom.nds", 0x1CA0, 0xC + .incbin "baserom.nds", 0x1CAC, 0xC + .incbin "baserom.nds", 0x1CB8, 0x14 + .incbin "baserom.nds", 0x1CCC, 0x8 + .incbin "baserom.nds", 0x1CD4, 0xC + .incbin "baserom.nds", 0x1CE0, 0xC + .incbin "baserom.nds", 0x1CEC, 0x10 + .incbin "baserom.nds", 0x1CFC, 0x2C + .incbin "baserom.nds", 0x1D28, 0x8 + .incbin "baserom.nds", 0x1D30, 0xC + .incbin "baserom.nds", 0x1D3C, 0x2C + .incbin "baserom.nds", 0x1D68, 0xC + .incbin "baserom.nds", 0x1D74, 0x8 + .incbin "baserom.nds", 0x1D7C, 0x8 + .incbin "baserom.nds", 0x1D84, 0xC + .incbin "baserom.nds", 0x1D90, 0xC + .incbin "baserom.nds", 0x1D9C, 0x8 + .incbin "baserom.nds", 0x1DA4, 0x8 + .incbin "baserom.nds", 0x1DAC, 0x8 + .incbin "baserom.nds", 0x1DB4, 0x8 + .incbin "baserom.nds", 0x1DBC, 0x8 + .incbin "baserom.nds", 0x1DC4, 0x8 + .incbin "baserom.nds", 0x1DCC, 0x8 + .incbin "baserom.nds", 0x1DD4, 0x8 + .incbin "baserom.nds", 0x1DDC, 0x8 + .incbin "baserom.nds", 0x1DE4, 0x8 + .incbin "baserom.nds", 0x1DEC, 0x8 + .incbin "baserom.nds", 0x1DF4, 0xC + .incbin "baserom.nds", 0x1E00, 0x8 + .incbin "baserom.nds", 0x1E08, 0x8 + .incbin "baserom.nds", 0x1E10, 0xC + .incbin "baserom.nds", 0x1E1C, 0xC + .incbin "baserom.nds", 0x1E28, 0x8 + .incbin "baserom.nds", 0x1E30, 0x8 + .incbin "baserom.nds", 0x1E38, 0x8 + .incbin "baserom.nds", 0x1E40, 0xC + .incbin "baserom.nds", 0x1E4C, 0x14 + .incbin "baserom.nds", 0x1E60, 0xC + .incbin "baserom.nds", 0x1E6C, 0xC + .incbin "baserom.nds", 0x1E78, 0x8 + .incbin "baserom.nds", 0x1E80, 0x10 + .incbin "baserom.nds", 0x1E90, 0x1C + .incbin "baserom.nds", 0x1EAC, 0x1C + .incbin "baserom.nds", 0x1EC8, 0x10 + .incbin "baserom.nds", 0x1ED8, 0x8 + .incbin "baserom.nds", 0x1EE0, 0x8 + .incbin "baserom.nds", 0x1EE8, 0x8 + .incbin "baserom.nds", 0x1EF0, 0x8 + .incbin "baserom.nds", 0x1EF8, 0x8 + .incbin "baserom.nds", 0x1F00, 0xC + .incbin "baserom.nds", 0x1F0C, 0x8 + .incbin "baserom.nds", 0x1F14, 0x8 + .incbin "baserom.nds", 0x1F1C, 0x8 + .incbin "baserom.nds", 0x1F24, 0x8 + .incbin "baserom.nds", 0x1F2C, 0x38 + .incbin "baserom.nds", 0x1F64, 0x38 + .incbin "baserom.nds", 0x1F9C, 0x38 + .incbin "baserom.nds", 0x1FD4, 0x38 + .incbin "baserom.nds", 0x200C, 0x38 + .incbin "baserom.nds", 0x2044, 0x38 + .incbin "baserom.nds", 0x207C, 0x48 + .incbin "baserom.nds", 0x20C4, 0x48 + .incbin "baserom.nds", 0x210C, 0x48 + .incbin "baserom.nds", 0x2154, 0x54 + .incbin "baserom.nds", 0x21A8, 0x54 + .incbin "baserom.nds", 0x21FC, 0x54 + .incbin "baserom.nds", 0x2250, 0x14 + .incbin "baserom.nds", 0x2264, 0x2C + .incbin "baserom.nds", 0x2290, 0x8 + .incbin "baserom.nds", 0x2298, 0x8 + .incbin "baserom.nds", 0x22A0, 0x1C + .incbin "baserom.nds", 0x22BC, 0x8 + .incbin "baserom.nds", 0x22C4, 0x14 + .incbin "baserom.nds", 0x22D8, 0xC + .incbin "baserom.nds", 0x22E4, 0x8 + .incbin "baserom.nds", 0x22EC, 0x8 + .incbin "baserom.nds", 0x22F4, 0x8 + .incbin "baserom.nds", 0x22FC, 0x8 + .incbin "baserom.nds", 0x2304, 0x8 + .incbin "baserom.nds", 0x230C, 0x8 + .incbin "baserom.nds", 0x2314, 0x14 + .incbin "baserom.nds", 0x2328, 0x10 + .incbin "baserom.nds", 0x2338, 0x1C + .incbin "baserom.nds", 0x2354, 0x2C + .incbin "baserom.nds", 0x2380, 0x2C + .incbin "baserom.nds", 0x23AC, 0x8 + .incbin "baserom.nds", 0x23B4, 0x8 + .incbin "baserom.nds", 0x23BC, 0xC + .incbin "baserom.nds", 0x23C8, 0x8 + .incbin "baserom.nds", 0x23D0, 0xC + .incbin "baserom.nds", 0x23DC, 0x14 + .incbin "baserom.nds", 0x23F0, 0x8 + .incbin "baserom.nds", 0x23F8, 0xC + .incbin "baserom.nds", 0x2404, 0x8 + .incbin "baserom.nds", 0x240C, 0x14 + .incbin "baserom.nds", 0x2420, 0x8 + .incbin "baserom.nds", 0x2428, 0xC + .incbin "baserom.nds", 0x2434, 0xC + .incbin "baserom.nds", 0x2440, 0xC + .incbin "baserom.nds", 0x244C, 0x8 + .incbin "baserom.nds", 0x2454, 0x14 + .incbin "baserom.nds", 0x2468, 0xC + .incbin "baserom.nds", 0x2474, 0x14 + .incbin "baserom.nds", 0x2488, 0x8 + .incbin "baserom.nds", 0x2490, 0xC + .incbin "baserom.nds", 0x249C, 0xC + .incbin "baserom.nds", 0x24A8, 0x14 + .incbin "baserom.nds", 0x24BC, 0x8 + .incbin "baserom.nds", 0x24C4, 0x14 + .incbin "baserom.nds", 0x24D8, 0xC + .incbin "baserom.nds", 0x24E4, 0x14 + .incbin "baserom.nds", 0x24F8, 0xC + .incbin "baserom.nds", 0x2504, 0x30 + .incbin "baserom.nds", 0x2534, 0x8 + .incbin "baserom.nds", 0x253C, 0x14 + .incbin "baserom.nds", 0x2550, 0x8 + .incbin "baserom.nds", 0x2558, 0x14 + .incbin "baserom.nds", 0x256C, 0xC + .incbin "baserom.nds", 0x2578, 0xC + .incbin "baserom.nds", 0x2584, 0x8 + .incbin "baserom.nds", 0x258C, 0x8 + .incbin "baserom.nds", 0x2594, 0xC + .incbin "baserom.nds", 0x25A0, 0xC + .incbin "baserom.nds", 0x25AC, 0x14 + .incbin "baserom.nds", 0x25C0, 0xC + .incbin "baserom.nds", 0x25CC, 0x1C + .incbin "baserom.nds", 0x25E8, 0xC + .incbin "baserom.nds", 0x25F4, 0xC + .incbin "baserom.nds", 0x2600, 0xC + .incbin "baserom.nds", 0x260C, 0x8 + .incbin "baserom.nds", 0x2614, 0xC + .incbin "baserom.nds", 0x2620, 0x8 + .incbin "baserom.nds", 0x2628, 0x10 + .incbin "baserom.nds", 0x2638, 0x8 + .incbin "baserom.nds", 0x2640, 0x8 + .incbin "baserom.nds", 0x2648, 0x8 + .incbin "baserom.nds", 0x2650, 0x1C + .incbin "baserom.nds", 0x266C, 0x14 + .incbin "baserom.nds", 0x2680, 0xC + .incbin "baserom.nds", 0x268C, 0xC + .incbin "baserom.nds", 0x2698, 0x14 + .incbin "baserom.nds", 0x26AC, 0xC + .incbin "baserom.nds", 0x26B8, 0x8 + .incbin "baserom.nds", 0x26C0, 0x8 + .incbin "baserom.nds", 0x26C8, 0xC + .incbin "baserom.nds", 0x26D4, 0x14 + .incbin "baserom.nds", 0x26E8, 0xC + .incbin "baserom.nds", 0x26F4, 0x1C + .incbin "baserom.nds", 0x2710, 0x10 + .incbin "baserom.nds", 0x2720, 0x1C + .incbin "baserom.nds", 0x273C, 0x1C + .incbin "baserom.nds", 0x2758, 0x1C + .incbin "baserom.nds", 0x2774, 0x10 + .incbin "baserom.nds", 0x2784, 0x1C + .incbin "baserom.nds", 0x27A0, 0x1C + .incbin "baserom.nds", 0x27BC, 0x1C + .incbin "baserom.nds", 0x27D8, 0x10 + .incbin "baserom.nds", 0x27E8, 0x1C + .incbin "baserom.nds", 0x2804, 0x2C + .incbin "baserom.nds", 0x2830, 0x1C + .incbin "baserom.nds", 0x284C, 0x2C + .incbin "baserom.nds", 0x2878, 0x1C + .incbin "baserom.nds", 0x2894, 0x10 + .incbin "baserom.nds", 0x28A4, 0x1C + .incbin "baserom.nds", 0x28C0, 0x10 + .incbin "baserom.nds", 0x28D0, 0x2C + .incbin "baserom.nds", 0x28FC, 0x1C + .incbin "baserom.nds", 0x2918, 0xC + .incbin "baserom.nds", 0x2924, 0xC + .incbin "baserom.nds", 0x2930, 0xC + .incbin "baserom.nds", 0x293C, 0xC + .incbin "baserom.nds", 0x2948, 0x14 + .incbin "baserom.nds", 0x295C, 0xC + .incbin "baserom.nds", 0x2968, 0x14 + .incbin "baserom.nds", 0x297C, 0x8 + .incbin "baserom.nds", 0x2984, 0xC + .incbin "baserom.nds", 0x2990, 0xC + .incbin "baserom.nds", 0x299C, 0x8 + .incbin "baserom.nds", 0x29A4, 0xC + .incbin "baserom.nds", 0x29B0, 0xC + .incbin "baserom.nds", 0x29BC, 0xC + .incbin "baserom.nds", 0x29C8, 0xC + .incbin "baserom.nds", 0x29D4, 0x8 + .incbin "baserom.nds", 0x29DC, 0xC + .incbin "baserom.nds", 0x29E8, 0x14 + .incbin "baserom.nds", 0x29FC, 0xC + .incbin "baserom.nds", 0x2A08, 0xC + .incbin "baserom.nds", 0x2A14, 0xC + .incbin "baserom.nds", 0x2A20, 0x14 + .incbin "baserom.nds", 0x2A34, 0x8 + .incbin "baserom.nds", 0x2A3C, 0x2C + .incbin "baserom.nds", 0x2A68, 0x54 + .incbin "baserom.nds", 0x2ABC, 0x10 + .incbin "baserom.nds", 0x2ACC, 0x10 + .incbin "baserom.nds", 0x2ADC, 0x10 + .incbin "baserom.nds", 0x2AEC, 0x10 + .incbin "baserom.nds", 0x2AFC, 0x10 + .incbin "baserom.nds", 0x2B0C, 0x10 + .incbin "baserom.nds", 0x2B1C, 0x10 + .incbin "baserom.nds", 0x2B2C, 0x10 + .incbin "baserom.nds", 0x2B3C, 0x10 + .incbin "baserom.nds", 0x2B4C, 0x10 + .incbin "baserom.nds", 0x2B5C, 0x10 + .incbin "baserom.nds", 0x2B6C, 0x54 + .incbin "baserom.nds", 0x2BC0, 0x54 + .incbin "baserom.nds", 0x2C14, 0x2C + .incbin "baserom.nds", 0x2C40, 0x2C + .incbin "baserom.nds", 0x2C6C, 0x2C + .incbin "baserom.nds", 0x2C98, 0x2C + .incbin "baserom.nds", 0x2CC4, 0x2C + .incbin "baserom.nds", 0x2CF0, 0x2C + .incbin "baserom.nds", 0x2D1C, 0x8 + .incbin "baserom.nds", 0x2D24, 0x8 + .incbin "baserom.nds", 0x2D2C, 0x8 + .incbin "baserom.nds", 0x2D34, 0xC + .incbin "baserom.nds", 0x2D40, 0xC + .incbin "baserom.nds", 0x2D4C, 0xC + .incbin "baserom.nds", 0x2D58, 0xC + .incbin "baserom.nds", 0x2D64, 0xC + .incbin "baserom.nds", 0x2D70, 0xC + .incbin "baserom.nds", 0x2D7C, 0xC + .incbin "baserom.nds", 0x2D88, 0xC + .incbin "baserom.nds", 0x2D94, 0xC + .incbin "baserom.nds", 0x2DA0, 0x14 + .incbin "baserom.nds", 0x2DB4, 0x14 + .incbin "baserom.nds", 0x2DC8, 0x14 + .incbin "baserom.nds", 0x2DDC, 0x14 + .incbin "baserom.nds", 0x2DF0, 0x14 + .incbin "baserom.nds", 0x2E04, 0x14 + .incbin "baserom.nds", 0x2E18, 0x10 + .incbin "baserom.nds", 0x2E28, 0x10 + .incbin "baserom.nds", 0x2E38, 0x10 + .incbin "baserom.nds", 0x2E48, 0x2C + .incbin "baserom.nds", 0x2E74, 0x1C + .incbin "baserom.nds", 0x2E90, 0x14 + .incbin "baserom.nds", 0x2EA4, 0x8 + .incbin "baserom.nds", 0x2EAC, 0x8 + .incbin "baserom.nds", 0x2EB4, 0xC + .incbin "baserom.nds", 0x2EC0, 0xC + .incbin "baserom.nds", 0x2ECC, 0xC + .incbin "baserom.nds", 0x2ED8, 0x8 + .incbin "baserom.nds", 0x2EE0, 0x8 + .incbin "baserom.nds", 0x2EE8, 0x8 + .incbin "baserom.nds", 0x2EF0, 0x8 + .incbin "baserom.nds", 0x2EF8, 0x8 + .incbin "baserom.nds", 0x2F00, 0xC + .incbin "baserom.nds", 0x2F0C, 0xC + .incbin "baserom.nds", 0x2F18, 0x1C + .incbin "baserom.nds", 0x2F34, 0x2C + .incbin "baserom.nds", 0x2F60, 0x2C + .incbin "baserom.nds", 0x2F8C, 0x1C + .incbin "baserom.nds", 0x2FA8, 0x10 + .incbin "baserom.nds", 0x2FB8, 0x2C + .incbin "baserom.nds", 0x2FE4, 0x1C + .incbin "baserom.nds", 0x3000, 0x1C + .incbin "baserom.nds", 0x301C, 0x1C + .incbin "baserom.nds", 0x3038, 0x2C + .incbin "baserom.nds", 0x3064, 0xC + .incbin "baserom.nds", 0x3070, 0xC + .incbin "baserom.nds", 0x307C, 0xC + .incbin "baserom.nds", 0x3088, 0xC + .incbin "baserom.nds", 0x3094, 0x14 + .incbin "baserom.nds", 0x30A8, 0x14 + .incbin "baserom.nds", 0x30BC, 0xC + .incbin "baserom.nds", 0x30C8, 0xC + .incbin "baserom.nds", 0x30D4, 0x14 + .incbin "baserom.nds", 0x30E8, 0x14 + .incbin "baserom.nds", 0x30FC, 0x8 + .incbin "baserom.nds", 0x3104, 0x8 + .incbin "baserom.nds", 0x310C, 0xC + .incbin "baserom.nds", 0x3118, 0xC + .incbin "baserom.nds", 0x3124, 0xC + .incbin "baserom.nds", 0x3130, 0xC + .incbin "baserom.nds", 0x313C, 0x2C + .incbin "baserom.nds", 0x3168, 0x2C + .incbin "baserom.nds", 0x3194, 0x8 + .incbin "baserom.nds", 0x319C, 0x8 + .incbin "baserom.nds", 0x31A4, 0x8 + .incbin "baserom.nds", 0x31AC, 0x8 + .incbin "baserom.nds", 0x31B4, 0x8 + .incbin "baserom.nds", 0x31BC, 0x8 + .incbin "baserom.nds", 0x31C4, 0x14 + .incbin "baserom.nds", 0x31D8, 0x14 + .incbin "baserom.nds", 0x31EC, 0x8 + .incbin "baserom.nds", 0x31F4, 0x14 + .incbin "baserom.nds", 0x3208, 0x8 + .incbin "baserom.nds", 0x3210, 0x8 + .incbin "baserom.nds", 0x3218, 0x8 + .incbin "baserom.nds", 0x3220, 0x8 + .incbin "baserom.nds", 0x3228, 0x8 + .incbin "baserom.nds", 0x3230, 0xC + .incbin "baserom.nds", 0x323C, 0xC + .incbin "baserom.nds", 0x3248, 0xC + .incbin "baserom.nds", 0x3254, 0xC + .incbin "baserom.nds", 0x3260, 0xC + .incbin "baserom.nds", 0x326C, 0xC + .incbin "baserom.nds", 0x3278, 0xC + .incbin "baserom.nds", 0x3284, 0xC + .incbin "baserom.nds", 0x3290, 0xC + .incbin "baserom.nds", 0x329C, 0xC + .incbin "baserom.nds", 0x32A8, 0xC + .incbin "baserom.nds", 0x32B4, 0xC + .incbin "baserom.nds", 0x32C0, 0x10 + .incbin "baserom.nds", 0x32D0, 0x10 + .incbin "baserom.nds", 0x32E0, 0x10 + .incbin "baserom.nds", 0x32F0, 0x8 + .incbin "baserom.nds", 0x32F8, 0x8 + .incbin "baserom.nds", 0x3300, 0x8 + .incbin "baserom.nds", 0x3308, 0xC + .incbin "baserom.nds", 0x3314, 0xC + .incbin "baserom.nds", 0x3320, 0xC + .incbin "baserom.nds", 0x332C, 0x8 + .incbin "baserom.nds", 0x3334, 0x8 + .incbin "baserom.nds", 0x333C, 0x8 + .incbin "baserom.nds", 0x3344, 0x8 + .incbin "baserom.nds", 0x334C, 0x8 + .incbin "baserom.nds", 0x3354, 0xC + .incbin "baserom.nds", 0x3360, 0xC + .incbin "baserom.nds", 0x336C, 0xC + .incbin "baserom.nds", 0x3378, 0xC + .incbin "baserom.nds", 0x3384, 0xC + .incbin "baserom.nds", 0x3390, 0xC + .incbin "baserom.nds", 0x339C, 0xC + .incbin "baserom.nds", 0x33A8, 0xC + .incbin "baserom.nds", 0x33B4, 0xC + .incbin "baserom.nds", 0x33C0, 0xC + .incbin "baserom.nds", 0x33CC, 0x14 + .incbin "baserom.nds", 0x33E0, 0xC + .incbin "baserom.nds", 0x33EC, 0xC + .incbin "baserom.nds", 0x33F8, 0xC + .incbin "baserom.nds", 0x3404, 0x14 + .incbin "baserom.nds", 0x3418, 0x14 + .incbin "baserom.nds", 0x342C, 0x14 + .incbin "baserom.nds", 0x3440, 0x8 + .incbin "baserom.nds", 0x3448, 0x8 + .incbin "baserom.nds", 0x3450, 0x8 + .incbin "baserom.nds", 0x3458, 0x8 + .incbin "baserom.nds", 0x3460, 0xC + .incbin "baserom.nds", 0x346C, 0xC + .incbin "baserom.nds", 0x3478, 0x8 + .incbin "baserom.nds", 0x3480, 0x8 + .incbin "baserom.nds", 0x3488, 0x8 + .incbin "baserom.nds", 0x3490, 0x8 + .incbin "baserom.nds", 0x3498, 0xC + .incbin "baserom.nds", 0x34A4, 0xC + .incbin "baserom.nds", 0x34B0, 0xC + .incbin "baserom.nds", 0x34BC, 0x8 + .incbin "baserom.nds", 0x34C4, 0xC + .incbin "baserom.nds", 0x34D0, 0xC + .incbin "baserom.nds", 0x34DC, 0x8 + .incbin "baserom.nds", 0x34E4, 0x8 + .incbin "baserom.nds", 0x34EC, 0x8 + .incbin "baserom.nds", 0x34F4, 0x8 + .incbin "baserom.nds", 0x34FC, 0x8 + .incbin "baserom.nds", 0x3504, 0x8 + .incbin "baserom.nds", 0x350C, 0x14 + .incbin "baserom.nds", 0x3520, 0x14 + .incbin "baserom.nds", 0x3534, 0x10 + .incbin "baserom.nds", 0x3544, 0x2C + .incbin "baserom.nds", 0x3570, 0x10 + .incbin "baserom.nds", 0x3580, 0x2C + .incbin "baserom.nds", 0x35AC, 0x2C + .incbin "baserom.nds", 0x35D8, 0x8 + .incbin "baserom.nds", 0x35E0, 0x8 + .incbin "baserom.nds", 0x35E8, 0x8 + .incbin "baserom.nds", 0x35F0, 0x8 + .incbin "baserom.nds", 0x35F8, 0x8 + .incbin "baserom.nds", 0x3600, 0x8 + .incbin "baserom.nds", 0x3608, 0x8 + .incbin "baserom.nds", 0x3610, 0x8 + .incbin "baserom.nds", 0x3618, 0x8 + .incbin "baserom.nds", 0x3620, 0x8 + .incbin "baserom.nds", 0x3628, 0x8 + .incbin "baserom.nds", 0x3630, 0x8 + .incbin "baserom.nds", 0x3638, 0x8 + .incbin "baserom.nds", 0x3640, 0x8 + .incbin "baserom.nds", 0x3648, 0x8 + .incbin "baserom.nds", 0x3650, 0x8 + .incbin "baserom.nds", 0x3658, 0x8 + .incbin "baserom.nds", 0x3660, 0xC + .incbin "baserom.nds", 0x366C, 0xC + .incbin "baserom.nds", 0x3678, 0xC + .incbin "baserom.nds", 0x3684, 0xC + .incbin "baserom.nds", 0x3690, 0x8 + .incbin "baserom.nds", 0x3698, 0x8 + .incbin "baserom.nds", 0x36A0, 0x8 + .incbin "baserom.nds", 0x36A8, 0x8 + .incbin "baserom.nds", 0x36B0, 0x8 + .incbin "baserom.nds", 0x36B8, 0x8 + .incbin "baserom.nds", 0x36C0, 0x8 + .incbin "baserom.nds", 0x36C8, 0x8 + .incbin "baserom.nds", 0x36D0, 0x8 + .incbin "baserom.nds", 0x36D8, 0x8 + .incbin "baserom.nds", 0x36E0, 0x8 + .incbin "baserom.nds", 0x36E8, 0x8 + .incbin "baserom.nds", 0x36F0, 0x8 + .incbin "baserom.nds", 0x36F8, 0x8 + .incbin "baserom.nds", 0x3700, 0x8 + .incbin "baserom.nds", 0x3708, 0x8 + .incbin "baserom.nds", 0x3710, 0x8 + .incbin "baserom.nds", 0x3718, 0x8 + .incbin "baserom.nds", 0x3720, 0xC + .incbin "baserom.nds", 0x372C, 0x1C + .incbin "baserom.nds", 0x3748, 0xC + .incbin "baserom.nds", 0x3754, 0xC + .incbin "baserom.nds", 0x3760, 0x1C + .incbin "baserom.nds", 0x377C, 0xC + .incbin "baserom.nds", 0x3788, 0xC + .incbin "baserom.nds", 0x3794, 0xC + .incbin "baserom.nds", 0x37A0, 0x1C + .incbin "baserom.nds", 0x37BC, 0x8 + .incbin "baserom.nds", 0x37C4, 0x10 + .incbin "baserom.nds", 0x37D4, 0x10 + .incbin "baserom.nds", 0x37E4, 0x10 + .incbin "baserom.nds", 0x37F4, 0x1C + .incbin "baserom.nds", 0x3810, 0x10 + .incbin "baserom.nds", 0x3820, 0xC + .incbin "baserom.nds", 0x382C, 0x2C + .incbin "baserom.nds", 0x3858, 0x14 + .incbin "baserom.nds", 0x386C, 0x14 + .incbin "baserom.nds", 0x3880, 0x14 + .incbin "baserom.nds", 0x3894, 0x54 + .incbin "baserom.nds", 0x38E8, 0x54 + .incbin "baserom.nds", 0x393C, 0x54 + .incbin "baserom.nds", 0x3990, 0x54 + .incbin "baserom.nds", 0x39E4, 0x54 + .incbin "baserom.nds", 0x3A38, 0x54 + .incbin "baserom.nds", 0x3A8C, 0x8 + .incbin "baserom.nds", 0x3A94, 0xC + .incbin "baserom.nds", 0x3AA0, 0x8 + .incbin "baserom.nds", 0x3AA8, 0x8 + .incbin "baserom.nds", 0x3AB0, 0x8 + .incbin "baserom.nds", 0x3AB8, 0xC + .incbin "baserom.nds", 0x3AC4, 0xC + .balign 4, 255 diff --git a/narc/trgra/trbgra.narc.s b/narc/trgra/trbgra.narc.s new file mode 100644 index 00000000..3d1fa6b9 --- /dev/null +++ b/narc/trgra/trbgra.narc.s @@ -0,0 +1,58 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0000CC74 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000008C ; chunk size + .short 16 ; number of files + .balign 4 + .word 0x00000000, 0x00001930 + .word 0x00001930, 0x00001978 + .word 0x00001978, 0x000032A8 + .word 0x000032A8, 0x000032F0 + .word 0x000032F0, 0x00004C20 + .word 0x00004C20, 0x00004C68 + .word 0x00004C68, 0x00006598 + .word 0x00006598, 0x000065E0 + .word 0x000065E0, 0x00007F10 + .word 0x00007F10, 0x00007F58 + .word 0x00007F58, 0x00009888 + .word 0x00009888, 0x000098D0 + .word 0x000098D0, 0x0000B200 + .word 0x0000B200, 0x0000B248 + .word 0x0000B248, 0x0000CB78 + .word 0x0000CB78, 0x0000CBC0 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0000CBC8 ; chunk size + .incbin "baserom.nds", 0x0, 0x1930 + .incbin "baserom.nds", 0x1930, 0x48 + .incbin "baserom.nds", 0x1978, 0x1930 + .incbin "baserom.nds", 0x32A8, 0x48 + .incbin "baserom.nds", 0x32F0, 0x1930 + .incbin "baserom.nds", 0x4C20, 0x48 + .incbin "baserom.nds", 0x4C68, 0x1930 + .incbin "baserom.nds", 0x6598, 0x48 + .incbin "baserom.nds", 0x65E0, 0x1930 + .incbin "baserom.nds", 0x7F10, 0x48 + .incbin "baserom.nds", 0x7F58, 0x1930 + .incbin "baserom.nds", 0x9888, 0x48 + .incbin "baserom.nds", 0x98D0, 0x1930 + .incbin "baserom.nds", 0xB200, 0x48 + .incbin "baserom.nds", 0xB248, 0x1930 + .incbin "baserom.nds", 0xCB78, 0x48 + .balign 4, 255 diff --git a/narc/trgra/trfgra.narc.s b/narc/trgra/trfgra.narc.s new file mode 100644 index 00000000..d33c65a9 --- /dev/null +++ b/narc/trgra/trfgra.narc.s @@ -0,0 +1,418 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x0009C644 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000062C ; chunk size + .short 196 ; number of files + .balign 4 + .word 0x00000000, 0x00001930 + .word 0x00001930, 0x00001978 + .word 0x00001978, 0x000032A8 + .word 0x000032A8, 0x000032F0 + .word 0x000032F0, 0x00004C20 + .word 0x00004C20, 0x00004C68 + .word 0x00004C68, 0x00006598 + .word 0x00006598, 0x000065E0 + .word 0x000065E0, 0x00007F10 + .word 0x00007F10, 0x00007F58 + .word 0x00007F58, 0x00009888 + .word 0x00009888, 0x000098D0 + .word 0x000098D0, 0x0000B200 + .word 0x0000B200, 0x0000B248 + .word 0x0000B248, 0x0000CB78 + .word 0x0000CB78, 0x0000CBC0 + .word 0x0000CBC0, 0x0000E4F0 + .word 0x0000E4F0, 0x0000E538 + .word 0x0000E538, 0x0000FE68 + .word 0x0000FE68, 0x0000FEB0 + .word 0x0000FEB0, 0x000117E0 + .word 0x000117E0, 0x00011828 + .word 0x00011828, 0x00013158 + .word 0x00013158, 0x000131A0 + .word 0x000131A0, 0x00014AD0 + .word 0x00014AD0, 0x00014B18 + .word 0x00014B18, 0x00016448 + .word 0x00016448, 0x00016490 + .word 0x00016490, 0x00017DC0 + .word 0x00017DC0, 0x00017E08 + .word 0x00017E08, 0x00019738 + .word 0x00019738, 0x00019780 + .word 0x00019780, 0x0001B0B0 + .word 0x0001B0B0, 0x0001B0F8 + .word 0x0001B0F8, 0x0001CA28 + .word 0x0001CA28, 0x0001CA70 + .word 0x0001CA70, 0x0001E3A0 + .word 0x0001E3A0, 0x0001E3E8 + .word 0x0001E3E8, 0x0001FD18 + .word 0x0001FD18, 0x0001FD60 + .word 0x0001FD60, 0x00021690 + .word 0x00021690, 0x000216D8 + .word 0x000216D8, 0x00023008 + .word 0x00023008, 0x00023050 + .word 0x00023050, 0x00024980 + .word 0x00024980, 0x000249C8 + .word 0x000249C8, 0x000262F8 + .word 0x000262F8, 0x00026340 + .word 0x00026340, 0x00027C70 + .word 0x00027C70, 0x00027CB8 + .word 0x00027CB8, 0x000295E8 + .word 0x000295E8, 0x00029630 + .word 0x00029630, 0x0002AF60 + .word 0x0002AF60, 0x0002AFA8 + .word 0x0002AFA8, 0x0002C8D8 + .word 0x0002C8D8, 0x0002C920 + .word 0x0002C920, 0x0002E250 + .word 0x0002E250, 0x0002E298 + .word 0x0002E298, 0x0002FBC8 + .word 0x0002FBC8, 0x0002FC10 + .word 0x0002FC10, 0x00031540 + .word 0x00031540, 0x00031588 + .word 0x00031588, 0x00032EB8 + .word 0x00032EB8, 0x00032F00 + .word 0x00032F00, 0x00034830 + .word 0x00034830, 0x00034878 + .word 0x00034878, 0x000361A8 + .word 0x000361A8, 0x000361F0 + .word 0x000361F0, 0x00037B20 + .word 0x00037B20, 0x00037B68 + .word 0x00037B68, 0x00039498 + .word 0x00039498, 0x000394E0 + .word 0x000394E0, 0x0003AE10 + .word 0x0003AE10, 0x0003AE58 + .word 0x0003AE58, 0x0003C788 + .word 0x0003C788, 0x0003C7D0 + .word 0x0003C7D0, 0x0003E100 + .word 0x0003E100, 0x0003E148 + .word 0x0003E148, 0x0003FA78 + .word 0x0003FA78, 0x0003FAC0 + .word 0x0003FAC0, 0x000413F0 + .word 0x000413F0, 0x00041438 + .word 0x00041438, 0x00042D68 + .word 0x00042D68, 0x00042DB0 + .word 0x00042DB0, 0x000446E0 + .word 0x000446E0, 0x00044728 + .word 0x00044728, 0x00046058 + .word 0x00046058, 0x000460A0 + .word 0x000460A0, 0x000479D0 + .word 0x000479D0, 0x00047A18 + .word 0x00047A18, 0x00049348 + .word 0x00049348, 0x00049390 + .word 0x00049390, 0x0004ACC0 + .word 0x0004ACC0, 0x0004AD08 + .word 0x0004AD08, 0x0004C638 + .word 0x0004C638, 0x0004C680 + .word 0x0004C680, 0x0004DFB0 + .word 0x0004DFB0, 0x0004DFF8 + .word 0x0004DFF8, 0x0004F928 + .word 0x0004F928, 0x0004F970 + .word 0x0004F970, 0x000512A0 + .word 0x000512A0, 0x000512E8 + .word 0x000512E8, 0x00052C18 + .word 0x00052C18, 0x00052C60 + .word 0x00052C60, 0x00054590 + .word 0x00054590, 0x000545D8 + .word 0x000545D8, 0x00055F08 + .word 0x00055F08, 0x00055F50 + .word 0x00055F50, 0x00057880 + .word 0x00057880, 0x000578C8 + .word 0x000578C8, 0x000591F8 + .word 0x000591F8, 0x00059240 + .word 0x00059240, 0x0005AB70 + .word 0x0005AB70, 0x0005ABB8 + .word 0x0005ABB8, 0x0005C4E8 + .word 0x0005C4E8, 0x0005C530 + .word 0x0005C530, 0x0005DE60 + .word 0x0005DE60, 0x0005DEA8 + .word 0x0005DEA8, 0x0005F7D8 + .word 0x0005F7D8, 0x0005F820 + .word 0x0005F820, 0x00061150 + .word 0x00061150, 0x00061198 + .word 0x00061198, 0x00062AC8 + .word 0x00062AC8, 0x00062B10 + .word 0x00062B10, 0x00064440 + .word 0x00064440, 0x00064488 + .word 0x00064488, 0x00065DB8 + .word 0x00065DB8, 0x00065E00 + .word 0x00065E00, 0x00067730 + .word 0x00067730, 0x00067778 + .word 0x00067778, 0x000690A8 + .word 0x000690A8, 0x000690F0 + .word 0x000690F0, 0x0006AA20 + .word 0x0006AA20, 0x0006AA68 + .word 0x0006AA68, 0x0006C398 + .word 0x0006C398, 0x0006C3E0 + .word 0x0006C3E0, 0x0006DD10 + .word 0x0006DD10, 0x0006DD58 + .word 0x0006DD58, 0x0006F688 + .word 0x0006F688, 0x0006F6D0 + .word 0x0006F6D0, 0x00071000 + .word 0x00071000, 0x00071048 + .word 0x00071048, 0x00072978 + .word 0x00072978, 0x000729C0 + .word 0x000729C0, 0x000742F0 + .word 0x000742F0, 0x00074338 + .word 0x00074338, 0x00075C68 + .word 0x00075C68, 0x00075CB0 + .word 0x00075CB0, 0x000775E0 + .word 0x000775E0, 0x00077628 + .word 0x00077628, 0x00078F58 + .word 0x00078F58, 0x00078FA0 + .word 0x00078FA0, 0x0007A8D0 + .word 0x0007A8D0, 0x0007A918 + .word 0x0007A918, 0x0007C248 + .word 0x0007C248, 0x0007C290 + .word 0x0007C290, 0x0007DBC0 + .word 0x0007DBC0, 0x0007DC08 + .word 0x0007DC08, 0x0007F538 + .word 0x0007F538, 0x0007F580 + .word 0x0007F580, 0x00080EB0 + .word 0x00080EB0, 0x00080EF8 + .word 0x00080EF8, 0x00082828 + .word 0x00082828, 0x00082870 + .word 0x00082870, 0x000841A0 + .word 0x000841A0, 0x000841E8 + .word 0x000841E8, 0x00085B18 + .word 0x00085B18, 0x00085B60 + .word 0x00085B60, 0x00087490 + .word 0x00087490, 0x000874D8 + .word 0x000874D8, 0x00088E08 + .word 0x00088E08, 0x00088E50 + .word 0x00088E50, 0x0008A780 + .word 0x0008A780, 0x0008A7C8 + .word 0x0008A7C8, 0x0008C0F8 + .word 0x0008C0F8, 0x0008C140 + .word 0x0008C140, 0x0008DA70 + .word 0x0008DA70, 0x0008DAB8 + .word 0x0008DAB8, 0x0008F3E8 + .word 0x0008F3E8, 0x0008F430 + .word 0x0008F430, 0x00090D60 + .word 0x00090D60, 0x00090DA8 + .word 0x00090DA8, 0x000926D8 + .word 0x000926D8, 0x00092720 + .word 0x00092720, 0x00094050 + .word 0x00094050, 0x00094098 + .word 0x00094098, 0x000959C8 + .word 0x000959C8, 0x00095A10 + .word 0x00095A10, 0x00097340 + .word 0x00097340, 0x00097388 + .word 0x00097388, 0x00098CB8 + .word 0x00098CB8, 0x00098D00 + .word 0x00098D00, 0x0009A630 + .word 0x0009A630, 0x0009A678 + .word 0x0009A678, 0x0009BFA8 + .word 0x0009BFA8, 0x0009BFF0 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x0009BFF8 ; chunk size + .incbin "baserom.nds", 0x0, 0x1930 + .incbin "baserom.nds", 0x1930, 0x48 + .incbin "baserom.nds", 0x1978, 0x1930 + .incbin "baserom.nds", 0x32A8, 0x48 + .incbin "baserom.nds", 0x32F0, 0x1930 + .incbin "baserom.nds", 0x4C20, 0x48 + .incbin "baserom.nds", 0x4C68, 0x1930 + .incbin "baserom.nds", 0x6598, 0x48 + .incbin "baserom.nds", 0x65E0, 0x1930 + .incbin "baserom.nds", 0x7F10, 0x48 + .incbin "baserom.nds", 0x7F58, 0x1930 + .incbin "baserom.nds", 0x9888, 0x48 + .incbin "baserom.nds", 0x98D0, 0x1930 + .incbin "baserom.nds", 0xB200, 0x48 + .incbin "baserom.nds", 0xB248, 0x1930 + .incbin "baserom.nds", 0xCB78, 0x48 + .incbin "baserom.nds", 0xCBC0, 0x1930 + .incbin "baserom.nds", 0xE4F0, 0x48 + .incbin "baserom.nds", 0xE538, 0x1930 + .incbin "baserom.nds", 0xFE68, 0x48 + .incbin "baserom.nds", 0xFEB0, 0x1930 + .incbin "baserom.nds", 0x117E0, 0x48 + .incbin "baserom.nds", 0x11828, 0x1930 + .incbin "baserom.nds", 0x13158, 0x48 + .incbin "baserom.nds", 0x131A0, 0x1930 + .incbin "baserom.nds", 0x14AD0, 0x48 + .incbin "baserom.nds", 0x14B18, 0x1930 + .incbin "baserom.nds", 0x16448, 0x48 + .incbin "baserom.nds", 0x16490, 0x1930 + .incbin "baserom.nds", 0x17DC0, 0x48 + .incbin "baserom.nds", 0x17E08, 0x1930 + .incbin "baserom.nds", 0x19738, 0x48 + .incbin "baserom.nds", 0x19780, 0x1930 + .incbin "baserom.nds", 0x1B0B0, 0x48 + .incbin "baserom.nds", 0x1B0F8, 0x1930 + .incbin "baserom.nds", 0x1CA28, 0x48 + .incbin "baserom.nds", 0x1CA70, 0x1930 + .incbin "baserom.nds", 0x1E3A0, 0x48 + .incbin "baserom.nds", 0x1E3E8, 0x1930 + .incbin "baserom.nds", 0x1FD18, 0x48 + .incbin "baserom.nds", 0x1FD60, 0x1930 + .incbin "baserom.nds", 0x21690, 0x48 + .incbin "baserom.nds", 0x216D8, 0x1930 + .incbin "baserom.nds", 0x23008, 0x48 + .incbin "baserom.nds", 0x23050, 0x1930 + .incbin "baserom.nds", 0x24980, 0x48 + .incbin "baserom.nds", 0x249C8, 0x1930 + .incbin "baserom.nds", 0x262F8, 0x48 + .incbin "baserom.nds", 0x26340, 0x1930 + .incbin "baserom.nds", 0x27C70, 0x48 + .incbin "baserom.nds", 0x27CB8, 0x1930 + .incbin "baserom.nds", 0x295E8, 0x48 + .incbin "baserom.nds", 0x29630, 0x1930 + .incbin "baserom.nds", 0x2AF60, 0x48 + .incbin "baserom.nds", 0x2AFA8, 0x1930 + .incbin "baserom.nds", 0x2C8D8, 0x48 + .incbin "baserom.nds", 0x2C920, 0x1930 + .incbin "baserom.nds", 0x2E250, 0x48 + .incbin "baserom.nds", 0x2E298, 0x1930 + .incbin "baserom.nds", 0x2FBC8, 0x48 + .incbin "baserom.nds", 0x2FC10, 0x1930 + .incbin "baserom.nds", 0x31540, 0x48 + .incbin "baserom.nds", 0x31588, 0x1930 + .incbin "baserom.nds", 0x32EB8, 0x48 + .incbin "baserom.nds", 0x32F00, 0x1930 + .incbin "baserom.nds", 0x34830, 0x48 + .incbin "baserom.nds", 0x34878, 0x1930 + .incbin "baserom.nds", 0x361A8, 0x48 + .incbin "baserom.nds", 0x361F0, 0x1930 + .incbin "baserom.nds", 0x37B20, 0x48 + .incbin "baserom.nds", 0x37B68, 0x1930 + .incbin "baserom.nds", 0x39498, 0x48 + .incbin "baserom.nds", 0x394E0, 0x1930 + .incbin "baserom.nds", 0x3AE10, 0x48 + .incbin "baserom.nds", 0x3AE58, 0x1930 + .incbin "baserom.nds", 0x3C788, 0x48 + .incbin "baserom.nds", 0x3C7D0, 0x1930 + .incbin "baserom.nds", 0x3E100, 0x48 + .incbin "baserom.nds", 0x3E148, 0x1930 + .incbin "baserom.nds", 0x3FA78, 0x48 + .incbin "baserom.nds", 0x3FAC0, 0x1930 + .incbin "baserom.nds", 0x413F0, 0x48 + .incbin "baserom.nds", 0x41438, 0x1930 + .incbin "baserom.nds", 0x42D68, 0x48 + .incbin "baserom.nds", 0x42DB0, 0x1930 + .incbin "baserom.nds", 0x446E0, 0x48 + .incbin "baserom.nds", 0x44728, 0x1930 + .incbin "baserom.nds", 0x46058, 0x48 + .incbin "baserom.nds", 0x460A0, 0x1930 + .incbin "baserom.nds", 0x479D0, 0x48 + .incbin "baserom.nds", 0x47A18, 0x1930 + .incbin "baserom.nds", 0x49348, 0x48 + .incbin "baserom.nds", 0x49390, 0x1930 + .incbin "baserom.nds", 0x4ACC0, 0x48 + .incbin "baserom.nds", 0x4AD08, 0x1930 + .incbin "baserom.nds", 0x4C638, 0x48 + .incbin "baserom.nds", 0x4C680, 0x1930 + .incbin "baserom.nds", 0x4DFB0, 0x48 + .incbin "baserom.nds", 0x4DFF8, 0x1930 + .incbin "baserom.nds", 0x4F928, 0x48 + .incbin "baserom.nds", 0x4F970, 0x1930 + .incbin "baserom.nds", 0x512A0, 0x48 + .incbin "baserom.nds", 0x512E8, 0x1930 + .incbin "baserom.nds", 0x52C18, 0x48 + .incbin "baserom.nds", 0x52C60, 0x1930 + .incbin "baserom.nds", 0x54590, 0x48 + .incbin "baserom.nds", 0x545D8, 0x1930 + .incbin "baserom.nds", 0x55F08, 0x48 + .incbin "baserom.nds", 0x55F50, 0x1930 + .incbin "baserom.nds", 0x57880, 0x48 + .incbin "baserom.nds", 0x578C8, 0x1930 + .incbin "baserom.nds", 0x591F8, 0x48 + .incbin "baserom.nds", 0x59240, 0x1930 + .incbin "baserom.nds", 0x5AB70, 0x48 + .incbin "baserom.nds", 0x5ABB8, 0x1930 + .incbin "baserom.nds", 0x5C4E8, 0x48 + .incbin "baserom.nds", 0x5C530, 0x1930 + .incbin "baserom.nds", 0x5DE60, 0x48 + .incbin "baserom.nds", 0x5DEA8, 0x1930 + .incbin "baserom.nds", 0x5F7D8, 0x48 + .incbin "baserom.nds", 0x5F820, 0x1930 + .incbin "baserom.nds", 0x61150, 0x48 + .incbin "baserom.nds", 0x61198, 0x1930 + .incbin "baserom.nds", 0x62AC8, 0x48 + .incbin "baserom.nds", 0x62B10, 0x1930 + .incbin "baserom.nds", 0x64440, 0x48 + .incbin "baserom.nds", 0x64488, 0x1930 + .incbin "baserom.nds", 0x65DB8, 0x48 + .incbin "baserom.nds", 0x65E00, 0x1930 + .incbin "baserom.nds", 0x67730, 0x48 + .incbin "baserom.nds", 0x67778, 0x1930 + .incbin "baserom.nds", 0x690A8, 0x48 + .incbin "baserom.nds", 0x690F0, 0x1930 + .incbin "baserom.nds", 0x6AA20, 0x48 + .incbin "baserom.nds", 0x6AA68, 0x1930 + .incbin "baserom.nds", 0x6C398, 0x48 + .incbin "baserom.nds", 0x6C3E0, 0x1930 + .incbin "baserom.nds", 0x6DD10, 0x48 + .incbin "baserom.nds", 0x6DD58, 0x1930 + .incbin "baserom.nds", 0x6F688, 0x48 + .incbin "baserom.nds", 0x6F6D0, 0x1930 + .incbin "baserom.nds", 0x71000, 0x48 + .incbin "baserom.nds", 0x71048, 0x1930 + .incbin "baserom.nds", 0x72978, 0x48 + .incbin "baserom.nds", 0x729C0, 0x1930 + .incbin "baserom.nds", 0x742F0, 0x48 + .incbin "baserom.nds", 0x74338, 0x1930 + .incbin "baserom.nds", 0x75C68, 0x48 + .incbin "baserom.nds", 0x75CB0, 0x1930 + .incbin "baserom.nds", 0x775E0, 0x48 + .incbin "baserom.nds", 0x77628, 0x1930 + .incbin "baserom.nds", 0x78F58, 0x48 + .incbin "baserom.nds", 0x78FA0, 0x1930 + .incbin "baserom.nds", 0x7A8D0, 0x48 + .incbin "baserom.nds", 0x7A918, 0x1930 + .incbin "baserom.nds", 0x7C248, 0x48 + .incbin "baserom.nds", 0x7C290, 0x1930 + .incbin "baserom.nds", 0x7DBC0, 0x48 + .incbin "baserom.nds", 0x7DC08, 0x1930 + .incbin "baserom.nds", 0x7F538, 0x48 + .incbin "baserom.nds", 0x7F580, 0x1930 + .incbin "baserom.nds", 0x80EB0, 0x48 + .incbin "baserom.nds", 0x80EF8, 0x1930 + .incbin "baserom.nds", 0x82828, 0x48 + .incbin "baserom.nds", 0x82870, 0x1930 + .incbin "baserom.nds", 0x841A0, 0x48 + .incbin "baserom.nds", 0x841E8, 0x1930 + .incbin "baserom.nds", 0x85B18, 0x48 + .incbin "baserom.nds", 0x85B60, 0x1930 + .incbin "baserom.nds", 0x87490, 0x48 + .incbin "baserom.nds", 0x874D8, 0x1930 + .incbin "baserom.nds", 0x88E08, 0x48 + .incbin "baserom.nds", 0x88E50, 0x1930 + .incbin "baserom.nds", 0x8A780, 0x48 + .incbin "baserom.nds", 0x8A7C8, 0x1930 + .incbin "baserom.nds", 0x8C0F8, 0x48 + .incbin "baserom.nds", 0x8C140, 0x1930 + .incbin "baserom.nds", 0x8DA70, 0x48 + .incbin "baserom.nds", 0x8DAB8, 0x1930 + .incbin "baserom.nds", 0x8F3E8, 0x48 + .incbin "baserom.nds", 0x8F430, 0x1930 + .incbin "baserom.nds", 0x90D60, 0x48 + .incbin "baserom.nds", 0x90DA8, 0x1930 + .incbin "baserom.nds", 0x926D8, 0x48 + .incbin "baserom.nds", 0x92720, 0x1930 + .incbin "baserom.nds", 0x94050, 0x48 + .incbin "baserom.nds", 0x94098, 0x1930 + .incbin "baserom.nds", 0x959C8, 0x48 + .incbin "baserom.nds", 0x95A10, 0x1930 + .incbin "baserom.nds", 0x97340, 0x48 + .incbin "baserom.nds", 0x97388, 0x1930 + .incbin "baserom.nds", 0x98CB8, 0x48 + .incbin "baserom.nds", 0x98D00, 0x1930 + .incbin "baserom.nds", 0x9A630, 0x48 + .incbin "baserom.nds", 0x9A678, 0x1930 + .incbin "baserom.nds", 0x9BFA8, 0x48 + .balign 4, 255 diff --git a/narc/trmsg/trtbl.narc.s b/narc/trmsg/trtbl.narc.s new file mode 100644 index 00000000..8965d426 --- /dev/null +++ b/narc/trmsg/trtbl.narc.s @@ -0,0 +1,28 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00002584 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000014 ; chunk size + .short 1 ; number of files + .balign 4 + .word 0x00000000, 0x00002548 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00002550 ; chunk size + .incbin "baserom.nds", 0x0, 0x2548 + .balign 4, 255 diff --git a/narc/trmsg/trtblofs.narc.s b/narc/trmsg/trtblofs.narc.s new file mode 100644 index 00000000..56c82b98 --- /dev/null +++ b/narc/trmsg/trtblofs.narc.s @@ -0,0 +1,28 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x000006E0 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000014 ; chunk size + .short 1 ; number of files + .balign 4 + .word 0x00000000, 0x000006A4 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x000006AC ; chunk size + .incbin "baserom.nds", 0x0, 0x6A4 + .balign 4, 255 diff --git a/narc/waza/waza_tbl.narc.s b/narc/waza/waza_tbl.narc.s new file mode 100644 index 00000000..6d8fd35a --- /dev/null +++ b/narc/waza/waza_tbl.narc.s @@ -0,0 +1,968 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00002C5C ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x00000EC4 ; chunk size + .short 471 ; number of files + .balign 4 + .word 0x00000000, 0x00000010 + .word 0x00000010, 0x00000020 + .word 0x00000020, 0x00000030 + .word 0x00000030, 0x00000040 + .word 0x00000040, 0x00000050 + .word 0x00000050, 0x00000060 + .word 0x00000060, 0x00000070 + .word 0x00000070, 0x00000080 + .word 0x00000080, 0x00000090 + .word 0x00000090, 0x000000A0 + .word 0x000000A0, 0x000000B0 + .word 0x000000B0, 0x000000C0 + .word 0x000000C0, 0x000000D0 + .word 0x000000D0, 0x000000E0 + .word 0x000000E0, 0x000000F0 + .word 0x000000F0, 0x00000100 + .word 0x00000100, 0x00000110 + .word 0x00000110, 0x00000120 + .word 0x00000120, 0x00000130 + .word 0x00000130, 0x00000140 + .word 0x00000140, 0x00000150 + .word 0x00000150, 0x00000160 + .word 0x00000160, 0x00000170 + .word 0x00000170, 0x00000180 + .word 0x00000180, 0x00000190 + .word 0x00000190, 0x000001A0 + .word 0x000001A0, 0x000001B0 + .word 0x000001B0, 0x000001C0 + .word 0x000001C0, 0x000001D0 + .word 0x000001D0, 0x000001E0 + .word 0x000001E0, 0x000001F0 + .word 0x000001F0, 0x00000200 + .word 0x00000200, 0x00000210 + .word 0x00000210, 0x00000220 + .word 0x00000220, 0x00000230 + .word 0x00000230, 0x00000240 + .word 0x00000240, 0x00000250 + .word 0x00000250, 0x00000260 + .word 0x00000260, 0x00000270 + .word 0x00000270, 0x00000280 + .word 0x00000280, 0x00000290 + .word 0x00000290, 0x000002A0 + .word 0x000002A0, 0x000002B0 + .word 0x000002B0, 0x000002C0 + .word 0x000002C0, 0x000002D0 + .word 0x000002D0, 0x000002E0 + .word 0x000002E0, 0x000002F0 + .word 0x000002F0, 0x00000300 + .word 0x00000300, 0x00000310 + .word 0x00000310, 0x00000320 + .word 0x00000320, 0x00000330 + .word 0x00000330, 0x00000340 + .word 0x00000340, 0x00000350 + .word 0x00000350, 0x00000360 + .word 0x00000360, 0x00000370 + .word 0x00000370, 0x00000380 + .word 0x00000380, 0x00000390 + .word 0x00000390, 0x000003A0 + .word 0x000003A0, 0x000003B0 + .word 0x000003B0, 0x000003C0 + .word 0x000003C0, 0x000003D0 + .word 0x000003D0, 0x000003E0 + .word 0x000003E0, 0x000003F0 + .word 0x000003F0, 0x00000400 + .word 0x00000400, 0x00000410 + .word 0x00000410, 0x00000420 + .word 0x00000420, 0x00000430 + .word 0x00000430, 0x00000440 + .word 0x00000440, 0x00000450 + .word 0x00000450, 0x00000460 + .word 0x00000460, 0x00000470 + .word 0x00000470, 0x00000480 + .word 0x00000480, 0x00000490 + .word 0x00000490, 0x000004A0 + .word 0x000004A0, 0x000004B0 + .word 0x000004B0, 0x000004C0 + .word 0x000004C0, 0x000004D0 + .word 0x000004D0, 0x000004E0 + .word 0x000004E0, 0x000004F0 + .word 0x000004F0, 0x00000500 + .word 0x00000500, 0x00000510 + .word 0x00000510, 0x00000520 + .word 0x00000520, 0x00000530 + .word 0x00000530, 0x00000540 + .word 0x00000540, 0x00000550 + .word 0x00000550, 0x00000560 + .word 0x00000560, 0x00000570 + .word 0x00000570, 0x00000580 + .word 0x00000580, 0x00000590 + .word 0x00000590, 0x000005A0 + .word 0x000005A0, 0x000005B0 + .word 0x000005B0, 0x000005C0 + .word 0x000005C0, 0x000005D0 + .word 0x000005D0, 0x000005E0 + .word 0x000005E0, 0x000005F0 + .word 0x000005F0, 0x00000600 + .word 0x00000600, 0x00000610 + .word 0x00000610, 0x00000620 + .word 0x00000620, 0x00000630 + .word 0x00000630, 0x00000640 + .word 0x00000640, 0x00000650 + .word 0x00000650, 0x00000660 + .word 0x00000660, 0x00000670 + .word 0x00000670, 0x00000680 + .word 0x00000680, 0x00000690 + .word 0x00000690, 0x000006A0 + .word 0x000006A0, 0x000006B0 + .word 0x000006B0, 0x000006C0 + .word 0x000006C0, 0x000006D0 + .word 0x000006D0, 0x000006E0 + .word 0x000006E0, 0x000006F0 + .word 0x000006F0, 0x00000700 + .word 0x00000700, 0x00000710 + .word 0x00000710, 0x00000720 + .word 0x00000720, 0x00000730 + .word 0x00000730, 0x00000740 + .word 0x00000740, 0x00000750 + .word 0x00000750, 0x00000760 + .word 0x00000760, 0x00000770 + .word 0x00000770, 0x00000780 + .word 0x00000780, 0x00000790 + .word 0x00000790, 0x000007A0 + .word 0x000007A0, 0x000007B0 + .word 0x000007B0, 0x000007C0 + .word 0x000007C0, 0x000007D0 + .word 0x000007D0, 0x000007E0 + .word 0x000007E0, 0x000007F0 + .word 0x000007F0, 0x00000800 + .word 0x00000800, 0x00000810 + .word 0x00000810, 0x00000820 + .word 0x00000820, 0x00000830 + .word 0x00000830, 0x00000840 + .word 0x00000840, 0x00000850 + .word 0x00000850, 0x00000860 + .word 0x00000860, 0x00000870 + .word 0x00000870, 0x00000880 + .word 0x00000880, 0x00000890 + .word 0x00000890, 0x000008A0 + .word 0x000008A0, 0x000008B0 + .word 0x000008B0, 0x000008C0 + .word 0x000008C0, 0x000008D0 + .word 0x000008D0, 0x000008E0 + .word 0x000008E0, 0x000008F0 + .word 0x000008F0, 0x00000900 + .word 0x00000900, 0x00000910 + .word 0x00000910, 0x00000920 + .word 0x00000920, 0x00000930 + .word 0x00000930, 0x00000940 + .word 0x00000940, 0x00000950 + .word 0x00000950, 0x00000960 + .word 0x00000960, 0x00000970 + .word 0x00000970, 0x00000980 + .word 0x00000980, 0x00000990 + .word 0x00000990, 0x000009A0 + .word 0x000009A0, 0x000009B0 + .word 0x000009B0, 0x000009C0 + .word 0x000009C0, 0x000009D0 + .word 0x000009D0, 0x000009E0 + .word 0x000009E0, 0x000009F0 + .word 0x000009F0, 0x00000A00 + .word 0x00000A00, 0x00000A10 + .word 0x00000A10, 0x00000A20 + .word 0x00000A20, 0x00000A30 + .word 0x00000A30, 0x00000A40 + .word 0x00000A40, 0x00000A50 + .word 0x00000A50, 0x00000A60 + .word 0x00000A60, 0x00000A70 + .word 0x00000A70, 0x00000A80 + .word 0x00000A80, 0x00000A90 + .word 0x00000A90, 0x00000AA0 + .word 0x00000AA0, 0x00000AB0 + .word 0x00000AB0, 0x00000AC0 + .word 0x00000AC0, 0x00000AD0 + .word 0x00000AD0, 0x00000AE0 + .word 0x00000AE0, 0x00000AF0 + .word 0x00000AF0, 0x00000B00 + .word 0x00000B00, 0x00000B10 + .word 0x00000B10, 0x00000B20 + .word 0x00000B20, 0x00000B30 + .word 0x00000B30, 0x00000B40 + .word 0x00000B40, 0x00000B50 + .word 0x00000B50, 0x00000B60 + .word 0x00000B60, 0x00000B70 + .word 0x00000B70, 0x00000B80 + .word 0x00000B80, 0x00000B90 + .word 0x00000B90, 0x00000BA0 + .word 0x00000BA0, 0x00000BB0 + .word 0x00000BB0, 0x00000BC0 + .word 0x00000BC0, 0x00000BD0 + .word 0x00000BD0, 0x00000BE0 + .word 0x00000BE0, 0x00000BF0 + .word 0x00000BF0, 0x00000C00 + .word 0x00000C00, 0x00000C10 + .word 0x00000C10, 0x00000C20 + .word 0x00000C20, 0x00000C30 + .word 0x00000C30, 0x00000C40 + .word 0x00000C40, 0x00000C50 + .word 0x00000C50, 0x00000C60 + .word 0x00000C60, 0x00000C70 + .word 0x00000C70, 0x00000C80 + .word 0x00000C80, 0x00000C90 + .word 0x00000C90, 0x00000CA0 + .word 0x00000CA0, 0x00000CB0 + .word 0x00000CB0, 0x00000CC0 + .word 0x00000CC0, 0x00000CD0 + .word 0x00000CD0, 0x00000CE0 + .word 0x00000CE0, 0x00000CF0 + .word 0x00000CF0, 0x00000D00 + .word 0x00000D00, 0x00000D10 + .word 0x00000D10, 0x00000D20 + .word 0x00000D20, 0x00000D30 + .word 0x00000D30, 0x00000D40 + .word 0x00000D40, 0x00000D50 + .word 0x00000D50, 0x00000D60 + .word 0x00000D60, 0x00000D70 + .word 0x00000D70, 0x00000D80 + .word 0x00000D80, 0x00000D90 + .word 0x00000D90, 0x00000DA0 + .word 0x00000DA0, 0x00000DB0 + .word 0x00000DB0, 0x00000DC0 + .word 0x00000DC0, 0x00000DD0 + .word 0x00000DD0, 0x00000DE0 + .word 0x00000DE0, 0x00000DF0 + .word 0x00000DF0, 0x00000E00 + .word 0x00000E00, 0x00000E10 + .word 0x00000E10, 0x00000E20 + .word 0x00000E20, 0x00000E30 + .word 0x00000E30, 0x00000E40 + .word 0x00000E40, 0x00000E50 + .word 0x00000E50, 0x00000E60 + .word 0x00000E60, 0x00000E70 + .word 0x00000E70, 0x00000E80 + .word 0x00000E80, 0x00000E90 + .word 0x00000E90, 0x00000EA0 + .word 0x00000EA0, 0x00000EB0 + .word 0x00000EB0, 0x00000EC0 + .word 0x00000EC0, 0x00000ED0 + .word 0x00000ED0, 0x00000EE0 + .word 0x00000EE0, 0x00000EF0 + .word 0x00000EF0, 0x00000F00 + .word 0x00000F00, 0x00000F10 + .word 0x00000F10, 0x00000F20 + .word 0x00000F20, 0x00000F30 + .word 0x00000F30, 0x00000F40 + .word 0x00000F40, 0x00000F50 + .word 0x00000F50, 0x00000F60 + .word 0x00000F60, 0x00000F70 + .word 0x00000F70, 0x00000F80 + .word 0x00000F80, 0x00000F90 + .word 0x00000F90, 0x00000FA0 + .word 0x00000FA0, 0x00000FB0 + .word 0x00000FB0, 0x00000FC0 + .word 0x00000FC0, 0x00000FD0 + .word 0x00000FD0, 0x00000FE0 + .word 0x00000FE0, 0x00000FF0 + .word 0x00000FF0, 0x00001000 + .word 0x00001000, 0x00001010 + .word 0x00001010, 0x00001020 + .word 0x00001020, 0x00001030 + .word 0x00001030, 0x00001040 + .word 0x00001040, 0x00001050 + .word 0x00001050, 0x00001060 + .word 0x00001060, 0x00001070 + .word 0x00001070, 0x00001080 + .word 0x00001080, 0x00001090 + .word 0x00001090, 0x000010A0 + .word 0x000010A0, 0x000010B0 + .word 0x000010B0, 0x000010C0 + .word 0x000010C0, 0x000010D0 + .word 0x000010D0, 0x000010E0 + .word 0x000010E0, 0x000010F0 + .word 0x000010F0, 0x00001100 + .word 0x00001100, 0x00001110 + .word 0x00001110, 0x00001120 + .word 0x00001120, 0x00001130 + .word 0x00001130, 0x00001140 + .word 0x00001140, 0x00001150 + .word 0x00001150, 0x00001160 + .word 0x00001160, 0x00001170 + .word 0x00001170, 0x00001180 + .word 0x00001180, 0x00001190 + .word 0x00001190, 0x000011A0 + .word 0x000011A0, 0x000011B0 + .word 0x000011B0, 0x000011C0 + .word 0x000011C0, 0x000011D0 + .word 0x000011D0, 0x000011E0 + .word 0x000011E0, 0x000011F0 + .word 0x000011F0, 0x00001200 + .word 0x00001200, 0x00001210 + .word 0x00001210, 0x00001220 + .word 0x00001220, 0x00001230 + .word 0x00001230, 0x00001240 + .word 0x00001240, 0x00001250 + .word 0x00001250, 0x00001260 + .word 0x00001260, 0x00001270 + .word 0x00001270, 0x00001280 + .word 0x00001280, 0x00001290 + .word 0x00001290, 0x000012A0 + .word 0x000012A0, 0x000012B0 + .word 0x000012B0, 0x000012C0 + .word 0x000012C0, 0x000012D0 + .word 0x000012D0, 0x000012E0 + .word 0x000012E0, 0x000012F0 + .word 0x000012F0, 0x00001300 + .word 0x00001300, 0x00001310 + .word 0x00001310, 0x00001320 + .word 0x00001320, 0x00001330 + .word 0x00001330, 0x00001340 + .word 0x00001340, 0x00001350 + .word 0x00001350, 0x00001360 + .word 0x00001360, 0x00001370 + .word 0x00001370, 0x00001380 + .word 0x00001380, 0x00001390 + .word 0x00001390, 0x000013A0 + .word 0x000013A0, 0x000013B0 + .word 0x000013B0, 0x000013C0 + .word 0x000013C0, 0x000013D0 + .word 0x000013D0, 0x000013E0 + .word 0x000013E0, 0x000013F0 + .word 0x000013F0, 0x00001400 + .word 0x00001400, 0x00001410 + .word 0x00001410, 0x00001420 + .word 0x00001420, 0x00001430 + .word 0x00001430, 0x00001440 + .word 0x00001440, 0x00001450 + .word 0x00001450, 0x00001460 + .word 0x00001460, 0x00001470 + .word 0x00001470, 0x00001480 + .word 0x00001480, 0x00001490 + .word 0x00001490, 0x000014A0 + .word 0x000014A0, 0x000014B0 + .word 0x000014B0, 0x000014C0 + .word 0x000014C0, 0x000014D0 + .word 0x000014D0, 0x000014E0 + .word 0x000014E0, 0x000014F0 + .word 0x000014F0, 0x00001500 + .word 0x00001500, 0x00001510 + .word 0x00001510, 0x00001520 + .word 0x00001520, 0x00001530 + .word 0x00001530, 0x00001540 + .word 0x00001540, 0x00001550 + .word 0x00001550, 0x00001560 + .word 0x00001560, 0x00001570 + .word 0x00001570, 0x00001580 + .word 0x00001580, 0x00001590 + .word 0x00001590, 0x000015A0 + .word 0x000015A0, 0x000015B0 + .word 0x000015B0, 0x000015C0 + .word 0x000015C0, 0x000015D0 + .word 0x000015D0, 0x000015E0 + .word 0x000015E0, 0x000015F0 + .word 0x000015F0, 0x00001600 + .word 0x00001600, 0x00001610 + .word 0x00001610, 0x00001620 + .word 0x00001620, 0x00001630 + .word 0x00001630, 0x00001640 + .word 0x00001640, 0x00001650 + .word 0x00001650, 0x00001660 + .word 0x00001660, 0x00001670 + .word 0x00001670, 0x00001680 + .word 0x00001680, 0x00001690 + .word 0x00001690, 0x000016A0 + .word 0x000016A0, 0x000016B0 + .word 0x000016B0, 0x000016C0 + .word 0x000016C0, 0x000016D0 + .word 0x000016D0, 0x000016E0 + .word 0x000016E0, 0x000016F0 + .word 0x000016F0, 0x00001700 + .word 0x00001700, 0x00001710 + .word 0x00001710, 0x00001720 + .word 0x00001720, 0x00001730 + .word 0x00001730, 0x00001740 + .word 0x00001740, 0x00001750 + .word 0x00001750, 0x00001760 + .word 0x00001760, 0x00001770 + .word 0x00001770, 0x00001780 + .word 0x00001780, 0x00001790 + .word 0x00001790, 0x000017A0 + .word 0x000017A0, 0x000017B0 + .word 0x000017B0, 0x000017C0 + .word 0x000017C0, 0x000017D0 + .word 0x000017D0, 0x000017E0 + .word 0x000017E0, 0x000017F0 + .word 0x000017F0, 0x00001800 + .word 0x00001800, 0x00001810 + .word 0x00001810, 0x00001820 + .word 0x00001820, 0x00001830 + .word 0x00001830, 0x00001840 + .word 0x00001840, 0x00001850 + .word 0x00001850, 0x00001860 + .word 0x00001860, 0x00001870 + .word 0x00001870, 0x00001880 + .word 0x00001880, 0x00001890 + .word 0x00001890, 0x000018A0 + .word 0x000018A0, 0x000018B0 + .word 0x000018B0, 0x000018C0 + .word 0x000018C0, 0x000018D0 + .word 0x000018D0, 0x000018E0 + .word 0x000018E0, 0x000018F0 + .word 0x000018F0, 0x00001900 + .word 0x00001900, 0x00001910 + .word 0x00001910, 0x00001920 + .word 0x00001920, 0x00001930 + .word 0x00001930, 0x00001940 + .word 0x00001940, 0x00001950 + .word 0x00001950, 0x00001960 + .word 0x00001960, 0x00001970 + .word 0x00001970, 0x00001980 + .word 0x00001980, 0x00001990 + .word 0x00001990, 0x000019A0 + .word 0x000019A0, 0x000019B0 + .word 0x000019B0, 0x000019C0 + .word 0x000019C0, 0x000019D0 + .word 0x000019D0, 0x000019E0 + .word 0x000019E0, 0x000019F0 + .word 0x000019F0, 0x00001A00 + .word 0x00001A00, 0x00001A10 + .word 0x00001A10, 0x00001A20 + .word 0x00001A20, 0x00001A30 + .word 0x00001A30, 0x00001A40 + .word 0x00001A40, 0x00001A50 + .word 0x00001A50, 0x00001A60 + .word 0x00001A60, 0x00001A70 + .word 0x00001A70, 0x00001A80 + .word 0x00001A80, 0x00001A90 + .word 0x00001A90, 0x00001AA0 + .word 0x00001AA0, 0x00001AB0 + .word 0x00001AB0, 0x00001AC0 + .word 0x00001AC0, 0x00001AD0 + .word 0x00001AD0, 0x00001AE0 + .word 0x00001AE0, 0x00001AF0 + .word 0x00001AF0, 0x00001B00 + .word 0x00001B00, 0x00001B10 + .word 0x00001B10, 0x00001B20 + .word 0x00001B20, 0x00001B30 + .word 0x00001B30, 0x00001B40 + .word 0x00001B40, 0x00001B50 + .word 0x00001B50, 0x00001B60 + .word 0x00001B60, 0x00001B70 + .word 0x00001B70, 0x00001B80 + .word 0x00001B80, 0x00001B90 + .word 0x00001B90, 0x00001BA0 + .word 0x00001BA0, 0x00001BB0 + .word 0x00001BB0, 0x00001BC0 + .word 0x00001BC0, 0x00001BD0 + .word 0x00001BD0, 0x00001BE0 + .word 0x00001BE0, 0x00001BF0 + .word 0x00001BF0, 0x00001C00 + .word 0x00001C00, 0x00001C10 + .word 0x00001C10, 0x00001C20 + .word 0x00001C20, 0x00001C30 + .word 0x00001C30, 0x00001C40 + .word 0x00001C40, 0x00001C50 + .word 0x00001C50, 0x00001C60 + .word 0x00001C60, 0x00001C70 + .word 0x00001C70, 0x00001C80 + .word 0x00001C80, 0x00001C90 + .word 0x00001C90, 0x00001CA0 + .word 0x00001CA0, 0x00001CB0 + .word 0x00001CB0, 0x00001CC0 + .word 0x00001CC0, 0x00001CD0 + .word 0x00001CD0, 0x00001CE0 + .word 0x00001CE0, 0x00001CF0 + .word 0x00001CF0, 0x00001D00 + .word 0x00001D00, 0x00001D10 + .word 0x00001D10, 0x00001D20 + .word 0x00001D20, 0x00001D30 + .word 0x00001D30, 0x00001D40 + .word 0x00001D40, 0x00001D50 + .word 0x00001D50, 0x00001D60 + .word 0x00001D60, 0x00001D70 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00001D78 ; chunk size + .incbin "baserom.nds", 0x0, 0x10 + .incbin "baserom.nds", 0x10, 0x10 + .incbin "baserom.nds", 0x20, 0x10 + .incbin "baserom.nds", 0x30, 0x10 + .incbin "baserom.nds", 0x40, 0x10 + .incbin "baserom.nds", 0x50, 0x10 + .incbin "baserom.nds", 0x60, 0x10 + .incbin "baserom.nds", 0x70, 0x10 + .incbin "baserom.nds", 0x80, 0x10 + .incbin "baserom.nds", 0x90, 0x10 + .incbin "baserom.nds", 0xA0, 0x10 + .incbin "baserom.nds", 0xB0, 0x10 + .incbin "baserom.nds", 0xC0, 0x10 + .incbin "baserom.nds", 0xD0, 0x10 + .incbin "baserom.nds", 0xE0, 0x10 + .incbin "baserom.nds", 0xF0, 0x10 + .incbin "baserom.nds", 0x100, 0x10 + .incbin "baserom.nds", 0x110, 0x10 + .incbin "baserom.nds", 0x120, 0x10 + .incbin "baserom.nds", 0x130, 0x10 + .incbin "baserom.nds", 0x140, 0x10 + .incbin "baserom.nds", 0x150, 0x10 + .incbin "baserom.nds", 0x160, 0x10 + .incbin "baserom.nds", 0x170, 0x10 + .incbin "baserom.nds", 0x180, 0x10 + .incbin "baserom.nds", 0x190, 0x10 + .incbin "baserom.nds", 0x1A0, 0x10 + .incbin "baserom.nds", 0x1B0, 0x10 + .incbin "baserom.nds", 0x1C0, 0x10 + .incbin "baserom.nds", 0x1D0, 0x10 + .incbin "baserom.nds", 0x1E0, 0x10 + .incbin "baserom.nds", 0x1F0, 0x10 + .incbin "baserom.nds", 0x200, 0x10 + .incbin "baserom.nds", 0x210, 0x10 + .incbin "baserom.nds", 0x220, 0x10 + .incbin "baserom.nds", 0x230, 0x10 + .incbin "baserom.nds", 0x240, 0x10 + .incbin "baserom.nds", 0x250, 0x10 + .incbin "baserom.nds", 0x260, 0x10 + .incbin "baserom.nds", 0x270, 0x10 + .incbin "baserom.nds", 0x280, 0x10 + .incbin "baserom.nds", 0x290, 0x10 + .incbin "baserom.nds", 0x2A0, 0x10 + .incbin "baserom.nds", 0x2B0, 0x10 + .incbin "baserom.nds", 0x2C0, 0x10 + .incbin "baserom.nds", 0x2D0, 0x10 + .incbin "baserom.nds", 0x2E0, 0x10 + .incbin "baserom.nds", 0x2F0, 0x10 + .incbin "baserom.nds", 0x300, 0x10 + .incbin "baserom.nds", 0x310, 0x10 + .incbin "baserom.nds", 0x320, 0x10 + .incbin "baserom.nds", 0x330, 0x10 + .incbin "baserom.nds", 0x340, 0x10 + .incbin "baserom.nds", 0x350, 0x10 + .incbin "baserom.nds", 0x360, 0x10 + .incbin "baserom.nds", 0x370, 0x10 + .incbin "baserom.nds", 0x380, 0x10 + .incbin "baserom.nds", 0x390, 0x10 + .incbin "baserom.nds", 0x3A0, 0x10 + .incbin "baserom.nds", 0x3B0, 0x10 + .incbin "baserom.nds", 0x3C0, 0x10 + .incbin "baserom.nds", 0x3D0, 0x10 + .incbin "baserom.nds", 0x3E0, 0x10 + .incbin "baserom.nds", 0x3F0, 0x10 + .incbin "baserom.nds", 0x400, 0x10 + .incbin "baserom.nds", 0x410, 0x10 + .incbin "baserom.nds", 0x420, 0x10 + .incbin "baserom.nds", 0x430, 0x10 + .incbin "baserom.nds", 0x440, 0x10 + .incbin "baserom.nds", 0x450, 0x10 + .incbin "baserom.nds", 0x460, 0x10 + .incbin "baserom.nds", 0x470, 0x10 + .incbin "baserom.nds", 0x480, 0x10 + .incbin "baserom.nds", 0x490, 0x10 + .incbin "baserom.nds", 0x4A0, 0x10 + .incbin "baserom.nds", 0x4B0, 0x10 + .incbin "baserom.nds", 0x4C0, 0x10 + .incbin "baserom.nds", 0x4D0, 0x10 + .incbin "baserom.nds", 0x4E0, 0x10 + .incbin "baserom.nds", 0x4F0, 0x10 + .incbin "baserom.nds", 0x500, 0x10 + .incbin "baserom.nds", 0x510, 0x10 + .incbin "baserom.nds", 0x520, 0x10 + .incbin "baserom.nds", 0x530, 0x10 + .incbin "baserom.nds", 0x540, 0x10 + .incbin "baserom.nds", 0x550, 0x10 + .incbin "baserom.nds", 0x560, 0x10 + .incbin "baserom.nds", 0x570, 0x10 + .incbin "baserom.nds", 0x580, 0x10 + .incbin "baserom.nds", 0x590, 0x10 + .incbin "baserom.nds", 0x5A0, 0x10 + .incbin "baserom.nds", 0x5B0, 0x10 + .incbin "baserom.nds", 0x5C0, 0x10 + .incbin "baserom.nds", 0x5D0, 0x10 + .incbin "baserom.nds", 0x5E0, 0x10 + .incbin "baserom.nds", 0x5F0, 0x10 + .incbin "baserom.nds", 0x600, 0x10 + .incbin "baserom.nds", 0x610, 0x10 + .incbin "baserom.nds", 0x620, 0x10 + .incbin "baserom.nds", 0x630, 0x10 + .incbin "baserom.nds", 0x640, 0x10 + .incbin "baserom.nds", 0x650, 0x10 + .incbin "baserom.nds", 0x660, 0x10 + .incbin "baserom.nds", 0x670, 0x10 + .incbin "baserom.nds", 0x680, 0x10 + .incbin "baserom.nds", 0x690, 0x10 + .incbin "baserom.nds", 0x6A0, 0x10 + .incbin "baserom.nds", 0x6B0, 0x10 + .incbin "baserom.nds", 0x6C0, 0x10 + .incbin "baserom.nds", 0x6D0, 0x10 + .incbin "baserom.nds", 0x6E0, 0x10 + .incbin "baserom.nds", 0x6F0, 0x10 + .incbin "baserom.nds", 0x700, 0x10 + .incbin "baserom.nds", 0x710, 0x10 + .incbin "baserom.nds", 0x720, 0x10 + .incbin "baserom.nds", 0x730, 0x10 + .incbin "baserom.nds", 0x740, 0x10 + .incbin "baserom.nds", 0x750, 0x10 + .incbin "baserom.nds", 0x760, 0x10 + .incbin "baserom.nds", 0x770, 0x10 + .incbin "baserom.nds", 0x780, 0x10 + .incbin "baserom.nds", 0x790, 0x10 + .incbin "baserom.nds", 0x7A0, 0x10 + .incbin "baserom.nds", 0x7B0, 0x10 + .incbin "baserom.nds", 0x7C0, 0x10 + .incbin "baserom.nds", 0x7D0, 0x10 + .incbin "baserom.nds", 0x7E0, 0x10 + .incbin "baserom.nds", 0x7F0, 0x10 + .incbin "baserom.nds", 0x800, 0x10 + .incbin "baserom.nds", 0x810, 0x10 + .incbin "baserom.nds", 0x820, 0x10 + .incbin "baserom.nds", 0x830, 0x10 + .incbin "baserom.nds", 0x840, 0x10 + .incbin "baserom.nds", 0x850, 0x10 + .incbin "baserom.nds", 0x860, 0x10 + .incbin "baserom.nds", 0x870, 0x10 + .incbin "baserom.nds", 0x880, 0x10 + .incbin "baserom.nds", 0x890, 0x10 + .incbin "baserom.nds", 0x8A0, 0x10 + .incbin "baserom.nds", 0x8B0, 0x10 + .incbin "baserom.nds", 0x8C0, 0x10 + .incbin "baserom.nds", 0x8D0, 0x10 + .incbin "baserom.nds", 0x8E0, 0x10 + .incbin "baserom.nds", 0x8F0, 0x10 + .incbin "baserom.nds", 0x900, 0x10 + .incbin "baserom.nds", 0x910, 0x10 + .incbin "baserom.nds", 0x920, 0x10 + .incbin "baserom.nds", 0x930, 0x10 + .incbin "baserom.nds", 0x940, 0x10 + .incbin "baserom.nds", 0x950, 0x10 + .incbin "baserom.nds", 0x960, 0x10 + .incbin "baserom.nds", 0x970, 0x10 + .incbin "baserom.nds", 0x980, 0x10 + .incbin "baserom.nds", 0x990, 0x10 + .incbin "baserom.nds", 0x9A0, 0x10 + .incbin "baserom.nds", 0x9B0, 0x10 + .incbin "baserom.nds", 0x9C0, 0x10 + .incbin "baserom.nds", 0x9D0, 0x10 + .incbin "baserom.nds", 0x9E0, 0x10 + .incbin "baserom.nds", 0x9F0, 0x10 + .incbin "baserom.nds", 0xA00, 0x10 + .incbin "baserom.nds", 0xA10, 0x10 + .incbin "baserom.nds", 0xA20, 0x10 + .incbin "baserom.nds", 0xA30, 0x10 + .incbin "baserom.nds", 0xA40, 0x10 + .incbin "baserom.nds", 0xA50, 0x10 + .incbin "baserom.nds", 0xA60, 0x10 + .incbin "baserom.nds", 0xA70, 0x10 + .incbin "baserom.nds", 0xA80, 0x10 + .incbin "baserom.nds", 0xA90, 0x10 + .incbin "baserom.nds", 0xAA0, 0x10 + .incbin "baserom.nds", 0xAB0, 0x10 + .incbin "baserom.nds", 0xAC0, 0x10 + .incbin "baserom.nds", 0xAD0, 0x10 + .incbin "baserom.nds", 0xAE0, 0x10 + .incbin "baserom.nds", 0xAF0, 0x10 + .incbin "baserom.nds", 0xB00, 0x10 + .incbin "baserom.nds", 0xB10, 0x10 + .incbin "baserom.nds", 0xB20, 0x10 + .incbin "baserom.nds", 0xB30, 0x10 + .incbin "baserom.nds", 0xB40, 0x10 + .incbin "baserom.nds", 0xB50, 0x10 + .incbin "baserom.nds", 0xB60, 0x10 + .incbin "baserom.nds", 0xB70, 0x10 + .incbin "baserom.nds", 0xB80, 0x10 + .incbin "baserom.nds", 0xB90, 0x10 + .incbin "baserom.nds", 0xBA0, 0x10 + .incbin "baserom.nds", 0xBB0, 0x10 + .incbin "baserom.nds", 0xBC0, 0x10 + .incbin "baserom.nds", 0xBD0, 0x10 + .incbin "baserom.nds", 0xBE0, 0x10 + .incbin "baserom.nds", 0xBF0, 0x10 + .incbin "baserom.nds", 0xC00, 0x10 + .incbin "baserom.nds", 0xC10, 0x10 + .incbin "baserom.nds", 0xC20, 0x10 + .incbin "baserom.nds", 0xC30, 0x10 + .incbin "baserom.nds", 0xC40, 0x10 + .incbin "baserom.nds", 0xC50, 0x10 + .incbin "baserom.nds", 0xC60, 0x10 + .incbin "baserom.nds", 0xC70, 0x10 + .incbin "baserom.nds", 0xC80, 0x10 + .incbin "baserom.nds", 0xC90, 0x10 + .incbin "baserom.nds", 0xCA0, 0x10 + .incbin "baserom.nds", 0xCB0, 0x10 + .incbin "baserom.nds", 0xCC0, 0x10 + .incbin "baserom.nds", 0xCD0, 0x10 + .incbin "baserom.nds", 0xCE0, 0x10 + .incbin "baserom.nds", 0xCF0, 0x10 + .incbin "baserom.nds", 0xD00, 0x10 + .incbin "baserom.nds", 0xD10, 0x10 + .incbin "baserom.nds", 0xD20, 0x10 + .incbin "baserom.nds", 0xD30, 0x10 + .incbin "baserom.nds", 0xD40, 0x10 + .incbin "baserom.nds", 0xD50, 0x10 + .incbin "baserom.nds", 0xD60, 0x10 + .incbin "baserom.nds", 0xD70, 0x10 + .incbin "baserom.nds", 0xD80, 0x10 + .incbin "baserom.nds", 0xD90, 0x10 + .incbin "baserom.nds", 0xDA0, 0x10 + .incbin "baserom.nds", 0xDB0, 0x10 + .incbin "baserom.nds", 0xDC0, 0x10 + .incbin "baserom.nds", 0xDD0, 0x10 + .incbin "baserom.nds", 0xDE0, 0x10 + .incbin "baserom.nds", 0xDF0, 0x10 + .incbin "baserom.nds", 0xE00, 0x10 + .incbin "baserom.nds", 0xE10, 0x10 + .incbin "baserom.nds", 0xE20, 0x10 + .incbin "baserom.nds", 0xE30, 0x10 + .incbin "baserom.nds", 0xE40, 0x10 + .incbin "baserom.nds", 0xE50, 0x10 + .incbin "baserom.nds", 0xE60, 0x10 + .incbin "baserom.nds", 0xE70, 0x10 + .incbin "baserom.nds", 0xE80, 0x10 + .incbin "baserom.nds", 0xE90, 0x10 + .incbin "baserom.nds", 0xEA0, 0x10 + .incbin "baserom.nds", 0xEB0, 0x10 + .incbin "baserom.nds", 0xEC0, 0x10 + .incbin "baserom.nds", 0xED0, 0x10 + .incbin "baserom.nds", 0xEE0, 0x10 + .incbin "baserom.nds", 0xEF0, 0x10 + .incbin "baserom.nds", 0xF00, 0x10 + .incbin "baserom.nds", 0xF10, 0x10 + .incbin "baserom.nds", 0xF20, 0x10 + .incbin "baserom.nds", 0xF30, 0x10 + .incbin "baserom.nds", 0xF40, 0x10 + .incbin "baserom.nds", 0xF50, 0x10 + .incbin "baserom.nds", 0xF60, 0x10 + .incbin "baserom.nds", 0xF70, 0x10 + .incbin "baserom.nds", 0xF80, 0x10 + .incbin "baserom.nds", 0xF90, 0x10 + .incbin "baserom.nds", 0xFA0, 0x10 + .incbin "baserom.nds", 0xFB0, 0x10 + .incbin "baserom.nds", 0xFC0, 0x10 + .incbin "baserom.nds", 0xFD0, 0x10 + .incbin "baserom.nds", 0xFE0, 0x10 + .incbin "baserom.nds", 0xFF0, 0x10 + .incbin "baserom.nds", 0x1000, 0x10 + .incbin "baserom.nds", 0x1010, 0x10 + .incbin "baserom.nds", 0x1020, 0x10 + .incbin "baserom.nds", 0x1030, 0x10 + .incbin "baserom.nds", 0x1040, 0x10 + .incbin "baserom.nds", 0x1050, 0x10 + .incbin "baserom.nds", 0x1060, 0x10 + .incbin "baserom.nds", 0x1070, 0x10 + .incbin "baserom.nds", 0x1080, 0x10 + .incbin "baserom.nds", 0x1090, 0x10 + .incbin "baserom.nds", 0x10A0, 0x10 + .incbin "baserom.nds", 0x10B0, 0x10 + .incbin "baserom.nds", 0x10C0, 0x10 + .incbin "baserom.nds", 0x10D0, 0x10 + .incbin "baserom.nds", 0x10E0, 0x10 + .incbin "baserom.nds", 0x10F0, 0x10 + .incbin "baserom.nds", 0x1100, 0x10 + .incbin "baserom.nds", 0x1110, 0x10 + .incbin "baserom.nds", 0x1120, 0x10 + .incbin "baserom.nds", 0x1130, 0x10 + .incbin "baserom.nds", 0x1140, 0x10 + .incbin "baserom.nds", 0x1150, 0x10 + .incbin "baserom.nds", 0x1160, 0x10 + .incbin "baserom.nds", 0x1170, 0x10 + .incbin "baserom.nds", 0x1180, 0x10 + .incbin "baserom.nds", 0x1190, 0x10 + .incbin "baserom.nds", 0x11A0, 0x10 + .incbin "baserom.nds", 0x11B0, 0x10 + .incbin "baserom.nds", 0x11C0, 0x10 + .incbin "baserom.nds", 0x11D0, 0x10 + .incbin "baserom.nds", 0x11E0, 0x10 + .incbin "baserom.nds", 0x11F0, 0x10 + .incbin "baserom.nds", 0x1200, 0x10 + .incbin "baserom.nds", 0x1210, 0x10 + .incbin "baserom.nds", 0x1220, 0x10 + .incbin "baserom.nds", 0x1230, 0x10 + .incbin "baserom.nds", 0x1240, 0x10 + .incbin "baserom.nds", 0x1250, 0x10 + .incbin "baserom.nds", 0x1260, 0x10 + .incbin "baserom.nds", 0x1270, 0x10 + .incbin "baserom.nds", 0x1280, 0x10 + .incbin "baserom.nds", 0x1290, 0x10 + .incbin "baserom.nds", 0x12A0, 0x10 + .incbin "baserom.nds", 0x12B0, 0x10 + .incbin "baserom.nds", 0x12C0, 0x10 + .incbin "baserom.nds", 0x12D0, 0x10 + .incbin "baserom.nds", 0x12E0, 0x10 + .incbin "baserom.nds", 0x12F0, 0x10 + .incbin "baserom.nds", 0x1300, 0x10 + .incbin "baserom.nds", 0x1310, 0x10 + .incbin "baserom.nds", 0x1320, 0x10 + .incbin "baserom.nds", 0x1330, 0x10 + .incbin "baserom.nds", 0x1340, 0x10 + .incbin "baserom.nds", 0x1350, 0x10 + .incbin "baserom.nds", 0x1360, 0x10 + .incbin "baserom.nds", 0x1370, 0x10 + .incbin "baserom.nds", 0x1380, 0x10 + .incbin "baserom.nds", 0x1390, 0x10 + .incbin "baserom.nds", 0x13A0, 0x10 + .incbin "baserom.nds", 0x13B0, 0x10 + .incbin "baserom.nds", 0x13C0, 0x10 + .incbin "baserom.nds", 0x13D0, 0x10 + .incbin "baserom.nds", 0x13E0, 0x10 + .incbin "baserom.nds", 0x13F0, 0x10 + .incbin "baserom.nds", 0x1400, 0x10 + .incbin "baserom.nds", 0x1410, 0x10 + .incbin "baserom.nds", 0x1420, 0x10 + .incbin "baserom.nds", 0x1430, 0x10 + .incbin "baserom.nds", 0x1440, 0x10 + .incbin "baserom.nds", 0x1450, 0x10 + .incbin "baserom.nds", 0x1460, 0x10 + .incbin "baserom.nds", 0x1470, 0x10 + .incbin "baserom.nds", 0x1480, 0x10 + .incbin "baserom.nds", 0x1490, 0x10 + .incbin "baserom.nds", 0x14A0, 0x10 + .incbin "baserom.nds", 0x14B0, 0x10 + .incbin "baserom.nds", 0x14C0, 0x10 + .incbin "baserom.nds", 0x14D0, 0x10 + .incbin "baserom.nds", 0x14E0, 0x10 + .incbin "baserom.nds", 0x14F0, 0x10 + .incbin "baserom.nds", 0x1500, 0x10 + .incbin "baserom.nds", 0x1510, 0x10 + .incbin "baserom.nds", 0x1520, 0x10 + .incbin "baserom.nds", 0x1530, 0x10 + .incbin "baserom.nds", 0x1540, 0x10 + .incbin "baserom.nds", 0x1550, 0x10 + .incbin "baserom.nds", 0x1560, 0x10 + .incbin "baserom.nds", 0x1570, 0x10 + .incbin "baserom.nds", 0x1580, 0x10 + .incbin "baserom.nds", 0x1590, 0x10 + .incbin "baserom.nds", 0x15A0, 0x10 + .incbin "baserom.nds", 0x15B0, 0x10 + .incbin "baserom.nds", 0x15C0, 0x10 + .incbin "baserom.nds", 0x15D0, 0x10 + .incbin "baserom.nds", 0x15E0, 0x10 + .incbin "baserom.nds", 0x15F0, 0x10 + .incbin "baserom.nds", 0x1600, 0x10 + .incbin "baserom.nds", 0x1610, 0x10 + .incbin "baserom.nds", 0x1620, 0x10 + .incbin "baserom.nds", 0x1630, 0x10 + .incbin "baserom.nds", 0x1640, 0x10 + .incbin "baserom.nds", 0x1650, 0x10 + .incbin "baserom.nds", 0x1660, 0x10 + .incbin "baserom.nds", 0x1670, 0x10 + .incbin "baserom.nds", 0x1680, 0x10 + .incbin "baserom.nds", 0x1690, 0x10 + .incbin "baserom.nds", 0x16A0, 0x10 + .incbin "baserom.nds", 0x16B0, 0x10 + .incbin "baserom.nds", 0x16C0, 0x10 + .incbin "baserom.nds", 0x16D0, 0x10 + .incbin "baserom.nds", 0x16E0, 0x10 + .incbin "baserom.nds", 0x16F0, 0x10 + .incbin "baserom.nds", 0x1700, 0x10 + .incbin "baserom.nds", 0x1710, 0x10 + .incbin "baserom.nds", 0x1720, 0x10 + .incbin "baserom.nds", 0x1730, 0x10 + .incbin "baserom.nds", 0x1740, 0x10 + .incbin "baserom.nds", 0x1750, 0x10 + .incbin "baserom.nds", 0x1760, 0x10 + .incbin "baserom.nds", 0x1770, 0x10 + .incbin "baserom.nds", 0x1780, 0x10 + .incbin "baserom.nds", 0x1790, 0x10 + .incbin "baserom.nds", 0x17A0, 0x10 + .incbin "baserom.nds", 0x17B0, 0x10 + .incbin "baserom.nds", 0x17C0, 0x10 + .incbin "baserom.nds", 0x17D0, 0x10 + .incbin "baserom.nds", 0x17E0, 0x10 + .incbin "baserom.nds", 0x17F0, 0x10 + .incbin "baserom.nds", 0x1800, 0x10 + .incbin "baserom.nds", 0x1810, 0x10 + .incbin "baserom.nds", 0x1820, 0x10 + .incbin "baserom.nds", 0x1830, 0x10 + .incbin "baserom.nds", 0x1840, 0x10 + .incbin "baserom.nds", 0x1850, 0x10 + .incbin "baserom.nds", 0x1860, 0x10 + .incbin "baserom.nds", 0x1870, 0x10 + .incbin "baserom.nds", 0x1880, 0x10 + .incbin "baserom.nds", 0x1890, 0x10 + .incbin "baserom.nds", 0x18A0, 0x10 + .incbin "baserom.nds", 0x18B0, 0x10 + .incbin "baserom.nds", 0x18C0, 0x10 + .incbin "baserom.nds", 0x18D0, 0x10 + .incbin "baserom.nds", 0x18E0, 0x10 + .incbin "baserom.nds", 0x18F0, 0x10 + .incbin "baserom.nds", 0x1900, 0x10 + .incbin "baserom.nds", 0x1910, 0x10 + .incbin "baserom.nds", 0x1920, 0x10 + .incbin "baserom.nds", 0x1930, 0x10 + .incbin "baserom.nds", 0x1940, 0x10 + .incbin "baserom.nds", 0x1950, 0x10 + .incbin "baserom.nds", 0x1960, 0x10 + .incbin "baserom.nds", 0x1970, 0x10 + .incbin "baserom.nds", 0x1980, 0x10 + .incbin "baserom.nds", 0x1990, 0x10 + .incbin "baserom.nds", 0x19A0, 0x10 + .incbin "baserom.nds", 0x19B0, 0x10 + .incbin "baserom.nds", 0x19C0, 0x10 + .incbin "baserom.nds", 0x19D0, 0x10 + .incbin "baserom.nds", 0x19E0, 0x10 + .incbin "baserom.nds", 0x19F0, 0x10 + .incbin "baserom.nds", 0x1A00, 0x10 + .incbin "baserom.nds", 0x1A10, 0x10 + .incbin "baserom.nds", 0x1A20, 0x10 + .incbin "baserom.nds", 0x1A30, 0x10 + .incbin "baserom.nds", 0x1A40, 0x10 + .incbin "baserom.nds", 0x1A50, 0x10 + .incbin "baserom.nds", 0x1A60, 0x10 + .incbin "baserom.nds", 0x1A70, 0x10 + .incbin "baserom.nds", 0x1A80, 0x10 + .incbin "baserom.nds", 0x1A90, 0x10 + .incbin "baserom.nds", 0x1AA0, 0x10 + .incbin "baserom.nds", 0x1AB0, 0x10 + .incbin "baserom.nds", 0x1AC0, 0x10 + .incbin "baserom.nds", 0x1AD0, 0x10 + .incbin "baserom.nds", 0x1AE0, 0x10 + .incbin "baserom.nds", 0x1AF0, 0x10 + .incbin "baserom.nds", 0x1B00, 0x10 + .incbin "baserom.nds", 0x1B10, 0x10 + .incbin "baserom.nds", 0x1B20, 0x10 + .incbin "baserom.nds", 0x1B30, 0x10 + .incbin "baserom.nds", 0x1B40, 0x10 + .incbin "baserom.nds", 0x1B50, 0x10 + .incbin "baserom.nds", 0x1B60, 0x10 + .incbin "baserom.nds", 0x1B70, 0x10 + .incbin "baserom.nds", 0x1B80, 0x10 + .incbin "baserom.nds", 0x1B90, 0x10 + .incbin "baserom.nds", 0x1BA0, 0x10 + .incbin "baserom.nds", 0x1BB0, 0x10 + .incbin "baserom.nds", 0x1BC0, 0x10 + .incbin "baserom.nds", 0x1BD0, 0x10 + .incbin "baserom.nds", 0x1BE0, 0x10 + .incbin "baserom.nds", 0x1BF0, 0x10 + .incbin "baserom.nds", 0x1C00, 0x10 + .incbin "baserom.nds", 0x1C10, 0x10 + .incbin "baserom.nds", 0x1C20, 0x10 + .incbin "baserom.nds", 0x1C30, 0x10 + .incbin "baserom.nds", 0x1C40, 0x10 + .incbin "baserom.nds", 0x1C50, 0x10 + .incbin "baserom.nds", 0x1C60, 0x10 + .incbin "baserom.nds", 0x1C70, 0x10 + .incbin "baserom.nds", 0x1C80, 0x10 + .incbin "baserom.nds", 0x1C90, 0x10 + .incbin "baserom.nds", 0x1CA0, 0x10 + .incbin "baserom.nds", 0x1CB0, 0x10 + .incbin "baserom.nds", 0x1CC0, 0x10 + .incbin "baserom.nds", 0x1CD0, 0x10 + .incbin "baserom.nds", 0x1CE0, 0x10 + .incbin "baserom.nds", 0x1CF0, 0x10 + .incbin "baserom.nds", 0x1D00, 0x10 + .incbin "baserom.nds", 0x1D10, 0x10 + .incbin "baserom.nds", 0x1D20, 0x10 + .incbin "baserom.nds", 0x1D30, 0x10 + .incbin "baserom.nds", 0x1D40, 0x10 + .incbin "baserom.nds", 0x1D50, 0x10 + .incbin "baserom.nds", 0x1D60, 0x10 + .balign 4, 255 diff --git a/narc/wazaeffect/we.arc.s b/narc/wazaeffect/we.arc.s new file mode 100644 index 00000000..16e5ebe6 --- /dev/null +++ b/narc/wazaeffect/we.arc.s @@ -0,0 +1,3 @@ + .include "asm/macros.inc" + .text + .incbin "baserom.nds", 0x1D0E400, 0x3E04C diff --git a/narc/wazaeffect/we_sub.narc.s b/narc/wazaeffect/we_sub.narc.s new file mode 100644 index 00000000..43809ffa --- /dev/null +++ b/narc/wazaeffect/we_sub.narc.s @@ -0,0 +1,126 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00003024 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000019C ; chunk size + .short 50 ; number of files + .balign 4 + .word 0x00000000, 0x00000004 + .word 0x00000004, 0x000000F0 + .word 0x000000F0, 0x00000200 + .word 0x00000200, 0x00000308 + .word 0x00000308, 0x000003F4 + .word 0x000003F4, 0x000004FC + .word 0x000004FC, 0x00000620 + .word 0x00000620, 0x0000070C + .word 0x0000070C, 0x00000828 + .word 0x00000828, 0x0000090C + .word 0x0000090C, 0x00000A9C + .word 0x00000A9C, 0x00000B90 + .word 0x00000B90, 0x00000C24 + .word 0x00000C24, 0x00000CB8 + .word 0x00000CB8, 0x00000E28 + .word 0x00000E28, 0x00000E78 + .word 0x00000E78, 0x00000EC8 + .word 0x00000EC8, 0x00000F5C + .word 0x00000F5C, 0x00001058 + .word 0x00001058, 0x00001180 + .word 0x00001180, 0x000012D4 + .word 0x000012D4, 0x000013C8 + .word 0x000013C8, 0x00001510 + .word 0x00001510, 0x00001514 + .word 0x00001514, 0x00001518 + .word 0x00001518, 0x00001778 + .word 0x00001778, 0x00001800 + .word 0x00001800, 0x00001864 + .word 0x00001864, 0x000018A8 + .word 0x000018A8, 0x00001954 + .word 0x00001954, 0x00001ADC + .word 0x00001ADC, 0x00001BB4 + .word 0x00001BB4, 0x00001D88 + .word 0x00001D88, 0x00001EB8 + .word 0x00001EB8, 0x00001FF8 + .word 0x00001FF8, 0x0000211C + .word 0x0000211C, 0x00002864 + .word 0x00002864, 0x0000298C + .word 0x0000298C, 0x00002B20 + .word 0x00002B20, 0x00002CA8 + .word 0x00002CA8, 0x00002E60 + .word 0x00002E60, 0x00002E60 + .word 0x00002E60, 0x00002E60 + .word 0x00002E60, 0x00002E60 + .word 0x00002E60, 0x00002E60 + .word 0x00002E60, 0x00002E60 + .word 0x00002E60, 0x00002E60 + .word 0x00002E60, 0x00002E60 + .word 0x00002E60, 0x00002E60 + .word 0x00002E60, 0x00002E60 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00002E68 ; chunk size + .incbin "baserom.nds", 0x0, 0x4 + .incbin "baserom.nds", 0x4, 0xEC + .incbin "baserom.nds", 0xF0, 0x110 + .incbin "baserom.nds", 0x200, 0x108 + .incbin "baserom.nds", 0x308, 0xEC + .incbin "baserom.nds", 0x3F4, 0x108 + .incbin "baserom.nds", 0x4FC, 0x124 + .incbin "baserom.nds", 0x620, 0xEC + .incbin "baserom.nds", 0x70C, 0x11C + .incbin "baserom.nds", 0x828, 0xE4 + .incbin "baserom.nds", 0x90C, 0x190 + .incbin "baserom.nds", 0xA9C, 0xF4 + .incbin "baserom.nds", 0xB90, 0x94 + .incbin "baserom.nds", 0xC24, 0x94 + .incbin "baserom.nds", 0xCB8, 0x170 + .incbin "baserom.nds", 0xE28, 0x50 + .incbin "baserom.nds", 0xE78, 0x50 + .incbin "baserom.nds", 0xEC8, 0x94 + .incbin "baserom.nds", 0xF5C, 0xFC + .incbin "baserom.nds", 0x1058, 0x128 + .incbin "baserom.nds", 0x1180, 0x154 + .incbin "baserom.nds", 0x12D4, 0xF4 + .incbin "baserom.nds", 0x13C8, 0x148 + .incbin "baserom.nds", 0x1510, 0x4 + .incbin "baserom.nds", 0x1514, 0x4 + .incbin "baserom.nds", 0x1518, 0x260 + .incbin "baserom.nds", 0x1778, 0x88 + .incbin "baserom.nds", 0x1800, 0x64 + .incbin "baserom.nds", 0x1864, 0x44 + .incbin "baserom.nds", 0x18A8, 0xAC + .incbin "baserom.nds", 0x1954, 0x188 + .incbin "baserom.nds", 0x1ADC, 0xD8 + .incbin "baserom.nds", 0x1BB4, 0x1D4 + .incbin "baserom.nds", 0x1D88, 0x130 + .incbin "baserom.nds", 0x1EB8, 0x140 + .incbin "baserom.nds", 0x1FF8, 0x124 + .incbin "baserom.nds", 0x211C, 0x748 + .incbin "baserom.nds", 0x2864, 0x128 + .incbin "baserom.nds", 0x298C, 0x194 + .incbin "baserom.nds", 0x2B20, 0x188 + .incbin "baserom.nds", 0x2CA8, 0x1B8 + .incbin "baserom.nds", 0x2E60, 0x0 + .incbin "baserom.nds", 0x2E60, 0x0 + .incbin "baserom.nds", 0x2E60, 0x0 + .incbin "baserom.nds", 0x2E60, 0x0 + .incbin "baserom.nds", 0x2E60, 0x0 + .incbin "baserom.nds", 0x2E60, 0x0 + .incbin "baserom.nds", 0x2E60, 0x0 + .incbin "baserom.nds", 0x2E60, 0x0 + .incbin "baserom.nds", 0x2E60, 0x0 + .balign 4, 255 diff --git a/narc/wifi_earth/wifi_earth.narc.s b/narc/wifi_earth/wifi_earth.narc.s new file mode 100644 index 00000000..7564ef35 --- /dev/null +++ b/narc/wifi_earth/wifi_earth.narc.s @@ -0,0 +1,42 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00025274 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x0000004C ; chunk size + .short 8 ; number of files + .balign 4 + .word 0x00000000, 0x00023C84 + .word 0x00023C84, 0x00023F20 + .word 0x00023F20, 0x000241BC + .word 0x000241BC, 0x00024458 + .word 0x00024458, 0x000246F4 + .word 0x000246F4, 0x000247B4 + .word 0x000247B4, 0x000249DC + .word 0x000249DC, 0x00025200 + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00025208 ; chunk size + .incbin "baserom.nds", 0x0, 0x23C84 + .incbin "baserom.nds", 0x23C84, 0x29C + .incbin "baserom.nds", 0x23F20, 0x29C + .incbin "baserom.nds", 0x241BC, 0x29C + .incbin "baserom.nds", 0x24458, 0x29C + .incbin "baserom.nds", 0x246F4, 0xC0 + .incbin "baserom.nds", 0x247B4, 0x228 + .incbin "baserom.nds", 0x249DC, 0x824 + .balign 4, 255 diff --git a/narc/wifi_earth/wifi_earth_place.narc.s b/narc/wifi_earth/wifi_earth_place.narc.s new file mode 100644 index 00000000..b541e337 --- /dev/null +++ b/narc/wifi_earth/wifi_earth_place.narc.s @@ -0,0 +1,64 @@ + .text + ; NARC header + .ascii "NARC" + .short 0xFFFE ; byte order + .short 0x0100 ; version + .word 0x00000CC8 ; size + .short 0x0010 ; chunk size + .short 3 ; number following chunks + + ; BTAF header + .ascii "BTAF" + .word 0x000000A4 ; chunk size + .short 19 ; number of files + .balign 4 + .word 0x00000000, 0x00000064 + .word 0x00000064, 0x00000084 + .word 0x00000084, 0x000000F4 + .word 0x000000F4, 0x0000012C + .word 0x0000012C, 0x000001AC + .word 0x000001AC, 0x000001F0 + .word 0x000001F0, 0x00000238 + .word 0x00000238, 0x00000254 + .word 0x00000254, 0x000002B0 + .word 0x000002B0, 0x000002E4 + .word 0x000002E4, 0x00000374 + .word 0x00000374, 0x000003C8 + .word 0x000003C8, 0x00000494 + .word 0x00000494, 0x000004E8 + .word 0x000004E8, 0x0000052C + .word 0x0000052C, 0x0000054C + .word 0x0000054C, 0x000005B0 + .word 0x000005B0, 0x00000680 + .word 0x00000680, 0x00000BFC + + ; BTNF header + .ascii "BTNF" + .word 0x00000010 ; chunk size + .word 0x00000004 ; offset to first dir + .short 0 ; first file + .short 1 ; number of directories + + ; GMIF header + .ascii "GMIF" + .word 0x00000C04 ; chunk size + .incbin "baserom.nds", 0x0, 0x64 + .incbin "baserom.nds", 0x64, 0x20 + .incbin "baserom.nds", 0x84, 0x70 + .incbin "baserom.nds", 0xF4, 0x38 + .incbin "baserom.nds", 0x12C, 0x80 + .incbin "baserom.nds", 0x1AC, 0x44 + .incbin "baserom.nds", 0x1F0, 0x48 + .incbin "baserom.nds", 0x238, 0x1C + .incbin "baserom.nds", 0x254, 0x5C + .incbin "baserom.nds", 0x2B0, 0x34 + .incbin "baserom.nds", 0x2E4, 0x90 + .incbin "baserom.nds", 0x374, 0x54 + .incbin "baserom.nds", 0x3C8, 0xCC + .incbin "baserom.nds", 0x494, 0x54 + .incbin "baserom.nds", 0x4E8, 0x44 + .incbin "baserom.nds", 0x52C, 0x20 + .incbin "baserom.nds", 0x54C, 0x64 + .incbin "baserom.nds", 0x5B0, 0xD0 + .incbin "baserom.nds", 0x680, 0x57C + .balign 4, 255 diff --git a/pokediamond.lcf b/pokediamond.lcf index f96c3cf9..52d06a1a 100644 --- a/pokediamond.lcf +++ b/pokediamond.lcf @@ -2,20 +2,377 @@ MEMORY { header (RWX) : ORIGIN=0, LENGTH=0 arm9 (RWX) : ORIGIN=0x2000000, LENGTH=0 - rom3 (RWX) : ORIGIN=0, LENGTH=0 - gap1 (RWX) : ORIGIN=0, LENGTH=0 - arm7 (RWX) : ORIGIN=0, LENGTH=0 - gap2 (RWX) : ORIGIN=0, LENGTH=0 + garbage (RWX) : ORIGIN=0, LENGTH=0 + arm9overlay (RWX) : ORIGIN=0, LENGTH=0 + arm7 (RWX) : ORIGIN=0x2380000, LENGTH=0 filenametable (RWX) : ORIGIN=0, LENGTH=0 + fileallocationtable (RWX) : ORIGIN=0, LENGTH=0 + icon_title (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_10C400 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_10C600 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_10C800 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_10CA00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_10CC00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_145400 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_16B600 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_184400 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_187800 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_1A3000 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_1AD200 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_1AD400 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_1DFE00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_1F9200 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_227E00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_237400 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_23BC00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_264200 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_26B200 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_283000 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_283200 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_285600 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_285C00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_286C00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_288600 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_289000 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_289600 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_289E00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_28AA00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_28C200 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_28CC00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_28D200 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_28D800 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_28DE00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_28E200 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_28E800 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_28F200 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_290000 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_290600 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_291200 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_292000 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_292E00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_294000 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_294A00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_295400 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_295A00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_296400 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_296800 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_297600 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_298000 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_298600 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_298A00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_299A00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_299E00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_29C400 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_29E800 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2A1A00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2A6200 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2A8800 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2A9E00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2ACC00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2ADA00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2AEC00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2B2A00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2B7600 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2B9400 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2BC400 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2BEC00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2C1200 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2C2800 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2C4C00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2C5C00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2C9C00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2C9E00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2CEA00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2CFE00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2D5C00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2D7C00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2D9800 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2D9E00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2DF200 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2E9A00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2EF000 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2F1600 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_2FFA00 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_303400 (RWX) : ORIGIN=0, LENGTH=0 + rom3.FILE_30C600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_339000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_339200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_339C00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_33A400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_33AE00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_33B800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_33BA00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_33BC00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_33BE00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_33C000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_33C200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_33E400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_33E800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_33EA00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_33F800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3B3000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3B3200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3B3600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3B3800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3B3A00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3B3C00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3B3E00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3B4000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3B4200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3B4400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3B4A00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3FAA00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3FAC00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_408000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_408200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_408400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_408600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_408800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_408A00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_408C00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_408E00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_409000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_409200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_409400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_409600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_409E00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_412000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_412400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_412E00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_413000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_414200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_415400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_415A00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_416C00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_417200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_417600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_41B600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_423800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_423C00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_423E00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_424000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_424200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_424400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_424600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_424800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_424A00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_424C00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_424E00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_425000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_425200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_425400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_425600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_425C00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_426200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_426400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_426600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_426800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_426A00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_426C00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_426E00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_43C800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_43CA00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_43CC00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_43DA00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_43DE00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_43E000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_43E200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_43E600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_43EA00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_43EE00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_43F200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_43F600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_43FA00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_440200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_441400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_441800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_441A00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_441C00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_441E00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_442000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_442200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_442400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_442600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_442800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_442A00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_442C00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_445800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_445C00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_44BA00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_44C200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_44D600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_44DA00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_451A00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_451C00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_451E00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_452000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_452200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_452800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_473000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_476A00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_494600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_499400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_499600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_499800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_499A00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_499C00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_499E00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_49A000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_49A200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_4A4600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_57FC00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_58F600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_58FA00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_593400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_597400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_597800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_597C00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_CBB200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_F4D400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_F4F000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_F54C00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_F55400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_102EC00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_102F000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_102F400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_102F800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1B6B400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1B78200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1C14A00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1C1B000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1C21600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1C22400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1C22800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1C27200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1C2D000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1C32600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1C34C00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1C35400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1C3A400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1C4C800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1CE8E00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1D09200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1D0E400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1D4C600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1D4F800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1D53A00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1D60200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1D61C00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1D63200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1D64600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1D6C800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1D6DA00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1D70800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1DA6200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1DC0000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1DDBC00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1DDFE00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1DE0200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1DE7E00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1DE8600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1DE8A00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1E3A200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1E5C800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1E5F200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1E69C00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1E73400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1E73800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1E94800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1E94E00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1E9CE00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1EDB600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1EF5800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1EFA400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1EFB600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1F03000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1F30000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1F5C400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1F5DA00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1F64600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1F6E400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1F71600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1F7FC00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1F86600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1F87C00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1F8A000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1FA9200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1FAA800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1FB0200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1FB2A00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1FC7A00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_1FC8400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_2000000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_2001400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_2004400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_200CE00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_2018600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_201D400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_207DE00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_207E400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_210B600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_2119C00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_2242200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_225E200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_22ACC00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_24F2600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_24F3200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_2515600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_2528C00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_253C200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_2710800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_2712000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_2715000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_2715400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_2716800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_283BE00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_296EC00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_296F200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3787200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_379AE00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_37A0C00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_37A4400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_37ACA00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_37B2400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_37D7800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_37D8600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3810200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_381F000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3821C00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3824200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3824600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_382AA00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3835000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_383E200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3841E00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3842600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3843200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_385A600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_385AA00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_385CE00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_385D400 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_385D600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3860E00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3861000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3863600 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_387EA00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_388CA00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3923C00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_392A200 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_392FC00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3938000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3949800 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_395B000 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_3968C00 (RWX) : ORIGIN=0, LENGTH=0 + narc.FILE_397AA00 (RWX) : ORIGIN=0, LENGTH=0 } SECTIONS { #include "undefined_syms.txt" - - __startup = 0; .header: { rom_header.o (.text) + . = 0x4000; } > header + .arm9 : AT (0x4000) { secure.o (.text) entry.o (.text) @@ -26,23 +383,1099 @@ SECTIONS { FUN_020C9C0C.o (.text) rom2.o (.text) } > arm9 - .rom3 : AT (0x10B724) { - rom3.o (.text) - } > rom3 - - .gap1 : AT(0x30CE20) { - gap1.o (.text) - } > gap1 - + + .arm9overlay : AT (0x10B800) { + arm9overlay.o (.text) + } > arm9overlay + + .garbage : AT (0x10B724) { + unk_10b724.o (.text) + } > garbage + + .FILE_10C400 : AT (0x10C400) { + FILE_10C400.o (.text) /* 0x10C400 */ + } > rom3.FILE_10C400 + .FILE_10C600 : AT (0x10C600) { + FILE_10C600.o (.text) /* 0x10C600 */ + } > rom3.FILE_10C600 + .FILE_10C800 : AT (0x10C800) { + FILE_10C800.o (.text) /* 0x10C800 */ + } > rom3.FILE_10C800 + .FILE_10CA00 : AT (0x10CA00) { + FILE_10CA00.o (.text) /* 0x10CA00 */ + } > rom3.FILE_10CA00 + .FILE_10CC00 : AT (0x10CC00) { + FILE_10CC00.o (.text) /* 0x10CC00 */ + } > rom3.FILE_10CC00 + .FILE_145400 : AT (0x145400) { + FILE_145400.o (.text) /* 0x145400 */ + } > rom3.FILE_145400 + .FILE_16B600 : AT (0x16B600) { + FILE_16B600.o (.text) /* 0x16B600 */ + } > rom3.FILE_16B600 + .FILE_184400 : AT (0x184400) { + FILE_184400.o (.text) /* 0x184400 */ + } > rom3.FILE_184400 + .FILE_187800 : AT (0x187800) { + FILE_187800.o (.text) /* 0x187800 */ + } > rom3.FILE_187800 + .FILE_1A3000 : AT (0x1A3000) { + FILE_1A3000.o (.text) /* 0x1A3000 */ + } > rom3.FILE_1A3000 + .FILE_1AD200 : AT (0x1AD200) { + FILE_1AD200.o (.text) /* 0x1AD200 */ + } > rom3.FILE_1AD200 + .FILE_1AD400 : AT (0x1AD400) { + FILE_1AD400.o (.text) /* 0x1AD400 */ + } > rom3.FILE_1AD400 + .FILE_1DFE00 : AT (0x1DFE00) { + FILE_1DFE00.o (.text) /* 0x1DFE00 */ + } > rom3.FILE_1DFE00 + .FILE_1F9200 : AT (0x1F9200) { + FILE_1F9200.o (.text) /* 0x1F9200 */ + } > rom3.FILE_1F9200 + .FILE_227E00 : AT (0x227E00) { + FILE_227E00.o (.text) /* 0x227E00 */ + } > rom3.FILE_227E00 + .FILE_237400 : AT (0x237400) { + FILE_237400.o (.text) /* 0x237400 */ + } > rom3.FILE_237400 + .FILE_23BC00 : AT (0x23BC00) { + FILE_23BC00.o (.text) /* 0x23BC00 */ + } > rom3.FILE_23BC00 + .FILE_264200 : AT (0x264200) { + FILE_264200.o (.text) /* 0x264200 */ + } > rom3.FILE_264200 + .FILE_26B200 : AT (0x26B200) { + FILE_26B200.o (.text) /* 0x26B200 */ + } > rom3.FILE_26B200 + .FILE_283000 : AT (0x283000) { + FILE_283000.o (.text) /* 0x283000 */ + } > rom3.FILE_283000 + .FILE_283200 : AT (0x283200) { + FILE_283200.o (.text) /* 0x283200 */ + } > rom3.FILE_283200 + .FILE_285600 : AT (0x285600) { + FILE_285600.o (.text) /* 0x285600 */ + } > rom3.FILE_285600 + .FILE_285C00 : AT (0x285C00) { + FILE_285C00.o (.text) /* 0x285C00 */ + } > rom3.FILE_285C00 + .FILE_286C00 : AT (0x286C00) { + FILE_286C00.o (.text) /* 0x286C00 */ + } > rom3.FILE_286C00 + .FILE_288600 : AT (0x288600) { + FILE_288600.o (.text) /* 0x288600 */ + } > rom3.FILE_288600 + .FILE_289000 : AT (0x289000) { + FILE_289000.o (.text) /* 0x289000 */ + } > rom3.FILE_289000 + .FILE_289600 : AT (0x289600) { + FILE_289600.o (.text) /* 0x289600 */ + } > rom3.FILE_289600 + .FILE_289E00 : AT (0x289E00) { + FILE_289E00.o (.text) /* 0x289E00 */ + } > rom3.FILE_289E00 + .FILE_28AA00 : AT (0x28AA00) { + FILE_28AA00.o (.text) /* 0x28AA00 */ + } > rom3.FILE_28AA00 + .FILE_28C200 : AT (0x28C200) { + FILE_28C200.o (.text) /* 0x28C200 */ + } > rom3.FILE_28C200 + .FILE_28CC00 : AT (0x28CC00) { + FILE_28CC00.o (.text) /* 0x28CC00 */ + } > rom3.FILE_28CC00 + .FILE_28D200 : AT (0x28D200) { + FILE_28D200.o (.text) /* 0x28D200 */ + } > rom3.FILE_28D200 + .FILE_28D800 : AT (0x28D800) { + FILE_28D800.o (.text) /* 0x28D800 */ + } > rom3.FILE_28D800 + .FILE_28DE00 : AT (0x28DE00) { + FILE_28DE00.o (.text) /* 0x28DE00 */ + } > rom3.FILE_28DE00 + .FILE_28E200 : AT (0x28E200) { + FILE_28E200.o (.text) /* 0x28E200 */ + } > rom3.FILE_28E200 + .FILE_28E800 : AT (0x28E800) { + FILE_28E800.o (.text) /* 0x28E800 */ + } > rom3.FILE_28E800 + .FILE_28F200 : AT (0x28F200) { + FILE_28F200.o (.text) /* 0x28F200 */ + } > rom3.FILE_28F200 + .FILE_290000 : AT (0x290000) { + FILE_290000.o (.text) /* 0x290000 */ + } > rom3.FILE_290000 + .FILE_290600 : AT (0x290600) { + FILE_290600.o (.text) /* 0x290600 */ + } > rom3.FILE_290600 + .FILE_291200 : AT (0x291200) { + FILE_291200.o (.text) /* 0x291200 */ + } > rom3.FILE_291200 + .FILE_292000 : AT (0x292000) { + FILE_292000.o (.text) /* 0x292000 */ + } > rom3.FILE_292000 + .FILE_292E00 : AT (0x292E00) { + FILE_292E00.o (.text) /* 0x292E00 */ + } > rom3.FILE_292E00 + .FILE_294000 : AT (0x294000) { + FILE_294000.o (.text) /* 0x294000 */ + } > rom3.FILE_294000 + .FILE_294A00 : AT (0x294A00) { + FILE_294A00.o (.text) /* 0x294A00 */ + } > rom3.FILE_294A00 + .FILE_295400 : AT (0x295400) { + FILE_295400.o (.text) /* 0x295400 */ + } > rom3.FILE_295400 + .FILE_295A00 : AT (0x295A00) { + FILE_295A00.o (.text) /* 0x295A00 */ + } > rom3.FILE_295A00 + .FILE_296400 : AT (0x296400) { + FILE_296400.o (.text) /* 0x296400 */ + } > rom3.FILE_296400 + .FILE_296800 : AT (0x296800) { + FILE_296800.o (.text) /* 0x296800 */ + } > rom3.FILE_296800 + .FILE_297600 : AT (0x297600) { + FILE_297600.o (.text) /* 0x297600 */ + } > rom3.FILE_297600 + .FILE_298000 : AT (0x298000) { + FILE_298000.o (.text) /* 0x298000 */ + } > rom3.FILE_298000 + .FILE_298600 : AT (0x298600) { + FILE_298600.o (.text) /* 0x298600 */ + } > rom3.FILE_298600 + .FILE_298A00 : AT (0x298A00) { + FILE_298A00.o (.text) /* 0x298A00 */ + } > rom3.FILE_298A00 + .FILE_299A00 : AT (0x299A00) { + FILE_299A00.o (.text) /* 0x299A00 */ + } > rom3.FILE_299A00 + .FILE_299E00 : AT (0x299E00) { + FILE_299E00.o (.text) /* 0x299E00 */ + } > rom3.FILE_299E00 + .FILE_29C400 : AT (0x29C400) { + FILE_29C400.o (.text) /* 0x29C400 */ + } > rom3.FILE_29C400 + .FILE_29E800 : AT (0x29E800) { + FILE_29E800.o (.text) /* 0x29E800 */ + } > rom3.FILE_29E800 + .FILE_2A1A00 : AT (0x2A1A00) { + FILE_2A1A00.o (.text) /* 0x2A1A00 */ + } > rom3.FILE_2A1A00 + .FILE_2A6200 : AT (0x2A6200) { + FILE_2A6200.o (.text) /* 0x2A6200 */ + } > rom3.FILE_2A6200 + .FILE_2A8800 : AT (0x2A8800) { + FILE_2A8800.o (.text) /* 0x2A8800 */ + } > rom3.FILE_2A8800 + .FILE_2A9E00 : AT (0x2A9E00) { + FILE_2A9E00.o (.text) /* 0x2A9E00 */ + } > rom3.FILE_2A9E00 + .FILE_2ACC00 : AT (0x2ACC00) { + FILE_2ACC00.o (.text) /* 0x2ACC00 */ + } > rom3.FILE_2ACC00 + .FILE_2ADA00 : AT (0x2ADA00) { + FILE_2ADA00.o (.text) /* 0x2ADA00 */ + } > rom3.FILE_2ADA00 + .FILE_2AEC00 : AT (0x2AEC00) { + FILE_2AEC00.o (.text) /* 0x2AEC00 */ + } > rom3.FILE_2AEC00 + .FILE_2B2A00 : AT (0x2B2A00) { + FILE_2B2A00.o (.text) /* 0x2B2A00 */ + } > rom3.FILE_2B2A00 + .FILE_2B7600 : AT (0x2B7600) { + FILE_2B7600.o (.text) /* 0x2B7600 */ + } > rom3.FILE_2B7600 + .FILE_2B9400 : AT (0x2B9400) { + FILE_2B9400.o (.text) /* 0x2B9400 */ + } > rom3.FILE_2B9400 + .FILE_2BC400 : AT (0x2BC400) { + FILE_2BC400.o (.text) /* 0x2BC400 */ + } > rom3.FILE_2BC400 + .FILE_2BEC00 : AT (0x2BEC00) { + FILE_2BEC00.o (.text) /* 0x2BEC00 */ + } > rom3.FILE_2BEC00 + .FILE_2C1200 : AT (0x2C1200) { + FILE_2C1200.o (.text) /* 0x2C1200 */ + } > rom3.FILE_2C1200 + .FILE_2C2800 : AT (0x2C2800) { + FILE_2C2800.o (.text) /* 0x2C2800 */ + } > rom3.FILE_2C2800 + .FILE_2C4C00 : AT (0x2C4C00) { + FILE_2C4C00.o (.text) /* 0x2C4C00 */ + } > rom3.FILE_2C4C00 + .FILE_2C5C00 : AT (0x2C5C00) { + FILE_2C5C00.o (.text) /* 0x2C5C00 */ + } > rom3.FILE_2C5C00 + .FILE_2C9C00 : AT (0x2C9C00) { + FILE_2C9C00.o (.text) /* 0x2C9C00 */ + } > rom3.FILE_2C9C00 + .FILE_2C9E00 : AT (0x2C9E00) { + FILE_2C9E00.o (.text) /* 0x2C9E00 */ + } > rom3.FILE_2C9E00 + .FILE_2CEA00 : AT (0x2CEA00) { + FILE_2CEA00.o (.text) /* 0x2CEA00 */ + } > rom3.FILE_2CEA00 + .FILE_2CFE00 : AT (0x2CFE00) { + FILE_2CFE00.o (.text) /* 0x2CFE00 */ + } > rom3.FILE_2CFE00 + .FILE_2D5C00 : AT (0x2D5C00) { + FILE_2D5C00.o (.text) /* 0x2D5C00 */ + } > rom3.FILE_2D5C00 + .FILE_2D7C00 : AT (0x2D7C00) { + FILE_2D7C00.o (.text) /* 0x2D7C00 */ + } > rom3.FILE_2D7C00 + .FILE_2D9800 : AT (0x2D9800) { + FILE_2D9800.o (.text) /* 0x2D9800 */ + } > rom3.FILE_2D9800 + .FILE_2D9E00 : AT (0x2D9E00) { + FILE_2D9E00.o (.text) /* 0x2D9E00 */ + } > rom3.FILE_2D9E00 + .FILE_2DF200 : AT (0x2DF200) { + FILE_2DF200.o (.text) /* 0x2DF200 */ + } > rom3.FILE_2DF200 + .FILE_2E9A00 : AT (0x2E9A00) { + FILE_2E9A00.o (.text) /* 0x2E9A00 */ + } > rom3.FILE_2E9A00 + .FILE_2EF000 : AT (0x2EF000) { + FILE_2EF000.o (.text) /* 0x2EF000 */ + } > rom3.FILE_2EF000 + .FILE_2F1600 : AT (0x2F1600) { + FILE_2F1600.o (.text) /* 0x2F1600 */ + } > rom3.FILE_2F1600 + .FILE_2FFA00 : AT (0x2FFA00) { + FILE_2FFA00.o (.text) /* 0x2FFA00 */ + } > rom3.FILE_2FFA00 + .FILE_303400 : AT (0x303400) { + FILE_303400.o (.text) /* 0x303400 */ + } > rom3.FILE_303400 + .FILE_30C600 : AT (0x30C600) { + FILE_30C600.o (.text) /* 0x30C600 */ + } > rom3.FILE_30C600 + .arm7 : AT(0x30D000) { arm7_rom.o(.text) } > arm7 - - .gap2 : AT(0x33631C) { - gap2.o (.text) - } > gap2 - + .filenametable : AT(0x336400) { filenametable.o(.text) } > filenametable + + .fileallocationtable : AT(0x337A00) { + fat.o(.text) + } > fileallocationtable + + .icon_title : AT(0x338600) { + icon.o(.text) + title.o(.text) + } > icon_title + + .FILE_339000 : AT (0x339000) { + FILE_339000_UTF16.dat.o (.text) /* 0x339000 */ + } > narc.FILE_339000 + .FILE_339200 : AT (0x339200) { + FILE_339200_area00light.txt.o (.text) /* 0x339200 */ + } > narc.FILE_339200 + .FILE_339C00 : AT (0x339C00) { + FILE_339C00_area01light.txt.o (.text) /* 0x339C00 */ + } > narc.FILE_339C00 + .FILE_33A400 : AT (0x33A400) { + FILE_33A400_area02light.txt.o (.text) /* 0x33A400 */ + } > narc.FILE_33A400 + .FILE_33AE00 : AT (0x33AE00) { + FILE_33AE00_battle_win.NSCR.o (.text) /* 0x33AE00 */ + } > narc.FILE_33AE00 + .FILE_33B800 : AT (0x33B800) { + FILE_33B800_btower_canm.resdat.o (.text) /* 0x33B800 */ + } > narc.FILE_33B800 + .FILE_33BA00 : AT (0x33BA00) { + FILE_33BA00_btower_celact.cldat.o (.text) /* 0x33BA00 */ + } > narc.FILE_33BA00 + .FILE_33BC00 : AT (0x33BC00) { + FILE_33BC00_btower_cell.resdat.o (.text) /* 0x33BC00 */ + } > narc.FILE_33BC00 + .FILE_33BE00 : AT (0x33BE00) { + FILE_33BE00_btower_chr.resdat.o (.text) /* 0x33BE00 */ + } > narc.FILE_33BE00 + .FILE_33C000 : AT (0x33C000) { + FILE_33C000_btower_pal.resdat.o (.text) /* 0x33C000 */ + } > narc.FILE_33C000 + .FILE_33C200 : AT (0x33C200) { + FILE_33C200_cell0.NCGR.o (.text) /* 0x33C200 */ + } > narc.FILE_33C200 + .FILE_33E400 : AT (0x33E400) { + FILE_33E400_cell0.NCLR.o (.text) /* 0x33E400 */ + } > narc.FILE_33E400 + .FILE_33E800 : AT (0x33E800) { + FILE_33E800_clact_default.NANR.o (.text) /* 0x33E800 */ + } > narc.FILE_33E800 + .FILE_33EA00 : AT (0x33EA00) { + FILE_33EA00_crystal.nsbmd.o (.text) /* 0x33EA00 */ + } > narc.FILE_33EA00 + .FILE_33F800 : AT (0x33F800) { + FILE_33F800_demo_climax.narc.o (.text) /* 0x33F800 */ + } > narc.FILE_33F800 + .FILE_3B3000 : AT (0x3B3000) { + FILE_3B3000_dp_areawindow.NCGR.o (.text) /* 0x3B3000 */ + } > narc.FILE_3B3000 + .FILE_3B3200 : AT (0x3B3200) { + FILE_3B3200_dp_areawindow.NCLR.o (.text) /* 0x3B3200 */ + } > narc.FILE_3B3200 + .FILE_3B3600 : AT (0x3B3600) { + FILE_3B3600_dt_test_celact.txt.o (.text) /* 0x3B3600 */ + } > narc.FILE_3B3600 + .FILE_3B3800 : AT (0x3B3800) { + FILE_3B3800_dt_test_res_cell.txt.o (.text) /* 0x3B3800 */ + } > narc.FILE_3B3800 + .FILE_3B3A00 : AT (0x3B3A00) { + FILE_3B3A00_dt_test_res_cellanm.txt.o (.text) /* 0x3B3A00 */ + } > narc.FILE_3B3A00 + .FILE_3B3C00 : AT (0x3B3C00) { + FILE_3B3C00_dt_test_res_char.txt.o (.text) /* 0x3B3C00 */ + } > narc.FILE_3B3C00 + .FILE_3B3E00 : AT (0x3B3E00) { + FILE_3B3E00_dt_test_res_multi.txt.o (.text) /* 0x3B3E00 */ + } > narc.FILE_3B3E00 + .FILE_3B4000 : AT (0x3B4000) { + FILE_3B4000_dt_test_res_multianm.txt.o (.text) /* 0x3B4000 */ + } > narc.FILE_3B4000 + .FILE_3B4200 : AT (0x3B4200) { + FILE_3B4200_dt_test_res_pltt.txt.o (.text) /* 0x3B4200 */ + } > narc.FILE_3B4200 + .FILE_3B4400 : AT (0x3B4400) { + FILE_3B4400_dun_sea.nsbtx.o (.text) /* 0x3B4400 */ + } > narc.FILE_3B4400 + .FILE_3B4A00 : AT (0x3B4A00) { + FILE_3B4A00_eoo.dat.o (.text) /* 0x3B4A00 */ + } > narc.FILE_3B4A00 + .FILE_3FAA00 : AT (0x3FAA00) { + FILE_3FAA00_exdata.dat.o (.text) /* 0x3FAA00 */ + } > narc.FILE_3FAA00 + .FILE_3FAC00 : AT (0x3FAC00) { + FILE_3FAC00_field_cutin.narc.o (.text) /* 0x3FAC00 */ + } > narc.FILE_3FAC00 + .FILE_408000 : AT (0x408000) { + FILE_408000_fld_anime0.bin.o (.text) /* 0x408000 */ + } > narc.FILE_408000 + .FILE_408200 : AT (0x408200) { + FILE_408200_fld_anime1.bin.o (.text) /* 0x408200 */ + } > narc.FILE_408200 + .FILE_408400 : AT (0x408400) { + FILE_408400_fld_anime10.bin.o (.text) /* 0x408400 */ + } > narc.FILE_408400 + .FILE_408600 : AT (0x408600) { + FILE_408600_fld_anime2.bin.o (.text) /* 0x408600 */ + } > narc.FILE_408600 + .FILE_408800 : AT (0x408800) { + FILE_408800_fld_anime3.bin.o (.text) /* 0x408800 */ + } > narc.FILE_408800 + .FILE_408A00 : AT (0x408A00) { + FILE_408A00_fld_anime4.bin.o (.text) /* 0x408A00 */ + } > narc.FILE_408A00 + .FILE_408C00 : AT (0x408C00) { + FILE_408C00_fld_anime5.bin.o (.text) /* 0x408C00 */ + } > narc.FILE_408C00 + .FILE_408E00 : AT (0x408E00) { + FILE_408E00_fld_anime6.bin.o (.text) /* 0x408E00 */ + } > narc.FILE_408E00 + .FILE_409000 : AT (0x409000) { + FILE_409000_fld_anime7.bin.o (.text) /* 0x409000 */ + } > narc.FILE_409000 + .FILE_409200 : AT (0x409200) { + FILE_409200_fld_anime8.bin.o (.text) /* 0x409200 */ + } > narc.FILE_409200 + .FILE_409400 : AT (0x409400) { + FILE_409400_fld_anime9.bin.o (.text) /* 0x409400 */ + } > narc.FILE_409400 + .FILE_409600 : AT (0x409600) { + FILE_409600_fs_kanban.nsbca.o (.text) /* 0x409600 */ + } > narc.FILE_409600 + .FILE_409E00 : AT (0x409E00) { + FILE_409E00_ground0.NCGR.o (.text) /* 0x409E00 */ + } > narc.FILE_409E00 + .FILE_412000 : AT (0x412000) { + FILE_412000_ground0.NCLR.o (.text) /* 0x412000 */ + } > narc.FILE_412000 + .FILE_412400 : AT (0x412400) { + FILE_412400_ground0.NSCR.o (.text) /* 0x412400 */ + } > narc.FILE_412400 + .FILE_412E00 : AT (0x412E00) { + FILE_412E00_kemu_itpconv.dat.o (.text) /* 0x412E00 */ + } > narc.FILE_412E00 + .FILE_413000 : AT (0x413000) { + FILE_413000_lake_anim.nsbtx.o (.text) /* 0x413000 */ + } > narc.FILE_413000 + .FILE_414200 : AT (0x414200) { + FILE_414200_miniasahamabe.nsbtx.o (.text) /* 0x414200 */ + } > narc.FILE_414200 + .FILE_415400 : AT (0x415400) { + FILE_415400_miniasasea.nsbtx.o (.text) /* 0x415400 */ + } > narc.FILE_415400 + .FILE_415A00 : AT (0x415A00) { + FILE_415A00_minihamabe.nsbtx.o (.text) /* 0x415A00 */ + } > narc.FILE_415A00 + .FILE_416C00 : AT (0x416C00) { + FILE_416C00_minimum.nsbtx.o (.text) /* 0x416C00 */ + } > narc.FILE_416C00 + .FILE_417200 : AT (0x417200) { + FILE_417200_minirhana.nsbtx.o (.text) /* 0x417200 */ + } > narc.FILE_417200 + .FILE_417600 : AT (0x417600) { + FILE_417600_namein.narc.o (.text) /* 0x417600 */ + } > narc.FILE_417600 + .FILE_41B600 : AT (0x41B600) { + FILE_41B600_nfont.NCGR.o (.text) /* 0x41B600 */ + } > narc.FILE_41B600 + .FILE_423800 : AT (0x423800) { + FILE_423800_nfont.NCLR.o (.text) /* 0x423800 */ + } > narc.FILE_423800 + .FILE_423C00 : AT (0x423C00) { + FILE_423C00_pc.nsbca.o (.text) /* 0x423C00 */ + } > narc.FILE_423C00 + .FILE_423E00 : AT (0x423E00) { + FILE_423E00_plist_canm.resdat.o (.text) /* 0x423E00 */ + } > narc.FILE_423E00 + .FILE_424000 : AT (0x424000) { + FILE_424000_plist_cell.resdat.o (.text) /* 0x424000 */ + } > narc.FILE_424000 + .FILE_424200 : AT (0x424200) { + FILE_424200_plist_chr.resdat.o (.text) /* 0x424200 */ + } > narc.FILE_424200 + .FILE_424400 : AT (0x424400) { + FILE_424400_plist_h.cldat.o (.text) /* 0x424400 */ + } > narc.FILE_424400 + .FILE_424600 : AT (0x424600) { + FILE_424600_plist_pal.resdat.o (.text) /* 0x424600 */ + } > narc.FILE_424600 + .FILE_424800 : AT (0x424800) { + FILE_424800_porucase_canm.resdat.o (.text) /* 0x424800 */ + } > narc.FILE_424800 + .FILE_424A00 : AT (0x424A00) { + FILE_424A00_porucase_celact.cldat.o (.text) /* 0x424A00 */ + } > narc.FILE_424A00 + .FILE_424C00 : AT (0x424C00) { + FILE_424C00_porucase_cell.resdat.o (.text) /* 0x424C00 */ + } > narc.FILE_424C00 + .FILE_424E00 : AT (0x424E00) { + FILE_424E00_porucase_chr.resdat.o (.text) /* 0x424E00 */ + } > narc.FILE_424E00 + .FILE_425000 : AT (0x425000) { + FILE_425000_porucase_pal.resdat.o (.text) /* 0x425000 */ + } > narc.FILE_425000 + .FILE_425200 : AT (0x425200) { + FILE_425200_pst_canm.resdat.o (.text) /* 0x425200 */ + } > narc.FILE_425200 + .FILE_425400 : AT (0x425400) { + FILE_425400_pst_cell.resdat.o (.text) /* 0x425400 */ + } > narc.FILE_425400 + .FILE_425600 : AT (0x425600) { + FILE_425600_pst_chr.resdat.o (.text) /* 0x425600 */ + } > narc.FILE_425600 + .FILE_425C00 : AT (0x425C00) { + FILE_425C00_pst_h.cldat.o (.text) /* 0x425C00 */ + } > narc.FILE_425C00 + .FILE_426200 : AT (0x426200) { + FILE_426200_pst_pal.resdat.o (.text) /* 0x426200 */ + } > narc.FILE_426200 + .FILE_426400 : AT (0x426400) { + FILE_426400_shop_canm.resdat.o (.text) /* 0x426400 */ + } > narc.FILE_426400 + .FILE_426600 : AT (0x426600) { + FILE_426600_shop_cell.resdat.o (.text) /* 0x426600 */ + } > narc.FILE_426600 + .FILE_426800 : AT (0x426800) { + FILE_426800_shop_chr.resdat.o (.text) /* 0x426800 */ + } > narc.FILE_426800 + .FILE_426A00 : AT (0x426A00) { + FILE_426A00_shop_h.cldat.o (.text) /* 0x426A00 */ + } > narc.FILE_426A00 + .FILE_426C00 : AT (0x426C00) { + FILE_426C00_shop_pal.resdat.o (.text) /* 0x426C00 */ + } > narc.FILE_426C00 + .FILE_426E00 : AT (0x426E00) { + FILE_426E00_slot.narc.o (.text) /* 0x426E00 */ + } > narc.FILE_426E00 + .FILE_43C800 : AT (0x43C800) { + FILE_43C800_smptm_koori.NANR.o (.text) /* 0x43C800 */ + } > narc.FILE_43C800 + .FILE_43CA00 : AT (0x43CA00) { + FILE_43CA00_smptm_koori.NCER.o (.text) /* 0x43CA00 */ + } > narc.FILE_43CA00 + .FILE_43CC00 : AT (0x43CC00) { + FILE_43CC00_smptm_koori.NCGR.o (.text) /* 0x43CC00 */ + } > narc.FILE_43CC00 + .FILE_43DA00 : AT (0x43DA00) { + FILE_43DA00_smptm_koori.NCLR.o (.text) /* 0x43DA00 */ + } > narc.FILE_43DA00 + .FILE_43DE00 : AT (0x43DE00) { + FILE_43DE00_smptm_nemuri.NANR.o (.text) /* 0x43DE00 */ + } > narc.FILE_43DE00 + .FILE_43E000 : AT (0x43E000) { + FILE_43E000_smptm_nemuri.NCER.o (.text) /* 0x43E000 */ + } > narc.FILE_43E000 + .FILE_43E200 : AT (0x43E200) { + FILE_43E200_smptm_nemuri.NCGR.o (.text) /* 0x43E200 */ + } > narc.FILE_43E200 + .FILE_43E600 : AT (0x43E600) { + FILE_43E600_smptm_nemuri.NCLR.o (.text) /* 0x43E600 */ + } > narc.FILE_43E600 + .FILE_43EA00 : AT (0x43EA00) { + FILE_43EA00_t3_fl_b.nsbtx.o (.text) /* 0x43EA00 */ + } > narc.FILE_43EA00 + .FILE_43EE00 : AT (0x43EE00) { + FILE_43EE00_t3_fl_p.nsbtx.o (.text) /* 0x43EE00 */ + } > narc.FILE_43EE00 + .FILE_43F200 : AT (0x43F200) { + FILE_43F200_t3_fl_r.nsbtx.o (.text) /* 0x43F200 */ + } > narc.FILE_43F200 + .FILE_43F600 : AT (0x43F600) { + FILE_43F600_t3_fl_y.nsbtx.o (.text) /* 0x43F600 */ + } > narc.FILE_43F600 + .FILE_43FA00 : AT (0x43FA00) { + FILE_43FA00_test.atr.o (.text) /* 0x43FA00 */ + } > narc.FILE_43FA00 + .FILE_440200 : AT (0x440200) { + FILE_440200_tmap_block.dat.o (.text) /* 0x440200 */ + } > narc.FILE_440200 + .FILE_441400 : AT (0x441400) { + FILE_441400_tmap_flags.dat.o (.text) /* 0x441400 */ + } > narc.FILE_441400 + .FILE_441800 : AT (0x441800) { + FILE_441800_tmapn_canm.resdat.o (.text) /* 0x441800 */ + } > narc.FILE_441800 + .FILE_441A00 : AT (0x441A00) { + FILE_441A00_tmapn_celact.cldat.o (.text) /* 0x441A00 */ + } > narc.FILE_441A00 + .FILE_441C00 : AT (0x441C00) { + FILE_441C00_tmapn_celact.txt.o (.text) /* 0x441C00 */ + } > narc.FILE_441C00 + .FILE_441E00 : AT (0x441E00) { + FILE_441E00_tmapn_cell.resdat.o (.text) /* 0x441E00 */ + } > narc.FILE_441E00 + .FILE_442000 : AT (0x442000) { + FILE_442000_tmapn_chr.resdat.o (.text) /* 0x442000 */ + } > narc.FILE_442000 + .FILE_442200 : AT (0x442200) { + FILE_442200_tmapn_pal.resdat.o (.text) /* 0x442200 */ + } > narc.FILE_442200 + .FILE_442400 : AT (0x442400) { + FILE_442400_tmapn_res_canm.txt.o (.text) /* 0x442400 */ + } > narc.FILE_442400 + .FILE_442600 : AT (0x442600) { + FILE_442600_tmapn_res_cell.txt.o (.text) /* 0x442600 */ + } > narc.FILE_442600 + .FILE_442800 : AT (0x442800) { + FILE_442800_tmapn_res_chr.txt.o (.text) /* 0x442800 */ + } > narc.FILE_442800 + .FILE_442A00 : AT (0x442A00) { + FILE_442A00_tmapn_res_pal.txt.o (.text) /* 0x442A00 */ + } > narc.FILE_442A00 + .FILE_442C00 : AT (0x442C00) { + FILE_442C00_tradelist.narc.o (.text) /* 0x442C00 */ + } > narc.FILE_442C00 + .FILE_445800 : AT (0x445800) { + FILE_445800_trapmark.narc.o (.text) /* 0x445800 */ + } > narc.FILE_445800 + .FILE_445C00 : AT (0x445C00) { + FILE_445C00_ug_anim.narc.o (.text) /* 0x445C00 */ + } > narc.FILE_445C00 + .FILE_44BA00 : AT (0x44BA00) { + FILE_44BA00_ug_base_cur.nsbmd.o (.text) /* 0x44BA00 */ + } > narc.FILE_44BA00 + .FILE_44C200 : AT (0x44C200) { + FILE_44C200_ug_boygirl.NCGR.o (.text) /* 0x44C200 */ + } > narc.FILE_44C200 + .FILE_44D600 : AT (0x44D600) { + FILE_44D600_ug_boygirl.NCLR.o (.text) /* 0x44D600 */ + } > narc.FILE_44D600 + .FILE_44DA00 : AT (0x44DA00) { + FILE_44DA00_ug_fossil.narc.o (.text) /* 0x44DA00 */ + } > narc.FILE_44DA00 + .FILE_451A00 : AT (0x451A00) { + FILE_451A00_ug_hero.NANR.o (.text) /* 0x451A00 */ + } > narc.FILE_451A00 + .FILE_451C00 : AT (0x451C00) { + FILE_451C00_ug_hero.NCER.o (.text) /* 0x451C00 */ + } > narc.FILE_451C00 + .FILE_451E00 : AT (0x451E00) { + FILE_451E00_ug_hole.NANR.o (.text) /* 0x451E00 */ + } > narc.FILE_451E00 + .FILE_452000 : AT (0x452000) { + FILE_452000_ug_hole.NCER.o (.text) /* 0x452000 */ + } > narc.FILE_452000 + .FILE_452200 : AT (0x452200) { + FILE_452200_ug_hole.NCGR.o (.text) /* 0x452200 */ + } > narc.FILE_452200 + .FILE_452800 : AT (0x452800) { + FILE_452800_ug_parts.narc.o (.text) /* 0x452800 */ + } > narc.FILE_452800 + .FILE_473000 : AT (0x473000) { + FILE_473000_ug_radar.narc.o (.text) /* 0x473000 */ + } > narc.FILE_473000 + .FILE_476A00 : AT (0x476A00) { + FILE_476A00_ug_trap.narc.o (.text) /* 0x476A00 */ + } > narc.FILE_476A00 + .FILE_494600 : AT (0x494600) { + FILE_494600_ugeffect_obj_graphic.narc.o (.text) /* 0x494600 */ + } > narc.FILE_494600 + .FILE_499400 : AT (0x499400) { + FILE_499400_uground_cell.resdat.o (.text) /* 0x499400 */ + } > narc.FILE_499400 + .FILE_499600 : AT (0x499600) { + FILE_499600_uground_cellanm.resdat.o (.text) /* 0x499600 */ + } > narc.FILE_499600 + .FILE_499800 : AT (0x499800) { + FILE_499800_uground_char.resdat.o (.text) /* 0x499800 */ + } > narc.FILE_499800 + .FILE_499A00 : AT (0x499A00) { + FILE_499A00_uground_char2.resdat.o (.text) /* 0x499A00 */ + } > narc.FILE_499A00 + .FILE_499C00 : AT (0x499C00) { + FILE_499C00_uground_clact.cldat.o (.text) /* 0x499C00 */ + } > narc.FILE_499C00 + .FILE_499E00 : AT (0x499E00) { + FILE_499E00_uground_pltt.resdat.o (.text) /* 0x499E00 */ + } > narc.FILE_499E00 + .FILE_49A000 : AT (0x49A000) { + FILE_49A000_uground_pltt2.resdat.o (.text) /* 0x49A000 */ + } > narc.FILE_49A000 + .FILE_49A200 : AT (0x49A200) { + FILE_49A200_underg_radar.narc.o (.text) /* 0x49A200 */ + } > narc.FILE_49A200 + .FILE_4A4600 : AT (0x4A4600) { + FILE_4A4600_utility.bin.o (.text) /* 0x4A4600 */ + } > narc.FILE_4A4600 + .FILE_57FC00 : AT (0x57FC00) { + FILE_57FC00_weather_sys.narc.o (.text) /* 0x57FC00 */ + } > narc.FILE_57FC00 + .FILE_58F600 : AT (0x58F600) { + FILE_58F600_wifi.ncgr.o (.text) /* 0x58F600 */ + } > narc.FILE_58F600 + .FILE_58FA00 : AT (0x58FA00) { + FILE_58FA00_wifinote.narc.o (.text) /* 0x58FA00 */ + } > narc.FILE_58FA00 + .FILE_593400 : AT (0x593400) { + FILE_593400_wifip2pmatch.narc.o (.text) /* 0x593400 */ + } > narc.FILE_593400 + .FILE_597400 : AT (0x597400) { + FILE_597400_wm.ncgr.o (.text) /* 0x597400 */ + } > narc.FILE_597400 + .FILE_597800 : AT (0x597800) { + FILE_597800_wm.nclr.o (.text) /* 0x597800 */ + } > narc.FILE_597800 + .FILE_597C00 : AT (0x597C00) { + FILE_597C00_sound_data.sdat.o (.text) /* 0x597C00 */ + } > narc.FILE_597C00 + .FILE_CBB200 : AT (0xCBB200) { + FILE_CBB200_msg.narc.o (.text) /* 0xCBB200 */ + } > narc.FILE_CBB200 + .FILE_F4D400 : AT (0xF4D400) { + FILE_F4D400_scr_msg.narc.o (.text) /* 0xF4D400 */ + } > narc.FILE_F4D400 + .FILE_F4F000 : AT (0xF4F000) { + FILE_F4F000_height.narc.o (.text) /* 0xF4F000 */ + } > narc.FILE_F4F000 + .FILE_F54C00 : AT (0xF54C00) { + FILE_F54C00_height_o.narc.o (.text) /* 0xF54C00 */ + } > narc.FILE_F54C00 + .FILE_F55400 : AT (0xF55400) { + FILE_F55400_otherpoke.narc.o (.text) /* 0xF55400 */ + } > narc.FILE_F55400 + .FILE_102EC00 : AT (0x102EC00) { + FILE_102EC00_poke_shadow.narc.o (.text) /* 0x102EC00 */ + } > narc.FILE_102EC00 + .FILE_102F000 : AT (0x102F000) { + FILE_102F000_poke_shadow_ofx.narc.o (.text) /* 0x102F000 */ + } > narc.FILE_102F000 + .FILE_102F400 : AT (0x102F400) { + FILE_102F400_poke_yofs.narc.o (.text) /* 0x102F400 */ + } > narc.FILE_102F400 + .FILE_102F800 : AT (0x102F800) { + FILE_102F800_pokegra.narc.o (.text) /* 0x102F800 */ + } > narc.FILE_102F800 + .FILE_1B6B400 : AT (0x1B6B400) { + FILE_1B6B400_trbgra.narc.o (.text) /* 0x1B6B400 */ + } > narc.FILE_1B6B400 + .FILE_1B78200 : AT (0x1B78200) { + FILE_1B78200_trfgra.narc.o (.text) /* 0x1B78200 */ + } > narc.FILE_1B78200 + .FILE_1C14A00 : AT (0x1C14A00) { + FILE_1C14A00_personal.narc.o (.text) /* 0x1C14A00 */ + } > narc.FILE_1C14A00 + .FILE_1C1B000 : AT (0x1C1B000) { + FILE_1C1B000_evo.narc.o (.text) /* 0x1C1B000 */ + } > narc.FILE_1C1B000 + .FILE_1C21600 : AT (0x1C21600) { + FILE_1C21600_growtbl.narc.o (.text) /* 0x1C21600 */ + } > narc.FILE_1C21600 + .FILE_1C22400 : AT (0x1C22400) { + FILE_1C22400_pms.narc.o (.text) /* 0x1C22400 */ + } > narc.FILE_1C22400 + .FILE_1C22800 : AT (0x1C22800) { + FILE_1C22800_wotbl.narc.o (.text) /* 0x1C22800 */ + } > narc.FILE_1C22800 + .FILE_1C27200 : AT (0x1C27200) { + FILE_1C27200_trdata.narc.o (.text) /* 0x1C27200 */ + } > narc.FILE_1C27200 + .FILE_1C2D000 : AT (0x1C2D000) { + FILE_1C2D000_trpoke.narc.o (.text) /* 0x1C2D000 */ + } > narc.FILE_1C2D000 + .FILE_1C32600 : AT (0x1C32600) { + FILE_1C32600_trtbl.narc.o (.text) /* 0x1C32600 */ + } > narc.FILE_1C32600 + .FILE_1C34C00 : AT (0x1C34C00) { + FILE_1C34C00_trtblofs.narc.o (.text) /* 0x1C34C00 */ + } > narc.FILE_1C34C00 + .FILE_1C35400 : AT (0x1C35400) { + FILE_1C35400_b_bag_gra.narc.o (.text) /* 0x1C35400 */ + } > narc.FILE_1C35400 + .FILE_1C3A400 : AT (0x1C3A400) { + FILE_1C3A400_b_plist_gra.narc.o (.text) /* 0x1C3A400 */ + } > narc.FILE_1C3A400 + .FILE_1C4C800 : AT (0x1C4C800) { + FILE_1C4C800_batt_bg.narc.o (.text) /* 0x1C4C800 */ + } > narc.FILE_1C4C800 + .FILE_1CE8E00 : AT (0x1CE8E00) { + FILE_1CE8E00_batt_obj.narc.o (.text) /* 0x1CE8E00 */ + } > narc.FILE_1CE8E00 + .FILE_1D09200 : AT (0x1D09200) { + FILE_1D09200_vs_demo_gra.narc.o (.text) /* 0x1D09200 */ + } > narc.FILE_1D09200 + .FILE_1D0E400 : AT (0x1D0E400) { + FILE_1D0E400_we.arc.o (.text) /* 0x1D0E400 */ + } > narc.FILE_1D0E400 + .FILE_1D4C600 : AT (0x1D4C600) { + FILE_1D4C600_we_sub.narc.o (.text) /* 0x1D4C600 */ + } > narc.FILE_1D4C600 + .FILE_1D4F800 : AT (0x1D4F800) { + FILE_1D4F800_be_seq.narc.o (.text) /* 0x1D4F800 */ + } > narc.FILE_1D4F800 + .FILE_1D53A00 : AT (0x1D53A00) { + FILE_1D53A00_sub_seq.narc.o (.text) /* 0x1D53A00 */ + } > narc.FILE_1D53A00 + .FILE_1D60200 : AT (0x1D60200) { + FILE_1D60200_waza_seq.narc.o (.text) /* 0x1D60200 */ + } > narc.FILE_1D60200 + .FILE_1D61C00 : AT (0x1D61C00) { + FILE_1D61C00_wecell.narc.o (.text) /* 0x1D61C00 */ + } > narc.FILE_1D61C00 + .FILE_1D63200 : AT (0x1D63200) { + FILE_1D63200_wecellanm.narc.o (.text) /* 0x1D63200 */ + } > narc.FILE_1D63200 + .FILE_1D64600 : AT (0x1D64600) { + FILE_1D64600_wechar.narc.o (.text) /* 0x1D64600 */ + } > narc.FILE_1D64600 + .FILE_1D6C800 : AT (0x1D6C800) { + FILE_1D6C800_wepltt.narc.o (.text) /* 0x1D6C800 */ + } > narc.FILE_1D6C800 + .FILE_1D6DA00 : AT (0x1D6DA00) { + FILE_1D6DA00_waza_tbl.narc.o (.text) /* 0x1D6DA00 */ + } > narc.FILE_1D6DA00 + .FILE_1D70800 : AT (0x1D70800) { + FILE_1D70800_scr_seq_release.narc.o (.text) /* 0x1D70800 */ + } > narc.FILE_1D70800 + .FILE_1DA6200 : AT (0x1DA6200) { + FILE_1DA6200_bag_gra.narc.o (.text) /* 0x1DA6200 */ + } > narc.FILE_1DA6200 + .FILE_1DC0000 : AT (0x1DC0000) { + FILE_1DC0000_box.narc.o (.text) /* 0x1DC0000 */ + } > narc.FILE_1DC0000 + .FILE_1DDBC00 : AT (0x1DDBC00) { + FILE_1DDBC00_btower.narc.o (.text) /* 0x1DDBC00 */ + } > narc.FILE_1DDBC00 + .FILE_1DDFE00 : AT (0x1DDFE00) { + FILE_1DDFE00_config_gra.narc.o (.text) /* 0x1DDFE00 */ + } > narc.FILE_1DDFE00 + .FILE_1DE0200 : AT (0x1DE0200) { + FILE_1DE0200_demo_trade.narc.o (.text) /* 0x1DE0200 */ + } > narc.FILE_1DE0200 + .FILE_1DE7E00 : AT (0x1DE7E00) { + FILE_1DE7E00_dendou_demo.narc.o (.text) /* 0x1DE7E00 */ + } > narc.FILE_1DE7E00 + .FILE_1DE8600 : AT (0x1DE8600) { + FILE_1DE8600_dendou_pc.narc.o (.text) /* 0x1DE8600 */ + } > narc.FILE_1DE8600 + .FILE_1DE8A00 : AT (0x1DE8A00) { + FILE_1DE8A00_ending.narc.o (.text) /* 0x1DE8A00 */ + } > narc.FILE_1DE8A00 + .FILE_1E3A200 : AT (0x1E3A200) { + FILE_1E3A200_ev_pokeselect.narc.o (.text) /* 0x1E3A200 */ + } > narc.FILE_1E3A200 + .FILE_1E5C800 : AT (0x1E5C800) { + FILE_1E5C800_f_note_gra.narc.o (.text) /* 0x1E5C800 */ + } > narc.FILE_1E5C800 + .FILE_1E5F200 : AT (0x1E5F200) { + FILE_1E5F200_field_board.narc.o (.text) /* 0x1E5F200 */ + } > narc.FILE_1E5F200 + .FILE_1E69C00 : AT (0x1E69C00) { + FILE_1E69C00_field_encounteffect.narc.o (.text) /* 0x1E69C00 */ + } > narc.FILE_1E69C00 + .FILE_1E73400 : AT (0x1E73400) { + FILE_1E73400_fld_comact.narc.o (.text) /* 0x1E73400 */ + } > narc.FILE_1E73400 + .FILE_1E73800 : AT (0x1E73800) { + FILE_1E73800_font.narc.o (.text) /* 0x1E73800 */ + } > narc.FILE_1E73800 + .FILE_1E94800 : AT (0x1E94800) { + FILE_1E94800_fontoam.narc.o (.text) /* 0x1E94800 */ + } > narc.FILE_1E94800 + .FILE_1E94E00 : AT (0x1E94E00) { + FILE_1E94E00_hiden_effect.narc.o (.text) /* 0x1E94E00 */ + } > narc.FILE_1E94E00 + .FILE_1E9CE00 : AT (0x1E9CE00) { + FILE_1E9CE00_imageclip.narc.o (.text) /* 0x1E9CE00 */ + } > narc.FILE_1E9CE00 + .FILE_1EDB600 : AT (0x1EDB600) { + FILE_1EDB600_mail_gra.narc.o (.text) /* 0x1EDB600 */ + } > narc.FILE_1EDB600 + .FILE_1EF5800 : AT (0x1EF5800) { + FILE_1EF5800_menu_gra.narc.o (.text) /* 0x1EF5800 */ + } > narc.FILE_1EF5800 + .FILE_1EFA400 : AT (0x1EFA400) { + FILE_1EFA400_mysign.narc.o (.text) /* 0x1EFA400 */ + } > narc.FILE_1EFA400 + .FILE_1EFB600 : AT (0x1EFB600) { + FILE_1EFB600_mystery.narc.o (.text) /* 0x1EFB600 */ + } > narc.FILE_1EFB600 + .FILE_1F03000 : AT (0x1F03000) { + FILE_1F03000_ntag_gra.narc.o (.text) /* 0x1F03000 */ + } > narc.FILE_1F03000 + .FILE_1F30000 : AT (0x1F30000) { + FILE_1F30000_nutmixer.narc.o (.text) /* 0x1F30000 */ + } > narc.FILE_1F30000 + .FILE_1F5C400 : AT (0x1F5C400) { + FILE_1F5C400_oekaki.narc.o (.text) /* 0x1F5C400 */ + } > narc.FILE_1F5C400 + .FILE_1F5DA00 : AT (0x1F5DA00) { + FILE_1F5DA00_opening.narc.o (.text) /* 0x1F5DA00 */ + } > narc.FILE_1F5DA00 + .FILE_1F64600 : AT (0x1F64600) { + FILE_1F64600_plist_gra.narc.o (.text) /* 0x1F64600 */ + } > narc.FILE_1F64600 + .FILE_1F6E400 : AT (0x1F6E400) { + FILE_1F6E400_pmsi.narc.o (.text) /* 0x1F6E400 */ + } > narc.FILE_1F6E400 + .FILE_1F71600 : AT (0x1F71600) { + FILE_1F71600_poketch.narc.o (.text) /* 0x1F71600 */ + } > narc.FILE_1F71600 + .FILE_1F7FC00 : AT (0x1F7FC00) { + FILE_1F7FC00_poru_gra.narc.o (.text) /* 0x1F7FC00 */ + } > narc.FILE_1F7FC00 + .FILE_1F86600 : AT (0x1F86600) { + FILE_1F86600_poruact.narc.o (.text) /* 0x1F86600 */ + } > narc.FILE_1F86600 + .FILE_1F87C00 : AT (0x1F87C00) { + FILE_1F87C00_porudemo.narc.o (.text) /* 0x1F87C00 */ + } > narc.FILE_1F87C00 + .FILE_1F8A000 : AT (0x1F8A000) { + FILE_1F8A000_pst_gra.narc.o (.text) /* 0x1F8A000 */ + } > narc.FILE_1F8A000 + .FILE_1FA9200 : AT (0x1FA9200) { + FILE_1FA9200_ranking.narc.o (.text) /* 0x1FA9200 */ + } > narc.FILE_1FA9200 + .FILE_1FAA800 : AT (0x1FAA800) { + FILE_1FAA800_record.narc.o (.text) /* 0x1FAA800 */ + } > narc.FILE_1FAA800 + .FILE_1FB0200 : AT (0x1FB0200) { + FILE_1FB0200_shop_gra.narc.o (.text) /* 0x1FB0200 */ + } > narc.FILE_1FB0200 + .FILE_1FB2A00 : AT (0x1FB2A00) { + FILE_1FB2A00_tmap_gra.narc.o (.text) /* 0x1FB2A00 */ + } > narc.FILE_1FB2A00 + .FILE_1FC7A00 : AT (0x1FC7A00) { + FILE_1FC7A00_touch_subwindow.narc.o (.text) /* 0x1FC7A00 */ + } > narc.FILE_1FC7A00 + .FILE_1FC8400 : AT (0x1FC8400) { + FILE_1FC8400_trainer_case.narc.o (.text) /* 0x1FC8400 */ + } > narc.FILE_1FC8400 + .FILE_2000000 : AT (0x2000000) { + FILE_2000000_unionroom.narc.o (.text) /* 0x2000000 */ + } > narc.FILE_2000000 + .FILE_2001400 : AT (0x2001400) { + FILE_2001400_waza_oshie_gra.narc.o (.text) /* 0x2001400 */ + } > narc.FILE_2001400 + .FILE_2004400 : AT (0x2004400) { + FILE_2004400_winframe.narc.o (.text) /* 0x2004400 */ + } > narc.FILE_2004400 + .FILE_200CE00 : AT (0x200CE00) { + FILE_200CE00_worldtrade.narc.o (.text) /* 0x200CE00 */ + } > narc.FILE_200CE00 + .FILE_2018600 : AT (0x2018600) { + FILE_2018600_item_data.narc.o (.text) /* 0x2018600 */ + } > narc.FILE_2018600 + .FILE_201D400 : AT (0x201D400) { + FILE_201D400_item_icon.narc.o (.text) /* 0x201D400 */ + } > narc.FILE_201D400 + .FILE_207DE00 : AT (0x207DE00) { + FILE_207DE00_nuts_data.narc.o (.text) /* 0x207DE00 */ + } > narc.FILE_207DE00 + .FILE_207E400 : AT (0x207E400) { + FILE_207E400_poke_icon.narc.o (.text) /* 0x207E400 */ + } > narc.FILE_207E400 + .FILE_210B600 : AT (0x210B600) { + FILE_210B600_pokefoot.narc.o (.text) /* 0x210B600 */ + } > narc.FILE_210B600 + .FILE_2119C00 : AT (0x2119C00) { + FILE_2119C00_mmodel.narc.o (.text) /* 0x2119C00 */ + } > narc.FILE_2119C00 + .FILE_2242200 : AT (0x2242200) { + FILE_2242200_fldeff.narc.o (.text) /* 0x2242200 */ + } > narc.FILE_2242200 + .FILE_225E200 : AT (0x225E200) { + FILE_225E200_ball_particle.narc.o (.text) /* 0x225E200 */ + } > narc.FILE_225E200 + .FILE_22ACC00 : AT (0x22ACC00) { + FILE_22ACC00_waza_particle.narc.o (.text) /* 0x22ACC00 */ + } > narc.FILE_22ACC00 + .FILE_24F2600 : AT (0x24F2600) { + FILE_24F2600_debug_particle.narc.o (.text) /* 0x24F2600 */ + } > narc.FILE_24F2600 + .FILE_24F3200 : AT (0x24F3200) { + FILE_24F3200_zone_event_release.narc.o (.text) /* 0x24F3200 */ + } > narc.FILE_24F3200 + .FILE_2515600 : AT (0x2515600) { + FILE_2515600_d_enc_data.narc.o (.text) /* 0x2515600 */ + } > narc.FILE_2515600 + .FILE_2528C00 : AT (0x2528C00) { + FILE_2528C00_p_enc_data.narc.o (.text) /* 0x2528C00 */ + } > narc.FILE_2528C00 + .FILE_253C200 : AT (0x253C200) { + FILE_253C200_build_model.narc.o (.text) /* 0x253C200 */ + } > narc.FILE_253C200 + .FILE_2710800 : AT (0x2710800) { + FILE_2710800_build_model_matshp.dat.o (.text) /* 0x2710800 */ + } > narc.FILE_2710800 + .FILE_2712000 : AT (0x2712000) { + FILE_2712000_map_matrix.narc.o (.text) /* 0x2712000 */ + } > narc.FILE_2712000 + .FILE_2715000 : AT (0x2715000) { + FILE_2715000_area_data.narc.o (.text) /* 0x2715000 */ + } > narc.FILE_2715000 + .FILE_2715400 : AT (0x2715400) { + FILE_2715400_area_build.narc.o (.text) /* 0x2715400 */ + } > narc.FILE_2715400 + .FILE_2716800 : AT (0x2716800) { + FILE_2716800_areabm_texset.narc.o (.text) /* 0x2716800 */ + } > narc.FILE_2716800 + .FILE_283BE00 : AT (0x283BE00) { + FILE_283BE00_map_tex_set.narc.o (.text) /* 0x283BE00 */ + } > narc.FILE_283BE00 + .FILE_296EC00 : AT (0x296EC00) { + FILE_296EC00_move_model_list.narc.o (.text) /* 0x296EC00 */ + } > narc.FILE_296EC00 + .FILE_296F200 : AT (0x296F200) { + FILE_296F200_land_data_release.narc.o (.text) /* 0x296F200 */ + } > narc.FILE_296F200 + .FILE_3787200 : AT (0x3787200) { + FILE_3787200_contest_bg.narc.o (.text) /* 0x3787200 */ + } > narc.FILE_3787200 + .FILE_379AE00 : AT (0x379AE00) { + FILE_379AE00_contest_obj.narc.o (.text) /* 0x379AE00 */ + } > narc.FILE_379AE00 + .FILE_37A0C00 : AT (0x37A0C00) { + FILE_37A0C00_contest_data.narc.o (.text) /* 0x37A0C00 */ + } > narc.FILE_37A0C00 + .FILE_37A4400 : AT (0x37A4400) { + FILE_37A4400_particledata.narc.o (.text) /* 0x37A4400 */ + } > narc.FILE_37A4400 + .FILE_37ACA00 : AT (0x37ACA00) { + FILE_37ACA00_zukan_data.narc.o (.text) /* 0x37ACA00 */ + } > narc.FILE_37ACA00 + .FILE_37B2400 : AT (0x37B2400) { + FILE_37B2400_wifi_earth.narc.o (.text) /* 0x37B2400 */ + } > narc.FILE_37B2400 + .FILE_37D7800 : AT (0x37D7800) { + FILE_37D7800_wifi_earth_place.narc.o (.text) /* 0x37D7800 */ + } > narc.FILE_37D7800 + .FILE_37D8600 : AT (0x37D8600) { + FILE_37D8600_titledemo.narc.o (.text) /* 0x37D8600 */ + } > narc.FILE_37D8600 + .FILE_3810200 : AT (0x3810200) { + FILE_3810200_cb_data.narc.o (.text) /* 0x3810200 */ + } > narc.FILE_3810200 + .FILE_381F000 : AT (0x381F000) { + FILE_381F000_egg_data.narc.o (.text) /* 0x381F000 */ + } > narc.FILE_381F000 + .FILE_3821C00 : AT (0x3821C00) { + FILE_3821C00_egg_demo_particle.narc.o (.text) /* 0x3821C00 */ + } > narc.FILE_3821C00 + .FILE_3824200 : AT (0x3824200) { + FILE_3824200_move_model_list.narc.o (.text) /* 0x3824200 */ + } > narc.FILE_3824200 + .FILE_3824600 : AT (0x3824600) { + FILE_3824600_poke_anm.narc.o (.text) /* 0x3824600 */ + } > narc.FILE_3824600 + .FILE_382AA00 : AT (0x382AA00) { + FILE_382AA00_tr_ai_seq.narc.o (.text) /* 0x382AA00 */ + } > narc.FILE_382AA00 + .FILE_3835000 : AT (0x3835000) { + FILE_3835000_bm_anime.narc.o (.text) /* 0x3835000 */ + } > narc.FILE_3835000 + .FILE_383E200 : AT (0x383E200) { + FILE_383E200_bm_anime_list.narc.o (.text) /* 0x383E200 */ + } > narc.FILE_383E200 + .FILE_3841E00 : AT (0x3841E00) { + FILE_3841E00_encdata_ex.narc.o (.text) /* 0x3841E00 */ + } > narc.FILE_3841E00 + .FILE_3842600 : AT (0x3842600) { + FILE_3842600_ppark.narc.o (.text) /* 0x3842600 */ + } > narc.FILE_3842600 + .FILE_3843200 : AT (0x3843200) { + FILE_3843200_ship_demo.narc.o (.text) /* 0x3843200 */ + } > narc.FILE_3843200 + .FILE_385A600 : AT (0x385A600) { + FILE_385A600_tv.narc.o (.text) /* 0x385A600 */ + } > narc.FILE_385A600 + .FILE_385AA00 : AT (0x385AA00) { + FILE_385AA00_mapname.bin.o (.text) /* 0x385AA00 */ + } > narc.FILE_385AA00 + .FILE_385CE00 : AT (0x385CE00) { + FILE_385CE00_pokezukan.narc.o (.text) /* 0x385CE00 */ + } > narc.FILE_385CE00 + .FILE_385D400 : AT (0x385D400) { + FILE_385D400_shinzukan.narc.o (.text) /* 0x385D400 */ + } > narc.FILE_385D400 + .FILE_385D600 : AT (0x385D600) { + FILE_385D600_pokeanm.narc.o (.text) /* 0x385D600 */ + } > narc.FILE_385D600 + .FILE_3860E00 : AT (0x3860E00) { + FILE_3860E00_fld_trade.narc.o (.text) /* 0x3860E00 */ + } > narc.FILE_3860E00 + .FILE_3861000 : AT (0x3861000) { + FILE_3861000_shinka_demo_particle.narc.o (.text) /* 0x3861000 */ + } > narc.FILE_3861000 + .FILE_3863600 : AT (0x3863600) { + FILE_3863600_intro.narc.o (.text) /* 0x3863600 */ + } > narc.FILE_3863600 + .FILE_387EA00 : AT (0x387EA00) { + FILE_387EA00_intro_tv.narc.o (.text) /* 0x387EA00 */ + } > narc.FILE_387EA00 + .FILE_388CA00 : AT (0x388CA00) { + FILE_388CA00_op_demo.narc.o (.text) /* 0x388CA00 */ + } > narc.FILE_388CA00 + .FILE_3923C00 : AT (0x3923C00) { + FILE_3923C00_syoujyou.narc.o (.text) /* 0x3923C00 */ + } > narc.FILE_3923C00 + .FILE_392A200 : AT (0x392A200) { + FILE_392A200_btdpm.narc.o (.text) /* 0x392A200 */ + } > narc.FILE_392A200 + .FILE_392FC00 : AT (0x392FC00) { + FILE_392FC00_btdtr.narc.o (.text) /* 0x392FC00 */ + } > narc.FILE_392FC00 + .FILE_3938000 : AT (0x3938000) { + FILE_3938000_zukan_enc_diamond.narc.o (.text) /* 0x3938000 */ + } > narc.FILE_3938000 + .FILE_3949800 : AT (0x3949800) { + FILE_3949800_zukan_enc_pearl.narc.o (.text) /* 0x3949800 */ + } > narc.FILE_3949800 + .FILE_395B000 : AT (0x395B000) { + FILE_395B000_trial.narc.o (.text) /* 0x395B000 */ + } > narc.FILE_395B000 + .FILE_3968C00 : AT (0x3968C00) { + FILE_3968C00_zukan.narc.o (.text) /* 0x3968C00 */ + } > narc.FILE_3968C00 + .FILE_397AA00 : AT (0x397AA00) { + FILE_397AA00_utility.bin.o (.text) /* 0x397AA00 */ + } > narc.FILE_397AA00 } diff --git a/src/FUN_02000DF4.c b/src/FUN_02000DF4.c index f62d1bf8..0cc1c2dd 100644 --- a/src/FUN_02000DF4.c +++ b/src/FUN_02000DF4.c @@ -1,9 +1,4 @@ -typedef unsigned char u8; -typedef unsigned short u16; -typedef unsigned long u32; -typedef signed char s8; -typedef signed short s16; -typedef signed long s32; +#include "nitro.h" struct Unk2106FA0 { u8 filler0[0x8]; diff --git a/tools/jsonproc/.gitignore b/tools/jsonproc/.gitignore new file mode 100644 index 00000000..a613cf2d --- /dev/null +++ b/tools/jsonproc/.gitignore @@ -0,0 +1 @@ +jsonproc diff --git a/tools/jsonproc/Makefile b/tools/jsonproc/Makefile new file mode 100644 index 00000000..721da102 --- /dev/null +++ b/tools/jsonproc/Makefile @@ -0,0 +1,20 @@ +CXX := g++ + +CXXFLAGS := -Wall -std=c++11 -O2 + +INCLUDES := -I . + +SRCS := jsonproc.cpp + +HEADERS := jsonproc.h inja.hpp nlohmann/json.hpp + +.PHONY: all clean + +all: jsonproc + @: + +jsonproc: $(SRCS) $(HEADERS) + $(CXX) $(CXXFLAGS) $(INCLUDES) $(SRCS) -o $@ $(LDFLAGS) + +clean: + $(RM) jsonproc jsonproc.exe diff --git a/tools/jsonproc/inja.hpp b/tools/jsonproc/inja.hpp new file mode 100644 index 00000000..d5bf5bcb --- /dev/null +++ b/tools/jsonproc/inja.hpp @@ -0,0 +1,3529 @@ +// MIT License + +// Copyright (c) 2018 lbersch + +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: + +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. + +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + + +// --- + + +// Copyright (c) 2009-2018 FIRST +// All rights reserved. + +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of the FIRST nor the +// names of its contributors may be used to endorse or promote products +// derived from this software without specific prior written permission. + +// THIS SOFTWARE IS PROVIDED BY FIRST AND CONTRIBUTORS``AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY NONINFRINGEMENT AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL FIRST OR CONTRIBUTORS BE LIABLE FOR +// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#ifndef PANTOR_INJA_HPP +#define PANTOR_INJA_HPP + +#include <functional> +#include <iostream> +#include <map> +#include <memory> +#include <sstream> +#include <string> +#include <vector> + +#include <nlohmann/json.hpp> + +// #include "environment.hpp" +#ifndef PANTOR_INJA_ENVIRONMENT_HPP +#define PANTOR_INJA_ENVIRONMENT_HPP + +#include <memory> +#include <fstream> +#include <sstream> +#include <string> + +#include <nlohmann/json.hpp> + +// #include "config.hpp" +#ifndef PANTOR_INJA_CONFIG_HPP +#define PANTOR_INJA_CONFIG_HPP + +#include <functional> +#include <string> + +// #include "string_view.hpp" +// Copyright 2017-2019 by Martin Moene +// +// string-view lite, a C++17-like string_view for C++98 and later. +// For more information see https://github.com/martinmoene/string-view-lite +// +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + + + +#ifndef NONSTD_SV_LITE_H_INCLUDED +#define NONSTD_SV_LITE_H_INCLUDED + +#define string_view_lite_MAJOR 1 +#define string_view_lite_MINOR 1 +#define string_view_lite_PATCH 0 + +#define string_view_lite_VERSION nssv_STRINGIFY(string_view_lite_MAJOR) "." nssv_STRINGIFY(string_view_lite_MINOR) "." nssv_STRINGIFY(string_view_lite_PATCH) + +#define nssv_STRINGIFY( x ) nssv_STRINGIFY_( x ) +#define nssv_STRINGIFY_( x ) #x + +// string-view lite configuration: + +#define nssv_STRING_VIEW_DEFAULT 0 +#define nssv_STRING_VIEW_NONSTD 1 +#define nssv_STRING_VIEW_STD 2 + +#if !defined( nssv_CONFIG_SELECT_STRING_VIEW ) +# define nssv_CONFIG_SELECT_STRING_VIEW ( nssv_HAVE_STD_STRING_VIEW ? nssv_STRING_VIEW_STD : nssv_STRING_VIEW_NONSTD ) +#endif + +#if defined( nssv_CONFIG_SELECT_STD_STRING_VIEW ) || defined( nssv_CONFIG_SELECT_NONSTD_STRING_VIEW ) +# error nssv_CONFIG_SELECT_STD_STRING_VIEW and nssv_CONFIG_SELECT_NONSTD_STRING_VIEW are deprecated and removed, please use nssv_CONFIG_SELECT_STRING_VIEW=nssv_STRING_VIEW_... +#endif + +#ifndef nssv_CONFIG_STD_SV_OPERATOR +# define nssv_CONFIG_STD_SV_OPERATOR 0 +#endif + +#ifndef nssv_CONFIG_USR_SV_OPERATOR +# define nssv_CONFIG_USR_SV_OPERATOR 1 +#endif + +#ifdef nssv_CONFIG_CONVERSION_STD_STRING +# define nssv_CONFIG_CONVERSION_STD_STRING_CLASS_METHODS nssv_CONFIG_CONVERSION_STD_STRING +# define nssv_CONFIG_CONVERSION_STD_STRING_FREE_FUNCTIONS nssv_CONFIG_CONVERSION_STD_STRING +#endif + +#ifndef nssv_CONFIG_CONVERSION_STD_STRING_CLASS_METHODS +# define nssv_CONFIG_CONVERSION_STD_STRING_CLASS_METHODS 1 +#endif + +#ifndef nssv_CONFIG_CONVERSION_STD_STRING_FREE_FUNCTIONS +# define nssv_CONFIG_CONVERSION_STD_STRING_FREE_FUNCTIONS 1 +#endif + +// Control presence of exception handling (try and auto discover): + +#ifndef nssv_CONFIG_NO_EXCEPTIONS +# if defined(__cpp_exceptions) || defined(__EXCEPTIONS) || defined(_CPPUNWIND) +# define nssv_CONFIG_NO_EXCEPTIONS 0 +# else +# define nssv_CONFIG_NO_EXCEPTIONS 1 +# endif +#endif + +// C++ language version detection (C++20 is speculative): +// Note: VC14.0/1900 (VS2015) lacks too much from C++14. + +#ifndef nssv_CPLUSPLUS +# if defined(_MSVC_LANG ) && !defined(__clang__) +# define nssv_CPLUSPLUS (_MSC_VER == 1900 ? 201103L : _MSVC_LANG ) +# else +# define nssv_CPLUSPLUS __cplusplus +# endif +#endif + +#define nssv_CPP98_OR_GREATER ( nssv_CPLUSPLUS >= 199711L ) +#define nssv_CPP11_OR_GREATER ( nssv_CPLUSPLUS >= 201103L ) +#define nssv_CPP11_OR_GREATER_ ( nssv_CPLUSPLUS >= 201103L ) +#define nssv_CPP14_OR_GREATER ( nssv_CPLUSPLUS >= 201402L ) +#define nssv_CPP17_OR_GREATER ( nssv_CPLUSPLUS >= 201703L ) +#define nssv_CPP20_OR_GREATER ( nssv_CPLUSPLUS >= 202000L ) + +// use C++17 std::string_view if available and requested: + +#if nssv_CPP17_OR_GREATER && defined(__has_include ) +# if __has_include( <string_view> ) +# define nssv_HAVE_STD_STRING_VIEW 1 +# else +# define nssv_HAVE_STD_STRING_VIEW 0 +# endif +#else +# define nssv_HAVE_STD_STRING_VIEW 0 +#endif + +#define nssv_USES_STD_STRING_VIEW ( (nssv_CONFIG_SELECT_STRING_VIEW == nssv_STRING_VIEW_STD) || ((nssv_CONFIG_SELECT_STRING_VIEW == nssv_STRING_VIEW_DEFAULT) && nssv_HAVE_STD_STRING_VIEW) ) + +#define nssv_HAVE_STARTS_WITH ( nssv_CPP20_OR_GREATER || !nssv_USES_STD_STRING_VIEW ) +#define nssv_HAVE_ENDS_WITH nssv_HAVE_STARTS_WITH + +// +// Use C++17 std::string_view: +// + +#if nssv_USES_STD_STRING_VIEW + +#include <string_view> + +// Extensions for std::string: + +#if nssv_CONFIG_CONVERSION_STD_STRING_FREE_FUNCTIONS + +namespace nonstd { + +template< class CharT, class Traits, class Allocator = std::allocator<CharT> > +std::basic_string<CharT, Traits, Allocator> +to_string( std::basic_string_view<CharT, Traits> v, Allocator const & a = Allocator() ) +{ + return std::basic_string<CharT,Traits, Allocator>( v.begin(), v.end(), a ); +} + +template< class CharT, class Traits, class Allocator > +std::basic_string_view<CharT, Traits> +to_string_view( std::basic_string<CharT, Traits, Allocator> const & s ) +{ + return std::basic_string_view<CharT, Traits>( s.data(), s.size() ); +} + +// Literal operators sv and _sv: + +#if nssv_CONFIG_STD_SV_OPERATOR + +using namespace std::literals::string_view_literals; + +#endif + +#if nssv_CONFIG_USR_SV_OPERATOR + +inline namespace literals { +inline namespace string_view_literals { + + +constexpr std::string_view operator "" _sv( const char* str, size_t len ) noexcept // (1) +{ + return std::string_view{ str, len }; +} + +constexpr std::u16string_view operator "" _sv( const char16_t* str, size_t len ) noexcept // (2) +{ + return std::u16string_view{ str, len }; +} + +constexpr std::u32string_view operator "" _sv( const char32_t* str, size_t len ) noexcept // (3) +{ + return std::u32string_view{ str, len }; +} + +constexpr std::wstring_view operator "" _sv( const wchar_t* str, size_t len ) noexcept // (4) +{ + return std::wstring_view{ str, len }; +} + +}} // namespace literals::string_view_literals + +#endif // nssv_CONFIG_USR_SV_OPERATOR + +} // namespace nonstd + +#endif // nssv_CONFIG_CONVERSION_STD_STRING_FREE_FUNCTIONS + +namespace nonstd { + +using std::string_view; +using std::wstring_view; +using std::u16string_view; +using std::u32string_view; +using std::basic_string_view; + +// literal "sv" and "_sv", see above + +using std::operator==; +using std::operator!=; +using std::operator<; +using std::operator<=; +using std::operator>; +using std::operator>=; + +using std::operator<<; + +} // namespace nonstd + +#else // nssv_HAVE_STD_STRING_VIEW + +// +// Before C++17: use string_view lite: +// + +// Compiler versions: +// +// MSVC++ 6.0 _MSC_VER == 1200 (Visual Studio 6.0) +// MSVC++ 7.0 _MSC_VER == 1300 (Visual Studio .NET 2002) +// MSVC++ 7.1 _MSC_VER == 1310 (Visual Studio .NET 2003) +// MSVC++ 8.0 _MSC_VER == 1400 (Visual Studio 2005) +// MSVC++ 9.0 _MSC_VER == 1500 (Visual Studio 2008) +// MSVC++ 10.0 _MSC_VER == 1600 (Visual Studio 2010) +// MSVC++ 11.0 _MSC_VER == 1700 (Visual Studio 2012) +// MSVC++ 12.0 _MSC_VER == 1800 (Visual Studio 2013) +// MSVC++ 14.0 _MSC_VER == 1900 (Visual Studio 2015) +// MSVC++ 14.1 _MSC_VER >= 1910 (Visual Studio 2017) + +#if defined(_MSC_VER ) && !defined(__clang__) +# define nssv_COMPILER_MSVC_VER (_MSC_VER ) +# define nssv_COMPILER_MSVC_VERSION (_MSC_VER / 10 - 10 * ( 5 + (_MSC_VER < 1900 ) ) ) +#else +# define nssv_COMPILER_MSVC_VER 0 +# define nssv_COMPILER_MSVC_VERSION 0 +#endif + +#define nssv_COMPILER_VERSION( major, minor, patch ) (10 * ( 10 * major + minor) + patch) + +#if defined(__clang__) +# define nssv_COMPILER_CLANG_VERSION nssv_COMPILER_VERSION(__clang_major__, __clang_minor__, __clang_patchlevel__) +#else +# define nssv_COMPILER_CLANG_VERSION 0 +#endif + +#if defined(__GNUC__) && !defined(__clang__) +# define nssv_COMPILER_GNUC_VERSION nssv_COMPILER_VERSION(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__) +#else +# define nssv_COMPILER_GNUC_VERSION 0 +#endif + +// half-open range [lo..hi): +#define nssv_BETWEEN( v, lo, hi ) ( (lo) <= (v) && (v) < (hi) ) + +// Presence of language and library features: + +#ifdef _HAS_CPP0X +# define nssv_HAS_CPP0X _HAS_CPP0X +#else +# define nssv_HAS_CPP0X 0 +#endif + +// Unless defined otherwise below, consider VC14 as C++11 for variant-lite: + +#if nssv_COMPILER_MSVC_VER >= 1900 +# undef nssv_CPP11_OR_GREATER +# define nssv_CPP11_OR_GREATER 1 +#endif + +#define nssv_CPP11_90 (nssv_CPP11_OR_GREATER_ || nssv_COMPILER_MSVC_VER >= 1500) +#define nssv_CPP11_100 (nssv_CPP11_OR_GREATER_ || nssv_COMPILER_MSVC_VER >= 1600) +#define nssv_CPP11_110 (nssv_CPP11_OR_GREATER_ || nssv_COMPILER_MSVC_VER >= 1700) +#define nssv_CPP11_120 (nssv_CPP11_OR_GREATER_ || nssv_COMPILER_MSVC_VER >= 1800) +#define nssv_CPP11_140 (nssv_CPP11_OR_GREATER_ || nssv_COMPILER_MSVC_VER >= 1900) +#define nssv_CPP11_141 (nssv_CPP11_OR_GREATER_ || nssv_COMPILER_MSVC_VER >= 1910) + +#define nssv_CPP14_000 (nssv_CPP14_OR_GREATER) +#define nssv_CPP17_000 (nssv_CPP17_OR_GREATER) + +// Presence of C++11 language features: + +#define nssv_HAVE_CONSTEXPR_11 nssv_CPP11_140 +#define nssv_HAVE_EXPLICIT_CONVERSION nssv_CPP11_140 +#define nssv_HAVE_INLINE_NAMESPACE nssv_CPP11_140 +#define nssv_HAVE_NOEXCEPT nssv_CPP11_140 +#define nssv_HAVE_NULLPTR nssv_CPP11_100 +#define nssv_HAVE_REF_QUALIFIER nssv_CPP11_140 +#define nssv_HAVE_UNICODE_LITERALS nssv_CPP11_140 +#define nssv_HAVE_USER_DEFINED_LITERALS nssv_CPP11_140 +#define nssv_HAVE_WCHAR16_T nssv_CPP11_100 +#define nssv_HAVE_WCHAR32_T nssv_CPP11_100 + +#if ! ( ( nssv_CPP11 && nssv_COMPILER_CLANG_VERSION ) || nssv_BETWEEN( nssv_COMPILER_CLANG_VERSION, 300, 400 ) ) +# define nssv_HAVE_STD_DEFINED_LITERALS nssv_CPP11_140 +#endif + +// Presence of C++14 language features: + +#define nssv_HAVE_CONSTEXPR_14 nssv_CPP14_000 + +// Presence of C++17 language features: + +#define nssv_HAVE_NODISCARD nssv_CPP17_000 + +// Presence of C++ library features: + +#define nssv_HAVE_STD_HASH nssv_CPP11_120 + +// C++ feature usage: + +#if nssv_HAVE_CONSTEXPR_11 +# define nssv_constexpr constexpr +#else +# define nssv_constexpr /*constexpr*/ +#endif + +#if nssv_HAVE_CONSTEXPR_14 +# define nssv_constexpr14 constexpr +#else +# define nssv_constexpr14 /*constexpr*/ +#endif + +#if nssv_HAVE_EXPLICIT_CONVERSION +# define nssv_explicit explicit +#else +# define nssv_explicit /*explicit*/ +#endif + +#if nssv_HAVE_INLINE_NAMESPACE +# define nssv_inline_ns inline +#else +# define nssv_inline_ns /*inline*/ +#endif + +#if nssv_HAVE_NOEXCEPT +# define nssv_noexcept noexcept +#else +# define nssv_noexcept /*noexcept*/ +#endif + +//#if nssv_HAVE_REF_QUALIFIER +//# define nssv_ref_qual & +//# define nssv_refref_qual && +//#else +//# define nssv_ref_qual /*&*/ +//# define nssv_refref_qual /*&&*/ +//#endif + +#if nssv_HAVE_NULLPTR +# define nssv_nullptr nullptr +#else +# define nssv_nullptr NULL +#endif + +#if nssv_HAVE_NODISCARD +# define nssv_nodiscard [[nodiscard]] +#else +# define nssv_nodiscard /*[[nodiscard]]*/ +#endif + +// Additional includes: + +#include <algorithm> +#include <cassert> +#include <iterator> +#include <limits> +#include <ostream> +#include <string> // std::char_traits<> + +#if ! nssv_CONFIG_NO_EXCEPTIONS +# include <stdexcept> +#endif + +#if nssv_CPP11_OR_GREATER +# include <type_traits> +#endif + +// Clang, GNUC, MSVC warning suppression macros: + +#if defined(__clang__) +# pragma clang diagnostic ignored "-Wreserved-user-defined-literal" +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wuser-defined-literals" +#elif defined(__GNUC__) +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wliteral-suffix" +#endif // __clang__ + +#if nssv_COMPILER_MSVC_VERSION >= 140 +# define nssv_SUPPRESS_MSGSL_WARNING(expr) [[gsl::suppress(expr)]] +# define nssv_SUPPRESS_MSVC_WARNING(code, descr) __pragma(warning(suppress: code) ) +# define nssv_DISABLE_MSVC_WARNINGS(codes) __pragma(warning(push)) __pragma(warning(disable: codes)) +#else +# define nssv_SUPPRESS_MSGSL_WARNING(expr) +# define nssv_SUPPRESS_MSVC_WARNING(code, descr) +# define nssv_DISABLE_MSVC_WARNINGS(codes) +#endif + +#if defined(__clang__) +# define nssv_RESTORE_WARNINGS() _Pragma("clang diagnostic pop") +#elif defined(__GNUC__) +# define nssv_RESTORE_WARNINGS() _Pragma("GCC diagnostic pop") +#elif nssv_COMPILER_MSVC_VERSION >= 140 +# define nssv_RESTORE_WARNINGS() __pragma(warning(pop )) +#else +# define nssv_RESTORE_WARNINGS() +#endif + +// Suppress the following MSVC (GSL) warnings: +// - C4455, non-gsl : 'operator ""sv': literal suffix identifiers that do not +// start with an underscore are reserved +// - C26472, gsl::t.1 : don't use a static_cast for arithmetic conversions; +// use brace initialization, gsl::narrow_cast or gsl::narow +// - C26481: gsl::b.1 : don't use pointer arithmetic. Use span instead + +nssv_DISABLE_MSVC_WARNINGS( 4455 26481 26472 ) +//nssv_DISABLE_CLANG_WARNINGS( "-Wuser-defined-literals" ) +//nssv_DISABLE_GNUC_WARNINGS( -Wliteral-suffix ) + +namespace nonstd { namespace sv_lite { + +template +< + class CharT, + class Traits = std::char_traits<CharT> +> +class basic_string_view; + +// +// basic_string_view: +// + +template +< + class CharT, + class Traits /* = std::char_traits<CharT> */ +> +class basic_string_view +{ +public: + // Member types: + + typedef Traits traits_type; + typedef CharT value_type; + + typedef CharT * pointer; + typedef CharT const * const_pointer; + typedef CharT & reference; + typedef CharT const & const_reference; + + typedef const_pointer iterator; + typedef const_pointer const_iterator; + typedef std::reverse_iterator< const_iterator > reverse_iterator; + typedef std::reverse_iterator< const_iterator > const_reverse_iterator; + + typedef std::size_t size_type; + typedef std::ptrdiff_t difference_type; + + // 24.4.2.1 Construction and assignment: + + nssv_constexpr basic_string_view() nssv_noexcept + : data_( nssv_nullptr ) + , size_( 0 ) + {} + +#if nssv_CPP11_OR_GREATER + nssv_constexpr basic_string_view( basic_string_view const & other ) nssv_noexcept = default; +#else + nssv_constexpr basic_string_view( basic_string_view const & other ) nssv_noexcept + : data_( other.data_) + , size_( other.size_) + {} +#endif + + nssv_constexpr basic_string_view( CharT const * s, size_type count ) + : data_( s ) + , size_( count ) + {} + + nssv_constexpr basic_string_view( CharT const * s) + : data_( s ) + , size_( Traits::length(s) ) + {} + + // Assignment: + +#if nssv_CPP11_OR_GREATER + nssv_constexpr14 basic_string_view & operator=( basic_string_view const & other ) nssv_noexcept = default; +#else + nssv_constexpr14 basic_string_view & operator=( basic_string_view const & other ) nssv_noexcept + { + data_ = other.data_; + size_ = other.size_; + return *this; + } +#endif + + // 24.4.2.2 Iterator support: + + nssv_constexpr const_iterator begin() const nssv_noexcept { return data_; } + nssv_constexpr const_iterator end() const nssv_noexcept { return data_ + size_; } + + nssv_constexpr const_iterator cbegin() const nssv_noexcept { return begin(); } + nssv_constexpr const_iterator cend() const nssv_noexcept { return end(); } + + nssv_constexpr const_reverse_iterator rbegin() const nssv_noexcept { return const_reverse_iterator( end() ); } + nssv_constexpr const_reverse_iterator rend() const nssv_noexcept { return const_reverse_iterator( begin() ); } + + nssv_constexpr const_reverse_iterator crbegin() const nssv_noexcept { return rbegin(); } + nssv_constexpr const_reverse_iterator crend() const nssv_noexcept { return rend(); } + + // 24.4.2.3 Capacity: + + nssv_constexpr size_type size() const nssv_noexcept { return size_; } + nssv_constexpr size_type length() const nssv_noexcept { return size_; } + nssv_constexpr size_type max_size() const nssv_noexcept { return (std::numeric_limits< size_type >::max)(); } + + // since C++20 + nssv_nodiscard nssv_constexpr bool empty() const nssv_noexcept + { + return 0 == size_; + } + + // 24.4.2.4 Element access: + + nssv_constexpr const_reference operator[]( size_type pos ) const + { + return data_at( pos ); + } + + nssv_constexpr14 const_reference at( size_type pos ) const + { +#if nssv_CONFIG_NO_EXCEPTIONS + assert( pos < size() ); +#else + if ( pos >= size() ) + { + throw std::out_of_range("nonst::string_view::at()"); + } +#endif + return data_at( pos ); + } + + nssv_constexpr const_reference front() const { return data_at( 0 ); } + nssv_constexpr const_reference back() const { return data_at( size() - 1 ); } + + nssv_constexpr const_pointer data() const nssv_noexcept { return data_; } + + // 24.4.2.5 Modifiers: + + nssv_constexpr14 void remove_prefix( size_type n ) + { + assert( n <= size() ); + data_ += n; + size_ -= n; + } + + nssv_constexpr14 void remove_suffix( size_type n ) + { + assert( n <= size() ); + size_ -= n; + } + + nssv_constexpr14 void swap( basic_string_view & other ) nssv_noexcept + { + using std::swap; + swap( data_, other.data_ ); + swap( size_, other.size_ ); + } + + // 24.4.2.6 String operations: + + size_type copy( CharT * dest, size_type n, size_type pos = 0 ) const + { +#if nssv_CONFIG_NO_EXCEPTIONS + assert( pos <= size() ); +#else + if ( pos > size() ) + { + throw std::out_of_range("nonst::string_view::copy()"); + } +#endif + const size_type rlen = (std::min)( n, size() - pos ); + + (void) Traits::copy( dest, data() + pos, rlen ); + + return rlen; + } + + nssv_constexpr14 basic_string_view substr( size_type pos = 0, size_type n = npos ) const + { +#if nssv_CONFIG_NO_EXCEPTIONS + assert( pos <= size() ); +#else + if ( pos > size() ) + { + throw std::out_of_range("nonst::string_view::substr()"); + } +#endif + return basic_string_view( data() + pos, (std::min)( n, size() - pos ) ); + } + + // compare(), 6x: + + nssv_constexpr14 int compare( basic_string_view other ) const nssv_noexcept // (1) + { + if ( const int result = Traits::compare( data(), other.data(), (std::min)( size(), other.size() ) ) ) + return result; + + return size() == other.size() ? 0 : size() < other.size() ? -1 : 1; + } + + nssv_constexpr int compare( size_type pos1, size_type n1, basic_string_view other ) const // (2) + { + return substr( pos1, n1 ).compare( other ); + } + + nssv_constexpr int compare( size_type pos1, size_type n1, basic_string_view other, size_type pos2, size_type n2 ) const // (3) + { + return substr( pos1, n1 ).compare( other.substr( pos2, n2 ) ); + } + + nssv_constexpr int compare( CharT const * s ) const // (4) + { + return compare( basic_string_view( s ) ); + } + + nssv_constexpr int compare( size_type pos1, size_type n1, CharT const * s ) const // (5) + { + return substr( pos1, n1 ).compare( basic_string_view( s ) ); + } + + nssv_constexpr int compare( size_type pos1, size_type n1, CharT const * s, size_type n2 ) const // (6) + { + return substr( pos1, n1 ).compare( basic_string_view( s, n2 ) ); + } + + // 24.4.2.7 Searching: + + // starts_with(), 3x, since C++20: + + nssv_constexpr bool starts_with( basic_string_view v ) const nssv_noexcept // (1) + { + return size() >= v.size() && compare( 0, v.size(), v ) == 0; + } + + nssv_constexpr bool starts_with( CharT c ) const nssv_noexcept // (2) + { + return starts_with( basic_string_view( &c, 1 ) ); + } + + nssv_constexpr bool starts_with( CharT const * s ) const // (3) + { + return starts_with( basic_string_view( s ) ); + } + + // ends_with(), 3x, since C++20: + + nssv_constexpr bool ends_with( basic_string_view v ) const nssv_noexcept // (1) + { + return size() >= v.size() && compare( size() - v.size(), npos, v ) == 0; + } + + nssv_constexpr bool ends_with( CharT c ) const nssv_noexcept // (2) + { + return ends_with( basic_string_view( &c, 1 ) ); + } + + nssv_constexpr bool ends_with( CharT const * s ) const // (3) + { + return ends_with( basic_string_view( s ) ); + } + + // find(), 4x: + + nssv_constexpr14 size_type find( basic_string_view v, size_type pos = 0 ) const nssv_noexcept // (1) + { + return assert( v.size() == 0 || v.data() != nssv_nullptr ) + , pos >= size() + ? npos + : to_pos( std::search( cbegin() + pos, cend(), v.cbegin(), v.cend(), Traits::eq ) ); + } + + nssv_constexpr14 size_type find( CharT c, size_type pos = 0 ) const nssv_noexcept // (2) + { + return find( basic_string_view( &c, 1 ), pos ); + } + + nssv_constexpr14 size_type find( CharT const * s, size_type pos, size_type n ) const // (3) + { + return find( basic_string_view( s, n ), pos ); + } + + nssv_constexpr14 size_type find( CharT const * s, size_type pos = 0 ) const // (4) + { + return find( basic_string_view( s ), pos ); + } + + // rfind(), 4x: + + nssv_constexpr14 size_type rfind( basic_string_view v, size_type pos = npos ) const nssv_noexcept // (1) + { + if ( size() < v.size() ) + return npos; + + if ( v.empty() ) + return (std::min)( size(), pos ); + + const_iterator last = cbegin() + (std::min)( size() - v.size(), pos ) + v.size(); + const_iterator result = std::find_end( cbegin(), last, v.cbegin(), v.cend(), Traits::eq ); + + return result != last ? size_type( result - cbegin() ) : npos; + } + + nssv_constexpr14 size_type rfind( CharT c, size_type pos = npos ) const nssv_noexcept // (2) + { + return rfind( basic_string_view( &c, 1 ), pos ); + } + + nssv_constexpr14 size_type rfind( CharT const * s, size_type pos, size_type n ) const // (3) + { + return rfind( basic_string_view( s, n ), pos ); + } + + nssv_constexpr14 size_type rfind( CharT const * s, size_type pos = npos ) const // (4) + { + return rfind( basic_string_view( s ), pos ); + } + + // find_first_of(), 4x: + + nssv_constexpr size_type find_first_of( basic_string_view v, size_type pos = 0 ) const nssv_noexcept // (1) + { + return pos >= size() + ? npos + : to_pos( std::find_first_of( cbegin() + pos, cend(), v.cbegin(), v.cend(), Traits::eq ) ); + } + + nssv_constexpr size_type find_first_of( CharT c, size_type pos = 0 ) const nssv_noexcept // (2) + { + return find_first_of( basic_string_view( &c, 1 ), pos ); + } + + nssv_constexpr size_type find_first_of( CharT const * s, size_type pos, size_type n ) const // (3) + { + return find_first_of( basic_string_view( s, n ), pos ); + } + + nssv_constexpr size_type find_first_of( CharT const * s, size_type pos = 0 ) const // (4) + { + return find_first_of( basic_string_view( s ), pos ); + } + + // find_last_of(), 4x: + + nssv_constexpr size_type find_last_of( basic_string_view v, size_type pos = npos ) const nssv_noexcept // (1) + { + return empty() + ? npos + : pos >= size() + ? find_last_of( v, size() - 1 ) + : to_pos( std::find_first_of( const_reverse_iterator( cbegin() + pos + 1 ), crend(), v.cbegin(), v.cend(), Traits::eq ) ); + } + + nssv_constexpr size_type find_last_of( CharT c, size_type pos = npos ) const nssv_noexcept // (2) + { + return find_last_of( basic_string_view( &c, 1 ), pos ); + } + + nssv_constexpr size_type find_last_of( CharT const * s, size_type pos, size_type count ) const // (3) + { + return find_last_of( basic_string_view( s, count ), pos ); + } + + nssv_constexpr size_type find_last_of( CharT const * s, size_type pos = npos ) const // (4) + { + return find_last_of( basic_string_view( s ), pos ); + } + + // find_first_not_of(), 4x: + + nssv_constexpr size_type find_first_not_of( basic_string_view v, size_type pos = 0 ) const nssv_noexcept // (1) + { + return pos >= size() + ? npos + : to_pos( std::find_if( cbegin() + pos, cend(), not_in_view( v ) ) ); + } + + nssv_constexpr size_type find_first_not_of( CharT c, size_type pos = 0 ) const nssv_noexcept // (2) + { + return find_first_not_of( basic_string_view( &c, 1 ), pos ); + } + + nssv_constexpr size_type find_first_not_of( CharT const * s, size_type pos, size_type count ) const // (3) + { + return find_first_not_of( basic_string_view( s, count ), pos ); + } + + nssv_constexpr size_type find_first_not_of( CharT const * s, size_type pos = 0 ) const // (4) + { + return find_first_not_of( basic_string_view( s ), pos ); + } + + // find_last_not_of(), 4x: + + nssv_constexpr size_type find_last_not_of( basic_string_view v, size_type pos = npos ) const nssv_noexcept // (1) + { + return empty() + ? npos + : pos >= size() + ? find_last_not_of( v, size() - 1 ) + : to_pos( std::find_if( const_reverse_iterator( cbegin() + pos + 1 ), crend(), not_in_view( v ) ) ); + } + + nssv_constexpr size_type find_last_not_of( CharT c, size_type pos = npos ) const nssv_noexcept // (2) + { + return find_last_not_of( basic_string_view( &c, 1 ), pos ); + } + + nssv_constexpr size_type find_last_not_of( CharT const * s, size_type pos, size_type count ) const // (3) + { + return find_last_not_of( basic_string_view( s, count ), pos ); + } + + nssv_constexpr size_type find_last_not_of( CharT const * s, size_type pos = npos ) const // (4) + { + return find_last_not_of( basic_string_view( s ), pos ); + } + + // Constants: + +#if nssv_CPP17_OR_GREATER + static nssv_constexpr size_type npos = size_type(-1); +#elif nssv_CPP11_OR_GREATER + enum : size_type { npos = size_type(-1) }; +#else + enum { npos = size_type(-1) }; +#endif + +private: + struct not_in_view + { + const basic_string_view v; + + nssv_constexpr not_in_view( basic_string_view v ) : v( v ) {} + + nssv_constexpr bool operator()( CharT c ) const + { + return npos == v.find_first_of( c ); + } + }; + + nssv_constexpr size_type to_pos( const_iterator it ) const + { + return it == cend() ? npos : size_type( it - cbegin() ); + } + + nssv_constexpr size_type to_pos( const_reverse_iterator it ) const + { + return it == crend() ? npos : size_type( crend() - it - 1 ); + } + + nssv_constexpr const_reference data_at( size_type pos ) const + { +#if nssv_BETWEEN( nssv_COMPILER_GNUC_VERSION, 1, 500 ) + return data_[pos]; +#else + return assert( pos < size() ), data_[pos]; +#endif + } + +private: + const_pointer data_; + size_type size_; + +public: +#if nssv_CONFIG_CONVERSION_STD_STRING_CLASS_METHODS + + template< class Allocator > + basic_string_view( std::basic_string<CharT, Traits, Allocator> const & s ) nssv_noexcept + : data_( s.data() ) + , size_( s.size() ) + {} + +#if nssv_HAVE_EXPLICIT_CONVERSION + + template< class Allocator > + explicit operator std::basic_string<CharT, Traits, Allocator>() const + { + return to_string( Allocator() ); + } + +#endif // nssv_HAVE_EXPLICIT_CONVERSION + +#if nssv_CPP11_OR_GREATER + + template< class Allocator = std::allocator<CharT> > + std::basic_string<CharT, Traits, Allocator> + to_string( Allocator const & a = Allocator() ) const + { + return std::basic_string<CharT, Traits, Allocator>( begin(), end(), a ); + } + +#else + + std::basic_string<CharT, Traits> + to_string() const + { + return std::basic_string<CharT, Traits>( begin(), end() ); + } + + template< class Allocator > + std::basic_string<CharT, Traits, Allocator> + to_string( Allocator const & a ) const + { + return std::basic_string<CharT, Traits, Allocator>( begin(), end(), a ); + } + +#endif // nssv_CPP11_OR_GREATER + +#endif // nssv_CONFIG_CONVERSION_STD_STRING_CLASS_METHODS +}; + +// +// Non-member functions: +// + +// 24.4.3 Non-member comparison functions: +// lexicographically compare two string views (function template): + +template< class CharT, class Traits > +nssv_constexpr bool operator== ( + basic_string_view <CharT, Traits> lhs, + basic_string_view <CharT, Traits> rhs ) nssv_noexcept +{ return lhs.compare( rhs ) == 0 ; } + +template< class CharT, class Traits > +nssv_constexpr bool operator!= ( + basic_string_view <CharT, Traits> lhs, + basic_string_view <CharT, Traits> rhs ) nssv_noexcept +{ return lhs.compare( rhs ) != 0 ; } + +template< class CharT, class Traits > +nssv_constexpr bool operator< ( + basic_string_view <CharT, Traits> lhs, + basic_string_view <CharT, Traits> rhs ) nssv_noexcept +{ return lhs.compare( rhs ) < 0 ; } + +template< class CharT, class Traits > +nssv_constexpr bool operator<= ( + basic_string_view <CharT, Traits> lhs, + basic_string_view <CharT, Traits> rhs ) nssv_noexcept +{ return lhs.compare( rhs ) <= 0 ; } + +template< class CharT, class Traits > +nssv_constexpr bool operator> ( + basic_string_view <CharT, Traits> lhs, + basic_string_view <CharT, Traits> rhs ) nssv_noexcept +{ return lhs.compare( rhs ) > 0 ; } + +template< class CharT, class Traits > +nssv_constexpr bool operator>= ( + basic_string_view <CharT, Traits> lhs, + basic_string_view <CharT, Traits> rhs ) nssv_noexcept +{ return lhs.compare( rhs ) >= 0 ; } + +// Let S be basic_string_view<CharT, Traits>, and sv be an instance of S. +// Implementations shall provide sufficient additional overloads marked +// constexpr and noexcept so that an object t with an implicit conversion +// to S can be compared according to Table 67. + +#if nssv_CPP11_OR_GREATER && ! nssv_BETWEEN( nssv_COMPILER_MSVC_VERSION, 100, 141 ) + +#define nssv_BASIC_STRING_VIEW_I(T,U) typename std::decay< basic_string_view<T,U> >::type + +#if nssv_BETWEEN( nssv_COMPILER_MSVC_VERSION, 140, 150 ) +# define nssv_MSVC_ORDER(x) , int=x +#else +# define nssv_MSVC_ORDER(x) /*, int=x*/ +#endif + +// == + +template< class CharT, class Traits nssv_MSVC_ORDER(1) > +nssv_constexpr bool operator==( + basic_string_view <CharT, Traits> lhs, + nssv_BASIC_STRING_VIEW_I(CharT, Traits) rhs ) nssv_noexcept +{ return lhs.compare( rhs ) == 0; } + +template< class CharT, class Traits nssv_MSVC_ORDER(2) > +nssv_constexpr bool operator==( + nssv_BASIC_STRING_VIEW_I(CharT, Traits) lhs, + basic_string_view <CharT, Traits> rhs ) nssv_noexcept +{ return lhs.size() == rhs.size() && lhs.compare( rhs ) == 0; } + +// != + +template< class CharT, class Traits nssv_MSVC_ORDER(1) > +nssv_constexpr bool operator!= ( + basic_string_view < CharT, Traits > lhs, + nssv_BASIC_STRING_VIEW_I( CharT, Traits ) rhs ) nssv_noexcept +{ return lhs.size() != rhs.size() || lhs.compare( rhs ) != 0 ; } + +template< class CharT, class Traits nssv_MSVC_ORDER(2) > +nssv_constexpr bool operator!= ( + nssv_BASIC_STRING_VIEW_I( CharT, Traits ) lhs, + basic_string_view < CharT, Traits > rhs ) nssv_noexcept +{ return lhs.compare( rhs ) != 0 ; } + +// < + +template< class CharT, class Traits nssv_MSVC_ORDER(1) > +nssv_constexpr bool operator< ( + basic_string_view < CharT, Traits > lhs, + nssv_BASIC_STRING_VIEW_I( CharT, Traits ) rhs ) nssv_noexcept +{ return lhs.compare( rhs ) < 0 ; } + +template< class CharT, class Traits nssv_MSVC_ORDER(2) > +nssv_constexpr bool operator< ( + nssv_BASIC_STRING_VIEW_I( CharT, Traits ) lhs, + basic_string_view < CharT, Traits > rhs ) nssv_noexcept +{ return lhs.compare( rhs ) < 0 ; } + +// <= + +template< class CharT, class Traits nssv_MSVC_ORDER(1) > +nssv_constexpr bool operator<= ( + basic_string_view < CharT, Traits > lhs, + nssv_BASIC_STRING_VIEW_I( CharT, Traits ) rhs ) nssv_noexcept +{ return lhs.compare( rhs ) <= 0 ; } + +template< class CharT, class Traits nssv_MSVC_ORDER(2) > +nssv_constexpr bool operator<= ( + nssv_BASIC_STRING_VIEW_I( CharT, Traits ) lhs, + basic_string_view < CharT, Traits > rhs ) nssv_noexcept +{ return lhs.compare( rhs ) <= 0 ; } + +// > + +template< class CharT, class Traits nssv_MSVC_ORDER(1) > +nssv_constexpr bool operator> ( + basic_string_view < CharT, Traits > lhs, + nssv_BASIC_STRING_VIEW_I( CharT, Traits ) rhs ) nssv_noexcept +{ return lhs.compare( rhs ) > 0 ; } + +template< class CharT, class Traits nssv_MSVC_ORDER(2) > +nssv_constexpr bool operator> ( + nssv_BASIC_STRING_VIEW_I( CharT, Traits ) lhs, + basic_string_view < CharT, Traits > rhs ) nssv_noexcept +{ return lhs.compare( rhs ) > 0 ; } + +// >= + +template< class CharT, class Traits nssv_MSVC_ORDER(1) > +nssv_constexpr bool operator>= ( + basic_string_view < CharT, Traits > lhs, + nssv_BASIC_STRING_VIEW_I( CharT, Traits ) rhs ) nssv_noexcept +{ return lhs.compare( rhs ) >= 0 ; } + +template< class CharT, class Traits nssv_MSVC_ORDER(2) > +nssv_constexpr bool operator>= ( + nssv_BASIC_STRING_VIEW_I( CharT, Traits ) lhs, + basic_string_view < CharT, Traits > rhs ) nssv_noexcept +{ return lhs.compare( rhs ) >= 0 ; } + +#undef nssv_MSVC_ORDER +#undef nssv_BASIC_STRING_VIEW_I + +#endif // nssv_CPP11_OR_GREATER + +// 24.4.4 Inserters and extractors: + +namespace detail { + +template< class Stream > +void write_padding( Stream & os, std::streamsize n ) +{ + for ( std::streamsize i = 0; i < n; ++i ) + os.rdbuf()->sputc( os.fill() ); +} + +template< class Stream, class View > +Stream & write_to_stream( Stream & os, View const & sv ) +{ + typename Stream::sentry sentry( os ); + + if ( !os ) + return os; + + const std::streamsize length = static_cast<std::streamsize>( sv.length() ); + + // Whether, and how, to pad: + const bool pad = ( length < os.width() ); + const bool left_pad = pad && ( os.flags() & std::ios_base::adjustfield ) == std::ios_base::right; + + if ( left_pad ) + write_padding( os, os.width() - length ); + + // Write span characters: + os.rdbuf()->sputn( sv.begin(), length ); + + if ( pad && !left_pad ) + write_padding( os, os.width() - length ); + + // Reset output stream width: + os.width( 0 ); + + return os; +} + +} // namespace detail + +template< class CharT, class Traits > +std::basic_ostream<CharT, Traits> & +operator<<( + std::basic_ostream<CharT, Traits>& os, + basic_string_view <CharT, Traits> sv ) +{ + return detail::write_to_stream( os, sv ); +} + +// Several typedefs for common character types are provided: + +typedef basic_string_view<char> string_view; +typedef basic_string_view<wchar_t> wstring_view; +#if nssv_HAVE_WCHAR16_T +typedef basic_string_view<char16_t> u16string_view; +typedef basic_string_view<char32_t> u32string_view; +#endif + +}} // namespace nonstd::sv_lite + +// +// 24.4.6 Suffix for basic_string_view literals: +// + +#if nssv_HAVE_USER_DEFINED_LITERALS + +namespace nonstd { +nssv_inline_ns namespace literals { +nssv_inline_ns namespace string_view_literals { + +#if nssv_CONFIG_STD_SV_OPERATOR && nssv_HAVE_STD_DEFINED_LITERALS + +nssv_constexpr nonstd::sv_lite::string_view operator "" sv( const char* str, size_t len ) nssv_noexcept // (1) +{ + return nonstd::sv_lite::string_view{ str, len }; +} + +nssv_constexpr nonstd::sv_lite::u16string_view operator "" sv( const char16_t* str, size_t len ) nssv_noexcept // (2) +{ + return nonstd::sv_lite::u16string_view{ str, len }; +} + +nssv_constexpr nonstd::sv_lite::u32string_view operator "" sv( const char32_t* str, size_t len ) nssv_noexcept // (3) +{ + return nonstd::sv_lite::u32string_view{ str, len }; +} + +nssv_constexpr nonstd::sv_lite::wstring_view operator "" sv( const wchar_t* str, size_t len ) nssv_noexcept // (4) +{ + return nonstd::sv_lite::wstring_view{ str, len }; +} + +#endif // nssv_CONFIG_STD_SV_OPERATOR && nssv_HAVE_STD_DEFINED_LITERALS + +#if nssv_CONFIG_USR_SV_OPERATOR + +nssv_constexpr nonstd::sv_lite::string_view operator "" _sv( const char* str, size_t len ) nssv_noexcept // (1) +{ + return nonstd::sv_lite::string_view{ str, len }; +} + +nssv_constexpr nonstd::sv_lite::u16string_view operator "" _sv( const char16_t* str, size_t len ) nssv_noexcept // (2) +{ + return nonstd::sv_lite::u16string_view{ str, len }; +} + +nssv_constexpr nonstd::sv_lite::u32string_view operator "" _sv( const char32_t* str, size_t len ) nssv_noexcept // (3) +{ + return nonstd::sv_lite::u32string_view{ str, len }; +} + +nssv_constexpr nonstd::sv_lite::wstring_view operator "" _sv( const wchar_t* str, size_t len ) nssv_noexcept // (4) +{ + return nonstd::sv_lite::wstring_view{ str, len }; +} + +#endif // nssv_CONFIG_USR_SV_OPERATOR + +}}} // namespace nonstd::literals::string_view_literals + +#endif + +// +// Extensions for std::string: +// + +#if nssv_CONFIG_CONVERSION_STD_STRING_FREE_FUNCTIONS + +namespace nonstd { +namespace sv_lite { + +// Exclude MSVC 14 (19.00): it yields ambiguous to_string(): + +#if nssv_CPP11_OR_GREATER && nssv_COMPILER_MSVC_VERSION != 140 + +template< class CharT, class Traits, class Allocator = std::allocator<CharT> > +std::basic_string<CharT, Traits, Allocator> +to_string( basic_string_view<CharT, Traits> v, Allocator const & a = Allocator() ) +{ + return std::basic_string<CharT,Traits, Allocator>( v.begin(), v.end(), a ); +} + +#else + +template< class CharT, class Traits > +std::basic_string<CharT, Traits> +to_string( basic_string_view<CharT, Traits> v ) +{ + return std::basic_string<CharT, Traits>( v.begin(), v.end() ); +} + +template< class CharT, class Traits, class Allocator > +std::basic_string<CharT, Traits, Allocator> +to_string( basic_string_view<CharT, Traits> v, Allocator const & a ) +{ + return std::basic_string<CharT, Traits, Allocator>( v.begin(), v.end(), a ); +} + +#endif // nssv_CPP11_OR_GREATER + +template< class CharT, class Traits, class Allocator > +basic_string_view<CharT, Traits> +to_string_view( std::basic_string<CharT, Traits, Allocator> const & s ) +{ + return basic_string_view<CharT, Traits>( s.data(), s.size() ); +} + +}} // namespace nonstd::sv_lite + +#endif // nssv_CONFIG_CONVERSION_STD_STRING_FREE_FUNCTIONS + +// +// make types and algorithms available in namespace nonstd: +// + +namespace nonstd { + +using sv_lite::basic_string_view; +using sv_lite::string_view; +using sv_lite::wstring_view; + +#if nssv_HAVE_WCHAR16_T +using sv_lite::u16string_view; +#endif +#if nssv_HAVE_WCHAR32_T +using sv_lite::u32string_view; +#endif + +// literal "sv" + +using sv_lite::operator==; +using sv_lite::operator!=; +using sv_lite::operator<; +using sv_lite::operator<=; +using sv_lite::operator>; +using sv_lite::operator>=; + +using sv_lite::operator<<; + +#if nssv_CONFIG_CONVERSION_STD_STRING_FREE_FUNCTIONS +using sv_lite::to_string; +using sv_lite::to_string_view; +#endif + +} // namespace nonstd + +// 24.4.5 Hash support (C++11): + +// Note: The hash value of a string view object is equal to the hash value of +// the corresponding string object. + +#if nssv_HAVE_STD_HASH + +#include <functional> + +namespace std { + +template<> +struct hash< nonstd::string_view > +{ +public: + std::size_t operator()( nonstd::string_view v ) const nssv_noexcept + { + return std::hash<std::string>()( std::string( v.data(), v.size() ) ); + } +}; + +template<> +struct hash< nonstd::wstring_view > +{ +public: + std::size_t operator()( nonstd::wstring_view v ) const nssv_noexcept + { + return std::hash<std::wstring>()( std::wstring( v.data(), v.size() ) ); + } +}; + +template<> +struct hash< nonstd::u16string_view > +{ +public: + std::size_t operator()( nonstd::u16string_view v ) const nssv_noexcept + { + return std::hash<std::u16string>()( std::u16string( v.data(), v.size() ) ); + } +}; + +template<> +struct hash< nonstd::u32string_view > +{ +public: + std::size_t operator()( nonstd::u32string_view v ) const nssv_noexcept + { + return std::hash<std::u32string>()( std::u32string( v.data(), v.size() ) ); + } +}; + +} // namespace std + +#endif // nssv_HAVE_STD_HASH + +nssv_RESTORE_WARNINGS() + +#endif // nssv_HAVE_STD_STRING_VIEW +#endif // NONSTD_SV_LITE_H_INCLUDED + + + +namespace inja { + +enum class ElementNotation { + Dot, + Pointer +}; + +/*! + * \brief Class for lexer configuration. + */ +struct LexerConfig { + std::string statement_open {"{%"}; + std::string statement_close {"%}"}; + std::string line_statement {"##"}; + std::string expression_open {"{{"}; + std::string expression_close {"}}"}; + std::string comment_open {"{#"}; + std::string comment_close {"#}"}; + std::string open_chars {"#{"}; + + bool trim_blocks {false}; + bool lstrip_blocks {false}; + + void update_open_chars() { + open_chars = ""; + if (open_chars.find(line_statement[0]) == std::string::npos) { + open_chars += line_statement[0]; + } + if (open_chars.find(statement_open[0]) == std::string::npos) { + open_chars += statement_open[0]; + } + if (open_chars.find(expression_open[0]) == std::string::npos) { + open_chars += expression_open[0]; + } + if (open_chars.find(comment_open[0]) == std::string::npos) { + open_chars += comment_open[0]; + } + } +}; + +/*! + * \brief Class for parser configuration. + */ +struct ParserConfig { + ElementNotation notation {ElementNotation::Dot}; +}; + +} + +#endif // PANTOR_INJA_CONFIG_HPP + +// #include "function_storage.hpp" +#ifndef PANTOR_INJA_FUNCTION_STORAGE_HPP +#define PANTOR_INJA_FUNCTION_STORAGE_HPP + +#include <vector> + +// #include "bytecode.hpp" +#ifndef PANTOR_INJA_BYTECODE_HPP +#define PANTOR_INJA_BYTECODE_HPP + +#include <string> +#include <utility> + +#include <nlohmann/json.hpp> + +// #include "string_view.hpp" + + + +namespace inja { + +using json = nlohmann::json; + + +struct Bytecode { + enum class Op : uint8_t { + Nop, + // print StringRef (always immediate) + PrintText, + // print value + PrintValue, + // push value onto stack (always immediate) + Push, + + // builtin functions + // result is pushed to stack + // args specify number of arguments + // all functions can take their "last" argument either immediate + // or popped off stack (e.g. if immediate, it's like the immediate was + // just pushed to the stack) + Not, + And, + Or, + In, + Equal, + Greater, + GreaterEqual, + Less, + LessEqual, + At, + Different, + DivisibleBy, + Even, + First, + Float, + Int, + Last, + Length, + Lower, + Max, + Min, + Odd, + Range, + Result, + Round, + Sort, + Upper, + Exists, + ExistsInObject, + IsBoolean, + IsNumber, + IsInteger, + IsFloat, + IsObject, + IsArray, + IsString, + Default, + + // include another template + // value is the template name + Include, + + // callback function + // str is the function name (this means it cannot be a lookup) + // args specify number of arguments + // as with builtin functions, "last" argument can be immediate + Callback, + + // unconditional jump + // args is the index of the bytecode to jump to. + Jump, + + // conditional jump + // value popped off stack is checked for truthyness + // if false, args is the index of the bytecode to jump to. + // if true, no action is taken (falls through) + ConditionalJump, + + // start loop + // value popped off stack is what is iterated over + // args is index of bytecode after end loop (jumped to if iterable is + // empty) + // immediate value is key name (for maps) + // str is value name + StartLoop, + + // end a loop + // args is index of the first bytecode in the loop body + EndLoop, + }; + + enum Flag { + // location of value for value-taking ops (mask) + ValueMask = 0x03, + // pop value off stack + ValuePop = 0x00, + // value is immediate rather than on stack + ValueImmediate = 0x01, + // lookup immediate str (dot notation) + ValueLookupDot = 0x02, + // lookup immediate str (json pointer notation) + ValueLookupPointer = 0x03, + }; + + Op op {Op::Nop}; + uint32_t args: 30; + uint32_t flags: 2; + + json value; + std::string str; + + Bytecode(): args(0), flags(0) {} + explicit Bytecode(Op op, unsigned int args = 0): op(op), args(args), flags(0) {} + explicit Bytecode(Op op, nonstd::string_view str, unsigned int flags): op(op), args(0), flags(flags), str(str) {} + explicit Bytecode(Op op, json&& value, unsigned int flags): op(op), args(0), flags(flags), value(std::move(value)) {} +}; + +} // namespace inja + +#endif // PANTOR_INJA_BYTECODE_HPP + +// #include "string_view.hpp" + + + +namespace inja { + +using namespace nlohmann; + +using Arguments = std::vector<const json*>; +using CallbackFunction = std::function<json(Arguments& args)>; + +/*! + * \brief Class for builtin functions and user-defined callbacks. + */ +class FunctionStorage { + public: + void add_builtin(nonstd::string_view name, unsigned int num_args, Bytecode::Op op) { + auto& data = get_or_new(name, num_args); + data.op = op; + } + + void add_callback(nonstd::string_view name, unsigned int num_args, const CallbackFunction& function) { + auto& data = get_or_new(name, num_args); + data.function = function; + } + + Bytecode::Op find_builtin(nonstd::string_view name, unsigned int num_args) const { + if (auto ptr = get(name, num_args)) { + return ptr->op; + } + return Bytecode::Op::Nop; + } + + CallbackFunction find_callback(nonstd::string_view name, unsigned int num_args) const { + if (auto ptr = get(name, num_args)) { + return ptr->function; + } + return nullptr; + } + + private: + struct FunctionData { + unsigned int num_args {0}; + Bytecode::Op op {Bytecode::Op::Nop}; // for builtins + CallbackFunction function; // for callbacks + }; + + FunctionData& get_or_new(nonstd::string_view name, unsigned int num_args) { + auto &vec = m_map[static_cast<std::string>(name)]; + for (auto &i: vec) { + if (i.num_args == num_args) return i; + } + vec.emplace_back(); + vec.back().num_args = num_args; + return vec.back(); + } + + const FunctionData* get(nonstd::string_view name, unsigned int num_args) const { + auto it = m_map.find(static_cast<std::string>(name)); + if (it == m_map.end()) return nullptr; + for (auto &&i: it->second) { + if (i.num_args == num_args) return &i; + } + return nullptr; + } + + std::map<std::string, std::vector<FunctionData>> m_map; +}; + +} + +#endif // PANTOR_INJA_FUNCTION_STORAGE_HPP + +// #include "parser.hpp" +#ifndef PANTOR_INJA_PARSER_HPP +#define PANTOR_INJA_PARSER_HPP + +#include <limits> +#include <string> +#include <utility> +#include <vector> + +// #include "bytecode.hpp" + +// #include "config.hpp" + +// #include "function_storage.hpp" + +// #include "lexer.hpp" +#ifndef PANTOR_INJA_LEXER_HPP +#define PANTOR_INJA_LEXER_HPP + +#include <cctype> +#include <locale> + +// #include "config.hpp" + +// #include "token.hpp" +#ifndef PANTOR_INJA_TOKEN_HPP +#define PANTOR_INJA_TOKEN_HPP + +#include <string> + +// #include "string_view.hpp" + + + +namespace inja { + +/*! + * \brief Helper-class for the inja Parser. + */ +struct Token { + enum class Kind { + Text, + ExpressionOpen, // {{ + ExpressionClose, // }} + LineStatementOpen, // ## + LineStatementClose, // \n + StatementOpen, // {% + StatementClose, // %} + CommentOpen, // {# + CommentClose, // #} + Id, // this, this.foo + Number, // 1, 2, -1, 5.2, -5.3 + String, // "this" + Comma, // , + Colon, // : + LeftParen, // ( + RightParen, // ) + LeftBracket, // [ + RightBracket, // ] + LeftBrace, // { + RightBrace, // } + Equal, // == + GreaterThan, // > + GreaterEqual, // >= + LessThan, // < + LessEqual, // <= + NotEqual, // != + Unknown, + Eof + } kind {Kind::Unknown}; + + nonstd::string_view text; + + constexpr Token() = default; + constexpr Token(Kind kind, nonstd::string_view text): kind(kind), text(text) {} + + std::string describe() const { + switch (kind) { + case Kind::Text: + return "<text>"; + case Kind::LineStatementClose: + return "<eol>"; + case Kind::Eof: + return "<eof>"; + default: + return static_cast<std::string>(text); + } + } +}; + +} + +#endif // PANTOR_INJA_TOKEN_HPP + +// #include "utils.hpp" +#ifndef PANTOR_INJA_UTILS_HPP +#define PANTOR_INJA_UTILS_HPP + +#include <algorithm> +#include <fstream> +#include <stdexcept> +#include <string> +#include <utility> + +// #include "string_view.hpp" + + + +namespace inja { + +inline void inja_throw(const std::string& type, const std::string& message) { + throw std::runtime_error("[inja.exception." + type + "] " + message); +} + +inline std::ifstream open_file_or_throw(const std::string& path) { + std::ifstream file; + file.exceptions(std::ifstream::failbit | std::ifstream::badbit); + try { + file.open(path); + } catch(const std::ios_base::failure& e) { + inja_throw("file_error", "failed accessing file at '" + path + "'"); + } + return file; +} + +namespace string_view { + inline nonstd::string_view slice(nonstd::string_view view, size_t start, size_t end) { + start = std::min(start, view.size()); + end = std::min(std::max(start, end), view.size()); + return view.substr(start, end - start); // StringRef(Data + Start, End - Start); + } + + inline std::pair<nonstd::string_view, nonstd::string_view> split(nonstd::string_view view, char Separator) { + size_t idx = view.find(Separator); + if (idx == nonstd::string_view::npos) { + return std::make_pair(view, nonstd::string_view()); + } + return std::make_pair(slice(view, 0, idx), slice(view, idx + 1, nonstd::string_view::npos)); + } + + inline bool starts_with(nonstd::string_view view, nonstd::string_view prefix) { + return (view.size() >= prefix.size() && view.compare(0, prefix.size(), prefix) == 0); + } +} // namespace string + +} // namespace inja + +#endif // PANTOR_INJA_UTILS_HPP + + + +namespace inja { + +/*! + * \brief Class for lexing an inja Template. + */ +class Lexer { + enum class State { + Text, + ExpressionStart, + ExpressionBody, + LineStart, + LineBody, + StatementStart, + StatementBody, + CommentStart, + CommentBody + } m_state; + + const LexerConfig& m_config; + nonstd::string_view m_in; + size_t m_tok_start; + size_t m_pos; + + public: + explicit Lexer(const LexerConfig& config) : m_config(config) {} + + void start(nonstd::string_view in) { + m_in = in; + m_tok_start = 0; + m_pos = 0; + m_state = State::Text; + } + + Token scan() { + m_tok_start = m_pos; + + again: + if (m_tok_start >= m_in.size()) return make_token(Token::Kind::Eof); + + switch (m_state) { + default: + case State::Text: { + // fast-scan to first open character + size_t open_start = m_in.substr(m_pos).find_first_of(m_config.open_chars); + if (open_start == nonstd::string_view::npos) { + // didn't find open, return remaining text as text token + m_pos = m_in.size(); + return make_token(Token::Kind::Text); + } + m_pos += open_start; + + // try to match one of the opening sequences, and get the close + nonstd::string_view open_str = m_in.substr(m_pos); + bool must_lstrip = false; + if (inja::string_view::starts_with(open_str, m_config.expression_open)) { + m_state = State::ExpressionStart; + } else if (inja::string_view::starts_with(open_str, m_config.statement_open)) { + m_state = State::StatementStart; + must_lstrip = m_config.lstrip_blocks; + } else if (inja::string_view::starts_with(open_str, m_config.comment_open)) { + m_state = State::CommentStart; + must_lstrip = m_config.lstrip_blocks; + } else if ((m_pos == 0 || m_in[m_pos - 1] == '\n') && + inja::string_view::starts_with(open_str, m_config.line_statement)) { + m_state = State::LineStart; + } else { + m_pos += 1; // wasn't actually an opening sequence + goto again; + } + + nonstd::string_view text = string_view::slice(m_in, m_tok_start, m_pos); + if (must_lstrip) + text = clear_final_line_if_whitespace(text); + + if (text.empty()) goto again; // don't generate empty token + return Token(Token::Kind::Text, text); + } + case State::ExpressionStart: { + m_state = State::ExpressionBody; + m_pos += m_config.expression_open.size(); + return make_token(Token::Kind::ExpressionOpen); + } + case State::LineStart: { + m_state = State::LineBody; + m_pos += m_config.line_statement.size(); + return make_token(Token::Kind::LineStatementOpen); + } + case State::StatementStart: { + m_state = State::StatementBody; + m_pos += m_config.statement_open.size(); + return make_token(Token::Kind::StatementOpen); + } + case State::CommentStart: { + m_state = State::CommentBody; + m_pos += m_config.comment_open.size(); + return make_token(Token::Kind::CommentOpen); + } + case State::ExpressionBody: + return scan_body(m_config.expression_close, Token::Kind::ExpressionClose); + case State::LineBody: + return scan_body("\n", Token::Kind::LineStatementClose); + case State::StatementBody: + return scan_body(m_config.statement_close, Token::Kind::StatementClose, m_config.trim_blocks); + case State::CommentBody: { + // fast-scan to comment close + size_t end = m_in.substr(m_pos).find(m_config.comment_close); + if (end == nonstd::string_view::npos) { + m_pos = m_in.size(); + return make_token(Token::Kind::Eof); + } + // return the entire comment in the close token + m_state = State::Text; + m_pos += end + m_config.comment_close.size(); + Token tok = make_token(Token::Kind::CommentClose); + if (m_config.trim_blocks) + skip_newline(); + return tok; + } + } + } + + const LexerConfig& get_config() const { return m_config; } + + private: + Token scan_body(nonstd::string_view close, Token::Kind closeKind, bool trim = false) { + again: + // skip whitespace (except for \n as it might be a close) + if (m_tok_start >= m_in.size()) return make_token(Token::Kind::Eof); + char ch = m_in[m_tok_start]; + if (ch == ' ' || ch == '\t' || ch == '\r') { + m_tok_start += 1; + goto again; + } + + // check for close + if (inja::string_view::starts_with(m_in.substr(m_tok_start), close)) { + m_state = State::Text; + m_pos = m_tok_start + close.size(); + Token tok = make_token(closeKind); + if (trim) + skip_newline(); + return tok; + } + + // skip \n + if (ch == '\n') { + m_tok_start += 1; + goto again; + } + + m_pos = m_tok_start + 1; + if (std::isalpha(ch)) return scan_id(); + switch (ch) { + case ',': + return make_token(Token::Kind::Comma); + case ':': + return make_token(Token::Kind::Colon); + case '(': + return make_token(Token::Kind::LeftParen); + case ')': + return make_token(Token::Kind::RightParen); + case '[': + return make_token(Token::Kind::LeftBracket); + case ']': + return make_token(Token::Kind::RightBracket); + case '{': + return make_token(Token::Kind::LeftBrace); + case '}': + return make_token(Token::Kind::RightBrace); + case '>': + if (m_pos < m_in.size() && m_in[m_pos] == '=') { + m_pos += 1; + return make_token(Token::Kind::GreaterEqual); + } + return make_token(Token::Kind::GreaterThan); + case '<': + if (m_pos < m_in.size() && m_in[m_pos] == '=') { + m_pos += 1; + return make_token(Token::Kind::LessEqual); + } + return make_token(Token::Kind::LessThan); + case '=': + if (m_pos < m_in.size() && m_in[m_pos] == '=') { + m_pos += 1; + return make_token(Token::Kind::Equal); + } + return make_token(Token::Kind::Unknown); + case '!': + if (m_pos < m_in.size() && m_in[m_pos] == '=') { + m_pos += 1; + return make_token(Token::Kind::NotEqual); + } + return make_token(Token::Kind::Unknown); + case '\"': + return scan_string(); + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + case '-': + return scan_number(); + case '_': + return scan_id(); + default: + return make_token(Token::Kind::Unknown); + } + } + + Token scan_id() { + for (;;) { + if (m_pos >= m_in.size()) { + break; + } + char ch = m_in[m_pos]; + if (!std::isalnum(ch) && ch != '.' && ch != '/' && ch != '_' && ch != '-') { + break; + } + m_pos += 1; + } + return make_token(Token::Kind::Id); + } + + Token scan_number() { + for (;;) { + if (m_pos >= m_in.size()) { + break; + } + char ch = m_in[m_pos]; + // be very permissive in lexer (we'll catch errors when conversion happens) + if (!std::isdigit(ch) && ch != '.' && ch != 'e' && ch != 'E' && ch != '+' && ch != '-') { + break; + } + m_pos += 1; + } + return make_token(Token::Kind::Number); + } + + Token scan_string() { + bool escape {false}; + for (;;) { + if (m_pos >= m_in.size()) break; + char ch = m_in[m_pos++]; + if (ch == '\\') { + escape = true; + } else if (!escape && ch == m_in[m_tok_start]) { + break; + } else { + escape = false; + } + } + return make_token(Token::Kind::String); + } + + Token make_token(Token::Kind kind) const { + return Token(kind, string_view::slice(m_in, m_tok_start, m_pos)); + } + + void skip_newline() { + if (m_pos < m_in.size()) { + char ch = m_in[m_pos]; + if (ch == '\n') + m_pos += 1; + else if (ch == '\r') { + m_pos += 1; + if (m_pos < m_in.size() && m_in[m_pos] == '\n') + m_pos += 1; + } + } + } + + static nonstd::string_view clear_final_line_if_whitespace(nonstd::string_view text) + { + nonstd::string_view result = text; + while (!result.empty()) { + char ch = result.back(); + if (ch == ' ' || ch == '\t') + result.remove_suffix(1); + else if (ch == '\n' || ch == '\r') + break; + else + return text; + } + return result; + } +}; + +} + +#endif // PANTOR_INJA_LEXER_HPP + +// #include "template.hpp" +#ifndef PANTOR_INJA_TEMPLATE_HPP +#define PANTOR_INJA_TEMPLATE_HPP + +#include <map> +#include <string> +#include <vector> + +// #include "bytecode.hpp" + + + +namespace inja { + +/*! + * \brief The main inja Template. + */ +struct Template { + std::vector<Bytecode> bytecodes; + std::string content; +}; + +using TemplateStorage = std::map<std::string, Template>; + +} + +#endif // PANTOR_INJA_TEMPLATE_HPP + +// #include "token.hpp" + +// #include "utils.hpp" + + +#include <nlohmann/json.hpp> + + +namespace inja { + +class ParserStatic { + ParserStatic() { + functions.add_builtin("at", 2, Bytecode::Op::At); + functions.add_builtin("default", 2, Bytecode::Op::Default); + functions.add_builtin("divisibleBy", 2, Bytecode::Op::DivisibleBy); + functions.add_builtin("even", 1, Bytecode::Op::Even); + functions.add_builtin("first", 1, Bytecode::Op::First); + functions.add_builtin("float", 1, Bytecode::Op::Float); + functions.add_builtin("int", 1, Bytecode::Op::Int); + functions.add_builtin("last", 1, Bytecode::Op::Last); + functions.add_builtin("length", 1, Bytecode::Op::Length); + functions.add_builtin("lower", 1, Bytecode::Op::Lower); + functions.add_builtin("max", 1, Bytecode::Op::Max); + functions.add_builtin("min", 1, Bytecode::Op::Min); + functions.add_builtin("odd", 1, Bytecode::Op::Odd); + functions.add_builtin("range", 1, Bytecode::Op::Range); + functions.add_builtin("round", 2, Bytecode::Op::Round); + functions.add_builtin("sort", 1, Bytecode::Op::Sort); + functions.add_builtin("upper", 1, Bytecode::Op::Upper); + functions.add_builtin("exists", 1, Bytecode::Op::Exists); + functions.add_builtin("existsIn", 2, Bytecode::Op::ExistsInObject); + functions.add_builtin("isBoolean", 1, Bytecode::Op::IsBoolean); + functions.add_builtin("isNumber", 1, Bytecode::Op::IsNumber); + functions.add_builtin("isInteger", 1, Bytecode::Op::IsInteger); + functions.add_builtin("isFloat", 1, Bytecode::Op::IsFloat); + functions.add_builtin("isObject", 1, Bytecode::Op::IsObject); + functions.add_builtin("isArray", 1, Bytecode::Op::IsArray); + functions.add_builtin("isString", 1, Bytecode::Op::IsString); + } + + public: + ParserStatic(const ParserStatic&) = delete; + ParserStatic& operator=(const ParserStatic&) = delete; + + static const ParserStatic& get_instance() { + static ParserStatic inst; + return inst; + } + + FunctionStorage functions; +}; + +/*! + * \brief Class for parsing an inja Template. + */ +class Parser { + public: + explicit Parser(const ParserConfig& parser_config, const LexerConfig& lexer_config, TemplateStorage& included_templates): m_config(parser_config), m_lexer(lexer_config), m_included_templates(included_templates), m_static(ParserStatic::get_instance()) { } + + bool parse_expression(Template& tmpl) { + if (!parse_expression_and(tmpl)) return false; + if (m_tok.kind != Token::Kind::Id || m_tok.text != static_cast<decltype(m_tok.text)>("or")) return true; + get_next_token(); + if (!parse_expression_and(tmpl)) return false; + append_function(tmpl, Bytecode::Op::Or, 2); + return true; + } + + bool parse_expression_and(Template& tmpl) { + if (!parse_expression_not(tmpl)) return false; + if (m_tok.kind != Token::Kind::Id || m_tok.text != static_cast<decltype(m_tok.text)>("and")) return true; + get_next_token(); + if (!parse_expression_not(tmpl)) return false; + append_function(tmpl, Bytecode::Op::And, 2); + return true; + } + + bool parse_expression_not(Template& tmpl) { + if (m_tok.kind == Token::Kind::Id && m_tok.text == static_cast<decltype(m_tok.text)>("not")) { + get_next_token(); + if (!parse_expression_not(tmpl)) return false; + append_function(tmpl, Bytecode::Op::Not, 1); + return true; + } else { + return parse_expression_comparison(tmpl); + } + } + + bool parse_expression_comparison(Template& tmpl) { + if (!parse_expression_datum(tmpl)) return false; + Bytecode::Op op; + switch (m_tok.kind) { + case Token::Kind::Id: + if (m_tok.text == static_cast<decltype(m_tok.text)>("in")) + op = Bytecode::Op::In; + else + return true; + break; + case Token::Kind::Equal: + op = Bytecode::Op::Equal; + break; + case Token::Kind::GreaterThan: + op = Bytecode::Op::Greater; + break; + case Token::Kind::LessThan: + op = Bytecode::Op::Less; + break; + case Token::Kind::LessEqual: + op = Bytecode::Op::LessEqual; + break; + case Token::Kind::GreaterEqual: + op = Bytecode::Op::GreaterEqual; + break; + case Token::Kind::NotEqual: + op = Bytecode::Op::Different; + break; + default: + return true; + } + get_next_token(); + if (!parse_expression_datum(tmpl)) return false; + append_function(tmpl, op, 2); + return true; + } + + bool parse_expression_datum(Template& tmpl) { + nonstd::string_view json_first; + size_t bracket_level = 0; + size_t brace_level = 0; + + for (;;) { + switch (m_tok.kind) { + case Token::Kind::LeftParen: { + get_next_token(); + if (!parse_expression(tmpl)) return false; + if (m_tok.kind != Token::Kind::RightParen) { + inja_throw("parser_error", "unmatched '('"); + } + get_next_token(); + return true; + } + case Token::Kind::Id: + get_peek_token(); + if (m_peek_tok.kind == Token::Kind::LeftParen) { + // function call, parse arguments + Token func_token = m_tok; + get_next_token(); // id + get_next_token(); // leftParen + unsigned int num_args = 0; + if (m_tok.kind == Token::Kind::RightParen) { + // no args + get_next_token(); + } else { + for (;;) { + if (!parse_expression(tmpl)) { + inja_throw("parser_error", "expected expression, got '" + m_tok.describe() + "'"); + } + num_args += 1; + if (m_tok.kind == Token::Kind::RightParen) { + get_next_token(); + break; + } + if (m_tok.kind != Token::Kind::Comma) { + inja_throw("parser_error", "expected ')' or ',', got '" + m_tok.describe() + "'"); + } + get_next_token(); + } + } + + auto op = m_static.functions.find_builtin(func_token.text, num_args); + + if (op != Bytecode::Op::Nop) { + // swap arguments for default(); see comment in RenderTo() + if (op == Bytecode::Op::Default) + std::swap(tmpl.bytecodes.back(), *(tmpl.bytecodes.rbegin() + 1)); + append_function(tmpl, op, num_args); + return true; + } else { + append_callback(tmpl, func_token.text, num_args); + return true; + } + } else if (m_tok.text == static_cast<decltype(m_tok.text)>("true") || + m_tok.text == static_cast<decltype(m_tok.text)>("false") || + m_tok.text == static_cast<decltype(m_tok.text)>("null")) { + // true, false, null are json literals + if (brace_level == 0 && bracket_level == 0) { + json_first = m_tok.text; + goto returnJson; + } + break; + } else { + // normal literal (json read) + tmpl.bytecodes.emplace_back( + Bytecode::Op::Push, m_tok.text, + m_config.notation == ElementNotation::Pointer ? Bytecode::Flag::ValueLookupPointer : Bytecode::Flag::ValueLookupDot); + get_next_token(); + return true; + } + // json passthrough + case Token::Kind::Number: + case Token::Kind::String: + if (brace_level == 0 && bracket_level == 0) { + json_first = m_tok.text; + goto returnJson; + } + break; + case Token::Kind::Comma: + case Token::Kind::Colon: + if (brace_level == 0 && bracket_level == 0) { + inja_throw("parser_error", "unexpected token '" + m_tok.describe() + "'"); + } + break; + case Token::Kind::LeftBracket: + if (brace_level == 0 && bracket_level == 0) { + json_first = m_tok.text; + } + bracket_level += 1; + break; + case Token::Kind::LeftBrace: + if (brace_level == 0 && bracket_level == 0) { + json_first = m_tok.text; + } + brace_level += 1; + break; + case Token::Kind::RightBracket: + if (bracket_level == 0) { + inja_throw("parser_error", "unexpected ']'"); + } + --bracket_level; + if (brace_level == 0 && bracket_level == 0) goto returnJson; + break; + case Token::Kind::RightBrace: + if (brace_level == 0) { + inja_throw("parser_error", "unexpected '}'"); + } + --brace_level; + if (brace_level == 0 && bracket_level == 0) goto returnJson; + break; + default: + if (brace_level != 0) { + inja_throw("parser_error", "unmatched '{'"); + } + if (bracket_level != 0) { + inja_throw("parser_error", "unmatched '['"); + } + return false; + } + + get_next_token(); + } + + returnJson: + // bridge across all intermediate tokens + nonstd::string_view json_text(json_first.data(), m_tok.text.data() - json_first.data() + m_tok.text.size()); + tmpl.bytecodes.emplace_back(Bytecode::Op::Push, json::parse(json_text), Bytecode::Flag::ValueImmediate); + get_next_token(); + return true; + } + + bool parse_statement(Template& tmpl, nonstd::string_view path) { + if (m_tok.kind != Token::Kind::Id) return false; + + if (m_tok.text == static_cast<decltype(m_tok.text)>("if")) { + get_next_token(); + + // evaluate expression + if (!parse_expression(tmpl)) return false; + + // start a new if block on if stack + m_if_stack.emplace_back(tmpl.bytecodes.size()); + + // conditional jump; destination will be filled in by else or endif + tmpl.bytecodes.emplace_back(Bytecode::Op::ConditionalJump); + } else if (m_tok.text == static_cast<decltype(m_tok.text)>("endif")) { + if (m_if_stack.empty()) { + inja_throw("parser_error", "endif without matching if"); + } + auto& if_data = m_if_stack.back(); + get_next_token(); + + // previous conditional jump jumps here + if (if_data.prev_cond_jump != std::numeric_limits<unsigned int>::max()) { + tmpl.bytecodes[if_data.prev_cond_jump].args = tmpl.bytecodes.size(); + } + + // update all previous unconditional jumps to here + for (unsigned int i: if_data.uncond_jumps) { + tmpl.bytecodes[i].args = tmpl.bytecodes.size(); + } + + // pop if stack + m_if_stack.pop_back(); + } else if (m_tok.text == static_cast<decltype(m_tok.text)>("else")) { + if (m_if_stack.empty()) + inja_throw("parser_error", "else without matching if"); + auto& if_data = m_if_stack.back(); + get_next_token(); + + // end previous block with unconditional jump to endif; destination will be + // filled in by endif + if_data.uncond_jumps.push_back(tmpl.bytecodes.size()); + tmpl.bytecodes.emplace_back(Bytecode::Op::Jump); + + // previous conditional jump jumps here + tmpl.bytecodes[if_data.prev_cond_jump].args = tmpl.bytecodes.size(); + if_data.prev_cond_jump = std::numeric_limits<unsigned int>::max(); + + // chained else if + if (m_tok.kind == Token::Kind::Id && m_tok.text == static_cast<decltype(m_tok.text)>("if")) { + get_next_token(); + + // evaluate expression + if (!parse_expression(tmpl)) return false; + + // update "previous jump" + if_data.prev_cond_jump = tmpl.bytecodes.size(); + + // conditional jump; destination will be filled in by else or endif + tmpl.bytecodes.emplace_back(Bytecode::Op::ConditionalJump); + } + } else if (m_tok.text == static_cast<decltype(m_tok.text)>("for")) { + get_next_token(); + + // options: for a in arr; for a, b in obj + if (m_tok.kind != Token::Kind::Id) + inja_throw("parser_error", "expected id, got '" + m_tok.describe() + "'"); + Token value_token = m_tok; + get_next_token(); + + Token key_token; + if (m_tok.kind == Token::Kind::Comma) { + get_next_token(); + if (m_tok.kind != Token::Kind::Id) + inja_throw("parser_error", "expected id, got '" + m_tok.describe() + "'"); + key_token = std::move(value_token); + value_token = m_tok; + get_next_token(); + } + + if (m_tok.kind != Token::Kind::Id || m_tok.text != static_cast<decltype(m_tok.text)>("in")) + inja_throw("parser_error", + "expected 'in', got '" + m_tok.describe() + "'"); + get_next_token(); + + if (!parse_expression(tmpl)) return false; + + m_loop_stack.push_back(tmpl.bytecodes.size()); + + tmpl.bytecodes.emplace_back(Bytecode::Op::StartLoop); + if (!key_token.text.empty()) { + tmpl.bytecodes.back().value = key_token.text; + } + tmpl.bytecodes.back().str = static_cast<std::string>(value_token.text); + } else if (m_tok.text == static_cast<decltype(m_tok.text)>("endfor")) { + get_next_token(); + if (m_loop_stack.empty()) { + inja_throw("parser_error", "endfor without matching for"); + } + + // update loop with EndLoop index (for empty case) + tmpl.bytecodes[m_loop_stack.back()].args = tmpl.bytecodes.size(); + + tmpl.bytecodes.emplace_back(Bytecode::Op::EndLoop); + tmpl.bytecodes.back().args = m_loop_stack.back() + 1; // loop body + m_loop_stack.pop_back(); + } else if (m_tok.text == static_cast<decltype(m_tok.text)>("include")) { + get_next_token(); + + if (m_tok.kind != Token::Kind::String) { + inja_throw("parser_error", "expected string, got '" + m_tok.describe() + "'"); + } + + // build the relative path + json json_name = json::parse(m_tok.text); + std::string pathname = static_cast<std::string>(path); + pathname += json_name.get_ref<const std::string&>(); + if (pathname.compare(0, 2, "./") == 0) { + pathname.erase(0, 2); + } + // sys::path::remove_dots(pathname, true, sys::path::Style::posix); + + if (m_included_templates.find(pathname) == m_included_templates.end()) { + Template include_template = parse_template(pathname); + m_included_templates.emplace(pathname, include_template); + } + + // generate a reference bytecode + tmpl.bytecodes.emplace_back(Bytecode::Op::Include, json(pathname), Bytecode::Flag::ValueImmediate); + + get_next_token(); + } else { + return false; + } + return true; + } + + void append_function(Template& tmpl, Bytecode::Op op, unsigned int num_args) { + // we can merge with back-to-back push + if (!tmpl.bytecodes.empty()) { + Bytecode& last = tmpl.bytecodes.back(); + if (last.op == Bytecode::Op::Push) { + last.op = op; + last.args = num_args; + return; + } + } + + // otherwise just add it to the end + tmpl.bytecodes.emplace_back(op, num_args); + } + + void append_callback(Template& tmpl, nonstd::string_view name, unsigned int num_args) { + // we can merge with back-to-back push value (not lookup) + if (!tmpl.bytecodes.empty()) { + Bytecode& last = tmpl.bytecodes.back(); + if (last.op == Bytecode::Op::Push && + (last.flags & Bytecode::Flag::ValueMask) == Bytecode::Flag::ValueImmediate) { + last.op = Bytecode::Op::Callback; + last.args = num_args; + last.str = static_cast<std::string>(name); + return; + } + } + + // otherwise just add it to the end + tmpl.bytecodes.emplace_back(Bytecode::Op::Callback, num_args); + tmpl.bytecodes.back().str = static_cast<std::string>(name); + } + + void parse_into(Template& tmpl, nonstd::string_view path) { + m_lexer.start(tmpl.content); + + for (;;) { + get_next_token(); + switch (m_tok.kind) { + case Token::Kind::Eof: + if (!m_if_stack.empty()) inja_throw("parser_error", "unmatched if"); + if (!m_loop_stack.empty()) inja_throw("parser_error", "unmatched for"); + return; + case Token::Kind::Text: + tmpl.bytecodes.emplace_back(Bytecode::Op::PrintText, m_tok.text, 0u); + break; + case Token::Kind::StatementOpen: + get_next_token(); + if (!parse_statement(tmpl, path)) { + inja_throw("parser_error", "expected statement, got '" + m_tok.describe() + "'"); + } + if (m_tok.kind != Token::Kind::StatementClose) { + inja_throw("parser_error", "expected statement close, got '" + m_tok.describe() + "'"); + } + break; + case Token::Kind::LineStatementOpen: + get_next_token(); + parse_statement(tmpl, path); + if (m_tok.kind != Token::Kind::LineStatementClose && + m_tok.kind != Token::Kind::Eof) { + inja_throw("parser_error", "expected line statement close, got '" + m_tok.describe() + "'"); + } + break; + case Token::Kind::ExpressionOpen: + get_next_token(); + if (!parse_expression(tmpl)) { + inja_throw("parser_error", "expected expression, got '" + m_tok.describe() + "'"); + } + append_function(tmpl, Bytecode::Op::PrintValue, 1); + if (m_tok.kind != Token::Kind::ExpressionClose) { + inja_throw("parser_error", "expected expression close, got '" + m_tok.describe() + "'"); + } + break; + case Token::Kind::CommentOpen: + get_next_token(); + if (m_tok.kind != Token::Kind::CommentClose) { + inja_throw("parser_error", "expected comment close, got '" + m_tok.describe() + "'"); + } + break; + default: + inja_throw("parser_error", "unexpected token '" + m_tok.describe() + "'"); + break; + } + } + } + + Template parse(nonstd::string_view input, nonstd::string_view path) { + Template result; + result.content = static_cast<std::string>(input); + parse_into(result, path); + return result; + } + + Template parse(nonstd::string_view input) { + return parse(input, "./"); + } + + Template parse_template(nonstd::string_view filename) { + Template result; + result.content = load_file(filename); + + nonstd::string_view path = filename.substr(0, filename.find_last_of("/\\") + 1); + // StringRef path = sys::path::parent_path(filename); + Parser(m_config, m_lexer.get_config(), m_included_templates).parse_into(result, path); + return result; + } + + std::string load_file(nonstd::string_view filename) { + std::ifstream file = open_file_or_throw(static_cast<std::string>(filename)); + std::string text((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>()); + return text; + } + + private: + const ParserConfig& m_config; + Lexer m_lexer; + Token m_tok; + Token m_peek_tok; + bool m_have_peek_tok {false}; + TemplateStorage& m_included_templates; + const ParserStatic& m_static; + + struct IfData { + unsigned int prev_cond_jump; + std::vector<unsigned int> uncond_jumps; + + explicit IfData(unsigned int condJump): prev_cond_jump(condJump) {} + }; + + std::vector<IfData> m_if_stack; + std::vector<unsigned int> m_loop_stack; + + void get_next_token() { + if (m_have_peek_tok) { + m_tok = m_peek_tok; + m_have_peek_tok = false; + } else { + m_tok = m_lexer.scan(); + } + } + + void get_peek_token() { + if (!m_have_peek_tok) { + m_peek_tok = m_lexer.scan(); + m_have_peek_tok = true; + } + } +}; + +} // namespace inja + +#endif // PANTOR_INJA_PARSER_HPP + +// #include "polyfill.hpp" +#ifndef PANTOR_INJA_POLYFILL_HPP +#define PANTOR_INJA_POLYFILL_HPP + + +#if __cplusplus < 201402L + +#include <cstddef> +#include <memory> +#include <type_traits> +#include <utility> + + +namespace stdinja { + template<class T> struct _Unique_if { + typedef std::unique_ptr<T> _Single_object; + }; + + template<class T> struct _Unique_if<T[]> { + typedef std::unique_ptr<T[]> _Unknown_bound; + }; + + template<class T, size_t N> struct _Unique_if<T[N]> { + typedef void _Known_bound; + }; + + template<class T, class... Args> + typename _Unique_if<T>::_Single_object + make_unique(Args&&... args) { + return std::unique_ptr<T>(new T(std::forward<Args>(args)...)); + } + + template<class T> + typename _Unique_if<T>::_Unknown_bound + make_unique(size_t n) { + typedef typename std::remove_extent<T>::type U; + return std::unique_ptr<T>(new U[n]()); + } + + template<class T, class... Args> + typename _Unique_if<T>::_Known_bound + make_unique(Args&&...) = delete; +} + +#else + +namespace stdinja = std; + +#endif // memory */ + + +#endif // PANTOR_INJA_POLYFILL_HPP + +// #include "renderer.hpp" +#ifndef PANTOR_INJA_RENDERER_HPP +#define PANTOR_INJA_RENDERER_HPP + +#include <algorithm> +#include <numeric> +#include <string> +#include <utility> +#include <vector> + +#include <nlohmann/json.hpp> + +// #include "bytecode.hpp" + +// #include "template.hpp" + +// #include "utils.hpp" + + + +namespace inja { + +inline nonstd::string_view convert_dot_to_json_pointer(nonstd::string_view dot, std::string& out) { + out.clear(); + do { + nonstd::string_view part; + std::tie(part, dot) = string_view::split(dot, '.'); + out.push_back('/'); + out.append(part.begin(), part.end()); + } while (!dot.empty()); + return nonstd::string_view(out.data(), out.size()); +} + +/*! + * \brief Class for rendering a Template with data. + */ +class Renderer { + std::vector<const json*>& get_args(const Bytecode& bc) { + m_tmp_args.clear(); + + bool has_imm = ((bc.flags & Bytecode::Flag::ValueMask) != Bytecode::Flag::ValuePop); + + // get args from stack + unsigned int pop_args = bc.args; + if (has_imm) { + pop_args -= 1; + } + + for (auto i = std::prev(m_stack.end(), pop_args); i != m_stack.end(); i++) { + m_tmp_args.push_back(&(*i)); + } + + // get immediate arg + if (has_imm) { + m_tmp_args.push_back(get_imm(bc)); + } + + return m_tmp_args; + } + + void pop_args(const Bytecode& bc) { + unsigned int popArgs = bc.args; + if ((bc.flags & Bytecode::Flag::ValueMask) != Bytecode::Flag::ValuePop) { + popArgs -= 1; + } + for (unsigned int i = 0; i < popArgs; ++i) { + m_stack.pop_back(); + } + } + + const json* get_imm(const Bytecode& bc) { + std::string ptr_buffer; + nonstd::string_view ptr; + switch (bc.flags & Bytecode::Flag::ValueMask) { + case Bytecode::Flag::ValuePop: + return nullptr; + case Bytecode::Flag::ValueImmediate: + return &bc.value; + case Bytecode::Flag::ValueLookupDot: + ptr = convert_dot_to_json_pointer(bc.str, ptr_buffer); + break; + case Bytecode::Flag::ValueLookupPointer: + ptr_buffer += '/'; + ptr_buffer += bc.str; + ptr = ptr_buffer; + break; + } + try { + return &m_data->at(json::json_pointer(ptr.data())); + } catch (std::exception&) { + // try to evaluate as a no-argument callback + if (auto callback = m_callbacks.find_callback(bc.str, 0)) { + std::vector<const json*> arguments {}; + m_tmp_val = callback(arguments); + return &m_tmp_val; + } + inja_throw("render_error", "variable '" + static_cast<std::string>(bc.str) + "' not found"); + return nullptr; + } + } + + bool truthy(const json& var) const { + if (var.empty()) { + return false; + } else if (var.is_number()) { + return (var != 0); + } else if (var.is_string()) { + return !var.empty(); + } + + try { + return var.get<bool>(); + } catch (json::type_error& e) { + inja_throw("json_error", e.what()); + throw; + } + } + + void update_loop_data() { + LoopLevel& level = m_loop_stack.back(); + + if (level.loop_type == LoopLevel::Type::Array) { + level.data[static_cast<std::string>(level.value_name)] = level.values.at(level.index); // *level.it; + auto& loopData = level.data["loop"]; + loopData["index"] = level.index; + loopData["index1"] = level.index + 1; + loopData["is_first"] = (level.index == 0); + loopData["is_last"] = (level.index == level.size - 1); + } else { + level.data[static_cast<std::string>(level.key_name)] = level.map_it->first; + level.data[static_cast<std::string>(level.value_name)] = *level.map_it->second; + } + } + + const TemplateStorage& m_included_templates; + const FunctionStorage& m_callbacks; + + std::vector<json> m_stack; + + + struct LoopLevel { + enum class Type { Map, Array }; + + Type loop_type; + nonstd::string_view key_name; // variable name for keys + nonstd::string_view value_name; // variable name for values + json data; // data with loop info added + + json values; // values to iterate over + + // loop over list + size_t index; // current list index + size_t size; // length of list + + // loop over map + using KeyValue = std::pair<nonstd::string_view, json*>; + using MapValues = std::vector<KeyValue>; + MapValues map_values; // values to iterate over + MapValues::iterator map_it; // iterator over values + + }; + + std::vector<LoopLevel> m_loop_stack; + const json* m_data; + + std::vector<const json*> m_tmp_args; + json m_tmp_val; + + + public: + Renderer(const TemplateStorage& included_templates, const FunctionStorage& callbacks): m_included_templates(included_templates), m_callbacks(callbacks) { + m_stack.reserve(16); + m_tmp_args.reserve(4); + m_loop_stack.reserve(16); + } + + void render_to(std::ostream& os, const Template& tmpl, const json& data) { + m_data = &data; + + for (size_t i = 0; i < tmpl.bytecodes.size(); ++i) { + const auto& bc = tmpl.bytecodes[i]; + + switch (bc.op) { + case Bytecode::Op::Nop: { + break; + } + case Bytecode::Op::PrintText: { + os << bc.str; + break; + } + case Bytecode::Op::PrintValue: { + const json& val = *get_args(bc)[0]; + if (val.is_string()) { + os << val.get_ref<const std::string&>(); + } else { + os << val.dump(); + } + pop_args(bc); + break; + } + case Bytecode::Op::Push: { + m_stack.emplace_back(*get_imm(bc)); + break; + } + case Bytecode::Op::Upper: { + auto result = get_args(bc)[0]->get<std::string>(); + std::transform(result.begin(), result.end(), result.begin(), ::toupper); + pop_args(bc); + m_stack.emplace_back(std::move(result)); + break; + } + case Bytecode::Op::Lower: { + auto result = get_args(bc)[0]->get<std::string>(); + std::transform(result.begin(), result.end(), result.begin(), ::tolower); + pop_args(bc); + m_stack.emplace_back(std::move(result)); + break; + } + case Bytecode::Op::Range: { + int number = get_args(bc)[0]->get<int>(); + std::vector<int> result(number); + std::iota(std::begin(result), std::end(result), 0); + pop_args(bc); + m_stack.emplace_back(std::move(result)); + break; + } + case Bytecode::Op::Length: { + const json& val = *get_args(bc)[0]; + + int result; + if (val.is_string()) { + result = val.get_ref<const std::string&>().length(); + } else { + result = val.size(); + } + + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::Sort: { + auto result = get_args(bc)[0]->get<std::vector<json>>(); + std::sort(result.begin(), result.end()); + pop_args(bc); + m_stack.emplace_back(std::move(result)); + break; + } + case Bytecode::Op::At: { + auto args = get_args(bc); + auto result = args[0]->at(args[1]->get<int>()); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::First: { + auto result = get_args(bc)[0]->front(); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::Last: { + auto result = get_args(bc)[0]->back(); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::Round: { + auto args = get_args(bc); + double number = args[0]->get<double>(); + int precision = args[1]->get<int>(); + pop_args(bc); + m_stack.emplace_back(std::round(number * std::pow(10.0, precision)) / std::pow(10.0, precision)); + break; + } + case Bytecode::Op::DivisibleBy: { + auto args = get_args(bc); + int number = args[0]->get<int>(); + int divisor = args[1]->get<int>(); + pop_args(bc); + m_stack.emplace_back((divisor != 0) && (number % divisor == 0)); + break; + } + case Bytecode::Op::Odd: { + int number = get_args(bc)[0]->get<int>(); + pop_args(bc); + m_stack.emplace_back(number % 2 != 0); + break; + } + case Bytecode::Op::Even: { + int number = get_args(bc)[0]->get<int>(); + pop_args(bc); + m_stack.emplace_back(number % 2 == 0); + break; + } + case Bytecode::Op::Max: { + auto args = get_args(bc); + auto result = *std::max_element(args[0]->begin(), args[0]->end()); + pop_args(bc); + m_stack.emplace_back(std::move(result)); + break; + } + case Bytecode::Op::Min: { + auto args = get_args(bc); + auto result = *std::min_element(args[0]->begin(), args[0]->end()); + pop_args(bc); + m_stack.emplace_back(std::move(result)); + break; + } + case Bytecode::Op::Not: { + bool result = !truthy(*get_args(bc)[0]); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::And: { + auto args = get_args(bc); + bool result = truthy(*args[0]) && truthy(*args[1]); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::Or: { + auto args = get_args(bc); + bool result = truthy(*args[0]) || truthy(*args[1]); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::In: { + auto args = get_args(bc); + bool result = std::find(args[1]->begin(), args[1]->end(), *args[0]) != + args[1]->end(); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::Equal: { + auto args = get_args(bc); + bool result = (*args[0] == *args[1]); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::Greater: { + auto args = get_args(bc); + bool result = (*args[0] > *args[1]); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::Less: { + auto args = get_args(bc); + bool result = (*args[0] < *args[1]); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::GreaterEqual: { + auto args = get_args(bc); + bool result = (*args[0] >= *args[1]); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::LessEqual: { + auto args = get_args(bc); + bool result = (*args[0] <= *args[1]); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::Different: { + auto args = get_args(bc); + bool result = (*args[0] != *args[1]); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::Float: { + double result = + std::stod(get_args(bc)[0]->get_ref<const std::string&>()); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::Int: { + int result = std::stoi(get_args(bc)[0]->get_ref<const std::string&>()); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::Exists: { + auto&& name = get_args(bc)[0]->get_ref<const std::string&>(); + bool result = (data.find(name) != data.end()); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::ExistsInObject: { + auto args = get_args(bc); + auto&& name = args[1]->get_ref<const std::string&>(); + bool result = (args[0]->find(name) != args[0]->end()); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::IsBoolean: { + bool result = get_args(bc)[0]->is_boolean(); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::IsNumber: { + bool result = get_args(bc)[0]->is_number(); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::IsInteger: { + bool result = get_args(bc)[0]->is_number_integer(); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::IsFloat: { + bool result = get_args(bc)[0]->is_number_float(); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::IsObject: { + bool result = get_args(bc)[0]->is_object(); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::IsArray: { + bool result = get_args(bc)[0]->is_array(); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::IsString: { + bool result = get_args(bc)[0]->is_string(); + pop_args(bc); + m_stack.emplace_back(result); + break; + } + case Bytecode::Op::Default: { + // default needs to be a bit "magic"; we can't evaluate the first + // argument during the push operation, so we swap the arguments during + // the parse phase so the second argument is pushed on the stack and + // the first argument is in the immediate + try { + const json* imm = get_imm(bc); + // if no exception was raised, replace the stack value with it + m_stack.back() = *imm; + } catch (std::exception&) { + // couldn't read immediate, just leave the stack as is + } + break; + } + case Bytecode::Op::Include: + Renderer(m_included_templates, m_callbacks).render_to(os, m_included_templates.find(get_imm(bc)->get_ref<const std::string&>())->second, *m_data); + break; + case Bytecode::Op::Callback: { + auto callback = m_callbacks.find_callback(bc.str, bc.args); + if (!callback) { + inja_throw("render_error", "function '" + static_cast<std::string>(bc.str) + "' (" + std::to_string(static_cast<unsigned int>(bc.args)) + ") not found"); + } + json result = callback(get_args(bc)); + pop_args(bc); + m_stack.emplace_back(std::move(result)); + break; + } + case Bytecode::Op::Jump: { + i = bc.args - 1; // -1 due to ++i in loop + break; + } + case Bytecode::Op::ConditionalJump: { + if (!truthy(m_stack.back())) { + i = bc.args - 1; // -1 due to ++i in loop + } + m_stack.pop_back(); + break; + } + case Bytecode::Op::StartLoop: { + // jump past loop body if empty + if (m_stack.back().empty()) { + m_stack.pop_back(); + i = bc.args; // ++i in loop will take it past EndLoop + break; + } + + m_loop_stack.emplace_back(); + LoopLevel& level = m_loop_stack.back(); + level.value_name = bc.str; + level.values = std::move(m_stack.back()); + level.data = (*m_data); + m_stack.pop_back(); + + if (bc.value.is_string()) { + // map iterator + if (!level.values.is_object()) { + m_loop_stack.pop_back(); + inja_throw("render_error", "for key, value requires object"); + } + level.loop_type = LoopLevel::Type::Map; + level.key_name = bc.value.get_ref<const std::string&>(); + + // sort by key + for (auto it = level.values.begin(), end = level.values.end(); it != end; ++it) { + level.map_values.emplace_back(it.key(), &it.value()); + } + std::sort(level.map_values.begin(), level.map_values.end(), [](const LoopLevel::KeyValue& a, const LoopLevel::KeyValue& b) { return a.first < b.first; }); + level.map_it = level.map_values.begin(); + } else { + if (!level.values.is_array()) { + m_loop_stack.pop_back(); + inja_throw("render_error", "type must be array"); + } + + // list iterator + level.loop_type = LoopLevel::Type::Array; + level.index = 0; + level.size = level.values.size(); + } + + // provide parent access in nested loop + auto parent_loop_it = level.data.find("loop"); + if (parent_loop_it != level.data.end()) { + json loop_copy = *parent_loop_it; + (*parent_loop_it)["parent"] = std::move(loop_copy); + } + + // set "current" data to loop data + m_data = &level.data; + update_loop_data(); + break; + } + case Bytecode::Op::EndLoop: { + if (m_loop_stack.empty()) { + inja_throw("render_error", "unexpected state in renderer"); + } + LoopLevel& level = m_loop_stack.back(); + + bool done; + if (level.loop_type == LoopLevel::Type::Array) { + level.index += 1; + done = (level.index == level.values.size()); + } else { + level.map_it += 1; + done = (level.map_it == level.map_values.end()); + } + + if (done) { + m_loop_stack.pop_back(); + // set "current" data to outer loop data or main data as appropriate + if (!m_loop_stack.empty()) { + m_data = &m_loop_stack.back().data; + } else { + m_data = &data; + } + break; + } + + update_loop_data(); + + // jump back to start of loop + i = bc.args - 1; // -1 due to ++i in loop + break; + } + default: { + inja_throw("render_error", "unknown op in renderer: " + std::to_string(static_cast<unsigned int>(bc.op))); + } + } + } + } +}; + +} // namespace inja + +#endif // PANTOR_INJA_RENDERER_HPP + +// #include "string_view.hpp" + +// #include "template.hpp" + +// #include "utils.hpp" + + + +namespace inja { + +using namespace nlohmann; + +/*! + * \brief Class for changing the configuration. + */ +class Environment { + class Impl { + public: + std::string input_path; + std::string output_path; + + LexerConfig lexer_config; + ParserConfig parser_config; + + FunctionStorage callbacks; + TemplateStorage included_templates; + }; + + std::unique_ptr<Impl> m_impl; + + public: + Environment(): Environment("") { } + + explicit Environment(const std::string& global_path): m_impl(stdinja::make_unique<Impl>()) { + m_impl->input_path = global_path; + m_impl->output_path = global_path; + } + + explicit Environment(const std::string& input_path, const std::string& output_path): m_impl(stdinja::make_unique<Impl>()) { + m_impl->input_path = input_path; + m_impl->output_path = output_path; + } + + /// Sets the opener and closer for template statements + void set_statement(const std::string& open, const std::string& close) { + m_impl->lexer_config.statement_open = open; + m_impl->lexer_config.statement_close = close; + m_impl->lexer_config.update_open_chars(); + } + + /// Sets the opener for template line statements + void set_line_statement(const std::string& open) { + m_impl->lexer_config.line_statement = open; + m_impl->lexer_config.update_open_chars(); + } + + /// Sets the opener and closer for template expressions + void set_expression(const std::string& open, const std::string& close) { + m_impl->lexer_config.expression_open = open; + m_impl->lexer_config.expression_close = close; + m_impl->lexer_config.update_open_chars(); + } + + /// Sets the opener and closer for template comments + void set_comment(const std::string& open, const std::string& close) { + m_impl->lexer_config.comment_open = open; + m_impl->lexer_config.comment_close = close; + m_impl->lexer_config.update_open_chars(); + } + + /// Sets whether to remove the first newline after a block + void set_trim_blocks(bool trim_blocks) { + m_impl->lexer_config.trim_blocks = trim_blocks; + } + + /// Sets whether to strip the spaces and tabs from the start of a line to a block + void set_lstrip_blocks(bool lstrip_blocks) { + m_impl->lexer_config.lstrip_blocks = lstrip_blocks; + } + + /// Sets the element notation syntax + void set_element_notation(ElementNotation notation) { + m_impl->parser_config.notation = notation; + } + + + Template parse(nonstd::string_view input) { + Parser parser(m_impl->parser_config, m_impl->lexer_config, m_impl->included_templates); + return parser.parse(input); + } + + Template parse_template(const std::string& filename) { + Parser parser(m_impl->parser_config, m_impl->lexer_config, m_impl->included_templates); + return parser.parse_template(m_impl->input_path + static_cast<std::string>(filename)); + } + + std::string render(nonstd::string_view input, const json& data) { + return render(parse(input), data); + } + + std::string render(const Template& tmpl, const json& data) { + std::stringstream os; + render_to(os, tmpl, data); + return os.str(); + } + + std::string render_file(const std::string& filename, const json& data) { + return render(parse_template(filename), data); + } + + std::string render_file_with_json_file(const std::string& filename, const std::string& filename_data) { + const json data = load_json(filename_data); + return render_file(filename, data); + } + + void write(const std::string& filename, const json& data, const std::string& filename_out) { + std::ofstream file(m_impl->output_path + filename_out); + file << render_file(filename, data); + file.close(); + } + + void write(const Template& temp, const json& data, const std::string& filename_out) { + std::ofstream file(m_impl->output_path + filename_out); + file << render(temp, data); + file.close(); + } + + void write_with_json_file(const std::string& filename, const std::string& filename_data, const std::string& filename_out) { + const json data = load_json(filename_data); + write(filename, data, filename_out); + } + + void write_with_json_file(const Template& temp, const std::string& filename_data, const std::string& filename_out) { + const json data = load_json(filename_data); + write(temp, data, filename_out); + } + + std::ostream& render_to(std::ostream& os, const Template& tmpl, const json& data) { + Renderer(m_impl->included_templates, m_impl->callbacks).render_to(os, tmpl, data); + return os; + } + + std::string load_file(const std::string& filename) { + Parser parser(m_impl->parser_config, m_impl->lexer_config, m_impl->included_templates); + return parser.load_file(m_impl->input_path + filename); + } + + json load_json(const std::string& filename) { + std::ifstream file = open_file_or_throw(m_impl->input_path + filename); + json j; + file >> j; + return j; + } + + void add_callback(const std::string& name, unsigned int numArgs, const CallbackFunction& callback) { + m_impl->callbacks.add_callback(name, numArgs, callback); + } + + /** Includes a template with a given name into the environment. + * Then, a template can be rendered in another template using the + * include "<name>" syntax. + */ + void include_template(const std::string& name, const Template& tmpl) { + m_impl->included_templates[name] = tmpl; + } +}; + +/*! +@brief render with default settings to a string +*/ +inline std::string render(nonstd::string_view input, const json& data) { + return Environment().render(input, data); +} + +/*! +@brief render with default settings to the given output stream +*/ +inline void render_to(std::ostream& os, nonstd::string_view input, const json& data) { + Environment env; + env.render_to(os, env.parse(input), data); +} + +} + +#endif // PANTOR_INJA_ENVIRONMENT_HPP + +// #include "string_view.hpp" + +// #include "template.hpp" + +// #include "parser.hpp" + +// #include "renderer.hpp" + + + +#endif // PANTOR_INJA_HPP diff --git a/tools/jsonproc/jsonproc.cpp b/tools/jsonproc/jsonproc.cpp new file mode 100644 index 00000000..f70c9131 --- /dev/null +++ b/tools/jsonproc/jsonproc.cpp @@ -0,0 +1,116 @@ +// jsonproc.cpp + +#include "jsonproc.h" + +#include <map> + +#include <string> +using std::string; using std::to_string; + +#include <inja.hpp> +using namespace inja; +using json = nlohmann::json; + +std::map<string, string> customVars; + +void set_custom_var(string key, string value) +{ + customVars[key] = value; +} + +string get_custom_var(string key) +{ + return customVars[key]; +} + +int main(int argc, char *argv[]) +{ + if (argc != 4) + FATAL_ERROR("USAGE: jsonproc <json-filepath> <template-filepath> <output-filepath>\n"); + + string jsonfilepath = argv[1]; + string templateFilepath = argv[2]; + string outputFilepath = argv[3]; + + Environment env; + + // Add custom command callbacks. + env.add_callback("doNotModifyHeader", 0, [jsonfilepath, templateFilepath](Arguments& args) { + return "//\n// DO NOT MODIFY THIS FILE! It is auto-generated from " + jsonfilepath +" and Inja template " + templateFilepath + "\n//\n"; + }); + + env.add_callback("contains", 2, [](Arguments& args) { + string word = args.at(0)->get<string>(); + string check = args.at(1)->get<string>(); + + return word.find(check) != std::string::npos; + }); + + env.add_callback("subtract", 2, [](Arguments& args) { + int minuend = args.at(0)->get<int>(); + int subtrahend = args.at(1)->get<int>(); + + return minuend - subtrahend; + }); + + env.add_callback("setVar", 2, [=](Arguments& args) { + string key = args.at(0)->get<string>(); + string value = args.at(1)->get<string>(); + set_custom_var(key, value); + return ""; + }); + + env.add_callback("setVarInt", 2, [=](Arguments& args) { + string key = args.at(0)->get<string>(); + string value = to_string(args.at(1)->get<int>()); + set_custom_var(key, value); + return ""; + }); + + env.add_callback("getVar", 1, [=](Arguments& args) { + string key = args.at(0)->get<string>(); + return get_custom_var(key); + }); + + env.add_callback("concat", 2, [](Arguments& args) { + string first = args.at(0)->get<string>(); + string second = args.at(1)->get<string>(); + return first + second; + }); + + env.add_callback("removePrefix", 2, [](Arguments& args) { + string rawValue = args.at(0)->get<string>(); + string prefix = args.at(1)->get<string>(); + string::size_type i = rawValue.find(prefix); + if (i != 0) + return rawValue; + + return rawValue.erase(0, prefix.length()); + }); + + env.add_callback("removeSuffix", 2, [](Arguments& args) { + string rawValue = args.at(0)->get<string>(); + string suffix = args.at(1)->get<string>(); + string::size_type i = rawValue.rfind(suffix); + if (i == string::npos) + return rawValue; + + return rawValue.substr(0, i); + }); + + // single argument is a json object + env.add_callback("isEmpty", 1, [](Arguments& args) { + return args.at(0)->empty(); + }); + + try + { + env.write_with_json_file(templateFilepath, jsonfilepath, outputFilepath); + } + catch (const std::exception& e) + { + FATAL_ERROR("JSONPROC_ERROR: %s\n", e.what()); + } + + return 0; +} diff --git a/tools/jsonproc/jsonproc.h b/tools/jsonproc/jsonproc.h new file mode 100644 index 00000000..575fb375 --- /dev/null +++ b/tools/jsonproc/jsonproc.h @@ -0,0 +1,32 @@ +// jsonproc.h + +#ifndef JSONPROC_H +#define JSONPROC_H + +#include <cstdlib> +#include <cstdio> +using std::fprintf; using std::exit; + +#include <cstdlib> + +#ifdef _MSC_VER + +#define FATAL_ERROR(format, ...) \ +do \ +{ \ + fprintf(stderr, format, __VA_ARGS__); \ + exit(1); \ +} while (0) + +#else + +#define FATAL_ERROR(format, ...) \ +do \ +{ \ + fprintf(stderr, format, ##__VA_ARGS__); \ + exit(1); \ +} while (0) + +#endif // _MSC_VER + +#endif // JSONPROC_H diff --git a/tools/jsonproc/nlohmann/json.hpp b/tools/jsonproc/nlohmann/json.hpp new file mode 100644 index 00000000..5003a4fa --- /dev/null +++ b/tools/jsonproc/nlohmann/json.hpp @@ -0,0 +1,20842 @@ +/* + __ _____ _____ _____ + __| | __| | | | JSON for Modern C++ +| | |__ | | | | | | version 3.6.1 +|_____|_____|_____|_|___| https://github.com/nlohmann/json + +Licensed under the MIT License <http://opensource.org/licenses/MIT>. +SPDX-License-Identifier: MIT +Copyright (c) 2013-2019 Niels Lohmann <http://nlohmann.me>. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ + +#ifndef INCLUDE_NLOHMANN_JSON_HPP_ +#define INCLUDE_NLOHMANN_JSON_HPP_ + +#define NLOHMANN_JSON_VERSION_MAJOR 3 +#define NLOHMANN_JSON_VERSION_MINOR 6 +#define NLOHMANN_JSON_VERSION_PATCH 1 + +#include <algorithm> // all_of, find, for_each +#include <cassert> // assert +#include <ciso646> // and, not, or +#include <cstddef> // nullptr_t, ptrdiff_t, size_t +#include <functional> // hash, less +#include <initializer_list> // initializer_list +#include <iosfwd> // istream, ostream +#include <iterator> // random_access_iterator_tag +#include <memory> // unique_ptr +#include <numeric> // accumulate +#include <string> // string, stoi, to_string +#include <utility> // declval, forward, move, pair, swap +#include <vector> // vector + +// #include <nlohmann/adl_serializer.hpp> + + +#include <utility> + +// #include <nlohmann/detail/conversions/from_json.hpp> + + +#include <algorithm> // transform +#include <array> // array +#include <ciso646> // and, not +#include <forward_list> // forward_list +#include <iterator> // inserter, front_inserter, end +#include <map> // map +#include <string> // string +#include <tuple> // tuple, make_tuple +#include <type_traits> // is_arithmetic, is_same, is_enum, underlying_type, is_convertible +#include <unordered_map> // unordered_map +#include <utility> // pair, declval +#include <valarray> // valarray + +// #include <nlohmann/detail/exceptions.hpp> + + +#include <exception> // exception +#include <stdexcept> // runtime_error +#include <string> // to_string + +// #include <nlohmann/detail/input/position_t.hpp> + + +#include <cstddef> // size_t + +namespace nlohmann +{ +namespace detail +{ +/// struct to capture the start position of the current token +struct position_t +{ + /// the total number of characters read + std::size_t chars_read_total = 0; + /// the number of characters read in the current line + std::size_t chars_read_current_line = 0; + /// the number of lines read + std::size_t lines_read = 0; + + /// conversion to size_t to preserve SAX interface + constexpr operator size_t() const + { + return chars_read_total; + } +}; + +} // namespace detail +} // namespace nlohmann + + +namespace nlohmann +{ +namespace detail +{ +//////////////// +// exceptions // +//////////////// + +/*! +@brief general exception of the @ref basic_json class + +This class is an extension of `std::exception` objects with a member @a id for +exception ids. It is used as the base class for all exceptions thrown by the +@ref basic_json class. This class can hence be used as "wildcard" to catch +exceptions. + +Subclasses: +- @ref parse_error for exceptions indicating a parse error +- @ref invalid_iterator for exceptions indicating errors with iterators +- @ref type_error for exceptions indicating executing a member function with + a wrong type +- @ref out_of_range for exceptions indicating access out of the defined range +- @ref other_error for exceptions indicating other library errors + +@internal +@note To have nothrow-copy-constructible exceptions, we internally use + `std::runtime_error` which can cope with arbitrary-length error messages. + Intermediate strings are built with static functions and then passed to + the actual constructor. +@endinternal + +@liveexample{The following code shows how arbitrary library exceptions can be +caught.,exception} + +@since version 3.0.0 +*/ +class exception : public std::exception +{ + public: + /// returns the explanatory string + const char* what() const noexcept override + { + return m.what(); + } + + /// the id of the exception + const int id; + + protected: + exception(int id_, const char* what_arg) : id(id_), m(what_arg) {} + + static std::string name(const std::string& ename, int id_) + { + return "[json.exception." + ename + "." + std::to_string(id_) + "] "; + } + + private: + /// an exception object as storage for error messages + std::runtime_error m; +}; + +/*! +@brief exception indicating a parse error + +This exception is thrown by the library when a parse error occurs. Parse errors +can occur during the deserialization of JSON text, CBOR, MessagePack, as well +as when using JSON Patch. + +Member @a byte holds the byte index of the last read character in the input +file. + +Exceptions have ids 1xx. + +name / id | example message | description +------------------------------ | --------------- | ------------------------- +json.exception.parse_error.101 | parse error at 2: unexpected end of input; expected string literal | This error indicates a syntax error while deserializing a JSON text. The error message describes that an unexpected token (character) was encountered, and the member @a byte indicates the error position. +json.exception.parse_error.102 | parse error at 14: missing or wrong low surrogate | JSON uses the `\uxxxx` format to describe Unicode characters. Code points above above 0xFFFF are split into two `\uxxxx` entries ("surrogate pairs"). This error indicates that the surrogate pair is incomplete or contains an invalid code point. +json.exception.parse_error.103 | parse error: code points above 0x10FFFF are invalid | Unicode supports code points up to 0x10FFFF. Code points above 0x10FFFF are invalid. +json.exception.parse_error.104 | parse error: JSON patch must be an array of objects | [RFC 6902](https://tools.ietf.org/html/rfc6902) requires a JSON Patch document to be a JSON document that represents an array of objects. +json.exception.parse_error.105 | parse error: operation must have string member 'op' | An operation of a JSON Patch document must contain exactly one "op" member, whose value indicates the operation to perform. Its value must be one of "add", "remove", "replace", "move", "copy", or "test"; other values are errors. +json.exception.parse_error.106 | parse error: array index '01' must not begin with '0' | An array index in a JSON Pointer ([RFC 6901](https://tools.ietf.org/html/rfc6901)) may be `0` or any number without a leading `0`. +json.exception.parse_error.107 | parse error: JSON pointer must be empty or begin with '/' - was: 'foo' | A JSON Pointer must be a Unicode string containing a sequence of zero or more reference tokens, each prefixed by a `/` character. +json.exception.parse_error.108 | parse error: escape character '~' must be followed with '0' or '1' | In a JSON Pointer, only `~0` and `~1` are valid escape sequences. +json.exception.parse_error.109 | parse error: array index 'one' is not a number | A JSON Pointer array index must be a number. +json.exception.parse_error.110 | parse error at 1: cannot read 2 bytes from vector | When parsing CBOR or MessagePack, the byte vector ends before the complete value has been read. +json.exception.parse_error.112 | parse error at 1: error reading CBOR; last byte: 0xF8 | Not all types of CBOR or MessagePack are supported. This exception occurs if an unsupported byte was read. +json.exception.parse_error.113 | parse error at 2: expected a CBOR string; last byte: 0x98 | While parsing a map key, a value that is not a string has been read. +json.exception.parse_error.114 | parse error: Unsupported BSON record type 0x0F | The parsing of the corresponding BSON record type is not implemented (yet). + +@note For an input with n bytes, 1 is the index of the first character and n+1 + is the index of the terminating null byte or the end of file. This also + holds true when reading a byte vector (CBOR or MessagePack). + +@liveexample{The following code shows how a `parse_error` exception can be +caught.,parse_error} + +@sa - @ref exception for the base class of the library exceptions +@sa - @ref invalid_iterator for exceptions indicating errors with iterators +@sa - @ref type_error for exceptions indicating executing a member function with + a wrong type +@sa - @ref out_of_range for exceptions indicating access out of the defined range +@sa - @ref other_error for exceptions indicating other library errors + +@since version 3.0.0 +*/ +class parse_error : public exception +{ + public: + /*! + @brief create a parse error exception + @param[in] id_ the id of the exception + @param[in] pos the position where the error occurred (or with + chars_read_total=0 if the position cannot be + determined) + @param[in] what_arg the explanatory string + @return parse_error object + */ + static parse_error create(int id_, const position_t& pos, const std::string& what_arg) + { + std::string w = exception::name("parse_error", id_) + "parse error" + + position_string(pos) + ": " + what_arg; + return parse_error(id_, pos.chars_read_total, w.c_str()); + } + + static parse_error create(int id_, std::size_t byte_, const std::string& what_arg) + { + std::string w = exception::name("parse_error", id_) + "parse error" + + (byte_ != 0 ? (" at byte " + std::to_string(byte_)) : "") + + ": " + what_arg; + return parse_error(id_, byte_, w.c_str()); + } + + /*! + @brief byte index of the parse error + + The byte index of the last read character in the input file. + + @note For an input with n bytes, 1 is the index of the first character and + n+1 is the index of the terminating null byte or the end of file. + This also holds true when reading a byte vector (CBOR or MessagePack). + */ + const std::size_t byte; + + private: + parse_error(int id_, std::size_t byte_, const char* what_arg) + : exception(id_, what_arg), byte(byte_) {} + + static std::string position_string(const position_t& pos) + { + return " at line " + std::to_string(pos.lines_read + 1) + + ", column " + std::to_string(pos.chars_read_current_line); + } +}; + +/*! +@brief exception indicating errors with iterators + +This exception is thrown if iterators passed to a library function do not match +the expected semantics. + +Exceptions have ids 2xx. + +name / id | example message | description +----------------------------------- | --------------- | ------------------------- +json.exception.invalid_iterator.201 | iterators are not compatible | The iterators passed to constructor @ref basic_json(InputIT first, InputIT last) are not compatible, meaning they do not belong to the same container. Therefore, the range (@a first, @a last) is invalid. +json.exception.invalid_iterator.202 | iterator does not fit current value | In an erase or insert function, the passed iterator @a pos does not belong to the JSON value for which the function was called. It hence does not define a valid position for the deletion/insertion. +json.exception.invalid_iterator.203 | iterators do not fit current value | Either iterator passed to function @ref erase(IteratorType first, IteratorType last) does not belong to the JSON value from which values shall be erased. It hence does not define a valid range to delete values from. +json.exception.invalid_iterator.204 | iterators out of range | When an iterator range for a primitive type (number, boolean, or string) is passed to a constructor or an erase function, this range has to be exactly (@ref begin(), @ref end()), because this is the only way the single stored value is expressed. All other ranges are invalid. +json.exception.invalid_iterator.205 | iterator out of range | When an iterator for a primitive type (number, boolean, or string) is passed to an erase function, the iterator has to be the @ref begin() iterator, because it is the only way to address the stored value. All other iterators are invalid. +json.exception.invalid_iterator.206 | cannot construct with iterators from null | The iterators passed to constructor @ref basic_json(InputIT first, InputIT last) belong to a JSON null value and hence to not define a valid range. +json.exception.invalid_iterator.207 | cannot use key() for non-object iterators | The key() member function can only be used on iterators belonging to a JSON object, because other types do not have a concept of a key. +json.exception.invalid_iterator.208 | cannot use operator[] for object iterators | The operator[] to specify a concrete offset cannot be used on iterators belonging to a JSON object, because JSON objects are unordered. +json.exception.invalid_iterator.209 | cannot use offsets with object iterators | The offset operators (+, -, +=, -=) cannot be used on iterators belonging to a JSON object, because JSON objects are unordered. +json.exception.invalid_iterator.210 | iterators do not fit | The iterator range passed to the insert function are not compatible, meaning they do not belong to the same container. Therefore, the range (@a first, @a last) is invalid. +json.exception.invalid_iterator.211 | passed iterators may not belong to container | The iterator range passed to the insert function must not be a subrange of the container to insert to. +json.exception.invalid_iterator.212 | cannot compare iterators of different containers | When two iterators are compared, they must belong to the same container. +json.exception.invalid_iterator.213 | cannot compare order of object iterators | The order of object iterators cannot be compared, because JSON objects are unordered. +json.exception.invalid_iterator.214 | cannot get value | Cannot get value for iterator: Either the iterator belongs to a null value or it is an iterator to a primitive type (number, boolean, or string), but the iterator is different to @ref begin(). + +@liveexample{The following code shows how an `invalid_iterator` exception can be +caught.,invalid_iterator} + +@sa - @ref exception for the base class of the library exceptions +@sa - @ref parse_error for exceptions indicating a parse error +@sa - @ref type_error for exceptions indicating executing a member function with + a wrong type +@sa - @ref out_of_range for exceptions indicating access out of the defined range +@sa - @ref other_error for exceptions indicating other library errors + +@since version 3.0.0 +*/ +class invalid_iterator : public exception +{ + public: + static invalid_iterator create(int id_, const std::string& what_arg) + { + std::string w = exception::name("invalid_iterator", id_) + what_arg; + return invalid_iterator(id_, w.c_str()); + } + + private: + invalid_iterator(int id_, const char* what_arg) + : exception(id_, what_arg) {} +}; + +/*! +@brief exception indicating executing a member function with a wrong type + +This exception is thrown in case of a type error; that is, a library function is +executed on a JSON value whose type does not match the expected semantics. + +Exceptions have ids 3xx. + +name / id | example message | description +----------------------------- | --------------- | ------------------------- +json.exception.type_error.301 | cannot create object from initializer list | To create an object from an initializer list, the initializer list must consist only of a list of pairs whose first element is a string. When this constraint is violated, an array is created instead. +json.exception.type_error.302 | type must be object, but is array | During implicit or explicit value conversion, the JSON type must be compatible to the target type. For instance, a JSON string can only be converted into string types, but not into numbers or boolean types. +json.exception.type_error.303 | incompatible ReferenceType for get_ref, actual type is object | To retrieve a reference to a value stored in a @ref basic_json object with @ref get_ref, the type of the reference must match the value type. For instance, for a JSON array, the @a ReferenceType must be @ref array_t &. +json.exception.type_error.304 | cannot use at() with string | The @ref at() member functions can only be executed for certain JSON types. +json.exception.type_error.305 | cannot use operator[] with string | The @ref operator[] member functions can only be executed for certain JSON types. +json.exception.type_error.306 | cannot use value() with string | The @ref value() member functions can only be executed for certain JSON types. +json.exception.type_error.307 | cannot use erase() with string | The @ref erase() member functions can only be executed for certain JSON types. +json.exception.type_error.308 | cannot use push_back() with string | The @ref push_back() and @ref operator+= member functions can only be executed for certain JSON types. +json.exception.type_error.309 | cannot use insert() with | The @ref insert() member functions can only be executed for certain JSON types. +json.exception.type_error.310 | cannot use swap() with number | The @ref swap() member functions can only be executed for certain JSON types. +json.exception.type_error.311 | cannot use emplace_back() with string | The @ref emplace_back() member function can only be executed for certain JSON types. +json.exception.type_error.312 | cannot use update() with string | The @ref update() member functions can only be executed for certain JSON types. +json.exception.type_error.313 | invalid value to unflatten | The @ref unflatten function converts an object whose keys are JSON Pointers back into an arbitrary nested JSON value. The JSON Pointers must not overlap, because then the resulting value would not be well defined. +json.exception.type_error.314 | only objects can be unflattened | The @ref unflatten function only works for an object whose keys are JSON Pointers. +json.exception.type_error.315 | values in object must be primitive | The @ref unflatten function only works for an object whose keys are JSON Pointers and whose values are primitive. +json.exception.type_error.316 | invalid UTF-8 byte at index 10: 0x7E | The @ref dump function only works with UTF-8 encoded strings; that is, if you assign a `std::string` to a JSON value, make sure it is UTF-8 encoded. | +json.exception.type_error.317 | JSON value cannot be serialized to requested format | The dynamic type of the object cannot be represented in the requested serialization format (e.g. a raw `true` or `null` JSON object cannot be serialized to BSON) | + +@liveexample{The following code shows how a `type_error` exception can be +caught.,type_error} + +@sa - @ref exception for the base class of the library exceptions +@sa - @ref parse_error for exceptions indicating a parse error +@sa - @ref invalid_iterator for exceptions indicating errors with iterators +@sa - @ref out_of_range for exceptions indicating access out of the defined range +@sa - @ref other_error for exceptions indicating other library errors + +@since version 3.0.0 +*/ +class type_error : public exception +{ + public: + static type_error create(int id_, const std::string& what_arg) + { + std::string w = exception::name("type_error", id_) + what_arg; + return type_error(id_, w.c_str()); + } + + private: + type_error(int id_, const char* what_arg) : exception(id_, what_arg) {} +}; + +/*! +@brief exception indicating access out of the defined range + +This exception is thrown in case a library function is called on an input +parameter that exceeds the expected range, for instance in case of array +indices or nonexisting object keys. + +Exceptions have ids 4xx. + +name / id | example message | description +------------------------------- | --------------- | ------------------------- +json.exception.out_of_range.401 | array index 3 is out of range | The provided array index @a i is larger than @a size-1. +json.exception.out_of_range.402 | array index '-' (3) is out of range | The special array index `-` in a JSON Pointer never describes a valid element of the array, but the index past the end. That is, it can only be used to add elements at this position, but not to read it. +json.exception.out_of_range.403 | key 'foo' not found | The provided key was not found in the JSON object. +json.exception.out_of_range.404 | unresolved reference token 'foo' | A reference token in a JSON Pointer could not be resolved. +json.exception.out_of_range.405 | JSON pointer has no parent | The JSON Patch operations 'remove' and 'add' can not be applied to the root element of the JSON value. +json.exception.out_of_range.406 | number overflow parsing '10E1000' | A parsed number could not be stored as without changing it to NaN or INF. +json.exception.out_of_range.407 | number overflow serializing '9223372036854775808' | UBJSON and BSON only support integer numbers up to 9223372036854775807. | +json.exception.out_of_range.408 | excessive array size: 8658170730974374167 | The size (following `#`) of an UBJSON array or object exceeds the maximal capacity. | +json.exception.out_of_range.409 | BSON key cannot contain code point U+0000 (at byte 2) | Key identifiers to be serialized to BSON cannot contain code point U+0000, since the key is stored as zero-terminated c-string | + +@liveexample{The following code shows how an `out_of_range` exception can be +caught.,out_of_range} + +@sa - @ref exception for the base class of the library exceptions +@sa - @ref parse_error for exceptions indicating a parse error +@sa - @ref invalid_iterator for exceptions indicating errors with iterators +@sa - @ref type_error for exceptions indicating executing a member function with + a wrong type +@sa - @ref other_error for exceptions indicating other library errors + +@since version 3.0.0 +*/ +class out_of_range : public exception +{ + public: + static out_of_range create(int id_, const std::string& what_arg) + { + std::string w = exception::name("out_of_range", id_) + what_arg; + return out_of_range(id_, w.c_str()); + } + + private: + out_of_range(int id_, const char* what_arg) : exception(id_, what_arg) {} +}; + +/*! +@brief exception indicating other library errors + +This exception is thrown in case of errors that cannot be classified with the +other exception types. + +Exceptions have ids 5xx. + +name / id | example message | description +------------------------------ | --------------- | ------------------------- +json.exception.other_error.501 | unsuccessful: {"op":"test","path":"/baz", "value":"bar"} | A JSON Patch operation 'test' failed. The unsuccessful operation is also printed. + +@sa - @ref exception for the base class of the library exceptions +@sa - @ref parse_error for exceptions indicating a parse error +@sa - @ref invalid_iterator for exceptions indicating errors with iterators +@sa - @ref type_error for exceptions indicating executing a member function with + a wrong type +@sa - @ref out_of_range for exceptions indicating access out of the defined range + +@liveexample{The following code shows how an `other_error` exception can be +caught.,other_error} + +@since version 3.0.0 +*/ +class other_error : public exception +{ + public: + static other_error create(int id_, const std::string& what_arg) + { + std::string w = exception::name("other_error", id_) + what_arg; + return other_error(id_, w.c_str()); + } + + private: + other_error(int id_, const char* what_arg) : exception(id_, what_arg) {} +}; +} // namespace detail +} // namespace nlohmann + +// #include <nlohmann/detail/macro_scope.hpp> + + +#include <utility> // pair + +// This file contains all internal macro definitions +// You MUST include macro_unscope.hpp at the end of json.hpp to undef all of them + +// exclude unsupported compilers +#if !defined(JSON_SKIP_UNSUPPORTED_COMPILER_CHECK) + #if defined(__clang__) + #if (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) < 30400 + #error "unsupported Clang version - see https://github.com/nlohmann/json#supported-compilers" + #endif + #elif defined(__GNUC__) && !(defined(__ICC) || defined(__INTEL_COMPILER)) + #if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) < 40800 + #error "unsupported GCC version - see https://github.com/nlohmann/json#supported-compilers" + #endif + #endif +#endif + +// disable float-equal warnings on GCC/clang +#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wfloat-equal" +#endif + +// disable documentation warnings on clang +#if defined(__clang__) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wdocumentation" +#endif + +// allow for portable deprecation warnings +#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__) + #define JSON_DEPRECATED __attribute__((deprecated)) +#elif defined(_MSC_VER) + #define JSON_DEPRECATED __declspec(deprecated) +#else + #define JSON_DEPRECATED +#endif + +// allow for portable nodiscard warnings +#if defined(__has_cpp_attribute) + #if __has_cpp_attribute(nodiscard) + #define JSON_NODISCARD [[nodiscard]] + #elif __has_cpp_attribute(gnu::warn_unused_result) + #define JSON_NODISCARD [[gnu::warn_unused_result]] + #else + #define JSON_NODISCARD + #endif +#else + #define JSON_NODISCARD +#endif + +// allow to disable exceptions +#if (defined(__cpp_exceptions) || defined(__EXCEPTIONS) || defined(_CPPUNWIND)) && !defined(JSON_NOEXCEPTION) + #define JSON_THROW(exception) throw exception + #define JSON_TRY try + #define JSON_CATCH(exception) catch(exception) + #define JSON_INTERNAL_CATCH(exception) catch(exception) +#else + #include <cstdlib> + #define JSON_THROW(exception) std::abort() + #define JSON_TRY if(true) + #define JSON_CATCH(exception) if(false) + #define JSON_INTERNAL_CATCH(exception) if(false) +#endif + +// override exception macros +#if defined(JSON_THROW_USER) + #undef JSON_THROW + #define JSON_THROW JSON_THROW_USER +#endif +#if defined(JSON_TRY_USER) + #undef JSON_TRY + #define JSON_TRY JSON_TRY_USER +#endif +#if defined(JSON_CATCH_USER) + #undef JSON_CATCH + #define JSON_CATCH JSON_CATCH_USER + #undef JSON_INTERNAL_CATCH + #define JSON_INTERNAL_CATCH JSON_CATCH_USER +#endif +#if defined(JSON_INTERNAL_CATCH_USER) + #undef JSON_INTERNAL_CATCH + #define JSON_INTERNAL_CATCH JSON_INTERNAL_CATCH_USER +#endif + +// manual branch prediction +#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__) + #define JSON_LIKELY(x) __builtin_expect(x, 1) + #define JSON_UNLIKELY(x) __builtin_expect(x, 0) +#else + #define JSON_LIKELY(x) x + #define JSON_UNLIKELY(x) x +#endif + +// C++ language standard detection +#if (defined(__cplusplus) && __cplusplus >= 201703L) || (defined(_HAS_CXX17) && _HAS_CXX17 == 1) // fix for issue #464 + #define JSON_HAS_CPP_17 + #define JSON_HAS_CPP_14 +#elif (defined(__cplusplus) && __cplusplus >= 201402L) || (defined(_HAS_CXX14) && _HAS_CXX14 == 1) + #define JSON_HAS_CPP_14 +#endif + +/*! +@brief macro to briefly define a mapping between an enum and JSON +@def NLOHMANN_JSON_SERIALIZE_ENUM +@since version 3.4.0 +*/ +#define NLOHMANN_JSON_SERIALIZE_ENUM(ENUM_TYPE, ...) \ + template<typename BasicJsonType> \ + inline void to_json(BasicJsonType& j, const ENUM_TYPE& e) \ + { \ + static_assert(std::is_enum<ENUM_TYPE>::value, #ENUM_TYPE " must be an enum!"); \ + static const std::pair<ENUM_TYPE, BasicJsonType> m[] = __VA_ARGS__; \ + auto it = std::find_if(std::begin(m), std::end(m), \ + [e](const std::pair<ENUM_TYPE, BasicJsonType>& ej_pair) -> bool \ + { \ + return ej_pair.first == e; \ + }); \ + j = ((it != std::end(m)) ? it : std::begin(m))->second; \ + } \ + template<typename BasicJsonType> \ + inline void from_json(const BasicJsonType& j, ENUM_TYPE& e) \ + { \ + static_assert(std::is_enum<ENUM_TYPE>::value, #ENUM_TYPE " must be an enum!"); \ + static const std::pair<ENUM_TYPE, BasicJsonType> m[] = __VA_ARGS__; \ + auto it = std::find_if(std::begin(m), std::end(m), \ + [j](const std::pair<ENUM_TYPE, BasicJsonType>& ej_pair) -> bool \ + { \ + return ej_pair.second == j; \ + }); \ + e = ((it != std::end(m)) ? it : std::begin(m))->first; \ + } + +// Ugly macros to avoid uglier copy-paste when specializing basic_json. They +// may be removed in the future once the class is split. + +#define NLOHMANN_BASIC_JSON_TPL_DECLARATION \ + template<template<typename, typename, typename...> class ObjectType, \ + template<typename, typename...> class ArrayType, \ + class StringType, class BooleanType, class NumberIntegerType, \ + class NumberUnsignedType, class NumberFloatType, \ + template<typename> class AllocatorType, \ + template<typename, typename = void> class JSONSerializer> + +#define NLOHMANN_BASIC_JSON_TPL \ + basic_json<ObjectType, ArrayType, StringType, BooleanType, \ + NumberIntegerType, NumberUnsignedType, NumberFloatType, \ + AllocatorType, JSONSerializer> + +// #include <nlohmann/detail/meta/cpp_future.hpp> + + +#include <ciso646> // not +#include <cstddef> // size_t +#include <type_traits> // conditional, enable_if, false_type, integral_constant, is_constructible, is_integral, is_same, remove_cv, remove_reference, true_type + +namespace nlohmann +{ +namespace detail +{ +// alias templates to reduce boilerplate +template<bool B, typename T = void> +using enable_if_t = typename std::enable_if<B, T>::type; + +template<typename T> +using uncvref_t = typename std::remove_cv<typename std::remove_reference<T>::type>::type; + +// implementation of C++14 index_sequence and affiliates +// source: https://stackoverflow.com/a/32223343 +template<std::size_t... Ints> +struct index_sequence +{ + using type = index_sequence; + using value_type = std::size_t; + static constexpr std::size_t size() noexcept + { + return sizeof...(Ints); + } +}; + +template<class Sequence1, class Sequence2> +struct merge_and_renumber; + +template<std::size_t... I1, std::size_t... I2> +struct merge_and_renumber<index_sequence<I1...>, index_sequence<I2...>> + : index_sequence < I1..., (sizeof...(I1) + I2)... > {}; + +template<std::size_t N> +struct make_index_sequence + : merge_and_renumber < typename make_index_sequence < N / 2 >::type, + typename make_index_sequence < N - N / 2 >::type > {}; + +template<> struct make_index_sequence<0> : index_sequence<> {}; +template<> struct make_index_sequence<1> : index_sequence<0> {}; + +template<typename... Ts> +using index_sequence_for = make_index_sequence<sizeof...(Ts)>; + +// dispatch utility (taken from ranges-v3) +template<unsigned N> struct priority_tag : priority_tag < N - 1 > {}; +template<> struct priority_tag<0> {}; + +// taken from ranges-v3 +template<typename T> +struct static_const +{ + static constexpr T value{}; +}; + +template<typename T> +constexpr T static_const<T>::value; +} // namespace detail +} // namespace nlohmann + +// #include <nlohmann/detail/meta/type_traits.hpp> + + +#include <ciso646> // not +#include <limits> // numeric_limits +#include <type_traits> // false_type, is_constructible, is_integral, is_same, true_type +#include <utility> // declval + +// #include <nlohmann/detail/iterators/iterator_traits.hpp> + + +#include <iterator> // random_access_iterator_tag + +// #include <nlohmann/detail/meta/void_t.hpp> + + +namespace nlohmann +{ +namespace detail +{ +template <typename ...Ts> struct make_void +{ + using type = void; +}; +template <typename ...Ts> using void_t = typename make_void<Ts...>::type; +} // namespace detail +} // namespace nlohmann + +// #include <nlohmann/detail/meta/cpp_future.hpp> + + +namespace nlohmann +{ +namespace detail +{ +template <typename It, typename = void> +struct iterator_types {}; + +template <typename It> +struct iterator_types < + It, + void_t<typename It::difference_type, typename It::value_type, typename It::pointer, + typename It::reference, typename It::iterator_category >> +{ + using difference_type = typename It::difference_type; + using value_type = typename It::value_type; + using pointer = typename It::pointer; + using reference = typename It::reference; + using iterator_category = typename It::iterator_category; +}; + +// This is required as some compilers implement std::iterator_traits in a way that +// doesn't work with SFINAE. See https://github.com/nlohmann/json/issues/1341. +template <typename T, typename = void> +struct iterator_traits +{ +}; + +template <typename T> +struct iterator_traits < T, enable_if_t < !std::is_pointer<T>::value >> + : iterator_types<T> +{ +}; + +template <typename T> +struct iterator_traits<T*, enable_if_t<std::is_object<T>::value>> +{ + using iterator_category = std::random_access_iterator_tag; + using value_type = T; + using difference_type = ptrdiff_t; + using pointer = T*; + using reference = T&; +}; +} // namespace detail +} // namespace nlohmann + +// #include <nlohmann/detail/macro_scope.hpp> + +// #include <nlohmann/detail/meta/cpp_future.hpp> + +// #include <nlohmann/detail/meta/detected.hpp> + + +#include <type_traits> + +// #include <nlohmann/detail/meta/void_t.hpp> + + +// http://en.cppreference.com/w/cpp/experimental/is_detected +namespace nlohmann +{ +namespace detail +{ +struct nonesuch +{ + nonesuch() = delete; + ~nonesuch() = delete; + nonesuch(nonesuch const&) = delete; + nonesuch(nonesuch const&&) = delete; + void operator=(nonesuch const&) = delete; + void operator=(nonesuch&&) = delete; +}; + +template <class Default, + class AlwaysVoid, + template <class...> class Op, + class... Args> +struct detector +{ + using value_t = std::false_type; + using type = Default; +}; + +template <class Default, template <class...> class Op, class... Args> +struct detector<Default, void_t<Op<Args...>>, Op, Args...> +{ + using value_t = std::true_type; + using type = Op<Args...>; +}; + +template <template <class...> class Op, class... Args> +using is_detected = typename detector<nonesuch, void, Op, Args...>::value_t; + +template <template <class...> class Op, class... Args> +using detected_t = typename detector<nonesuch, void, Op, Args...>::type; + +template <class Default, template <class...> class Op, class... Args> +using detected_or = detector<Default, void, Op, Args...>; + +template <class Default, template <class...> class Op, class... Args> +using detected_or_t = typename detected_or<Default, Op, Args...>::type; + +template <class Expected, template <class...> class Op, class... Args> +using is_detected_exact = std::is_same<Expected, detected_t<Op, Args...>>; + +template <class To, template <class...> class Op, class... Args> +using is_detected_convertible = + std::is_convertible<detected_t<Op, Args...>, To>; +} // namespace detail +} // namespace nlohmann + +// #include <nlohmann/json_fwd.hpp> +#ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_ +#define INCLUDE_NLOHMANN_JSON_FWD_HPP_ + +#include <cstdint> // int64_t, uint64_t +#include <map> // map +#include <memory> // allocator +#include <string> // string +#include <vector> // vector + +/*! +@brief namespace for Niels Lohmann +@see https://github.com/nlohmann +@since version 1.0.0 +*/ +namespace nlohmann +{ +/*! +@brief default JSONSerializer template argument + +This serializer ignores the template arguments and uses ADL +([argument-dependent lookup](https://en.cppreference.com/w/cpp/language/adl)) +for serialization. +*/ +template<typename T = void, typename SFINAE = void> +struct adl_serializer; + +template<template<typename U, typename V, typename... Args> class ObjectType = + std::map, + template<typename U, typename... Args> class ArrayType = std::vector, + class StringType = std::string, class BooleanType = bool, + class NumberIntegerType = std::int64_t, + class NumberUnsignedType = std::uint64_t, + class NumberFloatType = double, + template<typename U> class AllocatorType = std::allocator, + template<typename T, typename SFINAE = void> class JSONSerializer = + adl_serializer> +class basic_json; + +/*! +@brief JSON Pointer + +A JSON pointer defines a string syntax for identifying a specific value +within a JSON document. It can be used with functions `at` and +`operator[]`. Furthermore, JSON pointers are the base for JSON patches. + +@sa [RFC 6901](https://tools.ietf.org/html/rfc6901) + +@since version 2.0.0 +*/ +template<typename BasicJsonType> +class json_pointer; + +/*! +@brief default JSON class + +This type is the default specialization of the @ref basic_json class which +uses the standard template types. + +@since version 1.0.0 +*/ +using json = basic_json<>; +} // namespace nlohmann + +#endif // INCLUDE_NLOHMANN_JSON_FWD_HPP_ + + +namespace nlohmann +{ +/*! +@brief detail namespace with internal helper functions + +This namespace collects functions that should not be exposed, +implementations of some @ref basic_json methods, and meta-programming helpers. + +@since version 2.1.0 +*/ +namespace detail +{ +///////////// +// helpers // +///////////// + +// Note to maintainers: +// +// Every trait in this file expects a non CV-qualified type. +// The only exceptions are in the 'aliases for detected' section +// (i.e. those of the form: decltype(T::member_function(std::declval<T>()))) +// +// In this case, T has to be properly CV-qualified to constraint the function arguments +// (e.g. to_json(BasicJsonType&, const T&)) + +template<typename> struct is_basic_json : std::false_type {}; + +NLOHMANN_BASIC_JSON_TPL_DECLARATION +struct is_basic_json<NLOHMANN_BASIC_JSON_TPL> : std::true_type {}; + +////////////////////////// +// aliases for detected // +////////////////////////// + +template <typename T> +using mapped_type_t = typename T::mapped_type; + +template <typename T> +using key_type_t = typename T::key_type; + +template <typename T> +using value_type_t = typename T::value_type; + +template <typename T> +using difference_type_t = typename T::difference_type; + +template <typename T> +using pointer_t = typename T::pointer; + +template <typename T> +using reference_t = typename T::reference; + +template <typename T> +using iterator_category_t = typename T::iterator_category; + +template <typename T> +using iterator_t = typename T::iterator; + +template <typename T, typename... Args> +using to_json_function = decltype(T::to_json(std::declval<Args>()...)); + +template <typename T, typename... Args> +using from_json_function = decltype(T::from_json(std::declval<Args>()...)); + +template <typename T, typename U> +using get_template_function = decltype(std::declval<T>().template get<U>()); + +// trait checking if JSONSerializer<T>::from_json(json const&, udt&) exists +template <typename BasicJsonType, typename T, typename = void> +struct has_from_json : std::false_type {}; + +template <typename BasicJsonType, typename T> +struct has_from_json<BasicJsonType, T, + enable_if_t<not is_basic_json<T>::value>> +{ + using serializer = typename BasicJsonType::template json_serializer<T, void>; + + static constexpr bool value = + is_detected_exact<void, from_json_function, serializer, + const BasicJsonType&, T&>::value; +}; + +// This trait checks if JSONSerializer<T>::from_json(json const&) exists +// this overload is used for non-default-constructible user-defined-types +template <typename BasicJsonType, typename T, typename = void> +struct has_non_default_from_json : std::false_type {}; + +template<typename BasicJsonType, typename T> +struct has_non_default_from_json<BasicJsonType, T, enable_if_t<not is_basic_json<T>::value>> +{ + using serializer = typename BasicJsonType::template json_serializer<T, void>; + + static constexpr bool value = + is_detected_exact<T, from_json_function, serializer, + const BasicJsonType&>::value; +}; + +// This trait checks if BasicJsonType::json_serializer<T>::to_json exists +// Do not evaluate the trait when T is a basic_json type, to avoid template instantiation infinite recursion. +template <typename BasicJsonType, typename T, typename = void> +struct has_to_json : std::false_type {}; + +template <typename BasicJsonType, typename T> +struct has_to_json<BasicJsonType, T, enable_if_t<not is_basic_json<T>::value>> +{ + using serializer = typename BasicJsonType::template json_serializer<T, void>; + + static constexpr bool value = + is_detected_exact<void, to_json_function, serializer, BasicJsonType&, + T>::value; +}; + + +/////////////////// +// is_ functions // +/////////////////// + +template <typename T, typename = void> +struct is_iterator_traits : std::false_type {}; + +template <typename T> +struct is_iterator_traits<iterator_traits<T>> +{ + private: + using traits = iterator_traits<T>; + + public: + static constexpr auto value = + is_detected<value_type_t, traits>::value && + is_detected<difference_type_t, traits>::value && + is_detected<pointer_t, traits>::value && + is_detected<iterator_category_t, traits>::value && + is_detected<reference_t, traits>::value; +}; + +// source: https://stackoverflow.com/a/37193089/4116453 + +template <typename T, typename = void> +struct is_complete_type : std::false_type {}; + +template <typename T> +struct is_complete_type<T, decltype(void(sizeof(T)))> : std::true_type {}; + +template <typename BasicJsonType, typename CompatibleObjectType, + typename = void> +struct is_compatible_object_type_impl : std::false_type {}; + +template <typename BasicJsonType, typename CompatibleObjectType> +struct is_compatible_object_type_impl < + BasicJsonType, CompatibleObjectType, + enable_if_t<is_detected<mapped_type_t, CompatibleObjectType>::value and + is_detected<key_type_t, CompatibleObjectType>::value >> +{ + + using object_t = typename BasicJsonType::object_t; + + // macOS's is_constructible does not play well with nonesuch... + static constexpr bool value = + std::is_constructible<typename object_t::key_type, + typename CompatibleObjectType::key_type>::value and + std::is_constructible<typename object_t::mapped_type, + typename CompatibleObjectType::mapped_type>::value; +}; + +template <typename BasicJsonType, typename CompatibleObjectType> +struct is_compatible_object_type + : is_compatible_object_type_impl<BasicJsonType, CompatibleObjectType> {}; + +template <typename BasicJsonType, typename ConstructibleObjectType, + typename = void> +struct is_constructible_object_type_impl : std::false_type {}; + +template <typename BasicJsonType, typename ConstructibleObjectType> +struct is_constructible_object_type_impl < + BasicJsonType, ConstructibleObjectType, + enable_if_t<is_detected<mapped_type_t, ConstructibleObjectType>::value and + is_detected<key_type_t, ConstructibleObjectType>::value >> +{ + using object_t = typename BasicJsonType::object_t; + + static constexpr bool value = + (std::is_constructible<typename ConstructibleObjectType::key_type, typename object_t::key_type>::value and + std::is_same<typename object_t::mapped_type, typename ConstructibleObjectType::mapped_type>::value) or + (has_from_json<BasicJsonType, typename ConstructibleObjectType::mapped_type>::value or + has_non_default_from_json<BasicJsonType, typename ConstructibleObjectType::mapped_type >::value); +}; + +template <typename BasicJsonType, typename ConstructibleObjectType> +struct is_constructible_object_type + : is_constructible_object_type_impl<BasicJsonType, + ConstructibleObjectType> {}; + +template <typename BasicJsonType, typename CompatibleStringType, + typename = void> +struct is_compatible_string_type_impl : std::false_type {}; + +template <typename BasicJsonType, typename CompatibleStringType> +struct is_compatible_string_type_impl < + BasicJsonType, CompatibleStringType, + enable_if_t<is_detected_exact<typename BasicJsonType::string_t::value_type, + value_type_t, CompatibleStringType>::value >> +{ + static constexpr auto value = + std::is_constructible<typename BasicJsonType::string_t, CompatibleStringType>::value; +}; + +template <typename BasicJsonType, typename ConstructibleStringType> +struct is_compatible_string_type + : is_compatible_string_type_impl<BasicJsonType, ConstructibleStringType> {}; + +template <typename BasicJsonType, typename ConstructibleStringType, + typename = void> +struct is_constructible_string_type_impl : std::false_type {}; + +template <typename BasicJsonType, typename ConstructibleStringType> +struct is_constructible_string_type_impl < + BasicJsonType, ConstructibleStringType, + enable_if_t<is_detected_exact<typename BasicJsonType::string_t::value_type, + value_type_t, ConstructibleStringType>::value >> +{ + static constexpr auto value = + std::is_constructible<ConstructibleStringType, + typename BasicJsonType::string_t>::value; +}; + +template <typename BasicJsonType, typename ConstructibleStringType> +struct is_constructible_string_type + : is_constructible_string_type_impl<BasicJsonType, ConstructibleStringType> {}; + +template <typename BasicJsonType, typename CompatibleArrayType, typename = void> +struct is_compatible_array_type_impl : std::false_type {}; + +template <typename BasicJsonType, typename CompatibleArrayType> +struct is_compatible_array_type_impl < + BasicJsonType, CompatibleArrayType, + enable_if_t<is_detected<value_type_t, CompatibleArrayType>::value and + is_detected<iterator_t, CompatibleArrayType>::value and +// This is needed because json_reverse_iterator has a ::iterator type... +// Therefore it is detected as a CompatibleArrayType. +// The real fix would be to have an Iterable concept. + not is_iterator_traits< + iterator_traits<CompatibleArrayType>>::value >> +{ + static constexpr bool value = + std::is_constructible<BasicJsonType, + typename CompatibleArrayType::value_type>::value; +}; + +template <typename BasicJsonType, typename CompatibleArrayType> +struct is_compatible_array_type + : is_compatible_array_type_impl<BasicJsonType, CompatibleArrayType> {}; + +template <typename BasicJsonType, typename ConstructibleArrayType, typename = void> +struct is_constructible_array_type_impl : std::false_type {}; + +template <typename BasicJsonType, typename ConstructibleArrayType> +struct is_constructible_array_type_impl < + BasicJsonType, ConstructibleArrayType, + enable_if_t<std::is_same<ConstructibleArrayType, + typename BasicJsonType::value_type>::value >> + : std::true_type {}; + +template <typename BasicJsonType, typename ConstructibleArrayType> +struct is_constructible_array_type_impl < + BasicJsonType, ConstructibleArrayType, + enable_if_t<not std::is_same<ConstructibleArrayType, + typename BasicJsonType::value_type>::value and + is_detected<value_type_t, ConstructibleArrayType>::value and + is_detected<iterator_t, ConstructibleArrayType>::value and + is_complete_type< + detected_t<value_type_t, ConstructibleArrayType>>::value >> +{ + static constexpr bool value = + // This is needed because json_reverse_iterator has a ::iterator type, + // furthermore, std::back_insert_iterator (and other iterators) have a base class `iterator`... + // Therefore it is detected as a ConstructibleArrayType. + // The real fix would be to have an Iterable concept. + not is_iterator_traits < + iterator_traits<ConstructibleArrayType >>::value and + + (std::is_same<typename ConstructibleArrayType::value_type, typename BasicJsonType::array_t::value_type>::value or + has_from_json<BasicJsonType, + typename ConstructibleArrayType::value_type>::value or + has_non_default_from_json < + BasicJsonType, typename ConstructibleArrayType::value_type >::value); +}; + +template <typename BasicJsonType, typename ConstructibleArrayType> +struct is_constructible_array_type + : is_constructible_array_type_impl<BasicJsonType, ConstructibleArrayType> {}; + +template <typename RealIntegerType, typename CompatibleNumberIntegerType, + typename = void> +struct is_compatible_integer_type_impl : std::false_type {}; + +template <typename RealIntegerType, typename CompatibleNumberIntegerType> +struct is_compatible_integer_type_impl < + RealIntegerType, CompatibleNumberIntegerType, + enable_if_t<std::is_integral<RealIntegerType>::value and + std::is_integral<CompatibleNumberIntegerType>::value and + not std::is_same<bool, CompatibleNumberIntegerType>::value >> +{ + // is there an assert somewhere on overflows? + using RealLimits = std::numeric_limits<RealIntegerType>; + using CompatibleLimits = std::numeric_limits<CompatibleNumberIntegerType>; + + static constexpr auto value = + std::is_constructible<RealIntegerType, + CompatibleNumberIntegerType>::value and + CompatibleLimits::is_integer and + RealLimits::is_signed == CompatibleLimits::is_signed; +}; + +template <typename RealIntegerType, typename CompatibleNumberIntegerType> +struct is_compatible_integer_type + : is_compatible_integer_type_impl<RealIntegerType, + CompatibleNumberIntegerType> {}; + +template <typename BasicJsonType, typename CompatibleType, typename = void> +struct is_compatible_type_impl: std::false_type {}; + +template <typename BasicJsonType, typename CompatibleType> +struct is_compatible_type_impl < + BasicJsonType, CompatibleType, + enable_if_t<is_complete_type<CompatibleType>::value >> +{ + static constexpr bool value = + has_to_json<BasicJsonType, CompatibleType>::value; +}; + +template <typename BasicJsonType, typename CompatibleType> +struct is_compatible_type + : is_compatible_type_impl<BasicJsonType, CompatibleType> {}; +} // namespace detail +} // namespace nlohmann + +// #include <nlohmann/detail/value_t.hpp> + + +#include <array> // array +#include <ciso646> // and +#include <cstddef> // size_t +#include <cstdint> // uint8_t +#include <string> // string + +namespace nlohmann +{ +namespace detail +{ +/////////////////////////// +// JSON type enumeration // +/////////////////////////// + +/*! +@brief the JSON type enumeration + +This enumeration collects the different JSON types. It is internally used to +distinguish the stored values, and the functions @ref basic_json::is_null(), +@ref basic_json::is_object(), @ref basic_json::is_array(), +@ref basic_json::is_string(), @ref basic_json::is_boolean(), +@ref basic_json::is_number() (with @ref basic_json::is_number_integer(), +@ref basic_json::is_number_unsigned(), and @ref basic_json::is_number_float()), +@ref basic_json::is_discarded(), @ref basic_json::is_primitive(), and +@ref basic_json::is_structured() rely on it. + +@note There are three enumeration entries (number_integer, number_unsigned, and +number_float), because the library distinguishes these three types for numbers: +@ref basic_json::number_unsigned_t is used for unsigned integers, +@ref basic_json::number_integer_t is used for signed integers, and +@ref basic_json::number_float_t is used for floating-point numbers or to +approximate integers which do not fit in the limits of their respective type. + +@sa @ref basic_json::basic_json(const value_t value_type) -- create a JSON +value with the default value for a given type + +@since version 1.0.0 +*/ +enum class value_t : std::uint8_t +{ + null, ///< null value + object, ///< object (unordered set of name/value pairs) + array, ///< array (ordered collection of values) + string, ///< string value + boolean, ///< boolean value + number_integer, ///< number value (signed integer) + number_unsigned, ///< number value (unsigned integer) + number_float, ///< number value (floating-point) + discarded ///< discarded by the the parser callback function +}; + +/*! +@brief comparison operator for JSON types + +Returns an ordering that is similar to Python: +- order: null < boolean < number < object < array < string +- furthermore, each type is not smaller than itself +- discarded values are not comparable + +@since version 1.0.0 +*/ +inline bool operator<(const value_t lhs, const value_t rhs) noexcept +{ + static constexpr std::array<std::uint8_t, 8> order = {{ + 0 /* null */, 3 /* object */, 4 /* array */, 5 /* string */, + 1 /* boolean */, 2 /* integer */, 2 /* unsigned */, 2 /* float */ + } + }; + + const auto l_index = static_cast<std::size_t>(lhs); + const auto r_index = static_cast<std::size_t>(rhs); + return l_index < order.size() and r_index < order.size() and order[l_index] < order[r_index]; +} +} // namespace detail +} // namespace nlohmann + + +namespace nlohmann +{ +namespace detail +{ +template<typename BasicJsonType> +void from_json(const BasicJsonType& j, typename std::nullptr_t& n) +{ + if (JSON_UNLIKELY(not j.is_null())) + { + JSON_THROW(type_error::create(302, "type must be null, but is " + std::string(j.type_name()))); + } + n = nullptr; +} + +// overloads for basic_json template parameters +template<typename BasicJsonType, typename ArithmeticType, + enable_if_t<std::is_arithmetic<ArithmeticType>::value and + not std::is_same<ArithmeticType, typename BasicJsonType::boolean_t>::value, + int> = 0> +void get_arithmetic_value(const BasicJsonType& j, ArithmeticType& val) +{ + switch (static_cast<value_t>(j)) + { + case value_t::number_unsigned: + { + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>()); + break; + } + case value_t::number_integer: + { + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_integer_t*>()); + break; + } + case value_t::number_float: + { + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_float_t*>()); + break; + } + + default: + JSON_THROW(type_error::create(302, "type must be number, but is " + std::string(j.type_name()))); + } +} + +template<typename BasicJsonType> +void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t& b) +{ + if (JSON_UNLIKELY(not j.is_boolean())) + { + JSON_THROW(type_error::create(302, "type must be boolean, but is " + std::string(j.type_name()))); + } + b = *j.template get_ptr<const typename BasicJsonType::boolean_t*>(); +} + +template<typename BasicJsonType> +void from_json(const BasicJsonType& j, typename BasicJsonType::string_t& s) +{ + if (JSON_UNLIKELY(not j.is_string())) + { + JSON_THROW(type_error::create(302, "type must be string, but is " + std::string(j.type_name()))); + } + s = *j.template get_ptr<const typename BasicJsonType::string_t*>(); +} + +template < + typename BasicJsonType, typename ConstructibleStringType, + enable_if_t < + is_constructible_string_type<BasicJsonType, ConstructibleStringType>::value and + not std::is_same<typename BasicJsonType::string_t, + ConstructibleStringType>::value, + int > = 0 > +void from_json(const BasicJsonType& j, ConstructibleStringType& s) +{ + if (JSON_UNLIKELY(not j.is_string())) + { + JSON_THROW(type_error::create(302, "type must be string, but is " + std::string(j.type_name()))); + } + + s = *j.template get_ptr<const typename BasicJsonType::string_t*>(); +} + +template<typename BasicJsonType> +void from_json(const BasicJsonType& j, typename BasicJsonType::number_float_t& val) +{ + get_arithmetic_value(j, val); +} + +template<typename BasicJsonType> +void from_json(const BasicJsonType& j, typename BasicJsonType::number_unsigned_t& val) +{ + get_arithmetic_value(j, val); +} + +template<typename BasicJsonType> +void from_json(const BasicJsonType& j, typename BasicJsonType::number_integer_t& val) +{ + get_arithmetic_value(j, val); +} + +template<typename BasicJsonType, typename EnumType, + enable_if_t<std::is_enum<EnumType>::value, int> = 0> +void from_json(const BasicJsonType& j, EnumType& e) +{ + typename std::underlying_type<EnumType>::type val; + get_arithmetic_value(j, val); + e = static_cast<EnumType>(val); +} + +// forward_list doesn't have an insert method +template<typename BasicJsonType, typename T, typename Allocator, + enable_if_t<std::is_convertible<BasicJsonType, T>::value, int> = 0> +void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>& l) +{ + if (JSON_UNLIKELY(not j.is_array())) + { + JSON_THROW(type_error::create(302, "type must be array, but is " + std::string(j.type_name()))); + } + std::transform(j.rbegin(), j.rend(), + std::front_inserter(l), [](const BasicJsonType & i) + { + return i.template get<T>(); + }); +} + +// valarray doesn't have an insert method +template<typename BasicJsonType, typename T, + enable_if_t<std::is_convertible<BasicJsonType, T>::value, int> = 0> +void from_json(const BasicJsonType& j, std::valarray<T>& l) +{ + if (JSON_UNLIKELY(not j.is_array())) + { + JSON_THROW(type_error::create(302, "type must be array, but is " + std::string(j.type_name()))); + } + l.resize(j.size()); + std::copy(j.m_value.array->begin(), j.m_value.array->end(), std::begin(l)); +} + +template<typename BasicJsonType> +void from_json_array_impl(const BasicJsonType& j, typename BasicJsonType::array_t& arr, priority_tag<3> /*unused*/) +{ + arr = *j.template get_ptr<const typename BasicJsonType::array_t*>(); +} + +template <typename BasicJsonType, typename T, std::size_t N> +auto from_json_array_impl(const BasicJsonType& j, std::array<T, N>& arr, + priority_tag<2> /*unused*/) +-> decltype(j.template get<T>(), void()) +{ + for (std::size_t i = 0; i < N; ++i) + { + arr[i] = j.at(i).template get<T>(); + } +} + +template<typename BasicJsonType, typename ConstructibleArrayType> +auto from_json_array_impl(const BasicJsonType& j, ConstructibleArrayType& arr, priority_tag<1> /*unused*/) +-> decltype( + arr.reserve(std::declval<typename ConstructibleArrayType::size_type>()), + j.template get<typename ConstructibleArrayType::value_type>(), + void()) +{ + using std::end; + + arr.reserve(j.size()); + std::transform(j.begin(), j.end(), + std::inserter(arr, end(arr)), [](const BasicJsonType & i) + { + // get<BasicJsonType>() returns *this, this won't call a from_json + // method when value_type is BasicJsonType + return i.template get<typename ConstructibleArrayType::value_type>(); + }); +} + +template <typename BasicJsonType, typename ConstructibleArrayType> +void from_json_array_impl(const BasicJsonType& j, ConstructibleArrayType& arr, + priority_tag<0> /*unused*/) +{ + using std::end; + + std::transform( + j.begin(), j.end(), std::inserter(arr, end(arr)), + [](const BasicJsonType & i) + { + // get<BasicJsonType>() returns *this, this won't call a from_json + // method when value_type is BasicJsonType + return i.template get<typename ConstructibleArrayType::value_type>(); + }); +} + +template <typename BasicJsonType, typename ConstructibleArrayType, + enable_if_t < + is_constructible_array_type<BasicJsonType, ConstructibleArrayType>::value and + not is_constructible_object_type<BasicJsonType, ConstructibleArrayType>::value and + not is_constructible_string_type<BasicJsonType, ConstructibleArrayType>::value and + not is_basic_json<ConstructibleArrayType>::value, + int > = 0 > + +auto from_json(const BasicJsonType& j, ConstructibleArrayType& arr) +-> decltype(from_json_array_impl(j, arr, priority_tag<3> {}), +j.template get<typename ConstructibleArrayType::value_type>(), +void()) +{ + if (JSON_UNLIKELY(not j.is_array())) + { + JSON_THROW(type_error::create(302, "type must be array, but is " + + std::string(j.type_name()))); + } + + from_json_array_impl(j, arr, priority_tag<3> {}); +} + +template<typename BasicJsonType, typename ConstructibleObjectType, + enable_if_t<is_constructible_object_type<BasicJsonType, ConstructibleObjectType>::value, int> = 0> +void from_json(const BasicJsonType& j, ConstructibleObjectType& obj) +{ + if (JSON_UNLIKELY(not j.is_object())) + { + JSON_THROW(type_error::create(302, "type must be object, but is " + std::string(j.type_name()))); + } + + auto inner_object = j.template get_ptr<const typename BasicJsonType::object_t*>(); + using value_type = typename ConstructibleObjectType::value_type; + std::transform( + inner_object->begin(), inner_object->end(), + std::inserter(obj, obj.begin()), + [](typename BasicJsonType::object_t::value_type const & p) + { + return value_type(p.first, p.second.template get<typename ConstructibleObjectType::mapped_type>()); + }); +} + +// overload for arithmetic types, not chosen for basic_json template arguments +// (BooleanType, etc..); note: Is it really necessary to provide explicit +// overloads for boolean_t etc. in case of a custom BooleanType which is not +// an arithmetic type? +template<typename BasicJsonType, typename ArithmeticType, + enable_if_t < + std::is_arithmetic<ArithmeticType>::value and + not std::is_same<ArithmeticType, typename BasicJsonType::number_unsigned_t>::value and + not std::is_same<ArithmeticType, typename BasicJsonType::number_integer_t>::value and + not std::is_same<ArithmeticType, typename BasicJsonType::number_float_t>::value and + not std::is_same<ArithmeticType, typename BasicJsonType::boolean_t>::value, + int> = 0> +void from_json(const BasicJsonType& j, ArithmeticType& val) +{ + switch (static_cast<value_t>(j)) + { + case value_t::number_unsigned: + { + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_unsigned_t*>()); + break; + } + case value_t::number_integer: + { + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_integer_t*>()); + break; + } + case value_t::number_float: + { + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::number_float_t*>()); + break; + } + case value_t::boolean: + { + val = static_cast<ArithmeticType>(*j.template get_ptr<const typename BasicJsonType::boolean_t*>()); + break; + } + + default: + JSON_THROW(type_error::create(302, "type must be number, but is " + std::string(j.type_name()))); + } +} + +template<typename BasicJsonType, typename A1, typename A2> +void from_json(const BasicJsonType& j, std::pair<A1, A2>& p) +{ + p = {j.at(0).template get<A1>(), j.at(1).template get<A2>()}; +} + +template<typename BasicJsonType, typename Tuple, std::size_t... Idx> +void from_json_tuple_impl(const BasicJsonType& j, Tuple& t, index_sequence<Idx...> /*unused*/) +{ + t = std::make_tuple(j.at(Idx).template get<typename std::tuple_element<Idx, Tuple>::type>()...); +} + +template<typename BasicJsonType, typename... Args> +void from_json(const BasicJsonType& j, std::tuple<Args...>& t) +{ + from_json_tuple_impl(j, t, index_sequence_for<Args...> {}); +} + +template <typename BasicJsonType, typename Key, typename Value, typename Compare, typename Allocator, + typename = enable_if_t<not std::is_constructible< + typename BasicJsonType::string_t, Key>::value>> +void from_json(const BasicJsonType& j, std::map<Key, Value, Compare, Allocator>& m) +{ + if (JSON_UNLIKELY(not j.is_array())) + { + JSON_THROW(type_error::create(302, "type must be array, but is " + std::string(j.type_name()))); + } + for (const auto& p : j) + { + if (JSON_UNLIKELY(not p.is_array())) + { + JSON_THROW(type_error::create(302, "type must be array, but is " + std::string(p.type_name()))); + } + m.emplace(p.at(0).template get<Key>(), p.at(1).template get<Value>()); + } +} + +template <typename BasicJsonType, typename Key, typename Value, typename Hash, typename KeyEqual, typename Allocator, + typename = enable_if_t<not std::is_constructible< + typename BasicJsonType::string_t, Key>::value>> +void from_json(const BasicJsonType& j, std::unordered_map<Key, Value, Hash, KeyEqual, Allocator>& m) +{ + if (JSON_UNLIKELY(not j.is_array())) + { + JSON_THROW(type_error::create(302, "type must be array, but is " + std::string(j.type_name()))); + } + for (const auto& p : j) + { + if (JSON_UNLIKELY(not p.is_array())) + { + JSON_THROW(type_error::create(302, "type must be array, but is " + std::string(p.type_name()))); + } + m.emplace(p.at(0).template get<Key>(), p.at(1).template get<Value>()); + } +} + +struct from_json_fn +{ + template<typename BasicJsonType, typename T> + auto operator()(const BasicJsonType& j, T& val) const + noexcept(noexcept(from_json(j, val))) + -> decltype(from_json(j, val), void()) + { + return from_json(j, val); + } +}; +} // namespace detail + +/// namespace to hold default `from_json` function +/// to see why this is required: +/// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4381.html +namespace +{ +constexpr const auto& from_json = detail::static_const<detail::from_json_fn>::value; +} // namespace +} // namespace nlohmann + +// #include <nlohmann/detail/conversions/to_json.hpp> + + +#include <algorithm> // copy +#include <ciso646> // or, and, not +#include <iterator> // begin, end +#include <string> // string +#include <tuple> // tuple, get +#include <type_traits> // is_same, is_constructible, is_floating_point, is_enum, underlying_type +#include <utility> // move, forward, declval, pair +#include <valarray> // valarray +#include <vector> // vector + +// #include <nlohmann/detail/iterators/iteration_proxy.hpp> + + +#include <cstddef> // size_t +#include <iterator> // input_iterator_tag +#include <string> // string, to_string +#include <tuple> // tuple_size, get, tuple_element + +// #include <nlohmann/detail/meta/type_traits.hpp> + +// #include <nlohmann/detail/value_t.hpp> + + +namespace nlohmann +{ +namespace detail +{ +template <typename IteratorType> class iteration_proxy_value +{ + public: + using difference_type = std::ptrdiff_t; + using value_type = iteration_proxy_value; + using pointer = value_type * ; + using reference = value_type & ; + using iterator_category = std::input_iterator_tag; + + private: + /// the iterator + IteratorType anchor; + /// an index for arrays (used to create key names) + std::size_t array_index = 0; + /// last stringified array index + mutable std::size_t array_index_last = 0; + /// a string representation of the array index + mutable std::string array_index_str = "0"; + /// an empty string (to return a reference for primitive values) + const std::string empty_str = ""; + + public: + explicit iteration_proxy_value(IteratorType it) noexcept : anchor(it) {} + + /// dereference operator (needed for range-based for) + iteration_proxy_value& operator*() + { + return *this; + } + + /// increment operator (needed for range-based for) + iteration_proxy_value& operator++() + { + ++anchor; + ++array_index; + + return *this; + } + + /// equality operator (needed for InputIterator) + bool operator==(const iteration_proxy_value& o) const + { + return anchor == o.anchor; + } + + /// inequality operator (needed for range-based for) + bool operator!=(const iteration_proxy_value& o) const + { + return anchor != o.anchor; + } + + /// return key of the iterator + const std::string& key() const + { + assert(anchor.m_object != nullptr); + + switch (anchor.m_object->type()) + { + // use integer array index as key + case value_t::array: + { + if (array_index != array_index_last) + { + array_index_str = std::to_string(array_index); + array_index_last = array_index; + } + return array_index_str; + } + + // use key from the object + case value_t::object: + return anchor.key(); + + // use an empty key for all primitive types + default: + return empty_str; + } + } + + /// return value of the iterator + typename IteratorType::reference value() const + { + return anchor.value(); + } +}; + +/// proxy class for the items() function +template<typename IteratorType> class iteration_proxy +{ + private: + /// the container to iterate + typename IteratorType::reference container; + + public: + /// construct iteration proxy from a container + explicit iteration_proxy(typename IteratorType::reference cont) noexcept + : container(cont) {} + + /// return iterator begin (needed for range-based for) + iteration_proxy_value<IteratorType> begin() noexcept + { + return iteration_proxy_value<IteratorType>(container.begin()); + } + + /// return iterator end (needed for range-based for) + iteration_proxy_value<IteratorType> end() noexcept + { + return iteration_proxy_value<IteratorType>(container.end()); + } +}; +// Structured Bindings Support +// For further reference see https://blog.tartanllama.xyz/structured-bindings/ +// And see https://github.com/nlohmann/json/pull/1391 +template <std::size_t N, typename IteratorType, enable_if_t<N == 0, int> = 0> +auto get(const nlohmann::detail::iteration_proxy_value<IteratorType>& i) -> decltype(i.key()) +{ + return i.key(); +} +// Structured Bindings Support +// For further reference see https://blog.tartanllama.xyz/structured-bindings/ +// And see https://github.com/nlohmann/json/pull/1391 +template <std::size_t N, typename IteratorType, enable_if_t<N == 1, int> = 0> +auto get(const nlohmann::detail::iteration_proxy_value<IteratorType>& i) -> decltype(i.value()) +{ + return i.value(); +} +} // namespace detail +} // namespace nlohmann + +// The Addition to the STD Namespace is required to add +// Structured Bindings Support to the iteration_proxy_value class +// For further reference see https://blog.tartanllama.xyz/structured-bindings/ +// And see https://github.com/nlohmann/json/pull/1391 +namespace std +{ +#if defined(__clang__) + // Fix: https://github.com/nlohmann/json/issues/1401 + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wmismatched-tags" +#endif +template <typename IteratorType> +class tuple_size<::nlohmann::detail::iteration_proxy_value<IteratorType>> + : public std::integral_constant<std::size_t, 2> {}; + +template <std::size_t N, typename IteratorType> +class tuple_element<N, ::nlohmann::detail::iteration_proxy_value<IteratorType >> +{ + public: + using type = decltype( + get<N>(std::declval < + ::nlohmann::detail::iteration_proxy_value<IteratorType >> ())); +}; +#if defined(__clang__) + #pragma clang diagnostic pop +#endif +} // namespace std + +// #include <nlohmann/detail/meta/cpp_future.hpp> + +// #include <nlohmann/detail/meta/type_traits.hpp> + +// #include <nlohmann/detail/value_t.hpp> + + +namespace nlohmann +{ +namespace detail +{ +////////////////// +// constructors // +////////////////// + +template<value_t> struct external_constructor; + +template<> +struct external_constructor<value_t::boolean> +{ + template<typename BasicJsonType> + static void construct(BasicJsonType& j, typename BasicJsonType::boolean_t b) noexcept + { + j.m_type = value_t::boolean; + j.m_value = b; + j.assert_invariant(); + } +}; + +template<> +struct external_constructor<value_t::string> +{ + template<typename BasicJsonType> + static void construct(BasicJsonType& j, const typename BasicJsonType::string_t& s) + { + j.m_type = value_t::string; + j.m_value = s; + j.assert_invariant(); + } + + template<typename BasicJsonType> + static void construct(BasicJsonType& j, typename BasicJsonType::string_t&& s) + { + j.m_type = value_t::string; + j.m_value = std::move(s); + j.assert_invariant(); + } + + template<typename BasicJsonType, typename CompatibleStringType, + enable_if_t<not std::is_same<CompatibleStringType, typename BasicJsonType::string_t>::value, + int> = 0> + static void construct(BasicJsonType& j, const CompatibleStringType& str) + { + j.m_type = value_t::string; + j.m_value.string = j.template create<typename BasicJsonType::string_t>(str); + j.assert_invariant(); + } +}; + +template<> +struct external_constructor<value_t::number_float> +{ + template<typename BasicJsonType> + static void construct(BasicJsonType& j, typename BasicJsonType::number_float_t val) noexcept + { + j.m_type = value_t::number_float; + j.m_value = val; + j.assert_invariant(); + } +}; + +template<> +struct external_constructor<value_t::number_unsigned> +{ + template<typename BasicJsonType> + static void construct(BasicJsonType& j, typename BasicJsonType::number_unsigned_t val) noexcept + { + j.m_type = value_t::number_unsigned; + j.m_value = val; + j.assert_invariant(); + } +}; + +template<> +struct external_constructor<value_t::number_integer> +{ + template<typename BasicJsonType> + static void construct(BasicJsonType& j, typename BasicJsonType::number_integer_t val) noexcept + { + j.m_type = value_t::number_integer; + j.m_value = val; + j.assert_invariant(); + } +}; + +template<> +struct external_constructor<value_t::array> +{ + template<typename BasicJsonType> + static void construct(BasicJsonType& j, const typename BasicJsonType::array_t& arr) + { + j.m_type = value_t::array; + j.m_value = arr; + j.assert_invariant(); + } + + template<typename BasicJsonType> + static void construct(BasicJsonType& j, typename BasicJsonType::array_t&& arr) + { + j.m_type = value_t::array; + j.m_value = std::move(arr); + j.assert_invariant(); + } + + template<typename BasicJsonType, typename CompatibleArrayType, + enable_if_t<not std::is_same<CompatibleArrayType, typename BasicJsonType::array_t>::value, + int> = 0> + static void construct(BasicJsonType& j, const CompatibleArrayType& arr) + { + using std::begin; + using std::end; + j.m_type = value_t::array; + j.m_value.array = j.template create<typename BasicJsonType::array_t>(begin(arr), end(arr)); + j.assert_invariant(); + } + + template<typename BasicJsonType> + static void construct(BasicJsonType& j, const std::vector<bool>& arr) + { + j.m_type = value_t::array; + j.m_value = value_t::array; + j.m_value.array->reserve(arr.size()); + for (const bool x : arr) + { + j.m_value.array->push_back(x); + } + j.assert_invariant(); + } + + template<typename BasicJsonType, typename T, + enable_if_t<std::is_convertible<T, BasicJsonType>::value, int> = 0> + static void construct(BasicJsonType& j, const std::valarray<T>& arr) + { + j.m_type = value_t::array; + j.m_value = value_t::array; + j.m_value.array->resize(arr.size()); + std::copy(std::begin(arr), std::end(arr), j.m_value.array->begin()); + j.assert_invariant(); + } +}; + +template<> +struct external_constructor<value_t::object> +{ + template<typename BasicJsonType> + static void construct(BasicJsonType& j, const typename BasicJsonType::object_t& obj) + { + j.m_type = value_t::object; + j.m_value = obj; + j.assert_invariant(); + } + + template<typename BasicJsonType> + static void construct(BasicJsonType& j, typename BasicJsonType::object_t&& obj) + { + j.m_type = value_t::object; + j.m_value = std::move(obj); + j.assert_invariant(); + } + + template<typename BasicJsonType, typename CompatibleObjectType, + enable_if_t<not std::is_same<CompatibleObjectType, typename BasicJsonType::object_t>::value, int> = 0> + static void construct(BasicJsonType& j, const CompatibleObjectType& obj) + { + using std::begin; + using std::end; + + j.m_type = value_t::object; + j.m_value.object = j.template create<typename BasicJsonType::object_t>(begin(obj), end(obj)); + j.assert_invariant(); + } +}; + +///////////// +// to_json // +///////////// + +template<typename BasicJsonType, typename T, + enable_if_t<std::is_same<T, typename BasicJsonType::boolean_t>::value, int> = 0> +void to_json(BasicJsonType& j, T b) noexcept +{ + external_constructor<value_t::boolean>::construct(j, b); +} + +template<typename BasicJsonType, typename CompatibleString, + enable_if_t<std::is_constructible<typename BasicJsonType::string_t, CompatibleString>::value, int> = 0> +void to_json(BasicJsonType& j, const CompatibleString& s) +{ + external_constructor<value_t::string>::construct(j, s); +} + +template<typename BasicJsonType> +void to_json(BasicJsonType& j, typename BasicJsonType::string_t&& s) +{ + external_constructor<value_t::string>::construct(j, std::move(s)); +} + +template<typename BasicJsonType, typename FloatType, + enable_if_t<std::is_floating_point<FloatType>::value, int> = 0> +void to_json(BasicJsonType& j, FloatType val) noexcept +{ + external_constructor<value_t::number_float>::construct(j, static_cast<typename BasicJsonType::number_float_t>(val)); +} + +template<typename BasicJsonType, typename CompatibleNumberUnsignedType, + enable_if_t<is_compatible_integer_type<typename BasicJsonType::number_unsigned_t, CompatibleNumberUnsignedType>::value, int> = 0> +void to_json(BasicJsonType& j, CompatibleNumberUnsignedType val) noexcept +{ + external_constructor<value_t::number_unsigned>::construct(j, static_cast<typename BasicJsonType::number_unsigned_t>(val)); +} + +template<typename BasicJsonType, typename CompatibleNumberIntegerType, + enable_if_t<is_compatible_integer_type<typename BasicJsonType::number_integer_t, CompatibleNumberIntegerType>::value, int> = 0> +void to_json(BasicJsonType& j, CompatibleNumberIntegerType val) noexcept +{ + external_constructor<value_t::number_integer>::construct(j, static_cast<typename BasicJsonType::number_integer_t>(val)); +} + +template<typename BasicJsonType, typename EnumType, + enable_if_t<std::is_enum<EnumType>::value, int> = 0> +void to_json(BasicJsonType& j, EnumType e) noexcept +{ + using underlying_type = typename std::underlying_type<EnumType>::type; + external_constructor<value_t::number_integer>::construct(j, static_cast<underlying_type>(e)); +} + +template<typename BasicJsonType> +void to_json(BasicJsonType& j, const std::vector<bool>& e) +{ + external_constructor<value_t::array>::construct(j, e); +} + +template <typename BasicJsonType, typename CompatibleArrayType, + enable_if_t<is_compatible_array_type<BasicJsonType, + CompatibleArrayType>::value and + not is_compatible_object_type< + BasicJsonType, CompatibleArrayType>::value and + not is_compatible_string_type<BasicJsonType, CompatibleArrayType>::value and + not is_basic_json<CompatibleArrayType>::value, + int> = 0> +void to_json(BasicJsonType& j, const CompatibleArrayType& arr) +{ + external_constructor<value_t::array>::construct(j, arr); +} + +template<typename BasicJsonType, typename T, + enable_if_t<std::is_convertible<T, BasicJsonType>::value, int> = 0> +void to_json(BasicJsonType& j, const std::valarray<T>& arr) +{ + external_constructor<value_t::array>::construct(j, std::move(arr)); +} + +template<typename BasicJsonType> +void to_json(BasicJsonType& j, typename BasicJsonType::array_t&& arr) +{ + external_constructor<value_t::array>::construct(j, std::move(arr)); +} + +template<typename BasicJsonType, typename CompatibleObjectType, + enable_if_t<is_compatible_object_type<BasicJsonType, CompatibleObjectType>::value and not is_basic_json<CompatibleObjectType>::value, int> = 0> +void to_json(BasicJsonType& j, const CompatibleObjectType& obj) +{ + external_constructor<value_t::object>::construct(j, obj); +} + +template<typename BasicJsonType> +void to_json(BasicJsonType& j, typename BasicJsonType::object_t&& obj) +{ + external_constructor<value_t::object>::construct(j, std::move(obj)); +} + +template < + typename BasicJsonType, typename T, std::size_t N, + enable_if_t<not std::is_constructible<typename BasicJsonType::string_t, + const T(&)[N]>::value, + int> = 0 > +void to_json(BasicJsonType& j, const T(&arr)[N]) +{ + external_constructor<value_t::array>::construct(j, arr); +} + +template<typename BasicJsonType, typename... Args> +void to_json(BasicJsonType& j, const std::pair<Args...>& p) +{ + j = { p.first, p.second }; +} + +// for https://github.com/nlohmann/json/pull/1134 +template < typename BasicJsonType, typename T, + enable_if_t<std::is_same<T, iteration_proxy_value<typename BasicJsonType::iterator>>::value, int> = 0> +void to_json(BasicJsonType& j, const T& b) +{ + j = { {b.key(), b.value()} }; +} + +template<typename BasicJsonType, typename Tuple, std::size_t... Idx> +void to_json_tuple_impl(BasicJsonType& j, const Tuple& t, index_sequence<Idx...> /*unused*/) +{ + j = { std::get<Idx>(t)... }; +} + +template<typename BasicJsonType, typename... Args> +void to_json(BasicJsonType& j, const std::tuple<Args...>& t) +{ + to_json_tuple_impl(j, t, index_sequence_for<Args...> {}); +} + +struct to_json_fn +{ + template<typename BasicJsonType, typename T> + auto operator()(BasicJsonType& j, T&& val) const noexcept(noexcept(to_json(j, std::forward<T>(val)))) + -> decltype(to_json(j, std::forward<T>(val)), void()) + { + return to_json(j, std::forward<T>(val)); + } +}; +} // namespace detail + +/// namespace to hold default `to_json` function +namespace +{ +constexpr const auto& to_json = detail::static_const<detail::to_json_fn>::value; +} // namespace +} // namespace nlohmann + + +namespace nlohmann +{ + +template<typename, typename> +struct adl_serializer +{ + /*! + @brief convert a JSON value to any value type + + This function is usually called by the `get()` function of the + @ref basic_json class (either explicit or via conversion operators). + + @param[in] j JSON value to read from + @param[in,out] val value to write to + */ + template<typename BasicJsonType, typename ValueType> + static auto from_json(BasicJsonType&& j, ValueType& val) noexcept( + noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j), val))) + -> decltype(::nlohmann::from_json(std::forward<BasicJsonType>(j), val), void()) + { + ::nlohmann::from_json(std::forward<BasicJsonType>(j), val); + } + + /*! + @brief convert any value type to a JSON value + + This function is usually called by the constructors of the @ref basic_json + class. + + @param[in,out] j JSON value to write to + @param[in] val value to read from + */ + template <typename BasicJsonType, typename ValueType> + static auto to_json(BasicJsonType& j, ValueType&& val) noexcept( + noexcept(::nlohmann::to_json(j, std::forward<ValueType>(val)))) + -> decltype(::nlohmann::to_json(j, std::forward<ValueType>(val)), void()) + { + ::nlohmann::to_json(j, std::forward<ValueType>(val)); + } +}; + +} // namespace nlohmann + +// #include <nlohmann/detail/conversions/from_json.hpp> + +// #include <nlohmann/detail/conversions/to_json.hpp> + +// #include <nlohmann/detail/exceptions.hpp> + +// #include <nlohmann/detail/input/binary_reader.hpp> + + +#include <algorithm> // generate_n +#include <array> // array +#include <cassert> // assert +#include <cmath> // ldexp +#include <cstddef> // size_t +#include <cstdint> // uint8_t, uint16_t, uint32_t, uint64_t +#include <cstdio> // snprintf +#include <cstring> // memcpy +#include <iterator> // back_inserter +#include <limits> // numeric_limits +#include <string> // char_traits, string +#include <utility> // make_pair, move + +// #include <nlohmann/detail/exceptions.hpp> + +// #include <nlohmann/detail/input/input_adapters.hpp> + + +#include <array> // array +#include <cassert> // assert +#include <cstddef> // size_t +#include <cstdio> //FILE * +#include <cstring> // strlen +#include <istream> // istream +#include <iterator> // begin, end, iterator_traits, random_access_iterator_tag, distance, next +#include <memory> // shared_ptr, make_shared, addressof +#include <numeric> // accumulate +#include <string> // string, char_traits +#include <type_traits> // enable_if, is_base_of, is_pointer, is_integral, remove_pointer +#include <utility> // pair, declval + +// #include <nlohmann/detail/iterators/iterator_traits.hpp> + +// #include <nlohmann/detail/macro_scope.hpp> + + +namespace nlohmann +{ +namespace detail +{ +/// the supported input formats +enum class input_format_t { json, cbor, msgpack, ubjson, bson }; + +//////////////////// +// input adapters // +//////////////////// + +/*! +@brief abstract input adapter interface + +Produces a stream of std::char_traits<char>::int_type characters from a +std::istream, a buffer, or some other input type. Accepts the return of +exactly one non-EOF character for future input. The int_type characters +returned consist of all valid char values as positive values (typically +unsigned char), plus an EOF value outside that range, specified by the value +of the function std::char_traits<char>::eof(). This value is typically -1, but +could be any arbitrary value which is not a valid char value. +*/ +struct input_adapter_protocol +{ + /// get a character [0,255] or std::char_traits<char>::eof(). + virtual std::char_traits<char>::int_type get_character() = 0; + virtual ~input_adapter_protocol() = default; +}; + +/// a type to simplify interfaces +using input_adapter_t = std::shared_ptr<input_adapter_protocol>; + +/*! +Input adapter for stdio file access. This adapter read only 1 byte and do not use any + buffer. This adapter is a very low level adapter. +*/ +class file_input_adapter : public input_adapter_protocol +{ + public: + explicit file_input_adapter(std::FILE* f) noexcept + : m_file(f) + {} + + // make class move-only + file_input_adapter(const file_input_adapter&) = delete; + file_input_adapter(file_input_adapter&&) = default; + file_input_adapter& operator=(const file_input_adapter&) = delete; + file_input_adapter& operator=(file_input_adapter&&) = default; + ~file_input_adapter() override = default; + + std::char_traits<char>::int_type get_character() noexcept override + { + return std::fgetc(m_file); + } + + private: + /// the file pointer to read from + std::FILE* m_file; +}; + + +/*! +Input adapter for a (caching) istream. Ignores a UFT Byte Order Mark at +beginning of input. Does not support changing the underlying std::streambuf +in mid-input. Maintains underlying std::istream and std::streambuf to support +subsequent use of standard std::istream operations to process any input +characters following those used in parsing the JSON input. Clears the +std::istream flags; any input errors (e.g., EOF) will be detected by the first +subsequent call for input from the std::istream. +*/ +class input_stream_adapter : public input_adapter_protocol +{ + public: + ~input_stream_adapter() override + { + // clear stream flags; we use underlying streambuf I/O, do not + // maintain ifstream flags, except eof + is.clear(is.rdstate() & std::ios::eofbit); + } + + explicit input_stream_adapter(std::istream& i) + : is(i), sb(*i.rdbuf()) + {} + + // delete because of pointer members + input_stream_adapter(const input_stream_adapter&) = delete; + input_stream_adapter& operator=(input_stream_adapter&) = delete; + input_stream_adapter(input_stream_adapter&&) = delete; + input_stream_adapter& operator=(input_stream_adapter&&) = delete; + + // std::istream/std::streambuf use std::char_traits<char>::to_int_type, to + // ensure that std::char_traits<char>::eof() and the character 0xFF do not + // end up as the same value, eg. 0xFFFFFFFF. + std::char_traits<char>::int_type get_character() override + { + auto res = sb.sbumpc(); + // set eof manually, as we don't use the istream interface. + if (res == EOF) + { + is.clear(is.rdstate() | std::ios::eofbit); + } + return res; + } + + private: + /// the associated input stream + std::istream& is; + std::streambuf& sb; +}; + +/// input adapter for buffer input +class input_buffer_adapter : public input_adapter_protocol +{ + public: + input_buffer_adapter(const char* b, const std::size_t l) noexcept + : cursor(b), limit(b + l) + {} + + // delete because of pointer members + input_buffer_adapter(const input_buffer_adapter&) = delete; + input_buffer_adapter& operator=(input_buffer_adapter&) = delete; + input_buffer_adapter(input_buffer_adapter&&) = delete; + input_buffer_adapter& operator=(input_buffer_adapter&&) = delete; + ~input_buffer_adapter() override = default; + + std::char_traits<char>::int_type get_character() noexcept override + { + if (JSON_LIKELY(cursor < limit)) + { + return std::char_traits<char>::to_int_type(*(cursor++)); + } + + return std::char_traits<char>::eof(); + } + + private: + /// pointer to the current character + const char* cursor; + /// pointer past the last character + const char* const limit; +}; + +template<typename WideStringType, size_t T> +struct wide_string_input_helper +{ + // UTF-32 + static void fill_buffer(const WideStringType& str, + size_t& current_wchar, + std::array<std::char_traits<char>::int_type, 4>& utf8_bytes, + size_t& utf8_bytes_index, + size_t& utf8_bytes_filled) + { + utf8_bytes_index = 0; + + if (current_wchar == str.size()) + { + utf8_bytes[0] = std::char_traits<char>::eof(); + utf8_bytes_filled = 1; + } + else + { + // get the current character + const auto wc = static_cast<unsigned int>(str[current_wchar++]); + + // UTF-32 to UTF-8 encoding + if (wc < 0x80) + { + utf8_bytes[0] = static_cast<std::char_traits<char>::int_type>(wc); + utf8_bytes_filled = 1; + } + else if (wc <= 0x7FF) + { + utf8_bytes[0] = static_cast<std::char_traits<char>::int_type>(0xC0u | ((wc >> 6u) & 0x1Fu)); + utf8_bytes[1] = static_cast<std::char_traits<char>::int_type>(0x80u | (wc & 0x3Fu)); + utf8_bytes_filled = 2; + } + else if (wc <= 0xFFFF) + { + utf8_bytes[0] = static_cast<std::char_traits<char>::int_type>(0xE0u | ((wc >> 12u) & 0x0Fu)); + utf8_bytes[1] = static_cast<std::char_traits<char>::int_type>(0x80u | ((wc >> 6u) & 0x3Fu)); + utf8_bytes[2] = static_cast<std::char_traits<char>::int_type>(0x80u | (wc & 0x3Fu)); + utf8_bytes_filled = 3; + } + else if (wc <= 0x10FFFF) + { + utf8_bytes[0] = static_cast<std::char_traits<char>::int_type>(0xF0u | ((wc >> 18u) & 0x07u)); + utf8_bytes[1] = static_cast<std::char_traits<char>::int_type>(0x80u | ((wc >> 12u) & 0x3Fu)); + utf8_bytes[2] = static_cast<std::char_traits<char>::int_type>(0x80u | ((wc >> 6u) & 0x3Fu)); + utf8_bytes[3] = static_cast<std::char_traits<char>::int_type>(0x80u | (wc & 0x3Fu)); + utf8_bytes_filled = 4; + } + else + { + // unknown character + utf8_bytes[0] = static_cast<std::char_traits<char>::int_type>(wc); + utf8_bytes_filled = 1; + } + } + } +}; + +template<typename WideStringType> +struct wide_string_input_helper<WideStringType, 2> +{ + // UTF-16 + static void fill_buffer(const WideStringType& str, + size_t& current_wchar, + std::array<std::char_traits<char>::int_type, 4>& utf8_bytes, + size_t& utf8_bytes_index, + size_t& utf8_bytes_filled) + { + utf8_bytes_index = 0; + + if (current_wchar == str.size()) + { + utf8_bytes[0] = std::char_traits<char>::eof(); + utf8_bytes_filled = 1; + } + else + { + // get the current character + const auto wc = static_cast<unsigned int>(str[current_wchar++]); + + // UTF-16 to UTF-8 encoding + if (wc < 0x80) + { + utf8_bytes[0] = static_cast<std::char_traits<char>::int_type>(wc); + utf8_bytes_filled = 1; + } + else if (wc <= 0x7FF) + { + utf8_bytes[0] = static_cast<std::char_traits<char>::int_type>(0xC0u | ((wc >> 6u))); + utf8_bytes[1] = static_cast<std::char_traits<char>::int_type>(0x80u | (wc & 0x3Fu)); + utf8_bytes_filled = 2; + } + else if (0xD800 > wc or wc >= 0xE000) + { + utf8_bytes[0] = static_cast<std::char_traits<char>::int_type>(0xE0u | ((wc >> 12u))); + utf8_bytes[1] = static_cast<std::char_traits<char>::int_type>(0x80u | ((wc >> 6u) & 0x3Fu)); + utf8_bytes[2] = static_cast<std::char_traits<char>::int_type>(0x80u | (wc & 0x3Fu)); + utf8_bytes_filled = 3; + } + else + { + if (current_wchar < str.size()) + { + const auto wc2 = static_cast<unsigned int>(str[current_wchar++]); + const auto charcode = 0x10000u + (((wc & 0x3FFu) << 10u) | (wc2 & 0x3FFu)); + utf8_bytes[0] = static_cast<std::char_traits<char>::int_type>(0xF0u | (charcode >> 18u)); + utf8_bytes[1] = static_cast<std::char_traits<char>::int_type>(0x80u | ((charcode >> 12u) & 0x3Fu)); + utf8_bytes[2] = static_cast<std::char_traits<char>::int_type>(0x80u | ((charcode >> 6u) & 0x3Fu)); + utf8_bytes[3] = static_cast<std::char_traits<char>::int_type>(0x80u | (charcode & 0x3Fu)); + utf8_bytes_filled = 4; + } + else + { + // unknown character + ++current_wchar; + utf8_bytes[0] = static_cast<std::char_traits<char>::int_type>(wc); + utf8_bytes_filled = 1; + } + } + } + } +}; + +template<typename WideStringType> +class wide_string_input_adapter : public input_adapter_protocol +{ + public: + explicit wide_string_input_adapter(const WideStringType& w) noexcept + : str(w) + {} + + std::char_traits<char>::int_type get_character() noexcept override + { + // check if buffer needs to be filled + if (utf8_bytes_index == utf8_bytes_filled) + { + fill_buffer<sizeof(typename WideStringType::value_type)>(); + + assert(utf8_bytes_filled > 0); + assert(utf8_bytes_index == 0); + } + + // use buffer + assert(utf8_bytes_filled > 0); + assert(utf8_bytes_index < utf8_bytes_filled); + return utf8_bytes[utf8_bytes_index++]; + } + + private: + template<size_t T> + void fill_buffer() + { + wide_string_input_helper<WideStringType, T>::fill_buffer(str, current_wchar, utf8_bytes, utf8_bytes_index, utf8_bytes_filled); + } + + /// the wstring to process + const WideStringType& str; + + /// index of the current wchar in str + std::size_t current_wchar = 0; + + /// a buffer for UTF-8 bytes + std::array<std::char_traits<char>::int_type, 4> utf8_bytes = {{0, 0, 0, 0}}; + + /// index to the utf8_codes array for the next valid byte + std::size_t utf8_bytes_index = 0; + /// number of valid bytes in the utf8_codes array + std::size_t utf8_bytes_filled = 0; +}; + +class input_adapter +{ + public: + // native support + input_adapter(std::FILE* file) + : ia(std::make_shared<file_input_adapter>(file)) {} + /// input adapter for input stream + input_adapter(std::istream& i) + : ia(std::make_shared<input_stream_adapter>(i)) {} + + /// input adapter for input stream + input_adapter(std::istream&& i) + : ia(std::make_shared<input_stream_adapter>(i)) {} + + input_adapter(const std::wstring& ws) + : ia(std::make_shared<wide_string_input_adapter<std::wstring>>(ws)) {} + + input_adapter(const std::u16string& ws) + : ia(std::make_shared<wide_string_input_adapter<std::u16string>>(ws)) {} + + input_adapter(const std::u32string& ws) + : ia(std::make_shared<wide_string_input_adapter<std::u32string>>(ws)) {} + + /// input adapter for buffer + template<typename CharT, + typename std::enable_if< + std::is_pointer<CharT>::value and + std::is_integral<typename std::remove_pointer<CharT>::type>::value and + sizeof(typename std::remove_pointer<CharT>::type) == 1, + int>::type = 0> + input_adapter(CharT b, std::size_t l) + : ia(std::make_shared<input_buffer_adapter>(reinterpret_cast<const char*>(b), l)) {} + + // derived support + + /// input adapter for string literal + template<typename CharT, + typename std::enable_if< + std::is_pointer<CharT>::value and + std::is_integral<typename std::remove_pointer<CharT>::type>::value and + sizeof(typename std::remove_pointer<CharT>::type) == 1, + int>::type = 0> + input_adapter(CharT b) + : input_adapter(reinterpret_cast<const char*>(b), + std::strlen(reinterpret_cast<const char*>(b))) {} + + /// input adapter for iterator range with contiguous storage + template<class IteratorType, + typename std::enable_if< + std::is_same<typename iterator_traits<IteratorType>::iterator_category, std::random_access_iterator_tag>::value, + int>::type = 0> + input_adapter(IteratorType first, IteratorType last) + { +#ifndef NDEBUG + // assertion to check that the iterator range is indeed contiguous, + // see http://stackoverflow.com/a/35008842/266378 for more discussion + const auto is_contiguous = std::accumulate( + first, last, std::pair<bool, int>(true, 0), + [&first](std::pair<bool, int> res, decltype(*first) val) + { + res.first &= (val == *(std::next(std::addressof(*first), res.second++))); + return res; + }).first; + assert(is_contiguous); +#endif + + // assertion to check that each element is 1 byte long + static_assert( + sizeof(typename iterator_traits<IteratorType>::value_type) == 1, + "each element in the iterator range must have the size of 1 byte"); + + const auto len = static_cast<size_t>(std::distance(first, last)); + if (JSON_LIKELY(len > 0)) + { + // there is at least one element: use the address of first + ia = std::make_shared<input_buffer_adapter>(reinterpret_cast<const char*>(&(*first)), len); + } + else + { + // the address of first cannot be used: use nullptr + ia = std::make_shared<input_buffer_adapter>(nullptr, len); + } + } + + /// input adapter for array + template<class T, std::size_t N> + input_adapter(T (&array)[N]) + : input_adapter(std::begin(array), std::end(array)) {} + + /// input adapter for contiguous container + template<class ContiguousContainer, typename + std::enable_if<not std::is_pointer<ContiguousContainer>::value and + std::is_base_of<std::random_access_iterator_tag, typename iterator_traits<decltype(std::begin(std::declval<ContiguousContainer const>()))>::iterator_category>::value, + int>::type = 0> + input_adapter(const ContiguousContainer& c) + : input_adapter(std::begin(c), std::end(c)) {} + + operator input_adapter_t() + { + return ia; + } + + private: + /// the actual adapter + input_adapter_t ia = nullptr; +}; +} // namespace detail +} // namespace nlohmann + +// #include <nlohmann/detail/input/json_sax.hpp> + + +#include <cassert> // assert +#include <cstddef> +#include <string> // string +#include <utility> // move +#include <vector> // vector + +// #include <nlohmann/detail/exceptions.hpp> + +// #include <nlohmann/detail/macro_scope.hpp> + + +namespace nlohmann +{ + +/*! +@brief SAX interface + +This class describes the SAX interface used by @ref nlohmann::json::sax_parse. +Each function is called in different situations while the input is parsed. The +boolean return value informs the parser whether to continue processing the +input. +*/ +template<typename BasicJsonType> +struct json_sax +{ + /// type for (signed) integers + using number_integer_t = typename BasicJsonType::number_integer_t; + /// type for unsigned integers + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + /// type for floating-point numbers + using number_float_t = typename BasicJsonType::number_float_t; + /// type for strings + using string_t = typename BasicJsonType::string_t; + + /*! + @brief a null value was read + @return whether parsing should proceed + */ + virtual bool null() = 0; + + /*! + @brief a boolean value was read + @param[in] val boolean value + @return whether parsing should proceed + */ + virtual bool boolean(bool val) = 0; + + /*! + @brief an integer number was read + @param[in] val integer value + @return whether parsing should proceed + */ + virtual bool number_integer(number_integer_t val) = 0; + + /*! + @brief an unsigned integer number was read + @param[in] val unsigned integer value + @return whether parsing should proceed + */ + virtual bool number_unsigned(number_unsigned_t val) = 0; + + /*! + @brief an floating-point number was read + @param[in] val floating-point value + @param[in] s raw token value + @return whether parsing should proceed + */ + virtual bool number_float(number_float_t val, const string_t& s) = 0; + + /*! + @brief a string was read + @param[in] val string value + @return whether parsing should proceed + @note It is safe to move the passed string. + */ + virtual bool string(string_t& val) = 0; + + /*! + @brief the beginning of an object was read + @param[in] elements number of object elements or -1 if unknown + @return whether parsing should proceed + @note binary formats may report the number of elements + */ + virtual bool start_object(std::size_t elements) = 0; + + /*! + @brief an object key was read + @param[in] val object key + @return whether parsing should proceed + @note It is safe to move the passed string. + */ + virtual bool key(string_t& val) = 0; + + /*! + @brief the end of an object was read + @return whether parsing should proceed + */ + virtual bool end_object() = 0; + + /*! + @brief the beginning of an array was read + @param[in] elements number of array elements or -1 if unknown + @return whether parsing should proceed + @note binary formats may report the number of elements + */ + virtual bool start_array(std::size_t elements) = 0; + + /*! + @brief the end of an array was read + @return whether parsing should proceed + */ + virtual bool end_array() = 0; + + /*! + @brief a parse error occurred + @param[in] position the position in the input where the error occurs + @param[in] last_token the last read token + @param[in] ex an exception object describing the error + @return whether parsing should proceed (must return false) + */ + virtual bool parse_error(std::size_t position, + const std::string& last_token, + const detail::exception& ex) = 0; + + virtual ~json_sax() = default; +}; + + +namespace detail +{ +/*! +@brief SAX implementation to create a JSON value from SAX events + +This class implements the @ref json_sax interface and processes the SAX events +to create a JSON value which makes it basically a DOM parser. The structure or +hierarchy of the JSON value is managed by the stack `ref_stack` which contains +a pointer to the respective array or object for each recursion depth. + +After successful parsing, the value that is passed by reference to the +constructor contains the parsed value. + +@tparam BasicJsonType the JSON type +*/ +template<typename BasicJsonType> +class json_sax_dom_parser +{ + public: + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + + /*! + @param[in, out] r reference to a JSON value that is manipulated while + parsing + @param[in] allow_exceptions_ whether parse errors yield exceptions + */ + explicit json_sax_dom_parser(BasicJsonType& r, const bool allow_exceptions_ = true) + : root(r), allow_exceptions(allow_exceptions_) + {} + + // make class move-only + json_sax_dom_parser(const json_sax_dom_parser&) = delete; + json_sax_dom_parser(json_sax_dom_parser&&) = default; + json_sax_dom_parser& operator=(const json_sax_dom_parser&) = delete; + json_sax_dom_parser& operator=(json_sax_dom_parser&&) = default; + ~json_sax_dom_parser() = default; + + bool null() + { + handle_value(nullptr); + return true; + } + + bool boolean(bool val) + { + handle_value(val); + return true; + } + + bool number_integer(number_integer_t val) + { + handle_value(val); + return true; + } + + bool number_unsigned(number_unsigned_t val) + { + handle_value(val); + return true; + } + + bool number_float(number_float_t val, const string_t& /*unused*/) + { + handle_value(val); + return true; + } + + bool string(string_t& val) + { + handle_value(val); + return true; + } + + bool start_object(std::size_t len) + { + ref_stack.push_back(handle_value(BasicJsonType::value_t::object)); + + if (JSON_UNLIKELY(len != std::size_t(-1) and len > ref_stack.back()->max_size())) + { + JSON_THROW(out_of_range::create(408, + "excessive object size: " + std::to_string(len))); + } + + return true; + } + + bool key(string_t& val) + { + // add null at given key and store the reference for later + object_element = &(ref_stack.back()->m_value.object->operator[](val)); + return true; + } + + bool end_object() + { + ref_stack.pop_back(); + return true; + } + + bool start_array(std::size_t len) + { + ref_stack.push_back(handle_value(BasicJsonType::value_t::array)); + + if (JSON_UNLIKELY(len != std::size_t(-1) and len > ref_stack.back()->max_size())) + { + JSON_THROW(out_of_range::create(408, + "excessive array size: " + std::to_string(len))); + } + + return true; + } + + bool end_array() + { + ref_stack.pop_back(); + return true; + } + + bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/, + const detail::exception& ex) + { + errored = true; + if (allow_exceptions) + { + // determine the proper exception type from the id + switch ((ex.id / 100) % 100) + { + case 1: + JSON_THROW(*static_cast<const detail::parse_error*>(&ex)); + case 4: + JSON_THROW(*static_cast<const detail::out_of_range*>(&ex)); + // LCOV_EXCL_START + case 2: + JSON_THROW(*static_cast<const detail::invalid_iterator*>(&ex)); + case 3: + JSON_THROW(*static_cast<const detail::type_error*>(&ex)); + case 5: + JSON_THROW(*static_cast<const detail::other_error*>(&ex)); + default: + assert(false); + // LCOV_EXCL_STOP + } + } + return false; + } + + constexpr bool is_errored() const + { + return errored; + } + + private: + /*! + @invariant If the ref stack is empty, then the passed value will be the new + root. + @invariant If the ref stack contains a value, then it is an array or an + object to which we can add elements + */ + template<typename Value> + BasicJsonType* handle_value(Value&& v) + { + if (ref_stack.empty()) + { + root = BasicJsonType(std::forward<Value>(v)); + return &root; + } + + assert(ref_stack.back()->is_array() or ref_stack.back()->is_object()); + + if (ref_stack.back()->is_array()) + { + ref_stack.back()->m_value.array->emplace_back(std::forward<Value>(v)); + return &(ref_stack.back()->m_value.array->back()); + } + + assert(ref_stack.back()->is_object()); + assert(object_element); + *object_element = BasicJsonType(std::forward<Value>(v)); + return object_element; + } + + /// the parsed JSON value + BasicJsonType& root; + /// stack to model hierarchy of values + std::vector<BasicJsonType*> ref_stack {}; + /// helper to hold the reference for the next object element + BasicJsonType* object_element = nullptr; + /// whether a syntax error occurred + bool errored = false; + /// whether to throw exceptions in case of errors + const bool allow_exceptions = true; +}; + +template<typename BasicJsonType> +class json_sax_dom_callback_parser +{ + public: + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using parser_callback_t = typename BasicJsonType::parser_callback_t; + using parse_event_t = typename BasicJsonType::parse_event_t; + + json_sax_dom_callback_parser(BasicJsonType& r, + const parser_callback_t cb, + const bool allow_exceptions_ = true) + : root(r), callback(cb), allow_exceptions(allow_exceptions_) + { + keep_stack.push_back(true); + } + + // make class move-only + json_sax_dom_callback_parser(const json_sax_dom_callback_parser&) = delete; + json_sax_dom_callback_parser(json_sax_dom_callback_parser&&) = default; + json_sax_dom_callback_parser& operator=(const json_sax_dom_callback_parser&) = delete; + json_sax_dom_callback_parser& operator=(json_sax_dom_callback_parser&&) = default; + ~json_sax_dom_callback_parser() = default; + + bool null() + { + handle_value(nullptr); + return true; + } + + bool boolean(bool val) + { + handle_value(val); + return true; + } + + bool number_integer(number_integer_t val) + { + handle_value(val); + return true; + } + + bool number_unsigned(number_unsigned_t val) + { + handle_value(val); + return true; + } + + bool number_float(number_float_t val, const string_t& /*unused*/) + { + handle_value(val); + return true; + } + + bool string(string_t& val) + { + handle_value(val); + return true; + } + + bool start_object(std::size_t len) + { + // check callback for object start + const bool keep = callback(static_cast<int>(ref_stack.size()), parse_event_t::object_start, discarded); + keep_stack.push_back(keep); + + auto val = handle_value(BasicJsonType::value_t::object, true); + ref_stack.push_back(val.second); + + // check object limit + if (ref_stack.back() and JSON_UNLIKELY(len != std::size_t(-1) and len > ref_stack.back()->max_size())) + { + JSON_THROW(out_of_range::create(408, "excessive object size: " + std::to_string(len))); + } + + return true; + } + + bool key(string_t& val) + { + BasicJsonType k = BasicJsonType(val); + + // check callback for key + const bool keep = callback(static_cast<int>(ref_stack.size()), parse_event_t::key, k); + key_keep_stack.push_back(keep); + + // add discarded value at given key and store the reference for later + if (keep and ref_stack.back()) + { + object_element = &(ref_stack.back()->m_value.object->operator[](val) = discarded); + } + + return true; + } + + bool end_object() + { + if (ref_stack.back() and not callback(static_cast<int>(ref_stack.size()) - 1, parse_event_t::object_end, *ref_stack.back())) + { + // discard object + *ref_stack.back() = discarded; + } + + assert(not ref_stack.empty()); + assert(not keep_stack.empty()); + ref_stack.pop_back(); + keep_stack.pop_back(); + + if (not ref_stack.empty() and ref_stack.back() and ref_stack.back()->is_object()) + { + // remove discarded value + for (auto it = ref_stack.back()->begin(); it != ref_stack.back()->end(); ++it) + { + if (it->is_discarded()) + { + ref_stack.back()->erase(it); + break; + } + } + } + + return true; + } + + bool start_array(std::size_t len) + { + const bool keep = callback(static_cast<int>(ref_stack.size()), parse_event_t::array_start, discarded); + keep_stack.push_back(keep); + + auto val = handle_value(BasicJsonType::value_t::array, true); + ref_stack.push_back(val.second); + + // check array limit + if (ref_stack.back() and JSON_UNLIKELY(len != std::size_t(-1) and len > ref_stack.back()->max_size())) + { + JSON_THROW(out_of_range::create(408, "excessive array size: " + std::to_string(len))); + } + + return true; + } + + bool end_array() + { + bool keep = true; + + if (ref_stack.back()) + { + keep = callback(static_cast<int>(ref_stack.size()) - 1, parse_event_t::array_end, *ref_stack.back()); + if (not keep) + { + // discard array + *ref_stack.back() = discarded; + } + } + + assert(not ref_stack.empty()); + assert(not keep_stack.empty()); + ref_stack.pop_back(); + keep_stack.pop_back(); + + // remove discarded value + if (not keep and not ref_stack.empty() and ref_stack.back()->is_array()) + { + ref_stack.back()->m_value.array->pop_back(); + } + + return true; + } + + bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/, + const detail::exception& ex) + { + errored = true; + if (allow_exceptions) + { + // determine the proper exception type from the id + switch ((ex.id / 100) % 100) + { + case 1: + JSON_THROW(*static_cast<const detail::parse_error*>(&ex)); + case 4: + JSON_THROW(*static_cast<const detail::out_of_range*>(&ex)); + // LCOV_EXCL_START + case 2: + JSON_THROW(*static_cast<const detail::invalid_iterator*>(&ex)); + case 3: + JSON_THROW(*static_cast<const detail::type_error*>(&ex)); + case 5: + JSON_THROW(*static_cast<const detail::other_error*>(&ex)); + default: + assert(false); + // LCOV_EXCL_STOP + } + } + return false; + } + + constexpr bool is_errored() const + { + return errored; + } + + private: + /*! + @param[in] v value to add to the JSON value we build during parsing + @param[in] skip_callback whether we should skip calling the callback + function; this is required after start_array() and + start_object() SAX events, because otherwise we would call the + callback function with an empty array or object, respectively. + + @invariant If the ref stack is empty, then the passed value will be the new + root. + @invariant If the ref stack contains a value, then it is an array or an + object to which we can add elements + + @return pair of boolean (whether value should be kept) and pointer (to the + passed value in the ref_stack hierarchy; nullptr if not kept) + */ + template<typename Value> + std::pair<bool, BasicJsonType*> handle_value(Value&& v, const bool skip_callback = false) + { + assert(not keep_stack.empty()); + + // do not handle this value if we know it would be added to a discarded + // container + if (not keep_stack.back()) + { + return {false, nullptr}; + } + + // create value + auto value = BasicJsonType(std::forward<Value>(v)); + + // check callback + const bool keep = skip_callback or callback(static_cast<int>(ref_stack.size()), parse_event_t::value, value); + + // do not handle this value if we just learnt it shall be discarded + if (not keep) + { + return {false, nullptr}; + } + + if (ref_stack.empty()) + { + root = std::move(value); + return {true, &root}; + } + + // skip this value if we already decided to skip the parent + // (https://github.com/nlohmann/json/issues/971#issuecomment-413678360) + if (not ref_stack.back()) + { + return {false, nullptr}; + } + + // we now only expect arrays and objects + assert(ref_stack.back()->is_array() or ref_stack.back()->is_object()); + + // array + if (ref_stack.back()->is_array()) + { + ref_stack.back()->m_value.array->push_back(std::move(value)); + return {true, &(ref_stack.back()->m_value.array->back())}; + } + + // object + assert(ref_stack.back()->is_object()); + // check if we should store an element for the current key + assert(not key_keep_stack.empty()); + const bool store_element = key_keep_stack.back(); + key_keep_stack.pop_back(); + + if (not store_element) + { + return {false, nullptr}; + } + + assert(object_element); + *object_element = std::move(value); + return {true, object_element}; + } + + /// the parsed JSON value + BasicJsonType& root; + /// stack to model hierarchy of values + std::vector<BasicJsonType*> ref_stack {}; + /// stack to manage which values to keep + std::vector<bool> keep_stack {}; + /// stack to manage which object keys to keep + std::vector<bool> key_keep_stack {}; + /// helper to hold the reference for the next object element + BasicJsonType* object_element = nullptr; + /// whether a syntax error occurred + bool errored = false; + /// callback function + const parser_callback_t callback = nullptr; + /// whether to throw exceptions in case of errors + const bool allow_exceptions = true; + /// a discarded value for the callback + BasicJsonType discarded = BasicJsonType::value_t::discarded; +}; + +template<typename BasicJsonType> +class json_sax_acceptor +{ + public: + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + + bool null() + { + return true; + } + + bool boolean(bool /*unused*/) + { + return true; + } + + bool number_integer(number_integer_t /*unused*/) + { + return true; + } + + bool number_unsigned(number_unsigned_t /*unused*/) + { + return true; + } + + bool number_float(number_float_t /*unused*/, const string_t& /*unused*/) + { + return true; + } + + bool string(string_t& /*unused*/) + { + return true; + } + + bool start_object(std::size_t /*unused*/ = std::size_t(-1)) + { + return true; + } + + bool key(string_t& /*unused*/) + { + return true; + } + + bool end_object() + { + return true; + } + + bool start_array(std::size_t /*unused*/ = std::size_t(-1)) + { + return true; + } + + bool end_array() + { + return true; + } + + bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/, const detail::exception& /*unused*/) + { + return false; + } +}; +} // namespace detail + +} // namespace nlohmann + +// #include <nlohmann/detail/macro_scope.hpp> + +// #include <nlohmann/detail/meta/is_sax.hpp> + + +#include <cstdint> // size_t +#include <utility> // declval +#include <string> // string + +// #include <nlohmann/detail/meta/detected.hpp> + +// #include <nlohmann/detail/meta/type_traits.hpp> + + +namespace nlohmann +{ +namespace detail +{ +template <typename T> +using null_function_t = decltype(std::declval<T&>().null()); + +template <typename T> +using boolean_function_t = + decltype(std::declval<T&>().boolean(std::declval<bool>())); + +template <typename T, typename Integer> +using number_integer_function_t = + decltype(std::declval<T&>().number_integer(std::declval<Integer>())); + +template <typename T, typename Unsigned> +using number_unsigned_function_t = + decltype(std::declval<T&>().number_unsigned(std::declval<Unsigned>())); + +template <typename T, typename Float, typename String> +using number_float_function_t = decltype(std::declval<T&>().number_float( + std::declval<Float>(), std::declval<const String&>())); + +template <typename T, typename String> +using string_function_t = + decltype(std::declval<T&>().string(std::declval<String&>())); + +template <typename T> +using start_object_function_t = + decltype(std::declval<T&>().start_object(std::declval<std::size_t>())); + +template <typename T, typename String> +using key_function_t = + decltype(std::declval<T&>().key(std::declval<String&>())); + +template <typename T> +using end_object_function_t = decltype(std::declval<T&>().end_object()); + +template <typename T> +using start_array_function_t = + decltype(std::declval<T&>().start_array(std::declval<std::size_t>())); + +template <typename T> +using end_array_function_t = decltype(std::declval<T&>().end_array()); + +template <typename T, typename Exception> +using parse_error_function_t = decltype(std::declval<T&>().parse_error( + std::declval<std::size_t>(), std::declval<const std::string&>(), + std::declval<const Exception&>())); + +template <typename SAX, typename BasicJsonType> +struct is_sax +{ + private: + static_assert(is_basic_json<BasicJsonType>::value, + "BasicJsonType must be of type basic_json<...>"); + + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using exception_t = typename BasicJsonType::exception; + + public: + static constexpr bool value = + is_detected_exact<bool, null_function_t, SAX>::value && + is_detected_exact<bool, boolean_function_t, SAX>::value && + is_detected_exact<bool, number_integer_function_t, SAX, + number_integer_t>::value && + is_detected_exact<bool, number_unsigned_function_t, SAX, + number_unsigned_t>::value && + is_detected_exact<bool, number_float_function_t, SAX, number_float_t, + string_t>::value && + is_detected_exact<bool, string_function_t, SAX, string_t>::value && + is_detected_exact<bool, start_object_function_t, SAX>::value && + is_detected_exact<bool, key_function_t, SAX, string_t>::value && + is_detected_exact<bool, end_object_function_t, SAX>::value && + is_detected_exact<bool, start_array_function_t, SAX>::value && + is_detected_exact<bool, end_array_function_t, SAX>::value && + is_detected_exact<bool, parse_error_function_t, SAX, exception_t>::value; +}; + +template <typename SAX, typename BasicJsonType> +struct is_sax_static_asserts +{ + private: + static_assert(is_basic_json<BasicJsonType>::value, + "BasicJsonType must be of type basic_json<...>"); + + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using exception_t = typename BasicJsonType::exception; + + public: + static_assert(is_detected_exact<bool, null_function_t, SAX>::value, + "Missing/invalid function: bool null()"); + static_assert(is_detected_exact<bool, boolean_function_t, SAX>::value, + "Missing/invalid function: bool boolean(bool)"); + static_assert(is_detected_exact<bool, boolean_function_t, SAX>::value, + "Missing/invalid function: bool boolean(bool)"); + static_assert( + is_detected_exact<bool, number_integer_function_t, SAX, + number_integer_t>::value, + "Missing/invalid function: bool number_integer(number_integer_t)"); + static_assert( + is_detected_exact<bool, number_unsigned_function_t, SAX, + number_unsigned_t>::value, + "Missing/invalid function: bool number_unsigned(number_unsigned_t)"); + static_assert(is_detected_exact<bool, number_float_function_t, SAX, + number_float_t, string_t>::value, + "Missing/invalid function: bool number_float(number_float_t, const string_t&)"); + static_assert( + is_detected_exact<bool, string_function_t, SAX, string_t>::value, + "Missing/invalid function: bool string(string_t&)"); + static_assert(is_detected_exact<bool, start_object_function_t, SAX>::value, + "Missing/invalid function: bool start_object(std::size_t)"); + static_assert(is_detected_exact<bool, key_function_t, SAX, string_t>::value, + "Missing/invalid function: bool key(string_t&)"); + static_assert(is_detected_exact<bool, end_object_function_t, SAX>::value, + "Missing/invalid function: bool end_object()"); + static_assert(is_detected_exact<bool, start_array_function_t, SAX>::value, + "Missing/invalid function: bool start_array(std::size_t)"); + static_assert(is_detected_exact<bool, end_array_function_t, SAX>::value, + "Missing/invalid function: bool end_array()"); + static_assert( + is_detected_exact<bool, parse_error_function_t, SAX, exception_t>::value, + "Missing/invalid function: bool parse_error(std::size_t, const " + "std::string&, const exception&)"); +}; +} // namespace detail +} // namespace nlohmann + +// #include <nlohmann/detail/value_t.hpp> + + +namespace nlohmann +{ +namespace detail +{ +/////////////////// +// binary reader // +/////////////////// + +/*! +@brief deserialization of CBOR, MessagePack, and UBJSON values +*/ +template<typename BasicJsonType, typename SAX = json_sax_dom_parser<BasicJsonType>> +class binary_reader +{ + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using json_sax_t = SAX; + + public: + /*! + @brief create a binary reader + + @param[in] adapter input adapter to read from + */ + explicit binary_reader(input_adapter_t adapter) : ia(std::move(adapter)) + { + (void)detail::is_sax_static_asserts<SAX, BasicJsonType> {}; + assert(ia); + } + + // make class move-only + binary_reader(const binary_reader&) = delete; + binary_reader(binary_reader&&) = default; + binary_reader& operator=(const binary_reader&) = delete; + binary_reader& operator=(binary_reader&&) = default; + ~binary_reader() = default; + + /*! + @param[in] format the binary format to parse + @param[in] sax_ a SAX event processor + @param[in] strict whether to expect the input to be consumed completed + + @return + */ + bool sax_parse(const input_format_t format, + json_sax_t* sax_, + const bool strict = true) + { + sax = sax_; + bool result = false; + + switch (format) + { + case input_format_t::bson: + result = parse_bson_internal(); + break; + + case input_format_t::cbor: + result = parse_cbor_internal(); + break; + + case input_format_t::msgpack: + result = parse_msgpack_internal(); + break; + + case input_format_t::ubjson: + result = parse_ubjson_internal(); + break; + + default: // LCOV_EXCL_LINE + assert(false); // LCOV_EXCL_LINE + } + + // strict mode: next byte must be EOF + if (result and strict) + { + if (format == input_format_t::ubjson) + { + get_ignore_noop(); + } + else + { + get(); + } + + if (JSON_UNLIKELY(current != std::char_traits<char>::eof())) + { + return sax->parse_error(chars_read, get_token_string(), + parse_error::create(110, chars_read, exception_message(format, "expected end of input; last byte: 0x" + get_token_string(), "value"))); + } + } + + return result; + } + + /*! + @brief determine system byte order + + @return true if and only if system's byte order is little endian + + @note from http://stackoverflow.com/a/1001328/266378 + */ + static constexpr bool little_endianess(int num = 1) noexcept + { + return *reinterpret_cast<char*>(&num) == 1; + } + + private: + ////////// + // BSON // + ////////// + + /*! + @brief Reads in a BSON-object and passes it to the SAX-parser. + @return whether a valid BSON-value was passed to the SAX parser + */ + bool parse_bson_internal() + { + std::int32_t document_size; + get_number<std::int32_t, true>(input_format_t::bson, document_size); + + if (JSON_UNLIKELY(not sax->start_object(std::size_t(-1)))) + { + return false; + } + + if (JSON_UNLIKELY(not parse_bson_element_list(/*is_array*/false))) + { + return false; + } + + return sax->end_object(); + } + + /*! + @brief Parses a C-style string from the BSON input. + @param[in, out] result A reference to the string variable where the read + string is to be stored. + @return `true` if the \x00-byte indicating the end of the string was + encountered before the EOF; false` indicates an unexpected EOF. + */ + bool get_bson_cstr(string_t& result) + { + auto out = std::back_inserter(result); + while (true) + { + get(); + if (JSON_UNLIKELY(not unexpect_eof(input_format_t::bson, "cstring"))) + { + return false; + } + if (current == 0x00) + { + return true; + } + *out++ = static_cast<char>(current); + } + + return true; + } + + /*! + @brief Parses a zero-terminated string of length @a len from the BSON + input. + @param[in] len The length (including the zero-byte at the end) of the + string to be read. + @param[in, out] result A reference to the string variable where the read + string is to be stored. + @tparam NumberType The type of the length @a len + @pre len >= 1 + @return `true` if the string was successfully parsed + */ + template<typename NumberType> + bool get_bson_string(const NumberType len, string_t& result) + { + if (JSON_UNLIKELY(len < 1)) + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read, exception_message(input_format_t::bson, "string length must be at least 1, is " + std::to_string(len), "string"))); + } + + return get_string(input_format_t::bson, len - static_cast<NumberType>(1), result) and get() != std::char_traits<char>::eof(); + } + + /*! + @brief Read a BSON document element of the given @a element_type. + @param[in] element_type The BSON element type, c.f. http://bsonspec.org/spec.html + @param[in] element_type_parse_position The position in the input stream, + where the `element_type` was read. + @warning Not all BSON element types are supported yet. An unsupported + @a element_type will give rise to a parse_error.114: + Unsupported BSON record type 0x... + @return whether a valid BSON-object/array was passed to the SAX parser + */ + bool parse_bson_element_internal(const int element_type, + const std::size_t element_type_parse_position) + { + switch (element_type) + { + case 0x01: // double + { + double number; + return get_number<double, true>(input_format_t::bson, number) and sax->number_float(static_cast<number_float_t>(number), ""); + } + + case 0x02: // string + { + std::int32_t len; + string_t value; + return get_number<std::int32_t, true>(input_format_t::bson, len) and get_bson_string(len, value) and sax->string(value); + } + + case 0x03: // object + { + return parse_bson_internal(); + } + + case 0x04: // array + { + return parse_bson_array(); + } + + case 0x08: // boolean + { + return sax->boolean(get() != 0); + } + + case 0x0A: // null + { + return sax->null(); + } + + case 0x10: // int32 + { + std::int32_t value; + return get_number<std::int32_t, true>(input_format_t::bson, value) and sax->number_integer(value); + } + + case 0x12: // int64 + { + std::int64_t value; + return get_number<std::int64_t, true>(input_format_t::bson, value) and sax->number_integer(value); + } + + default: // anything else not supported (yet) + { + std::array<char, 3> cr{{}}; + (std::snprintf)(cr.data(), cr.size(), "%.2hhX", static_cast<unsigned char>(element_type)); + return sax->parse_error(element_type_parse_position, std::string(cr.data()), parse_error::create(114, element_type_parse_position, "Unsupported BSON record type 0x" + std::string(cr.data()))); + } + } + } + + /*! + @brief Read a BSON element list (as specified in the BSON-spec) + + The same binary layout is used for objects and arrays, hence it must be + indicated with the argument @a is_array which one is expected + (true --> array, false --> object). + + @param[in] is_array Determines if the element list being read is to be + treated as an object (@a is_array == false), or as an + array (@a is_array == true). + @return whether a valid BSON-object/array was passed to the SAX parser + */ + bool parse_bson_element_list(const bool is_array) + { + string_t key; + while (int element_type = get()) + { + if (JSON_UNLIKELY(not unexpect_eof(input_format_t::bson, "element list"))) + { + return false; + } + + const std::size_t element_type_parse_position = chars_read; + if (JSON_UNLIKELY(not get_bson_cstr(key))) + { + return false; + } + + if (not is_array and not sax->key(key)) + { + return false; + } + + if (JSON_UNLIKELY(not parse_bson_element_internal(element_type, element_type_parse_position))) + { + return false; + } + + // get_bson_cstr only appends + key.clear(); + } + + return true; + } + + /*! + @brief Reads an array from the BSON input and passes it to the SAX-parser. + @return whether a valid BSON-array was passed to the SAX parser + */ + bool parse_bson_array() + { + std::int32_t document_size; + get_number<std::int32_t, true>(input_format_t::bson, document_size); + + if (JSON_UNLIKELY(not sax->start_array(std::size_t(-1)))) + { + return false; + } + + if (JSON_UNLIKELY(not parse_bson_element_list(/*is_array*/true))) + { + return false; + } + + return sax->end_array(); + } + + ////////// + // CBOR // + ////////// + + /*! + @param[in] get_char whether a new character should be retrieved from the + input (true, default) or whether the last read + character should be considered instead + + @return whether a valid CBOR value was passed to the SAX parser + */ + bool parse_cbor_internal(const bool get_char = true) + { + switch (get_char ? get() : current) + { + // EOF + case std::char_traits<char>::eof(): + return unexpect_eof(input_format_t::cbor, "value"); + + // Integer 0x00..0x17 (0..23) + case 0x00: + case 0x01: + case 0x02: + case 0x03: + case 0x04: + case 0x05: + case 0x06: + case 0x07: + case 0x08: + case 0x09: + case 0x0A: + case 0x0B: + case 0x0C: + case 0x0D: + case 0x0E: + case 0x0F: + case 0x10: + case 0x11: + case 0x12: + case 0x13: + case 0x14: + case 0x15: + case 0x16: + case 0x17: + return sax->number_unsigned(static_cast<number_unsigned_t>(current)); + + case 0x18: // Unsigned integer (one-byte uint8_t follows) + { + std::uint8_t number; + return get_number(input_format_t::cbor, number) and sax->number_unsigned(number); + } + + case 0x19: // Unsigned integer (two-byte uint16_t follows) + { + std::uint16_t number; + return get_number(input_format_t::cbor, number) and sax->number_unsigned(number); + } + + case 0x1A: // Unsigned integer (four-byte uint32_t follows) + { + std::uint32_t number; + return get_number(input_format_t::cbor, number) and sax->number_unsigned(number); + } + + case 0x1B: // Unsigned integer (eight-byte uint64_t follows) + { + std::uint64_t number; + return get_number(input_format_t::cbor, number) and sax->number_unsigned(number); + } + + // Negative integer -1-0x00..-1-0x17 (-1..-24) + case 0x20: + case 0x21: + case 0x22: + case 0x23: + case 0x24: + case 0x25: + case 0x26: + case 0x27: + case 0x28: + case 0x29: + case 0x2A: + case 0x2B: + case 0x2C: + case 0x2D: + case 0x2E: + case 0x2F: + case 0x30: + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + return sax->number_integer(static_cast<std::int8_t>(0x20 - 1 - current)); + + case 0x38: // Negative integer (one-byte uint8_t follows) + { + std::uint8_t number; + return get_number(input_format_t::cbor, number) and sax->number_integer(static_cast<number_integer_t>(-1) - number); + } + + case 0x39: // Negative integer -1-n (two-byte uint16_t follows) + { + std::uint16_t number; + return get_number(input_format_t::cbor, number) and sax->number_integer(static_cast<number_integer_t>(-1) - number); + } + + case 0x3A: // Negative integer -1-n (four-byte uint32_t follows) + { + std::uint32_t number; + return get_number(input_format_t::cbor, number) and sax->number_integer(static_cast<number_integer_t>(-1) - number); + } + + case 0x3B: // Negative integer -1-n (eight-byte uint64_t follows) + { + std::uint64_t number; + return get_number(input_format_t::cbor, number) and sax->number_integer(static_cast<number_integer_t>(-1) + - static_cast<number_integer_t>(number)); + } + + // UTF-8 string (0x00..0x17 bytes follow) + case 0x60: + case 0x61: + case 0x62: + case 0x63: + case 0x64: + case 0x65: + case 0x66: + case 0x67: + case 0x68: + case 0x69: + case 0x6A: + case 0x6B: + case 0x6C: + case 0x6D: + case 0x6E: + case 0x6F: + case 0x70: + case 0x71: + case 0x72: + case 0x73: + case 0x74: + case 0x75: + case 0x76: + case 0x77: + case 0x78: // UTF-8 string (one-byte uint8_t for n follows) + case 0x79: // UTF-8 string (two-byte uint16_t for n follow) + case 0x7A: // UTF-8 string (four-byte uint32_t for n follow) + case 0x7B: // UTF-8 string (eight-byte uint64_t for n follow) + case 0x7F: // UTF-8 string (indefinite length) + { + string_t s; + return get_cbor_string(s) and sax->string(s); + } + + // array (0x00..0x17 data items follow) + case 0x80: + case 0x81: + case 0x82: + case 0x83: + case 0x84: + case 0x85: + case 0x86: + case 0x87: + case 0x88: + case 0x89: + case 0x8A: + case 0x8B: + case 0x8C: + case 0x8D: + case 0x8E: + case 0x8F: + case 0x90: + case 0x91: + case 0x92: + case 0x93: + case 0x94: + case 0x95: + case 0x96: + case 0x97: + return get_cbor_array(static_cast<std::size_t>(static_cast<unsigned int>(current) & 0x1Fu)); + + case 0x98: // array (one-byte uint8_t for n follows) + { + std::uint8_t len; + return get_number(input_format_t::cbor, len) and get_cbor_array(static_cast<std::size_t>(len)); + } + + case 0x99: // array (two-byte uint16_t for n follow) + { + std::uint16_t len; + return get_number(input_format_t::cbor, len) and get_cbor_array(static_cast<std::size_t>(len)); + } + + case 0x9A: // array (four-byte uint32_t for n follow) + { + std::uint32_t len; + return get_number(input_format_t::cbor, len) and get_cbor_array(static_cast<std::size_t>(len)); + } + + case 0x9B: // array (eight-byte uint64_t for n follow) + { + std::uint64_t len; + return get_number(input_format_t::cbor, len) and get_cbor_array(static_cast<std::size_t>(len)); + } + + case 0x9F: // array (indefinite length) + return get_cbor_array(std::size_t(-1)); + + // map (0x00..0x17 pairs of data items follow) + case 0xA0: + case 0xA1: + case 0xA2: + case 0xA3: + case 0xA4: + case 0xA5: + case 0xA6: + case 0xA7: + case 0xA8: + case 0xA9: + case 0xAA: + case 0xAB: + case 0xAC: + case 0xAD: + case 0xAE: + case 0xAF: + case 0xB0: + case 0xB1: + case 0xB2: + case 0xB3: + case 0xB4: + case 0xB5: + case 0xB6: + case 0xB7: + return get_cbor_object(static_cast<std::size_t>(static_cast<unsigned int>(current) & 0x1Fu)); + + case 0xB8: // map (one-byte uint8_t for n follows) + { + std::uint8_t len; + return get_number(input_format_t::cbor, len) and get_cbor_object(static_cast<std::size_t>(len)); + } + + case 0xB9: // map (two-byte uint16_t for n follow) + { + std::uint16_t len; + return get_number(input_format_t::cbor, len) and get_cbor_object(static_cast<std::size_t>(len)); + } + + case 0xBA: // map (four-byte uint32_t for n follow) + { + std::uint32_t len; + return get_number(input_format_t::cbor, len) and get_cbor_object(static_cast<std::size_t>(len)); + } + + case 0xBB: // map (eight-byte uint64_t for n follow) + { + std::uint64_t len; + return get_number(input_format_t::cbor, len) and get_cbor_object(static_cast<std::size_t>(len)); + } + + case 0xBF: // map (indefinite length) + return get_cbor_object(std::size_t(-1)); + + case 0xF4: // false + return sax->boolean(false); + + case 0xF5: // true + return sax->boolean(true); + + case 0xF6: // null + return sax->null(); + + case 0xF9: // Half-Precision Float (two-byte IEEE 754) + { + const int byte1_raw = get(); + if (JSON_UNLIKELY(not unexpect_eof(input_format_t::cbor, "number"))) + { + return false; + } + const int byte2_raw = get(); + if (JSON_UNLIKELY(not unexpect_eof(input_format_t::cbor, "number"))) + { + return false; + } + + const auto byte1 = static_cast<unsigned char>(byte1_raw); + const auto byte2 = static_cast<unsigned char>(byte2_raw); + + // code from RFC 7049, Appendix D, Figure 3: + // As half-precision floating-point numbers were only added + // to IEEE 754 in 2008, today's programming platforms often + // still only have limited support for them. It is very + // easy to include at least decoding support for them even + // without such support. An example of a small decoder for + // half-precision floating-point numbers in the C language + // is shown in Fig. 3. + const auto half = static_cast<unsigned int>((byte1 << 8u) + byte2); + const double val = [&half] + { + const int exp = (half >> 10u) & 0x1Fu; + const unsigned int mant = half & 0x3FFu; + assert(0 <= exp and exp <= 32); + assert(0 <= mant and mant <= 1024); + switch (exp) + { + case 0: + return std::ldexp(mant, -24); + case 31: + return (mant == 0) + ? std::numeric_limits<double>::infinity() + : std::numeric_limits<double>::quiet_NaN(); + default: + return std::ldexp(mant + 1024, exp - 25); + } + }(); + return sax->number_float((half & 0x8000u) != 0 + ? static_cast<number_float_t>(-val) + : static_cast<number_float_t>(val), ""); + } + + case 0xFA: // Single-Precision Float (four-byte IEEE 754) + { + float number; + return get_number(input_format_t::cbor, number) and sax->number_float(static_cast<number_float_t>(number), ""); + } + + case 0xFB: // Double-Precision Float (eight-byte IEEE 754) + { + double number; + return get_number(input_format_t::cbor, number) and sax->number_float(static_cast<number_float_t>(number), ""); + } + + default: // anything else (0xFF is handled inside the other types) + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read, exception_message(input_format_t::cbor, "invalid byte: 0x" + last_token, "value"))); + } + } + } + + /*! + @brief reads a CBOR string + + This function first reads starting bytes to determine the expected + string length and then copies this number of bytes into a string. + Additionally, CBOR's strings with indefinite lengths are supported. + + @param[out] result created string + + @return whether string creation completed + */ + bool get_cbor_string(string_t& result) + { + if (JSON_UNLIKELY(not unexpect_eof(input_format_t::cbor, "string"))) + { + return false; + } + + switch (current) + { + // UTF-8 string (0x00..0x17 bytes follow) + case 0x60: + case 0x61: + case 0x62: + case 0x63: + case 0x64: + case 0x65: + case 0x66: + case 0x67: + case 0x68: + case 0x69: + case 0x6A: + case 0x6B: + case 0x6C: + case 0x6D: + case 0x6E: + case 0x6F: + case 0x70: + case 0x71: + case 0x72: + case 0x73: + case 0x74: + case 0x75: + case 0x76: + case 0x77: + { + return get_string(input_format_t::cbor, static_cast<unsigned int>(current) & 0x1Fu, result); + } + + case 0x78: // UTF-8 string (one-byte uint8_t for n follows) + { + std::uint8_t len; + return get_number(input_format_t::cbor, len) and get_string(input_format_t::cbor, len, result); + } + + case 0x79: // UTF-8 string (two-byte uint16_t for n follow) + { + std::uint16_t len; + return get_number(input_format_t::cbor, len) and get_string(input_format_t::cbor, len, result); + } + + case 0x7A: // UTF-8 string (four-byte uint32_t for n follow) + { + std::uint32_t len; + return get_number(input_format_t::cbor, len) and get_string(input_format_t::cbor, len, result); + } + + case 0x7B: // UTF-8 string (eight-byte uint64_t for n follow) + { + std::uint64_t len; + return get_number(input_format_t::cbor, len) and get_string(input_format_t::cbor, len, result); + } + + case 0x7F: // UTF-8 string (indefinite length) + { + while (get() != 0xFF) + { + string_t chunk; + if (not get_cbor_string(chunk)) + { + return false; + } + result.append(chunk); + } + return true; + } + + default: + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(113, chars_read, exception_message(input_format_t::cbor, "expected length specification (0x60-0x7B) or indefinite string type (0x7F); last byte: 0x" + last_token, "string"))); + } + } + } + + /*! + @param[in] len the length of the array or std::size_t(-1) for an + array of indefinite size + @return whether array creation completed + */ + bool get_cbor_array(const std::size_t len) + { + if (JSON_UNLIKELY(not sax->start_array(len))) + { + return false; + } + + if (len != std::size_t(-1)) + { + for (std::size_t i = 0; i < len; ++i) + { + if (JSON_UNLIKELY(not parse_cbor_internal())) + { + return false; + } + } + } + else + { + while (get() != 0xFF) + { + if (JSON_UNLIKELY(not parse_cbor_internal(false))) + { + return false; + } + } + } + + return sax->end_array(); + } + + /*! + @param[in] len the length of the object or std::size_t(-1) for an + object of indefinite size + @return whether object creation completed + */ + bool get_cbor_object(const std::size_t len) + { + if (JSON_UNLIKELY(not sax->start_object(len))) + { + return false; + } + + string_t key; + if (len != std::size_t(-1)) + { + for (std::size_t i = 0; i < len; ++i) + { + get(); + if (JSON_UNLIKELY(not get_cbor_string(key) or not sax->key(key))) + { + return false; + } + + if (JSON_UNLIKELY(not parse_cbor_internal())) + { + return false; + } + key.clear(); + } + } + else + { + while (get() != 0xFF) + { + if (JSON_UNLIKELY(not get_cbor_string(key) or not sax->key(key))) + { + return false; + } + + if (JSON_UNLIKELY(not parse_cbor_internal())) + { + return false; + } + key.clear(); + } + } + + return sax->end_object(); + } + + ///////////// + // MsgPack // + ///////////// + + /*! + @return whether a valid MessagePack value was passed to the SAX parser + */ + bool parse_msgpack_internal() + { + switch (get()) + { + // EOF + case std::char_traits<char>::eof(): + return unexpect_eof(input_format_t::msgpack, "value"); + + // positive fixint + case 0x00: + case 0x01: + case 0x02: + case 0x03: + case 0x04: + case 0x05: + case 0x06: + case 0x07: + case 0x08: + case 0x09: + case 0x0A: + case 0x0B: + case 0x0C: + case 0x0D: + case 0x0E: + case 0x0F: + case 0x10: + case 0x11: + case 0x12: + case 0x13: + case 0x14: + case 0x15: + case 0x16: + case 0x17: + case 0x18: + case 0x19: + case 0x1A: + case 0x1B: + case 0x1C: + case 0x1D: + case 0x1E: + case 0x1F: + case 0x20: + case 0x21: + case 0x22: + case 0x23: + case 0x24: + case 0x25: + case 0x26: + case 0x27: + case 0x28: + case 0x29: + case 0x2A: + case 0x2B: + case 0x2C: + case 0x2D: + case 0x2E: + case 0x2F: + case 0x30: + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + case 0x38: + case 0x39: + case 0x3A: + case 0x3B: + case 0x3C: + case 0x3D: + case 0x3E: + case 0x3F: + case 0x40: + case 0x41: + case 0x42: + case 0x43: + case 0x44: + case 0x45: + case 0x46: + case 0x47: + case 0x48: + case 0x49: + case 0x4A: + case 0x4B: + case 0x4C: + case 0x4D: + case 0x4E: + case 0x4F: + case 0x50: + case 0x51: + case 0x52: + case 0x53: + case 0x54: + case 0x55: + case 0x56: + case 0x57: + case 0x58: + case 0x59: + case 0x5A: + case 0x5B: + case 0x5C: + case 0x5D: + case 0x5E: + case 0x5F: + case 0x60: + case 0x61: + case 0x62: + case 0x63: + case 0x64: + case 0x65: + case 0x66: + case 0x67: + case 0x68: + case 0x69: + case 0x6A: + case 0x6B: + case 0x6C: + case 0x6D: + case 0x6E: + case 0x6F: + case 0x70: + case 0x71: + case 0x72: + case 0x73: + case 0x74: + case 0x75: + case 0x76: + case 0x77: + case 0x78: + case 0x79: + case 0x7A: + case 0x7B: + case 0x7C: + case 0x7D: + case 0x7E: + case 0x7F: + return sax->number_unsigned(static_cast<number_unsigned_t>(current)); + + // fixmap + case 0x80: + case 0x81: + case 0x82: + case 0x83: + case 0x84: + case 0x85: + case 0x86: + case 0x87: + case 0x88: + case 0x89: + case 0x8A: + case 0x8B: + case 0x8C: + case 0x8D: + case 0x8E: + case 0x8F: + return get_msgpack_object(static_cast<std::size_t>(static_cast<unsigned int>(current) & 0x0Fu)); + + // fixarray + case 0x90: + case 0x91: + case 0x92: + case 0x93: + case 0x94: + case 0x95: + case 0x96: + case 0x97: + case 0x98: + case 0x99: + case 0x9A: + case 0x9B: + case 0x9C: + case 0x9D: + case 0x9E: + case 0x9F: + return get_msgpack_array(static_cast<std::size_t>(static_cast<unsigned int>(current) & 0x0Fu)); + + // fixstr + case 0xA0: + case 0xA1: + case 0xA2: + case 0xA3: + case 0xA4: + case 0xA5: + case 0xA6: + case 0xA7: + case 0xA8: + case 0xA9: + case 0xAA: + case 0xAB: + case 0xAC: + case 0xAD: + case 0xAE: + case 0xAF: + case 0xB0: + case 0xB1: + case 0xB2: + case 0xB3: + case 0xB4: + case 0xB5: + case 0xB6: + case 0xB7: + case 0xB8: + case 0xB9: + case 0xBA: + case 0xBB: + case 0xBC: + case 0xBD: + case 0xBE: + case 0xBF: + { + string_t s; + return get_msgpack_string(s) and sax->string(s); + } + + case 0xC0: // nil + return sax->null(); + + case 0xC2: // false + return sax->boolean(false); + + case 0xC3: // true + return sax->boolean(true); + + case 0xCA: // float 32 + { + float number; + return get_number(input_format_t::msgpack, number) and sax->number_float(static_cast<number_float_t>(number), ""); + } + + case 0xCB: // float 64 + { + double number; + return get_number(input_format_t::msgpack, number) and sax->number_float(static_cast<number_float_t>(number), ""); + } + + case 0xCC: // uint 8 + { + std::uint8_t number; + return get_number(input_format_t::msgpack, number) and sax->number_unsigned(number); + } + + case 0xCD: // uint 16 + { + std::uint16_t number; + return get_number(input_format_t::msgpack, number) and sax->number_unsigned(number); + } + + case 0xCE: // uint 32 + { + std::uint32_t number; + return get_number(input_format_t::msgpack, number) and sax->number_unsigned(number); + } + + case 0xCF: // uint 64 + { + std::uint64_t number; + return get_number(input_format_t::msgpack, number) and sax->number_unsigned(number); + } + + case 0xD0: // int 8 + { + std::int8_t number; + return get_number(input_format_t::msgpack, number) and sax->number_integer(number); + } + + case 0xD1: // int 16 + { + std::int16_t number; + return get_number(input_format_t::msgpack, number) and sax->number_integer(number); + } + + case 0xD2: // int 32 + { + std::int32_t number; + return get_number(input_format_t::msgpack, number) and sax->number_integer(number); + } + + case 0xD3: // int 64 + { + std::int64_t number; + return get_number(input_format_t::msgpack, number) and sax->number_integer(number); + } + + case 0xD9: // str 8 + case 0xDA: // str 16 + case 0xDB: // str 32 + { + string_t s; + return get_msgpack_string(s) and sax->string(s); + } + + case 0xDC: // array 16 + { + std::uint16_t len; + return get_number(input_format_t::msgpack, len) and get_msgpack_array(static_cast<std::size_t>(len)); + } + + case 0xDD: // array 32 + { + std::uint32_t len; + return get_number(input_format_t::msgpack, len) and get_msgpack_array(static_cast<std::size_t>(len)); + } + + case 0xDE: // map 16 + { + std::uint16_t len; + return get_number(input_format_t::msgpack, len) and get_msgpack_object(static_cast<std::size_t>(len)); + } + + case 0xDF: // map 32 + { + std::uint32_t len; + return get_number(input_format_t::msgpack, len) and get_msgpack_object(static_cast<std::size_t>(len)); + } + + // negative fixint + case 0xE0: + case 0xE1: + case 0xE2: + case 0xE3: + case 0xE4: + case 0xE5: + case 0xE6: + case 0xE7: + case 0xE8: + case 0xE9: + case 0xEA: + case 0xEB: + case 0xEC: + case 0xED: + case 0xEE: + case 0xEF: + case 0xF0: + case 0xF1: + case 0xF2: + case 0xF3: + case 0xF4: + case 0xF5: + case 0xF6: + case 0xF7: + case 0xF8: + case 0xF9: + case 0xFA: + case 0xFB: + case 0xFC: + case 0xFD: + case 0xFE: + case 0xFF: + return sax->number_integer(static_cast<std::int8_t>(current)); + + default: // anything else + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read, exception_message(input_format_t::msgpack, "invalid byte: 0x" + last_token, "value"))); + } + } + } + + /*! + @brief reads a MessagePack string + + This function first reads starting bytes to determine the expected + string length and then copies this number of bytes into a string. + + @param[out] result created string + + @return whether string creation completed + */ + bool get_msgpack_string(string_t& result) + { + if (JSON_UNLIKELY(not unexpect_eof(input_format_t::msgpack, "string"))) + { + return false; + } + + switch (current) + { + // fixstr + case 0xA0: + case 0xA1: + case 0xA2: + case 0xA3: + case 0xA4: + case 0xA5: + case 0xA6: + case 0xA7: + case 0xA8: + case 0xA9: + case 0xAA: + case 0xAB: + case 0xAC: + case 0xAD: + case 0xAE: + case 0xAF: + case 0xB0: + case 0xB1: + case 0xB2: + case 0xB3: + case 0xB4: + case 0xB5: + case 0xB6: + case 0xB7: + case 0xB8: + case 0xB9: + case 0xBA: + case 0xBB: + case 0xBC: + case 0xBD: + case 0xBE: + case 0xBF: + { + return get_string(input_format_t::msgpack, static_cast<unsigned int>(current) & 0x1Fu, result); + } + + case 0xD9: // str 8 + { + std::uint8_t len; + return get_number(input_format_t::msgpack, len) and get_string(input_format_t::msgpack, len, result); + } + + case 0xDA: // str 16 + { + std::uint16_t len; + return get_number(input_format_t::msgpack, len) and get_string(input_format_t::msgpack, len, result); + } + + case 0xDB: // str 32 + { + std::uint32_t len; + return get_number(input_format_t::msgpack, len) and get_string(input_format_t::msgpack, len, result); + } + + default: + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(113, chars_read, exception_message(input_format_t::msgpack, "expected length specification (0xA0-0xBF, 0xD9-0xDB); last byte: 0x" + last_token, "string"))); + } + } + } + + /*! + @param[in] len the length of the array + @return whether array creation completed + */ + bool get_msgpack_array(const std::size_t len) + { + if (JSON_UNLIKELY(not sax->start_array(len))) + { + return false; + } + + for (std::size_t i = 0; i < len; ++i) + { + if (JSON_UNLIKELY(not parse_msgpack_internal())) + { + return false; + } + } + + return sax->end_array(); + } + + /*! + @param[in] len the length of the object + @return whether object creation completed + */ + bool get_msgpack_object(const std::size_t len) + { + if (JSON_UNLIKELY(not sax->start_object(len))) + { + return false; + } + + string_t key; + for (std::size_t i = 0; i < len; ++i) + { + get(); + if (JSON_UNLIKELY(not get_msgpack_string(key) or not sax->key(key))) + { + return false; + } + + if (JSON_UNLIKELY(not parse_msgpack_internal())) + { + return false; + } + key.clear(); + } + + return sax->end_object(); + } + + //////////// + // UBJSON // + //////////// + + /*! + @param[in] get_char whether a new character should be retrieved from the + input (true, default) or whether the last read + character should be considered instead + + @return whether a valid UBJSON value was passed to the SAX parser + */ + bool parse_ubjson_internal(const bool get_char = true) + { + return get_ubjson_value(get_char ? get_ignore_noop() : current); + } + + /*! + @brief reads a UBJSON string + + This function is either called after reading the 'S' byte explicitly + indicating a string, or in case of an object key where the 'S' byte can be + left out. + + @param[out] result created string + @param[in] get_char whether a new character should be retrieved from the + input (true, default) or whether the last read + character should be considered instead + + @return whether string creation completed + */ + bool get_ubjson_string(string_t& result, const bool get_char = true) + { + if (get_char) + { + get(); // TODO(niels): may we ignore N here? + } + + if (JSON_UNLIKELY(not unexpect_eof(input_format_t::ubjson, "value"))) + { + return false; + } + + switch (current) + { + case 'U': + { + std::uint8_t len; + return get_number(input_format_t::ubjson, len) and get_string(input_format_t::ubjson, len, result); + } + + case 'i': + { + std::int8_t len; + return get_number(input_format_t::ubjson, len) and get_string(input_format_t::ubjson, len, result); + } + + case 'I': + { + std::int16_t len; + return get_number(input_format_t::ubjson, len) and get_string(input_format_t::ubjson, len, result); + } + + case 'l': + { + std::int32_t len; + return get_number(input_format_t::ubjson, len) and get_string(input_format_t::ubjson, len, result); + } + + case 'L': + { + std::int64_t len; + return get_number(input_format_t::ubjson, len) and get_string(input_format_t::ubjson, len, result); + } + + default: + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(113, chars_read, exception_message(input_format_t::ubjson, "expected length type specification (U, i, I, l, L); last byte: 0x" + last_token, "string"))); + } + } + + /*! + @param[out] result determined size + @return whether size determination completed + */ + bool get_ubjson_size_value(std::size_t& result) + { + switch (get_ignore_noop()) + { + case 'U': + { + std::uint8_t number; + if (JSON_UNLIKELY(not get_number(input_format_t::ubjson, number))) + { + return false; + } + result = static_cast<std::size_t>(number); + return true; + } + + case 'i': + { + std::int8_t number; + if (JSON_UNLIKELY(not get_number(input_format_t::ubjson, number))) + { + return false; + } + result = static_cast<std::size_t>(number); + return true; + } + + case 'I': + { + std::int16_t number; + if (JSON_UNLIKELY(not get_number(input_format_t::ubjson, number))) + { + return false; + } + result = static_cast<std::size_t>(number); + return true; + } + + case 'l': + { + std::int32_t number; + if (JSON_UNLIKELY(not get_number(input_format_t::ubjson, number))) + { + return false; + } + result = static_cast<std::size_t>(number); + return true; + } + + case 'L': + { + std::int64_t number; + if (JSON_UNLIKELY(not get_number(input_format_t::ubjson, number))) + { + return false; + } + result = static_cast<std::size_t>(number); + return true; + } + + default: + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(113, chars_read, exception_message(input_format_t::ubjson, "expected length type specification (U, i, I, l, L) after '#'; last byte: 0x" + last_token, "size"))); + } + } + } + + /*! + @brief determine the type and size for a container + + In the optimized UBJSON format, a type and a size can be provided to allow + for a more compact representation. + + @param[out] result pair of the size and the type + + @return whether pair creation completed + */ + bool get_ubjson_size_type(std::pair<std::size_t, int>& result) + { + result.first = string_t::npos; // size + result.second = 0; // type + + get_ignore_noop(); + + if (current == '$') + { + result.second = get(); // must not ignore 'N', because 'N' maybe the type + if (JSON_UNLIKELY(not unexpect_eof(input_format_t::ubjson, "type"))) + { + return false; + } + + get_ignore_noop(); + if (JSON_UNLIKELY(current != '#')) + { + if (JSON_UNLIKELY(not unexpect_eof(input_format_t::ubjson, "value"))) + { + return false; + } + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read, exception_message(input_format_t::ubjson, "expected '#' after type information; last byte: 0x" + last_token, "size"))); + } + + return get_ubjson_size_value(result.first); + } + + if (current == '#') + { + return get_ubjson_size_value(result.first); + } + + return true; + } + + /*! + @param prefix the previously read or set type prefix + @return whether value creation completed + */ + bool get_ubjson_value(const int prefix) + { + switch (prefix) + { + case std::char_traits<char>::eof(): // EOF + return unexpect_eof(input_format_t::ubjson, "value"); + + case 'T': // true + return sax->boolean(true); + case 'F': // false + return sax->boolean(false); + + case 'Z': // null + return sax->null(); + + case 'U': + { + std::uint8_t number; + return get_number(input_format_t::ubjson, number) and sax->number_unsigned(number); + } + + case 'i': + { + std::int8_t number; + return get_number(input_format_t::ubjson, number) and sax->number_integer(number); + } + + case 'I': + { + std::int16_t number; + return get_number(input_format_t::ubjson, number) and sax->number_integer(number); + } + + case 'l': + { + std::int32_t number; + return get_number(input_format_t::ubjson, number) and sax->number_integer(number); + } + + case 'L': + { + std::int64_t number; + return get_number(input_format_t::ubjson, number) and sax->number_integer(number); + } + + case 'd': + { + float number; + return get_number(input_format_t::ubjson, number) and sax->number_float(static_cast<number_float_t>(number), ""); + } + + case 'D': + { + double number; + return get_number(input_format_t::ubjson, number) and sax->number_float(static_cast<number_float_t>(number), ""); + } + + case 'C': // char + { + get(); + if (JSON_UNLIKELY(not unexpect_eof(input_format_t::ubjson, "char"))) + { + return false; + } + if (JSON_UNLIKELY(current > 127)) + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(113, chars_read, exception_message(input_format_t::ubjson, "byte after 'C' must be in range 0x00..0x7F; last byte: 0x" + last_token, "char"))); + } + string_t s(1, static_cast<char>(current)); + return sax->string(s); + } + + case 'S': // string + { + string_t s; + return get_ubjson_string(s) and sax->string(s); + } + + case '[': // array + return get_ubjson_array(); + + case '{': // object + return get_ubjson_object(); + + default: // anything else + { + auto last_token = get_token_string(); + return sax->parse_error(chars_read, last_token, parse_error::create(112, chars_read, exception_message(input_format_t::ubjson, "invalid byte: 0x" + last_token, "value"))); + } + } + } + + /*! + @return whether array creation completed + */ + bool get_ubjson_array() + { + std::pair<std::size_t, int> size_and_type; + if (JSON_UNLIKELY(not get_ubjson_size_type(size_and_type))) + { + return false; + } + + if (size_and_type.first != string_t::npos) + { + if (JSON_UNLIKELY(not sax->start_array(size_and_type.first))) + { + return false; + } + + if (size_and_type.second != 0) + { + if (size_and_type.second != 'N') + { + for (std::size_t i = 0; i < size_and_type.first; ++i) + { + if (JSON_UNLIKELY(not get_ubjson_value(size_and_type.second))) + { + return false; + } + } + } + } + else + { + for (std::size_t i = 0; i < size_and_type.first; ++i) + { + if (JSON_UNLIKELY(not parse_ubjson_internal())) + { + return false; + } + } + } + } + else + { + if (JSON_UNLIKELY(not sax->start_array(std::size_t(-1)))) + { + return false; + } + + while (current != ']') + { + if (JSON_UNLIKELY(not parse_ubjson_internal(false))) + { + return false; + } + get_ignore_noop(); + } + } + + return sax->end_array(); + } + + /*! + @return whether object creation completed + */ + bool get_ubjson_object() + { + std::pair<std::size_t, int> size_and_type; + if (JSON_UNLIKELY(not get_ubjson_size_type(size_and_type))) + { + return false; + } + + string_t key; + if (size_and_type.first != string_t::npos) + { + if (JSON_UNLIKELY(not sax->start_object(size_and_type.first))) + { + return false; + } + + if (size_and_type.second != 0) + { + for (std::size_t i = 0; i < size_and_type.first; ++i) + { + if (JSON_UNLIKELY(not get_ubjson_string(key) or not sax->key(key))) + { + return false; + } + if (JSON_UNLIKELY(not get_ubjson_value(size_and_type.second))) + { + return false; + } + key.clear(); + } + } + else + { + for (std::size_t i = 0; i < size_and_type.first; ++i) + { + if (JSON_UNLIKELY(not get_ubjson_string(key) or not sax->key(key))) + { + return false; + } + if (JSON_UNLIKELY(not parse_ubjson_internal())) + { + return false; + } + key.clear(); + } + } + } + else + { + if (JSON_UNLIKELY(not sax->start_object(std::size_t(-1)))) + { + return false; + } + + while (current != '}') + { + if (JSON_UNLIKELY(not get_ubjson_string(key, false) or not sax->key(key))) + { + return false; + } + if (JSON_UNLIKELY(not parse_ubjson_internal())) + { + return false; + } + get_ignore_noop(); + key.clear(); + } + } + + return sax->end_object(); + } + + /////////////////////// + // Utility functions // + /////////////////////// + + /*! + @brief get next character from the input + + This function provides the interface to the used input adapter. It does + not throw in case the input reached EOF, but returns a -'ve valued + `std::char_traits<char>::eof()` in that case. + + @return character read from the input + */ + int get() + { + ++chars_read; + return current = ia->get_character(); + } + + /*! + @return character read from the input after ignoring all 'N' entries + */ + int get_ignore_noop() + { + do + { + get(); + } + while (current == 'N'); + + return current; + } + + /* + @brief read a number from the input + + @tparam NumberType the type of the number + @param[in] format the current format (for diagnostics) + @param[out] result number of type @a NumberType + + @return whether conversion completed + + @note This function needs to respect the system's endianess, because + bytes in CBOR, MessagePack, and UBJSON are stored in network order + (big endian) and therefore need reordering on little endian systems. + */ + template<typename NumberType, bool InputIsLittleEndian = false> + bool get_number(const input_format_t format, NumberType& result) + { + // step 1: read input into array with system's byte order + std::array<std::uint8_t, sizeof(NumberType)> vec; + for (std::size_t i = 0; i < sizeof(NumberType); ++i) + { + get(); + if (JSON_UNLIKELY(not unexpect_eof(format, "number"))) + { + return false; + } + + // reverse byte order prior to conversion if necessary + if (is_little_endian != InputIsLittleEndian) + { + vec[sizeof(NumberType) - i - 1] = static_cast<std::uint8_t>(current); + } + else + { + vec[i] = static_cast<std::uint8_t>(current); // LCOV_EXCL_LINE + } + } + + // step 2: convert array into number of type T and return + std::memcpy(&result, vec.data(), sizeof(NumberType)); + return true; + } + + /*! + @brief create a string by reading characters from the input + + @tparam NumberType the type of the number + @param[in] format the current format (for diagnostics) + @param[in] len number of characters to read + @param[out] result string created by reading @a len bytes + + @return whether string creation completed + + @note We can not reserve @a len bytes for the result, because @a len + may be too large. Usually, @ref unexpect_eof() detects the end of + the input before we run out of string memory. + */ + template<typename NumberType> + bool get_string(const input_format_t format, + const NumberType len, + string_t& result) + { + bool success = true; + std::generate_n(std::back_inserter(result), len, [this, &success, &format]() + { + get(); + if (JSON_UNLIKELY(not unexpect_eof(format, "string"))) + { + success = false; + } + return static_cast<char>(current); + }); + return success; + } + + /*! + @param[in] format the current format (for diagnostics) + @param[in] context further context information (for diagnostics) + @return whether the last read character is not EOF + */ + bool unexpect_eof(const input_format_t format, const char* context) const + { + if (JSON_UNLIKELY(current == std::char_traits<char>::eof())) + { + return sax->parse_error(chars_read, "<end of file>", + parse_error::create(110, chars_read, exception_message(format, "unexpected end of input", context))); + } + return true; + } + + /*! + @return a string representation of the last read byte + */ + std::string get_token_string() const + { + std::array<char, 3> cr{{}}; + (std::snprintf)(cr.data(), cr.size(), "%.2hhX", static_cast<unsigned char>(current)); + return std::string{cr.data()}; + } + + /*! + @param[in] format the current format + @param[in] detail a detailed error message + @param[in] context further contect information + @return a message string to use in the parse_error exceptions + */ + std::string exception_message(const input_format_t format, + const std::string& detail, + const std::string& context) const + { + std::string error_msg = "syntax error while parsing "; + + switch (format) + { + case input_format_t::cbor: + error_msg += "CBOR"; + break; + + case input_format_t::msgpack: + error_msg += "MessagePack"; + break; + + case input_format_t::ubjson: + error_msg += "UBJSON"; + break; + + case input_format_t::bson: + error_msg += "BSON"; + break; + + default: // LCOV_EXCL_LINE + assert(false); // LCOV_EXCL_LINE + } + + return error_msg + " " + context + ": " + detail; + } + + private: + /// input adapter + input_adapter_t ia = nullptr; + + /// the current character + int current = std::char_traits<char>::eof(); + + /// the number of characters read + std::size_t chars_read = 0; + + /// whether we can assume little endianess + const bool is_little_endian = little_endianess(); + + /// the SAX parser + json_sax_t* sax = nullptr; +}; +} // namespace detail +} // namespace nlohmann + +// #include <nlohmann/detail/input/input_adapters.hpp> + +// #include <nlohmann/detail/input/lexer.hpp> + + +#include <array> // array +#include <clocale> // localeconv +#include <cstddef> // size_t +#include <cstdio> // snprintf +#include <cstdlib> // strtof, strtod, strtold, strtoll, strtoull +#include <initializer_list> // initializer_list +#include <string> // char_traits, string +#include <utility> // move +#include <vector> // vector + +// #include <nlohmann/detail/input/input_adapters.hpp> + +// #include <nlohmann/detail/input/position_t.hpp> + +// #include <nlohmann/detail/macro_scope.hpp> + + +namespace nlohmann +{ +namespace detail +{ +/////////// +// lexer // +/////////// + +/*! +@brief lexical analysis + +This class organizes the lexical analysis during JSON deserialization. +*/ +template<typename BasicJsonType> +class lexer +{ + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + + public: + /// token types for the parser + enum class token_type + { + uninitialized, ///< indicating the scanner is uninitialized + literal_true, ///< the `true` literal + literal_false, ///< the `false` literal + literal_null, ///< the `null` literal + value_string, ///< a string -- use get_string() for actual value + value_unsigned, ///< an unsigned integer -- use get_number_unsigned() for actual value + value_integer, ///< a signed integer -- use get_number_integer() for actual value + value_float, ///< an floating point number -- use get_number_float() for actual value + begin_array, ///< the character for array begin `[` + begin_object, ///< the character for object begin `{` + end_array, ///< the character for array end `]` + end_object, ///< the character for object end `}` + name_separator, ///< the name separator `:` + value_separator, ///< the value separator `,` + parse_error, ///< indicating a parse error + end_of_input, ///< indicating the end of the input buffer + literal_or_value ///< a literal or the begin of a value (only for diagnostics) + }; + + /// return name of values of type token_type (only used for errors) + static const char* token_type_name(const token_type t) noexcept + { + switch (t) + { + case token_type::uninitialized: + return "<uninitialized>"; + case token_type::literal_true: + return "true literal"; + case token_type::literal_false: + return "false literal"; + case token_type::literal_null: + return "null literal"; + case token_type::value_string: + return "string literal"; + case lexer::token_type::value_unsigned: + case lexer::token_type::value_integer: + case lexer::token_type::value_float: + return "number literal"; + case token_type::begin_array: + return "'['"; + case token_type::begin_object: + return "'{'"; + case token_type::end_array: + return "']'"; + case token_type::end_object: + return "'}'"; + case token_type::name_separator: + return "':'"; + case token_type::value_separator: + return "','"; + case token_type::parse_error: + return "<parse error>"; + case token_type::end_of_input: + return "end of input"; + case token_type::literal_or_value: + return "'[', '{', or a literal"; + // LCOV_EXCL_START + default: // catch non-enum values + return "unknown token"; + // LCOV_EXCL_STOP + } + } + + explicit lexer(detail::input_adapter_t&& adapter) + : ia(std::move(adapter)), decimal_point_char(get_decimal_point()) {} + + // delete because of pointer members + lexer(const lexer&) = delete; + lexer(lexer&&) = delete; + lexer& operator=(lexer&) = delete; + lexer& operator=(lexer&&) = delete; + ~lexer() = default; + + private: + ///////////////////// + // locales + ///////////////////// + + /// return the locale-dependent decimal point + static char get_decimal_point() noexcept + { + const auto loc = localeconv(); + assert(loc != nullptr); + return (loc->decimal_point == nullptr) ? '.' : *(loc->decimal_point); + } + + ///////////////////// + // scan functions + ///////////////////// + + /*! + @brief get codepoint from 4 hex characters following `\u` + + For input "\u c1 c2 c3 c4" the codepoint is: + (c1 * 0x1000) + (c2 * 0x0100) + (c3 * 0x0010) + c4 + = (c1 << 12) + (c2 << 8) + (c3 << 4) + (c4 << 0) + + Furthermore, the possible characters '0'..'9', 'A'..'F', and 'a'..'f' + must be converted to the integers 0x0..0x9, 0xA..0xF, 0xA..0xF, resp. The + conversion is done by subtracting the offset (0x30, 0x37, and 0x57) + between the ASCII value of the character and the desired integer value. + + @return codepoint (0x0000..0xFFFF) or -1 in case of an error (e.g. EOF or + non-hex character) + */ + int get_codepoint() + { + // this function only makes sense after reading `\u` + assert(current == 'u'); + int codepoint = 0; + + const auto factors = { 12u, 8u, 4u, 0u }; + for (const auto factor : factors) + { + get(); + + if (current >= '0' and current <= '9') + { + codepoint += static_cast<int>((static_cast<unsigned int>(current) - 0x30u) << factor); + } + else if (current >= 'A' and current <= 'F') + { + codepoint += static_cast<int>((static_cast<unsigned int>(current) - 0x37u) << factor); + } + else if (current >= 'a' and current <= 'f') + { + codepoint += static_cast<int>((static_cast<unsigned int>(current) - 0x57u) << factor); + } + else + { + return -1; + } + } + + assert(0x0000 <= codepoint and codepoint <= 0xFFFF); + return codepoint; + } + + /*! + @brief check if the next byte(s) are inside a given range + + Adds the current byte and, for each passed range, reads a new byte and + checks if it is inside the range. If a violation was detected, set up an + error message and return false. Otherwise, return true. + + @param[in] ranges list of integers; interpreted as list of pairs of + inclusive lower and upper bound, respectively + + @pre The passed list @a ranges must have 2, 4, or 6 elements; that is, + 1, 2, or 3 pairs. This precondition is enforced by an assertion. + + @return true if and only if no range violation was detected + */ + bool next_byte_in_range(std::initializer_list<int> ranges) + { + assert(ranges.size() == 2 or ranges.size() == 4 or ranges.size() == 6); + add(current); + + for (auto range = ranges.begin(); range != ranges.end(); ++range) + { + get(); + if (JSON_LIKELY(*range <= current and current <= *(++range))) + { + add(current); + } + else + { + error_message = "invalid string: ill-formed UTF-8 byte"; + return false; + } + } + + return true; + } + + /*! + @brief scan a string literal + + This function scans a string according to Sect. 7 of RFC 7159. While + scanning, bytes are escaped and copied into buffer token_buffer. Then the + function returns successfully, token_buffer is *not* null-terminated (as it + may contain \0 bytes), and token_buffer.size() is the number of bytes in the + string. + + @return token_type::value_string if string could be successfully scanned, + token_type::parse_error otherwise + + @note In case of errors, variable error_message contains a textual + description. + */ + token_type scan_string() + { + // reset token_buffer (ignore opening quote) + reset(); + + // we entered the function by reading an open quote + assert(current == '\"'); + + while (true) + { + // get next character + switch (get()) + { + // end of file while parsing string + case std::char_traits<char>::eof(): + { + error_message = "invalid string: missing closing quote"; + return token_type::parse_error; + } + + // closing quote + case '\"': + { + return token_type::value_string; + } + + // escapes + case '\\': + { + switch (get()) + { + // quotation mark + case '\"': + add('\"'); + break; + // reverse solidus + case '\\': + add('\\'); + break; + // solidus + case '/': + add('/'); + break; + // backspace + case 'b': + add('\b'); + break; + // form feed + case 'f': + add('\f'); + break; + // line feed + case 'n': + add('\n'); + break; + // carriage return + case 'r': + add('\r'); + break; + // tab + case 't': + add('\t'); + break; + + // unicode escapes + case 'u': + { + const int codepoint1 = get_codepoint(); + int codepoint = codepoint1; // start with codepoint1 + + if (JSON_UNLIKELY(codepoint1 == -1)) + { + error_message = "invalid string: '\\u' must be followed by 4 hex digits"; + return token_type::parse_error; + } + + // check if code point is a high surrogate + if (0xD800 <= codepoint1 and codepoint1 <= 0xDBFF) + { + // expect next \uxxxx entry + if (JSON_LIKELY(get() == '\\' and get() == 'u')) + { + const int codepoint2 = get_codepoint(); + + if (JSON_UNLIKELY(codepoint2 == -1)) + { + error_message = "invalid string: '\\u' must be followed by 4 hex digits"; + return token_type::parse_error; + } + + // check if codepoint2 is a low surrogate + if (JSON_LIKELY(0xDC00 <= codepoint2 and codepoint2 <= 0xDFFF)) + { + // overwrite codepoint + codepoint = static_cast<int>( + // high surrogate occupies the most significant 22 bits + (static_cast<unsigned int>(codepoint1) << 10u) + // low surrogate occupies the least significant 15 bits + + static_cast<unsigned int>(codepoint2) + // there is still the 0xD800, 0xDC00 and 0x10000 noise + // in the result so we have to subtract with: + // (0xD800 << 10) + DC00 - 0x10000 = 0x35FDC00 + - 0x35FDC00u); + } + else + { + error_message = "invalid string: surrogate U+DC00..U+DFFF must be followed by U+DC00..U+DFFF"; + return token_type::parse_error; + } + } + else + { + error_message = "invalid string: surrogate U+DC00..U+DFFF must be followed by U+DC00..U+DFFF"; + return token_type::parse_error; + } + } + else + { + if (JSON_UNLIKELY(0xDC00 <= codepoint1 and codepoint1 <= 0xDFFF)) + { + error_message = "invalid string: surrogate U+DC00..U+DFFF must follow U+D800..U+DBFF"; + return token_type::parse_error; + } + } + + // result of the above calculation yields a proper codepoint + assert(0x00 <= codepoint and codepoint <= 0x10FFFF); + + // translate codepoint into bytes + if (codepoint < 0x80) + { + // 1-byte characters: 0xxxxxxx (ASCII) + add(codepoint); + } + else if (codepoint <= 0x7FF) + { + // 2-byte characters: 110xxxxx 10xxxxxx + add(static_cast<int>(0xC0u | (static_cast<unsigned int>(codepoint) >> 6u))); + add(static_cast<int>(0x80u | (static_cast<unsigned int>(codepoint) & 0x3Fu))); + } + else if (codepoint <= 0xFFFF) + { + // 3-byte characters: 1110xxxx 10xxxxxx 10xxxxxx + add(static_cast<int>(0xE0u | (static_cast<unsigned int>(codepoint) >> 12u))); + add(static_cast<int>(0x80u | ((static_cast<unsigned int>(codepoint) >> 6u) & 0x3Fu))); + add(static_cast<int>(0x80u | (static_cast<unsigned int>(codepoint) & 0x3Fu))); + } + else + { + // 4-byte characters: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx + add(static_cast<int>(0xF0u | (static_cast<unsigned int>(codepoint) >> 18u))); + add(static_cast<int>(0x80u | ((static_cast<unsigned int>(codepoint) >> 12u) & 0x3Fu))); + add(static_cast<int>(0x80u | ((static_cast<unsigned int>(codepoint) >> 6u) & 0x3Fu))); + add(static_cast<int>(0x80u | (static_cast<unsigned int>(codepoint) & 0x3Fu))); + } + + break; + } + + // other characters after escape + default: + error_message = "invalid string: forbidden character after backslash"; + return token_type::parse_error; + } + + break; + } + + // invalid control characters + case 0x00: + { + error_message = "invalid string: control character U+0000 (NUL) must be escaped to \\u0000"; + return token_type::parse_error; + } + + case 0x01: + { + error_message = "invalid string: control character U+0001 (SOH) must be escaped to \\u0001"; + return token_type::parse_error; + } + + case 0x02: + { + error_message = "invalid string: control character U+0002 (STX) must be escaped to \\u0002"; + return token_type::parse_error; + } + + case 0x03: + { + error_message = "invalid string: control character U+0003 (ETX) must be escaped to \\u0003"; + return token_type::parse_error; + } + + case 0x04: + { + error_message = "invalid string: control character U+0004 (EOT) must be escaped to \\u0004"; + return token_type::parse_error; + } + + case 0x05: + { + error_message = "invalid string: control character U+0005 (ENQ) must be escaped to \\u0005"; + return token_type::parse_error; + } + + case 0x06: + { + error_message = "invalid string: control character U+0006 (ACK) must be escaped to \\u0006"; + return token_type::parse_error; + } + + case 0x07: + { + error_message = "invalid string: control character U+0007 (BEL) must be escaped to \\u0007"; + return token_type::parse_error; + } + + case 0x08: + { + error_message = "invalid string: control character U+0008 (BS) must be escaped to \\u0008 or \\b"; + return token_type::parse_error; + } + + case 0x09: + { + error_message = "invalid string: control character U+0009 (HT) must be escaped to \\u0009 or \\t"; + return token_type::parse_error; + } + + case 0x0A: + { + error_message = "invalid string: control character U+000A (LF) must be escaped to \\u000A or \\n"; + return token_type::parse_error; + } + + case 0x0B: + { + error_message = "invalid string: control character U+000B (VT) must be escaped to \\u000B"; + return token_type::parse_error; + } + + case 0x0C: + { + error_message = "invalid string: control character U+000C (FF) must be escaped to \\u000C or \\f"; + return token_type::parse_error; + } + + case 0x0D: + { + error_message = "invalid string: control character U+000D (CR) must be escaped to \\u000D or \\r"; + return token_type::parse_error; + } + + case 0x0E: + { + error_message = "invalid string: control character U+000E (SO) must be escaped to \\u000E"; + return token_type::parse_error; + } + + case 0x0F: + { + error_message = "invalid string: control character U+000F (SI) must be escaped to \\u000F"; + return token_type::parse_error; + } + + case 0x10: + { + error_message = "invalid string: control character U+0010 (DLE) must be escaped to \\u0010"; + return token_type::parse_error; + } + + case 0x11: + { + error_message = "invalid string: control character U+0011 (DC1) must be escaped to \\u0011"; + return token_type::parse_error; + } + + case 0x12: + { + error_message = "invalid string: control character U+0012 (DC2) must be escaped to \\u0012"; + return token_type::parse_error; + } + + case 0x13: + { + error_message = "invalid string: control character U+0013 (DC3) must be escaped to \\u0013"; + return token_type::parse_error; + } + + case 0x14: + { + error_message = "invalid string: control character U+0014 (DC4) must be escaped to \\u0014"; + return token_type::parse_error; + } + + case 0x15: + { + error_message = "invalid string: control character U+0015 (NAK) must be escaped to \\u0015"; + return token_type::parse_error; + } + + case 0x16: + { + error_message = "invalid string: control character U+0016 (SYN) must be escaped to \\u0016"; + return token_type::parse_error; + } + + case 0x17: + { + error_message = "invalid string: control character U+0017 (ETB) must be escaped to \\u0017"; + return token_type::parse_error; + } + + case 0x18: + { + error_message = "invalid string: control character U+0018 (CAN) must be escaped to \\u0018"; + return token_type::parse_error; + } + + case 0x19: + { + error_message = "invalid string: control character U+0019 (EM) must be escaped to \\u0019"; + return token_type::parse_error; + } + + case 0x1A: + { + error_message = "invalid string: control character U+001A (SUB) must be escaped to \\u001A"; + return token_type::parse_error; + } + + case 0x1B: + { + error_message = "invalid string: control character U+001B (ESC) must be escaped to \\u001B"; + return token_type::parse_error; + } + + case 0x1C: + { + error_message = "invalid string: control character U+001C (FS) must be escaped to \\u001C"; + return token_type::parse_error; + } + + case 0x1D: + { + error_message = "invalid string: control character U+001D (GS) must be escaped to \\u001D"; + return token_type::parse_error; + } + + case 0x1E: + { + error_message = "invalid string: control character U+001E (RS) must be escaped to \\u001E"; + return token_type::parse_error; + } + + case 0x1F: + { + error_message = "invalid string: control character U+001F (US) must be escaped to \\u001F"; + return token_type::parse_error; + } + + // U+0020..U+007F (except U+0022 (quote) and U+005C (backspace)) + case 0x20: + case 0x21: + case 0x23: + case 0x24: + case 0x25: + case 0x26: + case 0x27: + case 0x28: + case 0x29: + case 0x2A: + case 0x2B: + case 0x2C: + case 0x2D: + case 0x2E: + case 0x2F: + case 0x30: + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + case 0x38: + case 0x39: + case 0x3A: + case 0x3B: + case 0x3C: + case 0x3D: + case 0x3E: + case 0x3F: + case 0x40: + case 0x41: + case 0x42: + case 0x43: + case 0x44: + case 0x45: + case 0x46: + case 0x47: + case 0x48: + case 0x49: + case 0x4A: + case 0x4B: + case 0x4C: + case 0x4D: + case 0x4E: + case 0x4F: + case 0x50: + case 0x51: + case 0x52: + case 0x53: + case 0x54: + case 0x55: + case 0x56: + case 0x57: + case 0x58: + case 0x59: + case 0x5A: + case 0x5B: + case 0x5D: + case 0x5E: + case 0x5F: + case 0x60: + case 0x61: + case 0x62: + case 0x63: + case 0x64: + case 0x65: + case 0x66: + case 0x67: + case 0x68: + case 0x69: + case 0x6A: + case 0x6B: + case 0x6C: + case 0x6D: + case 0x6E: + case 0x6F: + case 0x70: + case 0x71: + case 0x72: + case 0x73: + case 0x74: + case 0x75: + case 0x76: + case 0x77: + case 0x78: + case 0x79: + case 0x7A: + case 0x7B: + case 0x7C: + case 0x7D: + case 0x7E: + case 0x7F: + { + add(current); + break; + } + + // U+0080..U+07FF: bytes C2..DF 80..BF + case 0xC2: + case 0xC3: + case 0xC4: + case 0xC5: + case 0xC6: + case 0xC7: + case 0xC8: + case 0xC9: + case 0xCA: + case 0xCB: + case 0xCC: + case 0xCD: + case 0xCE: + case 0xCF: + case 0xD0: + case 0xD1: + case 0xD2: + case 0xD3: + case 0xD4: + case 0xD5: + case 0xD6: + case 0xD7: + case 0xD8: + case 0xD9: + case 0xDA: + case 0xDB: + case 0xDC: + case 0xDD: + case 0xDE: + case 0xDF: + { + if (JSON_UNLIKELY(not next_byte_in_range({0x80, 0xBF}))) + { + return token_type::parse_error; + } + break; + } + + // U+0800..U+0FFF: bytes E0 A0..BF 80..BF + case 0xE0: + { + if (JSON_UNLIKELY(not (next_byte_in_range({0xA0, 0xBF, 0x80, 0xBF})))) + { + return token_type::parse_error; + } + break; + } + + // U+1000..U+CFFF: bytes E1..EC 80..BF 80..BF + // U+E000..U+FFFF: bytes EE..EF 80..BF 80..BF + case 0xE1: + case 0xE2: + case 0xE3: + case 0xE4: + case 0xE5: + case 0xE6: + case 0xE7: + case 0xE8: + case 0xE9: + case 0xEA: + case 0xEB: + case 0xEC: + case 0xEE: + case 0xEF: + { + if (JSON_UNLIKELY(not (next_byte_in_range({0x80, 0xBF, 0x80, 0xBF})))) + { + return token_type::parse_error; + } + break; + } + + // U+D000..U+D7FF: bytes ED 80..9F 80..BF + case 0xED: + { + if (JSON_UNLIKELY(not (next_byte_in_range({0x80, 0x9F, 0x80, 0xBF})))) + { + return token_type::parse_error; + } + break; + } + + // U+10000..U+3FFFF F0 90..BF 80..BF 80..BF + case 0xF0: + { + if (JSON_UNLIKELY(not (next_byte_in_range({0x90, 0xBF, 0x80, 0xBF, 0x80, 0xBF})))) + { + return token_type::parse_error; + } + break; + } + + // U+40000..U+FFFFF F1..F3 80..BF 80..BF 80..BF + case 0xF1: + case 0xF2: + case 0xF3: + { + if (JSON_UNLIKELY(not (next_byte_in_range({0x80, 0xBF, 0x80, 0xBF, 0x80, 0xBF})))) + { + return token_type::parse_error; + } + break; + } + + // U+100000..U+10FFFF F4 80..8F 80..BF 80..BF + case 0xF4: + { + if (JSON_UNLIKELY(not (next_byte_in_range({0x80, 0x8F, 0x80, 0xBF, 0x80, 0xBF})))) + { + return token_type::parse_error; + } + break; + } + + // remaining bytes (80..C1 and F5..FF) are ill-formed + default: + { + error_message = "invalid string: ill-formed UTF-8 byte"; + return token_type::parse_error; + } + } + } + } + + static void strtof(float& f, const char* str, char** endptr) noexcept + { + f = std::strtof(str, endptr); + } + + static void strtof(double& f, const char* str, char** endptr) noexcept + { + f = std::strtod(str, endptr); + } + + static void strtof(long double& f, const char* str, char** endptr) noexcept + { + f = std::strtold(str, endptr); + } + + /*! + @brief scan a number literal + + This function scans a string according to Sect. 6 of RFC 7159. + + The function is realized with a deterministic finite state machine derived + from the grammar described in RFC 7159. Starting in state "init", the + input is read and used to determined the next state. Only state "done" + accepts the number. State "error" is a trap state to model errors. In the + table below, "anything" means any character but the ones listed before. + + state | 0 | 1-9 | e E | + | - | . | anything + ---------|----------|----------|----------|---------|---------|----------|----------- + init | zero | any1 | [error] | [error] | minus | [error] | [error] + minus | zero | any1 | [error] | [error] | [error] | [error] | [error] + zero | done | done | exponent | done | done | decimal1 | done + any1 | any1 | any1 | exponent | done | done | decimal1 | done + decimal1 | decimal2 | [error] | [error] | [error] | [error] | [error] | [error] + decimal2 | decimal2 | decimal2 | exponent | done | done | done | done + exponent | any2 | any2 | [error] | sign | sign | [error] | [error] + sign | any2 | any2 | [error] | [error] | [error] | [error] | [error] + any2 | any2 | any2 | done | done | done | done | done + + The state machine is realized with one label per state (prefixed with + "scan_number_") and `goto` statements between them. The state machine + contains cycles, but any cycle can be left when EOF is read. Therefore, + the function is guaranteed to terminate. + + During scanning, the read bytes are stored in token_buffer. This string is + then converted to a signed integer, an unsigned integer, or a + floating-point number. + + @return token_type::value_unsigned, token_type::value_integer, or + token_type::value_float if number could be successfully scanned, + token_type::parse_error otherwise + + @note The scanner is independent of the current locale. Internally, the + locale's decimal point is used instead of `.` to work with the + locale-dependent converters. + */ + token_type scan_number() // lgtm [cpp/use-of-goto] + { + // reset token_buffer to store the number's bytes + reset(); + + // the type of the parsed number; initially set to unsigned; will be + // changed if minus sign, decimal point or exponent is read + token_type number_type = token_type::value_unsigned; + + // state (init): we just found out we need to scan a number + switch (current) + { + case '-': + { + add(current); + goto scan_number_minus; + } + + case '0': + { + add(current); + goto scan_number_zero; + } + + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + { + add(current); + goto scan_number_any1; + } + + // all other characters are rejected outside scan_number() + default: // LCOV_EXCL_LINE + assert(false); // LCOV_EXCL_LINE + } + +scan_number_minus: + // state: we just parsed a leading minus sign + number_type = token_type::value_integer; + switch (get()) + { + case '0': + { + add(current); + goto scan_number_zero; + } + + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + { + add(current); + goto scan_number_any1; + } + + default: + { + error_message = "invalid number; expected digit after '-'"; + return token_type::parse_error; + } + } + +scan_number_zero: + // state: we just parse a zero (maybe with a leading minus sign) + switch (get()) + { + case '.': + { + add(decimal_point_char); + goto scan_number_decimal1; + } + + case 'e': + case 'E': + { + add(current); + goto scan_number_exponent; + } + + default: + goto scan_number_done; + } + +scan_number_any1: + // state: we just parsed a number 0-9 (maybe with a leading minus sign) + switch (get()) + { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + { + add(current); + goto scan_number_any1; + } + + case '.': + { + add(decimal_point_char); + goto scan_number_decimal1; + } + + case 'e': + case 'E': + { + add(current); + goto scan_number_exponent; + } + + default: + goto scan_number_done; + } + +scan_number_decimal1: + // state: we just parsed a decimal point + number_type = token_type::value_float; + switch (get()) + { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + { + add(current); + goto scan_number_decimal2; + } + + default: + { + error_message = "invalid number; expected digit after '.'"; + return token_type::parse_error; + } + } + +scan_number_decimal2: + // we just parsed at least one number after a decimal point + switch (get()) + { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + { + add(current); + goto scan_number_decimal2; + } + + case 'e': + case 'E': + { + add(current); + goto scan_number_exponent; + } + + default: + goto scan_number_done; + } + +scan_number_exponent: + // we just parsed an exponent + number_type = token_type::value_float; + switch (get()) + { + case '+': + case '-': + { + add(current); + goto scan_number_sign; + } + + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + { + add(current); + goto scan_number_any2; + } + + default: + { + error_message = + "invalid number; expected '+', '-', or digit after exponent"; + return token_type::parse_error; + } + } + +scan_number_sign: + // we just parsed an exponent sign + switch (get()) + { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + { + add(current); + goto scan_number_any2; + } + + default: + { + error_message = "invalid number; expected digit after exponent sign"; + return token_type::parse_error; + } + } + +scan_number_any2: + // we just parsed a number after the exponent or exponent sign + switch (get()) + { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + { + add(current); + goto scan_number_any2; + } + + default: + goto scan_number_done; + } + +scan_number_done: + // unget the character after the number (we only read it to know that + // we are done scanning a number) + unget(); + + char* endptr = nullptr; + errno = 0; + + // try to parse integers first and fall back to floats + if (number_type == token_type::value_unsigned) + { + const auto x = std::strtoull(token_buffer.data(), &endptr, 10); + + // we checked the number format before + assert(endptr == token_buffer.data() + token_buffer.size()); + + if (errno == 0) + { + value_unsigned = static_cast<number_unsigned_t>(x); + if (value_unsigned == x) + { + return token_type::value_unsigned; + } + } + } + else if (number_type == token_type::value_integer) + { + const auto x = std::strtoll(token_buffer.data(), &endptr, 10); + + // we checked the number format before + assert(endptr == token_buffer.data() + token_buffer.size()); + + if (errno == 0) + { + value_integer = static_cast<number_integer_t>(x); + if (value_integer == x) + { + return token_type::value_integer; + } + } + } + + // this code is reached if we parse a floating-point number or if an + // integer conversion above failed + strtof(value_float, token_buffer.data(), &endptr); + + // we checked the number format before + assert(endptr == token_buffer.data() + token_buffer.size()); + + return token_type::value_float; + } + + /*! + @param[in] literal_text the literal text to expect + @param[in] length the length of the passed literal text + @param[in] return_type the token type to return on success + */ + token_type scan_literal(const char* literal_text, const std::size_t length, + token_type return_type) + { + assert(current == literal_text[0]); + for (std::size_t i = 1; i < length; ++i) + { + if (JSON_UNLIKELY(get() != literal_text[i])) + { + error_message = "invalid literal"; + return token_type::parse_error; + } + } + return return_type; + } + + ///////////////////// + // input management + ///////////////////// + + /// reset token_buffer; current character is beginning of token + void reset() noexcept + { + token_buffer.clear(); + token_string.clear(); + token_string.push_back(std::char_traits<char>::to_char_type(current)); + } + + /* + @brief get next character from the input + + This function provides the interface to the used input adapter. It does + not throw in case the input reached EOF, but returns a + `std::char_traits<char>::eof()` in that case. Stores the scanned characters + for use in error messages. + + @return character read from the input + */ + std::char_traits<char>::int_type get() + { + ++position.chars_read_total; + ++position.chars_read_current_line; + + if (next_unget) + { + // just reset the next_unget variable and work with current + next_unget = false; + } + else + { + current = ia->get_character(); + } + + if (JSON_LIKELY(current != std::char_traits<char>::eof())) + { + token_string.push_back(std::char_traits<char>::to_char_type(current)); + } + + if (current == '\n') + { + ++position.lines_read; + position.chars_read_current_line = 0; + } + + return current; + } + + /*! + @brief unget current character (read it again on next get) + + We implement unget by setting variable next_unget to true. The input is not + changed - we just simulate ungetting by modifying chars_read_total, + chars_read_current_line, and token_string. The next call to get() will + behave as if the unget character is read again. + */ + void unget() + { + next_unget = true; + + --position.chars_read_total; + + // in case we "unget" a newline, we have to also decrement the lines_read + if (position.chars_read_current_line == 0) + { + if (position.lines_read > 0) + { + --position.lines_read; + } + } + else + { + --position.chars_read_current_line; + } + + if (JSON_LIKELY(current != std::char_traits<char>::eof())) + { + assert(not token_string.empty()); + token_string.pop_back(); + } + } + + /// add a character to token_buffer + void add(int c) + { + token_buffer.push_back(std::char_traits<char>::to_char_type(c)); + } + + public: + ///////////////////// + // value getters + ///////////////////// + + /// return integer value + constexpr number_integer_t get_number_integer() const noexcept + { + return value_integer; + } + + /// return unsigned integer value + constexpr number_unsigned_t get_number_unsigned() const noexcept + { + return value_unsigned; + } + + /// return floating-point value + constexpr number_float_t get_number_float() const noexcept + { + return value_float; + } + + /// return current string value (implicitly resets the token; useful only once) + string_t& get_string() + { + return token_buffer; + } + + ///////////////////// + // diagnostics + ///////////////////// + + /// return position of last read token + constexpr position_t get_position() const noexcept + { + return position; + } + + /// return the last read token (for errors only). Will never contain EOF + /// (an arbitrary value that is not a valid char value, often -1), because + /// 255 may legitimately occur. May contain NUL, which should be escaped. + std::string get_token_string() const + { + // escape control characters + std::string result; + for (const auto c : token_string) + { + if ('\x00' <= c and c <= '\x1F') + { + // escape control characters + std::array<char, 9> cs{{}}; + (std::snprintf)(cs.data(), cs.size(), "<U+%.4X>", static_cast<unsigned char>(c)); + result += cs.data(); + } + else + { + // add character as is + result.push_back(c); + } + } + + return result; + } + + /// return syntax error message + constexpr const char* get_error_message() const noexcept + { + return error_message; + } + + ///////////////////// + // actual scanner + ///////////////////// + + /*! + @brief skip the UTF-8 byte order mark + @return true iff there is no BOM or the correct BOM has been skipped + */ + bool skip_bom() + { + if (get() == 0xEF) + { + // check if we completely parse the BOM + return get() == 0xBB and get() == 0xBF; + } + + // the first character is not the beginning of the BOM; unget it to + // process is later + unget(); + return true; + } + + token_type scan() + { + // initially, skip the BOM + if (position.chars_read_total == 0 and not skip_bom()) + { + error_message = "invalid BOM; must be 0xEF 0xBB 0xBF if given"; + return token_type::parse_error; + } + + // read next character and ignore whitespace + do + { + get(); + } + while (current == ' ' or current == '\t' or current == '\n' or current == '\r'); + + switch (current) + { + // structural characters + case '[': + return token_type::begin_array; + case ']': + return token_type::end_array; + case '{': + return token_type::begin_object; + case '}': + return token_type::end_object; + case ':': + return token_type::name_separator; + case ',': + return token_type::value_separator; + + // literals + case 't': + return scan_literal("true", 4, token_type::literal_true); + case 'f': + return scan_literal("false", 5, token_type::literal_false); + case 'n': + return scan_literal("null", 4, token_type::literal_null); + + // string + case '\"': + return scan_string(); + + // number + case '-': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + return scan_number(); + + // end of input (the null byte is needed when parsing from + // string literals) + case '\0': + case std::char_traits<char>::eof(): + return token_type::end_of_input; + + // error + default: + error_message = "invalid literal"; + return token_type::parse_error; + } + } + + private: + /// input adapter + detail::input_adapter_t ia = nullptr; + + /// the current character + std::char_traits<char>::int_type current = std::char_traits<char>::eof(); + + /// whether the next get() call should just return current + bool next_unget = false; + + /// the start position of the current token + position_t position {}; + + /// raw input token string (for error messages) + std::vector<char> token_string {}; + + /// buffer for variable-length tokens (numbers, strings) + string_t token_buffer {}; + + /// a description of occurred lexer errors + const char* error_message = ""; + + // number values + number_integer_t value_integer = 0; + number_unsigned_t value_unsigned = 0; + number_float_t value_float = 0; + + /// the decimal point + const char decimal_point_char = '.'; +}; +} // namespace detail +} // namespace nlohmann + +// #include <nlohmann/detail/input/parser.hpp> + + +#include <cassert> // assert +#include <cmath> // isfinite +#include <cstdint> // uint8_t +#include <functional> // function +#include <string> // string +#include <utility> // move +#include <vector> // vector + +// #include <nlohmann/detail/exceptions.hpp> + +// #include <nlohmann/detail/input/input_adapters.hpp> + +// #include <nlohmann/detail/input/json_sax.hpp> + +// #include <nlohmann/detail/input/lexer.hpp> + +// #include <nlohmann/detail/macro_scope.hpp> + +// #include <nlohmann/detail/meta/is_sax.hpp> + +// #include <nlohmann/detail/value_t.hpp> + + +namespace nlohmann +{ +namespace detail +{ +//////////// +// parser // +//////////// + +/*! +@brief syntax analysis + +This class implements a recursive decent parser. +*/ +template<typename BasicJsonType> +class parser +{ + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using number_float_t = typename BasicJsonType::number_float_t; + using string_t = typename BasicJsonType::string_t; + using lexer_t = lexer<BasicJsonType>; + using token_type = typename lexer_t::token_type; + + public: + enum class parse_event_t : uint8_t + { + /// the parser read `{` and started to process a JSON object + object_start, + /// the parser read `}` and finished processing a JSON object + object_end, + /// the parser read `[` and started to process a JSON array + array_start, + /// the parser read `]` and finished processing a JSON array + array_end, + /// the parser read a key of a value in an object + key, + /// the parser finished reading a JSON value + value + }; + + using parser_callback_t = + std::function<bool(int depth, parse_event_t event, BasicJsonType& parsed)>; + + /// a parser reading from an input adapter + explicit parser(detail::input_adapter_t&& adapter, + const parser_callback_t cb = nullptr, + const bool allow_exceptions_ = true) + : callback(cb), m_lexer(std::move(adapter)), allow_exceptions(allow_exceptions_) + { + // read first token + get_token(); + } + + /*! + @brief public parser interface + + @param[in] strict whether to expect the last token to be EOF + @param[in,out] result parsed JSON value + + @throw parse_error.101 in case of an unexpected token + @throw parse_error.102 if to_unicode fails or surrogate error + @throw parse_error.103 if to_unicode fails + */ + void parse(const bool strict, BasicJsonType& result) + { + if (callback) + { + json_sax_dom_callback_parser<BasicJsonType> sdp(result, callback, allow_exceptions); + sax_parse_internal(&sdp); + result.assert_invariant(); + + // in strict mode, input must be completely read + if (strict and (get_token() != token_type::end_of_input)) + { + sdp.parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), + exception_message(token_type::end_of_input, "value"))); + } + + // in case of an error, return discarded value + if (sdp.is_errored()) + { + result = value_t::discarded; + return; + } + + // set top-level value to null if it was discarded by the callback + // function + if (result.is_discarded()) + { + result = nullptr; + } + } + else + { + json_sax_dom_parser<BasicJsonType> sdp(result, allow_exceptions); + sax_parse_internal(&sdp); + result.assert_invariant(); + + // in strict mode, input must be completely read + if (strict and (get_token() != token_type::end_of_input)) + { + sdp.parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), + exception_message(token_type::end_of_input, "value"))); + } + + // in case of an error, return discarded value + if (sdp.is_errored()) + { + result = value_t::discarded; + return; + } + } + } + + /*! + @brief public accept interface + + @param[in] strict whether to expect the last token to be EOF + @return whether the input is a proper JSON text + */ + bool accept(const bool strict = true) + { + json_sax_acceptor<BasicJsonType> sax_acceptor; + return sax_parse(&sax_acceptor, strict); + } + + template <typename SAX> + bool sax_parse(SAX* sax, const bool strict = true) + { + (void)detail::is_sax_static_asserts<SAX, BasicJsonType> {}; + const bool result = sax_parse_internal(sax); + + // strict mode: next byte must be EOF + if (result and strict and (get_token() != token_type::end_of_input)) + { + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), + exception_message(token_type::end_of_input, "value"))); + } + + return result; + } + + private: + template <typename SAX> + bool sax_parse_internal(SAX* sax) + { + // stack to remember the hierarchy of structured values we are parsing + // true = array; false = object + std::vector<bool> states; + // value to avoid a goto (see comment where set to true) + bool skip_to_state_evaluation = false; + + while (true) + { + if (not skip_to_state_evaluation) + { + // invariant: get_token() was called before each iteration + switch (last_token) + { + case token_type::begin_object: + { + if (JSON_UNLIKELY(not sax->start_object(std::size_t(-1)))) + { + return false; + } + + // closing } -> we are done + if (get_token() == token_type::end_object) + { + if (JSON_UNLIKELY(not sax->end_object())) + { + return false; + } + break; + } + + // parse key + if (JSON_UNLIKELY(last_token != token_type::value_string)) + { + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), + exception_message(token_type::value_string, "object key"))); + } + if (JSON_UNLIKELY(not sax->key(m_lexer.get_string()))) + { + return false; + } + + // parse separator (:) + if (JSON_UNLIKELY(get_token() != token_type::name_separator)) + { + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), + exception_message(token_type::name_separator, "object separator"))); + } + + // remember we are now inside an object + states.push_back(false); + + // parse values + get_token(); + continue; + } + + case token_type::begin_array: + { + if (JSON_UNLIKELY(not sax->start_array(std::size_t(-1)))) + { + return false; + } + + // closing ] -> we are done + if (get_token() == token_type::end_array) + { + if (JSON_UNLIKELY(not sax->end_array())) + { + return false; + } + break; + } + + // remember we are now inside an array + states.push_back(true); + + // parse values (no need to call get_token) + continue; + } + + case token_type::value_float: + { + const auto res = m_lexer.get_number_float(); + + if (JSON_UNLIKELY(not std::isfinite(res))) + { + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + out_of_range::create(406, "number overflow parsing '" + m_lexer.get_token_string() + "'")); + } + + if (JSON_UNLIKELY(not sax->number_float(res, m_lexer.get_string()))) + { + return false; + } + + break; + } + + case token_type::literal_false: + { + if (JSON_UNLIKELY(not sax->boolean(false))) + { + return false; + } + break; + } + + case token_type::literal_null: + { + if (JSON_UNLIKELY(not sax->null())) + { + return false; + } + break; + } + + case token_type::literal_true: + { + if (JSON_UNLIKELY(not sax->boolean(true))) + { + return false; + } + break; + } + + case token_type::value_integer: + { + if (JSON_UNLIKELY(not sax->number_integer(m_lexer.get_number_integer()))) + { + return false; + } + break; + } + + case token_type::value_string: + { + if (JSON_UNLIKELY(not sax->string(m_lexer.get_string()))) + { + return false; + } + break; + } + + case token_type::value_unsigned: + { + if (JSON_UNLIKELY(not sax->number_unsigned(m_lexer.get_number_unsigned()))) + { + return false; + } + break; + } + + case token_type::parse_error: + { + // using "uninitialized" to avoid "expected" message + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), + exception_message(token_type::uninitialized, "value"))); + } + + default: // the last token was unexpected + { + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), + exception_message(token_type::literal_or_value, "value"))); + } + } + } + else + { + skip_to_state_evaluation = false; + } + + // we reached this line after we successfully parsed a value + if (states.empty()) + { + // empty stack: we reached the end of the hierarchy: done + return true; + } + + if (states.back()) // array + { + // comma -> next value + if (get_token() == token_type::value_separator) + { + // parse a new value + get_token(); + continue; + } + + // closing ] + if (JSON_LIKELY(last_token == token_type::end_array)) + { + if (JSON_UNLIKELY(not sax->end_array())) + { + return false; + } + + // We are done with this array. Before we can parse a + // new value, we need to evaluate the new state first. + // By setting skip_to_state_evaluation to false, we + // are effectively jumping to the beginning of this if. + assert(not states.empty()); + states.pop_back(); + skip_to_state_evaluation = true; + continue; + } + + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), + exception_message(token_type::end_array, "array"))); + } + else // object + { + // comma -> next value + if (get_token() == token_type::value_separator) + { + // parse key + if (JSON_UNLIKELY(get_token() != token_type::value_string)) + { + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), + exception_message(token_type::value_string, "object key"))); + } + + if (JSON_UNLIKELY(not sax->key(m_lexer.get_string()))) + { + return false; + } + + // parse separator (:) + if (JSON_UNLIKELY(get_token() != token_type::name_separator)) + { + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), + exception_message(token_type::name_separator, "object separator"))); + } + + // parse values + get_token(); + continue; + } + + // closing } + if (JSON_LIKELY(last_token == token_type::end_object)) + { + if (JSON_UNLIKELY(not sax->end_object())) + { + return false; + } + + // We are done with this object. Before we can parse a + // new value, we need to evaluate the new state first. + // By setting skip_to_state_evaluation to false, we + // are effectively jumping to the beginning of this if. + assert(not states.empty()); + states.pop_back(); + skip_to_state_evaluation = true; + continue; + } + + return sax->parse_error(m_lexer.get_position(), + m_lexer.get_token_string(), + parse_error::create(101, m_lexer.get_position(), + exception_message(token_type::end_object, "object"))); + } + } + } + + /// get next token from lexer + token_type get_token() + { + return last_token = m_lexer.scan(); + } + + std::string exception_message(const token_type expected, const std::string& context) + { + std::string error_msg = "syntax error "; + + if (not context.empty()) + { + error_msg += "while parsing " + context + " "; + } + + error_msg += "- "; + + if (last_token == token_type::parse_error) + { + error_msg += std::string(m_lexer.get_error_message()) + "; last read: '" + + m_lexer.get_token_string() + "'"; + } + else + { + error_msg += "unexpected " + std::string(lexer_t::token_type_name(last_token)); + } + + if (expected != token_type::uninitialized) + { + error_msg += "; expected " + std::string(lexer_t::token_type_name(expected)); + } + + return error_msg; + } + + private: + /// callback function + const parser_callback_t callback = nullptr; + /// the type of the last read token + token_type last_token = token_type::uninitialized; + /// the lexer + lexer_t m_lexer; + /// whether to throw exceptions in case of errors + const bool allow_exceptions = true; +}; +} // namespace detail +} // namespace nlohmann + +// #include <nlohmann/detail/iterators/internal_iterator.hpp> + + +// #include <nlohmann/detail/iterators/primitive_iterator.hpp> + + +#include <cstddef> // ptrdiff_t +#include <limits> // numeric_limits + +namespace nlohmann +{ +namespace detail +{ +/* +@brief an iterator for primitive JSON types + +This class models an iterator for primitive JSON types (boolean, number, +string). It's only purpose is to allow the iterator/const_iterator classes +to "iterate" over primitive values. Internally, the iterator is modeled by +a `difference_type` variable. Value begin_value (`0`) models the begin, +end_value (`1`) models past the end. +*/ +class primitive_iterator_t +{ + private: + using difference_type = std::ptrdiff_t; + static constexpr difference_type begin_value = 0; + static constexpr difference_type end_value = begin_value + 1; + + /// iterator as signed integer type + difference_type m_it = (std::numeric_limits<std::ptrdiff_t>::min)(); + + public: + constexpr difference_type get_value() const noexcept + { + return m_it; + } + + /// set iterator to a defined beginning + void set_begin() noexcept + { + m_it = begin_value; + } + + /// set iterator to a defined past the end + void set_end() noexcept + { + m_it = end_value; + } + + /// return whether the iterator can be dereferenced + constexpr bool is_begin() const noexcept + { + return m_it == begin_value; + } + + /// return whether the iterator is at end + constexpr bool is_end() const noexcept + { + return m_it == end_value; + } + + friend constexpr bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it == rhs.m_it; + } + + friend constexpr bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it < rhs.m_it; + } + + primitive_iterator_t operator+(difference_type n) noexcept + { + auto result = *this; + result += n; + return result; + } + + friend constexpr difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept + { + return lhs.m_it - rhs.m_it; + } + + primitive_iterator_t& operator++() noexcept + { + ++m_it; + return *this; + } + + primitive_iterator_t const operator++(int) noexcept + { + auto result = *this; + ++m_it; + return result; + } + + primitive_iterator_t& operator--() noexcept + { + --m_it; + return *this; + } + + primitive_iterator_t const operator--(int) noexcept + { + auto result = *this; + --m_it; + return result; + } + + primitive_iterator_t& operator+=(difference_type n) noexcept + { + m_it += n; + return *this; + } + + primitive_iterator_t& operator-=(difference_type n) noexcept + { + m_it -= n; + return *this; + } +}; +} // namespace detail +} // namespace nlohmann + + +namespace nlohmann +{ +namespace detail +{ +/*! +@brief an iterator value + +@note This structure could easily be a union, but MSVC currently does not allow +unions members with complex constructors, see https://github.com/nlohmann/json/pull/105. +*/ +template<typename BasicJsonType> struct internal_iterator +{ + /// iterator for JSON objects + typename BasicJsonType::object_t::iterator object_iterator {}; + /// iterator for JSON arrays + typename BasicJsonType::array_t::iterator array_iterator {}; + /// generic iterator for all other types + primitive_iterator_t primitive_iterator {}; +}; +} // namespace detail +} // namespace nlohmann + +// #include <nlohmann/detail/iterators/iter_impl.hpp> + + +#include <ciso646> // not +#include <iterator> // iterator, random_access_iterator_tag, bidirectional_iterator_tag, advance, next +#include <type_traits> // conditional, is_const, remove_const + +// #include <nlohmann/detail/exceptions.hpp> + +// #include <nlohmann/detail/iterators/internal_iterator.hpp> + +// #include <nlohmann/detail/iterators/primitive_iterator.hpp> + +// #include <nlohmann/detail/macro_scope.hpp> + +// #include <nlohmann/detail/meta/cpp_future.hpp> + +// #include <nlohmann/detail/meta/type_traits.hpp> + +// #include <nlohmann/detail/value_t.hpp> + + +namespace nlohmann +{ +namespace detail +{ +// forward declare, to be able to friend it later on +template<typename IteratorType> class iteration_proxy; +template<typename IteratorType> class iteration_proxy_value; + +/*! +@brief a template for a bidirectional iterator for the @ref basic_json class +This class implements a both iterators (iterator and const_iterator) for the +@ref basic_json class. +@note An iterator is called *initialized* when a pointer to a JSON value has + been set (e.g., by a constructor or a copy assignment). If the iterator is + default-constructed, it is *uninitialized* and most methods are undefined. + **The library uses assertions to detect calls on uninitialized iterators.** +@requirement The class satisfies the following concept requirements: +- +[BidirectionalIterator](https://en.cppreference.com/w/cpp/named_req/BidirectionalIterator): + The iterator that can be moved can be moved in both directions (i.e. + incremented and decremented). +@since version 1.0.0, simplified in version 2.0.9, change to bidirectional + iterators in version 3.0.0 (see https://github.com/nlohmann/json/issues/593) +*/ +template<typename BasicJsonType> +class iter_impl +{ + /// allow basic_json to access private members + friend iter_impl<typename std::conditional<std::is_const<BasicJsonType>::value, typename std::remove_const<BasicJsonType>::type, const BasicJsonType>::type>; + friend BasicJsonType; + friend iteration_proxy<iter_impl>; + friend iteration_proxy_value<iter_impl>; + + using object_t = typename BasicJsonType::object_t; + using array_t = typename BasicJsonType::array_t; + // make sure BasicJsonType is basic_json or const basic_json + static_assert(is_basic_json<typename std::remove_const<BasicJsonType>::type>::value, + "iter_impl only accepts (const) basic_json"); + + public: + + /// The std::iterator class template (used as a base class to provide typedefs) is deprecated in C++17. + /// The C++ Standard has never required user-defined iterators to derive from std::iterator. + /// A user-defined iterator should provide publicly accessible typedefs named + /// iterator_category, value_type, difference_type, pointer, and reference. + /// Note that value_type is required to be non-const, even for constant iterators. + using iterator_category = std::bidirectional_iterator_tag; + + /// the type of the values when the iterator is dereferenced + using value_type = typename BasicJsonType::value_type; + /// a type to represent differences between iterators + using difference_type = typename BasicJsonType::difference_type; + /// defines a pointer to the type iterated over (value_type) + using pointer = typename std::conditional<std::is_const<BasicJsonType>::value, + typename BasicJsonType::const_pointer, + typename BasicJsonType::pointer>::type; + /// defines a reference to the type iterated over (value_type) + using reference = + typename std::conditional<std::is_const<BasicJsonType>::value, + typename BasicJsonType::const_reference, + typename BasicJsonType::reference>::type; + + /// default constructor + iter_impl() = default; + + /*! + @brief constructor for a given JSON instance + @param[in] object pointer to a JSON object for this iterator + @pre object != nullptr + @post The iterator is initialized; i.e. `m_object != nullptr`. + */ + explicit iter_impl(pointer object) noexcept : m_object(object) + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + { + m_it.object_iterator = typename object_t::iterator(); + break; + } + + case value_t::array: + { + m_it.array_iterator = typename array_t::iterator(); + break; + } + + default: + { + m_it.primitive_iterator = primitive_iterator_t(); + break; + } + } + } + + /*! + @note The conventional copy constructor and copy assignment are implicitly + defined. Combined with the following converting constructor and + assignment, they support: (1) copy from iterator to iterator, (2) + copy from const iterator to const iterator, and (3) conversion from + iterator to const iterator. However conversion from const iterator + to iterator is not defined. + */ + + /*! + @brief converting constructor + @param[in] other non-const iterator to copy from + @note It is not checked whether @a other is initialized. + */ + iter_impl(const iter_impl<typename std::remove_const<BasicJsonType>::type>& other) noexcept + : m_object(other.m_object), m_it(other.m_it) {} + + /*! + @brief converting assignment + @param[in,out] other non-const iterator to copy from + @return const/non-const iterator + @note It is not checked whether @a other is initialized. + */ + iter_impl& operator=(const iter_impl<typename std::remove_const<BasicJsonType>::type>& other) noexcept + { + m_object = other.m_object; + m_it = other.m_it; + return *this; + } + + private: + /*! + @brief set the iterator to the first value + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + void set_begin() noexcept + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + { + m_it.object_iterator = m_object->m_value.object->begin(); + break; + } + + case value_t::array: + { + m_it.array_iterator = m_object->m_value.array->begin(); + break; + } + + case value_t::null: + { + // set to end so begin()==end() is true: null is empty + m_it.primitive_iterator.set_end(); + break; + } + + default: + { + m_it.primitive_iterator.set_begin(); + break; + } + } + } + + /*! + @brief set the iterator past the last value + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + void set_end() noexcept + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + { + m_it.object_iterator = m_object->m_value.object->end(); + break; + } + + case value_t::array: + { + m_it.array_iterator = m_object->m_value.array->end(); + break; + } + + default: + { + m_it.primitive_iterator.set_end(); + break; + } + } + } + + public: + /*! + @brief return a reference to the value pointed to by the iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + reference operator*() const + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + { + assert(m_it.object_iterator != m_object->m_value.object->end()); + return m_it.object_iterator->second; + } + + case value_t::array: + { + assert(m_it.array_iterator != m_object->m_value.array->end()); + return *m_it.array_iterator; + } + + case value_t::null: + JSON_THROW(invalid_iterator::create(214, "cannot get value")); + + default: + { + if (JSON_LIKELY(m_it.primitive_iterator.is_begin())) + { + return *m_object; + } + + JSON_THROW(invalid_iterator::create(214, "cannot get value")); + } + } + } + + /*! + @brief dereference the iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + pointer operator->() const + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + { + assert(m_it.object_iterator != m_object->m_value.object->end()); + return &(m_it.object_iterator->second); + } + + case value_t::array: + { + assert(m_it.array_iterator != m_object->m_value.array->end()); + return &*m_it.array_iterator; + } + + default: + { + if (JSON_LIKELY(m_it.primitive_iterator.is_begin())) + { + return m_object; + } + + JSON_THROW(invalid_iterator::create(214, "cannot get value")); + } + } + } + + /*! + @brief post-increment (it++) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl const operator++(int) + { + auto result = *this; + ++(*this); + return result; + } + + /*! + @brief pre-increment (++it) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl& operator++() + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + { + std::advance(m_it.object_iterator, 1); + break; + } + + case value_t::array: + { + std::advance(m_it.array_iterator, 1); + break; + } + + default: + { + ++m_it.primitive_iterator; + break; + } + } + + return *this; + } + + /*! + @brief post-decrement (it--) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl const operator--(int) + { + auto result = *this; + --(*this); + return result; + } + + /*! + @brief pre-decrement (--it) + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl& operator--() + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + { + std::advance(m_it.object_iterator, -1); + break; + } + + case value_t::array: + { + std::advance(m_it.array_iterator, -1); + break; + } + + default: + { + --m_it.primitive_iterator; + break; + } + } + + return *this; + } + + /*! + @brief comparison: equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator==(const iter_impl& other) const + { + // if objects are not the same, the comparison is undefined + if (JSON_UNLIKELY(m_object != other.m_object)) + { + JSON_THROW(invalid_iterator::create(212, "cannot compare iterators of different containers")); + } + + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + return (m_it.object_iterator == other.m_it.object_iterator); + + case value_t::array: + return (m_it.array_iterator == other.m_it.array_iterator); + + default: + return (m_it.primitive_iterator == other.m_it.primitive_iterator); + } + } + + /*! + @brief comparison: not equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator!=(const iter_impl& other) const + { + return not operator==(other); + } + + /*! + @brief comparison: smaller + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator<(const iter_impl& other) const + { + // if objects are not the same, the comparison is undefined + if (JSON_UNLIKELY(m_object != other.m_object)) + { + JSON_THROW(invalid_iterator::create(212, "cannot compare iterators of different containers")); + } + + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + JSON_THROW(invalid_iterator::create(213, "cannot compare order of object iterators")); + + case value_t::array: + return (m_it.array_iterator < other.m_it.array_iterator); + + default: + return (m_it.primitive_iterator < other.m_it.primitive_iterator); + } + } + + /*! + @brief comparison: less than or equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator<=(const iter_impl& other) const + { + return not other.operator < (*this); + } + + /*! + @brief comparison: greater than + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator>(const iter_impl& other) const + { + return not operator<=(other); + } + + /*! + @brief comparison: greater than or equal + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + bool operator>=(const iter_impl& other) const + { + return not operator<(other); + } + + /*! + @brief add to iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl& operator+=(difference_type i) + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + JSON_THROW(invalid_iterator::create(209, "cannot use offsets with object iterators")); + + case value_t::array: + { + std::advance(m_it.array_iterator, i); + break; + } + + default: + { + m_it.primitive_iterator += i; + break; + } + } + + return *this; + } + + /*! + @brief subtract from iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl& operator-=(difference_type i) + { + return operator+=(-i); + } + + /*! + @brief add to iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl operator+(difference_type i) const + { + auto result = *this; + result += i; + return result; + } + + /*! + @brief addition of distance and iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + friend iter_impl operator+(difference_type i, const iter_impl& it) + { + auto result = it; + result += i; + return result; + } + + /*! + @brief subtract from iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + iter_impl operator-(difference_type i) const + { + auto result = *this; + result -= i; + return result; + } + + /*! + @brief return difference + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + difference_type operator-(const iter_impl& other) const + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + JSON_THROW(invalid_iterator::create(209, "cannot use offsets with object iterators")); + + case value_t::array: + return m_it.array_iterator - other.m_it.array_iterator; + + default: + return m_it.primitive_iterator - other.m_it.primitive_iterator; + } + } + + /*! + @brief access to successor + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + reference operator[](difference_type n) const + { + assert(m_object != nullptr); + + switch (m_object->m_type) + { + case value_t::object: + JSON_THROW(invalid_iterator::create(208, "cannot use operator[] for object iterators")); + + case value_t::array: + return *std::next(m_it.array_iterator, n); + + case value_t::null: + JSON_THROW(invalid_iterator::create(214, "cannot get value")); + + default: + { + if (JSON_LIKELY(m_it.primitive_iterator.get_value() == -n)) + { + return *m_object; + } + + JSON_THROW(invalid_iterator::create(214, "cannot get value")); + } + } + } + + /*! + @brief return the key of an object iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + const typename object_t::key_type& key() const + { + assert(m_object != nullptr); + + if (JSON_LIKELY(m_object->is_object())) + { + return m_it.object_iterator->first; + } + + JSON_THROW(invalid_iterator::create(207, "cannot use key() for non-object iterators")); + } + + /*! + @brief return the value of an iterator + @pre The iterator is initialized; i.e. `m_object != nullptr`. + */ + reference value() const + { + return operator*(); + } + + private: + /// associated JSON instance + pointer m_object = nullptr; + /// the actual iterator of the associated instance + internal_iterator<typename std::remove_const<BasicJsonType>::type> m_it {}; +}; +} // namespace detail +} // namespace nlohmann + +// #include <nlohmann/detail/iterators/iteration_proxy.hpp> + +// #include <nlohmann/detail/iterators/json_reverse_iterator.hpp> + + +#include <cstddef> // ptrdiff_t +#include <iterator> // reverse_iterator +#include <utility> // declval + +namespace nlohmann +{ +namespace detail +{ +////////////////////// +// reverse_iterator // +////////////////////// + +/*! +@brief a template for a reverse iterator class + +@tparam Base the base iterator type to reverse. Valid types are @ref +iterator (to create @ref reverse_iterator) and @ref const_iterator (to +create @ref const_reverse_iterator). + +@requirement The class satisfies the following concept requirements: +- +[BidirectionalIterator](https://en.cppreference.com/w/cpp/named_req/BidirectionalIterator): + The iterator that can be moved can be moved in both directions (i.e. + incremented and decremented). +- [OutputIterator](https://en.cppreference.com/w/cpp/named_req/OutputIterator): + It is possible to write to the pointed-to element (only if @a Base is + @ref iterator). + +@since version 1.0.0 +*/ +template<typename Base> +class json_reverse_iterator : public std::reverse_iterator<Base> +{ + public: + using difference_type = std::ptrdiff_t; + /// shortcut to the reverse iterator adapter + using base_iterator = std::reverse_iterator<Base>; + /// the reference type for the pointed-to element + using reference = typename Base::reference; + + /// create reverse iterator from iterator + explicit json_reverse_iterator(const typename base_iterator::iterator_type& it) noexcept + : base_iterator(it) {} + + /// create reverse iterator from base class + explicit json_reverse_iterator(const base_iterator& it) noexcept : base_iterator(it) {} + + /// post-increment (it++) + json_reverse_iterator const operator++(int) + { + return static_cast<json_reverse_iterator>(base_iterator::operator++(1)); + } + + /// pre-increment (++it) + json_reverse_iterator& operator++() + { + return static_cast<json_reverse_iterator&>(base_iterator::operator++()); + } + + /// post-decrement (it--) + json_reverse_iterator const operator--(int) + { + return static_cast<json_reverse_iterator>(base_iterator::operator--(1)); + } + + /// pre-decrement (--it) + json_reverse_iterator& operator--() + { + return static_cast<json_reverse_iterator&>(base_iterator::operator--()); + } + + /// add to iterator + json_reverse_iterator& operator+=(difference_type i) + { + return static_cast<json_reverse_iterator&>(base_iterator::operator+=(i)); + } + + /// add to iterator + json_reverse_iterator operator+(difference_type i) const + { + return static_cast<json_reverse_iterator>(base_iterator::operator+(i)); + } + + /// subtract from iterator + json_reverse_iterator operator-(difference_type i) const + { + return static_cast<json_reverse_iterator>(base_iterator::operator-(i)); + } + + /// return difference + difference_type operator-(const json_reverse_iterator& other) const + { + return base_iterator(*this) - base_iterator(other); + } + + /// access to successor + reference operator[](difference_type n) const + { + return *(this->operator+(n)); + } + + /// return the key of an object iterator + auto key() const -> decltype(std::declval<Base>().key()) + { + auto it = --this->base(); + return it.key(); + } + + /// return the value of an iterator + reference value() const + { + auto it = --this->base(); + return it.operator * (); + } +}; +} // namespace detail +} // namespace nlohmann + +// #include <nlohmann/detail/iterators/primitive_iterator.hpp> + +// #include <nlohmann/detail/json_pointer.hpp> + + +#include <algorithm> // all_of +#include <cassert> // assert +#include <numeric> // accumulate +#include <string> // string +#include <utility> // move +#include <vector> // vector + +// #include <nlohmann/detail/exceptions.hpp> + +// #include <nlohmann/detail/macro_scope.hpp> + +// #include <nlohmann/detail/value_t.hpp> + + +namespace nlohmann +{ +template<typename BasicJsonType> +class json_pointer +{ + // allow basic_json to access private members + NLOHMANN_BASIC_JSON_TPL_DECLARATION + friend class basic_json; + + public: + /*! + @brief create JSON pointer + + Create a JSON pointer according to the syntax described in + [Section 3 of RFC6901](https://tools.ietf.org/html/rfc6901#section-3). + + @param[in] s string representing the JSON pointer; if omitted, the empty + string is assumed which references the whole JSON value + + @throw parse_error.107 if the given JSON pointer @a s is nonempty and does + not begin with a slash (`/`); see example below + + @throw parse_error.108 if a tilde (`~`) in the given JSON pointer @a s is + not followed by `0` (representing `~`) or `1` (representing `/`); see + example below + + @liveexample{The example shows the construction several valid JSON pointers + as well as the exceptional behavior.,json_pointer} + + @since version 2.0.0 + */ + explicit json_pointer(const std::string& s = "") + : reference_tokens(split(s)) + {} + + /*! + @brief return a string representation of the JSON pointer + + @invariant For each JSON pointer `ptr`, it holds: + @code {.cpp} + ptr == json_pointer(ptr.to_string()); + @endcode + + @return a string representation of the JSON pointer + + @liveexample{The example shows the result of `to_string`.,json_pointer__to_string} + + @since version 2.0.0 + */ + std::string to_string() const + { + return std::accumulate(reference_tokens.begin(), reference_tokens.end(), + std::string{}, + [](const std::string & a, const std::string & b) + { + return a + "/" + escape(b); + }); + } + + /// @copydoc to_string() + operator std::string() const + { + return to_string(); + } + + /*! + @brief append another JSON pointer at the end of this JSON pointer + + @param[in] ptr JSON pointer to append + @return JSON pointer with @a ptr appended + + @liveexample{The example shows the usage of `operator/=`.,json_pointer__operator_add} + + @complexity Linear in the length of @a ptr. + + @sa @ref operator/=(std::string) to append a reference token + @sa @ref operator/=(std::size_t) to append an array index + @sa @ref operator/(const json_pointer&, const json_pointer&) for a binary operator + + @since version 3.6.0 + */ + json_pointer& operator/=(const json_pointer& ptr) + { + reference_tokens.insert(reference_tokens.end(), + ptr.reference_tokens.begin(), + ptr.reference_tokens.end()); + return *this; + } + + /*! + @brief append an unescaped reference token at the end of this JSON pointer + + @param[in] token reference token to append + @return JSON pointer with @a token appended without escaping @a token + + @liveexample{The example shows the usage of `operator/=`.,json_pointer__operator_add} + + @complexity Amortized constant. + + @sa @ref operator/=(const json_pointer&) to append a JSON pointer + @sa @ref operator/=(std::size_t) to append an array index + @sa @ref operator/(const json_pointer&, std::size_t) for a binary operator + + @since version 3.6.0 + */ + json_pointer& operator/=(std::string token) + { + push_back(std::move(token)); + return *this; + } + + /*! + @brief append an array index at the end of this JSON pointer + + @param[in] array_index array index ot append + @return JSON pointer with @a array_index appended + + @liveexample{The example shows the usage of `operator/=`.,json_pointer__operator_add} + + @complexity Amortized constant. + + @sa @ref operator/=(const json_pointer&) to append a JSON pointer + @sa @ref operator/=(std::string) to append a reference token + @sa @ref operator/(const json_pointer&, std::string) for a binary operator + + @since version 3.6.0 + */ + json_pointer& operator/=(std::size_t array_index) + { + return *this /= std::to_string(array_index); + } + + /*! + @brief create a new JSON pointer by appending the right JSON pointer at the end of the left JSON pointer + + @param[in] lhs JSON pointer + @param[in] rhs JSON pointer + @return a new JSON pointer with @a rhs appended to @a lhs + + @liveexample{The example shows the usage of `operator/`.,json_pointer__operator_add_binary} + + @complexity Linear in the length of @a lhs and @a rhs. + + @sa @ref operator/=(const json_pointer&) to append a JSON pointer + + @since version 3.6.0 + */ + friend json_pointer operator/(const json_pointer& lhs, + const json_pointer& rhs) + { + return json_pointer(lhs) /= rhs; + } + + /*! + @brief create a new JSON pointer by appending the unescaped token at the end of the JSON pointer + + @param[in] ptr JSON pointer + @param[in] token reference token + @return a new JSON pointer with unescaped @a token appended to @a ptr + + @liveexample{The example shows the usage of `operator/`.,json_pointer__operator_add_binary} + + @complexity Linear in the length of @a ptr. + + @sa @ref operator/=(std::string) to append a reference token + + @since version 3.6.0 + */ + friend json_pointer operator/(const json_pointer& ptr, std::string token) + { + return json_pointer(ptr) /= std::move(token); + } + + /*! + @brief create a new JSON pointer by appending the array-index-token at the end of the JSON pointer + + @param[in] ptr JSON pointer + @param[in] array_index array index + @return a new JSON pointer with @a array_index appended to @a ptr + + @liveexample{The example shows the usage of `operator/`.,json_pointer__operator_add_binary} + + @complexity Linear in the length of @a ptr. + + @sa @ref operator/=(std::size_t) to append an array index + + @since version 3.6.0 + */ + friend json_pointer operator/(const json_pointer& ptr, std::size_t array_index) + { + return json_pointer(ptr) /= array_index; + } + + /*! + @brief returns the parent of this JSON pointer + + @return parent of this JSON pointer; in case this JSON pointer is the root, + the root itself is returned + + @complexity Linear in the length of the JSON pointer. + + @liveexample{The example shows the result of `parent_pointer` for different + JSON Pointers.,json_pointer__parent_pointer} + + @since version 3.6.0 + */ + json_pointer parent_pointer() const + { + if (empty()) + { + return *this; + } + + json_pointer res = *this; + res.pop_back(); + return res; + } + + /*! + @brief remove last reference token + + @pre not `empty()` + + @liveexample{The example shows the usage of `pop_back`.,json_pointer__pop_back} + + @complexity Constant. + + @throw out_of_range.405 if JSON pointer has no parent + + @since version 3.6.0 + */ + void pop_back() + { + if (JSON_UNLIKELY(empty())) + { + JSON_THROW(detail::out_of_range::create(405, "JSON pointer has no parent")); + } + + reference_tokens.pop_back(); + } + + /*! + @brief return last reference token + + @pre not `empty()` + @return last reference token + + @liveexample{The example shows the usage of `back`.,json_pointer__back} + + @complexity Constant. + + @throw out_of_range.405 if JSON pointer has no parent + + @since version 3.6.0 + */ + const std::string& back() + { + if (JSON_UNLIKELY(empty())) + { + JSON_THROW(detail::out_of_range::create(405, "JSON pointer has no parent")); + } + + return reference_tokens.back(); + } + + /*! + @brief append an unescaped token at the end of the reference pointer + + @param[in] token token to add + + @complexity Amortized constant. + + @liveexample{The example shows the result of `push_back` for different + JSON Pointers.,json_pointer__push_back} + + @since version 3.6.0 + */ + void push_back(const std::string& token) + { + reference_tokens.push_back(token); + } + + /// @copydoc push_back(const std::string&) + void push_back(std::string&& token) + { + reference_tokens.push_back(std::move(token)); + } + + /*! + @brief return whether pointer points to the root document + + @return true iff the JSON pointer points to the root document + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @liveexample{The example shows the result of `empty` for different JSON + Pointers.,json_pointer__empty} + + @since version 3.6.0 + */ + bool empty() const noexcept + { + return reference_tokens.empty(); + } + + private: + /*! + @param[in] s reference token to be converted into an array index + + @return integer representation of @a s + + @throw out_of_range.404 if string @a s could not be converted to an integer + */ + static int array_index(const std::string& s) + { + std::size_t processed_chars = 0; + const int res = std::stoi(s, &processed_chars); + + // check if the string was completely read + if (JSON_UNLIKELY(processed_chars != s.size())) + { + JSON_THROW(detail::out_of_range::create(404, "unresolved reference token '" + s + "'")); + } + + return res; + } + + json_pointer top() const + { + if (JSON_UNLIKELY(empty())) + { + JSON_THROW(detail::out_of_range::create(405, "JSON pointer has no parent")); + } + + json_pointer result = *this; + result.reference_tokens = {reference_tokens[0]}; + return result; + } + + /*! + @brief create and return a reference to the pointed to value + + @complexity Linear in the number of reference tokens. + + @throw parse_error.109 if array index is not a number + @throw type_error.313 if value cannot be unflattened + */ + BasicJsonType& get_and_create(BasicJsonType& j) const + { + using size_type = typename BasicJsonType::size_type; + auto result = &j; + + // in case no reference tokens exist, return a reference to the JSON value + // j which will be overwritten by a primitive value + for (const auto& reference_token : reference_tokens) + { + switch (result->m_type) + { + case detail::value_t::null: + { + if (reference_token == "0") + { + // start a new array if reference token is 0 + result = &result->operator[](0); + } + else + { + // start a new object otherwise + result = &result->operator[](reference_token); + } + break; + } + + case detail::value_t::object: + { + // create an entry in the object + result = &result->operator[](reference_token); + break; + } + + case detail::value_t::array: + { + // create an entry in the array + JSON_TRY + { + result = &result->operator[](static_cast<size_type>(array_index(reference_token))); + } + JSON_CATCH(std::invalid_argument&) + { + JSON_THROW(detail::parse_error::create(109, 0, "array index '" + reference_token + "' is not a number")); + } + break; + } + + /* + The following code is only reached if there exists a reference + token _and_ the current value is primitive. In this case, we have + an error situation, because primitive values may only occur as + single value; that is, with an empty list of reference tokens. + */ + default: + JSON_THROW(detail::type_error::create(313, "invalid value to unflatten")); + } + } + + return *result; + } + + /*! + @brief return a reference to the pointed to value + + @note This version does not throw if a value is not present, but tries to + create nested values instead. For instance, calling this function + with pointer `"/this/that"` on a null value is equivalent to calling + `operator[]("this").operator[]("that")` on that value, effectively + changing the null value to an object. + + @param[in] ptr a JSON value + + @return reference to the JSON value pointed to by the JSON pointer + + @complexity Linear in the length of the JSON pointer. + + @throw parse_error.106 if an array index begins with '0' + @throw parse_error.109 if an array index was not a number + @throw out_of_range.404 if the JSON pointer can not be resolved + */ + BasicJsonType& get_unchecked(BasicJsonType* ptr) const + { + using size_type = typename BasicJsonType::size_type; + for (const auto& reference_token : reference_tokens) + { + // convert null values to arrays or objects before continuing + if (ptr->m_type == detail::value_t::null) + { + // check if reference token is a number + const bool nums = + std::all_of(reference_token.begin(), reference_token.end(), + [](const char x) + { + return x >= '0' and x <= '9'; + }); + + // change value to array for numbers or "-" or to object otherwise + *ptr = (nums or reference_token == "-") + ? detail::value_t::array + : detail::value_t::object; + } + + switch (ptr->m_type) + { + case detail::value_t::object: + { + // use unchecked object access + ptr = &ptr->operator[](reference_token); + break; + } + + case detail::value_t::array: + { + // error condition (cf. RFC 6901, Sect. 4) + if (JSON_UNLIKELY(reference_token.size() > 1 and reference_token[0] == '0')) + { + JSON_THROW(detail::parse_error::create(106, 0, + "array index '" + reference_token + + "' must not begin with '0'")); + } + + if (reference_token == "-") + { + // explicitly treat "-" as index beyond the end + ptr = &ptr->operator[](ptr->m_value.array->size()); + } + else + { + // convert array index to number; unchecked access + JSON_TRY + { + ptr = &ptr->operator[]( + static_cast<size_type>(array_index(reference_token))); + } + JSON_CATCH(std::invalid_argument&) + { + JSON_THROW(detail::parse_error::create(109, 0, "array index '" + reference_token + "' is not a number")); + } + } + break; + } + + default: + JSON_THROW(detail::out_of_range::create(404, "unresolved reference token '" + reference_token + "'")); + } + } + + return *ptr; + } + + /*! + @throw parse_error.106 if an array index begins with '0' + @throw parse_error.109 if an array index was not a number + @throw out_of_range.402 if the array index '-' is used + @throw out_of_range.404 if the JSON pointer can not be resolved + */ + BasicJsonType& get_checked(BasicJsonType* ptr) const + { + using size_type = typename BasicJsonType::size_type; + for (const auto& reference_token : reference_tokens) + { + switch (ptr->m_type) + { + case detail::value_t::object: + { + // note: at performs range check + ptr = &ptr->at(reference_token); + break; + } + + case detail::value_t::array: + { + if (JSON_UNLIKELY(reference_token == "-")) + { + // "-" always fails the range check + JSON_THROW(detail::out_of_range::create(402, + "array index '-' (" + std::to_string(ptr->m_value.array->size()) + + ") is out of range")); + } + + // error condition (cf. RFC 6901, Sect. 4) + if (JSON_UNLIKELY(reference_token.size() > 1 and reference_token[0] == '0')) + { + JSON_THROW(detail::parse_error::create(106, 0, + "array index '" + reference_token + + "' must not begin with '0'")); + } + + // note: at performs range check + JSON_TRY + { + ptr = &ptr->at(static_cast<size_type>(array_index(reference_token))); + } + JSON_CATCH(std::invalid_argument&) + { + JSON_THROW(detail::parse_error::create(109, 0, "array index '" + reference_token + "' is not a number")); + } + break; + } + + default: + JSON_THROW(detail::out_of_range::create(404, "unresolved reference token '" + reference_token + "'")); + } + } + + return *ptr; + } + + /*! + @brief return a const reference to the pointed to value + + @param[in] ptr a JSON value + + @return const reference to the JSON value pointed to by the JSON + pointer + + @throw parse_error.106 if an array index begins with '0' + @throw parse_error.109 if an array index was not a number + @throw out_of_range.402 if the array index '-' is used + @throw out_of_range.404 if the JSON pointer can not be resolved + */ + const BasicJsonType& get_unchecked(const BasicJsonType* ptr) const + { + using size_type = typename BasicJsonType::size_type; + for (const auto& reference_token : reference_tokens) + { + switch (ptr->m_type) + { + case detail::value_t::object: + { + // use unchecked object access + ptr = &ptr->operator[](reference_token); + break; + } + + case detail::value_t::array: + { + if (JSON_UNLIKELY(reference_token == "-")) + { + // "-" cannot be used for const access + JSON_THROW(detail::out_of_range::create(402, + "array index '-' (" + std::to_string(ptr->m_value.array->size()) + + ") is out of range")); + } + + // error condition (cf. RFC 6901, Sect. 4) + if (JSON_UNLIKELY(reference_token.size() > 1 and reference_token[0] == '0')) + { + JSON_THROW(detail::parse_error::create(106, 0, + "array index '" + reference_token + + "' must not begin with '0'")); + } + + // use unchecked array access + JSON_TRY + { + ptr = &ptr->operator[]( + static_cast<size_type>(array_index(reference_token))); + } + JSON_CATCH(std::invalid_argument&) + { + JSON_THROW(detail::parse_error::create(109, 0, "array index '" + reference_token + "' is not a number")); + } + break; + } + + default: + JSON_THROW(detail::out_of_range::create(404, "unresolved reference token '" + reference_token + "'")); + } + } + + return *ptr; + } + + /*! + @throw parse_error.106 if an array index begins with '0' + @throw parse_error.109 if an array index was not a number + @throw out_of_range.402 if the array index '-' is used + @throw out_of_range.404 if the JSON pointer can not be resolved + */ + const BasicJsonType& get_checked(const BasicJsonType* ptr) const + { + using size_type = typename BasicJsonType::size_type; + for (const auto& reference_token : reference_tokens) + { + switch (ptr->m_type) + { + case detail::value_t::object: + { + // note: at performs range check + ptr = &ptr->at(reference_token); + break; + } + + case detail::value_t::array: + { + if (JSON_UNLIKELY(reference_token == "-")) + { + // "-" always fails the range check + JSON_THROW(detail::out_of_range::create(402, + "array index '-' (" + std::to_string(ptr->m_value.array->size()) + + ") is out of range")); + } + + // error condition (cf. RFC 6901, Sect. 4) + if (JSON_UNLIKELY(reference_token.size() > 1 and reference_token[0] == '0')) + { + JSON_THROW(detail::parse_error::create(106, 0, + "array index '" + reference_token + + "' must not begin with '0'")); + } + + // note: at performs range check + JSON_TRY + { + ptr = &ptr->at(static_cast<size_type>(array_index(reference_token))); + } + JSON_CATCH(std::invalid_argument&) + { + JSON_THROW(detail::parse_error::create(109, 0, "array index '" + reference_token + "' is not a number")); + } + break; + } + + default: + JSON_THROW(detail::out_of_range::create(404, "unresolved reference token '" + reference_token + "'")); + } + } + + return *ptr; + } + + /*! + @brief split the string input to reference tokens + + @note This function is only called by the json_pointer constructor. + All exceptions below are documented there. + + @throw parse_error.107 if the pointer is not empty or begins with '/' + @throw parse_error.108 if character '~' is not followed by '0' or '1' + */ + static std::vector<std::string> split(const std::string& reference_string) + { + std::vector<std::string> result; + + // special case: empty reference string -> no reference tokens + if (reference_string.empty()) + { + return result; + } + + // check if nonempty reference string begins with slash + if (JSON_UNLIKELY(reference_string[0] != '/')) + { + JSON_THROW(detail::parse_error::create(107, 1, + "JSON pointer must be empty or begin with '/' - was: '" + + reference_string + "'")); + } + + // extract the reference tokens: + // - slash: position of the last read slash (or end of string) + // - start: position after the previous slash + for ( + // search for the first slash after the first character + std::size_t slash = reference_string.find_first_of('/', 1), + // set the beginning of the first reference token + start = 1; + // we can stop if start == 0 (if slash == std::string::npos) + start != 0; + // set the beginning of the next reference token + // (will eventually be 0 if slash == std::string::npos) + start = (slash == std::string::npos) ? 0 : slash + 1, + // find next slash + slash = reference_string.find_first_of('/', start)) + { + // use the text between the beginning of the reference token + // (start) and the last slash (slash). + auto reference_token = reference_string.substr(start, slash - start); + + // check reference tokens are properly escaped + for (std::size_t pos = reference_token.find_first_of('~'); + pos != std::string::npos; + pos = reference_token.find_first_of('~', pos + 1)) + { + assert(reference_token[pos] == '~'); + + // ~ must be followed by 0 or 1 + if (JSON_UNLIKELY(pos == reference_token.size() - 1 or + (reference_token[pos + 1] != '0' and + reference_token[pos + 1] != '1'))) + { + JSON_THROW(detail::parse_error::create(108, 0, "escape character '~' must be followed with '0' or '1'")); + } + } + + // finally, store the reference token + unescape(reference_token); + result.push_back(reference_token); + } + + return result; + } + + /*! + @brief replace all occurrences of a substring by another string + + @param[in,out] s the string to manipulate; changed so that all + occurrences of @a f are replaced with @a t + @param[in] f the substring to replace with @a t + @param[in] t the string to replace @a f + + @pre The search string @a f must not be empty. **This precondition is + enforced with an assertion.** + + @since version 2.0.0 + */ + static void replace_substring(std::string& s, const std::string& f, + const std::string& t) + { + assert(not f.empty()); + for (auto pos = s.find(f); // find first occurrence of f + pos != std::string::npos; // make sure f was found + s.replace(pos, f.size(), t), // replace with t, and + pos = s.find(f, pos + t.size())) // find next occurrence of f + {} + } + + /// escape "~" to "~0" and "/" to "~1" + static std::string escape(std::string s) + { + replace_substring(s, "~", "~0"); + replace_substring(s, "/", "~1"); + return s; + } + + /// unescape "~1" to tilde and "~0" to slash (order is important!) + static void unescape(std::string& s) + { + replace_substring(s, "~1", "/"); + replace_substring(s, "~0", "~"); + } + + /*! + @param[in] reference_string the reference string to the current value + @param[in] value the value to consider + @param[in,out] result the result object to insert values to + + @note Empty objects or arrays are flattened to `null`. + */ + static void flatten(const std::string& reference_string, + const BasicJsonType& value, + BasicJsonType& result) + { + switch (value.m_type) + { + case detail::value_t::array: + { + if (value.m_value.array->empty()) + { + // flatten empty array as null + result[reference_string] = nullptr; + } + else + { + // iterate array and use index as reference string + for (std::size_t i = 0; i < value.m_value.array->size(); ++i) + { + flatten(reference_string + "/" + std::to_string(i), + value.m_value.array->operator[](i), result); + } + } + break; + } + + case detail::value_t::object: + { + if (value.m_value.object->empty()) + { + // flatten empty object as null + result[reference_string] = nullptr; + } + else + { + // iterate object and use keys as reference string + for (const auto& element : *value.m_value.object) + { + flatten(reference_string + "/" + escape(element.first), element.second, result); + } + } + break; + } + + default: + { + // add primitive value with its reference string + result[reference_string] = value; + break; + } + } + } + + /*! + @param[in] value flattened JSON + + @return unflattened JSON + + @throw parse_error.109 if array index is not a number + @throw type_error.314 if value is not an object + @throw type_error.315 if object values are not primitive + @throw type_error.313 if value cannot be unflattened + */ + static BasicJsonType + unflatten(const BasicJsonType& value) + { + if (JSON_UNLIKELY(not value.is_object())) + { + JSON_THROW(detail::type_error::create(314, "only objects can be unflattened")); + } + + BasicJsonType result; + + // iterate the JSON object values + for (const auto& element : *value.m_value.object) + { + if (JSON_UNLIKELY(not element.second.is_primitive())) + { + JSON_THROW(detail::type_error::create(315, "values in object must be primitive")); + } + + // assign value to reference pointed to by JSON pointer; Note that if + // the JSON pointer is "" (i.e., points to the whole value), function + // get_and_create returns a reference to result itself. An assignment + // will then create a primitive value. + json_pointer(element.first).get_and_create(result) = element.second; + } + + return result; + } + + /*! + @brief compares two JSON pointers for equality + + @param[in] lhs JSON pointer to compare + @param[in] rhs JSON pointer to compare + @return whether @a lhs is equal to @a rhs + + @complexity Linear in the length of the JSON pointer + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + */ + friend bool operator==(json_pointer const& lhs, + json_pointer const& rhs) noexcept + { + return lhs.reference_tokens == rhs.reference_tokens; + } + + /*! + @brief compares two JSON pointers for inequality + + @param[in] lhs JSON pointer to compare + @param[in] rhs JSON pointer to compare + @return whether @a lhs is not equal @a rhs + + @complexity Linear in the length of the JSON pointer + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + */ + friend bool operator!=(json_pointer const& lhs, + json_pointer const& rhs) noexcept + { + return not (lhs == rhs); + } + + /// the reference tokens + std::vector<std::string> reference_tokens; +}; +} // namespace nlohmann + +// #include <nlohmann/detail/json_ref.hpp> + + +#include <initializer_list> +#include <utility> + +// #include <nlohmann/detail/meta/type_traits.hpp> + + +namespace nlohmann +{ +namespace detail +{ +template<typename BasicJsonType> +class json_ref +{ + public: + using value_type = BasicJsonType; + + json_ref(value_type&& value) + : owned_value(std::move(value)), value_ref(&owned_value), is_rvalue(true) + {} + + json_ref(const value_type& value) + : value_ref(const_cast<value_type*>(&value)), is_rvalue(false) + {} + + json_ref(std::initializer_list<json_ref> init) + : owned_value(init), value_ref(&owned_value), is_rvalue(true) + {} + + template < + class... Args, + enable_if_t<std::is_constructible<value_type, Args...>::value, int> = 0 > + json_ref(Args && ... args) + : owned_value(std::forward<Args>(args)...), value_ref(&owned_value), + is_rvalue(true) {} + + // class should be movable only + json_ref(json_ref&&) = default; + json_ref(const json_ref&) = delete; + json_ref& operator=(const json_ref&) = delete; + json_ref& operator=(json_ref&&) = delete; + ~json_ref() = default; + + value_type moved_or_copied() const + { + if (is_rvalue) + { + return std::move(*value_ref); + } + return *value_ref; + } + + value_type const& operator*() const + { + return *static_cast<value_type const*>(value_ref); + } + + value_type const* operator->() const + { + return static_cast<value_type const*>(value_ref); + } + + private: + mutable value_type owned_value = nullptr; + value_type* value_ref = nullptr; + const bool is_rvalue; +}; +} // namespace detail +} // namespace nlohmann + +// #include <nlohmann/detail/macro_scope.hpp> + +// #include <nlohmann/detail/meta/cpp_future.hpp> + +// #include <nlohmann/detail/meta/type_traits.hpp> + +// #include <nlohmann/detail/output/binary_writer.hpp> + + +#include <algorithm> // reverse +#include <array> // array +#include <cstdint> // uint8_t, uint16_t, uint32_t, uint64_t +#include <cstring> // memcpy +#include <limits> // numeric_limits +#include <string> // string + +// #include <nlohmann/detail/input/binary_reader.hpp> + +// #include <nlohmann/detail/output/output_adapters.hpp> + + +#include <algorithm> // copy +#include <cstddef> // size_t +#include <ios> // streamsize +#include <iterator> // back_inserter +#include <memory> // shared_ptr, make_shared +#include <ostream> // basic_ostream +#include <string> // basic_string +#include <vector> // vector + +namespace nlohmann +{ +namespace detail +{ +/// abstract output adapter interface +template<typename CharType> struct output_adapter_protocol +{ + virtual void write_character(CharType c) = 0; + virtual void write_characters(const CharType* s, std::size_t length) = 0; + virtual ~output_adapter_protocol() = default; +}; + +/// a type to simplify interfaces +template<typename CharType> +using output_adapter_t = std::shared_ptr<output_adapter_protocol<CharType>>; + +/// output adapter for byte vectors +template<typename CharType> +class output_vector_adapter : public output_adapter_protocol<CharType> +{ + public: + explicit output_vector_adapter(std::vector<CharType>& vec) noexcept + : v(vec) + {} + + void write_character(CharType c) override + { + v.push_back(c); + } + + void write_characters(const CharType* s, std::size_t length) override + { + std::copy(s, s + length, std::back_inserter(v)); + } + + private: + std::vector<CharType>& v; +}; + +/// output adapter for output streams +template<typename CharType> +class output_stream_adapter : public output_adapter_protocol<CharType> +{ + public: + explicit output_stream_adapter(std::basic_ostream<CharType>& s) noexcept + : stream(s) + {} + + void write_character(CharType c) override + { + stream.put(c); + } + + void write_characters(const CharType* s, std::size_t length) override + { + stream.write(s, static_cast<std::streamsize>(length)); + } + + private: + std::basic_ostream<CharType>& stream; +}; + +/// output adapter for basic_string +template<typename CharType, typename StringType = std::basic_string<CharType>> +class output_string_adapter : public output_adapter_protocol<CharType> +{ + public: + explicit output_string_adapter(StringType& s) noexcept + : str(s) + {} + + void write_character(CharType c) override + { + str.push_back(c); + } + + void write_characters(const CharType* s, std::size_t length) override + { + str.append(s, length); + } + + private: + StringType& str; +}; + +template<typename CharType, typename StringType = std::basic_string<CharType>> +class output_adapter +{ + public: + output_adapter(std::vector<CharType>& vec) + : oa(std::make_shared<output_vector_adapter<CharType>>(vec)) {} + + output_adapter(std::basic_ostream<CharType>& s) + : oa(std::make_shared<output_stream_adapter<CharType>>(s)) {} + + output_adapter(StringType& s) + : oa(std::make_shared<output_string_adapter<CharType, StringType>>(s)) {} + + operator output_adapter_t<CharType>() + { + return oa; + } + + private: + output_adapter_t<CharType> oa = nullptr; +}; +} // namespace detail +} // namespace nlohmann + + +namespace nlohmann +{ +namespace detail +{ +/////////////////// +// binary writer // +/////////////////// + +/*! +@brief serialization to CBOR and MessagePack values +*/ +template<typename BasicJsonType, typename CharType> +class binary_writer +{ + using string_t = typename BasicJsonType::string_t; + + public: + /*! + @brief create a binary writer + + @param[in] adapter output adapter to write to + */ + explicit binary_writer(output_adapter_t<CharType> adapter) : oa(adapter) + { + assert(oa); + } + + /*! + @param[in] j JSON value to serialize + @pre j.type() == value_t::object + */ + void write_bson(const BasicJsonType& j) + { + switch (j.type()) + { + case value_t::object: + { + write_bson_object(*j.m_value.object); + break; + } + + default: + { + JSON_THROW(type_error::create(317, "to serialize to BSON, top-level type must be object, but is " + std::string(j.type_name()))); + } + } + } + + /*! + @param[in] j JSON value to serialize + */ + void write_cbor(const BasicJsonType& j) + { + switch (j.type()) + { + case value_t::null: + { + oa->write_character(to_char_type(0xF6)); + break; + } + + case value_t::boolean: + { + oa->write_character(j.m_value.boolean + ? to_char_type(0xF5) + : to_char_type(0xF4)); + break; + } + + case value_t::number_integer: + { + if (j.m_value.number_integer >= 0) + { + // CBOR does not differentiate between positive signed + // integers and unsigned integers. Therefore, we used the + // code from the value_t::number_unsigned case here. + if (j.m_value.number_integer <= 0x17) + { + write_number(static_cast<std::uint8_t>(j.m_value.number_integer)); + } + else if (j.m_value.number_integer <= (std::numeric_limits<std::uint8_t>::max)()) + { + oa->write_character(to_char_type(0x18)); + write_number(static_cast<std::uint8_t>(j.m_value.number_integer)); + } + else if (j.m_value.number_integer <= (std::numeric_limits<std::uint16_t>::max)()) + { + oa->write_character(to_char_type(0x19)); + write_number(static_cast<std::uint16_t>(j.m_value.number_integer)); + } + else if (j.m_value.number_integer <= (std::numeric_limits<std::uint32_t>::max)()) + { + oa->write_character(to_char_type(0x1A)); + write_number(static_cast<std::uint32_t>(j.m_value.number_integer)); + } + else + { + oa->write_character(to_char_type(0x1B)); + write_number(static_cast<std::uint64_t>(j.m_value.number_integer)); + } + } + else + { + // The conversions below encode the sign in the first + // byte, and the value is converted to a positive number. + const auto positive_number = -1 - j.m_value.number_integer; + if (j.m_value.number_integer >= -24) + { + write_number(static_cast<std::uint8_t>(0x20 + positive_number)); + } + else if (positive_number <= (std::numeric_limits<std::uint8_t>::max)()) + { + oa->write_character(to_char_type(0x38)); + write_number(static_cast<std::uint8_t>(positive_number)); + } + else if (positive_number <= (std::numeric_limits<std::uint16_t>::max)()) + { + oa->write_character(to_char_type(0x39)); + write_number(static_cast<std::uint16_t>(positive_number)); + } + else if (positive_number <= (std::numeric_limits<std::uint32_t>::max)()) + { + oa->write_character(to_char_type(0x3A)); + write_number(static_cast<std::uint32_t>(positive_number)); + } + else + { + oa->write_character(to_char_type(0x3B)); + write_number(static_cast<std::uint64_t>(positive_number)); + } + } + break; + } + + case value_t::number_unsigned: + { + if (j.m_value.number_unsigned <= 0x17) + { + write_number(static_cast<std::uint8_t>(j.m_value.number_unsigned)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits<std::uint8_t>::max)()) + { + oa->write_character(to_char_type(0x18)); + write_number(static_cast<std::uint8_t>(j.m_value.number_unsigned)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits<std::uint16_t>::max)()) + { + oa->write_character(to_char_type(0x19)); + write_number(static_cast<std::uint16_t>(j.m_value.number_unsigned)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits<std::uint32_t>::max)()) + { + oa->write_character(to_char_type(0x1A)); + write_number(static_cast<std::uint32_t>(j.m_value.number_unsigned)); + } + else + { + oa->write_character(to_char_type(0x1B)); + write_number(static_cast<std::uint64_t>(j.m_value.number_unsigned)); + } + break; + } + + case value_t::number_float: + { + oa->write_character(get_cbor_float_prefix(j.m_value.number_float)); + write_number(j.m_value.number_float); + break; + } + + case value_t::string: + { + // step 1: write control byte and the string length + const auto N = j.m_value.string->size(); + if (N <= 0x17) + { + write_number(static_cast<std::uint8_t>(0x60 + N)); + } + else if (N <= (std::numeric_limits<std::uint8_t>::max)()) + { + oa->write_character(to_char_type(0x78)); + write_number(static_cast<std::uint8_t>(N)); + } + else if (N <= (std::numeric_limits<std::uint16_t>::max)()) + { + oa->write_character(to_char_type(0x79)); + write_number(static_cast<std::uint16_t>(N)); + } + else if (N <= (std::numeric_limits<std::uint32_t>::max)()) + { + oa->write_character(to_char_type(0x7A)); + write_number(static_cast<std::uint32_t>(N)); + } + // LCOV_EXCL_START + else if (N <= (std::numeric_limits<std::uint64_t>::max)()) + { + oa->write_character(to_char_type(0x7B)); + write_number(static_cast<std::uint64_t>(N)); + } + // LCOV_EXCL_STOP + + // step 2: write the string + oa->write_characters( + reinterpret_cast<const CharType*>(j.m_value.string->c_str()), + j.m_value.string->size()); + break; + } + + case value_t::array: + { + // step 1: write control byte and the array size + const auto N = j.m_value.array->size(); + if (N <= 0x17) + { + write_number(static_cast<std::uint8_t>(0x80 + N)); + } + else if (N <= (std::numeric_limits<std::uint8_t>::max)()) + { + oa->write_character(to_char_type(0x98)); + write_number(static_cast<std::uint8_t>(N)); + } + else if (N <= (std::numeric_limits<std::uint16_t>::max)()) + { + oa->write_character(to_char_type(0x99)); + write_number(static_cast<std::uint16_t>(N)); + } + else if (N <= (std::numeric_limits<std::uint32_t>::max)()) + { + oa->write_character(to_char_type(0x9A)); + write_number(static_cast<std::uint32_t>(N)); + } + // LCOV_EXCL_START + else if (N <= (std::numeric_limits<std::uint64_t>::max)()) + { + oa->write_character(to_char_type(0x9B)); + write_number(static_cast<std::uint64_t>(N)); + } + // LCOV_EXCL_STOP + + // step 2: write each element + for (const auto& el : *j.m_value.array) + { + write_cbor(el); + } + break; + } + + case value_t::object: + { + // step 1: write control byte and the object size + const auto N = j.m_value.object->size(); + if (N <= 0x17) + { + write_number(static_cast<std::uint8_t>(0xA0 + N)); + } + else if (N <= (std::numeric_limits<std::uint8_t>::max)()) + { + oa->write_character(to_char_type(0xB8)); + write_number(static_cast<std::uint8_t>(N)); + } + else if (N <= (std::numeric_limits<std::uint16_t>::max)()) + { + oa->write_character(to_char_type(0xB9)); + write_number(static_cast<std::uint16_t>(N)); + } + else if (N <= (std::numeric_limits<std::uint32_t>::max)()) + { + oa->write_character(to_char_type(0xBA)); + write_number(static_cast<std::uint32_t>(N)); + } + // LCOV_EXCL_START + else if (N <= (std::numeric_limits<std::uint64_t>::max)()) + { + oa->write_character(to_char_type(0xBB)); + write_number(static_cast<std::uint64_t>(N)); + } + // LCOV_EXCL_STOP + + // step 2: write each element + for (const auto& el : *j.m_value.object) + { + write_cbor(el.first); + write_cbor(el.second); + } + break; + } + + default: + break; + } + } + + /*! + @param[in] j JSON value to serialize + */ + void write_msgpack(const BasicJsonType& j) + { + switch (j.type()) + { + case value_t::null: // nil + { + oa->write_character(to_char_type(0xC0)); + break; + } + + case value_t::boolean: // true and false + { + oa->write_character(j.m_value.boolean + ? to_char_type(0xC3) + : to_char_type(0xC2)); + break; + } + + case value_t::number_integer: + { + if (j.m_value.number_integer >= 0) + { + // MessagePack does not differentiate between positive + // signed integers and unsigned integers. Therefore, we used + // the code from the value_t::number_unsigned case here. + if (j.m_value.number_unsigned < 128) + { + // positive fixnum + write_number(static_cast<std::uint8_t>(j.m_value.number_integer)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits<std::uint8_t>::max)()) + { + // uint 8 + oa->write_character(to_char_type(0xCC)); + write_number(static_cast<std::uint8_t>(j.m_value.number_integer)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits<std::uint16_t>::max)()) + { + // uint 16 + oa->write_character(to_char_type(0xCD)); + write_number(static_cast<std::uint16_t>(j.m_value.number_integer)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits<std::uint32_t>::max)()) + { + // uint 32 + oa->write_character(to_char_type(0xCE)); + write_number(static_cast<std::uint32_t>(j.m_value.number_integer)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits<std::uint64_t>::max)()) + { + // uint 64 + oa->write_character(to_char_type(0xCF)); + write_number(static_cast<std::uint64_t>(j.m_value.number_integer)); + } + } + else + { + if (j.m_value.number_integer >= -32) + { + // negative fixnum + write_number(static_cast<std::int8_t>(j.m_value.number_integer)); + } + else if (j.m_value.number_integer >= (std::numeric_limits<std::int8_t>::min)() and + j.m_value.number_integer <= (std::numeric_limits<std::int8_t>::max)()) + { + // int 8 + oa->write_character(to_char_type(0xD0)); + write_number(static_cast<std::int8_t>(j.m_value.number_integer)); + } + else if (j.m_value.number_integer >= (std::numeric_limits<std::int16_t>::min)() and + j.m_value.number_integer <= (std::numeric_limits<std::int16_t>::max)()) + { + // int 16 + oa->write_character(to_char_type(0xD1)); + write_number(static_cast<std::int16_t>(j.m_value.number_integer)); + } + else if (j.m_value.number_integer >= (std::numeric_limits<std::int32_t>::min)() and + j.m_value.number_integer <= (std::numeric_limits<std::int32_t>::max)()) + { + // int 32 + oa->write_character(to_char_type(0xD2)); + write_number(static_cast<std::int32_t>(j.m_value.number_integer)); + } + else if (j.m_value.number_integer >= (std::numeric_limits<std::int64_t>::min)() and + j.m_value.number_integer <= (std::numeric_limits<std::int64_t>::max)()) + { + // int 64 + oa->write_character(to_char_type(0xD3)); + write_number(static_cast<std::int64_t>(j.m_value.number_integer)); + } + } + break; + } + + case value_t::number_unsigned: + { + if (j.m_value.number_unsigned < 128) + { + // positive fixnum + write_number(static_cast<std::uint8_t>(j.m_value.number_integer)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits<std::uint8_t>::max)()) + { + // uint 8 + oa->write_character(to_char_type(0xCC)); + write_number(static_cast<std::uint8_t>(j.m_value.number_integer)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits<std::uint16_t>::max)()) + { + // uint 16 + oa->write_character(to_char_type(0xCD)); + write_number(static_cast<std::uint16_t>(j.m_value.number_integer)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits<std::uint32_t>::max)()) + { + // uint 32 + oa->write_character(to_char_type(0xCE)); + write_number(static_cast<std::uint32_t>(j.m_value.number_integer)); + } + else if (j.m_value.number_unsigned <= (std::numeric_limits<std::uint64_t>::max)()) + { + // uint 64 + oa->write_character(to_char_type(0xCF)); + write_number(static_cast<std::uint64_t>(j.m_value.number_integer)); + } + break; + } + + case value_t::number_float: + { + oa->write_character(get_msgpack_float_prefix(j.m_value.number_float)); + write_number(j.m_value.number_float); + break; + } + + case value_t::string: + { + // step 1: write control byte and the string length + const auto N = j.m_value.string->size(); + if (N <= 31) + { + // fixstr + write_number(static_cast<std::uint8_t>(0xA0 | N)); + } + else if (N <= (std::numeric_limits<std::uint8_t>::max)()) + { + // str 8 + oa->write_character(to_char_type(0xD9)); + write_number(static_cast<std::uint8_t>(N)); + } + else if (N <= (std::numeric_limits<std::uint16_t>::max)()) + { + // str 16 + oa->write_character(to_char_type(0xDA)); + write_number(static_cast<std::uint16_t>(N)); + } + else if (N <= (std::numeric_limits<std::uint32_t>::max)()) + { + // str 32 + oa->write_character(to_char_type(0xDB)); + write_number(static_cast<std::uint32_t>(N)); + } + + // step 2: write the string + oa->write_characters( + reinterpret_cast<const CharType*>(j.m_value.string->c_str()), + j.m_value.string->size()); + break; + } + + case value_t::array: + { + // step 1: write control byte and the array size + const auto N = j.m_value.array->size(); + if (N <= 15) + { + // fixarray + write_number(static_cast<std::uint8_t>(0x90 | N)); + } + else if (N <= (std::numeric_limits<std::uint16_t>::max)()) + { + // array 16 + oa->write_character(to_char_type(0xDC)); + write_number(static_cast<std::uint16_t>(N)); + } + else if (N <= (std::numeric_limits<std::uint32_t>::max)()) + { + // array 32 + oa->write_character(to_char_type(0xDD)); + write_number(static_cast<std::uint32_t>(N)); + } + + // step 2: write each element + for (const auto& el : *j.m_value.array) + { + write_msgpack(el); + } + break; + } + + case value_t::object: + { + // step 1: write control byte and the object size + const auto N = j.m_value.object->size(); + if (N <= 15) + { + // fixmap + write_number(static_cast<std::uint8_t>(0x80 | (N & 0xF))); + } + else if (N <= (std::numeric_limits<std::uint16_t>::max)()) + { + // map 16 + oa->write_character(to_char_type(0xDE)); + write_number(static_cast<std::uint16_t>(N)); + } + else if (N <= (std::numeric_limits<std::uint32_t>::max)()) + { + // map 32 + oa->write_character(to_char_type(0xDF)); + write_number(static_cast<std::uint32_t>(N)); + } + + // step 2: write each element + for (const auto& el : *j.m_value.object) + { + write_msgpack(el.first); + write_msgpack(el.second); + } + break; + } + + default: + break; + } + } + + /*! + @param[in] j JSON value to serialize + @param[in] use_count whether to use '#' prefixes (optimized format) + @param[in] use_type whether to use '$' prefixes (optimized format) + @param[in] add_prefix whether prefixes need to be used for this value + */ + void write_ubjson(const BasicJsonType& j, const bool use_count, + const bool use_type, const bool add_prefix = true) + { + switch (j.type()) + { + case value_t::null: + { + if (add_prefix) + { + oa->write_character(to_char_type('Z')); + } + break; + } + + case value_t::boolean: + { + if (add_prefix) + { + oa->write_character(j.m_value.boolean + ? to_char_type('T') + : to_char_type('F')); + } + break; + } + + case value_t::number_integer: + { + write_number_with_ubjson_prefix(j.m_value.number_integer, add_prefix); + break; + } + + case value_t::number_unsigned: + { + write_number_with_ubjson_prefix(j.m_value.number_unsigned, add_prefix); + break; + } + + case value_t::number_float: + { + write_number_with_ubjson_prefix(j.m_value.number_float, add_prefix); + break; + } + + case value_t::string: + { + if (add_prefix) + { + oa->write_character(to_char_type('S')); + } + write_number_with_ubjson_prefix(j.m_value.string->size(), true); + oa->write_characters( + reinterpret_cast<const CharType*>(j.m_value.string->c_str()), + j.m_value.string->size()); + break; + } + + case value_t::array: + { + if (add_prefix) + { + oa->write_character(to_char_type('[')); + } + + bool prefix_required = true; + if (use_type and not j.m_value.array->empty()) + { + assert(use_count); + const CharType first_prefix = ubjson_prefix(j.front()); + const bool same_prefix = std::all_of(j.begin() + 1, j.end(), + [this, first_prefix](const BasicJsonType & v) + { + return ubjson_prefix(v) == first_prefix; + }); + + if (same_prefix) + { + prefix_required = false; + oa->write_character(to_char_type('$')); + oa->write_character(first_prefix); + } + } + + if (use_count) + { + oa->write_character(to_char_type('#')); + write_number_with_ubjson_prefix(j.m_value.array->size(), true); + } + + for (const auto& el : *j.m_value.array) + { + write_ubjson(el, use_count, use_type, prefix_required); + } + + if (not use_count) + { + oa->write_character(to_char_type(']')); + } + + break; + } + + case value_t::object: + { + if (add_prefix) + { + oa->write_character(to_char_type('{')); + } + + bool prefix_required = true; + if (use_type and not j.m_value.object->empty()) + { + assert(use_count); + const CharType first_prefix = ubjson_prefix(j.front()); + const bool same_prefix = std::all_of(j.begin(), j.end(), + [this, first_prefix](const BasicJsonType & v) + { + return ubjson_prefix(v) == first_prefix; + }); + + if (same_prefix) + { + prefix_required = false; + oa->write_character(to_char_type('$')); + oa->write_character(first_prefix); + } + } + + if (use_count) + { + oa->write_character(to_char_type('#')); + write_number_with_ubjson_prefix(j.m_value.object->size(), true); + } + + for (const auto& el : *j.m_value.object) + { + write_number_with_ubjson_prefix(el.first.size(), true); + oa->write_characters( + reinterpret_cast<const CharType*>(el.first.c_str()), + el.first.size()); + write_ubjson(el.second, use_count, use_type, prefix_required); + } + + if (not use_count) + { + oa->write_character(to_char_type('}')); + } + + break; + } + + default: + break; + } + } + + private: + ////////// + // BSON // + ////////// + + /*! + @return The size of a BSON document entry header, including the id marker + and the entry name size (and its null-terminator). + */ + static std::size_t calc_bson_entry_header_size(const string_t& name) + { + const auto it = name.find(static_cast<typename string_t::value_type>(0)); + if (JSON_UNLIKELY(it != BasicJsonType::string_t::npos)) + { + JSON_THROW(out_of_range::create(409, + "BSON key cannot contain code point U+0000 (at byte " + std::to_string(it) + ")")); + } + + return /*id*/ 1ul + name.size() + /*zero-terminator*/1u; + } + + /*! + @brief Writes the given @a element_type and @a name to the output adapter + */ + void write_bson_entry_header(const string_t& name, + const std::uint8_t element_type) + { + oa->write_character(to_char_type(element_type)); // boolean + oa->write_characters( + reinterpret_cast<const CharType*>(name.c_str()), + name.size() + 1u); + } + + /*! + @brief Writes a BSON element with key @a name and boolean value @a value + */ + void write_bson_boolean(const string_t& name, + const bool value) + { + write_bson_entry_header(name, 0x08); + oa->write_character(value ? to_char_type(0x01) : to_char_type(0x00)); + } + + /*! + @brief Writes a BSON element with key @a name and double value @a value + */ + void write_bson_double(const string_t& name, + const double value) + { + write_bson_entry_header(name, 0x01); + write_number<double, true>(value); + } + + /*! + @return The size of the BSON-encoded string in @a value + */ + static std::size_t calc_bson_string_size(const string_t& value) + { + return sizeof(std::int32_t) + value.size() + 1ul; + } + + /*! + @brief Writes a BSON element with key @a name and string value @a value + */ + void write_bson_string(const string_t& name, + const string_t& value) + { + write_bson_entry_header(name, 0x02); + + write_number<std::int32_t, true>(static_cast<std::int32_t>(value.size() + 1ul)); + oa->write_characters( + reinterpret_cast<const CharType*>(value.c_str()), + value.size() + 1); + } + + /*! + @brief Writes a BSON element with key @a name and null value + */ + void write_bson_null(const string_t& name) + { + write_bson_entry_header(name, 0x0A); + } + + /*! + @return The size of the BSON-encoded integer @a value + */ + static std::size_t calc_bson_integer_size(const std::int64_t value) + { + return (std::numeric_limits<std::int32_t>::min)() <= value and value <= (std::numeric_limits<std::int32_t>::max)() + ? sizeof(std::int32_t) + : sizeof(std::int64_t); + } + + /*! + @brief Writes a BSON element with key @a name and integer @a value + */ + void write_bson_integer(const string_t& name, + const std::int64_t value) + { + if ((std::numeric_limits<std::int32_t>::min)() <= value and value <= (std::numeric_limits<std::int32_t>::max)()) + { + write_bson_entry_header(name, 0x10); // int32 + write_number<std::int32_t, true>(static_cast<std::int32_t>(value)); + } + else + { + write_bson_entry_header(name, 0x12); // int64 + write_number<std::int64_t, true>(static_cast<std::int64_t>(value)); + } + } + + /*! + @return The size of the BSON-encoded unsigned integer in @a j + */ + static constexpr std::size_t calc_bson_unsigned_size(const std::uint64_t value) noexcept + { + return (value <= static_cast<std::uint64_t>((std::numeric_limits<std::int32_t>::max)())) + ? sizeof(std::int32_t) + : sizeof(std::int64_t); + } + + /*! + @brief Writes a BSON element with key @a name and unsigned @a value + */ + void write_bson_unsigned(const string_t& name, + const std::uint64_t value) + { + if (value <= static_cast<std::uint64_t>((std::numeric_limits<std::int32_t>::max)())) + { + write_bson_entry_header(name, 0x10 /* int32 */); + write_number<std::int32_t, true>(static_cast<std::int32_t>(value)); + } + else if (value <= static_cast<std::uint64_t>((std::numeric_limits<std::int64_t>::max)())) + { + write_bson_entry_header(name, 0x12 /* int64 */); + write_number<std::int64_t, true>(static_cast<std::int64_t>(value)); + } + else + { + JSON_THROW(out_of_range::create(407, "integer number " + std::to_string(value) + " cannot be represented by BSON as it does not fit int64")); + } + } + + /*! + @brief Writes a BSON element with key @a name and object @a value + */ + void write_bson_object_entry(const string_t& name, + const typename BasicJsonType::object_t& value) + { + write_bson_entry_header(name, 0x03); // object + write_bson_object(value); + } + + /*! + @return The size of the BSON-encoded array @a value + */ + static std::size_t calc_bson_array_size(const typename BasicJsonType::array_t& value) + { + std::size_t embedded_document_size = 0ul; + std::size_t array_index = 0ul; + + for (const auto& el : value) + { + embedded_document_size += calc_bson_element_size(std::to_string(array_index++), el); + } + + return sizeof(std::int32_t) + embedded_document_size + 1ul; + } + + /*! + @brief Writes a BSON element with key @a name and array @a value + */ + void write_bson_array(const string_t& name, + const typename BasicJsonType::array_t& value) + { + write_bson_entry_header(name, 0x04); // array + write_number<std::int32_t, true>(static_cast<std::int32_t>(calc_bson_array_size(value))); + + std::size_t array_index = 0ul; + + for (const auto& el : value) + { + write_bson_element(std::to_string(array_index++), el); + } + + oa->write_character(to_char_type(0x00)); + } + + /*! + @brief Calculates the size necessary to serialize the JSON value @a j with its @a name + @return The calculated size for the BSON document entry for @a j with the given @a name. + */ + static std::size_t calc_bson_element_size(const string_t& name, + const BasicJsonType& j) + { + const auto header_size = calc_bson_entry_header_size(name); + switch (j.type()) + { + case value_t::object: + return header_size + calc_bson_object_size(*j.m_value.object); + + case value_t::array: + return header_size + calc_bson_array_size(*j.m_value.array); + + case value_t::boolean: + return header_size + 1ul; + + case value_t::number_float: + return header_size + 8ul; + + case value_t::number_integer: + return header_size + calc_bson_integer_size(j.m_value.number_integer); + + case value_t::number_unsigned: + return header_size + calc_bson_unsigned_size(j.m_value.number_unsigned); + + case value_t::string: + return header_size + calc_bson_string_size(*j.m_value.string); + + case value_t::null: + return header_size + 0ul; + + // LCOV_EXCL_START + default: + assert(false); + return 0ul; + // LCOV_EXCL_STOP + } + } + + /*! + @brief Serializes the JSON value @a j to BSON and associates it with the + key @a name. + @param name The name to associate with the JSON entity @a j within the + current BSON document + @return The size of the BSON entry + */ + void write_bson_element(const string_t& name, + const BasicJsonType& j) + { + switch (j.type()) + { + case value_t::object: + return write_bson_object_entry(name, *j.m_value.object); + + case value_t::array: + return write_bson_array(name, *j.m_value.array); + + case value_t::boolean: + return write_bson_boolean(name, j.m_value.boolean); + + case value_t::number_float: + return write_bson_double(name, j.m_value.number_float); + + case value_t::number_integer: + return write_bson_integer(name, j.m_value.number_integer); + + case value_t::number_unsigned: + return write_bson_unsigned(name, j.m_value.number_unsigned); + + case value_t::string: + return write_bson_string(name, *j.m_value.string); + + case value_t::null: + return write_bson_null(name); + + // LCOV_EXCL_START + default: + assert(false); + return; + // LCOV_EXCL_STOP + } + } + + /*! + @brief Calculates the size of the BSON serialization of the given + JSON-object @a j. + @param[in] j JSON value to serialize + @pre j.type() == value_t::object + */ + static std::size_t calc_bson_object_size(const typename BasicJsonType::object_t& value) + { + std::size_t document_size = std::accumulate(value.begin(), value.end(), 0ul, + [](size_t result, const typename BasicJsonType::object_t::value_type & el) + { + return result += calc_bson_element_size(el.first, el.second); + }); + + return sizeof(std::int32_t) + document_size + 1ul; + } + + /*! + @param[in] j JSON value to serialize + @pre j.type() == value_t::object + */ + void write_bson_object(const typename BasicJsonType::object_t& value) + { + write_number<std::int32_t, true>(static_cast<std::int32_t>(calc_bson_object_size(value))); + + for (const auto& el : value) + { + write_bson_element(el.first, el.second); + } + + oa->write_character(to_char_type(0x00)); + } + + ////////// + // CBOR // + ////////// + + static constexpr CharType get_cbor_float_prefix(float /*unused*/) + { + return to_char_type(0xFA); // Single-Precision Float + } + + static constexpr CharType get_cbor_float_prefix(double /*unused*/) + { + return to_char_type(0xFB); // Double-Precision Float + } + + ///////////// + // MsgPack // + ///////////// + + static constexpr CharType get_msgpack_float_prefix(float /*unused*/) + { + return to_char_type(0xCA); // float 32 + } + + static constexpr CharType get_msgpack_float_prefix(double /*unused*/) + { + return to_char_type(0xCB); // float 64 + } + + //////////// + // UBJSON // + //////////// + + // UBJSON: write number (floating point) + template<typename NumberType, typename std::enable_if< + std::is_floating_point<NumberType>::value, int>::type = 0> + void write_number_with_ubjson_prefix(const NumberType n, + const bool add_prefix) + { + if (add_prefix) + { + oa->write_character(get_ubjson_float_prefix(n)); + } + write_number(n); + } + + // UBJSON: write number (unsigned integer) + template<typename NumberType, typename std::enable_if< + std::is_unsigned<NumberType>::value, int>::type = 0> + void write_number_with_ubjson_prefix(const NumberType n, + const bool add_prefix) + { + if (n <= static_cast<std::uint64_t>((std::numeric_limits<std::int8_t>::max)())) + { + if (add_prefix) + { + oa->write_character(to_char_type('i')); // int8 + } + write_number(static_cast<std::uint8_t>(n)); + } + else if (n <= (std::numeric_limits<std::uint8_t>::max)()) + { + if (add_prefix) + { + oa->write_character(to_char_type('U')); // uint8 + } + write_number(static_cast<std::uint8_t>(n)); + } + else if (n <= static_cast<std::uint64_t>((std::numeric_limits<std::int16_t>::max)())) + { + if (add_prefix) + { + oa->write_character(to_char_type('I')); // int16 + } + write_number(static_cast<std::int16_t>(n)); + } + else if (n <= static_cast<std::uint64_t>((std::numeric_limits<std::int32_t>::max)())) + { + if (add_prefix) + { + oa->write_character(to_char_type('l')); // int32 + } + write_number(static_cast<std::int32_t>(n)); + } + else if (n <= static_cast<std::uint64_t>((std::numeric_limits<std::int64_t>::max)())) + { + if (add_prefix) + { + oa->write_character(to_char_type('L')); // int64 + } + write_number(static_cast<std::int64_t>(n)); + } + else + { + JSON_THROW(out_of_range::create(407, "integer number " + std::to_string(n) + " cannot be represented by UBJSON as it does not fit int64")); + } + } + + // UBJSON: write number (signed integer) + template<typename NumberType, typename std::enable_if< + std::is_signed<NumberType>::value and + not std::is_floating_point<NumberType>::value, int>::type = 0> + void write_number_with_ubjson_prefix(const NumberType n, + const bool add_prefix) + { + if ((std::numeric_limits<std::int8_t>::min)() <= n and n <= (std::numeric_limits<std::int8_t>::max)()) + { + if (add_prefix) + { + oa->write_character(to_char_type('i')); // int8 + } + write_number(static_cast<std::int8_t>(n)); + } + else if (static_cast<std::int64_t>((std::numeric_limits<std::uint8_t>::min)()) <= n and n <= static_cast<std::int64_t>((std::numeric_limits<std::uint8_t>::max)())) + { + if (add_prefix) + { + oa->write_character(to_char_type('U')); // uint8 + } + write_number(static_cast<std::uint8_t>(n)); + } + else if ((std::numeric_limits<std::int16_t>::min)() <= n and n <= (std::numeric_limits<std::int16_t>::max)()) + { + if (add_prefix) + { + oa->write_character(to_char_type('I')); // int16 + } + write_number(static_cast<std::int16_t>(n)); + } + else if ((std::numeric_limits<std::int32_t>::min)() <= n and n <= (std::numeric_limits<std::int32_t>::max)()) + { + if (add_prefix) + { + oa->write_character(to_char_type('l')); // int32 + } + write_number(static_cast<std::int32_t>(n)); + } + else if ((std::numeric_limits<std::int64_t>::min)() <= n and n <= (std::numeric_limits<std::int64_t>::max)()) + { + if (add_prefix) + { + oa->write_character(to_char_type('L')); // int64 + } + write_number(static_cast<std::int64_t>(n)); + } + // LCOV_EXCL_START + else + { + JSON_THROW(out_of_range::create(407, "integer number " + std::to_string(n) + " cannot be represented by UBJSON as it does not fit int64")); + } + // LCOV_EXCL_STOP + } + + /*! + @brief determine the type prefix of container values + + @note This function does not need to be 100% accurate when it comes to + integer limits. In case a number exceeds the limits of int64_t, + this will be detected by a later call to function + write_number_with_ubjson_prefix. Therefore, we return 'L' for any + value that does not fit the previous limits. + */ + CharType ubjson_prefix(const BasicJsonType& j) const noexcept + { + switch (j.type()) + { + case value_t::null: + return 'Z'; + + case value_t::boolean: + return j.m_value.boolean ? 'T' : 'F'; + + case value_t::number_integer: + { + if ((std::numeric_limits<std::int8_t>::min)() <= j.m_value.number_integer and j.m_value.number_integer <= (std::numeric_limits<std::int8_t>::max)()) + { + return 'i'; + } + if ((std::numeric_limits<std::uint8_t>::min)() <= j.m_value.number_integer and j.m_value.number_integer <= (std::numeric_limits<std::uint8_t>::max)()) + { + return 'U'; + } + if ((std::numeric_limits<std::int16_t>::min)() <= j.m_value.number_integer and j.m_value.number_integer <= (std::numeric_limits<std::int16_t>::max)()) + { + return 'I'; + } + if ((std::numeric_limits<std::int32_t>::min)() <= j.m_value.number_integer and j.m_value.number_integer <= (std::numeric_limits<std::int32_t>::max)()) + { + return 'l'; + } + // no check and assume int64_t (see note above) + return 'L'; + } + + case value_t::number_unsigned: + { + if (j.m_value.number_unsigned <= (std::numeric_limits<std::int8_t>::max)()) + { + return 'i'; + } + if (j.m_value.number_unsigned <= (std::numeric_limits<std::uint8_t>::max)()) + { + return 'U'; + } + if (j.m_value.number_unsigned <= (std::numeric_limits<std::int16_t>::max)()) + { + return 'I'; + } + if (j.m_value.number_unsigned <= (std::numeric_limits<std::int32_t>::max)()) + { + return 'l'; + } + // no check and assume int64_t (see note above) + return 'L'; + } + + case value_t::number_float: + return get_ubjson_float_prefix(j.m_value.number_float); + + case value_t::string: + return 'S'; + + case value_t::array: + return '['; + + case value_t::object: + return '{'; + + default: // discarded values + return 'N'; + } + } + + static constexpr CharType get_ubjson_float_prefix(float /*unused*/) + { + return 'd'; // float 32 + } + + static constexpr CharType get_ubjson_float_prefix(double /*unused*/) + { + return 'D'; // float 64 + } + + /////////////////////// + // Utility functions // + /////////////////////// + + /* + @brief write a number to output input + @param[in] n number of type @a NumberType + @tparam NumberType the type of the number + @tparam OutputIsLittleEndian Set to true if output data is + required to be little endian + + @note This function needs to respect the system's endianess, because bytes + in CBOR, MessagePack, and UBJSON are stored in network order (big + endian) and therefore need reordering on little endian systems. + */ + template<typename NumberType, bool OutputIsLittleEndian = false> + void write_number(const NumberType n) + { + // step 1: write number to array of length NumberType + std::array<CharType, sizeof(NumberType)> vec; + std::memcpy(vec.data(), &n, sizeof(NumberType)); + + // step 2: write array to output (with possible reordering) + if (is_little_endian != OutputIsLittleEndian) + { + // reverse byte order prior to conversion if necessary + std::reverse(vec.begin(), vec.end()); + } + + oa->write_characters(vec.data(), sizeof(NumberType)); + } + + public: + // The following to_char_type functions are implement the conversion + // between uint8_t and CharType. In case CharType is not unsigned, + // such a conversion is required to allow values greater than 128. + // See <https://github.com/nlohmann/json/issues/1286> for a discussion. + template < typename C = CharType, + enable_if_t < std::is_signed<C>::value and std::is_signed<char>::value > * = nullptr > + static constexpr CharType to_char_type(std::uint8_t x) noexcept + { + return *reinterpret_cast<char*>(&x); + } + + template < typename C = CharType, + enable_if_t < std::is_signed<C>::value and std::is_unsigned<char>::value > * = nullptr > + static CharType to_char_type(std::uint8_t x) noexcept + { + static_assert(sizeof(std::uint8_t) == sizeof(CharType), "size of CharType must be equal to std::uint8_t"); + static_assert(std::is_pod<CharType>::value, "CharType must be POD"); + CharType result; + std::memcpy(&result, &x, sizeof(x)); + return result; + } + + template<typename C = CharType, + enable_if_t<std::is_unsigned<C>::value>* = nullptr> + static constexpr CharType to_char_type(std::uint8_t x) noexcept + { + return x; + } + + template < typename InputCharType, typename C = CharType, + enable_if_t < + std::is_signed<C>::value and + std::is_signed<char>::value and + std::is_same<char, typename std::remove_cv<InputCharType>::type>::value + > * = nullptr > + static constexpr CharType to_char_type(InputCharType x) noexcept + { + return x; + } + + private: + /// whether we can assume little endianess + const bool is_little_endian = binary_reader<BasicJsonType>::little_endianess(); + + /// the output + output_adapter_t<CharType> oa = nullptr; +}; +} // namespace detail +} // namespace nlohmann + +// #include <nlohmann/detail/output/output_adapters.hpp> + +// #include <nlohmann/detail/output/serializer.hpp> + + +#include <algorithm> // reverse, remove, fill, find, none_of +#include <array> // array +#include <cassert> // assert +#include <ciso646> // and, or +#include <clocale> // localeconv, lconv +#include <cmath> // labs, isfinite, isnan, signbit +#include <cstddef> // size_t, ptrdiff_t +#include <cstdint> // uint8_t +#include <cstdio> // snprintf +#include <limits> // numeric_limits +#include <string> // string +#include <type_traits> // is_same +#include <utility> // move + +// #include <nlohmann/detail/conversions/to_chars.hpp> + + +#include <array> // array +#include <cassert> // assert +#include <ciso646> // or, and, not +#include <cmath> // signbit, isfinite +#include <cstdint> // intN_t, uintN_t +#include <cstring> // memcpy, memmove +#include <limits> // numeric_limits +#include <type_traits> // conditional + +namespace nlohmann +{ +namespace detail +{ + +/*! +@brief implements the Grisu2 algorithm for binary to decimal floating-point +conversion. + +This implementation is a slightly modified version of the reference +implementation which may be obtained from +http://florian.loitsch.com/publications (bench.tar.gz). + +The code is distributed under the MIT license, Copyright (c) 2009 Florian Loitsch. + +For a detailed description of the algorithm see: + +[1] Loitsch, "Printing Floating-Point Numbers Quickly and Accurately with + Integers", Proceedings of the ACM SIGPLAN 2010 Conference on Programming + Language Design and Implementation, PLDI 2010 +[2] Burger, Dybvig, "Printing Floating-Point Numbers Quickly and Accurately", + Proceedings of the ACM SIGPLAN 1996 Conference on Programming Language + Design and Implementation, PLDI 1996 +*/ +namespace dtoa_impl +{ + +template <typename Target, typename Source> +Target reinterpret_bits(const Source source) +{ + static_assert(sizeof(Target) == sizeof(Source), "size mismatch"); + + Target target; + std::memcpy(&target, &source, sizeof(Source)); + return target; +} + +struct diyfp // f * 2^e +{ + static constexpr int kPrecision = 64; // = q + + std::uint64_t f = 0; + int e = 0; + + constexpr diyfp(std::uint64_t f_, int e_) noexcept : f(f_), e(e_) {} + + /*! + @brief returns x - y + @pre x.e == y.e and x.f >= y.f + */ + static diyfp sub(const diyfp& x, const diyfp& y) noexcept + { + assert(x.e == y.e); + assert(x.f >= y.f); + + return {x.f - y.f, x.e}; + } + + /*! + @brief returns x * y + @note The result is rounded. (Only the upper q bits are returned.) + */ + static diyfp mul(const diyfp& x, const diyfp& y) noexcept + { + static_assert(kPrecision == 64, "internal error"); + + // Computes: + // f = round((x.f * y.f) / 2^q) + // e = x.e + y.e + q + + // Emulate the 64-bit * 64-bit multiplication: + // + // p = u * v + // = (u_lo + 2^32 u_hi) (v_lo + 2^32 v_hi) + // = (u_lo v_lo ) + 2^32 ((u_lo v_hi ) + (u_hi v_lo )) + 2^64 (u_hi v_hi ) + // = (p0 ) + 2^32 ((p1 ) + (p2 )) + 2^64 (p3 ) + // = (p0_lo + 2^32 p0_hi) + 2^32 ((p1_lo + 2^32 p1_hi) + (p2_lo + 2^32 p2_hi)) + 2^64 (p3 ) + // = (p0_lo ) + 2^32 (p0_hi + p1_lo + p2_lo ) + 2^64 (p1_hi + p2_hi + p3) + // = (p0_lo ) + 2^32 (Q ) + 2^64 (H ) + // = (p0_lo ) + 2^32 (Q_lo + 2^32 Q_hi ) + 2^64 (H ) + // + // (Since Q might be larger than 2^32 - 1) + // + // = (p0_lo + 2^32 Q_lo) + 2^64 (Q_hi + H) + // + // (Q_hi + H does not overflow a 64-bit int) + // + // = p_lo + 2^64 p_hi + + const std::uint64_t u_lo = x.f & 0xFFFFFFFFu; + const std::uint64_t u_hi = x.f >> 32u; + const std::uint64_t v_lo = y.f & 0xFFFFFFFFu; + const std::uint64_t v_hi = y.f >> 32u; + + const std::uint64_t p0 = u_lo * v_lo; + const std::uint64_t p1 = u_lo * v_hi; + const std::uint64_t p2 = u_hi * v_lo; + const std::uint64_t p3 = u_hi * v_hi; + + const std::uint64_t p0_hi = p0 >> 32u; + const std::uint64_t p1_lo = p1 & 0xFFFFFFFFu; + const std::uint64_t p1_hi = p1 >> 32u; + const std::uint64_t p2_lo = p2 & 0xFFFFFFFFu; + const std::uint64_t p2_hi = p2 >> 32u; + + std::uint64_t Q = p0_hi + p1_lo + p2_lo; + + // The full product might now be computed as + // + // p_hi = p3 + p2_hi + p1_hi + (Q >> 32) + // p_lo = p0_lo + (Q << 32) + // + // But in this particular case here, the full p_lo is not required. + // Effectively we only need to add the highest bit in p_lo to p_hi (and + // Q_hi + 1 does not overflow). + + Q += std::uint64_t{1} << (64u - 32u - 1u); // round, ties up + + const std::uint64_t h = p3 + p2_hi + p1_hi + (Q >> 32u); + + return {h, x.e + y.e + 64}; + } + + /*! + @brief normalize x such that the significand is >= 2^(q-1) + @pre x.f != 0 + */ + static diyfp normalize(diyfp x) noexcept + { + assert(x.f != 0); + + while ((x.f >> 63u) == 0) + { + x.f <<= 1u; + x.e--; + } + + return x; + } + + /*! + @brief normalize x such that the result has the exponent E + @pre e >= x.e and the upper e - x.e bits of x.f must be zero. + */ + static diyfp normalize_to(const diyfp& x, const int target_exponent) noexcept + { + const int delta = x.e - target_exponent; + + assert(delta >= 0); + assert(((x.f << delta) >> delta) == x.f); + + return {x.f << delta, target_exponent}; + } +}; + +struct boundaries +{ + diyfp w; + diyfp minus; + diyfp plus; +}; + +/*! +Compute the (normalized) diyfp representing the input number 'value' and its +boundaries. + +@pre value must be finite and positive +*/ +template <typename FloatType> +boundaries compute_boundaries(FloatType value) +{ + assert(std::isfinite(value)); + assert(value > 0); + + // Convert the IEEE representation into a diyfp. + // + // If v is denormal: + // value = 0.F * 2^(1 - bias) = ( F) * 2^(1 - bias - (p-1)) + // If v is normalized: + // value = 1.F * 2^(E - bias) = (2^(p-1) + F) * 2^(E - bias - (p-1)) + + static_assert(std::numeric_limits<FloatType>::is_iec559, + "internal error: dtoa_short requires an IEEE-754 floating-point implementation"); + + constexpr int kPrecision = std::numeric_limits<FloatType>::digits; // = p (includes the hidden bit) + constexpr int kBias = std::numeric_limits<FloatType>::max_exponent - 1 + (kPrecision - 1); + constexpr int kMinExp = 1 - kBias; + constexpr std::uint64_t kHiddenBit = std::uint64_t{1} << (kPrecision - 1); // = 2^(p-1) + + using bits_type = typename std::conditional<kPrecision == 24, std::uint32_t, std::uint64_t >::type; + + const std::uint64_t bits = reinterpret_bits<bits_type>(value); + const std::uint64_t E = bits >> (kPrecision - 1); + const std::uint64_t F = bits & (kHiddenBit - 1); + + const bool is_denormal = E == 0; + const diyfp v = is_denormal + ? diyfp(F, kMinExp) + : diyfp(F + kHiddenBit, static_cast<int>(E) - kBias); + + // Compute the boundaries m- and m+ of the floating-point value + // v = f * 2^e. + // + // Determine v- and v+, the floating-point predecessor and successor if v, + // respectively. + // + // v- = v - 2^e if f != 2^(p-1) or e == e_min (A) + // = v - 2^(e-1) if f == 2^(p-1) and e > e_min (B) + // + // v+ = v + 2^e + // + // Let m- = (v- + v) / 2 and m+ = (v + v+) / 2. All real numbers _strictly_ + // between m- and m+ round to v, regardless of how the input rounding + // algorithm breaks ties. + // + // ---+-------------+-------------+-------------+-------------+--- (A) + // v- m- v m+ v+ + // + // -----------------+------+------+-------------+-------------+--- (B) + // v- m- v m+ v+ + + const bool lower_boundary_is_closer = F == 0 and E > 1; + const diyfp m_plus = diyfp(2 * v.f + 1, v.e - 1); + const diyfp m_minus = lower_boundary_is_closer + ? diyfp(4 * v.f - 1, v.e - 2) // (B) + : diyfp(2 * v.f - 1, v.e - 1); // (A) + + // Determine the normalized w+ = m+. + const diyfp w_plus = diyfp::normalize(m_plus); + + // Determine w- = m- such that e_(w-) = e_(w+). + const diyfp w_minus = diyfp::normalize_to(m_minus, w_plus.e); + + return {diyfp::normalize(v), w_minus, w_plus}; +} + +// Given normalized diyfp w, Grisu needs to find a (normalized) cached +// power-of-ten c, such that the exponent of the product c * w = f * 2^e lies +// within a certain range [alpha, gamma] (Definition 3.2 from [1]) +// +// alpha <= e = e_c + e_w + q <= gamma +// +// or +// +// f_c * f_w * 2^alpha <= f_c 2^(e_c) * f_w 2^(e_w) * 2^q +// <= f_c * f_w * 2^gamma +// +// Since c and w are normalized, i.e. 2^(q-1) <= f < 2^q, this implies +// +// 2^(q-1) * 2^(q-1) * 2^alpha <= c * w * 2^q < 2^q * 2^q * 2^gamma +// +// or +// +// 2^(q - 2 + alpha) <= c * w < 2^(q + gamma) +// +// The choice of (alpha,gamma) determines the size of the table and the form of +// the digit generation procedure. Using (alpha,gamma)=(-60,-32) works out well +// in practice: +// +// The idea is to cut the number c * w = f * 2^e into two parts, which can be +// processed independently: An integral part p1, and a fractional part p2: +// +// f * 2^e = ( (f div 2^-e) * 2^-e + (f mod 2^-e) ) * 2^e +// = (f div 2^-e) + (f mod 2^-e) * 2^e +// = p1 + p2 * 2^e +// +// The conversion of p1 into decimal form requires a series of divisions and +// modulos by (a power of) 10. These operations are faster for 32-bit than for +// 64-bit integers, so p1 should ideally fit into a 32-bit integer. This can be +// achieved by choosing +// +// -e >= 32 or e <= -32 := gamma +// +// In order to convert the fractional part +// +// p2 * 2^e = p2 / 2^-e = d[-1] / 10^1 + d[-2] / 10^2 + ... +// +// into decimal form, the fraction is repeatedly multiplied by 10 and the digits +// d[-i] are extracted in order: +// +// (10 * p2) div 2^-e = d[-1] +// (10 * p2) mod 2^-e = d[-2] / 10^1 + ... +// +// The multiplication by 10 must not overflow. It is sufficient to choose +// +// 10 * p2 < 16 * p2 = 2^4 * p2 <= 2^64. +// +// Since p2 = f mod 2^-e < 2^-e, +// +// -e <= 60 or e >= -60 := alpha + +constexpr int kAlpha = -60; +constexpr int kGamma = -32; + +struct cached_power // c = f * 2^e ~= 10^k +{ + std::uint64_t f; + int e; + int k; +}; + +/*! +For a normalized diyfp w = f * 2^e, this function returns a (normalized) cached +power-of-ten c = f_c * 2^e_c, such that the exponent of the product w * c +satisfies (Definition 3.2 from [1]) + + alpha <= e_c + e + q <= gamma. +*/ +inline cached_power get_cached_power_for_binary_exponent(int e) +{ + // Now + // + // alpha <= e_c + e + q <= gamma (1) + // ==> f_c * 2^alpha <= c * 2^e * 2^q + // + // and since the c's are normalized, 2^(q-1) <= f_c, + // + // ==> 2^(q - 1 + alpha) <= c * 2^(e + q) + // ==> 2^(alpha - e - 1) <= c + // + // If c were an exakt power of ten, i.e. c = 10^k, one may determine k as + // + // k = ceil( log_10( 2^(alpha - e - 1) ) ) + // = ceil( (alpha - e - 1) * log_10(2) ) + // + // From the paper: + // "In theory the result of the procedure could be wrong since c is rounded, + // and the computation itself is approximated [...]. In practice, however, + // this simple function is sufficient." + // + // For IEEE double precision floating-point numbers converted into + // normalized diyfp's w = f * 2^e, with q = 64, + // + // e >= -1022 (min IEEE exponent) + // -52 (p - 1) + // -52 (p - 1, possibly normalize denormal IEEE numbers) + // -11 (normalize the diyfp) + // = -1137 + // + // and + // + // e <= +1023 (max IEEE exponent) + // -52 (p - 1) + // -11 (normalize the diyfp) + // = 960 + // + // This binary exponent range [-1137,960] results in a decimal exponent + // range [-307,324]. One does not need to store a cached power for each + // k in this range. For each such k it suffices to find a cached power + // such that the exponent of the product lies in [alpha,gamma]. + // This implies that the difference of the decimal exponents of adjacent + // table entries must be less than or equal to + // + // floor( (gamma - alpha) * log_10(2) ) = 8. + // + // (A smaller distance gamma-alpha would require a larger table.) + + // NB: + // Actually this function returns c, such that -60 <= e_c + e + 64 <= -34. + + constexpr int kCachedPowersMinDecExp = -300; + constexpr int kCachedPowersDecStep = 8; + + static constexpr std::array<cached_power, 79> kCachedPowers = + { + { + { 0xAB70FE17C79AC6CA, -1060, -300 }, + { 0xFF77B1FCBEBCDC4F, -1034, -292 }, + { 0xBE5691EF416BD60C, -1007, -284 }, + { 0x8DD01FAD907FFC3C, -980, -276 }, + { 0xD3515C2831559A83, -954, -268 }, + { 0x9D71AC8FADA6C9B5, -927, -260 }, + { 0xEA9C227723EE8BCB, -901, -252 }, + { 0xAECC49914078536D, -874, -244 }, + { 0x823C12795DB6CE57, -847, -236 }, + { 0xC21094364DFB5637, -821, -228 }, + { 0x9096EA6F3848984F, -794, -220 }, + { 0xD77485CB25823AC7, -768, -212 }, + { 0xA086CFCD97BF97F4, -741, -204 }, + { 0xEF340A98172AACE5, -715, -196 }, + { 0xB23867FB2A35B28E, -688, -188 }, + { 0x84C8D4DFD2C63F3B, -661, -180 }, + { 0xC5DD44271AD3CDBA, -635, -172 }, + { 0x936B9FCEBB25C996, -608, -164 }, + { 0xDBAC6C247D62A584, -582, -156 }, + { 0xA3AB66580D5FDAF6, -555, -148 }, + { 0xF3E2F893DEC3F126, -529, -140 }, + { 0xB5B5ADA8AAFF80B8, -502, -132 }, + { 0x87625F056C7C4A8B, -475, -124 }, + { 0xC9BCFF6034C13053, -449, -116 }, + { 0x964E858C91BA2655, -422, -108 }, + { 0xDFF9772470297EBD, -396, -100 }, + { 0xA6DFBD9FB8E5B88F, -369, -92 }, + { 0xF8A95FCF88747D94, -343, -84 }, + { 0xB94470938FA89BCF, -316, -76 }, + { 0x8A08F0F8BF0F156B, -289, -68 }, + { 0xCDB02555653131B6, -263, -60 }, + { 0x993FE2C6D07B7FAC, -236, -52 }, + { 0xE45C10C42A2B3B06, -210, -44 }, + { 0xAA242499697392D3, -183, -36 }, + { 0xFD87B5F28300CA0E, -157, -28 }, + { 0xBCE5086492111AEB, -130, -20 }, + { 0x8CBCCC096F5088CC, -103, -12 }, + { 0xD1B71758E219652C, -77, -4 }, + { 0x9C40000000000000, -50, 4 }, + { 0xE8D4A51000000000, -24, 12 }, + { 0xAD78EBC5AC620000, 3, 20 }, + { 0x813F3978F8940984, 30, 28 }, + { 0xC097CE7BC90715B3, 56, 36 }, + { 0x8F7E32CE7BEA5C70, 83, 44 }, + { 0xD5D238A4ABE98068, 109, 52 }, + { 0x9F4F2726179A2245, 136, 60 }, + { 0xED63A231D4C4FB27, 162, 68 }, + { 0xB0DE65388CC8ADA8, 189, 76 }, + { 0x83C7088E1AAB65DB, 216, 84 }, + { 0xC45D1DF942711D9A, 242, 92 }, + { 0x924D692CA61BE758, 269, 100 }, + { 0xDA01EE641A708DEA, 295, 108 }, + { 0xA26DA3999AEF774A, 322, 116 }, + { 0xF209787BB47D6B85, 348, 124 }, + { 0xB454E4A179DD1877, 375, 132 }, + { 0x865B86925B9BC5C2, 402, 140 }, + { 0xC83553C5C8965D3D, 428, 148 }, + { 0x952AB45CFA97A0B3, 455, 156 }, + { 0xDE469FBD99A05FE3, 481, 164 }, + { 0xA59BC234DB398C25, 508, 172 }, + { 0xF6C69A72A3989F5C, 534, 180 }, + { 0xB7DCBF5354E9BECE, 561, 188 }, + { 0x88FCF317F22241E2, 588, 196 }, + { 0xCC20CE9BD35C78A5, 614, 204 }, + { 0x98165AF37B2153DF, 641, 212 }, + { 0xE2A0B5DC971F303A, 667, 220 }, + { 0xA8D9D1535CE3B396, 694, 228 }, + { 0xFB9B7CD9A4A7443C, 720, 236 }, + { 0xBB764C4CA7A44410, 747, 244 }, + { 0x8BAB8EEFB6409C1A, 774, 252 }, + { 0xD01FEF10A657842C, 800, 260 }, + { 0x9B10A4E5E9913129, 827, 268 }, + { 0xE7109BFBA19C0C9D, 853, 276 }, + { 0xAC2820D9623BF429, 880, 284 }, + { 0x80444B5E7AA7CF85, 907, 292 }, + { 0xBF21E44003ACDD2D, 933, 300 }, + { 0x8E679C2F5E44FF8F, 960, 308 }, + { 0xD433179D9C8CB841, 986, 316 }, + { 0x9E19DB92B4E31BA9, 1013, 324 }, + } + }; + + // This computation gives exactly the same results for k as + // k = ceil((kAlpha - e - 1) * 0.30102999566398114) + // for |e| <= 1500, but doesn't require floating-point operations. + // NB: log_10(2) ~= 78913 / 2^18 + assert(e >= -1500); + assert(e <= 1500); + const int f = kAlpha - e - 1; + const int k = (f * 78913) / (1 << 18) + static_cast<int>(f > 0); + + const int index = (-kCachedPowersMinDecExp + k + (kCachedPowersDecStep - 1)) / kCachedPowersDecStep; + assert(index >= 0); + assert(static_cast<std::size_t>(index) < kCachedPowers.size()); + + const cached_power cached = kCachedPowers[static_cast<std::size_t>(index)]; + assert(kAlpha <= cached.e + e + 64); + assert(kGamma >= cached.e + e + 64); + + return cached; +} + +/*! +For n != 0, returns k, such that pow10 := 10^(k-1) <= n < 10^k. +For n == 0, returns 1 and sets pow10 := 1. +*/ +inline int find_largest_pow10(const std::uint32_t n, std::uint32_t& pow10) +{ + // LCOV_EXCL_START + if (n >= 1000000000) + { + pow10 = 1000000000; + return 10; + } + // LCOV_EXCL_STOP + else if (n >= 100000000) + { + pow10 = 100000000; + return 9; + } + else if (n >= 10000000) + { + pow10 = 10000000; + return 8; + } + else if (n >= 1000000) + { + pow10 = 1000000; + return 7; + } + else if (n >= 100000) + { + pow10 = 100000; + return 6; + } + else if (n >= 10000) + { + pow10 = 10000; + return 5; + } + else if (n >= 1000) + { + pow10 = 1000; + return 4; + } + else if (n >= 100) + { + pow10 = 100; + return 3; + } + else if (n >= 10) + { + pow10 = 10; + return 2; + } + else + { + pow10 = 1; + return 1; + } +} + +inline void grisu2_round(char* buf, int len, std::uint64_t dist, std::uint64_t delta, + std::uint64_t rest, std::uint64_t ten_k) +{ + assert(len >= 1); + assert(dist <= delta); + assert(rest <= delta); + assert(ten_k > 0); + + // <--------------------------- delta ----> + // <---- dist ---------> + // --------------[------------------+-------------------]-------------- + // M- w M+ + // + // ten_k + // <------> + // <---- rest ----> + // --------------[------------------+----+--------------]-------------- + // w V + // = buf * 10^k + // + // ten_k represents a unit-in-the-last-place in the decimal representation + // stored in buf. + // Decrement buf by ten_k while this takes buf closer to w. + + // The tests are written in this order to avoid overflow in unsigned + // integer arithmetic. + + while (rest < dist + and delta - rest >= ten_k + and (rest + ten_k < dist or dist - rest > rest + ten_k - dist)) + { + assert(buf[len - 1] != '0'); + buf[len - 1]--; + rest += ten_k; + } +} + +/*! +Generates V = buffer * 10^decimal_exponent, such that M- <= V <= M+. +M- and M+ must be normalized and share the same exponent -60 <= e <= -32. +*/ +inline void grisu2_digit_gen(char* buffer, int& length, int& decimal_exponent, + diyfp M_minus, diyfp w, diyfp M_plus) +{ + static_assert(kAlpha >= -60, "internal error"); + static_assert(kGamma <= -32, "internal error"); + + // Generates the digits (and the exponent) of a decimal floating-point + // number V = buffer * 10^decimal_exponent in the range [M-, M+]. The diyfp's + // w, M- and M+ share the same exponent e, which satisfies alpha <= e <= gamma. + // + // <--------------------------- delta ----> + // <---- dist ---------> + // --------------[------------------+-------------------]-------------- + // M- w M+ + // + // Grisu2 generates the digits of M+ from left to right and stops as soon as + // V is in [M-,M+]. + + assert(M_plus.e >= kAlpha); + assert(M_plus.e <= kGamma); + + std::uint64_t delta = diyfp::sub(M_plus, M_minus).f; // (significand of (M+ - M-), implicit exponent is e) + std::uint64_t dist = diyfp::sub(M_plus, w ).f; // (significand of (M+ - w ), implicit exponent is e) + + // Split M+ = f * 2^e into two parts p1 and p2 (note: e < 0): + // + // M+ = f * 2^e + // = ((f div 2^-e) * 2^-e + (f mod 2^-e)) * 2^e + // = ((p1 ) * 2^-e + (p2 )) * 2^e + // = p1 + p2 * 2^e + + const diyfp one(std::uint64_t{1} << -M_plus.e, M_plus.e); + + auto p1 = static_cast<std::uint32_t>(M_plus.f >> -one.e); // p1 = f div 2^-e (Since -e >= 32, p1 fits into a 32-bit int.) + std::uint64_t p2 = M_plus.f & (one.f - 1); // p2 = f mod 2^-e + + // 1) + // + // Generate the digits of the integral part p1 = d[n-1]...d[1]d[0] + + assert(p1 > 0); + + std::uint32_t pow10; + const int k = find_largest_pow10(p1, pow10); + + // 10^(k-1) <= p1 < 10^k, pow10 = 10^(k-1) + // + // p1 = (p1 div 10^(k-1)) * 10^(k-1) + (p1 mod 10^(k-1)) + // = (d[k-1] ) * 10^(k-1) + (p1 mod 10^(k-1)) + // + // M+ = p1 + p2 * 2^e + // = d[k-1] * 10^(k-1) + (p1 mod 10^(k-1)) + p2 * 2^e + // = d[k-1] * 10^(k-1) + ((p1 mod 10^(k-1)) * 2^-e + p2) * 2^e + // = d[k-1] * 10^(k-1) + ( rest) * 2^e + // + // Now generate the digits d[n] of p1 from left to right (n = k-1,...,0) + // + // p1 = d[k-1]...d[n] * 10^n + d[n-1]...d[0] + // + // but stop as soon as + // + // rest * 2^e = (d[n-1]...d[0] * 2^-e + p2) * 2^e <= delta * 2^e + + int n = k; + while (n > 0) + { + // Invariants: + // M+ = buffer * 10^n + (p1 + p2 * 2^e) (buffer = 0 for n = k) + // pow10 = 10^(n-1) <= p1 < 10^n + // + const std::uint32_t d = p1 / pow10; // d = p1 div 10^(n-1) + const std::uint32_t r = p1 % pow10; // r = p1 mod 10^(n-1) + // + // M+ = buffer * 10^n + (d * 10^(n-1) + r) + p2 * 2^e + // = (buffer * 10 + d) * 10^(n-1) + (r + p2 * 2^e) + // + assert(d <= 9); + buffer[length++] = static_cast<char>('0' + d); // buffer := buffer * 10 + d + // + // M+ = buffer * 10^(n-1) + (r + p2 * 2^e) + // + p1 = r; + n--; + // + // M+ = buffer * 10^n + (p1 + p2 * 2^e) + // pow10 = 10^n + // + + // Now check if enough digits have been generated. + // Compute + // + // p1 + p2 * 2^e = (p1 * 2^-e + p2) * 2^e = rest * 2^e + // + // Note: + // Since rest and delta share the same exponent e, it suffices to + // compare the significands. + const std::uint64_t rest = (std::uint64_t{p1} << -one.e) + p2; + if (rest <= delta) + { + // V = buffer * 10^n, with M- <= V <= M+. + + decimal_exponent += n; + + // We may now just stop. But instead look if the buffer could be + // decremented to bring V closer to w. + // + // pow10 = 10^n is now 1 ulp in the decimal representation V. + // The rounding procedure works with diyfp's with an implicit + // exponent of e. + // + // 10^n = (10^n * 2^-e) * 2^e = ulp * 2^e + // + const std::uint64_t ten_n = std::uint64_t{pow10} << -one.e; + grisu2_round(buffer, length, dist, delta, rest, ten_n); + + return; + } + + pow10 /= 10; + // + // pow10 = 10^(n-1) <= p1 < 10^n + // Invariants restored. + } + + // 2) + // + // The digits of the integral part have been generated: + // + // M+ = d[k-1]...d[1]d[0] + p2 * 2^e + // = buffer + p2 * 2^e + // + // Now generate the digits of the fractional part p2 * 2^e. + // + // Note: + // No decimal point is generated: the exponent is adjusted instead. + // + // p2 actually represents the fraction + // + // p2 * 2^e + // = p2 / 2^-e + // = d[-1] / 10^1 + d[-2] / 10^2 + ... + // + // Now generate the digits d[-m] of p1 from left to right (m = 1,2,...) + // + // p2 * 2^e = d[-1]d[-2]...d[-m] * 10^-m + // + 10^-m * (d[-m-1] / 10^1 + d[-m-2] / 10^2 + ...) + // + // using + // + // 10^m * p2 = ((10^m * p2) div 2^-e) * 2^-e + ((10^m * p2) mod 2^-e) + // = ( d) * 2^-e + ( r) + // + // or + // 10^m * p2 * 2^e = d + r * 2^e + // + // i.e. + // + // M+ = buffer + p2 * 2^e + // = buffer + 10^-m * (d + r * 2^e) + // = (buffer * 10^m + d) * 10^-m + 10^-m * r * 2^e + // + // and stop as soon as 10^-m * r * 2^e <= delta * 2^e + + assert(p2 > delta); + + int m = 0; + for (;;) + { + // Invariant: + // M+ = buffer * 10^-m + 10^-m * (d[-m-1] / 10 + d[-m-2] / 10^2 + ...) * 2^e + // = buffer * 10^-m + 10^-m * (p2 ) * 2^e + // = buffer * 10^-m + 10^-m * (1/10 * (10 * p2) ) * 2^e + // = buffer * 10^-m + 10^-m * (1/10 * ((10*p2 div 2^-e) * 2^-e + (10*p2 mod 2^-e)) * 2^e + // + assert(p2 <= (std::numeric_limits<std::uint64_t>::max)() / 10); + p2 *= 10; + const std::uint64_t d = p2 >> -one.e; // d = (10 * p2) div 2^-e + const std::uint64_t r = p2 & (one.f - 1); // r = (10 * p2) mod 2^-e + // + // M+ = buffer * 10^-m + 10^-m * (1/10 * (d * 2^-e + r) * 2^e + // = buffer * 10^-m + 10^-m * (1/10 * (d + r * 2^e)) + // = (buffer * 10 + d) * 10^(-m-1) + 10^(-m-1) * r * 2^e + // + assert(d <= 9); + buffer[length++] = static_cast<char>('0' + d); // buffer := buffer * 10 + d + // + // M+ = buffer * 10^(-m-1) + 10^(-m-1) * r * 2^e + // + p2 = r; + m++; + // + // M+ = buffer * 10^-m + 10^-m * p2 * 2^e + // Invariant restored. + + // Check if enough digits have been generated. + // + // 10^-m * p2 * 2^e <= delta * 2^e + // p2 * 2^e <= 10^m * delta * 2^e + // p2 <= 10^m * delta + delta *= 10; + dist *= 10; + if (p2 <= delta) + { + break; + } + } + + // V = buffer * 10^-m, with M- <= V <= M+. + + decimal_exponent -= m; + + // 1 ulp in the decimal representation is now 10^-m. + // Since delta and dist are now scaled by 10^m, we need to do the + // same with ulp in order to keep the units in sync. + // + // 10^m * 10^-m = 1 = 2^-e * 2^e = ten_m * 2^e + // + const std::uint64_t ten_m = one.f; + grisu2_round(buffer, length, dist, delta, p2, ten_m); + + // By construction this algorithm generates the shortest possible decimal + // number (Loitsch, Theorem 6.2) which rounds back to w. + // For an input number of precision p, at least + // + // N = 1 + ceil(p * log_10(2)) + // + // decimal digits are sufficient to identify all binary floating-point + // numbers (Matula, "In-and-Out conversions"). + // This implies that the algorithm does not produce more than N decimal + // digits. + // + // N = 17 for p = 53 (IEEE double precision) + // N = 9 for p = 24 (IEEE single precision) +} + +/*! +v = buf * 10^decimal_exponent +len is the length of the buffer (number of decimal digits) +The buffer must be large enough, i.e. >= max_digits10. +*/ +inline void grisu2(char* buf, int& len, int& decimal_exponent, + diyfp m_minus, diyfp v, diyfp m_plus) +{ + assert(m_plus.e == m_minus.e); + assert(m_plus.e == v.e); + + // --------(-----------------------+-----------------------)-------- (A) + // m- v m+ + // + // --------------------(-----------+-----------------------)-------- (B) + // m- v m+ + // + // First scale v (and m- and m+) such that the exponent is in the range + // [alpha, gamma]. + + const cached_power cached = get_cached_power_for_binary_exponent(m_plus.e); + + const diyfp c_minus_k(cached.f, cached.e); // = c ~= 10^-k + + // The exponent of the products is = v.e + c_minus_k.e + q and is in the range [alpha,gamma] + const diyfp w = diyfp::mul(v, c_minus_k); + const diyfp w_minus = diyfp::mul(m_minus, c_minus_k); + const diyfp w_plus = diyfp::mul(m_plus, c_minus_k); + + // ----(---+---)---------------(---+---)---------------(---+---)---- + // w- w w+ + // = c*m- = c*v = c*m+ + // + // diyfp::mul rounds its result and c_minus_k is approximated too. w, w- and + // w+ are now off by a small amount. + // In fact: + // + // w - v * 10^k < 1 ulp + // + // To account for this inaccuracy, add resp. subtract 1 ulp. + // + // --------+---[---------------(---+---)---------------]---+-------- + // w- M- w M+ w+ + // + // Now any number in [M-, M+] (bounds included) will round to w when input, + // regardless of how the input rounding algorithm breaks ties. + // + // And digit_gen generates the shortest possible such number in [M-, M+]. + // Note that this does not mean that Grisu2 always generates the shortest + // possible number in the interval (m-, m+). + const diyfp M_minus(w_minus.f + 1, w_minus.e); + const diyfp M_plus (w_plus.f - 1, w_plus.e ); + + decimal_exponent = -cached.k; // = -(-k) = k + + grisu2_digit_gen(buf, len, decimal_exponent, M_minus, w, M_plus); +} + +/*! +v = buf * 10^decimal_exponent +len is the length of the buffer (number of decimal digits) +The buffer must be large enough, i.e. >= max_digits10. +*/ +template <typename FloatType> +void grisu2(char* buf, int& len, int& decimal_exponent, FloatType value) +{ + static_assert(diyfp::kPrecision >= std::numeric_limits<FloatType>::digits + 3, + "internal error: not enough precision"); + + assert(std::isfinite(value)); + assert(value > 0); + + // If the neighbors (and boundaries) of 'value' are always computed for double-precision + // numbers, all float's can be recovered using strtod (and strtof). However, the resulting + // decimal representations are not exactly "short". + // + // The documentation for 'std::to_chars' (https://en.cppreference.com/w/cpp/utility/to_chars) + // says "value is converted to a string as if by std::sprintf in the default ("C") locale" + // and since sprintf promotes float's to double's, I think this is exactly what 'std::to_chars' + // does. + // On the other hand, the documentation for 'std::to_chars' requires that "parsing the + // representation using the corresponding std::from_chars function recovers value exactly". That + // indicates that single precision floating-point numbers should be recovered using + // 'std::strtof'. + // + // NB: If the neighbors are computed for single-precision numbers, there is a single float + // (7.0385307e-26f) which can't be recovered using strtod. The resulting double precision + // value is off by 1 ulp. +#if 0 + const boundaries w = compute_boundaries(static_cast<double>(value)); +#else + const boundaries w = compute_boundaries(value); +#endif + + grisu2(buf, len, decimal_exponent, w.minus, w.w, w.plus); +} + +/*! +@brief appends a decimal representation of e to buf +@return a pointer to the element following the exponent. +@pre -1000 < e < 1000 +*/ +inline char* append_exponent(char* buf, int e) +{ + assert(e > -1000); + assert(e < 1000); + + if (e < 0) + { + e = -e; + *buf++ = '-'; + } + else + { + *buf++ = '+'; + } + + auto k = static_cast<std::uint32_t>(e); + if (k < 10) + { + // Always print at least two digits in the exponent. + // This is for compatibility with printf("%g"). + *buf++ = '0'; + *buf++ = static_cast<char>('0' + k); + } + else if (k < 100) + { + *buf++ = static_cast<char>('0' + k / 10); + k %= 10; + *buf++ = static_cast<char>('0' + k); + } + else + { + *buf++ = static_cast<char>('0' + k / 100); + k %= 100; + *buf++ = static_cast<char>('0' + k / 10); + k %= 10; + *buf++ = static_cast<char>('0' + k); + } + + return buf; +} + +/*! +@brief prettify v = buf * 10^decimal_exponent + +If v is in the range [10^min_exp, 10^max_exp) it will be printed in fixed-point +notation. Otherwise it will be printed in exponential notation. + +@pre min_exp < 0 +@pre max_exp > 0 +*/ +inline char* format_buffer(char* buf, int len, int decimal_exponent, + int min_exp, int max_exp) +{ + assert(min_exp < 0); + assert(max_exp > 0); + + const int k = len; + const int n = len + decimal_exponent; + + // v = buf * 10^(n-k) + // k is the length of the buffer (number of decimal digits) + // n is the position of the decimal point relative to the start of the buffer. + + if (k <= n and n <= max_exp) + { + // digits[000] + // len <= max_exp + 2 + + std::memset(buf + k, '0', static_cast<size_t>(n - k)); + // Make it look like a floating-point number (#362, #378) + buf[n + 0] = '.'; + buf[n + 1] = '0'; + return buf + (n + 2); + } + + if (0 < n and n <= max_exp) + { + // dig.its + // len <= max_digits10 + 1 + + assert(k > n); + + std::memmove(buf + (n + 1), buf + n, static_cast<size_t>(k - n)); + buf[n] = '.'; + return buf + (k + 1); + } + + if (min_exp < n and n <= 0) + { + // 0.[000]digits + // len <= 2 + (-min_exp - 1) + max_digits10 + + std::memmove(buf + (2 + -n), buf, static_cast<size_t>(k)); + buf[0] = '0'; + buf[1] = '.'; + std::memset(buf + 2, '0', static_cast<size_t>(-n)); + return buf + (2 + (-n) + k); + } + + if (k == 1) + { + // dE+123 + // len <= 1 + 5 + + buf += 1; + } + else + { + // d.igitsE+123 + // len <= max_digits10 + 1 + 5 + + std::memmove(buf + 2, buf + 1, static_cast<size_t>(k - 1)); + buf[1] = '.'; + buf += 1 + k; + } + + *buf++ = 'e'; + return append_exponent(buf, n - 1); +} + +} // namespace dtoa_impl + +/*! +@brief generates a decimal representation of the floating-point number value in [first, last). + +The format of the resulting decimal representation is similar to printf's %g +format. Returns an iterator pointing past-the-end of the decimal representation. + +@note The input number must be finite, i.e. NaN's and Inf's are not supported. +@note The buffer must be large enough. +@note The result is NOT null-terminated. +*/ +template <typename FloatType> +char* to_chars(char* first, const char* last, FloatType value) +{ + static_cast<void>(last); // maybe unused - fix warning + assert(std::isfinite(value)); + + // Use signbit(value) instead of (value < 0) since signbit works for -0. + if (std::signbit(value)) + { + value = -value; + *first++ = '-'; + } + + if (value == 0) // +-0 + { + *first++ = '0'; + // Make it look like a floating-point number (#362, #378) + *first++ = '.'; + *first++ = '0'; + return first; + } + + assert(last - first >= std::numeric_limits<FloatType>::max_digits10); + + // Compute v = buffer * 10^decimal_exponent. + // The decimal digits are stored in the buffer, which needs to be interpreted + // as an unsigned decimal integer. + // len is the length of the buffer, i.e. the number of decimal digits. + int len = 0; + int decimal_exponent = 0; + dtoa_impl::grisu2(first, len, decimal_exponent, value); + + assert(len <= std::numeric_limits<FloatType>::max_digits10); + + // Format the buffer like printf("%.*g", prec, value) + constexpr int kMinExp = -4; + // Use digits10 here to increase compatibility with version 2. + constexpr int kMaxExp = std::numeric_limits<FloatType>::digits10; + + assert(last - first >= kMaxExp + 2); + assert(last - first >= 2 + (-kMinExp - 1) + std::numeric_limits<FloatType>::max_digits10); + assert(last - first >= std::numeric_limits<FloatType>::max_digits10 + 6); + + return dtoa_impl::format_buffer(first, len, decimal_exponent, kMinExp, kMaxExp); +} + +} // namespace detail +} // namespace nlohmann + +// #include <nlohmann/detail/exceptions.hpp> + +// #include <nlohmann/detail/macro_scope.hpp> + +// #include <nlohmann/detail/meta/cpp_future.hpp> + +// #include <nlohmann/detail/output/binary_writer.hpp> + +// #include <nlohmann/detail/output/output_adapters.hpp> + +// #include <nlohmann/detail/value_t.hpp> + + +namespace nlohmann +{ +namespace detail +{ +/////////////////// +// serialization // +/////////////////// + +/// how to treat decoding errors +enum class error_handler_t +{ + strict, ///< throw a type_error exception in case of invalid UTF-8 + replace, ///< replace invalid UTF-8 sequences with U+FFFD + ignore ///< ignore invalid UTF-8 sequences +}; + +template<typename BasicJsonType> +class serializer +{ + using string_t = typename BasicJsonType::string_t; + using number_float_t = typename BasicJsonType::number_float_t; + using number_integer_t = typename BasicJsonType::number_integer_t; + using number_unsigned_t = typename BasicJsonType::number_unsigned_t; + static constexpr std::uint8_t UTF8_ACCEPT = 0; + static constexpr std::uint8_t UTF8_REJECT = 1; + + public: + /*! + @param[in] s output stream to serialize to + @param[in] ichar indentation character to use + @param[in] error_handler_ how to react on decoding errors + */ + serializer(output_adapter_t<char> s, const char ichar, + error_handler_t error_handler_ = error_handler_t::strict) + : o(std::move(s)) + , loc(std::localeconv()) + , thousands_sep(loc->thousands_sep == nullptr ? '\0' : * (loc->thousands_sep)) + , decimal_point(loc->decimal_point == nullptr ? '\0' : * (loc->decimal_point)) + , indent_char(ichar) + , indent_string(512, indent_char) + , error_handler(error_handler_) + {} + + // delete because of pointer members + serializer(const serializer&) = delete; + serializer& operator=(const serializer&) = delete; + serializer(serializer&&) = delete; + serializer& operator=(serializer&&) = delete; + ~serializer() = default; + + /*! + @brief internal implementation of the serialization function + + This function is called by the public member function dump and organizes + the serialization internally. The indentation level is propagated as + additional parameter. In case of arrays and objects, the function is + called recursively. + + - strings and object keys are escaped using `escape_string()` + - integer numbers are converted implicitly via `operator<<` + - floating-point numbers are converted to a string using `"%g"` format + + @param[in] val value to serialize + @param[in] pretty_print whether the output shall be pretty-printed + @param[in] indent_step the indent level + @param[in] current_indent the current indent level (only used internally) + */ + void dump(const BasicJsonType& val, const bool pretty_print, + const bool ensure_ascii, + const unsigned int indent_step, + const unsigned int current_indent = 0) + { + switch (val.m_type) + { + case value_t::object: + { + if (val.m_value.object->empty()) + { + o->write_characters("{}", 2); + return; + } + + if (pretty_print) + { + o->write_characters("{\n", 2); + + // variable to hold indentation for recursive calls + const auto new_indent = current_indent + indent_step; + if (JSON_UNLIKELY(indent_string.size() < new_indent)) + { + indent_string.resize(indent_string.size() * 2, ' '); + } + + // first n-1 elements + auto i = val.m_value.object->cbegin(); + for (std::size_t cnt = 0; cnt < val.m_value.object->size() - 1; ++cnt, ++i) + { + o->write_characters(indent_string.c_str(), new_indent); + o->write_character('\"'); + dump_escaped(i->first, ensure_ascii); + o->write_characters("\": ", 3); + dump(i->second, true, ensure_ascii, indent_step, new_indent); + o->write_characters(",\n", 2); + } + + // last element + assert(i != val.m_value.object->cend()); + assert(std::next(i) == val.m_value.object->cend()); + o->write_characters(indent_string.c_str(), new_indent); + o->write_character('\"'); + dump_escaped(i->first, ensure_ascii); + o->write_characters("\": ", 3); + dump(i->second, true, ensure_ascii, indent_step, new_indent); + + o->write_character('\n'); + o->write_characters(indent_string.c_str(), current_indent); + o->write_character('}'); + } + else + { + o->write_character('{'); + + // first n-1 elements + auto i = val.m_value.object->cbegin(); + for (std::size_t cnt = 0; cnt < val.m_value.object->size() - 1; ++cnt, ++i) + { + o->write_character('\"'); + dump_escaped(i->first, ensure_ascii); + o->write_characters("\":", 2); + dump(i->second, false, ensure_ascii, indent_step, current_indent); + o->write_character(','); + } + + // last element + assert(i != val.m_value.object->cend()); + assert(std::next(i) == val.m_value.object->cend()); + o->write_character('\"'); + dump_escaped(i->first, ensure_ascii); + o->write_characters("\":", 2); + dump(i->second, false, ensure_ascii, indent_step, current_indent); + + o->write_character('}'); + } + + return; + } + + case value_t::array: + { + if (val.m_value.array->empty()) + { + o->write_characters("[]", 2); + return; + } + + if (pretty_print) + { + o->write_characters("[\n", 2); + + // variable to hold indentation for recursive calls + const auto new_indent = current_indent + indent_step; + if (JSON_UNLIKELY(indent_string.size() < new_indent)) + { + indent_string.resize(indent_string.size() * 2, ' '); + } + + // first n-1 elements + for (auto i = val.m_value.array->cbegin(); + i != val.m_value.array->cend() - 1; ++i) + { + o->write_characters(indent_string.c_str(), new_indent); + dump(*i, true, ensure_ascii, indent_step, new_indent); + o->write_characters(",\n", 2); + } + + // last element + assert(not val.m_value.array->empty()); + o->write_characters(indent_string.c_str(), new_indent); + dump(val.m_value.array->back(), true, ensure_ascii, indent_step, new_indent); + + o->write_character('\n'); + o->write_characters(indent_string.c_str(), current_indent); + o->write_character(']'); + } + else + { + o->write_character('['); + + // first n-1 elements + for (auto i = val.m_value.array->cbegin(); + i != val.m_value.array->cend() - 1; ++i) + { + dump(*i, false, ensure_ascii, indent_step, current_indent); + o->write_character(','); + } + + // last element + assert(not val.m_value.array->empty()); + dump(val.m_value.array->back(), false, ensure_ascii, indent_step, current_indent); + + o->write_character(']'); + } + + return; + } + + case value_t::string: + { + o->write_character('\"'); + dump_escaped(*val.m_value.string, ensure_ascii); + o->write_character('\"'); + return; + } + + case value_t::boolean: + { + if (val.m_value.boolean) + { + o->write_characters("true", 4); + } + else + { + o->write_characters("false", 5); + } + return; + } + + case value_t::number_integer: + { + dump_integer(val.m_value.number_integer); + return; + } + + case value_t::number_unsigned: + { + dump_integer(val.m_value.number_unsigned); + return; + } + + case value_t::number_float: + { + dump_float(val.m_value.number_float); + return; + } + + case value_t::discarded: + { + o->write_characters("<discarded>", 11); + return; + } + + case value_t::null: + { + o->write_characters("null", 4); + return; + } + + default: // LCOV_EXCL_LINE + assert(false); // LCOV_EXCL_LINE + } + } + + private: + /*! + @brief dump escaped string + + Escape a string by replacing certain special characters by a sequence of an + escape character (backslash) and another character and other control + characters by a sequence of "\u" followed by a four-digit hex + representation. The escaped string is written to output stream @a o. + + @param[in] s the string to escape + @param[in] ensure_ascii whether to escape non-ASCII characters with + \uXXXX sequences + + @complexity Linear in the length of string @a s. + */ + void dump_escaped(const string_t& s, const bool ensure_ascii) + { + std::uint32_t codepoint; + std::uint8_t state = UTF8_ACCEPT; + std::size_t bytes = 0; // number of bytes written to string_buffer + + // number of bytes written at the point of the last valid byte + std::size_t bytes_after_last_accept = 0; + std::size_t undumped_chars = 0; + + for (std::size_t i = 0; i < s.size(); ++i) + { + const auto byte = static_cast<uint8_t>(s[i]); + + switch (decode(state, codepoint, byte)) + { + case UTF8_ACCEPT: // decode found a new code point + { + switch (codepoint) + { + case 0x08: // backspace + { + string_buffer[bytes++] = '\\'; + string_buffer[bytes++] = 'b'; + break; + } + + case 0x09: // horizontal tab + { + string_buffer[bytes++] = '\\'; + string_buffer[bytes++] = 't'; + break; + } + + case 0x0A: // newline + { + string_buffer[bytes++] = '\\'; + string_buffer[bytes++] = 'n'; + break; + } + + case 0x0C: // formfeed + { + string_buffer[bytes++] = '\\'; + string_buffer[bytes++] = 'f'; + break; + } + + case 0x0D: // carriage return + { + string_buffer[bytes++] = '\\'; + string_buffer[bytes++] = 'r'; + break; + } + + case 0x22: // quotation mark + { + string_buffer[bytes++] = '\\'; + string_buffer[bytes++] = '\"'; + break; + } + + case 0x5C: // reverse solidus + { + string_buffer[bytes++] = '\\'; + string_buffer[bytes++] = '\\'; + break; + } + + default: + { + // escape control characters (0x00..0x1F) or, if + // ensure_ascii parameter is used, non-ASCII characters + if ((codepoint <= 0x1F) or (ensure_ascii and (codepoint >= 0x7F))) + { + if (codepoint <= 0xFFFF) + { + (std::snprintf)(string_buffer.data() + bytes, 7, "\\u%04x", + static_cast<std::uint16_t>(codepoint)); + bytes += 6; + } + else + { + (std::snprintf)(string_buffer.data() + bytes, 13, "\\u%04x\\u%04x", + static_cast<std::uint16_t>(0xD7C0u + (codepoint >> 10u)), + static_cast<std::uint16_t>(0xDC00u + (codepoint & 0x3FFu))); + bytes += 12; + } + } + else + { + // copy byte to buffer (all previous bytes + // been copied have in default case above) + string_buffer[bytes++] = s[i]; + } + break; + } + } + + // write buffer and reset index; there must be 13 bytes + // left, as this is the maximal number of bytes to be + // written ("\uxxxx\uxxxx\0") for one code point + if (string_buffer.size() - bytes < 13) + { + o->write_characters(string_buffer.data(), bytes); + bytes = 0; + } + + // remember the byte position of this accept + bytes_after_last_accept = bytes; + undumped_chars = 0; + break; + } + + case UTF8_REJECT: // decode found invalid UTF-8 byte + { + switch (error_handler) + { + case error_handler_t::strict: + { + std::string sn(3, '\0'); + (std::snprintf)(&sn[0], sn.size(), "%.2X", byte); + JSON_THROW(type_error::create(316, "invalid UTF-8 byte at index " + std::to_string(i) + ": 0x" + sn)); + } + + case error_handler_t::ignore: + case error_handler_t::replace: + { + // in case we saw this character the first time, we + // would like to read it again, because the byte + // may be OK for itself, but just not OK for the + // previous sequence + if (undumped_chars > 0) + { + --i; + } + + // reset length buffer to the last accepted index; + // thus removing/ignoring the invalid characters + bytes = bytes_after_last_accept; + + if (error_handler == error_handler_t::replace) + { + // add a replacement character + if (ensure_ascii) + { + string_buffer[bytes++] = '\\'; + string_buffer[bytes++] = 'u'; + string_buffer[bytes++] = 'f'; + string_buffer[bytes++] = 'f'; + string_buffer[bytes++] = 'f'; + string_buffer[bytes++] = 'd'; + } + else + { + string_buffer[bytes++] = detail::binary_writer<BasicJsonType, char>::to_char_type('\xEF'); + string_buffer[bytes++] = detail::binary_writer<BasicJsonType, char>::to_char_type('\xBF'); + string_buffer[bytes++] = detail::binary_writer<BasicJsonType, char>::to_char_type('\xBD'); + } + + // write buffer and reset index; there must be 13 bytes + // left, as this is the maximal number of bytes to be + // written ("\uxxxx\uxxxx\0") for one code point + if (string_buffer.size() - bytes < 13) + { + o->write_characters(string_buffer.data(), bytes); + bytes = 0; + } + + bytes_after_last_accept = bytes; + } + + undumped_chars = 0; + + // continue processing the string + state = UTF8_ACCEPT; + break; + } + + default: // LCOV_EXCL_LINE + assert(false); // LCOV_EXCL_LINE + } + break; + } + + default: // decode found yet incomplete multi-byte code point + { + if (not ensure_ascii) + { + // code point will not be escaped - copy byte to buffer + string_buffer[bytes++] = s[i]; + } + ++undumped_chars; + break; + } + } + } + + // we finished processing the string + if (JSON_LIKELY(state == UTF8_ACCEPT)) + { + // write buffer + if (bytes > 0) + { + o->write_characters(string_buffer.data(), bytes); + } + } + else + { + // we finish reading, but do not accept: string was incomplete + switch (error_handler) + { + case error_handler_t::strict: + { + std::string sn(3, '\0'); + (std::snprintf)(&sn[0], sn.size(), "%.2X", static_cast<std::uint8_t>(s.back())); + JSON_THROW(type_error::create(316, "incomplete UTF-8 string; last byte: 0x" + sn)); + } + + case error_handler_t::ignore: + { + // write all accepted bytes + o->write_characters(string_buffer.data(), bytes_after_last_accept); + break; + } + + case error_handler_t::replace: + { + // write all accepted bytes + o->write_characters(string_buffer.data(), bytes_after_last_accept); + // add a replacement character + if (ensure_ascii) + { + o->write_characters("\\ufffd", 6); + } + else + { + o->write_characters("\xEF\xBF\xBD", 3); + } + break; + } + + default: // LCOV_EXCL_LINE + assert(false); // LCOV_EXCL_LINE + } + } + } + + /*! + @brief count digits + + Count the number of decimal (base 10) digits for an input unsigned integer. + + @param[in] x unsigned integer number to count its digits + @return number of decimal digits + */ + inline unsigned int count_digits(number_unsigned_t x) noexcept + { + unsigned int n_digits = 1; + for (;;) + { + if (x < 10) + { + return n_digits; + } + if (x < 100) + { + return n_digits + 1; + } + if (x < 1000) + { + return n_digits + 2; + } + if (x < 10000) + { + return n_digits + 3; + } + x = x / 10000u; + n_digits += 4; + } + } + + /*! + @brief dump an integer + + Dump a given integer to output stream @a o. Works internally with + @a number_buffer. + + @param[in] x integer number (signed or unsigned) to dump + @tparam NumberType either @a number_integer_t or @a number_unsigned_t + */ + template<typename NumberType, detail::enable_if_t< + std::is_same<NumberType, number_unsigned_t>::value or + std::is_same<NumberType, number_integer_t>::value, + int> = 0> + void dump_integer(NumberType x) + { + static constexpr std::array<std::array<char, 2>, 100> digits_to_99 + { + { + {{'0', '0'}}, {{'0', '1'}}, {{'0', '2'}}, {{'0', '3'}}, {{'0', '4'}}, {{'0', '5'}}, {{'0', '6'}}, {{'0', '7'}}, {{'0', '8'}}, {{'0', '9'}}, + {{'1', '0'}}, {{'1', '1'}}, {{'1', '2'}}, {{'1', '3'}}, {{'1', '4'}}, {{'1', '5'}}, {{'1', '6'}}, {{'1', '7'}}, {{'1', '8'}}, {{'1', '9'}}, + {{'2', '0'}}, {{'2', '1'}}, {{'2', '2'}}, {{'2', '3'}}, {{'2', '4'}}, {{'2', '5'}}, {{'2', '6'}}, {{'2', '7'}}, {{'2', '8'}}, {{'2', '9'}}, + {{'3', '0'}}, {{'3', '1'}}, {{'3', '2'}}, {{'3', '3'}}, {{'3', '4'}}, {{'3', '5'}}, {{'3', '6'}}, {{'3', '7'}}, {{'3', '8'}}, {{'3', '9'}}, + {{'4', '0'}}, {{'4', '1'}}, {{'4', '2'}}, {{'4', '3'}}, {{'4', '4'}}, {{'4', '5'}}, {{'4', '6'}}, {{'4', '7'}}, {{'4', '8'}}, {{'4', '9'}}, + {{'5', '0'}}, {{'5', '1'}}, {{'5', '2'}}, {{'5', '3'}}, {{'5', '4'}}, {{'5', '5'}}, {{'5', '6'}}, {{'5', '7'}}, {{'5', '8'}}, {{'5', '9'}}, + {{'6', '0'}}, {{'6', '1'}}, {{'6', '2'}}, {{'6', '3'}}, {{'6', '4'}}, {{'6', '5'}}, {{'6', '6'}}, {{'6', '7'}}, {{'6', '8'}}, {{'6', '9'}}, + {{'7', '0'}}, {{'7', '1'}}, {{'7', '2'}}, {{'7', '3'}}, {{'7', '4'}}, {{'7', '5'}}, {{'7', '6'}}, {{'7', '7'}}, {{'7', '8'}}, {{'7', '9'}}, + {{'8', '0'}}, {{'8', '1'}}, {{'8', '2'}}, {{'8', '3'}}, {{'8', '4'}}, {{'8', '5'}}, {{'8', '6'}}, {{'8', '7'}}, {{'8', '8'}}, {{'8', '9'}}, + {{'9', '0'}}, {{'9', '1'}}, {{'9', '2'}}, {{'9', '3'}}, {{'9', '4'}}, {{'9', '5'}}, {{'9', '6'}}, {{'9', '7'}}, {{'9', '8'}}, {{'9', '9'}}, + } + }; + + // special case for "0" + if (x == 0) + { + o->write_character('0'); + return; + } + + // use a pointer to fill the buffer + auto buffer_ptr = number_buffer.begin(); + + const bool is_negative = std::is_same<NumberType, number_integer_t>::value and not(x >= 0); // see issue #755 + number_unsigned_t abs_value; + + unsigned int n_chars; + + if (is_negative) + { + *buffer_ptr = '-'; + abs_value = static_cast<number_unsigned_t>(std::abs(static_cast<std::intmax_t>(x))); + + // account one more byte for the minus sign + n_chars = 1 + count_digits(abs_value); + } + else + { + abs_value = static_cast<number_unsigned_t>(x); + n_chars = count_digits(abs_value); + } + + // spare 1 byte for '\0' + assert(n_chars < number_buffer.size() - 1); + + // jump to the end to generate the string from backward + // so we later avoid reversing the result + buffer_ptr += n_chars; + + // Fast int2ascii implementation inspired by "Fastware" talk by Andrei Alexandrescu + // See: https://www.youtube.com/watch?v=o4-CwDo2zpg + while (abs_value >= 100) + { + const auto digits_index = static_cast<unsigned>((abs_value % 100)); + abs_value /= 100; + *(--buffer_ptr) = digits_to_99[digits_index][1]; + *(--buffer_ptr) = digits_to_99[digits_index][0]; + } + + if (abs_value >= 10) + { + const auto digits_index = static_cast<unsigned>(abs_value); + *(--buffer_ptr) = digits_to_99[digits_index][1]; + *(--buffer_ptr) = digits_to_99[digits_index][0]; + } + else + { + *(--buffer_ptr) = static_cast<char>('0' + abs_value); + } + + o->write_characters(number_buffer.data(), n_chars); + } + + /*! + @brief dump a floating-point number + + Dump a given floating-point number to output stream @a o. Works internally + with @a number_buffer. + + @param[in] x floating-point number to dump + */ + void dump_float(number_float_t x) + { + // NaN / inf + if (not std::isfinite(x)) + { + o->write_characters("null", 4); + return; + } + + // If number_float_t is an IEEE-754 single or double precision number, + // use the Grisu2 algorithm to produce short numbers which are + // guaranteed to round-trip, using strtof and strtod, resp. + // + // NB: The test below works if <long double> == <double>. + static constexpr bool is_ieee_single_or_double + = (std::numeric_limits<number_float_t>::is_iec559 and std::numeric_limits<number_float_t>::digits == 24 and std::numeric_limits<number_float_t>::max_exponent == 128) or + (std::numeric_limits<number_float_t>::is_iec559 and std::numeric_limits<number_float_t>::digits == 53 and std::numeric_limits<number_float_t>::max_exponent == 1024); + + dump_float(x, std::integral_constant<bool, is_ieee_single_or_double>()); + } + + void dump_float(number_float_t x, std::true_type /*is_ieee_single_or_double*/) + { + char* begin = number_buffer.data(); + char* end = ::nlohmann::detail::to_chars(begin, begin + number_buffer.size(), x); + + o->write_characters(begin, static_cast<size_t>(end - begin)); + } + + void dump_float(number_float_t x, std::false_type /*is_ieee_single_or_double*/) + { + // get number of digits for a float -> text -> float round-trip + static constexpr auto d = std::numeric_limits<number_float_t>::max_digits10; + + // the actual conversion + std::ptrdiff_t len = (std::snprintf)(number_buffer.data(), number_buffer.size(), "%.*g", d, x); + + // negative value indicates an error + assert(len > 0); + // check if buffer was large enough + assert(static_cast<std::size_t>(len) < number_buffer.size()); + + // erase thousands separator + if (thousands_sep != '\0') + { + const auto end = std::remove(number_buffer.begin(), + number_buffer.begin() + len, thousands_sep); + std::fill(end, number_buffer.end(), '\0'); + assert((end - number_buffer.begin()) <= len); + len = (end - number_buffer.begin()); + } + + // convert decimal point to '.' + if (decimal_point != '\0' and decimal_point != '.') + { + const auto dec_pos = std::find(number_buffer.begin(), number_buffer.end(), decimal_point); + if (dec_pos != number_buffer.end()) + { + *dec_pos = '.'; + } + } + + o->write_characters(number_buffer.data(), static_cast<std::size_t>(len)); + + // determine if need to append ".0" + const bool value_is_int_like = + std::none_of(number_buffer.begin(), number_buffer.begin() + len + 1, + [](char c) + { + return c == '.' or c == 'e'; + }); + + if (value_is_int_like) + { + o->write_characters(".0", 2); + } + } + + /*! + @brief check whether a string is UTF-8 encoded + + The function checks each byte of a string whether it is UTF-8 encoded. The + result of the check is stored in the @a state parameter. The function must + be called initially with state 0 (accept). State 1 means the string must + be rejected, because the current byte is not allowed. If the string is + completely processed, but the state is non-zero, the string ended + prematurely; that is, the last byte indicated more bytes should have + followed. + + @param[in,out] state the state of the decoding + @param[in,out] codep codepoint (valid only if resulting state is UTF8_ACCEPT) + @param[in] byte next byte to decode + @return new state + + @note The function has been edited: a std::array is used. + + @copyright Copyright (c) 2008-2009 Bjoern Hoehrmann <bjoern@hoehrmann.de> + @sa http://bjoern.hoehrmann.de/utf-8/decoder/dfa/ + */ + static std::uint8_t decode(std::uint8_t& state, std::uint32_t& codep, const std::uint8_t byte) noexcept + { + static const std::array<std::uint8_t, 400> utf8d = + { + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 00..1F + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 20..3F + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 40..5F + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 60..7F + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, // 80..9F + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, // A0..BF + 8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // C0..DF + 0xA, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x3, 0x4, 0x3, 0x3, // E0..EF + 0xB, 0x6, 0x6, 0x6, 0x5, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, // F0..FF + 0x0, 0x1, 0x2, 0x3, 0x5, 0x8, 0x7, 0x1, 0x1, 0x1, 0x4, 0x6, 0x1, 0x1, 0x1, 0x1, // s0..s0 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, // s1..s2 + 1, 2, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, // s3..s4 + 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, // s5..s6 + 1, 3, 1, 1, 1, 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 // s7..s8 + } + }; + + const std::uint8_t type = utf8d[byte]; + + codep = (state != UTF8_ACCEPT) + ? (byte & 0x3fu) | (codep << 6u) + : (0xFFu >> type) & (byte); + + state = utf8d[256u + state * 16u + type]; + return state; + } + + private: + /// the output of the serializer + output_adapter_t<char> o = nullptr; + + /// a (hopefully) large enough character buffer + std::array<char, 64> number_buffer{{}}; + + /// the locale + const std::lconv* loc = nullptr; + /// the locale's thousand separator character + const char thousands_sep = '\0'; + /// the locale's decimal point character + const char decimal_point = '\0'; + + /// string buffer + std::array<char, 512> string_buffer{{}}; + + /// the indentation character + const char indent_char; + /// the indentation string + string_t indent_string; + + /// error_handler how to react on decoding errors + const error_handler_t error_handler; +}; +} // namespace detail +} // namespace nlohmann + +// #include <nlohmann/detail/value_t.hpp> + +// #include <nlohmann/json_fwd.hpp> + + +/*! +@brief namespace for Niels Lohmann +@see https://github.com/nlohmann +@since version 1.0.0 +*/ +namespace nlohmann +{ + +/*! +@brief a class to store JSON values + +@tparam ObjectType type for JSON objects (`std::map` by default; will be used +in @ref object_t) +@tparam ArrayType type for JSON arrays (`std::vector` by default; will be used +in @ref array_t) +@tparam StringType type for JSON strings and object keys (`std::string` by +default; will be used in @ref string_t) +@tparam BooleanType type for JSON booleans (`bool` by default; will be used +in @ref boolean_t) +@tparam NumberIntegerType type for JSON integer numbers (`int64_t` by +default; will be used in @ref number_integer_t) +@tparam NumberUnsignedType type for JSON unsigned integer numbers (@c +`uint64_t` by default; will be used in @ref number_unsigned_t) +@tparam NumberFloatType type for JSON floating-point numbers (`double` by +default; will be used in @ref number_float_t) +@tparam AllocatorType type of the allocator to use (`std::allocator` by +default) +@tparam JSONSerializer the serializer to resolve internal calls to `to_json()` +and `from_json()` (@ref adl_serializer by default) + +@requirement The class satisfies the following concept requirements: +- Basic + - [DefaultConstructible](https://en.cppreference.com/w/cpp/named_req/DefaultConstructible): + JSON values can be default constructed. The result will be a JSON null + value. + - [MoveConstructible](https://en.cppreference.com/w/cpp/named_req/MoveConstructible): + A JSON value can be constructed from an rvalue argument. + - [CopyConstructible](https://en.cppreference.com/w/cpp/named_req/CopyConstructible): + A JSON value can be copy-constructed from an lvalue expression. + - [MoveAssignable](https://en.cppreference.com/w/cpp/named_req/MoveAssignable): + A JSON value van be assigned from an rvalue argument. + - [CopyAssignable](https://en.cppreference.com/w/cpp/named_req/CopyAssignable): + A JSON value can be copy-assigned from an lvalue expression. + - [Destructible](https://en.cppreference.com/w/cpp/named_req/Destructible): + JSON values can be destructed. +- Layout + - [StandardLayoutType](https://en.cppreference.com/w/cpp/named_req/StandardLayoutType): + JSON values have + [standard layout](https://en.cppreference.com/w/cpp/language/data_members#Standard_layout): + All non-static data members are private and standard layout types, the + class has no virtual functions or (virtual) base classes. +- Library-wide + - [EqualityComparable](https://en.cppreference.com/w/cpp/named_req/EqualityComparable): + JSON values can be compared with `==`, see @ref + operator==(const_reference,const_reference). + - [LessThanComparable](https://en.cppreference.com/w/cpp/named_req/LessThanComparable): + JSON values can be compared with `<`, see @ref + operator<(const_reference,const_reference). + - [Swappable](https://en.cppreference.com/w/cpp/named_req/Swappable): + Any JSON lvalue or rvalue of can be swapped with any lvalue or rvalue of + other compatible types, using unqualified function call @ref swap(). + - [NullablePointer](https://en.cppreference.com/w/cpp/named_req/NullablePointer): + JSON values can be compared against `std::nullptr_t` objects which are used + to model the `null` value. +- Container + - [Container](https://en.cppreference.com/w/cpp/named_req/Container): + JSON values can be used like STL containers and provide iterator access. + - [ReversibleContainer](https://en.cppreference.com/w/cpp/named_req/ReversibleContainer); + JSON values can be used like STL containers and provide reverse iterator + access. + +@invariant The member variables @a m_value and @a m_type have the following +relationship: +- If `m_type == value_t::object`, then `m_value.object != nullptr`. +- If `m_type == value_t::array`, then `m_value.array != nullptr`. +- If `m_type == value_t::string`, then `m_value.string != nullptr`. +The invariants are checked by member function assert_invariant(). + +@internal +@note ObjectType trick from http://stackoverflow.com/a/9860911 +@endinternal + +@see [RFC 7159: The JavaScript Object Notation (JSON) Data Interchange +Format](http://rfc7159.net/rfc7159) + +@since version 1.0.0 + +@nosubgrouping +*/ +NLOHMANN_BASIC_JSON_TPL_DECLARATION +class basic_json +{ + private: + template<detail::value_t> friend struct detail::external_constructor; + friend ::nlohmann::json_pointer<basic_json>; + friend ::nlohmann::detail::parser<basic_json>; + friend ::nlohmann::detail::serializer<basic_json>; + template<typename BasicJsonType> + friend class ::nlohmann::detail::iter_impl; + template<typename BasicJsonType, typename CharType> + friend class ::nlohmann::detail::binary_writer; + template<typename BasicJsonType, typename SAX> + friend class ::nlohmann::detail::binary_reader; + template<typename BasicJsonType> + friend class ::nlohmann::detail::json_sax_dom_parser; + template<typename BasicJsonType> + friend class ::nlohmann::detail::json_sax_dom_callback_parser; + + /// workaround type for MSVC + using basic_json_t = NLOHMANN_BASIC_JSON_TPL; + + // convenience aliases for types residing in namespace detail; + using lexer = ::nlohmann::detail::lexer<basic_json>; + using parser = ::nlohmann::detail::parser<basic_json>; + + using primitive_iterator_t = ::nlohmann::detail::primitive_iterator_t; + template<typename BasicJsonType> + using internal_iterator = ::nlohmann::detail::internal_iterator<BasicJsonType>; + template<typename BasicJsonType> + using iter_impl = ::nlohmann::detail::iter_impl<BasicJsonType>; + template<typename Iterator> + using iteration_proxy = ::nlohmann::detail::iteration_proxy<Iterator>; + template<typename Base> using json_reverse_iterator = ::nlohmann::detail::json_reverse_iterator<Base>; + + template<typename CharType> + using output_adapter_t = ::nlohmann::detail::output_adapter_t<CharType>; + + using binary_reader = ::nlohmann::detail::binary_reader<basic_json>; + template<typename CharType> using binary_writer = ::nlohmann::detail::binary_writer<basic_json, CharType>; + + using serializer = ::nlohmann::detail::serializer<basic_json>; + + public: + using value_t = detail::value_t; + /// JSON Pointer, see @ref nlohmann::json_pointer + using json_pointer = ::nlohmann::json_pointer<basic_json>; + template<typename T, typename SFINAE> + using json_serializer = JSONSerializer<T, SFINAE>; + /// how to treat decoding errors + using error_handler_t = detail::error_handler_t; + /// helper type for initializer lists of basic_json values + using initializer_list_t = std::initializer_list<detail::json_ref<basic_json>>; + + using input_format_t = detail::input_format_t; + /// SAX interface type, see @ref nlohmann::json_sax + using json_sax_t = json_sax<basic_json>; + + //////////////// + // exceptions // + //////////////// + + /// @name exceptions + /// Classes to implement user-defined exceptions. + /// @{ + + /// @copydoc detail::exception + using exception = detail::exception; + /// @copydoc detail::parse_error + using parse_error = detail::parse_error; + /// @copydoc detail::invalid_iterator + using invalid_iterator = detail::invalid_iterator; + /// @copydoc detail::type_error + using type_error = detail::type_error; + /// @copydoc detail::out_of_range + using out_of_range = detail::out_of_range; + /// @copydoc detail::other_error + using other_error = detail::other_error; + + /// @} + + + ///////////////////// + // container types // + ///////////////////// + + /// @name container types + /// The canonic container types to use @ref basic_json like any other STL + /// container. + /// @{ + + /// the type of elements in a basic_json container + using value_type = basic_json; + + /// the type of an element reference + using reference = value_type&; + /// the type of an element const reference + using const_reference = const value_type&; + + /// a type to represent differences between iterators + using difference_type = std::ptrdiff_t; + /// a type to represent container sizes + using size_type = std::size_t; + + /// the allocator type + using allocator_type = AllocatorType<basic_json>; + + /// the type of an element pointer + using pointer = typename std::allocator_traits<allocator_type>::pointer; + /// the type of an element const pointer + using const_pointer = typename std::allocator_traits<allocator_type>::const_pointer; + + /// an iterator for a basic_json container + using iterator = iter_impl<basic_json>; + /// a const iterator for a basic_json container + using const_iterator = iter_impl<const basic_json>; + /// a reverse iterator for a basic_json container + using reverse_iterator = json_reverse_iterator<typename basic_json::iterator>; + /// a const reverse iterator for a basic_json container + using const_reverse_iterator = json_reverse_iterator<typename basic_json::const_iterator>; + + /// @} + + + /*! + @brief returns the allocator associated with the container + */ + static allocator_type get_allocator() + { + return allocator_type(); + } + + /*! + @brief returns version information on the library + + This function returns a JSON object with information about the library, + including the version number and information on the platform and compiler. + + @return JSON object holding version information + key | description + ----------- | --------------- + `compiler` | Information on the used compiler. It is an object with the following keys: `c++` (the used C++ standard), `family` (the compiler family; possible values are `clang`, `icc`, `gcc`, `ilecpp`, `msvc`, `pgcpp`, `sunpro`, and `unknown`), and `version` (the compiler version). + `copyright` | The copyright line for the library as string. + `name` | The name of the library as string. + `platform` | The used platform as string. Possible values are `win32`, `linux`, `apple`, `unix`, and `unknown`. + `url` | The URL of the project as string. + `version` | The version of the library. It is an object with the following keys: `major`, `minor`, and `patch` as defined by [Semantic Versioning](http://semver.org), and `string` (the version string). + + @liveexample{The following code shows an example output of the `meta()` + function.,meta} + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes to any JSON value. + + @complexity Constant. + + @since 2.1.0 + */ + JSON_NODISCARD + static basic_json meta() + { + basic_json result; + + result["copyright"] = "(C) 2013-2017 Niels Lohmann"; + result["name"] = "JSON for Modern C++"; + result["url"] = "https://github.com/nlohmann/json"; + result["version"]["string"] = + std::to_string(NLOHMANN_JSON_VERSION_MAJOR) + "." + + std::to_string(NLOHMANN_JSON_VERSION_MINOR) + "." + + std::to_string(NLOHMANN_JSON_VERSION_PATCH); + result["version"]["major"] = NLOHMANN_JSON_VERSION_MAJOR; + result["version"]["minor"] = NLOHMANN_JSON_VERSION_MINOR; + result["version"]["patch"] = NLOHMANN_JSON_VERSION_PATCH; + +#ifdef _WIN32 + result["platform"] = "win32"; +#elif defined __linux__ + result["platform"] = "linux"; +#elif defined __APPLE__ + result["platform"] = "apple"; +#elif defined __unix__ + result["platform"] = "unix"; +#else + result["platform"] = "unknown"; +#endif + +#if defined(__ICC) || defined(__INTEL_COMPILER) + result["compiler"] = {{"family", "icc"}, {"version", __INTEL_COMPILER}}; +#elif defined(__clang__) + result["compiler"] = {{"family", "clang"}, {"version", __clang_version__}}; +#elif defined(__GNUC__) || defined(__GNUG__) + result["compiler"] = {{"family", "gcc"}, {"version", std::to_string(__GNUC__) + "." + std::to_string(__GNUC_MINOR__) + "." + std::to_string(__GNUC_PATCHLEVEL__)}}; +#elif defined(__HP_cc) || defined(__HP_aCC) + result["compiler"] = "hp" +#elif defined(__IBMCPP__) + result["compiler"] = {{"family", "ilecpp"}, {"version", __IBMCPP__}}; +#elif defined(_MSC_VER) + result["compiler"] = {{"family", "msvc"}, {"version", _MSC_VER}}; +#elif defined(__PGI) + result["compiler"] = {{"family", "pgcpp"}, {"version", __PGI}}; +#elif defined(__SUNPRO_CC) + result["compiler"] = {{"family", "sunpro"}, {"version", __SUNPRO_CC}}; +#else + result["compiler"] = {{"family", "unknown"}, {"version", "unknown"}}; +#endif + +#ifdef __cplusplus + result["compiler"]["c++"] = std::to_string(__cplusplus); +#else + result["compiler"]["c++"] = "unknown"; +#endif + return result; + } + + + /////////////////////////// + // JSON value data types // + /////////////////////////// + + /// @name JSON value data types + /// The data types to store a JSON value. These types are derived from + /// the template arguments passed to class @ref basic_json. + /// @{ + +#if defined(JSON_HAS_CPP_14) + // Use transparent comparator if possible, combined with perfect forwarding + // on find() and count() calls prevents unnecessary string construction. + using object_comparator_t = std::less<>; +#else + using object_comparator_t = std::less<StringType>; +#endif + + /*! + @brief a type for an object + + [RFC 7159](http://rfc7159.net/rfc7159) describes JSON objects as follows: + > An object is an unordered collection of zero or more name/value pairs, + > where a name is a string and a value is a string, number, boolean, null, + > object, or array. + + To store objects in C++, a type is defined by the template parameters + described below. + + @tparam ObjectType the container to store objects (e.g., `std::map` or + `std::unordered_map`) + @tparam StringType the type of the keys or names (e.g., `std::string`). + The comparison function `std::less<StringType>` is used to order elements + inside the container. + @tparam AllocatorType the allocator to use for objects (e.g., + `std::allocator`) + + #### Default type + + With the default values for @a ObjectType (`std::map`), @a StringType + (`std::string`), and @a AllocatorType (`std::allocator`), the default + value for @a object_t is: + + @code {.cpp} + std::map< + std::string, // key_type + basic_json, // value_type + std::less<std::string>, // key_compare + std::allocator<std::pair<const std::string, basic_json>> // allocator_type + > + @endcode + + #### Behavior + + The choice of @a object_t influences the behavior of the JSON class. With + the default type, objects have the following behavior: + + - When all names are unique, objects will be interoperable in the sense + that all software implementations receiving that object will agree on + the name-value mappings. + - When the names within an object are not unique, it is unspecified which + one of the values for a given key will be chosen. For instance, + `{"key": 2, "key": 1}` could be equal to either `{"key": 1}` or + `{"key": 2}`. + - Internally, name/value pairs are stored in lexicographical order of the + names. Objects will also be serialized (see @ref dump) in this order. + For instance, `{"b": 1, "a": 2}` and `{"a": 2, "b": 1}` will be stored + and serialized as `{"a": 2, "b": 1}`. + - When comparing objects, the order of the name/value pairs is irrelevant. + This makes objects interoperable in the sense that they will not be + affected by these differences. For instance, `{"b": 1, "a": 2}` and + `{"a": 2, "b": 1}` will be treated as equal. + + #### Limits + + [RFC 7159](http://rfc7159.net/rfc7159) specifies: + > An implementation may set limits on the maximum depth of nesting. + + In this class, the object's limit of nesting is not explicitly constrained. + However, a maximum depth of nesting may be introduced by the compiler or + runtime environment. A theoretical limit can be queried by calling the + @ref max_size function of a JSON object. + + #### Storage + + Objects are stored as pointers in a @ref basic_json type. That is, for any + access to object values, a pointer of type `object_t*` must be + dereferenced. + + @sa @ref array_t -- type for an array value + + @since version 1.0.0 + + @note The order name/value pairs are added to the object is *not* + preserved by the library. Therefore, iterating an object may return + name/value pairs in a different order than they were originally stored. In + fact, keys will be traversed in alphabetical order as `std::map` with + `std::less` is used by default. Please note this behavior conforms to [RFC + 7159](http://rfc7159.net/rfc7159), because any order implements the + specified "unordered" nature of JSON objects. + */ + using object_t = ObjectType<StringType, + basic_json, + object_comparator_t, + AllocatorType<std::pair<const StringType, + basic_json>>>; + + /*! + @brief a type for an array + + [RFC 7159](http://rfc7159.net/rfc7159) describes JSON arrays as follows: + > An array is an ordered sequence of zero or more values. + + To store objects in C++, a type is defined by the template parameters + explained below. + + @tparam ArrayType container type to store arrays (e.g., `std::vector` or + `std::list`) + @tparam AllocatorType allocator to use for arrays (e.g., `std::allocator`) + + #### Default type + + With the default values for @a ArrayType (`std::vector`) and @a + AllocatorType (`std::allocator`), the default value for @a array_t is: + + @code {.cpp} + std::vector< + basic_json, // value_type + std::allocator<basic_json> // allocator_type + > + @endcode + + #### Limits + + [RFC 7159](http://rfc7159.net/rfc7159) specifies: + > An implementation may set limits on the maximum depth of nesting. + + In this class, the array's limit of nesting is not explicitly constrained. + However, a maximum depth of nesting may be introduced by the compiler or + runtime environment. A theoretical limit can be queried by calling the + @ref max_size function of a JSON array. + + #### Storage + + Arrays are stored as pointers in a @ref basic_json type. That is, for any + access to array values, a pointer of type `array_t*` must be dereferenced. + + @sa @ref object_t -- type for an object value + + @since version 1.0.0 + */ + using array_t = ArrayType<basic_json, AllocatorType<basic_json>>; + + /*! + @brief a type for a string + + [RFC 7159](http://rfc7159.net/rfc7159) describes JSON strings as follows: + > A string is a sequence of zero or more Unicode characters. + + To store objects in C++, a type is defined by the template parameter + described below. Unicode values are split by the JSON class into + byte-sized characters during deserialization. + + @tparam StringType the container to store strings (e.g., `std::string`). + Note this container is used for keys/names in objects, see @ref object_t. + + #### Default type + + With the default values for @a StringType (`std::string`), the default + value for @a string_t is: + + @code {.cpp} + std::string + @endcode + + #### Encoding + + Strings are stored in UTF-8 encoding. Therefore, functions like + `std::string::size()` or `std::string::length()` return the number of + bytes in the string rather than the number of characters or glyphs. + + #### String comparison + + [RFC 7159](http://rfc7159.net/rfc7159) states: + > Software implementations are typically required to test names of object + > members for equality. Implementations that transform the textual + > representation into sequences of Unicode code units and then perform the + > comparison numerically, code unit by code unit, are interoperable in the + > sense that implementations will agree in all cases on equality or + > inequality of two strings. For example, implementations that compare + > strings with escaped characters unconverted may incorrectly find that + > `"a\\b"` and `"a\u005Cb"` are not equal. + + This implementation is interoperable as it does compare strings code unit + by code unit. + + #### Storage + + String values are stored as pointers in a @ref basic_json type. That is, + for any access to string values, a pointer of type `string_t*` must be + dereferenced. + + @since version 1.0.0 + */ + using string_t = StringType; + + /*! + @brief a type for a boolean + + [RFC 7159](http://rfc7159.net/rfc7159) implicitly describes a boolean as a + type which differentiates the two literals `true` and `false`. + + To store objects in C++, a type is defined by the template parameter @a + BooleanType which chooses the type to use. + + #### Default type + + With the default values for @a BooleanType (`bool`), the default value for + @a boolean_t is: + + @code {.cpp} + bool + @endcode + + #### Storage + + Boolean values are stored directly inside a @ref basic_json type. + + @since version 1.0.0 + */ + using boolean_t = BooleanType; + + /*! + @brief a type for a number (integer) + + [RFC 7159](http://rfc7159.net/rfc7159) describes numbers as follows: + > The representation of numbers is similar to that used in most + > programming languages. A number is represented in base 10 using decimal + > digits. It contains an integer component that may be prefixed with an + > optional minus sign, which may be followed by a fraction part and/or an + > exponent part. Leading zeros are not allowed. (...) Numeric values that + > cannot be represented in the grammar below (such as Infinity and NaN) + > are not permitted. + + This description includes both integer and floating-point numbers. + However, C++ allows more precise storage if it is known whether the number + is a signed integer, an unsigned integer or a floating-point number. + Therefore, three different types, @ref number_integer_t, @ref + number_unsigned_t and @ref number_float_t are used. + + To store integer numbers in C++, a type is defined by the template + parameter @a NumberIntegerType which chooses the type to use. + + #### Default type + + With the default values for @a NumberIntegerType (`int64_t`), the default + value for @a number_integer_t is: + + @code {.cpp} + int64_t + @endcode + + #### Default behavior + + - The restrictions about leading zeros is not enforced in C++. Instead, + leading zeros in integer literals lead to an interpretation as octal + number. Internally, the value will be stored as decimal number. For + instance, the C++ integer literal `010` will be serialized to `8`. + During deserialization, leading zeros yield an error. + - Not-a-number (NaN) values will be serialized to `null`. + + #### Limits + + [RFC 7159](http://rfc7159.net/rfc7159) specifies: + > An implementation may set limits on the range and precision of numbers. + + When the default type is used, the maximal integer number that can be + stored is `9223372036854775807` (INT64_MAX) and the minimal integer number + that can be stored is `-9223372036854775808` (INT64_MIN). Integer numbers + that are out of range will yield over/underflow when used in a + constructor. During deserialization, too large or small integer numbers + will be automatically be stored as @ref number_unsigned_t or @ref + number_float_t. + + [RFC 7159](http://rfc7159.net/rfc7159) further states: + > Note that when such software is used, numbers that are integers and are + > in the range \f$[-2^{53}+1, 2^{53}-1]\f$ are interoperable in the sense + > that implementations will agree exactly on their numeric values. + + As this range is a subrange of the exactly supported range [INT64_MIN, + INT64_MAX], this class's integer type is interoperable. + + #### Storage + + Integer number values are stored directly inside a @ref basic_json type. + + @sa @ref number_float_t -- type for number values (floating-point) + + @sa @ref number_unsigned_t -- type for number values (unsigned integer) + + @since version 1.0.0 + */ + using number_integer_t = NumberIntegerType; + + /*! + @brief a type for a number (unsigned) + + [RFC 7159](http://rfc7159.net/rfc7159) describes numbers as follows: + > The representation of numbers is similar to that used in most + > programming languages. A number is represented in base 10 using decimal + > digits. It contains an integer component that may be prefixed with an + > optional minus sign, which may be followed by a fraction part and/or an + > exponent part. Leading zeros are not allowed. (...) Numeric values that + > cannot be represented in the grammar below (such as Infinity and NaN) + > are not permitted. + + This description includes both integer and floating-point numbers. + However, C++ allows more precise storage if it is known whether the number + is a signed integer, an unsigned integer or a floating-point number. + Therefore, three different types, @ref number_integer_t, @ref + number_unsigned_t and @ref number_float_t are used. + + To store unsigned integer numbers in C++, a type is defined by the + template parameter @a NumberUnsignedType which chooses the type to use. + + #### Default type + + With the default values for @a NumberUnsignedType (`uint64_t`), the + default value for @a number_unsigned_t is: + + @code {.cpp} + uint64_t + @endcode + + #### Default behavior + + - The restrictions about leading zeros is not enforced in C++. Instead, + leading zeros in integer literals lead to an interpretation as octal + number. Internally, the value will be stored as decimal number. For + instance, the C++ integer literal `010` will be serialized to `8`. + During deserialization, leading zeros yield an error. + - Not-a-number (NaN) values will be serialized to `null`. + + #### Limits + + [RFC 7159](http://rfc7159.net/rfc7159) specifies: + > An implementation may set limits on the range and precision of numbers. + + When the default type is used, the maximal integer number that can be + stored is `18446744073709551615` (UINT64_MAX) and the minimal integer + number that can be stored is `0`. Integer numbers that are out of range + will yield over/underflow when used in a constructor. During + deserialization, too large or small integer numbers will be automatically + be stored as @ref number_integer_t or @ref number_float_t. + + [RFC 7159](http://rfc7159.net/rfc7159) further states: + > Note that when such software is used, numbers that are integers and are + > in the range \f$[-2^{53}+1, 2^{53}-1]\f$ are interoperable in the sense + > that implementations will agree exactly on their numeric values. + + As this range is a subrange (when considered in conjunction with the + number_integer_t type) of the exactly supported range [0, UINT64_MAX], + this class's integer type is interoperable. + + #### Storage + + Integer number values are stored directly inside a @ref basic_json type. + + @sa @ref number_float_t -- type for number values (floating-point) + @sa @ref number_integer_t -- type for number values (integer) + + @since version 2.0.0 + */ + using number_unsigned_t = NumberUnsignedType; + + /*! + @brief a type for a number (floating-point) + + [RFC 7159](http://rfc7159.net/rfc7159) describes numbers as follows: + > The representation of numbers is similar to that used in most + > programming languages. A number is represented in base 10 using decimal + > digits. It contains an integer component that may be prefixed with an + > optional minus sign, which may be followed by a fraction part and/or an + > exponent part. Leading zeros are not allowed. (...) Numeric values that + > cannot be represented in the grammar below (such as Infinity and NaN) + > are not permitted. + + This description includes both integer and floating-point numbers. + However, C++ allows more precise storage if it is known whether the number + is a signed integer, an unsigned integer or a floating-point number. + Therefore, three different types, @ref number_integer_t, @ref + number_unsigned_t and @ref number_float_t are used. + + To store floating-point numbers in C++, a type is defined by the template + parameter @a NumberFloatType which chooses the type to use. + + #### Default type + + With the default values for @a NumberFloatType (`double`), the default + value for @a number_float_t is: + + @code {.cpp} + double + @endcode + + #### Default behavior + + - The restrictions about leading zeros is not enforced in C++. Instead, + leading zeros in floating-point literals will be ignored. Internally, + the value will be stored as decimal number. For instance, the C++ + floating-point literal `01.2` will be serialized to `1.2`. During + deserialization, leading zeros yield an error. + - Not-a-number (NaN) values will be serialized to `null`. + + #### Limits + + [RFC 7159](http://rfc7159.net/rfc7159) states: + > This specification allows implementations to set limits on the range and + > precision of numbers accepted. Since software that implements IEEE + > 754-2008 binary64 (double precision) numbers is generally available and + > widely used, good interoperability can be achieved by implementations + > that expect no more precision or range than these provide, in the sense + > that implementations will approximate JSON numbers within the expected + > precision. + + This implementation does exactly follow this approach, as it uses double + precision floating-point numbers. Note values smaller than + `-1.79769313486232e+308` and values greater than `1.79769313486232e+308` + will be stored as NaN internally and be serialized to `null`. + + #### Storage + + Floating-point number values are stored directly inside a @ref basic_json + type. + + @sa @ref number_integer_t -- type for number values (integer) + + @sa @ref number_unsigned_t -- type for number values (unsigned integer) + + @since version 1.0.0 + */ + using number_float_t = NumberFloatType; + + /// @} + + private: + + /// helper for exception-safe object creation + template<typename T, typename... Args> + static T* create(Args&& ... args) + { + AllocatorType<T> alloc; + using AllocatorTraits = std::allocator_traits<AllocatorType<T>>; + + auto deleter = [&](T * object) + { + AllocatorTraits::deallocate(alloc, object, 1); + }; + std::unique_ptr<T, decltype(deleter)> object(AllocatorTraits::allocate(alloc, 1), deleter); + AllocatorTraits::construct(alloc, object.get(), std::forward<Args>(args)...); + assert(object != nullptr); + return object.release(); + } + + //////////////////////// + // JSON value storage // + //////////////////////// + + /*! + @brief a JSON value + + The actual storage for a JSON value of the @ref basic_json class. This + union combines the different storage types for the JSON value types + defined in @ref value_t. + + JSON type | value_t type | used type + --------- | --------------- | ------------------------ + object | object | pointer to @ref object_t + array | array | pointer to @ref array_t + string | string | pointer to @ref string_t + boolean | boolean | @ref boolean_t + number | number_integer | @ref number_integer_t + number | number_unsigned | @ref number_unsigned_t + number | number_float | @ref number_float_t + null | null | *no value is stored* + + @note Variable-length types (objects, arrays, and strings) are stored as + pointers. The size of the union should not exceed 64 bits if the default + value types are used. + + @since version 1.0.0 + */ + union json_value + { + /// object (stored with pointer to save storage) + object_t* object; + /// array (stored with pointer to save storage) + array_t* array; + /// string (stored with pointer to save storage) + string_t* string; + /// boolean + boolean_t boolean; + /// number (integer) + number_integer_t number_integer; + /// number (unsigned integer) + number_unsigned_t number_unsigned; + /// number (floating-point) + number_float_t number_float; + + /// default constructor (for null values) + json_value() = default; + /// constructor for booleans + json_value(boolean_t v) noexcept : boolean(v) {} + /// constructor for numbers (integer) + json_value(number_integer_t v) noexcept : number_integer(v) {} + /// constructor for numbers (unsigned) + json_value(number_unsigned_t v) noexcept : number_unsigned(v) {} + /// constructor for numbers (floating-point) + json_value(number_float_t v) noexcept : number_float(v) {} + /// constructor for empty values of a given type + json_value(value_t t) + { + switch (t) + { + case value_t::object: + { + object = create<object_t>(); + break; + } + + case value_t::array: + { + array = create<array_t>(); + break; + } + + case value_t::string: + { + string = create<string_t>(""); + break; + } + + case value_t::boolean: + { + boolean = boolean_t(false); + break; + } + + case value_t::number_integer: + { + number_integer = number_integer_t(0); + break; + } + + case value_t::number_unsigned: + { + number_unsigned = number_unsigned_t(0); + break; + } + + case value_t::number_float: + { + number_float = number_float_t(0.0); + break; + } + + case value_t::null: + { + object = nullptr; // silence warning, see #821 + break; + } + + default: + { + object = nullptr; // silence warning, see #821 + if (JSON_UNLIKELY(t == value_t::null)) + { + JSON_THROW(other_error::create(500, "961c151d2e87f2686a955a9be24d316f1362bf21 3.6.1")); // LCOV_EXCL_LINE + } + break; + } + } + } + + /// constructor for strings + json_value(const string_t& value) + { + string = create<string_t>(value); + } + + /// constructor for rvalue strings + json_value(string_t&& value) + { + string = create<string_t>(std::move(value)); + } + + /// constructor for objects + json_value(const object_t& value) + { + object = create<object_t>(value); + } + + /// constructor for rvalue objects + json_value(object_t&& value) + { + object = create<object_t>(std::move(value)); + } + + /// constructor for arrays + json_value(const array_t& value) + { + array = create<array_t>(value); + } + + /// constructor for rvalue arrays + json_value(array_t&& value) + { + array = create<array_t>(std::move(value)); + } + + void destroy(value_t t) noexcept + { + switch (t) + { + case value_t::object: + { + AllocatorType<object_t> alloc; + std::allocator_traits<decltype(alloc)>::destroy(alloc, object); + std::allocator_traits<decltype(alloc)>::deallocate(alloc, object, 1); + break; + } + + case value_t::array: + { + AllocatorType<array_t> alloc; + std::allocator_traits<decltype(alloc)>::destroy(alloc, array); + std::allocator_traits<decltype(alloc)>::deallocate(alloc, array, 1); + break; + } + + case value_t::string: + { + AllocatorType<string_t> alloc; + std::allocator_traits<decltype(alloc)>::destroy(alloc, string); + std::allocator_traits<decltype(alloc)>::deallocate(alloc, string, 1); + break; + } + + default: + { + break; + } + } + } + }; + + /*! + @brief checks the class invariants + + This function asserts the class invariants. It needs to be called at the + end of every constructor to make sure that created objects respect the + invariant. Furthermore, it has to be called each time the type of a JSON + value is changed, because the invariant expresses a relationship between + @a m_type and @a m_value. + */ + void assert_invariant() const noexcept + { + assert(m_type != value_t::object or m_value.object != nullptr); + assert(m_type != value_t::array or m_value.array != nullptr); + assert(m_type != value_t::string or m_value.string != nullptr); + } + + public: + ////////////////////////// + // JSON parser callback // + ////////////////////////// + + /*! + @brief parser event types + + The parser callback distinguishes the following events: + - `object_start`: the parser read `{` and started to process a JSON object + - `key`: the parser read a key of a value in an object + - `object_end`: the parser read `}` and finished processing a JSON object + - `array_start`: the parser read `[` and started to process a JSON array + - `array_end`: the parser read `]` and finished processing a JSON array + - `value`: the parser finished reading a JSON value + + @image html callback_events.png "Example when certain parse events are triggered" + + @sa @ref parser_callback_t for more information and examples + */ + using parse_event_t = typename parser::parse_event_t; + + /*! + @brief per-element parser callback type + + With a parser callback function, the result of parsing a JSON text can be + influenced. When passed to @ref parse, it is called on certain events + (passed as @ref parse_event_t via parameter @a event) with a set recursion + depth @a depth and context JSON value @a parsed. The return value of the + callback function is a boolean indicating whether the element that emitted + the callback shall be kept or not. + + We distinguish six scenarios (determined by the event type) in which the + callback function can be called. The following table describes the values + of the parameters @a depth, @a event, and @a parsed. + + parameter @a event | description | parameter @a depth | parameter @a parsed + ------------------ | ----------- | ------------------ | ------------------- + parse_event_t::object_start | the parser read `{` and started to process a JSON object | depth of the parent of the JSON object | a JSON value with type discarded + parse_event_t::key | the parser read a key of a value in an object | depth of the currently parsed JSON object | a JSON string containing the key + parse_event_t::object_end | the parser read `}` and finished processing a JSON object | depth of the parent of the JSON object | the parsed JSON object + parse_event_t::array_start | the parser read `[` and started to process a JSON array | depth of the parent of the JSON array | a JSON value with type discarded + parse_event_t::array_end | the parser read `]` and finished processing a JSON array | depth of the parent of the JSON array | the parsed JSON array + parse_event_t::value | the parser finished reading a JSON value | depth of the value | the parsed JSON value + + @image html callback_events.png "Example when certain parse events are triggered" + + Discarding a value (i.e., returning `false`) has different effects + depending on the context in which function was called: + + - Discarded values in structured types are skipped. That is, the parser + will behave as if the discarded value was never read. + - In case a value outside a structured type is skipped, it is replaced + with `null`. This case happens if the top-level element is skipped. + + @param[in] depth the depth of the recursion during parsing + + @param[in] event an event of type parse_event_t indicating the context in + the callback function has been called + + @param[in,out] parsed the current intermediate parse result; note that + writing to this value has no effect for parse_event_t::key events + + @return Whether the JSON value which called the function during parsing + should be kept (`true`) or not (`false`). In the latter case, it is either + skipped completely or replaced by an empty discarded object. + + @sa @ref parse for examples + + @since version 1.0.0 + */ + using parser_callback_t = typename parser::parser_callback_t; + + ////////////////// + // constructors // + ////////////////// + + /// @name constructors and destructors + /// Constructors of class @ref basic_json, copy/move constructor, copy + /// assignment, static functions creating objects, and the destructor. + /// @{ + + /*! + @brief create an empty value with a given type + + Create an empty JSON value with a given type. The value will be default + initialized with an empty value which depends on the type: + + Value type | initial value + ----------- | ------------- + null | `null` + boolean | `false` + string | `""` + number | `0` + object | `{}` + array | `[]` + + @param[in] v the type of the value to create + + @complexity Constant. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes to any JSON value. + + @liveexample{The following code shows the constructor for different @ref + value_t values,basic_json__value_t} + + @sa @ref clear() -- restores the postcondition of this constructor + + @since version 1.0.0 + */ + basic_json(const value_t v) + : m_type(v), m_value(v) + { + assert_invariant(); + } + + /*! + @brief create a null object + + Create a `null` JSON value. It either takes a null pointer as parameter + (explicitly creating `null`) or no parameter (implicitly creating `null`). + The passed null pointer itself is not read -- it is only used to choose + the right constructor. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this constructor never throws + exceptions. + + @liveexample{The following code shows the constructor with and without a + null pointer parameter.,basic_json__nullptr_t} + + @since version 1.0.0 + */ + basic_json(std::nullptr_t = nullptr) noexcept + : basic_json(value_t::null) + { + assert_invariant(); + } + + /*! + @brief create a JSON value + + This is a "catch all" constructor for all compatible JSON types; that is, + types for which a `to_json()` method exists. The constructor forwards the + parameter @a val to that method (to `json_serializer<U>::to_json` method + with `U = uncvref_t<CompatibleType>`, to be exact). + + Template type @a CompatibleType includes, but is not limited to, the + following types: + - **arrays**: @ref array_t and all kinds of compatible containers such as + `std::vector`, `std::deque`, `std::list`, `std::forward_list`, + `std::array`, `std::valarray`, `std::set`, `std::unordered_set`, + `std::multiset`, and `std::unordered_multiset` with a `value_type` from + which a @ref basic_json value can be constructed. + - **objects**: @ref object_t and all kinds of compatible associative + containers such as `std::map`, `std::unordered_map`, `std::multimap`, + and `std::unordered_multimap` with a `key_type` compatible to + @ref string_t and a `value_type` from which a @ref basic_json value can + be constructed. + - **strings**: @ref string_t, string literals, and all compatible string + containers can be used. + - **numbers**: @ref number_integer_t, @ref number_unsigned_t, + @ref number_float_t, and all convertible number types such as `int`, + `size_t`, `int64_t`, `float` or `double` can be used. + - **boolean**: @ref boolean_t / `bool` can be used. + + See the examples below. + + @tparam CompatibleType a type such that: + - @a CompatibleType is not derived from `std::istream`, + - @a CompatibleType is not @ref basic_json (to avoid hijacking copy/move + constructors), + - @a CompatibleType is not a different @ref basic_json type (i.e. with different template arguments) + - @a CompatibleType is not a @ref basic_json nested type (e.g., + @ref json_pointer, @ref iterator, etc ...) + - @ref @ref json_serializer<U> has a + `to_json(basic_json_t&, CompatibleType&&)` method + + @tparam U = `uncvref_t<CompatibleType>` + + @param[in] val the value to be forwarded to the respective constructor + + @complexity Usually linear in the size of the passed @a val, also + depending on the implementation of the called `to_json()` + method. + + @exceptionsafety Depends on the called constructor. For types directly + supported by the library (i.e., all types for which no `to_json()` function + was provided), strong guarantee holds: if an exception is thrown, there are + no changes to any JSON value. + + @liveexample{The following code shows the constructor with several + compatible types.,basic_json__CompatibleType} + + @since version 2.1.0 + */ + template <typename CompatibleType, + typename U = detail::uncvref_t<CompatibleType>, + detail::enable_if_t< + not detail::is_basic_json<U>::value and detail::is_compatible_type<basic_json_t, U>::value, int> = 0> + basic_json(CompatibleType && val) noexcept(noexcept( + JSONSerializer<U>::to_json(std::declval<basic_json_t&>(), + std::forward<CompatibleType>(val)))) + { + JSONSerializer<U>::to_json(*this, std::forward<CompatibleType>(val)); + assert_invariant(); + } + + /*! + @brief create a JSON value from an existing one + + This is a constructor for existing @ref basic_json types. + It does not hijack copy/move constructors, since the parameter has different + template arguments than the current ones. + + The constructor tries to convert the internal @ref m_value of the parameter. + + @tparam BasicJsonType a type such that: + - @a BasicJsonType is a @ref basic_json type. + - @a BasicJsonType has different template arguments than @ref basic_json_t. + + @param[in] val the @ref basic_json value to be converted. + + @complexity Usually linear in the size of the passed @a val, also + depending on the implementation of the called `to_json()` + method. + + @exceptionsafety Depends on the called constructor. For types directly + supported by the library (i.e., all types for which no `to_json()` function + was provided), strong guarantee holds: if an exception is thrown, there are + no changes to any JSON value. + + @since version 3.2.0 + */ + template <typename BasicJsonType, + detail::enable_if_t< + detail::is_basic_json<BasicJsonType>::value and not std::is_same<basic_json, BasicJsonType>::value, int> = 0> + basic_json(const BasicJsonType& val) + { + using other_boolean_t = typename BasicJsonType::boolean_t; + using other_number_float_t = typename BasicJsonType::number_float_t; + using other_number_integer_t = typename BasicJsonType::number_integer_t; + using other_number_unsigned_t = typename BasicJsonType::number_unsigned_t; + using other_string_t = typename BasicJsonType::string_t; + using other_object_t = typename BasicJsonType::object_t; + using other_array_t = typename BasicJsonType::array_t; + + switch (val.type()) + { + case value_t::boolean: + JSONSerializer<other_boolean_t>::to_json(*this, val.template get<other_boolean_t>()); + break; + case value_t::number_float: + JSONSerializer<other_number_float_t>::to_json(*this, val.template get<other_number_float_t>()); + break; + case value_t::number_integer: + JSONSerializer<other_number_integer_t>::to_json(*this, val.template get<other_number_integer_t>()); + break; + case value_t::number_unsigned: + JSONSerializer<other_number_unsigned_t>::to_json(*this, val.template get<other_number_unsigned_t>()); + break; + case value_t::string: + JSONSerializer<other_string_t>::to_json(*this, val.template get_ref<const other_string_t&>()); + break; + case value_t::object: + JSONSerializer<other_object_t>::to_json(*this, val.template get_ref<const other_object_t&>()); + break; + case value_t::array: + JSONSerializer<other_array_t>::to_json(*this, val.template get_ref<const other_array_t&>()); + break; + case value_t::null: + *this = nullptr; + break; + case value_t::discarded: + m_type = value_t::discarded; + break; + default: // LCOV_EXCL_LINE + assert(false); // LCOV_EXCL_LINE + } + assert_invariant(); + } + + /*! + @brief create a container (array or object) from an initializer list + + Creates a JSON value of type array or object from the passed initializer + list @a init. In case @a type_deduction is `true` (default), the type of + the JSON value to be created is deducted from the initializer list @a init + according to the following rules: + + 1. If the list is empty, an empty JSON object value `{}` is created. + 2. If the list consists of pairs whose first element is a string, a JSON + object value is created where the first elements of the pairs are + treated as keys and the second elements are as values. + 3. In all other cases, an array is created. + + The rules aim to create the best fit between a C++ initializer list and + JSON values. The rationale is as follows: + + 1. The empty initializer list is written as `{}` which is exactly an empty + JSON object. + 2. C++ has no way of describing mapped types other than to list a list of + pairs. As JSON requires that keys must be of type string, rule 2 is the + weakest constraint one can pose on initializer lists to interpret them + as an object. + 3. In all other cases, the initializer list could not be interpreted as + JSON object type, so interpreting it as JSON array type is safe. + + With the rules described above, the following JSON values cannot be + expressed by an initializer list: + + - the empty array (`[]`): use @ref array(initializer_list_t) + with an empty initializer list in this case + - arrays whose elements satisfy rule 2: use @ref + array(initializer_list_t) with the same initializer list + in this case + + @note When used without parentheses around an empty initializer list, @ref + basic_json() is called instead of this function, yielding the JSON null + value. + + @param[in] init initializer list with JSON values + + @param[in] type_deduction internal parameter; when set to `true`, the type + of the JSON value is deducted from the initializer list @a init; when set + to `false`, the type provided via @a manual_type is forced. This mode is + used by the functions @ref array(initializer_list_t) and + @ref object(initializer_list_t). + + @param[in] manual_type internal parameter; when @a type_deduction is set + to `false`, the created JSON value will use the provided type (only @ref + value_t::array and @ref value_t::object are valid); when @a type_deduction + is set to `true`, this parameter has no effect + + @throw type_error.301 if @a type_deduction is `false`, @a manual_type is + `value_t::object`, but @a init contains an element which is not a pair + whose first element is a string. In this case, the constructor could not + create an object. If @a type_deduction would have be `true`, an array + would have been created. See @ref object(initializer_list_t) + for an example. + + @complexity Linear in the size of the initializer list @a init. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes to any JSON value. + + @liveexample{The example below shows how JSON values are created from + initializer lists.,basic_json__list_init_t} + + @sa @ref array(initializer_list_t) -- create a JSON array + value from an initializer list + @sa @ref object(initializer_list_t) -- create a JSON object + value from an initializer list + + @since version 1.0.0 + */ + basic_json(initializer_list_t init, + bool type_deduction = true, + value_t manual_type = value_t::array) + { + // check if each element is an array with two elements whose first + // element is a string + bool is_an_object = std::all_of(init.begin(), init.end(), + [](const detail::json_ref<basic_json>& element_ref) + { + return element_ref->is_array() and element_ref->size() == 2 and (*element_ref)[0].is_string(); + }); + + // adjust type if type deduction is not wanted + if (not type_deduction) + { + // if array is wanted, do not create an object though possible + if (manual_type == value_t::array) + { + is_an_object = false; + } + + // if object is wanted but impossible, throw an exception + if (JSON_UNLIKELY(manual_type == value_t::object and not is_an_object)) + { + JSON_THROW(type_error::create(301, "cannot create object from initializer list")); + } + } + + if (is_an_object) + { + // the initializer list is a list of pairs -> create object + m_type = value_t::object; + m_value = value_t::object; + + std::for_each(init.begin(), init.end(), [this](const detail::json_ref<basic_json>& element_ref) + { + auto element = element_ref.moved_or_copied(); + m_value.object->emplace( + std::move(*((*element.m_value.array)[0].m_value.string)), + std::move((*element.m_value.array)[1])); + }); + } + else + { + // the initializer list describes an array -> create array + m_type = value_t::array; + m_value.array = create<array_t>(init.begin(), init.end()); + } + + assert_invariant(); + } + + /*! + @brief explicitly create an array from an initializer list + + Creates a JSON array value from a given initializer list. That is, given a + list of values `a, b, c`, creates the JSON value `[a, b, c]`. If the + initializer list is empty, the empty array `[]` is created. + + @note This function is only needed to express two edge cases that cannot + be realized with the initializer list constructor (@ref + basic_json(initializer_list_t, bool, value_t)). These cases + are: + 1. creating an array whose elements are all pairs whose first element is a + string -- in this case, the initializer list constructor would create an + object, taking the first elements as keys + 2. creating an empty array -- passing the empty initializer list to the + initializer list constructor yields an empty object + + @param[in] init initializer list with JSON values to create an array from + (optional) + + @return JSON array value + + @complexity Linear in the size of @a init. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes to any JSON value. + + @liveexample{The following code shows an example for the `array` + function.,array} + + @sa @ref basic_json(initializer_list_t, bool, value_t) -- + create a JSON value from an initializer list + @sa @ref object(initializer_list_t) -- create a JSON object + value from an initializer list + + @since version 1.0.0 + */ + JSON_NODISCARD + static basic_json array(initializer_list_t init = {}) + { + return basic_json(init, false, value_t::array); + } + + /*! + @brief explicitly create an object from an initializer list + + Creates a JSON object value from a given initializer list. The initializer + lists elements must be pairs, and their first elements must be strings. If + the initializer list is empty, the empty object `{}` is created. + + @note This function is only added for symmetry reasons. In contrast to the + related function @ref array(initializer_list_t), there are + no cases which can only be expressed by this function. That is, any + initializer list @a init can also be passed to the initializer list + constructor @ref basic_json(initializer_list_t, bool, value_t). + + @param[in] init initializer list to create an object from (optional) + + @return JSON object value + + @throw type_error.301 if @a init is not a list of pairs whose first + elements are strings. In this case, no object can be created. When such a + value is passed to @ref basic_json(initializer_list_t, bool, value_t), + an array would have been created from the passed initializer list @a init. + See example below. + + @complexity Linear in the size of @a init. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes to any JSON value. + + @liveexample{The following code shows an example for the `object` + function.,object} + + @sa @ref basic_json(initializer_list_t, bool, value_t) -- + create a JSON value from an initializer list + @sa @ref array(initializer_list_t) -- create a JSON array + value from an initializer list + + @since version 1.0.0 + */ + JSON_NODISCARD + static basic_json object(initializer_list_t init = {}) + { + return basic_json(init, false, value_t::object); + } + + /*! + @brief construct an array with count copies of given value + + Constructs a JSON array value by creating @a cnt copies of a passed value. + In case @a cnt is `0`, an empty array is created. + + @param[in] cnt the number of JSON copies of @a val to create + @param[in] val the JSON value to copy + + @post `std::distance(begin(),end()) == cnt` holds. + + @complexity Linear in @a cnt. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes to any JSON value. + + @liveexample{The following code shows examples for the @ref + basic_json(size_type\, const basic_json&) + constructor.,basic_json__size_type_basic_json} + + @since version 1.0.0 + */ + basic_json(size_type cnt, const basic_json& val) + : m_type(value_t::array) + { + m_value.array = create<array_t>(cnt, val); + assert_invariant(); + } + + /*! + @brief construct a JSON container given an iterator range + + Constructs the JSON value with the contents of the range `[first, last)`. + The semantics depends on the different types a JSON value can have: + - In case of a null type, invalid_iterator.206 is thrown. + - In case of other primitive types (number, boolean, or string), @a first + must be `begin()` and @a last must be `end()`. In this case, the value is + copied. Otherwise, invalid_iterator.204 is thrown. + - In case of structured types (array, object), the constructor behaves as + similar versions for `std::vector` or `std::map`; that is, a JSON array + or object is constructed from the values in the range. + + @tparam InputIT an input iterator type (@ref iterator or @ref + const_iterator) + + @param[in] first begin of the range to copy from (included) + @param[in] last end of the range to copy from (excluded) + + @pre Iterators @a first and @a last must be initialized. **This + precondition is enforced with an assertion (see warning).** If + assertions are switched off, a violation of this precondition yields + undefined behavior. + + @pre Range `[first, last)` is valid. Usually, this precondition cannot be + checked efficiently. Only certain edge cases are detected; see the + description of the exceptions below. A violation of this precondition + yields undefined behavior. + + @warning A precondition is enforced with a runtime assertion that will + result in calling `std::abort` if this precondition is not met. + Assertions can be disabled by defining `NDEBUG` at compile time. + See https://en.cppreference.com/w/cpp/error/assert for more + information. + + @throw invalid_iterator.201 if iterators @a first and @a last are not + compatible (i.e., do not belong to the same JSON value). In this case, + the range `[first, last)` is undefined. + @throw invalid_iterator.204 if iterators @a first and @a last belong to a + primitive type (number, boolean, or string), but @a first does not point + to the first element any more. In this case, the range `[first, last)` is + undefined. See example code below. + @throw invalid_iterator.206 if iterators @a first and @a last belong to a + null value. In this case, the range `[first, last)` is undefined. + + @complexity Linear in distance between @a first and @a last. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes to any JSON value. + + @liveexample{The example below shows several ways to create JSON values by + specifying a subrange with iterators.,basic_json__InputIt_InputIt} + + @since version 1.0.0 + */ + template<class InputIT, typename std::enable_if< + std::is_same<InputIT, typename basic_json_t::iterator>::value or + std::is_same<InputIT, typename basic_json_t::const_iterator>::value, int>::type = 0> + basic_json(InputIT first, InputIT last) + { + assert(first.m_object != nullptr); + assert(last.m_object != nullptr); + + // make sure iterator fits the current value + if (JSON_UNLIKELY(first.m_object != last.m_object)) + { + JSON_THROW(invalid_iterator::create(201, "iterators are not compatible")); + } + + // copy type from first iterator + m_type = first.m_object->m_type; + + // check if iterator range is complete for primitive values + switch (m_type) + { + case value_t::boolean: + case value_t::number_float: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::string: + { + if (JSON_UNLIKELY(not first.m_it.primitive_iterator.is_begin() + or not last.m_it.primitive_iterator.is_end())) + { + JSON_THROW(invalid_iterator::create(204, "iterators out of range")); + } + break; + } + + default: + break; + } + + switch (m_type) + { + case value_t::number_integer: + { + m_value.number_integer = first.m_object->m_value.number_integer; + break; + } + + case value_t::number_unsigned: + { + m_value.number_unsigned = first.m_object->m_value.number_unsigned; + break; + } + + case value_t::number_float: + { + m_value.number_float = first.m_object->m_value.number_float; + break; + } + + case value_t::boolean: + { + m_value.boolean = first.m_object->m_value.boolean; + break; + } + + case value_t::string: + { + m_value = *first.m_object->m_value.string; + break; + } + + case value_t::object: + { + m_value.object = create<object_t>(first.m_it.object_iterator, + last.m_it.object_iterator); + break; + } + + case value_t::array: + { + m_value.array = create<array_t>(first.m_it.array_iterator, + last.m_it.array_iterator); + break; + } + + default: + JSON_THROW(invalid_iterator::create(206, "cannot construct with iterators from " + + std::string(first.m_object->type_name()))); + } + + assert_invariant(); + } + + + /////////////////////////////////////// + // other constructors and destructor // + /////////////////////////////////////// + + /// @private + basic_json(const detail::json_ref<basic_json>& ref) + : basic_json(ref.moved_or_copied()) + {} + + /*! + @brief copy constructor + + Creates a copy of a given JSON value. + + @param[in] other the JSON value to copy + + @post `*this == other` + + @complexity Linear in the size of @a other. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes to any JSON value. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is linear. + - As postcondition, it holds: `other == basic_json(other)`. + + @liveexample{The following code shows an example for the copy + constructor.,basic_json__basic_json} + + @since version 1.0.0 + */ + basic_json(const basic_json& other) + : m_type(other.m_type) + { + // check of passed value is valid + other.assert_invariant(); + + switch (m_type) + { + case value_t::object: + { + m_value = *other.m_value.object; + break; + } + + case value_t::array: + { + m_value = *other.m_value.array; + break; + } + + case value_t::string: + { + m_value = *other.m_value.string; + break; + } + + case value_t::boolean: + { + m_value = other.m_value.boolean; + break; + } + + case value_t::number_integer: + { + m_value = other.m_value.number_integer; + break; + } + + case value_t::number_unsigned: + { + m_value = other.m_value.number_unsigned; + break; + } + + case value_t::number_float: + { + m_value = other.m_value.number_float; + break; + } + + default: + break; + } + + assert_invariant(); + } + + /*! + @brief move constructor + + Move constructor. Constructs a JSON value with the contents of the given + value @a other using move semantics. It "steals" the resources from @a + other and leaves it as JSON null value. + + @param[in,out] other value to move to this object + + @post `*this` has the same value as @a other before the call. + @post @a other is a JSON null value. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this constructor never throws + exceptions. + + @requirement This function helps `basic_json` satisfying the + [MoveConstructible](https://en.cppreference.com/w/cpp/named_req/MoveConstructible) + requirements. + + @liveexample{The code below shows the move constructor explicitly called + via std::move.,basic_json__moveconstructor} + + @since version 1.0.0 + */ + basic_json(basic_json&& other) noexcept + : m_type(std::move(other.m_type)), + m_value(std::move(other.m_value)) + { + // check that passed value is valid + other.assert_invariant(); + + // invalidate payload + other.m_type = value_t::null; + other.m_value = {}; + + assert_invariant(); + } + + /*! + @brief copy assignment + + Copy assignment operator. Copies a JSON value via the "copy and swap" + strategy: It is expressed in terms of the copy constructor, destructor, + and the `swap()` member function. + + @param[in] other value to copy from + + @complexity Linear. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is linear. + + @liveexample{The code below shows and example for the copy assignment. It + creates a copy of value `a` which is then swapped with `b`. Finally\, the + copy of `a` (which is the null value after the swap) is + destroyed.,basic_json__copyassignment} + + @since version 1.0.0 + */ + basic_json& operator=(basic_json other) noexcept ( + std::is_nothrow_move_constructible<value_t>::value and + std::is_nothrow_move_assignable<value_t>::value and + std::is_nothrow_move_constructible<json_value>::value and + std::is_nothrow_move_assignable<json_value>::value + ) + { + // check that passed value is valid + other.assert_invariant(); + + using std::swap; + swap(m_type, other.m_type); + swap(m_value, other.m_value); + + assert_invariant(); + return *this; + } + + /*! + @brief destructor + + Destroys the JSON value and frees all allocated memory. + + @complexity Linear. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is linear. + - All stored elements are destroyed and all memory is freed. + + @since version 1.0.0 + */ + ~basic_json() noexcept + { + assert_invariant(); + m_value.destroy(m_type); + } + + /// @} + + public: + /////////////////////// + // object inspection // + /////////////////////// + + /// @name object inspection + /// Functions to inspect the type of a JSON value. + /// @{ + + /*! + @brief serialization + + Serialization function for JSON values. The function tries to mimic + Python's `json.dumps()` function, and currently supports its @a indent + and @a ensure_ascii parameters. + + @param[in] indent If indent is nonnegative, then array elements and object + members will be pretty-printed with that indent level. An indent level of + `0` will only insert newlines. `-1` (the default) selects the most compact + representation. + @param[in] indent_char The character to use for indentation if @a indent is + greater than `0`. The default is ` ` (space). + @param[in] ensure_ascii If @a ensure_ascii is true, all non-ASCII characters + in the output are escaped with `\uXXXX` sequences, and the result consists + of ASCII characters only. + @param[in] error_handler how to react on decoding errors; there are three + possible values: `strict` (throws and exception in case a decoding error + occurs; default), `replace` (replace invalid UTF-8 sequences with U+FFFD), + and `ignore` (ignore invalid UTF-8 sequences during serialization). + + @return string containing the serialization of the JSON value + + @throw type_error.316 if a string stored inside the JSON value is not + UTF-8 encoded + + @complexity Linear. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes in the JSON value. + + @liveexample{The following example shows the effect of different @a indent\, + @a indent_char\, and @a ensure_ascii parameters to the result of the + serialization.,dump} + + @see https://docs.python.org/2/library/json.html#json.dump + + @since version 1.0.0; indentation character @a indent_char, option + @a ensure_ascii and exceptions added in version 3.0.0; error + handlers added in version 3.4.0. + */ + string_t dump(const int indent = -1, + const char indent_char = ' ', + const bool ensure_ascii = false, + const error_handler_t error_handler = error_handler_t::strict) const + { + string_t result; + serializer s(detail::output_adapter<char, string_t>(result), indent_char, error_handler); + + if (indent >= 0) + { + s.dump(*this, true, ensure_ascii, static_cast<unsigned int>(indent)); + } + else + { + s.dump(*this, false, ensure_ascii, 0); + } + + return result; + } + + /*! + @brief return the type of the JSON value (explicit) + + Return the type of the JSON value as a value from the @ref value_t + enumeration. + + @return the type of the JSON value + Value type | return value + ------------------------- | ------------------------- + null | value_t::null + boolean | value_t::boolean + string | value_t::string + number (integer) | value_t::number_integer + number (unsigned integer) | value_t::number_unsigned + number (floating-point) | value_t::number_float + object | value_t::object + array | value_t::array + discarded | value_t::discarded + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `type()` for all JSON + types.,type} + + @sa @ref operator value_t() -- return the type of the JSON value (implicit) + @sa @ref type_name() -- return the type as string + + @since version 1.0.0 + */ + constexpr value_t type() const noexcept + { + return m_type; + } + + /*! + @brief return whether type is primitive + + This function returns true if and only if the JSON type is primitive + (string, number, boolean, or null). + + @return `true` if type is primitive (string, number, boolean, or null), + `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_primitive()` for all JSON + types.,is_primitive} + + @sa @ref is_structured() -- returns whether JSON value is structured + @sa @ref is_null() -- returns whether JSON value is `null` + @sa @ref is_string() -- returns whether JSON value is a string + @sa @ref is_boolean() -- returns whether JSON value is a boolean + @sa @ref is_number() -- returns whether JSON value is a number + + @since version 1.0.0 + */ + constexpr bool is_primitive() const noexcept + { + return is_null() or is_string() or is_boolean() or is_number(); + } + + /*! + @brief return whether type is structured + + This function returns true if and only if the JSON type is structured + (array or object). + + @return `true` if type is structured (array or object), `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_structured()` for all JSON + types.,is_structured} + + @sa @ref is_primitive() -- returns whether value is primitive + @sa @ref is_array() -- returns whether value is an array + @sa @ref is_object() -- returns whether value is an object + + @since version 1.0.0 + */ + constexpr bool is_structured() const noexcept + { + return is_array() or is_object(); + } + + /*! + @brief return whether value is null + + This function returns true if and only if the JSON value is null. + + @return `true` if type is null, `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_null()` for all JSON + types.,is_null} + + @since version 1.0.0 + */ + constexpr bool is_null() const noexcept + { + return m_type == value_t::null; + } + + /*! + @brief return whether value is a boolean + + This function returns true if and only if the JSON value is a boolean. + + @return `true` if type is boolean, `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_boolean()` for all JSON + types.,is_boolean} + + @since version 1.0.0 + */ + constexpr bool is_boolean() const noexcept + { + return m_type == value_t::boolean; + } + + /*! + @brief return whether value is a number + + This function returns true if and only if the JSON value is a number. This + includes both integer (signed and unsigned) and floating-point values. + + @return `true` if type is number (regardless whether integer, unsigned + integer or floating-type), `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_number()` for all JSON + types.,is_number} + + @sa @ref is_number_integer() -- check if value is an integer or unsigned + integer number + @sa @ref is_number_unsigned() -- check if value is an unsigned integer + number + @sa @ref is_number_float() -- check if value is a floating-point number + + @since version 1.0.0 + */ + constexpr bool is_number() const noexcept + { + return is_number_integer() or is_number_float(); + } + + /*! + @brief return whether value is an integer number + + This function returns true if and only if the JSON value is a signed or + unsigned integer number. This excludes floating-point values. + + @return `true` if type is an integer or unsigned integer number, `false` + otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_number_integer()` for all + JSON types.,is_number_integer} + + @sa @ref is_number() -- check if value is a number + @sa @ref is_number_unsigned() -- check if value is an unsigned integer + number + @sa @ref is_number_float() -- check if value is a floating-point number + + @since version 1.0.0 + */ + constexpr bool is_number_integer() const noexcept + { + return m_type == value_t::number_integer or m_type == value_t::number_unsigned; + } + + /*! + @brief return whether value is an unsigned integer number + + This function returns true if and only if the JSON value is an unsigned + integer number. This excludes floating-point and signed integer values. + + @return `true` if type is an unsigned integer number, `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_number_unsigned()` for all + JSON types.,is_number_unsigned} + + @sa @ref is_number() -- check if value is a number + @sa @ref is_number_integer() -- check if value is an integer or unsigned + integer number + @sa @ref is_number_float() -- check if value is a floating-point number + + @since version 2.0.0 + */ + constexpr bool is_number_unsigned() const noexcept + { + return m_type == value_t::number_unsigned; + } + + /*! + @brief return whether value is a floating-point number + + This function returns true if and only if the JSON value is a + floating-point number. This excludes signed and unsigned integer values. + + @return `true` if type is a floating-point number, `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_number_float()` for all + JSON types.,is_number_float} + + @sa @ref is_number() -- check if value is number + @sa @ref is_number_integer() -- check if value is an integer number + @sa @ref is_number_unsigned() -- check if value is an unsigned integer + number + + @since version 1.0.0 + */ + constexpr bool is_number_float() const noexcept + { + return m_type == value_t::number_float; + } + + /*! + @brief return whether value is an object + + This function returns true if and only if the JSON value is an object. + + @return `true` if type is object, `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_object()` for all JSON + types.,is_object} + + @since version 1.0.0 + */ + constexpr bool is_object() const noexcept + { + return m_type == value_t::object; + } + + /*! + @brief return whether value is an array + + This function returns true if and only if the JSON value is an array. + + @return `true` if type is array, `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_array()` for all JSON + types.,is_array} + + @since version 1.0.0 + */ + constexpr bool is_array() const noexcept + { + return m_type == value_t::array; + } + + /*! + @brief return whether value is a string + + This function returns true if and only if the JSON value is a string. + + @return `true` if type is string, `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_string()` for all JSON + types.,is_string} + + @since version 1.0.0 + */ + constexpr bool is_string() const noexcept + { + return m_type == value_t::string; + } + + /*! + @brief return whether value is discarded + + This function returns true if and only if the JSON value was discarded + during parsing with a callback function (see @ref parser_callback_t). + + @note This function will always be `false` for JSON values after parsing. + That is, discarded values can only occur during parsing, but will be + removed when inside a structured value or replaced by null in other cases. + + @return `true` if type is discarded, `false` otherwise. + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies `is_discarded()` for all JSON + types.,is_discarded} + + @since version 1.0.0 + */ + constexpr bool is_discarded() const noexcept + { + return m_type == value_t::discarded; + } + + /*! + @brief return the type of the JSON value (implicit) + + Implicitly return the type of the JSON value as a value from the @ref + value_t enumeration. + + @return the type of the JSON value + + @complexity Constant. + + @exceptionsafety No-throw guarantee: this member function never throws + exceptions. + + @liveexample{The following code exemplifies the @ref value_t operator for + all JSON types.,operator__value_t} + + @sa @ref type() -- return the type of the JSON value (explicit) + @sa @ref type_name() -- return the type as string + + @since version 1.0.0 + */ + constexpr operator value_t() const noexcept + { + return m_type; + } + + /// @} + + private: + ////////////////// + // value access // + ////////////////// + + /// get a boolean (explicit) + boolean_t get_impl(boolean_t* /*unused*/) const + { + if (JSON_LIKELY(is_boolean())) + { + return m_value.boolean; + } + + JSON_THROW(type_error::create(302, "type must be boolean, but is " + std::string(type_name()))); + } + + /// get a pointer to the value (object) + object_t* get_impl_ptr(object_t* /*unused*/) noexcept + { + return is_object() ? m_value.object : nullptr; + } + + /// get a pointer to the value (object) + constexpr const object_t* get_impl_ptr(const object_t* /*unused*/) const noexcept + { + return is_object() ? m_value.object : nullptr; + } + + /// get a pointer to the value (array) + array_t* get_impl_ptr(array_t* /*unused*/) noexcept + { + return is_array() ? m_value.array : nullptr; + } + + /// get a pointer to the value (array) + constexpr const array_t* get_impl_ptr(const array_t* /*unused*/) const noexcept + { + return is_array() ? m_value.array : nullptr; + } + + /// get a pointer to the value (string) + string_t* get_impl_ptr(string_t* /*unused*/) noexcept + { + return is_string() ? m_value.string : nullptr; + } + + /// get a pointer to the value (string) + constexpr const string_t* get_impl_ptr(const string_t* /*unused*/) const noexcept + { + return is_string() ? m_value.string : nullptr; + } + + /// get a pointer to the value (boolean) + boolean_t* get_impl_ptr(boolean_t* /*unused*/) noexcept + { + return is_boolean() ? &m_value.boolean : nullptr; + } + + /// get a pointer to the value (boolean) + constexpr const boolean_t* get_impl_ptr(const boolean_t* /*unused*/) const noexcept + { + return is_boolean() ? &m_value.boolean : nullptr; + } + + /// get a pointer to the value (integer number) + number_integer_t* get_impl_ptr(number_integer_t* /*unused*/) noexcept + { + return is_number_integer() ? &m_value.number_integer : nullptr; + } + + /// get a pointer to the value (integer number) + constexpr const number_integer_t* get_impl_ptr(const number_integer_t* /*unused*/) const noexcept + { + return is_number_integer() ? &m_value.number_integer : nullptr; + } + + /// get a pointer to the value (unsigned number) + number_unsigned_t* get_impl_ptr(number_unsigned_t* /*unused*/) noexcept + { + return is_number_unsigned() ? &m_value.number_unsigned : nullptr; + } + + /// get a pointer to the value (unsigned number) + constexpr const number_unsigned_t* get_impl_ptr(const number_unsigned_t* /*unused*/) const noexcept + { + return is_number_unsigned() ? &m_value.number_unsigned : nullptr; + } + + /// get a pointer to the value (floating-point number) + number_float_t* get_impl_ptr(number_float_t* /*unused*/) noexcept + { + return is_number_float() ? &m_value.number_float : nullptr; + } + + /// get a pointer to the value (floating-point number) + constexpr const number_float_t* get_impl_ptr(const number_float_t* /*unused*/) const noexcept + { + return is_number_float() ? &m_value.number_float : nullptr; + } + + /*! + @brief helper function to implement get_ref() + + This function helps to implement get_ref() without code duplication for + const and non-const overloads + + @tparam ThisType will be deduced as `basic_json` or `const basic_json` + + @throw type_error.303 if ReferenceType does not match underlying value + type of the current JSON + */ + template<typename ReferenceType, typename ThisType> + static ReferenceType get_ref_impl(ThisType& obj) + { + // delegate the call to get_ptr<>() + auto ptr = obj.template get_ptr<typename std::add_pointer<ReferenceType>::type>(); + + if (JSON_LIKELY(ptr != nullptr)) + { + return *ptr; + } + + JSON_THROW(type_error::create(303, "incompatible ReferenceType for get_ref, actual type is " + std::string(obj.type_name()))); + } + + public: + /// @name value access + /// Direct access to the stored value of a JSON value. + /// @{ + + /*! + @brief get special-case overload + + This overloads avoids a lot of template boilerplate, it can be seen as the + identity method + + @tparam BasicJsonType == @ref basic_json + + @return a copy of *this + + @complexity Constant. + + @since version 2.1.0 + */ + template<typename BasicJsonType, detail::enable_if_t< + std::is_same<typename std::remove_const<BasicJsonType>::type, basic_json_t>::value, + int> = 0> + basic_json get() const + { + return *this; + } + + /*! + @brief get special-case overload + + This overloads converts the current @ref basic_json in a different + @ref basic_json type + + @tparam BasicJsonType == @ref basic_json + + @return a copy of *this, converted into @tparam BasicJsonType + + @complexity Depending on the implementation of the called `from_json()` + method. + + @since version 3.2.0 + */ + template<typename BasicJsonType, detail::enable_if_t< + not std::is_same<BasicJsonType, basic_json>::value and + detail::is_basic_json<BasicJsonType>::value, int> = 0> + BasicJsonType get() const + { + return *this; + } + + /*! + @brief get a value (explicit) + + Explicit type conversion between the JSON value and a compatible value + which is [CopyConstructible](https://en.cppreference.com/w/cpp/named_req/CopyConstructible) + and [DefaultConstructible](https://en.cppreference.com/w/cpp/named_req/DefaultConstructible). + The value is converted by calling the @ref json_serializer<ValueType> + `from_json()` method. + + The function is equivalent to executing + @code {.cpp} + ValueType ret; + JSONSerializer<ValueType>::from_json(*this, ret); + return ret; + @endcode + + This overloads is chosen if: + - @a ValueType is not @ref basic_json, + - @ref json_serializer<ValueType> has a `from_json()` method of the form + `void from_json(const basic_json&, ValueType&)`, and + - @ref json_serializer<ValueType> does not have a `from_json()` method of + the form `ValueType from_json(const basic_json&)` + + @tparam ValueTypeCV the provided value type + @tparam ValueType the returned value type + + @return copy of the JSON value, converted to @a ValueType + + @throw what @ref json_serializer<ValueType> `from_json()` method throws + + @liveexample{The example below shows several conversions from JSON values + to other types. There a few things to note: (1) Floating-point numbers can + be converted to integers\, (2) A JSON array can be converted to a standard + `std::vector<short>`\, (3) A JSON object can be converted to C++ + associative containers such as `std::unordered_map<std::string\, + json>`.,get__ValueType_const} + + @since version 2.1.0 + */ + template<typename ValueTypeCV, typename ValueType = detail::uncvref_t<ValueTypeCV>, + detail::enable_if_t < + not detail::is_basic_json<ValueType>::value and + detail::has_from_json<basic_json_t, ValueType>::value and + not detail::has_non_default_from_json<basic_json_t, ValueType>::value, + int> = 0> + ValueType get() const noexcept(noexcept( + JSONSerializer<ValueType>::from_json(std::declval<const basic_json_t&>(), std::declval<ValueType&>()))) + { + // we cannot static_assert on ValueTypeCV being non-const, because + // there is support for get<const basic_json_t>(), which is why we + // still need the uncvref + static_assert(not std::is_reference<ValueTypeCV>::value, + "get() cannot be used with reference types, you might want to use get_ref()"); + static_assert(std::is_default_constructible<ValueType>::value, + "types must be DefaultConstructible when used with get()"); + + ValueType ret; + JSONSerializer<ValueType>::from_json(*this, ret); + return ret; + } + + /*! + @brief get a value (explicit); special case + + Explicit type conversion between the JSON value and a compatible value + which is **not** [CopyConstructible](https://en.cppreference.com/w/cpp/named_req/CopyConstructible) + and **not** [DefaultConstructible](https://en.cppreference.com/w/cpp/named_req/DefaultConstructible). + The value is converted by calling the @ref json_serializer<ValueType> + `from_json()` method. + + The function is equivalent to executing + @code {.cpp} + return JSONSerializer<ValueTypeCV>::from_json(*this); + @endcode + + This overloads is chosen if: + - @a ValueType is not @ref basic_json and + - @ref json_serializer<ValueType> has a `from_json()` method of the form + `ValueType from_json(const basic_json&)` + + @note If @ref json_serializer<ValueType> has both overloads of + `from_json()`, this one is chosen. + + @tparam ValueTypeCV the provided value type + @tparam ValueType the returned value type + + @return copy of the JSON value, converted to @a ValueType + + @throw what @ref json_serializer<ValueType> `from_json()` method throws + + @since version 2.1.0 + */ + template<typename ValueTypeCV, typename ValueType = detail::uncvref_t<ValueTypeCV>, + detail::enable_if_t<not std::is_same<basic_json_t, ValueType>::value and + detail::has_non_default_from_json<basic_json_t, ValueType>::value, + int> = 0> + ValueType get() const noexcept(noexcept( + JSONSerializer<ValueTypeCV>::from_json(std::declval<const basic_json_t&>()))) + { + static_assert(not std::is_reference<ValueTypeCV>::value, + "get() cannot be used with reference types, you might want to use get_ref()"); + return JSONSerializer<ValueTypeCV>::from_json(*this); + } + + /*! + @brief get a value (explicit) + + Explicit type conversion between the JSON value and a compatible value. + The value is filled into the input parameter by calling the @ref json_serializer<ValueType> + `from_json()` method. + + The function is equivalent to executing + @code {.cpp} + ValueType v; + JSONSerializer<ValueType>::from_json(*this, v); + @endcode + + This overloads is chosen if: + - @a ValueType is not @ref basic_json, + - @ref json_serializer<ValueType> has a `from_json()` method of the form + `void from_json(const basic_json&, ValueType&)`, and + + @tparam ValueType the input parameter type. + + @return the input parameter, allowing chaining calls. + + @throw what @ref json_serializer<ValueType> `from_json()` method throws + + @liveexample{The example below shows several conversions from JSON values + to other types. There a few things to note: (1) Floating-point numbers can + be converted to integers\, (2) A JSON array can be converted to a standard + `std::vector<short>`\, (3) A JSON object can be converted to C++ + associative containers such as `std::unordered_map<std::string\, + json>`.,get_to} + + @since version 3.3.0 + */ + template<typename ValueType, + detail::enable_if_t < + not detail::is_basic_json<ValueType>::value and + detail::has_from_json<basic_json_t, ValueType>::value, + int> = 0> + ValueType & get_to(ValueType& v) const noexcept(noexcept( + JSONSerializer<ValueType>::from_json(std::declval<const basic_json_t&>(), v))) + { + JSONSerializer<ValueType>::from_json(*this, v); + return v; + } + + + /*! + @brief get a pointer value (implicit) + + Implicit pointer access to the internally stored JSON value. No copies are + made. + + @warning Writing data to the pointee of the result yields an undefined + state. + + @tparam PointerType pointer type; must be a pointer to @ref array_t, @ref + object_t, @ref string_t, @ref boolean_t, @ref number_integer_t, + @ref number_unsigned_t, or @ref number_float_t. Enforced by a static + assertion. + + @return pointer to the internally stored JSON value if the requested + pointer type @a PointerType fits to the JSON value; `nullptr` otherwise + + @complexity Constant. + + @liveexample{The example below shows how pointers to internal values of a + JSON value can be requested. Note that no type conversions are made and a + `nullptr` is returned if the value and the requested pointer type does not + match.,get_ptr} + + @since version 1.0.0 + */ + template<typename PointerType, typename std::enable_if< + std::is_pointer<PointerType>::value, int>::type = 0> + auto get_ptr() noexcept -> decltype(std::declval<basic_json_t&>().get_impl_ptr(std::declval<PointerType>())) + { + // delegate the call to get_impl_ptr<>() + return get_impl_ptr(static_cast<PointerType>(nullptr)); + } + + /*! + @brief get a pointer value (implicit) + @copydoc get_ptr() + */ + template<typename PointerType, typename std::enable_if< + std::is_pointer<PointerType>::value and + std::is_const<typename std::remove_pointer<PointerType>::type>::value, int>::type = 0> + constexpr auto get_ptr() const noexcept -> decltype(std::declval<const basic_json_t&>().get_impl_ptr(std::declval<PointerType>())) + { + // delegate the call to get_impl_ptr<>() const + return get_impl_ptr(static_cast<PointerType>(nullptr)); + } + + /*! + @brief get a pointer value (explicit) + + Explicit pointer access to the internally stored JSON value. No copies are + made. + + @warning The pointer becomes invalid if the underlying JSON object + changes. + + @tparam PointerType pointer type; must be a pointer to @ref array_t, @ref + object_t, @ref string_t, @ref boolean_t, @ref number_integer_t, + @ref number_unsigned_t, or @ref number_float_t. + + @return pointer to the internally stored JSON value if the requested + pointer type @a PointerType fits to the JSON value; `nullptr` otherwise + + @complexity Constant. + + @liveexample{The example below shows how pointers to internal values of a + JSON value can be requested. Note that no type conversions are made and a + `nullptr` is returned if the value and the requested pointer type does not + match.,get__PointerType} + + @sa @ref get_ptr() for explicit pointer-member access + + @since version 1.0.0 + */ + template<typename PointerType, typename std::enable_if< + std::is_pointer<PointerType>::value, int>::type = 0> + auto get() noexcept -> decltype(std::declval<basic_json_t&>().template get_ptr<PointerType>()) + { + // delegate the call to get_ptr + return get_ptr<PointerType>(); + } + + /*! + @brief get a pointer value (explicit) + @copydoc get() + */ + template<typename PointerType, typename std::enable_if< + std::is_pointer<PointerType>::value, int>::type = 0> + constexpr auto get() const noexcept -> decltype(std::declval<const basic_json_t&>().template get_ptr<PointerType>()) + { + // delegate the call to get_ptr + return get_ptr<PointerType>(); + } + + /*! + @brief get a reference value (implicit) + + Implicit reference access to the internally stored JSON value. No copies + are made. + + @warning Writing data to the referee of the result yields an undefined + state. + + @tparam ReferenceType reference type; must be a reference to @ref array_t, + @ref object_t, @ref string_t, @ref boolean_t, @ref number_integer_t, or + @ref number_float_t. Enforced by static assertion. + + @return reference to the internally stored JSON value if the requested + reference type @a ReferenceType fits to the JSON value; throws + type_error.303 otherwise + + @throw type_error.303 in case passed type @a ReferenceType is incompatible + with the stored JSON value; see example below + + @complexity Constant. + + @liveexample{The example shows several calls to `get_ref()`.,get_ref} + + @since version 1.1.0 + */ + template<typename ReferenceType, typename std::enable_if< + std::is_reference<ReferenceType>::value, int>::type = 0> + ReferenceType get_ref() + { + // delegate call to get_ref_impl + return get_ref_impl<ReferenceType>(*this); + } + + /*! + @brief get a reference value (implicit) + @copydoc get_ref() + */ + template<typename ReferenceType, typename std::enable_if< + std::is_reference<ReferenceType>::value and + std::is_const<typename std::remove_reference<ReferenceType>::type>::value, int>::type = 0> + ReferenceType get_ref() const + { + // delegate call to get_ref_impl + return get_ref_impl<ReferenceType>(*this); + } + + /*! + @brief get a value (implicit) + + Implicit type conversion between the JSON value and a compatible value. + The call is realized by calling @ref get() const. + + @tparam ValueType non-pointer type compatible to the JSON value, for + instance `int` for JSON integer numbers, `bool` for JSON booleans, or + `std::vector` types for JSON arrays. The character type of @ref string_t + as well as an initializer list of this type is excluded to avoid + ambiguities as these types implicitly convert to `std::string`. + + @return copy of the JSON value, converted to type @a ValueType + + @throw type_error.302 in case passed type @a ValueType is incompatible + to the JSON value type (e.g., the JSON value is of type boolean, but a + string is requested); see example below + + @complexity Linear in the size of the JSON value. + + @liveexample{The example below shows several conversions from JSON values + to other types. There a few things to note: (1) Floating-point numbers can + be converted to integers\, (2) A JSON array can be converted to a standard + `std::vector<short>`\, (3) A JSON object can be converted to C++ + associative containers such as `std::unordered_map<std::string\, + json>`.,operator__ValueType} + + @since version 1.0.0 + */ + template < typename ValueType, typename std::enable_if < + not std::is_pointer<ValueType>::value and + not std::is_same<ValueType, detail::json_ref<basic_json>>::value and + not std::is_same<ValueType, typename string_t::value_type>::value and + not detail::is_basic_json<ValueType>::value + +#ifndef _MSC_VER // fix for issue #167 operator<< ambiguity under VS2015 + and not std::is_same<ValueType, std::initializer_list<typename string_t::value_type>>::value +#if defined(JSON_HAS_CPP_17) && (defined(__GNUC__) || (defined(_MSC_VER) and _MSC_VER <= 1914)) + and not std::is_same<ValueType, typename std::string_view>::value +#endif +#endif + and detail::is_detected<detail::get_template_function, const basic_json_t&, ValueType>::value + , int >::type = 0 > + operator ValueType() const + { + // delegate the call to get<>() const + return get<ValueType>(); + } + + /// @} + + + //////////////////// + // element access // + //////////////////// + + /// @name element access + /// Access to the JSON value. + /// @{ + + /*! + @brief access specified array element with bounds checking + + Returns a reference to the element at specified location @a idx, with + bounds checking. + + @param[in] idx index of the element to access + + @return reference to the element at index @a idx + + @throw type_error.304 if the JSON value is not an array; in this case, + calling `at` with an index makes no sense. See example below. + @throw out_of_range.401 if the index @a idx is out of range of the array; + that is, `idx >= size()`. See example below. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes in the JSON value. + + @complexity Constant. + + @since version 1.0.0 + + @liveexample{The example below shows how array elements can be read and + written using `at()`. It also demonstrates the different exceptions that + can be thrown.,at__size_type} + */ + reference at(size_type idx) + { + // at only works for arrays + if (JSON_LIKELY(is_array())) + { + JSON_TRY + { + return m_value.array->at(idx); + } + JSON_CATCH (std::out_of_range&) + { + // create better exception explanation + JSON_THROW(out_of_range::create(401, "array index " + std::to_string(idx) + " is out of range")); + } + } + else + { + JSON_THROW(type_error::create(304, "cannot use at() with " + std::string(type_name()))); + } + } + + /*! + @brief access specified array element with bounds checking + + Returns a const reference to the element at specified location @a idx, + with bounds checking. + + @param[in] idx index of the element to access + + @return const reference to the element at index @a idx + + @throw type_error.304 if the JSON value is not an array; in this case, + calling `at` with an index makes no sense. See example below. + @throw out_of_range.401 if the index @a idx is out of range of the array; + that is, `idx >= size()`. See example below. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes in the JSON value. + + @complexity Constant. + + @since version 1.0.0 + + @liveexample{The example below shows how array elements can be read using + `at()`. It also demonstrates the different exceptions that can be thrown., + at__size_type_const} + */ + const_reference at(size_type idx) const + { + // at only works for arrays + if (JSON_LIKELY(is_array())) + { + JSON_TRY + { + return m_value.array->at(idx); + } + JSON_CATCH (std::out_of_range&) + { + // create better exception explanation + JSON_THROW(out_of_range::create(401, "array index " + std::to_string(idx) + " is out of range")); + } + } + else + { + JSON_THROW(type_error::create(304, "cannot use at() with " + std::string(type_name()))); + } + } + + /*! + @brief access specified object element with bounds checking + + Returns a reference to the element at with specified key @a key, with + bounds checking. + + @param[in] key key of the element to access + + @return reference to the element at key @a key + + @throw type_error.304 if the JSON value is not an object; in this case, + calling `at` with a key makes no sense. See example below. + @throw out_of_range.403 if the key @a key is is not stored in the object; + that is, `find(key) == end()`. See example below. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes in the JSON value. + + @complexity Logarithmic in the size of the container. + + @sa @ref operator[](const typename object_t::key_type&) for unchecked + access by reference + @sa @ref value() for access by value with a default value + + @since version 1.0.0 + + @liveexample{The example below shows how object elements can be read and + written using `at()`. It also demonstrates the different exceptions that + can be thrown.,at__object_t_key_type} + */ + reference at(const typename object_t::key_type& key) + { + // at only works for objects + if (JSON_LIKELY(is_object())) + { + JSON_TRY + { + return m_value.object->at(key); + } + JSON_CATCH (std::out_of_range&) + { + // create better exception explanation + JSON_THROW(out_of_range::create(403, "key '" + key + "' not found")); + } + } + else + { + JSON_THROW(type_error::create(304, "cannot use at() with " + std::string(type_name()))); + } + } + + /*! + @brief access specified object element with bounds checking + + Returns a const reference to the element at with specified key @a key, + with bounds checking. + + @param[in] key key of the element to access + + @return const reference to the element at key @a key + + @throw type_error.304 if the JSON value is not an object; in this case, + calling `at` with a key makes no sense. See example below. + @throw out_of_range.403 if the key @a key is is not stored in the object; + that is, `find(key) == end()`. See example below. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes in the JSON value. + + @complexity Logarithmic in the size of the container. + + @sa @ref operator[](const typename object_t::key_type&) for unchecked + access by reference + @sa @ref value() for access by value with a default value + + @since version 1.0.0 + + @liveexample{The example below shows how object elements can be read using + `at()`. It also demonstrates the different exceptions that can be thrown., + at__object_t_key_type_const} + */ + const_reference at(const typename object_t::key_type& key) const + { + // at only works for objects + if (JSON_LIKELY(is_object())) + { + JSON_TRY + { + return m_value.object->at(key); + } + JSON_CATCH (std::out_of_range&) + { + // create better exception explanation + JSON_THROW(out_of_range::create(403, "key '" + key + "' not found")); + } + } + else + { + JSON_THROW(type_error::create(304, "cannot use at() with " + std::string(type_name()))); + } + } + + /*! + @brief access specified array element + + Returns a reference to the element at specified location @a idx. + + @note If @a idx is beyond the range of the array (i.e., `idx >= size()`), + then the array is silently filled up with `null` values to make `idx` a + valid reference to the last stored element. + + @param[in] idx index of the element to access + + @return reference to the element at index @a idx + + @throw type_error.305 if the JSON value is not an array or null; in that + cases, using the [] operator with an index makes no sense. + + @complexity Constant if @a idx is in the range of the array. Otherwise + linear in `idx - size()`. + + @liveexample{The example below shows how array elements can be read and + written using `[]` operator. Note the addition of `null` + values.,operatorarray__size_type} + + @since version 1.0.0 + */ + reference operator[](size_type idx) + { + // implicitly convert null value to an empty array + if (is_null()) + { + m_type = value_t::array; + m_value.array = create<array_t>(); + assert_invariant(); + } + + // operator[] only works for arrays + if (JSON_LIKELY(is_array())) + { + // fill up array with null values if given idx is outside range + if (idx >= m_value.array->size()) + { + m_value.array->insert(m_value.array->end(), + idx - m_value.array->size() + 1, + basic_json()); + } + + return m_value.array->operator[](idx); + } + + JSON_THROW(type_error::create(305, "cannot use operator[] with a numeric argument with " + std::string(type_name()))); + } + + /*! + @brief access specified array element + + Returns a const reference to the element at specified location @a idx. + + @param[in] idx index of the element to access + + @return const reference to the element at index @a idx + + @throw type_error.305 if the JSON value is not an array; in that case, + using the [] operator with an index makes no sense. + + @complexity Constant. + + @liveexample{The example below shows how array elements can be read using + the `[]` operator.,operatorarray__size_type_const} + + @since version 1.0.0 + */ + const_reference operator[](size_type idx) const + { + // const operator[] only works for arrays + if (JSON_LIKELY(is_array())) + { + return m_value.array->operator[](idx); + } + + JSON_THROW(type_error::create(305, "cannot use operator[] with a numeric argument with " + std::string(type_name()))); + } + + /*! + @brief access specified object element + + Returns a reference to the element at with specified key @a key. + + @note If @a key is not found in the object, then it is silently added to + the object and filled with a `null` value to make `key` a valid reference. + In case the value was `null` before, it is converted to an object. + + @param[in] key key of the element to access + + @return reference to the element at key @a key + + @throw type_error.305 if the JSON value is not an object or null; in that + cases, using the [] operator with a key makes no sense. + + @complexity Logarithmic in the size of the container. + + @liveexample{The example below shows how object elements can be read and + written using the `[]` operator.,operatorarray__key_type} + + @sa @ref at(const typename object_t::key_type&) for access by reference + with range checking + @sa @ref value() for access by value with a default value + + @since version 1.0.0 + */ + reference operator[](const typename object_t::key_type& key) + { + // implicitly convert null value to an empty object + if (is_null()) + { + m_type = value_t::object; + m_value.object = create<object_t>(); + assert_invariant(); + } + + // operator[] only works for objects + if (JSON_LIKELY(is_object())) + { + return m_value.object->operator[](key); + } + + JSON_THROW(type_error::create(305, "cannot use operator[] with a string argument with " + std::string(type_name()))); + } + + /*! + @brief read-only access specified object element + + Returns a const reference to the element at with specified key @a key. No + bounds checking is performed. + + @warning If the element with key @a key does not exist, the behavior is + undefined. + + @param[in] key key of the element to access + + @return const reference to the element at key @a key + + @pre The element with key @a key must exist. **This precondition is + enforced with an assertion.** + + @throw type_error.305 if the JSON value is not an object; in that case, + using the [] operator with a key makes no sense. + + @complexity Logarithmic in the size of the container. + + @liveexample{The example below shows how object elements can be read using + the `[]` operator.,operatorarray__key_type_const} + + @sa @ref at(const typename object_t::key_type&) for access by reference + with range checking + @sa @ref value() for access by value with a default value + + @since version 1.0.0 + */ + const_reference operator[](const typename object_t::key_type& key) const + { + // const operator[] only works for objects + if (JSON_LIKELY(is_object())) + { + assert(m_value.object->find(key) != m_value.object->end()); + return m_value.object->find(key)->second; + } + + JSON_THROW(type_error::create(305, "cannot use operator[] with a string argument with " + std::string(type_name()))); + } + + /*! + @brief access specified object element + + Returns a reference to the element at with specified key @a key. + + @note If @a key is not found in the object, then it is silently added to + the object and filled with a `null` value to make `key` a valid reference. + In case the value was `null` before, it is converted to an object. + + @param[in] key key of the element to access + + @return reference to the element at key @a key + + @throw type_error.305 if the JSON value is not an object or null; in that + cases, using the [] operator with a key makes no sense. + + @complexity Logarithmic in the size of the container. + + @liveexample{The example below shows how object elements can be read and + written using the `[]` operator.,operatorarray__key_type} + + @sa @ref at(const typename object_t::key_type&) for access by reference + with range checking + @sa @ref value() for access by value with a default value + + @since version 1.1.0 + */ + template<typename T> + reference operator[](T* key) + { + // implicitly convert null to object + if (is_null()) + { + m_type = value_t::object; + m_value = value_t::object; + assert_invariant(); + } + + // at only works for objects + if (JSON_LIKELY(is_object())) + { + return m_value.object->operator[](key); + } + + JSON_THROW(type_error::create(305, "cannot use operator[] with a string argument with " + std::string(type_name()))); + } + + /*! + @brief read-only access specified object element + + Returns a const reference to the element at with specified key @a key. No + bounds checking is performed. + + @warning If the element with key @a key does not exist, the behavior is + undefined. + + @param[in] key key of the element to access + + @return const reference to the element at key @a key + + @pre The element with key @a key must exist. **This precondition is + enforced with an assertion.** + + @throw type_error.305 if the JSON value is not an object; in that case, + using the [] operator with a key makes no sense. + + @complexity Logarithmic in the size of the container. + + @liveexample{The example below shows how object elements can be read using + the `[]` operator.,operatorarray__key_type_const} + + @sa @ref at(const typename object_t::key_type&) for access by reference + with range checking + @sa @ref value() for access by value with a default value + + @since version 1.1.0 + */ + template<typename T> + const_reference operator[](T* key) const + { + // at only works for objects + if (JSON_LIKELY(is_object())) + { + assert(m_value.object->find(key) != m_value.object->end()); + return m_value.object->find(key)->second; + } + + JSON_THROW(type_error::create(305, "cannot use operator[] with a string argument with " + std::string(type_name()))); + } + + /*! + @brief access specified object element with default value + + Returns either a copy of an object's element at the specified key @a key + or a given default value if no element with key @a key exists. + + The function is basically equivalent to executing + @code {.cpp} + try { + return at(key); + } catch(out_of_range) { + return default_value; + } + @endcode + + @note Unlike @ref at(const typename object_t::key_type&), this function + does not throw if the given key @a key was not found. + + @note Unlike @ref operator[](const typename object_t::key_type& key), this + function does not implicitly add an element to the position defined by @a + key. This function is furthermore also applicable to const objects. + + @param[in] key key of the element to access + @param[in] default_value the value to return if @a key is not found + + @tparam ValueType type compatible to JSON values, for instance `int` for + JSON integer numbers, `bool` for JSON booleans, or `std::vector` types for + JSON arrays. Note the type of the expected value at @a key and the default + value @a default_value must be compatible. + + @return copy of the element at key @a key or @a default_value if @a key + is not found + + @throw type_error.306 if the JSON value is not an object; in that case, + using `value()` with a key makes no sense. + + @complexity Logarithmic in the size of the container. + + @liveexample{The example below shows how object elements can be queried + with a default value.,basic_json__value} + + @sa @ref at(const typename object_t::key_type&) for access by reference + with range checking + @sa @ref operator[](const typename object_t::key_type&) for unchecked + access by reference + + @since version 1.0.0 + */ + template<class ValueType, typename std::enable_if< + std::is_convertible<basic_json_t, ValueType>::value, int>::type = 0> + ValueType value(const typename object_t::key_type& key, const ValueType& default_value) const + { + // at only works for objects + if (JSON_LIKELY(is_object())) + { + // if key is found, return value and given default value otherwise + const auto it = find(key); + if (it != end()) + { + return *it; + } + + return default_value; + } + + JSON_THROW(type_error::create(306, "cannot use value() with " + std::string(type_name()))); + } + + /*! + @brief overload for a default value of type const char* + @copydoc basic_json::value(const typename object_t::key_type&, const ValueType&) const + */ + string_t value(const typename object_t::key_type& key, const char* default_value) const + { + return value(key, string_t(default_value)); + } + + /*! + @brief access specified object element via JSON Pointer with default value + + Returns either a copy of an object's element at the specified key @a key + or a given default value if no element with key @a key exists. + + The function is basically equivalent to executing + @code {.cpp} + try { + return at(ptr); + } catch(out_of_range) { + return default_value; + } + @endcode + + @note Unlike @ref at(const json_pointer&), this function does not throw + if the given key @a key was not found. + + @param[in] ptr a JSON pointer to the element to access + @param[in] default_value the value to return if @a ptr found no value + + @tparam ValueType type compatible to JSON values, for instance `int` for + JSON integer numbers, `bool` for JSON booleans, or `std::vector` types for + JSON arrays. Note the type of the expected value at @a key and the default + value @a default_value must be compatible. + + @return copy of the element at key @a key or @a default_value if @a key + is not found + + @throw type_error.306 if the JSON value is not an object; in that case, + using `value()` with a key makes no sense. + + @complexity Logarithmic in the size of the container. + + @liveexample{The example below shows how object elements can be queried + with a default value.,basic_json__value_ptr} + + @sa @ref operator[](const json_pointer&) for unchecked access by reference + + @since version 2.0.2 + */ + template<class ValueType, typename std::enable_if< + std::is_convertible<basic_json_t, ValueType>::value, int>::type = 0> + ValueType value(const json_pointer& ptr, const ValueType& default_value) const + { + // at only works for objects + if (JSON_LIKELY(is_object())) + { + // if pointer resolves a value, return it or use default value + JSON_TRY + { + return ptr.get_checked(this); + } + JSON_INTERNAL_CATCH (out_of_range&) + { + return default_value; + } + } + + JSON_THROW(type_error::create(306, "cannot use value() with " + std::string(type_name()))); + } + + /*! + @brief overload for a default value of type const char* + @copydoc basic_json::value(const json_pointer&, ValueType) const + */ + string_t value(const json_pointer& ptr, const char* default_value) const + { + return value(ptr, string_t(default_value)); + } + + /*! + @brief access the first element + + Returns a reference to the first element in the container. For a JSON + container `c`, the expression `c.front()` is equivalent to `*c.begin()`. + + @return In case of a structured type (array or object), a reference to the + first element is returned. In case of number, string, or boolean values, a + reference to the value is returned. + + @complexity Constant. + + @pre The JSON value must not be `null` (would throw `std::out_of_range`) + or an empty array or object (undefined behavior, **guarded by + assertions**). + @post The JSON value remains unchanged. + + @throw invalid_iterator.214 when called on `null` value + + @liveexample{The following code shows an example for `front()`.,front} + + @sa @ref back() -- access the last element + + @since version 1.0.0 + */ + reference front() + { + return *begin(); + } + + /*! + @copydoc basic_json::front() + */ + const_reference front() const + { + return *cbegin(); + } + + /*! + @brief access the last element + + Returns a reference to the last element in the container. For a JSON + container `c`, the expression `c.back()` is equivalent to + @code {.cpp} + auto tmp = c.end(); + --tmp; + return *tmp; + @endcode + + @return In case of a structured type (array or object), a reference to the + last element is returned. In case of number, string, or boolean values, a + reference to the value is returned. + + @complexity Constant. + + @pre The JSON value must not be `null` (would throw `std::out_of_range`) + or an empty array or object (undefined behavior, **guarded by + assertions**). + @post The JSON value remains unchanged. + + @throw invalid_iterator.214 when called on a `null` value. See example + below. + + @liveexample{The following code shows an example for `back()`.,back} + + @sa @ref front() -- access the first element + + @since version 1.0.0 + */ + reference back() + { + auto tmp = end(); + --tmp; + return *tmp; + } + + /*! + @copydoc basic_json::back() + */ + const_reference back() const + { + auto tmp = cend(); + --tmp; + return *tmp; + } + + /*! + @brief remove element given an iterator + + Removes the element specified by iterator @a pos. The iterator @a pos must + be valid and dereferenceable. Thus the `end()` iterator (which is valid, + but is not dereferenceable) cannot be used as a value for @a pos. + + If called on a primitive type other than `null`, the resulting JSON value + will be `null`. + + @param[in] pos iterator to the element to remove + @return Iterator following the last removed element. If the iterator @a + pos refers to the last element, the `end()` iterator is returned. + + @tparam IteratorType an @ref iterator or @ref const_iterator + + @post Invalidates iterators and references at or after the point of the + erase, including the `end()` iterator. + + @throw type_error.307 if called on a `null` value; example: `"cannot use + erase() with null"` + @throw invalid_iterator.202 if called on an iterator which does not belong + to the current JSON value; example: `"iterator does not fit current + value"` + @throw invalid_iterator.205 if called on a primitive type with invalid + iterator (i.e., any iterator which is not `begin()`); example: `"iterator + out of range"` + + @complexity The complexity depends on the type: + - objects: amortized constant + - arrays: linear in distance between @a pos and the end of the container + - strings: linear in the length of the string + - other types: constant + + @liveexample{The example shows the result of `erase()` for different JSON + types.,erase__IteratorType} + + @sa @ref erase(IteratorType, IteratorType) -- removes the elements in + the given range + @sa @ref erase(const typename object_t::key_type&) -- removes the element + from an object at the given key + @sa @ref erase(const size_type) -- removes the element from an array at + the given index + + @since version 1.0.0 + */ + template<class IteratorType, typename std::enable_if< + std::is_same<IteratorType, typename basic_json_t::iterator>::value or + std::is_same<IteratorType, typename basic_json_t::const_iterator>::value, int>::type + = 0> + IteratorType erase(IteratorType pos) + { + // make sure iterator fits the current value + if (JSON_UNLIKELY(this != pos.m_object)) + { + JSON_THROW(invalid_iterator::create(202, "iterator does not fit current value")); + } + + IteratorType result = end(); + + switch (m_type) + { + case value_t::boolean: + case value_t::number_float: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::string: + { + if (JSON_UNLIKELY(not pos.m_it.primitive_iterator.is_begin())) + { + JSON_THROW(invalid_iterator::create(205, "iterator out of range")); + } + + if (is_string()) + { + AllocatorType<string_t> alloc; + std::allocator_traits<decltype(alloc)>::destroy(alloc, m_value.string); + std::allocator_traits<decltype(alloc)>::deallocate(alloc, m_value.string, 1); + m_value.string = nullptr; + } + + m_type = value_t::null; + assert_invariant(); + break; + } + + case value_t::object: + { + result.m_it.object_iterator = m_value.object->erase(pos.m_it.object_iterator); + break; + } + + case value_t::array: + { + result.m_it.array_iterator = m_value.array->erase(pos.m_it.array_iterator); + break; + } + + default: + JSON_THROW(type_error::create(307, "cannot use erase() with " + std::string(type_name()))); + } + + return result; + } + + /*! + @brief remove elements given an iterator range + + Removes the element specified by the range `[first; last)`. The iterator + @a first does not need to be dereferenceable if `first == last`: erasing + an empty range is a no-op. + + If called on a primitive type other than `null`, the resulting JSON value + will be `null`. + + @param[in] first iterator to the beginning of the range to remove + @param[in] last iterator past the end of the range to remove + @return Iterator following the last removed element. If the iterator @a + second refers to the last element, the `end()` iterator is returned. + + @tparam IteratorType an @ref iterator or @ref const_iterator + + @post Invalidates iterators and references at or after the point of the + erase, including the `end()` iterator. + + @throw type_error.307 if called on a `null` value; example: `"cannot use + erase() with null"` + @throw invalid_iterator.203 if called on iterators which does not belong + to the current JSON value; example: `"iterators do not fit current value"` + @throw invalid_iterator.204 if called on a primitive type with invalid + iterators (i.e., if `first != begin()` and `last != end()`); example: + `"iterators out of range"` + + @complexity The complexity depends on the type: + - objects: `log(size()) + std::distance(first, last)` + - arrays: linear in the distance between @a first and @a last, plus linear + in the distance between @a last and end of the container + - strings: linear in the length of the string + - other types: constant + + @liveexample{The example shows the result of `erase()` for different JSON + types.,erase__IteratorType_IteratorType} + + @sa @ref erase(IteratorType) -- removes the element at a given position + @sa @ref erase(const typename object_t::key_type&) -- removes the element + from an object at the given key + @sa @ref erase(const size_type) -- removes the element from an array at + the given index + + @since version 1.0.0 + */ + template<class IteratorType, typename std::enable_if< + std::is_same<IteratorType, typename basic_json_t::iterator>::value or + std::is_same<IteratorType, typename basic_json_t::const_iterator>::value, int>::type + = 0> + IteratorType erase(IteratorType first, IteratorType last) + { + // make sure iterator fits the current value + if (JSON_UNLIKELY(this != first.m_object or this != last.m_object)) + { + JSON_THROW(invalid_iterator::create(203, "iterators do not fit current value")); + } + + IteratorType result = end(); + + switch (m_type) + { + case value_t::boolean: + case value_t::number_float: + case value_t::number_integer: + case value_t::number_unsigned: + case value_t::string: + { + if (JSON_LIKELY(not first.m_it.primitive_iterator.is_begin() + or not last.m_it.primitive_iterator.is_end())) + { + JSON_THROW(invalid_iterator::create(204, "iterators out of range")); + } + + if (is_string()) + { + AllocatorType<string_t> alloc; + std::allocator_traits<decltype(alloc)>::destroy(alloc, m_value.string); + std::allocator_traits<decltype(alloc)>::deallocate(alloc, m_value.string, 1); + m_value.string = nullptr; + } + + m_type = value_t::null; + assert_invariant(); + break; + } + + case value_t::object: + { + result.m_it.object_iterator = m_value.object->erase(first.m_it.object_iterator, + last.m_it.object_iterator); + break; + } + + case value_t::array: + { + result.m_it.array_iterator = m_value.array->erase(first.m_it.array_iterator, + last.m_it.array_iterator); + break; + } + + default: + JSON_THROW(type_error::create(307, "cannot use erase() with " + std::string(type_name()))); + } + + return result; + } + + /*! + @brief remove element from a JSON object given a key + + Removes elements from a JSON object with the key value @a key. + + @param[in] key value of the elements to remove + + @return Number of elements removed. If @a ObjectType is the default + `std::map` type, the return value will always be `0` (@a key was not + found) or `1` (@a key was found). + + @post References and iterators to the erased elements are invalidated. + Other references and iterators are not affected. + + @throw type_error.307 when called on a type other than JSON object; + example: `"cannot use erase() with null"` + + @complexity `log(size()) + count(key)` + + @liveexample{The example shows the effect of `erase()`.,erase__key_type} + + @sa @ref erase(IteratorType) -- removes the element at a given position + @sa @ref erase(IteratorType, IteratorType) -- removes the elements in + the given range + @sa @ref erase(const size_type) -- removes the element from an array at + the given index + + @since version 1.0.0 + */ + size_type erase(const typename object_t::key_type& key) + { + // this erase only works for objects + if (JSON_LIKELY(is_object())) + { + return m_value.object->erase(key); + } + + JSON_THROW(type_error::create(307, "cannot use erase() with " + std::string(type_name()))); + } + + /*! + @brief remove element from a JSON array given an index + + Removes element from a JSON array at the index @a idx. + + @param[in] idx index of the element to remove + + @throw type_error.307 when called on a type other than JSON object; + example: `"cannot use erase() with null"` + @throw out_of_range.401 when `idx >= size()`; example: `"array index 17 + is out of range"` + + @complexity Linear in distance between @a idx and the end of the container. + + @liveexample{The example shows the effect of `erase()`.,erase__size_type} + + @sa @ref erase(IteratorType) -- removes the element at a given position + @sa @ref erase(IteratorType, IteratorType) -- removes the elements in + the given range + @sa @ref erase(const typename object_t::key_type&) -- removes the element + from an object at the given key + + @since version 1.0.0 + */ + void erase(const size_type idx) + { + // this erase only works for arrays + if (JSON_LIKELY(is_array())) + { + if (JSON_UNLIKELY(idx >= size())) + { + JSON_THROW(out_of_range::create(401, "array index " + std::to_string(idx) + " is out of range")); + } + + m_value.array->erase(m_value.array->begin() + static_cast<difference_type>(idx)); + } + else + { + JSON_THROW(type_error::create(307, "cannot use erase() with " + std::string(type_name()))); + } + } + + /// @} + + + //////////// + // lookup // + //////////// + + /// @name lookup + /// @{ + + /*! + @brief find an element in a JSON object + + Finds an element in a JSON object with key equivalent to @a key. If the + element is not found or the JSON value is not an object, end() is + returned. + + @note This method always returns @ref end() when executed on a JSON type + that is not an object. + + @param[in] key key value of the element to search for. + + @return Iterator to an element with key equivalent to @a key. If no such + element is found or the JSON value is not an object, past-the-end (see + @ref end()) iterator is returned. + + @complexity Logarithmic in the size of the JSON object. + + @liveexample{The example shows how `find()` is used.,find__key_type} + + @sa @ref contains(KeyT&&) const -- checks whether a key exists + + @since version 1.0.0 + */ + template<typename KeyT> + iterator find(KeyT&& key) + { + auto result = end(); + + if (is_object()) + { + result.m_it.object_iterator = m_value.object->find(std::forward<KeyT>(key)); + } + + return result; + } + + /*! + @brief find an element in a JSON object + @copydoc find(KeyT&&) + */ + template<typename KeyT> + const_iterator find(KeyT&& key) const + { + auto result = cend(); + + if (is_object()) + { + result.m_it.object_iterator = m_value.object->find(std::forward<KeyT>(key)); + } + + return result; + } + + /*! + @brief returns the number of occurrences of a key in a JSON object + + Returns the number of elements with key @a key. If ObjectType is the + default `std::map` type, the return value will always be `0` (@a key was + not found) or `1` (@a key was found). + + @note This method always returns `0` when executed on a JSON type that is + not an object. + + @param[in] key key value of the element to count + + @return Number of elements with key @a key. If the JSON value is not an + object, the return value will be `0`. + + @complexity Logarithmic in the size of the JSON object. + + @liveexample{The example shows how `count()` is used.,count} + + @since version 1.0.0 + */ + template<typename KeyT> + size_type count(KeyT&& key) const + { + // return 0 for all nonobject types + return is_object() ? m_value.object->count(std::forward<KeyT>(key)) : 0; + } + + /*! + @brief check the existence of an element in a JSON object + + Check whether an element exists in a JSON object with key equivalent to + @a key. If the element is not found or the JSON value is not an object, + false is returned. + + @note This method always returns false when executed on a JSON type + that is not an object. + + @param[in] key key value to check its existence. + + @return true if an element with specified @a key exists. If no such + element with such key is found or the JSON value is not an object, + false is returned. + + @complexity Logarithmic in the size of the JSON object. + + @liveexample{The following code shows an example for `contains()`.,contains} + + @sa @ref find(KeyT&&) -- returns an iterator to an object element + + @since version 3.6.0 + */ + template<typename KeyT> + bool contains(KeyT&& key) const + { + return is_object() and m_value.object->find(std::forward<KeyT>(key)) != m_value.object->end(); + } + + /// @} + + + /////////////// + // iterators // + /////////////// + + /// @name iterators + /// @{ + + /*! + @brief returns an iterator to the first element + + Returns an iterator to the first element. + + @image html range-begin-end.svg "Illustration from cppreference.com" + + @return iterator to the first element + + @complexity Constant. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is constant. + + @liveexample{The following code shows an example for `begin()`.,begin} + + @sa @ref cbegin() -- returns a const iterator to the beginning + @sa @ref end() -- returns an iterator to the end + @sa @ref cend() -- returns a const iterator to the end + + @since version 1.0.0 + */ + iterator begin() noexcept + { + iterator result(this); + result.set_begin(); + return result; + } + + /*! + @copydoc basic_json::cbegin() + */ + const_iterator begin() const noexcept + { + return cbegin(); + } + + /*! + @brief returns a const iterator to the first element + + Returns a const iterator to the first element. + + @image html range-begin-end.svg "Illustration from cppreference.com" + + @return const iterator to the first element + + @complexity Constant. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is constant. + - Has the semantics of `const_cast<const basic_json&>(*this).begin()`. + + @liveexample{The following code shows an example for `cbegin()`.,cbegin} + + @sa @ref begin() -- returns an iterator to the beginning + @sa @ref end() -- returns an iterator to the end + @sa @ref cend() -- returns a const iterator to the end + + @since version 1.0.0 + */ + const_iterator cbegin() const noexcept + { + const_iterator result(this); + result.set_begin(); + return result; + } + + /*! + @brief returns an iterator to one past the last element + + Returns an iterator to one past the last element. + + @image html range-begin-end.svg "Illustration from cppreference.com" + + @return iterator one past the last element + + @complexity Constant. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is constant. + + @liveexample{The following code shows an example for `end()`.,end} + + @sa @ref cend() -- returns a const iterator to the end + @sa @ref begin() -- returns an iterator to the beginning + @sa @ref cbegin() -- returns a const iterator to the beginning + + @since version 1.0.0 + */ + iterator end() noexcept + { + iterator result(this); + result.set_end(); + return result; + } + + /*! + @copydoc basic_json::cend() + */ + const_iterator end() const noexcept + { + return cend(); + } + + /*! + @brief returns a const iterator to one past the last element + + Returns a const iterator to one past the last element. + + @image html range-begin-end.svg "Illustration from cppreference.com" + + @return const iterator one past the last element + + @complexity Constant. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is constant. + - Has the semantics of `const_cast<const basic_json&>(*this).end()`. + + @liveexample{The following code shows an example for `cend()`.,cend} + + @sa @ref end() -- returns an iterator to the end + @sa @ref begin() -- returns an iterator to the beginning + @sa @ref cbegin() -- returns a const iterator to the beginning + + @since version 1.0.0 + */ + const_iterator cend() const noexcept + { + const_iterator result(this); + result.set_end(); + return result; + } + + /*! + @brief returns an iterator to the reverse-beginning + + Returns an iterator to the reverse-beginning; that is, the last element. + + @image html range-rbegin-rend.svg "Illustration from cppreference.com" + + @complexity Constant. + + @requirement This function helps `basic_json` satisfying the + [ReversibleContainer](https://en.cppreference.com/w/cpp/named_req/ReversibleContainer) + requirements: + - The complexity is constant. + - Has the semantics of `reverse_iterator(end())`. + + @liveexample{The following code shows an example for `rbegin()`.,rbegin} + + @sa @ref crbegin() -- returns a const reverse iterator to the beginning + @sa @ref rend() -- returns a reverse iterator to the end + @sa @ref crend() -- returns a const reverse iterator to the end + + @since version 1.0.0 + */ + reverse_iterator rbegin() noexcept + { + return reverse_iterator(end()); + } + + /*! + @copydoc basic_json::crbegin() + */ + const_reverse_iterator rbegin() const noexcept + { + return crbegin(); + } + + /*! + @brief returns an iterator to the reverse-end + + Returns an iterator to the reverse-end; that is, one before the first + element. + + @image html range-rbegin-rend.svg "Illustration from cppreference.com" + + @complexity Constant. + + @requirement This function helps `basic_json` satisfying the + [ReversibleContainer](https://en.cppreference.com/w/cpp/named_req/ReversibleContainer) + requirements: + - The complexity is constant. + - Has the semantics of `reverse_iterator(begin())`. + + @liveexample{The following code shows an example for `rend()`.,rend} + + @sa @ref crend() -- returns a const reverse iterator to the end + @sa @ref rbegin() -- returns a reverse iterator to the beginning + @sa @ref crbegin() -- returns a const reverse iterator to the beginning + + @since version 1.0.0 + */ + reverse_iterator rend() noexcept + { + return reverse_iterator(begin()); + } + + /*! + @copydoc basic_json::crend() + */ + const_reverse_iterator rend() const noexcept + { + return crend(); + } + + /*! + @brief returns a const reverse iterator to the last element + + Returns a const iterator to the reverse-beginning; that is, the last + element. + + @image html range-rbegin-rend.svg "Illustration from cppreference.com" + + @complexity Constant. + + @requirement This function helps `basic_json` satisfying the + [ReversibleContainer](https://en.cppreference.com/w/cpp/named_req/ReversibleContainer) + requirements: + - The complexity is constant. + - Has the semantics of `const_cast<const basic_json&>(*this).rbegin()`. + + @liveexample{The following code shows an example for `crbegin()`.,crbegin} + + @sa @ref rbegin() -- returns a reverse iterator to the beginning + @sa @ref rend() -- returns a reverse iterator to the end + @sa @ref crend() -- returns a const reverse iterator to the end + + @since version 1.0.0 + */ + const_reverse_iterator crbegin() const noexcept + { + return const_reverse_iterator(cend()); + } + + /*! + @brief returns a const reverse iterator to one before the first + + Returns a const reverse iterator to the reverse-end; that is, one before + the first element. + + @image html range-rbegin-rend.svg "Illustration from cppreference.com" + + @complexity Constant. + + @requirement This function helps `basic_json` satisfying the + [ReversibleContainer](https://en.cppreference.com/w/cpp/named_req/ReversibleContainer) + requirements: + - The complexity is constant. + - Has the semantics of `const_cast<const basic_json&>(*this).rend()`. + + @liveexample{The following code shows an example for `crend()`.,crend} + + @sa @ref rend() -- returns a reverse iterator to the end + @sa @ref rbegin() -- returns a reverse iterator to the beginning + @sa @ref crbegin() -- returns a const reverse iterator to the beginning + + @since version 1.0.0 + */ + const_reverse_iterator crend() const noexcept + { + return const_reverse_iterator(cbegin()); + } + + public: + /*! + @brief wrapper to access iterator member functions in range-based for + + This function allows to access @ref iterator::key() and @ref + iterator::value() during range-based for loops. In these loops, a + reference to the JSON values is returned, so there is no access to the + underlying iterator. + + For loop without iterator_wrapper: + + @code{cpp} + for (auto it = j_object.begin(); it != j_object.end(); ++it) + { + std::cout << "key: " << it.key() << ", value:" << it.value() << '\n'; + } + @endcode + + Range-based for loop without iterator proxy: + + @code{cpp} + for (auto it : j_object) + { + // "it" is of type json::reference and has no key() member + std::cout << "value: " << it << '\n'; + } + @endcode + + Range-based for loop with iterator proxy: + + @code{cpp} + for (auto it : json::iterator_wrapper(j_object)) + { + std::cout << "key: " << it.key() << ", value:" << it.value() << '\n'; + } + @endcode + + @note When iterating over an array, `key()` will return the index of the + element as string (see example). + + @param[in] ref reference to a JSON value + @return iteration proxy object wrapping @a ref with an interface to use in + range-based for loops + + @liveexample{The following code shows how the wrapper is used,iterator_wrapper} + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes in the JSON value. + + @complexity Constant. + + @note The name of this function is not yet final and may change in the + future. + + @deprecated This stream operator is deprecated and will be removed in + future 4.0.0 of the library. Please use @ref items() instead; + that is, replace `json::iterator_wrapper(j)` with `j.items()`. + */ + JSON_DEPRECATED + static iteration_proxy<iterator> iterator_wrapper(reference ref) noexcept + { + return ref.items(); + } + + /*! + @copydoc iterator_wrapper(reference) + */ + JSON_DEPRECATED + static iteration_proxy<const_iterator> iterator_wrapper(const_reference ref) noexcept + { + return ref.items(); + } + + /*! + @brief helper to access iterator member functions in range-based for + + This function allows to access @ref iterator::key() and @ref + iterator::value() during range-based for loops. In these loops, a + reference to the JSON values is returned, so there is no access to the + underlying iterator. + + For loop without `items()` function: + + @code{cpp} + for (auto it = j_object.begin(); it != j_object.end(); ++it) + { + std::cout << "key: " << it.key() << ", value:" << it.value() << '\n'; + } + @endcode + + Range-based for loop without `items()` function: + + @code{cpp} + for (auto it : j_object) + { + // "it" is of type json::reference and has no key() member + std::cout << "value: " << it << '\n'; + } + @endcode + + Range-based for loop with `items()` function: + + @code{cpp} + for (auto& el : j_object.items()) + { + std::cout << "key: " << el.key() << ", value:" << el.value() << '\n'; + } + @endcode + + The `items()` function also allows to use + [structured bindings](https://en.cppreference.com/w/cpp/language/structured_binding) + (C++17): + + @code{cpp} + for (auto& [key, val] : j_object.items()) + { + std::cout << "key: " << key << ", value:" << val << '\n'; + } + @endcode + + @note When iterating over an array, `key()` will return the index of the + element as string (see example). For primitive types (e.g., numbers), + `key()` returns an empty string. + + @return iteration proxy object wrapping @a ref with an interface to use in + range-based for loops + + @liveexample{The following code shows how the function is used.,items} + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes in the JSON value. + + @complexity Constant. + + @since version 3.1.0, structured bindings support since 3.5.0. + */ + iteration_proxy<iterator> items() noexcept + { + return iteration_proxy<iterator>(*this); + } + + /*! + @copydoc items() + */ + iteration_proxy<const_iterator> items() const noexcept + { + return iteration_proxy<const_iterator>(*this); + } + + /// @} + + + ////////////// + // capacity // + ////////////// + + /// @name capacity + /// @{ + + /*! + @brief checks whether the container is empty. + + Checks if a JSON value has no elements (i.e. whether its @ref size is `0`). + + @return The return value depends on the different types and is + defined as follows: + Value type | return value + ----------- | ------------- + null | `true` + boolean | `false` + string | `false` + number | `false` + object | result of function `object_t::empty()` + array | result of function `array_t::empty()` + + @liveexample{The following code uses `empty()` to check if a JSON + object contains any elements.,empty} + + @complexity Constant, as long as @ref array_t and @ref object_t satisfy + the Container concept; that is, their `empty()` functions have constant + complexity. + + @iterators No changes. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @note This function does not return whether a string stored as JSON value + is empty - it returns whether the JSON container itself is empty which is + false in the case of a string. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is constant. + - Has the semantics of `begin() == end()`. + + @sa @ref size() -- returns the number of elements + + @since version 1.0.0 + */ + bool empty() const noexcept + { + switch (m_type) + { + case value_t::null: + { + // null values are empty + return true; + } + + case value_t::array: + { + // delegate call to array_t::empty() + return m_value.array->empty(); + } + + case value_t::object: + { + // delegate call to object_t::empty() + return m_value.object->empty(); + } + + default: + { + // all other types are nonempty + return false; + } + } + } + + /*! + @brief returns the number of elements + + Returns the number of elements in a JSON value. + + @return The return value depends on the different types and is + defined as follows: + Value type | return value + ----------- | ------------- + null | `0` + boolean | `1` + string | `1` + number | `1` + object | result of function object_t::size() + array | result of function array_t::size() + + @liveexample{The following code calls `size()` on the different value + types.,size} + + @complexity Constant, as long as @ref array_t and @ref object_t satisfy + the Container concept; that is, their size() functions have constant + complexity. + + @iterators No changes. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @note This function does not return the length of a string stored as JSON + value - it returns the number of elements in the JSON value which is 1 in + the case of a string. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is constant. + - Has the semantics of `std::distance(begin(), end())`. + + @sa @ref empty() -- checks whether the container is empty + @sa @ref max_size() -- returns the maximal number of elements + + @since version 1.0.0 + */ + size_type size() const noexcept + { + switch (m_type) + { + case value_t::null: + { + // null values are empty + return 0; + } + + case value_t::array: + { + // delegate call to array_t::size() + return m_value.array->size(); + } + + case value_t::object: + { + // delegate call to object_t::size() + return m_value.object->size(); + } + + default: + { + // all other types have size 1 + return 1; + } + } + } + + /*! + @brief returns the maximum possible number of elements + + Returns the maximum number of elements a JSON value is able to hold due to + system or library implementation limitations, i.e. `std::distance(begin(), + end())` for the JSON value. + + @return The return value depends on the different types and is + defined as follows: + Value type | return value + ----------- | ------------- + null | `0` (same as `size()`) + boolean | `1` (same as `size()`) + string | `1` (same as `size()`) + number | `1` (same as `size()`) + object | result of function `object_t::max_size()` + array | result of function `array_t::max_size()` + + @liveexample{The following code calls `max_size()` on the different value + types. Note the output is implementation specific.,max_size} + + @complexity Constant, as long as @ref array_t and @ref object_t satisfy + the Container concept; that is, their `max_size()` functions have constant + complexity. + + @iterators No changes. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @requirement This function helps `basic_json` satisfying the + [Container](https://en.cppreference.com/w/cpp/named_req/Container) + requirements: + - The complexity is constant. + - Has the semantics of returning `b.size()` where `b` is the largest + possible JSON value. + + @sa @ref size() -- returns the number of elements + + @since version 1.0.0 + */ + size_type max_size() const noexcept + { + switch (m_type) + { + case value_t::array: + { + // delegate call to array_t::max_size() + return m_value.array->max_size(); + } + + case value_t::object: + { + // delegate call to object_t::max_size() + return m_value.object->max_size(); + } + + default: + { + // all other types have max_size() == size() + return size(); + } + } + } + + /// @} + + + /////////////// + // modifiers // + /////////////// + + /// @name modifiers + /// @{ + + /*! + @brief clears the contents + + Clears the content of a JSON value and resets it to the default value as + if @ref basic_json(value_t) would have been called with the current value + type from @ref type(): + + Value type | initial value + ----------- | ------------- + null | `null` + boolean | `false` + string | `""` + number | `0` + object | `{}` + array | `[]` + + @post Has the same effect as calling + @code {.cpp} + *this = basic_json(type()); + @endcode + + @liveexample{The example below shows the effect of `clear()` to different + JSON types.,clear} + + @complexity Linear in the size of the JSON value. + + @iterators All iterators, pointers and references related to this container + are invalidated. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @sa @ref basic_json(value_t) -- constructor that creates an object with the + same value than calling `clear()` + + @since version 1.0.0 + */ + void clear() noexcept + { + switch (m_type) + { + case value_t::number_integer: + { + m_value.number_integer = 0; + break; + } + + case value_t::number_unsigned: + { + m_value.number_unsigned = 0; + break; + } + + case value_t::number_float: + { + m_value.number_float = 0.0; + break; + } + + case value_t::boolean: + { + m_value.boolean = false; + break; + } + + case value_t::string: + { + m_value.string->clear(); + break; + } + + case value_t::array: + { + m_value.array->clear(); + break; + } + + case value_t::object: + { + m_value.object->clear(); + break; + } + + default: + break; + } + } + + /*! + @brief add an object to an array + + Appends the given element @a val to the end of the JSON value. If the + function is called on a JSON null value, an empty array is created before + appending @a val. + + @param[in] val the value to add to the JSON array + + @throw type_error.308 when called on a type other than JSON array or + null; example: `"cannot use push_back() with number"` + + @complexity Amortized constant. + + @liveexample{The example shows how `push_back()` and `+=` can be used to + add elements to a JSON array. Note how the `null` value was silently + converted to a JSON array.,push_back} + + @since version 1.0.0 + */ + void push_back(basic_json&& val) + { + // push_back only works for null objects or arrays + if (JSON_UNLIKELY(not(is_null() or is_array()))) + { + JSON_THROW(type_error::create(308, "cannot use push_back() with " + std::string(type_name()))); + } + + // transform null object into an array + if (is_null()) + { + m_type = value_t::array; + m_value = value_t::array; + assert_invariant(); + } + + // add element to array (move semantics) + m_value.array->push_back(std::move(val)); + // invalidate object: mark it null so we do not call the destructor + // cppcheck-suppress accessMoved + val.m_type = value_t::null; + } + + /*! + @brief add an object to an array + @copydoc push_back(basic_json&&) + */ + reference operator+=(basic_json&& val) + { + push_back(std::move(val)); + return *this; + } + + /*! + @brief add an object to an array + @copydoc push_back(basic_json&&) + */ + void push_back(const basic_json& val) + { + // push_back only works for null objects or arrays + if (JSON_UNLIKELY(not(is_null() or is_array()))) + { + JSON_THROW(type_error::create(308, "cannot use push_back() with " + std::string(type_name()))); + } + + // transform null object into an array + if (is_null()) + { + m_type = value_t::array; + m_value = value_t::array; + assert_invariant(); + } + + // add element to array + m_value.array->push_back(val); + } + + /*! + @brief add an object to an array + @copydoc push_back(basic_json&&) + */ + reference operator+=(const basic_json& val) + { + push_back(val); + return *this; + } + + /*! + @brief add an object to an object + + Inserts the given element @a val to the JSON object. If the function is + called on a JSON null value, an empty object is created before inserting + @a val. + + @param[in] val the value to add to the JSON object + + @throw type_error.308 when called on a type other than JSON object or + null; example: `"cannot use push_back() with number"` + + @complexity Logarithmic in the size of the container, O(log(`size()`)). + + @liveexample{The example shows how `push_back()` and `+=` can be used to + add elements to a JSON object. Note how the `null` value was silently + converted to a JSON object.,push_back__object_t__value} + + @since version 1.0.0 + */ + void push_back(const typename object_t::value_type& val) + { + // push_back only works for null objects or objects + if (JSON_UNLIKELY(not(is_null() or is_object()))) + { + JSON_THROW(type_error::create(308, "cannot use push_back() with " + std::string(type_name()))); + } + + // transform null object into an object + if (is_null()) + { + m_type = value_t::object; + m_value = value_t::object; + assert_invariant(); + } + + // add element to array + m_value.object->insert(val); + } + + /*! + @brief add an object to an object + @copydoc push_back(const typename object_t::value_type&) + */ + reference operator+=(const typename object_t::value_type& val) + { + push_back(val); + return *this; + } + + /*! + @brief add an object to an object + + This function allows to use `push_back` with an initializer list. In case + + 1. the current value is an object, + 2. the initializer list @a init contains only two elements, and + 3. the first element of @a init is a string, + + @a init is converted into an object element and added using + @ref push_back(const typename object_t::value_type&). Otherwise, @a init + is converted to a JSON value and added using @ref push_back(basic_json&&). + + @param[in] init an initializer list + + @complexity Linear in the size of the initializer list @a init. + + @note This function is required to resolve an ambiguous overload error, + because pairs like `{"key", "value"}` can be both interpreted as + `object_t::value_type` or `std::initializer_list<basic_json>`, see + https://github.com/nlohmann/json/issues/235 for more information. + + @liveexample{The example shows how initializer lists are treated as + objects when possible.,push_back__initializer_list} + */ + void push_back(initializer_list_t init) + { + if (is_object() and init.size() == 2 and (*init.begin())->is_string()) + { + basic_json&& key = init.begin()->moved_or_copied(); + push_back(typename object_t::value_type( + std::move(key.get_ref<string_t&>()), (init.begin() + 1)->moved_or_copied())); + } + else + { + push_back(basic_json(init)); + } + } + + /*! + @brief add an object to an object + @copydoc push_back(initializer_list_t) + */ + reference operator+=(initializer_list_t init) + { + push_back(init); + return *this; + } + + /*! + @brief add an object to an array + + Creates a JSON value from the passed parameters @a args to the end of the + JSON value. If the function is called on a JSON null value, an empty array + is created before appending the value created from @a args. + + @param[in] args arguments to forward to a constructor of @ref basic_json + @tparam Args compatible types to create a @ref basic_json object + + @throw type_error.311 when called on a type other than JSON array or + null; example: `"cannot use emplace_back() with number"` + + @complexity Amortized constant. + + @liveexample{The example shows how `push_back()` can be used to add + elements to a JSON array. Note how the `null` value was silently converted + to a JSON array.,emplace_back} + + @since version 2.0.8 + */ + template<class... Args> + void emplace_back(Args&& ... args) + { + // emplace_back only works for null objects or arrays + if (JSON_UNLIKELY(not(is_null() or is_array()))) + { + JSON_THROW(type_error::create(311, "cannot use emplace_back() with " + std::string(type_name()))); + } + + // transform null object into an array + if (is_null()) + { + m_type = value_t::array; + m_value = value_t::array; + assert_invariant(); + } + + // add element to array (perfect forwarding) + m_value.array->emplace_back(std::forward<Args>(args)...); + } + + /*! + @brief add an object to an object if key does not exist + + Inserts a new element into a JSON object constructed in-place with the + given @a args if there is no element with the key in the container. If the + function is called on a JSON null value, an empty object is created before + appending the value created from @a args. + + @param[in] args arguments to forward to a constructor of @ref basic_json + @tparam Args compatible types to create a @ref basic_json object + + @return a pair consisting of an iterator to the inserted element, or the + already-existing element if no insertion happened, and a bool + denoting whether the insertion took place. + + @throw type_error.311 when called on a type other than JSON object or + null; example: `"cannot use emplace() with number"` + + @complexity Logarithmic in the size of the container, O(log(`size()`)). + + @liveexample{The example shows how `emplace()` can be used to add elements + to a JSON object. Note how the `null` value was silently converted to a + JSON object. Further note how no value is added if there was already one + value stored with the same key.,emplace} + + @since version 2.0.8 + */ + template<class... Args> + std::pair<iterator, bool> emplace(Args&& ... args) + { + // emplace only works for null objects or arrays + if (JSON_UNLIKELY(not(is_null() or is_object()))) + { + JSON_THROW(type_error::create(311, "cannot use emplace() with " + std::string(type_name()))); + } + + // transform null object into an object + if (is_null()) + { + m_type = value_t::object; + m_value = value_t::object; + assert_invariant(); + } + + // add element to array (perfect forwarding) + auto res = m_value.object->emplace(std::forward<Args>(args)...); + // create result iterator and set iterator to the result of emplace + auto it = begin(); + it.m_it.object_iterator = res.first; + + // return pair of iterator and boolean + return {it, res.second}; + } + + /// Helper for insertion of an iterator + /// @note: This uses std::distance to support GCC 4.8, + /// see https://github.com/nlohmann/json/pull/1257 + template<typename... Args> + iterator insert_iterator(const_iterator pos, Args&& ... args) + { + iterator result(this); + assert(m_value.array != nullptr); + + auto insert_pos = std::distance(m_value.array->begin(), pos.m_it.array_iterator); + m_value.array->insert(pos.m_it.array_iterator, std::forward<Args>(args)...); + result.m_it.array_iterator = m_value.array->begin() + insert_pos; + + // This could have been written as: + // result.m_it.array_iterator = m_value.array->insert(pos.m_it.array_iterator, cnt, val); + // but the return value of insert is missing in GCC 4.8, so it is written this way instead. + + return result; + } + + /*! + @brief inserts element + + Inserts element @a val before iterator @a pos. + + @param[in] pos iterator before which the content will be inserted; may be + the end() iterator + @param[in] val element to insert + @return iterator pointing to the inserted @a val. + + @throw type_error.309 if called on JSON values other than arrays; + example: `"cannot use insert() with string"` + @throw invalid_iterator.202 if @a pos is not an iterator of *this; + example: `"iterator does not fit current value"` + + @complexity Constant plus linear in the distance between @a pos and end of + the container. + + @liveexample{The example shows how `insert()` is used.,insert} + + @since version 1.0.0 + */ + iterator insert(const_iterator pos, const basic_json& val) + { + // insert only works for arrays + if (JSON_LIKELY(is_array())) + { + // check if iterator pos fits to this JSON value + if (JSON_UNLIKELY(pos.m_object != this)) + { + JSON_THROW(invalid_iterator::create(202, "iterator does not fit current value")); + } + + // insert to array and return iterator + return insert_iterator(pos, val); + } + + JSON_THROW(type_error::create(309, "cannot use insert() with " + std::string(type_name()))); + } + + /*! + @brief inserts element + @copydoc insert(const_iterator, const basic_json&) + */ + iterator insert(const_iterator pos, basic_json&& val) + { + return insert(pos, val); + } + + /*! + @brief inserts elements + + Inserts @a cnt copies of @a val before iterator @a pos. + + @param[in] pos iterator before which the content will be inserted; may be + the end() iterator + @param[in] cnt number of copies of @a val to insert + @param[in] val element to insert + @return iterator pointing to the first element inserted, or @a pos if + `cnt==0` + + @throw type_error.309 if called on JSON values other than arrays; example: + `"cannot use insert() with string"` + @throw invalid_iterator.202 if @a pos is not an iterator of *this; + example: `"iterator does not fit current value"` + + @complexity Linear in @a cnt plus linear in the distance between @a pos + and end of the container. + + @liveexample{The example shows how `insert()` is used.,insert__count} + + @since version 1.0.0 + */ + iterator insert(const_iterator pos, size_type cnt, const basic_json& val) + { + // insert only works for arrays + if (JSON_LIKELY(is_array())) + { + // check if iterator pos fits to this JSON value + if (JSON_UNLIKELY(pos.m_object != this)) + { + JSON_THROW(invalid_iterator::create(202, "iterator does not fit current value")); + } + + // insert to array and return iterator + return insert_iterator(pos, cnt, val); + } + + JSON_THROW(type_error::create(309, "cannot use insert() with " + std::string(type_name()))); + } + + /*! + @brief inserts elements + + Inserts elements from range `[first, last)` before iterator @a pos. + + @param[in] pos iterator before which the content will be inserted; may be + the end() iterator + @param[in] first begin of the range of elements to insert + @param[in] last end of the range of elements to insert + + @throw type_error.309 if called on JSON values other than arrays; example: + `"cannot use insert() with string"` + @throw invalid_iterator.202 if @a pos is not an iterator of *this; + example: `"iterator does not fit current value"` + @throw invalid_iterator.210 if @a first and @a last do not belong to the + same JSON value; example: `"iterators do not fit"` + @throw invalid_iterator.211 if @a first or @a last are iterators into + container for which insert is called; example: `"passed iterators may not + belong to container"` + + @return iterator pointing to the first element inserted, or @a pos if + `first==last` + + @complexity Linear in `std::distance(first, last)` plus linear in the + distance between @a pos and end of the container. + + @liveexample{The example shows how `insert()` is used.,insert__range} + + @since version 1.0.0 + */ + iterator insert(const_iterator pos, const_iterator first, const_iterator last) + { + // insert only works for arrays + if (JSON_UNLIKELY(not is_array())) + { + JSON_THROW(type_error::create(309, "cannot use insert() with " + std::string(type_name()))); + } + + // check if iterator pos fits to this JSON value + if (JSON_UNLIKELY(pos.m_object != this)) + { + JSON_THROW(invalid_iterator::create(202, "iterator does not fit current value")); + } + + // check if range iterators belong to the same JSON object + if (JSON_UNLIKELY(first.m_object != last.m_object)) + { + JSON_THROW(invalid_iterator::create(210, "iterators do not fit")); + } + + if (JSON_UNLIKELY(first.m_object == this)) + { + JSON_THROW(invalid_iterator::create(211, "passed iterators may not belong to container")); + } + + // insert to array and return iterator + return insert_iterator(pos, first.m_it.array_iterator, last.m_it.array_iterator); + } + + /*! + @brief inserts elements + + Inserts elements from initializer list @a ilist before iterator @a pos. + + @param[in] pos iterator before which the content will be inserted; may be + the end() iterator + @param[in] ilist initializer list to insert the values from + + @throw type_error.309 if called on JSON values other than arrays; example: + `"cannot use insert() with string"` + @throw invalid_iterator.202 if @a pos is not an iterator of *this; + example: `"iterator does not fit current value"` + + @return iterator pointing to the first element inserted, or @a pos if + `ilist` is empty + + @complexity Linear in `ilist.size()` plus linear in the distance between + @a pos and end of the container. + + @liveexample{The example shows how `insert()` is used.,insert__ilist} + + @since version 1.0.0 + */ + iterator insert(const_iterator pos, initializer_list_t ilist) + { + // insert only works for arrays + if (JSON_UNLIKELY(not is_array())) + { + JSON_THROW(type_error::create(309, "cannot use insert() with " + std::string(type_name()))); + } + + // check if iterator pos fits to this JSON value + if (JSON_UNLIKELY(pos.m_object != this)) + { + JSON_THROW(invalid_iterator::create(202, "iterator does not fit current value")); + } + + // insert to array and return iterator + return insert_iterator(pos, ilist.begin(), ilist.end()); + } + + /*! + @brief inserts elements + + Inserts elements from range `[first, last)`. + + @param[in] first begin of the range of elements to insert + @param[in] last end of the range of elements to insert + + @throw type_error.309 if called on JSON values other than objects; example: + `"cannot use insert() with string"` + @throw invalid_iterator.202 if iterator @a first or @a last does does not + point to an object; example: `"iterators first and last must point to + objects"` + @throw invalid_iterator.210 if @a first and @a last do not belong to the + same JSON value; example: `"iterators do not fit"` + + @complexity Logarithmic: `O(N*log(size() + N))`, where `N` is the number + of elements to insert. + + @liveexample{The example shows how `insert()` is used.,insert__range_object} + + @since version 3.0.0 + */ + void insert(const_iterator first, const_iterator last) + { + // insert only works for objects + if (JSON_UNLIKELY(not is_object())) + { + JSON_THROW(type_error::create(309, "cannot use insert() with " + std::string(type_name()))); + } + + // check if range iterators belong to the same JSON object + if (JSON_UNLIKELY(first.m_object != last.m_object)) + { + JSON_THROW(invalid_iterator::create(210, "iterators do not fit")); + } + + // passed iterators must belong to objects + if (JSON_UNLIKELY(not first.m_object->is_object())) + { + JSON_THROW(invalid_iterator::create(202, "iterators first and last must point to objects")); + } + + m_value.object->insert(first.m_it.object_iterator, last.m_it.object_iterator); + } + + /*! + @brief updates a JSON object from another object, overwriting existing keys + + Inserts all values from JSON object @a j and overwrites existing keys. + + @param[in] j JSON object to read values from + + @throw type_error.312 if called on JSON values other than objects; example: + `"cannot use update() with string"` + + @complexity O(N*log(size() + N)), where N is the number of elements to + insert. + + @liveexample{The example shows how `update()` is used.,update} + + @sa https://docs.python.org/3.6/library/stdtypes.html#dict.update + + @since version 3.0.0 + */ + void update(const_reference j) + { + // implicitly convert null value to an empty object + if (is_null()) + { + m_type = value_t::object; + m_value.object = create<object_t>(); + assert_invariant(); + } + + if (JSON_UNLIKELY(not is_object())) + { + JSON_THROW(type_error::create(312, "cannot use update() with " + std::string(type_name()))); + } + if (JSON_UNLIKELY(not j.is_object())) + { + JSON_THROW(type_error::create(312, "cannot use update() with " + std::string(j.type_name()))); + } + + for (auto it = j.cbegin(); it != j.cend(); ++it) + { + m_value.object->operator[](it.key()) = it.value(); + } + } + + /*! + @brief updates a JSON object from another object, overwriting existing keys + + Inserts all values from from range `[first, last)` and overwrites existing + keys. + + @param[in] first begin of the range of elements to insert + @param[in] last end of the range of elements to insert + + @throw type_error.312 if called on JSON values other than objects; example: + `"cannot use update() with string"` + @throw invalid_iterator.202 if iterator @a first or @a last does does not + point to an object; example: `"iterators first and last must point to + objects"` + @throw invalid_iterator.210 if @a first and @a last do not belong to the + same JSON value; example: `"iterators do not fit"` + + @complexity O(N*log(size() + N)), where N is the number of elements to + insert. + + @liveexample{The example shows how `update()` is used__range.,update} + + @sa https://docs.python.org/3.6/library/stdtypes.html#dict.update + + @since version 3.0.0 + */ + void update(const_iterator first, const_iterator last) + { + // implicitly convert null value to an empty object + if (is_null()) + { + m_type = value_t::object; + m_value.object = create<object_t>(); + assert_invariant(); + } + + if (JSON_UNLIKELY(not is_object())) + { + JSON_THROW(type_error::create(312, "cannot use update() with " + std::string(type_name()))); + } + + // check if range iterators belong to the same JSON object + if (JSON_UNLIKELY(first.m_object != last.m_object)) + { + JSON_THROW(invalid_iterator::create(210, "iterators do not fit")); + } + + // passed iterators must belong to objects + if (JSON_UNLIKELY(not first.m_object->is_object() + or not last.m_object->is_object())) + { + JSON_THROW(invalid_iterator::create(202, "iterators first and last must point to objects")); + } + + for (auto it = first; it != last; ++it) + { + m_value.object->operator[](it.key()) = it.value(); + } + } + + /*! + @brief exchanges the values + + Exchanges the contents of the JSON value with those of @a other. Does not + invoke any move, copy, or swap operations on individual elements. All + iterators and references remain valid. The past-the-end iterator is + invalidated. + + @param[in,out] other JSON value to exchange the contents with + + @complexity Constant. + + @liveexample{The example below shows how JSON values can be swapped with + `swap()`.,swap__reference} + + @since version 1.0.0 + */ + void swap(reference other) noexcept ( + std::is_nothrow_move_constructible<value_t>::value and + std::is_nothrow_move_assignable<value_t>::value and + std::is_nothrow_move_constructible<json_value>::value and + std::is_nothrow_move_assignable<json_value>::value + ) + { + std::swap(m_type, other.m_type); + std::swap(m_value, other.m_value); + assert_invariant(); + } + + /*! + @brief exchanges the values + + Exchanges the contents of a JSON array with those of @a other. Does not + invoke any move, copy, or swap operations on individual elements. All + iterators and references remain valid. The past-the-end iterator is + invalidated. + + @param[in,out] other array to exchange the contents with + + @throw type_error.310 when JSON value is not an array; example: `"cannot + use swap() with string"` + + @complexity Constant. + + @liveexample{The example below shows how arrays can be swapped with + `swap()`.,swap__array_t} + + @since version 1.0.0 + */ + void swap(array_t& other) + { + // swap only works for arrays + if (JSON_LIKELY(is_array())) + { + std::swap(*(m_value.array), other); + } + else + { + JSON_THROW(type_error::create(310, "cannot use swap() with " + std::string(type_name()))); + } + } + + /*! + @brief exchanges the values + + Exchanges the contents of a JSON object with those of @a other. Does not + invoke any move, copy, or swap operations on individual elements. All + iterators and references remain valid. The past-the-end iterator is + invalidated. + + @param[in,out] other object to exchange the contents with + + @throw type_error.310 when JSON value is not an object; example: + `"cannot use swap() with string"` + + @complexity Constant. + + @liveexample{The example below shows how objects can be swapped with + `swap()`.,swap__object_t} + + @since version 1.0.0 + */ + void swap(object_t& other) + { + // swap only works for objects + if (JSON_LIKELY(is_object())) + { + std::swap(*(m_value.object), other); + } + else + { + JSON_THROW(type_error::create(310, "cannot use swap() with " + std::string(type_name()))); + } + } + + /*! + @brief exchanges the values + + Exchanges the contents of a JSON string with those of @a other. Does not + invoke any move, copy, or swap operations on individual elements. All + iterators and references remain valid. The past-the-end iterator is + invalidated. + + @param[in,out] other string to exchange the contents with + + @throw type_error.310 when JSON value is not a string; example: `"cannot + use swap() with boolean"` + + @complexity Constant. + + @liveexample{The example below shows how strings can be swapped with + `swap()`.,swap__string_t} + + @since version 1.0.0 + */ + void swap(string_t& other) + { + // swap only works for strings + if (JSON_LIKELY(is_string())) + { + std::swap(*(m_value.string), other); + } + else + { + JSON_THROW(type_error::create(310, "cannot use swap() with " + std::string(type_name()))); + } + } + + /// @} + + public: + ////////////////////////////////////////// + // lexicographical comparison operators // + ////////////////////////////////////////// + + /// @name lexicographical comparison operators + /// @{ + + /*! + @brief comparison: equal + + Compares two JSON values for equality according to the following rules: + - Two JSON values are equal if (1) they are from the same type and (2) + their stored values are the same according to their respective + `operator==`. + - Integer and floating-point numbers are automatically converted before + comparison. Note than two NaN values are always treated as unequal. + - Two JSON null values are equal. + + @note Floating-point inside JSON values numbers are compared with + `json::number_float_t::operator==` which is `double::operator==` by + default. To compare floating-point while respecting an epsilon, an alternative + [comparison function](https://github.com/mariokonrad/marnav/blob/master/src/marnav/math/floatingpoint.hpp#L34-#L39) + could be used, for instance + @code {.cpp} + template<typename T, typename = typename std::enable_if<std::is_floating_point<T>::value, T>::type> + inline bool is_same(T a, T b, T epsilon = std::numeric_limits<T>::epsilon()) noexcept + { + return std::abs(a - b) <= epsilon; + } + @endcode + + @note NaN values never compare equal to themselves or to other NaN values. + + @param[in] lhs first JSON value to consider + @param[in] rhs second JSON value to consider + @return whether the values @a lhs and @a rhs are equal + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @complexity Linear. + + @liveexample{The example demonstrates comparing several JSON + types.,operator__equal} + + @since version 1.0.0 + */ + friend bool operator==(const_reference lhs, const_reference rhs) noexcept + { + const auto lhs_type = lhs.type(); + const auto rhs_type = rhs.type(); + + if (lhs_type == rhs_type) + { + switch (lhs_type) + { + case value_t::array: + return *lhs.m_value.array == *rhs.m_value.array; + + case value_t::object: + return *lhs.m_value.object == *rhs.m_value.object; + + case value_t::null: + return true; + + case value_t::string: + return *lhs.m_value.string == *rhs.m_value.string; + + case value_t::boolean: + return lhs.m_value.boolean == rhs.m_value.boolean; + + case value_t::number_integer: + return lhs.m_value.number_integer == rhs.m_value.number_integer; + + case value_t::number_unsigned: + return lhs.m_value.number_unsigned == rhs.m_value.number_unsigned; + + case value_t::number_float: + return lhs.m_value.number_float == rhs.m_value.number_float; + + default: + return false; + } + } + else if (lhs_type == value_t::number_integer and rhs_type == value_t::number_float) + { + return static_cast<number_float_t>(lhs.m_value.number_integer) == rhs.m_value.number_float; + } + else if (lhs_type == value_t::number_float and rhs_type == value_t::number_integer) + { + return lhs.m_value.number_float == static_cast<number_float_t>(rhs.m_value.number_integer); + } + else if (lhs_type == value_t::number_unsigned and rhs_type == value_t::number_float) + { + return static_cast<number_float_t>(lhs.m_value.number_unsigned) == rhs.m_value.number_float; + } + else if (lhs_type == value_t::number_float and rhs_type == value_t::number_unsigned) + { + return lhs.m_value.number_float == static_cast<number_float_t>(rhs.m_value.number_unsigned); + } + else if (lhs_type == value_t::number_unsigned and rhs_type == value_t::number_integer) + { + return static_cast<number_integer_t>(lhs.m_value.number_unsigned) == rhs.m_value.number_integer; + } + else if (lhs_type == value_t::number_integer and rhs_type == value_t::number_unsigned) + { + return lhs.m_value.number_integer == static_cast<number_integer_t>(rhs.m_value.number_unsigned); + } + + return false; + } + + /*! + @brief comparison: equal + @copydoc operator==(const_reference, const_reference) + */ + template<typename ScalarType, typename std::enable_if< + std::is_scalar<ScalarType>::value, int>::type = 0> + friend bool operator==(const_reference lhs, const ScalarType rhs) noexcept + { + return lhs == basic_json(rhs); + } + + /*! + @brief comparison: equal + @copydoc operator==(const_reference, const_reference) + */ + template<typename ScalarType, typename std::enable_if< + std::is_scalar<ScalarType>::value, int>::type = 0> + friend bool operator==(const ScalarType lhs, const_reference rhs) noexcept + { + return basic_json(lhs) == rhs; + } + + /*! + @brief comparison: not equal + + Compares two JSON values for inequality by calculating `not (lhs == rhs)`. + + @param[in] lhs first JSON value to consider + @param[in] rhs second JSON value to consider + @return whether the values @a lhs and @a rhs are not equal + + @complexity Linear. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @liveexample{The example demonstrates comparing several JSON + types.,operator__notequal} + + @since version 1.0.0 + */ + friend bool operator!=(const_reference lhs, const_reference rhs) noexcept + { + return not (lhs == rhs); + } + + /*! + @brief comparison: not equal + @copydoc operator!=(const_reference, const_reference) + */ + template<typename ScalarType, typename std::enable_if< + std::is_scalar<ScalarType>::value, int>::type = 0> + friend bool operator!=(const_reference lhs, const ScalarType rhs) noexcept + { + return lhs != basic_json(rhs); + } + + /*! + @brief comparison: not equal + @copydoc operator!=(const_reference, const_reference) + */ + template<typename ScalarType, typename std::enable_if< + std::is_scalar<ScalarType>::value, int>::type = 0> + friend bool operator!=(const ScalarType lhs, const_reference rhs) noexcept + { + return basic_json(lhs) != rhs; + } + + /*! + @brief comparison: less than + + Compares whether one JSON value @a lhs is less than another JSON value @a + rhs according to the following rules: + - If @a lhs and @a rhs have the same type, the values are compared using + the default `<` operator. + - Integer and floating-point numbers are automatically converted before + comparison + - In case @a lhs and @a rhs have different types, the values are ignored + and the order of the types is considered, see + @ref operator<(const value_t, const value_t). + + @param[in] lhs first JSON value to consider + @param[in] rhs second JSON value to consider + @return whether @a lhs is less than @a rhs + + @complexity Linear. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @liveexample{The example demonstrates comparing several JSON + types.,operator__less} + + @since version 1.0.0 + */ + friend bool operator<(const_reference lhs, const_reference rhs) noexcept + { + const auto lhs_type = lhs.type(); + const auto rhs_type = rhs.type(); + + if (lhs_type == rhs_type) + { + switch (lhs_type) + { + case value_t::array: + // note parentheses are necessary, see + // https://github.com/nlohmann/json/issues/1530 + return (*lhs.m_value.array) < (*rhs.m_value.array); + + case value_t::object: + return *lhs.m_value.object < *rhs.m_value.object; + + case value_t::null: + return false; + + case value_t::string: + return *lhs.m_value.string < *rhs.m_value.string; + + case value_t::boolean: + return lhs.m_value.boolean < rhs.m_value.boolean; + + case value_t::number_integer: + return lhs.m_value.number_integer < rhs.m_value.number_integer; + + case value_t::number_unsigned: + return lhs.m_value.number_unsigned < rhs.m_value.number_unsigned; + + case value_t::number_float: + return lhs.m_value.number_float < rhs.m_value.number_float; + + default: + return false; + } + } + else if (lhs_type == value_t::number_integer and rhs_type == value_t::number_float) + { + return static_cast<number_float_t>(lhs.m_value.number_integer) < rhs.m_value.number_float; + } + else if (lhs_type == value_t::number_float and rhs_type == value_t::number_integer) + { + return lhs.m_value.number_float < static_cast<number_float_t>(rhs.m_value.number_integer); + } + else if (lhs_type == value_t::number_unsigned and rhs_type == value_t::number_float) + { + return static_cast<number_float_t>(lhs.m_value.number_unsigned) < rhs.m_value.number_float; + } + else if (lhs_type == value_t::number_float and rhs_type == value_t::number_unsigned) + { + return lhs.m_value.number_float < static_cast<number_float_t>(rhs.m_value.number_unsigned); + } + else if (lhs_type == value_t::number_integer and rhs_type == value_t::number_unsigned) + { + return lhs.m_value.number_integer < static_cast<number_integer_t>(rhs.m_value.number_unsigned); + } + else if (lhs_type == value_t::number_unsigned and rhs_type == value_t::number_integer) + { + return static_cast<number_integer_t>(lhs.m_value.number_unsigned) < rhs.m_value.number_integer; + } + + // We only reach this line if we cannot compare values. In that case, + // we compare types. Note we have to call the operator explicitly, + // because MSVC has problems otherwise. + return operator<(lhs_type, rhs_type); + } + + /*! + @brief comparison: less than + @copydoc operator<(const_reference, const_reference) + */ + template<typename ScalarType, typename std::enable_if< + std::is_scalar<ScalarType>::value, int>::type = 0> + friend bool operator<(const_reference lhs, const ScalarType rhs) noexcept + { + return lhs < basic_json(rhs); + } + + /*! + @brief comparison: less than + @copydoc operator<(const_reference, const_reference) + */ + template<typename ScalarType, typename std::enable_if< + std::is_scalar<ScalarType>::value, int>::type = 0> + friend bool operator<(const ScalarType lhs, const_reference rhs) noexcept + { + return basic_json(lhs) < rhs; + } + + /*! + @brief comparison: less than or equal + + Compares whether one JSON value @a lhs is less than or equal to another + JSON value by calculating `not (rhs < lhs)`. + + @param[in] lhs first JSON value to consider + @param[in] rhs second JSON value to consider + @return whether @a lhs is less than or equal to @a rhs + + @complexity Linear. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @liveexample{The example demonstrates comparing several JSON + types.,operator__greater} + + @since version 1.0.0 + */ + friend bool operator<=(const_reference lhs, const_reference rhs) noexcept + { + return not (rhs < lhs); + } + + /*! + @brief comparison: less than or equal + @copydoc operator<=(const_reference, const_reference) + */ + template<typename ScalarType, typename std::enable_if< + std::is_scalar<ScalarType>::value, int>::type = 0> + friend bool operator<=(const_reference lhs, const ScalarType rhs) noexcept + { + return lhs <= basic_json(rhs); + } + + /*! + @brief comparison: less than or equal + @copydoc operator<=(const_reference, const_reference) + */ + template<typename ScalarType, typename std::enable_if< + std::is_scalar<ScalarType>::value, int>::type = 0> + friend bool operator<=(const ScalarType lhs, const_reference rhs) noexcept + { + return basic_json(lhs) <= rhs; + } + + /*! + @brief comparison: greater than + + Compares whether one JSON value @a lhs is greater than another + JSON value by calculating `not (lhs <= rhs)`. + + @param[in] lhs first JSON value to consider + @param[in] rhs second JSON value to consider + @return whether @a lhs is greater than to @a rhs + + @complexity Linear. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @liveexample{The example demonstrates comparing several JSON + types.,operator__lessequal} + + @since version 1.0.0 + */ + friend bool operator>(const_reference lhs, const_reference rhs) noexcept + { + return not (lhs <= rhs); + } + + /*! + @brief comparison: greater than + @copydoc operator>(const_reference, const_reference) + */ + template<typename ScalarType, typename std::enable_if< + std::is_scalar<ScalarType>::value, int>::type = 0> + friend bool operator>(const_reference lhs, const ScalarType rhs) noexcept + { + return lhs > basic_json(rhs); + } + + /*! + @brief comparison: greater than + @copydoc operator>(const_reference, const_reference) + */ + template<typename ScalarType, typename std::enable_if< + std::is_scalar<ScalarType>::value, int>::type = 0> + friend bool operator>(const ScalarType lhs, const_reference rhs) noexcept + { + return basic_json(lhs) > rhs; + } + + /*! + @brief comparison: greater than or equal + + Compares whether one JSON value @a lhs is greater than or equal to another + JSON value by calculating `not (lhs < rhs)`. + + @param[in] lhs first JSON value to consider + @param[in] rhs second JSON value to consider + @return whether @a lhs is greater than or equal to @a rhs + + @complexity Linear. + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @liveexample{The example demonstrates comparing several JSON + types.,operator__greaterequal} + + @since version 1.0.0 + */ + friend bool operator>=(const_reference lhs, const_reference rhs) noexcept + { + return not (lhs < rhs); + } + + /*! + @brief comparison: greater than or equal + @copydoc operator>=(const_reference, const_reference) + */ + template<typename ScalarType, typename std::enable_if< + std::is_scalar<ScalarType>::value, int>::type = 0> + friend bool operator>=(const_reference lhs, const ScalarType rhs) noexcept + { + return lhs >= basic_json(rhs); + } + + /*! + @brief comparison: greater than or equal + @copydoc operator>=(const_reference, const_reference) + */ + template<typename ScalarType, typename std::enable_if< + std::is_scalar<ScalarType>::value, int>::type = 0> + friend bool operator>=(const ScalarType lhs, const_reference rhs) noexcept + { + return basic_json(lhs) >= rhs; + } + + /// @} + + /////////////////// + // serialization // + /////////////////// + + /// @name serialization + /// @{ + + /*! + @brief serialize to stream + + Serialize the given JSON value @a j to the output stream @a o. The JSON + value will be serialized using the @ref dump member function. + + - The indentation of the output can be controlled with the member variable + `width` of the output stream @a o. For instance, using the manipulator + `std::setw(4)` on @a o sets the indentation level to `4` and the + serialization result is the same as calling `dump(4)`. + + - The indentation character can be controlled with the member variable + `fill` of the output stream @a o. For instance, the manipulator + `std::setfill('\\t')` sets indentation to use a tab character rather than + the default space character. + + @param[in,out] o stream to serialize to + @param[in] j JSON value to serialize + + @return the stream @a o + + @throw type_error.316 if a string stored inside the JSON value is not + UTF-8 encoded + + @complexity Linear. + + @liveexample{The example below shows the serialization with different + parameters to `width` to adjust the indentation level.,operator_serialize} + + @since version 1.0.0; indentation character added in version 3.0.0 + */ + friend std::ostream& operator<<(std::ostream& o, const basic_json& j) + { + // read width member and use it as indentation parameter if nonzero + const bool pretty_print = o.width() > 0; + const auto indentation = pretty_print ? o.width() : 0; + + // reset width to 0 for subsequent calls to this stream + o.width(0); + + // do the actual serialization + serializer s(detail::output_adapter<char>(o), o.fill()); + s.dump(j, pretty_print, false, static_cast<unsigned int>(indentation)); + return o; + } + + /*! + @brief serialize to stream + @deprecated This stream operator is deprecated and will be removed in + future 4.0.0 of the library. Please use + @ref operator<<(std::ostream&, const basic_json&) + instead; that is, replace calls like `j >> o;` with `o << j;`. + @since version 1.0.0; deprecated since version 3.0.0 + */ + JSON_DEPRECATED + friend std::ostream& operator>>(const basic_json& j, std::ostream& o) + { + return o << j; + } + + /// @} + + + ///////////////////// + // deserialization // + ///////////////////// + + /// @name deserialization + /// @{ + + /*! + @brief deserialize from a compatible input + + This function reads from a compatible input. Examples are: + - an array of 1-byte values + - strings with character/literal type with size of 1 byte + - input streams + - container with contiguous storage of 1-byte values. Compatible container + types include `std::vector`, `std::string`, `std::array`, + `std::valarray`, and `std::initializer_list`. Furthermore, C-style + arrays can be used with `std::begin()`/`std::end()`. User-defined + containers can be used as long as they implement random-access iterators + and a contiguous storage. + + @pre Each element of the container has a size of 1 byte. Violating this + precondition yields undefined behavior. **This precondition is enforced + with a static assertion.** + + @pre The container storage is contiguous. Violating this precondition + yields undefined behavior. **This precondition is enforced with an + assertion.** + + @warning There is no way to enforce all preconditions at compile-time. If + the function is called with a noncompliant container and with + assertions switched off, the behavior is undefined and will most + likely yield segmentation violation. + + @param[in] i input to read from + @param[in] cb a parser callback function of type @ref parser_callback_t + which is used to control the deserialization by filtering unwanted values + (optional) + @param[in] allow_exceptions whether to throw exceptions in case of a + parse error (optional, true by default) + + @return deserialized JSON value; in case of a parse error and + @a allow_exceptions set to `false`, the return value will be + value_t::discarded. + + @throw parse_error.101 if a parse error occurs; example: `""unexpected end + of input; expected string literal""` + @throw parse_error.102 if to_unicode fails or surrogate error + @throw parse_error.103 if to_unicode fails + + @complexity Linear in the length of the input. The parser is a predictive + LL(1) parser. The complexity can be higher if the parser callback function + @a cb has a super-linear complexity. + + @note A UTF-8 byte order mark is silently ignored. + + @liveexample{The example below demonstrates the `parse()` function reading + from an array.,parse__array__parser_callback_t} + + @liveexample{The example below demonstrates the `parse()` function with + and without callback function.,parse__string__parser_callback_t} + + @liveexample{The example below demonstrates the `parse()` function with + and without callback function.,parse__istream__parser_callback_t} + + @liveexample{The example below demonstrates the `parse()` function reading + from a contiguous container.,parse__contiguouscontainer__parser_callback_t} + + @since version 2.0.3 (contiguous containers) + */ + JSON_NODISCARD + static basic_json parse(detail::input_adapter&& i, + const parser_callback_t cb = nullptr, + const bool allow_exceptions = true) + { + basic_json result; + parser(i, cb, allow_exceptions).parse(true, result); + return result; + } + + static bool accept(detail::input_adapter&& i) + { + return parser(i).accept(true); + } + + /*! + @brief generate SAX events + + The SAX event lister must follow the interface of @ref json_sax. + + This function reads from a compatible input. Examples are: + - an array of 1-byte values + - strings with character/literal type with size of 1 byte + - input streams + - container with contiguous storage of 1-byte values. Compatible container + types include `std::vector`, `std::string`, `std::array`, + `std::valarray`, and `std::initializer_list`. Furthermore, C-style + arrays can be used with `std::begin()`/`std::end()`. User-defined + containers can be used as long as they implement random-access iterators + and a contiguous storage. + + @pre Each element of the container has a size of 1 byte. Violating this + precondition yields undefined behavior. **This precondition is enforced + with a static assertion.** + + @pre The container storage is contiguous. Violating this precondition + yields undefined behavior. **This precondition is enforced with an + assertion.** + + @warning There is no way to enforce all preconditions at compile-time. If + the function is called with a noncompliant container and with + assertions switched off, the behavior is undefined and will most + likely yield segmentation violation. + + @param[in] i input to read from + @param[in,out] sax SAX event listener + @param[in] format the format to parse (JSON, CBOR, MessagePack, or UBJSON) + @param[in] strict whether the input has to be consumed completely + + @return return value of the last processed SAX event + + @throw parse_error.101 if a parse error occurs; example: `""unexpected end + of input; expected string literal""` + @throw parse_error.102 if to_unicode fails or surrogate error + @throw parse_error.103 if to_unicode fails + + @complexity Linear in the length of the input. The parser is a predictive + LL(1) parser. The complexity can be higher if the SAX consumer @a sax has + a super-linear complexity. + + @note A UTF-8 byte order mark is silently ignored. + + @liveexample{The example below demonstrates the `sax_parse()` function + reading from string and processing the events with a user-defined SAX + event consumer.,sax_parse} + + @since version 3.2.0 + */ + template <typename SAX> + static bool sax_parse(detail::input_adapter&& i, SAX* sax, + input_format_t format = input_format_t::json, + const bool strict = true) + { + assert(sax); + return format == input_format_t::json + ? parser(std::move(i)).sax_parse(sax, strict) + : detail::binary_reader<basic_json, SAX>(std::move(i)).sax_parse(format, sax, strict); + } + + /*! + @brief deserialize from an iterator range with contiguous storage + + This function reads from an iterator range of a container with contiguous + storage of 1-byte values. Compatible container types include + `std::vector`, `std::string`, `std::array`, `std::valarray`, and + `std::initializer_list`. Furthermore, C-style arrays can be used with + `std::begin()`/`std::end()`. User-defined containers can be used as long + as they implement random-access iterators and a contiguous storage. + + @pre The iterator range is contiguous. Violating this precondition yields + undefined behavior. **This precondition is enforced with an assertion.** + @pre Each element in the range has a size of 1 byte. Violating this + precondition yields undefined behavior. **This precondition is enforced + with a static assertion.** + + @warning There is no way to enforce all preconditions at compile-time. If + the function is called with noncompliant iterators and with + assertions switched off, the behavior is undefined and will most + likely yield segmentation violation. + + @tparam IteratorType iterator of container with contiguous storage + @param[in] first begin of the range to parse (included) + @param[in] last end of the range to parse (excluded) + @param[in] cb a parser callback function of type @ref parser_callback_t + which is used to control the deserialization by filtering unwanted values + (optional) + @param[in] allow_exceptions whether to throw exceptions in case of a + parse error (optional, true by default) + + @return deserialized JSON value; in case of a parse error and + @a allow_exceptions set to `false`, the return value will be + value_t::discarded. + + @throw parse_error.101 in case of an unexpected token + @throw parse_error.102 if to_unicode fails or surrogate error + @throw parse_error.103 if to_unicode fails + + @complexity Linear in the length of the input. The parser is a predictive + LL(1) parser. The complexity can be higher if the parser callback function + @a cb has a super-linear complexity. + + @note A UTF-8 byte order mark is silently ignored. + + @liveexample{The example below demonstrates the `parse()` function reading + from an iterator range.,parse__iteratortype__parser_callback_t} + + @since version 2.0.3 + */ + template<class IteratorType, typename std::enable_if< + std::is_base_of< + std::random_access_iterator_tag, + typename std::iterator_traits<IteratorType>::iterator_category>::value, int>::type = 0> + static basic_json parse(IteratorType first, IteratorType last, + const parser_callback_t cb = nullptr, + const bool allow_exceptions = true) + { + basic_json result; + parser(detail::input_adapter(first, last), cb, allow_exceptions).parse(true, result); + return result; + } + + template<class IteratorType, typename std::enable_if< + std::is_base_of< + std::random_access_iterator_tag, + typename std::iterator_traits<IteratorType>::iterator_category>::value, int>::type = 0> + static bool accept(IteratorType first, IteratorType last) + { + return parser(detail::input_adapter(first, last)).accept(true); + } + + template<class IteratorType, class SAX, typename std::enable_if< + std::is_base_of< + std::random_access_iterator_tag, + typename std::iterator_traits<IteratorType>::iterator_category>::value, int>::type = 0> + static bool sax_parse(IteratorType first, IteratorType last, SAX* sax) + { + return parser(detail::input_adapter(first, last)).sax_parse(sax); + } + + /*! + @brief deserialize from stream + @deprecated This stream operator is deprecated and will be removed in + version 4.0.0 of the library. Please use + @ref operator>>(std::istream&, basic_json&) + instead; that is, replace calls like `j << i;` with `i >> j;`. + @since version 1.0.0; deprecated since version 3.0.0 + */ + JSON_DEPRECATED + friend std::istream& operator<<(basic_json& j, std::istream& i) + { + return operator>>(i, j); + } + + /*! + @brief deserialize from stream + + Deserializes an input stream to a JSON value. + + @param[in,out] i input stream to read a serialized JSON value from + @param[in,out] j JSON value to write the deserialized input to + + @throw parse_error.101 in case of an unexpected token + @throw parse_error.102 if to_unicode fails or surrogate error + @throw parse_error.103 if to_unicode fails + + @complexity Linear in the length of the input. The parser is a predictive + LL(1) parser. + + @note A UTF-8 byte order mark is silently ignored. + + @liveexample{The example below shows how a JSON value is constructed by + reading a serialization from a stream.,operator_deserialize} + + @sa parse(std::istream&, const parser_callback_t) for a variant with a + parser callback function to filter values while parsing + + @since version 1.0.0 + */ + friend std::istream& operator>>(std::istream& i, basic_json& j) + { + parser(detail::input_adapter(i)).parse(false, j); + return i; + } + + /// @} + + /////////////////////////// + // convenience functions // + /////////////////////////// + + /*! + @brief return the type as string + + Returns the type name as string to be used in error messages - usually to + indicate that a function was called on a wrong JSON type. + + @return a string representation of a the @a m_type member: + Value type | return value + ----------- | ------------- + null | `"null"` + boolean | `"boolean"` + string | `"string"` + number | `"number"` (for all number types) + object | `"object"` + array | `"array"` + discarded | `"discarded"` + + @exceptionsafety No-throw guarantee: this function never throws exceptions. + + @complexity Constant. + + @liveexample{The following code exemplifies `type_name()` for all JSON + types.,type_name} + + @sa @ref type() -- return the type of the JSON value + @sa @ref operator value_t() -- return the type of the JSON value (implicit) + + @since version 1.0.0, public since 2.1.0, `const char*` and `noexcept` + since 3.0.0 + */ + const char* type_name() const noexcept + { + { + switch (m_type) + { + case value_t::null: + return "null"; + case value_t::object: + return "object"; + case value_t::array: + return "array"; + case value_t::string: + return "string"; + case value_t::boolean: + return "boolean"; + case value_t::discarded: + return "discarded"; + default: + return "number"; + } + } + } + + + private: + ////////////////////// + // member variables // + ////////////////////// + + /// the type of the current element + value_t m_type = value_t::null; + + /// the value of the current element + json_value m_value = {}; + + ////////////////////////////////////////// + // binary serialization/deserialization // + ////////////////////////////////////////// + + /// @name binary serialization/deserialization support + /// @{ + + public: + /*! + @brief create a CBOR serialization of a given JSON value + + Serializes a given JSON value @a j to a byte vector using the CBOR (Concise + Binary Object Representation) serialization format. CBOR is a binary + serialization format which aims to be more compact than JSON itself, yet + more efficient to parse. + + The library uses the following mapping from JSON values types to + CBOR types according to the CBOR specification (RFC 7049): + + JSON value type | value/range | CBOR type | first byte + --------------- | ------------------------------------------ | ---------------------------------- | --------------- + null | `null` | Null | 0xF6 + boolean | `true` | True | 0xF5 + boolean | `false` | False | 0xF4 + number_integer | -9223372036854775808..-2147483649 | Negative integer (8 bytes follow) | 0x3B + number_integer | -2147483648..-32769 | Negative integer (4 bytes follow) | 0x3A + number_integer | -32768..-129 | Negative integer (2 bytes follow) | 0x39 + number_integer | -128..-25 | Negative integer (1 byte follow) | 0x38 + number_integer | -24..-1 | Negative integer | 0x20..0x37 + number_integer | 0..23 | Integer | 0x00..0x17 + number_integer | 24..255 | Unsigned integer (1 byte follow) | 0x18 + number_integer | 256..65535 | Unsigned integer (2 bytes follow) | 0x19 + number_integer | 65536..4294967295 | Unsigned integer (4 bytes follow) | 0x1A + number_integer | 4294967296..18446744073709551615 | Unsigned integer (8 bytes follow) | 0x1B + number_unsigned | 0..23 | Integer | 0x00..0x17 + number_unsigned | 24..255 | Unsigned integer (1 byte follow) | 0x18 + number_unsigned | 256..65535 | Unsigned integer (2 bytes follow) | 0x19 + number_unsigned | 65536..4294967295 | Unsigned integer (4 bytes follow) | 0x1A + number_unsigned | 4294967296..18446744073709551615 | Unsigned integer (8 bytes follow) | 0x1B + number_float | *any value* | Double-Precision Float | 0xFB + string | *length*: 0..23 | UTF-8 string | 0x60..0x77 + string | *length*: 23..255 | UTF-8 string (1 byte follow) | 0x78 + string | *length*: 256..65535 | UTF-8 string (2 bytes follow) | 0x79 + string | *length*: 65536..4294967295 | UTF-8 string (4 bytes follow) | 0x7A + string | *length*: 4294967296..18446744073709551615 | UTF-8 string (8 bytes follow) | 0x7B + array | *size*: 0..23 | array | 0x80..0x97 + array | *size*: 23..255 | array (1 byte follow) | 0x98 + array | *size*: 256..65535 | array (2 bytes follow) | 0x99 + array | *size*: 65536..4294967295 | array (4 bytes follow) | 0x9A + array | *size*: 4294967296..18446744073709551615 | array (8 bytes follow) | 0x9B + object | *size*: 0..23 | map | 0xA0..0xB7 + object | *size*: 23..255 | map (1 byte follow) | 0xB8 + object | *size*: 256..65535 | map (2 bytes follow) | 0xB9 + object | *size*: 65536..4294967295 | map (4 bytes follow) | 0xBA + object | *size*: 4294967296..18446744073709551615 | map (8 bytes follow) | 0xBB + + @note The mapping is **complete** in the sense that any JSON value type + can be converted to a CBOR value. + + @note If NaN or Infinity are stored inside a JSON number, they are + serialized properly. This behavior differs from the @ref dump() + function which serializes NaN or Infinity to `null`. + + @note The following CBOR types are not used in the conversion: + - byte strings (0x40..0x5F) + - UTF-8 strings terminated by "break" (0x7F) + - arrays terminated by "break" (0x9F) + - maps terminated by "break" (0xBF) + - date/time (0xC0..0xC1) + - bignum (0xC2..0xC3) + - decimal fraction (0xC4) + - bigfloat (0xC5) + - tagged items (0xC6..0xD4, 0xD8..0xDB) + - expected conversions (0xD5..0xD7) + - simple values (0xE0..0xF3, 0xF8) + - undefined (0xF7) + - half and single-precision floats (0xF9-0xFA) + - break (0xFF) + + @param[in] j JSON value to serialize + @return MessagePack serialization as byte vector + + @complexity Linear in the size of the JSON value @a j. + + @liveexample{The example shows the serialization of a JSON value to a byte + vector in CBOR format.,to_cbor} + + @sa http://cbor.io + @sa @ref from_cbor(detail::input_adapter&&, const bool, const bool) for the + analogous deserialization + @sa @ref to_msgpack(const basic_json&) for the related MessagePack format + @sa @ref to_ubjson(const basic_json&, const bool, const bool) for the + related UBJSON format + + @since version 2.0.9 + */ + static std::vector<uint8_t> to_cbor(const basic_json& j) + { + std::vector<uint8_t> result; + to_cbor(j, result); + return result; + } + + static void to_cbor(const basic_json& j, detail::output_adapter<uint8_t> o) + { + binary_writer<uint8_t>(o).write_cbor(j); + } + + static void to_cbor(const basic_json& j, detail::output_adapter<char> o) + { + binary_writer<char>(o).write_cbor(j); + } + + /*! + @brief create a MessagePack serialization of a given JSON value + + Serializes a given JSON value @a j to a byte vector using the MessagePack + serialization format. MessagePack is a binary serialization format which + aims to be more compact than JSON itself, yet more efficient to parse. + + The library uses the following mapping from JSON values types to + MessagePack types according to the MessagePack specification: + + JSON value type | value/range | MessagePack type | first byte + --------------- | --------------------------------- | ---------------- | ---------- + null | `null` | nil | 0xC0 + boolean | `true` | true | 0xC3 + boolean | `false` | false | 0xC2 + number_integer | -9223372036854775808..-2147483649 | int64 | 0xD3 + number_integer | -2147483648..-32769 | int32 | 0xD2 + number_integer | -32768..-129 | int16 | 0xD1 + number_integer | -128..-33 | int8 | 0xD0 + number_integer | -32..-1 | negative fixint | 0xE0..0xFF + number_integer | 0..127 | positive fixint | 0x00..0x7F + number_integer | 128..255 | uint 8 | 0xCC + number_integer | 256..65535 | uint 16 | 0xCD + number_integer | 65536..4294967295 | uint 32 | 0xCE + number_integer | 4294967296..18446744073709551615 | uint 64 | 0xCF + number_unsigned | 0..127 | positive fixint | 0x00..0x7F + number_unsigned | 128..255 | uint 8 | 0xCC + number_unsigned | 256..65535 | uint 16 | 0xCD + number_unsigned | 65536..4294967295 | uint 32 | 0xCE + number_unsigned | 4294967296..18446744073709551615 | uint 64 | 0xCF + number_float | *any value* | float 64 | 0xCB + string | *length*: 0..31 | fixstr | 0xA0..0xBF + string | *length*: 32..255 | str 8 | 0xD9 + string | *length*: 256..65535 | str 16 | 0xDA + string | *length*: 65536..4294967295 | str 32 | 0xDB + array | *size*: 0..15 | fixarray | 0x90..0x9F + array | *size*: 16..65535 | array 16 | 0xDC + array | *size*: 65536..4294967295 | array 32 | 0xDD + object | *size*: 0..15 | fix map | 0x80..0x8F + object | *size*: 16..65535 | map 16 | 0xDE + object | *size*: 65536..4294967295 | map 32 | 0xDF + + @note The mapping is **complete** in the sense that any JSON value type + can be converted to a MessagePack value. + + @note The following values can **not** be converted to a MessagePack value: + - strings with more than 4294967295 bytes + - arrays with more than 4294967295 elements + - objects with more than 4294967295 elements + + @note The following MessagePack types are not used in the conversion: + - bin 8 - bin 32 (0xC4..0xC6) + - ext 8 - ext 32 (0xC7..0xC9) + - float 32 (0xCA) + - fixext 1 - fixext 16 (0xD4..0xD8) + + @note Any MessagePack output created @ref to_msgpack can be successfully + parsed by @ref from_msgpack. + + @note If NaN or Infinity are stored inside a JSON number, they are + serialized properly. This behavior differs from the @ref dump() + function which serializes NaN or Infinity to `null`. + + @param[in] j JSON value to serialize + @return MessagePack serialization as byte vector + + @complexity Linear in the size of the JSON value @a j. + + @liveexample{The example shows the serialization of a JSON value to a byte + vector in MessagePack format.,to_msgpack} + + @sa http://msgpack.org + @sa @ref from_msgpack for the analogous deserialization + @sa @ref to_cbor(const basic_json& for the related CBOR format + @sa @ref to_ubjson(const basic_json&, const bool, const bool) for the + related UBJSON format + + @since version 2.0.9 + */ + static std::vector<uint8_t> to_msgpack(const basic_json& j) + { + std::vector<uint8_t> result; + to_msgpack(j, result); + return result; + } + + static void to_msgpack(const basic_json& j, detail::output_adapter<uint8_t> o) + { + binary_writer<uint8_t>(o).write_msgpack(j); + } + + static void to_msgpack(const basic_json& j, detail::output_adapter<char> o) + { + binary_writer<char>(o).write_msgpack(j); + } + + /*! + @brief create a UBJSON serialization of a given JSON value + + Serializes a given JSON value @a j to a byte vector using the UBJSON + (Universal Binary JSON) serialization format. UBJSON aims to be more compact + than JSON itself, yet more efficient to parse. + + The library uses the following mapping from JSON values types to + UBJSON types according to the UBJSON specification: + + JSON value type | value/range | UBJSON type | marker + --------------- | --------------------------------- | ----------- | ------ + null | `null` | null | `Z` + boolean | `true` | true | `T` + boolean | `false` | false | `F` + number_integer | -9223372036854775808..-2147483649 | int64 | `L` + number_integer | -2147483648..-32769 | int32 | `l` + number_integer | -32768..-129 | int16 | `I` + number_integer | -128..127 | int8 | `i` + number_integer | 128..255 | uint8 | `U` + number_integer | 256..32767 | int16 | `I` + number_integer | 32768..2147483647 | int32 | `l` + number_integer | 2147483648..9223372036854775807 | int64 | `L` + number_unsigned | 0..127 | int8 | `i` + number_unsigned | 128..255 | uint8 | `U` + number_unsigned | 256..32767 | int16 | `I` + number_unsigned | 32768..2147483647 | int32 | `l` + number_unsigned | 2147483648..9223372036854775807 | int64 | `L` + number_float | *any value* | float64 | `D` + string | *with shortest length indicator* | string | `S` + array | *see notes on optimized format* | array | `[` + object | *see notes on optimized format* | map | `{` + + @note The mapping is **complete** in the sense that any JSON value type + can be converted to a UBJSON value. + + @note The following values can **not** be converted to a UBJSON value: + - strings with more than 9223372036854775807 bytes (theoretical) + - unsigned integer numbers above 9223372036854775807 + + @note The following markers are not used in the conversion: + - `Z`: no-op values are not created. + - `C`: single-byte strings are serialized with `S` markers. + + @note Any UBJSON output created @ref to_ubjson can be successfully parsed + by @ref from_ubjson. + + @note If NaN or Infinity are stored inside a JSON number, they are + serialized properly. This behavior differs from the @ref dump() + function which serializes NaN or Infinity to `null`. + + @note The optimized formats for containers are supported: Parameter + @a use_size adds size information to the beginning of a container and + removes the closing marker. Parameter @a use_type further checks + whether all elements of a container have the same type and adds the + type marker to the beginning of the container. The @a use_type + parameter must only be used together with @a use_size = true. Note + that @a use_size = true alone may result in larger representations - + the benefit of this parameter is that the receiving side is + immediately informed on the number of elements of the container. + + @param[in] j JSON value to serialize + @param[in] use_size whether to add size annotations to container types + @param[in] use_type whether to add type annotations to container types + (must be combined with @a use_size = true) + @return UBJSON serialization as byte vector + + @complexity Linear in the size of the JSON value @a j. + + @liveexample{The example shows the serialization of a JSON value to a byte + vector in UBJSON format.,to_ubjson} + + @sa http://ubjson.org + @sa @ref from_ubjson(detail::input_adapter&&, const bool, const bool) for the + analogous deserialization + @sa @ref to_cbor(const basic_json& for the related CBOR format + @sa @ref to_msgpack(const basic_json&) for the related MessagePack format + + @since version 3.1.0 + */ + static std::vector<uint8_t> to_ubjson(const basic_json& j, + const bool use_size = false, + const bool use_type = false) + { + std::vector<uint8_t> result; + to_ubjson(j, result, use_size, use_type); + return result; + } + + static void to_ubjson(const basic_json& j, detail::output_adapter<uint8_t> o, + const bool use_size = false, const bool use_type = false) + { + binary_writer<uint8_t>(o).write_ubjson(j, use_size, use_type); + } + + static void to_ubjson(const basic_json& j, detail::output_adapter<char> o, + const bool use_size = false, const bool use_type = false) + { + binary_writer<char>(o).write_ubjson(j, use_size, use_type); + } + + + /*! + @brief Serializes the given JSON object `j` to BSON and returns a vector + containing the corresponding BSON-representation. + + BSON (Binary JSON) is a binary format in which zero or more ordered key/value pairs are + stored as a single entity (a so-called document). + + The library uses the following mapping from JSON values types to BSON types: + + JSON value type | value/range | BSON type | marker + --------------- | --------------------------------- | ----------- | ------ + null | `null` | null | 0x0A + boolean | `true`, `false` | boolean | 0x08 + number_integer | -9223372036854775808..-2147483649 | int64 | 0x12 + number_integer | -2147483648..2147483647 | int32 | 0x10 + number_integer | 2147483648..9223372036854775807 | int64 | 0x12 + number_unsigned | 0..2147483647 | int32 | 0x10 + number_unsigned | 2147483648..9223372036854775807 | int64 | 0x12 + number_unsigned | 9223372036854775808..18446744073709551615| -- | -- + number_float | *any value* | double | 0x01 + string | *any value* | string | 0x02 + array | *any value* | document | 0x04 + object | *any value* | document | 0x03 + + @warning The mapping is **incomplete**, since only JSON-objects (and things + contained therein) can be serialized to BSON. + Also, integers larger than 9223372036854775807 cannot be serialized to BSON, + and the keys may not contain U+0000, since they are serialized a + zero-terminated c-strings. + + @throw out_of_range.407 if `j.is_number_unsigned() && j.get<std::uint64_t>() > 9223372036854775807` + @throw out_of_range.409 if a key in `j` contains a NULL (U+0000) + @throw type_error.317 if `!j.is_object()` + + @pre The input `j` is required to be an object: `j.is_object() == true`. + + @note Any BSON output created via @ref to_bson can be successfully parsed + by @ref from_bson. + + @param[in] j JSON value to serialize + @return BSON serialization as byte vector + + @complexity Linear in the size of the JSON value @a j. + + @liveexample{The example shows the serialization of a JSON value to a byte + vector in BSON format.,to_bson} + + @sa http://bsonspec.org/spec.html + @sa @ref from_bson(detail::input_adapter&&, const bool strict) for the + analogous deserialization + @sa @ref to_ubjson(const basic_json&, const bool, const bool) for the + related UBJSON format + @sa @ref to_cbor(const basic_json&) for the related CBOR format + @sa @ref to_msgpack(const basic_json&) for the related MessagePack format + */ + static std::vector<uint8_t> to_bson(const basic_json& j) + { + std::vector<uint8_t> result; + to_bson(j, result); + return result; + } + + /*! + @brief Serializes the given JSON object `j` to BSON and forwards the + corresponding BSON-representation to the given output_adapter `o`. + @param j The JSON object to convert to BSON. + @param o The output adapter that receives the binary BSON representation. + @pre The input `j` shall be an object: `j.is_object() == true` + @sa @ref to_bson(const basic_json&) + */ + static void to_bson(const basic_json& j, detail::output_adapter<uint8_t> o) + { + binary_writer<uint8_t>(o).write_bson(j); + } + + /*! + @copydoc to_bson(const basic_json&, detail::output_adapter<uint8_t>) + */ + static void to_bson(const basic_json& j, detail::output_adapter<char> o) + { + binary_writer<char>(o).write_bson(j); + } + + + /*! + @brief create a JSON value from an input in CBOR format + + Deserializes a given input @a i to a JSON value using the CBOR (Concise + Binary Object Representation) serialization format. + + The library maps CBOR types to JSON value types as follows: + + CBOR type | JSON value type | first byte + ---------------------- | --------------- | ---------- + Integer | number_unsigned | 0x00..0x17 + Unsigned integer | number_unsigned | 0x18 + Unsigned integer | number_unsigned | 0x19 + Unsigned integer | number_unsigned | 0x1A + Unsigned integer | number_unsigned | 0x1B + Negative integer | number_integer | 0x20..0x37 + Negative integer | number_integer | 0x38 + Negative integer | number_integer | 0x39 + Negative integer | number_integer | 0x3A + Negative integer | number_integer | 0x3B + Negative integer | number_integer | 0x40..0x57 + UTF-8 string | string | 0x60..0x77 + UTF-8 string | string | 0x78 + UTF-8 string | string | 0x79 + UTF-8 string | string | 0x7A + UTF-8 string | string | 0x7B + UTF-8 string | string | 0x7F + array | array | 0x80..0x97 + array | array | 0x98 + array | array | 0x99 + array | array | 0x9A + array | array | 0x9B + array | array | 0x9F + map | object | 0xA0..0xB7 + map | object | 0xB8 + map | object | 0xB9 + map | object | 0xBA + map | object | 0xBB + map | object | 0xBF + False | `false` | 0xF4 + True | `true` | 0xF5 + Null | `null` | 0xF6 + Half-Precision Float | number_float | 0xF9 + Single-Precision Float | number_float | 0xFA + Double-Precision Float | number_float | 0xFB + + @warning The mapping is **incomplete** in the sense that not all CBOR + types can be converted to a JSON value. The following CBOR types + are not supported and will yield parse errors (parse_error.112): + - byte strings (0x40..0x5F) + - date/time (0xC0..0xC1) + - bignum (0xC2..0xC3) + - decimal fraction (0xC4) + - bigfloat (0xC5) + - tagged items (0xC6..0xD4, 0xD8..0xDB) + - expected conversions (0xD5..0xD7) + - simple values (0xE0..0xF3, 0xF8) + - undefined (0xF7) + + @warning CBOR allows map keys of any type, whereas JSON only allows + strings as keys in object values. Therefore, CBOR maps with keys + other than UTF-8 strings are rejected (parse_error.113). + + @note Any CBOR output created @ref to_cbor can be successfully parsed by + @ref from_cbor. + + @param[in] i an input in CBOR format convertible to an input adapter + @param[in] strict whether to expect the input to be consumed until EOF + (true by default) + @param[in] allow_exceptions whether to throw exceptions in case of a + parse error (optional, true by default) + + @return deserialized JSON value; in case of a parse error and + @a allow_exceptions set to `false`, the return value will be + value_t::discarded. + + @throw parse_error.110 if the given input ends prematurely or the end of + file was not reached when @a strict was set to true + @throw parse_error.112 if unsupported features from CBOR were + used in the given input @a v or if the input is not valid CBOR + @throw parse_error.113 if a string was expected as map key, but not found + + @complexity Linear in the size of the input @a i. + + @liveexample{The example shows the deserialization of a byte vector in CBOR + format to a JSON value.,from_cbor} + + @sa http://cbor.io + @sa @ref to_cbor(const basic_json&) for the analogous serialization + @sa @ref from_msgpack(detail::input_adapter&&, const bool, const bool) for the + related MessagePack format + @sa @ref from_ubjson(detail::input_adapter&&, const bool, const bool) for the + related UBJSON format + + @since version 2.0.9; parameter @a start_index since 2.1.1; changed to + consume input adapters, removed start_index parameter, and added + @a strict parameter since 3.0.0; added @a allow_exceptions parameter + since 3.2.0 + */ + JSON_NODISCARD + static basic_json from_cbor(detail::input_adapter&& i, + const bool strict = true, + const bool allow_exceptions = true) + { + basic_json result; + detail::json_sax_dom_parser<basic_json> sdp(result, allow_exceptions); + const bool res = binary_reader(detail::input_adapter(i)).sax_parse(input_format_t::cbor, &sdp, strict); + return res ? result : basic_json(value_t::discarded); + } + + /*! + @copydoc from_cbor(detail::input_adapter&&, const bool, const bool) + */ + template<typename A1, typename A2, + detail::enable_if_t<std::is_constructible<detail::input_adapter, A1, A2>::value, int> = 0> + JSON_NODISCARD + static basic_json from_cbor(A1 && a1, A2 && a2, + const bool strict = true, + const bool allow_exceptions = true) + { + basic_json result; + detail::json_sax_dom_parser<basic_json> sdp(result, allow_exceptions); + const bool res = binary_reader(detail::input_adapter(std::forward<A1>(a1), std::forward<A2>(a2))).sax_parse(input_format_t::cbor, &sdp, strict); + return res ? result : basic_json(value_t::discarded); + } + + /*! + @brief create a JSON value from an input in MessagePack format + + Deserializes a given input @a i to a JSON value using the MessagePack + serialization format. + + The library maps MessagePack types to JSON value types as follows: + + MessagePack type | JSON value type | first byte + ---------------- | --------------- | ---------- + positive fixint | number_unsigned | 0x00..0x7F + fixmap | object | 0x80..0x8F + fixarray | array | 0x90..0x9F + fixstr | string | 0xA0..0xBF + nil | `null` | 0xC0 + false | `false` | 0xC2 + true | `true` | 0xC3 + float 32 | number_float | 0xCA + float 64 | number_float | 0xCB + uint 8 | number_unsigned | 0xCC + uint 16 | number_unsigned | 0xCD + uint 32 | number_unsigned | 0xCE + uint 64 | number_unsigned | 0xCF + int 8 | number_integer | 0xD0 + int 16 | number_integer | 0xD1 + int 32 | number_integer | 0xD2 + int 64 | number_integer | 0xD3 + str 8 | string | 0xD9 + str 16 | string | 0xDA + str 32 | string | 0xDB + array 16 | array | 0xDC + array 32 | array | 0xDD + map 16 | object | 0xDE + map 32 | object | 0xDF + negative fixint | number_integer | 0xE0-0xFF + + @warning The mapping is **incomplete** in the sense that not all + MessagePack types can be converted to a JSON value. The following + MessagePack types are not supported and will yield parse errors: + - bin 8 - bin 32 (0xC4..0xC6) + - ext 8 - ext 32 (0xC7..0xC9) + - fixext 1 - fixext 16 (0xD4..0xD8) + + @note Any MessagePack output created @ref to_msgpack can be successfully + parsed by @ref from_msgpack. + + @param[in] i an input in MessagePack format convertible to an input + adapter + @param[in] strict whether to expect the input to be consumed until EOF + (true by default) + @param[in] allow_exceptions whether to throw exceptions in case of a + parse error (optional, true by default) + + @return deserialized JSON value; in case of a parse error and + @a allow_exceptions set to `false`, the return value will be + value_t::discarded. + + @throw parse_error.110 if the given input ends prematurely or the end of + file was not reached when @a strict was set to true + @throw parse_error.112 if unsupported features from MessagePack were + used in the given input @a i or if the input is not valid MessagePack + @throw parse_error.113 if a string was expected as map key, but not found + + @complexity Linear in the size of the input @a i. + + @liveexample{The example shows the deserialization of a byte vector in + MessagePack format to a JSON value.,from_msgpack} + + @sa http://msgpack.org + @sa @ref to_msgpack(const basic_json&) for the analogous serialization + @sa @ref from_cbor(detail::input_adapter&&, const bool, const bool) for the + related CBOR format + @sa @ref from_ubjson(detail::input_adapter&&, const bool, const bool) for + the related UBJSON format + @sa @ref from_bson(detail::input_adapter&&, const bool, const bool) for + the related BSON format + + @since version 2.0.9; parameter @a start_index since 2.1.1; changed to + consume input adapters, removed start_index parameter, and added + @a strict parameter since 3.0.0; added @a allow_exceptions parameter + since 3.2.0 + */ + JSON_NODISCARD + static basic_json from_msgpack(detail::input_adapter&& i, + const bool strict = true, + const bool allow_exceptions = true) + { + basic_json result; + detail::json_sax_dom_parser<basic_json> sdp(result, allow_exceptions); + const bool res = binary_reader(detail::input_adapter(i)).sax_parse(input_format_t::msgpack, &sdp, strict); + return res ? result : basic_json(value_t::discarded); + } + + /*! + @copydoc from_msgpack(detail::input_adapter&&, const bool, const bool) + */ + template<typename A1, typename A2, + detail::enable_if_t<std::is_constructible<detail::input_adapter, A1, A2>::value, int> = 0> + JSON_NODISCARD + static basic_json from_msgpack(A1 && a1, A2 && a2, + const bool strict = true, + const bool allow_exceptions = true) + { + basic_json result; + detail::json_sax_dom_parser<basic_json> sdp(result, allow_exceptions); + const bool res = binary_reader(detail::input_adapter(std::forward<A1>(a1), std::forward<A2>(a2))).sax_parse(input_format_t::msgpack, &sdp, strict); + return res ? result : basic_json(value_t::discarded); + } + + /*! + @brief create a JSON value from an input in UBJSON format + + Deserializes a given input @a i to a JSON value using the UBJSON (Universal + Binary JSON) serialization format. + + The library maps UBJSON types to JSON value types as follows: + + UBJSON type | JSON value type | marker + ----------- | --------------------------------------- | ------ + no-op | *no value, next value is read* | `N` + null | `null` | `Z` + false | `false` | `F` + true | `true` | `T` + float32 | number_float | `d` + float64 | number_float | `D` + uint8 | number_unsigned | `U` + int8 | number_integer | `i` + int16 | number_integer | `I` + int32 | number_integer | `l` + int64 | number_integer | `L` + string | string | `S` + char | string | `C` + array | array (optimized values are supported) | `[` + object | object (optimized values are supported) | `{` + + @note The mapping is **complete** in the sense that any UBJSON value can + be converted to a JSON value. + + @param[in] i an input in UBJSON format convertible to an input adapter + @param[in] strict whether to expect the input to be consumed until EOF + (true by default) + @param[in] allow_exceptions whether to throw exceptions in case of a + parse error (optional, true by default) + + @return deserialized JSON value; in case of a parse error and + @a allow_exceptions set to `false`, the return value will be + value_t::discarded. + + @throw parse_error.110 if the given input ends prematurely or the end of + file was not reached when @a strict was set to true + @throw parse_error.112 if a parse error occurs + @throw parse_error.113 if a string could not be parsed successfully + + @complexity Linear in the size of the input @a i. + + @liveexample{The example shows the deserialization of a byte vector in + UBJSON format to a JSON value.,from_ubjson} + + @sa http://ubjson.org + @sa @ref to_ubjson(const basic_json&, const bool, const bool) for the + analogous serialization + @sa @ref from_cbor(detail::input_adapter&&, const bool, const bool) for the + related CBOR format + @sa @ref from_msgpack(detail::input_adapter&&, const bool, const bool) for + the related MessagePack format + @sa @ref from_bson(detail::input_adapter&&, const bool, const bool) for + the related BSON format + + @since version 3.1.0; added @a allow_exceptions parameter since 3.2.0 + */ + JSON_NODISCARD + static basic_json from_ubjson(detail::input_adapter&& i, + const bool strict = true, + const bool allow_exceptions = true) + { + basic_json result; + detail::json_sax_dom_parser<basic_json> sdp(result, allow_exceptions); + const bool res = binary_reader(detail::input_adapter(i)).sax_parse(input_format_t::ubjson, &sdp, strict); + return res ? result : basic_json(value_t::discarded); + } + + /*! + @copydoc from_ubjson(detail::input_adapter&&, const bool, const bool) + */ + template<typename A1, typename A2, + detail::enable_if_t<std::is_constructible<detail::input_adapter, A1, A2>::value, int> = 0> + JSON_NODISCARD + static basic_json from_ubjson(A1 && a1, A2 && a2, + const bool strict = true, + const bool allow_exceptions = true) + { + basic_json result; + detail::json_sax_dom_parser<basic_json> sdp(result, allow_exceptions); + const bool res = binary_reader(detail::input_adapter(std::forward<A1>(a1), std::forward<A2>(a2))).sax_parse(input_format_t::ubjson, &sdp, strict); + return res ? result : basic_json(value_t::discarded); + } + + /*! + @brief Create a JSON value from an input in BSON format + + Deserializes a given input @a i to a JSON value using the BSON (Binary JSON) + serialization format. + + The library maps BSON record types to JSON value types as follows: + + BSON type | BSON marker byte | JSON value type + --------------- | ---------------- | --------------------------- + double | 0x01 | number_float + string | 0x02 | string + document | 0x03 | object + array | 0x04 | array + binary | 0x05 | still unsupported + undefined | 0x06 | still unsupported + ObjectId | 0x07 | still unsupported + boolean | 0x08 | boolean + UTC Date-Time | 0x09 | still unsupported + null | 0x0A | null + Regular Expr. | 0x0B | still unsupported + DB Pointer | 0x0C | still unsupported + JavaScript Code | 0x0D | still unsupported + Symbol | 0x0E | still unsupported + JavaScript Code | 0x0F | still unsupported + int32 | 0x10 | number_integer + Timestamp | 0x11 | still unsupported + 128-bit decimal float | 0x13 | still unsupported + Max Key | 0x7F | still unsupported + Min Key | 0xFF | still unsupported + + @warning The mapping is **incomplete**. The unsupported mappings + are indicated in the table above. + + @param[in] i an input in BSON format convertible to an input adapter + @param[in] strict whether to expect the input to be consumed until EOF + (true by default) + @param[in] allow_exceptions whether to throw exceptions in case of a + parse error (optional, true by default) + + @return deserialized JSON value; in case of a parse error and + @a allow_exceptions set to `false`, the return value will be + value_t::discarded. + + @throw parse_error.114 if an unsupported BSON record type is encountered + + @complexity Linear in the size of the input @a i. + + @liveexample{The example shows the deserialization of a byte vector in + BSON format to a JSON value.,from_bson} + + @sa http://bsonspec.org/spec.html + @sa @ref to_bson(const basic_json&) for the analogous serialization + @sa @ref from_cbor(detail::input_adapter&&, const bool, const bool) for the + related CBOR format + @sa @ref from_msgpack(detail::input_adapter&&, const bool, const bool) for + the related MessagePack format + @sa @ref from_ubjson(detail::input_adapter&&, const bool, const bool) for the + related UBJSON format + */ + JSON_NODISCARD + static basic_json from_bson(detail::input_adapter&& i, + const bool strict = true, + const bool allow_exceptions = true) + { + basic_json result; + detail::json_sax_dom_parser<basic_json> sdp(result, allow_exceptions); + const bool res = binary_reader(detail::input_adapter(i)).sax_parse(input_format_t::bson, &sdp, strict); + return res ? result : basic_json(value_t::discarded); + } + + /*! + @copydoc from_bson(detail::input_adapter&&, const bool, const bool) + */ + template<typename A1, typename A2, + detail::enable_if_t<std::is_constructible<detail::input_adapter, A1, A2>::value, int> = 0> + JSON_NODISCARD + static basic_json from_bson(A1 && a1, A2 && a2, + const bool strict = true, + const bool allow_exceptions = true) + { + basic_json result; + detail::json_sax_dom_parser<basic_json> sdp(result, allow_exceptions); + const bool res = binary_reader(detail::input_adapter(std::forward<A1>(a1), std::forward<A2>(a2))).sax_parse(input_format_t::bson, &sdp, strict); + return res ? result : basic_json(value_t::discarded); + } + + + + /// @} + + ////////////////////////// + // JSON Pointer support // + ////////////////////////// + + /// @name JSON Pointer functions + /// @{ + + /*! + @brief access specified element via JSON Pointer + + Uses a JSON pointer to retrieve a reference to the respective JSON value. + No bound checking is performed. Similar to @ref operator[](const typename + object_t::key_type&), `null` values are created in arrays and objects if + necessary. + + In particular: + - If the JSON pointer points to an object key that does not exist, it + is created an filled with a `null` value before a reference to it + is returned. + - If the JSON pointer points to an array index that does not exist, it + is created an filled with a `null` value before a reference to it + is returned. All indices between the current maximum and the given + index are also filled with `null`. + - The special value `-` is treated as a synonym for the index past the + end. + + @param[in] ptr a JSON pointer + + @return reference to the element pointed to by @a ptr + + @complexity Constant. + + @throw parse_error.106 if an array index begins with '0' + @throw parse_error.109 if an array index was not a number + @throw out_of_range.404 if the JSON pointer can not be resolved + + @liveexample{The behavior is shown in the example.,operatorjson_pointer} + + @since version 2.0.0 + */ + reference operator[](const json_pointer& ptr) + { + return ptr.get_unchecked(this); + } + + /*! + @brief access specified element via JSON Pointer + + Uses a JSON pointer to retrieve a reference to the respective JSON value. + No bound checking is performed. The function does not change the JSON + value; no `null` values are created. In particular, the the special value + `-` yields an exception. + + @param[in] ptr JSON pointer to the desired element + + @return const reference to the element pointed to by @a ptr + + @complexity Constant. + + @throw parse_error.106 if an array index begins with '0' + @throw parse_error.109 if an array index was not a number + @throw out_of_range.402 if the array index '-' is used + @throw out_of_range.404 if the JSON pointer can not be resolved + + @liveexample{The behavior is shown in the example.,operatorjson_pointer_const} + + @since version 2.0.0 + */ + const_reference operator[](const json_pointer& ptr) const + { + return ptr.get_unchecked(this); + } + + /*! + @brief access specified element via JSON Pointer + + Returns a reference to the element at with specified JSON pointer @a ptr, + with bounds checking. + + @param[in] ptr JSON pointer to the desired element + + @return reference to the element pointed to by @a ptr + + @throw parse_error.106 if an array index in the passed JSON pointer @a ptr + begins with '0'. See example below. + + @throw parse_error.109 if an array index in the passed JSON pointer @a ptr + is not a number. See example below. + + @throw out_of_range.401 if an array index in the passed JSON pointer @a ptr + is out of range. See example below. + + @throw out_of_range.402 if the array index '-' is used in the passed JSON + pointer @a ptr. As `at` provides checked access (and no elements are + implicitly inserted), the index '-' is always invalid. See example below. + + @throw out_of_range.403 if the JSON pointer describes a key of an object + which cannot be found. See example below. + + @throw out_of_range.404 if the JSON pointer @a ptr can not be resolved. + See example below. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes in the JSON value. + + @complexity Constant. + + @since version 2.0.0 + + @liveexample{The behavior is shown in the example.,at_json_pointer} + */ + reference at(const json_pointer& ptr) + { + return ptr.get_checked(this); + } + + /*! + @brief access specified element via JSON Pointer + + Returns a const reference to the element at with specified JSON pointer @a + ptr, with bounds checking. + + @param[in] ptr JSON pointer to the desired element + + @return reference to the element pointed to by @a ptr + + @throw parse_error.106 if an array index in the passed JSON pointer @a ptr + begins with '0'. See example below. + + @throw parse_error.109 if an array index in the passed JSON pointer @a ptr + is not a number. See example below. + + @throw out_of_range.401 if an array index in the passed JSON pointer @a ptr + is out of range. See example below. + + @throw out_of_range.402 if the array index '-' is used in the passed JSON + pointer @a ptr. As `at` provides checked access (and no elements are + implicitly inserted), the index '-' is always invalid. See example below. + + @throw out_of_range.403 if the JSON pointer describes a key of an object + which cannot be found. See example below. + + @throw out_of_range.404 if the JSON pointer @a ptr can not be resolved. + See example below. + + @exceptionsafety Strong guarantee: if an exception is thrown, there are no + changes in the JSON value. + + @complexity Constant. + + @since version 2.0.0 + + @liveexample{The behavior is shown in the example.,at_json_pointer_const} + */ + const_reference at(const json_pointer& ptr) const + { + return ptr.get_checked(this); + } + + /*! + @brief return flattened JSON value + + The function creates a JSON object whose keys are JSON pointers (see [RFC + 6901](https://tools.ietf.org/html/rfc6901)) and whose values are all + primitive. The original JSON value can be restored using the @ref + unflatten() function. + + @return an object that maps JSON pointers to primitive values + + @note Empty objects and arrays are flattened to `null` and will not be + reconstructed correctly by the @ref unflatten() function. + + @complexity Linear in the size the JSON value. + + @liveexample{The following code shows how a JSON object is flattened to an + object whose keys consist of JSON pointers.,flatten} + + @sa @ref unflatten() for the reverse function + + @since version 2.0.0 + */ + basic_json flatten() const + { + basic_json result(value_t::object); + json_pointer::flatten("", *this, result); + return result; + } + + /*! + @brief unflatten a previously flattened JSON value + + The function restores the arbitrary nesting of a JSON value that has been + flattened before using the @ref flatten() function. The JSON value must + meet certain constraints: + 1. The value must be an object. + 2. The keys must be JSON pointers (see + [RFC 6901](https://tools.ietf.org/html/rfc6901)) + 3. The mapped values must be primitive JSON types. + + @return the original JSON from a flattened version + + @note Empty objects and arrays are flattened by @ref flatten() to `null` + values and can not unflattened to their original type. Apart from + this example, for a JSON value `j`, the following is always true: + `j == j.flatten().unflatten()`. + + @complexity Linear in the size the JSON value. + + @throw type_error.314 if value is not an object + @throw type_error.315 if object values are not primitive + + @liveexample{The following code shows how a flattened JSON object is + unflattened into the original nested JSON object.,unflatten} + + @sa @ref flatten() for the reverse function + + @since version 2.0.0 + */ + basic_json unflatten() const + { + return json_pointer::unflatten(*this); + } + + /// @} + + ////////////////////////// + // JSON Patch functions // + ////////////////////////// + + /// @name JSON Patch functions + /// @{ + + /*! + @brief applies a JSON patch + + [JSON Patch](http://jsonpatch.com) defines a JSON document structure for + expressing a sequence of operations to apply to a JSON) document. With + this function, a JSON Patch is applied to the current JSON value by + executing all operations from the patch. + + @param[in] json_patch JSON patch document + @return patched document + + @note The application of a patch is atomic: Either all operations succeed + and the patched document is returned or an exception is thrown. In + any case, the original value is not changed: the patch is applied + to a copy of the value. + + @throw parse_error.104 if the JSON patch does not consist of an array of + objects + + @throw parse_error.105 if the JSON patch is malformed (e.g., mandatory + attributes are missing); example: `"operation add must have member path"` + + @throw out_of_range.401 if an array index is out of range. + + @throw out_of_range.403 if a JSON pointer inside the patch could not be + resolved successfully in the current JSON value; example: `"key baz not + found"` + + @throw out_of_range.405 if JSON pointer has no parent ("add", "remove", + "move") + + @throw other_error.501 if "test" operation was unsuccessful + + @complexity Linear in the size of the JSON value and the length of the + JSON patch. As usually only a fraction of the JSON value is affected by + the patch, the complexity can usually be neglected. + + @liveexample{The following code shows how a JSON patch is applied to a + value.,patch} + + @sa @ref diff -- create a JSON patch by comparing two JSON values + + @sa [RFC 6902 (JSON Patch)](https://tools.ietf.org/html/rfc6902) + @sa [RFC 6901 (JSON Pointer)](https://tools.ietf.org/html/rfc6901) + + @since version 2.0.0 + */ + basic_json patch(const basic_json& json_patch) const + { + // make a working copy to apply the patch to + basic_json result = *this; + + // the valid JSON Patch operations + enum class patch_operations {add, remove, replace, move, copy, test, invalid}; + + const auto get_op = [](const std::string & op) + { + if (op == "add") + { + return patch_operations::add; + } + if (op == "remove") + { + return patch_operations::remove; + } + if (op == "replace") + { + return patch_operations::replace; + } + if (op == "move") + { + return patch_operations::move; + } + if (op == "copy") + { + return patch_operations::copy; + } + if (op == "test") + { + return patch_operations::test; + } + + return patch_operations::invalid; + }; + + // wrapper for "add" operation; add value at ptr + const auto operation_add = [&result](json_pointer & ptr, basic_json val) + { + // adding to the root of the target document means replacing it + if (ptr.empty()) + { + result = val; + return; + } + + // make sure the top element of the pointer exists + json_pointer top_pointer = ptr.top(); + if (top_pointer != ptr) + { + result.at(top_pointer); + } + + // get reference to parent of JSON pointer ptr + const auto last_path = ptr.back(); + ptr.pop_back(); + basic_json& parent = result[ptr]; + + switch (parent.m_type) + { + case value_t::null: + case value_t::object: + { + // use operator[] to add value + parent[last_path] = val; + break; + } + + case value_t::array: + { + if (last_path == "-") + { + // special case: append to back + parent.push_back(val); + } + else + { + const auto idx = json_pointer::array_index(last_path); + if (JSON_UNLIKELY(static_cast<size_type>(idx) > parent.size())) + { + // avoid undefined behavior + JSON_THROW(out_of_range::create(401, "array index " + std::to_string(idx) + " is out of range")); + } + + // default case: insert add offset + parent.insert(parent.begin() + static_cast<difference_type>(idx), val); + } + break; + } + + // if there exists a parent it cannot be primitive + default: // LCOV_EXCL_LINE + assert(false); // LCOV_EXCL_LINE + } + }; + + // wrapper for "remove" operation; remove value at ptr + const auto operation_remove = [&result](json_pointer & ptr) + { + // get reference to parent of JSON pointer ptr + const auto last_path = ptr.back(); + ptr.pop_back(); + basic_json& parent = result.at(ptr); + + // remove child + if (parent.is_object()) + { + // perform range check + auto it = parent.find(last_path); + if (JSON_LIKELY(it != parent.end())) + { + parent.erase(it); + } + else + { + JSON_THROW(out_of_range::create(403, "key '" + last_path + "' not found")); + } + } + else if (parent.is_array()) + { + // note erase performs range check + parent.erase(static_cast<size_type>(json_pointer::array_index(last_path))); + } + }; + + // type check: top level value must be an array + if (JSON_UNLIKELY(not json_patch.is_array())) + { + JSON_THROW(parse_error::create(104, 0, "JSON patch must be an array of objects")); + } + + // iterate and apply the operations + for (const auto& val : json_patch) + { + // wrapper to get a value for an operation + const auto get_value = [&val](const std::string & op, + const std::string & member, + bool string_type) -> basic_json & + { + // find value + auto it = val.m_value.object->find(member); + + // context-sensitive error message + const auto error_msg = (op == "op") ? "operation" : "operation '" + op + "'"; + + // check if desired value is present + if (JSON_UNLIKELY(it == val.m_value.object->end())) + { + JSON_THROW(parse_error::create(105, 0, error_msg + " must have member '" + member + "'")); + } + + // check if result is of type string + if (JSON_UNLIKELY(string_type and not it->second.is_string())) + { + JSON_THROW(parse_error::create(105, 0, error_msg + " must have string member '" + member + "'")); + } + + // no error: return value + return it->second; + }; + + // type check: every element of the array must be an object + if (JSON_UNLIKELY(not val.is_object())) + { + JSON_THROW(parse_error::create(104, 0, "JSON patch must be an array of objects")); + } + + // collect mandatory members + const std::string op = get_value("op", "op", true); + const std::string path = get_value(op, "path", true); + json_pointer ptr(path); + + switch (get_op(op)) + { + case patch_operations::add: + { + operation_add(ptr, get_value("add", "value", false)); + break; + } + + case patch_operations::remove: + { + operation_remove(ptr); + break; + } + + case patch_operations::replace: + { + // the "path" location must exist - use at() + result.at(ptr) = get_value("replace", "value", false); + break; + } + + case patch_operations::move: + { + const std::string from_path = get_value("move", "from", true); + json_pointer from_ptr(from_path); + + // the "from" location must exist - use at() + basic_json v = result.at(from_ptr); + + // The move operation is functionally identical to a + // "remove" operation on the "from" location, followed + // immediately by an "add" operation at the target + // location with the value that was just removed. + operation_remove(from_ptr); + operation_add(ptr, v); + break; + } + + case patch_operations::copy: + { + const std::string from_path = get_value("copy", "from", true); + const json_pointer from_ptr(from_path); + + // the "from" location must exist - use at() + basic_json v = result.at(from_ptr); + + // The copy is functionally identical to an "add" + // operation at the target location using the value + // specified in the "from" member. + operation_add(ptr, v); + break; + } + + case patch_operations::test: + { + bool success = false; + JSON_TRY + { + // check if "value" matches the one at "path" + // the "path" location must exist - use at() + success = (result.at(ptr) == get_value("test", "value", false)); + } + JSON_INTERNAL_CATCH (out_of_range&) + { + // ignore out of range errors: success remains false + } + + // throw an exception if test fails + if (JSON_UNLIKELY(not success)) + { + JSON_THROW(other_error::create(501, "unsuccessful: " + val.dump())); + } + + break; + } + + default: + { + // op must be "add", "remove", "replace", "move", "copy", or + // "test" + JSON_THROW(parse_error::create(105, 0, "operation value '" + op + "' is invalid")); + } + } + } + + return result; + } + + /*! + @brief creates a diff as a JSON patch + + Creates a [JSON Patch](http://jsonpatch.com) so that value @a source can + be changed into the value @a target by calling @ref patch function. + + @invariant For two JSON values @a source and @a target, the following code + yields always `true`: + @code {.cpp} + source.patch(diff(source, target)) == target; + @endcode + + @note Currently, only `remove`, `add`, and `replace` operations are + generated. + + @param[in] source JSON value to compare from + @param[in] target JSON value to compare against + @param[in] path helper value to create JSON pointers + + @return a JSON patch to convert the @a source to @a target + + @complexity Linear in the lengths of @a source and @a target. + + @liveexample{The following code shows how a JSON patch is created as a + diff for two JSON values.,diff} + + @sa @ref patch -- apply a JSON patch + @sa @ref merge_patch -- apply a JSON Merge Patch + + @sa [RFC 6902 (JSON Patch)](https://tools.ietf.org/html/rfc6902) + + @since version 2.0.0 + */ + JSON_NODISCARD + static basic_json diff(const basic_json& source, const basic_json& target, + const std::string& path = "") + { + // the patch + basic_json result(value_t::array); + + // if the values are the same, return empty patch + if (source == target) + { + return result; + } + + if (source.type() != target.type()) + { + // different types: replace value + result.push_back( + { + {"op", "replace"}, {"path", path}, {"value", target} + }); + return result; + } + + switch (source.type()) + { + case value_t::array: + { + // first pass: traverse common elements + std::size_t i = 0; + while (i < source.size() and i < target.size()) + { + // recursive call to compare array values at index i + auto temp_diff = diff(source[i], target[i], path + "/" + std::to_string(i)); + result.insert(result.end(), temp_diff.begin(), temp_diff.end()); + ++i; + } + + // i now reached the end of at least one array + // in a second pass, traverse the remaining elements + + // remove my remaining elements + const auto end_index = static_cast<difference_type>(result.size()); + while (i < source.size()) + { + // add operations in reverse order to avoid invalid + // indices + result.insert(result.begin() + end_index, object( + { + {"op", "remove"}, + {"path", path + "/" + std::to_string(i)} + })); + ++i; + } + + // add other remaining elements + while (i < target.size()) + { + result.push_back( + { + {"op", "add"}, + {"path", path + "/" + std::to_string(i)}, + {"value", target[i]} + }); + ++i; + } + + break; + } + + case value_t::object: + { + // first pass: traverse this object's elements + for (auto it = source.cbegin(); it != source.cend(); ++it) + { + // escape the key name to be used in a JSON patch + const auto key = json_pointer::escape(it.key()); + + if (target.find(it.key()) != target.end()) + { + // recursive call to compare object values at key it + auto temp_diff = diff(it.value(), target[it.key()], path + "/" + key); + result.insert(result.end(), temp_diff.begin(), temp_diff.end()); + } + else + { + // found a key that is not in o -> remove it + result.push_back(object( + { + {"op", "remove"}, {"path", path + "/" + key} + })); + } + } + + // second pass: traverse other object's elements + for (auto it = target.cbegin(); it != target.cend(); ++it) + { + if (source.find(it.key()) == source.end()) + { + // found a key that is not in this -> add it + const auto key = json_pointer::escape(it.key()); + result.push_back( + { + {"op", "add"}, {"path", path + "/" + key}, + {"value", it.value()} + }); + } + } + + break; + } + + default: + { + // both primitive type: replace value + result.push_back( + { + {"op", "replace"}, {"path", path}, {"value", target} + }); + break; + } + } + + return result; + } + + /// @} + + //////////////////////////////// + // JSON Merge Patch functions // + //////////////////////////////// + + /// @name JSON Merge Patch functions + /// @{ + + /*! + @brief applies a JSON Merge Patch + + The merge patch format is primarily intended for use with the HTTP PATCH + method as a means of describing a set of modifications to a target + resource's content. This function applies a merge patch to the current + JSON value. + + The function implements the following algorithm from Section 2 of + [RFC 7396 (JSON Merge Patch)](https://tools.ietf.org/html/rfc7396): + + ``` + define MergePatch(Target, Patch): + if Patch is an Object: + if Target is not an Object: + Target = {} // Ignore the contents and set it to an empty Object + for each Name/Value pair in Patch: + if Value is null: + if Name exists in Target: + remove the Name/Value pair from Target + else: + Target[Name] = MergePatch(Target[Name], Value) + return Target + else: + return Patch + ``` + + Thereby, `Target` is the current object; that is, the patch is applied to + the current value. + + @param[in] apply_patch the patch to apply + + @complexity Linear in the lengths of @a patch. + + @liveexample{The following code shows how a JSON Merge Patch is applied to + a JSON document.,merge_patch} + + @sa @ref patch -- apply a JSON patch + @sa [RFC 7396 (JSON Merge Patch)](https://tools.ietf.org/html/rfc7396) + + @since version 3.0.0 + */ + void merge_patch(const basic_json& apply_patch) + { + if (apply_patch.is_object()) + { + if (not is_object()) + { + *this = object(); + } + for (auto it = apply_patch.begin(); it != apply_patch.end(); ++it) + { + if (it.value().is_null()) + { + erase(it.key()); + } + else + { + operator[](it.key()).merge_patch(it.value()); + } + } + } + else + { + *this = apply_patch; + } + } + + /// @} +}; +} // namespace nlohmann + +/////////////////////// +// nonmember support // +/////////////////////// + +// specialization of std::swap, and std::hash +namespace std +{ + +/// hash value for JSON objects +template<> +struct hash<nlohmann::json> +{ + /*! + @brief return a hash value for a JSON object + + @since version 1.0.0 + */ + std::size_t operator()(const nlohmann::json& j) const + { + // a naive hashing via the string representation + const auto& h = hash<nlohmann::json::string_t>(); + return h(j.dump()); + } +}; + +/// specialization for std::less<value_t> +/// @note: do not remove the space after '<', +/// see https://github.com/nlohmann/json/pull/679 +template<> +struct less< ::nlohmann::detail::value_t> +{ + /*! + @brief compare two value_t enum values + @since version 3.0.0 + */ + bool operator()(nlohmann::detail::value_t lhs, + nlohmann::detail::value_t rhs) const noexcept + { + return nlohmann::detail::operator<(lhs, rhs); + } +}; + +/*! +@brief exchanges the values of two JSON objects + +@since version 1.0.0 +*/ +template<> +inline void swap<nlohmann::json>(nlohmann::json& j1, nlohmann::json& j2) noexcept( + is_nothrow_move_constructible<nlohmann::json>::value and + is_nothrow_move_assignable<nlohmann::json>::value +) +{ + j1.swap(j2); +} + +} // namespace std + +/*! +@brief user-defined string literal for JSON values + +This operator implements a user-defined string literal for JSON objects. It +can be used by adding `"_json"` to a string literal and returns a JSON object +if no parse error occurred. + +@param[in] s a string representation of a JSON object +@param[in] n the length of string @a s +@return a JSON object + +@since version 1.0.0 +*/ +inline nlohmann::json operator "" _json(const char* s, std::size_t n) +{ + return nlohmann::json::parse(s, s + n); +} + +/*! +@brief user-defined string literal for JSON pointer + +This operator implements a user-defined string literal for JSON Pointers. It +can be used by adding `"_json_pointer"` to a string literal and returns a JSON pointer +object if no parse error occurred. + +@param[in] s a string representation of a JSON Pointer +@param[in] n the length of string @a s +@return a JSON pointer object + +@since version 2.0.0 +*/ +inline nlohmann::json::json_pointer operator "" _json_pointer(const char* s, std::size_t n) +{ + return nlohmann::json::json_pointer(std::string(s, n)); +} + +// #include <nlohmann/detail/macro_unscope.hpp> + + +// restore GCC/clang diagnostic settings +#if defined(__clang__) || defined(__GNUC__) || defined(__GNUG__) + #pragma GCC diagnostic pop +#endif +#if defined(__clang__) + #pragma GCC diagnostic pop +#endif + +// clean up +#undef JSON_INTERNAL_CATCH +#undef JSON_CATCH +#undef JSON_THROW +#undef JSON_TRY +#undef JSON_LIKELY +#undef JSON_UNLIKELY +#undef JSON_DEPRECATED +#undef JSON_NODISCARD +#undef JSON_HAS_CPP_14 +#undef JSON_HAS_CPP_17 +#undef NLOHMANN_BASIC_JSON_TPL_DECLARATION +#undef NLOHMANN_BASIC_JSON_TPL + + +#endif // INCLUDE_NLOHMANN_JSON_HPP_ diff --git a/tools/mwasmarm_patcher/Makefile b/tools/mwasmarm_patcher/Makefile index df3f5c20..1e89832e 100644 --- a/tools/mwasmarm_patcher/Makefile +++ b/tools/mwasmarm_patcher/Makefile @@ -3,9 +3,12 @@ CC := gcc
CFLAGS := -O3
+.PHONY: all clean
+
all: mwasmarm_patcher
+ @
-clean: ; rm -f mwasmarm_patcher$(EXE)
+clean: ; $(RM) mwasmarm_patcher$(EXE)
mwasmarm_patcher: mwasmarm_patcher.c
$(CC) $(CFLAGS) -o $@ $<
diff --git a/tools/nitrogfx/.gitignore b/tools/nitrogfx/.gitignore new file mode 100644 index 00000000..4379fab8 --- /dev/null +++ b/tools/nitrogfx/.gitignore @@ -0,0 +1 @@ +nitrogfx diff --git a/tools/nitrogfx/LICENSE b/tools/nitrogfx/LICENSE new file mode 100644 index 00000000..b66bf81c --- /dev/null +++ b/tools/nitrogfx/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2015 YamaArashi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/tools/nitrogfx/Makefile b/tools/nitrogfx/Makefile new file mode 100644 index 00000000..5b75d652 --- /dev/null +++ b/tools/nitrogfx/Makefile @@ -0,0 +1,21 @@ +CC = gcc + +CFLAGS = -Wall -Wextra -Werror -Wno-sign-compare -std=c11 -O2 -DPNG_SKIP_SETJMP_CHECK + +LIBS = -lpng -lz + +SRCS = main.c convert_png.c gfx.c jasc_pal.c lz.c rl.c util.c font.c huff.c + +.PHONY: all clean + +all: nitrogfx + @: + +nitrogfx-debug: $(SRCS) convert_png.h gfx.h global.h jasc_pal.h lz.h rl.h util.h font.h + $(CC) $(CFLAGS) -DDEBUG $(SRCS) -o $@ $(LDFLAGS) $(LIBS) + +nitrogfx: $(SRCS) convert_png.h gfx.h global.h jasc_pal.h lz.h rl.h util.h font.h + $(CC) $(CFLAGS) $(SRCS) -o $@ $(LDFLAGS) $(LIBS) + +clean: + $(RM) nitrogfx nitrogfx.exe diff --git a/tools/nitrogfx/convert_png.c b/tools/nitrogfx/convert_png.c new file mode 100644 index 00000000..cdfa39a7 --- /dev/null +++ b/tools/nitrogfx/convert_png.c @@ -0,0 +1,254 @@ +// Copyright (c) 2015 YamaArashi + +#include <stdio.h> +#include <setjmp.h> +#include <png.h> +#include "global.h" +#include "convert_png.h" +#include "gfx.h" + +static FILE *PngReadOpen(char *path, png_structp *pngStruct, png_infop *pngInfo) +{ + FILE *fp = fopen(path, "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for reading.\n", path); + + unsigned char sig[8]; + + if (fread(sig, 8, 1, fp) != 1) + FATAL_ERROR("Failed to read PNG signature from \"%s\".\n", path); + + if (png_sig_cmp(sig, 0, 8)) + FATAL_ERROR("\"%s\" does not have a valid PNG signature.\n", path); + + png_structp png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); + + if (!png_ptr) + FATAL_ERROR("Failed to create PNG read struct.\n"); + + png_infop info_ptr = png_create_info_struct(png_ptr); + + if (!info_ptr) + FATAL_ERROR("Failed to create PNG info struct.\n"); + + if (setjmp(png_jmpbuf(png_ptr))) + FATAL_ERROR("Failed to init I/O for reading \"%s\".\n", path); + + png_init_io(png_ptr, fp); + png_set_sig_bytes(png_ptr, 8); + png_read_info(png_ptr, info_ptr); + + *pngStruct = png_ptr; + *pngInfo = info_ptr; + + return fp; +} + +static unsigned char *ConvertBitDepth(unsigned char *src, int srcBitDepth, int destBitDepth, int numPixels) +{ + // Round the number of bits up to the next 8 and divide by 8 to get the number of bytes. + int srcSize = ((numPixels * srcBitDepth + 7) & ~7) / 8; + int destSize = ((numPixels * destBitDepth + 7) & ~7) / 8; + unsigned char *output = calloc(destSize, 1); + unsigned char *dest = output; + int i; + int j; + int destBit = 8 - destBitDepth; + + for (i = 0; i < srcSize; i++) + { + unsigned char srcByte = src[i]; + + for (j = 8 - srcBitDepth; j >= 0; j -= srcBitDepth) + { + unsigned char pixel = (srcByte >> j) % (1 << srcBitDepth); + + if (pixel >= (1 << destBitDepth)) + FATAL_ERROR("Image exceeds the maximum color value for a %ibpp image.\n", destBitDepth); + *dest |= pixel << destBit; + destBit -= destBitDepth; + if (destBit < 0) + { + dest++; + destBit = 8 - destBitDepth; + } + } + } + + return output; +} + +void ReadPng(char *path, struct Image *image) +{ + png_structp png_ptr; + png_infop info_ptr; + + FILE *fp = PngReadOpen(path, &png_ptr, &info_ptr); + + int bit_depth = png_get_bit_depth(png_ptr, info_ptr); + + int color_type = png_get_color_type(png_ptr, info_ptr); + + if (color_type != PNG_COLOR_TYPE_GRAY && color_type != PNG_COLOR_TYPE_PALETTE) + FATAL_ERROR("\"%s\" has an unsupported color type.\n", path); + + // Check if the image has a palette so that we can tell if the colors need to be inverted later. + // Don't read the palette because it's not needed for now. + image->hasPalette = (color_type == PNG_COLOR_TYPE_PALETTE); + + image->width = png_get_image_width(png_ptr, info_ptr); + image->height = png_get_image_height(png_ptr, info_ptr); + + int rowbytes = png_get_rowbytes(png_ptr, info_ptr); + + image->pixels = malloc(image->height * rowbytes); + + if (image->pixels == NULL) + FATAL_ERROR("Failed to allocate pixel buffer.\n"); + + png_bytepp row_pointers = malloc(image->height * sizeof(png_bytep)); + + if (row_pointers == NULL) + FATAL_ERROR("Failed to allocate row pointers.\n"); + + for (int i = 0; i < image->height; i++) + row_pointers[i] = (png_bytep)(image->pixels + (i * rowbytes)); + + if (setjmp(png_jmpbuf(png_ptr))) + FATAL_ERROR("Error reading from \"%s\".\n", path); + + png_read_image(png_ptr, row_pointers); + + png_destroy_read_struct(&png_ptr, &info_ptr, NULL); + + free(row_pointers); + fclose(fp); + + if (bit_depth != image->bitDepth) + { + unsigned char *src = image->pixels; + + if (bit_depth != 1 && bit_depth != 2 && bit_depth != 4 && bit_depth != 8) + FATAL_ERROR("Bit depth of image must be 1, 2, 4, or 8.\n"); + image->pixels = ConvertBitDepth(image->pixels, bit_depth, image->bitDepth, image->width * image->height); + free(src); + image->bitDepth = bit_depth; + } +} + +void ReadPngPalette(char *path, struct Palette *palette) +{ + png_structp png_ptr; + png_infop info_ptr; + png_colorp colors; + int numColors; + + FILE *fp = PngReadOpen(path, &png_ptr, &info_ptr); + + if (png_get_color_type(png_ptr, info_ptr) != PNG_COLOR_TYPE_PALETTE) + FATAL_ERROR("The image \"%s\" does not contain a palette.\n", path); + + if (png_get_PLTE(png_ptr, info_ptr, &colors, &numColors) != PNG_INFO_PLTE) + FATAL_ERROR("Failed to retrieve palette from \"%s\".\n", path); + + if (numColors > 256) + FATAL_ERROR("Images with more than 256 colors are not supported.\n"); + + palette->numColors = numColors; + for (int i = 0; i < numColors; i++) { + palette->colors[i].red = colors[i].red; + palette->colors[i].green = colors[i].green; + palette->colors[i].blue = colors[i].blue; + } + + png_destroy_read_struct(&png_ptr, &info_ptr, NULL); + + fclose(fp); +} + +void SetPngPalette(png_structp png_ptr, png_infop info_ptr, struct Palette *palette) +{ + png_colorp colors = malloc(palette->numColors * sizeof(png_color)); + + if (colors == NULL) + FATAL_ERROR("Failed to allocate PNG palette.\n"); + + for (int i = 0; i < palette->numColors; i++) { + colors[i].red = palette->colors[i].red; + colors[i].green = palette->colors[i].green; + colors[i].blue = palette->colors[i].blue; + } + + png_set_PLTE(png_ptr, info_ptr, colors, palette->numColors); + + free(colors); +} + +void WritePng(char *path, struct Image *image) +{ + FILE *fp = fopen(path, "wb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for writing.\n", path); + + png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); + + if (!png_ptr) + FATAL_ERROR("Failed to create PNG write struct.\n"); + + png_infop info_ptr = png_create_info_struct(png_ptr); + + if (!info_ptr) + FATAL_ERROR("Failed to create PNG info struct.\n"); + + if (setjmp(png_jmpbuf(png_ptr))) + FATAL_ERROR("Failed to init I/O for writing \"%s\".\n", path); + + png_init_io(png_ptr, fp); + + if (setjmp(png_jmpbuf(png_ptr))) + FATAL_ERROR("Error writing header for \"%s\".\n", path); + + int color_type = image->hasPalette ? PNG_COLOR_TYPE_PALETTE : PNG_COLOR_TYPE_GRAY; + + png_set_IHDR(png_ptr, info_ptr, image->width, image->height, + image->bitDepth, color_type, PNG_INTERLACE_NONE, + PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE); + + if (image->hasPalette) { + SetPngPalette(png_ptr, info_ptr, &image->palette); + + if (image->hasTransparency) { + png_byte trans = 0; + png_set_tRNS(png_ptr, info_ptr, &trans, 1, 0); + } + } + + png_write_info(png_ptr, info_ptr); + + png_bytepp row_pointers = malloc(image->height * sizeof(png_bytep)); + + if (row_pointers == NULL) + FATAL_ERROR("Failed to allocate row pointers.\n"); + + int rowbytes = png_get_rowbytes(png_ptr, info_ptr); + + for (int i = 0; i < image->height; i++) + row_pointers[i] = (png_bytep)(image->pixels + (i * rowbytes)); + + if (setjmp(png_jmpbuf(png_ptr))) + FATAL_ERROR("Error writing \"%s\".\n", path); + + png_write_image(png_ptr, row_pointers); + + if (setjmp(png_jmpbuf(png_ptr))) + FATAL_ERROR("Error ending write of \"%s\".\n", path); + + png_write_end(png_ptr, NULL); + + fclose(fp); + + png_destroy_write_struct(&png_ptr, &info_ptr); + free(row_pointers); +} diff --git a/tools/nitrogfx/convert_png.h b/tools/nitrogfx/convert_png.h new file mode 100644 index 00000000..caf081b7 --- /dev/null +++ b/tools/nitrogfx/convert_png.h @@ -0,0 +1,12 @@ +// Copyright (c) 2015 YamaArashi + +#ifndef CONVERT_PNG_H +#define CONVERT_PNG_H + +#include "gfx.h" + +void ReadPng(char *path, struct Image *image); +void WritePng(char *path, struct Image *image); +void ReadPngPalette(char *path, struct Palette *palette); + +#endif // CONVERT_PNG_H diff --git a/tools/nitrogfx/font.c b/tools/nitrogfx/font.c new file mode 100644 index 00000000..0dd6fbc3 --- /dev/null +++ b/tools/nitrogfx/font.c @@ -0,0 +1,326 @@ +// Copyright (c) 2015 YamaArashi + +#include <stdio.h> +#include <stdlib.h> +#include <stdint.h> +#include <stdbool.h> +#include "global.h" +#include "font.h" +#include "gfx.h" +#include "util.h" + +unsigned char gFontPalette[][3] = { + {0x90, 0xC8, 0xFF}, // bg (saturated blue that contrasts well with the shadow color) + {0x38, 0x38, 0x38}, // fg (dark grey) + {0xD8, 0xD8, 0xD8}, // shadow (light grey) + {0xFF, 0xFF, 0xFF} // box (white) +}; + +static void ConvertFromLatinFont(unsigned char *src, unsigned char *dest, unsigned int numRows) +{ + unsigned int srcPixelsOffset = 0; + + for (unsigned int row = 0; row < numRows; row++) { + for (unsigned int column = 0; column < 16; column++) { + for (unsigned int glyphTile = 0; glyphTile < 4; glyphTile++) { + unsigned int pixelsX = (column * 16) + ((glyphTile & 1) * 8); + + for (unsigned int i = 0; i < 8; i++) { + unsigned int pixelsY = (row * 16) + ((glyphTile >> 1) * 8) + i; + unsigned int destPixelsOffset = (pixelsY * 64) + (pixelsX / 4); + + dest[destPixelsOffset] = src[srcPixelsOffset + 1]; + dest[destPixelsOffset + 1] = src[srcPixelsOffset]; + + srcPixelsOffset += 2; + } + } + } + } +} + +static void ConvertToLatinFont(unsigned char *src, unsigned char *dest, unsigned int numRows) +{ + unsigned int destPixelsOffset = 0; + + for (unsigned int row = 0; row < numRows; row++) { + for (unsigned int column = 0; column < 16; column++) { + for (unsigned int glyphTile = 0; glyphTile < 4; glyphTile++) { + unsigned int pixelsX = (column * 16) + ((glyphTile & 1) * 8); + + for (unsigned int i = 0; i < 8; i++) { + unsigned int pixelsY = (row * 16) + ((glyphTile >> 1) * 8) + i; + unsigned int srcPixelsOffset = (pixelsY * 64) + (pixelsX / 4); + + dest[destPixelsOffset] = src[srcPixelsOffset + 1]; + dest[destPixelsOffset + 1] = src[srcPixelsOffset]; + + destPixelsOffset += 2; + } + } + } + } +} + +static void ConvertFromHalfwidthJapaneseFont(unsigned char *src, unsigned char *dest, unsigned int numRows) +{ + for (unsigned int row = 0; row < numRows; row++) { + for (unsigned int column = 0; column < 16; column++) { + unsigned int glyphIndex = (row * 16) + column; + + for (unsigned int glyphTile = 0; glyphTile < 2; glyphTile++) { + unsigned int pixelsX = column * 8; + unsigned int srcPixelsOffset = 512 * (glyphIndex >> 4) + 16 * (glyphIndex & 0xF) + 256 * glyphTile; + + for (unsigned int i = 0; i < 8; i++) { + unsigned int pixelsY = (row * 16) + (glyphTile * 8) + i; + unsigned int destPixelsOffset = (pixelsY * 32) + (pixelsX / 4); + + dest[destPixelsOffset] = src[srcPixelsOffset + 1]; + dest[destPixelsOffset + 1] = src[srcPixelsOffset]; + + srcPixelsOffset += 2; + } + } + } + } +} + +static void ConvertToHalfwidthJapaneseFont(unsigned char *src, unsigned char *dest, unsigned int numRows) +{ + for (unsigned int row = 0; row < numRows; row++) { + for (unsigned int column = 0; column < 16; column++) { + unsigned int glyphIndex = (row * 16) + column; + + for (unsigned int glyphTile = 0; glyphTile < 2; glyphTile++) { + unsigned int pixelsX = column * 8; + unsigned int destPixelsOffset = 512 * (glyphIndex >> 4) + 16 * (glyphIndex & 0xF) + 256 * glyphTile; + + for (unsigned int i = 0; i < 8; i++) { + unsigned int pixelsY = (row * 16) + (glyphTile * 8) + i; + unsigned int srcPixelsOffset = (pixelsY * 32) + (pixelsX / 4); + + dest[destPixelsOffset] = src[srcPixelsOffset + 1]; + dest[destPixelsOffset + 1] = src[srcPixelsOffset]; + + destPixelsOffset += 2; + } + } + } + } +} + +static void ConvertFromFullwidthJapaneseFont(unsigned char *src, unsigned char *dest, unsigned int numRows) +{ + for (unsigned int row = 0; row < numRows; row++) { + for (unsigned int column = 0; column < 16; column++) { + unsigned int glyphIndex = (row * 16) + column; + + for (unsigned int glyphTile = 0; glyphTile < 4; glyphTile++) { + unsigned int pixelsX = (column * 16) + ((glyphTile & 1) * 8); + unsigned int srcPixelsOffset = 512 * (glyphIndex >> 3) + 32 * (glyphIndex & 7) + 256 * (glyphTile >> 1) + 16 * (glyphTile & 1); + + for (unsigned int i = 0; i < 8; i++) { + unsigned int pixelsY = (row * 16) + ((glyphTile >> 1) * 8) + i; + unsigned int destPixelsOffset = (pixelsY * 64) + (pixelsX / 4); + + dest[destPixelsOffset] = src[srcPixelsOffset + 1]; + dest[destPixelsOffset + 1] = src[srcPixelsOffset]; + + srcPixelsOffset += 2; + } + } + } + } +} + +static void ConvertToFullwidthJapaneseFont(unsigned char *src, unsigned char *dest, unsigned int numRows) +{ + for (unsigned int row = 0; row < numRows; row++) { + for (unsigned int column = 0; column < 16; column++) { + unsigned int glyphIndex = (row * 16) + column; + + for (unsigned int glyphTile = 0; glyphTile < 4; glyphTile++) { + unsigned int pixelsX = (column * 16) + ((glyphTile & 1) * 8); + unsigned int destPixelsOffset = 512 * (glyphIndex >> 3) + 32 * (glyphIndex & 7) + 256 * (glyphTile >> 1) + 16 * (glyphTile & 1); + + for (unsigned int i = 0; i < 8; i++) { + unsigned int pixelsY = (row * 16) + ((glyphTile >> 1) * 8) + i; + unsigned int srcPixelsOffset = (pixelsY * 64) + (pixelsX / 4); + + dest[destPixelsOffset] = src[srcPixelsOffset + 1]; + dest[destPixelsOffset + 1] = src[srcPixelsOffset]; + + destPixelsOffset += 2; + } + } + } + } +} + +static void SetFontPalette(struct Image *image) +{ + image->hasPalette = true; + + image->palette.numColors = 4; + + for (int i = 0; i < image->palette.numColors; i++) { + image->palette.colors[i].red = gFontPalette[i][0]; + image->palette.colors[i].green = gFontPalette[i][1]; + image->palette.colors[i].blue = gFontPalette[i][2]; + } + + image->hasTransparency = false; +} + +void ReadLatinFont(char *path, struct Image *image) +{ + int fileSize; + unsigned char *buffer = ReadWholeFile(path, &fileSize); + + int numGlyphs = fileSize / 64; + + if (numGlyphs % 16 != 0) + FATAL_ERROR("The number of glyphs (%d) is not a multiple of 16.\n", numGlyphs); + + int numRows = numGlyphs / 16; + + image->width = 256; + image->height = numRows * 16; + image->bitDepth = 2; + image->pixels = malloc(fileSize); + + if (image->pixels == NULL) + FATAL_ERROR("Failed to allocate memory for font.\n"); + + ConvertFromLatinFont(buffer, image->pixels, numRows); + + free(buffer); + + SetFontPalette(image); +} + +void WriteLatinFont(char *path, struct Image *image) +{ + if (image->width != 256) + FATAL_ERROR("The width of the font image (%d) is not 256.\n", image->width); + + if (image->height % 16 != 0) + FATAL_ERROR("The height of the font image (%d) is not a multiple of 16.\n", image->height); + + int numRows = image->height / 16; + int bufferSize = numRows * 16 * 64; + unsigned char *buffer = malloc(bufferSize); + + if (buffer == NULL) + FATAL_ERROR("Failed to allocate memory for font.\n"); + + ConvertToLatinFont(image->pixels, buffer, numRows); + + WriteWholeFile(path, buffer, bufferSize); + + free(buffer); +} + +void ReadHalfwidthJapaneseFont(char *path, struct Image *image) +{ + int fileSize; + unsigned char *buffer = ReadWholeFile(path, &fileSize); + + int glyphSize = 32; + + if (fileSize % glyphSize != 0) + FATAL_ERROR("The file size (%d) is not a multiple of %d.\n", fileSize, glyphSize); + + int numGlyphs = fileSize / glyphSize; + + if (numGlyphs % 16 != 0) + FATAL_ERROR("The number of glyphs (%d) is not a multiple of 16.\n", numGlyphs); + + int numRows = numGlyphs / 16; + + image->width = 128; + image->height = numRows * 16; + image->bitDepth = 2; + image->pixels = malloc(fileSize); + + if (image->pixels == NULL) + FATAL_ERROR("Failed to allocate memory for font.\n"); + + ConvertFromHalfwidthJapaneseFont(buffer, image->pixels, numRows); + + free(buffer); + + SetFontPalette(image); +} + +void WriteHalfwidthJapaneseFont(char *path, struct Image *image) +{ + if (image->width != 128) + FATAL_ERROR("The width of the font image (%d) is not 128.\n", image->width); + + if (image->height % 16 != 0) + FATAL_ERROR("The height of the font image (%d) is not a multiple of 16.\n", image->height); + + int numRows = image->height / 16; + int bufferSize = numRows * 16 * 32; + unsigned char *buffer = malloc(bufferSize); + + if (buffer == NULL) + FATAL_ERROR("Failed to allocate memory for font.\n"); + + ConvertToHalfwidthJapaneseFont(image->pixels, buffer, numRows); + + WriteWholeFile(path, buffer, bufferSize); + + free(buffer); +} + +void ReadFullwidthJapaneseFont(char *path, struct Image *image) +{ + int fileSize; + unsigned char *buffer = ReadWholeFile(path, &fileSize); + + int numGlyphs = fileSize / 64; + + if (numGlyphs % 16 != 0) + FATAL_ERROR("The number of glyphs (%d) is not a multiple of 16.\n", numGlyphs); + + int numRows = numGlyphs / 16; + + image->width = 256; + image->height = numRows * 16; + image->bitDepth = 2; + image->pixels = malloc(fileSize); + + if (image->pixels == NULL) + FATAL_ERROR("Failed to allocate memory for font.\n"); + + ConvertFromFullwidthJapaneseFont(buffer, image->pixels, numRows); + + free(buffer); + + SetFontPalette(image); +} + +void WriteFullwidthJapaneseFont(char *path, struct Image *image) +{ + if (image->width != 256) + FATAL_ERROR("The width of the font image (%d) is not 256.\n", image->width); + + if (image->height % 16 != 0) + FATAL_ERROR("The height of the font image (%d) is not a multiple of 16.\n", image->height); + + int numRows = image->height / 16; + int bufferSize = numRows * 16 * 64; + unsigned char *buffer = malloc(bufferSize); + + if (buffer == NULL) + FATAL_ERROR("Failed to allocate memory for font.\n"); + + ConvertToFullwidthJapaneseFont(image->pixels, buffer, numRows); + + WriteWholeFile(path, buffer, bufferSize); + + free(buffer); +} diff --git a/tools/nitrogfx/font.h b/tools/nitrogfx/font.h new file mode 100644 index 00000000..45086d02 --- /dev/null +++ b/tools/nitrogfx/font.h @@ -0,0 +1,16 @@ +// Copyright (c) 2015 YamaArashi + +#ifndef FONT_H +#define FONT_H + +#include <stdbool.h> +#include "gfx.h" + +void ReadLatinFont(char *path, struct Image *image); +void WriteLatinFont(char *path, struct Image *image); +void ReadHalfwidthJapaneseFont(char *path, struct Image *image); +void WriteHalfwidthJapaneseFont(char *path, struct Image *image); +void ReadFullwidthJapaneseFont(char *path, struct Image *image); +void WriteFullwidthJapaneseFont(char *path, struct Image *image); + +#endif // FONT_H diff --git a/tools/nitrogfx/gfx.c b/tools/nitrogfx/gfx.c new file mode 100644 index 00000000..f927deed --- /dev/null +++ b/tools/nitrogfx/gfx.c @@ -0,0 +1,344 @@ +// Copyright (c) 2015 YamaArashi + +#include <stdio.h> +#include <stdlib.h> +#include <stdint.h> +#include <stdbool.h> +#include "global.h" +#include "gfx.h" +#include "util.h" + +#define GET_GBA_PAL_RED(x) (((x) >> 0) & 0x1F) +#define GET_GBA_PAL_GREEN(x) (((x) >> 5) & 0x1F) +#define GET_GBA_PAL_BLUE(x) (((x) >> 10) & 0x1F) + +#define SET_GBA_PAL(r, g, b) (((b) << 10) | ((g) << 5) | (r)) + +#define UPCONVERT_BIT_DEPTH(x) (((x) * 255) / 31) + +#define DOWNCONVERT_BIT_DEPTH(x) ((x) / 8) + +static void AdvanceMetatilePosition(int *subTileX, int *subTileY, int *metatileX, int *metatileY, int metatilesWide, int metatileWidth, int metatileHeight) +{ + (*subTileX)++; + if (*subTileX == metatileWidth) { + *subTileX = 0; + (*subTileY)++; + if (*subTileY == metatileHeight) { + *subTileY = 0; + (*metatileX)++; + if (*metatileX == metatilesWide) { + *metatileX = 0; + (*metatileY)++; + } + } + } +} + +static void ConvertFromTiles1Bpp(unsigned char *src, unsigned char *dest, int numTiles, int metatilesWide, int metatileWidth, int metatileHeight, bool invertColors) +{ + int subTileX = 0; + int subTileY = 0; + int metatileX = 0; + int metatileY = 0; + int pitch = metatilesWide * metatileWidth; + + for (int i = 0; i < numTiles; i++) { + for (int j = 0; j < 8; j++) { + int destY = (metatileY * metatileHeight + subTileY) * 8 + j; + int destX = metatileX * metatileWidth + subTileX; + unsigned char srcPixelOctet = *src++; + unsigned char *destPixelOctet = &dest[destY * pitch + destX]; + + for (int k = 0; k < 8; k++) { + *destPixelOctet <<= 1; + *destPixelOctet |= (srcPixelOctet & 1) ^ invertColors; + srcPixelOctet >>= 1; + } + } + + AdvanceMetatilePosition(&subTileX, &subTileY, &metatileX, &metatileY, metatilesWide, metatileWidth, metatileHeight); + } +} + +static void ConvertFromTiles4Bpp(unsigned char *src, unsigned char *dest, int numTiles, int metatilesWide, int metatileWidth, int metatileHeight, bool invertColors) +{ + int subTileX = 0; + int subTileY = 0; + int metatileX = 0; + int metatileY = 0; + int pitch = (metatilesWide * metatileWidth) * 4; + + for (int i = 0; i < numTiles; i++) { + for (int j = 0; j < 8; j++) { + int destY = (metatileY * metatileHeight + subTileY) * 8 + j; + + for (int k = 0; k < 4; k++) { + int destX = (metatileX * metatileWidth + subTileX) * 4 + k; + unsigned char srcPixelPair = *src++; + unsigned char leftPixel = srcPixelPair & 0xF; + unsigned char rightPixel = srcPixelPair >> 4; + + if (invertColors) { + leftPixel = 15 - leftPixel; + rightPixel = 15 - rightPixel; + } + + dest[destY * pitch + destX] = (leftPixel << 4) | rightPixel; + } + } + + AdvanceMetatilePosition(&subTileX, &subTileY, &metatileX, &metatileY, metatilesWide, metatileWidth, metatileHeight); + } +} + +static void ConvertFromTiles8Bpp(unsigned char *src, unsigned char *dest, int numTiles, int metatilesWide, int metatileWidth, int metatileHeight, bool invertColors) +{ + int subTileX = 0; + int subTileY = 0; + int metatileX = 0; + int metatileY = 0; + int pitch = (metatilesWide * metatileWidth) * 8; + + for (int i = 0; i < numTiles; i++) { + for (int j = 0; j < 8; j++) { + int destY = (metatileY * metatileHeight + subTileY) * 8 + j; + + for (int k = 0; k < 8; k++) { + int destX = (metatileX * metatileWidth + subTileX) * 8 + k; + unsigned char srcPixel = *src++; + + if (invertColors) + srcPixel = 255 - srcPixel; + + dest[destY * pitch + destX] = srcPixel; + } + } + + AdvanceMetatilePosition(&subTileX, &subTileY, &metatileX, &metatileY, metatilesWide, metatileWidth, metatileHeight); + } +} + +static void ConvertToTiles1Bpp(unsigned char *src, unsigned char *dest, int numTiles, int metatilesWide, int metatileWidth, int metatileHeight, bool invertColors) +{ + int subTileX = 0; + int subTileY = 0; + int metatileX = 0; + int metatileY = 0; + int pitch = metatilesWide * metatileWidth; + + for (int i = 0; i < numTiles; i++) { + for (int j = 0; j < 8; j++) { + int srcY = (metatileY * metatileHeight + subTileY) * 8 + j; + int srcX = metatileX * metatileWidth + subTileX; + unsigned char srcPixelOctet = src[srcY * pitch + srcX]; + unsigned char *destPixelOctet = dest++; + + for (int k = 0; k < 8; k++) { + *destPixelOctet <<= 1; + *destPixelOctet |= (srcPixelOctet & 1) ^ invertColors; + srcPixelOctet >>= 1; + } + } + + AdvanceMetatilePosition(&subTileX, &subTileY, &metatileX, &metatileY, metatilesWide, metatileWidth, metatileHeight); + } +} + +static void ConvertToTiles4Bpp(unsigned char *src, unsigned char *dest, int numTiles, int metatilesWide, int metatileWidth, int metatileHeight, bool invertColors) +{ + int subTileX = 0; + int subTileY = 0; + int metatileX = 0; + int metatileY = 0; + int pitch = (metatilesWide * metatileWidth) * 4; + + for (int i = 0; i < numTiles; i++) { + for (int j = 0; j < 8; j++) { + int srcY = (metatileY * metatileHeight + subTileY) * 8 + j; + + for (int k = 0; k < 4; k++) { + int srcX = (metatileX * metatileWidth + subTileX) * 4 + k; + unsigned char srcPixelPair = src[srcY * pitch + srcX]; + unsigned char leftPixel = srcPixelPair >> 4; + unsigned char rightPixel = srcPixelPair & 0xF; + + if (invertColors) { + leftPixel = 15 - leftPixel; + rightPixel = 15 - rightPixel; + } + + *dest++ = (rightPixel << 4) | leftPixel; + } + } + + AdvanceMetatilePosition(&subTileX, &subTileY, &metatileX, &metatileY, metatilesWide, metatileWidth, metatileHeight); + } +} + +static void ConvertToTiles8Bpp(unsigned char *src, unsigned char *dest, int numTiles, int metatilesWide, int metatileWidth, int metatileHeight, bool invertColors) +{ + int subTileX = 0; + int subTileY = 0; + int metatileX = 0; + int metatileY = 0; + int pitch = (metatilesWide * metatileWidth) * 8; + + for (int i = 0; i < numTiles; i++) { + for (int j = 0; j < 8; j++) { + int srcY = (metatileY * metatileHeight + subTileY) * 8 + j; + + for (int k = 0; k < 8; k++) { + int srcX = (metatileX * metatileWidth + subTileX) * 8 + k; + unsigned char srcPixel = src[srcY * pitch + srcX]; + + if (invertColors) + srcPixel = 255 - srcPixel; + + *dest++ = srcPixel; + } + } + + AdvanceMetatilePosition(&subTileX, &subTileY, &metatileX, &metatileY, metatilesWide, metatileWidth, metatileHeight); + } +} + +void ReadImage(char *path, int tilesWidth, int bitDepth, int metatileWidth, int metatileHeight, struct Image *image, bool invertColors) +{ + int tileSize = bitDepth * 8; + + int fileSize; + unsigned char *buffer = ReadWholeFile(path, &fileSize); + + int numTiles = fileSize / tileSize; + + int tilesHeight = (numTiles + tilesWidth - 1) / tilesWidth; + + if (tilesWidth % metatileWidth != 0) + FATAL_ERROR("The width in tiles (%d) isn't a multiple of the specified metatile width (%d)", tilesWidth, metatileWidth); + + if (tilesHeight % metatileHeight != 0) + FATAL_ERROR("The height in tiles (%d) isn't a multiple of the specified metatile height (%d)", tilesHeight, metatileHeight); + + image->width = tilesWidth * 8; + image->height = tilesHeight * 8; + image->bitDepth = bitDepth; + image->pixels = calloc(tilesWidth * tilesHeight, tileSize); + + if (image->pixels == NULL) + FATAL_ERROR("Failed to allocate memory for pixels.\n"); + + int metatilesWide = tilesWidth / metatileWidth; + + switch (bitDepth) { + case 1: + ConvertFromTiles1Bpp(buffer, image->pixels, numTiles, metatilesWide, metatileWidth, metatileHeight, invertColors); + break; + case 4: + ConvertFromTiles4Bpp(buffer, image->pixels, numTiles, metatilesWide, metatileWidth, metatileHeight, invertColors); + break; + case 8: + ConvertFromTiles8Bpp(buffer, image->pixels, numTiles, metatilesWide, metatileWidth, metatileHeight, invertColors); + break; + } + + free(buffer); +} + +void WriteImage(char *path, int numTiles, int bitDepth, int metatileWidth, int metatileHeight, struct Image *image, bool invertColors) +{ + int tileSize = bitDepth * 8; + + if (image->width % 8 != 0) + FATAL_ERROR("The width in pixels (%d) isn't a multiple of 8.\n", image->width); + + if (image->height % 8 != 0) + FATAL_ERROR("The height in pixels (%d) isn't a multiple of 8.\n", image->height); + + int tilesWidth = image->width / 8; + int tilesHeight = image->height / 8; + + if (tilesWidth % metatileWidth != 0) + FATAL_ERROR("The width in tiles (%d) isn't a multiple of the specified metatile width (%d)", tilesWidth, metatileWidth); + + if (tilesHeight % metatileHeight != 0) + FATAL_ERROR("The height in tiles (%d) isn't a multiple of the specified metatile height (%d)", tilesHeight, metatileHeight); + + int maxNumTiles = tilesWidth * tilesHeight; + + if (numTiles == 0) + numTiles = maxNumTiles; + else if (numTiles > maxNumTiles) + FATAL_ERROR("The specified number of tiles (%d) is greater than the maximum possible value (%d).\n", numTiles, maxNumTiles); + + int bufferSize = numTiles * tileSize; + unsigned char *buffer = malloc(bufferSize); + + if (buffer == NULL) + FATAL_ERROR("Failed to allocate memory for pixels.\n"); + + int metatilesWide = tilesWidth / metatileWidth; + + switch (bitDepth) { + case 1: + ConvertToTiles1Bpp(image->pixels, buffer, numTiles, metatilesWide, metatileWidth, metatileHeight, invertColors); + break; + case 4: + ConvertToTiles4Bpp(image->pixels, buffer, numTiles, metatilesWide, metatileWidth, metatileHeight, invertColors); + break; + case 8: + ConvertToTiles8Bpp(image->pixels, buffer, numTiles, metatilesWide, metatileWidth, metatileHeight, invertColors); + break; + } + + WriteWholeFile(path, buffer, bufferSize); + + free(buffer); +} + +void FreeImage(struct Image *image) +{ + free(image->pixels); + image->pixels = NULL; +} + +void ReadGbaPalette(char *path, struct Palette *palette) +{ + int fileSize; + unsigned char *data = ReadWholeFile(path, &fileSize); + + if (fileSize % 2 != 0) + FATAL_ERROR("The file size (%d) is not a multiple of 2.\n", fileSize); + + palette->numColors = fileSize / 2; + + for (int i = 0; i < palette->numColors; i++) { + uint16_t paletteEntry = (data[i * 2 + 1] << 8) | data[i * 2]; + palette->colors[i].red = UPCONVERT_BIT_DEPTH(GET_GBA_PAL_RED(paletteEntry)); + palette->colors[i].green = UPCONVERT_BIT_DEPTH(GET_GBA_PAL_GREEN(paletteEntry)); + palette->colors[i].blue = UPCONVERT_BIT_DEPTH(GET_GBA_PAL_BLUE(paletteEntry)); + } + + free(data); +} + +void WriteGbaPalette(char *path, struct Palette *palette) +{ + FILE *fp = fopen(path, "wb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for writing.\n", path); + + for (int i = 0; i < palette->numColors; i++) { + unsigned char red = DOWNCONVERT_BIT_DEPTH(palette->colors[i].red); + unsigned char green = DOWNCONVERT_BIT_DEPTH(palette->colors[i].green); + unsigned char blue = DOWNCONVERT_BIT_DEPTH(palette->colors[i].blue); + + uint16_t paletteEntry = SET_GBA_PAL(red, green, blue); + + fputc(paletteEntry & 0xFF, fp); + fputc(paletteEntry >> 8, fp); + } + + fclose(fp); +} diff --git a/tools/nitrogfx/gfx.h b/tools/nitrogfx/gfx.h new file mode 100644 index 00000000..5355ced8 --- /dev/null +++ b/tools/nitrogfx/gfx.h @@ -0,0 +1,36 @@ +// Copyright (c) 2015 YamaArashi + +#ifndef GFX_H +#define GFX_H + +#include <stdint.h> +#include <stdbool.h> + +struct Color { + unsigned char red; + unsigned char green; + unsigned char blue; +}; + +struct Palette { + struct Color colors[256]; + int numColors; +}; + +struct Image { + int width; + int height; + int bitDepth; + unsigned char *pixels; + bool hasPalette; + struct Palette palette; + bool hasTransparency; +}; + +void ReadImage(char *path, int tilesWidth, int bitDepth, int metatileWidth, int metatileHeight, struct Image *image, bool invertColors); +void WriteImage(char *path, int numTiles, int bitDepth, int metatileWidth, int metatileHeight, struct Image *image, bool invertColors); +void FreeImage(struct Image *image); +void ReadGbaPalette(char *path, struct Palette *palette); +void WriteGbaPalette(char *path, struct Palette *palette); + +#endif // GFX_H diff --git a/tools/nitrogfx/global.h b/tools/nitrogfx/global.h new file mode 100644 index 00000000..65dd351d --- /dev/null +++ b/tools/nitrogfx/global.h @@ -0,0 +1,31 @@ +// Copyright (c) 2015 YamaArashi + +#ifndef GLOBAL_H +#define GLOBAL_H + +#include <stdio.h> +#include <stdlib.h> + +#ifdef _MSC_VER + +#define FATAL_ERROR(format, ...) \ +do { \ + fprintf(stderr, format, __VA_ARGS__); \ + exit(1); \ +} while (0) + +#define UNUSED + +#else + +#define FATAL_ERROR(format, ...) \ +do { \ + fprintf(stderr, format, ##__VA_ARGS__); \ + exit(1); \ +} while (0) + +#define UNUSED __attribute__((__unused__)) + +#endif // _MSC_VER + +#endif // GLOBAL_H diff --git a/tools/nitrogfx/huff.c b/tools/nitrogfx/huff.c new file mode 100644 index 00000000..143ed79b --- /dev/null +++ b/tools/nitrogfx/huff.c @@ -0,0 +1,398 @@ +#include <stdbool.h> +#include <string.h> +#include <assert.h> +#include <stdio.h> +#include <stdint.h> +#include "global.h" +#include "huff.h" + +static int cmp_tree(const void * a0, const void * b0) { + return ((struct HuffData *)a0)->value - ((struct HuffData *)b0)->value; +} + +typedef int (*cmpfun)(const void *, const void *); + +int msort_r(void * data, size_t count, size_t size, cmpfun cmp, void * buffer) { + /* + * Out-of-place mergesort (stable sort) + * Returns 1 on success, 0 on failure + */ + void * leftPtr; + void * rightPtr; + void * leftEnd; + void * rightEnd; + int i; + + switch (count) { + case 0: + // Should never be here + return 0; + + case 1: + // Nothing to do here + break; + + case 2: + // Swap the two entries if the right one compares higher. + if (cmp(data, data + size) > 0) { + memcpy(buffer, data, size); + memcpy(data, data + size, size); + memcpy(data + size, buffer, size); + } + break; + default: + // Merge sort out-of-place. + leftPtr = data; + leftEnd = rightPtr = data + count / 2 * size; + rightEnd = data + count * size; + + // Sort the left half + if (!msort_r(leftPtr, count / 2, size, cmp, buffer)) + return 0; + + // Sort the right half + if (!msort_r(rightPtr, count / 2 + (count & 1), size, cmp, buffer)) + return 0; + + // Merge the sorted halves out of place + i = 0; + do { + if (cmp(leftPtr, rightPtr) <= 0) { + memcpy(buffer + i * size, leftPtr, size); + leftPtr += size; + } else { + memcpy(buffer + i * size, rightPtr, size); + rightPtr += size; + } + + } while (++i < count && leftPtr < leftEnd && rightPtr < rightEnd); + + // Copy the remainder + if (i < count) { + if (leftPtr < leftEnd) { + memcpy(buffer + i * size, leftPtr, leftEnd - leftPtr); + } + else { + memcpy(buffer + i * size, rightPtr, rightEnd - rightPtr); + } + } + + // Copy the merged data back + memcpy(data, buffer, count * size); + break; + } + + return 1; +} + +int msort(void * data, size_t count, size_t size, cmpfun cmp) { + void * buffer = malloc(count * size); + if (buffer == NULL) return 0; + int result = msort_r(data, count, size, cmp, buffer); + free(buffer); + return result; +} + +static void write_tree(unsigned char * dest, HuffNode_t * tree, int nitems, struct BitEncoding * encoding) { + /* + * The example used to guide this function encodes the tree in a + * breadth-first manner. We attempt to emulate that here. + */ + + int i, j, k; + + // There are (2 * nitems - 1) nodes in the binary tree. Allocate that. + HuffNode_t * traversal = calloc(2 * nitems - 1, sizeof(HuffNode_t)); + if (traversal == NULL) + FATAL_ERROR("Fatal error while compressing Huff file.\n"); + + // The first node is the root of the tree. + traversal[0] = *tree; + i = 1; + + // Copy the tree into a breadth-first ordering using brute force. + for (int depth = 1; i < 2 * nitems - 1; depth++) { + // Consider every possible path up to the current depth. + for (j = 0; i < 2 * nitems - 1 && j < 1 << depth; j++) { + // The index of the path is used to encode the path itself. + // Start from the most significant relevant bit and work our way down. + // Keep track of the current and previous nodes. + HuffNode_t * currNode = traversal; + HuffNode_t * parent = NULL; + for (k = 0; k < depth; k++) { + if (currNode->header.isLeaf) + break; + parent = currNode; + if ((j >> (depth - k - 1)) & 1) + currNode = currNode->branch.right; + else + currNode = currNode->branch.left; + } + // Check that the length of the current path equals the current depth. + if (k == depth) { + // Make sure we can encode the current branch. + // Bail here if we cannot. + // This is only applicable for 8-bit encodings. + if (traversal + i - parent > 128) + FATAL_ERROR("Fatal error while compressing Huff file: unable to encode binary tree.\n"); + // Copy the current node, and update its parent. + traversal[i] = *currNode; + if (parent != NULL) { + if ((j & 1) == 1) + parent->branch.right = traversal + i; + else + parent->branch.left = traversal + i; + } + // Encode the path through the tree in the lookup table + if (traversal[i].header.isLeaf) { + encoding[traversal[i].leaf.key].nbits = depth; + encoding[traversal[i].leaf.key].bitstring = j; + } + i++; + } + } + } + + // Encode the size of the tree. + // This is used by the decompressor to skip the tree. + dest[4] = nitems - 1; + + // Encode each node in the tree. + for (i = 0; i < 2 * nitems - 1; i++) { + HuffNode_t * currNode = traversal + i; + if (currNode->header.isLeaf) { + dest[5 + i] = traversal[i].leaf.key; + } else { + dest[5 + i] = (((currNode->branch.right - traversal - i) / 2) - 1); + if (currNode->branch.left->header.isLeaf) + dest[5 + i] |= 0x80; + if (currNode->branch.right->header.isLeaf) + dest[5 + i] |= 0x40; + } + } + + free(traversal); +} + +static inline void write_32_le(unsigned char * dest, int * destPos, uint32_t * buff, int * buffPos) { + dest[*destPos] = *buff; + dest[*destPos + 1] = *buff >> 8; + dest[*destPos + 2] = *buff >> 16; + dest[*destPos + 3] = *buff >> 24; + *destPos += 4; + *buff = 0; + *buffPos = 0; +} + +static inline void read_32_le(unsigned char * src, int * srcPos, uint32_t * buff) { + uint32_t tmp = src[*srcPos]; + tmp |= src[*srcPos + 1] << 8; + tmp |= src[*srcPos + 2] << 16; + tmp |= src[*srcPos + 3] << 24; + *srcPos += 4; + *buff = tmp; +} + +static void write_bits(unsigned char * dest, int * destPos, struct BitEncoding * encoding, int value, uint32_t * buff, int * buffBits) { + int nbits = encoding[value].nbits; + uint32_t bitstring = encoding[value].bitstring; + + if (*buffBits + nbits >= 32) { + int diff = *buffBits + nbits - 32; + *buff <<= nbits - diff; + *buff |= bitstring >> diff; + bitstring &= ~(1 << diff); + nbits = diff; + write_32_le(dest, destPos, buff, buffBits); + } + if (nbits != 0) { + *buff <<= nbits; + *buff |= bitstring; + *buffBits += nbits; + } +} + +/* +======================================= +MAIN COMPRESSION/DECOMPRESSION ROUTINES +======================================= + */ + +unsigned char * HuffCompress(unsigned char * src, int srcSize, int * compressedSize_p, int bitDepth) { + if (srcSize <= 0) + goto fail; + + int worstCaseDestSize = 4 + (2 << bitDepth) + srcSize * 3; + + unsigned char *dest = malloc(worstCaseDestSize); + if (dest == NULL) + goto fail; + + int nitems = 1 << bitDepth; + + HuffNode_t * freqs = calloc(nitems, sizeof(HuffNode_t)); + if (freqs == NULL) + goto fail; + + struct BitEncoding * encoding = calloc(nitems, sizeof(struct BitEncoding)); + if (encoding == NULL) + goto fail; + + // Set up the frequencies table. This will inform the tree. + for (int i = 0; i < nitems; i++) { + freqs[i].header.isLeaf = 1; + freqs[i].header.value = 0; + freqs[i].leaf.key = i; + } + + // Count each nybble or byte. + for (int i = 0; i < srcSize; i++) { + if (bitDepth == 8) { + freqs[src[i]].header.value++; + } else { + freqs[src[i] >> 4].header.value++; + freqs[src[i] & 0xF].header.value++; + } + } + +#ifdef DEBUG + for (int i = 0; i < nitems; i++) { + fprintf(stderr, "%d: %d\n", i, freqs[i].header.value); + } +#endif // DEBUG + + // Sort the frequency table. + if (!msort(freqs, nitems, sizeof(HuffNode_t), cmp_tree)) + goto fail; + + // Prune zero-frequency values. + for (int i = 0; i < nitems; i++) { + if (freqs[i].header.value != 0) { + if (i > 0) { + for (int j = i; j < nitems; j++) { + freqs[j - i] = freqs[j]; + } + nitems -= i; + } + break; + } + // This should never happen: + if (i == nitems - 1) + goto fail; + } + + HuffNode_t * tree = calloc(nitems * 2 - 1, sizeof(HuffNode_t)); + if (tree == NULL) + goto fail; + + // Iteratively collapse the two least frequent nodes. + HuffNode_t * endptr = freqs + nitems - 2; + + for (int i = 0; i < nitems - 1; i++) { + HuffNode_t * left = freqs; + HuffNode_t * right = freqs + 1; + tree[i * 2] = *right; + tree[i * 2 + 1] = *left; + for (int j = 0; j < nitems - i - 2; j++) + freqs[j] = freqs[j + 2]; + endptr->header.isLeaf = 0; + endptr->header.value = tree[i * 2].header.value + tree[i * 2 + 1].header.value; + endptr->branch.left = tree + i * 2; + endptr->branch.right = tree + i * 2 + 1; + endptr--; + if (i < nitems - 2 && !msort(freqs, nitems - i - 1, sizeof(HuffNode_t), cmp_tree)) + goto fail; + } + + // Write the tree breadth-first, and create the path lookup table. + write_tree(dest, freqs, nitems, encoding); + + free(tree); + free(freqs); + + // Encode the data itself. + int destPos = 4 + nitems * 2; + uint32_t destBuf = 0; + uint32_t srcBuf = 0; + int destBitPos = 0; + + for (int srcPos = 0; srcPos < srcSize;) { + read_32_le(src, &srcPos, &srcBuf); + for (int i = 0; i < 32 / bitDepth; i++) { + write_bits(dest, &destPos, encoding, srcBuf & (0xFF >> (8 - bitDepth)), &destBuf, &destBitPos); + srcBuf >>= bitDepth; + } + } + + if (destBitPos != 0) { + write_32_le(dest, &destPos, &destBuf, &destBitPos); + } + + free(encoding); + + // Write the header. + dest[0] = bitDepth | 0x20; + dest[1] = srcSize; + dest[2] = srcSize >> 8; + dest[3] = srcSize >> 16; + *compressedSize_p = (destPos + 3) & ~3; + return dest; + +fail: + FATAL_ERROR("Fatal error while compressing Huff file.\n"); +} + +unsigned char * HuffDecompress(unsigned char * src, int srcSize, int * uncompressedSize_p) { + if (srcSize < 4) + goto fail; + + int bitDepth = *src & 15; + if (bitDepth != 4 && bitDepth != 8) + goto fail; + + int destSize = (src[3] << 16) | (src[2] << 8) | src[1]; + + unsigned char *dest = malloc(destSize); + + if (dest == NULL) + goto fail; + + int treePos = 5; + int treeSize = (src[4] + 1) * 2; + int srcPos = 4 + treeSize; + int destPos = 0; + int curValPos = 0; + uint32_t destTmp = 0; + uint32_t window; + + for (;;) + { + if (srcPos >= srcSize) + goto fail; + read_32_le(src, &srcPos, &window); + for (int i = 0; i < 32; i++) { + int curBit = (window >> 31) & 1; + unsigned char treeView = src[treePos]; + bool isLeaf = ((treeView << curBit) & 0x80) != 0; + treePos &= ~1; // align + treePos += ((treeView & 0x3F) + 1) * 2 + curBit; + if (isLeaf) { + destTmp >>= bitDepth; + destTmp |= (src[treePos] << (32 - bitDepth)); + curValPos++; + if (curValPos == 32 / bitDepth) { + write_32_le(dest, &destPos, &destTmp, &curValPos); + if (destPos == destSize) { + *uncompressedSize_p = destSize; + return dest; + } + } + treePos = 5; + } + window <<= 1; + } + } + +fail: + FATAL_ERROR("Fatal error while decompressing Huff file.\n"); +} diff --git a/tools/nitrogfx/huff.h b/tools/nitrogfx/huff.h new file mode 100644 index 00000000..6002fe95 --- /dev/null +++ b/tools/nitrogfx/huff.h @@ -0,0 +1,38 @@ +#ifndef HUFF_H +#define HUFF_H + +union HuffNode; + +struct HuffData { + unsigned value:31; + unsigned isLeaf:1; +}; + +struct HuffLeaf { + struct HuffData header; + unsigned char key; +}; + +struct HuffBranch { + struct HuffData header; + union HuffNode * left; + union HuffNode * right; +}; + +union HuffNode { + struct HuffData header; + struct HuffLeaf leaf; + struct HuffBranch branch; +}; + +typedef union HuffNode HuffNode_t; + +struct BitEncoding { + unsigned long long nbits:6; + unsigned long long bitstring:58; +}; + +unsigned char * HuffCompress(unsigned char * buffer, int srcSize, int * compressedSize_p, int bitDepth); +unsigned char * HuffDecompress(unsigned char * buffer, int srcSize, int * uncompressedSize_p); + +#endif //HUFF_H diff --git a/tools/nitrogfx/jasc_pal.c b/tools/nitrogfx/jasc_pal.c new file mode 100644 index 00000000..e5ba9c3c --- /dev/null +++ b/tools/nitrogfx/jasc_pal.c @@ -0,0 +1,172 @@ +// Copyright (c) 2015 YamaArashi + +#include <stdio.h> +#include <string.h> +#include "global.h" +#include "gfx.h" +#include "util.h" + +// Read/write Paint Shop Pro palette files. + +// Format of a Paint Shop Pro palette file, line by line: +// "JASC-PAL\r\n" (signature) +// "0100\r\n" (version; seems to always be "0100") +// "<NUMBER_OF_COLORS>\r\n" (number of colors in decimal) +// +// <NUMBER_OF_COLORS> times: +// "<RED> <GREEN> <BLUE>\r\n" (color entry) +// +// Each color component is a decimal number from 0 to 255. +// Examples: +// Black - "0 0 0\r\n" +// Blue - "0 0 255\r\n" +// Brown - "150 75 0\r\n" + +#define MAX_LINE_LENGTH 11 + +void ReadJascPaletteLine(FILE *fp, char *line) +{ + int c; + int length = 0; + + for (;;) + { + c = fgetc(fp); + + if (c == '\r') + { + c = fgetc(fp); + + if (c != '\n') + FATAL_ERROR("CR line endings aren't supported.\n"); + + line[length] = 0; + + return; + } + + if (c == '\n') + FATAL_ERROR("LF line endings aren't supported.\n"); + + if (c == EOF) + FATAL_ERROR("Unexpected EOF. No CRLF at end of file.\n"); + + if (c == 0) + FATAL_ERROR("NUL character in file.\n"); + + if (length == MAX_LINE_LENGTH) + { + line[length] = 0; + FATAL_ERROR("The line \"%s\" is too long.\n", line); + } + + line[length++] = c; + } +} + +void ReadJascPalette(char *path, struct Palette *palette) +{ + char line[MAX_LINE_LENGTH + 1]; + + FILE *fp = fopen(path, "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open JASC-PAL file \"%s\" for reading.\n", path); + + ReadJascPaletteLine(fp, line); + + if (strcmp(line, "JASC-PAL") != 0) + FATAL_ERROR("Invalid JASC-PAL signature.\n"); + + ReadJascPaletteLine(fp, line); + + if (strcmp(line, "0100") != 0) + FATAL_ERROR("Unsuported JASC-PAL version.\n"); + + ReadJascPaletteLine(fp, line); + + if (!ParseNumber(line, NULL, 10, &palette->numColors)) + FATAL_ERROR("Failed to parse number of colors.\n"); + + if (palette->numColors < 1 || palette->numColors > 256) + FATAL_ERROR("%d is an invalid number of colors. The number of colors must be in the range [1, 256].\n", palette->numColors); + + for (int i = 0; i < palette->numColors; i++) + { + ReadJascPaletteLine(fp, line); + + char *s = line; + char *end; + + int red; + int green; + int blue; + + if (!ParseNumber(s, &end, 10, &red)) + FATAL_ERROR("Failed to parse red color component.\n"); + + s = end; + + if (*s != ' ') + FATAL_ERROR("Expected a space after red color component.\n"); + + s++; + + if (*s < '0' || *s > '9') + FATAL_ERROR("Expected only a space between red and green color components.\n"); + + if (!ParseNumber(s, &end, 10, &green)) + FATAL_ERROR("Failed to parse green color component.\n"); + + s = end; + + if (*s != ' ') + FATAL_ERROR("Expected a space after green color component.\n"); + + s++; + + if (*s < '0' || *s > '9') + FATAL_ERROR("Expected only a space between green and blue color components.\n"); + + if (!ParseNumber(s, &end, 10, &blue)) + FATAL_ERROR("Failed to parse blue color component.\n"); + + if (*end != 0) + FATAL_ERROR("Garbage after blue color component.\n"); + + if (red < 0 || red > 255) + FATAL_ERROR("Red color component (%d) is outside the range [0, 255].\n", red); + + if (green < 0 || green > 255) + FATAL_ERROR("Green color component (%d) is outside the range [0, 255].\n", green); + + if (blue < 0 || blue > 255) + FATAL_ERROR("Blue color component (%d) is outside the range [0, 255].\n", blue); + + palette->colors[i].red = red; + palette->colors[i].green = green; + palette->colors[i].blue = blue; + } + + if (fgetc(fp) != EOF) + FATAL_ERROR("Garbage after color data.\n"); + + fclose(fp); +} + +void WriteJascPalette(char *path, struct Palette *palette) +{ + FILE *fp = fopen(path, "wb"); + + fputs("JASC-PAL\r\n", fp); + fputs("0100\r\n", fp); + fprintf(fp, "%d\r\n", palette->numColors); + + for (int i = 0; i < palette->numColors; i++) + { + struct Color *color = &palette->colors[i]; + fprintf(fp, "%d %d %d\r\n", color->red, color->green, color->blue); + } + + fclose(fp); +} diff --git a/tools/nitrogfx/jasc_pal.h b/tools/nitrogfx/jasc_pal.h new file mode 100644 index 00000000..b60b31fc --- /dev/null +++ b/tools/nitrogfx/jasc_pal.h @@ -0,0 +1,9 @@ +// Copyright (c) 2015 YamaArashi + +#ifndef JASC_PAL_H +#define JASC_PAL_H + +void ReadJascPalette(char *path, struct Palette *palette); +void WriteJascPalette(char *path, struct Palette *palette); + +#endif // JASC_PAL_H diff --git a/tools/nitrogfx/lz.c b/tools/nitrogfx/lz.c new file mode 100644 index 00000000..97434ce5 --- /dev/null +++ b/tools/nitrogfx/lz.c @@ -0,0 +1,153 @@ +// Copyright (c) 2015 YamaArashi + +#include <stdlib.h> +#include <stdbool.h> +#include "global.h" +#include "lz.h" + +unsigned char *LZDecompress(unsigned char *src, int srcSize, int *uncompressedSize) +{ + if (srcSize < 4) + goto fail; + + int destSize = (src[3] << 16) | (src[2] << 8) | src[1]; + + unsigned char *dest = malloc(destSize); + + if (dest == NULL) + goto fail; + + int srcPos = 4; + int destPos = 0; + + for (;;) { + if (srcPos >= srcSize) + goto fail; + + unsigned char flags = src[srcPos++]; + + for (int i = 0; i < 8; i++) { + if (flags & 0x80) { + if (srcPos + 1 >= srcSize) + goto fail; + + int blockSize = (src[srcPos] >> 4) + 3; + int blockDistance = (((src[srcPos] & 0xF) << 8) | src[srcPos + 1]) + 1; + + srcPos += 2; + + int blockPos = destPos - blockDistance; + + // Some Ruby/Sapphire tilesets overflow. + if (destPos + blockSize > destSize) { + blockSize = destSize - destPos; + fprintf(stderr, "Destination buffer overflow.\n"); + } + + if (blockPos < 0) + goto fail; + + for (int j = 0; j < blockSize; j++) + dest[destPos++] = dest[blockPos + j]; + } else { + if (srcPos >= srcSize || destPos >= destSize) + goto fail; + + dest[destPos++] = src[srcPos++]; + } + + if (destPos == destSize) { + *uncompressedSize = destSize; + return dest; + } + + flags <<= 1; + } + } + +fail: + FATAL_ERROR("Fatal error while decompressing LZ file.\n"); +} + +unsigned char *LZCompress(unsigned char *src, int srcSize, int *compressedSize, const int minDistance) +{ + if (srcSize <= 0) + goto fail; + + int worstCaseDestSize = 4 + srcSize + ((srcSize + 7) / 8); + + // Round up to the next multiple of four. + worstCaseDestSize = (worstCaseDestSize + 3) & ~3; + + unsigned char *dest = malloc(worstCaseDestSize); + + if (dest == NULL) + goto fail; + + // header + dest[0] = 0x10; // LZ compression type + dest[1] = (unsigned char)srcSize; + dest[2] = (unsigned char)(srcSize >> 8); + dest[3] = (unsigned char)(srcSize >> 16); + + int srcPos = 0; + int destPos = 4; + + for (;;) { + unsigned char *flags = &dest[destPos++]; + *flags = 0; + + for (int i = 0; i < 8; i++) { + int bestBlockDistance = 0; + int bestBlockSize = 0; + int blockDistance = minDistance; + + while (blockDistance <= srcPos && blockDistance <= 0x1000) { + int blockStart = srcPos - blockDistance; + int blockSize = 0; + + while (blockSize < 18 + && srcPos + blockSize < srcSize + && src[blockStart + blockSize] == src[srcPos + blockSize]) + blockSize++; + + if (blockSize > bestBlockSize) { + bestBlockDistance = blockDistance; + bestBlockSize = blockSize; + + if (blockSize == 18) + break; + } + + blockDistance++; + } + + if (bestBlockSize >= 3) { + *flags |= (0x80 >> i); + srcPos += bestBlockSize; + bestBlockSize -= 3; + bestBlockDistance--; + dest[destPos++] = (bestBlockSize << 4) | ((unsigned int)bestBlockDistance >> 8); + dest[destPos++] = (unsigned char)bestBlockDistance; + } else { + dest[destPos++] = src[srcPos++]; + } + + if (srcPos == srcSize) { + // Pad to multiple of 4 bytes. + int remainder = destPos % 4; + + if (remainder != 0) { + for (int i = 0; i < 4 - remainder; i++) + dest[destPos++] = 0; + } + + *compressedSize = destPos; + return dest; + } + } + } + +fail: + FATAL_ERROR("Fatal error while compressing LZ file.\n"); +} diff --git a/tools/nitrogfx/lz.h b/tools/nitrogfx/lz.h new file mode 100644 index 00000000..90f56b64 --- /dev/null +++ b/tools/nitrogfx/lz.h @@ -0,0 +1,9 @@ +// Copyright (c) 2015 YamaArashi + +#ifndef LZ_H +#define LZ_H + +unsigned char *LZDecompress(unsigned char *src, int srcSize, int *uncompressedSize); +unsigned char *LZCompress(unsigned char *src, int srcSize, int *compressedSize, const int minDistance); + +#endif // LZ_H diff --git a/tools/nitrogfx/main.c b/tools/nitrogfx/main.c new file mode 100644 index 00000000..b9f4272c --- /dev/null +++ b/tools/nitrogfx/main.c @@ -0,0 +1,537 @@ +// Copyright (c) 2015 YamaArashi + +#include <stdio.h> +#include <string.h> +#include <stdbool.h> +#include "global.h" +#include "util.h" +#include "options.h" +#include "gfx.h" +#include "convert_png.h" +#include "jasc_pal.h" +#include "lz.h" +#include "rl.h" +#include "font.h" +#include "huff.h" + +struct CommandHandler +{ + const char *inputFileExtension; + const char *outputFileExtension; + void(*function)(char *inputPath, char *outputPath, int argc, char **argv); +}; + +void ConvertGbaToPng(char *inputPath, char *outputPath, struct GbaToPngOptions *options) +{ + struct Image image; + + if (options->paletteFilePath != NULL) + { + ReadGbaPalette(options->paletteFilePath, &image.palette); + image.hasPalette = true; + } + else + { + image.hasPalette = false; + } + + ReadImage(inputPath, options->width, options->bitDepth, options->metatileWidth, options->metatileHeight, &image, !image.hasPalette); + + image.hasTransparency = options->hasTransparency; + + WritePng(outputPath, &image); + + FreeImage(&image); +} + +void ConvertPngToGba(char *inputPath, char *outputPath, struct PngToGbaOptions *options) +{ + struct Image image; + + image.bitDepth = options->bitDepth; + + ReadPng(inputPath, &image); + + WriteImage(outputPath, options->numTiles, options->bitDepth, options->metatileWidth, options->metatileHeight, &image, !image.hasPalette); + + FreeImage(&image); +} + +void HandleGbaToPngCommand(char *inputPath, char *outputPath, int argc, char **argv) +{ + char *inputFileExtension = GetFileExtension(inputPath); + struct GbaToPngOptions options; + options.paletteFilePath = NULL; + options.bitDepth = inputFileExtension[0] - '0'; + options.hasTransparency = false; + options.width = 1; + options.metatileWidth = 1; + options.metatileHeight = 1; + + for (int i = 3; i < argc; i++) + { + char *option = argv[i]; + + if (strcmp(option, "-palette") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No palette file path following \"-palette\".\n"); + + i++; + + options.paletteFilePath = argv[i]; + } + else if (strcmp(option, "-object") == 0) + { + options.hasTransparency = true; + } + else if (strcmp(option, "-width") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No width following \"-width\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &options.width)) + FATAL_ERROR("Failed to parse width.\n"); + + if (options.width < 1) + FATAL_ERROR("Width must be positive.\n"); + } + else if (strcmp(option, "-mwidth") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No metatile width value following \"-mwidth\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &options.metatileWidth)) + FATAL_ERROR("Failed to parse metatile width.\n"); + + if (options.metatileWidth < 1) + FATAL_ERROR("metatile width must be positive.\n"); + } + else if (strcmp(option, "-mheight") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No metatile height value following \"-mheight\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &options.metatileHeight)) + FATAL_ERROR("Failed to parse metatile height.\n"); + + if (options.metatileHeight < 1) + FATAL_ERROR("metatile height must be positive.\n"); + } + else + { + FATAL_ERROR("Unrecognized option \"%s\".\n", option); + } + } + + if (options.metatileWidth > options.width) + options.width = options.metatileWidth; + + ConvertGbaToPng(inputPath, outputPath, &options); +} + +void HandlePngToGbaCommand(char *inputPath, char *outputPath, int argc, char **argv) +{ + char *outputFileExtension = GetFileExtension(outputPath); + int bitDepth = outputFileExtension[0] - '0'; + struct PngToGbaOptions options; + options.numTiles = 0; + options.bitDepth = bitDepth; + options.metatileWidth = 1; + options.metatileHeight = 1; + + for (int i = 3; i < argc; i++) + { + char *option = argv[i]; + + if (strcmp(option, "-num_tiles") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No number of tiles following \"-num_tiles\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &options.numTiles)) + FATAL_ERROR("Failed to parse number of tiles.\n"); + + if (options.numTiles < 1) + FATAL_ERROR("Number of tiles must be positive.\n"); + } + else if (strcmp(option, "-mwidth") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No metatile width value following \"-mwidth\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &options.metatileWidth)) + FATAL_ERROR("Failed to parse metatile width.\n"); + + if (options.metatileWidth < 1) + FATAL_ERROR("metatile width must be positive.\n"); + } + else if (strcmp(option, "-mheight") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No metatile height value following \"-mheight\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &options.metatileHeight)) + FATAL_ERROR("Failed to parse metatile height.\n"); + + if (options.metatileHeight < 1) + FATAL_ERROR("metatile height must be positive.\n"); + } + else + { + FATAL_ERROR("Unrecognized option \"%s\".\n", option); + } + } + + ConvertPngToGba(inputPath, outputPath, &options); +} + +void HandlePngToGbaPaletteCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + struct Palette palette; + + ReadPngPalette(inputPath, &palette); + WriteGbaPalette(outputPath, &palette); +} + +void HandleGbaToJascPaletteCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + struct Palette palette; + + ReadGbaPalette(inputPath, &palette); + WriteJascPalette(outputPath, &palette); +} + +void HandleJascToGbaPaletteCommand(char *inputPath, char *outputPath, int argc, char **argv) +{ + int numColors = 0; + + for (int i = 3; i < argc; i++) + { + char *option = argv[i]; + + if (strcmp(option, "-num_colors") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No number of colors following \"-num_colors\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &numColors)) + FATAL_ERROR("Failed to parse number of colors.\n"); + + if (numColors < 1) + FATAL_ERROR("Number of colors must be positive.\n"); + } + else + { + FATAL_ERROR("Unrecognized option \"%s\".\n", option); + } + } + + struct Palette palette; + + ReadJascPalette(inputPath, &palette); + + if (numColors != 0) + palette.numColors = numColors; + + WriteGbaPalette(outputPath, &palette); +} + +void HandleLatinFontToPngCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + struct Image image; + + ReadLatinFont(inputPath, &image); + WritePng(outputPath, &image); + + FreeImage(&image); +} + +void HandlePngToLatinFontCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + struct Image image; + + image.bitDepth = 2; + + ReadPng(inputPath, &image); + WriteLatinFont(outputPath, &image); + + FreeImage(&image); +} + +void HandleHalfwidthJapaneseFontToPngCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + struct Image image; + + ReadHalfwidthJapaneseFont(inputPath, &image); + WritePng(outputPath, &image); + + FreeImage(&image); +} + +void HandlePngToHalfwidthJapaneseFontCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + struct Image image; + + image.bitDepth = 2; + + ReadPng(inputPath, &image); + WriteHalfwidthJapaneseFont(outputPath, &image); + + FreeImage(&image); +} + +void HandleFullwidthJapaneseFontToPngCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + struct Image image; + + ReadFullwidthJapaneseFont(inputPath, &image); + WritePng(outputPath, &image); + + FreeImage(&image); +} + +void HandlePngToFullwidthJapaneseFontCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + struct Image image; + + image.bitDepth = 2; + + ReadPng(inputPath, &image); + WriteFullwidthJapaneseFont(outputPath, &image); + + FreeImage(&image); +} + +void HandleLZCompressCommand(char *inputPath, char *outputPath, int argc, char **argv) +{ + int overflowSize = 0; + int minDistance = 2; // default, for compatibility with LZ77UnCompVram() + + for (int i = 3; i < argc; i++) + { + char *option = argv[i]; + + if (strcmp(option, "-overflow") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No size following \"-overflow\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &overflowSize)) + FATAL_ERROR("Failed to parse overflow size.\n"); + + if (overflowSize < 1) + FATAL_ERROR("Overflow size must be positive.\n"); + } + else if (strcmp(option, "-search") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No size following \"-overflow\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &minDistance)) + FATAL_ERROR("Failed to parse LZ min search distance.\n"); + + if (minDistance < 1) + FATAL_ERROR("LZ min search distance must be positive.\n"); + } + else + { + FATAL_ERROR("Unrecognized option \"%s\".\n", option); + } + } + + // The overflow option allows a quirk in some of Ruby/Sapphire's tilesets + // to be reproduced. It works by appending a number of zeros to the data + // before compressing it and then amending the LZ header's size field to + // reflect the expected size. This will cause an overflow when decompressing + // the data. + + int fileSize; + unsigned char *buffer = ReadWholeFileZeroPadded(inputPath, &fileSize, overflowSize); + + int compressedSize; + unsigned char *compressedData = LZCompress(buffer, fileSize + overflowSize, &compressedSize, minDistance); + + compressedData[1] = (unsigned char)fileSize; + compressedData[2] = (unsigned char)(fileSize >> 8); + compressedData[3] = (unsigned char)(fileSize >> 16); + + free(buffer); + + WriteWholeFile(outputPath, compressedData, compressedSize); + + free(compressedData); +} + +void HandleLZDecompressCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + int fileSize; + unsigned char *buffer = ReadWholeFile(inputPath, &fileSize); + + int uncompressedSize; + unsigned char *uncompressedData = LZDecompress(buffer, fileSize, &uncompressedSize); + + free(buffer); + + WriteWholeFile(outputPath, uncompressedData, uncompressedSize); + + free(uncompressedData); +} + +void HandleRLCompressCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + int fileSize; + unsigned char *buffer = ReadWholeFile(inputPath, &fileSize); + + int compressedSize; + unsigned char *compressedData = RLCompress(buffer, fileSize, &compressedSize); + + free(buffer); + + WriteWholeFile(outputPath, compressedData, compressedSize); + + free(compressedData); +} + +void HandleRLDecompressCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + int fileSize; + unsigned char *buffer = ReadWholeFile(inputPath, &fileSize); + + int uncompressedSize; + unsigned char *uncompressedData = RLDecompress(buffer, fileSize, &uncompressedSize); + + free(buffer); + + WriteWholeFile(outputPath, uncompressedData, uncompressedSize); + + free(uncompressedData); +} + +void HandleHuffCompressCommand(char *inputPath, char *outputPath, int argc, char **argv) +{ + int fileSize; + int bitDepth = 4; + + for (int i = 3; i < argc; i++) + { + char *option = argv[i]; + + if (strcmp(option, "-depth") == 0) + { + if (i + 1 >= argc) + FATAL_ERROR("No size following \"-depth\".\n"); + + i++; + + if (!ParseNumber(argv[i], NULL, 10, &bitDepth)) + FATAL_ERROR("Failed to parse bit depth.\n"); + + if (bitDepth != 4 && bitDepth != 8) + FATAL_ERROR("GBA only supports bit depth of 4 or 8.\n"); + } + else + { + FATAL_ERROR("Unrecognized option \"%s\".\n", option); + } + } + + unsigned char *buffer = ReadWholeFile(inputPath, &fileSize); + + int compressedSize; + unsigned char *compressedData = HuffCompress(buffer, fileSize, &compressedSize, bitDepth); + + free(buffer); + + WriteWholeFile(outputPath, compressedData, compressedSize); + + free(compressedData); +} + +void HandleHuffDecompressCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED) +{ + int fileSize; + unsigned char *buffer = ReadWholeFile(inputPath, &fileSize); + + int uncompressedSize; + unsigned char *uncompressedData = HuffDecompress(buffer, fileSize, &uncompressedSize); + + free(buffer); + + WriteWholeFile(outputPath, uncompressedData, uncompressedSize); + + free(uncompressedData); +} + +int main(int argc, char **argv) +{ + if (argc < 3) + FATAL_ERROR("Usage: nitrogfx INPUT_PATH OUTPUT_PATH [options...]\n"); + + struct CommandHandler handlers[] = + { + { "1bpp", "png", HandleGbaToPngCommand }, + { "4bpp", "png", HandleGbaToPngCommand }, + { "8bpp", "png", HandleGbaToPngCommand }, + { "png", "1bpp", HandlePngToGbaCommand }, + { "png", "4bpp", HandlePngToGbaCommand }, + { "png", "8bpp", HandlePngToGbaCommand }, + { "png", "gbapal", HandlePngToGbaPaletteCommand }, + { "gbapal", "pal", HandleGbaToJascPaletteCommand }, + { "pal", "gbapal", HandleJascToGbaPaletteCommand }, + { "latfont", "png", HandleLatinFontToPngCommand }, + { "png", "latfont", HandlePngToLatinFontCommand }, + { "hwjpnfont", "png", HandleHalfwidthJapaneseFontToPngCommand }, + { "png", "hwjpnfont", HandlePngToHalfwidthJapaneseFontCommand }, + { "fwjpnfont", "png", HandleFullwidthJapaneseFontToPngCommand }, + { "png", "fwjpnfont", HandlePngToFullwidthJapaneseFontCommand }, + { NULL, "huff", HandleHuffCompressCommand }, + { NULL, "lz", HandleLZCompressCommand }, + { "huff", NULL, HandleHuffDecompressCommand }, + { "lz", NULL, HandleLZDecompressCommand }, + { NULL, "rl", HandleRLCompressCommand }, + { "rl", NULL, HandleRLDecompressCommand }, + { NULL, NULL, NULL } + }; + + char *inputPath = argv[1]; + char *outputPath = argv[2]; + char *inputFileExtension = GetFileExtension(inputPath); + char *outputFileExtension = GetFileExtension(outputPath); + + if (inputFileExtension == NULL) + FATAL_ERROR("Input file \"%s\" has no extension.\n", inputPath); + + if (outputFileExtension == NULL) + FATAL_ERROR("Output file \"%s\" has no extension.\n", outputPath); + + for (int i = 0; handlers[i].function != NULL; i++) + { + if ((handlers[i].inputFileExtension == NULL || strcmp(handlers[i].inputFileExtension, inputFileExtension) == 0) + && (handlers[i].outputFileExtension == NULL || strcmp(handlers[i].outputFileExtension, outputFileExtension) == 0)) + { + handlers[i].function(inputPath, outputPath, argc, argv); + return 0; + } + } + + FATAL_ERROR("Don't know how to convert \"%s\" to \"%s\".\n", inputPath, outputPath); +} diff --git a/tools/nitrogfx/options.h b/tools/nitrogfx/options.h new file mode 100644 index 00000000..2ff3967a --- /dev/null +++ b/tools/nitrogfx/options.h @@ -0,0 +1,24 @@ +// Copyright (c) 2018 huderlem + +#ifndef OPTIONS_H +#define OPTIONS_H + +#include <stdbool.h> + +struct GbaToPngOptions { + char *paletteFilePath; + int bitDepth; + bool hasTransparency; + int width; + int metatileWidth; + int metatileHeight; +}; + +struct PngToGbaOptions { + int numTiles; + int bitDepth; + int metatileWidth; + int metatileHeight; +}; + +#endif // OPTIONS_H diff --git a/tools/nitrogfx/rl.c b/tools/nitrogfx/rl.c new file mode 100644 index 00000000..968c9347 --- /dev/null +++ b/tools/nitrogfx/rl.c @@ -0,0 +1,149 @@ +// Copyright (c) 2016 YamaArashi + +#include <stdlib.h> +#include <stdbool.h> +#include "global.h" +#include "rl.h" + +unsigned char *RLDecompress(unsigned char *src, int srcSize, int *uncompressedSize) +{ + if (srcSize < 4) + goto fail; + + int destSize = (src[3] << 16) | (src[2] << 8) | src[1]; + + unsigned char *dest = malloc(destSize); + + if (dest == NULL) + goto fail; + + int srcPos = 4; + int destPos = 0; + + for (;;) + { + if (srcPos >= srcSize) + goto fail; + + unsigned char flags = src[srcPos++]; + bool compressed = ((flags & 0x80) != 0); + + if (compressed) + { + int length = (flags & 0x7F) + 3; + unsigned char data = src[srcPos++]; + + if (destPos + length > destSize) + goto fail; + + for (int i = 0; i < length; i++) + dest[destPos++] = data; + } + else + { + int length = (flags & 0x7F) + 1; + + if (destPos + length > destSize) + goto fail; + + for (int i = 0; i < length; i++) + dest[destPos++] = src[srcPos++]; + } + + if (destPos == destSize) + { + *uncompressedSize = destSize; + return dest; + } + } + +fail: + FATAL_ERROR("Fatal error while decompressing RL file.\n"); +} + +unsigned char *RLCompress(unsigned char *src, int srcSize, int *compressedSize) +{ + if (srcSize <= 0) + goto fail; + + int worstCaseDestSize = 4 + srcSize * 2; + + // Round up to the next multiple of four. + worstCaseDestSize = (worstCaseDestSize + 3) & ~3; + + unsigned char *dest = malloc(worstCaseDestSize); + + if (dest == NULL) + goto fail; + + // header + dest[0] = 0x30; // RL compression type + dest[1] = (unsigned char)srcSize; + dest[2] = (unsigned char)(srcSize >> 8); + dest[3] = (unsigned char)(srcSize >> 16); + + int srcPos = 0; + int destPos = 4; + + for (;;) + { + bool compress = false; + int uncompressedStart = srcPos; + int uncompressedLength = 0; + + while (srcPos < srcSize && uncompressedLength < (0x7F + 1)) + { + compress = (srcPos + 2 < srcSize && src[srcPos] == src[srcPos + 1] && src[srcPos] == src[srcPos + 2]); + + if (compress) + break; + + srcPos++; + uncompressedLength++; + } + + if (uncompressedLength > 0) + { + dest[destPos++] = uncompressedLength - 1; + + for (int i = 0; i < uncompressedLength; i++) + dest[destPos++] = src[uncompressedStart + i]; + } + + if (compress) + { + unsigned char data = src[srcPos]; + int compressedLength = 0; + + while (compressedLength < (0x7F + 3) + && srcPos + compressedLength < srcSize + && src[srcPos + compressedLength] == data) + { + compressedLength++; + } + + dest[destPos++] = 0x80 | (compressedLength - 3); + dest[destPos++] = data; + + srcPos += compressedLength; + } + + if (srcPos == srcSize) + { + // Pad to multiple of 4 bytes. + int remainder = destPos % 4; + + if (remainder != 0) + { + for (int i = 0; i < 4 - remainder; i++) + dest[destPos++] = 0; + } + + *compressedSize = destPos; + return dest; + } + } + +fail: + FATAL_ERROR("Fatal error while compressing RL file.\n"); +} diff --git a/tools/nitrogfx/rl.h b/tools/nitrogfx/rl.h new file mode 100644 index 00000000..02ad8d6d --- /dev/null +++ b/tools/nitrogfx/rl.h @@ -0,0 +1,9 @@ +// Copyright (c) 2016 YamaArashi + +#ifndef RL_H +#define RL_H + +unsigned char *RLDecompress(unsigned char *src, int srcSize, int *uncompressedSize); +unsigned char *RLCompress(unsigned char *src, int srcSize, int *compressedSize); + +#endif // RL_H diff --git a/tools/nitrogfx/util.c b/tools/nitrogfx/util.c new file mode 100644 index 00000000..87abeb31 --- /dev/null +++ b/tools/nitrogfx/util.c @@ -0,0 +1,124 @@ +// Copyright (c) 2015 YamaArashi + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <stdbool.h> +#include <errno.h> +#include <limits.h> +#include "global.h" +#include "util.h" + +bool ParseNumber(char *s, char **end, int radix, int *intValue) +{ + char *localEnd; + + if (end == NULL) + end = &localEnd; + + errno = 0; + + const long longValue = strtol(s, end, radix); + + if (*end == s) + return false; // not a number + + if ((longValue == LONG_MIN || longValue == LONG_MAX) && errno == ERANGE) + return false; + + if (longValue > INT_MAX) + return false; + + if (longValue < INT_MIN) + return false; + + *intValue = (int)longValue; + + return true; +} + +char *GetFileExtension(char *path) +{ + char *extension = path; + + while (*extension != 0) + extension++; + + while (extension > path && *extension != '.') + extension--; + + if (extension == path) + return NULL; + + extension++; + + if (*extension == 0) + return NULL; + + return extension; +} + +unsigned char *ReadWholeFile(char *path, int *size) +{ + FILE *fp = fopen(path, "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for reading.\n", path); + + fseek(fp, 0, SEEK_END); + + *size = ftell(fp); + + unsigned char *buffer = malloc(*size); + + if (buffer == NULL) + FATAL_ERROR("Failed to allocate memory for reading \"%s\".\n", path); + + rewind(fp); + + if (fread(buffer, *size, 1, fp) != 1) + FATAL_ERROR("Failed to read \"%s\".\n", path); + + fclose(fp); + + return buffer; +} + +unsigned char *ReadWholeFileZeroPadded(char *path, int *size, int padAmount) +{ + FILE *fp = fopen(path, "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for reading.\n", path); + + fseek(fp, 0, SEEK_END); + + *size = ftell(fp); + + unsigned char *buffer = calloc(*size + padAmount, 1); + + if (buffer == NULL) + FATAL_ERROR("Failed to allocate memory for reading \"%s\".\n", path); + + rewind(fp); + + if (fread(buffer, *size, 1, fp) != 1) + FATAL_ERROR("Failed to read \"%s\".\n", path); + + fclose(fp); + + return buffer; +} + +void WriteWholeFile(char *path, void *buffer, int bufferSize) +{ + FILE *fp = fopen(path, "wb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for writing.\n", path); + + if (fwrite(buffer, bufferSize, 1, fp) != 1) + FATAL_ERROR("Failed to write to \"%s\".\n", path); + + fclose(fp); +} diff --git a/tools/nitrogfx/util.h b/tools/nitrogfx/util.h new file mode 100644 index 00000000..6d7a9c21 --- /dev/null +++ b/tools/nitrogfx/util.h @@ -0,0 +1,14 @@ +// Copyright (c) 2015 YamaArashi + +#ifndef UTIL_H +#define UTIL_H + +#include <stdbool.h> + +bool ParseNumber(char *s, char **end, int radix, int *intValue); +char *GetFileExtension(char *path); +unsigned char *ReadWholeFile(char *path, int *size); +unsigned char *ReadWholeFileZeroPadded(char *path, int *size, int padAmount); +void WriteWholeFile(char *path, void *buffer, int bufferSize); + +#endif // UTIL_H |