How to start a 3DS translation hack?

Discussion in '3DS - ROM Hacking, Translations and Utilities' started by Myria, Dec 30, 2016.

  1. Myria
    OP

    Myria GBAtemp Fan

    Member
    432
    410
    Jul 24, 2014
    United States
    How do I start making a translation hack for 3DS? I'd like to translate Club Nintendo Picross Plus to English.

    I'm an experienced reverse engineer, so things like disassembling the game executable and ARM assembly language aren't a problem for me. I also know how to decrypt the game executable and unpack the romfs.

    What I don't know how to do is actually apply my patches to the game executable and romfs to run them on my 3DS.

    My 3DS is A9LH'd.
     
  2. Gamerjin

    Gamerjin Advanced Member

    Newcomer
    77
    9
    May 25, 2016
    United States
  3. CakeLancelot

    CakeLancelot Member

    Newcomer
    21
    21
    Jan 1, 2016
    United States
    In order to apply the changes made to code.bin, you can use Luma's built-in functionality (look under Enable region/language emulation and external .code), rebuilding the game, or HANS.
    For testing romfs changes it is similar, you can use either layeredFS, rebuilding the game, HANS, or the built-in functionality in Luma nightlies.
    Each of these methods has it's disadvantages and advantages - if you want I can elaborate on it a bit more.
    If you really want to get into romhacking to translate games I would recommend joining this Discord channel specifically tailored for it. Lots of knowledgeable people there that can help you along the way.
     
  4. Gamerjin

    Gamerjin Advanced Member

    Newcomer
    77
    9
    May 25, 2016
    United States
    Actually, if you dont mind, i would like to hear about this...
     
  5. CakeLancelot

    CakeLancelot Member

    Newcomer
    21
    21
    Jan 1, 2016
    United States
    Sure - Here's each method at a glance.

    Code.bin Patching
    • Luma - Built in to the Luma3DS CFW, this is probably the most convenient if you have an a9lh 3ds. Kind of annoying to toggle since the modifying the Luma settings requires a reboot.
    • HANS - This only requires access to the homebrew launcher, so especially with soundhax pretty much anyone can use this method. Easy to toggle code.bin modifications on or off to test.
    • Game Rebuilding - Rebuilding the game executable from scratch. If you want to go this method you probably want to make a script in batch or bash so you don't have to type the commands out a million times. Rebuilding as a CXI is the way to go to test on an emulator like Citra, while physical hardware you probably want 3DS or CIA format.
    RomFS Patching
    • Luma - This feature is only built into the nightly/hourly version. I haven't tried it yet therefore have no idea how effective it is. Uses a romfs.bin file so it's not exactly plug-and-play like layeredFS can be.
    • LayeredFS - Allows you to patch the game to load files from the sd card. Probably the best for quick tests as you can drag and drop files - however the game's load time may be affected.
    • HANS - Uses a .bin file and loads the entire custom romFS from the get-go, similiar to Luma romFS patching. Requires some hex editing before the .bin file is usable. Best for releases, worst for testing.
    • Game Rebuilding - See above.
     
    hippy dave likes this.
  6. Gamerjin

    Gamerjin Advanced Member

    Newcomer
    77
    9
    May 25, 2016
    United States
    hmm....
    very interesting to see a few options...