diff options
author | Eugene Sandulenko | 2005-05-18 00:46:30 +0000 |
---|---|---|
committer | Eugene Sandulenko | 2005-05-18 00:46:30 +0000 |
commit | cba94db699bb834bfa9b05472843c5825dec9d72 (patch) | |
tree | d1fa5abbf28b47990af2555fb37e3950e126280e | |
parent | 0ef8642bb535dc25bf7732a6f87951c4f9253049 (diff) | |
download | scummvm-rg350-cba94db699bb834bfa9b05472843c5825dec9d72.tar.gz scummvm-rg350-cba94db699bb834bfa9b05472843c5825dec9d72.tar.bz2 scummvm-rg350-cba94db699bb834bfa9b05472843c5825dec9d72.zip |
Add C64 palette.
Fix Zak C64. Now it is playable.
svn-id: r18148
-rw-r--r-- | scumm/palette.cpp | 19 | ||||
-rw-r--r-- | scumm/saveload.cpp | 16 | ||||
-rw-r--r-- | scumm/script_v2.cpp | 2 | ||||
-rw-r--r-- | scumm/scumm.cpp | 18 | ||||
-rw-r--r-- | scumm/scumm.h | 1 |
5 files changed, 43 insertions, 13 deletions
diff --git a/scumm/palette.cpp b/scumm/palette.cpp index 0dda37dd15..bab8997516 100644 --- a/scumm/palette.cpp +++ b/scumm/palette.cpp @@ -31,6 +31,25 @@ namespace Scumm { +void ScummEngine::setupC64Palette() { + setPalColor( 0, 0x00, 0x00, 0x00); + setPalColor( 1, 0xFF, 0xFF, 0xFF); + setPalColor( 2, 0x99, 0x00, 0x00); + setPalColor( 3, 0x00, 0xff, 0xcc); + setPalColor( 4, 0xcc, 0x00, 0xcc); + setPalColor( 5, 0x44, 0xcc, 0x44); + setPalColor( 6, 0x11, 0x00, 0x99); + setPalColor( 7, 0xff, 0xff, 0x00); + setPalColor( 8, 0xaa, 0x55, 0x00); + setPalColor( 9, 0x66, 0x33, 0x00); + setPalColor(10, 0xff, 0x66, 0x66); + setPalColor(11, 0x40, 0x40, 0x40); + setPalColor(12, 0x80, 0x80, 0x80); + setPalColor(13, 0x66, 0xff, 0x66); + setPalColor(14, 0x77, 0x77, 0xff); + setPalColor(15, 0xc0, 0xc0, 0xc0); +} + void ScummEngine::setupNESPalette() { setPalColor(0x00,0x24,0x24,0x24); // 0x1D setPalColor(0x01,0x00,0x24,0x92); diff --git a/scumm/saveload.cpp b/scumm/saveload.cpp index ff9fe5b95c..1e3256fed9 100644 --- a/scumm/saveload.cpp +++ b/scumm/saveload.cpp @@ -266,13 +266,17 @@ bool ScummEngine::loadState(int slot, bool compat) { // for backwards compatibility, and it may still prove useful if we // ever add options for using different 16-colour palettes. if (_version == 1) { - if (_gameId == GID_MANIAC) - if (_platform == Common::kPlatformNES) - setupNESPalette(); + if (_platform == Common::kPlatformC64) + setupC64Palette(); + else { + if (_gameId == GID_MANIAC) + if (_platform == Common::kPlatformNES) + setupNESPalette(); + else + setupV1ManiacPalette(); else - setupV1ManiacPalette(); - else - setupV1ZakPalette(); + setupV1ZakPalette(); + } } else if (_features & GF_16COLOR) { switch (_renderMode) { case Common::kRenderEGA: diff --git a/scumm/script_v2.cpp b/scumm/script_v2.cpp index a25c4eb0b1..122d77fa53 100644 --- a/scumm/script_v2.cpp +++ b/scumm/script_v2.cpp @@ -1580,6 +1580,8 @@ void ScummEngine_v2::o2_switchCostumeSet() { // groups of costumes it has if (_platform == Common::kPlatformNES) NES_loadCostumeSet(fetchScriptByte()); + else if (_platform == Common::kPlatformC64) + fetchScriptByte(); else o2_dummy(); } diff --git a/scumm/scumm.cpp b/scumm/scumm.cpp index 9147c7ba96..f298790e0d 100644 --- a/scumm/scumm.cpp +++ b/scumm/scumm.cpp @@ -1568,13 +1568,17 @@ void ScummEngine::scummInit() { // line // Original games used some kind of dynamic // color table remapping between rooms - if (_gameId == GID_MANIAC) { - if (_platform == Common::kPlatformNES) - setupNESPalette(); - else - setupV1ManiacPalette(); - } else - setupV1ZakPalette(); + if (_platform == Common::kPlatformC64) + setupC64Palette(); + else { + if (_gameId == GID_MANIAC) { + if (_platform == Common::kPlatformNES) + setupNESPalette(); + else + setupV1ManiacPalette(); + } else + setupV1ZakPalette(); + } } else if (_features & GF_16COLOR) { for (i = 0; i < 16; i++) _shadowPalette[i] = i; diff --git a/scumm/scumm.h b/scumm/scumm.h index 2346eb1a12..baeac68c73 100644 --- a/scumm/scumm.h +++ b/scumm/scumm.h @@ -967,6 +967,7 @@ protected: void actorFollowCamera(int act); const byte *getPalettePtr(int palindex, int room); + void setupC64Palette(); void setupNESPalette(); void setupAmigaPalette(); void setupHercPalette(); |