diff --git a/Makefile b/Makefile index d794cbd..578f14e 100644 --- a/Makefile +++ b/Makefile @@ -47,8 +47,8 @@ LDFLAGS = -nostartfiles -g $(ARCH) -Wl,-Map,$(TARGET).map ifeq ($(EXEC_METHOD),GATEWAY) LDFLAGS += --specs=../gateway.specs -else ifeq ($(EXEC_METHOD),BOOTSTRAP) - LDFLAGS += --specs=../bootstrap.specs +else ifeq ($(EXEC_METHOD),A9LH) + LDFLAGS += --specs=../a9lh.specs endif LIBS := @@ -103,10 +103,10 @@ export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \ export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) -.PHONY: common clean all gateway bootstrap cakehax cakerop brahma release +.PHONY: common clean all gateway a9lh cakehax cakerop brahma release #--------------------------------------------------------------------------------- -all: brahma +all: a9lh common: @[ -d $(OUTPUT_D) ] || mkdir -p $(OUTPUT_D) @@ -120,8 +120,8 @@ gateway: common @cp resources/LauncherTemplate.dat $(OUTPUT_D)/Launcher.dat @dd if=$(OUTPUT).bin of=$(OUTPUT_D)/Launcher.dat bs=1497296 seek=1 conv=notrunc -bootstrap: common - @make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile EXEC_METHOD=BOOTSTRAP +a9lh: common + @make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile EXEC_METHOD=A9LH cakehax: submodules common @make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile EXEC_METHOD=GATEWAY @@ -132,7 +132,7 @@ cakerop: cakehax @make DATNAME=$(TARGET).dat DISPNAME=$(TARGET) GRAPHICS=../resources/CakesROP -C CakesROP @mv CakesROP/CakesROP.nds $(OUTPUT_D)/$(TARGET).nds -brahma: submodules bootstrap +brahma: submodules a9lh @[ -d BrahmaLoader/data ] || mkdir -p BrahmaLoader/data @cp $(OUTPUT).bin BrahmaLoader/data/payload.bin @cp resources/BrahmaAppInfo BrahmaLoader/resources/AppInfo diff --git a/README.md b/README.md index aacdc0c..97ff661 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ __This is powerful stuff__, so you should not use it if you don't know exactly w ## How to run this / entry points GodMode9 can be built to run from a number of entry points, descriptions are below. Note that you need to be on or below 3DS firmware version v9.2 or have ARM9loaderhax installed for any of these to work. -* __A9LH, Brahma & Bootstrap__: Copy `GodMode9.bin` to somewhere on your SD card and run it via either [Brahma](https://github.com/delebile/Brahma2) or [Bootstrap](https://github.com/shinyquagsire23/bootstrap). Brahma derivatives / loaders such as [BrahmaLoader](https://gbatemp.net/threads/release-easily-load-payloads-in-hb-launcher-via-brahma-2-mod.402857/), [BootCTR](https://gbatemp.net/threads/re-release-bootctr-a-simple-boot-manager-for-3ds.401630/) and [CTR Boot Manager](https://gbatemp.net/threads/ctrbootmanager-3ds-boot-manager-loader-homemenuhax.398383/) will also work with this. Build this with `make bootstrap`. +* __A9LH & Brahma__: Copy `GodMode9.bin` to somewhere on your SD card and run it via either [Brahma](https://github.com/delebile/Brahma2) or [arm9loaderhax](https://github.com/Plailect/Guide/wiki). Brahma derivatives / loaders (such as [BrahmaLoader](https://gbatemp.net/threads/release-easily-load-payloads-in-hb-launcher-via-brahma-2-mod.402857/), [BootCTR](https://gbatemp.net/threads/re-release-bootctr-a-simple-boot-manager-for-3ds.401630/) and [CTR Boot Manager](https://gbatemp.net/threads/ctrbootmanager-3ds-boot-manager-loader-homemenuhax.398383/)) and A9LH chainloaders (such as [Luma3DS](https://github.com/AuroraWright/Luma3DS) and [BootCTR9](https://github.com/hartmannaf/BootCtr9)) will work with this as well. Build this with `make a9lh`. * __Homebrew Launcher__: Copy `GodMode9.3dsx` & `GodMode9.smdh` into `/3DS/GodMode9` on your SD card. Run this via [Smealums Homebrew Launcher](http://smealum.github.io/3ds/), [Mashers Grid Launcher](https://gbatemp.net/threads/release-homebrew-launcher-with-grid-layout.397527/) or any other compatible software. Build this with `make brahma`. * __CakeHax Browser__: Copy `GodMode9.dat` to the root of your SD card. You can then run it via http://dukesrg.github.io/?GodMode9.dat from your 3DS browser. Build this via `make cakehax`. * __CakeHax MSET__: Copy `GodMode9.dat` to the root of your SD card and `GodMode9.nds` to anywhere on the SD card. You can then run it either via MSET and GodMode9.nds. Build this via `make cakerop`. @@ -19,10 +19,11 @@ If you are a developer and you are building this, you may also just run `make re ## Credits This tool would not have been possible without the help of numerous people. Thanks go to... -* **Archshift**, for providing the bas eproject infrastructure +* **Archshift**, for providing the base project infrastructure * **Normmatt**, for sdmmc.c / sdmmc.h * **Cha(N)**, **Kane49**, and all other FatFS contributors for FatFS * **b1l1s**, for helping me figure out A9LH compatibility +* **Gelex** and **AuroraWright** for helping me figure out various things * **Al3x_10m**, **Supster131** and all other fearless testers * The fine folks on **freenode #Cakey** * Everyone I possibly forgot, if you think you deserve to be mentioned, just contact me! \ No newline at end of file diff --git a/bootstrap.ld b/a9lh.ld similarity index 100% rename from bootstrap.ld rename to a9lh.ld diff --git a/bootstrap.specs b/a9lh.specs similarity index 58% rename from bootstrap.specs rename to a9lh.specs index 0a18b74..79b8164 100644 --- a/bootstrap.specs +++ b/a9lh.specs @@ -1,5 +1,5 @@ %rename link old_link *link: -%(old_link) -T ../bootstrap.ld%s +%(old_link) -T ../a9lh.ld%s diff --git a/source/abstraction/bs-start.s b/source/abstraction/a9-start.s similarity index 98% rename from source/abstraction/bs-start.s rename to source/abstraction/a9-start.s index 4d78ae3..3cd1ae9 100644 --- a/source/abstraction/bs-start.s +++ b/source/abstraction/a9-start.s @@ -1,4 +1,4 @@ -#ifdef EXEC_BOOTSTRAP +#ifdef EXEC_A9LH .section .text.start .align 4 @@ -72,4 +72,4 @@ _start: .die: b .die -#endif // EXEC_BOOTSTRAP +#endif // EXEC_A9LH diff --git a/source/ui.h b/source/ui.h index f0e79ab..83e40be 100644 --- a/source/ui.h +++ b/source/ui.h @@ -44,7 +44,7 @@ #define BOT_SCREEN0 (u8*)(*(u32*)((uint32_t)0x080FFFD0 + 4 * (*(u32*)0x080FFFDC & 1))) #define TOP_SCREEN1 TOP_SCREEN0 #define BOT_SCREEN1 BOT_SCREEN0 -#elif defined(EXEC_BOOTSTRAP) +#elif defined(EXEC_A9LH) #define TOP_SCREEN0 (u8*)(*(u32*)0x23FFFE00) #define TOP_SCREEN1 (u8*)(*(u32*)0x23FFFE00) #define BOT_SCREEN0 (u8*)(*(u32*)0x23FFFE08)