Opened 7 years ago

Closed 5 years ago

#6009 closed defect (fixed)

DC: FT/Dig - Sound disappears when VMU save fails

Reported by: (none) Owned by: zeldin
Priority: normal Component: Engine: SCUMM
Keywords: Cc:
Game: Full Throttle

Description

ScummVM 1.4.1 Dreamcast port
English, talkie

In both Full Throttle and The Dig, the sound disappears when an attempt to save to a VMU fails. If it matters, I'm running ScummVM from an SD card.

Ticket imported from: #3504682. Ticket imported from: bugs/6009.

Change History (9)

comment:1 Changed 7 years ago by digitall

Owner: set to zeldin

comment:2 Changed 7 years ago by digitall

Assigning to DC maintainer for visibility.

comment:3 Changed 7 years ago by digitall

From http://wiki.scummvm.org/index.php/Dreamcast:
"The Dreamcast has no external storage medium, and only has 16MB of RAM. As
such, the Dreamcast port of ScummVM does not support The Curse of Monkey
Island, nor the Dig. The resources required for these games are too great
for the Dreamcast to handle. Full Throttle is not completable. Every other
game supported by ScummVM should be completable with the Dreamcast port."

i.e. Neither Full Throttle or The Dig are expected to work on the Dreamcast, though this information may be out of date.

Even without this, this doesn't sound like an Out of Memory type issue.
Looking at the code, this is probably a bug in backends/platform/dc/vmsave.cpp

comment:4 Changed 5 years ago by digitall

Replicated with The Dig with v1.7.0git-e6259afc (Wed Jul 10 05:00:25 2013).

Will try with the latest master and will try to debug.

comment:5 Changed 5 years ago by digitall

Yes. Still occurring on the latest master i.e. 548dd029ee5c7da40d53c6f2a9979940745e2dc7

When I access the save dialog, the following is output onto the serial debug log:
A4 E2 A2 255 E2 A2 255 E2 A2 255 E2 A2 255 E2 A2 255 E2

Will need to look up what this means... Alignment?

comment:6 Changed 5 years ago by digitall

Ah. Those are emitted from this function in libronin's vmsfs.c:

/! Returns 1 if a @[unit] can function as memcard.
!
/
int vmsfs_check_unit(int unit, int part, struct vmsinfo
info)

Not sure if they are related to the sound loss... Will need to trace down what happens when the save fails compared to success.

comment:7 Changed 5 years ago by digitall

Have located the cause of this bug. It is a general problem in the SCUMM engine when a save fails, the engine is locked in pause, which stops the sound and music.

As this rarely happens on a desktop system, it has not been noticed.

The bug was introduced by:
fd3970aa52a0c7f411afdddfebad208f783281c8: Apply patch #2984508 - "GSoC: SCUMM stopped audio from playing while saving"

I have a correction to the GSoC code patch which will fix this, while still stopping the audio during saving. Will push to master in a while.

comment:8 Changed 5 years ago by digitall

Fixed in master by f4e7b593dc9d841640bda26da59de716772b4411.

The fix should be included in the next nightly development build from:
http://buildbot.scummvm.org/builds.html

Closing as fixed.

comment:9 Changed 5 years ago by digitall

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