More demo version fixes
svn-id: r25532
This commit is contained in:
parent
80bc94304c
commit
ffdd3522bf
5 changed files with 29 additions and 10 deletions
|
@ -557,6 +557,17 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||
GF_GOB2,
|
||||
"intro"
|
||||
},
|
||||
{
|
||||
{
|
||||
"ween",
|
||||
"",
|
||||
AD_ENTRY1("intro.stk", "e6d13fb3b858cb4f78a8780d184d5b2c"),
|
||||
FR_FRA,
|
||||
kPlatformAtariST,
|
||||
},
|
||||
GF_GOB2,
|
||||
"intro"
|
||||
},
|
||||
{
|
||||
{
|
||||
"ween",
|
||||
|
@ -588,7 +599,7 @@ static const GOBGameDescription gameDescriptions[] = {
|
|||
kPlatformPC,
|
||||
},
|
||||
GF_GOB2,
|
||||
"intro"
|
||||
"show"
|
||||
},
|
||||
{
|
||||
{
|
||||
|
|
|
@ -627,6 +627,7 @@ int GobEngine::init() {
|
|||
error("GobEngine::init(): Unknown version of game engine");
|
||||
_noMusic = MidiDriver::parseMusicDriver(ConfMan.get("music_driver")) == MD_NULL;
|
||||
if (!_noMusic && !(_platform == Common::kPlatformAmiga) &&
|
||||
!(_platform == Common::kPlatformAtariST) &&
|
||||
(((_platform == Common::kPlatformMacintosh) && (_features & Gob::GF_GOB1)) ||
|
||||
(_features & Gob::GF_GOB2)))
|
||||
_adlib = new Adlib(this);
|
||||
|
@ -648,9 +649,13 @@ int GobEngine::init() {
|
|||
_global->_debugFlag = 1;
|
||||
_global->_doRangeClamp = 1;
|
||||
|
||||
// WORKAROUND: Some Amiga versions only play music when the video mode is
|
||||
// Amiga-ish
|
||||
_global->_fakeVideoMode = (_platform == Common::kPlatformAmiga) ? 0x11 : 0x13;
|
||||
// WORKAROUND: Some versions check the video mode to detect the system
|
||||
if (_platform == Common::kPlatformAmiga)
|
||||
_global->_fakeVideoMode = 0x11;
|
||||
else if (_platform == Common::kPlatformAtariST)
|
||||
_global->_fakeVideoMode = 0x10;
|
||||
else
|
||||
_global->_fakeVideoMode = 0x13;
|
||||
|
||||
_global->_videoMode = 0x13;
|
||||
_global->_useMouse = 1;
|
||||
|
|
|
@ -1403,9 +1403,9 @@ bool Inter_v2::o2_readData(char &cmdCount, int16 &counter, int16 &retFlag) {
|
|||
if (((dataVar >> 2) == 59) && (size == 4)) {
|
||||
retSize = _vm->_dataio->readData(handle, tmp, 4);
|
||||
WRITE_VAR(59, READ_LE_UINT32(tmp));
|
||||
// The scripts in some Amiga versions divide through 256^3 then,
|
||||
// The scripts in some versions divide through 256^3 then,
|
||||
// effectively doing a LE->BE conversion
|
||||
if ((_vm->_platform == Common::kPlatformAmiga) && (VAR(59) < 256))
|
||||
if ((_vm->_platform != Common::kPlatformPC) && (VAR(59) < 256))
|
||||
WRITE_VAR(59, SWAP_BYTES_32(VAR(59)));
|
||||
} else
|
||||
retSize = _vm->_dataio->readData(handle, buf, size);
|
||||
|
@ -1741,7 +1741,7 @@ bool Inter_v2::o2_palLoad(char &cmdCount, int16 &counter, int16 &retFlag) {
|
|||
break;
|
||||
|
||||
case 52:
|
||||
if ((_vm->_platform != Common::kPlatformAmiga) &&
|
||||
if ((_vm->_platform == Common::kPlatformPC) &&
|
||||
((_vm->_global->_videoMode != 0x0D) || (_vm->_global->_colorCount == 256))) {
|
||||
_vm->_global->_inter_execPtr += 48;
|
||||
return false;
|
||||
|
@ -1830,7 +1830,7 @@ bool Inter_v2::o2_palLoad(char &cmdCount, int16 &counter, int16 &retFlag) {
|
|||
_vm->_draw->_vgaPalette[i].green = _vm->_global->_inter_execPtr[1];
|
||||
_vm->_draw->_vgaPalette[i].blue = _vm->_global->_inter_execPtr[2];
|
||||
}
|
||||
if ((_vm->_platform != Common::kPlatformAmiga) && _vm->_global->_videoMode >= 0x13)
|
||||
if ((_vm->_platform == Common::kPlatformPC) && _vm->_global->_videoMode >= 0x13)
|
||||
return false;
|
||||
break;
|
||||
|
||||
|
@ -2224,7 +2224,7 @@ void Inter_v2::o2_initScreen(void) {
|
|||
|
||||
_vm->_global->_fakeVideoMode = videoMode;
|
||||
|
||||
// Some Amiga versions require this
|
||||
// Some versions require this
|
||||
if (videoMode == 0xD)
|
||||
videoMode = 0x14;
|
||||
|
||||
|
|
|
@ -151,6 +151,8 @@ void Snd::nextCompositionPos(void) {
|
|||
setSample(_compositionSamples[slot], 1, 0, 0);
|
||||
return;
|
||||
}
|
||||
if (_compositionPos == 49)
|
||||
_compositionPos = -1;
|
||||
}
|
||||
_compositionPos = -1;
|
||||
}
|
||||
|
|
|
@ -99,7 +99,8 @@ Video::SurfaceDesc *Video_v2::initSurfDesc(int16 vidMode, int16 width, int16 hei
|
|||
int16 someFlags = 1;
|
||||
SurfaceDesc *descPtr;
|
||||
|
||||
if (_vm->_platform == Common::kPlatformAmiga)
|
||||
if ((_vm->_platform == Common::kPlatformAmiga) ||
|
||||
(_vm->_platform == Common::kPlatformAtariST))
|
||||
flags &= ~RETURN_PRIMARY;
|
||||
|
||||
if (flags != PRIMARY_SURFACE)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue