- Joined
- Jul 7, 2010
- Messages
- 3,882
- Trophies
- 2
- Location
- /dev/random
- Website
- www.gudenau.net
- XP
- 5,404
- Country
First a quick video:
If you would like to do this then read on!
Keep in mind that this is not to stable at this time.
Requirements:
Basic steps:
These projects use a newer version of ctrulib than devkitPro installs for you, this is to be expected since it is rapidly developing. First we need to go here and clone the repo. Then open a Command Prompt or Terminal window and cd into "libctru" and run "make -s install". Then copy armips to "(DEVKITARM dir)\bin\".
Step 2: Compiling reiNand
First go here and clone the repo, if you are using git make sure to use the flag --recursive; and if you are downloading the zip make sure you download all of the referenced repos. Then you will need to download the firmware.bin file and place it in the data folder. You will then have to edit "source/main.c" and add "#define BOOT_EMU" to the top of the source file. Then run "set PATH=%PATH%;(DEVKITARM dir)\bin && make -s", on my Windows PC this would be "set PATH=%PATH%;D:\devkitPro\devkitARM\bin && make -s".
firmware.bin should have a SHA-1 of 6843141D4962A57BD8510BDE905D915CDC0E0022
Step 3: Compile homemenuhax
Clone the homemenuhax repo here. Then open "Makefile" and change line 181 to read "py -3 payload.py $< $@ 0x4652 0x100000 $(TARGETOVERWRITE_MEMCHUNKADR) $(HEAPBUF_OBJADDR)", this is needed since python3 does not work on Windows. Then open a terminal in the root of the repo and run "make -s LOADSDPAYLOAD=1 ENABLE_LOADROPBIN=1 ENABLE_HBLAUNCHER=1 MENUROP_PATH=menurop_prebuilt USE_PADCHECK=0x0", this may take a while.
That built the exploit files needed to run the installer, but it did not build the installer. So execute "cd themehax_installer" and then "make -s".
Step 4: Downloading and modifying "otherapp"
Now we need to modify the otherapp payload to load somthing other than "boot.3dsx" so we can keep the homebrew menu. To do this go here and find "Otherapp payloads", select your version and download the file. Now open it in HxD and search for "/boot.3dsx", for me it is at offset 0x00008958; now replace the text "boot" by clicking on the "b" and type "nand". Save the file and rename the payload to "themehaxinstaller_otherapp_payload.bin".
Step 5: Setup reiNand and homemenuhax
Now we need to get the 3DS'es SD card and copy the needed files to it. From the ReiNand repo we need to copy "out/rei/" and "out/reiNand.dat" to the root of the SD card, then you need to copy "out/3ds/ReiNand/ReiNand.3dsx" to the root of the SD card and rename it to nand.3dsx. From the homemenuhax repo you need to copy "themepayload/", "themehax_installer/themehax_installer.3dsx" and "themehax_installer/themehax_installer.smdh" to "/themehax_installer" on the SD card. Last but not least you will need to copy "themehaxinstaller_otherapp_payload.bin" to the root of the SD card.
Step 6: Install homemenuhax
The last real step is to install homemenuhax, launch the installer from the homebrew launcher and press the A button; wait for it to install. Then press A B Start, it should kick you back to the launcher. Then if you reboot the 3DS by pressing start then A, you should boot into reiNand!
Step 7: Other stuff
I am not responsible for any unwanted effects from following this tutorial, if you ever want to remove homemenuhax take your SD card out, then boot your 3Ds; then select any theme from the theme menu. If you want you can remove the "themehax_installer" files on your SD card, just make sure you leave "rei/" and "nand.3dsx". Returing from a GBA/DS/DSi title should kick you back into reiNand! (I only tested GBA) If you want to boot into the normal NAND; press a button while booting the 3DS.
I hope you enjoy your cold-boot custom firmware!
If you would like to do this then read on!
Keep in mind that this is not to stable at this time.
Requirements:
- Prepared emuNAND SD card
- A way to launch HBMenu
- HxD
- Devkit ARM
- Python 3
- armips
- A Windows PC
- A little time
Basic steps:
- Update ctrulib
- Compile reiNand
- Compile homemenuhax
- Download and modify "otherapp"
- Setup homemenuhax/reiNand
- Install homemenuhax
- Profit
These projects use a newer version of ctrulib than devkitPro installs for you, this is to be expected since it is rapidly developing. First we need to go here and clone the repo. Then open a Command Prompt or Terminal window and cd into "libctru" and run "make -s install". Then copy armips to "(DEVKITARM dir)\bin\".
Step 2: Compiling reiNand
First go here and clone the repo, if you are using git make sure to use the flag --recursive; and if you are downloading the zip make sure you download all of the referenced repos. Then you will need to download the firmware.bin file and place it in the data folder. You will then have to edit "source/main.c" and add "#define BOOT_EMU" to the top of the source file. Then run "set PATH=%PATH%;(DEVKITARM dir)\bin && make -s", on my Windows PC this would be "set PATH=%PATH%;D:\devkitPro\devkitARM\bin && make -s".
firmware.bin should have a SHA-1 of 6843141D4962A57BD8510BDE905D915CDC0E0022
Step 3: Compile homemenuhax
Clone the homemenuhax repo here. Then open "Makefile" and change line 181 to read "py -3 payload.py $< $@ 0x4652 0x100000 $(TARGETOVERWRITE_MEMCHUNKADR) $(HEAPBUF_OBJADDR)", this is needed since python3 does not work on Windows. Then open a terminal in the root of the repo and run "make -s LOADSDPAYLOAD=1 ENABLE_LOADROPBIN=1 ENABLE_HBLAUNCHER=1 MENUROP_PATH=menurop_prebuilt USE_PADCHECK=0x0", this may take a while.
That built the exploit files needed to run the installer, but it did not build the installer. So execute "cd themehax_installer" and then "make -s".
Step 4: Downloading and modifying "otherapp"
Now we need to modify the otherapp payload to load somthing other than "boot.3dsx" so we can keep the homebrew menu. To do this go here and find "Otherapp payloads", select your version and download the file. Now open it in HxD and search for "/boot.3dsx", for me it is at offset 0x00008958; now replace the text "boot" by clicking on the "b" and type "nand". Save the file and rename the payload to "themehaxinstaller_otherapp_payload.bin".
Step 5: Setup reiNand and homemenuhax
Now we need to get the 3DS'es SD card and copy the needed files to it. From the ReiNand repo we need to copy "out/rei/" and "out/reiNand.dat" to the root of the SD card, then you need to copy "out/3ds/ReiNand/ReiNand.3dsx" to the root of the SD card and rename it to nand.3dsx. From the homemenuhax repo you need to copy "themepayload/", "themehax_installer/themehax_installer.3dsx" and "themehax_installer/themehax_installer.smdh" to "/themehax_installer" on the SD card. Last but not least you will need to copy "themehaxinstaller_otherapp_payload.bin" to the root of the SD card.
Step 6: Install homemenuhax
The last real step is to install homemenuhax, launch the installer from the homebrew launcher and press the A button; wait for it to install. Then press A B Start, it should kick you back to the launcher. Then if you reboot the 3DS by pressing start then A, you should boot into reiNand!
Step 7: Other stuff
I am not responsible for any unwanted effects from following this tutorial, if you ever want to remove homemenuhax take your SD card out, then boot your 3Ds; then select any theme from the theme menu. If you want you can remove the "themehax_installer" files on your SD card, just make sure you leave "rei/" and "nand.3dsx". Returing from a GBA/DS/DSi title should kick you back into reiNand! (I only tested GBA) If you want to boot into the normal NAND; press a button while booting the 3DS.
I hope you enjoy your cold-boot custom firmware!
Last edited by gudenau,