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 Changed 13 years ago by fingolfin

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 Changed 13 years ago by eriktorbjorn

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 Changed 13 years ago by SF/dead2

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 Changed 13 years ago by SF/dead2

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 Changed 13 years ago by eriktorbjorn

> 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 Changed 13 years ago by SF/dead2

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 Changed 13 years ago by fingolfin

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