Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#6088 closed defect (fixed)

DW: PSX version locks up after using the book

Reported by: raziel- Owned by: bluegr
Priority: normal Component: Engine: Tinsel
Keywords: Cc:
Game: Discworld

Description

ScummVM 1.5.0git (Jul 7 2012 09:27:18)
Features compiled in: Vorbis FLAC MP3 RGB zLib Theora AAC FreeType2

A lockup situation can be triggered with the PSX version of DW in both the demo and full game.
Once you get the "Featherwinkles Compendium of Dragons and Lairs" you can read it by double-clicking on it with the left mouse button.

Closing the book again by moving the mouse to the bottom until a down arrow appears and clicking that makes the game lock up because a

Failed to open SEQ file '.SEQ'!

pops up.

Savegame attached...click on "Rincewind" to open his inventory, then double click with the left mousebutton on the book and leave it again.

Discworld (CD/Sony PlayStation/English)
Discworld (CD Demo/Sony PlayStation/English)

AmigaOS4 - PPC - SDL - BE
gcc (GCC) 4.2.4 (adtools build 20090118)

Ticket imported from: #3541230. Ticket imported from: bugs/6088.

Attachments (1)

dw-demo-psx.001 (1.5 KB) - added by raziel- 7 years ago.
The book is in Rincewinds inventory (not in the luggage)

Download all attachments as: .zip

Change History (6)

Changed 7 years ago by raziel-

Attachment: dw-demo-psx.001 added

The book is in Rincewinds inventory (not in the luggage)

comment:1 Changed 7 years ago by raziel-

Owner: set to SF/mthreepwood

comment:2 Changed 7 years ago by digitall

mthreepwood: Replicated from savegame and clean new game on Linux x86_32 latest Git master using DW1 PSX Demo, so this is _not_ a AmigaOS4/PPC/BE specific issue.

comment:3 Changed 7 years ago by SF/mthreepwood

Seems it's not a PSX-specific bug, but just one that only manifests itself with a freeze in the PSX version. The code checks the current offset against the previous offset and only loads the data when it is different. When the offset is the same, it stops and replays it -- however, it fails to get the size field again, leaving it to be 0. The SEQ code therefore gets an empty file name, and errors out (which strangely is causing a lock-up; maybe coroutines are screwing with the error() call).

The only reason the DOS version doesn't fail is because the XMIDI code ignores the size parameter to loadMusic() (!!!).

Would be nice if there was some guidance here from someone familiar with Tinsel. md5? dreammaster?

comment:4 Changed 7 years ago by bluegr

Thanks for the report! A very nasty bug indeed.

Fixed in#b8354e2.

Many thanks to mthreepwood/clone2727 for finding the actual issue

comment:5 Changed 7 years ago by bluegr

Owner: changed from SF/mthreepwood to bluegr
Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.