Opened 16 years ago

Closed 16 years ago

Last modified 12 months ago

#1044 closed defect (fixed)

indyloom FM-Towns demo regression

Reported by: SF/logicdeluxe Owned by: fingolfin
Priority: normal Component: Engine: SCUMM
Keywords: Cc:
Game: Zak McKracken

Description

ScummVM 0.5.0pre-cvs (Jul 17 2003 20:56:42)
windows.
I'm running the indyloom demo (sort of slide show) from
the Zak256 FM-Towns CD with the zak256 target.
After the Indy3 part is over, the loom part should
start, but this is not the case anymore. The demo just
hangs there (with animated fire).
This demo worked fine when I tried it several weeks ago.
At least it does with 0.4.1.
Maybe it is related to bug 762886.

Ticket imported from: #773333. Ticket imported from: bugs/1044.

Change History (16)

comment:1 by SF/hibernatus, 16 years ago

I described a bug in my last comment in bug report #762593.
I guess it causes isSoundRunning to return true.

comment:2 by fingolfin, 16 years ago

hibernatus, I don't understand what you are trying to tell us...
could you please explain what you mean? In how far does your
comment relate to this bug report?

comment:3 by SF/hibernatus, 16 years ago

I haven't tried the demo from zak256, only the one from indy3
(which works), so please forgive me if my comment has
nothing to do with this bug :)
What i meant is that maybe the silence at the end of the
track is looped as in the bug i described in #762593 (there,
the looping part is just a little longer than the silence, that's
why i heard something).
But maybe it's something else. And i don't know what causes
the bug i described in #762593.

comment:4 by SF/hibernatus, 16 years ago

i've just tried a demo without mp3 or audio CD and the
following line is executed without any condition:
_currentCDSound = soundID;
is it normal?

comment:5 by SF/hibernatus, 16 years ago

or maybe line 1116 in sdl-common.cpp:
return (cd_num_loops != 0 && (SDL_GetTicks() < cd_end_time
|| SDL_CDStatus(_cdrom) != CD_STOPPED));
maybe it should be && SDL_CDStatus(_cdrom) !=
CD_STOPPED) ?

comment:6 by SF/hibernatus, 16 years ago

lol, sorry for my last two comments, tried to help but they're
obviously wrong :) i come back to my work and shut up,
bye :)

comment:7 by SF/hibernatus, 16 years ago

I tried the 2 demos i have (indy-zak and zak-loom, from loom
and indy) and both work (with mp3, cd or nothing).
Maybe you used ctrl-g or ctrl-f and didn't wait for the real
length of the track. Please retry *without* ctrl-f or ctrl-g,
and with patience. Don't forget there can be a long silence at
the end of the audio track, like 10 seconds sometimes. And if
a track is repeated you must wait for the end of it anyway (in
indy-zak the indy tune is played twice so you have to wait a
little at the end).

comment:8 by Kirben, 16 years ago

The problem still occurs in the indy3loom demo with latest
ScummVM cvs here and I don't use fast mode.

comment:9 by Kirben, 16 years ago

Owner: set to fingolfin

comment:10 by Kirben, 16 years ago

Hibernatus located the problem earlier, the problem is caused
by cd_end_time and cd_num_loops in sdl-common.cpp not
been initized.
This change also fixes the part one screen in monkey island 1
(cd) stalling, bug #762886.

fingolfin, could you add those changes in the correct place ?

comment:11 by fingolfin, 16 years ago

Owner: fingolfin removed

comment:12 by fingolfin, 16 years ago

I assume that means, both Kirben and logicdeluxe only get the
error when playing using Audio CD playback, but everything works
fine if you use an MP3/Ogg Vorbis track?

If you already know what to change, why don't you do it? I have
no ways to test it anyway, so why should I guess wildly and make
randome changes? I also don't see how or understand how
cd_end_time / cd_num_loops could have any influence here -
play_cdrom() definitely does init them. Without more information
from you guys and w/o a way to test, no, I won't do anything.

comment:13 by Kirben, 16 years ago

In this particular case the problem seemed to be ogg specific,
since the downloadable demos came with audio tracks as ogg
and Hibernatus couldn't reproduce it when he used mp3 files.
Both Hibernatus and I confirmed the issue and the solution.
According to Hibernatus, cd_end_time and cd_num_loops are
currently set to 0xe7e7e7 by default and not to 0, which
causes this problem.
I didn't make that change as I don't know that section of the
code and I'm not sure where it should go.
I put the indyloom demo temporary online at
http://members.optusnet.com.au/wormmon/indyloom.zip if
you need to test. Let me know when you have it.

comment:14 by Kirben, 16 years ago

Owner: set to fingolfin
Resolution: fixed
Status: newclosed

comment:15 by Kirben, 16 years ago

Problem has been fixed in ScummVM cvs.

comment:16 by digitall, 12 months ago

Component: Engine: SCUMM
Game: Zak McKracken
Note: See TracTickets for help on using tickets.