Scope Creep - Present day

An update on what's been happening

j-rush

2/12/20257 min read

Flash forward

Man... so this update will be a bit different. This is more of a current-day type of update. I'll also include some pretty materials.

Where we sit now... tooling is progressing and actually close to done. I've broken a few rules from my initial goal of "only ever writing my own code," which meant any code ChatGPT generated I'd have to reverse and write my own way. The first time was for some graphical stuff, and now I'm using a tool written by "Denim" called Ninja. The neat thing is that Ninja kind of automates a process for me for getting graphics exported from stage.dir that I just didn't really want to deal with.

Being a strictly-ish Linux person, there are a lot of tools that I've tested or made some use of in Windows, and originally I was using some things to take apart stage.dir that I found. Its not too hard to get the graphics for each stage in native PCX format, but i was finding that a good program to edit them could not be found. GIMP worked well for editing, but the save format was wildly different. Paint apps stripped the VRAM coordinates needed, and while i could've followed up with that further, Ninja stripped and stored that for later use so it was easier to just stick with it that way. (I'll talk more about this later)

But I'm running into issues where the technical stuff is one thing, and it's going actually rather well. The hard part is the slow moving tasks:

  1. Translation / localization

  2. Character identification

  3. Testing

I'm considering offloading the work to volunteers, but first let me talk a bit about the progress so far.

Progress so far

I've actually recorded a short video of what injecting some dialogue looks like, as well as my build process. Let me break down in detail what you're seeing:

![[2025-02-10-undub-update.mp4]]

At the beginning I have a script that runs through a few automations:

  1. Take my adjusted DEMO translations and insert them into the data.

  2. Take my adjusted CALL dialogue and insert them as well

  3. Any adjustments to calls are hard coded pointers, so those pointers (stored in the GCL within stage.dir) are adjusted on the fly to point to the new offsets where they were generated in a new RADIO.DAT file.

  4. Files are moved into their respective places in a build folder.

  5. `mkpsxiso` builds the CD image.

  6. Duckstation is started with the newly created image.

Some of the new graphics are already swapped, the "Alaska - Bering sea" is now implemented, as well as the "Ohio Class Submarine Discovery" graphic.

The dialogue in the intro bugged me enough to rewrite it, I know the same info is conveyed but I wanted it to sound like Campbell actually says "Alaska" "Shadow Moses" and "FOX-HOUND" in the subtitle when it's said by the japanese VA.

The first radio call with the Colonel is displayed, its been translated probably since i did it by hand at the start of this project. The dialogue fits well with the english.

I also show off 1-2 extra calls working. You can see that some of the dialogue doesn't fit on the line quite right, these are manual edits we have to do later.

We also witness a crash calling the colonel. This doesnt actually happen too frequently.... This was a fast run with some automation that I've perfected during the same session so it's something that isnt a major concern until we're finished with translation.

===

I've been doing a lot of work the past few days on updating graphics. I prefer to see ascii character representation of VA and staff names, rather than Kanji. Even at first, using GIMP with the .bmp format seemed promising until i hit ones that were super long:

![[offset-image.png]]

![[discovery.png]]

Weird. Goblin didn't have these issues since he just used mspaint. Me on linux, i had a virtual machine, but I tried a little app called Kolourpaint and it seemed to do it justice and fix it. In fact all i had to do was open the gimp-created files in Kolourpaint, save them, and close them to fix it.

And the telops do look amazing if i do say so myself:

![[telop-snake.png]]

The issues though that are introduced are again due to size of Japanese characters. They may not need more than two characters to say "Music" but thats just not enough space to do it justice.

![[music.webp]]

The size of that file was mayyyyyyybe 20 pixels wide. Even at size 6 font it was difficult to get the arial font (which the original devs used) to fit. I actually lost one column of the M, the U, and then added pixels back on the right side of the C.

Eventually i was getting irritated so much I straight up did this to troll some folks on my progress. You can see with the Ninja tool it's much easier to insert, but notably "Director" has limited space, as well as "Developed by" can't fit for KCEJ's title. So at the time, seeing that it stood for "Developer" i just put Dev for the time being. "Director" also had such limited space, but its somewhat legible when you see it in game.

![[Main Titles graphics hacking.mp4]]

Even Snake disapproves of my harsh language. Snake, you may have infiltrated a base alone in Alaska and defeated a 3 story robot with a SAM launcher, but you know nothing of the pain of splicing in graphics.

Current work

I'm probably due for cleaning house a bit. I'm not an organized person by nature so forcing myself to come back to make a Kanban board and track issues as they occur is needed. But that said, today I felt the weight of the project quite a lot. I have other life things to take care of today, and I'll likely be taking a couple week break from the project to deal with that. So I wanted to maybe shift focus for a couple things.

I still will keep moving forward on tooling. But in the meantime, I had a thought I could maybe outsource the translation itself to other people. It's not even so much "Translating" as localizing. You have to run the original Japanese through google translate to see what details are covered. Then you grab the US version and see if the same information is conveyed. At times things are broken up between multiple lines, or conversely consolidated.

But my concern is always for the end product. Right now I have to face the harsh truth that sometimes i do go a bit fast, and maybe make things not fit as well as they could. I go back and forth between relying on Jeremy Blausteins (more and more admittedly AMAZING) localization, and also a lot of wanting to get back to the original japanese content.

Here's a good example of the conflicts i hit.

Original US dialogue has this in Snake's first codec call with Meryl, there's this exchange:

"Snake": "You were involved in this exercise from the beginning. What exactly happened here?",
"Meryl": "I'm sorry. I was captured along with President Baker right after the terrorist attack.",
"Snake": "That's okay.",
"Snake": "But what is this place?",

However Meryl's line in the original Japanese is...

"I also just joined the exercise that day..."

(Minor game spoilers ahead) I assume most folks reading this are familiar with the story of MGS, so I'm not tagging them but I'll tell you where to jump later.

If you know the story well, you know that at the end, Campbell confesses that Meryl was transferred to Shadow Moses to ensure his cooperation... and from later on in the series (or the Otacon ending) that Meryl is really Campbell's daughter, and not his brother's. Kojima may not have the best track record for really fluent dialogue, but I think this is a nod to that fact. Kojima is actually rather good at leaving foreshadowing hints, and I think this should've been one of them. In the US script it's also somewhat redundant because later she more specifically says she was thrown in with Baker which leads to discussing hiding the PAL key. So saying twice that she was captured with Baker isn't really that needed.

There are also more famous examples we know from former translators. In MGS the "Codec" was still a radio, but Jeremy Blaustein changed to fit its more high-tech feel of being embedded in the ear, and Kojima later adapted it for other entries. I lean towards changing this to "Radio" to fit more in line with the original work.

Further, Mantis's line about using his power "feels nostalgic" is reference to his mother, but as it was less obvious, hence Blaustein says it "feels kind of nice." I'd rather have the original intent there, but these are all examples of the decisions I have to make as "Translator" even though i'm far from fluent in Japanese. Hell, I found Meryl's original comment of "Women have more Drawers than men" comment to be more of a dirty flirt, but I'm no culture expert either, so... We'll leave that one as is....

#### Spoilers over....

I will say though. There is (what I think) is a missed joke from Baker, where Snake says "I don't give a crap about you and your company." Either it was google translate or the original dialogue, but looking at Baker's response I got this "oh woe is me" vibe to his response that was something like

"You soldiers could never understand the struggles of an arms dealer."

So translation is slow, and inaccurate, but at least I have a text extraction from the Japanese Master's collection script book (and a physical copy) to reference. Still, translations don't do the original intent justice.

...not to mention the Kanji character matching is an issue, but we'll get to that.

====

Anyway. I can still keep a supervisory role of the script if I branch out to other folks. But I will have to set up a local git repository so as not to share script snippets, etc.

Time will tell as we head there. For now, though, I want to focus hard on finishing off tooling, as there will be other problems that need addressing that tooling alone can't fix. (When i get to talking about RADIO.DAT in depth, we'll talk about call lengths and the problem with Mei Ling)

As I should be ending these entries, feel free to add your name and email address via the form, or reach out to me directly or join the discord if you want updates on the project. For the time being I'm not sending emails, but its on my to-do list.

ONE POST SCRIPT... Seems this is more effort than I want to take optimizing the blog for this site. I'm having trouble uploading the videos and images for this post. Let me see if there's a better way before the next one.