Jump to content

FE6 Localization Patch v1.2.1 - Full localization with new features, including Support Conversation reader


Recommended Posts

  • Replies 1.9k
  • Created
  • Last Reply

Top Posters In This Topic

torch (item) -> flamestick

torch (staff) -> vergil

that's just my opinion.

also i have never confused myself between the torches, even when playing in japanese where they still have the same name.

Edited by dondon151
Link to comment
Share on other sites

Just leave them be. I'm pretty miffed you changed the manga weapon names as it is, that's going a bit far with translation liberties imo, but since you seem more interested in making this patch an FE7ization than just a TL w/e

torch (staff) -> vergil

Oh you.

Link to comment
Share on other sites

dondon: Abbreviating names is a last resort, and I'd rather go with Hero's sword than Champion's swd. I believe as it is now, the Binding Bld is the only item with a truncated name.

Barth: Actually, I checked, and I don't think they are. As funny as it would be if the torch staff was just a staff on fire (as it would be if the descriptions were reversed), that unfortunately doesn't seem to be the case.

eN1eILT.pngnSwHys9.png

Klok: Not my jurisdiction to change established names like that as far as this project is concerned.

Irysa: Although I can kind of see where you're coming from, the references to the characters haven't been removed (the characters are referenced in the dialogue now), and this was never intended to be a 1:1 translation to begin with. Because of grammar differences in Japanese and English, as far as I'm concerned, it's either put in way more work than necessary (or rather, ask tabachanker to >_>) or change the item names very slightly.

Edited by gringe
Link to comment
Share on other sites

Barth: Actually, I checked, and I don't think they are. As funny as it would be if the torch staff was just a staff on fire (as it would be if the descriptions were reversed), that unfortunately doesn't seem to be the case.

oh okay, I read "staff" but when I look more closely it makes sense as they are now.

Edited by Barth
Link to comment
Share on other sites

gringe, on the Animation (Options -> Animation -> Solo) and Character (Unit) screens, the Class headers are not properly aligned in the latest patch. Is this something you are still planning on fixing?



tabachanker, I am willing to beg for your help if need be :P:



Also, I noticed that the year font on the Nintendo Presents screen was changed to match the rest of the text, nice touch, it looks great.


Link to comment
Share on other sites

gringe, on the Animation (Options -> Animation -> Solo) and Character (Unit) screens, the Class headers are not properly aligned in the latest patch. Is this something you are still planning on fixing?

tabachanker, I am willing to beg for your help if need be :P:

Quite an easy fix! Just change the value $48 at offset $678858 to $40. The label "Class" will be now aligned with the rest of the column.

Link to comment
Share on other sites

Thanks for the Animation screen fix tabachanker, and for not making me beg :):

I was able to figure out the alignment on the Character screen, which can be fixed by changing the value at offset $6788E8 from $48 to $40.

I am really looking forward to your explanations on how you managed all of these great hacks!

Edited by Chad
Link to comment
Share on other sites

Thanks for the Animation screen fix tabachanker, and for not making me beg :):

I was able to figure out the alignment on the Character screen, which can be fixed by changing the value at offset $6788E8 from $48 to $40.

I am really looking forward to your explanations on how you managed all of these great hacks!

I somehow missed that the Character screen also had to be fixed in your original message, sorry! But you found the correct value yourself, good work!

I guess a quick explanation I can give to how I'm doing these hacks is the power of observation. After looking at the data in the ROM for awhile, you can detect patterns that can eventually help you with the hack. For instance, when I see 4 consecutive bytes with the last one being and $08 (ex: 56 A4 B0 08), I know this is a pointer. Moreover, the way the ARM processor work, that pointer must be aligned on address that can be divided by 4. If it's not (but has the same form as my example), it is most surely not a pointer.

Now, for easy fix like the last one, I usually search for the text I have to change. In this instance, I searched for "Class" (the char codes used by the game: 82 A4 82 E6 82 D0 82 F0 82 F0 00). I found 1 instance of this in the ROM at address $817976. To use this label, the game must point to it, so I searched for a pointer to this address. I searched for 76 79 81 08 (all bytes of the address are reversed in a pointer. Also, you must add $08000000 to the offset since the GBA cart start at that address in memory map). I found only 1 instance. With the power of observation I was talking about earlier, I looked at the data around the pointer I found. It was clear to me this was a table with each entry representing each header labels in the animation option screen. By looking at the bytes for each labels closely I noticed one of them going like: $14, $40, $88, $C0. I was almost sure this was the Xpos of the label. And it was! So yay! Power of observation!

For the harder hacks (the class names intro screen, adding an article to items), I had to disassemble the game and read the asm code directly, and then change and create new code. There's practically no way around this. I also took the time to understand how the game engine works internally (basically how the game "runs"). It wasn't necessary at first but it helped me immensely when I encountered some game breaking bugs, like when too much letters appeared on the intro screen.

Edited by tabachanker
Link to comment
Share on other sites

Thank you tabachanker for the in depth response!


Everything you said makes sense, except for one thing: how were you able to figure out what to search for when looking for "Class"? I'm not seeing a pattern in the character codes you posted.


I'm guessing it has something to do with Huffman compression, which I was never able to crack, because I could not locate the offsets for the tree, table, etc.

Link to comment
Share on other sites

Everything you said makes sense, except for one thing: how were you able to figure out what to search for when looking for "Class"? I'm not seeing a pattern in the character codes you posted.

I don't really know if the codes themselves follow some kind of standard. What I did at first was to use FEditor to find all the important characters (A-Z, 0-9, some punctations). I changed text offset 001 to "ABCDEF... etc." and checked how FEditor converted this in the ROM. Later, I found the data table in ROM where all the characters definitions reside. This table is a little hard to follow. I'll try to explain this as best as I can but there's still some things I'm not sure about.

First, a little naming convention! For a given char code (ex: $82 $A0), I call the 1st byte (ex: $82) the char code category. I call the 2nd byte (ex: $A0) the char code index. The category $82 seems to be all our standard alphabet letters + punctuations and roman numerals. The category $83 also contains some punctuations. Other categories seems to be mainly all the Japanese kanas and kanji.

All the char codes are defined within offsets $5A85B0 to $5C39AF in the ROM.

Each $48 bytes at this location represent one char code definition :

+00 (4bytes) = Pointer to next char code with same index (2nd byte of char code) in another category (1st byte of char code)

+04 (1byte) = Category of char code (its 1st byte, ex: $82 $xx, $83 $xx, etc.)

+05 (1byte) = Pattern width of char code

+06 (2bytes) = Never used? (always equals $0000)

+08 (64bytes) = Pattern of char code. This is a 16x16 pixels, 4clrs pattern (2 bits / pixel)

There's another table with a single pointer to the 1st charcter definition for each possible char code index (2nd byte of char code)

Those pointers are located between offsets $5A82B0 to $5A85AF in the ROM.

For some reason, those pointers are for char codes indexes $40 to $FF. So char codes $xx $00 to $xx $3F just doesn't exist!

So, to find a pattern from a char code, the game :

  1. Uses the char code index (2nd byte) to find the pointer (at offset $5A82B0) to the first char code definition (offset $5A85B0) for this index.
  2. In this definition, it checks the char code category (1st byte) against the definition category (+04 byte).
  3. If category is different, the game uses pointer at +00 to find next definition with same char code index (different category). Then it goes back to step 2.
  4. If its the same category, the game found the correct pattern and decode + display the pattern starting at +08 in definition.

So, now you have to decode the patterns to see what each character looks like!! I won't go into details here on how to do that.

To make it easier to find the char codes I need, I created 2 tools with Openoffice Calc. The first uses all those data above and, when you enter a char code in a cell, it displays the pattern for that char code. The second uses a table of interesting char codes I found to convert letters to char codes and vice-versa. If anyone want those tools, I can post them here. The only problem is that I made them with a French version of OpenOffice. In this version, the functions names are all in French (ex: nbcar() instead of len(), gauche() instead of left(), etc.). I'm not certain it would work correctly in an English OpenOffice.

And lastly, here's a table of interesting char codes I found with all the tools described above:

82 B8     
82 A0    A
82 A2    B
82 A4    C
82 A6    D
82 A8    E
82 A9    F
82 AB    G
82 AD    H
82 AF    I
82 B1    J
82 B3    K
82 B5    L
82 B7    M
82 B9    N
82 BB    O
82 BD    P
82 BF    Q
82 C2    R
82 C4    S
82 C6    T
82 C8    U
82 C9    V
82 CA    W
82 CB    X
82 CC    Y
82 CD    Z
82 D0    a
82 D3    b
82 D6    c
82 D9    d
82 DC    e
82 DD    f
82 DE    g
82 DF    h
82 E0    i
82 E2    j
82 E4    k
82 E6    l
82 E7    m
82 E8    n
82 E9    o
82 EA    p
82 EB    q
82 ED    r
82 F0    s
82 F1    t
82 AA    u
82 AC    v
82 AE    w
82 B0    x
82 B2    y
82 B4    z
82 D8    0
82 DB    1
82 9F    2
82 A1    3
82 A3    4
82 A5    5
82 A7    6
82 C1    7
82 E1    8
82 E3    9
82 60    A (alt)
82 61    B (alt)
82 62    C (alt)
82 63    D (alt)
82 64    E (alt)
82 65    F (alt)
82 66    G (alt)
82 67    H (alt)
82 68    I (alt)
82 69    J (alt)
82 6A    K (alt)
82 6B    L (alt)
82 6C    M (alt)
82 6D    N (alt)
82 6E    O (alt)
82 6F    P (alt)
82 70    Q (alt)
82 71    R (alt)
82 72    S (alt)
82 73    T (alt)
82 74    U (alt)
82 75    V (alt)
82 76    W (alt)
82 77    X (alt)
82 78    Y (alt)
82 79    Z (alt)
82 81    a (alt)
82 82    b (alt)
82 83    c (alt)
82 84    d (alt)
82 85    e (alt)
82 86    f (alt)
82 87    g (alt)
82 88    h (alt)
82 89    i (alt)
82 8A    j (alt)
82 8B    k (alt)
82 8C    l (alt)
82 8D    m (alt)
82 8E    n (alt)
82 8F    o (alt)
82 90    p (alt)
82 91    q (alt)
82 92    r (alt)
82 93    s (alt)
82 94    t (alt)
82 95    u (alt)
82 96    v (alt)
82 97    w (alt)
82 98    x (alt)
82 99    y (alt)
82 9A    z (alt)
82 4F    0 (alt)
82 50    1 (alt)
82 51    2 (alt)
82 52    3 (alt)
82 53    4 (alt)
82 54    5 (alt)
82 55    6 (alt)
82 56    7 (alt)
82 57    8 (alt)
82 58    9 (alt)
81 40      (alt)
82 BA    !
82 BC    "
82 BE    #
82 C0    $
82 C3    %
82 C5    &
82 C7    '
82 CE    (
82 CF    -
82 D1    )
82 D2    .
82 D4    *
82 D5    /
82 D7    +
82 DA    ,
82 E5    :
83 41    ;
83 49    ?
83 5E    ~
81 5B    -
81 60    ~ (alt)

The "(alt)" means those are other versions of the characters not normally used by the game (or by FEditor), but they exist nonetheless (there's a lot of repeats in the patterns). The only difference I could see between the normal letters (starting at $82 $A0) and the alt ones (starting at $82 $60) is that the "alt" ones have a lower base line. So if you mix some normal letters and alt ones, you get something like: "Text message", but with all letters being the same size...

Edited by tabachanker
Link to comment
Share on other sites

Awesome response tabachanker, thanks again! After reviewing your post I clearly see the pattern in the character codes now. I'm really looking forward to digging into that data table this weekend when I have some free time again!

Edited by Chad
Link to comment
Share on other sites

I did some more play testing and found a minor punctuation issue in the Constitution description, check out how the initial sentence is lacking a period:

post-12207-0-51920000-1414270342_thumb.png

I also noticed that a few of the stat descriptions have been altered from their counterparts in FE7, namely Constitution, Defense and Skill. While the additional information is more descriptive, I am unsure of it's accuracy:

post-12207-0-48347200-1414270334_thumb.pngpost-12207-0-03009500-1414270339_thumb.png

post-12207-0-18963400-1414270336_thumb.pngpost-12207-0-30249600-1414270340_thumb.png

post-12207-0-76010300-1414270337_thumb.pngpost-12207-0-40866700-1414270341_thumb.png

I'll leave it up to you to decide whether or not the descriptions should be updated to match FE7, or if they should be left as is.

Edited by Chad
Link to comment
Share on other sites

After some more testing I noticed a small bug that was introduced by the original translation patch, as well as something else that should probably be polished up a bit. I'm attempting to tackle these myself, but have hit a wall. I'd appreciate whatever assistance anyone is willing to give. Here are some images that display the issues; the first two are from FE6 with this patch, the third from a clean, unpatched FE6 and the last one from FE7.


post-12207-0-43622800-1414739824_thumb.pngpost-12207-0-82813500-1414739825_thumb.pngpost-12207-0-62487900-1414739822_thumb.pngpost-12207-0-06835900-1414739827_thumb.png


ISSUE 1: In the first and second images, the option / chapter banners have four transparent dots, one in each corner (they appear as dark blue dots in the banners tan outer frame). Compare this to the unpatched version (image 3) to see the difference. My initial thought was that this was being caused by the banner image itself, but after looking at it in GBAGE, I found that is not the case. I then thought it might be an issue with the palette, so I tracked it down in the ROM. However, the patched palette matches the original, byte by byte. At this point my theory is that it is an issue with how the image is being processed, but I have no idea where to go from there.


ISSUE 2: If you compare the font and palette being used for the yellow banner text in the second image to the green ones used in FE7 (image 4) you'll notice that the letters are very pixelated and distorted. This is very noticeable, in particular, in the O (the entire letter is very jagged), D (look at the backside and its tails) and A (the hole in the letter is fragmented) in NO DATA. While obviously a minor quibble, it would still be nice to have this font look as good as the rest of the text within the game. I verified that the palette is the same as in the unpatched game, so what is the best way to approach this? Do I need to invert each of the various chapter images within the ROM?


If anyone wants me to post the offsets for the images / palettes I would be happy to do so, just ask. Thanks again to anyone willing to chime in with some input!

Edited by Chad
Link to comment
Share on other sites

congratulations, you're onto my dirty little secret: my inability to do anything about these issues. :P the main menu lettering's bugged me from the moment i started work on this, and 90% of the reason it's still so dodgy is a combination of laziness and the terrifying number of graphics addressing it would need to amend; i know i corrected a small few back when i was working on them, but needless to say, i missed the actually glaring issues. not sure how i missed that uppercase a, though, i mean holy hell that's ugly. it doesn't help that, even if we assume i know what i'm doing as opposed to being some asshole flailing at a keyboard, working with any palette other than greyscale still lies beyond my grasp

i'd certainly like to take another stab at these, but i'm currently fuck deep in the asshole end of the uni semester, and i don't think i'll be able to get time away to give these a proper look for another month at the very least. my work on fe4/5 is more or less much on hold for the same reason, and that's something i'm actually decent at and find far less tedious in comparison! :P

on a related note, comparing these two images has led me to notice that the chapter title text's vertical alignment could do with some touching up as well. i'll definitely give that a look once i get back to work on them

Link to comment
Share on other sites

Chad,

When I fixed those graphic issues a little while back, the black box in the ending scene was due to GBAGE not storing the graphics properly into the ROM despite the graphics having the right dimensions and size (the other issue was because the replacing graphics did not replace the entirety of the existing graphics, and therefore had some leftover data of the original that caused problems). I don't know why the black box issue happened, but I was able to fix it by altering the first few bytes in the newly compressed data that GBAGE stored. As proof of this concept, I reinserted the original ending graphics over itself with GBAGE, and the black box problem occurred, so clearly something was wrong with GBAGE. I suggest you first check to see that the new option/chapter graphics completely replace the original graphic's data, or is repointed elsewhere. If that clears try reinserting the original graphics over itself and see if the four dots occur again. If it does, the problem is clearly GBAGE, and you will need to examine the differences in hex data for clean rom and the one you just altered, and diagnose which changed hex values caused the four dots.

Also if anyone's still holding their breath, I'm probably not going to try and fix that one screen in the link arena with all the japanese characters. It's completely unnecessary for anyone unless they happen to play multiplayer and want a record of their scores, and is more effort than it's worth.

Link to comment
Share on other sites

Apologies if this has been brought up in the past (I'm playing 0.92 right now), but in Chapter 12x (the chapter where you get Armads), the enemies are labelled as Bandits--which is correct--but they have I believe the same descriptions as the ones you fight in Chapter 1

tvAUcIE.png

Has this been addressed?

Link to comment
Share on other sites

Chad: Thanks for pointing those out. The graphics don't really bother me personally and I'll leave it up to bookofholsety to fix them or not. As for the descriptions, thanks for pointing out the lack of a period there. At the time I was trying to make the descriptions more accurate to actual gameplay, but I guess if I'm trying to be accurate to FE7 I should go with the way they phrased it there.

DodgeDusk: I believe so. I seem to remember making that description more generic.

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

  • Recently Browsing   0 members

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