mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2025-09-13 05:25:06 +00:00
Compare commits
13 Commits
Canary-1.3
...
Canary-1.3
Author | SHA1 | Date | |
---|---|---|---|
|
3df6b7c0f5 | ||
|
37e81481c4 | ||
|
4d8b799763 | ||
|
cb786b7147 | ||
|
2a308f50c0 | ||
|
b51c5cead6 | ||
|
461c1f5342 | ||
|
cfea61b3a0 | ||
|
ae2e9a73ab | ||
|
c6f22318a7 | ||
|
dd5e1b99b1 | ||
|
c863ffd353 | ||
|
d6d089b81b |
1598
assets/locales.json
1598
assets/locales.json
File diff suppressed because it is too large
Load Diff
@@ -62,7 +62,7 @@ namespace Ryujinx.HLE.HOS.Services.Ns.Aoc
|
|||||||
|
|
||||||
Logger.Debug?.PrintStub(LogClass.ServiceNs); // NOTE: Uses Debug to avoid spamming.
|
Logger.Debug?.PrintStub(LogClass.ServiceNs); // NOTE: Uses Debug to avoid spamming.
|
||||||
|
|
||||||
return ResultCode.Success;
|
return ResultCode.NoPurchasedProductInfoAvailable;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -2,6 +2,7 @@ namespace Ryujinx.HLE.HOS.Services.Ns.Aoc
|
|||||||
{
|
{
|
||||||
enum ResultCode
|
enum ResultCode
|
||||||
{
|
{
|
||||||
|
EShopModuleId = 164,
|
||||||
ModuleId = 166,
|
ModuleId = 166,
|
||||||
ErrorCodeShift = 9,
|
ErrorCodeShift = 9,
|
||||||
|
|
||||||
@@ -9,5 +10,6 @@ namespace Ryujinx.HLE.HOS.Services.Ns.Aoc
|
|||||||
|
|
||||||
InvalidBufferSize = (200 << ErrorCodeShift) | ModuleId,
|
InvalidBufferSize = (200 << ErrorCodeShift) | ModuleId,
|
||||||
InvalidPid = (300 << ErrorCodeShift) | ModuleId,
|
InvalidPid = (300 << ErrorCodeShift) | ModuleId,
|
||||||
|
NoPurchasedProductInfoAvailable = (400 << ErrorCodeShift) | EShopModuleId
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -157,7 +157,7 @@ namespace Ryujinx.Memory.Range
|
|||||||
{
|
{
|
||||||
int index = BinarySearch(item.Address);
|
int index = BinarySearch(item.Address);
|
||||||
|
|
||||||
if (index >= 0)
|
if (index >= 0 && Items[index].Value.Equals(item))
|
||||||
{
|
{
|
||||||
_quickAccess.Remove(item.Address);
|
_quickAccess.Remove(item.Address);
|
||||||
|
|
||||||
|
@@ -266,7 +266,7 @@
|
|||||||
</Style>
|
</Style>
|
||||||
<Style Selector="ToggleButton">
|
<Style Selector="ToggleButton">
|
||||||
<Setter Property="Padding"
|
<Setter Property="Padding"
|
||||||
Value="0,-5,0,0" />
|
Value="0,0,0,0" />
|
||||||
</Style>
|
</Style>
|
||||||
<Style Selector="TabItem">
|
<Style Selector="TabItem">
|
||||||
<Setter Property="FontSize"
|
<Setter Property="FontSize"
|
||||||
@@ -336,7 +336,7 @@
|
|||||||
</Style>
|
</Style>
|
||||||
<Style Selector="CheckBox TextBlock">
|
<Style Selector="CheckBox TextBlock">
|
||||||
<Setter Property="Margin"
|
<Setter Property="Margin"
|
||||||
Value="0,5,0,0" />
|
Value="0,2,0,0" />
|
||||||
</Style>
|
</Style>
|
||||||
<Style Selector="TextBlock.globalConfigMarker" >
|
<Style Selector="TextBlock.globalConfigMarker" >
|
||||||
<Setter Property="Foreground" Value="SeaGreen"/>
|
<Setter Property="Foreground" Value="SeaGreen"/>
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
using Avalonia;
|
using Avalonia;
|
||||||
using Avalonia.Controls;
|
using Avalonia.Controls;
|
||||||
using Avalonia.Input;
|
using Avalonia.Input;
|
||||||
|
using Avalonia.Threading;
|
||||||
using Ryujinx.Input;
|
using Ryujinx.Input;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -16,6 +17,8 @@ namespace Ryujinx.Ava.Input
|
|||||||
private bool _isDisposed;
|
private bool _isDisposed;
|
||||||
private Size _size;
|
private Size _size;
|
||||||
private readonly TopLevel _window;
|
private readonly TopLevel _window;
|
||||||
|
private DispatcherTimer _scrollStopTimer;
|
||||||
|
private const int _dispatchTimerMS = 100;
|
||||||
|
|
||||||
public bool[] PressedButtons { get; }
|
public bool[] PressedButtons { get; }
|
||||||
public Vector2 CurrentPosition { get; private set; }
|
public Vector2 CurrentPosition { get; private set; }
|
||||||
@@ -39,6 +42,11 @@ namespace Ryujinx.Ava.Input
|
|||||||
_window.PointerReleased += Parent_PointerReleasedEvent;
|
_window.PointerReleased += Parent_PointerReleasedEvent;
|
||||||
_window.PointerWheelChanged += Parent_PointerWheelChanged;
|
_window.PointerWheelChanged += Parent_PointerWheelChanged;
|
||||||
|
|
||||||
|
_scrollStopTimer = new DispatcherTimer
|
||||||
|
{
|
||||||
|
Interval = TimeSpan.FromMilliseconds(_dispatchTimerMS)
|
||||||
|
};
|
||||||
|
|
||||||
PressedButtons = new bool[(int)MouseButton.Count];
|
PressedButtons = new bool[(int)MouseButton.Count];
|
||||||
|
|
||||||
_size = new Size((int)parent.Bounds.Width, (int)parent.Bounds.Height);
|
_size = new Size((int)parent.Bounds.Width, (int)parent.Bounds.Height);
|
||||||
@@ -62,10 +70,26 @@ namespace Ryujinx.Ava.Input
|
|||||||
{
|
{
|
||||||
_size = new Size((int)rect.Width, (int)rect.Height);
|
_size = new Size((int)rect.Width, (int)rect.Height);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void HandleScrollStopped()
|
||||||
|
{
|
||||||
|
Scroll = new Vector2(0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
private void Parent_PointerWheelChanged(object o, PointerWheelEventArgs args)
|
private void Parent_PointerWheelChanged(object o, PointerWheelEventArgs args)
|
||||||
{
|
{
|
||||||
Scroll = new Vector2((float)args.Delta.X, (float)args.Delta.Y);
|
Scroll = new Vector2((float)args.Delta.X, (float)args.Delta.Y);
|
||||||
|
|
||||||
|
_scrollStopTimer?.Stop();
|
||||||
|
|
||||||
|
_scrollStopTimer.Tick += (_, __) =>
|
||||||
|
{
|
||||||
|
_scrollStopTimer.Stop();
|
||||||
|
|
||||||
|
HandleScrollStopped();
|
||||||
|
|
||||||
|
};
|
||||||
|
_scrollStopTimer.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Parent_PointerReleasedEvent(object o, PointerReleasedEventArgs args)
|
private void Parent_PointerReleasedEvent(object o, PointerReleasedEventArgs args)
|
||||||
|
@@ -301,6 +301,13 @@ namespace Ryujinx.Ava
|
|||||||
|
|
||||||
internal static void PrintSystemInfo()
|
internal static void PrintSystemInfo()
|
||||||
{
|
{
|
||||||
|
Logger.Notice.Print(LogClass.Application, " ___ __ _ ");
|
||||||
|
Logger.Notice.Print(LogClass.Application, @" / _ \ __ __ __ __ / / (_) ___ ___ _");
|
||||||
|
Logger.Notice.Print(LogClass.Application, @" / , _/ / // // // / / _ \ / / / _ \ / _ `/");
|
||||||
|
Logger.Notice.Print(LogClass.Application, @"/_/|_| \_, / \_,_/ /_.__//_/ /_//_/ \_, / ");
|
||||||
|
Logger.Notice.Print(LogClass.Application, " /___/ /___/ ");
|
||||||
|
|
||||||
|
|
||||||
Logger.Notice.Print(LogClass.Application, $"{RyujinxApp.FullAppName} Version: {Version}");
|
Logger.Notice.Print(LogClass.Application, $"{RyujinxApp.FullAppName} Version: {Version}");
|
||||||
Logger.Notice.Print(LogClass.Application, $".NET Runtime: {RuntimeInformation.FrameworkDescription}");
|
Logger.Notice.Print(LogClass.Application, $".NET Runtime: {RuntimeInformation.FrameworkDescription}");
|
||||||
SystemInfo.Gather().Print();
|
SystemInfo.Gather().Print();
|
||||||
|
@@ -482,7 +482,10 @@ namespace Ryujinx.Ava.Systems
|
|||||||
|
|
||||||
Dispatcher.UIThread.InvokeAsync(() =>
|
Dispatcher.UIThread.InvokeAsync(() =>
|
||||||
{
|
{
|
||||||
_viewModel.Title = TitleHelper.ActiveApplicationTitle(Device.Processes.ActiveApplication, Program.Version, !ConfigurationState.Instance.ShowOldUI);
|
if (ConfigurationState.Instance.ShowOldUI)
|
||||||
|
{
|
||||||
|
_viewModel.Title = TitleHelper.ActiveApplicationTitle(Device.Processes.ActiveApplication, Program.Version, !ConfigurationState.Instance.ShowOldUI);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
_viewModel.SetUiProgressHandlers(Device);
|
_viewModel.SetUiProgressHandlers(Device);
|
||||||
@@ -902,7 +905,10 @@ namespace Ryujinx.Ava.Systems
|
|||||||
|
|
||||||
_viewModel.IsPaused = false;
|
_viewModel.IsPaused = false;
|
||||||
_playTimer.Start();
|
_playTimer.Start();
|
||||||
_viewModel.Title = TitleHelper.ActiveApplicationTitle(Device?.Processes.ActiveApplication, Program.Version, !ConfigurationState.Instance.ShowOldUI);
|
if (ConfigurationState.Instance.ShowOldUI)
|
||||||
|
{
|
||||||
|
_viewModel.Title = TitleHelper.ActiveApplicationTitle(Device?.Processes.ActiveApplication, Program.Version, !ConfigurationState.Instance.ShowOldUI);
|
||||||
|
}
|
||||||
Logger.Info?.Print(LogClass.Emulation, "Emulation was resumed");
|
Logger.Info?.Print(LogClass.Emulation, "Emulation was resumed");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -912,7 +918,10 @@ namespace Ryujinx.Ava.Systems
|
|||||||
|
|
||||||
_viewModel.IsPaused = true;
|
_viewModel.IsPaused = true;
|
||||||
_playTimer.Stop();
|
_playTimer.Stop();
|
||||||
_viewModel.Title = TitleHelper.ActiveApplicationTitle(Device?.Processes.ActiveApplication, Program.Version, !ConfigurationState.Instance.ShowOldUI, LocaleManager.Instance[LocaleKeys.Paused]);
|
if (ConfigurationState.Instance.ShowOldUI)
|
||||||
|
{
|
||||||
|
_viewModel.Title = TitleHelper.ActiveApplicationTitle(Device?.Processes.ActiveApplication, Program.Version, !ConfigurationState.Instance.ShowOldUI, LocaleManager.Instance[LocaleKeys.Paused]);
|
||||||
|
}
|
||||||
Logger.Info?.Print(LogClass.Emulation, "Emulation was paused");
|
Logger.Info?.Print(LogClass.Emulation, "Emulation was paused");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -15,11 +15,11 @@ namespace Ryujinx.Ava.UI.Helpers
|
|||||||
public object Convert(object value, Type _, object __, CultureInfo ___)
|
public object Convert(object value, Type _, object __, CultureInfo ___)
|
||||||
=> value.Cast<LocaleKeys>() switch
|
=> value.Cast<LocaleKeys>() switch
|
||||||
{
|
{
|
||||||
LocaleKeys.CompatibilityListNothing or
|
LocaleKeys.CompatibilityListNothing => Brushes.DarkGray,
|
||||||
LocaleKeys.CompatibilityListBoots or
|
LocaleKeys.CompatibilityListBoots => Brushes.Red,
|
||||||
LocaleKeys.CompatibilityListMenus => Brushes.Red,
|
LocaleKeys.CompatibilityListMenus => Brushes.Tomato,
|
||||||
LocaleKeys.CompatibilityListIngame => Brushes.DarkOrange,
|
LocaleKeys.CompatibilityListIngame => Brushes.Orange,
|
||||||
_ => Brushes.ForestGreen
|
_ => Brushes.LimeGreen
|
||||||
};
|
};
|
||||||
|
|
||||||
public object ConvertBack(object value, Type _, object __, CultureInfo ___)
|
public object ConvertBack(object value, Type _, object __, CultureInfo ___)
|
||||||
|
@@ -47,13 +47,13 @@
|
|||||||
Glyph="{helpers:GlyphValueConverter Grid}" />
|
Glyph="{helpers:GlyphValueConverter Grid}" />
|
||||||
</Button>
|
</Button>
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Margin="10,0"
|
Margin="10,0,5,0"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Text="{ext:Locale IconSize}" />
|
Text="{ext:Locale IconSize}" />
|
||||||
<controls:SliderScroll
|
<controls:SliderScroll
|
||||||
Width="150"
|
Width="150"
|
||||||
Height="35"
|
Height="35"
|
||||||
Margin="5,-10,5,0"
|
Margin="5,-12,10,0"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
IsSnapToTickEnabled="True"
|
IsSnapToTickEnabled="True"
|
||||||
SmallChange="1"
|
SmallChange="1"
|
||||||
@@ -62,11 +62,11 @@
|
|||||||
TickFrequency="1"
|
TickFrequency="1"
|
||||||
Value="{Binding GridSizeScale}" />
|
Value="{Binding GridSizeScale}" />
|
||||||
<CheckBox
|
<CheckBox
|
||||||
Margin="0"
|
Margin="0,-2,0,0"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
IsChecked="{Binding ShowNames, Mode=TwoWay}"
|
IsChecked="{Binding ShowNames, Mode=TwoWay}"
|
||||||
IsVisible="{Binding IsGrid}">
|
IsVisible="{Binding IsGrid}">
|
||||||
<TextBlock Margin="5,3,0,0" Text="{ext:Locale CommonShowNames}" />
|
<TextBlock Text="{ext:Locale CommonShowNames}" />
|
||||||
</CheckBox>
|
</CheckBox>
|
||||||
<TextBox
|
<TextBox
|
||||||
Name="SearchBox"
|
Name="SearchBox"
|
||||||
|
@@ -117,8 +117,9 @@
|
|||||||
<ToggleButton Name="TurboMode">
|
<ToggleButton Name="TurboMode">
|
||||||
<TextBlock Text="{Binding KeyboardHotkey.TurboMode, Converter={x:Static helpers:KeyValueConverter.Instance}}" />
|
<TextBlock Text="{Binding KeyboardHotkey.TurboMode, Converter={x:Static helpers:KeyValueConverter.Instance}}" />
|
||||||
</ToggleButton>
|
</ToggleButton>
|
||||||
<TextBlock Text="{ext:Locale SettingsTabHotkeysOnlyWhilePressed}" Margin="10,0" />
|
<CheckBox IsChecked="{Binding KeyboardHotkey.TurboModeWhileHeld}" Margin="10,0,0,0">
|
||||||
<CheckBox IsChecked="{Binding KeyboardHotkey.TurboModeWhileHeld}" />
|
<TextBlock Text="{ext:Locale SettingsTabHotkeysOnlyWhilePressed}" />
|
||||||
|
</CheckBox>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Border>
|
</Border>
|
||||||
|
@@ -25,7 +25,12 @@
|
|||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
Margin="15, 0, 7, 0"
|
Margin="15, 0, 7, 0"
|
||||||
ToolTip.Tip="{ext:WindowTitle CompatibilityListTitle, False}"/>
|
ToolTip.Tip="{ext:WindowTitle CompatibilityListTitle, False}"/>
|
||||||
<TextBox Name="SearchBoxFlush" Grid.Column="1" Margin="0, 5, 0, 5" HorizontalAlignment="Stretch" Watermark="{ext:Locale CompatibilityListSearchBoxWatermarkWithCount}" TextChanged="TextBox_OnTextChanged" />
|
<TextBox Grid.Column="1"
|
||||||
|
Name="SearchBoxFlush"
|
||||||
|
Margin="0, 5, 0, 5"
|
||||||
|
HorizontalAlignment="Stretch"
|
||||||
|
Watermark="{ext:Locale CompatibilityListSearchBoxWatermarkWithCount}"
|
||||||
|
TextChanged="TextBox_OnTextChanged"/>
|
||||||
<StackPanel Grid.Column="2" Orientation="Horizontal" Margin="10, 5, 0, 5">
|
<StackPanel Grid.Column="2" Orientation="Horizontal" Margin="10, 5, 0, 5">
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Margin="10,0"
|
Margin="10,0"
|
||||||
@@ -88,14 +93,15 @@
|
|||||||
</DropDownButton.Flyout>
|
</DropDownButton.Flyout>
|
||||||
</DropDownButton>
|
</DropDownButton>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<CheckBox Grid.Column="3" Margin="7, 0, 0, 0" IsChecked="{Binding OnlyShowOwnedGames}" />
|
<CheckBox Grid.Column="3" Margin="15, 0, 155, 0" IsChecked="{Binding OnlyShowOwnedGames}">
|
||||||
<TextBlock Grid.Column="4" Padding="0, 0, 138, 0" Margin="-10, 0, 18, 0" Text="{ext:Locale CompatibilityListOnlyShowOwnedGames}" />
|
<TextBlock Text="{ext:Locale CompatibilityListOnlyShowOwnedGames}" />
|
||||||
|
</CheckBox>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<!-- UI NormalControls -->
|
<!-- UI NormalControls -->
|
||||||
<Grid Grid.Row="0" ColumnDefinitions="*,Auto,Auto,Auto" Name="NormalControls">
|
<Grid Grid.Row="0" ColumnDefinitions="*,Auto,Auto,Auto" Name="NormalControls">
|
||||||
<TextBox Name="SearchBoxNormal" Grid.Column="0" Margin="15, 0, 0, 5" HorizontalAlignment="Stretch" Watermark="{ext:Locale CompatibilityListSearchBoxWatermarkWithCount}" TextChanged="TextBox_OnTextChanged" />
|
<TextBox Name="SearchBoxNormal" Grid.Column="0" Margin="15, 5, 0, 5" HorizontalAlignment="Stretch" Watermark="{ext:Locale CompatibilityListSearchBoxWatermarkWithCount}" TextChanged="TextBox_OnTextChanged" />
|
||||||
<StackPanel Grid.Column="1" Orientation="Horizontal" Margin="10, 0, 5, 5">
|
<StackPanel Grid.Column="1" Orientation="Horizontal" Margin="10, 5, 5, 5">
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Margin="10,0"
|
Margin="10,0"
|
||||||
HorizontalAlignment="Right"
|
HorizontalAlignment="Right"
|
||||||
@@ -157,8 +163,9 @@
|
|||||||
</DropDownButton.Flyout>
|
</DropDownButton.Flyout>
|
||||||
</DropDownButton>
|
</DropDownButton>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<CheckBox Grid.Column="2" Margin="7, 0, 0, 0" IsChecked="{Binding OnlyShowOwnedGames}" />
|
<CheckBox Grid.Column="2" Margin="20, 0, 50, 0" IsChecked="{Binding OnlyShowOwnedGames}">
|
||||||
<TextBlock Grid.Column="3" Padding="0, 0, 1, 0" Margin="-10, 0, 18, 0" Text="{ext:Locale CompatibilityListOnlyShowOwnedGames}" />
|
<TextBlock Text="{ext:Locale CompatibilityListOnlyShowOwnedGames}" />
|
||||||
|
</CheckBox>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<!-- Description Field Above ScrollViewer -->
|
<!-- Description Field Above ScrollViewer -->
|
||||||
@@ -206,15 +213,11 @@
|
|||||||
Height="35"
|
Height="35"
|
||||||
HorizontalAlignment="Right"
|
HorizontalAlignment="Right"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Content="Info"
|
Content="{ext:Locale CompatibilityListStats}"
|
||||||
DockPanel.Dock="Right">
|
DockPanel.Dock="Right">
|
||||||
<DropDownButton.Flyout>
|
<DropDownButton.Flyout>
|
||||||
<Flyout Placement="Bottom">
|
<Flyout Placement="Bottom">
|
||||||
<StackPanel>
|
<StackPanel>
|
||||||
<TextBlock
|
|
||||||
HorizontalAlignment="Left"
|
|
||||||
Padding="0,5"
|
|
||||||
Text="Compatibility verified:" />
|
|
||||||
<TextBlock
|
<TextBlock
|
||||||
HorizontalAlignment="Left"
|
HorizontalAlignment="Left"
|
||||||
Foreground="{Binding IsStringPlayable, Converter={x:Static helpers:PlayabilityStatusConverter.Shared}}"
|
Foreground="{Binding IsStringPlayable, Converter={x:Static helpers:PlayabilityStatusConverter.Shared}}"
|
||||||
|
@@ -128,8 +128,9 @@
|
|||||||
Margin="10"
|
Margin="10"
|
||||||
Content="{ext:Locale SettingsButtonReset}"
|
Content="{ext:Locale SettingsButtonReset}"
|
||||||
Command="{Binding ResetButton}" />
|
Command="{Binding ResetButton}" />
|
||||||
<CheckBox IsChecked="{Binding WantsToReset}"/>
|
<CheckBox IsChecked="{Binding WantsToReset}">
|
||||||
<TextBlock Text="{ext:Locale SettingsButtonResetConfirm}"/>
|
<TextBlock Text="{ext:Locale SettingsButtonResetConfirm}" />
|
||||||
|
</CheckBox>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<ReversibleStackPanel
|
<ReversibleStackPanel
|
||||||
Grid.Column="2"
|
Grid.Column="2"
|
||||||
|
Reference in New Issue
Block a user