Funky Fantasy IV: A Machine-Translated Video Game Experiment

12 Comments

”Funky Fantasy IV” is a 100% machine-translated version of Final Fantasy IV for the Japanese Super Famicom. There are still little bits and pieces of untranslated menu text, but all of the main and important text has been run through Google Translate.

What’s especially interesting is that I did this project just as Google was updating its translation system to use advanced neural network A.I. So, by sheer luck, I wound up with two different translations: one before the switch and one after. The differences were so astounding and the online response was so great that I decided to write an entire book about the project!

Translation Patches

You can download both translation patches here. Be sure to read the included text file first. And, most importantly: Translation Patch #2 is the one you want to play!

In 2020, about 4 years after my first Google Translation patches, I learned that a more sophisticated machine translation engine called DeepL added Japanese support. I used it to make a brand-new patch – see more details here.

Sample Screenshots

How Does This Work?

I wrote some custom software to extract all of the text data from the Japanese game. I ran this program, then took the resulting text and ran it through a machine translation tool – in this case, Google Translate. My software then took the translated text, did a lot of reformatting and technical magic, and plopped the English text back into the Japanese game. The translated text was almost always too big to fit into the original game, so I also wrote some custom Super NES programming code to get all of the new text working.

Purpose

A common question I get is “Why even do this?” The quick summary is that this is just one small, experimental piece of a larger concept I’ve had for years. It also serves as the basis for a lot of things I’ve been wanting to try out for years. Here are some of those things:

Answering “What If?”

I’ve spent the last few years analyzing Final Fantasy IV’s many different official localizations, and even the fan-translated version. While doing this, there’s always a question in the back of my mind: “What if a machine translated the game? How would that compare to each of these versions too?” I’m particularly interested in this question because machine translation has supposedly improved a lot since the last time I played around with it over a decade ago – people even have fancy machine translation apps on their phones these days for translating signs and trying to hold basic conversations.

A New Area

I’ve spent years researching and writing about how games have been translated, but one thing I’ve never taken a look at is machine translation. It’s something I’d like to learn more about, and this is an interesting way to examine it. I’m already learning a lot of new things, and some of my expectations going in have been shattered. This is also an opportunity for me to see how far off people in my field are from getting replaced by computers 😛

It’s Fun and Challenging

Getting all of this up and working from scratch tapped into all of my interests, so this is also a fun little side project. It’s not as easy as taking translated text and pasting it into a new text file – I’ve had to learn a lot about the Super NES’ architecture, how to program for 65c816 processors, how to programmatically condense text to fit into text windows of limited size, and how to parse/recalculate text formatting when jumping between languages. It’s also been a lot of fun seeing the results.

A Testbed

I write about game translations and localizations a lot, but it’s often difficult to convey the different styles and approaches that translations/localizations can take. So for years I’ve thought about taking a single game, making a translation tool for it, and then using that setup to create translations and localizations that clearly showcase these different styles. These could then be compared side-by-side as whole games. It’s also a good testbed for experimentation.

For example, this tool could be used to demonstrate what a hyper-literal translation looks like vs. a hyper-liberal localization. It could be used to demonstrate how game localization changes and adapts depending on the environment too – what would the same game localization look like if you were forced to use fewer resources, such as memory? How might the same game be localized if it were handled by a large team vs. a small team? Or if it were handled in a crowdsourced environment? Or how much could you trim each sentence down and still keep the game’s story understandable/enjoyable? And, of course, what would it look like if a machine translated it?

With all this in mind, I thought it’d be nice to use Final Fantasy IV as the game in question. There’s a lot of text involved, there’s a constantly moving plot, there are dozens of characters, it’s an iconic game, it’s already had many different localizations to compare to, and it’s relatively easy to dig into and reprogram. Plus I’m just a big fan of the game.

Basically, I’ve always wanted to tinker around with a game and try to localize it in different styles, to clearly show the many different approaches and philosophies, and what each of them end up looking like when put into practice. I think that’s why I like to call this all an “experiment”.

Miscellaneous Demonstrations

There’s a lot more to be learned from a machine-translated project like this, too. For example, Final Fantasy IV’s Super Famicom script is written entirely in Japanese katakana and hiragana. This was normal for the era, but games that only use these two writing systems are actually harder to read and understand unless you’re really good with the language already and can read between the lines. Later releases of the game switched to using katakana, hiragana, and the much more complicated kanji writing system. Even though kanji is tough to learn, it fills in those holes of context.

Image 1

Knowing this, I ran the Super Famicom game’s introduction through Google Translate, and then I ran the same text – but with the kanji included this time – through Google Translate. I then showed the two results side-by-side on stream for others to see live. As I expected, the kanji script was translated much more logically most of the time. I used this as a good example of why students of Japanese shouldn’t shy away from learning kanji, and why context is always at the core of the Japanese language.

Of course, this is also a good demonstration of what to expect from machine translations, and when they perform better in some situations than in others. For example, Japanese-to-English machine translations are generally better at handling small bits of text and short sentences with proper grammar. Anything beyond that, and all bets are off, especially given that “entertainment Japanese” is very different from normal, everyday Japanese.

I’ve also learned during the course of this project that online translation tools like Google Translate can drastically change from day to day. This came as a surprise to me, and is probably worth noting to anyone who relies on machine translations.

This is also a good demonstration of what Japanese-to-English machine translations can look and sound like and can help others identify when a game uses a machine translation. Some real-life examples:

Image 1
Image 1

It’s Funny

Going into this experiment, I didn’t have high hopes for the quality of the text, but I tried to set that assumption aside. The result so far has been incredibly funny, and it’s been a blast to play live on stream with fellow fans. I stream Legends of Localizaton projects here from time to time, but if you’re reading this much later, you can catch the archived stream playlist here:

Summary

Basically, all the fancy-pants college talk aside, this machine-translated version of Final Fantasy IV is just one piece of a bunch of other things I’ve wanted to take a stab at for years. While I don’t plan on updating the translation patches any further, this project is something I’ll probably toy with for years to come, and hopefully others will find it fun and educational too. For now, it’s just a nice, goofy thing to sit back and enjoy.

FAQs

Did you do this before or after Google’s big switch to the neural net machine translation engine?

By some stroke of fate, I have builds from before AND after the translation engine changed! The initial translation was done on or around Dec. 4, 2016. The next night, I noticed that Google Translate was suddenly translating everything very differently, so I made another build using the new translation. I was completely unaware that such a big change was planned or underway at Google.

From a quick glance, the translations differ in these ways:

  • Version 1 of the translation is pretty bad for the most part, except when it comes to small pieces of text like item names and descriptions. It chokes on the main script, especially all of the “entertainment Japanese” that the script uses, so it’s pretty funny. Most sentences are just nonsensical random words strewn together, but when a logical sentence appears it usually results in something amusing. Version 1 does seem to handle “proper Japanese” sentences just fine, however.
  • Version 2 of the translation is also pretty bad, but in a different way. This version has logically-constructed sentences, but the actual phrase/word/term choices themselves are often far worse than Version 1. “Proper Japanese” sentences translate poorly compared to Version 1. Overall, this translation is much more playable than Version 1. The logical-sounding nonsense is also very entertaining, but many script lines are molded in a way that obscures the intention of the original lines. With Version 1, you can at least see some keywords in the script and get a basic idea of what’s going on. Version 2 pales in comparison in this regard.

A few comparison screenshots from random parts of the game:

Image 1Image 2Image 3
Image 1Image 2Image 3
Image 1Image 2Image 3
Image 1Image 2

DeepL Machine Translation (2020)

Four years after my Google Translate experiments, I ran Final Fantasy IV through a supposedly more sophisticated machine translation engine named DeepL. The results aren’t as funny or crazy as the Google Translate versions, but they’re still very entertaining. You can download the DeepL translation patch here.

Here are a few sample screenshots:

Are you going to do this with any other games?

I actually did do a full playthrough of a Google-translated Final Fantasy VI, which you can read about here. I don’t have any other serious plans for other games at the moment, but I think it’d be fun to keep using Final Fantasy IV every few years to see how much Google Translate improves.

If you liked this, check out press start to translate, my book about the time I Google-translated Final Fantasy IV. It includes the worst/most hilarious translation mistakes, all while explaining why Google's A.I. made such terrible choices. (free preview PDF)
12 Comments
  1. Woah, is Kefuka a bit racist? Among his other negative qualities… 😛

  2. I wonder if someone could rig a rolling translation of this game. Updating the machine translation as Google Translate chooses to translate parts differently. Have a database documenting the revisions.

  3. “Have you ever had a history of mist abuse?” hmm. about that…

  4. I should donate FF4 Prettified to this project, so that you can have Takeshi to fully take on Germany’s neutralization.

  5. Do you have your own serious translation patch for “Final Fantasy IV (Japan) (Rev 1).sfc”? If not, then which patch do you recommend? I cannot wait to re-experience this game the way it was intended. I have not played it since the early 90s and of course it was the crappy English FFII for SNES version. 😉

    Thanks for your awesome work!!

    1. I don’t have a patch of my own (I’ve considered it for a long time but I feel like my analysis stuff does a better job than a patch would) but these two recent projects might be worth looking into:

      http://www.romhacking.net/hacks/2337/
      http://www.romhacking.net/hacks/1659/

      I think both use my FFIV comparison to update the script but I don’t really know the details.

  6. There is another machine translation engine called DeepL. It is said to be much better than Google Translate; some claim that it is the best machine translation engine out there. I used it a couple of times in Polish-English pair and I must say that it indeed is quite good in some cases. Sadly, it doesn’t support Japanese yet. I wonder what your project would like if you used DeepL.

  7. You might have noticed already, but all the comparison images are down, or at least they’re not showing up for me. I’m pretty sure they were visible last time I looked at this article, which I wanna say was last week? I wanted to show it to someone now and found out those images were gone.

    1. I report this problem as well :/

    2. Thanks, I’ve updated it to fix the missing images. They were probably broken for like 2 or 3 weeks without me know, oops.

  8. I see that you have tried DeepL. I have compared only one scene between DeepL and Google Translate and I can see that the former did its job a lot better, but I suspect that decent human translation would be still better than this. Those “Motherfuck” and “Facebutt” are so hilarious xD

  9. I mean, DeepL’s name for Mom Bomb does neatly sum up how I felt about that fight as a kid….