* [audio] fixed demons souls audioout2 output path

* [video] restored texture cache bound and gated present diagnostics

* [cpu] made guest image cpu sync opt-in
This commit is contained in:
Berk
2026-07-28 16:29:58 +03:00
committed by GitHub
parent ddcd285075
commit f095ed68a8
5 changed files with 142 additions and 211 deletions
+5 -39
View File
@@ -242,7 +242,9 @@ public partial class MainWindow : Window
EnvLogNpToggle.IsCheckedChanged += (_, _) =>
SetEnvironmentToggle("SHARPEMU_LOG_NP", EnvLogNpToggle.IsChecked == true);
EnvGuestImageCpuSyncToggle.IsCheckedChanged += (_, _) =>
SetGuestImageCpuSync(EnvGuestImageCpuSyncToggle.IsChecked == true);
SetEnvironmentToggle(
"SHARPEMU_GUEST_IMAGE_CPU_SYNC",
EnvGuestImageCpuSyncToggle.IsChecked == true);
LanguageBox.SelectionChanged += (_, _) => OnLanguageChanged();
GameList.AddHandler(ContextRequestedEvent, OnGameContextRequested, RoutingStrategies.Tunnel);
@@ -853,10 +855,8 @@ public partial class MainWindow : Window
EnvLogDirectMemoryToggle.IsChecked = _settings.EnvironmentToggles.Contains("SHARPEMU_LOG_DIRECT_MEMORY");
EnvLogIoToggle.IsChecked = _settings.EnvironmentToggles.Contains("SHARPEMU_LOG_IO");
EnvLogNpToggle.IsChecked = _settings.EnvironmentToggles.Contains("SHARPEMU_LOG_NP");
EnvGuestImageCpuSyncToggle.IsChecked = IsEnvironmentEnabled(
_settings.EnvironmentToggles,
"SHARPEMU_GUEST_IMAGE_CPU_SYNC",
defaultValue: true);
EnvGuestImageCpuSyncToggle.IsChecked =
_settings.EnvironmentToggles.Contains("SHARPEMU_GUEST_IMAGE_CPU_SYNC");
WindowModeBox.SelectedIndex = ChoiceIndex(_settings.WindowMode, "Windowed", "Borderless", "Exclusive");
LoadHostDisplayOptions();
ScalingModeBox.SelectedIndex = ChoiceIndex(_settings.ScalingMode, "Fit", "Cover", "Stretch", "Integer");
@@ -1083,40 +1083,6 @@ public partial class MainWindow : Window
}
}
private void SetGuestImageCpuSync(bool enabled)
{
const string name = "SHARPEMU_GUEST_IMAGE_CPU_SYNC";
_settings.EnvironmentToggles.RemoveAll(entry =>
string.Equals(entry, name, StringComparison.OrdinalIgnoreCase) ||
string.Equals(entry, name + "=0", StringComparison.OrdinalIgnoreCase));
if (!enabled)
{
_settings.EnvironmentToggles.Add(name + "=0");
}
}
private static bool IsEnvironmentEnabled(
IEnumerable<string> entries,
string name,
bool defaultValue)
{
foreach (var entry in entries)
{
if (string.Equals(entry, name + "=0", StringComparison.OrdinalIgnoreCase))
{
return false;
}
if (string.Equals(entry, name, StringComparison.OrdinalIgnoreCase) ||
string.Equals(entry, name + "=1", StringComparison.OrdinalIgnoreCase))
{
return true;
}
}
return defaultValue;
}
private string SelectedLogLevel()
{
return LogLevelBox.SelectedIndex switch
+4 -11
View File
@@ -241,7 +241,7 @@ public sealed class PerGameSettingsDialog : Window
_hdrMode.SelectedItem = ChoiceOrDefault(HdrModes, global.HdrMode, "Auto");
foreach (var (name, box) in _envBoxes)
{
box.IsChecked = IsEnvironmentEnabled(global.EnvironmentToggles, name, defaultValue: name == "SHARPEMU_GUEST_IMAGE_CPU_SYNC");
box.IsChecked = IsEnvironmentEnabled(global.EnvironmentToggles, name, defaultValue: false);
}
if (existing is null)
@@ -295,7 +295,7 @@ public sealed class PerGameSettingsDialog : Window
_envRow.IsOverridden = true;
foreach (var (name, box) in _envBoxes)
{
box.IsChecked = IsEnvironmentEnabled(env, name, defaultValue: name == "SHARPEMU_GUEST_IMAGE_CPU_SYNC");
box.IsChecked = IsEnvironmentEnabled(env, name, defaultValue: false);
}
}
}
@@ -396,17 +396,10 @@ public sealed class PerGameSettingsDialog : Window
private List<string> BuildEnvironmentEntries()
{
const string guestImageCpuSync = "SHARPEMU_GUEST_IMAGE_CPU_SYNC";
var entries = _envBoxes
.Where(entry => entry.Name != guestImageCpuSync && entry.Box.IsChecked == true)
return _envBoxes
.Where(entry => entry.Box.IsChecked == true)
.Select(entry => entry.Name)
.ToList();
if (_envBoxes.First(entry => entry.Name == guestImageCpuSync).Box.IsChecked != true)
{
entries.Add(guestImageCpuSync + "=0");
}
return entries;
}
private static bool IsEnvironmentEnabled(