From abccddf3b37356fa9e7d9f3e858c3b8f70213518 Mon Sep 17 00:00:00 2001 From: LotP1 Date: Wed, 27 Nov 2024 01:27:49 +0100 Subject: [PATCH 1/4] Extend address space by 1 bit --- src/ARMeilleure/Common/AddressTablePresets.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ARMeilleure/Common/AddressTablePresets.cs b/src/ARMeilleure/Common/AddressTablePresets.cs index 977e84a36..f31f269bc 100644 --- a/src/ARMeilleure/Common/AddressTablePresets.cs +++ b/src/ARMeilleure/Common/AddressTablePresets.cs @@ -39,7 +39,7 @@ namespace ARMeilleure.Common private static readonly AddressTableLevel[] _levels64BitSparseGiant = new AddressTableLevel[] { - new( 38, 1), + new( 38, 2), new( 2, 36), }; -- 2.47.1 From 72f227a1f90655ffcac7a314922df1a420931f42 Mon Sep 17 00:00:00 2001 From: LotP1 Date: Fri, 29 Nov 2024 22:30:17 +0100 Subject: [PATCH 2/4] Revert "Extend address space by 1 bit" This reverts commit 9bc2cbfcbb2fd514706593487f79b09513179967. --- src/ARMeilleure/Common/AddressTablePresets.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ARMeilleure/Common/AddressTablePresets.cs b/src/ARMeilleure/Common/AddressTablePresets.cs index f31f269bc..977e84a36 100644 --- a/src/ARMeilleure/Common/AddressTablePresets.cs +++ b/src/ARMeilleure/Common/AddressTablePresets.cs @@ -39,7 +39,7 @@ namespace ARMeilleure.Common private static readonly AddressTableLevel[] _levels64BitSparseGiant = new AddressTableLevel[] { - new( 38, 2), + new( 38, 1), new( 2, 36), }; -- 2.47.1 From 90b57a78beea183b62a8e873480765d4989cdfce Mon Sep 17 00:00:00 2001 From: LotP1 Date: Fri, 29 Nov 2024 22:31:23 +0100 Subject: [PATCH 3/4] fix incorrect masking storing 36 bits of data in a 32 bit integer doesn't work so well --- src/ARMeilleure/Common/AddressTableLevel.cs | 4 ++-- src/Ryujinx.Cpu/AddressTable.cs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ARMeilleure/Common/AddressTableLevel.cs b/src/ARMeilleure/Common/AddressTableLevel.cs index 6107726ee..af3b9b99f 100644 --- a/src/ARMeilleure/Common/AddressTableLevel.cs +++ b/src/ARMeilleure/Common/AddressTableLevel.cs @@ -36,9 +36,9 @@ namespace ARMeilleure.Common /// /// Guest address /// Value of the from the specified guest - public int GetValue(ulong address) + public long GetValue(ulong address) { - return (int)((address & Mask) >> Index); + return (long)((address & Mask) >> Index); } } } diff --git a/src/Ryujinx.Cpu/AddressTable.cs b/src/Ryujinx.Cpu/AddressTable.cs index d87b12ab0..038a2009c 100644 --- a/src/Ryujinx.Cpu/AddressTable.cs +++ b/src/Ryujinx.Cpu/AddressTable.cs @@ -238,7 +238,7 @@ namespace ARMeilleure.Common { TEntry* page = GetPage(address); - int index = Levels[^1].GetValue(address); + long index = Levels[^1].GetValue(address); EnsureMapped((IntPtr)(page + index)); -- 2.47.1 From 64cbc15491a809c0a763fcf5b828d05c72da9379 Mon Sep 17 00:00:00 2001 From: LotP1 Date: Fri, 29 Nov 2024 23:05:48 +0100 Subject: [PATCH 4/4] update ARMeillure internal version I forgot to include this change in the previous commit --- src/ARMeilleure/Translation/PTC/Ptc.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ARMeilleure/Translation/PTC/Ptc.cs b/src/ARMeilleure/Translation/PTC/Ptc.cs index c722ce6be..841e5fefa 100644 --- a/src/ARMeilleure/Translation/PTC/Ptc.cs +++ b/src/ARMeilleure/Translation/PTC/Ptc.cs @@ -30,7 +30,7 @@ namespace ARMeilleure.Translation.PTC private const string OuterHeaderMagicString = "PTCohd\0\0"; private const string InnerHeaderMagicString = "PTCihd\0\0"; - private const uint InternalVersion = 6992; //! To be incremented manually for each change to the ARMeilleure project. + private const uint InternalVersion = 6997; //! To be incremented manually for each change to the ARMeilleure project. private const string ActualDir = "0"; private const string BackupDir = "1"; -- 2.47.1