mirror of https://github.com/stella-emu/stella.git
added option to display detected settings info when a ROM is loaded (resolves #684)
This commit is contained in:
parent
28751b0732
commit
3cc7d9b655
|
@ -35,6 +35,8 @@
|
||||||
|
|
||||||
* Added option to select the audio device.
|
* 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.
|
* Replaced "Re-disassemble" with "Disassemble @ current line" in debugger.
|
||||||
|
|
||||||
* Fix bug when taking fullscreen snapshots; the dimensions were sometimes
|
* Fix bug when taking fullscreen snapshots; the dimensions were sometimes
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 5.1 KiB |
Binary file not shown.
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 5.0 KiB |
|
@ -2893,6 +2893,9 @@
|
||||||
</tr><tr>
|
</tr><tr>
|
||||||
<td><pre>-<plr.|dev.>stats <1|0></pre></td>
|
<td><pre>-<plr.|dev.>stats <1|0></pre></td>
|
||||||
<td>Overlay console info on the TIA image during emulation.</td>
|
<td>Overlay console info on the TIA image during emulation.</td>
|
||||||
|
</tr><tr>
|
||||||
|
<td><pre>-<plr.|dev.>detectedinfo <1|0></pre></td>
|
||||||
|
<td>Display detected settings info when a ROM is loaded.</td>
|
||||||
</tr><tr>
|
</tr><tr>
|
||||||
<td><pre>-<plr.|dev.>console <2600|7800></pre></td>
|
<td><pre>-<plr.|dev.>console <2600|7800></pre></td>
|
||||||
<td>Select console for B/W and Pause key handling and RAM initialization.</td>
|
<td>Select console for B/W and Pause key handling and RAM initialization.</td>
|
||||||
|
@ -3606,6 +3609,7 @@
|
||||||
<tr><th>Item</th><th>Brief description</th><th>For more information,<br>see <a href="#CommandLine">CommandLine</a></th></tr>
|
<tr><th>Item</th><th>Brief description</th><th>For more information,<br>see <a href="#CommandLine">CommandLine</a></th></tr>
|
||||||
<tr><td>Player/Developer settings</td><td>Selects the active settings set</td><td>-dev.settings</td></tr>
|
<tr><td>Player/Developer settings</td><td>Selects the active settings set</td><td>-dev.settings</td></tr>
|
||||||
<tr><td>Console info overlay</td><td>Overlay console info on the TIA image during emulation.</td><td>-plr.stats<br/>-dev.stats</td></tr>
|
<tr><td>Console info overlay</td><td>Overlay console info on the TIA image during emulation.</td><td>-plr.stats<br/>-dev.stats</td></tr>
|
||||||
|
<tr><td>Detected settings info</td><td>Display detected settings when a ROM is loaded.</td><td>-plr.detectedinfo<br/>-dev.detectedinfo</td></tr>
|
||||||
<tr><td>Console</td><td>Select the console type, this affects Color/B&W/Pause key emulation and zero-page RAM initialization</td><td>-plr.console <br/>-dev.console</td></tr>
|
<tr><td>Console</td><td>Select the console type, this affects Color/B&W/Pause key emulation and zero-page RAM initialization</td><td>-plr.console <br/>-dev.console</td></tr>
|
||||||
<tr><td>Random startup bank</td><td>Randomize the startup bank (only for selected bankswitch types)</td><td>-plr.bankrandom<br/>-dev.bankrandom</td></tr>
|
<tr><td>Random startup bank</td><td>Randomize the startup bank (only for selected bankswitch types)</td><td>-plr.bankrandom<br/>-dev.bankrandom</td></tr>
|
||||||
<tr><td>Randomize zero-page ...</td><td>When loading a ROM, randomize all RAM content instead of initializing with all zeroes (for 'Console' = 'Atari 2600' only)</td><td>-plr.ramrandom<br/>-dev.ramrandom</td></tr>
|
<tr><td>Randomize zero-page ...</td><td>When loading a ROM, randomize all RAM content instead of initializing with all zeroes (for 'Console' = 'Atari 2600' only)</td><td>-plr.ramrandom<br/>-dev.ramrandom</td></tr>
|
||||||
|
|
|
@ -451,8 +451,8 @@ string OSystem::createConsole(const FilesystemNode& rom, const string& md5sum,
|
||||||
myConsole->initializeAudio();
|
myConsole->initializeAudio();
|
||||||
|
|
||||||
string saveOnExit = settings().getString("saveonexit");
|
string saveOnExit = settings().getString("saveonexit");
|
||||||
bool activeTM = settings().getBool(
|
bool devSettings = settings().getBool("dev.settings");
|
||||||
settings().getBool("dev.settings") ? "dev.timemachine" : "plr.timemachine");
|
bool activeTM = settings().getBool(devSettings ? "dev.timemachine" : "plr.timemachine");
|
||||||
|
|
||||||
if (saveOnExit == "all" && activeTM)
|
if (saveOnExit == "all" && activeTM)
|
||||||
myEventHandler->handleEvent(Event::LoadAllStates);
|
myEventHandler->handleEvent(Event::LoadAllStates);
|
||||||
|
@ -483,7 +483,19 @@ string OSystem::createConsole(const FilesystemNode& rom, const string& md5sum,
|
||||||
if(mySettings->getBool("debug"))
|
if(mySettings->getBool("debug"))
|
||||||
myEventHandler->enterDebugMode();
|
myEventHandler->enterDebugMode();
|
||||||
#endif
|
#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;
|
return EmptyString;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -198,6 +198,7 @@ Settings::Settings()
|
||||||
setPermanent("plr.tm.uncompressed", 60);
|
setPermanent("plr.tm.uncompressed", 60);
|
||||||
setPermanent("plr.tm.interval", "30f"); // = 0.5 seconds
|
setPermanent("plr.tm.interval", "30f"); // = 0.5 seconds
|
||||||
setPermanent("plr.tm.horizon", "10m"); // = ~10 minutes
|
setPermanent("plr.tm.horizon", "10m"); // = ~10 minutes
|
||||||
|
setPermanent("plr.detectedinfo", "false");
|
||||||
setPermanent("plr.eepromaccess", "false");
|
setPermanent("plr.eepromaccess", "false");
|
||||||
|
|
||||||
// Developer settings
|
// Developer settings
|
||||||
|
@ -227,6 +228,7 @@ Settings::Settings()
|
||||||
setPermanent("dev.tm.horizon", "30s"); // = ~30 seconds
|
setPermanent("dev.tm.horizon", "30s"); // = ~30 seconds
|
||||||
// Thumb ARM emulation options
|
// Thumb ARM emulation options
|
||||||
setPermanent("dev.thumb.trapfatal", "true");
|
setPermanent("dev.thumb.trapfatal", "true");
|
||||||
|
setPermanent("dev.detectedinfo", "true");
|
||||||
setPermanent("dev.eepromaccess", "true");
|
setPermanent("dev.eepromaccess", "true");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -616,6 +618,7 @@ void Settings::usage() const
|
||||||
<< " mode\n"
|
<< " mode\n"
|
||||||
<< endl
|
<< endl
|
||||||
<< " -plr.stats <1|0> Overlay console info during emulation\n"
|
<< " -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"
|
<< " -plr.console <2600|7800> Select console for B/W and Pause key\n"
|
||||||
<< " handling and RAM initialization\n"
|
<< " handling and RAM initialization\n"
|
||||||
<< " -plr.bankrandom <1|0> Randomize the startup bank on reset\n"
|
<< " -plr.bankrandom <1|0> Randomize the startup bank on reset\n"
|
||||||
|
@ -631,6 +634,7 @@ void Settings::usage() const
|
||||||
<< endl
|
<< endl
|
||||||
<< " The same parameters but for developer settings mode\n"
|
<< " The same parameters but for developer settings mode\n"
|
||||||
<< " -dev.stats <1|0> Overlay console info during emulation\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"
|
<< " -dev.console <2600|7800> Select console for B/W and Pause key\n"
|
||||||
<< " handling and RAM initialization\n"
|
<< " handling and RAM initialization\n"
|
||||||
<< " -dev.bankrandom <1|0> Randomize the startup bank on reset\n"
|
<< " -dev.bankrandom <1|0> Randomize the startup bank on reset\n"
|
||||||
|
|
|
@ -111,8 +111,15 @@ void DeveloperDialog::addEmulationTab(const GUI::Font& font)
|
||||||
wid.push_back(r);
|
wid.push_back(r);
|
||||||
ypos += lineHeight + VGAP * 1;
|
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);
|
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;
|
ypos += lineHeight + VGAP;
|
||||||
|
|
||||||
// 2600/7800 mode
|
// 2600/7800 mode
|
||||||
|
@ -611,6 +618,7 @@ void DeveloperDialog::loadSettings(SettingsSet set)
|
||||||
const string& prefix = devSettings ? "dev." : "plr.";
|
const string& prefix = devSettings ? "dev." : "plr.";
|
||||||
|
|
||||||
myFrameStats[set] = instance().settings().getBool(prefix + "stats");
|
myFrameStats[set] = instance().settings().getBool(prefix + "stats");
|
||||||
|
myDetectedInfo[set] = instance().settings().getBool(prefix + "detectedinfo");
|
||||||
myConsole[set] = instance().settings().getString(prefix + "console") == "7800" ? 1 : 0;
|
myConsole[set] = instance().settings().getString(prefix + "console") == "7800" ? 1 : 0;
|
||||||
// Randomization
|
// Randomization
|
||||||
myRandomBank[set] = instance().settings().getBool(prefix + "bankrandom");
|
myRandomBank[set] = instance().settings().getBool(prefix + "bankrandom");
|
||||||
|
@ -662,6 +670,7 @@ void DeveloperDialog::saveSettings(SettingsSet set)
|
||||||
const string& prefix = devSettings ? "dev." : "plr.";
|
const string& prefix = devSettings ? "dev." : "plr.";
|
||||||
|
|
||||||
instance().settings().setValue(prefix + "stats", myFrameStats[set]);
|
instance().settings().setValue(prefix + "stats", myFrameStats[set]);
|
||||||
|
instance().settings().setValue(prefix + "detectedinfo", myDetectedInfo[set]);
|
||||||
instance().settings().setValue(prefix + "console", myConsole[set] == 1 ? "7800" : "2600");
|
instance().settings().setValue(prefix + "console", myConsole[set] == 1 ? "7800" : "2600");
|
||||||
if(instance().hasConsole())
|
if(instance().hasConsole())
|
||||||
instance().eventHandler().set7800Mode();
|
instance().eventHandler().set7800Mode();
|
||||||
|
@ -724,6 +733,7 @@ void DeveloperDialog::saveSettings(SettingsSet set)
|
||||||
void DeveloperDialog::getWidgetStates(SettingsSet set)
|
void DeveloperDialog::getWidgetStates(SettingsSet set)
|
||||||
{
|
{
|
||||||
myFrameStats[set] = myFrameStatsWidget->getState();
|
myFrameStats[set] = myFrameStatsWidget->getState();
|
||||||
|
myDetectedInfo[set] = myDetectedInfoWidget->getState();
|
||||||
myConsole[set] = myConsoleWidget->getSelected() == 1;
|
myConsole[set] = myConsoleWidget->getSelected() == 1;
|
||||||
// Randomization
|
// Randomization
|
||||||
myRandomBank[set] = myRandomBankWidget->getState();
|
myRandomBank[set] = myRandomBankWidget->getState();
|
||||||
|
@ -775,6 +785,7 @@ void DeveloperDialog::getWidgetStates(SettingsSet set)
|
||||||
void DeveloperDialog::setWidgetStates(SettingsSet set)
|
void DeveloperDialog::setWidgetStates(SettingsSet set)
|
||||||
{
|
{
|
||||||
myFrameStatsWidget->setState(myFrameStats[set]);
|
myFrameStatsWidget->setState(myFrameStats[set]);
|
||||||
|
myDetectedInfoWidget->setState(myDetectedInfo[set]);
|
||||||
myConsoleWidget->setSelectedIndex(myConsole[set]);
|
myConsoleWidget->setSelectedIndex(myConsole[set]);
|
||||||
// Randomization
|
// Randomization
|
||||||
myRandomBankWidget->setState(myRandomBank[set]);
|
myRandomBankWidget->setState(myRandomBank[set]);
|
||||||
|
@ -955,6 +966,7 @@ void DeveloperDialog::setDefaults()
|
||||||
{
|
{
|
||||||
case 0: // Emulation
|
case 0: // Emulation
|
||||||
myFrameStats[set] = devSettings ? true : false;
|
myFrameStats[set] = devSettings ? true : false;
|
||||||
|
myDetectedInfo[set] = devSettings ? true : false;
|
||||||
myConsole[set] = 0;
|
myConsole[set] = 0;
|
||||||
// Randomization
|
// Randomization
|
||||||
myRandomBank[set] = devSettings ? true : false;
|
myRandomBank[set] = devSettings ? true : false;
|
||||||
|
|
|
@ -90,6 +90,7 @@ class DeveloperDialog : public Dialog
|
||||||
// Emulator widgets
|
// Emulator widgets
|
||||||
RadioButtonGroup* mySettingsGroupEmulation{nullptr};
|
RadioButtonGroup* mySettingsGroupEmulation{nullptr};
|
||||||
CheckboxWidget* myFrameStatsWidget{nullptr};
|
CheckboxWidget* myFrameStatsWidget{nullptr};
|
||||||
|
CheckboxWidget* myDetectedInfoWidget{nullptr};
|
||||||
PopUpWidget* myConsoleWidget{nullptr};
|
PopUpWidget* myConsoleWidget{nullptr};
|
||||||
StaticTextWidget* myLoadingROMLabel{nullptr};
|
StaticTextWidget* myLoadingROMLabel{nullptr};
|
||||||
CheckboxWidget* myRandomBankWidget{nullptr};
|
CheckboxWidget* myRandomBankWidget{nullptr};
|
||||||
|
@ -148,6 +149,7 @@ class DeveloperDialog : public Dialog
|
||||||
bool mySettings;
|
bool mySettings;
|
||||||
// Emulator sets
|
// Emulator sets
|
||||||
std::array<bool, 2> myFrameStats;
|
std::array<bool, 2> myFrameStats;
|
||||||
|
std::array<bool, 2> myDetectedInfo;
|
||||||
std::array<int, 2> myConsole;
|
std::array<int, 2> myConsole;
|
||||||
std::array<bool, 2> myRandomBank;
|
std::array<bool, 2> myRandomBank;
|
||||||
std::array<bool, 2> myRandomizeRAM;
|
std::array<bool, 2> myRandomizeRAM;
|
||||||
|
|
Loading…
Reference in New Issue