From 4906acdde96c09b4e12a3801a4bacd5233a2f8e6 Mon Sep 17 00:00:00 2001 From: Ac_K Date: Sat, 21 Apr 2018 23:04:43 +0000 Subject: Some implementations (#99) * Some implementations - ICommonStateGetter * GetBootMode - ISelfController * SetHandlesRequestToDisplay - IServiceGetterInterface - ISystemUpdateInterface - IVulnerabilityManagerInterface - IPrepoService - ISettingsServer * GetLanguageCode - ISystemSettingsServer * GetFirmwareVersion2 - IHOSBinderDriver * TransactParcelAuto * Fix Implementations * Fix Implementations 2 --- Ryujinx.Core/OsHle/Services/Set/ISettingsServer.cs | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'Ryujinx.Core/OsHle/Services/Set/ISettingsServer.cs') diff --git a/Ryujinx.Core/OsHle/Services/Set/ISettingsServer.cs b/Ryujinx.Core/OsHle/Services/Set/ISettingsServer.cs index 9d5b4888..ea0303f0 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,11 +36,37 @@ namespace Ryujinx.Core.OsHle.Services.Set { m_Commands = new Dictionary() { + { 0, GetLanguageCode }, { 1, GetAvailableLanguageCodes }, { 3, GetAvailableLanguageCodeCount } }; } + public static long GetLanguageCode(ServiceCtx Context) + { + 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; -- cgit v1.2.3