Lunar SSS English Patch

Translating Lunar Silver Star Story 1.5.1

Here's the notes I have. Doesn't look like much but it could possibly help. I also have a utility relating to extracting files from the .dat files, decompressing the cmp files, and extracting the font. Though I'm pretty sure you have that all covered.
 

Attachments

  • findings.txt
    818 bytes · Views: 236
Thanks! That's very helpful.

I use OS X, so I wrote a couple patches to get it to compile/run on OS X and Linux. The first adds a couple of macros to adjust the names of _MAX_PATH and _stricmp() on Linux/OS X and provides an implementation of strlwr(), and the second changes the C++ compiler variable in the Makefile - I found my system was being confused by CPP being used for something other than the preprocessor.
 

Attachments

  • reimplement_windows_features.txt
    1.1 KB · Views: 372
  • makefile_adjust_cxx_variable.txt
    606 bytes · Views: 378
Here's the notes I have. Doesn't look like much but it could possibly help. I also have a utility relating to extracting files from the .dat files, decompressing the cmp files, and extracting the font. Though I'm pretty sure you have that all covered.

Are the ones for extracting the files from the .dat files the one for the MPEG version that's on your site here?:

http://cyberwarriorx.com/translation-utilities

Or is it something different for files like the SYSTEM.DAT file and what not? If it's the latter I'd be interested in playing around with that and the font extraction tool. Even if I end up not being able to do much with it in the end it would be nice to have easier ways to get to those files.

EDIT:
Also, I was able to convert all the audio files from the IOS version. Almost all of them fit in the space allotted in the ISO except for the following:

M42 - Luna's Lala battle singing The English VA does it a tad slower it seems.
M57 - A generic grunt for one of the male characters. Again the English VA is a bit more drawn out.
M60 - Another grunt, the English VA is a bit longer.
M71 - I think this is Quark saying "Ghaleon, you're..." The Japanese phrasing just takes less time to say and the actor doesn't draw it out as much.
M73 - Kyle's bit when he's dressed as a woman screaming for help. It's maybe a half second longer but there's not much that can be cut out to shorten it.
M88 - Luna's Screams from the end of the game. The English VA just draws the scream out a bit more.

The converted samples are attached.

Also I've started looking at the Working Designs audio clips. These are really going to require some bit of work to make them fit or to make the game be able to handle their larger sizes. For example, Alex's intro speech is still split into 2 files. In the Japanese version they're about 27 and 2 seconds respectively coming in at a total of 29 seconds. This is about the same with XSeeds translation. Working Designs though takes a bit too much liberty with this bit and extends it to 28 seconds and 12 seconds having this monologue clock in now at over 40 seconds. There are a lot of pauses you can chop down, but that second clip is is just way too big.
 

Attachments

  • ConvertedPCMs.zip
    2.7 MB · Views: 409
Last edited:
That's a separate tool. You've already seen the non-MPEG version and how its files are laid out in directories like most Saturn games. The MPEG version packs most of its files into DAT files instead; the tool you linked unpacks them so you can look at them individually.
 
That's a separate tool. You've already seen the non-MPEG version and how its files are laid out in directories like most Saturn games. The MPEG version packs most of its files into DAT files instead; the tool you linked unpacks them so you can look at them individually.

Oh I know that, I was just wondering if the one he mentioned in his post was that tool or a different one.
 
Last edited:
Dug into fonts. The MPEG version of SSS has this extra set of halfwidth characters after the main Japanese VWF:

1ezOMVY.png


Not a full font obviously, and not the same one Working Designs used. Menu-only fonts new to this version maybe?

I also grabbed the English font from the PS1 version of SSS:

lftqb7F.png


I hadn't realized until now it's a 1bpp font, as opposed to the 2bpp font used by the Saturn version. The game automatically draws a stroke around characters, the same way that Magical School Lunar! does. Thinking that for English versions of SSS and EB on Saturn, I'd like to touch up the font to add a couple of extra levels of shading the way that the Japanese Saturn font has.

The font colour depth difference is true for the Japanese PS1 versions too; SSS uses a simplified version of the same font, while EB uses a completely redrawn font.
 
If you can point me to the tools you're using I'd be happy to have a go at converting fonts over. I don't have a whole lot of knowledge when it comes to the more technical stuff like ASM hacking, but I can handle file conversions easily enough if I know what tools to use.

Also I did try playing around with Yabause to see if from CyberWarrior's notes I could possibly figure out and do some memory editing to recreate what he did to get that screenshot earlier, but I can't get the game to run past Alex's intro monologue. It just crashes at that point.

Also I was going to probably take a crack at converting the Working Designs audio files over sometime this week so those are at least ready to go if something can be figured out to make them all fit. Though I was wondering if there were any tools out there that could be used to just recreate the ISO from the raw files so we wouldn't have to mess with inserting them into the existing Japanese ISO and dealing with the TOC limits and what not. I saw in the resources section there was an old dev tool called VCD tools that looked like it might be able to do that, but it looks like it doesn't run on modern Windows. Does anyone here have an experience playing around with that to know if it would be of any use for something like this? If so I could set up a VM or something running an older version of Windows to use it.
 
Last edited:
If you can point me to the tools you're using I'd be happy to have a go at converting fonts over. I don't have a whole lot of knowledge when it comes to the more technical stuff like ASM hacking, but I can handle file conversions easily enough if I know what tools to use.

A sprite artist friend has offered to help out with that - but thanks! It's not just a matter of converting it, it takes manually drawing new shading.

Also I did try playing around with Yabause to see if from CyberWarrior's notes I could possibly figure out and do some memory editing to recreate what he did to get that screenshot earlier, but I can't get the game to run past Alex's intro monologue. It just crashes at that point.

Yeah, Yabause freezes at that point in both versions of the game. :/ The only way around it is to create a savegame in another emulator, like Mednafen, and transfer it over to Yabause. Unfortunately since Yabause is the only emulator with MPEG support, that's not an option for the MPEG version.

EDIT: I've attached a savegame created in Mednafen, right after you meet Luna in the spring for the first time. If you import this into your Yabause save RAM using ss-save-parser (https://github.com/hitomi2500/ss-save-parser), you can walk around in Burg just fine.

EDIT 2: Realized what that English font is for! It's for the ocarina sound test, which is new to the MPEG version. Some song titles are in English; the font includes only enough letters for those titles.
 

Attachments

  • lunar_save.zip
    759 bytes · Views: 347
Last edited:
If you can point me to the tools you're using I'd be happy to have a go at converting fonts over. I don't have a whole lot of knowledge when it comes to the more technical stuff like ASM hacking, but I can handle file conversions easily enough if I know what tools to use.

Also I did try playing around with Yabause to see if from CyberWarrior's notes I could possibly figure out and do some memory editing to recreate what he did to get that screenshot earlier, but I can't get the game to run past Alex's intro monologue. It just crashes at that point.

So I took a look at my font tool and it's just a simple crude font -> image file utility. It won't help with the font editing and honestly it looks like I wrote it in like five minutes so I'd rather just leave it alone. There's likely better utilities out there for creating a font.

By the way, so long as you have a background in programming, learning SH2 assembly really isn't that difficult. Just grab the
"SH-1/SH-2 Programming Manual" and get reading. All the opcodes are described in pseudo-c code. I also found it really helpful to open up an emulator like Yabause and step through code with the sh2 debugger.
 
I realize I haven't posted for a bit, so I figured I'd update with my current progress.

There's been some behind-the-scenes work with MSL and SSS I'm not quite at the point of sharing, but it's coming along. I've also just finished the first pass of editing all of the FMV audio, including the bromides. I've done both dubs for both the Cinepak and MPEG releases of the game - so, that's four sets of audio total. Since they're fully timed to the Saturn FMVs, they're ready to be remuxed. Since I'd already written a tool for remuxing audio into Cinepak video, it's pretty much in usable shape.

Unfortunately, while working on that, I encountered a few FMVs which were re-edited by Working Designs in ways that makes their audio incompatible with the original video. They are:

  • AN004 - The final two shots of Quark speaking were repeated in order to fit in more dialogue.
  • AN011 - The entire video was slowed down in order to fit in more dialogue.
  • AN014 - Ghaleon's lip flaps from 0:16 onward were looped an extra eight seconds in order to fit in more dialogue.
  • AN019 - Lemia's lip flaps from 0:19 onward were looped an extra three seconds in order to fit in more dialogue.
  • AN021 - Ghaleon's mask's glowing is extended by an extra six seconds in order to fit in more dialogue.
  • AN031 - The audio track is completely different. It stays at a black screen at the beginning, before the fade-in, longer in order to accommodate the different intro. I handled this one by fading into the audio a bit later.
There were other changes, obviously, but not in ways that made the editing incompatible. Not yet sure how I'm going to handle the first five of those, though trimming the dialogue is probably possible.
 
I unfortunately haven't had much time to go into converting the Working Designs audio files.

That's a bit of a bummer about the cutscenes though. But to be honest knowing Working Designs it doesn't surprise me. One thing you could do is use the PC versions video files as a master to try and do a similar edit then re-encode it. For the MPEG version that should be simple enough, for the Cinepak version though I'm not sure if the old tools that are lying around really work too well or if they're compatible with the Cinepak driver for the game.
 
Yeah, reencoding FMVs from scratch seems like it'd be a real pain, but it may be the only good option. :/

At any rate, here's a demo of FMV insertion in the Cinepak version!

 
I've had limited success in the past using the AviToSaturn tool to get Cinepak videos, but the audio is always garbage. Though if you have a tool that can replace the audio, perhaps that doesn't really matter.
 
Been awhile since I posted; been busy and also haven't been working on much that I can show off yet. But! I've made good progress with the text. I've got the control codes documented, and also wrote up a tool to rebuild the font. It currently requires manually hacking it into RAM to test - I don't have a Sega CMP compression tool yet (just a decompression tool). But it works, and the VWF doesn't require any hints from me as to character width. Here's a sample screenshot:

4D1IUK7.png


People with keen eyes might notice this is slightly different from the PS1 version. Aside from the nicer font, the spacing between characters is wider, so I had to split the dialogue out onto three lines; the Japanese version has more pixels of spacing between characters. I'll fix that soon.

(The punctuation is messed up, by the way, because the updated font doesn't have punctuation yet - the characters you see here are from the Japanese font set and are designed for full-height characters.)

Here's the repo for the current working version of the font generation tool: https://github.com/mistydemeo/sss_fontbuild
 
Hello, I just created an account to say thank you

I have been waiting for this since 1996, I was the proud owner of a Saturn and I always dreamed of playing this game in English.
It was hard to resist the temptation of playing this on a psx but something always told me to wait, and the wait seems to be getting to an end

I wish I could help in any way, but I am useless when it comes to programing (I am better with hardware) ; in any case, thanks again, thanks TrekkiesUnite118, thanks Ms. Tea and thanks everybody involved in this beautiful project
 
Made some more progress in the last bit!

I've been working on FMV tooling on and off for a few months now, and it's finally paying off. I've been adding support for creating Saturn FMVs to an open source program called FFmpeg; it's basically the video swiss army knife, with support for a huge number of formats, and it's used by a ton of other tools. FFmpeg has had support for decoding Saturn FMVs, and encoding the video codec that the Lunar games use, but it doesn't support actually putting it all together into a Saturn-playable format. I've been writing what's called a "muxer" - something which takes separate audio and video streams, and combines them together into a full video file. My goals for this are:

  • Support taking the original video as-is, and adding new audio to it. While I already had my own tool to do this, FFmpeg will be a lot more flexible and will let me do things like use higher-quality audio than the original game had.
  • Support encoding brand-new video. This would be useful to do things like add subtitles to MSL, and to create new videos for SSS which match the timing from the English PS1 version.

The first of these now works perfectly! The second is still in-progress because FFmpeg's Cinepak encoder isn't 100% compatible with the Saturn yet, but I'm looking into fixing that as a followup. My muxer is complete now, so I've submitted it to FFmpeg and I'm hoping it'll get accepted.

The Cinepak encoding is still in kind of a weird state. My first experiment didn't go so well:

LTrjrQ2.png


Silver Star Story crashed while decoding the first frame! Doesn't look so good, huh? I eventually realized that FFmpeg's default Cinepak settings are a bit different from all of the Saturn videos I've seen, and so it wasn't going to be compatible. I tested setting one option to match what I've seen in Saturn videos, and got a bit further:

lqIyN3g.png


SSS got about two frames in before crashing this time. I'm going to experiment with a few encoding settings to see if I can find something that's compatible. If not, I'll examine the qualities of Saturn Cinepak movies a bit more closely and figure out what's different, then look at adding an option to FFmpeg that'll make its Cinepak encoding Saturn-compatible.
 
Back
Top