ROM Hacking on Super NES

When fans translated Games on their own

By on 19.02.2017 at 12:14 |

Back in the Nineties being a Console RPG fan on 16-Bitters in Europe or North America wasn’t easy, as some of the best games were only released in Japan(ese). So what could you do? Die, cry – or do it yourself. Welcome to the wonderful world of ROM Hacking and fan translations.

It all started with Secret of Mana (Seiken Densetsu). I heard many good things about it and it was the main reason why I bought a Super Nintendo (Famicom) back in the day. Plugged in the cart, started the game and from the moment I pulled the sword from the bloody stone I was hooked.

With series like Final Fantasy, Breath of Fire, Lufia and many other titles RPG lovers had plenty of choices back then. But once you completed all English games you were left in vain desperately looking for more titles. Filled with jealousy gamers in Europe and North America could witness their Japanese counterparts enjoying some really big titles that were never released to the rest of the world. Star Ocean, Bahamut Lagoon or Seiken Densetsu 3 just to name a few. Sadly companies like Square, Enix, tri-Ace & Co. obviously didn’t think releasing those games outside of their home country would return their investment. Many years passed by and the era of 16-Bit Consoles was nearing sunset. But there was hope.

The wonderful thing about hard- and especially software is that skilled people may reverse engineer it, hack it, rip it apart and come up with something new. Around 1996 and 1997, the growth of the internet and increasing popularity of video game emulators sparked a number of unofficial game translation projects. Groups like RPGe, J2E, Multiple Demiforce or DeJap were born and tackled the technical challenges like text behind numerous layers of compression as well as the localization piece.

After months of reaching out I finally managed to have a call with Adam Crossley aka Dark Force of the famous DeJap who released a few big titles like Dragon Quest V/VI, Bahamut Lagoon, Star Ocean and Tales of Phantasia. While waiting in transit at JFK Airport in New York, the former group leader explained what the ROM Hacking scene was like in the early days, what technical challenges had to be tackled when translating games to English and why he never really played a translated game himself.

Adam, let’s start with the basics. What does it take to create a translated ROM Hack?

There are three kinds of roles: one is the ROM Hacker, two is the Translator, and three is the Tester. The ROM Hacker does the job of extracting the script, deciphering the language encoding, putting it back in, changing graphics and fonts and so on. The translator is in it for one of two reasons: one is they really enjoy the game (as does the ROM Hacker), or their Japanese isn’t perfect and they just want to translate something cool to English so they can enjoy it a bit more and practice Japanese in the process. The Testers are in it because they wanted to play fully translated games before they were released to the public and often had no other skills to contribute to the process.

How did you get started hacking Japanese ROM’s?

The interest first started when I got myself a NES-to-Famicom pin adapter tool from a video store plus some Japanese Famicom games. I was just seeing a lot of text but had no understanding of what the game was about. I said one day I want to figure out what the hell this is I’m playing and learn some Japanese. Coincidentally, one day I bought Mario Paint on Super Nintendo; it was an English release but it had Japanese fonts that came with it and the instruction booklet explained how to write and pronounce the Japanese alphabet. In the end that is how I begun to teach myself Japanese: initially by reading and writing/drawing through that game, and then finding computer software to do the same thing (write Japanese characters). Around the same time I was in school and learned low-level programming (assembler) and realized how it was possible to change program code to make it do something different. I applied this idea to video games to translate text and to my surprise there was already an existing, but small, online scene trying to do exactly that.  

DEJAP SNES Rom Translations

How did you get started with DeJap?

Richard Bush, aka J3d! (pronounced “Jedi”), built the first website for DeJap and did the original development and hacking, but at some point he left to work on his emulator Raine. He wanted to do both but Raine was such a success that it demanded more time than he had. I convinced him to let me take over and did all of the development work henceforth, I ran the website, coordinated the releases, managed the translators and testers, and everything else. 

Which was your first ROM Hack?

The first game that I wanted to convert to English myself was Romancing Saga III. It was a Square RPG with amazing graphics and special effects. It ran on the early Super NES emulators, so I was able to debug it and do some hacking work on it, but I never finished it because I could never find a translator interested enough to complete the script. Tales of Phantasia peaked my interest when it came out in December 1995. In Japan it was advertised as the biggest and most beautiful looking RPG with hand drawn sprites that the Super Nintendo ever had. I thought to myself: if you do something, go for the best! Right? I also knew of the immense popularity of the game and figured it will be far easier finding translators willing to help compared to more obscure games.

Tales of Phantasia Super Nintendo Dejap Translation

Tales of Phantasia sounds pretty challenging.

In the early years of Super Nintendo home brew development, nobody could ever get the game running, so I made it my mission to get it emulated. Most console copiers at that time only had 32 Megabits of RAM, but Tales of Phantasia and also Star Ocean were 48 Megabits each. It took me a long time, but I finally tracked down somebody who had a copier that was actually able to dump the larger cartridges properly. I inspected how the memory was arranged in order to find the entry point and memory mapper and was the first person to get the game loaded up and running, which got me credits in emulators like ZSNES and Snes9x. I worked with ZSKnight to get it running in ZSNES first.

Do you mind sharing a bit more about the technical challenges of ripping SNES games in general?

Sometimes there was copy protection via special hardware, sometimes it was a different mapper, the basic case was country code lock out. Star Ocean and a few other games had special hardware that made the ROMs unreadable to game copiers. Star Ocean required opening and physically modifying the console copier in order to read the ROMs. To get around Star Ocean’s special hardware, I took apart my Super Wildcard DX2 - that I got from The White Knight/Anthrox - with help from Kevtris (another console hacker at the time) and added a few custom modifications such as a CIC bypass and a timer pin to run an external clock to synchronize with the SDD1 chip so the SWC DX2 could send commands to the chip on the cart. This in turn also got around the copy protection. This same set up also let me copy the game Far East of Eden Zero which used a different special chip – which I then also helped get emulated. As well it was able to copy SA-1 games as well such as Mario RPG – for which I helped release the first working English version of.

Besides that, sometimes the copier itself didn’t even know how to dump the game because it didn’t recognize the memory mapper. With Tales of Phantasia it did take some fiddling. We used a Game Doctor 7 64Mb to finally get the right image, but it was extracted in the weird GD interleaved format. I figured out how to realign it (which was different compared to the standard 32Mb interleaved format) and wrote a tool that put the game in the right order so that the emulators could read it.

What are the difficulties regarding emulation?

Just because you have an image doesn’t mean it’s going to run. You have to emulate all the features a game needs to run - depending on the hardware in each cartridge, the memory layout and registers can be different. In order to get a game to run in an emulator, first you have to define the correct memory mapper (which is not always extracted when copying a cartridge), otherwise you just end up with garbage. Nobody had done that for Tales of Phantasia because there were no “clean” ROMs floating around the internet, so I made it my mission to figure out how it’s mapper worked. Luckily, once we figured out the mapper, there were no additional registers (custom hardware) required for initial emulation. In general, you get the game’s code to map to memory and start executing with the correct entry point, from there you can proceed until you have the memory management perfect (when code crosses 16bit memory pages or address), then you continue to debug the game and figure out how it works and what registers it makes use of. There is much more to it, but that is the basics of the process. Most people doing ROM Hacking however never bothered with trying to get a game to run and be emulated properly, they usually focus their efforts on games that are already emulated properly.

Tales of Phantasia Dejap Version

How about the Japanese text and localization process?

This is perhaps the hardest part in many games. The first thing is you have to do is find where the text is stored. There are some simple text searching tools that can aid with this, but they only work with non-compressed text. Pretty much all the games DeJap worked on used custom compression. Looking for compressed text is quite challenging and requires advanced debugging techniques and tools. The emulators at the time weren’t that sophisticated for debugging so often what we had to do was make Snes9x generate a massive execution trace log file and then scan though this file (which could be hundreds of megabytes) to try to find clues of how and where the text was stored. Usually you would find it by tracing the origin of data written to the video buffer. This required a lot of knowledge about SNES hardware.

Once you find the location of the text data in the ROM, you have to find the image of the font in the ROM and figure out how the coded text in the game aligns to the font – no two games use the same font mapping codes for kanji characters so this is always a manual process, it’s not like using ASCII. You then extract the font and write a program to do the mapping and output EUC characters (similar to Unicode) - the Japanese version of ASCII. Using the extracted font image file, I had to learn how to lookup words in a Japanese dictionary in order to find their EUC code, which could then be used to convert and output kanji characters to a readable Japanese text file. In the end, I extract all of the Japanese dialogue into a text script and post it on our website, usually asking: “Who wants to help translate this game?”.

And once the project started?

For some projects, translators would join and then leave right away as soon as they realized how much work it was. Some projects had a huge team, like Dragon Quest V, and they progressed very well, other games like Star Ocean and Tales of Phantasia almost never came to be with the main translators disappearing for a while before returning out of the blue to finally complete them. Initially for Tales of Phantasia, a few months after posting that the script has been extracted, Alex, aka Chess Piece Face, came up and said “This is my favorite game! I want to translate it. You did all the hard work, now I will do all the translation work”. The project just progressed from there. His Japanese wasn’t very strong, so after one year he brought in a Japanese girl – Miko – who took helped to review and translate the harder stuff.

And once you got the translated text?

That’s a major hurdle to pass, but still just one battle. You’re far from the end, because you have to figure out how to re-encode that text in English and put it back into the game and make sure it all fits. The problem is that English text takes up more space than Japanese characters, because it is a much more verbose language with less optimal encoding possibilities. In some cases people would try and edit down the script, because you only had so much memory space to work with. They would basically use the exact number of bytes available.

In other cases when we did Dragon Quest III/V/VI the texts were heavily compressed, so we had to figure out a new compression algorithm to fit them back in. It was simple to recompress the text for Dragon Quest because we had enough space, but for Tales of Phantasia the English script that Alex wrote was 3x bigger than the original Japanese. There was no way that this would fit into the game.

I was forced to invented my own compression algorithm to fit the script back in, I was against editing it down because Alex and Miko did such a great job on it. The compression I came up with was multi-layered: it would decompress it once to the memory, that memory would get decompressed again, then it would get decompressed in real time while the text is displaying on screen. I used all kinds of crazy tricks to compress the data as much as possible. Usually you can’t effectively recompress already compressed data, but after working on it for months, I found a way. Because of SNES hardware you are limited to the types of compression you’re able to use, for example LZW may sound like the best, but there isn’t enough memory available to hold the decompression dictionary, so you had to resort to compression with small static tables or sliding windows or algorithmic compression. I combined all of these and more, including compressing information used to build sentence structure (which has probably never been done before). After all that, the script just fit back into the ROM. That, however, is only the solution for Tales of Phantasia, other games like Bahamut Lagoon required completely different compression techniques which were more complex in other ways.

Tales of Phantasia Dejap Translation

How long did it take to finish translating Tales of Phantasia in the end?

The whole game took at least three years, possibly more. I can’t remember exactly, plus there was a pause in the middle. Along the way, I also started a Tales of Phantasia sound dubbing project so that the voices for the special attacks could also be translated to English. It was run as a separate project and I handed it over to another person to run. There were a few releases but not sure if it ever got completely finished.

A pretty long time. And people stayed with the project until the end?

For Tales of Phantasia, yes, but for other projects it happened often that someone lost patience quickly. Usually, it was the translator who was first to go, though sometimes it was myself. You find someone to translate and if they’re not done in the first month or so, they usually disappear because they realized how much more work it is compared to what they thought it would be. That was the most frustrating thing. And it was pretty much the reason why I retired from the scene. I just got tired of people saying “I’m gonna do this!” to get my hopes up, so I put in work to do some intensive ROM Hacking, then they disappear and you did all of that work for nothing.

How about hiring professional translators?

At some point I figured I would probably need to pay translators to keep things going. But for that I needed a way to make money to pay the translators, likely by ads or donations. The one time when we asked for donations on our DeJap website to raise money for Star Ocean, several people did donate but also some people got pissed off and offended which let to the DeJap website being hacked and then brought our website down!

Seriously, hackers hacking fellow ROM Hackers?

You know, it was silly and petty, also it was bad timing. If we had Kickstarter back then, we could have funded so many translation projects, so many more things that would have gotten done. We could have kept going and probably have made money at it. That was my dream at the time.

How was the ROM Hacking scene like back in the day, was it very competitive?

In the beginning there were a few big projects like Final Fantasy II (NES) and Final Fantasy V (SNES) and Dragon Quest (aka Dragon Warrior) III and VI (SNES) from groups like DeJap (J3d!, Dark Force), Demiforce (Demi), RPGe (som2freak, barubary, TheBigWeird). Together, that was the start of the ROM Hacking and translation scene. There were others as well, but we were kind of the ROM Hacking pillars at that time, those projects alone inspired so many people to do so much more. We released how-to tutorials, Richard and others wrote very good ROM Hacking tools and released them to the public. People picked these things up and tried to translate everything. The translation scene basically exploded. Within a year there were approximately 10 times more people involved, all of a sudden, mostly from US and Canada but some from Europe as well.

Were people in it also for the money?

Nobody was involved at the time for making money, everyone was involved for fun. For the people doing the ROM Hacking, that was purely for fun. But it was also educational. I learned more about Computer Science during that time than I ever did in school. When I went to college I learned a few things, but with everything I learned from ROM Hacking I basically knew 3 times more than everyone else and eventually quit the class <laughing>. Nowadays, there are some companies trying to profit from the ROM Hacking scene by making counterfeit cartridges and selling them.

Who makes counterfeit SNES games on real cartridges?

I showed details about my customized SWC DX2 to a few other people in the scene who had more sophisticated equipment and eventually it lead to people creating custom RAM carts. Other guys like John “The Dumper” Weidman and nevitski took what I did and made it into a much more seamless system. Instead of needing the copier with some hacks in it they physically put flash RAM-chips (EEPROMs) on carts and attached cables so they could write to the chips directly.

Last year I was in a game shop here in North America and I saw them selling a Tales of Phantasia cartridge with my translation on it. I said “What the hell is that? I made that! Where did you get that from?!” It turned out some company did exactly the same thing: they burned the translated images of the games to EEPROMs, soldered them back on to the original carts which had the original artwork, and started to sell them. I don’t believe guys like The Dumper and neviski were behind this, but at the same time I think it must have been somebody from the ROM Hacking scene because all of the obscure translated titles were present that wouldn’t otherwise warrant making them into carts. At least that enabled me to buy some of my works on an original cart, even though I’m not happy I have to pay for it!

Dejap Translation Projects

Looking back, how do you feel about the ROM Hacking scene?

The best way to describe it is: when you deeply get involved in a scene like that, it turns out to be a bit of a soap opera. Because there are so many things going on and there are so many different characters and personalities, I was always playing a bit of a politician between different groups and people to keep everyone working together, since I was often involved in many other groups’ projects. Think of the ROM Hacking scene as the EU and each translation group as a different country in the EU. They’re all looking out for their own interests, but still they have to work and trade with each other and make compromises; often you have some personalities to deal with. A lot of time back then was spent dealing with and managing all these different personality types, especially on large projects with 10-15 people collaborating.

That doesn’t seem to be a lot of fun at all?

It started out as “I want to do this cool project and I can do it with one or two other people” in the very beginning, that is when it was fun. It was rewarding to see a project finished. During that period when all the projects started to ramp up it became more political and the scene got too big, too many people involved, too many opinions which resulted in rivalries and unfriendly competition – more like a soap opera as I said. For example, say you wanted to do one game but some one else was working on it, so you couldn’t work on it because you would offend someone else and lose support for another project you’re working on, but you knew you could do a better job and get it done. It was all very frustrating at times, but not everyone was like that, just mostly the bigger players.

Did you at least enjoy your finished translation projects?

That is the sad thing for anyone who was in a position similar to mine: once a game translation was finished, you never got the time to play it yourself. The translators and testers played through the game numerous times, find bugs, check the script’s and so on, but when you’re on the ROM Hacking/development side your work is done when the project is done and there is no reason to play it for the project to proceed. If I was playing a game for 30 or 40 hours to finish it, that would have been wasted time that I could have spent on another project. You just sigh, say that was good job and you’re off to the next game. I swear I will play them all when I retire.

If you like this and you’re working on something special digital and tech related (past and present), please get in touch. Love to write articles about unusual digital things, even if less than ten people on earth care about them. I do :) Also, if you are a journalist and have topics that you would like to publish on (each one will be released in English and German), happy to talk about it! I appreciate any kind of collaboration.