Open main menu

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

Updates to TODO items and blockers
(Updated with kPlatform info and latest status)
(Updates to TODO items and blockers)
Line 13: Line 13:
==General TODOs==
==General TODOs==


* 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 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.
* 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 kPlatform Mac subops for saving and restoring in KQ7, Shivers, Lighthouse, and Mother Goose.
Line 31: Line 28:
|GK1
|GK1
|
|
* Palette corruption after a while.
* Testing, the game is playable.
|-
|-
|KQ7
|KQ7
Line 40: Line 37:
|LSL6 HI-RES
|LSL6 HI-RES
|
|
* Palette corruption.
* Testing, the game is playable.
|-
|-
|PQ4
|PQ4
Line 49: Line 46:
|GK2
|GK2
|
|
* "Failed to initialize sound driver!"
* Palette corruption.
* Palette corruption.
* Video files don't play. VLC can't play the Mac videos. Possible endian issue.
* Out of bounds assertion when playing AIFF audio.
* Determine how to name/detect the multi-disc Data files
|-
|-
|HOYLE5
|HOYLE5
|
|
* "Failed to initialize sound driver!"
* Palette corruption.
* Wrong kDoSound subops.
|-
|-
|MOTHERGOOSE HI-RES
|MOTHERGOOSE HI-RES
|
|
* Requires kPlatform 0 6,7,8,9,10,11 subops for saving and loading, prevents booting
* Requires kPlatform 0 6,7,8,9,10,11 subops for saving and loading, prevents booting
* Palette corruption.
|-
|-
|PHANTASMAGORIA
|PHANTASMAGORIA
|
|
* "Failed to initialize sound driver!"
* Palette corruption.
* "kArrayFill signature mismatch"
* Out of bounds assertion when playing AIFF audio.
* Requires a kPlatform subop for setting music volume (see below)
* Determine how to name/detect the multi-disc Data files
|-
|-
|SHIVERS
|SHIVERS
|
|
* "Failed to initialize sound driver!"
* Wrong kDoSound subops.
* Requires kPlatform subops for saving and loading (see below)
* Requires kPlatform subops for saving and loading (see below)
|-
|-
|SQ6
|SQ6
|
|
* "Failed to initialize sound driver!"
* Palette corruption.
* Wrong kDoSound subops.
* Audio assertion when clicking a main menu item.
|-
|-
|TORIN
|TORIN
|
|
* "Failed to initialize sound driver!"
* Lip sync not animating, log reports missing sync resources
|-
|-
|LSL7
|LSL7
|
|
* "Failed to initialize sound driver!"
* Saving/restoring crashes, kScummVMSaveLoad script patch not applied correctly
|-
|-
|LIGHTHOUSE
|LIGHTHOUSE
|
|
* "Failed to initialize sound driver!"
* Lite:init errors
* Lite:init errors
* Requires kPlatform subops for saving and loading (see below)
* Requires kPlatform subops for saving and loading (see below)
* Determine how to name/detect the multi-disc Data files
|-
|-
|RAMA
|RAMA
|
|
* "Failed to initialize sound driver!"
* Determine how to name/detect the multi-disc Data files
|-
|-
|PQSWAT
|PQSWAT
|
|
* "Failed to initialize sound driver!"
* Determine how to name/detect the multi-disc Data files
* Wrong kDoSound subops.
|}
|}
=="Failed to initialize sound driver!"==
The "Failed to initialize sound driver!" error occurs within SciMusic::init.
You can temporarily bypass that with this patch:
<syntaxhighlight lang="diff">
--- a/engines/sci/sound/music.cpp
+++ b/engines/sci/sound/music.cpp
@@ -74,6 +74,8 @@ void SciMusic::init() {
#ifdef ENABLE_SCI32
        if (g_sci->_features->generalMidiOnly()) {
                deviceFlags = MDT_MIDI;
+      } else if (platform == Common::kPlatformMacintosh) {
+              deviceFlags = MDT_MIDI;
        } else {
#endif
                deviceFlags = MDT_PCSPK | MDT_PCJR | MDT_ADLIB | MDT_MIDI;
</syntaxhighlight>
...Or even better, you could figure out what it's supposed to do! =)


== kPlatform subops ==
== kPlatform subops ==
30

edits