From 351e292579fb9858377f31721a3cdcaa0ab02be7 Mon Sep 17 00:00:00 2001 From: bsnesFan <79463574+bsnesFan@users.noreply.github.com> Date: Mon, 22 Feb 2021 15:45:45 +0100 Subject: [PATCH 1/5] Update settings.hpp --- bsnes/target-bsnes/settings/settings.hpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/bsnes/target-bsnes/settings/settings.hpp b/bsnes/target-bsnes/settings/settings.hpp index 5108352d5..8a6caca15 100644 --- a/bsnes/target-bsnes/settings/settings.hpp +++ b/bsnes/target-bsnes/settings/settings.hpp @@ -389,6 +389,12 @@ struct EnhancementSettings : VerticalLayout { // Widget spacer{this, Size{~0, ~0}}; Label note{this, Size{~0, 0}}; + // + Label ppuModeLabel{this, Size{~0, 0}, 0}; + Label ppuModeRequirements{this, Size{~0, 0}}; + HorizontalLayout modeLayout{this, Size{~0, 0}}; + Button accuracyMode{&modeLayout, Size{0, 0}}; + Button performanceMode{&modeLayout, Size{0, 0}}; }; struct CompatibilitySettings : VerticalLayout { From 5179005a0ce2f483b373381ef7c967486a53c855 Mon Sep 17 00:00:00 2001 From: bsnesFan <79463574+bsnesFan@users.noreply.github.com> Date: Mon, 22 Feb 2021 15:46:44 +0100 Subject: [PATCH 2/5] Update enhancements.cpp --- bsnes/target-bsnes/settings/enhancements.cpp | 52 +++++++++++++++++++- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/bsnes/target-bsnes/settings/enhancements.cpp b/bsnes/target-bsnes/settings/enhancements.cpp index d3ed73dff..0302632b8 100644 --- a/bsnes/target-bsnes/settings/enhancements.cpp +++ b/bsnes/target-bsnes/settings/enhancements.cpp @@ -133,6 +133,54 @@ auto EnhancementSettings::create() -> void { }).setChecked(settings.emulator.hack.hotfixes).onToggle([&] { settings.emulator.hack.hotfixes = hotfixes.checked(); }); - - note.setText("Note: some settings do not take effect until after reloading games."); + + + ppuModeLabel.setText("Mode Presets:").setFont(Font().setBold()); + ppuModeRequirements.setText( + "Accuracy Mode: Maximum hardware accuracy, disables performance shortcuts and all enhancements.\n" + "Performance Mode: Best compromise between hardware accuracy and performance." + ); + accuracyMode.setText("Accuracy Mode").onActivate([&] { + runAhead0.setChecked(); settings.emulator.runAhead.frames = 0; + cpuClock.setPosition(0); cpuClock.doChange(); + sa1Clock.setPosition(0); sa1Clock.doChange(); + sfxClock.setPosition(0); sfxClock.doChange(); + fastPPU.setChecked(false).doToggle(); + fastDSP.setChecked(false).doToggle(); + cubicInterpolation.setChecked(false).doToggle(); + coprocessorDelayedSyncOption.setChecked(false).doToggle(); + coprocessorPreferHLEOption.setChecked(false).doToggle(); + hotfixes.setChecked(false).doToggle(); + + if(!emulator->loaded()) return; + MessageDialog().setAlignment(settingsWindow).setTitle("Success").setText({ + "Accuracy Mode applied.\n" + "You must reload the game in order for all changes to take effect." + }).information(); + }); + + performanceMode.setText("Performance Mode").onActivate([&] { + runAhead0.setChecked(); settings.emulator.runAhead.frames = 0; + cpuClock.setPosition(0); cpuClock.doChange(); + sa1Clock.setPosition(0); sa1Clock.doChange(); + sfxClock.setPosition(0); sfxClock.doChange(); + fastPPU.setChecked(true).doToggle(); + deinterlace.setChecked(true).doToggle(); + noSpriteLimit.setChecked(false).doToggle(); + mode7Scale.item(0).setSelected(); emulator->configure("Hacks/PPU/Mode7/Scale", settings.emulator.hack.ppu.mode7.scale = 1); + mode7Perspective.setChecked(true).doToggle(); + mode7Supersample.setChecked(false).doToggle(); + mode7Mosaic.setChecked(true).doToggle(); + fastDSP.setChecked(true).doToggle(); + cubicInterpolation.setChecked(false).doToggle(); + coprocessorDelayedSyncOption.setChecked(true).doToggle(); + coprocessorPreferHLEOption.setChecked(false).doToggle(); + hotfixes.setChecked(true).doToggle(); + + if(!emulator->loaded()) return; + MessageDialog().setAlignment(settingsWindow).setTitle("Success").setText({ + "Performance Mode applied.\n" + "You must reload the game in order for all changes to take effect." + }).information(); + }); } From aacef6b57993e751e5ca14648fa8fe5fde637af2 Mon Sep 17 00:00:00 2001 From: bsnesFan <79463574+bsnesFan@users.noreply.github.com> Date: Thu, 25 Feb 2021 14:00:00 +0100 Subject: [PATCH 3/5] Update enhancements.cpp --- bsnes/target-bsnes/settings/enhancements.cpp | 24 ++++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/bsnes/target-bsnes/settings/enhancements.cpp b/bsnes/target-bsnes/settings/enhancements.cpp index 0302632b8..c6329a858 100644 --- a/bsnes/target-bsnes/settings/enhancements.cpp +++ b/bsnes/target-bsnes/settings/enhancements.cpp @@ -50,7 +50,7 @@ auto EnhancementSettings::create() -> void { emulator->configure("Hacks/SuperFX/Overclock", settings.emulator.hack.superfx.overclock); sfxValue.setText({settings.emulator.hack.superfx.overclock, "%"}); }).doChange(); - + note.setText("Note: Enabling overclocking will break games, cause bugs and reduce performance."); overclockingSpacer.setColor({192, 192, 192}); ppuLabel.setText("PPU (video)").setFont(Font().setBold()); @@ -133,8 +133,8 @@ auto EnhancementSettings::create() -> void { }).setChecked(settings.emulator.hack.hotfixes).onToggle([&] { settings.emulator.hack.hotfixes = hotfixes.checked(); }); - - + hotfixesSpacer.setColor({192, 192, 192}); + ppuModeLabel.setText("Mode Presets:").setFont(Font().setBold()); ppuModeRequirements.setText( "Accuracy Mode: Maximum hardware accuracy, disables performance shortcuts and all enhancements.\n" @@ -142,28 +142,28 @@ auto EnhancementSettings::create() -> void { ); accuracyMode.setText("Accuracy Mode").onActivate([&] { runAhead0.setChecked(); settings.emulator.runAhead.frames = 0; - cpuClock.setPosition(0); cpuClock.doChange(); - sa1Clock.setPosition(0); sa1Clock.doChange(); - sfxClock.setPosition(0); sfxClock.doChange(); + cpuClock.setPosition(0).doChange(); + sa1Clock.setPosition(0).doChange(); + sfxClock.setPosition(0).doChange(); fastPPU.setChecked(false).doToggle(); fastDSP.setChecked(false).doToggle(); cubicInterpolation.setChecked(false).doToggle(); coprocessorDelayedSyncOption.setChecked(false).doToggle(); coprocessorPreferHLEOption.setChecked(false).doToggle(); hotfixes.setChecked(false).doToggle(); - + if(!emulator->loaded()) return; MessageDialog().setAlignment(settingsWindow).setTitle("Success").setText({ "Accuracy Mode applied.\n" "You must reload the game in order for all changes to take effect." }).information(); }); - + performanceMode.setText("Performance Mode").onActivate([&] { runAhead0.setChecked(); settings.emulator.runAhead.frames = 0; - cpuClock.setPosition(0); cpuClock.doChange(); - sa1Clock.setPosition(0); sa1Clock.doChange(); - sfxClock.setPosition(0); sfxClock.doChange(); + cpuClock.setPosition(0).doChange(); + sa1Clock.setPosition(0).doChange(); + sfxClock.setPosition(0).doChange(); fastPPU.setChecked(true).doToggle(); deinterlace.setChecked(true).doToggle(); noSpriteLimit.setChecked(false).doToggle(); @@ -176,7 +176,7 @@ auto EnhancementSettings::create() -> void { coprocessorDelayedSyncOption.setChecked(true).doToggle(); coprocessorPreferHLEOption.setChecked(false).doToggle(); hotfixes.setChecked(true).doToggle(); - + if(!emulator->loaded()) return; MessageDialog().setAlignment(settingsWindow).setTitle("Success").setText({ "Performance Mode applied.\n" From 9edf7b97690aab9a6d13f2f87addbe321e1e565a Mon Sep 17 00:00:00 2001 From: bsnesFan <79463574+bsnesFan@users.noreply.github.com> Date: Thu, 25 Feb 2021 14:09:06 +0100 Subject: [PATCH 4/5] Update settings.hpp --- bsnes/target-bsnes/settings/settings.hpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/bsnes/target-bsnes/settings/settings.hpp b/bsnes/target-bsnes/settings/settings.hpp index 8a6caca15..1f2089466 100644 --- a/bsnes/target-bsnes/settings/settings.hpp +++ b/bsnes/target-bsnes/settings/settings.hpp @@ -349,6 +349,9 @@ struct EnhancementSettings : VerticalLayout { Label cpuLabel{&overclockingLayout, Size{0, 0}}; Label cpuValue{&overclockingLayout, Size{50_sx, 0}}; HorizontalSlider cpuClock{&overclockingLayout, Size{~0, 0}}; + // + Widget spacer{this, Size{~0, ~0}}; + Label note{this, Size{~0, 0}}; Canvas overclockingSpacer{this, Size{~0, 1}}; // Label sa1Label{&overclockingLayout, Size{0, 0}}; @@ -385,10 +388,8 @@ struct EnhancementSettings : VerticalLayout { Canvas coprocessorSpacer{this, Size{~0, 1}}; // Label gameLabel{this, Size{~0, 0}, 2}; - CheckLabel hotfixes{this, Size{0, 0}}; - // - Widget spacer{this, Size{~0, ~0}}; - Label note{this, Size{~0, 0}}; + CheckLabel hotfixes{this, Size{0, 0}}; + Canvas hotfixesSpacer{this, Size{~0, 1}}; // Label ppuModeLabel{this, Size{~0, 0}, 0}; Label ppuModeRequirements{this, Size{~0, 0}}; From 96e0b99ea36751a2758f58d3c3907d490c2e970f Mon Sep 17 00:00:00 2001 From: bsnesFan <79463574+bsnesFan@users.noreply.github.com> Date: Thu, 25 Feb 2021 14:23:36 +0100 Subject: [PATCH 5/5] Update enhancements.cpp --- bsnes/target-bsnes/settings/enhancements.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bsnes/target-bsnes/settings/enhancements.cpp b/bsnes/target-bsnes/settings/enhancements.cpp index c6329a858..372c8e33c 100644 --- a/bsnes/target-bsnes/settings/enhancements.cpp +++ b/bsnes/target-bsnes/settings/enhancements.cpp @@ -50,7 +50,7 @@ auto EnhancementSettings::create() -> void { emulator->configure("Hacks/SuperFX/Overclock", settings.emulator.hack.superfx.overclock); sfxValue.setText({settings.emulator.hack.superfx.overclock, "%"}); }).doChange(); - note.setText("Note: Enabling overclocking will break games, cause bugs and reduce performance."); + note.setText("Note: Overclocking will break games, cause bugs and reduce performance."); overclockingSpacer.setColor({192, 192, 192}); ppuLabel.setText("PPU (video)").setFont(Font().setBold());