View Full Version : Symphonic Rain Font Hacking

2007-06-12, 16:11
I've tackled the hacking portions of a Symphonic Rain translation project and have met with varying degrees of success. Aside from the difficulties in retrieving the scripts and recompiling the pak archives (which is now done easily), I have run into some snags with the kgo script format. This is all i am certain about within the format:

Text start offset stored at $28
Length from script start (value listed at $28) to EOF (it actually technically points to 1 byte AFTER the file) stored at $2C

Each line is prefixed by two bytes, the first of which has some special meaning (perhaps an actor name or style tag), the second of which is null. The lines are also suffixed by two null bytes (the engine stops reading the current line upon seeing this).

24 characters across max and only double width characters are rendered.

What I want to know is if there is any good way to use single-width characters or change the character encoding to something more useful than SJIS. Preferably I hope to persuade the engine to read 48 single width characters rather than the 24 doubles as 24 characters isn't enough for even the most terse translations of most lines.

Another possible solution is determining the meaning of the two bytes before each line and manipulating that to display a single text even in multiple lines (something that all attempts to do so far resulted in the wrong text per event and an eventual crash).

Basically everything before the text script that isn't mentioned is treated as a black box until i can determine its purpose.

If anyone can offer me advice or can help me out, I would appreciate it. I have very little experience in assembly programming and probably cannot hack the executable myself if that becomes necessary.

EDIT: Sorry, it was a bit late when i posted this and there are some resources I would like to add.

Home of the pakcomp and pakdecomp tools:

Pakcomp quick and dirty:
Run pakcomp. Highlight and drag ALL files belonging in the archive onto the little window. When the next screen appears, select the third option where you can type "Script" into the field to create a "Script.pak" when you continue. Wait a few seconds and then hit the button to close the program. The Script.pak file will be sitting in the folder with the files you dragged into it (NOT the pakcomp folder unless they are the same).

You should copy the spi file from pakdecomp into your susie folder (or whatever alternative you may use). With that you can simply copy the files out of the susie display window to retrieve the raw scripts intact. Using the actual pakdecomp utility will result in the retrieval of the scripts in a somewhat less useful txt format that cannot be converted directly back to KGO (but may be useful to hand a translator).

The "demo" on the official site is only an mpg movie.

Rasqual Twilight
2007-06-16, 05:58
Ask if you need assistance.

Regarding the script encoding: it is assumed that the user locale uses either one of CP932, CP950 or CP936, but it is possible to hack the executable to convert UTF-8 data on-the-fly (which I've done, but not published). But, there is no automated word-breaking facility and you need to set the line breaks manually.

Edit: Note, even when hacked, the executable has some undesirable effects I have not corrected (flipping book animation positioning, weird text clipping "feature")


29 << Provided as-is, my documentation about .kgo

2007-06-19, 18:10
Thanks, your response is much appreciated!

I will let you know how it goes (should have time to work on it tomorrow afternoon) and give as much helpful feedback as possible.

Rasqual Twilight
2008-02-06, 10:08
I'm running some tests here, I'd like to gather opinions on which font to choose for the game. Do not mind the crappy translation, I was too lazy to reinsert the script :p

DejaVu Sans vs Liberation Sans - DejaVu Sans is a nice sans-serif font, maybe a bit too large, though. Liberation Sans' redist terms are iffy!?
http://aycu39.webshots.com/image/44358/2000542586010361373_th.jpg (http://aycu39.webshots.com/image/44358/2000542586010361373_rs.jpg)

Linux Libertine OTF vs DejaVu Serif - IMO, DejaVu Serif is even better than the sans-serif.
http://aycu12.webshots.com/image/41211/2000548396238960330_th.jpg (http://aycu12.webshots.com/image/41211/2000548396238960330_rs.jpg)

Palatino Linotype vs Cambria (Cambria not redistributable)
http://aycu11.webshots.com/image/44170/2000587013991328589_th.jpg (http://aycu11.webshots.com/image/44170/2000587013991328589_rs.jpg)

Palatino Linotype vs Constantia (Constantia not redistributable) - Palatino Linotype is shipped starting Windows 2000. Those two very much look alike.
http://aycu19.webshots.com/image/41738/2000504137822710112_th.jpg (http://aycu19.webshots.com/image/41738/2000504137822710112_rs.jpg)

Palatino Linotype vs DejaVu Serif - these two ones match up, with an advantage to the latter re: its availability and licensing terms (http://dejavu.sourceforge.net/wiki/index.php/License) over Palatino's (http://cg.scs.carleton.ca/~luc/palatinoquality.html).
http://aycu10.webshots.com/image/43169/2000546808694605416_th.jpg (http://aycu10.webshots.com/image/43169/2000546808694605416_rs.jpg)

Palatino Linotype vs "Book Antiqua" - BA is not installed on (my) Windows XP by default, it is in Win98/old Office, before Microsoft licensed the font.
http://aycu01.webshots.com/image/42120/2001399272819038306_th.jpg (http://aycu01.webshots.com/image/42120/2001399272819038306_rs.jpg)

BodoniFLF-Italic vs BodoniFLF - If an italic font is acceptable, the following shows BodoniFLF whose regular version is disappointing (at small sizes):
http://aycu07.webshots.com/image/42446/2004608362574962274_th.jpg (http://aycu07.webshots.com/image/42446/2004608362574962274_rs.jpg)

Bienetresocial vs Essai - Two extremely legible fonts by the same author. Sweetness.
http://aycu26.webshots.com/image/42585/2003069611580280026_th.jpg (http://aycu26.webshots.com/image/42585/2003069611580280026_rs.jpg)

As an extra, here's Verlag Book vs Verlag Bold ($hundreds font family)
http://aycu04.webshots.com/image/42803/2000564676465591896_th.jpg (http://aycu04.webshots.com/image/42803/2000564676465591896_rs.jpg)

Now, I'd like to hear what you think.