Visual Novel Localization

My colleague Jazmin Guerrero and I took on the task of localizing a Japanese visual novel for English-speaking audiences. We translated the first few minutes of gameplay as well as the menu screens as a proof of concept. We would expand on the best practices we used to create the demo version if we were to localize the entire game.

The Game

The game we chose to localize is Yes, Your Highness, a Japanese visual novel. The game is a text-based adventure that requires user input in the form of choices which impact the direction of the story. We downloaded the free trial version of the game to create our proof of concept.

“I only live for you”

The Process

Finding the Assets

As you can see in the image below, the initial assets of the game were just files needed to run the game, including a .xp3 and a .exe. Initially, we could not open or edit these files.

Original Game Assets

Research was required in order to find a method for extracting the source code from these files. The results of scouring the internet led me to KrKr Extract. Using this program, the .xp3 file was decompiled into an OutPath folder (as seen below) containing all of the games assets, including images, audio files, and the game script.

Decompiling .xp3 file to create a new OutPath folder containing game assets

The Script

The game script files were housed in multiple .ks files. These were assessed in Brackets and then sent for translation in Memsource. After the initial translation, the script was proofread and edited for style by my colleague Rebecca Guttentag.

Issue 1:  Line breaks

The original language of the game is Japanese. In Japanese, line breaks can happen naturally after any character without affecting the readability of the text. However, as the image below shows, this does not work in English. Lines broke arbitrarily in the middle of words based on the size of the game window.

To fix this, we scanned the code of the script files in Brackets to try to find what caused the irregular line breaks. In the Japanese source text, some lines were separated with [r] [l]. After recompiling (discussed in detail later) multiple times to test the function of the bracketed text, we determined that [r] caused line breaks and [l] required the user to click in order to move forward in the game. The fixed version of the English game text can be seen below.

Issue 2: Game Pop-Up Windows

When clicking certain buttons within the game, such as “return to title” or “quit game,” as well as clicking on the “X” button of the window, prompts would come up for the user in a smaller new window confirming their intended action. These prompts were also in Japanese and needed to be located in the assets. After some digging, they were found in multiple .ks files. The prompts were always written after an askYesNo line in the code, so this made searching for relevant strings easier. The pictures of a prompt window before and after translation are posted below.

Issue 3: Names

The names of the characters also needed to be translated but were not found in the script files with the rest of the dialogue. They were instead found in a separate .ks file. To change the names to English, we had to change the name’s text appearance within the game, but we also had to make sure not to alter the code that called the name. This image shows the differences between the two types of code.

Issue 4: The Choices

Yes, Your Highness requires users to make choices during gameplay that changes the direction of the story. These choices appear as buttons, and the script files housing the continuation of each decision were not the same as the files containing the button text itself. Just as we had done with the previous text, we ensured that what was translated was the in-game text and not the code that triggered each decision.

Choices in game

Issue 5: Game Images and Menu Screens

One of the biggest issues we faced with localizing this game was the menu screens and images within the game. Most buttons and menu screens were not text, but .PNG files showing Japanese text. To fix this required Desk Top Publishing (DTP) of all the images, which was much more complex than the initial assessment of the assets led us to believe.

You can read all about the details of the DTP process on my colleague Jazmin’s blog here.

Recompiling and Testing

Making changes to the source code was easy once the game was decompiled, but there was no way to tell if the changes actually worked while they were in the source files in the OutPath folder. To open the game, we needed to open the .exe file which required the .xp3 file to run (and from which all the data was pulled for the game). So to see our changes we needed to recreate a .xp3 file incorporating our changes.
After doing more research online, we found a companion tool to KrKr Extract called KrKr Releaser. This recompiles any subfolder collection into a .xp3. The program as well as our many, many recompiling attempts can be seen below.

The Finished Product

To view the finished English demo of Yes, Your Highness, please watch the short video below. It includes the menu screens and buttons as well as the first two minutes of the game fully translated. Later, the video shows the results of two different choices made by the user. Enjoy!

Yes, Your Highness English Demo