add maniacnes target, rather prelimary so people would be well advised not to add to compatibility at this point

svn-id: r9690
This commit is contained in:
Jonathan Gray 2003-08-14 11:40:50 +00:00
parent 50482ded7b
commit 413f09eff5
5 changed files with 25 additions and 1 deletions

View File

@ -285,6 +285,7 @@ protected:
void o2_startScript();
void o2_subtract();
void o2_subIndirect();
void o2_switchCostumeSet();
void o2_verbOps();
void o2_waitForActor();
void o2_waitForMessage();

View File

@ -168,6 +168,13 @@ void Scumm_v2::readIndexFile() {
_version = 1;
readClassicIndexFile();
break;
case 0x4643:
if (!(_features & GF_NES))
error("use maniacnes target");
warning("NES V1 game detected");
_version = 1;
readClassicIndexFile();
break;
default:
error("Unknown magic id (0x%X) - this version is unsupported", magic);
break;

View File

@ -246,7 +246,7 @@ void Scumm_v2::setupOpcodes() {
OPCODE(o5_notEqualZero),
OPCODE(o2_setOwnerOf),
OPCODE(o2_addIndirect),
OPCODE(o2_dummy),
OPCODE(o2_switchCostumeSet),
/* AC */
OPCODE(o2_drawSentence),
OPCODE(o5_putActorInRoom),
@ -1488,6 +1488,16 @@ void Scumm_v2::o2_dummy() {
warning("o2_dummy invoked (opcode %d)", _opcode);
}
void Scumm_v2::o2_switchCostumeSet() {
// NES version of maniac uses this to switch between the two
// groups of costumes it has
if (_features & GF_NES) {
warning("stub: o2_switchCostumeSet()");
fetchScriptByte();
} else
o2_dummy();
}
void Scumm_v2::resetSentence() {
VAR(VAR_SENTENCE_VERB) = VAR(VAR_BACKUP_VERB);
VAR(VAR_SENTENCE_OBJECT1) = 0;

View File

@ -85,6 +85,7 @@ enum GameFeatures {
GF_AFTER_HEV7 = 1 << 15,
GF_FMTOWNS = 1 << 16,
GF_FEW_LOCALS = 1 << 17,
GF_NES = 1 << 18,
GF_EXTERNAL_CHARSET = GF_SMALL_HEADER
};

View File

@ -70,6 +70,8 @@ static const VersionSettings scumm_settings[] = {
{"maniac", "Maniac Mansion", GID_MANIAC, 2, VersionSettings::ADLIB_ALWAYS,
GF_SMALL_HEADER | GF_USE_KEY | GF_SMALL_NAMES | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALING, "00.LFL"},
{"maniacnes", "Maniac Mansion (NES)", GID_MANIAC, 2, VersionSettings::ADLIB_ALWAYS,
GF_SMALL_HEADER | GF_USE_KEY | GF_SMALL_NAMES | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALING | GF_NES, "00.LFL"},
{"zak", "Zak McKracken and the Alien Mindbenders", GID_ZAK, 2, VersionSettings::ADLIB_ALWAYS,
GF_SMALL_HEADER | GF_USE_KEY | GF_SMALL_NAMES | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALING, "00.LFL"},
@ -562,6 +564,9 @@ Scumm::Scumm (GameDetector *detector, OSystem *syst)
} else if (_gameId == GID_CMI) {
_screenWidth = 640;
_screenHeight = 480;
} else if (_features & GF_NES) {
_screenWidth = 256;
_screenHeight = 240;
} else {
_screenWidth = 320;
_screenHeight = 200;