Opened 6 months ago

Last modified 10 days ago

#15149 new defect

PINK: Hokus Pokus Pink shows a different scene transition with invalid scene parameters

Reported by: Grimfangs Owned by:
Priority: low Component: Engine: Pink
Version: Keywords: crash, font
Cc: Grimfangs Game: Pink Panther: Hokus Pokus Pink

Description

Right after the girl turns into a mermaid and eats the poisoned apple and goes to sleep, a monologue starts. When the monologue ends, the game enters a Black Screen similar to a loading screen with the loading icon: a hand with a watch on it.

But after two to four seconds, ScummVM simply crashes and exits back to the desktop. The last entry on the Log File says:

WARNING: Director: falling back to built-in font!

I played the section through the .exe file and it works fine. It also doesn't load anything in the Windows native version. Could point at some sort of file loading or pointer error.

I'm attaching both the log file and the save file in question. Just play it and it'll crash after a few lines of dialogue that can be skipped by pressing Spacebar anyway.

Required information

ScummVM version: 2.8.1
Language: English
Version: CD-ROM
Operating System: Windows 11 Home
Related Bug Report:' https://bugs.scummvm.org/ticket/10805
Relevant files attached.

Attachments (2)

scummvm.log (338 bytes ) - added by Grimfangs 6 months ago.
pokus.s01 (16.8 KB ) - added by Grimfangs 6 months ago.

Download all attachments as: .zip

Change History (7)

by Grimfangs, 6 months ago

Attachment: scummvm.log added

by Grimfangs, 6 months ago

Attachment: pokus.s01 added

comment:1 by antoniou79, 6 months ago

That fonts warning in the log should be irrelevant for this specific crash.

The error sounds similar to what's shown in this video, where the game is played from a Windows 98 OS (not via ScummVM). The gameplay shown in the video is in general rather glitchy though:
https://youtu.be/zUDmJZoTJ4c?si=klC17UXClDNSiME0&t=3969

Another LP does not show this error at all (although it's apparent that at least one actor snaps crudely back in place):
https://youtu.be/nLPtSPnfiD8?si=L-v9YttZ9PUaj7Z2&t=823

I wonder if it's some odd side-effect from a copy protection system for the game?

in reply to:  1 comment:2 by Grimfangs, 6 months ago

Replying to antoniou79:
I doubt that might be the case since I'm using the .ORB file from the disc to bypass the CD-ROM DRM even while using the .exe file. Completed the game yesterday with no bugs whatsoever.

The issue only arises with ScummVM.

This is also the point where you get new destinations to travel to through the black hole, so I'm assuming that perhaps it's a sort of resource exception where the emulator can't find the files to load next and simply crashes. Of course, this is just a hypothesis. I know nothing about how any of this works.

EDIT: Actually, thinking about it, since this wasn't an issue with the executable of the game, it is most likely a pointer/reference error. The Executable loads the files just fine, so ScummVM probably can't interpret the instructions properly and points/refers to the wrong/non-existing system files somehow. Again, I have no idea how ScummVM works.

Last edited 6 months ago by Grimfangs (previous) (diff)

comment:3 by antoniou79, 6 months ago

At the point of the crash:

  • A cutscene has finished and the script requires loading a new module ("Module2") and a new page ("HouseCut").
  • There is no such page in Module2 and so ScummVM crashes.
  • With a crude fix, if in this case, we set the page to be the first page in the module (as we do when the page name is an empty string), the scene sort of works, but you get a full scene animated transition and Pink Panther enters the room from the right. This is different from what happens in the original (no scene transition, Pink stays in place).
  • I also experimented with a hack monstrosity, whereby I wouldn't allow a module switch if the page in the new next module did not exist, but switch to that next module in the first future page transition (to a page that exists in the new module). Which seemed to work (no scene transition, Pink stays in place) up to the point where Pink tries to then use the black hole in the room. That would lead to a crash. (I may have botched the module queue I quickly hacked though, who knows).

I have only marginally worked on the PINK ScummVM engine to fix a few reported issues, but I cannot tell if in this case this is a script mechanic that the ScummVM engine does not implement as the original, or if this had some specific hack or a patch (eg. it did not work in the original version but worked in a subsequent/patched or re-release one) in the original that ScummVM does not implement.

Someone more experienced on the engine should probably implement the fix for this.
I hope the above info helps.

comment:4 by Filippos Karapetis <bluegr@…>, 10 days ago

In 9bd0c354:

PINK: Handle non-existent pages on scene change - bug #15149

A non-existent page is provided after the girl turns into a mermaid in
Hokus Pokus Pink. We now handle this case without crashing, although
the scene transition is different than how the original handles such
errors

comment:5 by bluegr, 10 days ago

Priority: normallow
Summary: PINK: Hokus Pokus Pink game crashes right after the girl turns into a mermaidPINK: Hokus Pokus Pink shows a different scene transition with invalid scene parameters

Thanks for your analysis @antoniou79!

Added a fix that avoids crashing the game in such cases, although the scene transition is different than how the original handles such errors. I'm keeping this bug open because of the different transition, but lowering priority, since the game no longer crashes.

Note: See TracTickets for help on using tickets.