Opened 6 months ago

Last modified 5 months ago

#13425 new defect

SCUMM: PAJAMA Multiple animation errors during Cheese & Crackers game during final cutscene

Reported by: Thunderforge Owned by:
Priority: normal Component: Engine: SCUMM
Version: Keywords:
Cc: Game: Pajama Sam 1

Description (last modified by Thunderforge)

During the final cutscene, Pajama Sam plays Cheese & Crackers with Darkness. However, there are a lot of errors with it:

  1. The board isn't visible
  2. The flashlight and the light it casts aren't visible
  3. The left door isn't drawn
  4. The right door "reflects" on the floor

See attached screenshots.

Reproduction Steps

  1. Load the attached save game
  2. Click on the door
  3. Watch the cutscene. After about a minute, the scene in question will be played

Versions Tested

  • ScummVM 2.1.0 (bundled with the Steam release), 2.5.1, and Nightly 2022-04-18
  • Pajama Sam Steam version

Attachments (6)

pajama-win-pajama.sg2 (27.4 KB ) - added by Thunderforge 6 months ago.
Original Interpreter.png (623.2 KB ) - added by Thunderforge 6 months ago.
ScummVM.png (50.1 KB ) - added by Thunderforge 6 months ago.
Windows XP Professional-2022-05-02-12-34-03.png (16.7 KB ) - added by einstein95 5 months ago.
Object 938.png (2.0 KB ) - added by Thunderforge 5 months ago.
Object 939.png (3.0 KB ) - added by Thunderforge 5 months ago.

Download all attachments as: .zip

Change History (18)

by Thunderforge, 6 months ago

Attachment: pajama-win-pajama.sg2 added

by Thunderforge, 6 months ago

Attachment: Original Interpreter.png added

by Thunderforge, 6 months ago

Attachment: ScummVM.png added

comment:1 by Thunderforge, 6 months ago

Description: modified (diff)

comment:2 by Thunderforge, 6 months ago

Description: modified (diff)

comment:3 by eriktorbjorn, 6 months ago

I can reproduce this with the Steam version, which ScummVM identifies as

Using gameid pajama, variant HE 100, extra Updated
  SCUMM version 6, HE version 100

I can't reproduce it with my other version, identified as

Using gameid pajama, variant HE 99, extra Updated
  SCUMM version 6, HE version 99

I'll see if I can figure out what they do differently, but I can't promise anything. I haven't looked much at the HE side of things.

comment:4 by eriktorbjorn, 6 months ago

The main (possibly only?) missing object is drawn by a call to drawObject(), with obj = 2.

That prompts it to look for an IM01 resource to draw. I added some debug messages based on that, and this is what I saw in my HE99 version:

xpos: 7, ypos: 248, width: 64, height = 208
Searching... curpos = 8, totalsize = 15540
Looking for IM01 but seeing IMHD (size 30)
Looking for IM01 but seeing IM01 (size 15502)
Found it!

In the Steam version, I saw this instead:

xpos: 7, ypos: 248, width: 64, height = 208
Searching... curpos = 8, totalsize = 34
Looking for IM01 but seeing IMHD (size 26)
I give up

So for whatever reason, there was no image to be found?

comment:5 by eriktorbjorn, 6 months ago

@sev asked me to add this information:

This is what ScummVM says for the version I have that works:

User picked target 'pajama1' (engine ID 'scumm', game ID 'pajama')...
   Looking for a plugin supporting this target... SCUMM [all games]
Using gameid pajama, variant HE 99, extra Updated
  SCUMM version 6, HE version 99
Using MD5 '898eaa21f79cf8d4f08db856244689ff'

And this is for the Steam version:

User picked target 'pajama-win' (engine ID 'scumm', game ID 'pajama')...
   Looking for a plugin supporting this target... SCUMM [all games]
Using gameid pajama, variant HE 100, extra Updated
  SCUMM version 6, HE version 100
Using MD5 '37aed3f91c1ef959e0bd265f9b13781f'

comment:6 by eriktorbjorn, 6 months ago

By the way, is it a bug or a feature that the end credits appear at the bottom of the screen line-by-line rather than pixel-by-pixel?

Answering my own question, at least in my older CD version the credits do indeed appear line-by-line when running the original interpreter. So ScummVM is correct in that respect.

Last edited 5 months ago by eriktorbjorn (previous) (diff)

comment:7 by einstein95, 5 months ago

Running through VMware with HE version 100 and it shows the bug, so it's not on ScummVM's side
EDIT: Confirmed running the Mac side in QEMU

Last edited 5 months ago by einstein95 (previous) (diff)

comment:8 by antoniou79, 5 months ago

As I've mentioned on discord, my GOG version is detected as follows:

 User picked target 'pajama-win' (engine ID 'scumm', game ID 'pajama')...
 Using gameid pajama, variant , extra
   SCUMM version 6, HE version 80
 Using MD5 '672dec94b82f7f0877ebb5b5cf7f4bc1'

I can test any potential fixes if needed, but I cannot load the attached save, as ScummVM (2.6.0git, build from master HEAD, on Windows 10 x64 Pro) throws a segmentation fault:

Assertion failed: idx < _res->_types[type].size(), file engines/scumm/saveload.cpp, line 1280

So I'll have to play till the end. I understand that it's a small game anyway.

Edit: Testing with einstein95's debug shortcut, by jumping to room 58, my GOG version does not have the issue.

Last edited 5 months ago by antoniou79 (previous) (diff)

in reply to:  8 comment:9 by einstein95, 5 months ago

Replying to antoniou79:

So I'll have to play till the end. I understand that it's a small game anyway.

Using the debug command room 58 skips straight to the cutscene in question

comment:10 by BLooperZ, 5 months ago

It seems the image resources for objects 938 (door) and 939 (board/floor) are actually missing from Steam (HE100) version.
the resources only contain the image headers but does not containg the image data (26 bytes total).

There are several other images missing in other rooms but they are less noticable.

comment:11 by Thunderforge, 5 months ago

Here are the images for reference



Note that the board and floor has an opaque black background, which covers up the black reflection marks on the floor so that it's not seen in game.

And it does appear to be just a matter of missing images, not an interpreter issue.

injecting the missing images as is from HE99 version to HE100 version seem to fix the issue, but I'm not sure if it's ok to create such patch

Last edited 5 months ago by Thunderforge (previous) (diff)

comment:12 by Thunderforge, 5 months ago

Since it's a matter of missing images in the game files, it seems like our options are:

  1. Do nothing. Children and nostalgic adults who buy the game on Steam are confused.
  2. Add the missing images to ScummVM, but we are currently unsure of if we have permission.
    • Are we in contact with the IP owner? Can we ask their permission?
  3. Create our own replacement images (under a GPLv3-compatible license) that are distinct from the ones in the game, then add those.

Are there other options? Option 2 would be the best if we could be sure that we won't have any rights issues by including them.

by Thunderforge, 5 months ago

Attachment: Object 938.png added

by Thunderforge, 5 months ago

Attachment: Object 939.png added
Note: See TracTickets for help on using tickets.