diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2018-02-23 21:59:38 -0300 |
|---|---|---|
| committer | gdkchan <gab.dark.100@gmail.com> | 2018-02-23 21:59:38 -0300 |
| commit | 3936c934482a587635bc5a1e47962551aeb53aeb (patch) | |
| tree | 7df4ab78fe30ea27edcda9e54a32a8d132717225 /Ryujinx.Core/OsHle/Process.cs | |
| parent | 2ed733b1d5addad027f48acfdd407e64b71427fc (diff) | |
Map heap on heap base region, fix for thread start on homebrew, add FCVTMU and FCVTPU (general) instructions, fix FMOV (higher 64 bits) encodings, improve emit code for FCVT* (general) instructions
Diffstat (limited to 'Ryujinx.Core/OsHle/Process.cs')
| -rw-r--r-- | Ryujinx.Core/OsHle/Process.cs | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/Ryujinx.Core/OsHle/Process.cs b/Ryujinx.Core/OsHle/Process.cs index 022dc0f9..3e265ed3 100644 --- a/Ryujinx.Core/OsHle/Process.cs +++ b/Ryujinx.Core/OsHle/Process.cs @@ -86,10 +86,10 @@ namespace Ryujinx.Core.OsHle public void InitializeHeap() { - Memory.Manager.SetHeapAddr((ImageBase + 0x3fffffff) & ~0x3fffffff); + Memory.Manager.SetHeapAddr(MemoryRegions.HeapRegionAddress); } - public bool Run() + public bool Run(bool UseHbAbi = false) { if (Executables.Count == 0) { @@ -109,6 +109,14 @@ namespace Ryujinx.Core.OsHle MainThread = Ns.Os.Handles.GetData<HThread>(Handle); + if (UseHbAbi) + { + Homebrew Homebrew_ABI = new Homebrew(Memory, Executables[0].ImageEnd, (long)Handle); + + MainThread.Thread.ThreadState.X0 = (ulong)Executables[0].ImageEnd; + MainThread.Thread.ThreadState.X1 = ulong.MaxValue; + } + Scheduler.StartThread(MainThread); return true; @@ -186,13 +194,6 @@ namespace Ryujinx.Core.OsHle Thread.ThreadState.X1 = (ulong)Handle; Thread.ThreadState.X31 = (ulong)StackTop; - if (Executables[0].Extension == Extensions.NRO) - { - Homebrew Homebrew_ABI = new Homebrew(Memory, Executables[0].ImageEnd, (long)Handle); - Thread.ThreadState.X0 = (ulong)Executables[0].ImageEnd; - Thread.ThreadState.X1 = 0xFFFFFFFFFFFFFFFF; - } - Thread.WorkFinished += ThreadFinished; ThreadsByTpidr.TryAdd(Thread.ThreadState.Tpidr, ThreadHnd); |
