Need Help: Chrono Trigger Translation

Discussion in 'NDS - ROM Hacking and Translations' started by nIxx, Feb 9, 2009.

Feb 9, 2009
  1. nIxx
    OP

    Member nIxx GBAtemp Maniac

    Joined:
    Sep 30, 2007
    Messages:
    1,459
    Location:
    Germany
    Country:
    Germany
    Hi
    since Chrono Trigger DS is not out in German Language i want to translate it.
    So i´m pretty sure that the text is in the *.msg files but the Pointer there makes no real sense for me

    00000000 00 00 00 00 54 45 58 54 04 11 00 00 E1 01 00 00 ....TEXT........
    00000010 20 01 00 00 21 01 00 00 28 01 00 00 29 01 00 00 ...!...(...)...
    00000020 32 01 00 00 33 01 00 00 38 01 00 00 39 01 00 00 2...3...8...9...
    00000030 3F 01 00 00 40 01 00 00 45 01 00 00 46 01 00 00 ?...@...E...F...
    00000040 4D 01 00 00 4E 01 00 00 54 01 00 00 55 01 00 00 M...N...T...U...
    00000050 5C 01 00 00 5D 01 00 00 5F 01 00 00 60 01 00 00 \...]..._...`...
    00000060 62 01 00 00 63 01 00 00 65 01 00 00 66 01 00 00 b...c...e...f...
    00000070 68 01 00 00 69 01 00 00 6C 01 00 00 6D 01 00 00 h...i...l...m...
    00000080 70 01 00 00 71 01 00 00 74 01 00 00 75 01 00 00 p...q...t...u...
    00000090 78 01 00 00 79 01 00 00 7C 01 00 00 7D 01 00 00 x...y...|...}...
    000000A0 80 01 00 00 81 01 00 00 84 01 00 00 85 01 00 00 ................
    000000B0 88 01 00 00 89 01 00 00 8C 01 00 00 8D 01 00 00 ................
    000000C0 90 01 00 00 91 01 00 00 94 01 00 00 95 01 00 00 ................
    000000D0 98 01 00 00 99 01 00 00 9C 01 00 00 9D 01 00 00 ................
    000000E0 A0 01 00 00 A1 01 00 00 AD 01 00 00 AE 01 00 00 ................
    000000F0 B5 01 00 00 B6 01 00 00 C3 01 00 00 C4 01 00 00 ................
    00000100 CC 01 00 00 CD 01 00 00 CF 01 00 00 D0 01 00 00 ................
    00000110 D2 01 00 00 D3 01 00 00 D9 01 00 00 DA 01 00 00 ................
    00000120 00 19 07 07 02 0D 22 00 00 19 07 07 02 31 08 01 ......"......1..
    00000130 03 00 00 1E 01 0D 17 00 00 10 06 0A 06 0E 00 00 ................
    00000140 24 07 01 0B 00 00 26 14 39 01 07 0E 00 00 1C 06 $.....&.9.......
    00000150 0B 14 06 00 00 1C 06 0B 14 06 0E 00 00 04 00 00 ................
    00000160 04 00 00 2C 00 00 2C 00 00 C5 B0 00 00 C5 B0 00 ...,..,.........
    00000170 00 C5 B1 00 00 C5 B1 00 00 C5 B2 00 00 C5 B2 00 ................
    00000180 00 C5 B3 00 00 C5 B3 00 00 C5 B4 00 00 C5 B4 00 ................
    00000190 00 C5 B5 00 00 C5 B5 00 00 C5 B6 00 00 C5 B6 00 ................
    000001A0 00 51 12 08 02 0A 04 1E 01 0D 17 52 00 00 51 12 .Q.........R..Q.
    000001B0 08 06 0E 52 00 00 51 1E 03 05 15 37 04 1E 01 0D ...R..Q....7....
    000001C0 17 52 00 00 51 1E 03 05 06 0E 52 00 00 47 00 00 .R..Q.....R..G..
    000001D0 47 00 00 1B 24 10 10 42 00 00 1F 19 1E 38 04 42 G...$..B.....8.B

    So on 0x10 is the first pointer, on 0x11 another pointer !? and i think the last two are for the end of the text but where is now the Text !? It seems compressed or so.
    Anyone can help me with this ?
     


  2. SCVgeo

    Member SCVgeo GBAtemp Regular

    Joined:
    Nov 5, 2008
    Messages:
    115
    Location:
    USA
    Country:
    United States
    Based on a quick look at this:

    The first entries list offsets to the different text entries.

    Each text entry ends with the byte 02.

    As far as I can tell each character is one byte long and the text is not compressed. You just need to make a table (know which number corresponds to what character).
     
  3. NoGoodAtThis

    Newcomer NoGoodAtThis Newbie

    Joined:
    Feb 9, 2009
    Messages:
    8
    Country:
    United States
    Sorry, I looked at the forum title itself and realized this is the wrong place for it. WIll move to the appropriate discussion forum. Thanks.
     
  4. Noitora

    Member Noitora ::

    Joined:
    Aug 9, 2007
    Messages:
    3,768
    Location:
    Athens
    Country:
    Greece
    if it doesn't use standard ASCII then your only option is relative searching...Don't worry, it's easy [​IMG]
     
  5. nIxx
    OP

    Member nIxx GBAtemp Maniac

    Joined:
    Sep 30, 2007
    Messages:
    1,459
    Location:
    Germany
    Country:
    Germany
    Okay but not every text ends with 02 and what i don´t get is why for example at 0x10
    00000010 20 01 00 00 21 01 00 00 28 01 00 00 29 01 00 00

    there are 2 offsets for the start and for the end !?
    Start:
    20010000
    21010000
    End:
    28010000
    29010000
     
  6. SCVgeo

    Member SCVgeo GBAtemp Regular

    Joined:
    Nov 5, 2008
    Messages:
    115
    Location:
    USA
    Country:
    United States
    Its easier if you say what file this is in.

    I'll look for it an take a look.
     
  7. nIxx
    OP

    Member nIxx GBAtemp Maniac

    Joined:
    Sep 30, 2007
    Messages:
    1,459
    Location:
    Germany
    Country:
    Germany
    It´s the sfc_btl.msg in the msg/small directory
     
  8. SCVgeo

    Member SCVgeo GBAtemp Regular

    Joined:
    Nov 5, 2008
    Messages:
    115
    Location:
    USA
    Country:
    United States
    OK, so it seem that each line after the line (that says TEXT and gives the size of the file, I don't know what the first value in between those is for),
    is for two entry of text.

    The first pointer points to either 00, 01 or 02 and the text entry ends with that byte.

    Seems like figure this out might be more complicated that it seemed at first. Maybe different tables are used for each.

    First line: Header.
    Then 8 bytes for each entry. The first 4 point to the delimiter. Then the next 4 bytes point to the beginning of the text and that text ends when the delimiter is reached.
     
  9. Noitora

    Member Noitora ::

    Joined:
    Aug 9, 2007
    Messages:
    3,768
    Location:
    Athens
    Country:
    Greece
    Hmm, it seems to me that some compression is used.
     
  10. Mentz

    Newcomer Mentz Advanced Member

    Joined:
    Jul 7, 2008
    Messages:
    80
    Location:
    Italy, Rome
    Country:
    Italy
    I tried to make a relative search with SearchR in the whole rom...
    Anything found using both +1 and +2...
    (I used word from the start menu and first dialog)

    If we found a way we can create an open project for
    translation in other language than english and French...
     
  11. nIxx
    OP

    Member nIxx GBAtemp Maniac

    Joined:
    Sep 30, 2007
    Messages:
    1,459
    Location:
    Germany
    Country:
    Germany
    As first thanks for sharing your knowledge and help [​IMG]
    What i was thinking (possibly a stupid idea xD ) that it´s LZSS compressed because the rest of the game is and "possibly" they cutted the first 4 bytes out of the Header where is usually 10xxxxx for the LZSS compression. But then the offsets should be compressed too !?
     
  12. Mentz

    Newcomer Mentz Advanced Member

    Joined:
    Jul 7, 2008
    Messages:
    80
    Location:
    Italy, Rome
    Country:
    Italy
    Maybe header are listed in another file...
     
  13. SCVgeo

    Member SCVgeo GBAtemp Regular

    Joined:
    Nov 5, 2008
    Messages:
    115
    Location:
    USA
    Country:
    United States
    Does it make sense that they would compress each individual text entry?
     
  14. Mentz

    Newcomer Mentz Advanced Member

    Joined:
    Jul 7, 2008
    Messages:
    80
    Location:
    Italy, Rome
    Country:
    Italy
    *.msg files are too little to contain all texts in the game...
     
  15. Wastor

    Newcomer Wastor Member

    Joined:
    Apr 7, 2008
    Messages:
    13
    Country:
    Spain
    It's not compressed, with a hex editor you can see TEXT above. In each .msg file you see a pointer table first, if you follow that to the offset, you be able to think "text begins here". Well, if you follow two consecutives, you can imagine what hex is the END of that text. If you compare anothers, you see "02" is the beggining of each text...

    How can you discover the character table? It's easy, select one hex between the beginning and the end of a text and copy this hex, compile the rom and see. I used tutorial.msg, it's the save game menu, with a New game you can see those changes. There is a part of the table:

    00=e
    01=
    02=
    03=a
    04=t
    05=o
    06=r
    07=s
    08=n
    09=i
    0A=u
    0B=l
    0C=d
    0D=h
    0E=.
    0F=m
    10=c
    11=
    12=p
    13=g
    14=v
    15=f
    16=y
    17=:
    18=b

    If someone do a program for edit those files... many people would be grateful [​IMG]
     
  16. Mentz

    Newcomer Mentz Advanced Member

    Joined:
    Jul 7, 2008
    Messages:
    80
    Location:
    Italy, Rome
    Country:
    Italy
    With all the info an application is very easy to create...
     
  17. psycoblaster

    Member psycoblaster Divine

    Joined:
    Jan 26, 2008
    Messages:
    2,132
    Location:
    Seoul.. (in Korea)
    Country:
    Korea, South
    you never know.
    In sonic rush adventure (I think)
    Each character in the font file was individually compressed.
     
  18. nIxx
    OP

    Member nIxx GBAtemp Maniac

    Joined:
    Sep 30, 2007
    Messages:
    1,459
    Location:
    Germany
    Country:
    Germany
    Thank you
    With that table it shows the Text [​IMG]
     
  19. Wastor

    Newcomer Wastor Member

    Joined:
    Apr 7, 2008
    Messages:
    13
    Country:
    Spain
  20. Mentz

    Newcomer Mentz Advanced Member

    Joined:
    Jul 7, 2008
    Messages:
    80
    Location:
    Italy, Rome
    Country:
    Italy
    I'm completing the full table...
    I just make a first change in the game and adjusting pointers...

    [​IMG]

    All works very well...

    When my table will be completed I'll make an app to manage pointers and tests...

    A change to font is needed to use other characters (èéùàòì etc)
     

Share This Page