Opened 13 years ago

Closed 13 years ago

#2793 closed defect (invalid)

BS1: Speech fails on "CD2" in v0.9.0 but not in 0.7.0

Reported by: SF/dead2 Owned by:
Priority: normal Component: Engine: Sword1
Keywords: Cc:
Game: Broken Sword 1

Description

I have played sword1 for several hours using v0.9.0, but have stumbled upon a bug. It works just fine when testing in v0.7.0.

I think it occurs when changing to the CD2 speech file, but I'm not sure. The game works just fine up until marib, and just as fine when on bulls'head. But not after the escape, back in nico's appartement suddenly the speech doesn't play and the text just flashes by rapidly. This is the same for the flowerlady atleast, have not tested any further but would assume the whole CD2 part is affected.

The console window shows the following message for each time it tries to play a speech file. "WARNING: MP3InputStream: Failed to read MP3 data!"

I thought this was due to me using Ogg Vorbis compressed speech files, so I put back the original speech1.clu and speech2.clu (and removed the speech1.cl3, speech1.clv and speech2.clv). This does not have any effect for either version.

So, why does it want MP3 compressed files instead of raw or OGG? I guess some simple error somewhere..

Ticket imported from: #1546818. Ticket imported from: bugs/2793.

Change History (7)

comment:1 by fingolfin, 13 years ago

Summary: Regression: Speech fails on "CD2" in v0.9.0 but not in 0.7.0BS1: Speech fails on "CD2" in v0.9.0 but not in 0.7.0

comment:2 by eriktorbjorn, 13 years ago

If it complains about MP3 data, and the second speech file is somehow responsible, then surely there has to be a speech2.cl3 somewhere, as well?

ScummVM 0.9.0 tries harder to find data files than 0.7.0 did, so one possibility (albeit maybe a bit far-fetched) would be that it manages to find a speech2.cl3 file belonging to Broken Sword 2 instead of Broken Sword 1. I don't know for sure that this would cause the problem you describe, though.

comment:3 by SF/dead2, 13 years ago

I have not installed BS2 on that computer so that would be unlikely..

Okay, I had a little more time to test today. And since you said it tries harder to find it in the new version I figured I should move the unused files far away, not just into a subfolder.

So, I figured out that 0.9.0 works fine with the original SPEECH1.CLU and SPEECH2.CLU.

But it does not work when compressed with OGG. I'm not sure how it decides what kind of files to use, but when I compressed using the 0.9.0 compression util for sword1 I ended up with the following files: SPEECH1.CLV (91MB) SPEECH1.CL3 (53KB) SPEECH2.CLV (90MB) Am I missing a SPEECH2.CL3? I guess it's used as an index or something?

I used mostly default settings for the compression, except I used OGG quality setting 5 instead of 3.

comment:4 by SF/dead2, 13 years ago

I forgot to mention that there are no SPEECH2.CL3 on this system at all.

Maybe it just assumes there is a SPEECH2.CL3 when it sees the SPEECH1.CL3?

comment:5 by eriktorbjorn, 13 years ago

> SPEECH1.CL3 (53KB)

53 KB? This file can't be right. It's supposed to be an MP3-encoded version of SPEECH1.CLU, so the size should at least be in the same ballpark as SPEECH1.CLV. Maybe you started MP3-encoding the files, changed your mind and aborted the process?

> Maybe it just assumes there is a SPEECH2.CL3 when it sees the > SPEECH1.CL3?

No, not as far as I can tell. Each time it needs to open a speech file, it looks for the CL3, CLV, and CLU files, in that order.

> The game works just fine up until marib, and just as fine when on > bulls'head. But not after the escape, back in nico's appartement > suddenly the speech doesn't play and the text just flashes by rapidly.

Come to think of it, that's probably a move *from* CD 2 to CD 1. Given that you have what looks like an obviously bogus SPEECH1.CL3, I'd be surprised if speech works at the very start of the game.

Try removing the SPEECH1.CL3 file, and use the SPEECH1.CLV / SPEECH2.CLV files instead.

comment:6 by SF/dead2, 13 years ago

Aha, that makes sense.

Removing the SPEECH.CL3 file fixes the problem.

When I tried the compression util the first time I ran it without any parameters by mistake. And default is to compress with mp3 compression, but since it complained about lameenc executable missing I assumed it didn't actually do any work.

So, optimally some of the following changes should be on the TODO: -Compression util should not make a new file when no data can be written. Maybe even delete/use a .tmp name on the file until it is 100% completed. -ScummVM should have better error messages if it cannot find speech data, error message should contain file name. -ScummVM could fall back to search for other forms of the speech file when one fails. -Maybe even add a few checks of the speech/data files upon starting a game. Checking to see if all/most/essentials of the expected data can be parsed. Exit/Ignore messagebox?

Anyways, thanks for helping me track down the error =)

comment:7 by fingolfin, 13 years ago

Resolution: invalid
Status: newclosed
Note: See TracTickets for help on using tickets.