Jump to content

Home

Secret of Monkey Island - CD Talkie Edition Project


Espiox
 Share

Recommended Posts

  • Replies 383
  • Created
  • Last Reply

Top Posters In This Topic

So, which version of Monkey Island is this project for now?

Is it for the regular dos cd version of Monkey Island, or is it just for the bugged classic version included in the special edition?

 

The bugs in the SE are in the interpreter, not in the game files (which are otherwise identical to the CD version, AFAIK).

 

Besides, I've been using my original CD version. The intention is to put the voices into the original game, rather than just enabling the voices in the classic mode of the SE.

Link to comment
Share on other sites

Reading your opening post, one might get the impression, that you actually need both, the SE and the DOS CD, which surely is not the case. Thus, you might add this to the FAQ:

Q: Will this work for people who don't have the DOS CD version?

A: Yes. There is a complete copy of the required game data files and CD audio track inside the SE files, which can be easily extracted.

 

and maybe this:

Q: Since it's for the DOS CD version, will it actually run in DOS.

A: No. The DOS version requires CD audio tracks and the game data on the same CD, but you can't access CD audio and speech samples at the same time.

Link to comment
Share on other sites

Maybe you could write how you managed to add multiple variations.

 

Other than that, I think the best way would be to proceed in a fully automated way and eventually add some configuration files for fine-tuning and fixing bugs.

 

For most parts this does not sound complicated at all, as most information and code is available already.

It just boils down to

1) Extract samples from Speech.xwb and convert them to mp3 (or better ogg because of mp3 license issues). => Already possible with unxwb + lame/oggenc

2) Extract strings from MONKEY1.00x using scummtr => Just invoke the tool

3) Process scummtr output and match it to the sample names in speech.info => Nearly done, needs minor tweaks

4) Merge samples in monster.so? and output processed strings => Format is quite trivial so not a big task

5) Write strings back to MONKEY1.00x with scummtr => Just invoke the tool

Link to comment
Share on other sites

For the multiple variations, I had to rewrite the game code in those sections so that it would output a full line based on the combination of multiple random number generators. This way the output appears to the user the same as the normal version of MI, but when you use scummtr to output the text, you will see all the new lines added to the end of the file. Some line orders were also changed.

 

Tools I used were a text editor, a hex editor, scummtr, descumm, Scummbler, ScummPacker, ScummSpeaks, and SCUMM Image Encoder. I also had some help from jestar jokin who wrote those last 4 tools.

Edited by cocomonk22
Link to comment
Share on other sites

Reading your opening post, one might get the impression, that you actually need both, the SE and the DOS CD, which surely is not the case. Thus, you might add this to the FAQ:

Q: Will this work for people who don't have the DOS CD version?

A: Yes. There is a complete copy of the required game data files and CD audio track inside the SE files, which can be easily extracted.

 

and maybe this:

Q: Since it's for the DOS CD version, will it actually run in DOS.

A: No. The DOS version requires CD audio tracks and the game data on the same CD, but you can't access CD audio and speech samples at the same time.

 

Thanks, I've added those to the o.p. along with a Q about the bugs in the new SE interpreter.

 

Also is the SE music coming over as well? or maybe a way we can choose?

 

The music is a relatively simple task compared to the speech, near as I can tell. It's probably just a case of renaming the SE music tracks to match the classic tracklist. When the speech is done, I'll put the instructions for changing the music up there with it for those who want them.

Edited by Espiox
Link to comment
Share on other sites

I think the ultimate batch-file would contain a few questions first, including music replacement yes/no, narrator inclusion yes/no, Spiffy inclusion yes/no and so forth (I don't know if that last one is happening though).

 

And even better than having it just as a batch file would be a nice GUI for it... although of course I've got no idea how to do that.

Link to comment
Share on other sites

If somebody is able to create a GUI tool that would be fantastic. It's way outside my abilities though (I'm stumbling through making this batch file, to be honest).

 

I'm all for Spiffy being an optional addition, if people want that in there.

Edited by Espiox
Link to comment
Share on other sites

A: The DOS version requires CD audio tracks and the game data on the same CD (...).

 

Unfortunately, there is an inconvenient script in Monkey Island checking for the CD, which means, you can't replace the original tracks with the special edition's, since they differ in their playing times.

 

I don't think this is correct? I remember when I was little I played SMI with the game files on the hard drive, using a Rayman CD for audio :p

Link to comment
Share on other sites

I just added a couple of lines of code to my mkspeech tool.

 

It is now able to generate a "monster.so3" directly.

It expects the following files in the same directory:

1) All MISE samples converted to mp3 named as unxwb-mi extracts them from Speech.xwb.

2) A file mi1.txt created from the original Monkey Island with "scummtr -cw -g monkeycdalt -of mi1.txt -H"

3) The speech.info

4) Optionally a mapping.txt that reassigns the mappings generated by the match heuristic.

 

Just run the tool and it should generate

1) monster.so3

2) mi1new.txt

3) missing.txt => Mappings that have not been found or are ambiguous.

 

Use "scummtr -cw -g monkeycdalt -if mi1new.txt -H" to put the strings back into the data files.

 

There are of course a couple of issues..

Biggest problem here also seems the multi line texts.

Using LogicDeLuxe proposal does not seem to work. No matter if the speech signature is placed before or after the \xFF\x03... The line is spoken but the text is not displayed.

 

Any help would be useful regarding this issue....

 

So, what to do next? When you want to use my tool, just fill in the mapping.txt as there are a couple of lines that do not match, improve the tool itself or bring up other ideas on how to make it better.

Edited by jott
Link to comment
Share on other sites

Awesome! I'm trying it out now.

 

By the way, I sent you a PM jott. Just a small question to help me with my batch file.

 

EDIT: I tried the new mkspeech tool (after doing a fresh dump/conversion of all the voices and a new mi1.txt) and it gives me the following error: "Could not find SLP_71_gh-room_9_1.mp3" and closes.

Edited by Espiox
Link to comment
Share on other sites

Now I'm working on adding the choice to convert to mp3 or ogg.
Don't forget FLAC support.
including music replacement yes/no
Remember, you don't need the CD for this, but you may use it. Ripping them from your CD would give better quality than the compressed versions of the SE, so 3 options would be optimal.

- Convert the classic versions music.

- Convert the SE's music.

- Don't convert any music.

 

And who doesn't want Spiffy in there anyways? I think, creating a second game data patch, just to left Spiffy out, isn't worth the effort.

 

And is there a tool which can extract single files from the pak file? Extracting the entire thing, just to get 2 files is a bit overkill. An option for the pak extractor to select the file(s) you want would be useful here.

I don't think this is correct? I remember when I was little I played SMI with the game files on the hard drive, using a Rayman CD for audio :p
I'm aware, there is a no-CD crack somewhere, but I don't think, it would be a good idea to have the user require that. Though, since we're patching the game data files already, we could fix it in the script, I think.
No matter if the speech signature is placed before or after the \xFF\x03... The line is spoken but the text is not displayed.
And if your tool would merge the voice files? Not perfect, I know, but at least somewhat we can call usable. It's basically what FOA does as well. I checked it, it also has text lines with \xFF\x03 in it which only use one voice sample.

For merging, it would be best to extract them as raw pcm and have them converted to mp3/ogg/flac after they are joint as need.

The alternative would be rewriting all the scripts which use such lines. A lot more work, I guess. Were there script changes like this in the speech project? I mean other than those with variables in it?

Link to comment
Share on other sites

I tried the new mkspeech tool (after doing a fresh dump/conversion of all the voices and a new mi1.txt) and it gives me the following error: "Could not find SLP_71_gh-room_9_1.mp3" and closes.

 

This actually should not be a problem. The file is just referred but missing and hence ignored.

You should have a monster.so3 and mi1new.txt nevertheless.

Link to comment
Share on other sites

Remember, you don't need the CD for this, but you may use it. Ripping them from your CD would give better quality than the compressed versions of the SE, so 3 options would be optimal.

- Convert the classic versions music.

- Convert the SE's music.

- Don't convert any music.

Well, since this patch is for the CD-Version, I think there's no need to include an option for the classic music, since that one is already included in the (unpatched) game. The only option has to be, if the classic music should be replaced by the SE-version or not.

 

Edit:

Sorry, I've misread your post. You mean these three options:

 

- just add voice to an original CD-version of the game

- use the classic version (in the SE data-files) with the classic music and add voices to that

- use the classic version (in the SE data-files) with the SE music and add voices to that

 

Okay, that makes sense.

Edited by Laserschwert
Link to comment
Share on other sites

This actually should not be a problem. The file is just referred but missing and hence ignored.

You should have a monster.so3 and mi1new.txt nevertheless.

 

Ah, yes. I am an idiot.

 

Wow, the resulting file makes the opening chat with the lookout very bizarre.

Edited by Espiox
Link to comment
Share on other sites

Woot! I made a stupid mistake. The bug is fixed now and multi line support is working!

 

http://helicoid.de/scumm/mkspeech.zip

 

...I probably need to introduce versioning soon....

 

It works amazingly good... :D of course still some things to polish and iron out.. but that should definitely be the way to go.

 

EDIT: There are some patterns that are not matched yet, like things in quotes. There should be no need to add that to the mapping.txt, as this can be easily added in the lookup function.

Edited by jott
Link to comment
Share on other sites

I need to fix a couple of small problems, but I think I've got a good batch file. It automates everything we've done so far (dumps the wav files, encodes to mp3 or ogg, creates mi1.txt, runs mkspeech and puts the mi1new.txt back into the game). It checks to make sure the required files are there too.

Link to comment
Share on other sites

 Share


×
×
  • Create New...