ROM Hack [Save Edit] Fire Emblem: Awakening (with Ironhax/SDM)

[Truth]

Well-Known Member
OP
Member
Joined
Mar 21, 2006
Messages
1,052
Trophies
1
Location
Mushroom Kingdom
XP
2,350
Country
Germany
I successfully edited the gold in my FE: Awakening savefile.

You need:
Latest Ironhax (2.1)/Tubehax
Latest boot.3dsx
Save data manager
Fire Emblem: Awakening Save Tool
A Hex Editor (like HxD)
  1. Dump the save from your cartridge/digital via Save Data Manager.
  2. Decompress the save with Fire Emblem: Awakening Save Tool.
  3. Open the save you want to edit in the hex editor (Chapter0-2 = overworld saveslots, map0-1 = battle saveslots, Global = global game settings).
  4. Search for the value you want to edit (search -> hex value).
    I.E, you have 5000 gold on your save, the hex value for 5000 is 13 88 (converter here), reverse the value (88 13) to find it in the save (that is important to find the value!) and change it to your liking (like 3F 42 0F = 999999 max gold).
  5. Save and compress the save again with Fire Emblem: Awakening Save Tool.
  6. Copy back with Save data manager.

Enjoy your gold!

That was only one value a quickly found, post away your findings for item/level etc values.
 
Last edited by [Truth],

Olmectron

Well-Known Member
Member
Joined
Dec 31, 2012
Messages
2,657
Trophies
2
Age
31
Location
A game
XP
3,855
Country
Mexico
Nice. Was looking for something like this yesterday. Now if only I was able to figure out the same thing for Bravely Default.
 

Hopalongtom

Well-Known Member
Member
Joined
Mar 14, 2009
Messages
268
Trophies
0
XP
327
Country
Ooh yess... can this be used to use enemy only classes? Such as setting your tactician to use the same class as the final boss? ^_^
 

Olmectron

Well-Known Member
Member
Joined
Dec 31, 2012
Messages
2,657
Trophies
2
Age
31
Location
A game
XP
3,855
Country
Mexico
I got to change values for Seraph Robe, Energy Drop, Spirit Dust and so on. However, I don't know that much of this, I thought offsets where immovable, but it seems they differ per save file. Wanted to share the offsets where I changed these, but it won't be possible, it seems.
 

Olmectron

Well-Known Member
Member
Joined
Dec 31, 2012
Messages
2,657
Trophies
2
Age
31
Location
A game
XP
3,855
Country
Mexico
@Olmectron But you could explain how you found them. ;)
Well. That's true.

This is not a tutorial. I just did trial and error with the tools @[Truth] kindly provided, and had kind of luck in finding the values for some items slots. I'm just a noob in hex editing, never did it before, so if someone can help to explain better, please do it. Oh, and of course I know someone could have already found something like this, but I'm new to the scene and I'm just putting my grain of sand for new users like me that came in when Ironhax was launched.

Using the tools you provided (HxD and the game's save tool), I looked up first for easy things to change. There were several strings showing my file's name, so I tried changing that. That was easy to find since it's at the start of the file.

cp1.PNG


Then I thought. "Let's give Chrom an overpowered STR stat". That's when I remembered how I used to find cheats with my DSTWO card for NDS games. I paused the game with the card's built-in menu, looked for a value, then went back to the game, changed what I wanted to find, then back to the menu, and looked again for the new value.

That's really fuzzy. Those who owned a DSTWO, or have used any kind of Cheat System will understand immediatly. For those that don't, it's like playing any game with stats. FE:SD, for example, I had a unit with DEF stat 10 and used an stat incrementer making it 12. The DSTWO cheat search function would find the change from 10 to 12, taking down other non-coinciding values until I found the exact value to change for making the DEF stat whatever I wanted.

Whatever, this gave me the idea to check HxD functions to look for something similar, and after looking at the File-Compare option in Analysis menu, I thought that could work. (However in the end, I couldn't do what expected, but it turned out to something nice the same).

CP2.png


1. I backed up my original unmodified data using Save Manager. Copied it to my PC. This will be Backup A.
2. I went to my game and used an Energy Drop on Chrom. That augmented Chrom's STR stat from 42 to 43 (2A to 2B in hex).
3. I saved and exited my game immediatly after saving, changed nothing else.
4. Made a second backup using Save Manager. Copied it to my PC. This will be Backup B.
5. Using the FE:A save tool, I decompressed both Backups.
6. In HxD I pressed the File-Compare > Compare... option I showed before. Something like the next image appeared. I don't think Source or Target file matter in order. Anyway, I used Backup B as source since it's the one I was modifying. Backup A as target.

cp3.PNG


7. It showed the screen like the following image. Backup B showing up and Backup A showing down.

cp4.PNG


Of course, it wasn't showing me that exact part in the start, it was the starting part of the file, since it seems even after just modifying one value (Chrom's STR stat), the header of the file changed too. And so many other things. I looked for all of the changes between the two (pressing F6 skipped through the changes). I looked for the 2A to 2B value in the differences, but after looking twice through all the file, I didn't find them.

8. Then, after going through the changes for a third time and feeling bad because of not finding the values I wanted, I was playing FE:A on my 3DS looking for some other values that could have changed. My brain turned on when I remembered the value of the Energy Drop quantity should have dropped from 2 to 1. And I saw several 01 values changed on the Backup B file.

After a little bit more revision, I found the rows I selected in the image from point 7. My item list in the game showed in this order: 3 Seraph Robe, 1 Energy Drop, 2 Spirit Dust, 6 Secret Book, 5 Speedwing, 4 Goddess Icon and so on. That coincided with the first selected row! The same order, just separated by a "00" each time. And the change from 2 to 1 on the Energy Drop value meant it was exactly that.

9. I modified the values as shown next. My guess was that each item slot could support FF FF items, meaning 65,535 real items in the game. So I filled everything as seen with FF until before a 01. I checked before and the values coincided for several items until the Silver Card, which value was 01. That meant Master Seal, Second Seal, the Bullions, Rift Door, Paragon, Iote's Shield and some other items would be affected since they are listed before the Silver Card.

CP5.PNG


10. And done! Enough items for finishing the game without any grinding at all. Haven't tried if my guess about FF FF was true, but anyway, 255 items (for FF) would be enough too. The Inventory always list 99 items, but even after using several of them, it's still in 99 items. I think it saves the real items count, but still only shows 99.



Note: It seems the file gets bigger with each new character unlocked and even with menus unlocking (in the start the Inventory, Barracks, Wireless are not available, for example). So the hex offset shown won't match with your file's exactly. However, the file I did this with is a finished one (game beaten) with all of the characters unlocked, but 2. So it's possible that you could find the offset somewhere near the ones showed in the images if your file is similar in these things.
 
Last edited by Olmectron,

RainThunder

Well-Known Member
Member
Joined
Jun 22, 2012
Messages
212
Trophies
0
Location
Hanoi
XP
351
Country
I had successfully edited skillset, stats, etc. for a while ago. Basically it's the same method as Olmectron's.

Here are some tips:
- Swap the first character and the second one to find out character block offset.
- The character structure is basically look like this (different character has different offsets).
Code:
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000000  07 1E 00 1A 00 00 53 60 48 48 3A 20 0F 21 1D 25  ......S`HH: .!.%
00000010  1F 18 0B 5A 50 00 FF FF FF FF 04 03 00 23 10 04  ...ZP.ÿÿÿÿ...#..
00000020  03 00 23 00 04 40 00 19 00 04 05 00 1E 00 04 99  ..#..@.........™
00000030  00 03 00 23 00 22 00 59 00 0E 00 4A 00 5A 47 2F  ...#.".Y...J.ZG/
00000040  02 00 00 0E 00 00 0F 01 02 08 10 07 01 13 00 00  ................
00000050  0B 16 00 1A 02 09 01 00 00 00 00 00 00 00 00 00  ................
00000060  00 00 00 00 00 00 FF FF 00 00 00 00 02 00 00 00  ......ÿÿ........
00000070  00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 01  ..............@.
00000080  00 0C 00 00 02 08 04 00 02 00 00 00 00 00 79 00  ..............y.
00000090  00 00 00 32 FF FF 01 00 01 01 FF FF FF FF FF FF  ...2ÿÿ....ÿÿÿÿÿÿ
000000A0  FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
000000B0  FF FF FF FF FF FF FF FF FF FF 00 F9 00 9F 00 00  ÿÿÿÿÿÿÿÿÿÿ.ù.Ÿ..
000000C0  00 00 00 6E 63 76 FF 00 00                       ...ncvÿ..
Code:
0x00: = 0x07
0x01: Character ID
0x04: Class ID
0x06 - 0x09: Some sort of RNGs, change everytime
0x0A - 0x11: internal stats (HP/Str/Mag/Skl/Spd/Lck/Def/Res).
   True stats = class's base stats + character modifier + character additional stats + internal stats
   "Additional stats" can be found in romfs/data/person/static.bin.lz
   Stats that displayed on the character screen are already chacked against caps.
0x12: Level
0x13: Exprience
0x14: HP
0x15: Mov
    = 0x02: Used one boot, 0x04: two boots
0x0A - 0x32: item (5 bytes per item slot)
    Slot 1: 04 03 00 23 10: Steel Sword, 35 uses (0x23 = 35)
    Slot 2: 04 03 00 23 00: Steel Sword, 35 uses (0x23 = 35)
    Slot 3: 04 40 00 19 00: Short Axe, 25 uses
    Slot 4: 04 05 00 1E 00: Brave Sword, 30 uses
    Slot 5: 04 99 00 03 00: Concoction, 3 uses
    Item list: http://serenesforest.net/forums/index.php?showtopic=52377&page=10#entry3713879
0x33 - 0x3C: equipped skill (2 bytes per slot)
    List: http://serenesforest.net/img/fehax/Skill2.txt
0x3D - 0x42: weapon rank (max 0x5A = 90)
    Sword, Lance, Axe, Bow, Tome, Staff
0x53: Possibly EXP Cap.
0x7A: Tonic flags. My test:
    Changed from 0x00 to 0x1A (00011010 in binary) after using Gaius's Confect (+Str, +Skl, +Spd).
    Changed from 0x00 to 0xC1 (11000001 in binary) after using Kris's Confect (+HP, +Def, +Res).
    So the flags are stored in the following order: Res / Def / Lck / Spd / Skl / Mag / Str / HP
    You can set them to 0xFF for full tonic boost.
0x7B: Barrack bonus flags. Similar to tonic flags.
0x7D - 0x89: Learned Skill flags.
    My Donnel: 00 40 01 00 0C 00 00 02 08 04 00 02 00
    Convert to binary:
        00000000 01000000 00000001 00000000 00001100 00000000 00000000 00000010 00001000 00000100 00000000 00000010 00000000
    Revese bit order on each byte:
        00000000 00000010 10000000 00000000 00110000 00000000 00000000 01000000 00010000 00100000 00000000 01000000 00000000
    If the bit at position x (count from 0) is 1, then a character should have x-th skill in skill table.
    E.g: the bit at position 9 is 1, which means my Donnel has Aptitude.
    All skill: FE FF FF FF FF FF FF FF FF FF FF FF 7F
0xC3 - 0xC5: Hair Color (RGB)
    http://www.w3schools.com/tags/ref_colorpicker.asp
- More list, reference can be found on serenesforest forum.
 
Last edited by RainThunder,

Olmectron

Well-Known Member
Member
Joined
Dec 31, 2012
Messages
2,657
Trophies
2
Age
31
Location
A game
XP
3,855
Country
Mexico
I had successfully edited skillset, stats, etc. for a while ago. Basically it's the same method as Olmectron's.

Here are some tips:
- Swap the first character and the second one to find out character block offset.
- The character structure is basically like this (different character has different offsets).
0x00: = 0x07
0x01: character?
0x04: Class
0x06 - 0x09: Some sort of RNGs, change everytime
0x0B - 0x11: internal stats. Str/Mag/Skl/Spd/Lck/Def/Res. Real stats = class's base stats + internal stats
0x12: Level
0x13: Exprience
0x14: HP
0x15: Mov
= 0x02: Used one boot, 0x04: two boots
0x0A - 0x32: item (5 byte per item slot)
Slot 1: 04 03 00 23 10: Steel Sword, 35 uses (0x23 = 35)
Slot 2: 04 03 00 23 00: Steel Sword, 35 uses (0x23 = 35)
Slot 3: 04 40 00 19 00: Short Axe, 25 uses
Slot 4: 04 05 00 1E 00: Brave Sword, 30 uses
Slot 5: 04 99 00 03 00: Concoction, 3 uses
Item list: http://serenesforest.net/forums/index.php?showtopic=52377&page=10#entry3713879
0x33 - 0x3C: equipped skill (2 byte per slot)
List: http://serenesforest.net/img/fehax/Skill2.txt
0x3D - 0x42: weapon rank (max 0x5A = 90)
Sword, Lance, Axe, Bow, Tome, Staff
0x53: Possibly EXP Cap.
0x7A: Tonic flags. E.g:
Changed from 0x00 to 0x1A (00011010) after using (+Str, +Skl, +Spd).
Changed from 0x00 to 0xC1 (11000001) after using (+HP, +Def, +Res).
0x7D - 0x89: Learned Skill flags.
All skill: FE FF FF FF FF FF FF FF FF FF FF FF 7F
0xC3 - 0xC5: Hair Color (RGB)
http://www.w3schools.com/tags/ref_colorpicker.asp
- More list, reference can be found on serenesforest forum.
Nice! Gonna try it tomorrow.
 

KaleoOmega

I just don't know what to do with myself...
Member
Joined
Apr 17, 2013
Messages
386
Trophies
0
XP
282
Country
Brazil
I had successfully edited skillset, stats, etc. for a while ago. Basically it's the same method as Olmectron's.

Here are some tips:
- Swap the first character and the second one to find out character block offset.
- The character structure is basically look like this (different character has different offsets).
Code:
0x00: = 0x07
0x01: character?
0x04: Class
0x06 - 0x09: Some sort of RNGs, change everytime
0x0B - 0x11: internal stats. Str/Mag/Skl/Spd/Lck/Def/Res. Real stats = class's base stats + internal stats
0x12: Level
0x13: Exprience
0x14: HP
0x15: Mov
    = 0x02: Used one boot, 0x04: two boots
0x0A - 0x32: item (5 byte per item slot)
    Slot 1: 04 03 00 23 10: Steel Sword, 35 uses (0x23 = 35)
    Slot 2: 04 03 00 23 00: Steel Sword, 35 uses (0x23 = 35)
    Slot 3: 04 40 00 19 00: Short Axe, 25 uses
    Slot 4: 04 05 00 1E 00: Brave Sword, 30 uses
    Slot 5: 04 99 00 03 00: Concoction, 3 uses
    Item list: [URL]http://serenesforest.net/forums/index.php?showtopic=52377&page=10#entry3713879[/URL]
0x33 - 0x3C: equipped skill (2 byte per slot)
    List: [URL]http://serenesforest.net/img/fehax/Skill2.txt[/URL]
0x3D - 0x42: weapon rank (max 0x5A = 90)
    Sword, Lance, Axe, Bow, Tome, Staff
0x53: Possibly EXP Cap.
0x7A: Tonic flags. E.g:
    Changed from 0x00 to 0x1A (00011010) after using Gaius's Confect (+Str, +Skl, +Spd).
    Changed from 0x00 to 0xC1 (11000001) after using Kris's Confect (+HP, +Def, +Res).
0x7D - 0x89: Learned Skill flags.
    All skill: FE FF FF FF FF FF FF FF FF FF FF FF 7F
0xC3 - 0xC5: Hair Color (RGB)
    [URL]http://www.w3schools.com/tags/ref_colorpicker.asp[/URL]
[CODE][/SPOILER]
- More list, reference can be found on serenesforest forum.

Very useful! Used the infos posted here by you, @Olmectron and Truth's combined, and successfully edited some items and equiped skills for two characters (Chrom and my Avatar, at first). Didn't found the "Learned Skill flags" or "Internal Stats" , though... but hey, it's a beginning.
Can't wait to finally surpass the Apotheosis DLC after some editing (I didn't win this one yet XD )
 

[Truth]

Well-Known Member
OP
Member
Joined
Mar 21, 2006
Messages
1,052
Trophies
1
Location
Mushroom Kingdom
XP
2,350
Country
Germany
I managed to change the difficulty of my save.
Just change these two values at the beginning of the save (offset varies, always two offsets behind the X).
00 = normal
01 = hard
02 = lunatic
03 = lunatic+
unbenannt-136adg.jpg
 

Armchair

Member
Newcomer
Joined
Aug 17, 2015
Messages
6
Trophies
0
Age
34
XP
60
Country
United States
I'm sure you guys may have noticed this already, but I'm going to speak aloud for the benefit of novices like myself who are scratching their heads while trying to manipulate their inventory. One thing I noticed is that the convoy inventory keeps track of how many copies of a weapon you own by summing their combined durability. Let's say you find the offset for Ericka's blade (which has a durability of 20) and want to give yourself an additional blade. In that case, you'll need to increase the value of that entry by 20 (decimal), not 1. If you only increased it by 1, you'd be left with one full strength Erika's Blade and one Erirka's blade with only one durability point.


So when you're searching for a specific weapon in your convoy inventory, search for the value equivalent to the sum of the durability of all copies of that weapon. If you sell off a copy of a weapon and then generate a second save file for comparison, then you want to search for the paired mismatching values that have a difference equivalent to the durability of that sold weapon.


So let's say that your inventory contains a single copy of Seliph's Blade at full durability (15). The byte for that field will contain the value 0F. To add a second Seliph's blade to your inventory, you increase that value from 0F to 1E


Ofcourse if you only care about getting tons of weapons, that should be accomplished by simply locating the bounds of the convoy inventory and then just flooding it with F's.
 

Armchair

Member
Newcomer
Joined
Aug 17, 2015
Messages
6
Trophies
0
Age
34
XP
60
Country
United States
I played around with character editing today. Particularly I wanted to change my Avatar from Female to Male so that I could get a female Morgan.

I started by attempting to change the character byte within the character block detailed in RainThunder's post above, but wasn't successful. I then attempted to swap two different characters. I edited Kellam's character byte and was successfully able to replace him with Tharja (the folks at serene forest had already compiled a character table: http://serenesforest.net/forums/index.php?showtopic=52377&p=3715147)

My failure with the Avatar and my success with Kellam/Tharja led me to assume that the Avatar is a special case due to the level of customization options available for that character. I then made two new save files and compared them. One with a male avatar and one with a female avatar, all other settings were default.

I found a section of the save file that I believe contains all of your customization choices for the Avatar. Name/gender/body type/etc. I was able to locate it within the save file most consistently by searching for FF0106. Just beyond that is a large segment that contains your custom Avatar's name. Shortly beyond that is a byte that determines the gender of the avatar (underlined in red. 00 is male, 01 is female). I suspect the other bytes define the rest of the character's attributes, but I don't know which ones do what.


(edit: In this save, my Avatar's name is Sami. As in the Advance Wars character. That's sort of my default name for female characters in video games).


Humorously, while I was successful at changing the gender of my avatar, he still retains his old female body type. It is quite awkward looking.

Unfortunately I seemed to have made some oversight concerning support levels and am presently unable to raise my Avatar's support level with any other character. I don't know enough about how the game is keeping track of support levels to figure out why. I think it is treating my edited Avatar as a different character that is unrecognized by the rest of the party.



edit:
I undid my gender change and that seems to have set things back to normal at least. The character block for my avatar kept being re-written whenever I loaded the save file. I suspect that the game parses your avatar's customization options and then tweaks the avatar's character block every time you load the save.

I suspect what was happening is that my original female avatar character no longer existed and the new male one was being treated as a new character by the rest of the team.

It was kind of weird. My post-edit avatar remembered his support pairings with the rest of the team even though everyone else viewed him as a character with zero support levels. Multiple battles with the Avatar paired with varying teammates never prompted the option to raise the support level by a letter grade.

I think I need to try and figure out how the game is saving support levels....and probably marriages/parents as well. I need to read through some of those serene forest threads...


edit2:
Had some success on the parent front. When looking at Kjelle's character block, I located the character ID's for her father and mother at 0xC2 and 0xD3 respectively (edit: Not necessarily true for all characters. See my next post). I edited the father's ID and was able to successfully change her father. Furthermore, the game let me define a female character as Kjelle's father (Tikki). Additionally, the edit made Kjelle a manakete and allows her to change classes to the manakete class.










edit3:
I went back in looking for where children and spouses are saved. I wasn't able to find anything, but I did notice in-game that Tiki was currently displaying Kjelle as her child despite the fact that I didn't edit Tiki's character block at all. A quick check of Donnel's character showed him as married to Sully, but with no offspring.





I suspect that the game parses all the children to see who their parents are, and updates the appropriate paper dolls respectively when you view a character's stats. I don't know what will happen if you define one singular character as the parent of many different offspring.

I still don't know where marriages are being defined. I don't see it in the character block (I compared two wives and didn't see anything that looked like their husbands' character IDs). Maybe there is a collection of marriage pairings somewhere in the save file? Maybe the info is near the character block and I've just spent too many hours staring at a hex editor?


edit4:
One last edit, and one last screenshot.



The game let me replace the mother of a 2nd gen character with a different 2nd gen character. I always got headaches wrapping my head around the crazy eugenics programs people thought up in this game under normal circumstances. I don't even want to think about what sort of implications this may have. What if you assemble some paradox where the kids are their own grandparents? What new heights will this allow Morgan to reach?
 

Attachments

  • fire_emblem_avatar_info.png
    fire_emblem_avatar_info.png
    18 KB · Views: 2,984
  • fire_emblem_offspring_character.png
    fire_emblem_offspring_character.png
    7 KB · Views: 2,448
  • WVW69iXMzRskC2kQRO.jpg
    WVW69iXMzRskC2kQRO.jpg
    26 KB · Views: 2,171
  • WVW69iXMy7csRkN9sW.jpg
    WVW69iXMy7csRkN9sW.jpg
    18.6 KB · Views: 1,984
  • WVW69iXMzAAGc0D5w6.jpg
    WVW69iXMzAAGc0D5w6.jpg
    23.5 KB · Views: 1,849
  • WVW69iXM6gUq5sVKoL.jpg
    WVW69iXM6gUq5sVKoL.jpg
    22.8 KB · Views: 1,506
  • WVW69iXM7t0hILGJhR.jpg
    WVW69iXM7t0hILGJhR.jpg
    24.9 KB · Views: 1,979
  • 2nd_gen_mother.jpg
    2nd_gen_mother.jpg
    27.5 KB · Views: 2,111
Last edited by Armchair,

Armchair

Member
Newcomer
Joined
Aug 17, 2015
Messages
6
Trophies
0
Age
34
XP
60
Country
United States
An update for editing parents. I was looking at my Lucina and noticed that the offset for her father and mother were different than Kjelle's.

So the Father/Mother are not necessarily located 0xC2 and 0xD3

The mother is still 17 bytes after the father though.

 

Attachments

  • lucina_character_cropped.png
    lucina_character_cropped.png
    6.7 KB · Views: 2,720

iwabo

Well-Known Member
Member
Joined
Sep 4, 2015
Messages
155
Trophies
0
XP
1,554
Country
Germany
You are all doing a great job with that research. I hope someday this will end up giving us an actual editor that makes it possible to avoid all those hours of grinding skills and classes.
 
  • Like
Reactions: SomeGamer

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    HiradeGirl @ HiradeGirl: Have a nice day. Life. Week. Month. year.