30
edits
m (Sluicebox moved page SCI32 Mac Support Status to SCI/SCI32 Mac Support Status: Added "SCI" prefix so that it will be a subpage) |
(Updated with kPlatform info and latest status) |
||
Line 14: | Line 14: | ||
* Fix "Failed to initialize sound driver!" error when loading SCI2.1+ games (see patch below for bypassing this) | * Fix "Failed to initialize sound driver!" error when loading SCI2.1+ games (see patch below for bypassing this) | ||
* Fix screen items not being cleared when restoring | * Fix screen items not being cleared when restoring | ||
* Fix palette handling. Games either have corrupt palettes at startup or soon afterwards. | * Fix palette handling. Games either have corrupt palettes at startup or soon afterwards. | ||
* Use correct kDoSound subop numbers. Mac versions of SCI2.1 Middle and later continue using older subop numbers. | * Use correct kDoSound subop numbers. Mac versions of SCI2.1 Middle and later continue using older subop numbers. | ||
* Implement support for Mac color cursors. They are currently black and white and not upscaled. | * Implement support for Mac color cursors. They are currently black and white and not upscaled. | ||
* | * Implement kPlatform Mac subops for saving and restoring in KQ7, Shivers, Lighthouse, and Mother Goose. | ||
* Implement, or workaround, kPlatform Mac subop 12 for setting music volume (Phantasmagoria only) | |||
* Games seem too dark | * Games seem too dark | ||
* Verify accuracy of music playback | * Verify accuracy of music playback | ||
Line 32: | Line 32: | ||
| | | | ||
* Palette corruption after a while. | * Palette corruption after a while. | ||
|- | |- | ||
|KQ7 | |KQ7 | ||
| | | | ||
* | * Requires kPlatform subops for saving and loading (see below) | ||
* Intro and other movies require QuickTime to be implemented in video player | |||
* | |||
|- | |- | ||
|LSL6 HI-RES | |LSL6 HI-RES | ||
| | | | ||
* Palette corruption. | * Palette corruption. | ||
|- | |- | ||
|PQ4 | |PQ4 | ||
Line 49: | Line 46: | ||
* Palette corruption. | * Palette corruption. | ||
* Introduction error about too many screen items. | * Introduction error about too many screen items. | ||
|- | |- | ||
|GK2 | |GK2 | ||
Line 55: | Line 51: | ||
* "Failed to initialize sound driver!" | * "Failed to initialize sound driver!" | ||
* Palette corruption. | * Palette corruption. | ||
|- | |- | ||
|HOYLE5 | |HOYLE5 | ||
Line 64: | Line 59: | ||
|MOTHERGOOSE HI-RES | |MOTHERGOOSE HI-RES | ||
| | | | ||
* | * Requires kPlatform 0 6,7,8,9,10,11 subops for saving and loading, prevents booting | ||
|- | |- | ||
|PHANTASMAGORIA | |PHANTASMAGORIA | ||
Line 70: | Line 65: | ||
* "Failed to initialize sound driver!" | * "Failed to initialize sound driver!" | ||
* "kArrayFill signature mismatch" | * "kArrayFill signature mismatch" | ||
* Requires a kPlatform subop for setting music volume (see below) | |||
|- | |- | ||
|SHIVERS | |SHIVERS | ||
Line 75: | Line 71: | ||
* "Failed to initialize sound driver!" | * "Failed to initialize sound driver!" | ||
* Wrong kDoSound subops. | * Wrong kDoSound subops. | ||
* Requires kPlatform subops for saving and loading (see below) | |||
|- | |- | ||
|SQ6 | |SQ6 | ||
Line 80: | Line 77: | ||
* "Failed to initialize sound driver!" | * "Failed to initialize sound driver!" | ||
* Wrong kDoSound subops. | * Wrong kDoSound subops. | ||
|- | |- | ||
|TORIN | |TORIN | ||
Line 93: | Line 89: | ||
| | | | ||
* "Failed to initialize sound driver!" | * "Failed to initialize sound driver!" | ||
* Lite:init | * Lite:init errors | ||
* | * Requires kPlatform subops for saving and loading (see below) | ||
|- | |- | ||
|RAMA | |RAMA | ||
| | | | ||
* | * "Failed to initialize sound driver!" | ||
|- | |- | ||
|PQSWAT | |PQSWAT | ||
Line 126: | Line 122: | ||
...Or even better, you could figure out what it's supposed to do! =) | ...Or even better, you could figure out what it's supposed to do! =) | ||
== kPlatform subops == | |||
kPlatform supports a handful of miscellaneous Mac-specific sub operations. The SCI32 ones are different than SCI16, and some changed between SCI32 versions. I have decompiled and audited all kPlatform calls in all SCI32 Mac scripts, so this is a complete list of who uses what outstanding operations: | |||
* KQ7 does custom saving and restoring with subops 3, 4, and 5 to initiate, save, and restore files. Initiate is called when starting a new game. Initiate and Restore would display a native Mac save or open dialog with a hard-coded and misspelled prompt such as "Who's game?". The interpreter would remember the current save file, not the game scripts. These subops take no parameters. | |||
* Shivers also does custom saving and restoring with subops 3, 4, and 5 but they take parameters similar to the normal kSave and kRestore functions. It appears the interpreter is no longer in charge of tracking the current save file. | |||
* Lighthouse also does custom saving and restoring but just for fun it only uses subop 3 but adds a sub-subop parameter for the three operations. It appears that -1 initializes, 1 saves, and 0 restores. | |||
* Mother Goose uses subops 6, 7, 8, 9, 10, and 11 for saving and restoring. This includes delete functionality. These subops take parameters similar to kSave and kRestore. | |||
* Phantasmagoria sets the music volume from the control panel with subop 12 and passes a volume parameter between 0 and 15. |
edits