How To Translate ROMs

Discussion in 'NDS - ROM Hacking and Translations' started by BelmontSlayer, Jan 1, 2008.

Jan 1, 2008

How To Translate ROMs by BelmontSlayer at 3:51 AM (6,553 Views / 0 Likes) 24 replies

  1. BelmontSlayer
    OP

    Member BelmontSlayer Homebrew Princess

    Joined:
    May 11, 2006
    Messages:
    125
    Location:
    USA
    Country:
    United States
    It seems that my translation project has spawned dozens of newbs who wish to learn how to translate ROMs. This isn't something that you can learn in a day...or even a week.

    To learn how to translate, you must first learn how to hack. There are two great sites on that subject and both of them are run by an expert in the field. First off there's www.romhacks.net the site for beginners. They list several step-by-step tutorials to teach you basic methods of replacing text, images and more. After you've studied everything you can on that site it's time to learn some advanced techniques. That's were www.romhacking.net comes into play. They offer advanced tutorial and utilities.

    If you'd rather have something you could print off and read from, then FAST6191 has you covered. He's released a tutorial called "ROM Hacking 101" to all of those who wish to learn the basics. FAST has plenty of experience in ROM hacking and his tutorial is great for newbs and vets alike. You can grab it from here. You'll need Adobe Reader to open the file, so grab that if you don't already have it.

    Those sites and tutorials will teach you almost everything neccessary to perform a simple translation. Learn, study, translate and then post your work here so everybody can enjoy it.

    tl;dr - www.romhacks.net / www.romhacking.net / FAST6191's - ROM Hacking 101 Tutorial
     


  2. deufeufeu

    Member deufeufeu GBAtemp Advanced Fan

    Joined:
    Nov 21, 2005
    Messages:
    880
    Country:
    Cote d'Ivoire
    One of the thing I can't put more emphasis on : to translate efficiently you have to know how to code. There's two main reasons for this : if you know how to code, and have already tried to define your own file format for storing data, then you'll find it really easy to guess the structures used on some files. The other thing is that knowing how is packed the data is of no use if you don't have a mean to give an efficient method of replacing text or graphics for your translators.

    So it might sound a bit harsh, but don't try to do a real rom translation if you don't have real programming skills.

    Also I have to add that releasing a translation patch is smoothing a lot the process. It reduces the work done to replacing some part of the rom and moving some others, and so it can appeal to some as a quite easy process... It's really not the case, to make a translation you have to go by a very long phasis of trial and error, then you've to write the tools, then you have the debugging part that is really exhausting. Take all of this into consideration before attempting a translation. As a final note, people who will use your patch are often quite noobish and won't give you a lot of feedback. So be sure you want to do this for yourself (either that you want the translation or your want to learn some skills) and not to get some fame. If you want the latter go make a good homebrew.
     
  3. kenshin9

    Newcomer kenshin9 Member

    Joined:
    Mar 22, 2007
    Messages:
    13
    Country:
    United States
    I've been thinking about learning how to program. I was originally a computer science major at my university, but the requirements were becoming too much for me at the time. Programming and the idea of rom hacking has always been interesting to me. Now it has become something that I would like to put my time into and learn.

    The question I have is: Where should I begin? Or, which programming language should I read up on and learn first? I've read a lot of different opinions from different people. Some people say to start with QBasic, but then others say not to because it's obsolete. Others say Pascal, and others say to jump right into C++. I figured I'd ask people that are actually into rom hacking and know what they're doing.

    Any replies would be appreciated. Thanks.
     
  4. Grimalkin

    Member Grimalkin Waaaaaaaah!

    Joined:
    Jun 9, 2006
    Messages:
    1,173
    Country:
    Canada
    Well, it depends. A lot of polytechnics nowadays put you into C first.

    I started with C then went Java/C++

    From C++ I went php.

    From Java, I learned SQL.

    (After you learn one or two languages, it's really easy to get into another language.)

    Then I went to learn lisp (Lost in Stupid Parenthesis) and Assembler (Currently learning, I've been out of Uni for a long time now and it feels weird to go back).

    EDIT: Btw, if you learn Assembler, you really start to understand programming, and how it works in the low-level part down to the 1's and 0's of byte code that your machine can understand. Personally, I would recommend learning it if you want to become a good programmer.

    Remember, learning programming can be difficult and you may spend many days trying to wrap your head around some of the ideas. Don't take minor details for granted, they made end up being important in the long run.
     
  5. deufeufeu

    Member deufeufeu GBAtemp Advanced Fan

    Joined:
    Nov 21, 2005
    Messages:
    880
    Country:
    Cote d'Ivoire
    python is the language of choice for rom hacking. It can handle binary string very well and also sjis or unicode encoded ones.
    ARM assembler can be learned just by looking at some reversed code.
     
  6. kenshin9

    Newcomer kenshin9 Member

    Joined:
    Mar 22, 2007
    Messages:
    13
    Country:
    United States
    I see. Thanks for the input guys. I forgot to mention Python. I was thinking about starting out with that before. This should be interesting.
     
  7. nIxx

    Member nIxx GBAtemp Maniac

    Joined:
    Sep 30, 2007
    Messages:
    1,459
    Location:
    Germany
    Country:
    Germany
    Hi
    does anyone have the ROM_Hacking_101.pdf.
    The linked site is down and i can´t find it anywhere else.

    nIxx
     
  8. FAST6191

    Reporter FAST6191 Techromancer

    pip
    Joined:
    Nov 21, 2005
    Messages:
    21,737
    Country:
    United Kingdom
  9. litium

    Member litium GBAtemp Regular

    Joined:
    Mar 19, 2008
    Messages:
    196
    Location:
    Argentina
    Country:
    Argentina
    Also, for starting, is really NECESARY that your computer can read Jap characthers. (Mine, cant, even tough i've have JAP installed U_U). Also, NDS hacking is quite different from NES hacking. You need to unpack the rom, browse trough files... and all that. I'm still a noob. The best way to start is hacking ENG roms. Change some text, images, etc.

    I'm still unable to replace images with crystaltile2 so, i'm that useless. Altough i managed to view NGCR files with TileED 2002 but i was too lazy to add the pallete manualy.
     
  10. Sp33der

    Member Sp33der GBAtemp Fan

    Joined:
    May 31, 2008
    Messages:
    435
    Country:
    Netherlands
    well the folder namesmake it a lil bit easier, if you see a /skills folder you immidiatly know where the skills are [​IMG]

    I know Python no need for others when it comes to hacking tbh, also reccomend it for beginners.I'm still bad with graphics hacking [​IMG] , i think there should be more docs about DS.
     
  11. nIxx

    Member nIxx GBAtemp Maniac

    Joined:
    Sep 30, 2007
    Messages:
    1,459
    Location:
    Germany
    Country:
    Germany

    Hi
    thank you for the guide.
    At the Moment i playing a bit around woth TileEd and CrystalTile2.
    Know i have another question i saw in the CrystalTile2 thread that anyone wanted to translate it. Is there an release ?
    And how can i change the palette i tried to export the Palette in TileEd and then import it in CrystalTile2 but nothing changed !?
    nIxx
     
  12. psycoblaster

    Member psycoblaster Divine

    Joined:
    Jan 26, 2008
    Messages:
    2,132
    Location:
    Seoul.. (in Korea)
    Country:
    Korea, South
    FAST did a crystaltile translation (I think)
    I also made an english language file. Ask Noitora, because I gave it to him and I deleted mine :|
    CrystalTile2 can import palette files in only certain files, such as pal/act , and other DS supported palettes such as NLCR.
    A BMP image palette is also supported.
    If I remember correctly, photoshop also uses act palettes.
    http://mfiles.naver.net/6cbd598094cda1173f...mp2pal_v1.0.zip
    This is a utility that changes a bitmap palette into an act palette.
    http://cafefiles.naver.net/data26/2007/8/1...F%EB_mbox32.png was changed into a palette.
    Result:
    http://cafefiles.naver.net/data26/2007/8/1...F%EB_mbox32.png

    http://cafefiles.naver.net/data26/2007/8/1...7%C3_mbox32.png
    it's done by editing this file.
    You just edit this file using the colors from the pic (you can use the 'fill' function in mspaint to help)
    But really, all this isn't really required though.

    What i'm basically saying is that crystaltile only supports certain types of palettes.
     
  13. Noitora

    Member Noitora ::

    Joined:
    Aug 9, 2007
    Messages:
    3,768
    Location:
    Athens
    Country:
    Greece
    Hmm, I didn't know you could import act palettes from crystaltile, this saves me a from lot of troubles :/
    Where the heck do you import them from? D:
     
  14. psycoblaster

    Member psycoblaster Divine

    Joined:
    Jan 26, 2008
    Messages:
    2,132
    Location:
    Seoul.. (in Korea)
    Country:
    Korea, South
    on your left section, click on the palette tab and click on import.
     
  15. Noitora

    Member Noitora ::

    Joined:
    Aug 9, 2007
    Messages:
    3,768
    Location:
    Athens
    Country:
    Greece
    Aha, thankies, really helpful [​IMG]
     
  16. psycoblaster

    Member psycoblaster Divine

    Joined:
    Jan 26, 2008
    Messages:
    2,132
    Location:
    Seoul.. (in Korea)
    Country:
    Korea, South
    no problem [​IMG]
     
  17. litium

    Member litium GBAtemp Regular

    Joined:
    Mar 19, 2008
    Messages:
    196
    Location:
    Argentina
    Country:
    Argentina
    Psycoblaster, sorry to be so anoyying. It would be great if you make a Crystaltile2 guide. you seem to know alto of this program and it looks raelly helpful. But i cant understand it to much.

    Also, anyone knows how to display JAP chars. on XP?
     
  18. psycoblaster

    Member psycoblaster Divine

    Joined:
    Jan 26, 2008
    Messages:
    2,132
    Location:
    Seoul.. (in Korea)
    Country:
    Korea, South
    It should be there by default.
    I'm not THAT good on crystaltile2 - I think FAST knows more about it than me. But CrystalTile is also the main tool used for Korean romhacking so I still know enough about it for translation purposes.
    Also, I recommend a program called CrystalScript, which is one of my favorite text dumping utilities.
    And also, the reason why you can't see the japanese characters on your viewer/hex editor is probably because of the encoding.
    In crystaltile2, there are several main inbuilt code tables, including the widely used unicode and s-jis.
    When you load a table file, make sure you choose the encoding properly.
     
  19. litium

    Member litium GBAtemp Regular

    Joined:
    Mar 19, 2008
    Messages:
    196
    Location:
    Argentina
    Country:
    Argentina
    Ohhh i see. I've got those tables so i¡ll use them. Thanks alot!

    Hey! Guess what! I got my first gfx hack working ^^. Thanks to Noitora and psycoblaster i'm starting to understand CT2 (Also by looking around in the program helped me very much). Here's a screenie:

    [​IMG]

    When i'm able to see JAP chars, i'll se what can be translated of the ROM.

    PS: Anyone haves a S-JIS table?

    Thanks everybody! [​IMG]
     
  20. psycoblaster

    Member psycoblaster Divine

    Joined:
    Jan 26, 2008
    Messages:
    2,132
    Location:
    Seoul.. (in Korea)
    Country:
    Korea, South
    there is an inbuilt sjis table in crystaltile2. But you can also go to google and type in sjis.tbl
     

Share This Page