Allow access to code memory for exefs mods (#5518)
* Allow access to code memory for exefs mods * Add ASLR workaround for Skyline * Hardcode allowCodeMemoryForJit to true
This commit is contained in:
parent
773e239db7
commit
5e9678c8fa
5 changed files with 63 additions and 17 deletions
|
@ -89,9 +89,6 @@ namespace Ryujinx.HLE.Loaders.Processes.Extensions
|
|||
Logger.Warning?.Print(LogClass.Ptc, "Detected unsupported ExeFs modifications. PTC disabled.");
|
||||
}
|
||||
|
||||
// We allow it for nx-hbloader because it can be used to launch homebrew.
|
||||
bool allowCodeMemoryForJit = programId == 0x010000000000100DUL || isHomebrew;
|
||||
|
||||
string programName = "";
|
||||
|
||||
if (!isHomebrew && programId > 0x010000000000FFFF)
|
||||
|
@ -119,7 +116,7 @@ namespace Ryujinx.HLE.Loaders.Processes.Extensions
|
|||
metaLoader,
|
||||
nacpData,
|
||||
enablePtc,
|
||||
allowCodeMemoryForJit,
|
||||
true,
|
||||
programName,
|
||||
metaLoader.GetProgramId(),
|
||||
null,
|
||||
|
|
|
@ -28,6 +28,11 @@ namespace Ryujinx.HLE.Loaders.Processes
|
|||
{
|
||||
static class ProcessLoaderHelper
|
||||
{
|
||||
// NOTE: If you want to change this value make sure to increment the InternalVersion of Ptc and PtcProfiler.
|
||||
// You also need to add a new migration path and adjust the existing ones.
|
||||
// TODO: Remove this workaround when ASLR is implemented.
|
||||
private const ulong CodeStartOffset = 0x500000UL;
|
||||
|
||||
public static LibHac.Result RegisterProgramMapInfo(Switch device, PartitionFileSystem partitionFileSystem)
|
||||
{
|
||||
ulong applicationId = 0;
|
||||
|
@ -242,7 +247,7 @@ namespace Ryujinx.HLE.Loaders.Processes
|
|||
|
||||
ulong argsStart = 0;
|
||||
uint argsSize = 0;
|
||||
ulong codeStart = (meta.Flags & 1) != 0 ? 0x8000000UL : 0x200000UL;
|
||||
ulong codeStart = ((meta.Flags & 1) != 0 ? 0x8000000UL : 0x200000UL) + CodeStartOffset;
|
||||
uint codeSize = 0;
|
||||
|
||||
var buildIds = executables.Select(e => (e switch
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue