Permalink
Comparing changes
Open a pull request
- 2 commits
- 4 files changed
- 0 commit comments
- 1 contributor
Unified
Split
Showing
with
32 additions
and 8 deletions.
- +1 −5 engines/agi/agi.cpp
- +9 −0 engines/agi/detection.cpp
- +20 −3 engines/agi/graphics.cpp
- +2 −0 engines/agi/preagi_mickey.cpp
| @@ -492,14 +492,10 @@ struct GameSettings { | ||
| const char *detectname; | ||
| }; | ||
|
|
||
| static const GameSettings agiSettings[] = { | ||
| {"agi", "AGI game", GID_AGI, MDT_ADLIB, "OBJECT"}, | ||
| {NULL, NULL, 0, 0, NULL} | ||
| }; | ||
|
|
||
| AgiBase::AgiBase(OSystem *syst, const AGIGameDescription *gameDesc) : Engine(syst), _gameDescription(gameDesc) { | ||
| // Assign default values to the config manager, in case settings are missing | ||
| ConfMan.registerDefault("originalsaveload", "false"); | ||
| ConfMan.registerDefault("altamigapalette", "false"); | ||
|
|
||
| _noSaveLoadAllowed = false; | ||
|
|
||
| @@ -145,6 +145,13 @@ static const ExtraGuiOption agiExtraGuiOption = { | ||
| false | ||
| }; | ||
|
|
||
| static const ExtraGuiOption agiExtraGuiOptionAmiga = { | ||
| _s("Use an alternative palette"), | ||
| _s("Use an alternative palette, common for all Amiga games. This was the old behavior"), | ||
| "altamigapalette", | ||
| false | ||
| }; | ||
|
|
||
| #include "agi/detection_tables.h" | ||
|
|
||
| using namespace Agi; | ||
| @@ -230,6 +237,8 @@ bool AgiMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameD | ||
| const ExtraGuiOptions AgiMetaEngine::getExtraGuiOptions(const Common::String &target) const { | ||
| ExtraGuiOptions options; | ||
| options.push_back(agiExtraGuiOption); | ||
| if (target.contains("-amiga")) | ||
| options.push_back(agiExtraGuiOptionAmiga); | ||
| return options; | ||
| } | ||
|
|
||
| @@ -20,6 +20,7 @@ | ||
| * | ||
| */ | ||
|
|
||
| #include "common/config-manager.h" | ||
| #include "common/file.h" | ||
| #include "common/textconsole.h" | ||
|
|
||
| @@ -220,7 +221,7 @@ static const uint8 amigaAgiPaletteV3[16 * 3] = { | ||
| /** | ||
| * 16 color amiga-ish palette. | ||
| */ | ||
| static const uint8 newPalette[16 * 3] = { | ||
| static const uint8 altAmigaPalette[16 * 3] = { | ||
| 0x00, 0x00, 0x00, | ||
| 0x00, 0x00, 0x3f, | ||
| 0x00, 0x2A, 0x00, | ||
| @@ -904,6 +905,7 @@ static const byte sciMouseCursor[] = { | ||
| 0,0,0,0,0,0,1,2,2,1,0 | ||
| }; | ||
|
|
||
| #if 0 | ||
| /** | ||
| * A black and white Apple IIGS style arrow cursor (9x11). | ||
| * 0 = Transparent. | ||
| @@ -923,6 +925,7 @@ static const byte appleIIgsMouseCursor[] = { | ||
| 2,2,2,0,2,1,1,2,0, | ||
| 0,0,0,0,0,2,2,2,0 | ||
| }; | ||
| #endif | ||
|
|
||
| /** | ||
| * RGB-palette for the black and white SCI and Apple IIGS arrow cursors. | ||
| @@ -1030,8 +1033,22 @@ int GfxMgr::initVideo() { | ||
| initPalette(vgaPalette, 256, 8); | ||
| else if (_vm->_renderMode == Common::kRenderEGA) | ||
| initPalette(egaPalette); | ||
| else | ||
| initPalette(newPalette); | ||
| else if (_vm->_renderMode == Common::kRenderAmiga) { | ||
| if (!ConfMan.getBool("altamigapalette")) { | ||
| // Set the correct Amiga palette | ||
| if (_vm->getVersion() < 0x2936) | ||
| // TODO: This palette isn't used for Apple IIGS games yet, as | ||
| // we don't set a separate render mode for them yet | ||
| initPalette(amigaAgiPaletteV1, 16, 4); | ||
| else if (_vm->getVersion() == 0x2936) | ||
| initPalette(amigaAgiPaletteV2, 16, 4); | ||
| else if (_vm->getVersion() > 0x2936) | ||
| initPalette(amigaAgiPaletteV3, 16, 4); | ||
| } else | ||
| // Set the old common alternative Amiga palette | ||
| initPalette(altAmigaPalette); | ||
| } else | ||
| error("initVideo: Unhandled render mode"); | ||
|
|
||
| if ((_agiScreen = (uint8 *)calloc(GFX_WIDTH, GFX_HEIGHT)) == NULL) | ||
| return errNotEnoughMemory; | ||
| @@ -892,6 +892,7 @@ void MickeyEngine::drawRoom() { | ||
| drawRoomAnimation(); | ||
| } | ||
|
|
||
| #if 0 | ||
| const uint8 colorBCG[16][2] = { | ||
| { 0x00, 0x00 }, // 0 (black, black) | ||
| { 0, 0 }, | ||
| @@ -910,6 +911,7 @@ const uint8 colorBCG[16][2] = { | ||
| { 0, 0 }, | ||
| { 0xFF, 0xFF } // F (white, white) | ||
| }; | ||
| #endif | ||
|
|
||
| void MickeyEngine::drawLogo() { | ||
| // TODO: clean this up and make it work properly, the logo is drawn way off to the right | ||