aboutsummaryrefslogtreecommitdiff
path: root/gui
diff options
context:
space:
mode:
authorFilippos Karapetis2010-11-04 15:58:53 +0000
committerFilippos Karapetis2010-11-04 15:58:53 +0000
commit1dac4fbd557fc07be1bbc0dbbe94b1705b601a2a (patch)
treea3711c27a4a108d9d85d3612e1b429762a0b57da /gui
parentb7f1e3b239d33b783d0fbec83027320ca0037f02 (diff)
downloadscummvm-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
Diffstat (limited to 'gui')
-rw-r--r--gui/launcher.cpp3
-rw-r--r--gui/options.cpp6
-rw-r--r--gui/options.h1
-rw-r--r--gui/themes/default.inc6
-rw-r--r--gui/themes/scummclassic.zipbin73968 -> 33760 bytes
-rw-r--r--gui/themes/scummclassic/classic_layout.stx3
-rw-r--r--gui/themes/scummclassic/classic_layout_lowres.stx3
-rw-r--r--gui/themes/scummmodern.zipbin181827 -> 140489 bytes
-rw-r--r--gui/themes/scummmodern/scummmodern_layout.stx3
-rw-r--r--gui/themes/scummmodern/scummmodern_layout_lowres.stx3
10 files changed, 27 insertions, 1 deletions
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
index 2507572e40..0940d7854e 100644
--- a/gui/themes/scummclassic.zip
+++ b/gui/themes/scummclassic.zip
Binary files differ
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
index 1023e82ff9..cfad02b21f 100644
--- a/gui/themes/scummmodern.zip
+++ b/gui/themes/scummmodern.zip
Binary files differ
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>