frame stats added to Developer Setting ("dev.stats" now)

This commit is contained in:
thrust26 2017-11-23 11:35:28 +01:00
parent 72710aa323
commit e18474a5e9
6 changed files with 38 additions and 23 deletions

View File

@ -354,8 +354,9 @@ bool StateManager::saveState(Serializer& out)
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void StateManager::reset() void StateManager::reset()
{ {
myActiveMode = Mode::Off;
myRewindManager->clear(); myRewindManager->clear();
myActiveMode = myOSystem.settings().getBool("dev.rewind") ? Mode::Rewind : Mode::Off;
#if 0 #if 0
myCurrentSlot = 0; myCurrentSlot = 0;

View File

@ -528,7 +528,8 @@ FBInitStatus Console::initializeVideo(bool full)
if(fbstatus != kSuccess) if(fbstatus != kSuccess)
return fbstatus; return fbstatus;
myOSystem.frameBuffer().showFrameStats(myOSystem.settings().getBool("stats")); myOSystem.frameBuffer().showFrameStats(myOSystem.settings().getBool("dev.settings") &&
myOSystem.settings().getBool("dev.stats"));
generateColorLossPalette(); generateColorLossPalette();
} }
setPalette(myOSystem.settings().getString("palette")); setPalette(myOSystem.settings().getString("palette"));

View File

@ -368,13 +368,13 @@ void FrameBuffer::showMessage(const string& message, MessagePosition position,
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void FrameBuffer::toggleFrameStats() void FrameBuffer::toggleFrameStats()
{ {
showFrameStats(!myOSystem.settings().getBool("stats")); showFrameStats(!myOSystem.settings().getBool("dev.stats"));
} }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void FrameBuffer::showFrameStats(bool enable) void FrameBuffer::showFrameStats(bool enable)
{ {
myOSystem.settings().setValue("stats", enable); myOSystem.settings().setValue("dev.stats", enable);
myStatsMsg.enabled = enable; myStatsMsg.enabled = enable;
} }
@ -384,7 +384,7 @@ void FrameBuffer::enableMessages(bool enable)
if(enable) if(enable)
{ {
// Only re-enable frame stats if they were already enabled before // Only re-enable frame stats if they were already enabled before
myStatsMsg.enabled = myOSystem.settings().getBool("stats"); myStatsMsg.enabled = myOSystem.settings().getBool("dev.stats");
} }
else else
{ {

View File

@ -128,7 +128,6 @@ Settings::Settings(OSystem& osystem)
setInternal("loglevel", "1"); setInternal("loglevel", "1");
setInternal("logtoconsole", "0"); setInternal("logtoconsole", "0");
setInternal("avoxport", ""); setInternal("avoxport", "");
setInternal("stats", "false");
setInternal("fastscbios", "true"); setInternal("fastscbios", "true");
setInternal("threads", "false"); setInternal("threads", "false");
setExternal("romloadcount", "0"); setExternal("romloadcount", "0");
@ -147,6 +146,7 @@ Settings::Settings(OSystem& osystem)
// developer settings // developer settings
setInternal("dev.settings", "false"); setInternal("dev.settings", "false");
setInternal("dev.stats", "false");
setInternal("dev.bankrandom", "true"); setInternal("dev.bankrandom", "true");
setInternal("dev.ramrandom", "true"); setInternal("dev.ramrandom", "true");
setInternal("dev.cpurandom", "SAXYP"); setInternal("dev.cpurandom", "SAXYP");
@ -441,7 +441,6 @@ void Settings::usage() const
<< " -saport <lr|rl> How to assign virtual ports to multiple Stelladaptor/2600-daptors\n" << " -saport <lr|rl> How to assign virtual ports to multiple Stelladaptor/2600-daptors\n"
<< " -ctrlcombo <1|0> Use key combos involving the Control key (Control-Q for quit may be disabled!)\n" << " -ctrlcombo <1|0> Use key combos involving the Control key (Control-Q for quit may be disabled!)\n"
<< " -autoslot <1|0> Automatically switch to next save slot when state saving\n" << " -autoslot <1|0> Automatically switch to next save slot when state saving\n"
<< " -stats <1|0> Overlay console info during emulation\n"
<< " -fastscbios <1|0> Disable Supercharger BIOS progress loading bars\n" << " -fastscbios <1|0> Disable Supercharger BIOS progress loading bars\n"
<< " -threads <1|0> Whether to using multi-threading during emulation\n" << " -threads <1|0> Whether to using multi-threading during emulation\n"
<< " -snapsavedir <path> The directory to save snapshot files to\n" << " -snapsavedir <path> The directory to save snapshot files to\n"
@ -513,6 +512,7 @@ void Settings::usage() const
#endif #endif
<< " -dev.console <2600|7800> Select console for B/W and Pause key handling\n" << " -dev.console <2600|7800> Select console for B/W and Pause key handling\n"
<< " -dev.stats <1|0> Overlay console info during emulation\n"
<< " -dev.tiadriven <1|0> Drive unused TIA pins randomly on a read/peek\n" << " -dev.tiadriven <1|0> Drive unused TIA pins randomly on a read/peek\n"
<< " -dev.cpurandom <1|0> Randomize the contents of CPU registers on reset\n" << " -dev.cpurandom <1|0> Randomize the contents of CPU registers on reset\n"
<< " -dev.ramrandom <1|0> Randomize the contents of RAM on reset\n" << " -dev.ramrandom <1|0> Randomize the contents of RAM on reset\n"

View File

@ -54,7 +54,7 @@ DeveloperDialog::DeveloperDialog(OSystem& osystem, DialogContainer& parent,
// Set real dimensions // Set real dimensions
_w = std::min(51 * fontWidth + 10, max_w); _w = std::min(51 * fontWidth + 10, max_w);
_h = std::min(14 * (lineHeight + 4) + 14, max_h); _h = std::min(15 * (lineHeight + 4) + 14, max_h);
WidgetArray wid; WidgetArray wid;
@ -102,6 +102,11 @@ void DeveloperDialog::addEmulationTab(const GUI::Font& font)
wid.push_back(myDevSettings); wid.push_back(myDevSettings);
ypos += lineHeight + VGAP; ypos += lineHeight + VGAP;
myFrameStats = new CheckboxWidget(myTab, font, HBORDER + INDENT * 1, ypos, "Show frame statistics", kFrameStats);
wid.push_back(myFrameStats);
ypos += lineHeight + VGAP;
// 2600/7800 mode // 2600/7800 mode
items.clear(); items.clear();
VarList::push_back(items, "Atari 2600", "2600"); VarList::push_back(items, "Atari 2600", "2600");
@ -118,7 +123,7 @@ void DeveloperDialog::addEmulationTab(const GUI::Font& font)
wid.push_back(myLoadingROMLabel); wid.push_back(myLoadingROMLabel);
ypos += lineHeight + VGAP; ypos += lineHeight + VGAP;
myRandomBank = new CheckboxWidget(myTab, font, HBORDER + INDENT * 2, ypos + 1, "Random startup bank (TODO)"); myRandomBank = new CheckboxWidget(myTab, font, HBORDER + INDENT * 2, ypos + 1, "Random startup bank");
wid.push_back(myRandomBank); wid.push_back(myRandomBank);
ypos += lineHeight + VGAP; ypos += lineHeight + VGAP;
@ -151,17 +156,22 @@ void DeveloperDialog::addEmulationTab(const GUI::Font& font)
wid.push_back(myThumbException);*/ wid.push_back(myThumbException);*/
//ypos += (lineHeight + VGAP) * 2; //ypos += (lineHeight + VGAP) * 2;
// debug colors
myDebugColors = new CheckboxWidget(myTab, font, HBORDER + INDENT * 1, ypos + 1, "Debug colors");
wid.push_back(myDebugColors);
ypos += lineHeight + VGAP;
myColorLoss = new CheckboxWidget(myTab, font, HBORDER + INDENT*1, ypos + 1, "PAL color-loss"); myColorLoss = new CheckboxWidget(myTab, font, HBORDER + INDENT*1, ypos + 1, "PAL color-loss");
wid.push_back(myColorLoss); wid.push_back(myColorLoss);
ypos += lineHeight + VGAP; ypos += lineHeight + VGAP;
// TV jitter effect // TV jitter effect
myTVJitter = new CheckboxWidget(myTab, font, HBORDER + INDENT*1, ypos + 1, "Jitter/Roll Effect", kTVJitter); myTVJitter = new CheckboxWidget(myTab, font, HBORDER + INDENT*1, ypos + 1, "Jitter/Roll effect", kTVJitter);
wid.push_back(myTVJitter); wid.push_back(myTVJitter);
myTVJitterRec = new SliderWidget(myTab, font, myTVJitterRec = new SliderWidget(myTab, font,
myTVJitter->getRight()+ 16, ypos - 1, myTVJitter->getRight()+ 16, ypos - 1,
8 * fontWidth, lineHeight, "Recovery ", 8 * fontWidth, lineHeight, "recovery ",
font.getStringWidth("Recovery "), kTVJitterChanged); font.getStringWidth("recovery "), kTVJitterChanged);
myTVJitterRec->setMinValue(1); myTVJitterRec->setMaxValue(20); myTVJitterRec->setMinValue(1); myTVJitterRec->setMaxValue(20);
wid.push_back(myTVJitterRec); wid.push_back(myTVJitterRec);
@ -172,11 +182,6 @@ void DeveloperDialog::addEmulationTab(const GUI::Font& font)
wid.push_back(myTVJitterRecLabel); wid.push_back(myTVJitterRecLabel);
ypos += lineHeight + VGAP; ypos += lineHeight + VGAP;
// debug colors
myDebugColors = new CheckboxWidget(myTab, font, HBORDER + INDENT*1, ypos + 1, "Debug Colors");
wid.push_back(myDebugColors);
ypos += lineHeight + VGAP;
// How to handle undriven TIA pins // How to handle undriven TIA pins
myUndrivenPins = new CheckboxWidget(myTab, font, HBORDER + INDENT*1, ypos + 1, myUndrivenPins = new CheckboxWidget(myTab, font, HBORDER + INDENT*1, ypos + 1,
"Drive unused TIA pins randomly on a read/peek"); "Drive unused TIA pins randomly on a read/peek");
@ -207,13 +212,13 @@ void DeveloperDialog::addStatesTab(const GUI::Font& font)
wid.push_back(myDevSettings1); wid.push_back(myDevSettings1);
ypos += lineHeight + VGAP*4;*/ ypos += lineHeight + VGAP*4;*/
myContinuousRewind = new CheckboxWidget(myTab, font, HBORDER, ypos + 1, "Continuous Rewind", kRewind); myContinuousRewind = new CheckboxWidget(myTab, font, HBORDER, ypos + 1, "Continuous rewind", kRewind);
wid.push_back(myContinuousRewind); wid.push_back(myContinuousRewind);
ypos += lineHeight + VGAP; ypos += lineHeight + VGAP;
int sWidth = font.getMaxCharWidth() * 8; int sWidth = font.getMaxCharWidth() * 8;
myStateSize = new SliderWidget(myTab, font, HBORDER + INDENT, ypos - 1, sWidth, lineHeight, myStateSize = new SliderWidget(myTab, font, HBORDER + INDENT, ypos - 1, sWidth, lineHeight,
"Buffer Size (*) ", 0, kSizeChanged); "Buffer size (*) ", 0, kSizeChanged);
myStateSize->setMinValue(100); myStateSize->setMinValue(100);
myStateSize->setMaxValue(1000); myStateSize->setMaxValue(1000);
myStateSize->setStepValue(100); myStateSize->setStepValue(100);
@ -274,7 +279,7 @@ void DeveloperDialog::addDebuggerTab(const GUI::Font& font)
pwidth = font.getStringWidth("Medium"); pwidth = font.getStringWidth("Medium");
myDebuggerFontSize = myDebuggerFontSize =
new PopUpWidget(myTab, font, HBORDER, ypos + 1, pwidth, lineHeight, items, new PopUpWidget(myTab, font, HBORDER, ypos + 1, pwidth, lineHeight, items,
"Font Size ", 0, kDFontSizeChanged); "Font size ", 0, kDFontSizeChanged);
wid.push_back(myDebuggerFontSize); wid.push_back(myDebuggerFontSize);
ypos += lineHeight + 4; ypos += lineHeight + 4;
@ -287,7 +292,7 @@ void DeveloperDialog::addDebuggerTab(const GUI::Font& font)
pwidth = font.getStringWidth("Bold non-labels only"); pwidth = font.getStringWidth("Bold non-labels only");
myDebuggerFontStyle = myDebuggerFontStyle =
new PopUpWidget(myTab, font, HBORDER, ypos + 1, pwidth, lineHeight, items, new PopUpWidget(myTab, font, HBORDER, ypos + 1, pwidth, lineHeight, items,
"Font Style ", 0); "Font style ", 0);
wid.push_back(myDebuggerFontStyle); wid.push_back(myDebuggerFontStyle);
ypos += lineHeight + VGAP * 4; ypos += lineHeight + VGAP * 4;
@ -295,7 +300,7 @@ void DeveloperDialog::addDebuggerTab(const GUI::Font& font)
pwidth = font.getMaxCharWidth() * 8; pwidth = font.getMaxCharWidth() * 8;
// Debugger width and height // Debugger width and height
myDebuggerWidthSlider = new SliderWidget(myTab, font, xpos, ypos-1, pwidth, myDebuggerWidthSlider = new SliderWidget(myTab, font, xpos, ypos-1, pwidth,
lineHeight, "Debugger Width ", lineHeight, "Debugger width ",
0, kDWidthChanged); 0, kDWidthChanged);
myDebuggerWidthSlider->setMinValue(DebuggerDialog::kSmallFontMinW); myDebuggerWidthSlider->setMinValue(DebuggerDialog::kSmallFontMinW);
myDebuggerWidthSlider->setMaxValue(ds.w); myDebuggerWidthSlider->setMaxValue(ds.w);
@ -309,7 +314,7 @@ void DeveloperDialog::addDebuggerTab(const GUI::Font& font)
ypos += lineHeight + VGAP; ypos += lineHeight + VGAP;
myDebuggerHeightSlider = new SliderWidget(myTab, font, xpos, ypos-1, pwidth, myDebuggerHeightSlider = new SliderWidget(myTab, font, xpos, ypos-1, pwidth,
lineHeight, "Debugger Height ", lineHeight, "Debugger height ",
0, kDHeightChanged); 0, kDHeightChanged);
myDebuggerHeightSlider->setMinValue(DebuggerDialog::kSmallFontMinH); myDebuggerHeightSlider->setMinValue(DebuggerDialog::kSmallFontMinH);
myDebuggerHeightSlider->setMaxValue(ds.h); myDebuggerHeightSlider->setMaxValue(ds.h);
@ -371,6 +376,7 @@ void DeveloperDialog::loadConfig()
{ {
myDevSettings->setState(instance().settings().getBool("dev.settings")); myDevSettings->setState(instance().settings().getBool("dev.settings"));
myFrameStats->setState(instance().settings().getBool("dev.stats"));
myConsole->setSelectedIndex(instance().settings().getString("dev.console") == "7800" ? 1 : 0); myConsole->setSelectedIndex(instance().settings().getString("dev.console") == "7800" ? 1 : 0);
myRandomBank->setState(instance().settings().getBool("dev.bankrandom")); myRandomBank->setState(instance().settings().getBool("dev.bankrandom"));
myRandomizeRAM->setState(instance().settings().getBool("dev.ramrandom")); myRandomizeRAM->setState(instance().settings().getBool("dev.ramrandom"));
@ -439,6 +445,9 @@ void DeveloperDialog::saveConfig()
bool devSettings = myDevSettings->getState(); bool devSettings = myDevSettings->getState();
instance().settings().setValue("dev.settings", devSettings); instance().settings().setValue("dev.settings", devSettings);
instance().settings().setValue("dev.stats", myFrameStats->getState());
instance().frameBuffer().showFrameStats(myFrameStats->getState());
bool is7800 = myConsole->getSelected() == 1; bool is7800 = myConsole->getSelected() == 1;
instance().settings().setValue("dev.console", is7800 ? "7800" : "2600"); instance().settings().setValue("dev.console", is7800 ? "7800" : "2600");
@ -545,6 +554,7 @@ void DeveloperDialog::setDefaults()
switch(myTab->getActiveTab()) switch(myTab->getActiveTab())
{ {
case 0: case 0:
myFrameStats->setState(true);
myConsole->setSelectedIndex(0); myConsole->setSelectedIndex(0);
myRandomBank->setState(true); myRandomBank->setState(true);
myRandomizeRAM->setState(true); myRandomizeRAM->setState(true);
@ -683,6 +693,7 @@ void DeveloperDialog::handleDeveloperOptions()
{ {
bool enable = myDevSettings->getState(); bool enable = myDevSettings->getState();
myFrameStats->setEnabled(enable);
myConsole->setEnabled(enable); myConsole->setEnabled(enable);
// CPU // CPU
myLoadingROMLabel->setEnabled(enable); myLoadingROMLabel->setEnabled(enable);

View File

@ -53,6 +53,7 @@ class DeveloperDialog : public Dialog
enum enum
{ {
kDevSettings = 'DVst', kDevSettings = 'DVst',
kFrameStats = 'DVfs',
kConsole = 'DVco', kConsole = 'DVco',
kRandRAMID = 'DVrm', kRandRAMID = 'DVrm',
kRandCPUID = 'DVcp', kRandCPUID = 'DVcp',
@ -84,6 +85,7 @@ class DeveloperDialog : public Dialog
TabWidget* myTab; TabWidget* myTab;
// Emulator // Emulator
CheckboxWidget* myDevSettings; CheckboxWidget* myDevSettings;
CheckboxWidget* myFrameStats;
PopUpWidget* myConsole; PopUpWidget* myConsole;
StaticTextWidget* myLoadingROMLabel; StaticTextWidget* myLoadingROMLabel;
CheckboxWidget* myRandomBank; CheckboxWidget* myRandomBank;