From 6b843aaf921289c8ba4a5dac451d03b3207fc948 Mon Sep 17 00:00:00 2001 From: thrust26 Date: Sat, 18 Jan 2020 11:08:00 +0100 Subject: [PATCH] add autoslot setting to UI update doc for autoslot and write to read port breaks --- Changes.txt | 2 ++ docs/graphics/options_developer.png | Bin 7731 -> 5061 bytes docs/graphics/options_developer_emulation.png | Bin 7793 -> 4977 bytes .../options_developer_timemachine.png | Bin 6866 -> 4573 bytes docs/index.html | 29 +++++++++++++++--- src/emucore/Settings.cxx | 6 ++-- src/gui/DeveloperDialog.cxx | 10 ++++++ src/gui/DeveloperDialog.hxx | 1 + 8 files changed, 42 insertions(+), 6 deletions(-) diff --git a/Changes.txt b/Changes.txt index c2bc9b4e5..d2d995e9e 100644 --- a/Changes.txt +++ b/Changes.txt @@ -97,6 +97,8 @@ * 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. * ROM Info Launcher can now display multiple lines per property and diff --git a/docs/graphics/options_developer.png b/docs/graphics/options_developer.png index 33c42a1ae1ca6f82a1714844ade0d285a9c54fd6..8d345f9aaf7ea1cf40feb1eb308a87d4f6baf08b 100644 GIT binary patch literal 5061 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 literal 7731 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 B;NSoN literal 7793 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 G;C}-VHkBd( diff --git a/docs/graphics/options_developer_timemachine.png b/docs/graphics/options_developer_timemachine.png index 325b3f1de1991449eb5190b386beb007ede7ff69..8c66c2af553961fd59d3e5b959713d9e6feeefd8 100644 GIT binary patch literal 4573 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 literal 6866 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 aj~Fk8dhU}9K7)S#T`<-+JzuHo81_H=WN@Yc diff --git a/docs/index.html b/docs/index.html index 82eb1c9e4..e38dbe470 100644 --- a/docs/index.html +++ b/docs/index.html @@ -2617,10 +2617,20 @@ If disabled, use the last databus value for those pins instead.
-dev.rwportbreak <1|0>
- Since the 2600 has no dedicated R/W line, different addresses are used - for RAM read or write access. If the code reads from such a write address, this causes - an unwanted, semi-random write to that address. - When this option is enabled, such reads interrupt emulation and the debugger is entered. + Since the 2600 has no dedicated R/W line, different addresses are + used for RAM read or write access.
+ If the code reads from such a write address, this causes an unwanted, + semi-random write to that address.
+ When this option is enabled, such reads interrupt emulation and the + debugger is entered. + +
-dev.wrportbreak <1|0>
+ Same as above.
+ 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.
+ When this option is enabled, such writes interrupt emulation and the + debugger is entered.
-dev.thumb.trapfatal <1|0>
When enabled, this allows the Thumb ARM emulation to @@ -3244,6 +3254,11 @@ A read from a write port interrupts emulation and the debugger is entered. -dev.rwportbreak + + Break on write to ... + A write to a read port interrupts emulation and the debugger is entered. + -dev.wrportbreak + Fatal ARM emulation ... Thumb ARM emulation throws an exception and enters the debugger on fatal errors @@ -3364,6 +3379,12 @@ Automatically save no, current or all states when exiting emulation. -saveonexit + + Automatically switch... + + Automatically switch to the next available save state slot after saving a ROM state file. + + -autoslot diff --git a/src/emucore/Settings.cxx b/src/emucore/Settings.cxx index 366e85307..4689be2ed 100644 --- a/src/emucore/Settings.cxx +++ b/src/emucore/Settings.cxx @@ -465,10 +465,11 @@ void Settings::usage() const << " scaling/effects)\n" << " -ssinterval Number of seconds between snapshots in\n" << " continuous snapshot mode\n" - << " -autoslot <1|0> Automatically switch to next save slot when\n" - << " state saving\n" + << endl << " -saveonexit \n" + << " -autoslot <1|0> Automatically switch to next save slot when\n" + << " state saving\n" << endl << " -rominfo Display detailed information for the given ROM\n" << " -listrominfo Display contents of stella.pro, one line per ROM\n" @@ -588,6 +589,7 @@ void Settings::usage() const << " read/peek\n" #ifdef DEBUGGER_SUPPORT << " -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 << " -dev.thumb.trapfatal <1|0> Determines whether errors in ARM emulation\n" << " throw an exception\n" diff --git a/src/gui/DeveloperDialog.cxx b/src/gui/DeveloperDialog.cxx index 85be63fdf..28ecf6e7b 100644 --- a/src/gui/DeveloperDialog.cxx +++ b/src/gui/DeveloperDialog.cxx @@ -494,6 +494,11 @@ void DeveloperDialog::addTimeMachineTab(const GUI::Font& font) wid.push_back(r); 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 const GUI::Font& infofont = instance().frameBuffer().infoFont(); ypos = myTab->getHeight() - 5 - fontHeight - infofont.getFontHeight() - 10; @@ -841,6 +846,8 @@ void DeveloperDialog::loadConfig() // Save on exit string saveOnExit = instance().settings().getString("saveonexit"); mySaveOnExitGroup->setSelected(saveOnExit == "all" ? 2 : saveOnExit == "current" ? 1 : 0); + // Automatically change save state slots + myAutoSlotWidget->setState(instance().settings().getBool("autoslot")); #ifdef DEBUGGER_SUPPORT uInt32 w, h; @@ -922,6 +929,8 @@ void DeveloperDialog::saveConfig() int saveOnExit = mySaveOnExitGroup->getSelected(); instance().settings().setValue("saveonexit", saveOnExit == 0 ? "none" : saveOnExit == 1 ? "current" : "all"); + // Automatically change save state slots + instance().settings().setValue("autoslot", myAutoSlotWidget->getState()); #ifdef DEBUGGER_SUPPORT // Debugger font style @@ -1014,6 +1023,7 @@ void DeveloperDialog::setDefaults() setWidgetStates(set); mySaveOnExitGroup->setSelected(0); + myAutoSlotWidget->setState(false); break; case 4: // Debugger options diff --git a/src/gui/DeveloperDialog.hxx b/src/gui/DeveloperDialog.hxx index cb11990ae..ddee5468d 100644 --- a/src/gui/DeveloperDialog.hxx +++ b/src/gui/DeveloperDialog.hxx @@ -136,6 +136,7 @@ class DeveloperDialog : public Dialog PopUpWidget* myStateIntervalWidget{nullptr}; PopUpWidget* myStateHorizonWidget{nullptr}; RadioButtonGroup* mySaveOnExitGroup{nullptr}; + CheckboxWidget* myAutoSlotWidget{nullptr}; #ifdef DEBUGGER_SUPPORT // Debugger UI widgets