LucasForums

LucasForums (http://www.lucasforums.com/index.php)
-   SCUMM (http://www.lucasforums.com/forumdisplay.php?f=363)
-   -   Secret of Monkey Island - CD Talkie Edition Project (http://www.lucasforums.com/showthread.php?t=199288)

Espiox 07-20-2009 07:07 AM

Secret of Monkey Island "Talkie" Version Project (Classic SMI + SE Voices)
 
The Secret of Monkey Island: CD Talkie Version
(SoMI Classic with Special Edition Voices)

Download Here!

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, and a similar Monkey Island 2 Talkie thread is here.

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 09:25 AM

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 09:32 AM

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 09:37 AM

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 09:41 AM

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 09:44 AM

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 09:45 AM

Quote:

Originally Posted by plamdi.com (Post 2652395)
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.


Quote:

Originally Posted by jott (Post 2652396)
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

I bet you could cover 98% of the associations automatically without any real effort.

Silvor 07-20-2009 10:25 AM

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

Quote:

Originally Posted by Espiox (Post 2652354)
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:
Quote:

Re-elect Governor Marley.\xFF\x03"When there's only one candidate, there's only one choice."
Changed to a talkie version:
Quote:

\xFF\x0A\x01\x00\xFF\x0A\x00\x00\xFF\x0A\x0a\x00\x FF\x0A\x00\x00Re-elect Governor Marley.\xFF\x03\xFF\x0A\x02\x00\xFF\x0A\x00\x00\xFF\x0A\x0a\x00\x FF\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:
Quote:

Originally Posted by Silvor (Post 2652411)
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

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

Quote:

Originally Posted by Silvor (Post 2652411)
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

Quote:

Originally Posted by Krasas (Post 2652419)
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

Quote:

Originally Posted by Krasas (Post 2652419)
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

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

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

Quote:

Originally Posted by Silvor (Post 2652420)
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

Quote:

Originally Posted by LogicDeLuxe (Post 2652429)
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

Quote:

Originally Posted by jott (Post 2652425)
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.

jott 07-20-2009 12:50 PM

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

Still getting the same problem here.

jott 07-20-2009 01:17 PM

Ooops, sorry. I uploaded the wrong file. Try again please.

Espiox 07-20-2009 01:38 PM

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 04:56 PM

Quote:

Originally Posted by Espiox (Post 2652426)
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 05:02 PM

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 05:33 PM

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 05:41 PM

Quote:

Originally Posted by Silvor (Post 2652594)
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 06:20 PM

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 07:04 PM

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 07:26 PM

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 07:28 PM

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 07:32 PM

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 07:33 PM

Quote:

Originally Posted by LogicDeLuxe (Post 2652630)
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.

Quote:

Originally Posted by SyntheticGerbil (Post 2652674)
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 08:13 AM

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 08:32 AM

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 08:47 AM

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 09:08 AM

Quote:

Originally Posted by Espiox (Post 2652354)
A: The DOS version requires CD audio tracks and the game data on the same CD (...).

Quote:

Originally Posted by LogicDeLuxe (Post 2652429)
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

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.

Espiox 07-21-2009 12:15 PM

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

Quote:

Originally Posted by Espiox (Post 2652937)
Now I'm working on adding the choice to convert to mp3 or ogg.

Don't forget FLAC support.
Quote:

Originally Posted by Laserschwert (Post 2652944)
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.
Quote:

Originally Posted by Rapp Scallion (Post 2652953)
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.
Quote:

Originally Posted by jott (Post 2652999)
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?


All times are GMT -4. The time now is 07:30 AM.

Powered by vBulletin®
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
LFNetwork, LLC ©2002-2011 - All rights reserved.