Closes#3344
Adds slow and turbo modes with configurable speeds that can then be
toggled by the user. Behavior is:
- Standard/slow limit, toggle turbo = turbo
- Turbo limit, toggle turbo = standard
- Standard/turbo limit, toggle slow = slow
- Slow limit, toggle slow = standard
Enabling the turbo/slow mode enables the frame limiter unconditionally.
This has some conflicts with VSync. For example when I set my refresh
rate to 60hz and enable vsync, turbo mode does nothing. Not sure how to
go about fixing this, @MaranBr probably knows better the proper
solution.
Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3525
Reviewed-by: DraVee <dravee@eden-emu.dev>
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
<stringname="frame_limit_slider_description">Specifies the percentage to limit emulation speed. 100% is the normal speed. Values higher or lower will increase or decrease the speed limit.</string>
{QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys","Multiplayer Browse Public Game Lobby")).toStdString(),QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys","Main Window")).toStdString(),{std::string("Ctrl+B"),std::string(""),Qt::ApplicationShortcut,false}},
{QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys","Multiplayer Direct Connect to Room")).toStdString(),QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys","Main Window")).toStdString(),{std::string("Ctrl+C"),std::string(""),Qt::ApplicationShortcut,false}},
{QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys","Multiplayer Show Current Room")).toStdString(),QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys","Main Window")).toStdString(),{std::string("Ctrl+R"),std::string(""),Qt::ApplicationShortcut,false}},
{QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys","Browse Public Game Lobby")).toStdString(),QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys","Main Window")).toStdString(),{std::string("Ctrl+B"),std::string(""),Qt::ApplicationShortcut,false}},
{QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys","Direct Connect to Room")).toStdString(),QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys","Main Window")).toStdString(),{std::string("Ctrl+C"),std::string(""),Qt::ApplicationShortcut,false}},
{QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys","Show Current Room")).toStdString(),QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys","Main Window")).toStdString(),{std::string("Ctrl+R"),std::string(""),Qt::ApplicationShortcut,false}},
{QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys","Toggle Status Bar")).toStdString(),QStringLiteral(QT_TRANSLATE_NOOP("Hotkeys","Main Window")).toStdString(),{std::string("Ctrl+S"),std::string(""),Qt::WindowShortcut,false}},