diff options
| author | Ac_K <Acoustik666@gmail.com> | 2021-06-28 20:54:45 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-06-28 20:54:45 +0200 |
| commit | a79b39b91347816ea14677b58af738b70df03e9c (patch) | |
| tree | 824a7e056bcd18aced7679df5adb7f5b1d4f6405 /Ryujinx.HLE/HOS/Services/Mii | |
| parent | fefd4619a5347b4ef86314a4e17e1d6e63ced297 (diff) | |
no name: Mii Editor applet support (#2419)
* no name: Mii Editor applet support
* addresses gdkchan feedback
* Fix comment
* Bypass MountCounter of MiiDatabaseManager
* Fix GetSettingsPlatformRegion
* Disable Applet Menu for unsupported firmwares
Diffstat (limited to 'Ryujinx.HLE/HOS/Services/Mii')
| -rw-r--r-- | Ryujinx.HLE/HOS/Services/Mii/Helper.cs | 2 | ||||
| -rw-r--r-- | Ryujinx.HLE/HOS/Services/Mii/IImageDatabaseService.cs | 35 | ||||
| -rw-r--r-- | Ryujinx.HLE/HOS/Services/Mii/MiiDatabaseManager.cs | 6 |
3 files changed, 39 insertions, 4 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Mii/Helper.cs b/Ryujinx.HLE/HOS/Services/Mii/Helper.cs index d5fa98ea..47debd59 100644 --- a/Ryujinx.HLE/HOS/Services/Mii/Helper.cs +++ b/Ryujinx.HLE/HOS/Services/Mii/Helper.cs @@ -36,7 +36,7 @@ namespace Ryujinx.HLE.HOS.Services.Mii public static UInt128 GetDeviceId() { // FIXME: call set:sys GetMiiAuthorId - return new UInt128(0, 1); + return new UInt128("5279754d69694e780000000000000000"); // RyuMiiNx } public static ReadOnlySpan<byte> Ver3FacelineColorTable => new byte[] { 0, 1, 2, 3, 4, 5 }; diff --git a/Ryujinx.HLE/HOS/Services/Mii/IImageDatabaseService.cs b/Ryujinx.HLE/HOS/Services/Mii/IImageDatabaseService.cs index a9f76902..1792bbb7 100644 --- a/Ryujinx.HLE/HOS/Services/Mii/IImageDatabaseService.cs +++ b/Ryujinx.HLE/HOS/Services/Mii/IImageDatabaseService.cs @@ -1,8 +1,41 @@ -namespace Ryujinx.HLE.HOS.Services.Mii +using Ryujinx.Common.Logging; + +namespace Ryujinx.HLE.HOS.Services.Mii { [Service("miiimg")] // 5.0.0+ class IImageDatabaseService : IpcService { + private uint _imageCount; + private bool _isDirty; + public IImageDatabaseService(ServiceCtx context) { } + + [CommandHipc(0)] + // Initialize(b8) -> b8 + public ResultCode Initialize(ServiceCtx context) + { + // TODO: Service uses MiiImage:/database.dat if true, seems to use hardcoded data if false. + bool useHardcodedData = context.RequestData.ReadBoolean(); + + _imageCount = 0; + _isDirty = false; + + context.ResponseData.Write(_isDirty); + + Logger.Stub?.PrintStub(LogClass.ServiceMii, new { useHardcodedData }); + + return ResultCode.Success; + } + + [CommandHipc(11)] + // GetCount() -> u32 + public ResultCode GetCount(ServiceCtx context) + { + context.ResponseData.Write(_imageCount); + + Logger.Stub?.PrintStub(LogClass.ServiceMii); + + return ResultCode.Success; + } } }
\ No newline at end of file diff --git a/Ryujinx.HLE/HOS/Services/Mii/MiiDatabaseManager.cs b/Ryujinx.HLE/HOS/Services/Mii/MiiDatabaseManager.cs index 4491f2c8..0bf15a7f 100644 --- a/Ryujinx.HLE/HOS/Services/Mii/MiiDatabaseManager.cs +++ b/Ryujinx.HLE/HOS/Services/Mii/MiiDatabaseManager.cs @@ -101,6 +101,9 @@ namespace Ryujinx.HLE.HOS.Services.Mii // Ensure we have valid data in the database _database.Format(); + // TODO: Unmount is currently not implemented properly at dispose, implement that and decrement MountCounter. + MountCounter = 0; + MountSave(); } @@ -151,8 +154,6 @@ namespace Ryujinx.HLE.HOS.Services.Mii } } - - return result; } @@ -183,6 +184,7 @@ namespace Ryujinx.HLE.HOS.Services.Mii if (result.IsSuccess()) { result = _filesystemClient.GetFileSize(out long fileSize, handle); + if (result.IsSuccess()) { if (fileSize == Unsafe.SizeOf<NintendoFigurineDatabase>()) |
