[GB] Doman's Revenge (Ayakashi no Shiro) Translation Project

Started by Nagato, November 01, 2016, 05:50:19 PM

Previous topic - Next topic




I can't guarantee I would be able to play through the entire game, but I am curious to see what the translation looks like. I was actually considering translating it myself at one point...


Translator summvs here. It's been great working on this with Nagato, who I also worked with a few years ago onThe Nameless Game (yikes, I just looked and it's actually five years ago). If you remember that project and thread you'll know we knuckled down to the work of ROM-hacking and translation rather than posting updates constantly during the process, but I know people appreciate insight and progress reports too. So to that end I've written up a post about what we've done so far and what's left to do to make up for the fact that we didn't say anything while the work so far was carried out. It's in question and answer format, just because. Since it's quite long I've put it in several layers of spoiler tags to save it taking up the whole thread.


Why did you decide to fan-translate Ayakashi no Shiro, and why didn't you recruit help from the community?

I caught wind of the game through Jeremy Parish's essential YouTube series Game Boy World. It was never released outside Japan and therefore never translated into English. Jeremy mentions this in the video for this game and comments that it would take the work of a kindly fan translator to allow people to play this game in English. I took this as a challenge and as I'll go into later, got in touch with Nagato, who was the programmer of the Nameless Game/Nanashi no Geemu fan translation which I did.

As for recruiting help, this is my second fan translation and both times I chose a game that was small enough in terms of text volume for me to be able to do it myself as a labour of love. That's just my personal style. For anything much bigger I would have been happy to share the work with a few other translators.

So if the game never left Japan, where did the title Doman's Revenge come from?
My last fan translation was The Nameless Game, which had a pretty straightforward title that worked perfectly when translated literally, and it never crossed my mind to change it. I also think in general it's probably a good idea to just call your fan translation the same thing as the original game. But for this one, it felt to me like if it did come out in English in 1990, as an RPG for the fledgling Game Boy hardware, the game's name would likely not have been literally translated, as happened to many games for various reasons. With this in mind, I thought it would be fun to approach this as a simulation of what might have happened had I been working in the appropriate department of a studio who got the rights to publish this game in the West, and was told to retitle it for release in the West.

What kind of game is Doman's Revenge aka Ayakashi no Shiro?
The Game Boy World video (https://www.youtube.com/watch?v=aOj1OLDo76k) for the original game is a great primer, but briefly, it's a first-person faux-3D roleplaying game in which you play a ninja exploring castles filled with monsters.

What's the backstory?
Here's my translation of the story prologue as presented in the Japanese manual. There isn't any prologue in the game itself so this is useful to read for context.

"It is the Sengoku period, an age of civil war in Japan. This long conflict is on the verge of coming to a close as the feudal lord Oda Nobunaga nears his goal of national unification.

Ashikaga Yoshiaka, last shogun of the dying Ashikaga shogunate and rival of Nobunaga's, has resurrected the onmyoji Ashiya Doman, a practitioner of magic and divination who was sealed away many years previously. With Doman's power at his disposal, Ashikaga had planned to defeat Nobunaga, but Doman instead set in motion his own plan to take over all of Japan by using his magic to summon monsters.

Hearing of this, Nobunaga sent hundreds of his soldiers to defeat the resurrected Doman, but none of them made it back alive. He finally dispatched Hayabusa, his strongest ninja, with orders to take down Doman once and for all.

Doman is vulnerable to only one weapon: the Sword of Gohma. It was this blade which was used to defeat him and seal him away all those years ago by Hayabusa's ancestor Abe no Seimei, himself an onmyoj. However, the sword has been stolen by Doman and taken to the castle of a fallen shogun.

Now, Hayabusa heads towards the mysterious castle to retrieve the Sword of Gohma and defeat Ashiya Doman once and for all..."

Wait, Nobunaga? As in...?
Yes, this is the same historical figure as featured in the Nobunaga's Ambition series. The other people referenced are real historical figures, too. Magic and divination, however, are not real.

Can I help?
Yes! We would like a couple of people to playtest the prerelease English ROM and report bugs or issues to us. We haven't yet confirmed each string on-screen in the game so quite apart from technical issues, some translations may not make sense in the context in which they appear in the game. The game is not big enough to warrant farming this out to dozens of people but a few volunteers via this thread would be great. Mini-FAQ below for testers - this is the kind of known issue that we don't really need to have reported:

The translation is very curt and lacks flavour! We know. This is what it took to fit it in without making a second job of this project for us.

Those double-letter glyphs are ugly as hell! They're not ideal but they solved the issue of limited space well.

I checked the Japanese game and it's missing a lot of information from the original text! See above - however, if there is truly crucial information missing that makes the game unplayable, we do want to know about it so we can see what can be done. As noted earlier we are using literally every single byte of available space, so if anything is missing right now, even a single missing character or punctuation mark, then something else will have to be removed to make room for it.

You changed the move and items names from their evocative Japanese names and they're super literal! You suck!  You're supposed to be a fan! This was simply what had to be done to make the text work. I would have loved to call the move that lets you float the Angel Robe like in the Japanese because it sounds nice, or the invisibility cloak the Straw Coat because it has cultural and historical contextual relevance but in the interests of making the game basically playable without running a guide next to you the whole time, these are now Float and Cloak. Once one or two of them went literal, it felt weird to have non-literal ones in the same list.

I'm not really a game tester. Can I still help?
summvs: I would like to have a catalogue of screenshots of every enemy so that I can make sure the names make sense for the images. If you're willing to help to do this, let us know.

That still sounds boring but I still want to help.
If you are of an artistic bent, a fun project might be to Photoshop new box art for the game with the new title.

When will it be finished?
For now we want to see how much we can get out of some further testing. Once it seems like we're running out of things to fix (which can be fixed within the scope of this project), we will probably just pick a point to draw a line under it, call it finished and release it.


For those of you interested, here's some details about how we got to this point. Grab a hot drink, it's a long one!


This all got started when I reached out to Nagato via a PM on this forum proposing the project earlier this month. Nagato was up for it and got started by working on injecting new text, as you can see here:


Those of you read kana will be able to see this is a "hello world" proof of concept execution of text insertion. (Bonus points for spotting the missing dakuten.) You may also notice some other immediate challenges such as the graphic text for the name of the castle you're in at the top right, and the character name Hayabusa.

The game lets you enter a name for your character but if you leave it blank, Hayabusa is the default and the name he's called in the prologue. Hayabusa is four characters in Japanese and reprogamming the game for a longer name, be it default or custom, was beyond the scope of our intent and in any case, the text display areas are so small that it wouldn't have been very useful. Extending it may even have caused further line-breaking issues.

Anyway, since Hayabusa in English is eight characters we had to change this. I went for Koga. Finding out why is left as a research exercise for the reader.

Nagato is the one to ask about the technical aspects of inserting English text into this game, but I can tell you the limitations were extreme. Game Boy games are very small data-wise, and Japanese programmers often programmed in the exact amount of space needed to display the Japanese text. If you know anything about Japanese you'll know this is a problem because the equivalent English length is usually a lot more.

A key early task was the addition of an English character set for our text display, which Nagato did, along with provided me with a text dump of all the text needing translation. I got  started by translating all the text as fully as I wanted to, knowing this would not be the text that would be usable in the game. I find it useful to start this way and cut down late rather than work to the constraints as I go. It also meant as we were able to claw back some space later, I could easily refer back to my ideal translation.

To get the ball rolling, Nagato inserted my full-sized translation into the game and compiled it, making a command- line tool which allows me to see by how much (measured in bytes) my text was overflowing. Any overflow at all and the game doesn't work properly. It would still boot but it was a complete unplayable mess. And boy, was my text over. It initially seemed like I was going to have to match character length to the Japanese. This is incredibly problematic for all sorts of obvious reasons but for some examples of where it's downright unworkable, consider that map ใกใš and key ใ‹ใŽ are two characters each in Japanese. MP and KY are hardly very readable, and besides, MP clashes with the move points and KY already stands for other things. Iit was the same for enemy names. Bat, rat and so on were fine but anything over two or three characters and it was a mess of unreadable contractions.

Fortunately, this phase didn't last long as Nagato worked out that the game checks the byte total for the text but not on a line-by-line basis. Having a game-wide total would have been the most flexible, but it turned out the code is split into four sections, broadly speaking the enemy and item names, battle text, some dialogue, and the ending sequence. Each of these sections has a hard upper limit for how many bytes of text all its lines can contain, but I was able to shorten one line in order to gain space in another in the same section. This greatly improved the readability of enemy and item names.

The process of finding text that needed to be expanded for comprehensibility led us to the idea of adding icon glyphs. Since the game code has space for 60-odd Japanese characters and punctuation to be displayed and our character set wasn't using all that space, we could use the blanks to create small letter-sized icons that could stand for longer words. For example, you can find new weapons and armour and the length restrictions made the names pretty unreadable - what should have been Shinobi Katana or Demon Sword were getting shortened to NinjBld and DmnBld. Since there wasn't space to add lowercase letters, these were even worse as without CamelCaps they just read as NINJBLD and DMNBLD or what have you.

To solve this, I designed some monochrome 8x8 icons for a sword, armour piece, mask and key and since each of those was one byte, the equivalent of a single letter, the space savings started adding up and I could use the free bytes clawed back this way to expand other text lines that were suffering in terms of readability or context due to their constricted size.

Another way we saved some space was taking some key terms like the castle names (there's more than one castle to explore!) and some longish words like poison which were causing issues, and designing glyphs that crammed two letters into the space of one, which we used specifically to replace these words. This let us cut those words down by half in terms of byte usage while keeping the full name - for example if you get an item with Suzaku in the name while in Suzaku castle, you need that to read the same in order to make the connection. The first-pass version SuzBld wasn't really cutting it.

Nagato was also able to optimise the game code and find me some extra pockets of space. For a game this small, every single byte counts, and the current "prerelease" translated English text uses literally every single byte available (as you can see from this command line output:

Names section size: 573 bytes out of 573 bytes
Dialog section size: 2057 bytes out of 2057 bytes
Pointer table section size: 597 bytes out of 597 bytes
Ending section size: 195 bytes out of 195 bytes

That's about the long and short of it - we went back and forth trading files and pointing out issues, booting the ROM up in an emulator to test it out and seeing what text was working right, what was wrong in context, what was causing display issues and so on.


I got the PM you sent me. I played a little bit and so far no issues. The font is great since I wear glasses and some fonts I can't read well. I will continue onward and try to find something. If not, I say ya'll are good to go.

Update: Again, I've found nothing needing to be fixed up to the end of Genbu's Castle but without Ninjutsu, this game's a bit hard. Also, I can't seem to hit any of the enemies half the time. I'm stuck at that point because of this. Beyond those issues, I think we have a great game.


I found some stuff. Some of the bugs seem pretty serious actually, and they all happen from the 3rd castle onwards, at least in my case (perhaps due to the skill set both you and the enemies have at that time).


I haven't looked at the game's code at all, but have you looked into any kind of compression or relocating of the text blobs?
All your workarounds seem quite tedious...

However, I like the idea to use icons :) Screenshot please?


Quote from: cccmar on November 03, 2016, 07:20:32 AM
I found some stuff. Some of the bugs seem pretty serious actually, and they all happen from the 3rd castle onwards, at least in my case (perhaps due to the skill set both you and the enemies have at that time).

I'm stuck trying to kill a Samurai in castle 2. My attacks don't seem to hit him at all.


Quote from: Ziko on November 03, 2016, 11:47:24 AM
I'm stuck trying to kill a Samurai in castle 2. My attacks don't seem to hit him at all.

Use Thunder or Wind - he seems to have a very high evasion rate against physical attacks (or maybe you're just underleveled, later on grinding becomes more of a necessity actually).




Please do that Nagato! I can't get past the Samurai because of these issues. After that, I can go to the third castle.


I really like reading your designer diary.
Going the final fantasy 1 route and having icons is a great idea. Iconography is really big in table top design to make games language independent.

I'm still waiting for a game to be translated in to emoji




I'm not sure if either Nagato or summvs are going to read this, but I don't feel like making a gbatemp account to post in the topic.

Been playing this for a while after the patch was released and I noticed two things so far that are off.

http://i.imgur.com/dkqcK3l.png First off is this ghost in Byakko Castle's 3F (tile 01, 01), apparently he's meant to say something but the box just closes.

http://i.imgur.com/mkoCuIj.png Then after beating Ninetails the text glitches up.

As for game itself, it's pretty decent. I got stuck at Seiryu for a good 15 minutes because I had no idea what the clue was talking about. After that, I got to Suzaku revisit and the enemies are damn annoying to beat and I quit after beating Ninetails with savestate abuse. Can't believe they make all magic against him useless. After that it's more annoying enemies that you gotta grind to stand a chance. I'll see when I get around to finishing this.


Has anyone seen Pascal's title screen hack work for this game? It's not yet on RHDN I think. You'd have to ask him here.


I've already sent my work to KingMike.
I don't know if he'll use it for the final patch, though.


Planning to work that in, among the other things I'm working on at the moment. :)
"My watch says 30 chickens" Google, 2018