Jump to content

FE: Awakening Hacking Topic


VincentASM
 Share

Recommended Posts

Heh, so when you load up Chapter 1, your avatar is in Slot 1 in the data, and Chrom, Lissa, and Freckles are in Slots 13, 14 and 15 respectively.

I wanted to trying cheating on Lunatic+, and since the boss and the two Myrmidons next to him are considered slots 2, 3, and 4, I accidentally gave them Renewal, Dragonskin, Luna+, Aegis+, and Pavise+.

Oops.

Edited by Jacien
Link to comment
Share on other sites

  • Replies 877
  • Created
  • Last Reply

Top Posters In This Topic

I have a question. My firmware version is 9.6.0-24U. There's no way I can hack the RAM using this method is there?

Or can I still hack the RAM if I try to download one of the uploaded RAMs here? From what I understand, the specific firmware is needed only to extract the RAM right?

So if I knew the addresses I could technically still hack my RAM yes?

Edited by Burning Star
Link to comment
Share on other sites

Hey quick question, when you make RAM edits, does it affect your save? Or can you continue doing edits with no worries? I'm waiting til I've got access to a PC tomorrow and some people to help me with the process, so I want to continue my save, and I want to know if it's safe or not. I don't really need to continue it, since I still have other games to play, but I need that Severa though....

Link to comment
Share on other sites

@masterbro

Only if you save after editing your game's RAM. If you only do simple edits like gold, item amounts, skills etc and know what you do then you don't need to worry to mess up your savegame.

Had no probs so far.. It can get corrupted if you mess it up but you can always make a backup of your save before you start work on it (if using gateway, savedatafiler etc...)

Hi, have only recently discovered this forum :D

I've been working on an app that will read your memdump, let you edit the values in there and then generate AR codes for you.

There is still a lot to add and all the info you guys wrote down here sure comes in handy.

This is how the editor looks right now:

Aa4QpcYm.jpg

(click to see larger pic)

That's all it can help you editing with atm. I still need to add class editing, more inventory editing stuff etc.

I also can add different language sets for item, skill and any other text displayed. Right now it's english and german.

I also need to look into determining the game region (EUR, USA, JAP...) and if DLCs are used. This is mandatory to offer an app that can generate codes for nearly all versions of the game.

There will be a release candidate available soon. I hope you guys will find it useful and give some feedback :)

Edited by m0rt
Link to comment
Share on other sites

Heh, so when you load up Chapter 1, your avatar is in Slot 1 in the data, and Chrom, Lissa, and Freckles are in Slots 13, 14 and 15 respectively.

I wanted to trying cheating on Lunatic+, and since the boss and the two Myrmidons next to him are considered slots 2, 3, and 4, I accidentally gave them Renewal, Dragonskin, Luna+, Aegis+, and Pavise+.

Oops.

Yeah, you got to be careful with your slots. The easiest way I find is to enter the chapter, create a bookmark and then load it. This will place the player slots at the top and get rid of any characters you haven't deployed, in case you want to edit the enemy easily.

Anyways, what do I need to do to replace one of the legacy characters for Severa?

I'll take a look when I have time to download the file. Gotta upload a whole bunch of files first and my internet isn't that great XD

Who did you swap her over? I don't recognize that mod spread (+1/-1/+2/+1/0/-1/0) as belonging to any Logbook unit (or anyone else, for that matter).

Flavia : P

Dumb: I assume Phila doesn't have an entry in the barracks right?

I haven't checked, but she shouldn't (I looked through the script dump earlier and I already knew she had a help message). I will check again if I remember though.

I have a question. My firmware version is 9.6.0-24U. There's no way I can hack the RAM using this method is there?

Or can I still hack the RAM if I try to download one of the uploaded RAMs here? From what I understand, the specific firmware is needed only to extract the RAM right?

So if I knew the addresses I could technically still hack my RAM yes?

Sorry, you need the correct firmware to use the RAM cheats too. The same exploit (spider) is used to dump the memory and apply the cheat codes.

Hey quick question, when you make RAM edits, does it affect your save? Or can you continue doing edits with no worries? I'm waiting til I've got access to a PC tomorrow and some people to help me with the process, so I want to continue my save, and I want to know if it's safe or not. I don't really need to continue it, since I still have other games to play, but I need that Severa though....

It depends, but if you edit the character blocks directly, the changes should apply. That's what I'll be doing for Severa.

As already mentioned, copy your save file beforehand if you have space.

Hi, have only recently discovered this forum :D

I've been working on an app that will read your memdump, let you edit the values in there and then generate AR codes for you.

There is still a lot to add and all the info you guys wrote down here sure comes in handy.

This is how the editor looks right now:

Aa4QpcYm.jpg

(click to see larger pic)

That's all it can help you editing with atm. I still need to add class editing, more inventory editing stuff etc.

I also can add different language sets for item, skill and any other text displayed. Right now it's english and german.

I also need to look into determining the game region (EUR, USA, JAP...) and if DLCs are used. This is mandatory to offer an app that can generate codes for nearly all versions of the game.

There will be a release candidate available soon. I hope you guys will find it useful and give some feedback :)

Nice, that looks amazing.

Are you planning to add support for the static.bin file in the RAM (the one that determines cap modifiers, support tables, reclass sets, etc.)? If you know how to read Nightmare files, I've documented the file under the Character Editor linked in the first page. However, as I've mentioned once or twice, all the pointer-based values will need adjusting.

Link to comment
Share on other sites

Nice, that looks amazing.

Are you planning to add support for the static.bin file in the RAM (the one that determines cap modifiers, support tables, reclass sets, etc.)? If you know how to read Nightmare files, I've documented the file under the Character Editor linked in the first page. However, as I've mentioned once or twice, all the pointer-based values will need adjusting.

Thanks :)

I had a look at this nightmare (.nmm) file. Correct me If i'm wrong but the data you talk about is the one that you reach by using a character block (272 bytes each) using it's character pointer (0x58 in character block).

Each object in the array is 568 bytes in size. I think I already spotted that size in your .nmm file.

The pointers are no prob, I think I can easily grab them from the memorydump :)

I'm using the EUR version btw, without any DLCs.

Gold is found at 0x009DD510

First character block is at 0x0140E1EC

would help me a lot if you guys with other versions of the game would tell me your offsets.

Link to comment
Share on other sites

Gold is found at 0x009DD510

First character block is at 0x0140E1EC

would help me a lot if you guys with other versions of the game would tell me your offsets.

Any way I can contribute to this project via coding and information actually?

By the way, what we've found out is that DLC and Spotpass also have an effect on offsets as you said... but not only IF they're used... but also WHAT is used. We can't expect the player to know all of the data that is on their SD card.

It's not just between JP, US, and EU version of the game or the presence or absence of DLC.

My two JP 3DSs have different offsets.

I originally had the idea of using labels to determine any shift in addresses.

Because even between versions, if you have a base "offset" like Vincent's addresses...

if you find this:

PID_プレイヤー男

PID_プレイヤー女

In hex:

50 49 44 5F 83 76 83 8C 83 43 83 84 81 5B 92 6A 00 50 49 44 5F 83 76 83 8C 83 43 83 84 81 5B 8F 97 00

Which is Male MU and Female MU labels... it's where the labels start...

You can find the differences between the "target" system's address and Vincent's base code to modify the pointers correctly.

Edited by shadowofchaos
Link to comment
Share on other sites

Anyways, what do I need to do to replace one of the legacy characters for Severa?

I've got your file.

To save time, can you list your roster with the following details: Number, character, parents

Eg. I can see number 1 is Chrom with no parents.

Number 2 is the character after Chrom.

But if you don't care about hacking the parent label, you can try these codes:

Use this code first by itself:

013D0294 00000000

(Removes Logbook pointer for character 1)

Then after the first code has been applied, use these two:

013D0284 1539D7C0

013D0288 15373588

(Change character 1 to Severa and class to Mercenary)

Obviously since Chrom is in slot 1, you may want to to enter a battle and reorder your units until a Logbook unit is the first slot. Once done, save your game, reset, reload and then apply the codes.

I trust you can change character 1's hair colour. Otherwise it'll be the same colour as whoever was originally in slot 1.

Thanks :)

I had a look at this nightmare (.nmm) file. Correct me If i'm wrong but the data you talk about is the one that you reach by using a character block (272 bytes each) using it's character pointer (0x58 in character block).

Each object in the array is 568 bytes in size. I think I already spotted that size in your .nmm file.

The pointers are no prob, I think I can easily grab them from the memorydump :)

I'm using the EUR version btw, without any DLCs.

Gold is found at 0x009DD510

First character block is at 0x0140E1EC

would help me a lot if you guys with other versions of the game would tell me your offsets.

That sounds like the right place.

Edited by VincentASM
Link to comment
Share on other sites

Here's a ram dump from my ROM copy of FE:A that I dumped from my US retail cart. Should also report that this is on a US 3DS XL in emunand 9.5.0-23 running Gateway Mode. I used an online CIA pack of the DLC and have not played all the maps. Not sure if playing new maps changes things. I do use spotpass and have logbook characters, one of them is in position 1. Use 10 00 61 00 62 00 4A 00 5A to find her data. Let me know if anyone needs to know anything else, I love what's going on here!:

https://mega.co.nz/#!AAZ2zTxD!4NeRfvGGs-_u5TiJbKd6374ZMsDwsuLUtAmpo9FMltg

Edited by Otakusensei
Link to comment
Share on other sites

I've got your file.

To save time, can you list your roster with the following details: Number, character, parents

Eg. I can see number 1 is Chrom with no parents.

Number 2 is the character after Chrom.

But if you don't care about hacking the parent label, you can try these codes:

Use this code first by itself:

013D0294 00000000

(Removes Logbook pointer for character 1)

Then after the first code has been applied, use these two:

013D0284 1539D7C0

013D0288 15373588

(Change character 1 to Severa and class to Mercenary)

Obviously since Chrom is in slot 1, you may want to to enter a battle and reorder your units until a Logbook unit is the first slot. Once done, save your game, reset, reload and then apply the codes.

I trust you can change character 1's hair colour. Otherwise it'll be the same colour as whoever was originally in slot 1.

That sounds like the right place.

Nice, anyways, I'd want to keep the character label, so when I get home from work, I'll check the character numbers. Would it be from left to right from the game? Or would that code be in FCRAM? The parents are Gaius and Cordelia by the way, if you need any more information.

Link to comment
Share on other sites

Nice, it worked! Can't post pics as I am still at work using my phone, but besides the parent labels not being there, her icon on the roster and the map is still Pr. Marth's. Would a class change fix this?

Edited by MasterBro10
Link to comment
Share on other sites

Nice, it worked! Can't post pics as I am still at work using my phone, but besides the parent labels not being there, her icon on the roster and the map is still Pr. Marth's. Would a class change fix this?

Phew. I didn't screw up the maths XD

The map sprite fixes itself once you save and reload. If you don't want to permanently save yet, you can create a bookmark instead.

Nice, anyways, I'd want to keep the character label, so when I get home from work, I'll check the character numbers. Would it be from left to right from the game? Or would that code be in FCRAM? The parents are Gaius and Cordelia by the way, if you need any more information.

Just left to right, like in the game.

I see... I don't have a memory dump with any children characters, so I need a few samples to see how the parent pointers work.

Link to comment
Share on other sites

Shoot. Is there a chance of spider being updated for the latest firmware?

Btw...this method lets you permanently learn enemy only skills right? Along with having the same stat for Asset/Flaw?

How about max stat modifiers? Can they be edited through the RAM? Or do you have to delve into the ROM for that?

Edited by Burning Star
Link to comment
Share on other sites

I've got your file.

To save time, can you list your roster with the following details: Number, character, parents

Eg. I can see number 1 is Chrom with no parents.

Number 2 is the character after Chrom.

But if you don't care about hacking the parent label, you can try these codes:

Use this code first by itself:

013D0294 00000000

(Removes Logbook pointer for character 1)

Then after the first code has been applied, use these two:

013D0284 1539D7C0

013D0288 15373588

(Change character 1 to Severa and class to Mercenary)

Obviously since Chrom is in slot 1, you may want to to enter a battle and reorder your units until a Logbook unit is the first slot. Once done, save your game, reset, reload and then apply the codes.

I trust you can change character 1's hair colour. Otherwise it'll be the same colour as whoever was originally in slot 1.

That sounds like the right place.

Okay, I'll list all my characters in number order BEFORE I arranged Pr. Marth to replace with for incomplete Severa(no parent labels yet)

1. Chrom, no parents (wife Sumia, if you need husband/wife/children)

2. Lucina, father Chrom, mother Sumia, (husband MU)

3. Owain, father Vaike, mother Lissa

4. Kjelle, father Virion, mother Sully

5. Cynthia, father Chrom, mother Sumia

6. Noire, father Libra, mother Tharja

7. Morgan, father MU, mother Lucina

8. MU, no parents (wife Lucina)

9. Gaius no parents (wife Cordelia)

10. Cordelia no parents (husband Gaius)

11. Sumia no parents (husband Chrom)

12. Stahl no parents (wife Cherche)

13. Cherche no parents (husband Stahl)

14. Maribelle no parents (husband Henry)

15. Henry no parents (wife Maribelle)

16. Kellam no parents

17. Miriel no parents (husband Ricken)

18. Lissa no parents( child Owain husband Vaike)

19. Donnel no parents (wife Nowi)

20. Frederick no parents

21. Panne no parents (husband Gregor)

22. Gregor no parents (wife Panne)

23. Lon' Qu no parents (wife Olivia)

24. Nowi no parents (husband Donnel)

25. Vaike no parents (wife Lissa child Owain)

26. Virion no parents (wife Sully child Kjelle)

27. Sully no parents (husband Virion child Kjelle)

28. Tharja no parents (husband Libra child Noire)

29. Libra no parents (wife Tharja child Noire)

30. Olivia no parents (husband Lon' Qu)

31. Say'ri no parents

32. Micaiah no parents (haven't used ever xD)

33. Ricken no parents (wife Miriel)

34. Pr. Marth no parents

35. Anna no parents

Link to comment
Share on other sites

Flavia : P

In that case, Flavia's Skl mod listed here is incorrect (if you care about info about units nobody cares about, of course).

I suppose there's no chance anyone knows of any games that might have the forced 9.0-9.5 firmware update?

Edited by Czar_Yoshi
Link to comment
Share on other sites

I suppose there's no chance anyone knows of any games that might have the forced 9.0-9.5 firmware update?

If you're using a USA 3DS then you can use Code Name: S.T.E.A.M. to install 9.4.0-U

on a EUR 3DS you can use Gardening Mama Forest Friends or Cooking Mama 5 Bon Apetit! to install 9.2.0-E.

However, make sure that you have the correct Browser version, that's what really matters if you want to use the ARcodes etc.

Browser version should be 1.7567 (i.e. firmware 7.1 and above). If you never updated to 7.1 (or above) via eshop but only by cartridges (forced update), then it probably won't work for you.

I had the same issue but luckily have a gateway card, so I was able to download the full 9.2.0-E firmware via 3DNUS and install the provided CIA files with BigBlueMenu etc afterwards.

I'm now even using 9.5.0-22E, that I also installed by that method (emunand) and it works perfectly.

@Otakusensei

Thanks for the USA memdump, this helps a lot :)

Has anyone yet found out where the rest of the inventory is located in RAM? I only got the char inventories (in the character blocks) covered so far.

Edited by m0rt
Link to comment
Share on other sites

I've got a Gateway and am pretty sure my 3ds is on 7.2 (US). Codename STEAM it is (I've been looking for a reason to buy that, guess this is it!).

Make sure you update your emunand only when using a forced update (via rom etc..)! Your gateway will be rendered useless If your system version will be 9.4.0 after using the update.

Also, gateway usually will block the update, to disable that "protection" keep the UP button pressed while the gateway menu is loading.

Best is really to use emunand, get 9.x.0 via 3DNUS and install it then with BigBlueMenu, DevMenu etc..

Edited by m0rt
Link to comment
Share on other sites

not sure if anyone posted this already, but just in case, i filled in the blanks from a previous post in this thread for the item values:


0x01 bronze sword
0x02 iron sword
0x03 steel sword
0x04 silver sword
0x05 brave sword
0x06 armor slayer
0x07 wyrmslayer
0x08 killing edge
0x09 levin sword
0x0A rapier
0X0B noble rapier
0X0C missiletainn
0X0D sol
0X0E amatsu
0X0F falchion
0x10 exalted falchion
0x11 parallel falchion
0x12 mercurius
0x13 tyrfing
0x14 mystletainn
0x15 balmung
0x16 sol katti
0x17 Ragnell (player)
0x18 Ragnell (inf)
0x19 tree branch
0x1A Soothing Sword
0X1B Glass Sword
0X1C Superior Edge
0X1D eliwood’s blade
0X1E roy’s blade
0X1F alm’s blade
0x20 leif’s blade
0x21 eirika’s blade
0x22 seliph’s blade
0x23 bronze lance
0x24 iron lance
0x25 steel lance
0x26 silver lance
0x27 brave lance
0x28 javelin
0x29 short spear
0x2A Spear
0X2B beast killer
0X2C blessed lance
0X2D killer lance
0X2E luna
0X2F Gradivus
0x30 gungnir
0x31 gae bolg
0x32 log
0x33 miniature lance
0x34 Shockstick
0x35 Glass Lance
0x36 Superior Lance
0x37 sigurd’s lance
0x38 ephraim’s lance
0x39 finn’s lance
0x3A bronze axe
0X3B iron axe
0X3C steel axe
0X3D silver axe
0X3E brave axe
0X3F hand axe
0x40 short axe
0x41 Tomahawk
0x42 hammer
0x43 bolt axe
0x44 killer axe
0x45 vengeance
0x46 wolf berg
0x47 hauteclare
0x48 Helswath
0x49 armads
0x4A ladle
0x4B imposing axe
0x4C Volant axe
0x4D glass axe
0x4E Superior Axe
0X4F titania’s axe
0X50 Orsin's Hatchet
0X51 hector’s axe
0X52 bronze bow
0X53 iron bow
0X54 steel bow
0x55 silver bow
0x56 brave bow
0x57 blessed bow
0x58 killer bow
0x59 Longbow
0x5A astra
0X5B parthia
0x5C yewfelle
0x5D nidhogg
0x5E double bow
0x5F slack bow
0x60 towering bow
0x61 underdog bow
0x62 Glass Bow
0x63 Superior Bow
0x64 wolt’s bow
0x65 innes’ bow
0x66 fire
0x67 elfire
0x68 arcfire
0x69 bolganone
0x6A valflame
0x6B mjollnir
0x6C elthunder
0x6D arcthunder
0x6E thoron
0x6F mjolnir
0x70 wind
0x71 elwind
0x72 arcwind
0x73 rexcalibur
0x74 forseti
0x75 excalibur
0x76 Book of Naga
0x77 flux
0x78 nosferatu
0x79 ruin
0x7A waste
0x7B goetia
0x7C grima’s truth
0x7D Mire
0x7E dying blaze
0x7F micaiah’s pyre
0x80 Superior Jolt
0x81 katarina’s bolt
0x82 wilderwind
0x83 celica’s gale
0x84 Aversa's Night
0x85 heal
0x86 mend
0x87 physic
0x88 recover
0x89 fortify
0x8A goddess staff
0x8B Rescue
0x8C ward
0x8D hammerne
0x8E kneader
0x8F balmwood staff
0x90 Catharsis
0x91 dragonstone
0x92 Dragonstone+
0x93 beaststone
0x94 beaststone+
0x95 blighted claws
0x96 blighted talons
0x97 expiration
0x98 vulnerary
0x99 concoction
0x9A Elixir
0x9B pure water
0x9C hp tonic
0x9D strength tonic
0x9E magic tonic
0x9F skill tonic
0xA0 speed tonic
0xA1 luck tonic
0xA2 defense tonic
0xA3 resistance tonic
0xA4 door key
0xA5 chest key
0xA6 master key
0xA7 Seraph Robe
0xA8 Energy Drop
0xA9 Spirit Dist
0xAA Secret Book
0xAB Speedwing
0xAC Goddess Icon
0xAD Dracoshield
0xAE Talisman
0xAF Naga’s tear
0xB0 Boots
0xB1 Arms Scroll
0xB2 Master Seal
0xB3 Second Seal
0xB4 bullion (S)
0xB5 bullion (M)
0xB6 bullion (L)
0xB7 sweet tincture
0xB8 gaius’s confect
0xB9 kris’s confect
0xBA Tiki's Tear
0xBB Seed of Trust
0xBC reeking box
0xBD Rift Door
0xBE Supreme Emblem

0xBF all stats +2

0xC0 paragon

0xC1 iote's shield

0xC2 limit breaker

0xC3 silver card

0xC4 dread scroll

0xC5 wedding bouquet

0xC6 1000 gold

0xC7 3000 gold

0xC8 5000 gold

0xC9 7000 gold

Edited by ZXApocrypha
Link to comment
Share on other sites

Whoops, I'll need to double check Flavia when I have time.

Thanks for the item list ^^

I think the first couple of values are slightly off though. 00 is no item, not Bronze Sword.

Link to comment
Share on other sites

i think you're right; fixed!

while i'm posting, have ppl figured out how to assign marriaged couples? also, does doing so affect inherited stats for the kids? =O

edit: also, big thanks to you vincentASM and the other hackers in this thread who have been putting in work figuring this stuff out, it's making for some good lulz in lunatic+ giving the comps a taste of their own medicine (after having beaten it w/o cheats twice [cuz i lost my save data once T_T], ofc =P )

Edited by ZXApocrypha
Link to comment
Share on other sites

@ZXApocrypha

Thanks for that list. I hope you don't mind me using this for my AR Code generator. I will credit your for your contribution of course :)

Same goes for everyone else that is helping me out here :D

I finally found some more time to look into the RAM of the game and I want to share some of my findings. I use the EUR version of the game, without DLCs & Spotpass.

I hope that some of you guys with other versions of the game will be able to confirm some of my results or will be able to provide more info about their offsets etc.

Class Table

The class table seems to hold all the definitions of the classes. The 272 byte in length character blocks refer to the table entries.

This are pointers to the class table.

EUR = 0x000220FC

USA = 0x000234FC (with DLC/Spotpass)

Just read the value there (it's the offset of the table begin) and make sure you fix the offset! (e.g. 0xC00A3B15 = 0x013B0AC0 !)

The class list will start 8 bytes later from there, each object is 128 bytes in size and there should be a total of 83 objects. If you jump 83 * 128 (10624 bytes) forward, you will reach the end of the class table and see a 4 byte int value that seems to hold the total object count (0x53 = 83).

Need to figure out the structure of each entry still, but I got some stuff mapped out already:

public struct Class_Table_Entry     //128 bytes per entry, 83 entries in total
{
    public UInt32 ID;
    public UInt32 Unknown_0;        //Always 0x00000000 ?
    public UInt32 P_JID;            //Points to JID data
    public UInt32 Unknown_1;        //Always 0x00000000 ?
    public UInt32 P_MJID_0;         //Points to MJID data
    public UInt32 P_MJID_1;         //Points to MJID data
    public Byte[] Unknown_Array_0;  //32 byte array of still unknown values...
    public UInt32 Unknown_2;        //Always 0x00000000 ?
    public Byte[] Unknown_Array_1;  //32 byte array of still unknown values...
    public UInt32 P_Next_Class;     //Points to successor class ?
    public UInt32 Unknown_3;        //Always 0x00000000 ?
    public Byte[] Unknown_Array_2;  //8 byte array of still unknown values...
    public UInt32 P_HSDArc;         //Points into a HSDArc file...
    public UInt32 Unknown_4;        //Always 0x00000000 ?    
    public UInt32 P_MJID_2;         //Points to MJID data
    public UInt32 Unknown_5;        //Always 0x0F000000 ?
    public UInt32 Unknown_6;        //Always 0x00000000 ?
}

Character Table

The character table seems to hold all the base character values and more. The order is static, it should always be the same.

This is the order of the characters listed:

0 - Avatar_M
1 - Avatar_F
2 - Avatar_N
3 - Chrom
4 - Lissa
5 - Frederick
6 - Virion
7 - Sully
8 - Vaike
9 - Stahl
10 - Miriel
11 - Kellam
12 - Sumia
13 - Lon'qu
14 - Ricken
15 - Maribelle
16 - Panne
17 - Gaius
18 - Cordelia
19 - Gregor
20 - Nowi
21 - Libra
22 - Tharja
23 - Olivia
24 - Cherche
25 - Henry
26 - Lucina
27 - Say'ri
28 - Basilio
29 - Flavia
30 - Donnel
31 - Anna
32 - Owain
33 - Inigo
34 - Brady
35 - Kjelle
36 - Cynthia
37 - Severa
38 - Gerome
39 - Morgan_M
40 - Morgan_F
41 - Yarne
42 - Laurent
43 - Noire
44 - Nah
45 - Tiki
46 - Gangrel
47 - Walhart
48 - Emmeryn
49 - Yen'fay
50 - Aversa
51 - Priam
52 - Marth_FE1
53 - Dummy
54 - Unpromoted_Monster
55 - Promoted_Monster
56 - Merchant


Each entry seems to be 568 bytes in size and there is a total of 57 objects.

There is an easy way to find the start of the table, which seems to be located in a file (HSDArc format) that is loaded by the game.

You simply can use a hex editor that offers wildcard search. I'm using Hex Workshop which offers ?? as a wildcard mask for a hex byte.

Just search for the hex string below and you should find the beginning of that HSDArc file.

48 53 44 41 72 63 00 01 ?? ?? ?? ?? 39 00 00 00

You will be seeing the header of the file. Which has the following struct?:

public struct HSDArc_Header
{
    public Byte[] Tag;      //[6] 0x485344417263 'HSDArc'
    public UInt16 Flag;     //? not sure yet, often 0x0001
    public UInt32 Pointer;  //? not sure where it points to yet
    public UInt32 Count;    //? not sure yet
}

6oHWJv2l.png

Right after that the character table will start. I didn't figure out the struct for each of the entries yet, but it seems like
VincentASM has mapped it out in his CharacterEditor Nightmare script. So it should be easy to adopt the info.

So far I've found the following offsets when trying to hunt down the table in the below listed versions of the game:

EUR = 0x013D6558

USA = 0x0133BE58 (with DLC/Spotpass)

Character Block Table

The character block table keeps track of your current character roster. The order in there is dynamic and it will change several times.

Stuff like haircolor, level, exp, hp, character inventory etc are stored in there. Each block is 272 bytes in size and there is a total of 200 blocks but most remain unused.

You can search for this hex string to find the beginning of the table:

10 01 00 00 C8 00 00 00 00 00 00 00 00 00 00 00 ?? ?? ?? ??

10 01 00 00 seems to be holding the object size (272 bytes)

while C8 00 00 00 seems to hold the object count (200)

Those blocks were partially mapped out already by some of you guys, there are still some unknown values left in there.

Expect more info soon... :)

I'm really interested in finding more reliable pointers to offer support to read every dump of the game reliable, regardless of what game version was used to make it. Hope you guys can help me with that :D

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