ROM Hack Fire Emblem Awakening Same-Sex Marriage (+ More)

TildeHat

Well-Known Member
Newcomer
Joined
Oct 29, 2015
Messages
97
Trophies
0
XP
828
Country
Canada
But in terms of the support log, does this signify that the characters have achieved that support level (which I assume would be handled by the global file instead?) or that that is the maximum support level they can achieve?
Whatever's in the support log is in the support log. It doesn't change anything outside of it. It just changes what's accessible in the support log. So I could change the support level byte to 04 in my previous example and I'd be able to view Chrom+Lissa's S Support in the Support log. This doesn't change anything in game as that's handled by static.bin. Whether or not they are viewable is determined by the last two bytes and your global save file. It's structured like learned skills for characters in the save files.
 

UnassumingVenusaur

In All Her Gay Glory
OP
Member
Joined
Nov 20, 2015
Messages
459
Trophies
0
XP
433
Country
United States
Whatever's in the support log is in the support log. It doesn't change anything outside of it. It just changes what's accessible in the support log. So I could change the support level byte to 04 in my previous example and I'd be able to view Chrom+Lissa's S Support in the Support log. This doesn't change anything in game as that's handled by static.bin. Whether or not they are viewable is determined by the last two bytes and your global save file. It's structured like learned skills for characters in the save files.
I know that it doesn't change the fact that we can give them S Supports in game, but I was referring to in the support log. So, essentially, if I wanted to view a MaMU and Chrom S Support, changing the A support to an S Support would allow me to, but trying to paste in another few bytes to both preserve the A support and put in the S Support would freeze the game? Well, at least it can still be used for testing, then.
 

TildeHat

Well-Known Member
Newcomer
Joined
Oct 29, 2015
Messages
97
Trophies
0
XP
828
Country
Canada
I know that it doesn't change the fact that we can give them S Supports in game, but I was referring to in the support log. So, essentially, if I wanted to view a MaMU and Chrom S Support, changing the A support to an S Support would allow me to, but trying to paste in another few bytes to both preserve the A support and put in the S Support would freeze the game? Well, at least it can still be used for testing, then.
There's some weird thing where if you have the C support and anything higher than B you sometimes get the supports available in between. Like I said I haven't played around with the file too much.
 

DeathChaos

Unmei wo koeru!
Member
Joined
Oct 21, 2015
Messages
1,364
Trophies
0
Age
28
XP
1,724
Country
Puerto Rico
@TildeHat, looking around the cmb file, there's a function called PersonLoad.ev, maybe this would help you load the sprite on the map?

Although I assume this is for the 3D cutscenes, seeing as this is found near the end of the file, with all the Camera movement events and character gestures.
 

triplekiller

Active Member
Newcomer
Joined
Dec 27, 2015
Messages
33
Trophies
0
Age
54
XP
282
Country
Gambia, The
Thinks like this, make me remember what golden Times are ahead for the Romhacking of 3DS Games!.

Any Chance something like this is possible for Tomodachi Life too?
 

TildeHat

Well-Known Member
Newcomer
Joined
Oct 29, 2015
Messages
97
Trophies
0
XP
828
Country
Canada
TWby1NI.png
xgxn3WV.png
wzXfRVP.png
Mf6Q43a.png

I did it~
So that mystery pointer, a handful of them point to pretty much the same thing just in a different place. I just repointed all the ones that were the same to one(Both MU's, Logbook MU, Marth_FE1, dummy and merchant share one and the two enemies share one and I moved Priam's cause I had an extra slot). That gave me 0x3F0 bytes of space to work with which translates to 252 pointers. I feel kind of dumb for not doing this in the first place.

To do this open up static.bin in a hex editor and go to the offsets 0x488,0x6c0,0x75b0,0x77e8 and 0x7e90. Change whatever's there to 80 7E. Next, go to 0xa210 and copy 0xA8 bytes in length. Go to 0x7F48 and paste WRITE(ctrl+b). Now go to the offsets 0x7a20 and 0x7c58 and change whatever's there to 28 7F. You can also change Priam's if you want more space as well. Now you can add in supports/classes. Whenever you do that, copy out the offset you just wrote it and then go to what's pointed in 0x4(it is normally E8 A3 00 00. Reverse those bytes and add 0x20 to them the go to that offset). Now write out the offset you copied out(reverse the bytes and minus 0x20 these should also be 4 bytes in length) in your new free space(go backwards). After you've added your pointers copy the offset where your new pointer begins and write out that at 0x4(same thing as the other pointers). Now go to 0x8 and increase that number by how many pointers you've added. It's reversed so just increase the byte at 0x8. Compress Static.bin and if you did everything correct it should work out~
 

DeathChaos

Unmei wo koeru!
Member
Joined
Oct 21, 2015
Messages
1,364
Trophies
0
Age
28
XP
1,724
Country
Puerto Rico
TWby1NI.png
xgxn3WV.png
wzXfRVP.png
Mf6Q43a.png
romfs help
I did it~
So that mystery pointer, a handful of them point to pretty much the same thing just in a different place. I just repointed all the ones that were the same to one(Both MU's, Logbook MU, Marth_FE1, dummy and merchant share one and the two enemies share one and I moved Priam's cause I had an extra slot). That gave me 0x3F0 bytes of space to work with which translates to 252 pointers. I feel kind of dumb for not doing this in the first place.

To do this open up static.bin in a hex editor and go to the offsets 0x488,0x6c0,0x75b0,0x77e8 and 0x7e90. Change whatever's there to 80 7E. Next, go to 0xa210 and copy 0xA8 bytes in length. Go to 0x7F48 and paste WRITE(ctrl+b). Now go to the offsets 0x7a20 and 0x7c58 and change whatever's there to 28 7F. You can also change Priam's if you want more space as well. Now you can add in supports/classes. Whenever you do that, copy out the offset you just wrote it and then go to what's pointed in 0x4(it is normally E8 A3 00 00. Reverse those bytes and add 0x20 to them the go to that offset). Now write out the offset you copied out(reverse the bytes and minus 0x20 these should also be 4 bytes in length) in your new free space(go backwards). After you've added your pointers copy the offset where your new pointer begins and write out that at 0x4(same thing as the other pointers). Now go to 0x8 and increase that number by how many pointers you've added. It's reversed so just increase the byte at 0x8. Compress Static.bin and if you did everything correct it should work out~

I may give this a try later, but I think it'll just be easier to copy/paste everyone into each other's support pool and then repoint the pointers, since everyone will have the same number of supports, it should be easier to repoint eveything, right?
 

UnassumingVenusaur

In All Her Gay Glory
OP
Member
Joined
Nov 20, 2015
Messages
459
Trophies
0
XP
433
Country
United States
TWby1NI.png
xgxn3WV.png
wzXfRVP.png
Mf6Q43a.png

I did it~
So that mystery pointer, a handful of them point to pretty much the same thing just in a different place. I just repointed all the ones that were the same to one(Both MU's, Logbook MU, Marth_FE1, dummy and merchant share one and the two enemies share one and I moved Priam's cause I had an extra slot). That gave me 0x3F0 bytes of space to work with which translates to 252 pointers. I feel kind of dumb for not doing this in the first place.

To do this open up static.bin in a hex editor and go to the offsets 0x488,0x6c0,0x75b0,0x77e8 and 0x7e90. Change whatever's there to 80 7E. Next, go to 0xa210 and copy 0xA8 bytes in length. Go to 0x7F48 and paste WRITE(ctrl+b). Now go to the offsets 0x7a20 and 0x7c58 and change whatever's there to 28 7F. You can also change Priam's if you want more space as well. Now you can add in supports/classes. Whenever you do that, copy out the offset you just wrote it and then go to what's pointed in 0x4(it is normally E8 A3 00 00. Reverse those bytes and add 0x20 to them the go to that offset). Now write out the offset you copied out(reverse the bytes and minus 0x20 these should also be 4 bytes in length) in your new free space(go backwards). After you've added your pointers copy the offset where your new pointer begins and write out that at 0x4(same thing as the other pointers). Now go to 0x8 and increase that number by how many pointers you've added. It's reversed so just increase the byte at 0x8. Compress Static.bin and if you did everything correct it should work out~
Oh my god, I'm so freaking excited now. It's still a little intimidating, but knowing it's actually possible to add in pretty much all the supports and classes we'd want... wow. I'll need to try to figure this out soon.
 
  • Like
Reactions: robotortoise

UnassumingVenusaur

In All Her Gay Glory
OP
Member
Joined
Nov 20, 2015
Messages
459
Trophies
0
XP
433
Country
United States
TWby1NI.png
xgxn3WV.png
wzXfRVP.png
Mf6Q43a.png

I did it~
So that mystery pointer, a handful of them point to pretty much the same thing just in a different place. I just repointed all the ones that were the same to one(Both MU's, Logbook MU, Marth_FE1, dummy and merchant share one and the two enemies share one and I moved Priam's cause I had an extra slot). That gave me 0x3F0 bytes of space to work with which translates to 252 pointers. I feel kind of dumb for not doing this in the first place.

To do this open up static.bin in a hex editor and go to the offsets 0x488,0x6c0,0x75b0,0x77e8 and 0x7e90. Change whatever's there to 80 7E. Next, go to 0xa210 and copy 0xA8 bytes in length. Go to 0x7F48 and paste WRITE(ctrl+b). Now go to the offsets 0x7a20 and 0x7c58 and change whatever's there to 28 7F. You can also change Priam's if you want more space as well. Now you can add in supports/classes. Whenever you do that, copy out the offset you just wrote it and then go to what's pointed in 0x4(it is normally E8 A3 00 00. Reverse those bytes and add 0x20 to them the go to that offset). Now write out the offset you copied out(reverse the bytes and minus 0x20 these should also be 4 bytes in length) in your new free space(go backwards). After you've added your pointers copy the offset where your new pointer begins and write out that at 0x4(same thing as the other pointers). Now go to 0x8 and increase that number by how many pointers you've added. It's reversed so just increase the byte at 0x8. Compress Static.bin and if you did everything correct it should work out~
So, I got to the step where I'm supposed to change the offset at 0x7e90 to 80 7E, but when I type that into "search for" (the data type is "integer number-- is that right?) the search says it can't find it. Also, two other things-- if I wanted to move Priam's to add more space, how would I do that, and how/where do I add in the new supports/classes? Where they typically would be by the rest of that character's data? Thanks to anyone who can help with this-- I'm still a beginner.
 

TildeHat

Well-Known Member
Newcomer
Joined
Oct 29, 2015
Messages
97
Trophies
0
XP
828
Country
Canada
So, I got to the step where I'm supposed to change the offset at 0x7e90 to 80 7E, but when I type that into "search for" (the data type is "integer number-- is that right?) the search says it can't find it. Also, two other things-- if I wanted to move Priam's to add more space, how would I do that, and how/where do I add in the new supports/classes? Where they typically would be by the rest of that character's data? Thanks to anyone who can help with this-- I'm still a beginner.
Go to the offset 0x7E90 and replace what's there with 80 7E. Data type for this stuff is Hex.
To move Priam's and add more space just follow his mystery pointer and copy 0xA8 in length then paste that somewhere else, best place to put it is where Avatar_N's mystery pointer points to.
Supports and junk are in that huge character block. An empty support looks like 00 00 00 00 63 63 63 63, where the first four bytes is the pointer to the character's PID label and the last four are the support points. Compare the character blocks with the nightmare module to get a feel for things and map out the things if it helps. Character blocks are 0x238 in size and end with FF.(Male MU starts at 0x28 and ends at 0x260)
 

UnassumingVenusaur

In All Her Gay Glory
OP
Member
Joined
Nov 20, 2015
Messages
459
Trophies
0
XP
433
Country
United States
Go to the offset 0x7E90 and replace what's there with 80 7E. Data type for this stuff is Hex.
To move Priam's and add more space just follow his mystery pointer and copy 0xA8 in length then paste that somewhere else, best place to put it is where Avatar_N's mystery pointer points to.
Supports and junk are in that huge character block. An empty support looks like 00 00 00 00 63 63 63 63, where the first four bytes is the pointer to the character's PID label and the last four are the support points. Compare the character blocks with the nightmare module to get a feel for things and map out the things if it helps. Character blocks are 0x238 in size and end with FF.(Male MU starts at 0x28 and ends at 0x260)

Ok, I'm following what you're saying a bit better now, and I'm at the step where you actually add in new supports/classes. The part where I start to get confused is when you start copying the offset. Is this something you have to do every time you put in a new support/class? Also, when you do copy the offset (I'm assuming this is just the new bytes you put in to indicate the support/class) I'm really confused as to where I'm supposed to paste it and where the free space is coming from-- they're not all ending at the same place, are they?

Edit: Also, how much free space do you get if you move Priam that you don't get if you don't move Priam? Aka how many new supports/class inheritance options can we add in?
 
Last edited by UnassumingVenusaur,

TildeHat

Well-Known Member
Newcomer
Joined
Oct 29, 2015
Messages
97
Trophies
0
XP
828
Country
Canada
Ok, I'm following what you're saying a bit better now, and I'm at the step where you actually add in new supports/classes. The part where I start to get confused is when you start copying the offset. Is this something you have to do every time you put in a new support/class? Also, when you do copy the offset (I'm assuming this is just the new bytes you put in to indicate the support/class) I'm really confused as to where I'm supposed to paste it and where the free space is coming from-- they're not all ending at the same place, are they?
You need to copy out the offset whenever you point to a label(all that stuff you see at the end of the file). For supports because the first four bytes are a pointer to a label you need to copy down that offset. No need to copy out the offset where the support points are because they don't point to anything.
For pasting, Priam's you can just paste to 0x7FF0. It should be a string of FFs and it's not being used any more since we repointed Avatar_N's mystery pointer. The free stuff is what's above 0xA408. We repointed all that stuff so that area's not being used by the file any more.
 

GCNMatt

Well-Known Member
Member
Joined
Oct 4, 2015
Messages
154
Trophies
0
XP
178
Country
United States
Which files are the portraits? Specifically, which are the files for the children's hair? I think they're seperate, but I have no understanding of Japanese text. Also, I moved around some texture files (for hair and class), and class ones that rely on different "model" files create models with only one color palette, but it's worth it (aka hilarious) to see Emmeryn with Aversa's model, reclassed characters to not be generic blue, and to start the game with Lucina. Sadly, Maribelle's hair leaves gaps in everyone's hair, but Flavia's ponytail looks just precious on Maribelle.
 

UnassumingVenusaur

In All Her Gay Glory
OP
Member
Joined
Nov 20, 2015
Messages
459
Trophies
0
XP
433
Country
United States
Which files are the portraits? Specifically, which are the files for the children's hair? I think they're seperate, but I have no understanding of Japanese text. Also, I moved around some texture files (for hair and class), and class ones that rely on different "model" files create models with only one color palette, but it's worth it (aka hilarious) to see Emmeryn with Aversa's model, reclassed characters to not be generic blue, and to start the game with Lucina. Sadly, Maribelle's hair leaves gaps in everyone's hair, but Flavia's ponytail looks just precious on Maribelle.
All of those character sprites and portraits are in the "face" folder. There's a lot of files, so find the one for the characters you want I would recommend searching for their name in katakana.

Also, I demand screenshots of all of those! (But especially Maribelle!)
 

UnassumingVenusaur

In All Her Gay Glory
OP
Member
Joined
Nov 20, 2015
Messages
459
Trophies
0
XP
433
Country
United States
You need to copy out the offset whenever you point to a label(all that stuff you see at the end of the file). For supports because the first four bytes are a pointer to a label you need to copy down that offset. No need to copy out the offset where the support points are because they don't point to anything.
For pasting, Priam's you can just paste to 0x7FF0. It should be a string of FFs and it's not being used any more since we repointed Avatar_N's mystery pointer. The free stuff is what's above 0xA408. We repointed all that stuff so that area's not being used by the file any more.
...I'm sorry to keep bothering you, but I want to make sure I'm doing this right.

So I copied the MaMU's slow Cordelia support (B2 B8 00 00 05 0A 10 16) and pasted it over one of Chrom's empty support spaces. This occurs at 0x7A8.

From what I gather, from here, I'm supposed to copy the first four bytes (B2 B8 00 00) and paste them... where, exactly? After that point in your instructions I get really lost.
 

TildeHat

Well-Known Member
Newcomer
Joined
Oct 29, 2015
Messages
97
Trophies
0
XP
828
Country
Canada
Look at the bytes at 0x4. Reverse those bytes and add 0x20 to it. Go to that offset. Now go backwards by 0x4 and write out a pointer to the offset where you added the support. To write out the pointer take the offset, reverse it and minus 0x20. So since you wrote something at 0x7a8 subtracting 0x20 makes it become 0x788. Then you reverse the bytes to make it become 88 07 00 00. That's what you write out. Then you need to change the pointer at 0x4 and the bytes at 0x8 to accommodate the new size and starting position.
 

JunpeiHyde

Member
Newcomer
Joined
Dec 30, 2015
Messages
7
Trophies
0
Age
29
XP
58
Country
Jersey
First off, it's awesome that this is a thing. However, I'm trying to get this working but I'm hitting a snag. When I use braindump to dump my cart, it doesn't give me romfs.bin like the guide says it should, it instead gives me a .cxi file, which I'm not sure what to do with. Am I doing something wrong?
 

DeathChaos

Unmei wo koeru!
Member
Joined
Oct 21, 2015
Messages
1,364
Trophies
0
Age
28
XP
1,724
Country
Puerto Rico
First off, it's awesome that this is a thing. However, I'm trying to get this working but I'm hitting a snag. When I use braindump to dump my cart, it doesn't give me romfs.bin like the guide says it should, it instead gives me a .cxi file, which I'm not sure what to do with. Am I doing something wrong?
Hmm, maybe you're using the new braindump version?

IIRC the new braindump now dumps a full rom, the prerelease version was the one that only gave the romfs and the exefs IIRC
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • BakerMan @ BakerMan:
    ubisoft should #stopkillinggames ngl
  • Badcatalex @ Badcatalex:
    sony should #stopkillinggames
  • Badcatalex @ Badcatalex:
    they killed LittleBigPlanet online, which was the main core of every LBP game
  • BakerMan @ BakerMan:
    for real
  • BakerMan @ BakerMan:
    at least with them, it was because of the DDOS attacks, ubisoft was just scummy
  • BakerMan @ BakerMan:
    fuck ubisoft, and fuck activision
    +1
  • realtimesave @ realtimesave:
    Nintendo needs to release a new console, switch is getting such shitty little games lately lol it's pathetic
  • Purple_Heart @ Purple_Heart:
    Lmao a new flashcart... The Unlock Switch... I knew it's not fake xD
    +1
  • NinStar @ NinStar:
    A new consoles won't solve that problem
  • NinStar @ NinStar:
    It will actually make it worse
  • The Real Jdbye @ The Real Jdbye:
    well actually
    a new console won't do anything right now, because the games are still in development, that's why there are few games being released
  • The Real Jdbye @ The Real Jdbye:
    it won't make the games finish any faster
  • Veho @ Veho:
    2/3rds of launch titles for the Switch 2 will just be lazy ports of Switch games anyway.
  • The Real Jdbye @ The Real Jdbye:
    probably
  • The Real Jdbye @ The Real Jdbye:
    maybe mario kart 9 will be a launch title
  • The Real Jdbye @ The Real Jdbye:
    i really want a new mario kart
  • Veho @ Veho:
    What, you mean the endless stream of DLCs doesn't count?
  • Veho @ Veho:
    Why develop a new game when you can just sell season passes forever?
  • Veho @ Veho:
    I'm still on MKDS so I'm not bothered :tpi:
  • The Real Jdbye @ The Real Jdbye:
    i like the dlc tbh, i'd like a new game more
  • ZeroT21 @ ZeroT21:
    but the current version is still selling fine at full price
  • SylverReZ @ SylverReZ:
    Hello
  • ZeroT21 @ ZeroT21:
    sup
    +1
  • SylverReZ @ SylverReZ:
    @realtimesave, You seen the Unlock Switch flashcart yet?
    SylverReZ @ SylverReZ: @realtimesave, You seen the Unlock Switch flashcart yet?