Opened 21 years ago

Closed 21 years ago

Last modified 5 years ago

#1044 closed defect (fixed)

indyloom FM-Towns demo regression

Reported by: SF/logicdeluxe Owned by: fingolfin
Priority: normal Component: Engine: SCUMM
Version: 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, 21 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, 21 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, 21 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, 21 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, 21 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, 21 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, 21 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, 21 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, 21 years ago

Owner: set to fingolfin

comment:10 by Kirben, 21 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, 21 years ago

Owner: fingolfin removed

comment:12 by fingolfin, 21 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, 21 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, 21 years ago

Owner: set to fingolfin
Resolution: fixed
Status: newclosed

comment:15 by Kirben, 21 years ago

Problem has been fixed in ScummVM cvs.

comment:16 by digitall, 5 years ago

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