mirror of
https://github.com/GreemDev/Ryujinx
synced 2024-11-22 01:43:23 +01:00
Merge branch 'master' into master
This commit is contained in:
commit
905362a151
4 changed files with 31 additions and 5 deletions
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
|
@ -174,7 +174,7 @@ jobs:
|
||||||
uses: ncipollo/release-action@v1
|
uses: ncipollo/release-action@v1
|
||||||
with:
|
with:
|
||||||
name: ${{ steps.version_info.outputs.build_version }}
|
name: ${{ steps.version_info.outputs.build_version }}
|
||||||
artifacts: "release_output/*.tar.gz,release_output/*.zip/*AppImage*"
|
artifacts: "release_output/*.tar.gz,release_output/*.zip,release_output/*AppImage*"
|
||||||
tag: ${{ steps.version_info.outputs.build_version }}
|
tag: ${{ steps.version_info.outputs.build_version }}
|
||||||
body: "**Full Changelog**: https://github.com/${{ github.repository }}/compare/${{ steps.version_info.outputs.prev_build_version }}...${{ steps.version_info.outputs.build_version }}"
|
body: "**Full Changelog**: https://github.com/${{ github.repository }}/compare/${{ steps.version_info.outputs.prev_build_version }}...${{ steps.version_info.outputs.build_version }}"
|
||||||
omitBodyDuringUpdate: true
|
omitBodyDuringUpdate: true
|
||||||
|
|
|
@ -49,6 +49,9 @@ namespace ARMeilleure.Instructions
|
||||||
case 0b11_011_1101_0000_011:
|
case 0b11_011_1101_0000_011:
|
||||||
EmitGetTpidrroEl0(context);
|
EmitGetTpidrroEl0(context);
|
||||||
return;
|
return;
|
||||||
|
case 0b11_011_1101_0000_101:
|
||||||
|
EmitGetTpidr2El0(context);
|
||||||
|
return;
|
||||||
case 0b11_011_1110_0000_000:
|
case 0b11_011_1110_0000_000:
|
||||||
info = typeof(NativeInterface).GetMethod(nameof(NativeInterface.GetCntfrqEl0));
|
info = typeof(NativeInterface).GetMethod(nameof(NativeInterface.GetCntfrqEl0));
|
||||||
break;
|
break;
|
||||||
|
@ -84,6 +87,9 @@ namespace ARMeilleure.Instructions
|
||||||
case 0b11_011_1101_0000_010:
|
case 0b11_011_1101_0000_010:
|
||||||
EmitSetTpidrEl0(context);
|
EmitSetTpidrEl0(context);
|
||||||
return;
|
return;
|
||||||
|
case 0b11_011_1101_0000_101:
|
||||||
|
EmitGetTpidr2El0(context);
|
||||||
|
return;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
throw new NotImplementedException($"Unknown MSR 0x{op.RawOpCode:X8} at 0x{op.Address:X16}.");
|
throw new NotImplementedException($"Unknown MSR 0x{op.RawOpCode:X8} at 0x{op.Address:X16}.");
|
||||||
|
@ -213,6 +219,17 @@ namespace ARMeilleure.Instructions
|
||||||
SetIntOrZR(context, op.Rt, result);
|
SetIntOrZR(context, op.Rt, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void EmitGetTpidr2El0(ArmEmitterContext context)
|
||||||
|
{
|
||||||
|
OpCodeSystem op = (OpCodeSystem)context.CurrOp;
|
||||||
|
|
||||||
|
Operand nativeContext = context.LoadArgument(OperandType.I64, 0);
|
||||||
|
|
||||||
|
Operand result = context.Load(OperandType.I64, context.Add(nativeContext, Const((ulong)NativeContext.GetTpidr2El0Offset())));
|
||||||
|
|
||||||
|
SetIntOrZR(context, op.Rt, result);
|
||||||
|
}
|
||||||
|
|
||||||
private static void EmitSetNzcv(ArmEmitterContext context)
|
private static void EmitSetNzcv(ArmEmitterContext context)
|
||||||
{
|
{
|
||||||
OpCodeSystem op = (OpCodeSystem)context.CurrOp;
|
OpCodeSystem op = (OpCodeSystem)context.CurrOp;
|
||||||
|
|
|
@ -21,6 +21,7 @@ namespace ARMeilleure.State
|
||||||
public ulong ExclusiveValueLow;
|
public ulong ExclusiveValueLow;
|
||||||
public ulong ExclusiveValueHigh;
|
public ulong ExclusiveValueHigh;
|
||||||
public int Running;
|
public int Running;
|
||||||
|
public long Tpidr2El0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static NativeCtxStorage _dummyStorage = new();
|
private static NativeCtxStorage _dummyStorage = new();
|
||||||
|
@ -176,6 +177,9 @@ namespace ARMeilleure.State
|
||||||
public long GetTpidrroEl0() => GetStorage().TpidrroEl0;
|
public long GetTpidrroEl0() => GetStorage().TpidrroEl0;
|
||||||
public void SetTpidrroEl0(long value) => GetStorage().TpidrroEl0 = value;
|
public void SetTpidrroEl0(long value) => GetStorage().TpidrroEl0 = value;
|
||||||
|
|
||||||
|
public long GetTpidr2El0() => GetStorage().Tpidr2El0;
|
||||||
|
public void SetTpidr2El0(long value) => GetStorage().Tpidr2El0 = value;
|
||||||
|
|
||||||
public int GetCounter() => GetStorage().Counter;
|
public int GetCounter() => GetStorage().Counter;
|
||||||
public void SetCounter(int value) => GetStorage().Counter = value;
|
public void SetCounter(int value) => GetStorage().Counter = value;
|
||||||
|
|
||||||
|
@ -232,6 +236,11 @@ namespace ARMeilleure.State
|
||||||
return StorageOffset(ref _dummyStorage, ref _dummyStorage.TpidrroEl0);
|
return StorageOffset(ref _dummyStorage, ref _dummyStorage.TpidrroEl0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int GetTpidr2El0Offset()
|
||||||
|
{
|
||||||
|
return StorageOffset(ref _dummyStorage, ref _dummyStorage.Tpidr2El0);
|
||||||
|
}
|
||||||
|
|
||||||
public static int GetCounterOffset()
|
public static int GetCounterOffset()
|
||||||
{
|
{
|
||||||
return StorageOffset(ref _dummyStorage, ref _dummyStorage.Counter);
|
return StorageOffset(ref _dummyStorage, ref _dummyStorage.Counter);
|
||||||
|
|
|
@ -101,13 +101,13 @@ namespace Ryujinx.UI.Common.Helper
|
||||||
{
|
{
|
||||||
RegistryKey key = Registry.CurrentUser.OpenSubKey(@$"Software\Classes\{ext}");
|
RegistryKey key = Registry.CurrentUser.OpenSubKey(@$"Software\Classes\{ext}");
|
||||||
|
|
||||||
if (key is null)
|
var openCmd = key?.OpenSubKey(@"shell\open\command");
|
||||||
|
|
||||||
|
if (openCmd is null)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
var openCmd = key.OpenSubKey(@"shell\open\command");
|
|
||||||
|
|
||||||
string keyValue = (string)openCmd.GetValue(string.Empty);
|
string keyValue = (string)openCmd.GetValue(string.Empty);
|
||||||
|
|
||||||
return keyValue is not null && (keyValue.Contains("Ryujinx") || keyValue.Contains(AppDomain.CurrentDomain.FriendlyName));
|
return keyValue is not null && (keyValue.Contains("Ryujinx") || keyValue.Contains(AppDomain.CurrentDomain.FriendlyName));
|
||||||
|
|
Loading…
Reference in a new issue