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.)