ROM Hack Fire Emblem Fates: ROM Hacking General Thread

  • Thread starter Thread starter DeathChaos
  • Start date Start date
  • Views Views 339,152
  • Replies Replies 1,084
  • Likes Likes 18
I decent Randomizer like the GBA ones would be very nice. The ones we have available are nice, and all, but I'd prefer to have things like keeping it from swapping a base class to promoted and vise versa, or even randomizing the classes of non-playable map bosses would be nice.

These sound like totally doable things that I could do, but I dunno where all the bytes are or how to even locate them. >.>; But yeah, a randomizer with more control on how classes are handled would be nice. Another idea I have in mind is randomizing skills for classes. It's be kind of fun to see which classes get what skills, even if they're just a bit insane. =w= If I knew anything about locating bytes without completely holding hands about it, I would probably be able to do something like this. (Like, I have no idea how to look for "headers" or how to locate things using "0x###" or whatever, still kind of new to Hex Editing, honestly, but I have a feeling a few quick Google searches might do me some good.)
You might want to take a look at this then;
https://github.com/DeathChaos25/FE_Fates_Class_Randomizer

It's very horribly written and still WIP, but it provides the info that you're looking for.
 
Out of curiosity, what would happen if you swapped say Sakura and Elise's character ids? would Sakura then spawn in Elise's spot?
 
Out of curiosity, what would happen if you swapped say Sakura and Elise's character ids? would Sakura then spawn in Elise's spot?
No, character ID swapping would accomplish nothing in fresh saves, it'd only affect saves that are already past that character's point.

Characters are spawned using their PIDs, not their label, so no matter what character ID you give Sakura within GameData.bin, PID_Sakura will always spawn Sakura unless you change the labels around, the same applies to weapons/items and IIDs
 
No, character ID swapping would accomplish nothing in fresh saves, it'd only affect saves that are already past that character's point.

Characters are spawned using their PIDs, not their label, so no matter what character ID you give Sakura within GameData.bin, PID_Sakura will always spawn Sakura unless you change the labels around, the same applies to weapons/items and IIDs
I should have known that. I suppose I could switch PIDs, I imagine that could cause some wierdness though.

Editing PIDs seems to make the game crash, or maybe that was the class randomizer (though I doubt it)
 
Last edited by Dylos, , Reason: TESTED
So I noticed @DeathChaos25 that your randomizer randomizes every single character, even the ones that cannot be recruited (Castle Lilith, Shopkeeper, etc.) I imagine this might create some wonkyness, have you actually played with it very much?
 
So I noticed @DeathChaos25 that your randomizer randomizes every single character, even the ones that cannot be recruited (Castle Lilith, Shopkeeper, etc.) I imagine this might create some wonkyness, have you actually played with it very much?
There's no "wonkyness", aside from capture units who would now have the bond unit base class glitch, everyone else, including castle lilith, will just use their new base class like expected (although randomizing lilith might be a bad idea since she will only ever spawn with her 2 unique dragon weapons, although maybe you can make her a Feral Dragon...)

Or at least all of this is the case from testing so far.
 
I'm currently working on my own little Fates randomizer, I guess. I took Chaos's advice, and took the randomizer as sort of a guide to knowing where the class values are, I guess. I don't know how far I'm going to take this process, but I plan to go as far as to give these options.
  • Choosing whether or not the gender lock.
  • Choosing whether or not to tier lock. (This means an unpromoted unit will stay unpromoted, while a prepromote will stay a prepromote. This way, the base stats aren't hard to deal with.)
  • Choose to include special classes. (Faceless, Stoneborn, etc.)
  • Choose to include boss classes. (Nohr King, Empty Vessel, etc.)
  • Choose to include at least one songstress as a base class. I'll probably have to include a selection whether you want this to apply to Birthright, Conquest, or Revelation, as certain characters will be absent in certain paths.
  • Include a changelog that outputs after the randomization.
That's all I can promise, for now. In the future, I want to be able to randomize bosses and unit deployment, but I'm still learning how to locate information within the bin files. A lot of this is heavily influenced from Lushen's GBA Randomizer, although I do intend on adding my own features when I learn how to do them. (Like randomizing skills or randomizing an alternate weapon to some classes... although the latter seems like a terrible, terrible idea, I do want to see how that kind of run would play out.) I dunno, I'm mainly doing this as a personal project. My current code is a mess. ;_; But it will be a Windows Form executable file. Hope this contributes to something, in the end. :P
 
Last edited by DeferredGalaxy,
Well, I guess that everyone's making a randomizer at this point.

I went ahead and built something according to your specifications, @Dylos, though it's not quite done yet. Right now the randomizer can correctly randomize classes and join order, adjust weapon ranks, and change cutscenes to suit the new join order. But it's limited to characters that you get through the main storyline (no characters that join through My Castle) at the moment since they require a special setup for join order swapping, but the randomizer works fine in every other aspect. I might be able to get it out by the end of the weekend depending on how much free time I have.

Here's some screenshots for anyone interested.
 
Last edited by thane98,
Well, I guess that everyone's making a randomizer at this point.

I went ahead and built something according to your specifications, @Dylos, though it's not quite done yet. Right now the randomizer can correctly randomize classes and join order, adjust weapon ranks, and change cutscenes to suit the new join order. It's limited to characters that you get through the main storyline (no characters that join through My Castle) at the moment since they require a special setup for join order swapping, but the randomizer works fine in every other aspect. I might be able to get it out by the end of the weekend depending on how much free time I have.

Here's some screenshots for anyone interested.
"Selena Dark!" ffs, Selena.
 
Well, I guess that everyone's making a randomizer at this point.

I went ahead and built something according to your specifications, @Dylos, though it's not quite done yet. Right now the randomizer can correctly randomize classes and join order, adjust weapon ranks, and change cutscenes to suit the new join order. But it's limited to characters that you get through the main storyline (no characters that join through My Castle) at the moment since they require a special setup for join order swapping, but the randomizer works fine in every other aspect. I might be able to get it out by the end of the weekend depending on how much free time I have.

Here's some screenshots for anyone interested.
How did you handle prepromotes and what class they come from?

If you haven't, you can grab the code I used for that, because it's something that needs to be handled.

For example, say Setsuna is randomized to be a Swordmaster, 2 bytes after their base class you can find the origin class for prepromotes, or the intended promotion for non promoted units.

So in this case, Setsuna's class is Swordmaster, but her "Origin" class is still set as Sniper, meaning Setsuna will only learn the Swordmaster skills, she will not have access to the Samurai skills, nor will she be able to reclass into Master of Arms.

I did implement a check for this to correctly assign the origin/intended promotion based on new class, most classes are easy, most classes can either go up 2 class IDs or go down 2 class IDs (2 class IDs because you need to skip the same class but for opposite gender), I also coded exceptions for a few classes such as Villager, Master of Arms and such.
 
Well, I guess that everyone's making a randomizer at this point.

I went ahead and built something according to your specifications, @Dylos, though it's not quite done yet. Right now the randomizer can correctly randomize classes and join order, adjust weapon ranks, and change cutscenes to suit the new join order. But it's limited to characters that you get through the main storyline (no characters that join through My Castle) at the moment since they require a special setup for join order swapping, but the randomizer works fine in every other aspect. I might be able to get it out by the end of the weekend depending on how much free time I have.

Here's some screenshots for anyone interested.
Looking forward to it very much, this certainly looks like something that will get used a bit.
 
Well, I guess that everyone's making a randomizer at this point.

I went ahead and built something according to your specifications, @Dylos, though it's not quite done yet. Right now the randomizer can correctly randomize classes and join order, adjust weapon ranks, and change cutscenes to suit the new join order. But it's limited to characters that you get through the main storyline (no characters that join through My Castle) at the moment since they require a special setup for join order swapping, but the randomizer works fine in every other aspect. I might be able to get it out by the end of the weekend depending on how much free time I have.

Here's some screenshots for anyone interested.
This looks much more fun than my "randomizer". Manually exporting my save file when I get a new unit and editing them in the save editor..
 
How did you handle prepromotes and what class they come from?

If you haven't, you can grab the code I used for that, because it's something that needs to be handled.

For example, say Setsuna is randomized to be a Swordmaster, 2 bytes after their base class you can find the origin class for prepromotes, or the intended promotion for non promoted units.

So in this case, Setsuna's class is Swordmaster, but her "Origin" class is still set as Sniper, meaning Setsuna will only learn the Swordmaster skills, she will not have access to the Samurai skills, nor will she be able to reclass into Master of Arms.
I wasn't aware of that particular issue with prepromotes - thank you for telling me. It seems like fixing the issue with it shouldn't be too difficult though. I'm using a data file for classes at the moment, so I'll probably just add in a flag for if a class is promoted or not and determine the value of the second byte based off of that.
 
I wasn't aware of that particular issue with prepromotes - thank you for telling me. It seems like fixing the issue with it shouldn't be too difficult though. I'm using a data file for classes at the moment, so I'll probably just add in a flag for if a class is promoted or not and determine the value of the second byte based off of that.

You said that there was issues with My Castle characters not randomizing in, would it be possible to include amiibo units in the randomizer as well? that would be pretty neat in conjunction with the Gay Fates patch.
 
Well, I guess that everyone's making a randomizer at this point.

I went ahead and built something according to your specifications, @Dylos, though it's not quite done yet. Right now the randomizer can correctly randomize classes and join order, adjust weapon ranks, and change cutscenes to suit the new join order. But it's limited to characters that you get through the main storyline (no characters that join through My Castle) at the moment since they require a special setup for join order swapping, but the randomizer works fine in every other aspect. I might be able to get it out by the end of the weekend depending on how much free time I have.

Here's some screenshots for anyone interested.

Oh hey, that's promising. I might ditch my randomizer for this, actually, haha. (Mine's kind of a wreck, at the moment.) :P

Is this like an interface with options, or is it like a single script or something? If it turns out to be open source, I'd definitely would just ditch my own and just make some contributions to yours, if you don't mind.
 
Oh hey, that's promising. I might ditch my randomizer for this, actually, haha. (Mine's kind of a wreck, at the moment.) :P

Is this like an interface with options, or is it like a single script or something? If it turns out to be open source, I'd definitely would just ditch my own and just make some contributions to yours, if you don't mind.
It's all GUI based using JavaFX. I do plan on making it open source for anyone who wants to build off of it.
 
I wasn't aware of that particular issue with prepromotes - thank you for telling me. It seems like fixing the issue with it shouldn't be too difficult though. I'm using a data file for classes at the moment, so I'll probably just add in a flag for if a class is promoted or not and determine the value of the second byte based off of that.
You could try looking at this, it deals with every prepromote and their possible base classes.

Not the cleanest implementation, it could certainly be done better, but it should give you a good enough idea.
 
  • Like
Reactions: thane98
I'm back! I'm really intrigued by all this ROM Hacking Stuff, so, uh.... Another Question!

I wonder if it's possible to make a New Character and Class from Scratch?

For example if i want to Make Walhart And other Characters from Awakening as DLC But the game doesn't have data for those characters.
So how do i fill that missing data with the characters?
 
I'm back! I'm really intrigued by all this ROM Hacking Stuff, so, uh.... Another Question!

I wonder if it's possible to make a New Character and Class from Scratch?

For example if i want to Make Walhart And other Characters from Awakening as DLC But the game doesn't have data for those characters.
So how do i fill that missing data with the characters?

It would take a lot of work and effort. people have looked into importing the models, and unfortuantely they aren't very compatible with Fates, and can't be used in this game. Voices are still being explored, but DeathChaos has made progress on that front to an extent. Portraits, names, and custom classes are all pretty well understood and this point.

The main barrier preventing us from going all out and adding Awakening characters is the models. Other than that, the people that understand the process behind Custom DLC have a pretty good understanding of how it works.

Personally I'm still researching myself on how to make a custom character as I have like, 3 ideas that I'm hoping to make a reallity. (er.. was hoping..), but mostly everyone is busy with classes and unfortunately doesn't have enough time to root through the games files and experiment.
 
It would take a lot of work and effort. people have looked into importing the models, and unfortuantely they aren't very compatible with Fates, and can't be used in this game. Voices are still being explored, but DeathChaos has made progress on that front to an extent. Portraits, names, and custom classes are all pretty well understood and this point.

The main barrier preventing us from going all out and adding Awakening characters is the models. Other than that, the people that understand the process behind Custom DLC have a pretty good understanding of how it works.

Personally I'm still researching myself on how to make a custom character as I have like, 3 ideas that I'm hoping to make a reallity. (er.. was hoping..), but mostly everyone is busy with classes and unfortunately doesn't have enough time to root through the games files and experiment.
Sorry to hear about your 3DS.

Do you happen to have another 3DS with CFW?
Right now I'm just riding the Sun/Moon train like many people, but there's something I've been working on for a while that I'd love for you to test out...
 
  • Like
Reactions: Arubaro

Site & Scene News

Popular threads in this forum