mirror of https://github.com/stella-emu/stella.git
add autoslot setting to UI
update doc for autoslot and write to read port breaks
This commit is contained in:
parent
34661af1aa
commit
8acefcbb50
|
@ -97,6 +97,8 @@
|
||||||
|
|
||||||
* Added option to save and load all TimeMachine states at once.
|
* Added option to save and load all TimeMachine states at once.
|
||||||
|
|
||||||
|
* Added option to automatically save states when exiting emulation.
|
||||||
|
|
||||||
* Added option to change pitch of Pitfall II music.
|
* Added option to change pitch of Pitfall II music.
|
||||||
|
|
||||||
* ROM Info Launcher can now display multiple lines per property and
|
* ROM Info Launcher can now display multiple lines per property and
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 4.9 KiB |
Binary file not shown.
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 4.9 KiB |
Binary file not shown.
Before Width: | Height: | Size: 6.7 KiB After Width: | Height: | Size: 4.5 KiB |
|
@ -2617,10 +2617,20 @@
|
||||||
If disabled, use the last databus value for those pins instead.</td>
|
If disabled, use the last databus value for those pins instead.</td>
|
||||||
</tr><tr>
|
</tr><tr>
|
||||||
<td><pre>-dev.rwportbreak <1|0></pre></td>
|
<td><pre>-dev.rwportbreak <1|0></pre></td>
|
||||||
<td>Since the 2600 has no dedicated R/W line, different addresses are used
|
<td>Since the 2600 has no dedicated R/W line, different addresses are
|
||||||
for RAM read or write access. If the code reads from such a write address, this causes
|
used for RAM read or write access.</br>
|
||||||
an unwanted, semi-random write to that address.
|
If the code reads from such a write address, this causes an unwanted,
|
||||||
When this option is enabled, such reads interrupt emulation and the debugger is entered.</td>
|
semi-random write to that address.</br>
|
||||||
|
When this option is enabled, such reads interrupt emulation and the
|
||||||
|
debugger is entered.</td>
|
||||||
|
</tr><tr>
|
||||||
|
<td><pre>-dev.wrportbreak <1|0></pre></td>
|
||||||
|
<td>Same as above.</br>
|
||||||
|
If the code writes to such a read address, nothing happens. But a
|
||||||
|
developer should be made aware of it, because this indicates a problem
|
||||||
|
with the code.</br>
|
||||||
|
When this option is enabled, such writes interrupt emulation and the
|
||||||
|
debugger is entered.</td>
|
||||||
</tr><tr>
|
</tr><tr>
|
||||||
<td><pre>-dev.thumb.trapfatal <1|0></pre></td>
|
<td><pre>-dev.thumb.trapfatal <1|0></pre></td>
|
||||||
<td>When enabled, this allows the Thumb ARM emulation to
|
<td>When enabled, this allows the Thumb ARM emulation to
|
||||||
|
@ -3244,6 +3254,11 @@
|
||||||
<td>A read from a write port interrupts emulation and the debugger is entered.</td>
|
<td>A read from a write port interrupts emulation and the debugger is entered.</td>
|
||||||
<td><span style="white-space:nowrap">-dev.rwportbreak</span></td>
|
<td><span style="white-space:nowrap">-dev.rwportbreak</span></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Break on write to ...</td>
|
||||||
|
<td>A write to a read port interrupts emulation and the debugger is entered.</td>
|
||||||
|
<td><span style="white-space:nowrap">-dev.wrportbreak</span></td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Fatal ARM emulation ...</td>
|
<td>Fatal ARM emulation ...</td>
|
||||||
<td>Thumb ARM emulation throws an exception and enters the debugger on fatal errors</td>
|
<td>Thumb ARM emulation throws an exception and enters the debugger on fatal errors</td>
|
||||||
|
@ -3364,6 +3379,12 @@
|
||||||
Automatically save no, current or all states when exiting emulation.
|
Automatically save no, current or all states when exiting emulation.
|
||||||
</td>
|
</td>
|
||||||
<td>-saveonexit</td>
|
<td>-saveonexit</td>
|
||||||
|
</tr><tr>
|
||||||
|
<td>Automatically switch...</td>
|
||||||
|
<td>
|
||||||
|
Automatically switch to the next available save state slot after saving a ROM state file.
|
||||||
|
</td>
|
||||||
|
<td>-autoslot</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</td>
|
</td>
|
||||||
|
|
|
@ -465,10 +465,11 @@ void Settings::usage() const
|
||||||
<< " scaling/effects)\n"
|
<< " scaling/effects)\n"
|
||||||
<< " -ssinterval <number> Number of seconds between snapshots in\n"
|
<< " -ssinterval <number> Number of seconds between snapshots in\n"
|
||||||
<< " continuous snapshot mode\n"
|
<< " continuous snapshot mode\n"
|
||||||
<< " -autoslot <1|0> Automatically switch to next save slot when\n"
|
<< endl
|
||||||
<< " state saving\n"
|
|
||||||
<< " -saveonexit <none|current Automatically save state(s) when exiting emulation\n"
|
<< " -saveonexit <none|current Automatically save state(s) when exiting emulation\n"
|
||||||
<< " all>\n"
|
<< " all>\n"
|
||||||
|
<< " -autoslot <1|0> Automatically switch to next save slot when\n"
|
||||||
|
<< " state saving\n"
|
||||||
<< endl
|
<< endl
|
||||||
<< " -rominfo <rom> Display detailed information for the given ROM\n"
|
<< " -rominfo <rom> Display detailed information for the given ROM\n"
|
||||||
<< " -listrominfo Display contents of stella.pro, one line per ROM\n"
|
<< " -listrominfo Display contents of stella.pro, one line per ROM\n"
|
||||||
|
@ -588,6 +589,7 @@ void Settings::usage() const
|
||||||
<< " read/peek\n"
|
<< " read/peek\n"
|
||||||
#ifdef DEBUGGER_SUPPORT
|
#ifdef DEBUGGER_SUPPORT
|
||||||
<< " -dev.rwportbreak <1|0> Debugger breaks on reads from write ports\n"
|
<< " -dev.rwportbreak <1|0> Debugger breaks on reads from write ports\n"
|
||||||
|
<< " -dev.wrportbreak <1|0> Debugger breaks on writes to read ports\n"
|
||||||
#endif
|
#endif
|
||||||
<< " -dev.thumb.trapfatal <1|0> Determines whether errors in ARM emulation\n"
|
<< " -dev.thumb.trapfatal <1|0> Determines whether errors in ARM emulation\n"
|
||||||
<< " throw an exception\n"
|
<< " throw an exception\n"
|
||||||
|
|
|
@ -494,6 +494,11 @@ void DeveloperDialog::addTimeMachineTab(const GUI::Font& font)
|
||||||
wid.push_back(r);
|
wid.push_back(r);
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
|
|
||||||
|
|
||||||
|
myAutoSlotWidget = new CheckboxWidget(myTab, font, HBORDER, ypos + 1, "Automatically switch save state slots");
|
||||||
|
wid.push_back(myAutoSlotWidget);
|
||||||
|
ypos += lineHeight + VGAP;
|
||||||
|
|
||||||
// Add message concerning usage
|
// Add message concerning usage
|
||||||
const GUI::Font& infofont = instance().frameBuffer().infoFont();
|
const GUI::Font& infofont = instance().frameBuffer().infoFont();
|
||||||
ypos = myTab->getHeight() - 5 - fontHeight - infofont.getFontHeight() - 10;
|
ypos = myTab->getHeight() - 5 - fontHeight - infofont.getFontHeight() - 10;
|
||||||
|
@ -841,6 +846,8 @@ void DeveloperDialog::loadConfig()
|
||||||
// Save on exit
|
// Save on exit
|
||||||
string saveOnExit = instance().settings().getString("saveonexit");
|
string saveOnExit = instance().settings().getString("saveonexit");
|
||||||
mySaveOnExitGroup->setSelected(saveOnExit == "all" ? 2 : saveOnExit == "current" ? 1 : 0);
|
mySaveOnExitGroup->setSelected(saveOnExit == "all" ? 2 : saveOnExit == "current" ? 1 : 0);
|
||||||
|
// Automatically change save state slots
|
||||||
|
myAutoSlotWidget->setState(instance().settings().getBool("autoslot"));
|
||||||
|
|
||||||
#ifdef DEBUGGER_SUPPORT
|
#ifdef DEBUGGER_SUPPORT
|
||||||
uInt32 w, h;
|
uInt32 w, h;
|
||||||
|
@ -922,6 +929,8 @@ void DeveloperDialog::saveConfig()
|
||||||
int saveOnExit = mySaveOnExitGroup->getSelected();
|
int saveOnExit = mySaveOnExitGroup->getSelected();
|
||||||
instance().settings().setValue("saveonexit",
|
instance().settings().setValue("saveonexit",
|
||||||
saveOnExit == 0 ? "none" : saveOnExit == 1 ? "current" : "all");
|
saveOnExit == 0 ? "none" : saveOnExit == 1 ? "current" : "all");
|
||||||
|
// Automatically change save state slots
|
||||||
|
instance().settings().setValue("autoslot", myAutoSlotWidget->getState());
|
||||||
|
|
||||||
#ifdef DEBUGGER_SUPPORT
|
#ifdef DEBUGGER_SUPPORT
|
||||||
// Debugger font style
|
// Debugger font style
|
||||||
|
@ -1014,6 +1023,7 @@ void DeveloperDialog::setDefaults()
|
||||||
|
|
||||||
setWidgetStates(set);
|
setWidgetStates(set);
|
||||||
mySaveOnExitGroup->setSelected(0);
|
mySaveOnExitGroup->setSelected(0);
|
||||||
|
myAutoSlotWidget->setState(false);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 4: // Debugger options
|
case 4: // Debugger options
|
||||||
|
|
|
@ -136,6 +136,7 @@ class DeveloperDialog : public Dialog
|
||||||
PopUpWidget* myStateIntervalWidget{nullptr};
|
PopUpWidget* myStateIntervalWidget{nullptr};
|
||||||
PopUpWidget* myStateHorizonWidget{nullptr};
|
PopUpWidget* myStateHorizonWidget{nullptr};
|
||||||
RadioButtonGroup* mySaveOnExitGroup{nullptr};
|
RadioButtonGroup* mySaveOnExitGroup{nullptr};
|
||||||
|
CheckboxWidget* myAutoSlotWidget{nullptr};
|
||||||
|
|
||||||
#ifdef DEBUGGER_SUPPORT
|
#ifdef DEBUGGER_SUPPORT
|
||||||
// Debugger UI widgets
|
// Debugger UI widgets
|
||||||
|
|
Loading…
Reference in New Issue