Skip to content

Commit

Permalink
Merge pull request #552 from HylianFreddy/eur-version
Browse files Browse the repository at this point in the history
Add European version support
  • Loading branch information
gymnast86 authored Oct 1, 2022
2 parents bb87651 + ba11ffa commit ceb6926
Show file tree
Hide file tree
Showing 32 changed files with 2,636 additions and 700 deletions.
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,5 @@ build/*
*.pyc
*.ips
*.zar
source/patch_symbols.hpp
.DS_Store
source/patch_symbols*.hpp
.DS_Store
9 changes: 6 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -176,8 +176,11 @@ all: $(BUILD) $(GFXBUILD) $(DEPSDIR) $(ROMFS_T3XFILES) $(T3XHFILES)
@$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile

$(BUILD):
$(MAKE) -C code
@mv code/basecode.ips $(ROMFS)/basecode.ips
$(MAKE) REGION=USA -C code
@mv code/basecode_USA.ips $(ROMFS)
$(MAKE) clean -C code
$(MAKE) REGION=EUR -C code
@mv code/basecode_EUR.ips $(ROMFS)
@mkdir -p $@

ifneq ($(GFXBUILD),$(BUILD))
Expand All @@ -193,7 +196,7 @@ endif
#---------------------------------------------------------------------------------
clean:
@echo clean ...
@rm -fr $(BUILD) $(TARGET).3dsx $(OUTPUT).smdh $(TARGET).elf $(GFXBUILD) $(ROMFS)/basecode.ips
@rm -fr $(BUILD) $(TARGET).3dsx $(OUTPUT).smdh $(TARGET).elf $(GFXBUILD) $(ROMFS)/basecode.ips $(ROMFS)/basecode_USA.ips $(ROMFS)/basecode_EUR.ips
$(MAKE) clean -C code

#---------------------------------------------------------------------------------
Expand Down
43 changes: 24 additions & 19 deletions code/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -38,21 +38,12 @@ INCLUDES += assets
#---------------------------------------------------------------------------------
# options for code generation
#---------------------------------------------------------------------------------
OOT3D := OOT3D
OOT3DJ := OOT3DJ
Z3D := OOT3D
USA := USA
EUR := EUR
JP := JP
REGION := USA

ifeq ($(OOT3D), $(Z3D))
LINK_SCRIPT := oot.ld
ASFLAGS += -D _USA_=1 -D _JP_=0
else
ifeq ($(OOT3DJ), $(Z3D))
LINK_SCRIPT := oot_j.ld
ASFLAGS += -D _USA_=0 -D _JP_=1
endif
endif

VERFLAGS := -D OOT3D=$(OOT3D) -D OOT3DJ=$(OOT3DJ) -D Z3D=$(Z3D)
VERFLAGS := -D USA=$(USA) -D EUR=$(EUR) -D JP=$(JP) -D REGION=$(REGION)

ARCH := -march=armv6k -mtune=mpcore -mfloat-abi=softfp -mtp=soft -mfpu=vfpv2

Expand All @@ -64,6 +55,23 @@ CFLAGS += $(INCLUDE) -DARM11 -D_3DS $(VERFLAGS)

CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -std=gnu++11

ifeq ($(USA), $(REGION))
LINK_SCRIPT := oot.ld
ASFLAGS += -D _USA_=1 -D _EUR_=0 -D _JP_=0
CFLAGS += -g -DVersion_USA
else
ifeq ($(EUR), $(REGION))
LINK_SCRIPT := oot_e.ld
ASFLAGS += -D _USA_=0 -D _EUR_=1 -D _JP_=0
CFLAGS += -g -DVersion_EUR
ifeq ($(JP), $(REGION))
LINK_SCRIPT := oot_j.ld
ASFLAGS += -D _USA_=0 -D _EUR_=0 -D _JP_=1
CFLAGS += -g -DVersion_JP
endif
endif
endif

ASFLAGS += -g $(ARCH) $(VERFLAGS)
LDFLAGS = -g $(ARCH) -Wl,-Map,$(notdir $*.map) -T $(TOPDIR)/$(LINK_SCRIPT) $(VERFLAGS) -lgcc

Expand Down Expand Up @@ -151,11 +159,8 @@ all: $(BUILD)
$(BUILD):
@[ -d $@ ] || mkdir -p $@
@$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
@if python3 patch.py $(OUTPUT).elf; then \
echo "created basecode.ips" ; \
else \
python patch.py $(OUTPUT).elf; \
echo "created basecode.ips" ; \
@if ! python3 patch.py $(OUTPUT).elf $(REGION) $(debug); then \
python patch.py $(OUTPUT).elf $(REGION) $(debug); \
fi

#---------------------------------------------------------------------------------
Expand Down
11 changes: 11 additions & 0 deletions code/address_conversion_info.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
All numbers in hexadecimal

USA addresses EUR offsets

000000 - 419E17 : ±0
419E18 - 41A143 : =/= (language-fetching function)
41A144 - 43668B : +24
43668C - 43668F : N/A (padding)
436690 - 4A5ADF : +20
4A5AE0 - 4A5AFF : N/A (padding)
4A5B00 - 5C6607 : ±0
Loading

0 comments on commit ceb6926

Please sign in to comment.