Assault Suit Leynos 2 English Translation - Beta testing now

[Update: Everything's done! Beta testing now. Please contact me if interested]

Hey all. Long-time lurker here.

I've been a software engineer for 15+ years and dabbled in ROM hacking during that time. I wanted to get back into it, so I figured I'd start with an "easy game" (or so I thought) I'd like to see in English. So, I started working on a translation for Assault Suit Leynos 2 a few months ago. I initially hit some roadblocks with the text compression for the dialogue, but recently was able to finally crack it.

1792768350286.png


1792768460736.png


I have all the dialogue text translated with a rough draft. I still need to proof-read each line, and then locate the rest of the text in the game (various title screens, pause screen, etc.). So still quite a bit of work to go. I plan on releasing my tools at some point so anyone can change the wording of the translation if they want to.

I don't know Japanese so I'm relying on AI and Google for the translation. If any Japanese speaker is interested in helping to translate, please let me know. I will also be looking for beta testers once the translation is closer to completion. Drop me a message if interested.
 
Last edited:
There is an official translation of this game now on Steam and modern consoles. It's part of the Saturn Tribute line from City Connection. If you can find a way to extract the English from that, you wouldn't have to rely on AI translation.
Good point. I will try to use that translation as a base for mine. I didn't really want to go down the rabbit hole of trying to pull the script from the Switch/PC version, but I did a quick check on YouTube and there are longplays I could use if nothing else.

From what I recall when researching that Switch version in the past, they use some kind of custom Saturn emulator where they layer the translated text over the emulated Saturn game. I might run into space constraints where I can't bring over the text 1-for-1 but I will see what I can do.

The hard part was cracking the text compression. The translation will be the easier (although still time consuming) part!
 
Good point. I will try to use that translation as a base for mine. I didn't really want to go down the rabbit hole of trying to pull the script from the Switch/PC version, but I did a quick check on YouTube and there are longplays I could use if nothing else.

From what I recall when researching that Switch version in the past, they use some kind of custom Saturn emulator where they layer the translated text over the emulated Saturn game. I might run into space constraints where I can't bring over the text 1-for-1 but I will see what I can do.

The hard part was cracking the text compression. The translation will be the easier (although still time consuming) part!

I don't think they're layering the English text over the original game. I think they hacked the original game. The problem is that it's encrypted so you can't just find the bin/cue files sitting around in the game folder.
 
Here's that first dialogue screen with the text inserted from the Switch version:

1792795117229.png


I had to move "ahead" to the line below due to space constraints, but so far, it seems the official translation will work with minor modifications.

Anyway, I will save the text editing for near the end once I have all the text located. 🙂
 

Attachments

  • 1792795229866.png
    1792795229866.png
    35.2 KB · Views: 0
Wanted to give some more info on the hacking process for the dialogue text in case anyone finds it useful.

I first started by scanning all the files for Shift-JIS text. That returned some false positives, but not the dialogue text I was looking for, so I figured the text is stored differently (possibly compressed).

So, I went through all the game files in CrystalTile. That also was a dead end.

OK, time to load up the game in an emulator. I dumped the high/low work RAM and VDP1/VDP2 RAM. Now I finally had my first clue! With some finagling, I was able to find the text in VDP1.

1792869994828.png


This is the same text for George in the first screenshot I posted. Cool. Now I assumed the text was likely stored compressed somewhere else and then decompressed when drawn by VDP1 on screen. This also meant I'm dealing with pixel data for the dialogue.

After more digging and finding the decompression routine, turns out the dialog is stored compressed as 16 x 168 px bitmaps with each pixel as 1 bit. When the game draws a line, it copies the bitmap into VDP1 as a 16 x 168 texture with 4bpp. They used a custom Huffman encoder for the compression too. So, to modify the text you have to decompress the dialogue, then redraw it as English and re-compress it using their custom encoder.

Another challenge is the fact that the replacement English text may not compress as well as the Japanese does. There are various files on the disc that contain the compressed text (DIR00_03, DIR00_09, etc.) and after replacing the text and re-compressing, the file size can't exceed the original file size. Hopefully this doesn't become too much of a problem when inserting the official localization.
 
Damn, I posted this thread in hopes that nobody was working on the same project as me, haha.

I was working on this last night and hoped to have it done within the week. I will still continue it.

I actually extracted the files in the Switch version and found the assets, but they seemed to be encrypted. Rather than going down that rabbit hole of trying to locate the function that decrypts them, I decided it would be easier to just translate the text. How did you move the assets over from the PC version? Were they encrypted?

I did notice 2 issues with the Switch script so far (not sure if they were fixed in later updates): One scene where they have the word "we" twice, and one scene where the letter "a" is slightly cut off. I noticed they took some liberties with this script compared to the Japanese, but I think overall it has a bit more personality than a literal translation would.
 
Damn, I posted this thread in hopes that nobody was working on the same project as me, haha.

I was working on this last night and hoped to have it done within the week. I will still continue it.

I actually extracted the files in the Switch version and found the assets, but they seemed to be encrypted. Rather than going down that rabbit hole of trying to locate the function that decrypts them, I decided it would be easier to just translate the text. How did you move the assets over from the PC version? Were they encrypted?

I did notice 2 issues with the Switch script so far (not sure if they were fixed in later updates): One scene where they have the word "we" twice, and one scene where the letter "a" is slightly cut off. I noticed they took some liberties with this script compared to the Japanese, but I think overall it has a bit more personality than a literal translation would.
I can hold off on releasing anything. In any case, if I release the patch you'll get a credit for inspiration in the release notes of course.

And yes, some of the assets were encrypted and some graphics were embedded in the pc game's main executable and had to be converted for saturn. A little AI black magic expedited the process.

I think I found the deformed "a" you were talking about, in the first level?
Found a couple of other script issues as well, like a duplicated line of dialogue and an unused line that belonged there
 
I can hold off on releasing anything. In any case, if I release the patch you'll get a credit for inspiration in the release notes of course.

And yes, some of the assets were encrypted and some graphics were embedded in the pc game's main executable and had to be converted for saturn. A little AI black magic expedited the process.

I think I found the deformed "a" you were talking about, in the first level?
Found a couple of other script issues as well, like a duplicated line of dialogue and an unused line that belonged there
Yeah, I think it was in the first mission. There were a few other issues with the official script, but I got 'em sorted out.

I was able to extract the script from the Switch version using AI and Ghidra. Thanks for the tip! I will be sure to give you credit for that.

After looking at the Switch files, turns out City Connection use a custom SSF emulator for this game and they do layer the radio dialogue in RAM on top of the japanese text.

This is ready for beta testing! I have everything inserted and done, without needing to relocate any data on the disc. Anyone interested, please let me know.

I am hoping someone can test on hardware (Danthrax? 🙂) though. I had to move the decompression table to Low Work RAM for 1 mission due to space constraints, but I don't think it will cause any problems. It's only loaded 1 time. Also had to re-tune the huffman encoder for english (instead of japanese) characters to get a little better compression.
 
Back
Top