Opened 7 years ago

Closed 7 years ago

#9976 closed defect (fixed)

SCI: Phant1: Monster Painting Not Shown

Reported by: dafioram Owned by: csnover
Priority: low Component: Engine: SCI
Version: Keywords: sci32
Cc: Game: Phantasmagoria 1

Description

Tester OS: Win7-64
ScummVM: 1.10.0git-3986-gc3f8f1a
Game: Phant1 GOG CD/DOS 1.000.001UK English

When in chapter 7 go checkout the painting in the conservatory and the picture of the monster will not be shown, instead it flashes an image for much less than a second. I'm guessing that was supposed to be the picture of him.

Demo: https://streamable.com/939r5

I played the game on DOSBOX and it showed the monster picture.

Attachments (2)

save_game.zip (678 bytes ) - added by dafioram 7 years ago.
somewhere in chapter7
MD5S.txt (54.8 KB ) - added by dafioram 7 years ago.
md5 of files in gog phant1 directory. They are listed md5 sum then a space then the file name. No spaces consecutive md5/file files.

Download all attachments as: .zip

Change History (15)

by dafioram, 7 years ago

Attachment: save_game.zip added

somewhere in chapter7

comment:1 by csnover, 7 years ago

Thanks for your report! I don’t seem to be able to reproduce this issue with the information provided. I load the provided save game, walk out of the room, south, west, west, then click on the painting on the left side of the screen. When it is time for the painting to be displayed, it is shown for a few seconds. Could you please provide your reproduction instructions, and also run in the debugger (Ctrl+Shift+D) resource_info script 16100 and resource_info heap 16100 and paste/attach the output of those commands? Thanks!

comment:2 by dafioram, 7 years ago

ScummVM does show the picture, but not the close up.

Resource size: 7468
Resource location: RESSCI.000
Resource hash" 802c09c1cea5f07d8f3361f1acdceebc

Resource size: 2266
Resource location: RESSCI.000
Resource hash 61dd3f3acaec4cc943ce4779c19af52f

Is there a way to dump this info to the log file?

ScummVM Demo: https://streamable.com/gvfui
DOSBOX Demo: https://streamable.com/iyl8n

comment:3 by bgK, 7 years ago

I can reproduce this if I don't rename resource.aud to resaud.00x.

comment:4 by dafioram, 7 years ago

The gog version has 1 resource.aud file and 1 resource.sfx file. I rename both to *.000 then scummvm tells me my game is corrupt and it can't find volume for map.37. It still runs, but the behavior of this bug is not changed.

I guess having resaud.000 is not enough.

comment:5 by csnover, 7 years ago

Owner: set to csnover

Is there a way to dump this info to the log file?

If ScummVM is built with --enable-text-console then debug messages will be written to the terminal, otherwise you can just take a screenshot. AFAIK there is no way to also send debugger output to a log file, though that does sound like a worthwhile enhancement. If you would like this, could you open an enhancement request ticket?

I can reproduce this if I don't rename resource.aud to resaud.00x.

This would probably be specifically due to RESAUD.001 which is currently checked to decide if a game has multiple audio volumes. (This is obviously not great, and should probably be improved to look at the RESMAP or RESSCI file extensions instead.) The impacted sound effect is audio 16024 which comes from the SFX bundle.

The gog version has 1 resource.aud file and 1 resource.sfx file.

If you run resource_info audio 16024 in the debugger does it find the resource? This is what is used as a cue for the painting close-up, so if it is missing that scene will disappear in the way you observe it.

comment:6 by csnover, 7 years ago

I rename both to *.000 then scummvm tells me my game is corrupt and it can't find volume for map.37.

Wait, do you have a 37.MAP and 65535.MAP in the Phantasmagoria directory you give to ScummVM?

by dafioram, 7 years ago

Attachment: MD5S.txt added

md5 of files in gog phant1 directory. They are listed md5 sum then a space then the file name. No spaces consecutive md5/file files.

comment:7 by dafioram, 7 years ago

The attached file lists the file contents, and their full md5. I have removed the non-essential GOG and DOSBOX related files that they include (GOG icon, uninstall, ...).

I have the current version of Phantasmagoria that GOG distributes using GOG galaxy there distribution platform. The internal version they have for their phant1 version is 26559084. It does contain 37.MAP in the root and it does contain 65535.MAP in the Patches folder.

When I run resource_info audio 16024 I get: Resource audio.16024 not found.

comment:8 by csnover, 7 years ago

Please rename/remove 65535.MAP and 37.MAP and retry. The hashes you have provided show that 65535.MAP is the same as the 65535.MAP from CD1 of the US GM release, so it does not contain the necessary entries for later discs’ sound effects.

comment:9 by dafioram, 7 years ago

From the original game files from GOG removing only 65535.map from the patches folder and not renaming resource.aud, nor resource.sfx, nor removing 37.MAP fixed the missing graphic of the monster painting.

With the removal of 65535.map scummvm now finds resource.sfx for resource_info audio 16024.

If I completely follow http://wiki.scummvm.org/index.php/Datafiles then it would have me rename resource.aud and resource.sfx to *.000 which scummvm tells me is missing map.37, that my game is corrupt, and it then does exhibit this bug again. Maybe the data files wiki should be updated to reflect this special gog case?

Would it be a good idea to have scummvm issue a warning on game startup or a warning during game play when a missing resource like the picture is asked to be displayed?

comment:10 by csnover, 7 years ago

Maybe the data files wiki should be updated to reflect this special gog case?

I have temporarily updated the wiki with better guidance around this game’s digital download version, until some more automatic solutions (below) can be added to ScummVM.

Would it be a good idea to have scummvm issue a warning on game startup or a warning during game play when a missing resource like the picture is asked to be displayed?

Yes, we could do with better error reporting in this case.

In nightly builds, SCI engine shows a warning on start-up if invalid resource map offsets are detected, but in this case 65535.MAP does not have bad offsets, it is just incomplete.

In the long term I would really like to see some kind of game import wizard that automatically facilitates the correct installation of games from original media, but that’s a larger project than I can take on right now, so I will start with the simpler solutions for now, and will close this ticket once those mitigations are in place:

  • Print a warning to terminal if an audio resource requested by the game cannot be found
  • Blacklist these map patch files when starting Phant1 so they do not interfere (they have to be ignored in the CD release in any case)

I will also at least check to see if there is anything simple that we can do on the resource validation side to give earlier warnings in cases like this.

If you could, please check the other Phant1 bugs you reported where things that should be happening aren’t, and see if they still exist now that the audio resources are loading correctly. I wasn’t able to reproduce some of the other ones so it would be really nice if most of them are just fixed now.

Thanks again!

comment:11 by dafioram, 7 years ago

#9979 was closed since it was fixed by removing 65535.map. The other bugs I am still getting.

comment:12 by dafioram, 7 years ago

I see that phant2 is also listed in the data files wiki.

Would it also make sense to update the wiki for phant2? I also have phant2 from GOG it lists version number as 001.0.06. Has RESOURCE.AUD, RESOURCE.SGX, and 65535.map (but not 37.map). It doesn't contain RESDUK.PAT and there is no giant .gog/.iso file.

comment:13 by csnover, 7 years ago

Resolution: fixed
Status: newclosed

Thanks for your report! Patches for this issue have been added in 970c312e76c2c3ca721fe6abe7bb4a6ba9533dcf, d38704e16d33b4ccd735a1b824edcdef60ce2a9c, and 2005ed79d60632b92e3653bf0da69479b2d2324b, and will be available in daily builds 1.10.0git-4073 and higher.

Note: See TracTickets for help on using tickets.