Opened 10 years ago

Closed 9 years ago

#4455 closed defect (fixed)

RTZ: Stuck note.

Reported by: SF/ezekiel000 Owned by: bluegr
Priority: normal Component: Engine: MADE
Keywords: Cc:
Game: Return to Zork

Description

When I play Return to Zork for a while one of the music notes gets stuck and just continuously plays even when other music is played.
Saving and exiting and reloading the saved game gets rid of the noise.

Ubuntu 9.04 amd64, ScummVM svn42646, RtZ CD/DOS/English v1.2

Ticket imported from: #2825928. Ticket imported from: bugs/4455.

Attachments (1)

rtz.023 (34.0 KB ) - added by criezy 9 years ago.
Save game in Snout's Farm

Download all attachments as: .zip

Change History (12)

comment:1 by fingolfin, 10 years ago

Owner: set to johndoe123

comment:2 by fingolfin, 10 years ago

What is the status of this item?

comment:3 by criezy, 10 years ago

The bug is still present and is quite annoying.
I get the stuck note quite often. For example I seem to get the issue nearly every time I enter Rebecca's house (Snoot's Farm). Saving and loading back get rid of the noise, but usually not for long.

Also switching off the music in the game stops the normal music but the stuck note continues to play.

MacOS X 10.4 Intel
ScummVM 1.1.0 svn revision 48149
rtz floppy/DOS/English

comment:4 by johndoe123, 10 years ago

Honestly I have next to no clue about MIDI and the midi player code in RtZ/MADE is mostly a copy-and-paste job from the SAGA engine's player code.
If someone knows MIDI better I'd appreciate the help. I'll try to reproduce the bug with the savegame from the mailing list (probably next week) but I'm not even sure where to look for a solution.
Just one more question to criezy: Does this always happen at the same time in the song? If yes, this could mean that some MIDI command which disables the note isn't implemented (though I'm just guessing here).

by criezy, 9 years ago

Attachment: rtz.023 added

Save game in Snout's Farm

comment:5 by criezy, 9 years ago

Sorry, I didn't see your question.

I played a bit with it today to refresh my memory, and in Snout's Farm is seems to happen from the moment the music starts. But this is not systematic. I tried 10 times today and got the issue 8 times from the moment the music started. The two other times I got the problem but stopping and restarting the music.

Since I can now attach a save game I did so. With this save game, the music is initially off. You can turn it on before moving forward to the next screen, in which case the problem usually starts when you enter the new screen. If you move forward to the next screen and then turn the music on, the problem will most of the time start from the moment you turn the music on.

Also I am not sure of it, but on that screen it seems it is always the same note that get stuck.

comment:6 by criezy, 9 years ago

I correct my previous comment:
The note(s) that get stuck (and whether a note get stuck or not) depend when I turn off the music. It seems it depend if there are any hanging notes when I turn the music off, or in other word it seems the hanging notes that are turned off from MidiParser::onTimer() are correctly turned off, while the notes that are turned off from MidiParser::allNotesOff() are stuck.

Also the behaviour depend on the music driver I select. The original behaviour was observed with CoreAudio. If I select AdLib, when I turn the music off there is a slow fade out of the hanging notes instead of them being stuck.

By the way, I think there is a bug in MADE::MusicPlayer::send() line 114:
// Only respond to All Notes Off if this channel
// has currently been allocated
if (_channel[b & 0x0F])
return;

I think the test has been inverted and it should be:
if (!_channel[b & 0x0F])
return;

SAGA does the same as MADE but AGOS does what I think is correct.

That change doesn't fix this issue however.

comment:7 by bluegr, 9 years ago

This issue has probably been fixed with r55256, can you please check if it still occurs?

comment:8 by bluegr, 9 years ago

Owner: changed from johndoe123 to bluegr

comment:9 by criezy, 9 years ago

I tested the game again with r55437 and it seems the problem has indeed been fixed.

comment:10 by bluegr, 9 years ago

Resolution: fixed
Status: newclosed

comment:11 by bluegr, 9 years ago

Glad to hear that :) Thanks for your feedback. Closing

Note: See TracTickets for help on using tickets.