Fate/Extra CCC Translation Reaches 100%!!!

Aria here, and you read that right! Mere days after finishing my 2nd playthrough and finishing the voice lines and in-dungeon lines, JS dropped the rest of the CCC main script translations in one fell swoop!

We’ve updated the checkmark on the progress website, but we haven’t finalized a way to track the editing phase yet. Please give us some time to find out how to best present this next leg of work, and we’ll let you know when we have something!

For now though…

Though before rest, we’ve got one important question you can answer in the comments:

Fate/Extra CCC Summer Update – Extended Gameplay Preview!

Aria here! So, we might be bad at this whole “quarterly updates” thing, but I promise we’re making progress! It’s also still incredibly hot here, so it’s still definitely summer. But as Andersen put it, you all deserve a reward for sticking with us.

Without further ado, we have an update video for you! Go watch that!

Hopefully this is your reaction:

If so, then I have succeeded and survive for another day on the internet. I’ve been told CJ streamed the prologue a long time ago, but I wasn’t around yet and didn’t see it. But he says the overall quality now is leagues better and deserves to be shown off. The text looks clean, the images look slick, and all the voices have subtitles! (Those Kotomine lines in the joke intro were real and in-game btw). Remember we’re still on the translation phase, so what you saw still needs some editing. But somewhere around 86% of the game is translated and looks about the quality you saw in the video.

We have one unused Easter Egg that was shown as an error message if installing the game failed, but we’ve since removed the option entirely since it doesn’t improve anything. In honor of Tsukihime Remake’s release, we decided to share it here:

Lastly, we wanted to give a shoutout to the kind person who sent us all the CCC Void Log books, which contain *nearly every spoken line of dialogue in the game written down*! They have made my life so much easier for transcribing battle lines ; _;

If you’re reading this update, please get in touch with ItsumoKnight in the iwakura productions discord! He had something Gundam related he wanted to follow up with you on.

And as for you, dear readers, let us know if there’s anything you’d like us to cover/show off in future updates. We’ll probably be back around New Year’s (who are we kidding, it’s September, we’ll probably skip to a Winter update next), so see you then!

– Aria

Fate/Extra CCC: Spring Update, Trackers, Gil!(?)

We have a short update for you today since we’ve mostly been pushing forward in translation progress rather than anything flashy. Though speaking of flashy, Kotcrab has set up a progress tracking page where you can see an estimate of our project updated in real time! You can view that page here –

https://kotcrab.com/progress/ccc/

In terms of translations, we have some updates here: – Chapter 6 has been fully translated! – In dungeon translations are now underway – Over 530 audio files have subtitles now (including misc areas of the game like in Kotomine’s shop, My Room, and the Secret Garden) – Misc bug fixes encountered in playtesting

As always, thank you for your patience as we push the translated line count higher and higher!

(Disclaimer: please don’t be liberated from your money.)

Fate/Extra Perfect Patch Release! (1/15 Update)

               Hello, Aria here! Hope everyone is staying warm and opening hundreds of loot boxes in FGO (wait, did we miss Christmas? Pretend it’s still Christmas! Padoru!). Not to distract you from the necessary grinding, but our Fate/Extra Perfect Patch is here, which includes battle dialogue, ruby text, berserkers going berserk, and more! This patch was a long time coming, so I thought I’d talk about the battle dialogue process a bit!

               When I first joined up with the project, I had never actually finished Fate/Extra before. I played on PSP when it came out and rage quit a couple rounds in after dying instantly to some mobs. So, my first task was to play through the game and subtitle the battle lines along the way. All the character voice lines are labeled like “ner_1700” without much additional context, which made things a little tricky. This includes non-battle dialogue as well, which we don’t want to translate. Thankfully, Kotcrab set up a debug message that appears on the bottom of the screen that displays the name of the currently playing file.

(You won’t see that message in the bottom left, but it made my life much easier~)

               With that, I was able to figure out the general number range of what’s battle dialogue and what’s story dialogue. I started by translating as many Nero battle dialogue lines as I could, then continued playing the game. From there, I’d beat a boss, then translate their lines. All was fairly smooth…

               …until this fucking guy.

               Now remember, I’m doing all the subtitles with audio only. I just remember sitting in the library on my laptop, shaking my head in utter confusion as to what the fuck this guy was saying. His dialogue blends several religions into one to make his “true” religion, also known as a nightmare to my ears. I was in such a desperate state of despair that I just googled what I could make out and prayed. What answered my prayers…

               …was a devote follower who created a Twitter bot that regurgitates his lines every hour or so. I managed to find the line in question typed out! It was a godsend, until the next line didn’t exist. But that one led me to a Japanese wiki with every line in the game typed out! (Well, it turned out to be more like 70%, but it was still an amazing blessing). Using that Japanese wiki, I was able to recreate it on my own local wiki and organize all my notes:

               Each line had context written out as well, and with its help, I was able to match line numbers to specific actions, such as break attacks, master healing servant reactions, and more! With this new tool, I was able to check my previous translations, then advance much more smoothly into the horizon, with the crazy fanatic Gatou now defeated.

               Now until that point, I was using our editor to translate without seeing anything in the game. Just before Gawain, everything was set up to add my translations into a patch. I pre-translated all of Gawain’s lines, then did his battle for the first time. It was the most intense battle in the whole game, improved immensely by having the battle subs working as he slammed his Noble Phantasm into me two turns in a row. I knew it was coming too because every enemy Servant has a “tell” line that announces their intention to use their Noble Phantasm that turn (it’s always line #1752 for anyone curious, with #1753 being a “you survived!?” follow-up). I had just translated Gawain’s, so I knew exactly what to look out for:

               I recorded the battle as an early test to show the rest of the team the subs. I should have died in that fight with how sloppy I played, but damn if I didn’t win first try white knuckling the entire time. You can watch that terrible test video here (Keep in mind that since it was an early demo, the lines are unedited with some technical issues present that are now fixed. Timestamp is when things start going crazy – https://youtu.be/jomlQ6cx9uw?t=238 .) There’s no mic audio, but you can feel my spirit break when Leo announces a second Noble Phantasm. It just gets worse from there.

               During the cutscenes before that battle, we also noticed an issue with battle subtitles playing during the pre-combat smack talk conversation. Turns out people say battle lines outside of combat for dramatic effect! Thankfully, Kotcrab had no issue hunting down a variable that would let us know if we were currently in battle. With that, subs would only play if we were in combat. BUT we also subtitled level-up lines post battle and those aren’t in battle! We settled on a set of flags in the timing, with one of the flags meaning “play only in battle” if true. Whew~

               After that, the game was defeated, Holy Grail obtained! No strings attached, they just gave me the Grail and wished me on my way~ Next steps were to translate the rest of Nero’s lines plus Archer, Tamamo, and the Rin route servants. Sprinkle on some sound effect translations as well (those ended up being stored separately as we learned, requiring some more code tweaks to get just right), then it was time for Archer!

               Wait that’s not right.

               There we go, that sounds more correct. At this point, I’m mostly getting to just enjoy the game, while spotting a missing line now and then. Most of these lines are battle victory lines, separated into “servant doesn’t give two shits about you” (first half of the game) and “servant will die for you” (later half of the game). When I got to Alice’s fight on Week 3, I asked if colored subtitles were possible.

               ItsumoKnight: “What’s so hard about it, it’s just Alice and Alice”

               Turns out the color codes should just work since the subtitles use similar code to the game!

               …okay not quite. It initially caused some interesting text glitches which made the following line even more creepy than before. With some quick debugging by Kotcrab, we got everything working:

               Along that same line, we wondered if we could do the Berserker scream, which ended up being easier than expected. There are 4 possible Berserker noise characters, so I wrote a quick python script to randomize different combinations at different lengths, then I matched them to lines that seemed to fit and added “!” marks as appropriate.

               The last major improvement we added was adding ruby text support. Kotcrab went into detail about this in an earlier post, but essentially it lets us add the small subtitle above certain skill names that CCC uses.

               In this case, it adds “Rho Aias” above the skill name for that extra touch.

               With Extra moving into an editing and playtesting phase, I was free to move onto CCC. It’s hard to give actual progress numbers with the battle dialog since there’s a lot of non-battle dialogue mixed in, but I’ve translated the lion’s share of Nero, Archer, and Gilgamesh’s dialogue. Once I finish with Tamamo’s (nearly there), I can play through CCC and translate missing lines as they come up. This will include the in-dungeon subtitles as well, with context! Sadly, the Japanese wiki for CCC is much more incomplete, so most of the lines will be by ear, but on the other hand, the line numbers have the same meaning as Extra! So with that, I’ll know when a line is a counterattack remark, an “I just died” line, or a “chiding the player for playing terribly” line.

               Lastly, thank you for all your patience! This has been a tough year for all of us, and I hope that you can enjoy the work we put into vanilla Extra while you wait for CCC!

               PS: I suppose you want to download this patch, huh? F-fine, it’s not like I want you to play it or anything!

UPDATE:

Now with Mac/Unix patching options and various Aksys translation fixes mentioned by the community!

https://mega.nz/file/3F0iUTDK#gHldA8BBZTXzcYjjZWd9urcWl9kb7h711I24sAzqKGY

(Editor’s note: Fate/Extra is very special to me. It was my exposure to Fate, and without it, I wouldn’t have become the fan I am today. It also lead to me neglecting a blind date, and in retrospect, the game was the better choice, but that’s a story for another time.

If this is your first go at F/E, I hope you enjoy it as much as I did and still do. Especially the amazing Shinji Hosoe OST. -cj)

Fate/Extra CCC – Summer Update!

ArtStation - Summer saber alter rider fan art from Fate Grand ...

 

Kotcrab has been kind enough to provide an update. Have an enjoy! Stay cool, and stay safe.  – cj

Kotcrab here with this month’s update to tell you more about the tools we use for this project! Let’s start with the script editor. We’ve come a long way with this one. At the beginning, there was a big spreadsheet with all the text from the game.

1.png

From there, we moved to a simple application with three text fields: Japanese, English and notes. We wanted to add more functionality to the editor, but since we didn’t have the source code for it, JS created the new app you can see in the screenshot below.

2

It’s packed with features, but most notably it allows us to see a live preview of how the text will look in the game as you type. You can play audio and see the image for the character speaking the line. When editing subtitles, we can adjust the timings and simulate exactly how it will look in game.

This worked great assuming that only a single person was working on the script at a time. With more people joining the project, it wasn’t sustainable as merging two versions of the script was a time consuming process. The next step was to create a central database for the editor. Once we finished that feature, multiple people could work on the same script in real time. We’re able to track change history for each entry, suggest changes, and mark completed entries or ones requiring more attention.

We also designed tools to extract and repackage the game. The tools understand how to parse the game files and make all the necessary changes. They also assemble and apply code patches.

Both Extra and CCC make extensive use of archives. First you have the game ISO file which contains the main archive. This archive contains smaller PAK archives, which can either be the actual game files or more archives. For example, a texture bank file will contain multiple textures. Due to various reasons, a single file can be duplicated across many PAK archives and a PAK archive can be repeated multiple times in the main archive. Our tools fully automate the management of these archives webs. After changing a file or adding a translation, the tool figures out what needs to be changed and replicates the changes to the proper places.

Finally we have the patcher tool. Its main purpose is to take the patch file and input ISO then create a patched ISO. It’s a fairly recent addition to the toolkit, but it had to be made. At first, we used xdelta, but this produced huge patches due to how the games are packed. The first Extra mod was over 500 MBs and the CCC patch was estimated to be even bigger. With the new tool, the patch for Extra is just 11 MBs. Thanks to it, we can also provide an option for selecting which Meltrylis name to use.

To sum up, a lot of custom stuff was written for this patch. Some of it is already finding use in other projects. Hopefully we’ll be able to reuse more and more of these tools going forward.

Now for some progress updates~

The initial translation pass for the Extra subtitles is finished. It adds almost 800 subtitles for the in-battle dialog. Of course, this patch also includes all the changes from the first mod.

3.png

(don’t worry, this file is automatically generated)

4.png

Thanks to the help from our image editors, we have finished and tested all of the texture edits for CCC. This is 436 edited images. The last ones were the textures used in the prologue.

progress

The CCC script translation efforts are going smoothly. According to our database stats, we have over 1000 edits per month on average to the main script. Let’s take a closer look:

Script source Tools (extraction, insertion) Translation
DAT (the main script) Done 5 out of 7 chapters done
EBOOT Done Done
Indungeon Done Not started yet
Infomatrix Done Done
Items Done Done
Interface Done Done
SG Done Done
Subs Done In progress

Finally, it’s likely we will post smaller updates on our Discord. Last month, I shared updates on the two technical issues; check the pinned messages!

And beware the gatcha! Unless it’s for Ishtar, then it’s okay. Maybe.

(not really.)