There is, frankly, a real lack of written and updated guides for 3ds pokemon game hacking! PkHex is pretty self explanatory (though I can write about that too, if any of you would be interested); I'm going to be writing today about my quest to randomize Pokemon Alpha Sapphire!
First is a quick and fun list of tools I, personally, used! I'm doing all this on OEM hardware; that is, I'm using my Alpha Sapphire cartridge, on my New 3dsXL system. These steps won't work for somebody trying to do a randomizer on, say, Citra.
3ds.hacks.guide is the general spot for hacking your 3ds. Going through this will have you install homebrew launcher, checkpoint, GodMode9, and various other helpful things. Do this before anything else.
The Gamebrew Article on GodMode9, specifically the part that's titled "Extracting RomFS from a 3ds cartridge". This one's very helpful, though I'll do my best to explain any necessary steps here!
PokeRandomizer OR Pk3ds for the actual hacking. These are both tools that let you edit the game files; specifically, the RomFS and ExeFS files we'll be getting in GM9! My tutorial will go through Pokemon Randomizer, because the GUI is more user-friendly and it's a bit less overwhelming.
LayeredFS Patch Guide will work with Luma3DS, which is installed when following the above guides. Again, I'll be explaining necessary steps, but it's good to have as a reference on hand!
It's also a good idea to have some way to read your files, obviously. If it's a 3ds, 2ds, or 3dsXL, just make sure you have a standard SD card reader. For a New 3ds or New 2ds, you'll need a microSD reader; or, if you're patient, just a functioning network.
If that sounds a bit overwhelming, don't worry. It might take a bit, but it's not too difficult.
The first thing you're going to want to do (after the initial installations) is open up GM9 on your 3ds- this can be done by holding down the start button when you turn the system on. You'll see a big list of folders and files.
Select [C:] GAMECART, if you're like me and using a cartridge. The GameBrew article includes detailed steps on other sorts of games; installed .CIAs, games installed from the eshop, system titles, etc. I'm going to go through the cartridge steps, though.
You'll see three files, most likely. Select the one that ends in .trim.3ds. Then, on the bottom screen, select NCSD Image Options, and Mount Image to Drive. This will allow you to look into the guts of the game!
Now, for our purposes, we're going to navigate to the folder labeled Content0.game and open that one up. Then you'll see a few more files and folders, pictured to the left here. We're going to hold down R and hit A on the folders labeled exefs and romfs. Export those to the out folder.
For me, romfs took like, a half hour, but exefs only took a few minutes. Your mileage may vary. Don't worry about it too much.
Turn off your system, and turn it back on while holding select. This will open the Luma3DS launcher. Enable patching, and turn the system off again.
Now that that's done with- we have our necessary files! Open up your 3ds file system however you see fit. I personally use a microSD adapter.
If you followed the 3ds.hacks guide nicely, you should have a folder labeled gm9! Open that up and navigate to out. That's where you'll see the two folders you just extracted!
Make a new folder on your desktop- I named mine 'Alpha Sapphire', because I'm very original- and copy those folders into it. This is the folder you're going to use for Pokemon Randomizer.
Now just do whatever you like! This program is nice because it explains what every option does. Once that's done, hit 'save config file' to save your configuration. Put it somewhere safe! Once that's done, you'll be able to hit the Randomize! button; do this, save the files that it gives you in an easy-to-access folder. This gives you a patch folder!
You'll notice it's a RomFS folder. Replace the original RomFS folder (the one on your desktop) with this new one. If you have a new ExeFS folder, do the same thing. Now that's all said and done, how do we get this back in playable game format?
Open back up your 3ds file system, and navigate to the luma folder. If you're lucky, you'll see a subfolder labeled titles, and then more subfolders with your titleIDs. If that's the case, simply put the RomFS folder into that titleID folder (it's a huge string of numbers, which will start with 00040000). To find the titleID for the game you're hacking, use this page.
...If you're unlucky, like me, we have a few more steps. In the luma folder, you need to create a subtolder labeled titles, then create the subfolder for your titleID as well. Put the RomFS folder from your desktop into this new folder.
And now the patching is done! Once you put your SD card back in the system, go into the Luma3DS Updater and ensure you're on the latest version. Then, go into your System Settings, then to Data Management, then to Nintendo 3DS, then to Downloadable Content. In this case, Downloadable Content includes things like updates- uninstall any updates related to the game you're patching. Trust me on this one.
And with that; you should be done! Enjoy your cool new friends! Personally my bestie is now Bellossom and I am thriving for it. If you have any questions or need any help, send me a message on my neocities profile! I hope this helped!!