Opened 7 years ago

Closed 4 months ago

#9625 closed defect (fixed)

TINSEL: DW2 - out of sound reels

Reported by: serin-delaunay Owned by: dreammaster
Priority: normal Component: Engine: Tinsel
Version: Keywords:
Cc: Game: Discworld II

Description

In ScummVM 1.9.0 (15 Oct 2016) for Android running Discworld 2, if I go to the right end of the University garden and double click on the rooster, an animation plays where Rincewind tries to catch the rooster, then the debug console appears with the message "Out of sound reels in RegisterSoundReel()".

The debug console says to type "exit" to return to the game, but when I do so ScummVM terminates and the phone returns to the home screen.

I had collected some items and chatted to some NPCs before triggering this crash, but I expect it should be reproducible from the start of the game.

Attachments (3)

dw2-de.001 (2.5 KB ) - added by nerdnils 4 years ago.
savegame-diff.txt (43.0 KB ) - added by digitall 4 years ago.
Difference between Broken DE gamestate and Good Initial GB CD gamestate as hexdump of raw savegame file
show.jpeg (640.0 KB ) - added by nerdnils 4 years ago.
Picture of the bug

Download all attachments as: .zip

Change History (19)

comment:1 by wjp, 7 years ago

Component: --Unset--Engine: Tinsel

comment:2 by dreammaster, 7 years ago

No, sorry, I couldn't reproduce the error starting a new game on Windows. It would be helpful if you uploaded a savegame from the garden if you can still repeat it, and I can try that.

comment:3 by serin-delaunay, 7 years ago

I had a save file with the rooster crash immediately reproducible while I was playing through the game, but didn't think to keep it. I tried a couple of nights ago to make a new save file with the crash reproducible, but the ~5 times it happened (once while throwing the brick at the accelerator) were all some time after the last save. During my playthrough it also happened in act 2 after the raven and DoR talk to me in the shades. I'm going to try again to make a save file now.

comment:4 by csnover, 6 years ago

Keywords: crash discworld2 soundreels android removed

comment:5 by csnover, 6 years ago

Owner: set to serin-delaunay
Resolution: worksforme
Status: newpending

Could you please provide a save game or list of reproduction steps for this issue so it can be evaluated? Thanks!

comment:6 by bonki, 6 years ago

@serin-delaunay Trying once more, could you provide a save game so we can reproduce and have a look at this? Thanks!

comment:7 by digitall, 6 years ago

Owner: changed from serin-delaunay to digitall
Resolution: worksformeinvalid
Status: pendingclosed

Since the original bug submitter is unresponsive (and has been for over a year) and we lack enough information to replicate the bug, even if it is replicable, I am going to close this bug as invalid.

If we do get more reports or the submitter provides information, it can be reopened.

by nerdnils, 4 years ago

Attachment: dw2-de.001 added

comment:8 by nerdnils, 4 years ago

Resolution: invalid
Status: closednew

Got the same error on archlinux. Savefile to reproduce the error is attached.

comment:9 by digitall, 4 years ago

@nerdnils: Have tried loading that savegame file with latest copy of ScummVM git master i.e. 2.2.0git715-g4b21711ca4 and I can't get that to load with my copy of Discworld 2, but this is probably as my copy is the English GB CD variant, rather than the German version so I think the script layout in the savegame are not portable between language variants :|

We will need someone with the German version to load your savegame and debug.

comment:10 by digitall, 4 years ago

One thing I did do is save an initial savegame from my copy of DW2 and then use gunzip to remove the gz compression which we use for savegames. I did the same to your savegame and then ran them both through hexdump and then diff to get a text file with the byte differences between the files. It may be possible to patch your savegame for compatibility and to work out what part of the script state is broken.

Will attach the resulting text file for @dreammaster and other TINSEL developers to debug with...

by digitall, 4 years ago

Attachment: savegame-diff.txt added

Difference between Broken DE gamestate and Good Initial GB CD gamestate as hexdump of raw savegame file

comment:11 by nerdnils, 4 years ago

Steps I did to reproduce it:
get every item on the map including every building and talk to every character(high energy facility, graveyard, fools guild[don't step into the sewers it does not matter if you take the ghost with you], shop, shades, plaza, docks. Afterwards get into the garden. I talk to the first crocketplayer and afterwards try to catch the chicken.

It's possible that many of those steps are not necassary to get the bug but that way I get it EVERY time.

by nerdnils, 4 years ago

Attachment: show.jpeg added

Picture of the bug

comment:12 by digitall, 4 years ago

OK. I can now replicate it reasonably reliably from a new game state. Just talk to Archchancellor a bit, go to Garden and then try to catch Rooster. It is slightly indeterminate, but there are only 5 Sound Reel slots and I think the issue is if you use Escape key or click to skip over dialogue in intro and with Archchancellor etc. then this might be failing to clean out the older Sound Reels.

Will need to dig into the Tinsel engine code and try with older ScummVM versions to see if this is a regression or just a latent bug which has been around for some time.

comment:13 by raziel-, 4 years ago

Summary: Discworld 2 out of sound reelsTINSEL: DW2 - out of sound reels

comment:14 by joshas, 21 months ago

Issue still occurs in ScummVM 2.6.0 (Aug 1 2022 22:34:59) (Flatpak version, tested on Linux).
Initially I found it while looking at a Beehive in the Garden, but can almost consistently repeat it with "catching Rooster" scenario described in previous comment, although I tend to go straight to the Garden and talk to characters there. All intros skipped with ESC key until act starts. Dialog skip with mouse click, sometimes need to talk to character more than once. Running in debug level 10 seems to make repeating issue a bit harder, need to look/examine other items, leave screen to reset Rooster.

...
CallLibraryRoutine op 71 (escOn 0, myEscape 0)
ip=1147  Opcode 138 (-> 10)
ip=1150  Opcode 146 (-> 18)
ip=1178  Opcode 6 (-> 6)
ip=1183  Opcode 4 (-> 4)
ip=1184  Opcode 4 (-> 4)
ip=1185  Opcode 3 (-> 3)
ip=1186  Opcode 78 (-> 14)
CallLibraryRoutine op 93 (escOn 0, myEscape 0)
Out of sound reels in RegisterSoundReel()!
Debugger started, type 'exit' to return to the game.
Type 'help' to see a little list of commands and variables.
ERROR: Out of sound reels in RegisterSoundReel()!

Both US and GB versions have this issue.

UPDATE: scratch all that complicated description above. Error occurs when game tries to register more than 5 sound effects at once. You don't need to talk to anyone at all. One important setup step is to enter Garden scene when electrical current buzzes on High energy Facility, as this sound effect is not "DeRegistered" and takes up one of 5 "reels" (sound slots if I understand correctly). Now the hard part. You have to double click Rooster at specific moment, so during its animation one of croquet players will make a move and overflow sound slots. Usually works when either Librarian or Bursar swings, as those actions have extra sound effects.

Last edited 21 months ago by joshas (previous) (diff)

comment:15 by tag2015, 4 months ago

I think this bug was fixed in 40f57bd ?

comment:16 by bluegr, 4 months ago

Owner: changed from digitall to dreammaster
Resolution: fixed
Status: newclosed

That is correct, this bug has been fixed with that commit

Note: See TracTickets for help on using tickets.