Initial support of C64 MM & Zak

svn-id: r18146
This commit is contained in:
Eugene Sandulenko 2005-05-17 23:56:21 +00:00
parent e05da91674
commit fc87c5821a
3 changed files with 37 additions and 15 deletions

View File

@ -161,6 +161,7 @@ const char *getLanguageDescription(Language id) {
const PlatformDescription g_platforms[] = {
{"amiga", "ami", "Amiga", kPlatformAmiga},
{"atari", "atari-st", "Atari ST", kPlatformAtariST},
{"c64", "c64", "Commodore 64", kPlatformC64},
// The 'official' spelling seems to be "FM-TOWNS" (e.g. in the Indy4 demo).
// However, on the net many variations can be seen, like "FMTOWNS",

View File

@ -131,7 +131,8 @@ enum Platform {
kPlatformMacintosh = 3,
kPlatformFMTowns = 4,
kPlatformWindows = 5,
kPlatformNES = 6
kPlatformNES = 6,
kPlatformC64 = 7
/*
kPlatformSEGA,
kPlatformPCEngine

View File

@ -35,30 +35,45 @@ void ScummEngine_v2::readClassicIndexFile() {
int i;
if (_gameId == GID_MANIAC) {
if (_platform == Common::kPlatformNES)
if (_platform == Common::kPlatformC64) {
_numGlobalObjects = 256;
_numRooms = 55;
_numCostumes = 25;
_numScripts = 160;
_numSounds = 70;
} if (_platform == Common::kPlatformNES) {
_numGlobalObjects = 775;
else
_numGlobalObjects = 800;
_numRooms = 55;
_numRooms = 55;
if (_platform == Common::kPlatformNES)
// costumes 25-36 are special. see v1MMNEScostTables[] in costume.cpp
// costumes 37-76 are room graphics resources
// costume 77 is a character set translation table
// costume 78 is a preposition list
// costume 79 is unused but allocated, so the total is a nice even number :)
_numCostumes = 80;
else
_numScripts = 200;
_numSounds = 100;
} else {
_numGlobalObjects = 800;
_numRooms = 55;
_numCostumes = 35;
_numScripts = 200;
_numSounds = 100;
_numScripts = 200;
_numSounds = 100;
}
} else if (_gameId == GID_ZAK) {
_numGlobalObjects = 775;
_numRooms = 61;
_numCostumes = 37;
_numScripts = 155;
_numSounds = 120;
if (_platform == Common::kPlatformC64) {
_numGlobalObjects = 775;
_numRooms = 59;
_numCostumes = 38;
_numScripts = 155;
_numSounds = 127;
} else {
_numGlobalObjects = 775;
_numRooms = 61;
_numCostumes = 37;
_numScripts = 155;
_numSounds = 120;
}
}
_fileHandle->seek(0, SEEK_SET);
@ -175,6 +190,11 @@ void ScummEngine_v2::readIndexFile() {
_version = 1;
readClassicIndexFile();
break;
case 0x132:
printf("C64 V1 game detected\n");
_version = 1;
readClassicIndexFile();
break;
default:
error("Unknown magic id (0x%X) - this version is unsupported", magic);
break;