Difference between revisions of "SCI/SCI32 Mac Support Status"

Jump to navigation Jump to search
Updated with kPlatform info and latest status
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)
* Implement save and restore for games that use native Macintosh file dialogs. (I almost finished this a while ago, will resume...)
* 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.
* Reverse engineer outstanding kPlatform subops and verify the existing implementation.
* 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.
* Native Mac save/restore dialogs.
|-
|-
|KQ7
|KQ7
|
|
* Most main menu buttons don't work.
* Requires kPlatform subops for saving and loading (see below)
* Introduction movie (QuickTime) fails an assertion.
* Intro and other movies require QuickTime to be implemented in video player
* Uses a kPlatform subop to open a native Mac file dialog prompting "Who's game?" [sic]
|-
|-
|LSL6 HI-RES
|LSL6 HI-RES
|
|
* Palette corruption.
* Palette corruption.
* Native Mac save/restore dialogs.
|-
|-
|PQ4
|PQ4
Line 49: Line 46:
* Palette corruption.
* Palette corruption.
* Introduction error about too many screen items.
* Introduction error about too many screen items.
* Native Mac save/restore dialogs.
|-
|-
|GK2
|GK2
Line 55: Line 51:
* "Failed to initialize sound driver!"
* "Failed to initialize sound driver!"
* Palette corruption.
* Palette corruption.
* Native Mac save/restore dialogs.
|-
|-
|HOYLE5
|HOYLE5
Line 64: Line 59:
|MOTHERGOOSE HI-RES
|MOTHERGOOSE HI-RES
|
|
* "Unknown kMacPlatform(9)" after Sierra logo.
* 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.
* Native Mac save/restore dialogs.
|-
|-
|TORIN
|TORIN
Line 93: Line 89:
|
|
* "Failed to initialize sound driver!"
* "Failed to initialize sound driver!"
* Lite:init sends to non-script object.
* Lite:init errors
* Native Mac save/restore dialogs.
* Requires kPlatform subops for saving and loading (see below)
|-
|-
|RAMA
|RAMA
|
|
* TODO
* "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.
29

edits

Navigation menu