mirror of https://github.com/stella-emu/stella.git
frame stats added to Developer Setting ("dev.stats" now)
This commit is contained in:
parent
72710aa323
commit
e18474a5e9
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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"));
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue