Add hotkey to change scanline adjustment. For now, this is only a stub.

This commit is contained in:
Stephen Anthony 2020-01-09 10:36:00 -03:30
parent 1667d4df60
commit 6e2a254cee
6 changed files with 45 additions and 1 deletions

View File

@ -428,6 +428,8 @@ PhysicalKeyboardHandler::EventMappingArray PhysicalKeyboardHandler::DefaultCommo
{Event::VidmodeIncrease, KBDK_EQUALS, MOD3}, {Event::VidmodeIncrease, KBDK_EQUALS, MOD3},
{Event::VCenterDecrease, KBDK_PAGEDOWN, MOD3}, {Event::VCenterDecrease, KBDK_PAGEDOWN, MOD3},
{Event::VCenterIncrease, KBDK_PAGEUP, MOD3}, {Event::VCenterIncrease, KBDK_PAGEUP, MOD3},
{Event::ScanlineAdjustDecrease, KBDK_PAGEDOWN, KBDM_SHIFT | MOD3},
{Event::ScanlineAdjustIncrease, KBDK_PAGEUP, KBDM_SHIFT | MOD3},
{Event::VolumeDecrease, KBDK_LEFTBRACKET, MOD3}, {Event::VolumeDecrease, KBDK_LEFTBRACKET, MOD3},
{Event::VolumeIncrease, KBDK_RIGHTBRACKET, MOD3}, {Event::VolumeIncrease, KBDK_RIGHTBRACKET, MOD3},
{Event::SoundToggle, KBDK_RIGHTBRACKET, KBDM_CTRL}, {Event::SoundToggle, KBDK_RIGHTBRACKET, KBDM_CTRL},

View File

@ -684,6 +684,27 @@ void Console::updateVcenter(Int32 vcenter)
if (vcenter != myTIA->vcenter()) myTIA->setVcenter(vcenter); if (vcenter != myTIA->vcenter()) myTIA->setVcenter(vcenter);
} }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void Console::changeScanlineAdjust(int direction)
{
// Get correct setting, depending on whether we're in NTSC or PAL
// Int32 adjust = myOSystem.settings().getInt("tia.adjustscanlines.ntsc");
if(direction == +1) // increase scanline adjustment
{
cerr << "adjust scanline +\n";
}
else if(direction == -1) // decrease scanline adjustment
{
cerr << "adjust scanline -\n";
}
else
return;
// Set new adjustment, updating the correct setting
// ...
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void Console::setTIAProperties() void Console::setTIAProperties()
{ {

View File

@ -269,6 +269,15 @@ class Console : public Serializable, public ConsoleIO
*/ */
void changeVerticalCenter(int direction); void changeVerticalCenter(int direction);
/**
Change the "TIA scanline adjust" variable.
Note that there are currently two of these (NTSC and PAL). The currently
active mode will determine which one is used.
@param direction +1 indicates increase, -1 indicates decrease.
*/
void changeScanlineAdjust(int direction);
/** /**
Returns the current framerate. Returns the current framerate.
*/ */

View File

@ -84,6 +84,7 @@ class Event
VidmodeStd, VidmodeRGB, VidmodeSVideo, VidModeComposite, VidModeBad, VidModeCustom, VidmodeStd, VidmodeRGB, VidmodeSVideo, VidModeComposite, VidModeBad, VidModeCustom,
PreviousAttribute, NextAttribute, DecreaseAttribute, IncreaseAttribute, PreviousAttribute, NextAttribute, DecreaseAttribute, IncreaseAttribute,
ScanlinesDecrease, ScanlinesIncrease, VCenterDecrease, VCenterIncrease, ScanlinesDecrease, ScanlinesIncrease, VCenterDecrease, VCenterIncrease,
ScanlineAdjustDecrease, ScanlineAdjustIncrease,
ToggleP0Collision, ToggleP0Bit, ToggleP1Collision, ToggleP1Bit, ToggleP0Collision, ToggleP0Bit, ToggleP1Collision, ToggleP1Bit,
ToggleM0Collision, ToggleM0Bit, ToggleM1Collision, ToggleM1Bit, ToggleM0Collision, ToggleM0Bit, ToggleM1Collision, ToggleM1Bit,

View File

@ -424,6 +424,14 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated)
if (pressed) myOSystem.console().changeVerticalCenter(+1); if (pressed) myOSystem.console().changeVerticalCenter(+1);
return; return;
case Event::ScanlineAdjustDecrease:
if (pressed) myOSystem.console().changeScanlineAdjust(-1);
return;
case Event::ScanlineAdjustIncrease:
if (pressed) myOSystem.console().changeScanlineAdjust(+1);
return;
case Event::ToggleFullScreen: case Event::ToggleFullScreen:
if (pressed && !repeated) myOSystem.frameBuffer().toggleFullscreen(); if (pressed && !repeated) myOSystem.frameBuffer().toggleFullscreen();
return; return;
@ -1843,6 +1851,8 @@ EventHandler::EmulActionList EventHandler::ourEmulActionList = { {
{ Event::OverscanIncrease, "Increase overscan in fullscreen mode", "" }, { Event::OverscanIncrease, "Increase overscan in fullscreen mode", "" },
{ Event::VCenterIncrease, "Move display up", "" }, { Event::VCenterIncrease, "Move display up", "" },
{ Event::VCenterDecrease, "Move display down", "" }, { Event::VCenterDecrease, "Move display down", "" },
{ Event::ScanlineAdjustIncrease, "Increase scanline adjust", "" },
{ Event::ScanlineAdjustDecrease, "Decrease scanline adjust", "" },
{ Event::FormatDecrease, "Decrease display format", "" }, { Event::FormatDecrease, "Decrease display format", "" },
{ Event::FormatIncrease, "Increase display format", "" }, { Event::FormatIncrease, "Increase display format", "" },
{ Event::TogglePalette, "Switch palette (Standard/Z26/User)", "" }, { Event::TogglePalette, "Switch palette (Standard/Z26/User)", "" },
@ -1972,6 +1982,7 @@ const Event::EventSet EventHandler::AudioVideoEvents = {
Event::PhosphorDecrease, Event::PhosphorIncrease, Event::TogglePhosphor, Event::PhosphorDecrease, Event::PhosphorIncrease, Event::TogglePhosphor,
Event::FormatDecrease, Event::FormatIncrease, Event::FormatDecrease, Event::FormatIncrease,
Event::VCenterDecrease, Event::VCenterIncrease, Event::VCenterDecrease, Event::VCenterIncrease,
Event::ScanlineAdjustDecrease, Event::ScanlineAdjustIncrease,
Event::OverscanDecrease, Event::OverscanIncrease, Event::OverscanDecrease, Event::OverscanIncrease,
Event::TogglePalette, Event::ToggleInter Event::TogglePalette, Event::ToggleInter
}; };

View File

@ -464,7 +464,7 @@ class EventHandler
#else #else
PNG_SIZE = 0, PNG_SIZE = 0,
#endif #endif
EMUL_ACTIONLIST_SIZE = 141 + PNG_SIZE + COMBO_SIZE, EMUL_ACTIONLIST_SIZE = 143 + PNG_SIZE + COMBO_SIZE,
MENU_ACTIONLIST_SIZE = 18 MENU_ACTIONLIST_SIZE = 18
; ;