Distinguish between green and amber hercules. Now specify it via hercGreen
and hercAmber. Updated documentation accordingly. svn-id: r16975
This commit is contained in:
parent
7a2a4f34dc
commit
50f6eb740c
9 changed files with 22 additions and 15 deletions
|
@ -223,7 +223,8 @@ const char *getPlatformDescription(Platform id) {
|
|||
|
||||
|
||||
const RenderModeDescription g_renderModes[] = {
|
||||
{"hercules", "Hercules", kRenderHerc},
|
||||
{"hercGreen", "Hercules Green", kRenderHercG},
|
||||
{"hercAmber", "Hercules Amber", kRenderHercA},
|
||||
{"cga", "CGA", kRenderCGA},
|
||||
{"ega", "EGA", kRenderEGA},
|
||||
{0, 0, kRenderDefault}
|
||||
|
|
|
@ -159,10 +159,11 @@ extern const char *getPlatformDescription(Platform id);
|
|||
* such low-level adapters as CGA or Hercules.
|
||||
*/
|
||||
enum RenderMode {
|
||||
kRenderDefault = -1,
|
||||
kRenderDefault = 0,
|
||||
kRenderEGA = 1,
|
||||
kRenderCGA = 2,
|
||||
kRenderHerc = 3
|
||||
kRenderHercG = 3,
|
||||
kRenderHercA = 4
|
||||
};
|
||||
|
||||
enum HerculesDimesnions {
|
||||
|
|
|
@ -182,7 +182,7 @@ void OptionsDialog::close() {
|
|||
ConfMan.set("gfx_mode", _gfxPopUp->getSelectedString(), _domain);
|
||||
|
||||
if ((int32)_renderModePopUp->getSelectedTag() >= 0)
|
||||
ConfMan.set("render_mode", _renderModePopUp->getSelectedString(), _domain);
|
||||
ConfMan.set("render_mode", Common::getRenderModeCode((Common::RenderMode)_renderModePopUp->getSelectedTag()), _domain);
|
||||
} else {
|
||||
ConfMan.removeKey("fullscreen", _domain);
|
||||
ConfMan.removeKey("aspect_ratio", _domain);
|
||||
|
@ -303,7 +303,7 @@ int OptionsDialog::addGraphicControls(GuiObject *boss, int yoffset) {
|
|||
// RenderMode popup
|
||||
_renderModePopUp = new PopUpWidget(boss, x-5, yoffset, w+5, kLineHeight, "Render mode: ", 100);
|
||||
yoffset += 16;
|
||||
_renderModePopUp->appendEntry("<default>");
|
||||
_renderModePopUp->appendEntry("<default>", Common::kRenderDefault);
|
||||
_renderModePopUp->appendEntry("");
|
||||
const Common::RenderModeDescription *rm = Common::g_renderModes;
|
||||
for (; rm->code; ++rm) {
|
||||
|
|
|
@ -1263,7 +1263,7 @@ void CharsetRenderer::translateColor() {
|
|||
_color = CGAtextColorMap[_color & 0x0f];
|
||||
}
|
||||
|
||||
if (_vm->_renderMode == Common::kRenderHerc) {
|
||||
if (_vm->_renderMode == Common::kRenderHercA || _vm->_renderMode == Common::kRenderHercG) {
|
||||
static byte HercTextColorMap[16] = {0, 15, 2, 15, 15, 5, 15, 15,
|
||||
8, 15, 15, 15, 15, 15, 15, 15};
|
||||
_color = HercTextColorMap[_color & 0x0f];
|
||||
|
|
|
@ -232,7 +232,7 @@ void Gdi::init() {
|
|||
memset(_compositeBuf, CHARSET_MASK_TRANSPARENCY, size);
|
||||
memset(_textSurface.pixels, CHARSET_MASK_TRANSPARENCY, size);
|
||||
|
||||
if (_vm->_renderMode == Common::kRenderHerc) {
|
||||
if (_vm->_renderMode == Common::kRenderHercA || _vm->_renderMode == Common::kRenderHercG) {
|
||||
_herculesBuf = (byte *)malloc(Common::kHercW * Common::kHercH);
|
||||
memset(_herculesBuf, CHARSET_MASK_TRANSPARENCY, Common::kHercW * Common::kHercH);
|
||||
}
|
||||
|
@ -519,7 +519,7 @@ void Gdi::drawStripToScreen(VirtScreen *vs, int x, int width, int top, int botto
|
|||
if (_vm->_renderMode == Common::kRenderCGA)
|
||||
ditherCGA(_compositeBuf + x + y * _vm->_screenWidth, _vm->_screenWidth, x, y, width, height);
|
||||
|
||||
if (_vm->_renderMode == Common::kRenderHerc) {
|
||||
if (_vm->_renderMode == Common::kRenderHercA || _vm->_renderMode == Common::kRenderHercG) {
|
||||
ditherHerc(_compositeBuf + x + y * _vm->_screenWidth, _herculesBuf, _vm->_screenWidth, &x, &y, &width, &height);
|
||||
// center image on the screen
|
||||
_vm->_system->copyRectToScreen(_herculesBuf + x + y * Common::kHercW,
|
||||
|
|
|
@ -131,7 +131,7 @@ void ScummEngine::parseEvents() {
|
|||
_mouse.x = event.mouse.x;
|
||||
_mouse.y = event.mouse.y;
|
||||
|
||||
if (_renderMode == Common::kRenderHerc) {
|
||||
if (_renderMode == Common::kRenderHercA || _renderMode == Common::kRenderHercG) {
|
||||
_mouse.x -= (Common::kHercW - _screenWidth * 2) / 2;
|
||||
_mouse.x /= 2;
|
||||
_mouse.y = _mouse.y * 4 / 7;
|
||||
|
|
|
@ -50,7 +50,11 @@ void ScummEngine::setupAmigaPalette() {
|
|||
|
||||
void ScummEngine::setupHercPalette() {
|
||||
setPalColor( 0, 0, 0, 0);
|
||||
|
||||
if (_renderMode == Common::kRenderHercA)
|
||||
setPalColor( 1, 0xAE, 0x69, 0x38);
|
||||
else
|
||||
setPalColor( 1, 0x00, 0xFF, 0x00);
|
||||
|
||||
// Setup cursor palette
|
||||
setPalColor( 7, 170, 170, 170);
|
||||
|
|
|
@ -1022,7 +1022,8 @@ ScummEngine::ScummEngine(GameDetector *detector, OSystem *syst, const ScummGameS
|
|||
_renderMode = Common::kRenderDefault;
|
||||
|
||||
switch (_renderMode) {
|
||||
case Common::kRenderHerc:
|
||||
case Common::kRenderHercA:
|
||||
case Common::kRenderHercG:
|
||||
if (_version > 2 && _gameId != GID_MONKEY_EGA)
|
||||
_renderMode = Common::kRenderDefault;
|
||||
break;
|
||||
|
@ -1058,7 +1059,7 @@ ScummEngine::ScummEngine(GameDetector *detector, OSystem *syst, const ScummGameS
|
|||
} else if (_features & GF_NES) {
|
||||
_screenWidth = 256;
|
||||
_screenHeight = 240;
|
||||
} else if (_renderMode == Common::kRenderHerc) {
|
||||
} else if (_renderMode == Common::kRenderHercA || _renderMode == Common::kRenderHercG) {
|
||||
_features |= GF_DEFAULT_TO_1X_SCALER;
|
||||
_screenWidth = 320;
|
||||
_screenHeight = 200;
|
||||
|
@ -1152,7 +1153,7 @@ int ScummEngine::init(GameDetector &detector) {
|
|||
// Initialize backend
|
||||
_system->beginGFXTransaction();
|
||||
initCommonGFX(detector);
|
||||
if (_renderMode == Common::kRenderHerc) {
|
||||
if (_renderMode == Common::kRenderHercA || _renderMode == Common::kRenderHercG) {
|
||||
_system->initSize(Common::kHercW, Common::kHercH);
|
||||
_features |= GF_DEFAULT_TO_1X_SCALER;
|
||||
_system->setGraphicsMode("1x");
|
||||
|
@ -1317,7 +1318,7 @@ void ScummEngine::scummInit() {
|
|||
_shadowPalette[i] = i;
|
||||
if ((_features & GF_AMIGA) || (_features & GF_ATARI_ST))
|
||||
setupAmigaPalette();
|
||||
else if (_renderMode == Common::kRenderHerc)
|
||||
else if (_renderMode == Common::kRenderHercA || _renderMode == Common::kRenderHercG)
|
||||
setupHercPalette();
|
||||
else if (_renderMode == Common::kRenderCGA)
|
||||
setupCGAPalette();
|
||||
|
|
|
@ -560,7 +560,7 @@ void ScummEngine::initScummVars() {
|
|||
VAR(VAR_VIDEOMODE) = 82;
|
||||
else if (_renderMode == Common::kRenderCGA)
|
||||
VAR(VAR_VIDEOMODE) = 4;
|
||||
else if (_renderMode == Common::kRenderHerc)
|
||||
else if (_renderMode == Common::kRenderHercA || _renderMode == Common::kRenderHercG)
|
||||
VAR(VAR_VIDEOMODE) = 30;
|
||||
else if (_renderMode == Common::kRenderEGA)
|
||||
VAR(VAR_VIDEOMODE) = 13;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue