summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-06-27 14:58:31 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2020-06-27 14:58:31 -0400
commit09a9af9bf408a25adca35d74193a130321dbaa81 (patch)
tree2e1930598ec056516df1754db7edf743930a5d80
parentc202e7568c660ce16853f6f21720240615b692f4 (diff)
Split diamond and pearl
-rw-r--r--Makefile216
-rw-r--r--arm7/Makefile2
-rw-r--r--arm9/Makefile8
-rw-r--r--arm9/arm9.sha189
-rw-r--r--arm9/asm/secure.s262
-rw-r--r--arm9/asm/unk_02034A28.s4
-rw-r--r--arm9/asm/unk_020772F0.s7
-rw-r--r--arm9/pokediamond.us.sha189
-rw-r--r--arm9/pokepearl.us.sha189
-rw-r--r--config.mk40
-rw-r--r--graphics/icon_pearl.pngbin0 -> 377 bytes
-rw-r--r--pokediamond.us.bsf (renamed from pokediamond.bsf)bin522 -> 522 bytes
-rw-r--r--pokediamond.us.sha12
-rw-r--r--pokepearl.us.bsfbin0 -> 522 bytes
-rw-r--r--pokepearl.us.sha11
-rw-r--r--rom.rsf (renamed from pokediamond.rsf)4
16 files changed, 602 insertions, 211 deletions
diff --git a/Makefile b/Makefile
index 662cb2c5..aa1465fb 100644
--- a/Makefile
+++ b/Makefile
@@ -51,18 +51,15 @@ ifeq ($(NOWINE),1)
WINE :=
endif
-# Compare result of arm9, arm7, and ROM to sha1 hash(s)
-COMPARE ?= 1
-
################ Target Executable and Sources ###############
-BUILD_DIR := build
+BUILD_DIR := build/$(BUILD_NAME)
-TARGET := pokediamond.us
+TARGET := $(BUILD_TARGET)
ROM := $(BUILD_DIR)/$(TARGET).nds
ELF := $(BUILD_DIR)/$(TARGET).elf
-LD_SCRIPT := pokediamond.lcf
+BNR := $(BUILD_DIR)/$(TARGET).bnr
# Directories containing source files
SRC_DIRS := src
@@ -75,103 +72,101 @@ S_FILES := $(foreach dir,$(ASM_DIRS),$(wildcard $(dir)/*.s))
O_FILES := $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o)) \
$(foreach file,$(S_FILES),$(BUILD_DIR)/$(file:.s=.o)) \
-ARM9SBIN := arm9/build/arm9.sbin
+ARM9SBIN := arm9/$(BUILD_DIR)/arm9.sbin
ARM7SBIN := arm7/build/arm7.sbin
-BINFILES = \
- arm9/build/arm9.bin \
- arm9/build/arm9_table.bin \
- arm9/build/arm9_defs.bin \
- arm7/build/arm7.bin \
- arm9/build/MODULE_00.bin \
- arm9/build/MODULE_01.bin \
- arm9/build/MODULE_02.bin \
- arm9/build/MODULE_03.bin \
- arm9/build/MODULE_04.bin \
- arm9/build/MODULE_05.bin \
- arm9/build/MODULE_06.bin \
- arm9/build/MODULE_07.bin \
- arm9/build/MODULE_08.bin \
- arm9/build/MODULE_09.bin \
- arm9/build/MODULE_10.bin \
- arm9/build/MODULE_11.bin \
- arm9/build/MODULE_12.bin \
- arm9/build/MODULE_13.bin \
- arm9/build/MODULE_14.bin \
- arm9/build/MODULE_15.bin \
- arm9/build/MODULE_16.bin \
- arm9/build/MODULE_17.bin \
- arm9/build/MODULE_18.bin \
- arm9/build/MODULE_19.bin \
- arm9/build/MODULE_20.bin \
- arm9/build/MODULE_21.bin \
- arm9/build/MODULE_22.bin \
- arm9/build/MODULE_23.bin \
- arm9/build/MODULE_24.bin \
- arm9/build/MODULE_25.bin \
- arm9/build/MODULE_26.bin \
- arm9/build/MODULE_27.bin \
- arm9/build/MODULE_28.bin \
- arm9/build/MODULE_29.bin \
- arm9/build/MODULE_30.bin \
- arm9/build/MODULE_31.bin \
- arm9/build/MODULE_32.bin \
- arm9/build/MODULE_33.bin \
- arm9/build/MODULE_34.bin \
- arm9/build/MODULE_35.bin \
- arm9/build/MODULE_36.bin \
- arm9/build/MODULE_37.bin \
- arm9/build/MODULE_38.bin \
- arm9/build/MODULE_39.bin \
- arm9/build/MODULE_40.bin \
- arm9/build/MODULE_41.bin \
- arm9/build/MODULE_42.bin \
- arm9/build/MODULE_43.bin \
- arm9/build/MODULE_44.bin \
- arm9/build/MODULE_45.bin \
- arm9/build/MODULE_46.bin \
- arm9/build/MODULE_47.bin \
- arm9/build/MODULE_48.bin \
- arm9/build/MODULE_49.bin \
- arm9/build/MODULE_50.bin \
- arm9/build/MODULE_51.bin \
- arm9/build/MODULE_52.bin \
- arm9/build/MODULE_53.bin \
- arm9/build/MODULE_54.bin \
- arm9/build/MODULE_55.bin \
- arm9/build/MODULE_56.bin \
- arm9/build/MODULE_57.bin \
- arm9/build/MODULE_58.bin \
- arm9/build/MODULE_59.bin \
- arm9/build/MODULE_60.bin \
- arm9/build/MODULE_61.bin \
- arm9/build/MODULE_62.bin \
- arm9/build/MODULE_63.bin \
- arm9/build/MODULE_64.bin \
- arm9/build/MODULE_65.bin \
- arm9/build/MODULE_66.bin \
- arm9/build/MODULE_67.bin \
- arm9/build/MODULE_68.bin \
- arm9/build/MODULE_69.bin \
- arm9/build/MODULE_70.bin \
- arm9/build/MODULE_71.bin \
- arm9/build/MODULE_72.bin \
- arm9/build/MODULE_73.bin \
- arm9/build/MODULE_74.bin \
- arm9/build/MODULE_75.bin \
- arm9/build/MODULE_76.bin \
- arm9/build/MODULE_77.bin \
- arm9/build/MODULE_78.bin \
- arm9/build/MODULE_79.bin \
- arm9/build/MODULE_80.bin \
- arm9/build/MODULE_81.bin \
- arm9/build/MODULE_82.bin \
- arm9/build/MODULE_83.bin \
- arm9/build/MODULE_84.bin \
- arm9/build/MODULE_85.bin \
- arm9/build/MODULE_86.bin
-
-SBINFILES = $(BINFILES:%.bin=%.sbin)
+SBINFILES = \
+ $(ARM9SBIN) \
+ $(ARM9SBIN:%.sbin=%_table.sbin) \
+ $(ARM9SBIN:%.sbin=%_defs.sbin) \
+ $(ARM7SBIN) \
+ arm9/$(BUILD_DIR)/MODULE_00.sbin \
+ arm9/$(BUILD_DIR)/MODULE_01.sbin \
+ arm9/$(BUILD_DIR)/MODULE_02.sbin \
+ arm9/$(BUILD_DIR)/MODULE_03.sbin \
+ arm9/$(BUILD_DIR)/MODULE_04.sbin \
+ arm9/$(BUILD_DIR)/MODULE_05.sbin \
+ arm9/$(BUILD_DIR)/MODULE_06.sbin \
+ arm9/$(BUILD_DIR)/MODULE_07.sbin \
+ arm9/$(BUILD_DIR)/MODULE_08.sbin \
+ arm9/$(BUILD_DIR)/MODULE_09.sbin \
+ arm9/$(BUILD_DIR)/MODULE_10.sbin \
+ arm9/$(BUILD_DIR)/MODULE_11.sbin \
+ arm9/$(BUILD_DIR)/MODULE_12.sbin \
+ arm9/$(BUILD_DIR)/MODULE_13.sbin \
+ arm9/$(BUILD_DIR)/MODULE_14.sbin \
+ arm9/$(BUILD_DIR)/MODULE_15.sbin \
+ arm9/$(BUILD_DIR)/MODULE_16.sbin \
+ arm9/$(BUILD_DIR)/MODULE_17.sbin \
+ arm9/$(BUILD_DIR)/MODULE_18.sbin \
+ arm9/$(BUILD_DIR)/MODULE_19.sbin \
+ arm9/$(BUILD_DIR)/MODULE_20.sbin \
+ arm9/$(BUILD_DIR)/MODULE_21.sbin \
+ arm9/$(BUILD_DIR)/MODULE_22.sbin \
+ arm9/$(BUILD_DIR)/MODULE_23.sbin \
+ arm9/$(BUILD_DIR)/MODULE_24.sbin \
+ arm9/$(BUILD_DIR)/MODULE_25.sbin \
+ arm9/$(BUILD_DIR)/MODULE_26.sbin \
+ arm9/$(BUILD_DIR)/MODULE_27.sbin \
+ arm9/$(BUILD_DIR)/MODULE_28.sbin \
+ arm9/$(BUILD_DIR)/MODULE_29.sbin \
+ arm9/$(BUILD_DIR)/MODULE_30.sbin \
+ arm9/$(BUILD_DIR)/MODULE_31.sbin \
+ arm9/$(BUILD_DIR)/MODULE_32.sbin \
+ arm9/$(BUILD_DIR)/MODULE_33.sbin \
+ arm9/$(BUILD_DIR)/MODULE_34.sbin \
+ arm9/$(BUILD_DIR)/MODULE_35.sbin \
+ arm9/$(BUILD_DIR)/MODULE_36.sbin \
+ arm9/$(BUILD_DIR)/MODULE_37.sbin \
+ arm9/$(BUILD_DIR)/MODULE_38.sbin \
+ arm9/$(BUILD_DIR)/MODULE_39.sbin \
+ arm9/$(BUILD_DIR)/MODULE_40.sbin \
+ arm9/$(BUILD_DIR)/MODULE_41.sbin \
+ arm9/$(BUILD_DIR)/MODULE_42.sbin \
+ arm9/$(BUILD_DIR)/MODULE_43.sbin \
+ arm9/$(BUILD_DIR)/MODULE_44.sbin \
+ arm9/$(BUILD_DIR)/MODULE_45.sbin \
+ arm9/$(BUILD_DIR)/MODULE_46.sbin \
+ arm9/$(BUILD_DIR)/MODULE_47.sbin \
+ arm9/$(BUILD_DIR)/MODULE_48.sbin \
+ arm9/$(BUILD_DIR)/MODULE_49.sbin \
+ arm9/$(BUILD_DIR)/MODULE_50.sbin \
+ arm9/$(BUILD_DIR)/MODULE_51.sbin \
+ arm9/$(BUILD_DIR)/MODULE_52.sbin \
+ arm9/$(BUILD_DIR)/MODULE_53.sbin \
+ arm9/$(BUILD_DIR)/MODULE_54.sbin \
+ arm9/$(BUILD_DIR)/MODULE_55.sbin \
+ arm9/$(BUILD_DIR)/MODULE_56.sbin \
+ arm9/$(BUILD_DIR)/MODULE_57.sbin \
+ arm9/$(BUILD_DIR)/MODULE_58.sbin \
+ arm9/$(BUILD_DIR)/MODULE_59.sbin \
+ arm9/$(BUILD_DIR)/MODULE_60.sbin \
+ arm9/$(BUILD_DIR)/MODULE_61.sbin \
+ arm9/$(BUILD_DIR)/MODULE_62.sbin \
+ arm9/$(BUILD_DIR)/MODULE_63.sbin \
+ arm9/$(BUILD_DIR)/MODULE_64.sbin \
+ arm9/$(BUILD_DIR)/MODULE_65.sbin \
+ arm9/$(BUILD_DIR)/MODULE_66.sbin \
+ arm9/$(BUILD_DIR)/MODULE_67.sbin \
+ arm9/$(BUILD_DIR)/MODULE_68.sbin \
+ arm9/$(BUILD_DIR)/MODULE_69.sbin \
+ arm9/$(BUILD_DIR)/MODULE_70.sbin \
+ arm9/$(BUILD_DIR)/MODULE_71.sbin \
+ arm9/$(BUILD_DIR)/MODULE_72.sbin \
+ arm9/$(BUILD_DIR)/MODULE_73.sbin \
+ arm9/$(BUILD_DIR)/MODULE_74.sbin \
+ arm9/$(BUILD_DIR)/MODULE_75.sbin \
+ arm9/$(BUILD_DIR)/MODULE_76.sbin \
+ arm9/$(BUILD_DIR)/MODULE_77.sbin \
+ arm9/$(BUILD_DIR)/MODULE_78.sbin \
+ arm9/$(BUILD_DIR)/MODULE_79.sbin \
+ arm9/$(BUILD_DIR)/MODULE_80.sbin \
+ arm9/$(BUILD_DIR)/MODULE_81.sbin \
+ arm9/$(BUILD_DIR)/MODULE_82.sbin \
+ arm9/$(BUILD_DIR)/MODULE_83.sbin \
+ arm9/$(BUILD_DIR)/MODULE_84.sbin \
+ arm9/$(BUILD_DIR)/MODULE_85.sbin \
+ arm9/$(BUILD_DIR)/MODULE_86.sbin
##################### Compiler Options #######################
@@ -295,17 +290,17 @@ $(BUILD_DIR)/%.o: %.s $$(dep)
$(SBINFILES): arm9 arm7
arm9:
- $(MAKE) -C arm9 COMPARE=$(COMPARE)
+ $(MAKE) -C arm9 COMPARE=$(COMPARE) GAME_LANGUAGE=$(GAME_LANGUAGE) GAME_VERSION=$(GAME_VERSION)
arm7:
- $(MAKE) -C arm7 COMPARE=$(COMPARE)
+ $(MAKE) -C arm7 COMPARE=$(COMPARE) GAME_LANGUAGE=$(GAME_LANGUAGE) GAME_VERSION=$(GAME_VERSION)
include filesystem.mk
# TODO: Rules for Pearl
# FIXME: Computed secure area CRC in header is incorrect due to first 8 bytes of header not actually being "encryObj"
-$(ROM): pokediamond.rsf $(BUILD_DIR)/pokediamond_bnr.bin $(SBINFILES) $(HOSTFS_FILES) tools/bin/rom_header.template.sbin
- $(MAKEROM) -DNITROFS_FILES="$(NITROFS_FILES)" $< $@
+$(ROM): rom.rsf $(BNR) $(SBINFILES) $(HOSTFS_FILES) tools/bin/rom_header.template.sbin
+ $(MAKEROM) -DBNR="$(BNR)" -DTITLE_NAME="$(TITLE_NAME)" -DNITROFS_FILES="$(NITROFS_FILES)" $< $@
$(FIXROM) $@ --secure-crc $(SECURE_CRC) --game-code $(GAME_CODE)
# Make sure build directory exists before compiling anything
@@ -328,12 +323,19 @@ DUMMY != mkdir -p $(ALL_DIRS)
######################## Misc #######################
-$(BUILD_DIR)/pokediamond_bnr.bin: pokediamond.bsf graphics/icon.4bpp graphics/icon.gbapal
+$(BNR): $(TARGET).bsf $(ICON_FILE:%.png=%.gbapal) $(ICON_FILE:%.png=%.4bpp)
$(MAKEBANNER) $< $@
symbols.csv: arm9 arm7
- (echo "Name,Location"; $(GREP) " *[0-9A-F]{8} [0-9A-F]{8} \S+ +\w+\t\(\w+\.o\)" arm9/build/arm9.elf.xMAP arm7/build/arm7.elf.xMAP | $(SED) 's/ *([0-9A-F]{8}) [0-9A-F]{8} \S+ +(\w+)\t\(\w+\.o\)/\2,\1/g' | cut -d: -f2) > $@
+ (echo "Name,Location"; $(GREP) " *[0-9A-F]{8} [0-9A-F]{8} \S+ +\w+\t\(\w+\.o\)" arm9/$(BUILD_DIR)/arm9.elf.xMAP arm7/$(BUILD_DIR)/arm7.elf.xMAP | $(SED) 's/ *([0-9A-F]{8}) [0-9A-F]{8} \S+ +(\w+)\t\(\w+\.o\)/\2,\1/g' | cut -d: -f2) > $@
### Debug Print ###
print-% : ; $(info $* is a $(flavor $*) variable set to [$($*)]) @true
+
+### Other targets
+
+diamond: ; @$(MAKE) GAME_VERSION=DIAMOND
+pearl: ; @$(MAKE) GAME_VERSION=PEARL
+compare_diamond: ; @$(MAKE) GAME_VERSION=DIAMOND COMPARE=1
+compare_pearl: ; @$(MAKE) GAME_VERSION=PEARL COMPARE=1
diff --git a/arm7/Makefile b/arm7/Makefile
index 1b0cd3c3..abb7cf03 100644
--- a/arm7/Makefile
+++ b/arm7/Makefile
@@ -154,7 +154,7 @@ ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(ASM_DIRS))
######################## Special Rules ########################
# TODO: Move out to lib/Makefile
-build/lib/src/%.o: MWCCVERSION = 1.2/sp2p3
+$(BUILD_DIR)/lib/src/%.o: MWCCVERSION = 1.2/sp2p3
####################### Everything Else ######################
diff --git a/arm9/Makefile b/arm9/Makefile
index 36e19417..7938646e 100644
--- a/arm9/Makefile
+++ b/arm9/Makefile
@@ -37,7 +37,7 @@ endif
################ Target Executable and Sources ###############
-BUILD_DIR := build
+BUILD_DIR := build/$(BUILD_NAME)
TARGET := arm9
@@ -183,7 +183,7 @@ OBJDUMP := $(CROSS)objdump
OBJCOPY := $(CROSS)objcopy
# ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm9_thumb.s -o arm9.o
-ASFLAGS = -proc arm5te -i ../include -i ..
+ASFLAGS = -proc arm5te -i ../include -i .. -D$(GAME_VERSION) -D$(GAME_LANGUAGE)
CFLAGS = -O4,p -gccext,on -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -i ../include -ir ../include-mw -ir lib/include -interworking -DFS_IMPLEMENT -enum int -W all -D$(GAME_VERSION) -D$(GAME_LANGUAGE)
CXXFLAGS = -O4,p -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -i ../include -ir ../include-mw -ir lib/include -interworking -DFS_IMPLEMENT -enum int -W all -D$(GAME_VERSION) -D$(GAME_LANGUAGE)
LDFLAGS = -nodead -w off -proc v5te -interworking -map closure,unused -symtab sort -m _start
@@ -229,7 +229,7 @@ MAKEFLAGS += --no-print-directory
all: libs $(ROM)
ifeq ($(COMPARE),1)
- @$(SHA1SUM) -c $(TARGET).sha1
+ @$(SHA1SUM) -c $(BUILD_TARGET).sha1
@echo $(ROM): OK
endif
@@ -261,7 +261,7 @@ ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(ASM_DIRS))
######################## Special Rules ########################
# TODO: Move out to lib/Makefile
-build/lib/src/%.o: MWCCVERSION = 1.2/sp2p3
+$(BUILD_DIR)/lib/src/%.o: MWCCVERSION = 1.2/sp2p3
####################### Everything Else ######################
diff --git a/arm9/arm9.sha1 b/arm9/arm9.sha1
deleted file mode 100644
index 3df1e406..00000000
--- a/arm9/arm9.sha1
+++ /dev/null
@@ -1,89 +0,0 @@
-08470cde58c7bdb9f3664cb975285ab7b0bf46b5 build/arm9.sbin
-2238268b6af1658e79755e07b6a01ed679598c20 build/arm9_table.sbin
-de8a847bff8c343d69b853a215e6ee775ef2ef96 build/MODULE_00.sbin
-efeb3b1410ea015d74802b84094474f937746866 build/MODULE_01.sbin
-de8a847bff8c343d69b853a215e6ee775ef2ef96 build/MODULE_02.sbin
-de8a847bff8c343d69b853a215e6ee775ef2ef96 build/MODULE_03.sbin
-46fb116957d30ab3c292e97c4ad4e4711ac6cf84 build/MODULE_04.sbin
-5b82b77354ff84ac41b0b5f9cd0334e0d0265282 build/MODULE_05.sbin
-085ffcac7b505dece722a4bd2d4210fdfdcbde49 build/MODULE_06.sbin
-0dbbe0f854d7ed6890eeae9dc4a275c748b192bd build/MODULE_07.sbin
-1fb70ec98716a012ecab69045738b679c733b95e build/MODULE_08.sbin
-1eef423b2554ff3b14bc13d7f8774df8e790070b build/MODULE_09.sbin
-de8a847bff8c343d69b853a215e6ee775ef2ef96 build/MODULE_10.sbin
-37c5acdf493116d5e651d02265d90508519ed4b9 build/MODULE_11.sbin
-08828e9b61961ed63209f963e2c08768490224d6 build/MODULE_12.sbin
-c669bc9f3a954f6904a0dc4618d8a1cfdd4db9cf build/MODULE_13.sbin
-35b441e46b7477ddf10f010988d02a79b5c0622d build/MODULE_14.sbin
-4452e2e8ab67d8d4de0cb2e1e9aa2c89ff1a3ac2 build/MODULE_15.sbin
-0aaa8426fe4c356ef50c450d24134ca7fa5ee35c build/MODULE_16.sbin
-efa5b28ecf3c8cd0b2cc0571cccc5e91a0932290 build/MODULE_17.sbin
-5dc5ea5fcfe50af1c6324785a86f8f3876368ac0 build/MODULE_18.sbin
-055d336fca5e30585938b89ae9dcb1274558febf build/MODULE_19.sbin
-773e1e5ae00304b2963553f1998580e325c6189d build/MODULE_20.sbin
-822fcd97cc12b29a9bcff8526da5dc4512f39bb3 build/MODULE_21.sbin
-2ea4283dd68a4d9565bf8dd63ea3bd0eeceb6570 build/MODULE_22.sbin
-6cca7206bb5750285bb4d3284f1b4dacc60d7bf9 build/MODULE_23.sbin
-1b8e7a1e0f656e7e7888a66b296d2edac6eea684 build/MODULE_24.sbin
-e12fa9c7a041f8b6566003a29f2ada49f6ea6e8b build/MODULE_25.sbin
-52e684d649dd06862b93db70b4b23d74baa5a42a build/MODULE_26.sbin
-e502dbf7558262549ab55be969c2a27257a06a87 build/MODULE_27.sbin
-456c1d96b13b6b6827d772fa75583591bbca4b88 build/MODULE_28.sbin
-736a922e1756f3151f7da30825696b653745189e build/MODULE_29.sbin
-6c066d2365ed8aa05a81699f3953c23a7c300794 build/MODULE_30.sbin
-6c8cac2ca9f509d28ce0d3f7316d5945bc1b6702 build/MODULE_31.sbin
-f74a149094393042f9fd8153452ceb2ed6dd257f build/MODULE_32.sbin
-71e17a56d5068edb60f2ee3eb5e12f11963cfb17 build/MODULE_33.sbin
-1483b4eb5227bcc08466acddb0bf59cf23dae9dd build/MODULE_34.sbin
-04eaadd550571cc9e324b3ef0cad7774d3d33bd2 build/MODULE_35.sbin
-95808073fa6c757e7ba680e1f9e7379b6d19e33b build/MODULE_36.sbin
-c7d0b0ef005a0cb1782c5747cc301873a4cb40f5 build/MODULE_37.sbin
-bf2ef426465b56db480ccc9c9a9cc02409c57720 build/MODULE_38.sbin
-2fe6765c83165a4c50330a0aaccc575a9f92bb49 build/MODULE_39.sbin
-91d30f7c93d00e1b9c16cd13b2c73bf822285300 build/MODULE_40.sbin
-996587f925f396e0ce4d773511c32d5dd4288469 build/MODULE_41.sbin
-c9599a45c6f2bac5eb713645a6bfa0b760c2d254 build/MODULE_42.sbin
-61932050f4c85e4b6b1d0e8e7bbb8cec93974128 build/MODULE_43.sbin
-dd8a0e6626a79ceb049857861ca74779c7cec45b build/MODULE_44.sbin
-df0b25d1be30577a6200d3662341ee9e8a7312be build/MODULE_45.sbin
-8257fca389878d54f6f8e2aa932d1696715ae451 build/MODULE_46.sbin
-bc06d4be2fa3b39c503c33e5dad3e7d18c494208 build/MODULE_47.sbin
-18b333c7d3dc32742ab0a7c2a8975451f5883b31 build/MODULE_48.sbin
-550e87a3655505ca69d07f0c8cba96884ec6cbf2 build/MODULE_49.sbin
-58d8f1472458308a534dcbff4d63f768b29aac5a build/MODULE_50.sbin
-64e55516a13d1d64c9171715e7870a52fa8612f6 build/MODULE_51.sbin
-13240d317501187a69264e0da583f50a3f01a797 build/MODULE_52.sbin
-009c82b769a712afe46b05cd71493aafda6a2644 build/MODULE_53.sbin
-b227c417eac45bb27e942c05c9d25785bcd4bf81 build/MODULE_54.sbin
-d5e6ca89821f31a46add7919a520d93231dfcc1f build/MODULE_55.sbin
-7124cc36a6fab727c2474f9c9948aac2d753a9e6 build/MODULE_56.sbin
-836bbb97ee1ad0e92aabe4f235260467c90ba2d1 build/MODULE_57.sbin
-9a4656141b41bd11368019690cf8d4570ed1d9bf build/MODULE_58.sbin
-80f2c555536bd5f11e872f23f5cd4458e01ea02c build/MODULE_59.sbin
-d974d08484422e0342206524fa95cc31532f6a45 build/MODULE_60.sbin
-a6203eb38120b42567d10741b1ad1069e212d3c9 build/MODULE_61.sbin
-9bbe9952d6dc4524b9f726642cfd841c75482629 build/MODULE_62.sbin
-d6b57ae6134b95ca8c2989bb22f25bc7a62ab6e6 build/MODULE_63.sbin
-5ddd33b1071506a85aee57a5d478a446c6ef2cef build/MODULE_64.sbin
-c6ea696afe8492d4c45ebf6438a968e51de93585 build/MODULE_65.sbin
-1bf9511dc93b61a9244180b0d7ad390b229516f6 build/MODULE_66.sbin
-a62de9ee2e221f29bd6c942db912b13cabec5e73 build/MODULE_67.sbin
-6b8e39bb2285d3d6f2772d35678a00ebe4cee359 build/MODULE_68.sbin
-c66fbd0e2ba54d543f4a2ba842f6f70a05b19eec build/MODULE_69.sbin
-6639c4a9a35e7e687664217d7f8ed2ff6b501ffc build/MODULE_70.sbin
-4d5cfa9ff2261a59e6cef3cd7e14e4428d624643 build/MODULE_71.sbin
-de8a847bff8c343d69b853a215e6ee775ef2ef96 build/MODULE_72.sbin
-dc5d200d5557f85e51b1032212c7190dfef404e4 build/MODULE_73.sbin
-031b2bd8bec93c0adf7bc09ce9e85491dca5a479 build/MODULE_74.sbin
-da626fda7e1f4fba1a8048b71dd21402da698cfc build/MODULE_75.sbin
-2a6ee045faacf0d76720b476f77663127d4f1906 build/MODULE_76.sbin
-b18693a936b0284a1c31b124f77e9c8a348b2f59 build/MODULE_77.sbin
-d74a82e1e3f289e67e8f8e74655a7fec631df59c build/MODULE_78.sbin
-782b5de600bc284704bf4020c9afc6ded44628a2 build/MODULE_79.sbin
-b07b591efbe3de8c9e0184ba3cbd4e8df3415e7d build/MODULE_80.sbin
-45179a7021d88902f8f931663620f18fd673ec24 build/MODULE_81.sbin
-40ac0ea1f763271c74c42a12bae557dc5b49ea65 build/MODULE_82.sbin
-5b41270e5534e5fa965d9e762d0e56c2d79e8a6b build/MODULE_83.sbin
-936504d3c568cf0f89b5982f3249bc43097265ae build/MODULE_84.sbin
-944283bd9722dbf8a7a8025794c44eecb2dacd68 build/MODULE_85.sbin
-00151ae462bbde7356e87750ab0176ca84ae45c6 build/MODULE_86.sbin
diff --git a/arm9/asm/secure.s b/arm9/asm/secure.s
index f485088c..588b942e 100644
--- a/arm9/asm/secure.s
+++ b/arm9/asm/secure.s
@@ -3,6 +3,7 @@
.section .text
+.ifdef DIAMOND
.byte 0xFF, 0xDE, 0xFF, 0xE7, 0xFF, 0xDE, 0xFF, 0xE7, 0xFF, 0xDE, 0xFF, 0xE7, 0xFF, 0xDE, 0x42, 0x6E
.byte 0xF9, 0xCC, 0x54, 0x4B, 0x74, 0x53, 0x91, 0x91, 0xBC, 0x95, 0xD2, 0x12, 0xE1, 0xD0, 0xF0, 0x41
.byte 0xE5, 0xB6, 0x47, 0xA4, 0x23, 0x18, 0x61, 0xE9, 0xC4, 0x0A, 0xA2, 0xAD, 0xF8, 0x77, 0xB5, 0x6E
@@ -16,7 +17,8 @@
.byte 0x09, 0x2A, 0x35, 0xD5, 0x40, 0x75, 0x41, 0xFC, 0xA3, 0xCA, 0xEB, 0x03, 0xDA, 0x58, 0x31, 0x72
.byte 0x00, 0xFF, 0x46, 0xC7, 0xBA, 0xDF, 0xEE, 0x29, 0xC5, 0xE1, 0xDB, 0x7D, 0x1C, 0x37, 0x87, 0x63
.byte 0x9A, 0x5A, 0x23, 0xCA, 0x8C, 0x38, 0x5E, 0x98
- non_word_aligned_thumb_func_start SVC_GetCRC16
+ .thumb
+ .global SVC_GetCRC16
SVC_GetCRC16: ; 0x020000C8
swi 14
bx lr
@@ -37,7 +39,8 @@ SVC_GetCRC16: ; 0x020000C8
.byte 0xA2, 0xD5, 0x0E, 0x50, 0xFC, 0x83, 0x70, 0x45, 0x55, 0xAF, 0xF5, 0x89, 0xE2, 0x69, 0x71, 0xBA
.byte 0xFA, 0x75
- non_word_aligned_thumb_func_start SVC_Sqrt
+ .thumb
+ .global SVC_Sqrt
SVC_Sqrt: ; 0x0200019E
swi 13
bx lr
@@ -66,7 +69,8 @@ SVC_Sqrt: ; 0x0200019E
.byte 0x12, 0x75, 0xD5, 0xC2, 0xE9, 0x3E, 0xA9, 0x6E, 0xFB, 0x38, 0xAC, 0xB8, 0x5B, 0x94, 0x81, 0xD5
.byte 0x2F, 0x37, 0xC2, 0xD7, 0xC4, 0xEF, 0x6E, 0x8C, 0x1F, 0xFB, 0x36, 0x1D
- non_word_aligned_thumb_func_start SVC_CpuSet
+ .thumb
+ .global SVC_CpuSet
SVC_CpuSet: ; 0x020002FE
swi 11
bx lr
@@ -119,7 +123,8 @@ SVC_CpuSet: ; 0x020002FE
.byte 0xB1, 0x6D, 0xE0, 0xC6, 0x6B, 0x27, 0xBD, 0x38, 0xC8, 0x69, 0xA3, 0xFE, 0x50, 0x6D, 0xE1, 0x54
.byte 0x6E, 0xB2, 0x1C, 0x5D, 0x04, 0x50, 0x0B, 0x71, 0x97, 0x53, 0x7F, 0x6D, 0x1C, 0x80, 0xA9, 0xE2
- non_word_aligned_thumb_func_start SVC_WaitByLoop
+ .thumb
+ .global SVC_WaitByLoop
SVC_WaitByLoop:
swi 3
bx lr
@@ -157,3 +162,252 @@ SVC_WaitByLoop:
.byte 0x33, 0xCD, 0xDD, 0xD0, 0x49, 0x49, 0x2A, 0x45, 0xDD, 0x0E, 0x6F, 0xF7, 0x76, 0x20, 0xBF, 0xD8
.byte 0xCE, 0x6A, 0x21, 0x6F, 0x09, 0xA6, 0x03, 0xC2, 0x6B, 0x91, 0x46, 0x86, 0x86, 0x30, 0x16, 0x20
.byte 0x32, 0xBE, 0x4F, 0x6F, 0x6A, 0x34, 0xA8, 0xEB, 0x00, 0x00
+.else
+ .byte 0xFF, 0xDE, 0xFF, 0xE7, 0xFF, 0xDE, 0xFF, 0xE7, 0xFF, 0xDE, 0xFF, 0xE7, 0xFF, 0xDE, 0xF2, 0xB4
+ .byte 0x81, 0xC1, 0x6E, 0x73, 0x2D, 0xF1, 0xAB, 0x13, 0x78, 0xCB, 0x22, 0x23, 0xB5, 0xDD, 0xE7, 0x6F
+ .byte 0xE8, 0xFE, 0xA2, 0x31, 0x84, 0x32, 0x7F, 0xB3, 0xFC, 0x32, 0x3B, 0x5F, 0xD2, 0x19, 0x8B, 0xE0
+ .byte 0x9E, 0x58, 0x5A, 0x86, 0xD1, 0x2C, 0x49, 0xC6, 0x75, 0x82, 0xF1, 0xE9, 0x9C, 0x3F, 0x72, 0x77
+ .byte 0xE5, 0x18, 0xFB, 0xE7, 0xCF, 0x29, 0x15, 0xC8, 0xB7, 0x91, 0x73, 0x77, 0xC8, 0x89, 0xD9, 0xE3
+ .byte 0x91, 0x39, 0xA8, 0xC1, 0x22, 0x64, 0xD1, 0xDC, 0x23, 0xDD, 0xA8, 0xD8, 0x40, 0x6A, 0xDE, 0x49
+ .byte 0x0D, 0xFC, 0x09, 0x4F, 0x9C, 0x4B, 0x19, 0xBF, 0xF7, 0xA5, 0x49, 0xA6, 0x2B, 0x2A, 0x7E, 0x76
+ .byte 0xC0, 0x0D, 0x5E, 0x0D, 0xE7, 0x62, 0xE1, 0xCA
+
+ .thumb
+ .global SVC_UncompressRL16FromDevice
+SVC_UncompressRL16FromDevice: ; 0x02000078
+ swi 21
+ bx lr
+
+ .byte 0x8E, 0xCD, 0x45, 0x99, 0xC2, 0xFC, 0x47, 0x0B, 0xF9, 0x33, 0x43, 0x20, 0xED, 0x62, 0xDC, 0x65
+ .byte 0x98, 0x98, 0x03, 0x41, 0x07, 0x6C, 0xA1, 0xF0, 0xF7, 0x76, 0x6A, 0x80, 0xF5, 0xE9, 0xB1, 0xA3
+ .byte 0x7F, 0xEE, 0xC1, 0xC0, 0x9C, 0xD8, 0x22, 0xA3, 0x3A, 0x48, 0x10, 0x9B, 0x49, 0x66, 0xE8, 0x09
+ .byte 0x1C, 0xE0, 0x23, 0xF4, 0x92, 0x78, 0x92, 0x76, 0xFB, 0xBD, 0x4E, 0x63, 0x4A, 0x4B, 0x80, 0xAE
+ .byte 0x98, 0xFC, 0x58, 0x35, 0xC4, 0x08, 0x8A, 0x6F, 0xDD, 0x30, 0xCC, 0x06, 0xAE, 0x80, 0xBC, 0x0C
+ .byte 0xC5, 0xDB, 0x41, 0x60, 0x68, 0x9B, 0xBC, 0x70, 0xD9, 0x93, 0x4C, 0x71, 0xCE, 0xF4, 0x3C, 0x40
+ .byte 0x36, 0xDF, 0x51, 0xDC, 0x88, 0x76, 0xCE, 0x94
+
+ .thumb
+ .global SVC_WaitVBlankIntr
+SVC_WaitVBlankIntr: ; 0x020000E4
+ mov r2, #0
+ swi 5
+ bx lr
+
+ .byte 0x8F, 0x25, 0x5F, 0x13, 0xE1, 0x3C, 0xF0, 0x99, 0x96, 0x05, 0xF2, 0xB5, 0x87, 0xF9, 0x3D, 0x6C
+ .byte 0x5B, 0x0B, 0x85, 0x71, 0x3F, 0x92, 0xE0, 0x2E, 0xC3, 0x56, 0x26, 0x8B, 0xF4, 0x4B, 0x6D, 0x48
+ .byte 0x25, 0xF0, 0x17, 0x26, 0x95, 0x35, 0x09, 0x85, 0xB9, 0xFB, 0x57, 0x08, 0x3A, 0xE6, 0xAF, 0x38
+ .byte 0x5F, 0x0C, 0xAB, 0x8F, 0x7B, 0x81, 0x35, 0xE2, 0xC1, 0xD3, 0x5A, 0x9B, 0x85, 0xC5, 0xE6, 0x1C
+ .byte 0x10, 0xEC, 0xF5, 0x3C, 0x2B, 0x77, 0x27, 0xE2, 0xC3, 0x87, 0x07, 0x09, 0x2F, 0x78, 0xB2, 0x1E
+ .byte 0x72, 0x59, 0xEF, 0xC8
+
+ .thumb
+ .global SVC_UnpackBits
+SVC_UnpackBits: ; 0x0200013E
+ swi 16
+ bx lr
+
+ .byte 0x7F, 0x0D, 0x98, 0xCA, 0x0D, 0x6B, 0xAA, 0xE1, 0xBB, 0x0E, 0xC6, 0x6B, 0xB9, 0x85, 0x13, 0x01
+ .byte 0x11, 0xC9, 0xC0, 0x37, 0x2B, 0xB5, 0x7A, 0x1B, 0x98, 0xA7, 0xA4, 0x53, 0x3F, 0xCD, 0x02, 0xD1
+ .byte 0xFA, 0xF1, 0xE5, 0xAC, 0x05, 0x1C, 0xCD, 0x10, 0x19, 0x76, 0xAB, 0xDC, 0xBF, 0xEE, 0x2B, 0x10
+ .byte 0x80, 0x04, 0xFF, 0x43, 0x83, 0x91, 0x48, 0x0F, 0x62, 0xC6, 0xC4, 0xE2, 0x87, 0x4E, 0x51, 0x94
+ .byte 0x84, 0xBE, 0x25, 0x57, 0x56, 0x35, 0xA8, 0x74, 0xE8, 0x5B, 0x23, 0x77, 0xE5, 0x9A, 0x51, 0xDC
+ .byte 0x6F, 0x2E, 0xBF, 0x2B, 0xF6, 0x1B, 0xC7, 0x60, 0x89, 0xE0, 0xE3, 0x66, 0xDD, 0x82, 0x2D, 0xE1
+ .byte 0xE7, 0xC9, 0x66, 0x08, 0x37, 0x48, 0xD4, 0x0D, 0x6F, 0x84, 0xBB, 0x28, 0xF7, 0x9A, 0x0F, 0x81
+ .byte 0xF5, 0xF9, 0xD7, 0x05, 0x5C, 0x5B, 0xA4, 0xCF, 0x3F, 0xBD, 0x02, 0xC6, 0x54, 0x59
+
+ .thumb
+ .global SVC_UncompressLZ16FromDevice
+SVC_UncompressLZ16FromDevice: ; 0x020001C0
+ swi 18
+ bx lr
+
+ .byte 0xEA, 0xE2, 0x38, 0xCD, 0x7B, 0x60, 0x77, 0x99, 0x13, 0x94, 0x94, 0x7C, 0xD1, 0xB4, 0xA2, 0x68
+ .byte 0xB3, 0x9A, 0x06, 0x50, 0xA5, 0xB8, 0x42, 0x29, 0x6F, 0x7F, 0xBB, 0xC3, 0xB6, 0xDC, 0x6F, 0x3E
+ .byte 0x8E, 0x83, 0xD6, 0x49, 0x09, 0x87, 0x2F, 0x33, 0xA8, 0x9C, 0xBA, 0x1C, 0x7B, 0x94, 0xFA, 0x3B
+ .byte 0xE9, 0xED, 0xA8, 0x5A, 0xE5, 0x56, 0x78, 0xDA, 0xDC, 0x01, 0xAB, 0x56, 0xE7, 0x49, 0xF3, 0xC6
+ .byte 0xED, 0x36, 0x9C, 0x6A, 0xC9, 0xC0, 0x91, 0x9E, 0x7A, 0xDA, 0x05, 0x96, 0xB3, 0xF3, 0x22, 0x2E
+ .byte 0xB8, 0xA9, 0x9F, 0xA9, 0xCC, 0xDA, 0x01, 0x3A, 0xA3, 0x31, 0xDA, 0x35, 0x27, 0xF2, 0x58, 0xA5
+ .byte 0x53, 0x89, 0x8C, 0xA5, 0xBA, 0x7F, 0x13, 0x0F, 0x3A, 0xC5
+
+ .thumb
+ .global SVC_SoftReset
+SVC_SoftReset: ; 0x0200022E
+ swi 0
+ bx lr
+
+ .byte 0x80, 0xBE, 0x17, 0xC4, 0x7B, 0x18, 0xE4, 0x43, 0x96, 0x59, 0x0A, 0x7B, 0xB0, 0x46, 0xEE, 0x18
+ .byte 0x40, 0x4E, 0x48, 0x1A, 0xB8, 0x78, 0x9E, 0x1A, 0x19, 0xD5, 0x3A, 0x7E, 0x80, 0x39, 0xD0, 0xFA
+ .byte 0x8B, 0x56, 0xB7, 0x0F, 0x28, 0x90, 0xFC, 0x7F, 0xFF, 0x44, 0xB2, 0x2B, 0xE0, 0xE6, 0x72, 0x03
+ .byte 0x34, 0x30, 0x8B, 0x45, 0x80, 0x56, 0xD2, 0xD0, 0xB0, 0xC5, 0xF8, 0xCA, 0xF9, 0xC3, 0x9C, 0x4E
+ .byte 0xC7, 0x51, 0x9B, 0xAA, 0x9A, 0x73, 0x81, 0x21, 0x7B, 0x8C, 0xBC, 0x79, 0x53, 0x7F, 0x9D, 0xE0
+ .byte 0xFD, 0x82, 0xAE, 0x4E, 0x09, 0xDF, 0x08, 0x1C, 0x70, 0x47, 0x2F, 0x43, 0x55, 0x76, 0x8C, 0x0A
+ .byte 0x13, 0x3A, 0x13, 0x61, 0x9F, 0xF0, 0xD3, 0x7C, 0x7C, 0x85, 0x69, 0x62, 0x91, 0x29, 0x6D, 0x5F
+ .byte 0xB6, 0xAD, 0x42, 0x9D, 0x66, 0x8C, 0x02, 0x01, 0x3F, 0x78, 0x41, 0x25, 0xDE, 0xE7, 0x30, 0xE4
+ .byte 0xBA, 0xEC, 0x6C, 0x0F, 0x4B, 0x23, 0x75, 0x84, 0xD7, 0x19, 0x95, 0xBB, 0x86, 0x6D, 0xCC, 0x36
+ .byte 0xCF, 0xEC, 0x0A, 0xCF, 0x99, 0x3A, 0x0B, 0x01, 0xCF, 0x52, 0x7D, 0xD5, 0x33, 0x2D, 0x99, 0x31
+ .byte 0x48, 0x43, 0xFE, 0x53, 0xF6, 0x49, 0x74, 0xF7, 0xCC, 0x85, 0xAE, 0xD1, 0x9D, 0x56, 0x6E, 0xDE
+ .byte 0xC3, 0x0D, 0x19, 0x29, 0x27, 0xC6, 0x1F, 0x39, 0x6C, 0xDB, 0x9F, 0x56, 0x4E, 0x39, 0x9E, 0x5F
+ .byte 0xB1, 0xBD, 0x25, 0xE9, 0x1D, 0xFB, 0x12, 0xCF
+
+ .thumb
+ .global SVC_UncompressHuffmanFromDevice
+SVC_UncompressHuffmanFromDevice: ; 0x020002FA
+ swi 19
+ bx lr
+
+ .byte 0x88, 0x07, 0x93, 0x96, 0xCD, 0xEF, 0xB4, 0x07, 0x96, 0xD3, 0xE6, 0xD8, 0x05, 0x2A, 0xF5, 0xCB
+ .byte 0x2D, 0x82, 0x9D, 0xB1, 0xA7, 0xDA, 0x38, 0xC1, 0x37, 0x70, 0x6A, 0xA3, 0x28, 0x43, 0xAC, 0x7A
+ .byte 0x20, 0x83, 0xBA, 0x90, 0x8A, 0x49, 0xAA, 0x1A, 0x41, 0x6E, 0x92, 0x21, 0xE8, 0xDA, 0x66, 0x70
+ .byte 0x78, 0x32, 0x77, 0x66, 0x7F, 0xCD, 0xE4, 0x0C, 0x69, 0x20, 0x35, 0x9C, 0x9A, 0xC7, 0xDC, 0x1F
+ .byte 0x4C, 0x73, 0x57, 0xB5, 0xBA, 0xFB, 0x44, 0x05, 0xBA, 0x06, 0x7B, 0x29, 0xAC, 0x5E, 0x04, 0x66
+ .byte 0xC5, 0x77, 0x87, 0x6B, 0x3F, 0xE4, 0xC1, 0xEE, 0x8C, 0x22, 0x1A, 0x07, 0x63, 0xD5, 0xB6, 0xAF
+ .byte 0x32, 0xA2, 0xFE, 0x6E, 0x38, 0x11, 0xF3, 0x45, 0x7C, 0xB5, 0x1C, 0x3D, 0x5C, 0x62, 0xFA, 0x7A
+ .byte 0x2B, 0x4E, 0x8C, 0x92, 0x66, 0x60
+
+ .thumb
+ .global SVC_UncompressRL8
+SVC_UncompressRL8: ; 0x02000374
+ swi 20
+ bx lr
+
+ .byte 0x43, 0xA3, 0x40, 0x36, 0x0E, 0x7C, 0xAE, 0x48, 0x76, 0xF1, 0x9F, 0xF4, 0x6F, 0xA8, 0x27, 0x16
+ .byte 0xDD, 0xEC, 0x04, 0x90, 0xA0, 0x83, 0x47, 0x9E, 0xE6, 0x5E, 0x84, 0x83, 0xDE, 0x53, 0x31, 0xFF
+ .byte 0xFE, 0xF3, 0x6A, 0xB2, 0x00, 0xBC, 0x2C, 0x03, 0x94, 0x79, 0x0C, 0x82, 0xE4, 0x6A, 0xE2, 0xB6
+ .byte 0x36, 0xFB, 0x39, 0x9B, 0xE0, 0xBC, 0xBF, 0x11, 0x07, 0x36, 0x4C, 0xD0, 0x88, 0xD7, 0x3D, 0x27
+ .byte 0xDF, 0x72, 0x65, 0x63, 0x15, 0x7E, 0x5E, 0x1A, 0x52, 0xBA, 0xA8, 0xCA, 0xA1, 0xEA, 0x91, 0x2D
+ .byte 0x86, 0x78, 0x86, 0xB8, 0xC1, 0x1B, 0x54, 0x44, 0xD6, 0xDA, 0xE5, 0x47, 0x2B, 0x18, 0x0D, 0xB8
+ .byte 0x6B, 0xAB, 0x68, 0xCF, 0x27, 0x8D
+
+ .thumb
+ .global SVC_Halt
+SVC_Halt: ; 0x020003DE
+ swi 6
+ bx lr
+
+ .byte 0x5F, 0x28, 0xC9, 0x01, 0xDD, 0x41, 0xE2, 0x97, 0x5F, 0xEE, 0xA6, 0xC6, 0x20, 0x09, 0xB0, 0xC9
+ .byte 0x56, 0xC1, 0x3F, 0x32, 0xBF, 0x1C, 0xD6, 0xF4, 0x1F, 0x0D, 0xD3, 0xA2, 0xBC, 0xA3, 0xBA, 0x4D
+ .byte 0x7A, 0x75, 0xE9, 0xB6, 0x47, 0x5A, 0xDA, 0x7C, 0x43, 0x88, 0xFD, 0x04, 0x16, 0xA5, 0x8E, 0xC8
+ .byte 0xE4, 0x11, 0xEB, 0x4F, 0x73, 0x9C, 0x7C, 0x70, 0x90, 0xC6, 0x01, 0x56, 0x3E, 0x29, 0xF0, 0x0B
+ .byte 0xC4, 0xA1, 0x9F, 0x2D, 0x57, 0x65, 0xA7, 0x8B, 0xA4, 0xEC, 0x97, 0xDB, 0x80, 0xA6, 0xC3, 0x1A
+ .byte 0x5A, 0x6D, 0xBE, 0x22, 0x94, 0x34, 0xC4, 0x84, 0x7B, 0x39, 0xDE, 0xB5, 0x00, 0x16, 0xB0, 0x5B
+ .byte 0xE4, 0xE1, 0xF4, 0xB6, 0xE8, 0x02, 0x2A, 0xBF, 0x10, 0x0C, 0x34, 0x6D, 0x42, 0xF5, 0xC5, 0x60
+
+ .thumb
+ .global SVC_Div
+SVC_Div: ; 0x02000452
+ swi 9
+ bx lr
+
+ .byte 0x4E, 0xC7, 0xBB, 0x05, 0x37, 0xAE, 0x1C, 0x8C, 0x47, 0x91, 0xCF, 0x51, 0x1C, 0x20, 0xC6, 0xD4
+ .byte 0x66, 0x00, 0xD3, 0x84, 0x92, 0x0C, 0xF4, 0xF8, 0x43, 0xBC, 0x47, 0x4D, 0x7A, 0xBC, 0xC8, 0x2B
+ .byte 0x1D, 0x1D, 0xD3, 0x47, 0x14, 0xCF, 0x27, 0x41, 0x03, 0x89, 0xE8, 0xCD, 0xD4, 0x60, 0x6A, 0xBF
+ .byte 0x96, 0xDD, 0x82, 0xE6, 0x13, 0x2C, 0x2D, 0xB7, 0xA9, 0xB0, 0xB2, 0x5D, 0xF0, 0x2A, 0x49, 0x22
+ .byte 0xEC, 0xAE, 0x7C, 0x8E, 0xE7, 0x13, 0xE6, 0x56, 0x96, 0x65, 0x78, 0xA9, 0x68, 0x42, 0x59, 0x96
+ .byte 0x82, 0x9C, 0xFF, 0xEE, 0x0F, 0xB2
+
+ .thumb
+ .global SVC_Sqrt
+SVC_Sqrt: ; 0x020004AC
+ swi 13
+ bx lr
+
+ .byte 0x64, 0x00, 0xAB, 0xE4, 0xBB, 0xA5, 0xF3, 0x44, 0x45, 0x5D, 0xA2, 0xBE, 0x0A, 0x71, 0xB5, 0xFB
+ .byte 0xAE, 0x64, 0x4B, 0xF4, 0x05, 0xA3, 0x21, 0x4F, 0x4F, 0x6A, 0x62, 0xA7, 0x72, 0xFE, 0xD9, 0x98
+ .byte 0x37, 0x36, 0x79, 0xFC, 0xE7, 0x9C, 0xBB, 0xFB, 0x98, 0x1B, 0x6D, 0x03, 0xBE, 0x96, 0x72, 0x69
+ .byte 0xC7, 0x69, 0x1A, 0xFA, 0x15, 0x84, 0x37, 0xA2, 0x1C, 0x6F, 0x83, 0xCF, 0x02, 0x4D, 0xCF, 0x5F
+ .byte 0x4E, 0x41, 0xE0, 0x7C, 0x30, 0xE8, 0x3C, 0xB0, 0x24, 0x76, 0x7A, 0x4D, 0xAF, 0x20, 0xD3, 0x7D
+ .byte 0x08, 0x2B, 0xA5, 0x1D, 0xA1, 0xC6, 0x60, 0xD2, 0x72, 0xC6
+
+ .thumb
+ .global SVC_WaitByLoop
+SVC_WaitByLoop: ; 0x0200050A
+ swi 3
+ bx lr
+
+ .byte 0x25, 0x1F, 0xBA, 0x2C, 0x1B, 0x23, 0xC3, 0xFE, 0x7D, 0xED, 0x2E, 0x19, 0xE1, 0x77, 0xBE, 0x6A
+ .byte 0x0D, 0x4B, 0xBA, 0x67, 0x8E, 0x98, 0xC0, 0x40, 0x29, 0x30, 0x80, 0xD1, 0x7E, 0xCD, 0x76, 0xB2
+ .byte 0xE6, 0xC9, 0x20, 0x88, 0xCC, 0x25, 0x62, 0x6E, 0xCF, 0xC1, 0x1F, 0x35, 0x08, 0x8F, 0x18, 0x40
+ .byte 0x41, 0x30, 0x03, 0xAE, 0xE0, 0x5A, 0xB7, 0x03, 0xCB, 0x18, 0x83, 0x98, 0xCB, 0x25, 0x9B, 0xD0
+ .byte 0xC6, 0x7B, 0xE0, 0x7B, 0x02, 0x86, 0xCE, 0x55, 0x80, 0x7F, 0x15, 0x64, 0x79, 0xC6, 0xBB, 0x2C
+ .byte 0x25, 0xCA, 0x08, 0x51, 0x77, 0x56, 0x0C, 0x5F, 0x63, 0x91, 0x80, 0xF5, 0x5B, 0x66, 0xCD, 0x00
+ .byte 0xDF, 0x32, 0x29, 0x7F, 0xEF, 0x32, 0x1D, 0xBB, 0xAA, 0xF3, 0xDC, 0xAC, 0xBF, 0xF4, 0xA1, 0x87
+ .byte 0xF5, 0x59
+
+ .thumb
+ .global SVC_GetCRC16
+SVC_GetCRC16: ; 0x02000580
+ swi 14
+ bx lr
+
+ .byte 0xFF, 0x01, 0xBB, 0x78, 0xAC, 0xB6, 0x11, 0x1F, 0x37, 0xF3, 0x01, 0x06, 0xD0, 0x01, 0x00, 0x9A
+ .byte 0xFD, 0xCB, 0x18, 0x06, 0x0A, 0xF4, 0xD6, 0x8D, 0x71, 0x57, 0xFE, 0xCA, 0xF2, 0x2B, 0xF2, 0xDF
+ .byte 0xC7, 0xE8, 0x8A, 0x28, 0x52, 0x95, 0x19, 0xF1, 0x3B, 0xE6, 0x4E, 0x8B, 0xD2, 0x02, 0x54, 0x42
+ .byte 0x02, 0x4A, 0x40, 0x04, 0xA6, 0x24, 0xC1, 0xDB, 0x7E, 0x6A, 0x73, 0x19, 0xD2, 0x18, 0x86, 0x48
+ .byte 0x99, 0xC3, 0x7B, 0x35, 0x3A, 0x7B, 0x76, 0x35, 0x0C, 0x82, 0x53, 0xD0, 0x5D, 0xD9, 0x97, 0xBC
+ .byte 0x48, 0x80, 0x4C, 0xD5
+
+ .thumb
+ .global SVC_CpuSetFast
+SVC_CpuSetFast: ; 0x020005D8
+ swi 12
+ bx lr
+
+ .byte 0x36, 0xF2, 0xD9, 0x9A, 0xDB, 0xAA, 0x63, 0xF2, 0xBD, 0x54, 0xFC, 0x40, 0x84, 0xB2, 0x35, 0xE5
+ .byte 0x26, 0x36, 0x25, 0x89, 0x4B, 0x9C, 0xE2, 0x94, 0x28, 0x21, 0xB7, 0x46, 0x78, 0x4C, 0xBB, 0x52
+ .byte 0x43, 0x6E, 0x23, 0x67, 0xDB, 0xEC, 0x8F, 0x93, 0xD2, 0xA2, 0x3A, 0xA5, 0x7D, 0x92, 0x97, 0x00
+ .byte 0xAD, 0xDC, 0x3B, 0xF1, 0x37, 0x7E, 0x9E, 0x7B, 0x4E, 0xD0, 0xE2, 0xE9, 0x6B, 0xBC, 0xB7, 0x50
+ .byte 0xE7, 0x00, 0x0C, 0x0A, 0x1E, 0xA5, 0x2D, 0x16, 0xB7, 0xF8, 0xBF, 0x54
+
+ .thumb
+ .global SVC_WaitIntr
+SVC_WaitIntr: ; 0x02000628
+ mov r2, #0
+ swi 4
+ bx lr
+
+ .byte 0x8C, 0x18, 0xF9, 0x04, 0x15, 0x40, 0x93, 0x79, 0xC7, 0x6A, 0xA8, 0x38, 0x08, 0xD6, 0xB3, 0x87
+ .byte 0xCB, 0xBB, 0x55, 0xDE, 0xF6, 0x4D, 0xBC, 0x95, 0xD7, 0x64, 0xE6, 0x66, 0xA5, 0xA5, 0xDA, 0x49
+ .byte 0x77, 0x69, 0x14, 0x0F, 0x0C, 0xFE, 0x30, 0x61, 0x05, 0xA3, 0x72, 0xFB, 0x20, 0xB7, 0x1A, 0xE1
+ .byte 0x5D, 0x17, 0xCC, 0x8A, 0x12, 0x36, 0x08, 0x63, 0x63, 0xE6, 0xA8, 0x09, 0x12, 0x62, 0x30, 0x4F
+ .byte 0xAA, 0x47, 0x70, 0x67, 0x08, 0xE1, 0x35, 0x28, 0xFE, 0xFE, 0x24, 0x75, 0x14, 0x03, 0x40, 0x3E
+ .byte 0x47, 0xEC, 0xC1, 0xA3, 0x4C, 0x42, 0xE9, 0xB0, 0x27, 0x33, 0x3F, 0xC1, 0xFC, 0xE8, 0x34, 0x66
+ .byte 0xB7, 0xDB, 0xCB, 0x66, 0x6A, 0x9E, 0x2F, 0x5D, 0x69, 0xB4, 0x38, 0x57, 0x49, 0x1E, 0x0F, 0xBF
+ .byte 0x4F, 0x98, 0x7F, 0x35, 0xB8, 0xAB, 0x7C, 0x02, 0xB4, 0x5B, 0xA9, 0x1F, 0x75, 0x00, 0xF1, 0x7D
+ .byte 0xC7, 0x79, 0xFB, 0x23
+
+ .thumb
+ .global SVC_CpuSet
+SVC_CpuSet: ; 0x020006B2
+ swi 11
+ bx lr
+
+ .byte 0x41, 0x89, 0x4D, 0x99, 0x93, 0xBA, 0xCE, 0x99, 0xE6, 0xAF, 0x92, 0x54, 0x2F, 0x8E, 0xB3, 0xCD
+ .byte 0x2E, 0xD0, 0x48, 0x52, 0x5B, 0xE6, 0xE1, 0x31, 0x6A, 0x30, 0xF8, 0x3B, 0x54, 0x0B, 0x4B, 0xC9
+ .byte 0x17, 0x06, 0x9F, 0xA0, 0xAE, 0x24, 0xFF, 0x94, 0x33, 0x32, 0x41, 0x1D, 0x89, 0xAC, 0x9E, 0x42
+ .byte 0xA4, 0x8E, 0x75, 0x48, 0x1F, 0x6E, 0x2A, 0xDB, 0xAC, 0x54, 0x55, 0x27, 0x36, 0xBB, 0x7F, 0x9D
+ .byte 0x57, 0xD4, 0x32, 0x5B, 0xA9, 0x29, 0x15, 0x98, 0xBB, 0x9C, 0x93, 0x88, 0x62, 0x25, 0xA0, 0x8B
+ .byte 0x2F, 0x19, 0xDF, 0x72, 0x7E, 0x73, 0x86, 0x0C, 0x1E, 0x5B, 0xA5, 0x9D, 0xF1, 0xCD, 0x45, 0x62
+ .byte 0xE5, 0x62, 0xCA, 0xE4, 0x2F, 0x20, 0xCE, 0x44, 0x9F, 0xFC, 0x14, 0xCF, 0x0E, 0xD2, 0xC3, 0x56
+ .byte 0x92, 0x29, 0x5A, 0xF1, 0x11, 0xDF, 0x70, 0x47, 0xC8, 0x58, 0x5C, 0x38, 0x05, 0x09, 0x09, 0x37
+ .byte 0x19, 0x37, 0xE9, 0x0A, 0x56, 0xF5, 0x5F, 0x57, 0x9C, 0xA8, 0x91, 0x87, 0xFB, 0x03, 0xE3, 0xD2
+ .byte 0x07, 0x4E, 0xC9, 0x39, 0x37, 0xC1, 0x50, 0x29, 0x1C, 0x36, 0x33, 0xBC, 0x57, 0x37, 0x82, 0xA4
+ .byte 0x69, 0x2C, 0xA2, 0x3D, 0x05, 0x3E, 0xCE, 0x4C, 0x53, 0x89, 0x49, 0x3B, 0xCC, 0x15, 0xF2, 0xB5
+ .byte 0xD6, 0x28, 0x97, 0x98, 0xFB, 0x28, 0xFA, 0xD4, 0x58, 0x1C, 0x29, 0x37, 0x0C, 0x52, 0xB4, 0xCA
+ .byte 0x4B, 0x0B, 0x39, 0x6A, 0xDB, 0x40, 0xF9, 0xA2, 0xA3, 0x5B, 0x6C, 0x58, 0x17, 0x75, 0x8E, 0xB3
+ .byte 0xF2, 0xF4, 0xA1, 0x39, 0x17, 0xD9, 0x7B, 0x9C
+
+ .thumb
+ .global IsMmemExpanded
+IsMmemExpanded: ; 0x0200078E
+ swi 15
+ bx lr
+
+ .byte 0x77, 0x04, 0xED, 0xD8, 0xD3, 0x0B, 0xEB, 0x51, 0x73, 0xA7, 0x84, 0x7E, 0x54, 0x52, 0xDE, 0x0B
+ .byte 0x6F, 0xF4, 0xC4, 0x7F, 0xF6, 0x60, 0x00, 0xD6, 0x24, 0xD3, 0x41, 0x86, 0x99, 0xE8, 0x29, 0xAF
+ .byte 0x5C, 0x16, 0xC1, 0x5D, 0x6E, 0xE6, 0x4B, 0x67, 0x51, 0xAC, 0xE4, 0xD6, 0x5B, 0x50, 0x6B, 0xDE
+ .byte 0x27, 0x38, 0xF8, 0x0D, 0x0E, 0x81, 0xDB, 0x80, 0x93, 0xF0, 0xD8, 0x08, 0xA5, 0xF6, 0x7C, 0xE5
+ .byte 0x34, 0xCC, 0x86, 0x4D, 0xDE, 0xC3, 0x81, 0xB4, 0xB7, 0x4B, 0x8B, 0x94, 0x41, 0xD8, 0x98, 0x7B
+ .byte 0x5F, 0x79, 0x21, 0x3D, 0xC5, 0x92, 0xFC, 0x3B, 0x9A, 0x88, 0x54, 0x14, 0x40, 0x00, 0x3E, 0x7D
+ .byte 0x98, 0xE4, 0x50, 0xA9, 0xA0, 0xB7, 0xCC, 0x79, 0x30, 0xFE, 0xAC, 0x85, 0x00, 0x00
+
+ .endif
diff --git a/arm9/asm/unk_02034A28.s b/arm9/asm/unk_02034A28.s
index 9185622e..d0cc2c05 100644
--- a/arm9/asm/unk_02034A28.s
+++ b/arm9/asm/unk_02034A28.s
@@ -413,7 +413,11 @@ FUN_02034CB4: ; 0x02034CB4
bl FUN_020347FC
add r2, r0, #0x0
add r0, r5, #0x0
+ .ifdef DIAMOND
mov r1, #0x25
+ .else
+ mov r1, #0x8f
+ .endif
bl ReadWholeNarcMemberByIdPair
_02034CDE:
pop {r3-r5, pc}
diff --git a/arm9/asm/unk_020772F0.s b/arm9/asm/unk_020772F0.s
index 9f83df6f..b5d3c180 100644
--- a/arm9/asm/unk_020772F0.s
+++ b/arm9/asm/unk_020772F0.s
@@ -971,6 +971,9 @@ FUN_020777D4: ; 0x020777D4
mov r0, #0x17
lsl r0, r0, #0x4
ldr r0, [r5, r0]
+ .ifdef PEARL
+ add r1, #0x2c
+ .endif
bl NewString_ReadMsgData
add r6, r0, #0x0
b _0207781A
@@ -1004,7 +1007,11 @@ _02077836:
mov r0, #0x17
lsl r0, r0, #0x4
ldr r0, [r5, r0]
+ .ifdef DIAMOND
mov r1, #0x58
+ .else
+ mov r1, #0x59
+ .endif
bl NewString_ReadMsgData
add r5, r0, #0x0
ldr r0, [r4, #0x18]
diff --git a/arm9/pokediamond.us.sha1 b/arm9/pokediamond.us.sha1
new file mode 100644
index 00000000..6ec05064
--- /dev/null
+++ b/arm9/pokediamond.us.sha1
@@ -0,0 +1,89 @@
+08470cde58c7bdb9f3664cb975285ab7b0bf46b5 build/diamond.us/arm9.sbin
+2238268b6af1658e79755e07b6a01ed679598c20 build/diamond.us/arm9_table.sbin
+de8a847bff8c343d69b853a215e6ee775ef2ef96 build/diamond.us/MODULE_00.sbin
+efeb3b1410ea015d74802b84094474f937746866 build/diamond.us/MODULE_01.sbin
+de8a847bff8c343d69b853a215e6ee775ef2ef96 build/diamond.us/MODULE_02.sbin
+de8a847bff8c343d69b853a215e6ee775ef2ef96 build/diamond.us/MODULE_03.sbin
+46fb116957d30ab3c292e97c4ad4e4711ac6cf84 build/diamond.us/MODULE_04.sbin
+5b82b77354ff84ac41b0b5f9cd0334e0d0265282 build/diamond.us/MODULE_05.sbin
+085ffcac7b505dece722a4bd2d4210fdfdcbde49 build/diamond.us/MODULE_06.sbin
+0dbbe0f854d7ed6890eeae9dc4a275c748b192bd build/diamond.us/MODULE_07.sbin
+1fb70ec98716a012ecab69045738b679c733b95e build/diamond.us/MODULE_08.sbin
+1eef423b2554ff3b14bc13d7f8774df8e790070b build/diamond.us/MODULE_09.sbin
+de8a847bff8c343d69b853a215e6ee775ef2ef96 build/diamond.us/MODULE_10.sbin
+37c5acdf493116d5e651d02265d90508519ed4b9 build/diamond.us/MODULE_11.sbin
+08828e9b61961ed63209f963e2c08768490224d6 build/diamond.us/MODULE_12.sbin
+c669bc9f3a954f6904a0dc4618d8a1cfdd4db9cf build/diamond.us/MODULE_13.sbin
+35b441e46b7477ddf10f010988d02a79b5c0622d build/diamond.us/MODULE_14.sbin
+4452e2e8ab67d8d4de0cb2e1e9aa2c89ff1a3ac2 build/diamond.us/MODULE_15.sbin
+0aaa8426fe4c356ef50c450d24134ca7fa5ee35c build/diamond.us/MODULE_16.sbin
+efa5b28ecf3c8cd0b2cc0571cccc5e91a0932290 build/diamond.us/MODULE_17.sbin
+5dc5ea5fcfe50af1c6324785a86f8f3876368ac0 build/diamond.us/MODULE_18.sbin
+055d336fca5e30585938b89ae9dcb1274558febf build/diamond.us/MODULE_19.sbin
+773e1e5ae00304b2963553f1998580e325c6189d build/diamond.us/MODULE_20.sbin
+822fcd97cc12b29a9bcff8526da5dc4512f39bb3 build/diamond.us/MODULE_21.sbin
+2ea4283dd68a4d9565bf8dd63ea3bd0eeceb6570 build/diamond.us/MODULE_22.sbin
+6cca7206bb5750285bb4d3284f1b4dacc60d7bf9 build/diamond.us/MODULE_23.sbin
+1b8e7a1e0f656e7e7888a66b296d2edac6eea684 build/diamond.us/MODULE_24.sbin
+e12fa9c7a041f8b6566003a29f2ada49f6ea6e8b build/diamond.us/MODULE_25.sbin
+52e684d649dd06862b93db70b4b23d74baa5a42a build/diamond.us/MODULE_26.sbin
+e502dbf7558262549ab55be969c2a27257a06a87 build/diamond.us/MODULE_27.sbin
+456c1d96b13b6b6827d772fa75583591bbca4b88 build/diamond.us/MODULE_28.sbin
+736a922e1756f3151f7da30825696b653745189e build/diamond.us/MODULE_29.sbin
+6c066d2365ed8aa05a81699f3953c23a7c300794 build/diamond.us/MODULE_30.sbin
+6c8cac2ca9f509d28ce0d3f7316d5945bc1b6702 build/diamond.us/MODULE_31.sbin
+f74a149094393042f9fd8153452ceb2ed6dd257f build/diamond.us/MODULE_32.sbin
+71e17a56d5068edb60f2ee3eb5e12f11963cfb17 build/diamond.us/MODULE_33.sbin
+1483b4eb5227bcc08466acddb0bf59cf23dae9dd build/diamond.us/MODULE_34.sbin
+04eaadd550571cc9e324b3ef0cad7774d3d33bd2 build/diamond.us/MODULE_35.sbin
+95808073fa6c757e7ba680e1f9e7379b6d19e33b build/diamond.us/MODULE_36.sbin
+c7d0b0ef005a0cb1782c5747cc301873a4cb40f5 build/diamond.us/MODULE_37.sbin
+bf2ef426465b56db480ccc9c9a9cc02409c57720 build/diamond.us/MODULE_38.sbin
+2fe6765c83165a4c50330a0aaccc575a9f92bb49 build/diamond.us/MODULE_39.sbin
+91d30f7c93d00e1b9c16cd13b2c73bf822285300 build/diamond.us/MODULE_40.sbin
+996587f925f396e0ce4d773511c32d5dd4288469 build/diamond.us/MODULE_41.sbin
+c9599a45c6f2bac5eb713645a6bfa0b760c2d254 build/diamond.us/MODULE_42.sbin
+61932050f4c85e4b6b1d0e8e7bbb8cec93974128 build/diamond.us/MODULE_43.sbin
+dd8a0e6626a79ceb049857861ca74779c7cec45b build/diamond.us/MODULE_44.sbin
+df0b25d1be30577a6200d3662341ee9e8a7312be build/diamond.us/MODULE_45.sbin
+8257fca389878d54f6f8e2aa932d1696715ae451 build/diamond.us/MODULE_46.sbin
+bc06d4be2fa3b39c503c33e5dad3e7d18c494208 build/diamond.us/MODULE_47.sbin
+18b333c7d3dc32742ab0a7c2a8975451f5883b31 build/diamond.us/MODULE_48.sbin
+550e87a3655505ca69d07f0c8cba96884ec6cbf2 build/diamond.us/MODULE_49.sbin
+58d8f1472458308a534dcbff4d63f768b29aac5a build/diamond.us/MODULE_50.sbin
+64e55516a13d1d64c9171715e7870a52fa8612f6 build/diamond.us/MODULE_51.sbin
+13240d317501187a69264e0da583f50a3f01a797 build/diamond.us/MODULE_52.sbin
+009c82b769a712afe46b05cd71493aafda6a2644 build/diamond.us/MODULE_53.sbin
+b227c417eac45bb27e942c05c9d25785bcd4bf81 build/diamond.us/MODULE_54.sbin
+d5e6ca89821f31a46add7919a520d93231dfcc1f build/diamond.us/MODULE_55.sbin
+7124cc36a6fab727c2474f9c9948aac2d753a9e6 build/diamond.us/MODULE_56.sbin
+836bbb97ee1ad0e92aabe4f235260467c90ba2d1 build/diamond.us/MODULE_57.sbin
+9a4656141b41bd11368019690cf8d4570ed1d9bf build/diamond.us/MODULE_58.sbin
+80f2c555536bd5f11e872f23f5cd4458e01ea02c build/diamond.us/MODULE_59.sbin
+d974d08484422e0342206524fa95cc31532f6a45 build/diamond.us/MODULE_60.sbin
+a6203eb38120b42567d10741b1ad1069e212d3c9 build/diamond.us/MODULE_61.sbin
+9bbe9952d6dc4524b9f726642cfd841c75482629 build/diamond.us/MODULE_62.sbin
+d6b57ae6134b95ca8c2989bb22f25bc7a62ab6e6 build/diamond.us/MODULE_63.sbin
+5ddd33b1071506a85aee57a5d478a446c6ef2cef build/diamond.us/MODULE_64.sbin
+c6ea696afe8492d4c45ebf6438a968e51de93585 build/diamond.us/MODULE_65.sbin
+1bf9511dc93b61a9244180b0d7ad390b229516f6 build/diamond.us/MODULE_66.sbin
+a62de9ee2e221f29bd6c942db912b13cabec5e73 build/diamond.us/MODULE_67.sbin
+6b8e39bb2285d3d6f2772d35678a00ebe4cee359 build/diamond.us/MODULE_68.sbin
+c66fbd0e2ba54d543f4a2ba842f6f70a05b19eec build/diamond.us/MODULE_69.sbin
+6639c4a9a35e7e687664217d7f8ed2ff6b501ffc build/diamond.us/MODULE_70.sbin
+4d5cfa9ff2261a59e6cef3cd7e14e4428d624643 build/diamond.us/MODULE_71.sbin
+de8a847bff8c343d69b853a215e6ee775ef2ef96 build/diamond.us/MODULE_72.sbin
+dc5d200d5557f85e51b1032212c7190dfef404e4 build/diamond.us/MODULE_73.sbin
+031b2bd8bec93c0adf7bc09ce9e85491dca5a479 build/diamond.us/MODULE_74.sbin
+da626fda7e1f4fba1a8048b71dd21402da698cfc build/diamond.us/MODULE_75.sbin
+2a6ee045faacf0d76720b476f77663127d4f1906 build/diamond.us/MODULE_76.sbin
+b18693a936b0284a1c31b124f77e9c8a348b2f59 build/diamond.us/MODULE_77.sbin
+d74a82e1e3f289e67e8f8e74655a7fec631df59c build/diamond.us/MODULE_78.sbin
+782b5de600bc284704bf4020c9afc6ded44628a2 build/diamond.us/MODULE_79.sbin
+b07b591efbe3de8c9e0184ba3cbd4e8df3415e7d build/diamond.us/MODULE_80.sbin
+45179a7021d88902f8f931663620f18fd673ec24 build/diamond.us/MODULE_81.sbin
+40ac0ea1f763271c74c42a12bae557dc5b49ea65 build/diamond.us/MODULE_82.sbin
+5b41270e5534e5fa965d9e762d0e56c2d79e8a6b build/diamond.us/MODULE_83.sbin
+936504d3c568cf0f89b5982f3249bc43097265ae build/diamond.us/MODULE_84.sbin
+944283bd9722dbf8a7a8025794c44eecb2dacd68 build/diamond.us/MODULE_85.sbin
+00151ae462bbde7356e87750ab0176ca84ae45c6 build/diamond.us/MODULE_86.sbin
diff --git a/arm9/pokepearl.us.sha1 b/arm9/pokepearl.us.sha1
new file mode 100644
index 00000000..20126316
--- /dev/null
+++ b/arm9/pokepearl.us.sha1
@@ -0,0 +1,89 @@
+3d3633517922c35d5e9a328f99ca73a43f310aac build/pearl.us/arm9.sbin
+ec5e730b64477dbc4354aa2bbc572f3a349714d2 build/pearl.us/arm9_table.sbin
+de8a847bff8c343d69b853a215e6ee775ef2ef96 build/pearl.us/MODULE_00.sbin
+efeb3b1410ea015d74802b84094474f937746866 build/pearl.us/MODULE_01.sbin
+de8a847bff8c343d69b853a215e6ee775ef2ef96 build/pearl.us/MODULE_02.sbin
+de8a847bff8c343d69b853a215e6ee775ef2ef96 build/pearl.us/MODULE_03.sbin
+46fb116957d30ab3c292e97c4ad4e4711ac6cf84 build/pearl.us/MODULE_04.sbin
+9d261a73b74b475d67937933625e16c5c9928f7d build/pearl.us/MODULE_05.sbin
+c265df523e45f9677aeb2e97c5a8101ed7d5cef4 build/pearl.us/MODULE_06.sbin
+5d9d9d48e8b20e5aa4c0b7abe04f4040790f912e build/pearl.us/MODULE_07.sbin
+2df2162b31ef80ab073d00e1f75998ea892f1e0a build/pearl.us/MODULE_08.sbin
+1eef423b2554ff3b14bc13d7f8774df8e790070b build/pearl.us/MODULE_09.sbin
+de8a847bff8c343d69b853a215e6ee775ef2ef96 build/pearl.us/MODULE_10.sbin
+9d07b10138455d3559164687e3f915c0f1683c52 build/pearl.us/MODULE_11.sbin
+f5fd76c09fa411f35e018a389f011ca403f38dbb build/pearl.us/MODULE_12.sbin
+c669bc9f3a954f6904a0dc4618d8a1cfdd4db9cf build/pearl.us/MODULE_13.sbin
+35b441e46b7477ddf10f010988d02a79b5c0622d build/pearl.us/MODULE_14.sbin
+4452e2e8ab67d8d4de0cb2e1e9aa2c89ff1a3ac2 build/pearl.us/MODULE_15.sbin
+c3b20c19a381bc7ddad5f05fb1782629486aba04 build/pearl.us/MODULE_16.sbin
+b7a73cbc693b7a0564725138253ad7f9ee501848 build/pearl.us/MODULE_17.sbin
+8376e6579d2cc739575853ee46c20ef403559973 build/pearl.us/MODULE_18.sbin
+055d336fca5e30585938b89ae9dcb1274558febf build/pearl.us/MODULE_19.sbin
+773e1e5ae00304b2963553f1998580e325c6189d build/pearl.us/MODULE_20.sbin
+822fcd97cc12b29a9bcff8526da5dc4512f39bb3 build/pearl.us/MODULE_21.sbin
+2ea4283dd68a4d9565bf8dd63ea3bd0eeceb6570 build/pearl.us/MODULE_22.sbin
+6cca7206bb5750285bb4d3284f1b4dacc60d7bf9 build/pearl.us/MODULE_23.sbin
+1b8e7a1e0f656e7e7888a66b296d2edac6eea684 build/pearl.us/MODULE_24.sbin
+e12fa9c7a041f8b6566003a29f2ada49f6ea6e8b build/pearl.us/MODULE_25.sbin
+52e684d649dd06862b93db70b4b23d74baa5a42a build/pearl.us/MODULE_26.sbin
+e502dbf7558262549ab55be969c2a27257a06a87 build/pearl.us/MODULE_27.sbin
+456c1d96b13b6b6827d772fa75583591bbca4b88 build/pearl.us/MODULE_28.sbin
+736a922e1756f3151f7da30825696b653745189e build/pearl.us/MODULE_29.sbin
+6c066d2365ed8aa05a81699f3953c23a7c300794 build/pearl.us/MODULE_30.sbin
+6c8cac2ca9f509d28ce0d3f7316d5945bc1b6702 build/pearl.us/MODULE_31.sbin
+f74a149094393042f9fd8153452ceb2ed6dd257f build/pearl.us/MODULE_32.sbin
+71e17a56d5068edb60f2ee3eb5e12f11963cfb17 build/pearl.us/MODULE_33.sbin
+1483b4eb5227bcc08466acddb0bf59cf23dae9dd build/pearl.us/MODULE_34.sbin
+04eaadd550571cc9e324b3ef0cad7774d3d33bd2 build/pearl.us/MODULE_35.sbin
+95808073fa6c757e7ba680e1f9e7379b6d19e33b build/pearl.us/MODULE_36.sbin
+c7d0b0ef005a0cb1782c5747cc301873a4cb40f5 build/pearl.us/MODULE_37.sbin
+bf2ef426465b56db480ccc9c9a9cc02409c57720 build/pearl.us/MODULE_38.sbin
+2fe6765c83165a4c50330a0aaccc575a9f92bb49 build/pearl.us/MODULE_39.sbin
+91d30f7c93d00e1b9c16cd13b2c73bf822285300 build/pearl.us/MODULE_40.sbin
+996587f925f396e0ce4d773511c32d5dd4288469 build/pearl.us/MODULE_41.sbin
+c9599a45c6f2bac5eb713645a6bfa0b760c2d254 build/pearl.us/MODULE_42.sbin
+61932050f4c85e4b6b1d0e8e7bbb8cec93974128 build/pearl.us/MODULE_43.sbin
+dd8a0e6626a79ceb049857861ca74779c7cec45b build/pearl.us/MODULE_44.sbin
+df0b25d1be30577a6200d3662341ee9e8a7312be build/pearl.us/MODULE_45.sbin
+8257fca389878d54f6f8e2aa932d1696715ae451 build/pearl.us/MODULE_46.sbin
+bc06d4be2fa3b39c503c33e5dad3e7d18c494208 build/pearl.us/MODULE_47.sbin
+dd301deb08962efcfcd9556faa7190fab1a3f38e build/pearl.us/MODULE_48.sbin
+550e87a3655505ca69d07f0c8cba96884ec6cbf2 build/pearl.us/MODULE_49.sbin
+58d8f1472458308a534dcbff4d63f768b29aac5a build/pearl.us/MODULE_50.sbin
+64e55516a13d1d64c9171715e7870a52fa8612f6 build/pearl.us/MODULE_51.sbin
+13240d317501187a69264e0da583f50a3f01a797 build/pearl.us/MODULE_52.sbin
+009c82b769a712afe46b05cd71493aafda6a2644 build/pearl.us/MODULE_53.sbin
+7f864fc1bab90fd905d6fa6e534acdd3f7467944 build/pearl.us/MODULE_54.sbin
+d5e6ca89821f31a46add7919a520d93231dfcc1f build/pearl.us/MODULE_55.sbin
+7124cc36a6fab727c2474f9c9948aac2d753a9e6 build/pearl.us/MODULE_56.sbin
+836bbb97ee1ad0e92aabe4f235260467c90ba2d1 build/pearl.us/MODULE_57.sbin
+9a4656141b41bd11368019690cf8d4570ed1d9bf build/pearl.us/MODULE_58.sbin
+80f2c555536bd5f11e872f23f5cd4458e01ea02c build/pearl.us/MODULE_59.sbin
+d974d08484422e0342206524fa95cc31532f6a45 build/pearl.us/MODULE_60.sbin
+a6203eb38120b42567d10741b1ad1069e212d3c9 build/pearl.us/MODULE_61.sbin
+61ddde0bb07eb9d086676bcd771757cdb8cf4863 build/pearl.us/MODULE_62.sbin
+9dd0ba6cc49ec1b20cc22a48adc56bc6668a4096 build/pearl.us/MODULE_63.sbin
+a1938b2ac1c4d2d987c72dd38770c857de8a95c4 build/pearl.us/MODULE_64.sbin
+c6ea696afe8492d4c45ebf6438a968e51de93585 build/pearl.us/MODULE_65.sbin
+1bf9511dc93b61a9244180b0d7ad390b229516f6 build/pearl.us/MODULE_66.sbin
+a62de9ee2e221f29bd6c942db912b13cabec5e73 build/pearl.us/MODULE_67.sbin
+6b8e39bb2285d3d6f2772d35678a00ebe4cee359 build/pearl.us/MODULE_68.sbin
+c66fbd0e2ba54d543f4a2ba842f6f70a05b19eec build/pearl.us/MODULE_69.sbin
+6639c4a9a35e7e687664217d7f8ed2ff6b501ffc build/pearl.us/MODULE_70.sbin
+4d5cfa9ff2261a59e6cef3cd7e14e4428d624643 build/pearl.us/MODULE_71.sbin
+de8a847bff8c343d69b853a215e6ee775ef2ef96 build/pearl.us/MODULE_72.sbin
+dc5d200d5557f85e51b1032212c7190dfef404e4 build/pearl.us/MODULE_73.sbin
+031b2bd8bec93c0adf7bc09ce9e85491dca5a479 build/pearl.us/MODULE_74.sbin
+da626fda7e1f4fba1a8048b71dd21402da698cfc build/pearl.us/MODULE_75.sbin
+2a6ee045faacf0d76720b476f77663127d4f1906 build/pearl.us/MODULE_76.sbin
+b18693a936b0284a1c31b124f77e9c8a348b2f59 build/pearl.us/MODULE_77.sbin
+d74a82e1e3f289e67e8f8e74655a7fec631df59c build/pearl.us/MODULE_78.sbin
+782b5de600bc284704bf4020c9afc6ded44628a2 build/pearl.us/MODULE_79.sbin
+c06bf46e750c5b50a8c7d5cf6454b57b71da28aa build/pearl.us/MODULE_80.sbin
+ea6f926bb6fd19de16cc073c44ca0641c8fabbd0 build/pearl.us/MODULE_81.sbin
+40ac0ea1f763271c74c42a12bae557dc5b49ea65 build/pearl.us/MODULE_82.sbin
+bbf53204326938ea99dd82926b3e477d6e21bc87 build/pearl.us/MODULE_83.sbin
+a2d929cfe8122efca38dab58d475bf95c9021346 build/pearl.us/MODULE_84.sbin
+944283bd9722dbf8a7a8025794c44eecb2dacd68 build/pearl.us/MODULE_85.sbin
+00151ae462bbde7356e87750ab0176ca84ae45c6 build/pearl.us/MODULE_86.sbin
diff --git a/config.mk b/config.mk
index 4a16fe5c..704634f3 100644
--- a/config.mk
+++ b/config.mk
@@ -1,5 +1,39 @@
-GAME_VERSION := DIAMOND
-GAME_LANGUAGE := ENGLISH
+GAME_VERSION ?= DIAMOND
+GAME_LANGUAGE ?= ENGLISH
+COMPARE ?= 1
-GAME_CODE := ADAE
+ifeq ($(GAME_VERSION),DIAMOND)
+GAME_CODE := ADA
+BUILD_NAME := diamond
+TITLE_NAME := POKEMON D
+ICON_FILE := graphics/icon.png
+else
+ifeq ($(GAME_VERSION),PEARL)
+GAME_CODE := APA
+BUILD_NAME := pearl
+TITLE_NAME := POKEMON P
+ICON_FILE := graphics/icon_pearl.png
+else
+$(error Invalid GAME_VERSION: $(GAME_VERSION))
+endif
+endif
+
+ifeq ($(GAME_LANGUAGE),ENGLISH)
+GAME_CODE := $(GAME_CODE)E
+BUILD_NAME := $(BUILD_NAME).us
+GAME_REVISION := 5
+else
+$(error Invalid GAME_LANGUAGE: $(GAME_LANGUAGE))
+endif
+
+ifeq ($(GAME_CODE),ADAE)
SECURE_CRC := 0x5931
+else
+ifeq ($(GAME_CODE),APAE)
+SECURE_CRC := 0x014C
+else
+$(error Unsupported build: $(GAME_VERSION) $(GAME_LANGUAGE))
+endif
+endif
+
+BUILD_TARGET := poke$(BUILD_NAME)
diff --git a/graphics/icon_pearl.png b/graphics/icon_pearl.png
new file mode 100644
index 00000000..594b73f9
--- /dev/null
+++ b/graphics/icon_pearl.png
Binary files differ
diff --git a/pokediamond.bsf b/pokediamond.us.bsf
index 61ed2951..61ed2951 100644
--- a/pokediamond.bsf
+++ b/pokediamond.us.bsf
Binary files differ
diff --git a/pokediamond.us.sha1 b/pokediamond.us.sha1
index e4d8454c..e35a81d6 100644
--- a/pokediamond.us.sha1
+++ b/pokediamond.us.sha1
@@ -1 +1 @@
-a46233d8b79a69ea87aa295a0efad5237d02841e build/pokediamond.us.nds
+a46233d8b79a69ea87aa295a0efad5237d02841e build/diamond.us/pokediamond.us.nds
diff --git a/pokepearl.us.bsf b/pokepearl.us.bsf
new file mode 100644
index 00000000..00b17a78
--- /dev/null
+++ b/pokepearl.us.bsf
Binary files differ
diff --git a/pokepearl.us.sha1 b/pokepearl.us.sha1
new file mode 100644
index 00000000..3593e5b3
--- /dev/null
+++ b/pokepearl.us.sha1
@@ -0,0 +1 @@
+99083bf15ec7c6b81b4ba241ee10abd9e80999ac build/pearl.us/pokepearl.us.nds
diff --git a/pokediamond.rsf b/rom.rsf
index 1b410a2b..ac152ade 100644
--- a/pokediamond.rsf
+++ b/rom.rsf
@@ -16,13 +16,13 @@ Arm7
Property
{
RomHeaderTemplate tools/bin/rom_header.template.sbin
- TitleName "POKEMON D"
+ TitleName "$(TITLE_NAME)"
MakerCode "01"
RemasterVersion 5
RomSpeedType 1TROM
RomSize 512M
RomFootPadding TRUE
- BannerFile build/pokediamond_bnr.bin
+ BannerFile $(BNR)
}
RomSpec