How to translate Mario Kart DS?

Discussion in 'NDS - ROM Hacking and Translations' started by Knyaz Vladimir, Apr 28, 2009.

  1. Knyaz Vladimir

    Knyaz Vladimir 3DS Hacker

    Apr 18, 2009
    I just want to translate Mario Kart DS into Russian. How do I start? Just at point 0.
  2. Kuschel-Drow

    Kuschel-Drow GBAtemp Fan

    Mar 25, 2009
    Gambia, The
    Uhm... If you do not know how to extract the rom's files and if you don't even know WHICH files to edid and if you don't have a clue of hexadecimal stuff... then stop it already... xD

    (What is there in Mario Kart that would have to be translated anyway? It's just as funny as trying to translate Super Mario brothers... xD)
  3. FAST6191

    FAST6191 Techromancer

    pip Reporter
    Nov 21, 2005
    To Russian huh. It has been a while since I messed with Mario Kart but I seem to recall for translation it was not so near to the easy end of the spectrum; these smaller/simpler games often use a lot of graphical text (as in pictures) as opposed to generated text (as in text file) and have a nasty tendency to have the text in the binary and use compression. Also Mario Kart does not like being rebuilt with a standard ndstool (although there are many other tools and ways around it)

    First step in any translation is to pull the game apart, every single DS game we are aware of uses the nitrorom file system, many tools exist but first off it is generally best to pull the whole thing apart with ndstool (frontends in the form of DSLazy and DSBuff) or something.
    Other tools include NDSTS ( ), crystaltile2 (check around this forum section) and nitro explorer ( ).
    A post you may find helpful:
    See also the rom ripping and enhancements post in my signature (also in the rom hacking docs in this forum).

    Text files next, first step here is to figure out the encoding the game uses (be warned it can change throughout the game and between the files it uses). Japanese games will often use ShiftJIS or Euc encoding but not always and they sometimes use tweaks upon it. Roman languages will use anything and everything, some use unicode, some use ASCII, some use tweaks upon the two of them, some use custom fonts and it goes on an on and on.
    I detail the basics in my hacking guide (as yet unfinished but you can grab a WIP version )
    Once you have the encoding though you need to put it in a table file and then use hex editor that supports such things or another tool like crystaltile2. This will allow you to view the text and dump it into a more manageable format (some will code a custom tool here for the job), know that many games will have formatting cues in the text, these can be anything from raw hex to xml style entries.

    Russian is perhaps slightly shorter than Roman languages most of the time but Japanese still beats it. Either way though you will have to deal with pointers (think of them as contents pages for roms), do a page search for pointers:
    Formatting may also exist in the pointers.

    Next step will be the font, very few games feature the Cyrillic alphabet or even the languages that donated the symbols that make it up (even those that use Unicode have been known to leave it out).
    Alas the font can be in many forms so there may be no easy way out, a common format is NFTR, several editors exist but is good as is crystaltile2 while other games use simple tiles and other games use various other methods and tweaks ( ).
    If coming from Japanese you also have the problem of Cyrillic characters being different widths (the symbols that make up Japanese are largely the same size while Cyrillic is not). This being said most characters are similar and more importantly there are no thin characters (like i,j and l ) so it may be worth an old style double width font (you split the actual character between two different characters in the encoding/font file and make sure one always follows the other).
    As for font encoding size if I recall correctly there are 33 characters in modern Russian so with cases and numbers allowed for you should not have to make an 8bit font (256 combinations) used by many European and US games into a 16bit font which is always nice.

    I also mentioned graphical text, many games will have the text as part of the graphics (often for fancy text but small games with a small amount of text may use it almost exclusively). This means you have to edit the graphics to change the text.

    Once this is sorted it is a matter of translating the text, putting it back into the format the game wants it (pointers, formatting, fixing the headers of the files and so on) and rebuilding the rom.