diff --git a/src/GLideNUI/ConfigDialog.cpp b/src/GLideNUI/ConfigDialog.cpp index bcd5e8ab0d..e3ffb9ba42 100644 --- a/src/GLideNUI/ConfigDialog.cpp +++ b/src/GLideNUI/ConfigDialog.cpp @@ -144,6 +144,7 @@ void ConfigDialog::_init() ui->aspectAdjustRadioButton->setChecked(true); break; } + ui->resolutionFactorSlider->setValue(config.frameBufferEmulation.nativeResFactor); ui->copyAuxBuffersCheckBox->setChecked(config.frameBufferEmulation.copyAuxToRDRAM != 0); ui->fbInfoDisableCheckBox->setChecked(config.frameBufferEmulation.fbInfoDisabled != 0); ui->readColorChunkCheckBox->setChecked(config.frameBufferEmulation.fbInfoReadColorChunk != 0); @@ -323,6 +324,7 @@ void ConfigDialog::accept() config.frameBufferEmulation.aspect = Config::a169; else if (ui->aspectAdjustRadioButton->isChecked()) config.frameBufferEmulation.aspect = Config::aAdjust; + config.frameBufferEmulation.nativeResFactor = ui->resolutionFactorSlider->value(); config.frameBufferEmulation.copyAuxToRDRAM = ui->copyAuxBuffersCheckBox->isChecked() ? 1 : 0; config.frameBufferEmulation.fbInfoDisabled = ui->fbInfoDisableCheckBox->isChecked() ? 1: 0; config.frameBufferEmulation.fbInfoReadColorChunk = ui->readColorChunkCheckBox->isChecked() ? 1 : 0; diff --git a/src/GLideNUI/Settings.cpp b/src/GLideNUI/Settings.cpp index 885e272ba6..1d559d14e5 100644 --- a/src/GLideNUI/Settings.cpp +++ b/src/GLideNUI/Settings.cpp @@ -47,6 +47,7 @@ void _loadSettings(QSettings & settings) settings.beginGroup("frameBufferEmulation"); config.frameBufferEmulation.enable = settings.value("enable", config.frameBufferEmulation.enable).toInt(); config.frameBufferEmulation.aspect = settings.value("aspect", config.frameBufferEmulation.aspect).toInt(); + config.frameBufferEmulation.nativeResFactor = settings.value("nativeResFactor", config.frameBufferEmulation.nativeResFactor).toInt(); config.frameBufferEmulation.bufferSwapMode = settings.value("bufferSwapMode", config.frameBufferEmulation.bufferSwapMode).toInt(); config.frameBufferEmulation.N64DepthCompare = settings.value("N64DepthCompare", config.frameBufferEmulation.N64DepthCompare).toInt(); config.frameBufferEmulation.copyAuxToRDRAM = settings.value("copyAuxToRDRAM", config.frameBufferEmulation.copyAuxToRDRAM).toInt(); @@ -160,6 +161,7 @@ void writeSettings(const QString & _strIniFolder) settings.beginGroup("frameBufferEmulation"); settings.setValue("enable", config.frameBufferEmulation.enable); settings.setValue("aspect", config.frameBufferEmulation.aspect); + settings.setValue("nativeResFactor", config.frameBufferEmulation.nativeResFactor); settings.setValue("bufferSwapMode", config.frameBufferEmulation.bufferSwapMode); settings.setValue("N64DepthCompare", config.frameBufferEmulation.N64DepthCompare); settings.setValue("copyAuxToRDRAM", config.frameBufferEmulation.copyAuxToRDRAM); diff --git a/src/GLideNUI/configDialog.ui b/src/GLideNUI/configDialog.ui index a221eac96a..7e10f56f5b 100644 --- a/src/GLideNUI/configDialog.ui +++ b/src/GLideNUI/configDialog.ui @@ -171,6 +171,73 @@ + + + + + + <html><head/><body><p><span style=" font-weight:600;">Render at constant factor of native resolution.</span></p><p>If frame buffer emulation enabled and factor is not zero, internal frame buffer size will be that factor of native N64 resolution. The buffer will be scaled to screen resolution when rendered to screen. If factor is zero (default), internal buffer size is equal to screen size. If factor is 1, the game will be rendered in native resolution and then up-scaled to screen resolution.</p></body></html> + + + <html><head/><body><p>Render at constant factor of native resolution<span style=" vertical-align:super;">*</span>:</p></body></html> + + + + + + + + + <html><head/><body><p><span style=" font-weight:600;">Render at constant factor of native resolution.</span></p><p>If frame buffer emulation enabled and factor is not zero, internal frame buffer size will be that factor of native N64 resolution. The buffer will be scaled to screen resolution when rendered to screen. If factor is zero (default), internal buffer size is equal to screen size. If factor is 1, the game will be rendered in native resolution and then up-scaled to screen resolution.</p></body></html> + + + 16 + + + 2 + + + Qt::Horizontal + + + QSlider::TicksBelow + + + 1 + + + + + + + 0 + + + + + <html><head/><body><p><span style=" font-weight:600;">Render at constant factor of native resolution.</span></p><p>If frame buffer emulation enabled and factor is not zero, internal frame buffer size will be that factor of native N64 resolution. The buffer will be scaled to screen resolution when rendered to screen. If factor is zero (default), internal buffer size is equal to screen size. If factor is 1, the game will be rendered in native resolution and then up-scaled to screen resolution.</p></body></html> + + + 0 + + + + + + + <html><head/><body><p><span style=" font-weight:600;">Render at constant factor of native resolution.</span></p><p>If frame buffer emulation enabled and factor is not zero, internal frame buffer size will be that factor of native N64 resolution. The buffer will be scaled to screen resolution when rendered to screen. If factor is zero (default), internal buffer size is equal to screen size. If factor is 1, the game will be rendered in native resolution and then up-scaled to screen resolution.</p></body></html> + + + X + + + + + + + + + @@ -212,14 +279,14 @@ - 0 + 0 - X + X @@ -316,14 +383,14 @@ - 0 + 0 - X + X @@ -1591,12 +1658,12 @@ setNum(int) - 92 - 291 + 107 + 347 459 - 290 + 346 @@ -1607,12 +1674,12 @@ setNum(int) - 92 - 187 + 107 + 243 459 - 186 + 242 @@ -1680,12 +1747,28 @@ + + resolutionFactorSlider + valueChanged(int) + factorLabelVal + setNum(int) + + + 400 + 168 + + + 457 + 174 + + + - - - + + +