Opened 2 years ago

Closed 23 months ago

Last modified 23 months ago

#9797 closed defect (fixed)

SCI: Torin: Access violation on script.20700

Reported by: g5ppc Owned by: csnover
Priority: blocker Component: Engine: SCI
Keywords: sci32 Cc:
Game: Torin's Passage

Description

Using the May 16 build, Torin's Passage FRench on Win7,
in World 2/Escarpa, when Torin attempts to walk down to the just-grown tree, at the end of the animation, the debug console appears:
ERROR: Access violation reading script.20700 buffer: 8010 + 2 > 8011 (abs: 8010 + 2 > 8011)!

Attachments (2)

torin-cd-win-fr.005 (65.1 KB) - added by g5ppc 2 years ago.
listing.txt (76.1 KB) - added by g5ppc 2 years ago.
File listing of the CD contents

Download all attachments as: .zip

Change History (19)

Changed 2 years ago by g5ppc

Attachment: torin-cd-win-fr.005 added

comment:1 Changed 2 years ago by csnover

Keywords: sci32 added
Resolution: duplicate
Status: newpending
Summary: Torin's Passage access violation on script.20700SCI: Torin: Access violation on script.20700

This is the same crash that was reported in #9776. Could you please state the version of ScummVM you are using, and send a complete directory listing of your game files directory (dir /s on Windows, ls -lR on *nix)?

comment:2 Changed 2 years ago by g5ppc

Ugh, you are right. I only looked at the open ticket list first.

It is the PointSoft release, and there are a bunch of .MSG files in a directory I thought wasn't needed. D:\FRENCH\MSG

Changed 2 years ago by g5ppc

Attachment: listing.txt added

File listing of the CD contents

comment:3 Changed 2 years ago by g5ppc

\FRENCH\MSG was available to ScummVM, so I tried renaming it to \PATCHES \PATCH and even moving *.MSG into the game-dir root. None stopped the crash from the save game. Do I need to restart the game? Is it a problem that these files are .MSG files, and the 9776 bug mentions .SCR files?

comment:4 Changed 2 years ago by csnover

Resolution: duplicate
Status: pendingnew

It is interesting that your disc does not appear to contain the extra “patch” directory that the reporter in #9776 had on their disc. I assume that their patch directory contained the same files as the official TORINPAT patch, which it sounds like is necessary to keep the game from crashing. If this is so, some extra work will need to be done to either hot-patch the bad script or blacklist it and require users to install the patch. (You may install the patch by extracting the contents of that ZIP file to your Torin directory.) Please let me know if applying that patch allows you to continue the game successfully.

With regards to the message files, they have nothing to do with this crash. I have a pending patch to look up the correct locale-specific message files in this release, but I have not finalised it yet.

comment:5 Changed 2 years ago by g5ppc

I tried renaming 20700.MSG to 20700.SCR (still in game-root dir) and the console called out a resource type conflict on that file, and no difference. So ScummVM does seem to notice 20700.SCR, and I assume 20700.MSG as well.

The build is 1.10.0git3283-gcadd89e675 07:35:40

Confirmed \FRENCH\MSG is not processed. Confirmed \PATCHES is processed. Restarting game in Chapter 2, and will see if it still errors.

Also removed the \ENGLISH \ITALIAN \GERMAN directories, although I guess that probably isn't necessary since \FRENCH\MSG wasn't processed either.

comment:6 Changed 2 years ago by g5ppc

Will go try the TORINPAT on the savegame.

comment:7 Changed 2 years ago by g5ppc

Savegame seems invalidated by the TORINPAT, so doing a restart from Chap 2.

comment:8 Changed 2 years ago by g5ppc

TORINPAT worked.

comment:9 Changed 2 years ago by csnover

Thank you for verifying the problem is resolved by the patch. So that I can blacklist the affected script, would you kindly perform the following steps, using the original game data *without* the patches from TORINPAT:

  1. Start Torin in ScummVM
  2. Press Ctrl+Shift+D to enter the SCI debugger
  3. Type resource_info script 20700 into the debugger and hit Enter

This should print out a resource size & location. Please reply to this ticket with that information.

Thanks!

comment:10 Changed 2 years ago by g5ppc

resource_info script 20700

Resource size: 6066
Resource location: RESSCI.000

comment:11 Changed 2 years ago by csnover

Thanks for the information! It seems at the moment that this bad script has the same size as the good script from TORINPAT. This either means that the heap is the bad part, or the bad script can only be identified by digest instead of by file size.

I have enhanced the resource_info command in daily builds 1.10.0git-3302 and higher to also display the message digest of a resource. If you could, once the next daily build is available, run these resource_info commands with patches from TORINPAT disabled and paste the full output here again:

  1. resource_info script 20700
  2. resource_info heap 20700

Thanks for your help tracking down this issue!

comment:12 Changed 2 years ago by g5ppc

script:

Resource size: 6066
Resource location: RESSCI.000
Resource hash (decompressed): 665967c0040e7bf13b8ef25e212078ad

heap:

Resource size: 1944
Resource location: RESSCI.000
Resource hash (decompressed): ead0563382a6aa83b860df31c46b672a

Is there a way to write that output to file or clipboard for cut/paste?

comment:13 Changed 2 years ago by csnover

Thanks for the details. Interesting, your copy of the game seems to come with the fixed script, but the bad heap file.

I have a patch now that will detect and warn about this bad file when the game starts, but I want to get some feedback from others about some details of the UX (regarding whether/where to link to the game patch) before I land it.

Is there a way to write that output to file or clipboard for cut/paste?

If you are compiling yourself you can use --enable-text-console to put the debugger in a text console, otherwise you can just take a screenshot and attach it. I am not sure if there is another way to get data out of the graphical debugger, since I always use the text console.

comment:14 Changed 2 years ago by csnover

Priority: normalblocker

comment:15 Changed 23 months ago by csnover

Owner: set to csnover

comment:16 Changed 23 months ago by csnover

Resolution: fixed
Status: newclosed

Thanks for your report! A patch for this issue has been added in commit 8e0ccc5eb144a458d3e12cae24fa7970a7d9a749 and will be available in nightly builds 1.10.0git-3950 and later.

Since #9864 clearly demonstrates that this version of Torin cannot just have TORINPAT applied to it, there is now code in ScummVM to hot-patch the mismatched heap that causes this error. Hopefully this fix allows the PointSoft release of Torin to be completable now without any other patches.

comment:17 Changed 23 months ago by g5ppc

Can confirm this seems fixed without TORINPAT from a replay to this point.

Note: See TracTickets for help on using tickets.