Note: LucasForums Archive Project
The content here was reconstructed by scraping the Wayback Machine in an effort to restore some of what was lost when LF went down. The LucasForums Archive Project claims no ownership over the content or assets that were archived on archive.org.

This project is meant for research purposes only.

Secret of Monkey Island - CD Talkie Edition Project

Page: 1 of 8
 Espiox
07-20-2009, 7:07 AM
#1
The Secret of Monkey Island: CD Talkie Version
(SoMI Classic with Special Edition Voices)

Download Here! (http://gratissaugen.de/ultimatetalkies/)

This thread was dedicated to inserting the SoMI Special Edition voicework into the original CD version of the game, creating the "Talkie" version that never was. Earlier discussion can be found in the Hack Ideas thread (http://www.lucasforums.com/showthread.php?t=199224), and a similar Monkey Island 2 Talkie thread is here (http://www.lucasforums.com/showthread.php?t=205508).

F.A.Q.:

Q: What is the aim of this project?
A: The aim is to put the voices from the Special Edition into the original PC CD version of the game, like a classic talkie release (like DotT, Fate, etc.). We are not simply making the voices work in the Classsic mode of the SE.

Q: Are you including the narrator's lines?
A: I, and I'm sure many other fans, felt that the narrator in the SE is too goofy and over-the-top. More importantly, it's totally unnecessary. For that reason, I don't intend to include the narration. If there's enough demand, we could possibly put together a version with him included though.

Q: Will this work for people who don't have the Special Edition?
A: No. You will need the Special Edition game in order to access the voice files. For legal reasons we cannot distribute the voice files (or any other game files).

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.

Q: If I use the CD version game files embedded in the Special Edition, will the SE bugs be present?
A: No. The bugs in the Special Edition Classic Mode come from the new interpreter, not the actual data files.

Q: Since it's for the DOS CD version, will it actually run in DOS?
A: It does, except that CD audio is not supported, which is a limitation of native SCUMM V5. However, the patched game adds support for MT-32 and General MIDI.

Q: Do you have any other features planned (like including SE music, "fixing" the VGA version, etc.)?
A: The current patch fixes quite a lot of bugs, some which were introduced with the enhanced CD, and even some present in every version of the game available. The patch converts both soundtracks ready to be used with ScummVM.
 Fealiks
07-20-2009, 9:25 AM
#2
Good work, I'm looking forward to it!

On the second point, make sure the newly created file is of the same format as the others (.wav, .mp3, etc), and make sure the file name is what the program is expecting.
 Laserschwert
07-20-2009, 9:32 AM
#3
Would it be possible to offer this thing as a "patch"? That way only people who own the SE will be able to pull this off, and there's no piracy involved (which would occur when sharing the actual speech files). Maybe a batch-file that pulls the speech files out of the SE's PAK, converts them accordingly (and possibly combines split lines into a single file) and re-inserts them into the CD-version of the game using ScummSpeaks.

This would allow to share this project without running into legal trouble.
 Espiox
07-20-2009, 9:37 AM
#4
Fealiks: The file is the same format and name as the others, but SS gives me an "Unrecognized sound file type" error.

Laserschwert: Once I've solved the split dialogue issue, I'll look into sharing it. Should be relatively simple though.
 plamdi.com
07-20-2009, 9:41 AM
#5
Just please, for the love of all things good, do not add V/O on the narration... it sounds so horrible that I can't imagine anything worse.
 jott
07-20-2009, 9:44 AM
#6
Which format are you using? Ogg, FLAC or mp3?

And how did you create the mappings? All manually or did you use the information from speech.info to generate a basic layout?

It would be good to know how many exceptions there are. I'm all for an automated process which would ease redistribution. It's not a real problem to join multiple wav files for example given some previous definition (or even a heuristic that matches multiple lines).
 Espiox
07-20-2009, 9:45 AM
#7
Just please, for the love of all things good, do not add V/O on the narration... it sounds so horrible that I can't imagine anything worse.

Don't worry, I have no intention of adding the Narrator to this version.


Which format are you using? Ogg, FLAC or mp3?

And how did you create the mappings? All manually or did you use the information from speech.info to generate a basic layout?

It would be good to know how many exceptions there are. I'm all for an automated process which would ease redistribution. It's not a real problem to join multiple wav files for example given some previous definition (or even a heuristic that matches multiple lines).

I'm using mp3 right now.

I'm using the info from speech.info to find the right audio file and then I'm matching it to the text pulled from the CD version (using scummtr) manually using ScummSpeaks.
 jott
07-20-2009, 10:19 AM
#8
I bet you could cover 98% of the associations automatically without any real effort.
 Silvor
07-20-2009, 10:25 AM
#9
Seeing as the classic version included in the Special Edition is quite buggy, I for one am really happy that this project covers the dos version of the game.
Good luck with your work Espiox, really hope it goes well.
 LogicDeLuxe
07-20-2009, 10:40 AM
#10
Some lines of speech are broken down into two or three audio files (eg. "Yikes! / Don't sneak up on me like that!" or "Ah...yessir... / --yech-- / ...sure does at that."). ScummSpeaks only seems to allow one audio file per line of text. I've tried pasting the audio files together in Audacity but ScummSpeaks won't let me use the file.That's easy to solve. Just insert them like this:
Original scummtr output:Re-elect Governor Marley.\xFF\x03"When there's only one candidate, there's only one choice."
Changed to a talkie version:\xFF\x0A\x01\x00\xFF\x0A\x00\x00\xFF\x0A\x 0a\x00\xFF\x0A\x00\x00Re-elect Governor Marley.\xFF\x03\xFF\x0A\x02\x00\xFF\x0A\x00\x00\xF F\x0A\x0a\x00\xFF\x0A\x00\x00"When there's only one candidate, there's only one choice."Works fine with scummtr. Though, unfortunately scummspeaks doesn't handle any extra voice samples within the line.
If your tool could also just build the monster.so3/sog/sof by itself, we don't need scummspeaks for this.

EDIT:
I for one am really happy that this project covers the dos version of the game.However, it would be ScummVM only. The native DOS interpreter plays CD audio and can't load voice samples at the same time.

Thinking of this, would it be possible to replace CD audio with the MIDI tracks of the floppy version? That would make a true DOS talkie CD possible.
 Espiox
07-20-2009, 10:53 AM
#11
Right, I've gotten a combined audio file into the game (I combined the wavs and then converted to mp3, rather than trying to combine the mp3 files).

And it seems to work! Not perfectly timed to the subtitles though.

EDIT: LogicDeLuxe: Whoops, I didn't see your post. I'll try that out too.
 Krasas
07-20-2009, 11:00 AM
#12
Seeing as the classic version included in the Special Edition is quite buggy, I for one am really happy that this project covers the dos version of the game.

Wait, no, this is wrong. Espiox mentions in the op that he is working on the CD version of the game, and that one is exactly identical to the classic one used in the SE version.

Edit: By the way, good luck with the project Espiox!

From what I understand you are doing work similar to the Monkey Island Speech Project, so you could avoid much work if you got them to help you with issues they have already resolved.
Also, I think jott is right. It would really help you, if you came up with a script or programm to do most of the work automatically for you, because the manual way sounds a little too time consuming.
 Silvor
07-20-2009, 11:03 AM
#13
Wait, no, this is wrong. Espiox mentions in the op that he is working on the CD version of the game, and that one is exactly identical to the classic one used in the SE version.

There's some inventory graphics that's switched up in the Sepcial edition (both classic and enhanced) and also the music on the classic version is bugged as well, like the voodoo lady music keeps on playing after you exit the voodoo house.
Belive me I've experienced those things first hand.
It also seems that the classic version in the Special edition runs more choppy than the regular dos version ever did.

If there was any way this could run without scummvm that would just be amazing. But if scummvm is the only way to go so be it.
I always prefer to use the original dos versions of the games myself.
 LogicDeLuxe
07-20-2009, 11:09 AM
#14
Espiox mentions in the op that he is working on the CD version of the game, and that one is exactly identical to the classic one used in the SE version.True for the game data. Not true for the interpreter, though. That one is indeed known to be buggy.
 jott
07-20-2009, 11:16 AM
#15
Here is a little tool that looks up strings from the speech.info and a mi1.txt (scummtr.exe -w -g monkeycdalt -of mi1.txt -H) in the same dir and outputs a "match.bat" with "ren sample.mp3 linennumber_sample.mp3". It splits up multiple lines (\0xff\0x03).

It's a *very* dirty hack but should do the job.

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

This can be used as a starting point for generating a monster.sou - even with multiple lines like LogicDeLuxe proposes.
 Espiox
07-20-2009, 11:17 AM
#16
LogicDeLuxe: I tried your method (inserting the extra speech) but with the Cobb dialogue I tried, the two sections end up overlapping, because the subtitles move on before Cobb is done with the first bit.

With the file combining method, the speech doesn't overlap, but the subtitles still move on before he gets there.
 LogicDeLuxe
07-20-2009, 11:29 AM
#17
If there was any way this could run without scummvm that would just be amazing.You could try the interpreter version from the Fate of Atlantis demo. Rename it to monkey.exe. It is compatible to the Monkey Island resources. 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.
Another problem might be the savegame menu. Not all versions of the interpreter have the ability to select a path on a different drive, which is required for SCUMM V5 CD versions. I didn't check.
 Silvor
07-20-2009, 11:42 AM
#18
You could try the interpreter version from the Fate of Atlantis demo. Rename it to monkey.exe. It is compatible to the Monkey Island resources. 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.
Another problem might be the savegame menu. Not all versions of the interpreter have the ability to select a path on a different drive, which is required for SCUMM V5 CD versions. I didn't check.

I'll give that a shot if this project gets finished and released, thanks.
 Espiox
07-20-2009, 12:23 PM
#19
Here is a little tool that looks up strings from the speech.info and a mi1.txt (scummtr.exe -w -g monkeycdalt -of mi1.txt -H) in the same dir and outputs a "match.bat" with "ren sample.mp3 linennumber_sample.mp3". It splits up multiple lines (\0xff\0x03).

It's a *very* dirty hack but should do the job.

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

This can be used as a starting point for generating a monster.sou - even with multiple lines like LogicDeLuxe proposes.

I've got my mi1.txt and speech.info in the same folder, but that tool doesn't seem to work for me (or I'm being a dumbass again). I screen-capped the windows here (http://www.espiox.net/uploads/mkspeech.jpg).
 jott
07-20-2009, 12:50 PM
#20
Try again with an updated version: http://helicoid.de/scumm/mkspeech.zip)
In the end there need to be some more tweaking done like replacing " => ' and ^ => ... (or vice versa) and join multiple lines on an \xFF\xDD\x64\x00.
Ultimately it should directly generate the monster.sou I guess (which shouldn't be that hard to do).

P.S.: As mentioned this is more of a hack than a useful utility. It's just to show how easy you can generate a mapping from the speech.info to the original lines.
 Espiox
07-20-2009, 12:59 PM
#21
Still getting the same problem here.
 jott
07-20-2009, 1:17 PM
#22
Ooops, sorry. I uploaded the wrong file. Try again please.
 Espiox
07-20-2009, 1:38 PM
#23
Okay, it seems to have worked this time.

EDIT: It looks like this project requires somebody with a little more coding know-how than me at it's wheel. I couldn't even code a "Hello World" app, yet this project needs a tool that can merge audio files, and generate the MONSTER.SOU file. I'm happy to help out and supply info from what I've done so far though, if anybody else wants to finish this.
 LogicDeLuxe
07-20-2009, 4:56 PM
#24
LogicDeLuxe: I tried your method (inserting the extra speech) but with the Cobb dialogue I tried, the two sections end up overlapping, because the subtitles move on before Cobb is done with the first bit.I don't know anything about the lip sync entries. I don't think scummspeaks generates any meaningful data for them. Maybe tweaking those could solve this issue.

Combining samples is an option with slightly off subtitle sync, right. Another side effect would be the need for some duplicated. There are some multi-sample-lines which have only some of the samples in common with other lines. Those needs to be duplicated with this method. Those aren't too many lines, though.

The best thing would be a method which automatically could decompile the complete game, patch the scripts to divide those multi-sample-lines in individual speak events, and recompile the entire game.

Too bad, there is no such convenient tool like Deutex for Doom, which not only extracts all resources in individual files (like scummtr does), but also converts them to usable formats and back so that a wide base of existing software can be used to modify them.
 Espiox
07-20-2009, 5:02 PM
#25
The Speech Project hacks that cocomonk22 sent me separated the alternate speech lines (see the first bullet in the o.p.). I guess it's possible that a similar method could be used to separate the dialogue lines?
 Silvor
07-20-2009, 5:33 PM
#26
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?
 Espiox
07-20-2009, 5:41 PM
#27
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.
 LogicDeLuxe
07-20-2009, 6:20 PM
#28
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.
 jott
07-20-2009, 7:04 PM
#29
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
 cocomonk22
07-20-2009, 7:26 PM
#30
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.
 SyntheticGerbil
07-20-2009, 7:28 PM
#31
I fully support this!

Any chance you can put the Spiffy the Dog portrait back in the game too or is the only work going to be done in Scummspeaks?

Also is the SE music coming over as well? or maybe a way we can choose?
 cocomonk22
07-20-2009, 7:32 PM
#32
I included my Spiffy addition with the patches I sent to Espiox. That's what SCUMM Image Encoder was for. I also had to create a new room for the Spiffy closeup scene.
http://www.youtube.com/watch?v=k6K8Ckzg9bI)
 Espiox
07-20-2009, 7:33 PM
#33
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.
 Espiox
07-21-2009, 8:13 AM
#34
I've started trying to put together a batch file to automate the installation. So far it extracts the wav files from Speech.xwb. Now I'm working on adding the choice to convert to mp3 or ogg.
 Laserschwert
07-21-2009, 8:32 AM
#35
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.
 Espiox
07-21-2009, 8:47 AM
#36
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.
 Rapp Scallion
07-21-2009, 9:08 AM
#37
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
 jott
07-21-2009, 11:51 AM
#38
I just added a couple of lines of code to my mkspeech (http://helicoid.de/scumm/mkspeech.zip) 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 (http://helicoid.de/scumm/unxwb-mi.zip) 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.
 Espiox
07-21-2009, 12:15 PM
#39
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.
 LogicDeLuxe
07-21-2009, 12:43 PM
#40
Now I'm working on adding the choice to convert to mp3 or ogg.Don't forget FLAC support.including music replacement yes/noRemember, 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 :PI'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?
 jott
07-21-2009, 1:00 PM
#41
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.
 Laserschwert
07-21-2009, 1:03 PM
#42
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.
 MusiclyInspired
07-21-2009, 1:07 PM
#43
Would this project work with the original DOS version and work with a 486 computer? Or is it using ScummVM? Or both?
 Laserschwert
07-21-2009, 1:12 PM
#44
Would this project work with the original DOS version and work with a 486 computer? Or is it using ScummVM? Or both?
Read the FAQ!!! :mad:

:D ;)

No this version needs ScummVM, since the DOS-running-version doesn't allow speech and CD-music at the same time.
 Espiox
07-21-2009, 1:23 PM
#45
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.
 jott
07-21-2009, 1:44 PM
#46
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.
 jott
07-21-2009, 1:45 PM
#47
Wow, the resulting file makes the opening chat with the lookout very bizarre.

Hehe, indeed. But it should be easy to fix when adding the correct lines to mapping.txt...
 MusiclyInspired
07-21-2009, 1:50 PM
#48
Read the FAQ!!! :mad:

:D ;)

No this version needs ScummVM, since the DOS-running-version doesn't allow speech and CD-music at the same time.

Then I don't understand why needing the CD is a priority since ScummVM actually works better without using the CD....
 Giant Graffiti
07-21-2009, 1:54 PM
#49
^^^

You don't use the CD, just the CD version.
 Espiox
07-21-2009, 1:56 PM
#50
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.
Page: 1 of 8