Jump to content

Fire Emblem Fates Randomizer


thane98
 Share

Recommended Posts

 

jRs81ea.pngDrFNhI1.pngJvxXATp.png

The Fire Emblem Fates Randomizer has undergone a complete rewrite. The new randomizer, Ignis, offers more features and a more stable playthrough (less troubleshooting!). Additionally, the setup with Ignis is simpler - give it an extracted RomFS and somewhere to put the outputs and it will handle the rest. No digging through the RomFS or running files through FEAT.
 
Randomizer features:
  • Randomized classes, skills, and stats. This includes weapon rank adjustments so everyone's viable in their new classes.
  • Randomized join order. Characters can swap places in the story with proper adjustments to dialogue, 3D cutscenes, etc.
  • Randomized chest/village items.
  • Experimental player randomization.
  • Lots of misc. extras + fixes to help with randomized playthroughs. Add Anna to castle recruitment, unlock hero battles, a generic sprite for Songstress, etc.
For more details + instructions, check the readme on GitHub: https://github.com/thane98/ignis
 
Releases (download the *.7z file, NOT the source code): https://github.com/thane98/ignis/releases
 
Spoiler

 

anYIhdN.png

I've been developing this tool over on gbatemp for the last few months, so it's already gone through some changes since its initial release. If anyone wants to try out an older version I can provide a link, though the first few versions were a little unstable. As a side note, this is my first real post on this site, so if I messed anything up, let me know!

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 (Latest version of Java 8 is recommended).
 
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:
Spoiler
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:
Spoiler

Beta 5

  • Randomizer results are now saved to an XML file. You can load this file next time you randomize to get the same results. Alternatively, you can modify the file to get the results you want from the randomizer.
  • Added an option to randomize all paths at once provided that the files for all three paths verified correctly.
  • The experimental options section is back. Options in this section are functional, but they may lead to unintended behaviors in game.
  • Added an option for changing every appearance of a character to use their new class. This option causes the AI to behave oddly in certain situations (most notably, chapter 5), so the option has been flagged as "Experimental" for now.
  • Fixed a bug which caused chapter 11 to crash if Reina's replacement was not a flying class.
Spoiler

Beta 4-2

  • Touched up the system for randomizing scripts once again. This should improve stability to some extent.
  • Added in support for randomizing the European version. No more renaming files!
  • Mozu's finally in the randomization pool.
  • A couple miscellaneous bugfixes.
Spoiler

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.

 

Spoiler

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.

 

Spoiler

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.
 
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 the latest versions of Java, 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.

 

 
Edited by thane98
Rewrite release.
Link to comment
Share on other sites

  • Replies 422
  • Created
  • Last Reply

Top Posters In This Topic

This now just makes me wonder if anyone's tried adding assets from Awakening to Fates or Vice-Versa.

It'd be cool to see Morgan or Gerome for example and the Avatar's customized appearance from Awakening would be really cool to see layered over Robin with the corresponding voices available, though I wager the Awakening Avatar customization may be asking too much to say the least.

Link to comment
Share on other sites

This now just makes me wonder if anyone's tried adding assets from Awakening to Fates or Vice-Versa.

It'd be cool to see Morgan or Gerome for example and the Avatar's customized appearance from Awakening would be really cool to see layered over Robin with the corresponding voices available, though I wager the Awakening Avatar customization may be asking too much to say the least.

It's been attempted before, but it's not as easy as it sounds unfortunately. Awakening stores it's models and textures in CGFX format while Fates uses the newer BCH format. As far as I know, there's no existing way to convert between CGFX and BCH without losing crucial components like texture mapping and skeletons for animations. I actually was able to port the mage model from Awakening to Fates, but due to the issues with conversion I could never get textures or animations to work with it. That said, porting Awakening models to Fates might be possible once Ohana finishes implementing its export to CMDL feature, as that's the intermediate file format when creating BCH files.

You can import Awakening's portraits into Fates though! I don't have a link at the moment, but I remember DeathChaos importing Morgan's portraits into Fates a little while back.

Link to comment
Share on other sites

It's been attempted before, but it's not as easy as it sounds unfortunately. Awakening stores it's models and textures in CGFX format while Fates uses the newer BCH format. As far as I know, there's no existing way to convert between CGFX and BCH without losing crucial components like texture mapping and skeletons for animations. I actually was able to port the mage model from Awakening to Fates, but due to the issues with conversion I could never get textures or animations to work with it. That said, porting Awakening models to Fates might be possible once Ohana finishes implementing its export to CMDL feature, as that's the intermediate file format when creating BCH files.

You can import Awakening's portraits into Fates though! I don't have a link at the moment, but I remember DeathChaos importing Morgan's portraits into Fates a little while back.

Oh, cool! It'd be awesome to see what the community could do when everything's doable. It'd be really cool to do something like adding Nah to Fates or seeing what unique class combinations could be made with classes that were dropped since Awakening like Barbarian or Warrior.

Just thinking about the prospect excites me.

Link to comment
Share on other sites

As a quick note for anybody using the randomizer, there appears to be some instability with a couple chapters on specific routes right now. Here's what I've heard from users so far:

  • The transition from the cutscene to the map during Chapter 2 on a randomized Conquest save causes a crash. You can avoid this by skipping the cutscene.
  • Chapter 4 also crashes when transitioning from the intro cutscene to the map on Birthright and Revelation saves. Skipping won't help with this one, but you should be able to fix the issue by deleting/replacing every file that starts with "A004" in your randomized bev folder. This will not affect recruitment or gameplay in any way, but models will not be swapped during cutscenes for the chapter.
  • A similar crash occurs at the end of Revelation Chapter 10 when Leo's replacement appears. Once again, you should be able to prevent the crash by deleting or replacing every file that starts with "C010" in the bev folder.

I apologize for the issues. I'll try to get a fix out for them when I can.

Link to comment
Share on other sites

I'd like to be using the randomizer (or at the very least Unassuming Venusaur's mod for the extra supports) but Braindump isn't working right for me. =/


Fates Birthright EU's Game ID is listed as: 0004000000179500 in full when reading it from HANS shortening to 00179500 when displaying the Romfs path. It states that the path is invalid, and when I try to exit HANS through the Exit button, the touch screen merely displays the word 'ballin' and hangs.


When I tried using Braindump from the menu, it displayed a different game ID. This is actually driving me a little crazy.
Link to comment
Share on other sites

I'd like to be using the randomizer (or at the very least Unassuming Venusaur's mod for the extra supports) but Braindump isn't working right for me. =/
Fates Birthright EU's Game ID is listed as: 0004000000179500 in full when reading it from HANS shortening to 00179500 when displaying the Romfs path. It states that the path is invalid, and when I try to exit HANS through the Exit button, the touch screen merely displays the word 'ballin' and hangs.
When I tried using Braindump from the menu, it displayed a different game ID. This is actually driving me a little crazy.

So your romfs is named 00179500.romfs and its location on the sd is sd:/hans/00179500.romfs?

Edited by thane98
Link to comment
Share on other sites

So your romfs is named 00179500.romfs and its location on the sd is sd:/hans/00179500.romfs?

When I'm loading Braindump, it's automatically taking 0004001000022100.

Trying to exit from HANS on the 3DS after selecting Fates just leaves the message with it hanging there. There's no change or anything, it just sits there.

If I load Braindump, the title it takes produces a RomFS ov 149 KiB and it's over in a roughly 1 or 2 minutes.

So I know the Title ID isn't the same as my Fates Cartridge and I'm 90% sure that the content contained within Fates would take a decent while longer to download.

I'm just not sure what's going wrong/what I'm doing wrong.

Link to comment
Share on other sites

When I'm loading Braindump, it's automatically taking 0004001000022100.

Trying to exit from HANS on the 3DS after selecting Fates just leaves the message with it hanging there. There's no change or anything, it just sits there.

If I load Braindump, the title it takes produces a RomFS ov 149 KiB and it's over in a roughly 1 or 2 minutes.

So I know the Title ID isn't the same as my Fates Cartridge and I'm 90% sure that the content contained within Fates would take a decent while longer to download.

I'm just not sure what's going wrong/what I'm doing wrong.

I'm actually not sure either - the romfs should be significantly larger than 149 KiB. You could try using a more recent version of braindump, but I don't think the newer versions dump directly to romfs.

Also, are you trying to go back to the homebrew menu from HANS, or go in game?

Link to comment
Share on other sites

Also, are you trying to go back to the homebrew menu from HANS, or go in game?

Back to the homebrew menu. Fates loads perfectly fine from it.

UNNECESSARY EDIT: I loaded Fates through HANS as though I loaded it from the 3DS like Normal and Azura basically just dominated the Arena by herself as a Dread Fighter. The poor first guy didn't stand a chance in the face of her Astra. The second guy did, but after he hit her she waltzed up and basically killed him with a slap.

IMPORTANT EDIT: Like a complete goon, I ignored downloading the XML Braindump File. For those looking back in the future, make note of this error!

Edited by Light Strategist
Link to comment
Share on other sites

I need some help with this,

i have no idea what I'm doing at this point as my old 3ds keeps crashing

At which point? The randomizer isn't perfect right now, so you might crash at certain points in game. You can follow the troubleshooting section to help progress through any sections with crashes until the issues with the tool are worked out.

Are the crashes occurring in game, or when trying to set up homebrew?

Link to comment
Share on other sites

just trying to get it set up is where my probelm is comming from,

everytime I try to launch my sound application my 3ds crashes

Do you have the correct homebrew payload for your 3DS on the root of your SD card? If you don't have the correct one, then the 3DS will just crash instead of proceeding to the homebrew launcher.

I'm really having a lot of fun with this!

And Belinda was the one that originally wanted to try it.

(Posted some issues in your GBATemp Thread... but those are REALLY MINOR issues.)

Sorry, I missed this originally. Thank you so much for the video! I'm glad to see that you're enjoying the randomizer - it's nice knowing that other people are getting some fun out of it after all of the work I've put into it.

Edited by thane98
Link to comment
Share on other sites

How do i get a fefates ROM to work with this randomizer? none of the fefates ROM's that i tried work because they all are just file i can play them but it does not work with the randomizer so where can i get one that works with this randomizer i really want to try this. If you could give ROM that works or one i just need to "Open and Verify," to use would lovely sorry to bother you with this.

Link to comment
Share on other sites

How do i get a fefates ROM to work with this randomizer? none of the fefates ROM's that i tried work because they all are just file i can play them but it does not work with the randomizer so where can i get one that works with this randomizer i really want to try this. If you could give ROM that works or one i just need to "Open and Verify," to use would lovely sorry to bother you with this.

What format is your ROM in? You need to get a romfs for your game and then extract the ROM files from it. Then you can follow the guide to randomize your game.

Link to comment
Share on other sites

Sorry to rush this but i need to go to bed got work tomorrow so could we continue this at a later time, or could you give me the ROM files so that I can just open and verify the files.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...