FREESCAPE: added detection of zx spectrum disk release of driller

This commit is contained in:
neuromancer 2023-01-20 12:22:13 +01:00
parent 8c14ff08e0
commit d7d0f9b6c0
3 changed files with 31 additions and 7 deletions

View File

@ -47,6 +47,18 @@ static const ADGameDescription gameDescriptions[] = {
GF_ZX_RETAIL | ADGF_TESTING,
GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
},
{
"driller",
"",
{
{"DRILLER.ZX.EXTRACTED", 0, "6876fc03e754137f428bd4d5f16452b5", 37888},
AD_LISTEND
},
Common::EN_ANY,
Common::kPlatformZX,
GF_ZX_DISC | ADGF_TESTING,
GUIO2(GUIO_NOMIDI, GAMEOPTION_AUTOMATIC_DRILLING)
},
{
"driller",
"",

View File

@ -353,10 +353,11 @@ enum DrillerReleaseFlags {
GF_AMIGA_BUDGET = (1 << 1),
GF_ZX_RETAIL = (1 << 2),
GF_ZX_BUDGET = (1 << 3),
GF_CPC_RETAIL = (1 << 4),
GF_CPC_RETAIL2 = (1 << 5),
GF_CPC_BUDGET = (1 << 6),
GF_CPC_VIRTUALWORLDS = (1 << 7),
GF_ZX_DISC = (1 << 4),
GF_CPC_RETAIL = (1 << 5),
GF_CPC_RETAIL2 = (1 << 6),
GF_CPC_BUDGET = (1 << 7),
GF_CPC_VIRTUALWORLDS = (1 << 8),
};
class DrillerEngine : public FreescapeEngine {

View File

@ -543,19 +543,30 @@ void DrillerEngine::loadAssetsFullGame() {
if (!file.isOpen())
error("Failed to open driller.zx.extracted");
loadMessagesFixedSize(&file, 0x20e4, 14, 20);
if (_variant & GF_ZX_DISC)
loadMessagesFixedSize(&file, 0x2164, 14, 20);
else
loadMessagesFixedSize(&file, 0x20e4, 14, 20);
if (_variant & GF_ZX_RETAIL)
loadFonts(&file, 0x62ca);
if (_variant & GF_ZX_BUDGET)
else if (_variant & GF_ZX_BUDGET)
loadFonts(&file, 0x5aa8);
else if (_variant & GF_ZX_DISC)
loadFonts(&file, 0x63f0);
loadGlobalObjects(&file, 0x1c93);
if (_variant & GF_ZX_DISC)
loadGlobalObjects(&file, 0x1d13);
else
loadGlobalObjects(&file, 0x1c93);
if (_variant & GF_ZX_RETAIL)
load8bitBinary(&file, 0x642c, 4);
else if (_variant & GF_ZX_BUDGET)
load8bitBinary(&file, 0x5c0a, 4);
else if (_variant & GF_ZX_DISC)
load8bitBinary(&file, 0x6552, 4);
else
error("Unknown ZX spectrum variant");
} else if (isCPC()) {