diff options
author | Filippos Karapetis | 2010-11-04 15:58:53 +0000 |
---|---|---|
committer | Filippos Karapetis | 2010-11-04 15:58:53 +0000 |
commit | 1dac4fbd557fc07be1bbc0dbbe94b1705b601a2a (patch) | |
tree | a3711c27a4a108d9d85d3612e1b429762a0b57da | |
parent | b7f1e3b239d33b783d0fbec83027320ca0037f02 (diff) | |
download | scummvm-rg350-1dac4fbd557fc07be1bbc0dbbe94b1705b601a2a.tar.gz scummvm-rg350-1dac4fbd557fc07be1bbc0dbbe94b1705b601a2a.tar.bz2 scummvm-rg350-1dac4fbd557fc07be1bbc0dbbe94b1705b601a2a.zip |
SCI/SCUMMVM: Added an option to enable the dithering removal algorithm (so called "undithering") in the graphics options tab. The algorithm is now disabled by default, after popular demand. In retrospect, we really shouldn't have made it default, in order to preserve the authenticity of the graphics in early SCI EGA games, and allow the user to opt in and enable the option if needed. Unfortunately, the lack of an easy way to modify the option made it hard to do so.
svn-id: r54066
-rw-r--r-- | README | 1 | ||||
-rw-r--r-- | base/commandLine.cpp | 1 | ||||
-rw-r--r-- | engines/sci/sci.cpp | 2 | ||||
-rw-r--r-- | gui/launcher.cpp | 3 | ||||
-rw-r--r-- | gui/options.cpp | 6 | ||||
-rw-r--r-- | gui/options.h | 1 | ||||
-rw-r--r-- | gui/themes/default.inc | 6 | ||||
-rw-r--r-- | gui/themes/scummclassic.zip | bin | 73968 -> 33760 bytes | |||
-rw-r--r-- | gui/themes/scummclassic/classic_layout.stx | 3 | ||||
-rw-r--r-- | gui/themes/scummclassic/classic_layout_lowres.stx | 3 | ||||
-rw-r--r-- | gui/themes/scummmodern.zip | bin | 181827 -> 140489 bytes | |||
-rw-r--r-- | gui/themes/scummmodern/scummmodern_layout.stx | 3 | ||||
-rw-r--r-- | gui/themes/scummmodern/scummmodern_layout_lowres.stx | 3 |
13 files changed, 30 insertions, 2 deletions
@@ -1949,6 +1949,7 @@ The following keywords are recognized: fullscreen bool Fullscreen mode aspect_ratio bool Enable aspect ratio correction + sci_undither bool Remove dithering artifacts from early SCI EGA games gfx_mode string Graphics mode (normal, 2x, 3x, 2xsai, super2xsai, supereagle, advmame2x, advmame3x, hq2x, hq3x, tv2x, dotmatrix) diff --git a/base/commandLine.cpp b/base/commandLine.cpp index 6ee3ef382d..31ecab470a 100644 --- a/base/commandLine.cpp +++ b/base/commandLine.cpp @@ -157,6 +157,7 @@ void registerDefaults() { // Graphics ConfMan.registerDefault("fullscreen", false); ConfMan.registerDefault("aspect_ratio", false); + ConfMan.registerDefault("sci_undither", false); ConfMan.registerDefault("gfx_mode", "normal"); ConfMan.registerDefault("render_mode", "default"); ConfMan.registerDefault("desired_screen_aspect_ratio", "auto"); diff --git a/engines/sci/sci.cpp b/engines/sci/sci.cpp index 0df75d53fb..03b8b659bc 100644 --- a/engines/sci/sci.cpp +++ b/engines/sci/sci.cpp @@ -180,7 +180,7 @@ Common::Error SciEngine::run() { g_eventRec.registerRandomSource(_rng, "sci"); // Assign default values to the config manager, in case settings are missing - ConfMan.registerDefault("sci_undither", "true"); + ConfMan.registerDefault("sci_undither", "false"); ConfMan.registerDefault("sci_originalsaveload", "false"); ConfMan.registerDefault("native_fb01", "false"); diff --git a/gui/launcher.cpp b/gui/launcher.cpp index 2592eecd97..eae7f0b364 100644 --- a/gui/launcher.cpp +++ b/gui/launcher.cpp @@ -341,7 +341,8 @@ void EditGameDialog::open() { e = ConfMan.hasKey("gfx_mode", _domain) || ConfMan.hasKey("render_mode", _domain) || ConfMan.hasKey("fullscreen", _domain) || - ConfMan.hasKey("aspect_ratio", _domain); + ConfMan.hasKey("aspect_ratio", _domain) || + ConfMan.hasKey("sci_undither", _domain); _globalGraphicsOverride->setState(e); e = ConfMan.hasKey("music_driver", _domain) || diff --git a/gui/options.cpp b/gui/options.cpp index 558a89386b..dbd6ee5b5a 100644 --- a/gui/options.cpp +++ b/gui/options.cpp @@ -98,6 +98,7 @@ void OptionsDialog::init() { _renderModePopUp = 0; _fullscreenCheckbox = 0; _aspectCheckbox = 0; + _unditheringCheckbox = 0; _enableAudioSettings = false; _midiPopUp = 0; _oplPopUp = 0; @@ -192,6 +193,7 @@ void OptionsDialog::open() { // Aspect ratio setting _aspectCheckbox->setState(ConfMan.getBool("aspect_ratio", _domain)); #endif // SMALL_SCREEN_DEVICE + _unditheringCheckbox->setState(ConfMan.getBool("sci_undither", _domain)); } // Audio options @@ -297,6 +299,7 @@ void OptionsDialog::close() { if (_enableGraphicSettings) { ConfMan.setBool("fullscreen", _fullscreenCheckbox->getState(), _domain); ConfMan.setBool("aspect_ratio", _aspectCheckbox->getState(), _domain); + ConfMan.setBool("sci_undither", _unditheringCheckbox->getState(), _domain); bool isSet = false; @@ -320,6 +323,7 @@ void OptionsDialog::close() { } else { ConfMan.removeKey("fullscreen", _domain); ConfMan.removeKey("aspect_ratio", _domain); + ConfMan.removeKey("sci_undither", _domain); ConfMan.removeKey("gfx_mode", _domain); ConfMan.removeKey("render_mode", _domain); } @@ -506,6 +510,7 @@ void OptionsDialog::setGraphicSettingsState(bool enabled) { _fullscreenCheckbox->setEnabled(enabled); _aspectCheckbox->setEnabled(enabled); #endif + _unditheringCheckbox->setEnabled(enabled); } void OptionsDialog::setAudioSettingsState(bool enabled) { @@ -645,6 +650,7 @@ void OptionsDialog::addGraphicControls(GuiObject *boss, const Common::String &pr // Aspect ratio checkbox _aspectCheckbox = new CheckboxWidget(boss, prefix + "grAspectCheckbox", _("Aspect ratio correction"), _("Correct aspect ratio for 320x200 games")); + _unditheringCheckbox = new CheckboxWidget(boss, prefix + "grUnditherCheckbox", _("Remove SCI dithering"), _("Remove dithering artifacts from early SCI EGA games")); _enableGraphicSettings = true; } diff --git a/gui/options.h b/gui/options.h index c05f263d00..91e6457576 100644 --- a/gui/options.h +++ b/gui/options.h @@ -96,6 +96,7 @@ private: PopUpWidget *_gfxPopUp; CheckboxWidget *_fullscreenCheckbox; CheckboxWidget *_aspectCheckbox; + CheckboxWidget *_unditheringCheckbox; StaticTextWidget *_renderModePopUpDesc; PopUpWidget *_renderModePopUp; diff --git a/gui/themes/default.inc b/gui/themes/default.inc index 46ac4a1365..1e1a495585 100644 --- a/gui/themes/default.inc +++ b/gui/themes/default.inc @@ -177,6 +177,9 @@ "<widget name='grFullscreenCheckbox' " "type='Checkbox' " "/> " +"<widget name='grUnditherCheckbox' " +"type='Checkbox' " +"/> " "</layout> " "</dialog> " "<dialog name='GlobalOptions_Audio' overlays='Dialog.GlobalOptions.TabWidget'> " @@ -969,6 +972,9 @@ "<widget name='grFullscreenCheckbox' " "type='Checkbox' " "/> " +"<widget name='grUnditherCheckbox' " +"type='Checkbox' " +"/> " "</layout> " "</dialog> " "<dialog name='GlobalOptions_Audio' overlays='Dialog.GlobalOptions.TabWidget'> " diff --git a/gui/themes/scummclassic.zip b/gui/themes/scummclassic.zip Binary files differindex 2507572e40..0940d7854e 100644 --- a/gui/themes/scummclassic.zip +++ b/gui/themes/scummclassic.zip diff --git a/gui/themes/scummclassic/classic_layout.stx b/gui/themes/scummclassic/classic_layout.stx index 74b8bf4b2c..20301192cf 100644 --- a/gui/themes/scummclassic/classic_layout.stx +++ b/gui/themes/scummclassic/classic_layout.stx @@ -218,6 +218,9 @@ <widget name = 'grFullscreenCheckbox' type = 'Checkbox' /> + <widget name = 'grUnditherCheckbox' + type = 'Checkbox' + /> </layout> </dialog> diff --git a/gui/themes/scummclassic/classic_layout_lowres.stx b/gui/themes/scummclassic/classic_layout_lowres.stx index 65083f4bce..7cfe1a3157 100644 --- a/gui/themes/scummclassic/classic_layout_lowres.stx +++ b/gui/themes/scummclassic/classic_layout_lowres.stx @@ -216,6 +216,9 @@ <widget name = 'grFullscreenCheckbox' type = 'Checkbox' /> + <widget name = 'grUnditherCheckbox' + type = 'Checkbox' + /> </layout> </dialog> diff --git a/gui/themes/scummmodern.zip b/gui/themes/scummmodern.zip Binary files differindex 1023e82ff9..cfad02b21f 100644 --- a/gui/themes/scummmodern.zip +++ b/gui/themes/scummmodern.zip diff --git a/gui/themes/scummmodern/scummmodern_layout.stx b/gui/themes/scummmodern/scummmodern_layout.stx index 51f1ce6c6f..74cae93fe9 100644 --- a/gui/themes/scummmodern/scummmodern_layout.stx +++ b/gui/themes/scummmodern/scummmodern_layout.stx @@ -233,6 +233,9 @@ <widget name = 'grFullscreenCheckbox' type = 'Checkbox' /> + <widget name = 'grUnditherCheckbox' + type = 'Checkbox' + /> </layout> </dialog> diff --git a/gui/themes/scummmodern/scummmodern_layout_lowres.stx b/gui/themes/scummmodern/scummmodern_layout_lowres.stx index bd7b5fd8ea..39e33c0d9c 100644 --- a/gui/themes/scummmodern/scummmodern_layout_lowres.stx +++ b/gui/themes/scummmodern/scummmodern_layout_lowres.stx @@ -214,6 +214,9 @@ <widget name = 'grFullscreenCheckbox' type = 'Checkbox' /> + <widget name = 'grUnditherCheckbox' + type = 'Checkbox' + /> </layout> </dialog> |