Compare commits
4 Commits
Canary-1.2
...
Canary-1.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7f9dccb293 | ||
|
|
8e4a77aba0 | ||
|
|
8fd8a776c9 | ||
|
|
eec92c242c |
@@ -9,20 +9,12 @@ namespace Ryujinx.Audio.Backends.Dummy
|
|||||||
{
|
{
|
||||||
public class DummyHardwareDeviceDriver : IHardwareDeviceDriver
|
public class DummyHardwareDeviceDriver : IHardwareDeviceDriver
|
||||||
{
|
{
|
||||||
private readonly ManualResetEvent _updateRequiredEvent;
|
private readonly ManualResetEvent _updateRequiredEvent = new(false);
|
||||||
private readonly ManualResetEvent _pauseEvent;
|
private readonly ManualResetEvent _pauseEvent = new(true);
|
||||||
|
|
||||||
public static bool IsSupported => true;
|
public static bool IsSupported => true;
|
||||||
|
|
||||||
public float Volume { get; set; }
|
public float Volume { get; set; } = 1f;
|
||||||
|
|
||||||
public DummyHardwareDeviceDriver()
|
|
||||||
{
|
|
||||||
_updateRequiredEvent = new ManualResetEvent(false);
|
|
||||||
_pauseEvent = new ManualResetEvent(true);
|
|
||||||
|
|
||||||
Volume = 1f;
|
|
||||||
}
|
|
||||||
|
|
||||||
public IHardwareDeviceSession OpenDeviceSession(Direction direction, IVirtualMemoryManager memoryManager, SampleFormat sampleFormat, uint sampleRate, uint channelCount)
|
public IHardwareDeviceSession OpenDeviceSession(Direction direction, IVirtualMemoryManager memoryManager, SampleFormat sampleFormat, uint sampleRate, uint channelCount)
|
||||||
{
|
{
|
||||||
@@ -60,7 +52,7 @@ namespace Ryujinx.Audio.Backends.Dummy
|
|||||||
Dispose(true);
|
Dispose(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual void Dispose(bool disposing)
|
private void Dispose(bool disposing)
|
||||||
{
|
{
|
||||||
if (disposing)
|
if (disposing)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -13,13 +13,13 @@ namespace Ryujinx.Common.Configuration
|
|||||||
|
|
||||||
public record EnabledDirtyHack(DirtyHacks Hack, int Value)
|
public record EnabledDirtyHack(DirtyHacks Hack, int Value)
|
||||||
{
|
{
|
||||||
private static readonly byte[] _packedFormat = [8, 32];
|
public static readonly byte[] PackedFormat = [8, 32];
|
||||||
|
|
||||||
public ulong Pack() => BitTricks.PackBitFields([(uint)Hack, (uint)Value], _packedFormat);
|
public ulong Pack() => BitTricks.PackBitFields([(uint)Hack, (uint)Value], PackedFormat);
|
||||||
|
|
||||||
public static EnabledDirtyHack FromPacked(ulong packedHack)
|
public static EnabledDirtyHack FromPacked(ulong packedHack)
|
||||||
{
|
{
|
||||||
var unpackedFields = BitTricks.UnpackBitFields(packedHack, _packedFormat);
|
var unpackedFields = BitTricks.UnpackBitFields(packedHack, PackedFormat);
|
||||||
if (unpackedFields is not [var hack, var value])
|
if (unpackedFields is not [var hack, var value])
|
||||||
throw new ArgumentException(nameof(packedHack));
|
throw new ArgumentException(nameof(packedHack));
|
||||||
|
|
||||||
@@ -45,6 +45,15 @@ namespace Ryujinx.Common.Configuration
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ulong[] PackEntries() =>
|
||||||
|
this
|
||||||
|
.Select(it =>
|
||||||
|
BitTricks.PackBitFields([(uint)it.Key, (uint)it.Value], EnabledDirtyHack.PackedFormat))
|
||||||
|
.ToArray();
|
||||||
|
|
||||||
|
public static implicit operator DirtyHackCollection(EnabledDirtyHack[] hacks) => new(hacks);
|
||||||
|
public static implicit operator DirtyHackCollection(ulong[] packedHacks) => new(packedHacks);
|
||||||
|
|
||||||
public new int this[DirtyHacks hack] => TryGetValue(hack, out var value) ? value : -1;
|
public new int this[DirtyHacks hack] => TryGetValue(hack, out var value) ? value : -1;
|
||||||
|
|
||||||
public bool IsEnabled(DirtyHacks hack) => ContainsKey(hack);
|
public bool IsEnabled(DirtyHacks hack) => ContainsKey(hack);
|
||||||
|
|||||||
@@ -301,6 +301,8 @@ namespace Ryujinx.Ava.UI.ViewModels
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string ShaderTranslationDelayTooltipText => $"Current value: {ShaderTranslationDelay}";
|
||||||
|
|
||||||
public int ShaderTranslationDelay
|
public int ShaderTranslationDelay
|
||||||
{
|
{
|
||||||
get => _shaderTranslationSleepDelay;
|
get => _shaderTranslationSleepDelay;
|
||||||
@@ -308,7 +310,7 @@ namespace Ryujinx.Ava.UI.ViewModels
|
|||||||
{
|
{
|
||||||
_shaderTranslationSleepDelay = value;
|
_shaderTranslationSleepDelay = value;
|
||||||
|
|
||||||
OnPropertyChanged();
|
OnPropertiesChanged(nameof(ShaderTranslationDelay), nameof(ShaderTranslationDelayTooltipText));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -56,7 +56,7 @@
|
|||||||
</StackPanel>
|
</StackPanel>
|
||||||
<Slider HorizontalAlignment="Center"
|
<Slider HorizontalAlignment="Center"
|
||||||
Value="{Binding ShaderTranslationDelay}"
|
Value="{Binding ShaderTranslationDelay}"
|
||||||
ToolTip.Tip="{Binding ShaderTranslationDelay}"
|
ToolTip.Tip="{Binding ShaderTranslationDelayTooltipText}"
|
||||||
Width="175"
|
Width="175"
|
||||||
Margin="0,-3,0,0"
|
Margin="0,-3,0,0"
|
||||||
Height="32"
|
Height="32"
|
||||||
|
|||||||
@@ -752,7 +752,7 @@ namespace Ryujinx.Ava.Utilities.Configuration
|
|||||||
Hacks.ShowDirtyHacks.Value = configurationFileFormat.ShowDirtyHacks;
|
Hacks.ShowDirtyHacks.Value = configurationFileFormat.ShowDirtyHacks;
|
||||||
|
|
||||||
{
|
{
|
||||||
EnabledDirtyHack[] hacks = configurationFileFormat.DirtyHacks.Select(EnabledDirtyHack.FromPacked).ToArray();
|
EnabledDirtyHack[] hacks = (configurationFileFormat.DirtyHacks ?? []).Select(EnabledDirtyHack.FromPacked).ToArray();
|
||||||
|
|
||||||
Hacks.Xc2MenuSoftlockFix.Value = hacks.Any(it => it.Hack == DirtyHacks.Xc2MenuSoftlockFix);
|
Hacks.Xc2MenuSoftlockFix.Value = hacks.Any(it => it.Hack == DirtyHacks.Xc2MenuSoftlockFix);
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ using Ryujinx.Common.Logging;
|
|||||||
using Ryujinx.HLE;
|
using Ryujinx.HLE;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using RyuLogger = Ryujinx.Common.Logging.Logger;
|
||||||
|
|
||||||
namespace Ryujinx.Ava.Utilities.Configuration
|
namespace Ryujinx.Ava.Utilities.Configuration
|
||||||
{
|
{
|
||||||
@@ -644,8 +645,19 @@ namespace Ryujinx.Ava.Utilities.Configuration
|
|||||||
|
|
||||||
private void HackChanged(object sender, ReactiveEventArgs<bool> rxe)
|
private void HackChanged(object sender, ReactiveEventArgs<bool> rxe)
|
||||||
{
|
{
|
||||||
Ryujinx.Common.Logging.Logger.Info?.Print(LogClass.Configuration, $"EnabledDirtyHacks set to: [{EnabledHacks.Select(x => x.Hack).JoinToString(", ")}]", "LogValueChange");
|
var newHacks = EnabledHacks.Select(x => x.Hack)
|
||||||
|
.JoinToString(", ");
|
||||||
|
|
||||||
|
if (newHacks != _lastHackCollection)
|
||||||
|
{
|
||||||
|
RyuLogger.Info?.Print(LogClass.Configuration,
|
||||||
|
$"EnabledDirtyHacks set to: [{_lastHackCollection}]", "LogValueChange");
|
||||||
|
|
||||||
|
_lastHackCollection = newHacks;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string _lastHackCollection;
|
||||||
|
|
||||||
public EnabledDirtyHack[] EnabledHacks
|
public EnabledDirtyHack[] EnabledHacks
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user