any interest in modding/hacking FEW: Three Hopes?

simsimsim

Well-Known Member
OP
Member
Joined
May 16, 2018
Messages
305
Trophies
0
Age
29
XP
867
Country
Canada
I'm in the Fire Emblem Three Houses hacking discord but there doesn't seem to be any interest in modding Three Hopes.

I would love to be invited to any group/discord if one for Three Hopes modding already exist.
 

simsimsim

Well-Known Member
OP
Member
Joined
May 16, 2018
Messages
305
Trophies
0
Age
29
XP
867
Country
Canada
hopefully soon since it's just been one week since release. I really want some tools to extract the files so we can start messing with the models and make mods etc.
 

AkiraKurusu

New 3DS XL > Switch
Member
Joined
Dec 29, 2019
Messages
960
Trophies
1
Age
24
Location
Northwood, Sydney
XP
2,005
Country
Australia
all I would want is all unplayable characters such as Miklan, Gilbert/Gustave, Alois and unique boss only characters
Honestly, I don't understand why Hanneman, Cyril, Gilbert, and Alois aren't playable, when bloody Manuela and Shamir are. Why? I'd much rather play as the first four guys than the two women. It's not like it would've been strenuous, considering classes all largely share attack animations and stuff.
 
  • Like
Reactions: deathblade200

Kimkadamura

Member
Newcomer
Joined
Nov 12, 2021
Messages
14
Trophies
0
Age
31
XP
118
Country
United States
I'll share some "simple" info for the save edit
I don't know much because I'm also getting to know this and that from today, but I've found some interesting things.
Everyone knows how to extract a save, so I'll omit it.
What I've found is a modification of a specific character's current class and equipped abilities.
Once each character has a "specific value", whenever you modify a value, you have to modify that value as well.
The address of Edelgard's "specific value" is 0x98FEC
And the address of the next character, Hubert, is 0x99D6C, which is 0xD80 away from this value.
(For reference, sez is 0x959EC, Since the distance from Edelgard's address is 0x3600 (0xD80*4), I think there will be characters in between.)
Edit2.PNG

Wouldn't it be possible to find the address of another character by adding 0xD80 several times?
And the part that determines the class is 0x8C away from the address of "specific value"
So the address representing Hubert's class would be 0x99DF8.
Edit1.PNG

Separately, I know that Kaiserin's identifier is 0x0028 by checking the 0x99078(0x98FEC+0x8C) value of Edelgard's savefile, which is a Kaiserin class.
2byte, little endian, so if it's 0F 00, it has to be revised to 28 00
The difference between the two values is 0x19. If you simply modify this, the save cannot be loaded e to the integrity check, so you need to correct the amount of change in the modified value to the "specific value" mentioned above.
Edit3.PNG

Since 0x19 has been added to the original value, you can modify it to 0x5B4B+0x19=0x5B64
it will eventually change like this
Edit4.PNG

After loading the save, you can see this change.
edit5.png

If you enter the battle in this state, an error occurs.
You must change your weapon before entering battle.
Edit6.png

edit8.png

Edit7.png


The ones that are 0x92 away from the "specific value" are the currently equipped Combat Arts, and the Combat Arts 1, Combat Arts 2, Ability 1 to Ability 10 are in order of 2 bytes each.

Knowing this, you can infer back what the identifier for this Combat Arts is.
I know 0x0044 is Flickering Flower and 0x0041 is Raging Storm
edit11.PNG

This also needs to change the "specific value" by the amount of change
Edit9.png

Unfortunately, Hubert can't use Raging Storm even with Aymr equipped. Still, he can use Flickering Flower.
Edit10.png


I thought someone would make a save editor, but it was harder to find even the analyzed data, let alone save edits, than I thought.
I have no choice but try to "Jump in the deep end", but it's difficult
Please understand that there may be strange sentences because I used a translator, not an English speaker.
 
Last edited by Kimkadamura,

simsimsim

Well-Known Member
OP
Member
Joined
May 16, 2018
Messages
305
Trophies
0
Age
29
XP
867
Country
Canada
I'll share some "simple" info for the save edit
I don't know much because I'm also getting to know this and that from today, but I've found some interesting things.
Everyone knows how to extract a save, so I'll omit it.
What I've found is a modification of a specific character's current class and equipped abilities.
Once each character has a "specific value", whenever you modify a value, you have to modify that value as well.
The address of Edelgard's "specific value" is 0x98FEC
And the address of the next character, Hubert, is 0x99D6C, which is 0xD80 away from this value.
(For reference, sez is 0x959EC, Since the distance from Edelgard's address is 0x3600 (0xD80*4), I think there will be characters in between.)
View attachment 316289
Wouldn't it be possible to find the address of another character by adding 0xD80 several times?
And the part that determines the class is 0x8C away from the address of "specific value"
So the address representing Hubert's class would be 0x99DF8.
View attachment 316288
Separately, I know that Kaiserin's identifier is 0x0028 by checking the 0x99078(0x98FEC+0x8C) value of Edelgard's savefile, which is a Kaiserin class.
2byte, little endian, so if it's 0F 00, it has to be revised to 28 00
The difference between the two values is 0x19. If you simply modify this, the save cannot be loaded e to the integrity check, so you need to correct the amount of change in the modified value to the "specific value" mentioned above.View attachment 316290
Since 0x19 has been added to the original value, you can modify it to 0x5B4B+0x19=0x5B64
it will eventually change like this
View attachment 316291
After loading the save, you can see this change.
View attachment 316292
If you enter the battle in this state, an error occurs.
You must change your weapon before entering battle.
View attachment 316293
View attachment 316294
View attachment 316295

The ones that are 0x92 away from the "specific value" are the currently equipped Combat Arts, and the Combat Arts 1, Combat Arts 2, Ability 1 to Ability 10 are in order of 2 bytes each.

Knowing this, you can infer back what the identifier for this Combat Arts is.
I know 0x0044 is Flickering Flower and 0x0041 is Raging Storm
View attachment 316296
This also needs to change the "specific value" by the amount of change
View attachment 316298
Unfortunately, Hubert can't use Raging Storm even with Aymr equipped. Still, he can use Flickering Flower.
View attachment 316300

I thought someone would make a save editor, but it was harder to find even the analyzed data, let alone save edits, than I thought.
I have no choice but try to "Jump in the deep end", but it's difficult
Please understand that there may be strange sentences because I used a translator, not an English speaker.
very nice work! Thanks for your efforts, I'm sure this will be very much appreciated!
 

Amuyea

Well-Known Member
Member
Joined
Nov 24, 2017
Messages
185
Trophies
0
XP
622
Country
United States
Nice info! So you can edit the save without "checksum"?
IMHex would be helpful to you cuz it can highlight Hex is what.
 

Amuyea

Well-Known Member
Member
Joined
Nov 24, 2017
Messages
185
Trophies
0
XP
622
Country
United States
Thanks to Kimkadamura's findings... I'm working on it with ImHex
 

Attachments

  • Screen Shot 2022-07-04 at 12.00.31 PM.png
    Screen Shot 2022-07-04 at 12.00.31 PM.png
    117.6 KB · Views: 17

Amuyea

Well-Known Member
Member
Joined
Nov 24, 2017
Messages
185
Trophies
0
XP
622
Country
United States
Use ImHex by WerWolv. https://github.com/WerWolv/ImHex

But it's useless to edit cuz of the checksum and I have no idea. I'm doing this in the early game of 1.0.0.

How to use it: Open your Save File with ImHex then File -> Load pattern & select the `fireemblem3hopesbase.hexpat` file attached.

Screen Shot 2022-07-04 at 6.08.51 PM.png
Screen Shot 2022-07-04 at 6.10.30 PM.png



Press the play button then it will show you highlights/colors/ of the hex
Screen Shot 2022-07-04 at 6.12.26 PM.png

Screen Shot 2022-07-04 at 6.11.32 PM.png


Credit: Kimkadamura for their findings. Me for putting pattern together
 

Attachments

  • fireemblem3hopesbase.hexpat.zip
    1.4 KB · Views: 19
  • Screen Shot 2022-07-04 at 12.00.31 PM.png
    Screen Shot 2022-07-04 at 12.00.31 PM.png
    117.6 KB · Views: 12
Last edited by Amuyea,

Kimkadamura

Member
Newcomer
Joined
Nov 12, 2021
Messages
14
Trophies
0
Age
31
XP
118
Country
United States
oh good works
I'm looking for other flags, not exact, but I found a rough one.

edit1.PNG

edit2.PNG

0x451 away from address 0x98FEC in Edelgart, I think this is probably some of the bit flags of combat arts

Also, by changing this value, a skill was added. I think this area is probably the skill flag.
edit3.PNG

edit4.PNG
 

Amuyea

Well-Known Member
Member
Joined
Nov 24, 2017
Messages
185
Trophies
0
XP
622
Country
United States

Kimkadamura

Member
Newcomer
Joined
Nov 12, 2021
Messages
14
Trophies
0
Age
31
XP
118
Country
United States
Damn, flags. You can edit the file and it loads fine in the game?
ah yes
The "specific value" mentioned above is important
After a lot of modifications, I think I know roughly how it works.
You can add the change amount of each byte to the "specific value" of the corresponding position.
For example, if you change FF 03 -> 00 04,
just add -FE, which is the sum of -FF(when changing from FF -> 00) and 01(when changing from 03 -> 04), to the "specific value"
It's not my native language, so I'm not sure if the meaning can be conveyed well, but if you look at the example several times, you will find out.
 

Amuyea

Well-Known Member
Member
Joined
Nov 24, 2017
Messages
185
Trophies
0
XP
622
Country
United States
ah yes
The "specific value" mentioned above is important
After a lot of modifications, I think I know roughly how it works.
You can add the change amount of each byte to the "specific value" of the corresponding position.
For example, if you change FF 03 -> 00 04,
just add -FE, which is the sum of -FF(when changing from FF -> 00) and 01(when changing from 03 -> 04), to the "specific value"
It's not my native language, so I'm not sure if the meaning can be conveyed well, but if you look at the example several times, you will find out.
I think this is Smithing Stone offset 0x831BC (07 00) and Venom stone at 0x831F4 (06 00)

Screen Shot 2022-07-04 at 8.28.08 PM.png


I tried to edit it to be 63 and it won't work.
 

Kimkadamura

Member
Newcomer
Joined
Nov 12, 2021
Messages
14
Trophies
0
Age
31
XP
118
Country
United States
I also found the flag for the weapon, but it doesn't seem to find a value for integrity check here.
In some cases, the save can be loaded, but if you change it to a certain value, it cannot be loaded.
edit5.PNG

First of all, it is clear that 01, the last part of the dragged part, is whether the weapon is locked,
and 012d and 012b value are the amounts increased from the original might/durability.

04d8 and 04db value refer to weapon option 1 / weapon option 2, but depending on how you modify this part, the save may or may not be loaded, so I gave up for now

From address 0x7c070 for each byte...
I'm not sure how to say this in English
If you look at these numbers, I think you will understand
ryujinx_capture_2022-07-05_10-37-08.png


In my case, it is written like this because I was able to exceed the maximum number of might with cheats.
 

Attachments

  • edit5.PNG
    edit5.PNG
    48.4 KB · Views: 16
General chit-chat
Help Users
  • Gift
  • Dark_Phoras @ Dark_Phoras:
    I can't eat pizza this weekend :(
    Gift
  • KenniesNewName @ KenniesNewName:
    Eat two pan sizes and say you're on a diet
    Gift
  • Dark_Phoras @ Dark_Phoras:
    I already eat the smallest size when I eat
    Gift
  • Dark_Phoras @ Dark_Phoras:
    I'm being weighed next week and if I eat too much the results will be skewed
    Gift
  • FAST6191 @ FAST6191:
    Assuming you are not doing some kind of human powered glider that seems like an odd thing to be concerned about
    Gift
  • Dark_Phoras @ Dark_Phoras:
    It isn't odd
    Gift
  • Dark_Phoras @ Dark_Phoras:
    I started gym some time ago and we'll check my progress, if there's exercise adjustments to be made, etc
    Gift
  • FAST6191 @ FAST6191:
    if a simple pizza or two skews results to uselessness then you are taking the wrong measurements
    Gift
  • Dark_Phoras @ Dark_Phoras:
    You probably don't get it
    Gift
  • Dark_Phoras @ Dark_Phoras:
    It's not even me who's taking the measures
    Gift
  • FAST6191 @ FAST6191:
    If I am measuring someone's fitness then body fat percentage, various things from blood tests, resting heart rate, recovery rate, standing jump height, grip strength, possibly reaction time and more are factors that mean far more in my assessment of such things than weight and wasteline, though excess in those is by no means good
    Gift
  • KenniesNewName @ KenniesNewName:
    I plan on buying a treadmill next year
    Gift
  • Dark_Phoras @ Dark_Phoras:
    You're not telling me anything new
    Gift
  • Dark_Phoras @ Dark_Phoras:
    You're being obtuse on purpose
    Gift
  • FAST6191 @ FAST6191:
    That is commendable laziness there KenniesNewName
    Gift
  • FAST6191 @ FAST6191:
    Most people buy one and neglect to use it, shifting it on during a yard sale/car boot sale/online tat merchant
    Gift
  • KenniesNewName @ KenniesNewName:
    Buying a treadmill to run on is lazy compared to paying a membership
    Gift
  • Dark_Phoras @ Dark_Phoras:
    Consuming 2000 extra kcal near a weigh measure, of course that will skew the results. It takes some time to remove that excess. Also, I want to get a clean measure, as good result as possible
    Gift
  • KenniesNewName @ KenniesNewName:
    Mostly everything I buy gets used so I wouldn't drop $300 just to neglect it despite the common stereotype
    Gift
  • Dark_Phoras @ Dark_Phoras:
    It all depends on your routine and your personality. In the gym there's a lot of machines, and trainers that can draw you an exercise plan and help you. I find it easier to exercise in the gym than at home, because at home I'm just delaying.
    Gift
  • Dark_Phoras @ Dark_Phoras:
    It's also good to advance before you're ready; that way, when you're ready, you'll find yourself already on the stride and possibly with results
    Gift
  • Dark_Phoras @ Dark_Phoras:
    "On the stride" or "in the stride"
    Gift
  • KenniesNewName @ KenniesNewName:
    I'm more comfortable doing things at home anymore when I was a stocker it was great because I essentially got paid to work out
    Gift
  • KenniesNewName @ KenniesNewName:
    The workforce here drained me so much though
    Gift
    KenniesNewName @ KenniesNewName: The workforce here drained me so much though