Stories from Translating 「SNOW ~Plus Edition~」

As detailed on my game development blog, I had a bit of downtime throughout 2021 due to some wrist issues that prevented me from working very much. With only a mostly-useless left hand at my disposal, I needed to find something to channel my creativity into. Coincidentally, an old translation project I had agreed to be part of—one for translating the StudioMebius Visual Novel titled SNOW—had finally made the jump from “looking for interested workers” to “okay let’s do it!”
In my injured state, I began working on my relatively simple task: translate the 324 images with Japanese text in them. That’s a lot of images!

So here’s the journey, from menus to monologues, and all the in-between. Even an entirely different game along the way!
Oh, and to any non-ENG translators interested in translating SNOW who might’ve found this, if you want any of my .PSD files, let me know. I’ve got templates for everything. Also a tutorial for working with the engine is up in the top navigation bar ^^^

Step 1: Easy Mode

This slideshow requires JavaScript.

The first thing I did was look through the game’s files, extract every single image featuring Japanese text into an editable format such as .png, and then sort them by complexity. Not complexity in isolation, but complexity in the context of the entire translation: e.g. images that can be edited without referencing the greater project.

For the above two images, one requires no outside input; just draw over the Japanese text to remove it all, then write over the image in English. The map on the other hand, while done in the same manner, requires outside input because it features location names. We established early what rules we’d utilize for names and places, especially when it comes to “Ryujin” terminology, but these rules can get lost over time or simply not reach members of the team. Fixing these inconsistencies in raw text is easy to automate, but changing an already-made image requires more manual work, so it was important to get it right.


Sidenote: the original blue colour here was ugly as sin, so I added some saturation.

Following this are the date images. Weekdays are grey, holidays red, and Saturdays are blue. It’s a very simple edit: redraw the grey background, make some colour filters to match the original red and blue variations, find a font styling that fits, then type in all the dates and export them one by one.

Where this gets complicated is… not in the images. As it turns out, SNOW isn’t exactly a polished title. It spent a lot of years in development, far more than its contemporaries, and it shows throughout. There are a lot of errors, even just in the images, and unfortunately for us… They got the dates wrong. Some writer at some point typo’d some date numbers and no one noticed.

HBR fans where you at?

Figuring out whether the dates featured within the game’s script were correct, or if the conflicting weekdays featured in these calendar images were the correct ones… was a confusing process. I think we got it right in the end.

Step 2: Complexities

With the obviously easy stuff done, next up were the menus. UI elements can be rather annoying because the assets used to build them are typically not available to the public. More often than not, translating a menu involves recreating the entire thing. For example…

This is a menu that leads you to character-specific galleries of all the related artwork. Moving your mouse over a character causes their face to gain colour and their name to light up. Since the Japanese text not only overlaps the faces, but also the snowflake pattern plastered atop everything, any area with text on it had to be recreated. My final edit isn’t a perfect replica by any means—there are definite imperfections that don’t match the original Japanese version—but it looks good as an individual menu regardless.
I also noticed yet another error left in the game while working on this: some of the hover-over effects in the original game were… completely wrong. Like… they accidentally saved one button graphic over another, leading to incorrect visual changes in response to the mouse. I don’t think these errors would be too noticeable to a player if they don’t know what to expect, but the actual game files are definitely wrong.

Anyway, if the player clicks on one of those faces, it’ll bring them to this screen…

Here we have, on the left, the image of the relevant character, a namebox to denote what section of the gallery you’re looking through, and a back button. On the right, a big rectangle full of scenes from the game, some arrows to move through the gallery, a box giving you the current page number (e.g. 3/4) and then two buttons to toggle between image viewing (CG Gallery) and scene reading (Scene Viewer.)
While the right side of the menu is mostly workable without needing any edits, the left side is… Well, just look. We have text in a semi-transparent namebox placed over a character sprite. To replace the text you’d either have to get rid of the box’s transparency entirely or restructure everything behind the transparent box instead. To maintain the spirit of the original, I decided to rebuild everything behind the button.
For the most part, this involved erasing the JP text, the box it sat in, and the bottom of the character image, then extracting the character’s sprite from the game, porting it into Photoshop, and placing/resizing it to fit with the already-present character image. Then make a transparent box identical to the JP version, and fill it with text denoting the page being viewed. A bit finicky, but still relatively easy… Right?
Well, unfortunately for me, not all of the character sprites are actually present within the game’s files. Some bits of this menu utilize drawings and assets that just aren’t available anywhere. You see, the game is in an 800×600 resolution, and most characters only ever show above the waist. The full-body artwork simply doesn’t fit on-screen, so the full drawings don’t exist in-game, they only exist in merchandise and promo material… Furthermore, Snow is a relatively unpopular game from the early ’00s, released only in Japan, with a generic hard-to-google title. Finding the ideal promo material that features the original artwork is pretty tough, sometimes impossible.
For some characters, such as the pink-haired Ouka, I had to search for the game’s official artbook in print, find what the characters look like below the waist, and reference the original artwork to redraw those bits from scratch. However, Ouka’s skirt happens to be textured with a specific fabric pattern… And due to the original drawing being down-scaled and compressed to fit the 800×600 resolution (specifically using outdated scaling methods that enhance image sharpness to display well on CRT monitors) the skirt pattern is full of visual artifacts and unintended loss of detail… which I also had to replicate. It’s a lot of work for something that most people will briefly glance at for less than a second, but I’m certainly prideful to have done it so well.

Also those CG Gallery and Scene Viewer buttons… They’re also semi-transparent, placed above a vague snowflake pattern that similarly had to be redrawn to retain the transparency of the button while erasing the JP text. Funnily enough, these buttons come with entirely separate hover-state images, and so, a lot of work went into making them look right…

Different colour variations to match every single page they can be present on. Gold versions that retain the coloured border matching the page you’re on to inform the player that the button has been clicked. Customizable text for future translation teams to use. Annoyingly, the pattern below the transparent buttons is different for the CG Gallery button and the Scene Viewer button, so they’re actually unique and both individually redrawn to mirror the original Japanese buttons.

And hey, while we’re at it, here’s the music gallery, where I annoyingly had to translate the song names to fit the small boxes without losing too much of the meaning. It’s not a perfect job, especially when it comes to the older language. I still think “Tiny Prayer” could be translated much better, but there’s not much room to fit text into, so I had to do it like ’90s video game translators and keep it short and sweet.

If there are any experienced Kepago programmers out there (is that even a thing?) please, look at the code for this screen. It’s monstrous, but unforgettable.
Anyway, finally… We added an entirely new UI element.

This ugly grey box may be familiar to anyone who played the unofficial Clannad translation back in the day.
In the tools used to hack reallive engine games, this Gloss Box feature allows you to attach translation notes to hyperlinked text. It’s very handy, and back when I started reading VNs, I remember marvelling at the care and effort put in to make this feature work.
Except… In the game that marvelled me, the game that these hacking tools were made for, there was no ugly grey box. Instead, there was… well… this:

In the translation of Kanon, the translation notes have their own fancy little window. Actually it’s a big window, but you get the point. It looks nice.
After Kanon, this fancy window has been absent in translation efforts completely. As I mentioned before, the Clannad fan translation had that ugly grey box pictured above. That’s because the documentation for how to achieve this effect is… nonexistent. And the people behind the tools that enable this are… gone.
All we have left to figure out how they did it is the compiled code of the Kanon translation, code created automatically by the compiler.
If you were to go through the compiled code and compare its handling of the glossbox to the compile instructions present within one of the code files of the tools used to hack these games, you could probably reverse-engineer the process and recreate the effect. Me though… I’m waaaaay too lazy for that! That’s a level of patience even I haven’t achieved, and that’s coming from the one who manually wrote 16000 lines of “play this voice clip” code into Kanon for the sake of making a voice patch.
So instead of doing all that, here’s what I came up with…

Does it look the same? Good, that means it’s a good enough fabrication. It’s a surface-level imitation of Kanon’s version.
This clunky implementation of a translation note window is, in practice, identical to the example seen in Kanon. With the right font and the right text, it looks perfect. It lacks a lot of the polish that the tl note window inspiring it has, but looking perfect is a lot easier than being perfect. For an area of programming that has no available documentation, I think I did good enough.

Step 3: The Other Game

This is the settings screen for a game called LOOPERS, released by Key in 2021 during our efforts translating SNOW. Around this time I couldn’t really continue doing anything for SNOW, for reasons that I’ll explain later, so I took to translating and editing the images for this other game instead. Rather, we only translated the demo before an official localization was announced. And boy am I glad I don’t have to do the full game, because… One of those images was… Oh boy.

This slideshow requires JavaScript.

This is a phone. Fairly innocuous, right? It has the time, it has the date, and it has the weekday. What an easy translation! Done!

Now… It looks good, but if anything beyond the time changes on this thing… It breaks. See, dates in Japanese are very simple to display. 月 is month and 日 is day.
8月1日 is the 8th month and the 1st day.
The kanji used to represent days of the week are literally just elements like you’d see in a JRPG, so it’s a very easy system to work with. Here, 水 (water) is Wednesday. If you used fire instead, you’d have 火, Tuesday.
To save space, they decided to shove all these into a single image and then program the images into the right places.

Where this becomes problematic is in translating them. First of all, there’s not much space to fit English weekdays into there. Second of all… Count the characters. There are seven of them, just enough to display Monday to Sunday, but no room for any other symbols. Because, although 月 is month and 日 is day, 月 is also moon and 日 is also sun, and in the same way that water or fire were weekdays, so too are the moon and the sun. 月 is Monday, and 日 is Sunday.
If you tried to replace 月 with “Monday”, you’d inadvertently turn 8月 (August) into 8Monday, so that won’t work.
But you see… Loopers, or at the very least, the demo of Loopers, takes place on a Wednesday. It’s a story about a timeloop, one they never break out of during the demo, and so… the phone doesn’t actually NEED to be able to display Monday to Sunday. The only thing the player will see is Wednesday.
Soooo, I turned 月 into “/” and I turned 日 into a blank space. 水 became “Wed” and the amount of space between the parentheses was increased to fit “Wed” into. In the end, it looked like this…

I haven’t played the full version of Loopers, and I never really intend to… But the idea that, maybe, just maybe, that story will touch a Sunday or Monday at all… It scares me. I’m so glad I’ll never have to figure out how to overcome that issue. I’m sure the official translators will have better access to the game’s code… I hope.

Step 4: Hard Mode

Finally, the stuff saved for last… The hardest images to edit.
These are not complex UI recreations. They aren’t uniquely coded elements. They don’t even involve redrawing anything. These are just… lines of text. The reason for that Loopers diversion however was that… these images are all either the conclusions to routes from the game, or crucial backstory lore dumps, and translating those kinds of things in isolation without any context or without any of the rest of the game being translated is… very very dumb.

Dodging around obvious spoilers here, but one example is this:

This dramatic section of text continues on for many lines, but these are the first two. Before translating, I quickly rushed through the script to see what exactly brought this scene about, and in doing so, I realized that the final line written by the translator didn’t actually transition into “here I am” in the way it was obviously supposed to. The line he translated was “そして…” or what without greater context could be considered “and then…”
Since the translator didn’t know that the text transitioned immediately into this image-based monologue, or what the monologue even was, they didn’t know exactly what they were leading into, and so our translations didn’t blend together smoothly. “And then… Here I am” doesn’t make sense.
If I had translated the image beforehand, I wouldn’t have known what the route’s translator decided to translate そして into, and we may not have caught this error until a final quality-check playthrough. However since I waited for the translator to finish his work, I could spot the “And then…” immediately and get it changed to something that more aptly bridges the two scenes: “And so…”

Another example, rather simply, is the eternal struggle of translating different sibling titles.

In this case, 兄上 was translated by the route’s translator simply as “big brother” but if I hadn’t known that, I may have chosen something different, leading to an inconsistency in language. There’s a lot of subtle depth behind how this character refers to her brother, but if I didn’t know the character’s backstory beforehand, I could’ve easily missed it in my translation. Similarly, a decision was made to translate the all-important village god’s title to “Dragon Goddess” but if I hadn’t known, Dragon God or something more Ryujin-y might’ve been my go-to translation. This is another case where foresight towards later plot points is crucial.

One peculiar example, from the end of Sumino’s route… Well, for one, the route’s translator rendered Sumino’s unique speech by turning certain R sounds into W sounds. UWU speak if you may. I definitely wouldn’t have known to replicate that if I hadn’t read their translation beforehand… But more importantly, the scene rendered in images is also partially displayed in text too… for some reason. I don’t entirely know why, but the script repeats itself, once in text, and once in images, with minor tweaks here and there. I got to copy a large chunk of the script’s translation for my images, but if I tackled these images on day 1, I’d have translated them one way, the route’s translator would’ve done them another, and the fact that they’re near-exact repetitions of the same scene would’ve been lost.

Also in one instance, I realized I have no idea what the English term for お花の輪っか is. I’ve never been to a wedding, or known anyone who got married in my lifetime, so outside of some exposure to media, my knowledge of marriage tropes is lacking. I ended up digging through a top 10 list of the most popular bridal headdress accessories in order to learn the English word for it. And by the way, that’s an incredibly specific top 10 list! Bridal headdress accessories! I guess some people do love wedding planning, so maybe I should’ve expected it… 

There’s a lot of repeated metaphorical language throughout these image segments, and a lot of the time I tried to dig for relevant comparatives within the game’s script, only to find that none existed. There’s a language that’s exclusive to the images, that quietly links several elements together, as if they were constantly calling back to one another. This is another thing that would be easy to miss, even in a normal read through, but I tried to keep the essence of these connections present for those analytical minds out there.
I mention this mostly because… there are some boring cases where the original metaphorical language held no connection to anything else in the game. They were one-off word plays for the sake of seeming fancy. Literally translating them led to an unpolished feeling, and the intended sentiments didn’t really come across in English. Worst of all, the wordflow really suffered, even after implementing the usual internal schemes that you’d normally employ to make a text feel cohesive. In these cases, I’d often find myself implementing referential language to relevant scenes from the greater script, though only where they made sense to include.
Poking fun at similar scenarios or sentiments from elsewhere in the game does a lot for building empathy in readers, I think. Even if one of the heroine routes isn’t really to your tastes, if you can relate their circumstances to a section of the game you did like, it helps you appreciate it more.

In the above screenshot for example, a parallel is built between how snow is described in this crucial moment and how it’s described in the opening monologue (and consequent references to that monologue). In the opening crawl, the narrator’s fear that the world will be buried beneath the snow is notable. In the screenshotted segment however, it’s far less about the physicality of the world and more about how the endless snowfall reflects the emotions of the speaker. Here we see a negative physicality and a negative sentimentality.
Other monologues put forth ideas of positive physicality and sentimentality, showing a whole range of perspectives on the strange weather phenomenon that Snow is named after. Now, I’m not expecting readers to go to a library and read Miyadai Shinji or whathaveyou in order to understand the cultural (read: 失われた世代) underbelly of the original text, and as such, having contrasting metaphorical language around the concept of snow, ice, cold, etc… is very important for effectively communicating these ideas to a global audience without directly pointing out “hey this was the cultural background behind this story” like a failing literature teacher or… Chris Chibnall.
I think this is an area the ONE and Kanon translation efforts were lacking in, leading to some confused reception towards those titles in the west. I imagine anyone who has read AIR will cotton on to things pretty quickly though.

Finally, what better way to close things off than with Cradle of Heaven, an iconic song from the game. This song is an in-universe lullaby, an old one at that. Several characters sing this lullaby throughout the game, across multiple different routes, and of course, it shows up in an image monologue too. Every time it shows up, it’s always slightly different in some way. If you were to grab the lyrics from one scene and search the entire game’s script for other instances, you wouldn’t find any, because this lullaby is never quite the same. The lyrics are basically identical, but you either get different segments, or bits are cut short, or some small specifics change. Since this is such a widespread piece of text, it becomes the unfortunate victim of something…
We have one translator working on some routes, a second translator on other routes, and then me with the images. At some point, the two had translated fragments of this poem without knowing the other had done so, and I was about to do the same… Or that would’ve been the case if I didn’t sus this out beforehand and ask about it.
Indeed, no one else was aware that this was a common motif when they translated it, though considering how much text they have to translate, I can hardly blame them. Looking through the script, we had two different translations that didn’t obviously reflect each other, and I—the one with little left to do—now had to write a third. This lullaby is written to suit multiple different unrelated scenes, which is entirely possible due to the vagueness of the original language, but if in translating it you unknowingly add the wrong kind of context, you damage several other scenes that don’t mesh with that context. So… The image editor suddenly finds themself doing a lot more than image translation.

First of all, how do we defragment this lullaby to figure out what we’re actually translating? Well, the answer is very obvious: this lullaby is a legitimate song. It exists in full, both in-game and online. Lyrics have been available for multiple decades now. Grab the whole thing from google and you’re done!
Next, find every scene that features any tiny section of the lullaby, checking for both Kanji and Hiragana versions, and read all of them, learn what context the poem is being used in, then write some notes. Is a man singing it this time? A woman? To a boy? A girl? In what weather? The first verse? The second? A mix of different verses? Note it all down.
Now, using every limitation imposed on us by the scenes it is present within, we translate the song. It needs to be general enough to accurately portray multiple scenarios, but specific enough to accurately reflect the intended emotions of the track. Also it needs to flow well; it’s a lullaby, y’know?
Once you’re done, chop the whole thing up, shove the fragments back into the game, tweak those fragments to reflect the minute differences present in the Japanese script, whip up the images that parts of the lullaby feature in, pack it all back together, and we’re done! Sounds like a quick job when I summarize it so succinctly, but… Well, I guess it wasn’t the most time-consuming task featured in the post, but it wasn’t what I signed up for, that’s for sure. I was expecting to sit my butt down in Photoshop and look at pixels for several hours, not dig through a Clannad-sized novel for shards of a song!

Either way, that was my journey through Snow from easy tasks to hard ones, and this lullaby deserved to be the closing piece.


So, that’s all I have to say about my work on Snow. I’ll probably end up getting dragged into some other VN translation project eventually, but until then, I’ll take my well-deserved break.
If you’re not a usual reader of my stuff, hi, I’m Takafumi! If you’re a Key fan, you might already know my work. I created the Kanon Voice Patch and I did a bunch of mods for other Key games such as the Suginami sprite mod for Little Busters! and the All Ages patch for Air. I also set up the English compatibility patches for the memorial editions of Kanon and Air, and wrote a bunch of tutorials about hacking the engines of both old and new Key games… I also made that one Summer Pockets guide that everyone in the world seems to be using.

This website is usually where I post my anime analyses and seasonal impressions. Key fans may be interested in my posts about how Air relates to apocalypse fiction, or the importance of cinematic language in Little Busters’ Kurugaya route. I’ll probably have something about ONE’s eternal world coming up shortly ’cause that remake(?) got announced and reignited the hype, but otherwise, expect to see a lot of ’80s anime discussion here. I’ve got L-Gaim and Gundam posts coming out soon.
Oh, and I make games! I’ve got a dedicated gamedev blog where I write things in a style similar to this post with some personal asides here and there. All things from production and development, to writing, drawing, making music, working with voice actors, leading teams… Basically everything.
Other than that, the Snow translation isn’t far from completion as of writing this, so hopefully you’ll all enjoy it!

This translation is brought to you by Snowy Ryujin Translations!

5 Comments

Add yours →

  1. Hi,I hope you are well.
    I’m a VN player from China. But the Chinese translation of Snow is old and is not translated from Plus Edition. So I find your translation as a substitute. I have to admire and praise your work, which is great and reamarkable. The story is also very touching.
    I approached this game for an interesting reason. Several days ago, I was recommended with Snow’s catchy OP by Youtube.But I didn’t listening to it because I have to go to work. I only remembered this video’s beautiful cover. So I found this song ,this game and finally your translation. On the same day’s night, it started to snow the first snow of the year in my hometown. What a coincidence. And I have never played this kind of classical VN before.
    Thank you for your efforts.

    Liked by 1 person

  2. I stumbled upon this post while searching for images to use in an article and long story short I was quite surprised to find that not only you worked on translating SNOW but you also worked on that awesome voice patch for Kanon.
    Kanon was the vn that got me hooked for the medium back in 2011 and I’m glad someone keeps that legacy available for others to experience.
    Thank you for everything.

    Liked by 1 person

    • Thank you for the nice comment~
      Kanon was my first VN love too! When I had finished, I enjoyed reading forum threads and blog posts about the game. “How was it made?” and “What did people think about it?”
      I’m trying to keep a bit of that ‘old internet’ alive for the new fans, ahaha.

      Liked by 1 person

  3. Whenever I ran into an instance of the gloss box, as I now know it’s called, while going through Kanon, I figured it was something the translation team hacked in all on their own. I guess I was still half right about that, though. Reading up about all that makes me appreciate how much effort must have really gone into the original Kanon translation a lot more than I did before.

    Also, as someone who’s still relatively new to Gundam, but very into it already, I’ll be looking forward to those Gundam posts.

    Liked by 1 person

    • The entire toolset was developed for the Kanon translation originally, glossbox included. The Kanon translation started out targeting the original release, which used the AVG32 engine (the same engine as ONE) but partway through the translation in 2004, Key released a new version of Kanon ported to their new engine Reallive. The translation was quickly moved over to the new version, and they had some fun experimenting with cool new features.
      The people behind all that cancelled the project before it was complete, and translation changed hands until NDT created the patch we know now, but it’s still based on the product of the original hackers. This is why other groups haven’t really used the advanced features in translations since; most people just don’t know how, and learning how is probably more effort than it’s worth.

      Like

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.