I'll piggyback off Procyon's instructions on how to use Rutile Ruby with a physical cart, and clarify some spots. This worked for me.
Install Python 2.7 and then
- Download packhack (from here: https://gbatemp.net/threads/tutoria...d-3ds-roms-run-xy-oras-without-update.383055/) and extract it
- Go to the ISO site. Download a CIA (in this case it's pre-patched with Rutile Ruby/Sapphire). Make sure you don't use any gameupdates from the eshop for any of the pokemon games, or delete them.
- Meanwhile check the program you want to run with hacks do this using Hans and selecting the program. And move to romfs and select yes write down the name.
- Exit Hans.
- Power off the 3DS
- Extract the zips on your PC. (Put the CIA in the same folder as the packhack)
- Open a notepad file and paste in, after pasting save as ctrtool.bat and place it in the same folder as ctrtool
Code:
ctrtool --contents=contents name.cia
ctrtool -p --exefs=exefs.bin contents.0000.00000000
ctrtool -t exefs --exefsdir=exefs --decompresscode exefs.bin
ctrtool -p --romfs=romfs.bin contents.0000.00000000
(replace name with CIA file name)
- After extracting ROMFS + EXFs through ctrtools you will have Romfs.bin + exefs folder.
- Open HxD and open Romfs.bin, ctrl + E and set length with hex checked to 1000. This should select 000->FF0. Press backspace and it should move the rest of the data in the file to the top. Save it.
- Rename Romfs.bin now to titleid.romfs (title id being what you got from HANS)
- Open exefs folder, and take code.bin and rename it to titleid.code
- Place on your SD in HANS folder.
- Run HANS with Code + Romfs selected. Don't use any other options at all in HANS. I haven't tested if they work.
Should work. These were my exact steps, and you have to follow the exact steps for it to work. These exact steps might work for other romhacks as long as you change all the variables.