|
|
@@ -10,8 +10,12 @@ namespace Ryujinx.HLE.HOS.Services.Pctl.ParentalControlServiceFactory
|
|
|
private ulong _titleId;
|
|
|
private bool _freeCommunicationEnabled;
|
|
|
private int[] _ratingAge;
|
|
|
+
|
|
|
+ // TODO: Find where they are set.
|
|
|
+ private bool _restrictionEnabled = false;
|
|
|
private bool _featuresRestriction = false;
|
|
|
private bool _stereoVisionRestrictionConfigurable = true;
|
|
|
+
|
|
|
private bool _stereoVisionRestriction = false;
|
|
|
|
|
|
public IParentalControlService(ServiceCtx context, bool withInitialize, int permissionFlag)
|
|
|
@@ -73,13 +77,15 @@ namespace Ryujinx.HLE.HOS.Services.Pctl.ParentalControlServiceFactory
|
|
|
// CheckFreeCommunicationPermission()
|
|
|
public ResultCode CheckFreeCommunicationPermission(ServiceCtx context)
|
|
|
{
|
|
|
- Logger.Stub?.PrintStub(LogClass.ServicePctl);
|
|
|
+ // TODO: This checks some extra internal fields which are to be determined.
|
|
|
|
|
|
- if (!_freeCommunicationEnabled)
|
|
|
+ if (!_freeCommunicationEnabled && _restrictionEnabled)
|
|
|
{
|
|
|
return ResultCode.FreeCommunicationDisabled;
|
|
|
}
|
|
|
|
|
|
+ Logger.Stub?.PrintStub(LogClass.ServicePctl);
|
|
|
+
|
|
|
return ResultCode.Success;
|
|
|
}
|
|
|
|
|
|
@@ -90,6 +96,20 @@ namespace Ryujinx.HLE.HOS.Services.Pctl.ParentalControlServiceFactory
|
|
|
return IsStereoVisionPermittedImpl();
|
|
|
}
|
|
|
|
|
|
+ [Command(1031)]
|
|
|
+ // IsRestrictionEnabled() -> b8
|
|
|
+ public ResultCode IsRestrictionEnabled(ServiceCtx context)
|
|
|
+ {
|
|
|
+ if ((_permissionFlag & 0x140) == 0)
|
|
|
+ {
|
|
|
+ return ResultCode.PermissionDenied;
|
|
|
+ }
|
|
|
+
|
|
|
+ context.ResponseData.Write(_restrictionEnabled);
|
|
|
+
|
|
|
+ return ResultCode.Success;
|
|
|
+ }
|
|
|
+
|
|
|
[Command(1061)] // 4.0.0+
|
|
|
// ConfirmStereoVisionRestrictionConfigurable()
|
|
|
public ResultCode ConfirmStereoVisionRestrictionConfigurable(ServiceCtx context)
|