Implement mii:u and mii:e entirely (#955)

* Implement mii:u and mii:e entirely

Co-authored-by: AcK77 <Acoustik666@gmail.com>

This commit implement the mii service accurately.

This is based on Ac_k work but was polished and updated to 7.x.

Please note that the following calls are partially implemented:

- Convert: Used to convert from old console format (Wii/Wii U/3ds)
- Import and Export: this is shouldn't be accesible in production mode.

* Remove some debug leftovers

* Make it possible to load an arbitrary mii database from a Switch

* Address gdk's comments

* Reduce visibility of all the Mii code

* Address Ac_K's comments

* Remove the StructLayout of DatabaseSessionMetadata

* Add a missing line return in DatabaseSessionMetadata

* Misc fixes and style changes

* Fix some issues from last commit

* Fix database server metadata UpdateCounter in MarkDirty (Thanks Moose for the catch)

* MountCounter should only be incremented when no error is reported

* Fix FixDatabase

Co-authored-by: Alex Barney <thealexbarney@gmail.com>
This commit is contained in:
Thog 2020-03-01 23:56:02 +01:00 committed by GitHub
parent 7d1a294eae
commit 3b531de670
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
49 changed files with 6728 additions and 15 deletions

View file

@ -0,0 +1,29 @@
namespace Ryujinx.HLE.HOS.Services.Mii
{
public enum ResultCode
{
ModuleId = 126,
ErrorCodeShift = 9,
Success = 0,
InvalidArgument = (1 << ErrorCodeShift) | ModuleId,
BufferTooSmall = (2 << ErrorCodeShift) | ModuleId,
NotUpdated = (3 << ErrorCodeShift) | ModuleId,
NotFound = (4 << ErrorCodeShift) | ModuleId,
DatabaseFull = (5 << ErrorCodeShift) | ModuleId,
InvalidCharInfo = (100 << ErrorCodeShift) | ModuleId,
InvalidCrc = (101 << ErrorCodeShift) | ModuleId,
InvalidDeviceCrc = (102 << ErrorCodeShift) | ModuleId,
InvalidDatabaseMagic = (103 << ErrorCodeShift) | ModuleId,
InvalidDatabaseVersion = (104 << ErrorCodeShift) | ModuleId,
InvalidDatabaseSize = (105 << ErrorCodeShift) | ModuleId,
InvalidCreateId = (106 << ErrorCodeShift) | ModuleId,
InvalidCoreData = (108 << ErrorCodeShift) | ModuleId,
InvalidStoreData = (109 << ErrorCodeShift) | ModuleId,
InvalidOperationOnSpecialMii = (202 << ErrorCodeShift) | ModuleId,
PermissionDenied = (203 << ErrorCodeShift) | ModuleId,
TestModeNotEnabled = (204 << ErrorCodeShift) | ModuleId,
}
}