More flexible memory manager (#307)
* Keep track mapped buffers with fixed offsets * Started rewriting the memory manager * Initial support for MapPhysicalMemory and UnmapPhysicalMemory, other tweaks * MapPhysicalMemory/UnmapPhysicalMemory support, other tweaks * Rebased * Optimize the map/unmap physical memory svcs * Integrate shared font support * Fix address space reserve alignment * Some fixes related to gpu memory mapping * Some cleanup * Only try uploading const buffers that are really used * Check if memory region is contiguous * Rebased * Add missing count increment on IsRegionModified * Check for reads/writes outside of the address space, optimize translation with a tail call
This commit is contained in:
parent
76d95dee05
commit
c393cdf8e3
64 changed files with 3289 additions and 1852 deletions
|
@ -10,23 +10,23 @@ namespace Ryujinx.HLE.OsHle
|
|||
//http://switchbrew.org/index.php?title=Homebrew_ABI
|
||||
public static void WriteHbAbiData(AMemory Memory, long Position, int MainThreadHandle, string SwitchPath)
|
||||
{
|
||||
Memory.Manager.Map(Position, AMemoryMgr.PageSize, (int)MemoryType.Normal, AMemoryPerm.RW);
|
||||
|
||||
//MainThreadHandle
|
||||
//MainThreadHandle.
|
||||
WriteConfigEntry(Memory, ref Position, 1, 0, MainThreadHandle);
|
||||
|
||||
//NextLoadPath
|
||||
//NextLoadPath.
|
||||
WriteConfigEntry(Memory, ref Position, 2, 0, Position + 0x200, Position + 0x400);
|
||||
|
||||
// Argv
|
||||
//Argv.
|
||||
long ArgvPosition = Position + 0xC00;
|
||||
WriteConfigEntry(Memory, ref Position, 5, 0, 0, ArgvPosition);
|
||||
|
||||
Memory.WriteBytes(ArgvPosition, Encoding.ASCII.GetBytes(SwitchPath + "\0"));
|
||||
|
||||
//AppletType
|
||||
WriteConfigEntry(Memory, ref Position, 5, 0, 0, ArgvPosition);
|
||||
|
||||
//AppletType.
|
||||
WriteConfigEntry(Memory, ref Position, 7);
|
||||
|
||||
//EndOfList
|
||||
//EndOfList.
|
||||
WriteConfigEntry(Memory, ref Position, 0);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue