VincentASM

FE: Awakening Hacking Topic

Recommended Posts

Hohohohoho... Vincent's been busy...

Found the character table too, eh?

I had some fun with classes.

https://www.youtube.com/watch?v=Z-V2MVsBC88

She looks like she's freaking out in the thumbnail.

I find it interesting that her idle animation is different from Olivia's. That suggests that at some point other dancers (most likely enemy units) must have been planned.

Share this post


Link to post
Share on other sites

Wait wouldn't FF blocks normally be used to seperate blocks? Instead of being randomly in the center of a block?

I wonder if we can recruit enemy units with this. Like if we leave it so only the enemy non-generics are left then apply a code.

Edited by someonewhodied

Share this post


Link to post
Share on other sites

Hmm... weird, I can change the classes, but the map sprites don't change. Obviously, I assume they're stored separately, but I'm lazy to document them : /

Here's the class bytes:

0xE80A Lord M
0x680B Lord F
0xE80B Great Lord M ?
0x680C Great Lord F ?
0xE80C Tactician M ?
0x680D Tactician F
0xE80D Grandmaster M
0x680E Grandmaster F
0xE80E Cavalier M
0x680F Cavalier F ?
0xE80F Knight M
0x6811 Knight F ?
0xE811 Great Knight M
0x6812 Great Knight F ?
0xE812 General M ?
0x6813 General F
0xE813 Barbarian
0x6814 Fighter
0xE814 Mercenary M
0x6815 Mercenary F ?
0xE815 Archer M ?
0x6816 Archer F
0xE816 Berserker ?
0x6817 Warrior
0xE817 Hero M
0x6818 Hero F
0xE818 Bow Knight M
0x6819 Bow Knight F ?
0xE819 Sniper M ?
0x681A Sniper F ?
0xE81A Myrmidon M
0x681B Myrmidon F
0xE81B Thief M
0x681C Thief F ?
0xE81C Swordmaster M ?
0x681D Swordmaster F
0xE81D Assassin M ?
0x681E Assassin F
0xE81E Trickster M ?
0x681F Trickster F
0xE81F Pegasus Knight ?
0x6820 Falcoknight
0xE820 Dark Flier
0x6821 Wyvern Rider M ?
0XE821 Wyvern Rider F
0x6822 Wyvern Lord M ?
0xE822 Wyvern Lord F
0x6823 Griffon Rider M ?
0xE823 Griffon Rider F ?
0x6824 Troubadour
0xE824 Priest ?
0x6825 Cleric
0xE825 Mage M
0x6826 Mage F ?
0xE826 Dark Mage M
0x6827 Dark Mage F
0XE827 Valkyrie ?
0x6828 War Monk
0xE828 War Cleric ?
0x6829 Sage M ?
0xE829 Sage F ?
0x682A Dark Knight M ?
0xE82A Dark Knight F ?
0x682B Sorcerer M
0xE82B Sorcerer F
0x682C Dancer
0xE82C Manakete
0x682D Taguel M ?
0xE82D Taguel F
0x682E Soldier
0xE82E Villager
0x682F Merchant
0xE82F Revenant
0x6830 Entombed
0xE830 Conqueror
0x6831 Lodestar
0xE831 Grima
0x6832 Mirage
0xE832 Dread Fighter
0x6833 Bride

For your pleasure, you can see some of my experiments here.

Of note, if you change the class directly with codes, the character will still equip whatever weapon they had, even if it can't be used.

Also, fair warning: Anyone changed into a Revenant or Entombed look disturbing as hell.

EDIT:

The weapon "glitch" also applies for transformation stones too. So you could have a Dancer transform into a dragon... Hmmmmm.

Also, some useful bytes (may include repeats):

[spoiler=Skills]0x58 DLC: All Stats +2
0x59 DLC
0x5A DLC
0X5B DLC: Limit Breaker
0x5C Dragonskin
0x5D Rightful God
0x5E Hawkeye
0x5F Luna+
0x60 Vantage+
0x61 Pavise+
0x62 Aegis+
0x63 DLC: Resistance +10
0x64 DLC
0x65 DLC
0x66 DLC
0x67~ Crash

[spoiler=Items]0x18 Ragnell (infinite)

0x7C Grima's Truth

0x95 Blighted Claws
0x96 Blighted Talons
0x97 Expiration

Oops, the monster items can't be traded.

Edited by VincentASM

Share this post


Link to post
Share on other sites

Hmm... weird, I can change the classes, but the map sprites don't change. Obviously, I assume they're stored separately, but I'm lazy to document them : /

I just reload after saving.

Anyways...

https://www.youtube.com/watch?v=GW6bA8smbTM

Vincent, since you've had some experience with looking for support points... do you think you could help me with MU x MU?

Whenever you activate a support with the "other" non-main MU, no dialogue is shared. It just activates the support level.

Share this post


Link to post
Share on other sites

I'm getting somewhere.

[spoiler=Here's your incest]ChromOwain2.png

[spoiler=Guest Avatar]MUxMU1.png

More here

Hint: Look for 04 0A 12 63, which is blatantly a string of support point requirements.

Also, apparently most or the entirety of static.bin is in the RAM uncompressed, so you can theoretically edit growth rates (0% growths, anyone?), caps and etc. Basically anything that can be edited by the Character Editor.

However the pointers are all offset by a constant value, so the Character Editor won't work (and I'm lazy to update it, especially if the position of the file in the RAM can change).

Dunno about the practicality though... it depends on how much of the RAM is permanently saved.

Share this post


Link to post
Share on other sites

I think I managed what SoC wanted, kinda.

DoubleMU6.png

Avatar M x Avatar F.

Right now, no relationship info is displayed for the imported Avatar F, but maybe it could change if you trigger the actual supports.

Also, it might be because of how I did it, but Avatar F has priority in my game file. If she dies, it's Game Over, while if I die nobody bats an eyelid. Also, the file name has changed to Avatar F's.

Some more screens here if you look for "DoubleMU".

Share this post


Link to post
Share on other sites

For your pleasure, you can see some of my experiments here.

I demand more goofiness.

Share this post


Link to post
Share on other sites

I think I managed what SoC wanted, kinda.

DoubleMU6.png

Avatar M x Avatar F.

Right now, no relationship info is displayed for the imported Avatar F, but maybe it could change if you trigger the actual supports.

Also, it might be because of how I did it, but Avatar F has priority in my game file. If she dies, it's Game Over, while if I die nobody bats an eyelid. Also, the file name has changed to Avatar F's.

Some more screens here if you look for "DoubleMU".

Belinda also upstaged me at one point as well.

Being in "slot 2" of the character table might have something to do with it. I was able to switch between the two via editing the RAM character values and saving.

I've had my MU marry Olivia with relationship info, while I had Beilnda's display Chrom.

I guess you have to actually do it for the other MU as well.

Also, is it saveable?

Edited by shadowofchaos

Share this post


Link to post
Share on other sites

I'm too scared to save XD

Maybe I'll try again later.

Also, I was considering uploading a hacked playthrough, but Prologue is going to take 5 or 6 hours to upload. Um... ouch.

Enjoy some screenshots instead

thegang.png

Lord!Lissa is a scary mashup of Lucina's face and Lissa's, I believe... Yikes.

EDIT: Also, I think the hair colours are stored in the character block too. One time I accidentally made purple haired Inigo blonde...

Edited by VincentASM

Share this post


Link to post
Share on other sites

I'm too scared to save XD

Don't you have a save backup feature with the digital copies?

Then again, I'm fearless because I have like 500 MB pile of save backups.

Anyways... I'd actually like it if I can have a .bin file dump of the character table with your edits.

(Not the entire 128 MB, just cut off everything but the edited characters)

Hahahaha. Don't worry about the pointers and stuff, I'll fix it.

Feel free to deny this request. Thanks!

Edited by shadowofchaos

Share this post


Link to post
Share on other sites

I haven't saved anything; I just converted them straight to cheats : P

This is what I used to make Chrom and Lissa have a S Rank and enable Avatar M and F to support:

213D6CCF 00000012
213D6F07 00000012

213D6610 00000055
213D6611 0000001D
213D6612 0000003E
213D6613 00000015
213D6614 00000004
213D6615 00000004
213D6616 00000004
213D6617 00000004
213D6848 00000044
213D6849 0000001D
213D684A 0000003E
213D684B 00000015
213D684C 00000004
213D684D 00000004
213D684E 00000004
213D684F 00000004

0x13D6610 should be the start of Chrom's pointer in Avatar M's support table.

Or did you want the class edits and stuff? I can point you to the relevant parts in the character block. Alternatively, if you cross-reference the bytes, you should be able to find them easily.

Share this post


Link to post
Share on other sites

are classes, character slot, and the like all pointers like they were in FE12?

Or are classes actual values.

Also have you been able to find out where the convoy (or pointer to it) is?

(also can someone grab a character block and label each piece of it? that would speed up editing by a lot)

Edited by someonewhodied

Share this post


Link to post
Share on other sites

Skills and items are values. Classes are pointers.

Actually, that reminds me, I looked at one of SoC's screenshots and the class numbers look off. Guess they can vary...

I dunno where the character block actually starts, but it's something like this:

characterblock1.png

FFs and the nearby area are possibly related to supports.

The first coloured block of four is the character pointer according to SoC. The second coloured block is the class pointer.

Long red block are the bases. Orange block is level, exp and current HP.

Then weird shape block is weapon data.

Followed by skill data and finally weapon rank data.

Haven't singled out the other bytes yet.

Edited by VincentASM

Share this post


Link to post
Share on other sites

I can already see the videos flooding into rey's channel. Flooding. FLOODING I TELL YOU!

Share this post


Link to post
Share on other sites

Lets make it even easier.

Can you try to locate the pointer to the character data.

Even if the location itself varies, you can always locate the pointer and you can find any unit you want, highlight it, dump the ram, and then go to the pointer and then the address.

Thats how it worked in FE11 and FE12 IIRC

Also have you manage to locate the block where learned skills are? Not equipped ones.

Edited by someonewhodied

Share this post


Link to post
Share on other sites

The problem with that is somehow, different 3DSs or spotpass and DLC data shift the addresses.

I have no idea how to deal with that if it's a pointer within a pointer.

Edited by shadowofchaos

Share this post


Link to post
Share on other sites

Highlight a character

Dump Ram

Find start of data block for that character

Search for a pointer that points to that block's start.

Search for a pointer that points to the start of that pointer.

Something like that SHOULD work.

I'll have my eng 3ds again this weekend so i'll try myself then if no one else has by then.

Share this post


Link to post
Share on other sites

Here's the class bytes:

0xE80A Lord M

0x680B Lord F

0xE80B Great Lord M ?

0x680C Great Lord F ?

0xE80C Tactician M ?

0x680D Tactician F

0xE80D Grandmaster M

0x680E Grandmaster F

0xE80E Cavalier M

0x680F Cavalier F ?

0xE80F Knight M

0x6811 Knight F ?

0xE811 Great Knight M

0x6812 Great Knight F ?

0xE812 General M ?

0x6813 General F

0xE813 Barbarian

0x6814 Fighter

0xE814 Mercenary M

0x6815 Mercenary F ?

0xE815 Archer M ?

0x6816 Archer F

0xE816 Berserker ?

0x6817 Warrior

0xE817 Hero M

0x6818 Hero F

0xE818 Bow Knight M

0x6819 Bow Knight F ?

0xE819 Sniper M ?

0x681A Sniper F ?

0xE81A Myrmidon M

0x681B Myrmidon F

0xE81B Thief M

0x681C Thief F ?

0xE81C Swordmaster M ?

0x681D Swordmaster F

0xE81D Assassin M ?

0x681E Assassin F

0xE81E Trickster M ?

0x681F Trickster F

0xE81F Pegasus Knight ?

0x6820 Falcoknight

0xE820 Dark Flier

0x6821 Wyvern Rider M ?

0XE821 Wyvern Rider F

0x6822 Wyvern Lord M ?

0xE822 Wyvern Lord F

0x6823 Griffon Rider M ?

0xE823 Griffon Rider F ?

0x6824 Troubadour

0xE824 Priest ?

0x6825 Cleric

0xE825 Mage M

0x6826 Mage F ?

0xE826 Dark Mage M

0x6827 Dark Mage F

0XE827 Valkyrie ?

0x6828 War Monk

0xE828 War Cleric ?

0x6829 Sage M ?

0xE829 Sage F ?

0x682A Dark Knight M ?

0xE82A Dark Knight F ?

0x682B Sorcerer M

0xE82B Sorcerer F

0x682C Dancer

0xE82C Manakete

0x682D Taguel M ?

0xE82D Taguel F

0x682E Soldier

0xE82E Villager

0x682F Merchant

0xE82F Revenant

0x6830 Entombed

0xE830 Conqueror

0x6831 Lodestar

0xE831 Grima

0x6832 Mirage

0xE832 Dread Fighter

0x6833 Bride

For your pleasure, you can see some of my experiments here.

Please note, I have found that these are pointers.

So they fluctuate between 3DSs depending on conditions.

So for my American English copy...

About pointers here: "Offsets are based on the FCRAM dump offsets. ARCode will automatically add 0x14000000 to them."

So when reversing, change the 0x15 in my case to 0x1.

Tactician (M): 48 4B 4C 15

Pointing to: 0x14C4B48

Distance between Tactician M and F = 0x80

New pointer to: 0x14C4BC8

Testing with code:

0134EA80 154C4BC8

Wallah! I'm a female tactician!

tumblr_nm33wbcFOm1rmzb08o1_400.gif

KIMOI That's... disturbing...

Just gotta figure out the distance every time though... that's a pain.

Edited by shadowofchaos

Share this post


Link to post
Share on other sites

Nice. I figured you might do that. Now wear that Bride costume.

Oh yeah, I noticed classes are pointers too (if you see the character block). You can still reference the order I listed and add 0x80 each time, but obviously the actual values are useless XD

Luckily they haven't changed for me yet (EU version, no SpotPass/DLC).

Share this post


Link to post
Share on other sites

Eff sake, I hit back before I finished my post.

Here's static.bin pulled from the RAM.

static-ram.png

All of the details are in the Character Editor nmm file linked in the first post (however note that anything pointer-based won't show up properly), but just to clarify:

First five red blocks: Pointers to Character ID, Face ID, Class ID, Name ID, Help ID

Cyan strip: Stat additions

Dark box made up of 16 bytes: Player and enemy growth rates. Encrypted.

Box of 8 bytes afterwards: Cap modifiers

Box of 6 bytes: Weapon ranks

Single box: Level (may have no effect)

5 boxes separated by 1 byte: Skills

3 red boxes: Male reclass set pointers

3 cyan boxes: Female reclass set pointers

Grey box: Parent pointer

Orange box: Support pointer followed by support points for C/B/A/S. There are multiple. 52 to be exact. For every character. Even if they only support 1 or 2 people XD

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


  • Recently Browsing   0 members

    No registered users viewing this page.