From 3cc7d9b655aa7f7dd68088fbd070811310a90baa Mon Sep 17 00:00:00 2001 From: thrust26 Date: Tue, 28 Jul 2020 09:40:44 +0200 Subject: [PATCH] added option to display detected settings info when a ROM is loaded (resolves #684) --- Changes.txt | 2 ++ docs/graphics/options_developer.png | Bin 5061 -> 5233 bytes docs/graphics/options_developer_emulation.png | Bin 4977 -> 5162 bytes docs/index.html | 4 ++++ src/emucore/OSystem.cxx | 16 ++++++++++++++-- src/emucore/Settings.cxx | 4 ++++ src/gui/DeveloperDialog.cxx | 14 +++++++++++++- src/gui/DeveloperDialog.hxx | 2 ++ 8 files changed, 39 insertions(+), 3 deletions(-) diff --git a/Changes.txt b/Changes.txt index 3db21a9ea..7b2d6d87a 100644 --- a/Changes.txt +++ b/Changes.txt @@ -35,6 +35,8 @@ * Added option to select the audio device. + * Added option to display detected settings info when a ROM is loaded. + * Replaced "Re-disassemble" with "Disassemble @ current line" in debugger. * Fix bug when taking fullscreen snapshots; the dimensions were sometimes diff --git a/docs/graphics/options_developer.png b/docs/graphics/options_developer.png index 8d345f9aaf7ea1cf40feb1eb308a87d4f6baf08b..f405818b125986916aefddafde831575283648b7 100644 GIT binary patch literal 5233 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 literal 5061 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 diff --git a/docs/graphics/options_developer_emulation.png b/docs/graphics/options_developer_emulation.png index 6b8009f35c4bd7b45800c7c188c5b18f546610cd..977893402c447cccf3e95ae39201c6e85b701b66 100644 GIT binary patch literal 5162 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 NQ`=apO7nii{{SP5XoUa( literal 4977 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 B;NSoN diff --git a/docs/index.html b/docs/index.html index 555895e6a..d0bac0933 100644 --- a/docs/index.html +++ b/docs/index.html @@ -2893,6 +2893,9 @@
-<plr.|dev.>stats <1|0>
Overlay console info on the TIA image during emulation. + +
-<plr.|dev.>detectedinfo <1|0>
+ Display detected settings info when a ROM is loaded.
-<plr.|dev.>console <2600|7800>
Select console for B/W and Pause key handling and RAM initialization. @@ -3606,6 +3609,7 @@ ItemBrief descriptionFor more information,
see CommandLine Player/Developer settingsSelects the active settings set-dev.settings Console info overlayOverlay console info on the TIA image during emulation.-plr.stats
-dev.stats + Detected settings infoDisplay detected settings when a ROM is loaded.-plr.detectedinfo
-dev.detectedinfo ConsoleSelect the console type, this affects Color/B&W/Pause key emulation and zero-page RAM initialization-plr.console
-dev.console Random startup bankRandomize the startup bank (only for selected bankswitch types)-plr.bankrandom
-dev.bankrandom Randomize zero-page ...When loading a ROM, randomize all RAM content instead of initializing with all zeroes (for 'Console' = 'Atari 2600' only)-plr.ramrandom
-dev.ramrandom diff --git a/src/emucore/OSystem.cxx b/src/emucore/OSystem.cxx index 6c5caa8d9..88d546ba2 100644 --- a/src/emucore/OSystem.cxx +++ b/src/emucore/OSystem.cxx @@ -451,8 +451,8 @@ string OSystem::createConsole(const FilesystemNode& rom, const string& md5sum, myConsole->initializeAudio(); string saveOnExit = settings().getString("saveonexit"); - bool activeTM = settings().getBool( - settings().getBool("dev.settings") ? "dev.timemachine" : "plr.timemachine"); + bool devSettings = settings().getBool("dev.settings"); + bool activeTM = settings().getBool(devSettings ? "dev.timemachine" : "plr.timemachine"); if (saveOnExit == "all" && activeTM) myEventHandler->handleEvent(Event::LoadAllStates); @@ -483,7 +483,19 @@ string OSystem::createConsole(const FilesystemNode& rom, const string& md5sum, if(mySettings->getBool("debug")) myEventHandler->enterDebugMode(); #endif + + if(!showmessage && + settings().getBool(devSettings ? "dev.detectedinfo" : "plr.detectedinfo")) + { + ostringstream msg; + + msg << myConsole->leftController().name() << "/" << myConsole->rightController().name() + << " - " << myConsole->cartridge().detectedType() + << " - " << myConsole->getFormatString(); + myFrameBuffer->showMessage(msg.str()); + } } + return EmptyString; } diff --git a/src/emucore/Settings.cxx b/src/emucore/Settings.cxx index d3c388d64..0ec82b9da 100644 --- a/src/emucore/Settings.cxx +++ b/src/emucore/Settings.cxx @@ -198,6 +198,7 @@ Settings::Settings() setPermanent("plr.tm.uncompressed", 60); setPermanent("plr.tm.interval", "30f"); // = 0.5 seconds setPermanent("plr.tm.horizon", "10m"); // = ~10 minutes + setPermanent("plr.detectedinfo", "false"); setPermanent("plr.eepromaccess", "false"); // Developer settings @@ -227,6 +228,7 @@ Settings::Settings() setPermanent("dev.tm.horizon", "30s"); // = ~30 seconds // Thumb ARM emulation options setPermanent("dev.thumb.trapfatal", "true"); + setPermanent("dev.detectedinfo", "true"); setPermanent("dev.eepromaccess", "true"); } @@ -616,6 +618,7 @@ void Settings::usage() const << " mode\n" << endl << " -plr.stats <1|0> Overlay console info during emulation\n" + << " -plr.detectedinfo <1|0> Enable initial detected settings info\n" << " -plr.console <2600|7800> Select console for B/W and Pause key\n" << " handling and RAM initialization\n" << " -plr.bankrandom <1|0> Randomize the startup bank on reset\n" @@ -631,6 +634,7 @@ void Settings::usage() const << endl << " The same parameters but for developer settings mode\n" << " -dev.stats <1|0> Overlay console info during emulation\n" + << " -dev.detectedinfo <1|0> Enable initial detected settings info\n" << " -dev.console <2600|7800> Select console for B/W and Pause key\n" << " handling and RAM initialization\n" << " -dev.bankrandom <1|0> Randomize the startup bank on reset\n" diff --git a/src/gui/DeveloperDialog.cxx b/src/gui/DeveloperDialog.cxx index 288fb6a40..336c5e1e8 100644 --- a/src/gui/DeveloperDialog.cxx +++ b/src/gui/DeveloperDialog.cxx @@ -111,8 +111,15 @@ void DeveloperDialog::addEmulationTab(const GUI::Font& font) wid.push_back(r); ypos += lineHeight + VGAP * 1; - myFrameStatsWidget = new CheckboxWidget(myTab, font, HBORDER + INDENT * 1, ypos + 1, "Console info overlay"); + myFrameStatsWidget = new CheckboxWidget(myTab, font, HBORDER + INDENT * 1, ypos + 1, + "Console info overlay"); wid.push_back(myFrameStatsWidget); + + + myDetectedInfoWidget = new CheckboxWidget(myTab, font, + myFrameStatsWidget->getRight() + fontWidth * 2.5, ypos + 1, + "Detected settings info"); + wid.push_back(myDetectedInfoWidget); ypos += lineHeight + VGAP; // 2600/7800 mode @@ -611,6 +618,7 @@ void DeveloperDialog::loadSettings(SettingsSet set) const string& prefix = devSettings ? "dev." : "plr."; myFrameStats[set] = instance().settings().getBool(prefix + "stats"); + myDetectedInfo[set] = instance().settings().getBool(prefix + "detectedinfo"); myConsole[set] = instance().settings().getString(prefix + "console") == "7800" ? 1 : 0; // Randomization myRandomBank[set] = instance().settings().getBool(prefix + "bankrandom"); @@ -662,6 +670,7 @@ void DeveloperDialog::saveSettings(SettingsSet set) const string& prefix = devSettings ? "dev." : "plr."; instance().settings().setValue(prefix + "stats", myFrameStats[set]); + instance().settings().setValue(prefix + "detectedinfo", myDetectedInfo[set]); instance().settings().setValue(prefix + "console", myConsole[set] == 1 ? "7800" : "2600"); if(instance().hasConsole()) instance().eventHandler().set7800Mode(); @@ -724,6 +733,7 @@ void DeveloperDialog::saveSettings(SettingsSet set) void DeveloperDialog::getWidgetStates(SettingsSet set) { myFrameStats[set] = myFrameStatsWidget->getState(); + myDetectedInfo[set] = myDetectedInfoWidget->getState(); myConsole[set] = myConsoleWidget->getSelected() == 1; // Randomization myRandomBank[set] = myRandomBankWidget->getState(); @@ -775,6 +785,7 @@ void DeveloperDialog::getWidgetStates(SettingsSet set) void DeveloperDialog::setWidgetStates(SettingsSet set) { myFrameStatsWidget->setState(myFrameStats[set]); + myDetectedInfoWidget->setState(myDetectedInfo[set]); myConsoleWidget->setSelectedIndex(myConsole[set]); // Randomization myRandomBankWidget->setState(myRandomBank[set]); @@ -955,6 +966,7 @@ void DeveloperDialog::setDefaults() { case 0: // Emulation myFrameStats[set] = devSettings ? true : false; + myDetectedInfo[set] = devSettings ? true : false; myConsole[set] = 0; // Randomization myRandomBank[set] = devSettings ? true : false; diff --git a/src/gui/DeveloperDialog.hxx b/src/gui/DeveloperDialog.hxx index 8bd84ab91..8dd2dc4e2 100644 --- a/src/gui/DeveloperDialog.hxx +++ b/src/gui/DeveloperDialog.hxx @@ -90,6 +90,7 @@ class DeveloperDialog : public Dialog // Emulator widgets RadioButtonGroup* mySettingsGroupEmulation{nullptr}; CheckboxWidget* myFrameStatsWidget{nullptr}; + CheckboxWidget* myDetectedInfoWidget{nullptr}; PopUpWidget* myConsoleWidget{nullptr}; StaticTextWidget* myLoadingROMLabel{nullptr}; CheckboxWidget* myRandomBankWidget{nullptr}; @@ -148,6 +149,7 @@ class DeveloperDialog : public Dialog bool mySettings; // Emulator sets std::array myFrameStats; + std::array myDetectedInfo; std::array myConsole; std::array myRandomBank; std::array myRandomizeRAM;