From 55c8bdb842ac2ee4624be61ea22bc67f57e0ef13 Mon Sep 17 00:00:00 2001 From: AcK77 Date: Sun, 22 Apr 2018 01:01:25 +0200 Subject: [PATCH] Fix Implementations 2 --- .../OsHle/Services/Set/ISettingsServer.cs | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/Ryujinx.Core/OsHle/Services/Set/ISettingsServer.cs b/Ryujinx.Core/OsHle/Services/Set/ISettingsServer.cs index 5a5ccc0bb0..ea0303f0a9 100644 --- a/Ryujinx.Core/OsHle/Services/Set/ISettingsServer.cs +++ b/Ryujinx.Core/OsHle/Services/Set/ISettingsServer.cs @@ -1,5 +1,7 @@ using Ryujinx.Core.OsHle.Ipc; +using System; using System.Collections.Generic; +using System.IO; namespace Ryujinx.Core.OsHle.Services.Set { @@ -34,7 +36,7 @@ namespace Ryujinx.Core.OsHle.Services.Set { m_Commands = new Dictionary() { - { 0, GetLanguageCode }, + { 0, GetLanguageCode }, { 1, GetAvailableLanguageCodes }, { 3, GetAvailableLanguageCodeCount } }; @@ -42,11 +44,29 @@ namespace Ryujinx.Core.OsHle.Services.Set public static long GetLanguageCode(ServiceCtx Context) { - Context.ResponseData.Write(1L); //en-US + Context.ResponseData.Write(LanguageCodetoLongBE(LanguageCodes[1])); return 0; } + private static long LanguageCodetoLongBE(string LanguageCode) + { + using (MemoryStream MS = new MemoryStream()) + { + foreach (char Chr in LanguageCode) + { + MS.WriteByte((byte)Chr); + } + + for (int Offs = 0; Offs < (8 - LanguageCode.Length); Offs++) + { + MS.WriteByte(0); + } + + return BitConverter.ToInt64(MS.ToArray(), 0); + } + } + public static long GetAvailableLanguageCodes(ServiceCtx Context) { long Position = Context.Request.RecvListBuff[0].Position;