mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2025-07-23 14:19:52 -06:00
Compare commits
7 Commits
Canary-1.3
...
Canary-1.3
Author | SHA1 | Date | |
---|---|---|---|
1156307ef9 | |||
a32a87e0c9 | |||
7157565665 | |||
6873303864 | |||
cd72ba0075 | |||
be6919d931 | |||
cf0185da17 |
@ -193,7 +193,7 @@ namespace ARMeilleure.Translation.PTC
|
|||||||
_infosStream.Seek(0L, SeekOrigin.Begin);
|
_infosStream.Seek(0L, SeekOrigin.Begin);
|
||||||
bool foundBadFunction = false;
|
bool foundBadFunction = false;
|
||||||
|
|
||||||
for (int index = 0; index < GetEntriesCount(); index++)
|
for (int index = 0; index < _infosStream.Length; index++)
|
||||||
{
|
{
|
||||||
InfoEntry infoEntry = DeserializeStructure<InfoEntry>(_infosStream);
|
InfoEntry infoEntry = DeserializeStructure<InfoEntry>(_infosStream);
|
||||||
foreach (ulong address in blacklist)
|
foreach (ulong address in blacklist)
|
||||||
@ -201,7 +201,7 @@ namespace ARMeilleure.Translation.PTC
|
|||||||
if (infoEntry.Address == address)
|
if (infoEntry.Address == address)
|
||||||
{
|
{
|
||||||
containsBlacklistedFunctions = true;
|
containsBlacklistedFunctions = true;
|
||||||
Logger.Warning?.Print(LogClass.Ptc, "PPTC cache invalidated: Found blacklisted functions in PPTC cache");
|
Logger.Warning?.Print(LogClass.Ptc, "Translation cache invalidated: Found blacklisted functions");
|
||||||
foundBadFunction = true;
|
foundBadFunction = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -512,13 +512,9 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Glsl
|
|||||||
if (context.Definitions.Stage == ShaderStage.Fragment && context.Definitions.DualSourceBlend)
|
if (context.Definitions.Stage == ShaderStage.Fragment && context.Definitions.DualSourceBlend)
|
||||||
{
|
{
|
||||||
IoDefinition firstOutput = outputs.ElementAtOrDefault(0);
|
IoDefinition firstOutput = outputs.ElementAtOrDefault(0);
|
||||||
IoDefinition secondOutput = outputs.ElementAtOrDefault(1);
|
|
||||||
|
|
||||||
if (firstOutput.Location + 1 == secondOutput.Location)
|
DeclareOutputDualSourceBlendAttribute(context, firstOutput.Location);
|
||||||
{
|
outputs = outputs.Skip(2);
|
||||||
DeclareOutputDualSourceBlendAttribute(context, firstOutput.Location);
|
|
||||||
outputs = outputs.Skip(2);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (IoDefinition ioDefinition in outputs)
|
foreach (IoDefinition ioDefinition in outputs)
|
||||||
|
@ -181,13 +181,29 @@ namespace Ryujinx.Graphics.Shader.Translation
|
|||||||
|
|
||||||
private static void EmitOutputsInitialization(EmitterContext context, AttributeUsage attributeUsage, IGpuAccessor gpuAccessor, ShaderStage stage)
|
private static void EmitOutputsInitialization(EmitterContext context, AttributeUsage attributeUsage, IGpuAccessor gpuAccessor, ShaderStage stage)
|
||||||
{
|
{
|
||||||
// Compute has no output attributes, and fragment is the last stage, so we
|
// Compute has no output attributes, so we
|
||||||
// don't need to initialize outputs on those stages.
|
// don't need to initialize outputs on that stage.
|
||||||
if (stage == ShaderStage.Compute || stage == ShaderStage.Fragment)
|
if (stage == ShaderStage.Compute)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (stage == ShaderStage.Fragment)
|
||||||
|
{
|
||||||
|
// Fragment is the last stage, so we don't need to
|
||||||
|
// initialize outputs unless we're using DSB, in which
|
||||||
|
// we need to make sure the ouput has a valid value.
|
||||||
|
if (gpuAccessor.QueryGraphicsState().DualSourceBlendEnable)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < 4; i++)
|
||||||
|
{
|
||||||
|
context.Store(StorageKind.Output, IoVariable.FragmentOutputColor, null, Const(1), Const(i), ConstF(0));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (stage == ShaderStage.Vertex)
|
if (stage == ShaderStage.Vertex)
|
||||||
{
|
{
|
||||||
InitializeVertexOutputs(context);
|
InitializeVertexOutputs(context);
|
||||||
|
@ -165,10 +165,8 @@ namespace Ryujinx.Headless
|
|||||||
|
|
||||||
ReloadConfig();
|
ReloadConfig();
|
||||||
|
|
||||||
if (option.InheritConfig)
|
if (!option.DisableMainInputConfig)
|
||||||
{
|
|
||||||
option.InheritMainConfigInput(originalArgs, ConfigurationState.Instance);
|
option.InheritMainConfigInput(originalArgs, ConfigurationState.Instance);
|
||||||
}
|
|
||||||
|
|
||||||
_virtualFileSystem = VirtualFileSystem.CreateInstance();
|
_virtualFileSystem = VirtualFileSystem.CreateInstance();
|
||||||
_libHacHorizonManager = new LibHacHorizonManager();
|
_libHacHorizonManager = new LibHacHorizonManager();
|
||||||
|
@ -193,6 +193,9 @@ namespace Ryujinx.Headless
|
|||||||
|
|
||||||
[Option("use-main-config", Required = false, Default = false, HelpText = "Use the settings from what was configured via the UI.")]
|
[Option("use-main-config", Required = false, Default = false, HelpText = "Use the settings from what was configured via the UI.")]
|
||||||
public bool InheritConfig { get; set; }
|
public bool InheritConfig { get; set; }
|
||||||
|
|
||||||
|
[Option("disable-main-input-config", Required = false, Default = false, HelpText = "Do not use the input-related settings from what was configured via the UI.")]
|
||||||
|
public bool DisableMainInputConfig { get; set; }
|
||||||
|
|
||||||
[Option("root-data-dir", Required = false, HelpText = "Set the custom folder path for Ryujinx data.")]
|
[Option("root-data-dir", Required = false, HelpText = "Set the custom folder path for Ryujinx data.")]
|
||||||
public string BaseDataDir { get; set; }
|
public string BaseDataDir { get; set; }
|
||||||
|
@ -1116,8 +1116,8 @@ namespace Ryujinx.Ava.Systems
|
|||||||
LocaleManager.Instance[LocaleKeys.VolumeShort] + $": {(int)(Device.GetVolume() * 100)}%",
|
LocaleManager.Instance[LocaleKeys.VolumeShort] + $": {(int)(Device.GetVolume() * 100)}%",
|
||||||
dockedMode,
|
dockedMode,
|
||||||
ConfigurationState.Instance.Graphics.AspectRatio.Value.ToText(),
|
ConfigurationState.Instance.Graphics.AspectRatio.Value.ToText(),
|
||||||
FormatGameFrameRate(),
|
Device.System.IsPaused ? LocaleManager.GetUnformatted(LocaleKeys.Paused) : FormatGameFrameRate(),
|
||||||
Device.Statistics.FormatFifoPercent(),
|
Device.System.IsPaused ? string.Empty : Device.Statistics.FormatFifoPercent(),
|
||||||
_displayCount));
|
_displayCount));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ namespace Ryujinx.Ava.Systems
|
|||||||
|
|
||||||
private static readonly string _description =
|
private static readonly string _description =
|
||||||
ReleaseInformation.IsValid
|
ReleaseInformation.IsValid
|
||||||
? $"{VersionString} {ReleaseInformation.ReleaseChannelOwner}/{ReleaseInformation.ReleaseChannelSourceRepo}"
|
? $"{VersionString} {ReleaseInformation.ReleaseChannelOwner}/{ReleaseInformation.ReleaseChannelRepo}"
|
||||||
: "dev build";
|
: "dev build";
|
||||||
|
|
||||||
private const string ApplicationId = "1293250299716173864";
|
private const string ApplicationId = "1293250299716173864";
|
||||||
|
@ -14,8 +14,8 @@ namespace Ryujinx.Ava.UI.ViewModels
|
|||||||
[ObservableProperty] private Bitmap _gitLabLogo;
|
[ObservableProperty] private Bitmap _gitLabLogo;
|
||||||
[ObservableProperty] private Bitmap _discordLogo;
|
[ObservableProperty] private Bitmap _discordLogo;
|
||||||
[ObservableProperty] private string _version;
|
[ObservableProperty] private string _version;
|
||||||
|
|
||||||
public string Developers => "GreemDev";
|
public string Developers => "GreemDev, LotP";
|
||||||
|
|
||||||
public string FormerDevelopers => LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.AboutPageDeveloperListMore, "gdkchan, Ac_K, marysaka, rip in peri peri, LDj3SNuD, emmaus, Thealexbarney, GoffyDude, TSRBerry, IsaacMarovitz");
|
public string FormerDevelopers => LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.AboutPageDeveloperListMore, "gdkchan, Ac_K, marysaka, rip in peri peri, LDj3SNuD, emmaus, Thealexbarney, GoffyDude, TSRBerry, IsaacMarovitz");
|
||||||
|
|
||||||
|
@ -249,7 +249,14 @@
|
|||||||
IsVisible="{Binding !ShowLoadProgress}"
|
IsVisible="{Binding !ShowLoadProgress}"
|
||||||
Text="{Binding GameStatusText}"
|
Text="{Binding GameStatusText}"
|
||||||
TextAlignment="Start" />
|
TextAlignment="Start" />
|
||||||
<controls:MiniVerticalSeparator IsVisible="{Binding !ShowLoadProgress}" />
|
<controls:MiniVerticalSeparator>
|
||||||
|
<controls:MiniVerticalSeparator.IsVisible>
|
||||||
|
<MultiBinding Converter="{x:Static BoolConverters.And}">
|
||||||
|
<Binding Path="!ShowLoadProgress"/>
|
||||||
|
<Binding Path="!IsPaused"/>
|
||||||
|
</MultiBinding>
|
||||||
|
</controls:MiniVerticalSeparator.IsVisible>
|
||||||
|
</controls:MiniVerticalSeparator>
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Margin="5,0,5,0"
|
Margin="5,0,5,0"
|
||||||
HorizontalAlignment="Left"
|
HorizontalAlignment="Left"
|
||||||
|
@ -109,7 +109,7 @@
|
|||||||
SimpleNumberFormat="F0"
|
SimpleNumberFormat="F0"
|
||||||
SpinButtonPlacementMode="Hidden"
|
SpinButtonPlacementMode="Hidden"
|
||||||
Minimum="50"
|
Minimum="50"
|
||||||
Maximum="300" />
|
Maximum="1000" />
|
||||||
<Slider Value="{Binding TurboMultiplier}"
|
<Slider Value="{Binding TurboMultiplier}"
|
||||||
ToolTip.Tip="{ext:Locale SettingsTabSystemTurboMultiplierValueToolTip}"
|
ToolTip.Tip="{ext:Locale SettingsTabSystemTurboMultiplierValueToolTip}"
|
||||||
MinWidth="175"
|
MinWidth="175"
|
||||||
@ -122,7 +122,7 @@
|
|||||||
SmallChange="1"
|
SmallChange="1"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Minimum="50"
|
Minimum="50"
|
||||||
Maximum="500" />
|
Maximum="1000" />
|
||||||
<TextBlock Margin="5,0"
|
<TextBlock Margin="5,0"
|
||||||
Width="40"
|
Width="40"
|
||||||
Text="{Binding TurboMultiplierPercentageText}"/>
|
Text="{Binding TurboMultiplierPercentageText}"/>
|
||||||
|
Reference in New Issue
Block a user