Hello bracers, priests, nuns, students, and soon-to-be detectives!

This post is going to be different from a progress report this time around. Today it’s Ribose here instead to talk about the game’s text in great detail. I also have a fun little thing to unveil, so if you like treasure and don’t like technical details, skip to the end!

Breakdown of Text

In the 15% milestone, Gu4n discussed the general breakdown of the scenario and touched on the non-scenario text briefly. Here, I’m going to go into more depth, just so I can show off some quick little charts at the end.

Here is the breakdown of various parts of the game’s text

scena refers to the stuff in the “scena” folder, and includes dialogue with NPCs ( talk ) and main story and side quest dialogue ( event ). In Trails in the Sky through Trails to Azure, talk and event functions occur in every scenario file, though it’s conveniently sorted and in reverse chronological order. Starting in Trails of Cold Steel, and in several modern Falcom games such as Tokyo Xanadu, talk and event functions are split into separate locations (sometimes seen as “tk” and “ev”). Each scenario file represents a single location in the game (a “map”), organized very neatly in files named with the form X###Y.bin . “X” is the region, one of “C” (Crossbell City), “E” (Events), “M” (Dungeons), “R” (Roads), and “T” (Towns). The three numbers specify a hierarchy of locations in each region, with the general rule of thumb that each sub-region is specified by the first two numbers. “Y” is either “0” for normal, “b” for night, or “c” for festival variants (“e” is used once in the game for an event in the morning for that map).

refers to the stuff in the “scena” folder, and includes dialogue with NPCs ( ) and main story and side quest dialogue ( ). In Trails in the Sky through Trails to Azure, and functions occur in every scenario file, though it’s conveniently sorted and in reverse chronological order. Starting in Trails of Cold Steel, and in several modern Falcom games such as Tokyo Xanadu, talk and event functions are split into separate locations (sometimes seen as “tk” and “ev”). Each scenario file represents a single location in the game (a “map”), organized very neatly in files named with the form . “X” is the region, one of “C” (Crossbell City), “E” (Events), “M” (Dungeons), “R” (Roads), and “T” (Towns). The three numbers specify a hierarchy of locations in each region, with the general rule of thumb that each sub-region is specified by the first two numbers. “Y” is either “0” for normal, “b” for night, or “c” for festival variants (“e” is used once in the game for an event in the morning for that map). text refers to the stuff in the “text” folder, and includes all “data tables”. Incidentally, several of the tables have no text and specify things such as how orbments are laid out and item statistics. But, of course, the rest of the tables do have Japanese strings in them that were translated and are in the process of being edited. The following is the breakdown of data table text: t_cook , t_fish , t_memo : Cooking Notebook descriptions, Fishing Notebook descriptions, and Detective Notebook tab text. t_ittxt , t_ittxt2 : Item names and descriptions. t_magic : Skill (arts, crafts) names and descriptions. t_town : Location names. This is used in all sorts of places such as the state map, quick travel, area map, save file text, Combat Notebook locations, fishing locations, when you enter a new area, and possibly more. t_shop : Names of shops (item, food, quartz, hotels, medal shops all included). t_record : Achievement/record names and descriptions. t_mgame : Minigame explanation dialogue. t_quest : Quest names, request text, and progress bullet-pointed text. t_book00 through t_book05 : Books. As in readable ones. You’d think this would be the largest portion, but t_quest actually has more text than all of the books combined!

refers to the stuff in the “text” folder, and includes all “data tables”. Incidentally, several of the tables have no text and specify things such as how orbments are laid out and item statistics. But, of course, the rest of the tables do have Japanese strings in them that were translated and are in the process of being edited. The following is the breakdown of data table text: monsnote refers the stuff in the “monsnote” folder, which includes the monster guide, which can be found in your Combat Notebook in Trails from Zero this time around. MS structures : Technically, there is the file “data/monsnote/monsnote.dt2” which contains a sequence of every MS structure in the game. “ MS structure ” is my name for these as they show up in files named “ms#####.dat” in “data/battle/dat/” as well. The data in MS structures is highly detailed and contains all of a unit’s stats inside of battle, including a reference to their sprites, statistics, immunities, efficacies, some AI parameters, and a table of their skills. They also contain strings: their name, their description, and their skills’ names. The reason it appears in both “monsnote” and “battle” appears to be that the game uses “monsnote” for the Combat Notebook only, and “battle” for, well, in-battle analysis and behavior. You could end up with these differing, where it would appear and act different in battle from what your Combat Notebook claims! Of course, we don’t want that so we’ll be using the same MS structures in both locations, and I only count these once in my charts. AS files : “data/battle/dat/” contains additional files other than the MS structures , specifically AS files . These appear in files named “as#####.dat” with corresponding unit IDs to all other locations, and they specify how units and skills behave. They also happen to occasionally hold text! There are only 14 strings translated in here, all of which are “over the head” callouts during battle.

refers the stuff in the “monsnote” folder, which includes the monster guide, which can be found in your Combat Notebook in Trails from Zero this time around. exe / eboot are strings in ED_ZERO.exe and the PSP EBOOT respectively. This is all of the game’s non-sceanrio text which doesn’t classify as needing to go in some kind of table to function. Good examples are the descriptions in the menu, the options menu, some tutorial text, and numerous parts of the user interface. JoseJL has made a way to edit any exe string and very quickly iterate in the PC version! The PSP version has already been hacked and we’ll use the same tools to insert the eboot strings. There is a similar number of lines in the exe and eboot, so only the exe strings are counted in my charts.

/ are strings in ED_ZERO.exe and the PSP EBOOT respectively. This is all of the game’s non-sceanrio text which doesn’t classify as needing to go in some kind of table to function. Good examples are the descriptions in the menu, the options menu, some tutorial text, and numerous parts of the user interface. JoseJL has made a way to edit any exe string and very quickly iterate in the PC version! The PSP version has already been hacked and we’ll use the same tools to insert the eboot strings. There is a similar number of lines in the exe and eboot, so only the exe strings are counted in my charts. In the PC version only, the debug features are preserved. As strings, it appears a little in the exe (but we’ve left this alone), and as a set of several scenario files (the debug rooms) with the region of “A”. With JoseJL’s help, I’ve translated that and we have an English-language debug room for the use of quickly testing many parts of the game! There are several other debug functions such as the F8 menu, jumping (to unstuck yourself), and free camera rotation, which we’ve been using to test many parts of the game.

And here is how they stack up to each other

The numbers are all thein all charts. The spreadsheets now track this number directly (as well as the number of English words in the final edit, which should be interesting to see when the project concludes), and it should be as accurate as I possibly could make it.

From the start of the project, we’ve actually been using a more arbitrary “line” count to calculate the overall percentage, which differs between our edit, the base translation, and the Japanese. To understand why, consider a two-line dialogue box in Japanese. In the edit, that could become three lines or one line. We still use this to calculate the overall percentage, but I’ve corrected the way it functioned so now it properly should use the contents of the spreadsheet and not hardcoded numbers.

As for these graphs, the Japanese character count includes all Japanese and ASCII characters in scenario column E (ultimately using the Google Sheets functions SUM() over the LEN() over every row in the project, which counts characters, as opposed to bytes).

The count excludes all “control codes” which specify, among other things, item display by ID, text color changes, and page breaks.

all “control codes” which specify, among other things, item display by ID, text color changes, and page breaks. The count excludes all “function codes” which specify, among other things, character portraits, text size changes, and various other text properties, including furigana.

all “function codes” which specify, among other things, character portraits, text size changes, and various other text properties, including furigana. The count includes the content of furigana (text above other text, usually indicating how Japanese text should be read or for emphasis).

the content of furigana (text above other text, usually indicating how Japanese text should be read or for emphasis). The count excludes line breaks, as I believe if you’re counting the number of Japanese characters, it doesn’t make sense to count the line breaks along with the text. If I wanted to count English characters, I would want to count the line breaks because reconstructing it as a single sentence would require you to place space characters in those places. Of course, I think it’s not very useful to anyone to count English characters and not English words, where the definition is more clear regarding line breaks once again. Line breaks aren’t words.

More on Text

As some previous posts have noted, more than Zerker are working on this project. There are two people directly editing/proofreading what Zerker has already edited (mostly to fix consistency and style from editing done over a year ago on this same enormous body of text!). Gu4n is working on various parts that can be related to the Kiseki Wikia project, specifically the books Back Alley Doctor Glenn and Crossbell Times. I (Ribose) am working mostly on non-scenario text and scenario consistency. This includes the now completed arts, crafts, and quartz text and soon-to-be completed item text.

Treasure Chests

Okay, so that was interesting and all, but here’s why I made this post. I catalogued the location (in files and in game) and contents of every chest in the game.

We are revealing a submission form here for treasure chest messages, sometimes called chest quotes. To celebrate the fans of this game, we’re opening a form to allow people to submit their own treasure chest messages for the game. There are 230 chests. The form allows you to specify a specific part of the game if you have one in mind (like “near the start” or a specific map like “West Crossbell Highway”), but for the most part, this shouldn’t matter. Please try to make sure that it is reasonably interesting, funny, or silly, and not offensive. Abstract and bizarre is absolutely acceptable! It can be referential humor, but the best chest messages work without any context, as I’m sure many of you have seen from the existing ones in Trails in the Sky FC, Trails in the Sky SC, and Trails in the Sky the 3rd, out on Steam, GOG, and Humble Store for Windows PC.

Please give us your submissions here: https://goo.gl/forms/kM61lGFMhvWB36ow1