[Scummvm-tracker] [ScummVM :: Bugs] #16443: SWORD1: File::open() assertion in prepareMusicStreaming() (PSX demo)

ScummVM :: Bugs trac at scummvm.org
Thu Jan 8 23:00:37 UTC 2026


#16443: SWORD1: File::open() assertion in prepareMusicStreaming() (PSX demo)
---------------------------+----------------------------
Reporter:  dwatteau        |      Owner:  (none)
    Type:  defect          |     Status:  new
Priority:  normal          |  Component:  Engine: Sword1
 Version:                  |   Keywords:
    Game:  Broken Sword 1  |
---------------------------+----------------------------
 On either `master` or `branch-3-0`, I'm seeing an `assert()` being
 triggered with the PSX demo of Broken Sword 1.

 To reproduce:

 1. Build in debug, non-release mode (so that `assert()`'s are not turned
 off)
 2. Start the PSX demo (see `word1-psx-demo-en.zip` on our demos page)
 3. In the intro video (where the character speaks over a black screen),
 press Esc to skip it
 4. Once he's also done talking in the first room, press Esc again
 5. The in-game menu will then open: hit "Done" to return to the game
 6. Go inside the café

 (tl;dr: spam Esc and go into the café)

 The game will crash with the following kind of backtrace:

 {{{
 [...]
 #4  0xa756b67c in __assert_fail_base (fmt=0xa76f662c "%s%s%s:%u:
 %s%sAssertion `%s' failed.\n%n", assertion=assertion at entry=0xceb0c4
 "!_handle", file=file at entry=0xceb0a0 "common/file.cpp",
 line=line at entry=46, function=function at entry=0xceb058 "virtual bool
 Common::File::open(const Common::Path&, Common::Archive&)") at assert.c:92
 #5  0xa756b704 in __GI___assert_fail (assertion=0xceb0c4 "!_handle",
 file=0xceb0a0 "common/file.cpp", line=46, function=0xceb058 "virtual bool
 Common::File::open(const Common::Path&, Common::Archive&)") at
 assert.c:101
 #6  0x00af2e2c in Common::File::open(Common::Path const&,
 Common::Archive&) (this=0x126f6dc, filename=..., archive=...) at
 common/file.cpp:46
 #7  0x00af2d78 in Common::File::open(Common::Path const&) (this=0x126f6dc,
 filename=...) at common/file.cpp:41
 #8  0x0074e2a0 in Sword1::Sound::prepareMusicStreaming(Common::Path
 const&, int, int, unsigned int, signed char, Sword1::MusCompMode)
 (this=0x126f480, filename=..., newHandleId=0, tuneId=7, volume=144, pan=0
 '\000', assignedMode=Sword1::MusPSX) at engines/sword1/sound.cpp:991
 #9  0x0074fb28 in Sword1::Sound::streamMusicFile(int, int)
 (this=0x126f480, tuneId=7, looped=0) at engines/sword1/sound.cpp:1187
 [...]
 }}}

 (full GDB trace below.)

 (Also, ThreadSanitizer reports several problems when running the demo, but
 it may just be an unrelated thing.)
-- 
Ticket URL: <https://bugs.scummvm.org/ticket/16443>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list