Opened 17 months ago
Last modified 5 months ago
#14803 new defect
SWORD2: Error during intro cutscene (Spanish Playstation version)
Reported by: | davidmorom | Owned by: | |
---|---|---|---|
Priority: | high | Component: | Engine: Sword2 |
Version: | Keywords: | broken sword spanish playstation ps1 psx error crash | |
Cc: | davidmorom | Game: | Broken Sword 2 |
Description
During the playback of the intro cutscene of Broken Sword 2, Spanish PlayStation version, almost at the end, the ScummVM console is displayed with the following error message: "Error: Bad PSX stream track!". After that, the game closes. If the cutscene is omitted, the game works fine.
Tested this on Windows 10 64 bits, with the 64 bits version of ScummVM 2.8.0. Same problem happens with the 32 bits version of ScummVM 1.5.0, which is the first version that supports PlayStation videos.
The files where extracted with IsoBuster, following the method indicated on the guide. The CD image was made with ImgBurn, and the CRC is Redump verified (977362e4) so I'm 100% confident that the files are correct.
The video plays fine on a real PlayStation and on DuckStation, so it must be some kind of corruption that is innocuous for the original hardware, but makes ScummVM crash.
Change History (3)
comment:1 by , 16 months ago
Priority: | low → normal |
---|---|
Summary: | Error during intro cutscene on Broken Sword 2, Spanish, PlayStation version → SWORD2: Error during intro cutscene (Spanish Playstation version) |
comment:2 by , 6 months ago
Priority: | normal → high |
---|
comment:3 by , 5 months ago
It's been a while since I opened this issue, so I decided to give it a try myself.
There is, indeed, one corrupted frame in the spanish intro movie, that is ignored by the PS1 video decoder, but makes ScummVM crash. Two very simple changes can be made to the "psx_decoder.cpp" file to cleanly ignore the corrupted frame, so we get the same behavior as the PS1:
- In function "PSXStreamDecoder::readNextPacket()", replace "error("Bad PSX stream track")" with "warning("Bad PSX stream track")" followed by a return to skip the whole corrupted packet.
- In function "PSXStreamDecoder::PSXVideoTrack::decodeFrame()", replace "error("Unknown PSX stream frame version")" with "warning("Unknown PSX stream frame version")" followed by a return, so the whole corrupted frame is skipped, avoiding further Huffman decoding errors.
If no developer wants to take a look on this, I can make a Pull Request myself.
Would be nice to have this resolved for the 2.9.0 release