diff --git a/docs/index.html b/docs/index.html index e1402f31a..2c0d9b449 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1554,6 +1554,12 @@ Control + p + + Toggle display interpolation + Control + i + Control + i + + Toggle sound on/off Control + ] diff --git a/src/common/PKeyboardHandler.cxx b/src/common/PKeyboardHandler.cxx index cedda0655..5c53e7a7d 100644 --- a/src/common/PKeyboardHandler.cxx +++ b/src/common/PKeyboardHandler.cxx @@ -457,6 +457,7 @@ PhysicalKeyboardHandler::EventMappingArray PhysicalKeyboardHandler::DefaultCommo {Event::ScanlinesIncrease, KBDK_0, MOD3}, {Event::ToggleColorLoss, KBDK_L, KBDM_CTRL}, {Event::TogglePalette, KBDK_P, KBDM_CTRL}, + {Event::ToggleInter, KBDK_I, KBDM_CTRL}, {Event::ToggleJitter, KBDK_J, MOD3}, {Event::ToggleFrameStats, KBDK_L, MOD3}, {Event::ToggleTimeMachine, KBDK_T, MOD3}, diff --git a/src/emucore/Console.cxx b/src/emucore/Console.cxx index e3557fe1d..449179fb8 100644 --- a/src/emucore/Console.cxx +++ b/src/emucore/Console.cxx @@ -550,6 +550,21 @@ void Console::setPalette(const string& type) myTIA->enableFixedColors(true); } +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void Console::toggleInter() +{ + bool enabled = myOSystem.settings().getBool("tia.inter"); + + myOSystem.settings().setValue("tia.inter", !enabled); + + // ... and apply potential setting changes to the TIA surface + myOSystem.frameBuffer().tiaSurface().updateSurfaceSettings(); + ostringstream ss; + + ss << "Interpolation " << (!enabled ? "enabled" : "disabled"); + myOSystem.frameBuffer().showMessage(ss.str()); +} + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void Console::togglePhosphor() { diff --git a/src/emucore/Console.hxx b/src/emucore/Console.hxx index d1b79ee1f..b2805fdd0 100644 --- a/src/emucore/Console.hxx +++ b/src/emucore/Console.hxx @@ -215,6 +215,12 @@ class Console : public Serializable, public ConsoleIO */ void setPalette(const string& palette); + /** + Toggle interpolation on/off + */ + void toggleInter(); + + /** Toggles phosphor effect. */ diff --git a/src/emucore/Event.hxx b/src/emucore/Event.hxx index 033849dfe..6c7d62884 100644 --- a/src/emucore/Event.hxx +++ b/src/emucore/Event.hxx @@ -120,6 +120,8 @@ class Event CompuMateQuote, CompuMateBackspace, CompuMateEquals, CompuMatePlus, CompuMateSlash, + ToggleInter, + LastType }; diff --git a/src/emucore/EventHandler.cxx b/src/emucore/EventHandler.cxx index b3306fd0e..143ab8b3e 100644 --- a/src/emucore/EventHandler.cxx +++ b/src/emucore/EventHandler.cxx @@ -527,6 +527,10 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated) if (pressed && !repeated) myOSystem.console().togglePalette(); return; + case Event::ToggleInter: + if (pressed && !repeated) myOSystem.console().toggleInter(); + return; + case Event::ToggleJitter: if (pressed && !repeated) myOSystem.console().toggleJitter(); return; @@ -1835,6 +1839,7 @@ EventHandler::EmulActionList EventHandler::ourEmulActionList = { { { Event::FormatDecrease, "Decrease display format", "" }, { Event::FormatIncrease, "Increase display format", "" }, { Event::TogglePalette, "Switch palette (Standard/Z26/User)", "" }, + { Event::ToggleInter, "Toggle display interpolation", "" }, // TV effects: { Event::VidmodeStd, "Disable TV effects", "" }, @@ -1961,7 +1966,7 @@ const Event::EventSet EventHandler::AudioVideoEvents = { Event::FormatDecrease, Event::FormatIncrease, Event::VCenterDecrease, Event::VCenterIncrease, Event::OverscanDecrease, Event::OverscanIncrease, - Event::TogglePalette, + Event::TogglePalette, Event::ToggleInter }; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/emucore/EventHandler.hxx b/src/emucore/EventHandler.hxx index 29219317e..0e7586dff 100644 --- a/src/emucore/EventHandler.hxx +++ b/src/emucore/EventHandler.hxx @@ -464,7 +464,7 @@ class EventHandler #else PNG_SIZE = 0, #endif - EMUL_ACTIONLIST_SIZE = 140 + PNG_SIZE + COMBO_SIZE, + EMUL_ACTIONLIST_SIZE = 141 + PNG_SIZE + COMBO_SIZE, MENU_ACTIONLIST_SIZE = 18 ;