diff --git a/gob/gob.cpp b/gob/gob.cpp index 9a08dc58be9..e304563c3d0 100644 --- a/gob/gob.cpp +++ b/gob/gob.cpp @@ -58,9 +58,9 @@ static const GobGameSettings gob_games[] = { {"gob1", "Gobliiins (DOS VGA)", GF_GOB1, "a5e232fcd02733c7dffff107d22d36eb"}, // CD 1.000 version. Multilingual - {"gob1", "Gobliiins (CD)", GF_GOB1, "037db48ebce94bdfe42e2c9510da9211"}, + {"gob1", "Gobliiins (CD)", GF_GOB1 | GF_CD, "037db48ebce94bdfe42e2c9510da9211"}, // CD 1.02 version. Multilingual - {"gob1", "Gobliiins (CD)", GF_GOB1, "45f9c1162dd7040fd05fd013ccc176e2"}, + {"gob1", "Gobliiins (CD)", GF_GOB1 | GF_CD, "45f9c1162dd7040fd05fd013ccc176e2"}, {"gob1", "Gobliiins (Amiga)", GF_GOB1, "d9f8736b7dc0ea891cd06592a72e8a72"}, {"gob1", "Gobliiins (Amiga)", GF_GOB1, "69f9ae85252271e7dfa62883e581e5e9"}, @@ -244,6 +244,10 @@ int GobEngine::init(GameDetector &detector) { _system->initSize(320, 200); _system->endGFXTransaction(); + // On some systems it's not safe to run CD audio games from the CD. + if (_features & GF_CD) + checkCD(); + int cd_num = ConfMan.getInt("cdrom"); if (cd_num >= 0) _system->openCD(cd_num); diff --git a/gob/gob.h b/gob/gob.h index 556daeda223..3e22d4a436c 100644 --- a/gob/gob.h +++ b/gob/gob.h @@ -42,7 +42,8 @@ enum { GF_GOB1 = 1 << 0, GF_GOB2 = 1 << 1, GF_GOB3 = 1 << 2, - GF_WOODRUFF = 1 << 3 + GF_WOODRUFF = 1 << 3, + GF_CD = 1 << 4 }; namespace Gob { diff --git a/gob/module.mk b/gob/module.mk index 5089182fb2c..6d2acac63c5 100644 --- a/gob/module.mk +++ b/gob/module.mk @@ -8,6 +8,7 @@ MODULE_OBJS := \ gob/driver_vga.o \ gob/game.o \ gob/global.o \ + gob/gob.o \ gob/goblin.o \ gob/init.o \ gob/inter.o \ @@ -17,11 +18,10 @@ MODULE_OBJS := \ gob/palanim.o \ gob/parse.o \ gob/scenery.o \ - gob/util.o \ - gob/video.o \ gob/sound.o \ gob/timer.o \ - gob/gob.o + gob/util.o \ + gob/video.o MODULE_DIRS += \ gob