Fe Fates Save Hex Editing Guide

Discussion in '3DS - ROM Hacking, Translations and Utilities' started by Omegablu, Apr 18, 2016.

  1. Omegablu
    OP

    Omegablu We shall not yield to the Kingdom of Nohr!

    Member
    1,043
    288
    Mar 10, 2016
    United States
    Ice Tribe Village
    Hello all! I've been hex editing my saves in Fates for a week or so as of posting and have noticed a certain lack of concentrated information anywhere. Serenes Forest has some stuff, but none of it is for saves or localized. I hope to provide both a guide and resources in this thread for editing. This is only for ChapterX (x being any number) files for now, but will expand to others if anything is found. For those of you uncomfortable with hex editing, @Soaprman has a low-feature WIP editor called FEFTwiddler. Convoy editor by @RainThunder is here. Both tools do not need FEST. Most edits cannot be done with these editors, so hex editing is often the only way.

    To start off, you need to extract your save. I use savedatafiler and JK's save tool. Use JK's if your save is in extdata (the process is identical). You should get multiple files, named ChapterX, Exchange, Global, Rating, VersusX. The number of files will vary depending on the person. Now that you have those, grab FEST from here. This tool decompresses and compresses save files. Take the save file you want from your dump. The file you need is one of the ChapterX files. Chapter0 is the first slot, Chapter1 is the second, etc. Drag the Chapter file onto the FEST exe file and the program will decompress it for you. Open the resulting file in a hex editor (I use HxD) and tinker to your heart's content. After completion, drag the ChapterX_Dec onto FEST and import the resulting ChapterX (FEST will overwrite an existing file if it is named the same as the file it is creating).

    Now, here's the information most of you want. Before going in please note that offsets may never be the same. Credit goes to @Kuro Kairaku for the image and locations.
    HHMpq6B.png
    Purple highlights are Character and class id's in that order. For @DeathChaos25's custom dlc replace the 00 between the two with 01. A list of id's can be found at the bottom of the post. Constantly updating list as names do not all match NA release.
    Red highlights are equipped skills. Values are also in attached pdf.
    Blue highlights are iventory slots. Structure is two pairs for item ID(values in PDF), 00, then a 4 if the item is equipped 0 if not, then the forge level 0-7. Example would be 46 00 00 47. That is an equipped forge level 7 brass naginata.
    Not sure exactly what the brown bytes are, but setting them to FF FF FF allows for all dlc classes of your gender to be usable via heart seal.
    Dark Purple is avatar hair color in hex. Can be set to any hex value, even non default ones. Not sure if the location is the same for non-avatar characters, but is the same for avatars.
    Yellow box is the start of skills and is always the same values.
    Yellow highlight are learned skills. Setting these all to FF learns ALL skills that exist in the game.
    The FF FF FF FF in row FC0 starts the logbook bytes, but DON'T change the FF's. Zeroing out the numbers after the FF FF FF FF all the way to the FF FF removes the shield from any unit.
    Four pairs after the end of the skills are equipped accessories. Order is head face arm body, but that may be wrong.

    rSFOZO6.png More detailed image linked by Soaprman, thanks man. Leaving other image and data as both are helpful still. Origin of image is Serenes Forest.

    And that is all! Please leave comments with improvements, new data, etc. and I will be sure to add it.
     

    Attached Files:

    Last edited by Omegablu, Apr 18, 2016
    KunoichiZ, Natural, Gray_Jack and 5 others like this.
  2. Soaprman

    Soaprman GBAtemp Regular

    Member
    166
    140
    Apr 9, 2016
    United States
    Georgia, USA
    Good idea!

    By the way, you timed this pretty nicely, because I just added a character hex view to FEFTwiddler: https://github.com/Soaprman/FEFTwiddler/releases/tag/0.6.0alpha1

    It could be really useful for doing this sort of research, since it divides things up and only shows what pertains to your particular character.

    There's a picture with a lot of stuff figured out in this post on serenesforest: http://serenesforest.net/forums/index.php?showtopic=54943&page=15&#entry4325518

    The source code to Character.cs can also act as some sort of documentation. There's plenty that I know of that isn't implemented, though. https://github.com/Soaprman/FEFTwiddler/blob/master/FEFTwiddler/Model/Character.cs
     
  3. Omegablu
    OP

    Omegablu We shall not yield to the Kingdom of Nohr!

    Member
    1,043
    288
    Mar 10, 2016
    United States
    Ice Tribe Village
    Thanks for the image, added it. I got the notification of your update within minutes of posting the OP and I gotta say that the timing was pretty funny.
     
  4. DeathChaos25

    DeathChaos25 Unmei wo kaeru!

    Member
    1,306
    668
    Oct 21, 2015
    @Soaprman now that you're here, I want to ask.

    Chapter 4 Rinkah is actually in your party once the chapter ends, yet in Revelation she is not available to you until chapter 9, despite being a part of your team already, the same happened when I recruited Odin in Chapter 1 and Selena/Lazlow on Chapter 2, while they are indeed part of my squad and I can find their character blocks in the save with FEFTwiddler, they're unusable, they're not even dead, so I'm guessing it's probably a flag somewhere that's doing some funny shenanigans.
     
  5. Soaprman

    Soaprman GBAtemp Regular

    Member
    166
    140
    Apr 9, 2016
    United States
    Georgia, USA
    Assuming I get what you're saying, for those characters, the "Absent (left at ch 6, hasn't returned)" checkbox should be checked.

    They're stored in a separate block (05 XX) in the save, between the living (03 XX) and dead (06 XX) characters. I'm guessing there would be another block (maybe 04 XX) for characters who are in your party but grayed out, like Elise on Conquest 12, but I haven't been able to check that yet.
     
    Last edited by Soaprman, Apr 18, 2016
  6. KevinRodea

    KevinRodea Member

    Newcomer
    12
    3
    Mar 27, 2016
    United States
    Hrm, good upload. I'm still trying to figure out how to change "My Room" models haircolor.
    I tried searching up all values of their hair color in the ChapterX saves, but it doesn't seem to affect anything.
     
  7. Omegablu
    OP

    Omegablu We shall not yield to the Kingdom of Nohr!

    Member
    1,043
    288
    Mar 10, 2016
    United States
    Ice Tribe Village
    The second value for hair color is the My Room hair color I think.
     
  8. KevinRodea

    KevinRodea Member

    Newcomer
    12
    3
    Mar 27, 2016
    United States
    odd, I've changed both for my Sophie, yet her My Room model remains Nyx's hair color
     
  9. Celiciaisbestwaifu

    Celiciaisbestwaifu Member

    Newcomer
    14
    1
    Jan 19, 2016
    United States
    Does your 3Ds have to be at 9.2? or have homebrew?
     
  10. Omegablu
    OP

    Omegablu We shall not yield to the Kingdom of Nohr!

    Member
    1,043
    288
    Mar 10, 2016
    United States
    Ice Tribe Village
    You have to have access to homebrew in some way.
     
  11. Celiciaisbestwaifu

    Celiciaisbestwaifu Member

    Newcomer
    14
    1
    Jan 19, 2016
    United States
    Ok, thanks. I'm kind of a begginer to all of this
     
  12. Thunder Kai

    Thunder Kai #TeamRem

    Member
    1,349
    384
    Sep 4, 2015
    United States
    With Rem
    *in Elise's voice* Yay :D
     
  13. Omegablu
    OP

    Omegablu We shall not yield to the Kingdom of Nohr!

    Member
    1,043
    288
    Mar 10, 2016
    United States
    Ice Tribe Village
    She is SO ADORABLE!
     
    Red9419 and Thunder Kai like this.
  14. Thunder Kai

    Thunder Kai #TeamRem

    Member
    1,349
    384
    Sep 4, 2015
    United States
    With Rem
    Soo.....
    What are the hex values of the difficulty and mode again? :3
    I forgot what post it was mentioned on
     
  15. Omegablu
    OP

    Omegablu We shall not yield to the Kingdom of Nohr!

    Member
    1,043
    288
    Mar 10, 2016
    United States
    Ice Tribe Village
    I actually.....don't know. The majority of the data I do have is character block related. Search bar is your friend.
     
  16. neofranky

    neofranky Member

    Newcomer
    47
    0
    Sep 12, 2009
    Mexico
    What about the Ratings file? I am really interested in just giving myself 9999 to get all those items in a "natural" way. have anyone figured out how to hex edit that? What exactly does the "Ratings" file stores, too?
     
  17. royr719

    royr719 Member

    Newcomer
    36
    2
    Nov 1, 2015
    Seems there's enough metadata discovered for someone to release a tool :)
     
  18. Omegablu
    OP

    Omegablu We shall not yield to the Kingdom of Nohr!

    Member
    1,043
    288
    Mar 10, 2016
    United States
    Ice Tribe Village
    Soaprman released a tool several weeks ago. He linked it in the second post.
     
    royr719 likes this.
  19. magikarpnoms

    magikarpnoms Newbie

    Newcomer
    6
    1
    Apr 21, 2016
    United States
    Using this method, is it possible to import/export character data with Hex values? For example, if you're missing a character and want to edit them in from one save file into another?
     
  20. Omegablu
    OP

    Omegablu We shall not yield to the Kingdom of Nohr!

    Member
    1,043
    288
    Mar 10, 2016
    United States
    Ice Tribe Village
    I've done that in Awakening so I don't think it would be impossible. If you do try it, you would have to overwrite a unit (logbook ones work). It would be easier to get a logbook copy of the unit in question and remove the shield. You could add the block as an additional one but I don't know exactly how to do that. If you are successful make sure to report back and I will add your findings to the OP.
    Edit: If you do overwrite a character, make sure to delete ALL of the overwrote character block.
     
    Last edited by Omegablu, Apr 21, 2016