Some translation aid.

Nezha

Active Member
OP
Newcomer
Joined
Apr 21, 2022
Messages
41
Trophies
0
Location
Yes.
XP
175
Country
United States
Hello! I have recently undertaken the arduous task of trying to learn to translate. The motivation is that it's been years since I've wanted a certain game to be translated, but it seems like either it has no interest or just plain isn't very popular.

Point being, I'd like some help and guidance on how to proceed while explaining what I'm doing:
Currently, I've mounted the CIA with ninfs and made me way to \romfs\data\script.

I can only assume this is where the text, or at least some of it, is stored. However, I'm a bit stumped in how to open the .bin files and begin my search. Is it simply through a hex editor? That'll be my next step after writing this post just in case. Any and all information will be helpful as a complement to my own research.

TLDR; Advice that helps new translators that can at least access the files of a game will be appreciated. I don't intend to twiddle my thumbs and wait for someone to do it for me, but I just struggle in knowing how to ask for help from people more experienced than me.

All help is appreciated and, with some luck, I may stick to it and go onto newer platforms.

Also I occasionally see some people asking if the OP is willing to learn to code for this feat, so my answer: Yes, I am. I'm studying for computer sciences, so this would just be me doing what I'd be doing anyways, but earlier. Thank you though. ♥

EDIT: Currently, I am trying to extract text from the .bin files in the script. That's my roadblock, but I'm looking for ways around.
 
Last edited by Nezha,

master801

Well-Known Member
Member
Joined
Feb 24, 2011
Messages
1,252
Trophies
1
XP
2,733
Country
United States
Open the file in a hex editor supporting multiple text encodings (I use Hexinator which supports Shift JIS, but you're free to choose whatever you like best), then figure it out from there. I'm not kidding - The process is different for every game system and game, so this can't be specified exactly and has to be generalized.


Typically, most modern games have text encoded in UTF-8 or UTF-16 LE, although you may run into a game still using Shift JIS. Or the really obscure choice: an entirely custom encoding. These are rare in modern games and can be seen in older systems like the Game Boy and such. (See? Not an exact process.)

Sometimes it's easy and you can search for the text in the binary file if it's a giant file.

Once you figure out where your text is being stored, you can start experimenting and modifying it.


If it's Shift JIS, the text may have to be encoded in Shift JIS, but in the format of English characters. Do not confuse actual English (latin) letters with the Japanese-English characters - they are NOT the same and are treated differently. English characters use 1 byte per letter, but Japanese characters (including those "Japanese-English" characters) use 2 bytes per letter.

"Japanese-English" (monospaced):
Failed to access the memory card。
English:
Failed to access the memory card.

At this point, if the text / font engine only supports Shift JIS, you'll have to decide either to write everything in the Japanese-English letters, or somehow hack in English support.


Then you'll need to make custom tools to extract text and insert the edited text back in. This can only be done after figuring out what the data structure of the file containing text is.

For example, this is the data structure of a game's binary file from an old project of mine: https://github.com/master801/Out-of-Translation/blob/master/Formats/MagicText.bin.ksy https://github.com/master801/Out-of-Translation/blob/master/Json/MagicText.bin.json
It's written with Kaitai Struct (a tool for structuring binary formats) so it's not really a great visual example of what's going on.

More examples:
https://github.com/master801/PS2-Marl-Oukoku-Monogatari/blob/master/data.py
https://github.com/master801/PS2-Boku-wa-Chiisai/blob/main/fpk.py
https://github.com/master801/PSP-Eureka-Seven-Scripts/blob/master/main.py
 
  • Like
Reactions: r1vver

Nezha

Active Member
OP
Newcomer
Joined
Apr 21, 2022
Messages
41
Trophies
0
Location
Yes.
XP
175
Country
United States
I am incredibly grateful you took the time to write this out and even present examples for me. I'll be taking your advice in using Hexinator and peeking through the script to see what I can do. Unfortunately, given that my programming knowledge is above-average at best ('average' meaning "random person"), I'll probably have to opt to rewriting everything in the English-Japanese format. It looks like I was fortunate in that it seems like the files are set up pretty bluntly and simply so it'll just be a few months of chewing through it and hoping to understand.

Once again, I'm appreciative of the help and I'll be trying to make headway soon. ♥
 

Kwyjor

Well-Known Member
Member
Joined
May 23, 2018
Messages
4,622
Trophies
1
XP
4,737
Country
Canada
I've wanted a certain game to be translated, but it seems like either it has no interest or just plain isn't very popular.
Why don't you just specify the name the game? Maybe someone with more experience has already tried to translate the game and found it to be too difficult.
 

Nezha

Active Member
OP
Newcomer
Joined
Apr 21, 2022
Messages
41
Trophies
0
Location
Yes.
XP
175
Country
United States
Why don't you just specify the name the game? Maybe someone with more experience has already tried to translate the game and found it to be too difficult.
Oh! I kinda-- Just realized I didn't do that. Memory says Seisou Amazones (Stardust Amazon in English, I believe). Just a saucier version of games like Etrian Odyssey or other dungeon games,
 

master801

Well-Known Member
Member
Joined
Feb 24, 2011
Messages
1,252
Trophies
1
XP
2,733
Country
United States
I am incredibly grateful you took the time to write this out and even present examples for me. I'll be taking your advice in using Hexinator and peeking through the script to see what I can do. Unfortunately, given that my programming knowledge is above-average at best ('average' meaning "random person"), I'll probably have to opt to rewriting everything in the English-Japanese format. It looks like I was fortunate in that it seems like the files are set up pretty bluntly and simply so it'll just be a few months of chewing through it and hoping to understand.

Once again, I'm appreciative of the help and I'll be trying to make headway soon. ♥
The "Japanese-English" format should only be used if the game only supports Shift JIS. Most modern games should have support for UTF 8 / 16, so typing it out in regular (non-monospaced) English should work (hopefully - if the engine supports it without any modifications).
 
Last edited by master801,
  • Like
Reactions: Nezha

Nezha

Active Member
OP
Newcomer
Joined
Apr 21, 2022
Messages
41
Trophies
0
Location
Yes.
XP
175
Country
United States
The "Japanese-English" format should only be used if the game only supports Shift JIS. Most modern games should have support for UTF 8 / 16, so typing it out in regular (non-monospaced) English should work (hopefully - if the engine supports it without any modifications).
That'll be an extreme relief and it's looking like I may be able to take that route. It may be worth testing a little before I just invest completely on a prayer that regular English would work. The text is all over the place, but there's mercifully little compared to some other projects I've seen.
 

master801

Well-Known Member
Member
Joined
Feb 24, 2011
Messages
1,252
Trophies
1
XP
2,733
Country
United States
Messed around with it a little bit and the file structures seem pretty simple. The text is encoded in UTF-16 LE.

Tried inserting a simple "Hello World" edit and it appears corrupted as hell.
星霜のアマゾネス_11.04.23_15.48.49.282.png

0x1118 - adv_001_text.bin

macroshow_imaadpcm.moflex can be viewed in MobiclipDecoder, but it runs at about 1 FPS.
 

Nezha

Active Member
OP
Newcomer
Joined
Apr 21, 2022
Messages
41
Trophies
0
Location
Yes.
XP
175
Country
United States
Messed around with it a little bit and the file structures seem pretty simple. The text is encoded in UTF-16 LE.

Tried inserting a simple "Hello World" edit and it appears corrupted as hell.
View attachment 364377
0x1118 - adv_001_text.bin

macroshow_imaadpcm.moflex can be viewed in MobiclipDecoder, but it runs at about 1 FPS.
Yeah, that's been my main problem. It seems fragmented to hell and back. The actual entry doesn't seem too bad, but any modifications promise to be irritating at the very least. Once again, I do appreciate the aid. It's my first foray.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • BigOnYa @ BigOnYa:
    Is that a 7950 FX gpu u have? It says it is Vulcan capable. 7800/7900 series both are capable.
  • K3Nv2 @ K3Nv2:
    Pretty sure it's a GIGABYTE GV R795WF3 3GD Radeon HD 7950 3GB 384-bit
    +1
  • K3Nv2 @ K3Nv2:
    I'm hoping the wasps and spiders haven't mated on it
  • BigOnYa @ BigOnYa:
    Should be fine, blow it real good....(not with mouth) and can even take apart and rubbing alcohol clean.
  • K3Nv2 @ K3Nv2:
    For a nas system and emulation 6c should be plenty
  • K3Nv2 @ K3Nv2:
    My movie app updated I,robot for a second I was like did they really remake it
  • BigOnYa @ BigOnYa:
    Why not just use your new main pc, and just get a 50 foot HDMI cable to your TV.
  • K3Nv2 @ K3Nv2:
    Not all of us like long cords up our arse
    +1
  • K3Nv2 @ K3Nv2:
    And I like getting use out of hardware I own or it just becomes dust
    +1
  • BigOnYa @ BigOnYa:
    Not like you have a woman in house to bitch bout the cords. That's true, may as well use what you have.
  • K3Nv2 @ K3Nv2:
    Be a man and use your cord on her
  • K3Nv2 @ K3Nv2:
    Might think about getting a storage unit brand new one opened 5×5 for like $15 a month
  • BigOnYa @ BigOnYa:
    Where you gonna shower tho?
  • K3Nv2 @ K3Nv2:
    Your wife said I could shower with her
    +1
  • K3Nv2 @ K3Nv2:
    Ribs actually turned out decent bit confused everyone said 200F is internal temp but fell off bone anyway at 165
    +1
  • BigOnYa @ BigOnYa:
    I usually just cook ribs till they start to fall off, I don't measure temp.
  • K3Nv2 @ K3Nv2:
    Diarrhea already Have it
  • FluffyLunamoth @ FluffyLunamoth:
    Haven't been back in a long while, whatever happened to the for sale forum?
  • BigOnYa @ BigOnYa:
    They sold it off. Just kidding. https://gbatemp.net/forums/trading-area.160/
  • FluffyLunamoth @ FluffyLunamoth:
    Oh thanks. Now to find it for myself, weird that I missed it...
  • FluffyLunamoth @ FluffyLunamoth:
    Oh I'm dumb lmao
  • SylverReZ @ SylverReZ:
    It's the trading forum, you need about 100 posts for that.
  • K3Nv2 @ K3Nv2:
    That's your man
    +2
    K3Nv2 @ K3Nv2: That's your man +2