Opened 16 years ago

Closed 16 years ago

#3543 closed defect (fixed)

COMI: Wrong music when escaping from the snake

Reported by: eriktorbjorn Owned by: aquadran
Priority: normal Component: Engine: SCUMM
Version: Keywords:
Cc: Game: Monkey Island 3


Latest SVN snapshot English version of the game

When you escape from the snake, it should sound something like this:

I think that the music that starts right before the belch is at the end of the "inside the snake" music that was playing before that.

ScummVM starts playing the "inside the snake" music from the beginning instead.

Ticket imported from: #1861704. Ticket imported from: bugs/3543.

Attachments (1)

comi.s21 (96.7 KB ) - added by eriktorbjorn 16 years ago.
Savegame inside the snake

Download all attachments as: .zip

Change History (11)

by eriktorbjorn, 16 years ago

Attachment: comi.s21 added

Savegame inside the snake

comment:1 by fingolfin, 16 years ago

aquadran, any thoughts on this? :)

comment:2 by fingolfin, 16 years ago

Owner: set to aquadran

comment:3 by eriktorbjorn, 16 years ago

Owner: aquadran removed

comment:4 by eriktorbjorn, 16 years ago

I think this part of script-227 is supposed to set up which music to play:

[0096] (B2) soundKludge([4097,2220]) [00A6] (B2) soundKludge([4097,2000])

That translates into

setComiMusicSequence(2220); // seqSnakeVomits setComiMusicSequence(2000); // SEQ_NULL

I would guess that this means something like "Jump to the 'seqSnakeVomits' part of the music that's currently playing", but that's just a hunch.

comment:5 by eriktorbjorn, 16 years ago

I think there's a similar glitch early in the game, after using the cannon to sink LeChuck's boats. The game sets the sequences "seqLastBoat" and "SEQ_NULL" right after each other. But there's so much other noise going on at the same time that it's hard to make out. The snake scene is a much better test case.

comment:6 by fingolfin, 16 years ago

dimuse_music.cpp, line 295 currently reads: setHookId(table->soundId, table->soundId); I think this is a bug, it should read setHookId(table->soundId, table->hookId); or maybe setHookId(table->soundId, hookId);

Does either of the two changes help?

comment:7 by eriktorbjorn, 16 years ago

You may be on to something there, but unfortunately that change alone makes no difference. It does use that case, though: table->soundId = 2220, table->hookId = 1, hookId = 0.

comment:8 by aquadran, 16 years ago

Owner: set to aquadran

comment:9 by aquadran, 16 years ago

is a bug still present in current svn tree

comment:10 by aquadran, 16 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.