diff options
| author | Ac_K <Acoustik666@gmail.com> | 2018-02-22 01:51:17 +0100 |
|---|---|---|
| committer | gdkchan <gab.dark.100@gmail.com> | 2018-02-21 21:51:17 -0300 |
| commit | 224211367f52cf514f0608d69056e84a3ef37ff5 (patch) | |
| tree | 9c8658f1dd3224dc7d004075514a8cd566f69e34 /Ryujinx.Core/OsHle/Homebrew.cs | |
| parent | b2f733da7839ff8ba7a70a529cb9eb3eea9f0af6 (diff) | |
Initiale hbmenu.nro support (#32)
* Initiale hbmenu.nro support
Implement missing SetScreenShotPermission object.
Implement missing IsCurrentProcessBeingDebugged in SVC.
Add a Extension variable to Executable.
Add basic support of hbmenu.nro.
* Homebrew.cs correction
Diffstat (limited to 'Ryujinx.Core/OsHle/Homebrew.cs')
| -rw-r--r-- | Ryujinx.Core/OsHle/Homebrew.cs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/Ryujinx.Core/OsHle/Homebrew.cs b/Ryujinx.Core/OsHle/Homebrew.cs new file mode 100644 index 00000000..b69b31c9 --- /dev/null +++ b/Ryujinx.Core/OsHle/Homebrew.cs @@ -0,0 +1,34 @@ +using ChocolArm64.Memory; + +namespace Ryujinx.Core.OsHle +{ + public class Homebrew + { + //http://switchbrew.org/index.php?title=Homebrew_ABI + public Homebrew(AMemory Memory, long Position, long MainThreadHandle) + { + //(NbrKeys * LoaderConfigEntrySize) + 2 buffers for Key2 + long Size = (4 * 0x18) + 0x1000; + Memory.Manager.MapPhys(Position, Size, (int)MemoryType.Normal, AMemoryPerm.RW); + + //MainThreadHandle + WriteConfigEntry(Memory, ref Position, 1, 0, MainThreadHandle); + //NextLoadPath + WriteConfigEntry(Memory, ref Position, 2, 0, Position + Size, Position + Size + 0x200); + //AppletType + WriteConfigEntry(Memory, ref Position, 7); + //EndOfList + WriteConfigEntry(Memory, ref Position, 0); + } + + private void WriteConfigEntry(AMemory Memory, ref long Position, int Key, int Flags = 0, long Value0 = 0L, long Value1 = 0L) + { + Memory.WriteInt32(Position + 0x00, Key); + Memory.WriteInt32(Position + 0x04, Flags); + Memory.WriteInt64(Position + 0x08, Value0); + Memory.WriteInt64(Position + 0x10, Value1); + + Position += 0x18; + } + } +} |
