mirror of https://github.com/stella-emu/stella.git
added 'Turbo" mode
This commit is contained in:
parent
bfef7362c9
commit
ddece5ed43
|
@ -22,6 +22,8 @@
|
|||
a game. This allows the user to save high scores for these games. For each
|
||||
game and variation, the top 10 scores can be saved. (TODO: Doc)
|
||||
|
||||
* Added 'Turbo' mode, runs the game as fast as the computer allows.
|
||||
|
||||
* Added option which lets default ROM path follow launcher navigation (TODO: Doc)
|
||||
|
||||
* Added displaying last write address in the debugger.
|
||||
|
|
|
@ -1626,6 +1626,12 @@
|
|||
<td>Control + i</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Toggle 'Turbo' mode</td>
|
||||
<td>Control + t</td>
|
||||
<td>Control + t</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>Toggle sound on/off</td>
|
||||
<td>Control + ]</td>
|
||||
|
@ -2004,6 +2010,11 @@
|
|||
<td>Control the emulation speed (as a percentage, 10 - 1000).</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-turbo <1|0></pre></td>
|
||||
<td>Enable 'Turbo' mode for maximum emulation speed.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-uimessages <1|0></pre></td>
|
||||
<td>Enable or disable display of message in the UI. Note that messages
|
||||
|
@ -2063,29 +2074,29 @@
|
|||
<td>Set the pitch o f Pitfall II music.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-tia.zoom <zoom></pre></td>
|
||||
<td>Use the specified zoom level (integer) while in TIA/emulation mode.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><pre>-tia.zoom <zoom></pre></td>
|
||||
<td>Use the specified zoom level (integer) while in TIA/emulation mode.
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-tia.vsizeadjust <-5 - 5></pre></td>
|
||||
<td>Adjust the display height of the TIA image
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><pre>-tia.vsizeadjust <-5 - 5></pre></td>
|
||||
<td>Adjust the display height of the TIA image
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-tia.inter <1|0></pre></td>
|
||||
<td>Use interpolation for the TIA image (results in blending/smoothing
|
||||
of the image).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><pre>-tia.inter <1|0></pre></td>
|
||||
<td>Use interpolation for the TIA image (results in blending/smoothing
|
||||
of the image).</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-tia.fs_stretch <1|0></pre></td>
|
||||
<td>Stretch TIA image completely while in fullscreen mode, vs. keeping the correct
|
||||
aspect ratio.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><pre>-tia.fs_stretch <1|0></pre></td>
|
||||
<td>Stretch TIA image completely while in fullscreen mode, vs. keeping the correct
|
||||
aspect ratio.</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><pre>-tia.fs_overscan <0 - 10></pre></td>
|
||||
|
|
|
@ -320,7 +320,8 @@ bool FrameBufferSDL2::setVideoMode(const string& title, const VideoMode& mode)
|
|||
}
|
||||
|
||||
uInt32 renderFlags = SDL_RENDERER_ACCELERATED;
|
||||
if(myOSystem.settings().getBool("vsync")) // V'synced blits option
|
||||
if(myOSystem.settings().getBool("vsync")
|
||||
&& !myOSystem.settings().getBool("turbo")) // V'synced blits option
|
||||
renderFlags |= SDL_RENDERER_PRESENTVSYNC;
|
||||
const string& video = myOSystem.settings().getString("video"); // Render hint
|
||||
if(video != "")
|
||||
|
|
|
@ -468,6 +468,7 @@ PhysicalKeyboardHandler::EventMappingArray PhysicalKeyboardHandler::DefaultCommo
|
|||
{Event::ToggleColorLoss, KBDK_L, KBDM_CTRL},
|
||||
{Event::TogglePalette, KBDK_P, KBDM_CTRL},
|
||||
{Event::ToggleInter, KBDK_I, KBDM_CTRL},
|
||||
{Event::ToggleTurbo, KBDK_T, KBDM_CTRL},
|
||||
{Event::ToggleJitter, KBDK_J, MOD3},
|
||||
{Event::ToggleFrameStats, KBDK_L, MOD3},
|
||||
{Event::ToggleTimeMachine, KBDK_T, MOD3},
|
||||
|
|
|
@ -563,6 +563,24 @@ void Console::toggleInter()
|
|||
myOSystem.frameBuffer().showMessage(ss.str());
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
void Console::toggleTurbo()
|
||||
{
|
||||
bool enabled = myOSystem.settings().getBool("turbo");
|
||||
|
||||
myOSystem.settings().setValue("turbo", !enabled);
|
||||
|
||||
// update speed
|
||||
initializeAudio();
|
||||
|
||||
// update VSync
|
||||
myOSystem.createFrameBuffer();
|
||||
|
||||
ostringstream ss;
|
||||
ss << "Turbo mode " << (!enabled ? "enabled" : "disabled");
|
||||
myOSystem.frameBuffer().showMessage(ss.str());
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
void Console::togglePhosphor()
|
||||
{
|
||||
|
@ -657,7 +675,9 @@ void Console::initializeAudio()
|
|||
.updatePlaybackPeriod(myAudioSettings.fragmentSize())
|
||||
.updateAudioQueueExtraFragments(myAudioSettings.bufferSize())
|
||||
.updateAudioQueueHeadroom(myAudioSettings.headroom())
|
||||
.updateSpeedFactor(myOSystem.settings().getFloat("speed"));
|
||||
.updateSpeedFactor(myOSystem.settings().getBool("turbo")
|
||||
? 20.0F
|
||||
: myOSystem.settings().getFloat("speed"));
|
||||
|
||||
createAudioQueue();
|
||||
myTIA->setAudioQueue(myAudioQueue);
|
||||
|
|
|
@ -221,6 +221,11 @@ class Console : public Serializable, public ConsoleIO
|
|||
*/
|
||||
void toggleInter();
|
||||
|
||||
/**
|
||||
Toggle turbo mode on/off
|
||||
*/
|
||||
void toggleTurbo();
|
||||
|
||||
|
||||
/**
|
||||
Toggles phosphor effect.
|
||||
|
|
|
@ -120,6 +120,7 @@ class Event
|
|||
ToggleFrameStats, ToggleSAPortOrder, ExitGame,
|
||||
|
||||
// add new events from here to avoid that user remapped events get overwritten
|
||||
ToggleTurbo,
|
||||
|
||||
LastType
|
||||
};
|
||||
|
|
|
@ -539,6 +539,10 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated)
|
|||
if (pressed && !repeated) myOSystem.console().toggleInter();
|
||||
return;
|
||||
|
||||
case Event::ToggleTurbo:
|
||||
if (pressed && !repeated) myOSystem.console().toggleTurbo();
|
||||
return;
|
||||
|
||||
case Event::ToggleJitter:
|
||||
if (pressed && !repeated) myOSystem.console().toggleJitter();
|
||||
return;
|
||||
|
@ -1815,6 +1819,7 @@ EventHandler::EmulActionList EventHandler::ourEmulActionList = { {
|
|||
{ Event::TogglePauseMode, "Toggle Pause mode", "" },
|
||||
{ Event::StartPauseMode, "Start Pause mode", "" },
|
||||
{ Event::Fry, "Fry cartridge", "" },
|
||||
{ Event::ToggleTurbo, "Toggle Turbo mode", "" },
|
||||
{ Event::DebuggerMode, "Toggle Debugger mode", "" },
|
||||
|
||||
{ Event::ConsoleSelect, "Select", "" },
|
||||
|
@ -2023,6 +2028,7 @@ EventHandler::MenuActionList EventHandler::ourMenuActionList = { {
|
|||
const Event::EventSet EventHandler::MiscEvents = {
|
||||
Event::Quit, Event::ReloadConsole, Event::Fry, Event::StartPauseMode,
|
||||
Event::TogglePauseMode, Event::OptionsMenuMode, Event::CmdMenuMode, Event::ExitMode,
|
||||
Event::ToggleTurbo,
|
||||
Event::TakeSnapshot, Event::ToggleContSnapshots, Event::ToggleContSnapshotsFrame,
|
||||
// Event::MouseAxisXMove, Event::MouseAxisYMove,
|
||||
// Event::MouseButtonLeftValue, Event::MouseButtonRightValue,
|
||||
|
|
|
@ -468,7 +468,7 @@ class EventHandler
|
|||
#else
|
||||
PNG_SIZE = 0,
|
||||
#endif
|
||||
EMUL_ACTIONLIST_SIZE = 144 + PNG_SIZE + COMBO_SIZE,
|
||||
EMUL_ACTIONLIST_SIZE = 145 + PNG_SIZE + COMBO_SIZE,
|
||||
MENU_ACTIONLIST_SIZE = 18
|
||||
;
|
||||
|
||||
|
|
|
@ -502,7 +502,10 @@ void FrameBuffer::drawFrameStats(float framesPerSecond)
|
|||
ss
|
||||
<< std::fixed << std::setprecision(1) << framesPerSecond
|
||||
<< "fps @ "
|
||||
<< std::fixed << std::setprecision(0) << 100 * myOSystem.settings().getFloat("speed")
|
||||
<< std::fixed << std::setprecision(0) << 100 *
|
||||
(myOSystem.settings().getBool("turbo")
|
||||
? 20.0F
|
||||
: myOSystem.settings().getFloat("speed"))
|
||||
<< "% speed";
|
||||
|
||||
myStatsMsg.surface->drawString(f, ss.str(), xPos, yPos,
|
||||
|
|
|
@ -157,6 +157,7 @@ Settings::Settings()
|
|||
setPermanent("threads", "false");
|
||||
setTemporary("romloadcount", "0");
|
||||
setTemporary("maxres", "");
|
||||
setTemporary("turbo", "0");
|
||||
|
||||
#ifdef DEBUGGER_SUPPORT
|
||||
// Debugger/disassembly options
|
||||
|
@ -400,6 +401,7 @@ void Settings::usage() const
|
|||
<< " z26|\n"
|
||||
<< " user>\n"
|
||||
<< " -speed <number> Run emulation at the given speed\n"
|
||||
<< " -turbo <1|0> Enable 'Turbo' mode for maximum emulation speed\n"
|
||||
<< " -uimessages <1|0> Show onscreen UI messages for different events\n"
|
||||
<< endl
|
||||
#ifdef SOUND_SUPPORT
|
||||
|
|
Loading…
Reference in New Issue