Jump to content

Fire Emblem Gaiden Name Update Patch (v0.9)


Gaiden Guy
 Share

Recommended Posts

Hello!

Recently I decided to start hacking and worked on updating Gaiden's translation. Unlike FE4/5, nobody had worked on making Gaiden's translation consistent with names used in Awakening.

Besides the credits, the entire game has had names updated to FE13 names.

Here are some screenshots.

QN3Z5Mk.png

Here's the patch

What is the purpose of this patch?

To update the names in Gaiden to be consistent with names used in Fire Emblem Awakening. I also fixed a few errors in the original patch, such as the "Full inventory" message. This is not intended to replace the current patch, as not only is this not yet complete,

Do you have any plans to make further changes?

Besides fixing the credits, yes. If I eventually get good enough at hacking, I'd like to fully redo Gaiden's translation to clean up some of the awkward text and make it so that spell names and character names are able to fit without looking squished/having to be cut off. If anyone is interested in helping out with that, I'd appreciate any advice/help they can give.

Credits are in the readme. In short, pretty much all credit goes to Artemis, the guy who did the most recent Gaiden patch. All I've really done so far is edit his patch.

I hope you enjoy.

Edited by Gaiden Guy
Link to comment
Share on other sites

  • Replies 52
  • Created
  • Last Reply

Top Posters In This Topic

I know like 0 Japanese, but I'm glad someone finally took this up. If you need any aid from someone with 0 japanese knowledge, let me know, and I'll see if I can do anything.

Downloads patch

Link to comment
Share on other sites

This is neat. Though tbh, the old translation already used like half of the current official translations anyway, such as Alm for example, but it's nice to see someone updating the entire thing. I may have to play Gaiden again soon just to test this out.

Link to comment
Share on other sites

I've been waiting for this patch ever since I played FE2 (FE13 was already out at the time, and it really bugged me that I couldn't keep up with the name differences).

Thanks a lot for this.

I know a bit of Japanese, so I might be able to help out if you plan on revising the translation.

Link to comment
Share on other sites

I know FE Gaiden has a 4 letter character limit for unit names, How did you fit names like Valbar, Nomah and Luthier to fit?

(I haven't played this patch yet so I don't know if you used these names.)

Link to comment
Share on other sites

I know FE Gaiden has a 4 letter character limit for unit names, How did you fit names like Valbar, Nomah and Luthier to fit?

(I haven't played this patch yet so I don't know if you used these names.)

The old patch had already found a way around this limitation. I don't know how they did it, buy there were definitely some 5+ letter names.

Edited by Matthewtheman
Link to comment
Share on other sites

The old patch had already found a way around this limitation. I don't know how they did it, buy there were definitely some 5+ letter names.

The playable unit names that have 5+ letters are usually just a bunch of letters shrunken down to fit in 4 spaces. It's the same thing in FE 1 to fit names that have 7+ letters.

Link to comment
Share on other sites

Ok FINALLY, someone who can hack that wants to do this. I've been wanting to do this for over 2 years now despite having no hacking skills- so much so that I thought of a name for such a project, "Project Mila" (to go with Project Naga) and I actually scoured the internet for a month to hunt down the man himself, Artemis. Here's the important thing he told me:

The ROM itself basically NEEDS to be ASM hacked if you want to implement official names for classes, he had a hell of a time with "Dread Fighter" specifically (I convinced him to attempt an ill fated redux of the patch), and he admitted it came down to him taking a lot of shortcuts to get the game out within a month like he did, since the character limit is so small. So you may have to end up gutting the ROM to really implement names like "Luthier" and "Dread Fighter"

One more thing: Quite a few names from Gaiden show up in Fates, not just Awakening.

So check BOTH 3DS games for official names, I know there's an entire einherjar style DLC dedicated to Gaiden in Fates (Witch's Trial) and weapons like Ragnarok reappear for the first time since Gaiden in Fates.

EDIT: this is just an opinion but since "Teeta" is clearly a reference to Nyna, to the point they share the very same Sprite edited, I think her name should (perhaps) be rendered as Tyna or Tina. ALSO, it's been proven that Siegbert in Fates has the same first syllable as Camus's alias (Jiku), meaning that we got an official translation for Camus's alias in this game in the same way Kurth got his in Kurthnaga- in this case, Sieg.

http://fireemblem.wikia.com/wiki/Siegbert

http://fireemblem.wikia.com/wiki/Camus

Look at the Japanese renderings of the names for the characters (THIS IS AN EXAMPLE OF GAIDEN NAMES SHOWING UP IN FATES)

Edited by Hero of the Fire Emblems
Link to comment
Share on other sites

Here's how to edit the names in the credits, in case you haven't already figured it out:

The names start at offset 0x1345C and use a completely ridiculous encoding. Basically, each letter of a name is encoded by a single hex digit and the one that comes immediately after it.

The first character is encoded as follows:

0 = (unknown, causes the game to freeze), '
1 = (space), .
2 = !, (end)
3 = A, B
4 = C, D
5 = E, F
6 = G, H
7 = I, J
8 = K, L
9 = M, N
A = O, P
B = Q, R
C = S, T
D = U, V
E = W, X
F = Y, Z

If the number after this is 0-7, the first character is displayed, and if it's 8-F, the second is displayed.

The next character is encoded as follows:

0 = (unknown, causes the game to freeze), ',(space), .
1 = !,(end), A, B
2 = C, D, E, F
3 = G, H, I, J
4 = K, L, M, N
5 = O, P, Q, R
6 = S, T, U, V
7 = W, X, Y, Z
8-F = same as 0-7

If the number after this is 0-3, the first character is displayed, if it's 4-7, the second is displayed, etc.

The next character is encoded as follows:

0 = (unknown, causes the game to freeze), ',(space), ., !, (end), A, B
1 = C, D, E, F, G, H, I, J
2 = K, L, M, N, O, P, Q, R
3 = S, T, U, V, W, X, Y, Z
4-7 = same as 0-3
8-B = same as 0-3
C-F = same as 0-3

If the number after this is 0-1, the first character is displayed, if it's 2-3, the second is displayed, etc.

The next character is encoded as follows:

0 = (unknown, causes game to freeze), ',(space), ., !, (end), A, B, C, D, E, F, G, H, I, J
1 = K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z

2-3 = same as 0-1
4-5 = same as 0-1
6-7 = same as 0-1
8-9 = same as 0-1
A-B = same as 0-1
C-D = same as 0-1
E-F = same as 0-1

If the number after this is 0, the first character is displayed, if it's 1, the second is displayed, etc.

The next number doesn't encode any characters; it exists solely to modify the character before it.

After this, the next character will be encoded the same way as the first, the character after that will be encoded the same way as the second, and so on.

Here's an example, in case that was hard to follow. The first 5 hex digits of the credit names are 3, 4, 6, 4, and 5. The first number is a 3, so it's either an A or a B. Since the number after is a 4, the first letter is displayed, so it's an A. The next number is a 4, so it's either a K, an L, an M, or an N. Since the number after is six, the second letter is displayed, so it's an L. The next number is a 6, so it's either K, L, M, N, O, P, Q, or R. The number after is a 4, so the third letter is displayed, so it's an M. The next number is a 4, so it's either (unknown, causes game to freeze), ',(space), ., !, (end), A, B, C, D, E, F, G, H, I, or J. Since the number after is a 5, the sixth letter is displayed, so it's (end). The 5 doesn't encode any letter. So, 34 64 5 encodes ALM(end).

Note that unless you want to have names like ALMCELICAMYCENNOMAH, every name must end with the (end) character.

If you want, I can give you the hex data from a patch I made myself where I have already changed the names to the ones used in Awakening, but since I changed May to Mae, and left Jesse, Jenny and Python's names alone, you would have to make some changes to get it to match your patch.

Link to comment
Share on other sites

I know FE Gaiden has a 4 letter character limit for unit names, How did you fit names like Valbar, Nomah and Luthier to fit?

(I haven't played this patch yet so I don't know if you used these names.)

Someone mentioned it later, but yeah, I had to mess with graphics to fit names within 4 spaces. It causes names like Luthier to be rather squished, but that's all I got for now.

Ok FINALLY, someone who can hack that wants to do this. I've been wanting to do this for over 2 years now despite having no hacking skills- so much so that I thought of a name for such a project, "Project Mila" (to go with Project Naga) and I actually scoured the internet for a month to hunt down the man himself, Artemis. Here's the important thing he told me:

The ROM itself basically NEEDS to be ASM hacked if you want to implement official names for classes, he had a hell of a time with "Dread Fighter" specifically (I convinced him to attempt an ill fated redux of the patch), and he admitted it came down to him taking a lot of shortcuts to get the game out within a month like he did, since the character limit is so small. So you may have to end up gutting the ROM to really implement names like "Luthier" and "Dread Fighter"

One more thing: Quite a few names from Gaiden show up in Fates, not just Awakening.

So check BOTH 3DS games for official names, I know there's an entire einherjar style DLC dedicated to Gaiden in Fates (Witch's Trial) and weapons like Ragnarok reappear for the first time since Gaiden in Fates.

EDIT: this is just an opinion but since "Teeta" is clearly a reference to Nyna, to the point they share the very same Sprite edited, I think her name should (perhaps) be rendered as Tyna or Tina. ALSO, it's been proven that Siegbert in Fates has the same first syllable as Camus's alias (Jiku), meaning that we got an official translation for Camus's alias in this game in the same way Kurth got his in Kurthnaga- in this case, Sieg.

http://fireemblem.wikia.com/wiki/Siegbert

http://fireemblem.wikia.com/wiki/Camus

Look at the Japanese renderings of the names for the characters (THIS IS AN EXAMPLE OF GAIDEN NAMES SHOWING UP IN FATES)

Once I start to get further into this project, I'll likely start doing more renames for characters lacking English names. Sieg seems fairly reasonable. Right now I just wanna get everything working with as few name changes as possible for those who like the names as is. Yeah, I don't see me getting Dread Fighter in without some serious hacking. I'm not too great at that for now, but I'm sure its not impossibe.

Here's how to edit the names in the credits, in case you haven't already figured it out:

The names start at offset 0x1345C and use a completely ridiculous encoding. Basically, each letter of a name is encoded by a single hex digit and the one that comes immediately after it.

The first character is encoded as follows:

0 = (unknown, causes the game to freeze), '

1 = (space), .

2 = !, (end)

3 = A, B

4 = C, D

5 = E, F

6 = G, H

7 = I, J

8 = K, L

9 = M, N

A = O, P

B = Q, R

C = S, T

D = U, V

E = W, X

F = Y, Z

If the number after this is 0-7, the first character is displayed, and if it's 8-F, the second is displayed.

The next character is encoded as follows:

0 = (unknown, causes the game to freeze), ',(space), .

1 = !,(end), A, B

2 = C, D, E, F

3 = G, H, I, J

4 = K, L, M, N

5 = O, P, Q, R

6 = S, T, U, V

7 = W, X, Y, Z

8-F = same as 0-7

If the number after this is 0-3, the first character is displayed, if it's 4-7, the second is displayed, etc.

The next character is encoded as follows:

0 = (unknown, causes the game to freeze), ',(space), ., !, (end), A, B

1 = C, D, E, F, G, H, I, J

2 = K, L, M, N, O, P, Q, R

3 = S, T, U, V, W, X, Y, Z

4-7 = same as 0-3

8-B = same as 0-3

C-F = same as 0-3

If the number after this is 0-1, the first character is displayed, if it's 2-3, the second is displayed, etc.

The next character is encoded as follows:

0 = (unknown, causes game to freeze), ',(space), ., !, (end), A, B, C, D, E, F, G, H, I, J

1 = K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z

2-3 = same as 0-1

4-5 = same as 0-1

6-7 = same as 0-1

8-9 = same as 0-1

A-B = same as 0-1

C-D = same as 0-1

E-F = same as 0-1

If the number after this is 0, the first character is displayed, if it's 1, the second is displayed, etc.

The next number doesn't encode any characters; it exists solely to modify the character before it.

After this, the next character will be encoded the same way as the first, the character after that will be encoded the same way as the second, and so on.

Here's an example, in case that was hard to follow. The first 5 hex digits of the credit names are 3, 4, 6, 4, and 5. The first number is a 3, so it's either an A or a B. Since the number after is a 4, the first letter is displayed, so it's an A. The next number is a 4, so it's either a K, an L, an M, or an N. Since the number after is six, the second letter is displayed, so it's an L. The next number is a 6, so it's either K, L, M, N, O, P, Q, or R. The number after is a 4, so the third letter is displayed, so it's an M. The next number is a 4, so it's either (unknown, causes game to freeze), ',(space), ., !, (end), A, B, C, D, E, F, G, H, I, or J. Since the number after is a 5, the sixth letter is displayed, so it's (end). The 5 doesn't encode any letter. So, 34 64 5 encodes ALM(end).

Note that unless you want to have names like ALMCELICAMYCENNOMAH, every name must end with the (end) character.

If you want, I can give you the hex data from a patch I made myself where I have already changed the names to the ones used in Awakening, but since I changed May to Mae, and left Jesse, Jenny and Python's names alone, you would have to make some changes to get it to match your patch.

You're a lifesaver! Having your patch would help, as I could take a closer look at how that all works to make sure all the names I use here function correctly in my personal patch. Thanks a bunch to you and everyone else for the suggestions and Gaiden info. This stuff sure isn't easy to find.

Link to comment
Share on other sites

You're a lifesaver! Having your patch would help, as I could take a closer look at how that all works to make sure all the names I use here function correctly in my personal patch. Thanks a bunch to you and everyone else for the suggestions and Gaiden info. This stuff sure isn't easy to find.

For some reason I can't upload ips files, so I renamed it to patch.txt so I could attach it to this post. Just change it back to patch.ips and use it on the japanese ROM.

You're right about this being hard to find. When I was looking for how to edit the credits, all I could find was this thread, where Artemis talks about how bizarre the algorithm for the credits is. Luckily, the only difference between versions 1.0 and 1.01 of his patch was a change to the credits, so I was able to find where they were located in the ROM by looking at the 1.0->1.01 patch he made. It still took about an hour of changing random values and seeing what happened before I was able to figure out what the hell any of it meant, though.

patch.txt

Link to comment
Share on other sites

Here's how to edit the names in the credits, in case you haven't already figured it out:

The names start at offset 0x1345C and use a completely ridiculous encoding. Basically, each letter of a name is encoded by a single hex digit and the one that comes immediately after it.

...

Here's an example, in case that was hard to follow. The first 5 hex digits of the credit names are 3, 4, 6, 4, and 5. The first number is a 3, so it's either an A or a B. Since the number after is a 4, the first letter is displayed, so it's an A. The next number is a 4, so it's either a K, an L, an M, or an N. Since the number after is six, the second letter is displayed, so it's an L. The next number is a 6, so it's either K, L, M, N, O, P, Q, or R. The number after is a 4, so the third letter is displayed, so it's an M. The next number is a 4, so it's either (unknown, causes game to freeze), ',(space), ., !, (end), A, B, C, D, E, F, G, H, I, or J. Since the number after is a 5, the sixth letter is displayed, so it's (end). The 5 doesn't encode any letter. So, 34 64 5 encodes ALM(end).

Note that unless you want to have names like ALMCELICAMYCENNOMAH, every name must end with the (end) character.

If you want, I can give you the hex data from a patch I made myself where I have already changed the names to the ones used in Awakening, but since I changed May to Mae, and left Jesse, Jenny and Python's names alone, you would have to make some changes to get it to match your patch.

I couldn't help but notice that this sounds like it's just encoding the letters using 5 bits.

So if you had something like 34 64 5x, that's represented in binary as: 0011 0100 0110 0100 0101 xxxx.

Separating them into 5 bits gives you: 00110 10001 10010 00101 xxxx.

Converting these back to decimal gives you: 6 17 18 5.

And since you said it translates to: ALM(end)

That means that the table looks like:

0 = (unknown, causes the game to freeze)

1 = '

2 = (space)

3 = .

4 = !

5 = (end)

6 = A

7 = B

8 = C

...

X = 29

Y = 30

Z = 31

Which covers every possible value between 0 to 31, or 2^5 for 5 bits.

Link to comment
Share on other sites

I couldn't help but notice that this sounds like it's just encoding the letters using 5 bits.

So if you had something like 34 64 5x, that's represented in binary as: 0011 0100 0110 0100 0101 xxxx.

Separating them into 5 bits gives you: 00110 10001 10010 00101 xxxx.

Converting these back to decimal gives you: 6 17 18 5.

And since you said it translates to: ALM(end)

That means that the table looks like:

0 = (unknown, causes the game to freeze)

1 = '

2 = (space)

3 = .

4 = !

5 = (end)

6 = A

7 = B

8 = C

...

X = 29

Y = 30

Z = 31

Which covers every possible value between 0 to 31, or 2^5 for 5 bits.

I was editing the names with a hex editor, so it never really occurred to me to think of the values as anything other than hex. Thanks, your explanation makes a lot more sense than mine. Thinking about it that way probably could have saved me a lot of time, since converting binary to hex is so much easier than what I was doing.

Link to comment
Share on other sites

  • 2 weeks later...

I wonder if you are planning to make an optional graphics hack to make certain character portraits (like Alm and Valbar) consistent with their appearance in the artwork and awakening once the main translation is done, similar to how Gringe made an optional patch to change FE6's stats and RNG to FE7 standards

Link to comment
Share on other sites

I just wanted to point out that in addition to Sieg being the officially localized name of Camus's alias, it would seem, the FE wiki also insists that the "Thief" class in this game are actually brigands, which makes sense- theives are sword/knife wielding playable units that steal directly from enemies and unlock chests, while Brigands are (usually) enemy only axe users who assault villages. Additionally, there are two characters in the game that seem to match the Brigand character archetype that I belieeeeve was allegedly started in FE6 by Maggie and Rose (the most memorable instance of this archetype is Vincent and Victor in FE13) "Dach" and "Gaha", who the wiki alleges are transliterated as Dahha and Gahha. They are "thieves" and share the same portrait reversed, in an extremely similar manner to the Brigand brothers. It's much more consistent and since Brigands seem to literally be "robbers" in the Japanese version of the games, it seems possible this is a mistranslation. Regardless it's something to consider for consistency with later games.

You could alternatively make it Bandits, like in FE9/10, if you deem them to be sort a fusion between Brigands and Pirates like in those titles

Edited by Hero of the Fire Emblems
Link to comment
Share on other sites

  • 2 weeks later...

I just wanted to point out that in addition to Sieg being the officially localized name of Camus's alias, it would seem, the FE wiki also insists that the "Thief" class in this game are actually brigands, which makes sense- theives are sword/knife wielding playable units that steal directly from enemies and unlock chests, while Brigands are (usually) enemy only axe users who assault villages. Additionally, there are two characters in the game that seem to match the Brigand character archetype that I belieeeeve was allegedly started in FE6 by Maggie and Rose (the most memorable instance of this archetype is Vincent and Victor in FE13) "Dach" and "Gaha", who the wiki alleges are transliterated as Dahha and Gahha. They are "thieves" and share the same portrait reversed, in an extremely similar manner to the Brigand brothers. It's much more consistent and since Brigands seem to literally be "robbers" in the Japanese version of the games, it seems possible this is a mistranslation. Regardless it's something to consider for consistency with later games.

You could alternatively make it Bandits, like in FE9/10, if you deem them to be sort a fusion between Brigands and Pirates like in those titles

The Japanese name of the thief class in FE2 is the same word that is used for the thief class in almost all other FE games though.

And I think it's quite a stretch to compare Dahha and Gahha to the brigand brothers. They have no visible relations to each other in-game (they don't even appear in the same chapter). Their similar-looking portraits are no real indicator either, as most of the FE2 boss portraits are simply recolors.

Link to comment
Share on other sites

I think Dach and Gach is the way to go for those two, since "mach" is rendered in Japanese as マッハ, and
"Bach" as バッハ, so it doesn't at all seem like a leap to me to assume that that's probably what Intelligent Systems was going for with their names.

Whatever you do, though, I feel pretty strongly that the names should mimic the Japanese ones in being exactly the same save for the beginning consonant, although I'm also always bothered whenever naming schemes—even insignificant, meaningless ones—are dropped in translation, so that's absolutely 100% a personal issue that I have and not really so much an objective piece of advice.

Edited by Topaz Light
Link to comment
Share on other sites

Hey, another person doing this! I've been working on this and FE1 myself for a couple of months, but it's been tough going. (I've been using a lot of abbreviations, because I have no clue how to repoint things; so DrFtr for Dread Fighter... yeah.) I've also been doing my best to remove the unnecessary swearing from the script. Unfortunately, I don't speak Japanese, so there's no chance of me doing a new translation - I'm just refining Artemis's work.

ALSO, it's been proven that Siegbert in Fates has the same first syllable as Camus's alias (Jiku), meaning that we got an official translation for Camus's alias in this game in the same way Kurth got his in Kurthnaga- in this case, Sieg.

I'd recommend not doing this. Two people having the same first two Japanese characters doesn't mean they should be rendered the same way in a localisation. Especially in this case, since "Sieg" isn't a name, so there's no reason to prefer it over the equally valid "Zeke", which is a name. (Plus there's a Kamui in Gaiden - were you going to change that to "Corrin" because that's how Fates' localisation renders it? Thought not.)

Edited by Seafarer
Link to comment
Share on other sites

Hey, another person doing this! I've been working on this and FE1 myself for a couple of months, but it's been tough going. (I've been using a lot of abbreviations, because I have no clue how to repoint things; so DrFtr for Dread Fighter... yeah.) I've also been doing my best to remove the unnecessary swearing from the script. Unfortunately, I don't speak Japanese, so there's no chance of me doing a new translation - I'm just refining Artemis's work.

In Gaiden, the pointers are the last 4 digits of the address being pointed to minus 10, formatted in little endian. I believe the first digit is implicitly treated as the same as that of the address of the pointer itself. For example, the pointer to the class name for Dread Fighters is located at 0x3DB95, and it's value is D9 DB. To get the address it's pointing to, you swap the bytes around to get DB D9 (since it's in little endian), then add 10 to get DB E9, and then add a 3 in front (since the first digit of the pointer's address is a 3) to get 0x3DBE9.

It's also important to note that blocks of text can be pointed to by multiple pointers (ie. enemy Dread Fighters might use a different pointer than the one for ally units), so you will need to locate all of them if you want to change things.

Another important thing is that class names with more than 5 characters don't display correctly in menus, so even if you do repoint things, you're still stuck with the same amount of characters. One way to get around this is to use a tileset editor to add characters that contain multiple letters. The best I've been able to accomplish with this method is D.Fighter (although I'm not too fond of how the h ended up looking).

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...