mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-01 08:23:15 +00:00
SCI: Fix for bug #3522046 "Detection of SQ4CD as Windows breaks Music"
Fall back to the DOS soundtracks in Windows CD versions if the user picks a non-General MIDI music device, as the Windows tracks only contain MIDI music
This commit is contained in:
parent
24e57808aa
commit
e41e412c9e
@ -45,6 +45,7 @@ GameFeatures::GameFeatures(SegManager *segMan, Kernel *kernel) : _segMan(segMan)
|
||||
_usesCdTrack = Common::File::exists("cdaudio.map");
|
||||
if (!ConfMan.getBool("use_cdaudio"))
|
||||
_usesCdTrack = false;
|
||||
_forceDOSTracks = false;
|
||||
}
|
||||
|
||||
reg_t GameFeatures::getDetectionAddr(const Common::String &objName, Selector slc, int methodNum) {
|
||||
@ -642,7 +643,7 @@ MoveCountType GameFeatures::detectMoveCountType() {
|
||||
}
|
||||
|
||||
bool GameFeatures::useAltWinGMSound() {
|
||||
if (g_sci && g_sci->getPlatform() == Common::kPlatformWindows && g_sci->isCD()) {
|
||||
if (g_sci && g_sci->getPlatform() == Common::kPlatformWindows && g_sci->isCD() && !_forceDOSTracks) {
|
||||
SciGameId id = g_sci->getGameId();
|
||||
return (id == GID_ECOQUEST ||
|
||||
id == GID_JONES ||
|
||||
|
@ -117,6 +117,12 @@ public:
|
||||
*/
|
||||
bool useAltWinGMSound();
|
||||
|
||||
/**
|
||||
* Forces DOS soundtracks in Windows CD versions when the user hasn't
|
||||
* selected a MIDI output device
|
||||
*/
|
||||
void forceDOSTracks() { _forceDOSTracks = true; }
|
||||
|
||||
private:
|
||||
reg_t getDetectionAddr(const Common::String &objName, Selector slc, int methodNum = -1);
|
||||
|
||||
@ -137,6 +143,7 @@ private:
|
||||
|
||||
MoveCountType _moveCountType;
|
||||
bool _usesCdTrack;
|
||||
bool _forceDOSTracks;
|
||||
|
||||
SegManager *_segMan;
|
||||
Kernel *_kernel;
|
||||
|
@ -88,6 +88,12 @@ void SciMusic::init() {
|
||||
uint32 dev = MidiDriver::detectDevice(deviceFlags);
|
||||
_musicType = MidiDriver::getMusicType(dev);
|
||||
|
||||
if (g_sci->_features->useAltWinGMSound() && _musicType != MT_GM) {
|
||||
warning("A Windows CD version with an alternate MIDI soundtrack has been chosen, "
|
||||
"but no MIDI music device has been selected. Reverting to the DOS soundtrack");
|
||||
g_sci->_features->forceDOSTracks();
|
||||
}
|
||||
|
||||
switch (_musicType) {
|
||||
case MT_ADLIB:
|
||||
// FIXME: There's no Amiga sound option, so we hook it up to AdLib
|
||||
|
Loading…
x
Reference in New Issue
Block a user