Opened 7 months ago

Closed 3 months ago

#11509 closed defect (invalid)

AGI: KQ4: Apple IIgs dwarf music doesn't loop in house

Reported by: trembyle Owned by: ZvikaZ
Priority: normal Component: Engine: AGI
Version: Keywords:
Cc: trembyle Game: King's Quest 4


After Rosella cleans the Seven Dwarfs' house and they file in for dinner, their theme begins to play. It is intended to loop as they all take soup and sit down. Instead it stops when the first dwarf sits at the table.

This also happens as the dwarfs leave. The theme starts and then does not loop as the first dwarf walks out the door.

I tested this on the GSport emulator (and others) for comparison. A ScummVM save is attached. To reproduce, type 'clean' then wait about 80 seconds for the dwarfs to appear.

Attachments (1)

kq4-2gs.014 (5.0 KB ) - added by trembyle 7 months ago.

Download all attachments as: .zip

Change History (5)

by trembyle, 7 months ago

Attachment: kq4-2gs.014 added

comment:1 by jpc-ae, 7 months ago

I've noticed this issue in a more limited sense on the iigs (2gs) version of SQ2. Certain midi instruments which should loop are stopping early (for example the rumbling sound when the ship enters the dock in the intro).

comment:2 by ZvikaZ, 4 months ago

@jpc-ae, I'm not sure that I understand your issue, and I don't think that it's related to this issue. Please open another bug report for your issue, if it's still relevant.

@trembyle, are you sure that It is intended to loop as they all take soup and sit down.?

The relevant room is 54.
Initially, I had problem to open it with few AGI programs. But recently I've managed to open it with latest WinAGI version. However, it seems that ScummVM behaves according to the script in Logic54.
When v221 == 20, it's printing "You hear the dwarfs approaching.", then it starts playing Sound31.
Next time Sound31 is played, is when v221 == 60, after The Seven Dwarfs finish their soup, ....
There is no logic to play the music again, besides these 2 points.

Furthermore, I've checked the DOS KQ4 (agi), and in ScummVM it behaves like here.
I checked it also in DosBOX (thanks to, and it also behaved like here.

I tried to check it in 2gs emulator, but the debug mode doesn't work.

Bottom line:

  • logic code - implies there is no loop
  • DOS version, under ScummVM - no loop
  • DOS version, under DosBOX - no loop
  • 2gs version, under ScummVM - no loop
  • 2gs version, under Emulator - unknown behaviour

Therefore, I'd like to get an emulator savegame. Otherwise, it seems that everything is fine here.

Anyway, this bug was really fun to investigate :-)
And we earned a small documentation fix (it wasn't the source of the problem here, but I discovered it while investigating, initially hoping it's a lead to the solution...) -

comment:3 by trembyle, 3 months ago

I'm glad this was fun to investigate, and that we got some value out of it!

On closer inspection, I can't find the bug. Maybe I was imagining things, or maybe it was fixed by an earlier commit.

Here is a video that documents the comparison you're making above.

I'll close the ticket. Thanks for looking into it!

comment:4 by trembyle, 3 months ago

Owner: set to ZvikaZ
Resolution: invalid
Status: newclosed
Note: See TracTickets for help on using tickets.