diff --git a/src/emucore/EventHandler.cxx b/src/emucore/EventHandler.cxx index f3e1567aa..2b1c03ef0 100644 --- a/src/emucore/EventHandler.cxx +++ b/src/emucore/EventHandler.cxx @@ -2776,7 +2776,15 @@ EventHandler::EmulActionList EventHandler::ourEmulActionList = { { { Event::ToggleContSnapshots, "Save continuous snapsh. (as defined)", "" }, { Event::ToggleContSnapshotsFrame,"Save continuous snapsh. (every frame)", "" }, #endif + // Global keys: + { Event::PreviousSettingGroup, "Select previous setting group", "" }, + { Event::NextSettingGroup, "Select next setting group", "" }, + { Event::PreviousSetting, "Select previous setting", "" }, + { Event::NextSetting, "Select next setting", "" }, + { Event::SettingDecrease, "Decrease current setting", "" }, + { Event::SettingIncrease, "Increase current setting", "" }, + // Controllers: { Event::LeftJoystickUp, "Left Joystick Up", "" }, { Event::LeftJoystickDown, "Left Joystick Down", "" }, { Event::LeftJoystickLeft, "Left Joystick Left", "" }, @@ -2855,22 +2863,24 @@ EventHandler::EmulActionList EventHandler::ourEmulActionList = { { { Event::RightKeyboardStar, "Right Keyboard *", "" }, { Event::RightKeyboard0, "Right Keyboard 0", "" }, { Event::RightKeyboardPound, "Right Keyboard #", "" }, + // Video + { Event::ToggleInter, "Toggle display interpolation", "" }, + { Event::VidmodeDecrease, "Previous zoom level", "" }, + { Event::VidmodeIncrease, "Next zoom level", "" }, { Event::ToggleFullScreen, "Toggle fullscreen", "" }, #ifdef ADAPTABLE_REFRESH_SUPPORT { Event::ToggleAdaptRefresh, "Toggle fullscreen refresh rate adapt", "" }, #endif { Event::OverscanDecrease, "Decrease overscan in fullscreen mode", "" }, { Event::OverscanIncrease, "Increase overscan in fullscreen mode", "" }, - { Event::VidmodeDecrease, "Previous zoom level", "" }, - { Event::VidmodeIncrease, "Next zoom level", "" }, { Event::ToggleCorrectAspectRatio,"Toggle aspect ratio correct scaling", "" }, { Event::VSizeAdjustDecrease, "Decrease vertical display size", "" }, { Event::VSizeAdjustIncrease, "Increase vertical display size", "" }, { Event::VCenterDecrease, "Move display up", "" }, { Event::VCenterIncrease, "Move display down", "" }, - { Event::FormatDecrease, "Decrease display format", "" }, - { Event::FormatIncrease, "Increase display format", "" }, + { Event::FormatDecrease, "Decrease TV format", "" }, + { Event::FormatIncrease, "Increase TV format", "" }, // Palette settings { Event::PaletteDecrease, "Switch to previous palette", "" }, { Event::PaletteIncrease, "Switch to next palette", "" }, @@ -2878,7 +2888,6 @@ EventHandler::EmulActionList EventHandler::ourEmulActionList = { { { Event::NextPaletteAttribute, "Select next palette attribute", "" }, { Event::PaletteAttributeDecrease,"Decrease selected palette attribute", "" }, { Event::PaletteAttributeIncrease,"Increase selected palette attribute", "" }, - { Event::ToggleInter, "Toggle display interpolation", "" }, // Blargg TV effects: { Event::VidmodeStd, "Disable TV effects", "" }, { Event::VidmodeRGB, "Select 'RGB' preset", "" }, @@ -2900,15 +2909,71 @@ EventHandler::EmulActionList EventHandler::ourEmulActionList = { { { Event::ScanlinesIncrease, "Increase scanlines", "" }, { Event::PreviousScanlineMask, "Switch to previous scanline mask", "" }, { Event::NextScanlineMask, "Switch to next scanline mask", "" }, + // Audio + { Event::SoundToggle, "Toggle sound", "" }, + { Event::VolumeDecrease, "Decrease volume", "" }, + { Event::VolumeIncrease, "Increase volume", "" }, - { Event::PreviousSettingGroup, "Select previous setting group", "" }, - { Event::NextSettingGroup, "Select next setting group", "" }, - { Event::PreviousSetting, "Select previous setting", "" }, - { Event::NextSetting, "Select next setting", "" }, - { Event::SettingDecrease, "Decrease current setting", "" }, - { Event::SettingIncrease, "Increase current setting", "" }, + // Devices & Ports: + { Event::DecreaseDeadzone, "Decrease digital dead zone", "" }, + { Event::IncreaseDeadzone, "Increase digital dead zone", "" }, + { Event::DecAnalogDeadzone, "Decrease analog dead zone", "" }, + { Event::IncAnalogDeadzone, "Increase analog dead zone", "" }, + { Event::DecAnalogSense, "Decrease analog paddle sensitivity", "" }, + { Event::IncAnalogSense, "Increase analog paddle sensitivity", "" }, + { Event::DecAnalogLinear, "Decrease analog paddle linearity", "" }, + { Event::IncAnalogLinear, "Increase analog paddle linearity", "" }, + { Event::DecDejtterAveraging, "Decrease paddle dejitter averaging", "" }, + { Event::IncDejtterAveraging, "Increase paddle dejitter averaging", "" }, + { Event::DecDejtterReaction, "Decrease paddle dejitter reaction", "" }, + { Event::IncDejtterReaction, "Increase paddle dejitter reaction", "" }, + { Event::DecDigitalSense, "Decrease digital paddle sensitivity", "" }, + { Event::IncDigitalSense, "Increase digital paddle sensitivity", "" }, + { Event::DecreaseAutoFire, "Decrease auto fire speed", "" }, + { Event::IncreaseAutoFire, "Increase auto fire speed", "" }, + { Event::ToggleFourDirections, "Toggle allow four joystick directions", "" }, + { Event::ToggleKeyCombos, "Toggle use of modifier key combos", "" }, + { Event::ToggleSAPortOrder, "Swap Stelladaptor port ordering", "" }, + // Devices & Ports related properties + { Event::PreviousLeftPort, "Select previous left controller", "" }, + { Event::NextLeftPort, "Select next left controller", "" }, + { Event::PreviousRightPort, "Select previous right controller", "" }, + { Event::NextRightPort, "Select next right controller", "" }, + { Event::ToggleSwapPorts, "Toggle swap ports", "" }, + { Event::ToggleSwapPaddles, "Toggle swap paddles", "" }, - // Developer keys: + // Mouse + { Event::PrevMouseAsController, "Select previous mouse controls", "" }, + { Event::NextMouseAsController, "Select next mouse controls", "" }, + { Event::DecMousePaddleSense, "Decrease mouse paddle sensitivity", "" }, + { Event::IncMousePaddleSense, "Increase mouse paddle sensitivity", "" }, + { Event::DecMouseTrackballSense, "Decrease mouse trackball sensitivity", "" }, + { Event::IncMouseTrackballSense, "Increase mouse trackball sensitivity", "" }, + { Event::DecreaseDrivingSense, "Decrease driving sensitivity", "" }, + { Event::IncreaseDrivingSense, "Increase driving sensitivity", "" }, + { Event::PreviousCursorVisbility, "Select prev. cursor visibility mode", "" }, + { Event::NextCursorVisbility, "Select next cursor visibility mode", "" }, + { Event::ToggleGrabMouse, "Toggle grab mouse", "" }, + // Mouse related properties + { Event::PreviousMouseControl, "Select previous mouse emulation mode", "" }, + { Event::NextMouseControl, "Select next mouse emulation mode", "" }, + { Event::DecreaseMouseAxesRange, "Decrease mouse axes range", "" }, + { Event::IncreaseMouseAxesRange, "Increase mouse axes range", "" }, + + // Time Machine + { Event::ToggleTimeMachine, "Toggle 'Time Machine' mode", "" }, + { Event::TimeMachineMode, "Toggle 'Time Machine' UI", "" }, + { Event::RewindPause, "Rewind one state & enter Pause mode", "" }, + { Event::Rewind1Menu, "Rewind one state & enter TM UI", "" }, + { Event::Rewind10Menu, "Rewind 10 states & enter TM UI", "" }, + { Event::RewindAllMenu, "Rewind all states & enter TM UI", "" }, + { Event::UnwindPause, "Unwind one state & enter Pause mode", "" }, + { Event::Unwind1Menu, "Unwind one state & enter TM UI", "" }, + { Event::Unwind10Menu, "Unwind 10 states & enter TM UI", "" }, + { Event::UnwindAllMenu, "Unwind all states & enter TM UI", "" }, + { Event::TogglePlayBackMode, "Toggle 'Time Machine' playback mode", "" }, + + // Developer: { Event::ToggleDeveloperSet, "Toggle developer settings sets", "" }, { Event::ToggleFrameStats, "Toggle frame stats", "" }, { Event::ToggleP0Bit, "Toggle TIA Player0 object", "" }, @@ -2930,64 +2995,8 @@ EventHandler::EmulActionList EventHandler::ourEmulActionList = { { { Event::ToggleJitter, "Toggle TV scanline 'Jitter' effect", "" }, { Event::JitterDecrease, "Decrease TV 'Jitter' roll", "" }, { Event::JitterIncrease, "Increase TV 'Jitter' roll", "" }, - // Other keys: - { Event::SoundToggle, "Toggle sound", "" }, - { Event::VolumeDecrease, "Decrease volume", "" }, - { Event::VolumeIncrease, "Increase volume", "" }, - - { Event::DecreaseDeadzone, "Decrease digital dead zone", "" }, - { Event::IncreaseDeadzone, "Increase digital dead zone", "" }, - { Event::DecAnalogDeadzone, "Decrease analog dead zone", "" }, - { Event::IncAnalogDeadzone, "Increase analog dead zone", "" }, - { Event::DecAnalogSense, "Decrease analog paddle sensitivity", "" }, - { Event::IncAnalogSense, "Increase analog paddle sensitivity", "" }, - { Event::DecAnalogLinear, "Decrease analog paddle linearity", "" }, - { Event::IncAnalogLinear, "Increase analog paddle linearity", "" }, - { Event::DecDejtterAveraging, "Decrease paddle dejitter averaging", "" }, - { Event::IncDejtterAveraging, "Increase paddle dejitter averaging", "" }, - { Event::DecDejtterReaction, "Decrease paddle dejitter reaction", "" }, - { Event::IncDejtterReaction, "Increase paddle dejitter reaction", "" }, - { Event::DecDigitalSense, "Decrease digital paddle sensitivity", "" }, - { Event::IncDigitalSense, "Increase digital paddle sensitivity", "" }, - { Event::DecreaseAutoFire, "Decrease auto fire speed", "" }, - { Event::IncreaseAutoFire, "Increase auto fire speed", "" }, - { Event::ToggleFourDirections, "Toggle allow four joystick directions", "" }, - { Event::ToggleKeyCombos, "Toggle use of modifier key combos", "" }, - { Event::ToggleSAPortOrder, "Swap Stelladaptor port ordering", "" }, - { Event::PrevMouseAsController, "Select previous mouse controls", "" }, - { Event::NextMouseAsController, "Select next mouse controls", "" }, - { Event::DecMousePaddleSense, "Decrease mouse paddle sensitivity", "" }, - { Event::IncMousePaddleSense, "Increase mouse paddle sensitivity", "" }, - { Event::DecMouseTrackballSense, "Decrease mouse trackball sensitivity", "" }, - { Event::IncMouseTrackballSense, "Increase mouse trackball sensitivity", "" }, - { Event::DecreaseDrivingSense, "Decrease driving sensitivity", "" }, - { Event::IncreaseDrivingSense, "Increase driving sensitivity", "" }, - { Event::PreviousCursorVisbility, "Select prev. cursor visibility mode", "" }, - { Event::NextCursorVisbility, "Select next cursor visibility mode", "" }, - { Event::ToggleGrabMouse, "Toggle grab mouse", "" }, - { Event::PreviousLeftPort, "Select previous left controller", "" }, - { Event::NextLeftPort, "Select next left controller", "" }, - { Event::PreviousRightPort, "Select previous right controller", "" }, - { Event::NextRightPort, "Select next right controller", "" }, - { Event::ToggleSwapPorts, "Toggle swap ports", "" }, - { Event::ToggleSwapPaddles, "Toggle swap paddles", "" }, - { Event::PreviousMouseControl, "Select previous mouse emulation mode", "" }, - { Event::NextMouseControl, "Select next mouse emulation mode", "" }, - { Event::DecreaseMouseAxesRange, "Decrease mouse axes range", "" }, - { Event::IncreaseMouseAxesRange, "Increase mouse axes range", "" }, - - { Event::ToggleTimeMachine, "Toggle 'Time Machine' mode", "" }, - { Event::TimeMachineMode, "Toggle 'Time Machine' UI", "" }, - { Event::RewindPause, "Rewind one state & enter Pause mode", "" }, - { Event::Rewind1Menu, "Rewind one state & enter TM UI", "" }, - { Event::Rewind10Menu, "Rewind 10 states & enter TM UI", "" }, - { Event::RewindAllMenu, "Rewind all states & enter TM UI", "" }, - { Event::UnwindPause, "Unwind one state & enter Pause mode", "" }, - { Event::Unwind1Menu, "Unwind one state & enter TM UI", "" }, - { Event::Unwind10Menu, "Unwind 10 states & enter TM UI", "" }, - { Event::UnwindAllMenu, "Unwind all states & enter TM UI", "" }, - { Event::TogglePlayBackMode, "Toggle 'Time Machine' playback mode", "" }, + // Combo { Event::Combo1, "Combo 1", "" }, { Event::Combo2, "Combo 2", "" }, { Event::Combo3, "Combo 3", "" }, diff --git a/src/emucore/GlobalKeyHandler.cxx b/src/emucore/GlobalKeyHandler.cxx index 8815b6189..0b8a911eb 100644 --- a/src/emucore/GlobalKeyHandler.cxx +++ b/src/emucore/GlobalKeyHandler.cxx @@ -137,7 +137,10 @@ bool GlobalKeyHandler::handleEvent(const Event::Type event, bool pressed, bool r // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void GlobalKeyHandler::setSetting(const Setting setting) { - mySetting = setting; + if(setting == Setting::ZOOM && myOSystem.frameBuffer().fullScreen()) + mySetting = Setting::FS_ASPECT; + else + mySetting = setting; mySettingActive = true; } @@ -193,6 +196,8 @@ bool GlobalKeyHandler::isTrackball(const Controller& controller) const bool GlobalKeyHandler::skipAVSetting() const { const bool isFullScreen = myOSystem.frameBuffer().fullScreen(); + const bool isFsStretch = isFullScreen && + myOSystem.settings().getBool("tia.fs_stretch"); const bool isCustomPalette = myOSystem.settings().getString("palette") == PaletteHandler::SETTING_CUSTOM; const bool isCustomFilter = @@ -203,9 +208,12 @@ bool GlobalKeyHandler::skipAVSetting() const myOSystem.settings().getString("video") == "software"; return (mySetting == Setting::OVERSCAN && !isFullScreen) + || (mySetting == Setting::ZOOM && isFullScreen) #ifdef ADAPTABLE_REFRESH_SUPPORT || (mySetting == Setting::ADAPT_REFRESH && !isFullScreen) #endif + || (mySetting == Setting::FS_ASPECT && !isFullScreen) + || (mySetting == Setting::ASPECT_RATIO && isFsStretch) || (mySetting >= Setting::PALETTE_PHASE && mySetting <= Setting::PALETTE_BLUE_SHIFT && !isCustomPalette) @@ -328,6 +336,7 @@ GlobalKeyHandler::SettingData GlobalKeyHandler::getSettingData(const Setting set {Setting::VOLUME, {true, std::bind(&Sound::adjustVolume, &myOSystem.sound(), _1)}}, {Setting::ZOOM, {false, std::bind(&FrameBuffer::switchVideoMode, &myOSystem.frameBuffer(), _1)}}, // always repeating {Setting::FULLSCREEN, {false, std::bind(&FrameBuffer::toggleFullscreen, &myOSystem.frameBuffer(), _1)}}, // always repeating + {Setting::FS_ASPECT, {false, std::bind(&FrameBuffer::switchVideoMode, &myOSystem.frameBuffer(), _1)}}, // always repeating #ifdef ADAPTABLE_REFRESH_SUPPORT {Setting::ADAPT_REFRESH, {false, std::bind(&FrameBuffer::toggleAdaptRefresh, &myOSystem.frameBuffer(), _1)}}, // always repeating #endif diff --git a/src/emucore/GlobalKeyHandler.hxx b/src/emucore/GlobalKeyHandler.hxx index 137bc75ed..dbfcb142c 100644 --- a/src/emucore/GlobalKeyHandler.hxx +++ b/src/emucore/GlobalKeyHandler.hxx @@ -38,6 +38,7 @@ class GlobalKeyHandler VOLUME, ZOOM, FULLSCREEN, + FS_ASPECT, #ifdef ADAPTABLE_REFRESH_SUPPORT ADAPT_REFRESH, #endif