Opened 6 years ago

Closed 6 years ago

#10925 closed defect (fixed)

SCI: SQ3 German Amiga crashes on audio init

Reported by: sluicebox Owned by: sluicebox
Priority: normal Component: Engine: SCI
Version: Keywords: has-pull-request
Cc: Game: Space Quest 3

Description

SQ3 German Amiga fails an assertion on load. I went back a couple ScummVM versions with same results.

It looks to me like the SCI version detection is coming up with the wrong values, though I don't know much about SCI versions, so maybe they're right and it's just a weird game.

detectMapVersion(): kResVersionSci1Middle (seems wrong)
detectVolVersion(): kResVersionSci0Sci1Early (seems right)
detectSciVersion(): SCI_VERSION_1_MIDDLE (seems wrong, a result of the map version)

SCI Viewer and SCI Companion can read the resources successfully.

This is the final version of SQ3. It's dated June 1991, two years after English Amiga and six months after German DOS.

Change History (4)

comment:1 by sluicebox, 6 years ago

Summary: SCI: SQ3 German Amiga doesn't loadSCI: SQ3 German Amiga crashes on audio init

The map/vol/sci version detection looks to be correct. The problem is occurring during audio initialization. Disabling audio allows the loading to get farther before a different error occurs, #10926, fix pending. Once that's merged it will load with audio disabled. Updating ticket title.

comment:2 by sluicebox, 6 years ago

Keywords: has-pull-request added
Owner: set to sluicebox

https://github.com/scummvm/scummvm/pull/1562

MidiDriver_AmigaMac is attempting to determine the platform based on the existence of resources. SQ3 German Amiga happens to contain a patch 7 resource, which the code treats as proof of Macintosh, and uses that instead of the correct patch 5.

There's no need for this component to try to figure out the platform, it's already known, so now it uses the known value.

Tested against all my Amiga and Mac versions.

comment:3 by Filippos Karapetis <bluegr@…>, 6 years ago

In 3209bfb7:

SCI: Remove MidiDriver_AmigaMac platform inference

Tell MidiDriver_AmigaMac the game's platform instead of it
attempting to infer this by which patch resources exist.

Fixes bug #10925 where SQ3 German Amiga is treated as Mac because
it happens to contain a patch 7 resource.

comment:4 by bluegr, 6 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.