1
0
mirror of https://github.com/blawar/GLideN64.git synced 2024-06-25 22:09:35 +00:00

Add config option for debug dump.

This commit is contained in:
Sergey Lipskiy 2017-06-25 12:53:37 +07:00
parent c907c3013a
commit 2f88a695a6
8 changed files with 95 additions and 1 deletions

View File

@ -115,4 +115,6 @@ void Config::resetToDefaults()
onScreenDisplay.fps = 0;
onScreenDisplay.percent = 0;
onScreenDisplay.pos = posBottomLeft;
debug.dumpMode = 0;
}

View File

@ -173,6 +173,10 @@ struct Config
u32 pos;
} onScreenDisplay;
struct {
u32 dumpMode;
} debug;
void resetToDefaults();
};

View File

@ -103,6 +103,9 @@ void EndDump()
void SwitchDump(u32 _mode)
{
if (_mode == 0)
return;
if (!g_log)
StartDump(_mode);
else

View File

@ -10,6 +10,7 @@
#include <QRegExpValidator>
#include "../Config.h"
#include "../DebugDump.h"
#include "ui_configDialog.h"
#include "Settings.h"
#include "ConfigDialog.h"
@ -288,6 +289,19 @@ void ConfigDialog::_init()
ui->buttonBox->button(QDialogButtonBox::Ok)->setText(tr("OK"));
ui->buttonBox->button(QDialogButtonBox::Cancel)->setText(tr("Cancel"));
ui->buttonBox->button(QDialogButtonBox::RestoreDefaults)->setText(tr("Restore Defaults"));
ui->dumpLowCheckBox->setChecked((config.debug.dumpMode & DEBUG_LOW) != 0);
ui->dumpNormalCheckBox->setChecked((config.debug.dumpMode & DEBUG_NORMAL) != 0);
ui->dumpDetailCheckBox->setChecked((config.debug.dumpMode & DEBUG_DETAIL) != 0);
#ifndef DEBUG_DUMP
for (int i = 0; i < ui->tabWidget->count(); ++i) {
if ("Debug" == ui->tabWidget->tabText(i)) {
ui->tabWidget->removeTab(i);
break;
}
}
#endif
}
void ConfigDialog::_getTranslations(QStringList & _translationFiles) const
@ -502,6 +516,14 @@ void ConfigDialog::accept()
config.onScreenDisplay.vis = ui->visCheckBox->isChecked() ? 1 : 0;
config.onScreenDisplay.percent = ui->percentCheckBox->isChecked() ? 1 : 0;
config.debug.dumpMode = 0;
if (ui->dumpLowCheckBox->isChecked())
config.debug.dumpMode |= DEBUG_LOW;
if (ui->dumpNormalCheckBox->isChecked())
config.debug.dumpMode |= DEBUG_NORMAL;
if (ui->dumpDetailCheckBox->isChecked())
config.debug.dumpMode |= DEBUG_DETAIL;
writeSettings(m_strIniPath);
QDialog::accept();

View File

@ -116,6 +116,10 @@ void _loadSettings(QSettings & settings)
config.onScreenDisplay.percent = settings.value("showPercent", config.onScreenDisplay.percent).toInt();
config.onScreenDisplay.pos = settings.value("osdPos", config.onScreenDisplay.pos).toInt();
settings.endGroup();
settings.beginGroup("debug");
config.debug.dumpMode = settings.value("dumpMode", config.debug.dumpMode).toInt();
settings.endGroup();
}
void loadSettings(const QString & _strIniFolder)
@ -232,6 +236,10 @@ void writeSettings(const QString & _strIniFolder)
settings.setValue("showPercent", config.onScreenDisplay.percent);
settings.setValue("osdPos", config.onScreenDisplay.pos);
settings.endGroup();
settings.beginGroup("debug");
settings.setValue("dumpMode", config.debug.dumpMode);
settings.endGroup();
}
static

View File

@ -3729,6 +3729,51 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="debugTab">
<attribute name="title">
<string>Debug</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_36">
<item>
<layout class="QVBoxLayout" name="verticalLayout_31">
<item>
<widget class="QCheckBox" name="dumpLowCheckBox">
<property name="text">
<string>dump low-level info</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="dumpNormalCheckBox">
<property name="text">
<string>dump display list commands</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="dumpDetailCheckBox">
<property name="text">
<string>dump detailed info (matrices, vertices and so on).</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer_10">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget>
</item>
<item>

View File

@ -119,7 +119,7 @@ void VI_UpdateScreen()
g_debugger.checkDebugState();
if (isKeyPressed(G64_VK_G, 0x0001)) {
SwitchDump(DEBUG_LOW|DEBUG_NORMAL);
SwitchDump(config.debug.dumpMode);
}
bool bVIUpdated = false;

View File

@ -185,6 +185,12 @@ bool Config_SetDefault()
"Counters position (1=top left, 2=top center, 4=top right, 8=bottom left, 16=bottom center, 32=bottom right)");
assert(res == M64ERR_SUCCESS);
#ifdef DEBUG_DUMP
//#Debug settings
res = ConfigSetDefaultInt(g_configVideoGliden64, "DebugDumpMode", config.debug.dumpMode, "Enable debug dump. Set 3 to normal or 7 to detailed dump.");
assert(res == M64ERR_SUCCESS);
#endif
return ConfigSaveSection("Video-GLideN64") == M64ERR_SUCCESS;
}
@ -417,6 +423,10 @@ void Config_LoadConfig()
config.onScreenDisplay.percent = ConfigGetParamBool(g_configVideoGliden64, "ShowPercent");
config.onScreenDisplay.pos = ConfigGetParamInt(g_configVideoGliden64, "CountersPos");
#ifdef DEBUG_DUMP
config.debug.dumpMode = ConfigGetParamInt(g_configVideoGliden64, "DebugDumpMode");
#endif
if (config.generalEmulation.enableCustomSettings)
Config_LoadCustomConfig();
config.generalEmulation.hacks = hacks;