News: 11 March 2016 - Forum Rules, Mobile Version
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia

Author Topic: Need a step by step tutorial for translation hacking  (Read 458 times)

MaverickZero

  • Jr. Member
  • **
  • Posts: 23
    • View Profile
Need a step by step tutorial for translation hacking
« on: November 10, 2017, 11:09:43 am »
I have been searching for tutorials in translation hacking but, every tutorial starts out somewhat in the middle, and i know NOTHING about that kind of hacking. So it would be really nice if someone could explain me everything, from which tools i need to even how to open a game script. Right now I'm talking about gba translation, and i want to translate from Japanese to English. Thanks in advance

weissvulf

  • Full Member
  • ***
  • Posts: 185
    • View Profile
Re: Need a step by step tutorial for translation hacking
« Reply #1 on: November 11, 2017, 04:54:16 am »
It would be hard to have a step by step guide because each game is different. You might have more luck if you picked a specific game that's easy translate (no compression, already supports ASCII text),  and then searched for guides on each specific procedure required to translate that game.

Some common procedures (roughly in order of easiest to hardest):
Using a hex editor
Using a text dumper/re-inserter
Finding and changing text pointers
Editing text stored in graphics
Installing a variable width font
Deciphering proprietary file compression
Learning Japanese

Another good way to learn is to pick a simple game that someone else translated and try to retrace the steps they used. Sorry I couldn't be more help  :)

MaverickZero

  • Jr. Member
  • **
  • Posts: 23
    • View Profile
Re: Need a step by step tutorial for translation hacking
« Reply #2 on: November 11, 2017, 07:34:30 am »
Well that's it it is compressed, i do have already the script in English i only need to learn to insert it, the only problem is like i said, i don't know what i need or how to open the script to edit it.

FAST6191

  • Hero Member
  • *****
  • Posts: 2170
    • View Profile
Re: Need a step by step tutorial for translation hacking
« Reply #3 on: November 11, 2017, 08:03:02 am »
"i do have already the script in English"
If you downloaded the Japanese one from gamefaqs or something and translated that then it is not usually that easy to put them back in. Most doing translations will dump the script in such a way, if they have not straight up built an editor anyway, that you can get it back into the game. Or if you prefer consider writing down everything someone says in a film, great now you can translate it but if you forgot to note the times at which such things were said then you are not going to be able to easily make subtitles from your newly translated file. Games do similar things but rather than timecodes or frame numbers you tend to have pointers.

Games were rarely built to be easily edited, and most of the systems we deal with around here (not that it changes much for the newer ones) are quite weak when all is said and done so a lot of things were made which took it further from easily edited to make them run faster.

I did try to cover some GBA specifics here
http://www.romhacking.net/forum/index.php?topic=14708

MaverickZero

  • Jr. Member
  • **
  • Posts: 23
    • View Profile
Re: Need a step by step tutorial for translation hacking
« Reply #4 on: November 11, 2017, 11:28:10 am »
Well the thing actually is there is a group working on the translation for summon night swordcraft story 3, and they are kind of stuck because their only hacker that knows how to insert the already translated script is very busy. So i wanted to make myself useful and learn the text insertion to help, getting finished with this project.
So i could say right now the only problem is the text insertion right now, since the script is already translated and the japan graphics were already remade in English.

mz

  • Sr. Member
  • ****
  • Posts: 290
    • View Profile
Re: Need a step by step tutorial for translation hacking
« Reply #5 on: November 11, 2017, 01:08:29 pm »
summon night swordcraft story 3, and they are kind of stuck because their only hacker that knows how to insert the already translated script is very busy.
It sounds like that isn't a project for a newcomer who is asking for a step-by-step tutorial.

First of all, you need to learn programming. Any language, C or Python should be the easiest ones for hacking.

Then learn the assembly language for GBA and how to reverse engineer.

If you're lucky, that should only take you a few years and then you'll be ready to replace that hacker.
There has to be a better life.

MaverickZero

  • Jr. Member
  • **
  • Posts: 23
    • View Profile
Re: Need a step by step tutorial for translation hacking
« Reply #6 on: November 11, 2017, 02:57:16 pm »
C or Python huh?
I'm not giving up yet, thanks for the reply.

FAST6191

  • Hero Member
  • *****
  • Posts: 2170
    • View Profile
Re: Need a step by step tutorial for translation hacking
« Reply #7 on: November 11, 2017, 05:18:58 pm »
They are still looking for one? I recall speaking to someone about it a few years ago but thought they would get one in short order so didn't volunteer. Another one for the my inability to predict things column...

weissvulf

  • Full Member
  • ***
  • Posts: 185
    • View Profile
Re: Need a step by step tutorial for translation hacking
« Reply #8 on: November 12, 2017, 04:27:19 pm »
I agree with mz that this project is not a great starting place for a beginner, but I have to disagree that learning a programming language is a good place to start translating.

I still remember the path I took from 'total noob' to 'completed project' and knowing programming did nothing for me other that letting me craft an occasional tool to speed things up. The concepts used in high level programming languages differ drastically from the assembly language you'll be handling when reverse engineering a game. Most of the procedures I've used in translating just use basic math and common sense. 

If you're dealing with compression, the first thing to do is check if it's a standard compression format. Someone may already have made a tool for it. Even if it is a non-standard compression format, it's likely just slight variant of a know type. Worst case scenario, you will need be quite familiar with GBA assembly to trace the decompression routine and design a re-compressor.

I would recommend that you start by finding a good GBA emulator/debugger and reading some GBA assembly/hacking tutorials. Try to make some simple game hacks like 'add gold' in order to familiarize yourself with the debugger and assembly language. Work your way up to tackling the compression routine gradually.

Anyways, good luck!  ;)

mz

  • Sr. Member
  • ****
  • Posts: 290
    • View Profile
Re: Need a step by step tutorial for translation hacking
« Reply #9 on: November 12, 2017, 05:59:36 pm »
I've worked on three GBA games and they all had their text inside some sort of custom bytecode.

If this game is anything like that (I'm pretty sure it is, since I've seen its hackers come and go for almost a decade now) you will definitely need to know a programming language to write a decompiler and compiler.

I'm not exaggerating when I say you will need to write AT LEAST thousands of lines of code for something like that. Even the tools I wrote for a regular Game Boy game like Star Ocean had several thousands of lines, plus the custom ASM and all the other crap.

So, I wasn't talking about a simple game with a 32-bit pointer table neatly ordered so that even my grandma can hack it. You can work on those games following any of the shitty tutorials around ("create a table file, calculate standard pointers, use a generic text dumper, edit graphics with Tile Molester, etc"). You will need real knowledge for a more complex game with no pointers, custom scripting engines, custom compressions, etc.
« Last Edit: November 12, 2017, 06:08:40 pm by mz »
There has to be a better life.

weissvulf

  • Full Member
  • ***
  • Posts: 185
    • View Profile
Re: Need a step by step tutorial for translation hacking
« Reply #10 on: November 13, 2017, 01:36:19 pm »
I'm known for having bone-headed ideas that no one agrees with so you may be right m.z. ;D , but my thinking is thus:

Even if someone is a great programmer, they don't know WHAT to program unless they can understand assembly enough to reverse engineer the game. Translating a game might require programming skills; it will almost certainly require assembly reading/writing skills.

Writing a re-compressor would likely take programming knowledge, but of all the games on the market, a relatively small percentage use compression. And, there are workarounds. My current project has some compressed images. The game has the decompression routine in nice tidy assembly package so I don't have to program my own. If I decide to translate the text on those images (background screens), I won't bother coding a re-compression tool. I'll just hack a few values in the game to bypass the compression altogether. As is, the game loads the compressed graphic, runs it through the decompression routine which creates an uncompressed copy in RAM, then forwards that location to a rendering routine. Why bother coding a compression tool when I can just load the decompressed image and send that directly to the rendering routine? If space is such an issue that you can't fit uncompressed data, why not replace the game's compression routine with a format that already has existing tools? Programming skill isn't needed for any of those procedures, but assembly is.

I don't mean to devalue programming skills at all. It's just that in translating, I've found them to be less useful than knowledge of assembly. Anyways, just my opinion.  :cookie: 

FAST6191

  • Hero Member
  • *****
  • Posts: 2170
    • View Profile
Re: Need a step by step tutorial for translation hacking
« Reply #11 on: November 13, 2017, 04:44:53 pm »
"but of all the games on the market, a relatively small percentage use compression"
For the GBA and DS that changes -- both systems had multiple decompression routines in their BIOS, indeed for DS 3d formats it is a rarity if they are not compressed.
Now if you want to say custom compression which can't be simply recreated with gbacrusher or something then yeah.

Equally while flicking a compressed or not value is OK there is also the third way of for a flag based compression (see various LZ implementations) you insert the "not compressed" byte every however many bytes is necessary. That way the game loads what it thinks is compressed and just parses it all out. Far easier to do that than to program your own compression routine.