This tool allows you to randomize character classes and join order for Fire Emblem Fates. However, this randomizer goes a bit further than making simple gameplay changes - all cutscenes in the game are modified to follow the new join order. So if a character switches places with another, they will essentially take their place in the story. For example, if Selena switched places with Hinoka in Revelation, she would appear in Hinoka's place for every cutscene in Revelation. As of beta 4, the randomizer also allows for randomization of parent/child combinations. In addition to join order changes, the randomizer also includes basic support for randomizing character stats, skills, and join items. The tool is still a work in progress - while certain chapters have been tested thoroughly, others have yet to be examined. Therefore, you may run into bugs or glitches throughout a randomized playthrough. If you run into any issues or notice any cutscenes where a character's replacement does not appear as expected, please report the issue so that it can be fixed for the next version. This tool requires an up to date version of Java (Java 8+). You can find more screenshots of the randomizer's results here. Download: link Patching: If you don't know how to run ROM hacks on your 3DS I'll give you a short break down on some of the methods for running them as well as how to gain homebrew access below. Keep in mind that homebrew entry points change drastically between firmware updates, so the methods I list below may become outdated in the future. If you want to keep homebrew access on your 3DS, I advise looking at community sources to see whether or not your entry point works on the latest version before updating your 3DS. Please note that homebrew programs do not always play well with digital versions of Fates. I advise attempting to run Fates through HANS at least once before going through the process of dumping and randomizing your game to ensure that it works correctly. Getting Homebrew Access: There are three methods for running ROM hacks: HANS, NTR, and Luma. I've included instructions for NTR and HANS below. Currently, you can set up either way of running hacks from a stock 3DS. NTR is the most convenient way to run ROM hacks, but requires you to install custom firmware first. If you want to avoid headaches in the long run and are fine with some initial setup, you can follow Plailect's guide to setup custom firmware. Given the availability of methods for setting up arm9loaderhax and custom firmware right now, I highly recommend going with this option. If you don't want to go through the setup to run hacks through NTR, your other options is HANS. For HANS, just download soundhax from here, and the homebrew launcher as well as the appropriate payload for your 3DS from this link. Place the contents of the files on your SD card, load up the sound player on your 3DS, and play the file that came with soundhax. You'll end up in the homebrew launcher if placed the files on the SD card correctly. From there, you can proceed to the directions for HANS in order to play your randomized game. For both HANS and NTR: Use this version of this version of braindump to dump your Fates ROM. Once braindump is done, take the romfs file from the dump and use romfs extractor to extract the files from the romfs. From here, you can follow the instructions listed below to randomize your ROM. Before you do though, I advise making a copy of either the romfs you dumped or the extracted files just in case anything goes wrong. HANS: When you're done randomizing your files, drag them back into the folder with the files extracted from the romfs and overwrite the original files. If you did not get a prompt asking you if you'd like to overwrite, chances are you forgot to recompress your files using FEAT after randomizing. Once everything's done overwriting, use romfs builder with the folder containing your ROM files to rebuild the romfs. Create a folder called HANS at the root of your 3DS's SD card and place the recompiled romfs inside of it. Rename your romfs to the last 8 characters of your version's ID. For braindump, this should be the last 8 character of the name of the dumped romfs. For example, 00179400.romfs would be the correct filename for US birthright. Open up homebrew on your 3DS, navigate to HANS, run Fates through it, and set the romfs option to load the romfs from the SD. Enjoy your randomized game! NTR: If you haven't installed NTR on your 3DS yet, do that first. I highly recommend using this version of NTR as it supports the latest firmware versions. Once you've followed the randomization instructions and recompressed your randomized files, download the Same-Sex expansion and copy the NTR version for your copy of Fates to the root of your SD card (you should have a "plugin" folder on the root of your SD card when all is said and done). If you don't want the contents of the patch, just delete everything from the other folder that came with the plugin (the birthright/conquest/fefatesSE folder). Afterwards, copy the randomized files into the birthright/conquest/fefatesSE folder. From there all you have to do is run NTR on your 3DS then run your copy of Fates. Keep in mind that you will need to run NTR every time you start your 3DS if you want to play with the randomized files. Enjoy! Installation: Instructions 1. Create a folder to use for storing game files. You will need to pick out a specific set of game files from the ROM so that the randomizer can modify them. 2. Create a folder called GameData inside the storage folder. From your ROM, copy GameData.bin.lz and the Dispos and Person folders from the ROM's GameData folder into the one you created. 3. Create a folder called castle inside the storage folder. From your ROM, copy castle_join.bin.lz from the castle folder into the castle folder you created. 4. Copy the m folder and Script folder from your ROM into the storage folder. Your storage folder should look like this: Main Directory castle castle_join.bin.lz GameData dispos person GameData.bin.lz m Scripts 5. Run FEAT.exe, highlight all of the folders in the storage folder, and drag them into FEAT. The program should decompress every file in the storage folder. Check to make sure that the .bin.lz files now only have a .bin extension. 6. Make a backup of this folder so that you don't have to go through this process again. 7. Run Fates-Randomizer.jar, click "Open and Verify," and select the storage folder. You should see a new window pop up with options. If you do not, the window will show you which file was not found. 8. Select a path and options. Refer to the section above if you do not understand an option. Hit "Randomize" and let the program sit. When the program finishes, a little notification will pop up in the corner of the window. 9. Close Fates-Randomizer.jar and highlight all of the files in the storage folder. Drag them into FEAT like you did previously to recompress them. You can close FEAT it finishes compressing every file. 10. You're done! You can either merge these files in with a ROM if you're using HANS (back up the ROM if you're doing this just in case) or place the files in your patch folder if you're using NTR. Enjoy your randomized adventure! 11. As a final note, DO NOT use this on top of an existing save or branch of fate. Use a fresh save starting from the very beginning if you want a stable playthrough. Changelog: Beta 4 Overhauled script, dispo, and join randomization. The new systems should completely fix issues with character who join through My Castle as well as some miscellaneous issues like the inability to trade items on chapter 4. In general, the new systems should lead to a more stable randomization system. Added basic child randomization. The feature currently randomizes which child is tied to which paralogue in addition to parent/child combinations. Right now, the system doesn't completely randomize parents, as characters will only become parents if they switch places with a character who was a parent in the base game. Added weapon randomization for joining characters. Under the previous system, characters always received an iron weapon usable by their randomized class. The new system instead picks from a pool of 10 random weapons usable by the new class. Adjusted the GUI to include space for additional options and a progress bar during randomization. Added lots of missing alternative IDs for characters. Every appearance of a character in the intro chapters and Revelation should now randomize correctly. Added support for Japanese file structures during file verification. Added basic support for swapping out special-case models like Leo's inside-out collar model in chapter 1. This feature is still a work in progress, but it should provide a basis for properly changing every cutscene model in the future. Added variance to the "Randomize Stats" options. The old version simply took the stats of a character and moved them around (ex. a character's strength would become their magic). The new version redistributes points between stats based off of the number of passes you choose in the options. Expanded the "Randomize Skills" option to randomize personal skills as well. Added an option to add a new character to castle_join when swapping places with Anna. This insures that the character that takes Anna's place gets recruited somewhere since the randomizer cannot modify Anna's DLC. Added an "Enable Hero Battle" option for the amiibo characters. Note, the hero battles have the amiibo characters join as "guest" characters who cannot support, so using the castle_join from the Same-Sex Expansion is recommended if you want supports for whoever switches places with the amiibo characters. Fixed a bug which caused amiibo characters to only randomize when Revelation was selected as the path. Fixed a bug which prevented characters using handover IDs from recruiting correctly. Beta 3 Added a section for optional characters. Currently, Anna, Marth, Ike, Lucina, and Robin can be randomized through this section. Added randomization for reclass options. Added an option to treat Jakob and Felicia as promoted units during class randomization. Moved stat and skill randomization out of the "Experimental Features" section. Made file verification errors more verbose to help with troubleshooting. Fixed a bug which prevented Gunter's voice lines from being changed during join order randomization. Fixed a bug which messed up reclass options for characters who received the "Hoshidan Noble" class. Slightly improved the model swapping code. These changes should help prevent hangs or other moments where models fail to load. Beta 2 Overhauled model swapping. While the feature isn't perfect, it should be perfectly okay to use in game as it shouldn't cause any more crashes. The only issues you may encounter with it are some models failing to swap or, on very rare occasions, a hang which requires the cutscene section to be skipped. Added safety checks for script/dispo editing to prevent crashing. Added lots of missing character aliases. Moved DLC classes into a separate option. Added Gunter and Scarlet to the randomization pool for Revelation. Added a quick fix for the handover files. Stat changes inside those files are not taken into account, but characters who are assigned a different ID through a handover file should recruit correctly now. Fixed some issues with recruitment not working correctly for Birthright Chapter 6 and Birthright Chapter 7. FAQ: When I dumped my game, I only received one path even though I own the others as DLC. Why did this happen, and how can I fix it? DLC has to be dumped separately from the base game. Modifying it requires the installation of custom firmware. You will then need to use a tool like Decrypt9 to dump the DLC paths. You can then randomize the DLC paths by including their content in the randomizer folder for randomization and pulling the content back out afterwards. Finally, you can create an installable CIA for the DLC using something like ctrtool. Install that on your 3DS and you should be good to go. I'm trying to randomize a European version of Fates. The randomizer says that I'm missing a file in the "m" folder, but I'm confident that I dumped everything correctly. What is going on? Every region uses a different layout for the text files, unfortunately. The randomizer lacks support for the European version currently, but there's an easy fix to get the tool to read your text files correctly. Simply go into the "m" folder in the files you want to randomize and find the folder for your language (@U for the English version). Rename this to @E, and do the the same for the folder for your language in the folder for the path you want to randomize ("m/A" for Birthright, "m/B" for Conquest, and "m/C" for Revelation). The randomize should detect your folders and allow you to randomize everything like normal. Once you're done randomizing, simply rename the files back in order to use them in game. The file verification window said that everything verified, but I didn't get an options window! Update your version of Java. The options window uses some features from Java's more recent versions, so the window will fail to open if you're version isn't up to date. Troubleshooting: As this randomizer is still a work in progress, you may encounter bugs or glitches while using it. At this point you shouldn't encounter any serious issues like crashing, but if you do, the procedure for stopping the issues is fairly simple. First, you need to identify which chapter the issue occurs on so that you can find its files. If the issue occurs on Birthright Chapter 10, for example, the file name you'll be looking for is A010. From there, you'll need to replace files from your patch with the original files until the issue is resolved. First you should try removing all files in Scripts/bev that start with the chapter prefix. So for this example you'd delete every files in Scripts/bev that starts with A010. If that fails to fix the issue, delete the map script, which is named after the chapter (Scripts/A010.cmb in the example). If the issue persists, navigate to GameData/dispos and delete the dispo file (once again, A010.bin if you're looking at the example). That procedure should fix any issue you encounter while using the randomizer. Make sure to report your issue and the chapter it occurred on so that it can be fixed! As always, I want to thank a couple people who helped make this tool a reality: RainThunder for his nightmare modules and wiki which helped with setting up GameData and Person file randomization. DeathChaos25 for his original randomizer and general contributions to the 3DS Fire Emblem hacking community. Dylos for the inspiration to make the tool as well as his efforts to help with testing more unstable versions of the randomizer. SciresM for his archive tool, FEAT.