Monday, February 29, 2016

RKS Developer Diary #10 - I Understood That Reference

Hello, everyone!

I've been wanting to make this post for quite some time.  Thanks to my day job, changes around the homestead, a series of untimely developments, and a bad case of insomnia, I had little choice but to prioritize the urgent over the important for much longer than I'd like.  Now that the interruptions have been taken care of (and my sleep patterns seems to have returned to normal), I'm proud to showcase what may be the most significant improvement to the Rosenkreuzstilette localization since our original fan translation: our real-time subtitle feature.

The first time you boot up the new version of Rosenkreuzstilette, English subtitles will be enabled by default.  If you would like to disable subtitles at any time for any reason, just tap the F2 key to toggle them on or off.  The game will immediately save your choice to config.dat, so if you're a purist who'd rather not clutter up the screen, you don't need to worry about disabling subtitles every single time you launch the game.  Originally, F2 toggled whether Vertical Synchronization (V-Synch) was enabled or not.  In version 1.06a, [erka:es] decided to disable the hotkey since activating V-Synch required a restart, rendering a real-time V-Synch toggle effectively useless.  We decided to put the disabled hotkey code to good use.

As tempting as it would be to go over every character's dialogue and point out all of the references present in their voice clips, I have to save something for the full release, don't I?  So, rather than doing that, I figured I'd go over some of our localization choices with a bit of trivia thrown in.  As usual, feel free to leave any feedback in the comments:

Spiritia Rosenberg
"I'm not done yet!"
「まだいけるっ!」

(Zero, Megaman X4 / X, Megaman X8 / Vile, Maverick Hunter X)

Tia cries this out the moment her vitality falls below 50%.  Those of you who have played through Megaman X4 in the original Japanese might recognize this cry as the same one Zero uses in the same circumstances.  Interestingly enough, variants of this line are used throughout the series - by Zero, X, and even Vile.  We decided to use X's rendition from X8 for Tia, and save Zero's more iconic X4 rendition ("It's not over yet!") for Freudia in Freudenstachel.

Freudia Neuwahl
"You could use a nice, cold nap."
「氷のベッドで眠らせてあげるわ」

(Frost Walrus, Megaman X4)

One of Freu's one-liners is a nod to the boast Frost Walrus uses in the Japanese version of Megaman X4.  Unfortunately, Capcom USA decided to cut the voices for the eight boss Mavericks instead of dubbing them into English, meaning there is no official English rendition of this line we can reference.  Literally, the two say variants of, "I'll lay you to rest on a bed of ice"; we revised the line to sound more like the subtle threat it's supposed to be (and downplay the cheese in the "ice" pun).

Bist du bereit?
Zorne Zeppelin
"I'm not gonna hold back!"
「容赦はしないわよ!」

(Colonel, Megaman X4)

If you can believe it, this Zorne line is actually a reference to the Japanese version of Colonel's "I'll show you no mercy! Now, get ready!". Unfortunately, the British mannerisms Capcom decided to give his character don't flow well from the fiery redhead, so, unfortunately, the reference just had to go.  We rephrased the line to sound like something Zorne would actually say.




Nothing personal, but she's got orders.
Trauare Wrede
"Maybe a jellyfish would put up a better fight?"
「クラゲのほうがまだ手ごたえがありそうね」

(Jet Stingray, Megaman X4)

If you choose to fight Trau before defeating Zorne, Trau uses the exact same boast as Megaman X4's Jet Stingray, which was also left on the cutting room floor by Capcom USA's decision to remove the boss Maverick voices.  Jellyfish are quite lethal because of the poisonous barbs that cover their bodies; even a dead jellyfish can kill you if you touch their corpse.  There are two possible interpretations to the Japanese in this line: Trau and Stingray may be implying that even the dead stand a better chance against them than you do.  They might also be insinuating something to the effect of, "it looks like this jellyfish still has some life in her".  Which of these interpretation do you prefer?

Luste Teuber
"Let's play Tag! Tia, you're it!"
「ヒーローごっこしよ! ティアが悪者ね!」

(Split Mushroom, Megaman X4)

Yep, another deleted X4 reference.  "Hero-gokko" is actually a play on "Oni-gokko", the Japanese name for the game of Tag.  Japanese children love giving traditional games new names when they've implemented rules of their own (see: "Old Man" in Higurashi no Naku Koro ni, a variant of Old Maid that ultimately plays a strong narrative role in the story).  Luste refers to Tia by name, whereas Split Mushroom uses "kimi" ("you") to refer to both X and Zero with the same line.  Unlike Mushroom, Luste's AI actively seems to be playing Tag with Tia, rushing to the other side of the room whenever Tia gets close.  This line is a perfect example of why a literal translation isn't necessarily an accurate one.


The typesetting has not yet been finalized;
we're aware that Sichte's lines are difficult to read.
Sichte Meister
"For the honor of RKS, I shall strike you down!"
「エルカーエスの誇りにかけて君を倒す!」

(Jet Stingray, Megaman X4)

More X4 references?  It looks like Isemiya and WOMI love the game just as much as I do.  Sichte's line is a variation of Stingray's, replacing his reference to the Repliforce army with RKS.  We're still on the fence as to whether we should preserve the (officially-untranslated) reference as-is or if we should go for a slightly more fluid, "In the name of RKS, I shall carry out your sentence" (remember, Tia has been charged with treason -- a crime punishable by death -- and Sichte is her commanding officer).  Your thoughts?

That's "Freeze!" in German.
"Time, be still!"
「時よ止まれ!」

(Dio Brando, Jojo's Bizarre Adventure / Zephyr, Castlevania: Portrait of Ruin)

Dio is a fairly popular character among Japanese game developers, and many of their original characters are inspired at least in part by the deranged vampire.  His iconic Stand, "The World", allows him to manipulate time itself, and the words he shouts when he does so are instantly recognizable, even to those who aren't Jojo fans.  Project Touhou's Sakuya Izayoi, Castlevania's Zephyr, and RKS's Sichte Meister are just a few examples of the characters he has inspired.  Given how many different official renditions of "toki yo tomare!" there are to choose between, we decided to go with the one that would resonate best with RKS's target audience.  Given no less than five different characters in the Castlevania mythos use Dio's line (Richter Belmont, Soma Cruz, Julius Belmont, Jonathan Morris, and Zephyr), it only made sense to follow their lead and render the line as, "Time, be still!".


Liebea Palesch
"Stay with me, Brother...!"
「お兄様、私を守って!」

(Iris, Megaman X4)

Yet another Megaman X4 reference.  On one hand, the major characters of X4 all have their dialogue dubbed in English.  On the other hand, their lines are somewhat over-localized: "Stay with me, Brother...!" doesn't mean the same thing as "Brother, protect me...!"...  Given Liebea is thoroughly an embodiment of Iris's character -- a pacifist caught in the crossfire who just wants the ones she loves to stay safe -- we decided to go with the official localization, even if it's not 100% accurate.


Raimund Seyfarth
"That was a magnificent battle...!"
「良い戦いだったぞ」

(Armored Armadillo, Maverick Hunter X)

Believe it or not, one of Seyfarth's victory cries is a reference to the Maverick Hunter X incarnation of Armored Armadillo.  In Japanese, Seyfarth and Armadillo both follow the creed of the samurai.  Unfortunately, this element of Armadillo's personality was lost in translation; in English, he comes across as stoic and stubborn instead of honor-bound and dutiful.  In Maverick Hunter X, "Tatakai datta..." was rendered as, "It was a good fight..."; we revised the line to fit better with Seyfarth's battle-hungry personality.

I'm tempted to keep going and shine a spotlight on the remaining characters, but this post is already long enough as-is, and I need to make sure that at least a few of the references can still surprise you in the final release.  We're regularly submitting debug builds to the publisher, so it's only a matter of time before the game is ready for release.

Well, that's all for now.  See you next time!

Thursday, February 18, 2016

Help Wanted: The Hyper Dragon Chip Challenge

Megaman 7 - Versus Mode
Hold L & R and press Start
Hello, everyone.  Sorry to keep you waiting!

There are still a few things on the ol' To-Do List that need taking care of before I can roll out the next RKS Developer Diary.  Assuming everything goes according to plan in the next few days, the next entry should be ready sometime this weekend.  As I've hinted to before, we'll be taking a closer look at one of the new features that we had to code from scratch, as well as a handful of related homages that no one had the means to appreciate in our original fan translation.  You'll understand what I mean by that once the next post is ready.

In the meantime, I'd like to ask a few of you to lend me a hand with something I've been tinkering with on the side:

As I mentioned in my last post, I enjoy cracking the password schemes of my favorite games both as a mental exercise and as a way of figuring out the intricacies of how the games work.  Sundays at my day job have been rather slow as of late, so I've often found myself whipping out my notes and trying to figure out exactly how the password schemes for all four Megaman titles on the Super Nintendo function -- with fascinating results.  Well, after a few weeks of waiting around for customers to serve, I'm proud to say that I've completely cracked the code schemes for all four games.  I've also written password generators for all four games in Microsoft Excel, so I'm now able to generate passwords for any scenario I could possibly want (provided the relevant variables I want to manipulate are actually stored in the password).

Megaman X - Hadouken
Hold L, R, X & Down and press Start
Interestingly enough, I'm pleased to report that the long-held belief that the "100% completion" bonuses of Megaman X through X3 (the Hadouken, the Shoryuken, and the Hyper Chip - a.k.a the Gold Armor) weren't being saved in your passwords is decidely not true.  Don't believe me?  Boot up Megaman X, enter the password 3673-2177-2487, hold the L, R, X and Down buttons, then press Start to confirm the code.  Enter any stage, then immediately press Down, Down-Forward, Forward, Y to fire a Hadouken without needing to return to the cliff in Armored Armadillo's Stage.  Ah, the convenience!

Suffice to say, I've isolated the exact variables that determine whether or not you resume your game with the completion bonus equipped.  I've also determined that these variables are automatically reset if a specific combination of buttons is not held down when the Start button is pressed to confirm the password entry.  Megaman 7 confirms this theory since its completion bonus, Versus Mode, is unlocked in the exact same manner -- holding down the L and R buttons before confirming the password entry with Start.

Megaman X2 - Shoryuken
Starts at X-Hunter Stage 2
Hold Down, Left, R & B and press Y
As tempting as would be to spend my free time uncovering some brand-new secrets in two of my favorite games, I have more important matters to attend to at the moment that must take priority (namely, finishing the remaining work on RKS).  So, while I'm busy working on RKS, I'd like to release a pair of passwords and ask the RKS community to help figure out the secret in my stead.

For the emulation enthusiasts among you, what I'm asking should be relatively simple (if time-consuming).  Launch your favorite Super Nintendo emulator (preferably SNES9x, Higan, RetroArch, or ZSNES), boot up either Megaman X2 or X3, and enter the corresponding password pictured in this post.  Before pressing Start to confirm the password and start your game, record a save-state.  Then, hold down a button or two (or three, or four... could be as many as six buttons - I don't know...) and press Start.  The X2 password will start you at Serges' Stage  (X-Hunter Stage 2),  while the X3 code will start you at Doppler Town Stage 1 with Bit, Byte, and Vile alive and Zero's Z-Saber equipped (remember: to get the Z-Saber, you need fight Mosquitus as Zero, which is impossible to do when while Vile is still alive ^_^).  In either case, check to see if the completion bonus is equipped (in X2's case, press Forward, Down, Down-Forward, Y or Back, Down, Forward, Y to execute a Shoryuken; in X3's, whether X's armor is gold instead of blue should be obvious).  If it didn't work, reload your save-state and try again with a different button combination, recording which ones worked and which ones didn't.

Megaman X3 - Hyper Chip
Vile rematch with the Z-Saber
No code available...
I have no way of knowing how little or how much time the process of pinpointing the secret button combination might take since I have no idea how complex the combinations might be.  However, we can safely exclude the B and Y buttons from among the possibilities since they have other functions on the password scheme (Y increases any given digit's value in both games, and B decreases the digit's value in X2 and returns to the Title Screen in X3).  So, that leaves any combination among the four directional buttons (Up, Down, Left, and Right), L, R, X, A, and Select.  If you don't have a gamepad, check if your emulator allows you to map custom commands to a single button (I know for sure that ZSNES supports this feature; I used to map the Hadouken / Shoryuken to my Dual Shock 2's R2 button when playing X / X2).

By my calculations, the odds of any particular button combination being the correct one is 255 to one, so only take part in this task if you have plenty of free time to kill.  That said, thank you to everyone who is interested in helping out.  Here's hoping we're able to find the final piece in this pair of 20+ year old mysteries.

That said, I wish you luck!  See you later!

Update: Justin3009 from Romhacking.net has figured out the codes!  Good work, Justin!