As I’ve mentioned previously, Kurayami is made up of a number of different files, each of which needs to be handled in its own, unique way in order to create a full-featured translations. Today we’re going to talk about the files that make up Kurayami and what they do. As the YouTubers would say, be sure to smash that like button, ring the bell, and read on!*
*Okay, so they wouldn’t say that last part…
When you first pop in the CD, load the ISO, or open up the folder containing the contents of the game, you’ll be greeted with 4 files and a folder:
This folder, as the name literally translates to in Japanese, contains extras such as high quality images and a text file with some comments. Interesting though it may be, it doesn’t have a lot to do with the translation and will be left for a later discussion.
Bog standard file included on many forms of media back in the day that told your PC what to do as soon as the disk (floppy, CD, or otherwise) was inserted into the machine. To absolutely no one’s surprise, this was used to great success by virus authors since it caused the PC to run a program with no user input, so the feature was finally disabled in Windows XP SP2. For the sake of being thorough, Kurayami’s file reads as follows:
open = eve.exe
icon = kurayami.ico
Essentially, it tells the PC to show kurayami.ico as the icon for the CD drive under My Computer and to launch eve.exe. Let us once again ruminate on just how fantastically bad of an idea this was.
This serves as the icon that shows up under My Computer when you load the game. It’s ugly and I don’t like the eyeballs. In short, it’s not my cup of tea. Thankfully, I don’t need to translate it. Next!
Here’s where the things begin to get interesting. For anyone who thought that all these Eve file names had something to do with “evening” and were a reference to darkness — the title of the game — I don’t blame you. It looks that way on the surface. However, it looks like Melody decided to
take the easy way out not reinvent the wheel and licensed another company’s software package for running games on Windows.
That said, it’s still clear that the executable itself was modified on some level because several places in the program (the title bar, for example) reference Kurayami and the program launches with a splash image for the game even with the EVE.PCK file is missing.
“EVE” is the name of a Multimedia Script Processor developed by a company named Neural. Incidentally, Neural picked the absolute best name possible for a company in the tech industry… if you wanted to be invisible to Google searches. Finding anything on this company has thus far proven incredibly difficult.
However, I suppose it’s not all that important at the end of the day. After all, our concerns lie elsewhere.
The EVE program essentially provides all of the UI and other features you could need, including a save/load/delete save system, fullscreen and windowed modes, a “skip to next choice” option for those who want to play visual novel games without actually reading the story (???), save screenshot as a bmp, and the aptly named “other” for some of your other needs.
The Japanese text (menus, text boxes, titles, etc.) that appears in the game do need to be translated, though it’s fortunately a relatively straight-forward endeavor… kinda.
The Japanese text in the game is normal SJIS-encoded Japanese, just in little-endian format for reasons I won’t even pretend to comprehend. Overwriting the strings is a simple matter of just overwriting the Japanese with ASCII English… except that you need to put 0x00 between letters. It’s not a major hassle, but it also means that until I can find the pointers that govern how long strings can be, we have a hard character limit for each translation.
When you first load the program, it creates a new folder: C:\Program Files\Melody\Yami
This is where your new save files and screenshots will go along with a newly created file called EVE.EVS.
As far as I can tell, this file exists for one task and one task only: to save your character’s name. That’s literally all that’s in it in my experience, but I suppose it may also serve as your later track how many times you’ve beaten the game, which pictures you’ve unlocked, etc. if that information isn’t tracked purely in your save files.
Fun Fact: Though the UI limits you to four full-width (double-byte) characters or eight half-width (single-byte) characters, the game actually has no such restriction. By manually editing the file (text encoded in SJIS), you can make the name ridiculously long and the game still runs fine. I’m sure there’s a limit, but I haven’t taken the time to check. See the image at the top of this post for an example.
Put simply, this file is Kurayami the game. All of the media (images, sound effects, etc.) are stored in this file along with the dialogue and all the scripting commands, such as when to jump to a new scene, how and when to play an animation, offering up dialogue choices, and more. Eve.exe simply interprets all of these instructions.
You’ll noticed that I didn’t mention anything about music above. That’s because Kurayami is a mixed-mode CD, meaning that it contains both audio tracks (which would play on a normal CD player) and data. Under normal circumstances, the game will play cd-quality music directly from the CD-player as you play the game.
I say “under normal circumstances” because I’ve yet to get that to work properly so far, but that’s currently a work in progress.
Most important to our project, however, is the text. That took quite a while to figure out where the text was contained and how it was stored, but through some persistence and a lot of trial and error, I was able to identify where the majority of the dialogue-based strings are and then got around to decoding and exporting them for translation. Alas, this is running a bit long, so I’ll leave the explanation over how I did that for another time.
Now, if you’ll excuse me, I’m going to go get into an elevator in a large office building alone, late at night. If you don’t hear back from me, assume there was a power outage and I’m trying to get out.