• Announcements

    • Tangerine

      Serenes Forest Scribbles 2016 has begun, Raffle prizes have been updated!   12/03/16

      Hey everyone! We've started up our Creative event once more, you can check out the thread here:

      http://serenesforest.net/forums/index.php?showtopic=67567

      If you're new here, it's an event where people can submit something they've created for the chance to have some fun and win some prizes. If you've got a talent you'd like to share with the FE community, there's no harm in giving it a go!
thane98

WIP
Fire Emblem Fates Randomizer

78 posts in this topic

jRs81ea.pngDrFNhI1.pngJvxXATp.png

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 (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.
 
If you're on firmware version 11.2: Download soundhax for your region/3DS version here and follow the install instructions on the page to setup homebrew. Follow the instructions for HANS below.
Edit: If you're on 11.2, I highly advise holding out on it if any updates come out right now, as it looks like you may be able to set up arm9loaderhax + NTR from this firmware in the near future. This would provide you with the most convenient way to run ROM hacks on your 3DS.
 
If you're on firmware version 11.0 or 11.1: If you don't want to update you'll have to look around for homebrew exploits. Browserhax offers a free homebrew entry point on 11.0, but finding a free entry point on 11.1 is a bit tougher. Worst case, you can update to 11.2 and use soundhax as a free entry point. Either way, follow the instructions for HANS once you get homebrew access.
 
If you're on anything lower than 11.0: Honestly at this point I'd advise just following this guide and setting up full custom firmware on your 3DS. You will be able to use NTR for running ROM hacks, which greatly simplifies the process. Additionally, you won't have to worry about updates breaking your access to homebrew and ROM hacks.
 
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="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.[/spoiler]
 
Changelog:
[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]
[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]
[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.
[/spoiler]
 
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

Share this post


Link to post
Share on other sites

THANK YOU SO MUCH

Share this post


Link to post
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.

Share this post


Link to post
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.

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites

Damn, I mean DAMN. This is nice

Share this post


Link to post
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.

Share this post


Link to post
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.

Share this post


Link to post
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

Share this post


Link to post
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.

Share this post


Link to post
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?

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

When you do so much and need a 32Bit ctrtool... T~T

Share this post


Link to post
Share on other sites
I'm really having a lot of fun with this!

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

https://youtu.be/e4hNUjSQOmk

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

Share this post


Link to post
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

Share this post


Link to post
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?

Share this post


Link to post
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

Share this post


Link to post
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.

https://youtu.be/e4hNUjSQOmk

(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

Share this post


Link to post
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.

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites

Posted · Hidden by eclipse, January 9 - No reason given · Report post

WinRAR archive i can play it.

Share this post


Link to post

WinRAR archive i can play it.

And what's located inside the archive?

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites

okay, so I realized I was using the wrong methood, my 3DS is on firmware 11.0.0.33

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now