Opened 20 years ago

Closed 20 years ago

Last modified 5 years ago

#8292 closed patch (wontfix)

Voice & subtitles in Simon2

Reported by: SF/jellby Owned by: Kirben
Priority: normal Component: Engine: AGOS
Version: Keywords:
Cc: Game: Simon the Sorcerer 2


Many people, myself included, would like to have both voices and subtitles in Simon2. Since this was not supported in the original interpreter, it will probably never be a feature in ScummVM. Anyway, I've been hacking around with the files and I think I've reached the point where the hack "sort of" works.

It's an ugly hack (just commenting out some lines), but it's the best I could do. Sometimes the subtitles disappear too quickly to be properly read, but it's better than nothing, most of the time it seems to work quite fine. Please understand that this is by no means official and I'm not an expert programmer, so... you know.

To apply the patch you need the sources, of course. After unzipping, run (under linux)

# patch -p0 < simon.cpp # patch -p0 < items.cpp

It should be fine, the changed lines are labelled "ifg".

Ticket imported from: #829785. Ticket imported from: patches/397.

Attachments (1) (1.4 KB ) - added by SF/jellby 20 years ago.
Ugly patch for simon.cpp and items.cpp

Download all attachments as: .zip

Change History (9)

by SF/jellby, 20 years ago

Attachment: added

Ugly patch for simon.cpp and items.cpp

comment:1 by Kirben, 20 years ago

Owner: set to Kirben

comment:2 by SF/jellby, 20 years ago

I was playing a bit more and found some hang-ups in the game, where a text line disappeared too quickly, before the character was finished talking.. .

I've been able to solve it with this change in simon.cpp (around line 3990):

------------------------------------------ if (speech_id == 0xFFFF) { //ifg // if (_subtitles) // return; if (!(_bit_array[0] & 0x4000) && !(_bit_array[1] & 0x100 0)) { _bit_array[0] |= 0x4000; _variableArray[100] = 5; start_vga_code(4, 1, 0x1e, 0, 0, 0); o_wait_for_vga(0x82); // next line added _skip_vga_wait = true; } // _skip_vga_wait = true; ------------------------------------------

But, still, there are some times where "_skip_vga_wait" is not needed, but I don't know how to catch them. For example:

- When talking to the man tied to the rock in the island, "I'm being tortured" doesn't even appear". The skip is not needed.

- When the two yellow beasts appear in Calypso's shop, the skip is needed, otherwise the game hangs.

comment:3 by Kirben, 20 years ago

Resolution: wontfix
Status: newclosed

comment:4 by Kirben, 20 years ago

I found out recently that the Amiga and Macintosh ports of Simon the Sorcerer 2 actually offered the option of combined speech and subtitles. The 't' key switched between speech and subtitles, while the 'v' key switched between subtitles only and combined speech/subtitles. These ports got around the timing problem by playing speech but just using the timing of the subtitles. I have added support to ScummVM using that trick, subtitles should always be shown on screen for long enough now but speech gets a bit cut off at end sometimes. Currently combined speech and subtitles is enabled by default, subtitles can be disabled by the usual nosubtitles option from command line or config file. If anyone is still interested in having a subtitles only option, than I can make combined speech and subtitles optional via 'v' key like originals.

comment:5 by SF/jellby, 20 years ago

I guess it's not possible to use whichever timing is longer (subtitles or voice), right?

comment:6 by SF/jellby, 20 years ago

Hmmm... Subtitles can be forced to stay longer, so that the voice is not cut, with F3, but then the game hangs in the island, when Simon finds the "weirdo" kid, after he says "It's him again".

Should we talk about this here? In the bugs section? In the forums? By e-mail?

comment:7 by Kirben, 20 years ago

That is actually an unrelated bug, it occurs in simon2dos under ScummVM and even in original simon2dos. Best to just post issues to forums for now, so I can double check against originals. My email is a bit unreliable at the moment, it can delay messages up to a few days lately.

comment:8 by digitall, 5 years ago

Component: Engine: AGOS
Game: Simon the Sorcerer 2
Note: See TracTickets for help on using tickets.