PS3 Text Hacking Example

The Sony PlayStation 3 was a big deal when it came out in 2006, though I didn’t get one until late 2009. It still serves a purpose as a Netflix and Amazon device nowadays, and has had a long and interesting life. Oh, and it’s been “jailbreak-able” for more people recently with the last exploit. And that’s led to some interesting things that one can do with it. One of those things is text hacking (or even translation) for games not in your language.

I wanted to learn a little about this world so I decided to dip my toes in the water and learn about the file formats and tools needed to even get a proof of concept done, and I was fairly pleased with what even a total newbie can accomplish.

Firstly, I got and saved the PS3 game-data of the title Clannad, which I chose because it’s a visual novel (all text) that was translated to English on the PC (and, apparently, in the upcoming PS4 port). Inside the folder layout, the only place with large files was PS3_GAME/USRDIR/data with six large files. It was probably that they were:

  • bgm – Background music
  • cg – Graphical stills
  • op – Opening video
  • pcm – Audio files
  • scr – Scene data
  • sys – System data

Some research showed that the .psarc.sdat files were PlayStation archives (PSARC) that were encrypted with no key (SDAT). I got most information from the PS Dev Wiki, especially the PSARC page.

I compiled the make_npdata tool from the source on Github and decrypted the .sdat files without any problems. Each file had a different SDAT file size, of course.

Then, using the psarc.exe tool I was able to extract the contents of the PSARC archives. Most archives were just hundreds of files, though the sys archive was actually files inside folders.

At this point, I opened the first file from the scr archive, which were .psb files, inside a hex editor. Originally, I couldn’t make any sense of the files. Then I was clued in that I needed a hex editor that understand Japanese text (Shift-JIS), which I found at RomHacking.net and their tools section.

With that in hand, I found a video of Clannad’s opening on PC and on PS3 and found one of the initial text lines that start the novel – “I hate this town”. To verify what I found in the file was correct, I even Google translated the text – which lined up perfectly!

Using this knowledge, I quickly saved my edits to the original source file and then had to reverse the steps above, which was a bit harder but still super easy! First was recreating the PSARC.

Then re-encrypt the .sdat file.

And by simply placing the file back into the directory of the game and copying it over to a jailbroken PS3, the game boots up and shows the English text! Albeit, the font makes the text look weird, but that’s a reasonable thing to deal with for being able to “translate” (even if you are cribbing a different platform’s translation or Google Translate) a game with zero developer experience!

Now of course to recreate this you’d need a jailbroken PS3 and the tools above, which do require some technical skill to achieve/compile/run. What’s great is that in the future, and starting pretty much now, you can run Clannad in RPCS3, the PS3 emulator. That means the development time for testing these tweaks should be made much easier!

I want to thank those who have made the tools to allow this to be done, and for this fellow who’s work on translating games was kind of my inspiration to do this proof-of-concept!

With the knowledge that a PS4 port is coming with English as a  language option and with the extra perks the PC release came with, that’s all this is- a proof-of-concept. But if you ever find yourself with a lot of time on your hand and an esoteric Japanese-language only game for the PS3… well, you don’t have to be a pro to make something!

Leave a Reply

Your email address will not be published.