Jump to content

FE: Awakening Hacking Topic


VincentASM
 Share

Recommended Posts

  • Replies 877
  • Created
  • Last Reply

Top Posters In This Topic

So I tried hacking the labels in static.bin.

basilio1.png

Poor Basilio is now a mesh between Gangrel and Phila. I haven't changed his model to Phila yet though (Phila's label PID_009_フィレインEV is too long)

Also, you can't save any changes made in static.bin; once you save and reset, it still loads Basilio's normal values.

Edited by VincentASM
Link to comment
Share on other sites

NPC Portraits (Risen, and merchent) are assigned based on what class they are.

The portrait will automatically change if you switch the unit to another class.

Merchent Unit + Merchent Class will have an altered Anna portrait.

RIsen + any class risen can use will have the generic portrait for that class

if you do a combo that doesn't exist, the portrait will be a silhouette.

Merchent unit + Merchent class is completely glitchless as a player unit.

Grima class is a silhouette. Use it with the headless character pointer and you get a silhouette that has a black 3d model too.

Link to comment
Share on other sites

Hmm... I thought it'd be like the other games where you can add non-player units OK.

Well, maybe I did something wrong.

I copied Masked Marth's data to Florina's, minus the enemy portrait, because they kept crashing the game or leading to weird stuff happening. Actually, any idea what the enemy portrait does? I noticed Florina has one.

Everything seemed OK so I saved, but then the game crashed and well I couldn't recover the save.

About the thing you noticed, all the key characters are stored in a file called static.bin in the ROM and that's why they're at the front of the RAM. I think the entirety of static.bin is always loaded in the RAM too.

Characters who only appear in certain maps are stored in separate files like 004.bin for the 4th chapter. These characters are presumably loaded if necessary like you described.

I tried finding Grimas Hp value at one point on Endgame.

I couldn't find it.

Anyways, Vincent, can you do me a favor? Remember the label hex I posted for both MU genders? Can you tell me where your address for that is? Maybe I can test your codes being shifted. Maybe that will be the key to making the codes usable for everyone.

Link to comment
Share on other sites

My notes are all over the place, but here are some values I can easily find:

0x140E284: Beginning of the base stats of my slot 1 character
0X13D6614: First instance of a 04 0A 12 63 support.

Link to comment
Share on other sites

you know what. I'm gonna finally get this done. I'm gonna find the character pointer for when you highlight a character. So you only need one code to modify the character block.

I do have a test to study for this week but during my free time i want to also make a code that will basically dump the hex code address to a logbook unit name for pointers.

Edited by someonewhodied
Link to comment
Share on other sites

0199CA38 - Pointer Location

0134DCD8 - First Character



6199CA38 00000000

B199CA38 00000000

// QuickMax Skills

2000001F 000000FE

00000020 FFFFFFFF

00000024 FFFFFFFF

00000028 FFFFFFFF

// Character Portrait

00000064 XXXXXXXX

//Class Modifier

00000068 XXXXXXXX

// Logbook Pointer

00000074 XXXXXXXX

//Marriage Pointer

00000078 XXXXXXXX

//Stats

00000084 SK MA ST HP

00000088 RE DF LK SP

//Level

2000008A 000000XX

//EXP

2000008B 000000XX

//Inventory (u = uses, x = item id)

000000A0 00UU00XX

000000A4 00UU00XX

000000A8 00UU00XX

000000AC 00UU00XX

000000B0 00UU00XX

//Skills

000000B4 00WW00VV

000000B8 00YY00XX

200000BC 000000ZZ

//Weapon Ranks


100000BE 00005A5A

000000C0 5A5A5A5A


//Hair Color

00000104 XXXXXXXX



This is what the code should look like. The addresses are correct anyways.

Edited by someonewhodied
Link to comment
Share on other sites

For my saves (US Retail), the first character pointer begins at 013D0284. First perm skill of that same block is at 013D023F.

On other news, I learned two things. The FF at the end of the Hair color value might be a transparency thing. I accidentally had it at 15, and the hair turned mostly transparent lol.

And I discovered you can load up the code on the prologue when the "Premonition" title appears It doesn't change the Avatar in that level (besides the conversation portrait) because that Avatar is a temporary level 20 generated for the prologue. It won't let me dump data at that point so I can't see if I can change that temp Avatar.

Link to comment
Share on other sites

@someonewhodied: What part of the character block is the "first character" address is that?

I need to know to port it for my copies.

Also, I still don't get why you guys don't use the patch codetype for addresses right next to each other like the permanent skills.

Or does it not work when you're changing the offsets?

Edited by shadowofchaos
Link to comment
Share on other sites

I got a couple of questions.

So what are the offsets for the actual beginning/end of a character block from my save? Mine is shifted compared to SWD's. Here's a picture of it in the same style that SWD did).

EDIT: Had Skills Learned highlighted wrong.

ciu1HeA.png

As you can see on the picture I bookmarked the location of the character pointer for each slot, up to 69 since that is the max units you can have (49 regular, 20 street/spotpass).

That giant all-in-one editor code you created? How does it work and could I use it?

And if it wasn't mentioned already, how do the Parent/Marriage Pointers work? Does it only exists for Children? Does changing a child's parents change their caps? For example, I noticed changing a unit's class point automatically adjusts their stats and such like you used a Seal.

I'm a bit tired, running off 4 hours of sleep cause I decided to wake up early to watch the FFXIV live letter. Thank you all for the help so far and having this thread.

Edited by Jacien
Link to comment
Share on other sites

basically you highlight a character, then search for the address of the start of the character data block in the ram dump.

Then highlight another character and search for the changed address to the start of the new character's character data block.

And there is your pointer.

All you'd have to do is change the pointer address to your own. The rest of it stays the same. So you only need to change the first two lines of the code.

for example:

0199CA38 - Pointer Location
0134DCD8 - First Character
if i highlight character 1.
the data at 0 will be D8DC3415
which points to 0134DCD8 in the ram dump. (reverse bytes, subtract 0x14000000)
So the code have the addresses based off of where the pointer is pointing.
So if it points to 0134DCD8 and i want to edit 0134DCDC
the second line of the code would be
00000004 XXXXXXXX
not
0134DCDC XXXXXXXX
so
6199CA38 00000000
B199CA38 00000000
00000004 XXXXXXXX
would write to 0134DCDC if the pointer were pointing 0134DCD8
and would write to 0134DCFC if the pointer were pointing to 0134DCF8 without needing to change every address in the code.
Edited by someonewhodied
Link to comment
Share on other sites

basically you highlight a character, then search for the address of the start of the character data block in the ram dump.

Then highlight another character and search for the changed address to the start of the new character's character data block.

And there is your pointer.

Ya lost me at this part. Are you highlighting in game or in hex workshop? What are you exactly using and how are you doing it? You say search for the changed address, is this a function in Hex Workshop? Remember, I started using this for the first time a few days ago lol.

Also, I believe I figured out the beginning/end offsets of my Slot 1's character block.

Start - 013D022C

End - 013D033B

Updated my sheet to reference it.

X8qOGxz.png

And I also had a separate question about marriage/child pointers. How did Vincent/Rey change it so MUs support each other or make it so they were married? Was it in the character block or elsewhere? And does changing a child's parents affect their caps retroactively?

Edited by Jacien
Link to comment
Share on other sites

And I also had a separate question about marriage/child pointers. How did Vincent/Rey change it so MUs support each other or make it so they were married? Was it in the character block or elsewhere? And does changing a child's parents affect their caps retroactively?

The character pointer points to the characters's attributes and support table. I can explain better when I'm on my laptop. Sorry, on phone.

Link to comment
Share on other sites

@jacien

013D0220 would be the start of your character block.

When highlighting character 1, thats what you search for to find the pointer.

I think the pointer at the end of what you are highlighting points to something that points back to it. Sort of like a linked list? (unit 1: Next = slot XX, unit 2: Prev's next = unit 1's next) or something like that.

ohoho after the weapon ranks is the support points. Innnnteerresstinnnnggg

Edited by someonewhodied
Link to comment
Share on other sites

ohoho after the weapon ranks is the support points. Innnnteerresstinnnnggg

I do believe it isn't exactly in the same order as support list because Flavia was before Chrom with FeMU... might be reverse actually, because little endian, etc.

Link to comment
Share on other sites

Hi, I successfully dumped the RAM and I'm trying to do one thing. Put Severa back into my game. Anyways, would her character block exist if I didn't recruit her? Could I put in pointers for her so she can be a unit in my game? Thanks in advance. By the way, do the character values count as the offset or hex decimals?

Edited by MasterBro10
Link to comment
Share on other sites

It should be possible. Severa's block probably doesn't exist, but theoretically you can grab a Einherjar/legacy character and edit their block so it looks like hers.

When I have time, I will try it on my file. Pretty sure I must have some children I haven't recruited yet.

For now, do you know the general location of your first character block? Like the address for the first skill.

Also, what's the address of your first string of 04 0A 12 63?

Link to comment
Share on other sites

It should be possible. Severa's block probably doesn't exist, but theoretically you can grab a Einherjar/legacy character and edit their block so it looks like hers.

When I have time, I will try it on my file. Pretty sure I must have some children I haven't recruited yet.

For now, do you know the general location of your first character block? Like the address for the first skill.

Also, what's the address of your first string of 04 0A 12 63?

Thanks! Also, I'm kinda new to this stuff, so can you explain all that other stuff? By first character, you mean Chrom, MU, or will I have to find that myself? The only successful things I've been able to do is give Gaius and Cordelia Galeforce and other skills.

EDIT: The first offset I saw was 1398630 if you need to know for 04 0A 12 63.

RE:EDIT: The first address for the bunches of 04 0A 12 63 is 20547124.

RE RE EDIT: Also, the two legacy characters I've got are Pr. Marth and Micaiah, will they suffice?

Edited by MasterBro10
Link to comment
Share on other sites

Thanks! Also, I'm kinda new to this stuff, so can you explain all that other stuff? By first character, you mean Chrom, MU, or will I have to find that myself? The only successful things I've been able to do is give Gaius and Cordelia Galeforce and other skills.

EDIT: The first offset I saw was 1398630 if you need to know for 04 0A 12 63.

If you can change skills, that's a good sign : )

Thanks. Hmm, that's interesting.

For the first character, I just mean the character in the first (left-most and top-most) position of your roster. Just be careful, because if you reorder your characters, the character in the first position may not actually be in the "first character" slot.

If you didn't reorder any characters when you dumped your RAM, then that's good. But if you did reorder (or you're not sure), save your game, then close your game and open it again, then dump your RAM again.

Or if you have fast internet, you can upload your RAM dump (128 MB) so we can take a look.

Actually, the order of characters probably isn't important... If you get the order of characters wrong, we can fix it later. So don't worry too much about it XD

Edited by VincentASM
Link to comment
Share on other sites

Thanks, I really appreciate all the help! :) Anyways, I might upload my RAM dump through MEGA, so I'll see what I can do as I'm so confused lol. Chrom's my first character, so I'll take a look at him right now.

Should I PM you VincentASM when the upload is done? Or should I just post it?

Edited by VincentASM
Link to comment
Share on other sites

No problem. It sounds like an interesting experiment... and it might be easier than you think.

Although I can't guarantee any side effects, so you should prepare a backup save or prepare to kill off Severa if anything bad happens XD

I don't look forward to uploading 128 MB of data, but if you can upload the file, it would make it much easier for me (or the others) to help you.

EDIT: You can just post it here.

Edited by VincentASM
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...