diff --git a/src/Ryujinx.Cpu/AddressTable.cs b/src/Ryujinx.Cpu/AddressTable.cs index 9f292ab10..bf2dd38e7 100644 --- a/src/Ryujinx.Cpu/AddressTable.cs +++ b/src/Ryujinx.Cpu/AddressTable.cs @@ -137,7 +137,7 @@ namespace ARMeilleure.Common /// True if the bottom page should be sparsely mapped /// is null /// Length of is less than 2 - public AddressTable(AddressTableLevel[] levels, bool sparse) + public AddressTable(AddressTableLevel[] levels, bool sparse, bool lowPower) { ArgumentNullException.ThrowIfNull(levels); @@ -157,7 +157,7 @@ namespace ARMeilleure.Common { // If the address table is sparse, allocate a fill block - _sparseFill = new MemoryBlock(65536, MemoryAllocationFlags.Mirrorable); + _sparseFill = new MemoryBlock(lowPower ? 65536ul : 268435456ul, MemoryAllocationFlags.Mirrorable); ulong bottomLevelSize = (1ul << levels.Last().Length) * (ulong)sizeof(TEntry); @@ -183,7 +183,7 @@ namespace ARMeilleure.Common // Assume software memory means that we don't want to use any signal handlers. bool sparse = type != MemoryManagerType.SoftwareMmu && type != MemoryManagerType.SoftwarePageTable; - return new AddressTable(AddressTablePresets.GetArmPreset(for64Bits, sparse, lowPower), sparse); + return new AddressTable(AddressTablePresets.GetArmPreset(for64Bits, sparse, lowPower), sparse, lowPower); } ///