public long SetNpadJoyAssignmentModeDual(ServiceCtx Context) { HidControllerId HidControllerId = (HidControllerId)Context.RequestData.ReadInt32(); long AppletUserResourseId = Context.RequestData.ReadInt64(); return(0); }
public static NpadIdType GetNpadIdTypeFromIndex(HidControllerId index) { switch (index) { case HidControllerId.ControllerPlayer1: return(NpadIdType.Player1); case HidControllerId.ControllerPlayer2: return(NpadIdType.Player2); case HidControllerId.ControllerPlayer3: return(NpadIdType.Player3); case HidControllerId.ControllerPlayer4: return(NpadIdType.Player4); case HidControllerId.ControllerPlayer5: return(NpadIdType.Player5); case HidControllerId.ControllerPlayer6: return(NpadIdType.Player6); case HidControllerId.ControllerPlayer7: return(NpadIdType.Player7); case HidControllerId.ControllerPlayer8: return(NpadIdType.Player8); case HidControllerId.ControllerHandheld: return(NpadIdType.Handheld); case HidControllerId.ControllerUnknown: return(NpadIdType.Unknown); default: throw new ArgumentOutOfRangeException(nameof(index)); } }
public long SetNpadJoyAssignmentModeDual(ServiceCtx Context) { HidControllerId HidControllerId = (HidControllerId)Context.RequestData.ReadInt32(); long AppletUserResourceId = Context.RequestData.ReadInt64(); Logging.Stub(LogClass.ServiceHid, "Stubbed"); return(0); }
public virtual void Connect(HidControllerId controllerId) { ControllerId = controllerId; Offset = Device.Hid.HidPosition + HidControllersOffset + (int)controllerId * HidControllerSize; Device.Memory.FillWithZeros(Offset, 0x5000); Device.Memory.WriteInt32(Offset + 0x00, (int)HidControllerType); }
public long SetNpadJoyAssignmentModeSingleByDefault(ServiceCtx Context) { HidControllerId HidControllerId = (HidControllerId)Context.RequestData.ReadInt32(); long AppletUserResourceId = Context.RequestData.ReadInt64(); Context.Ns.Log.PrintStub(LogClass.ServiceHid, "Stubbed."); return(0); }
public void SetJoyconButton( HidControllerId ControllerId, HidControllerLayouts ControllerLayout, HidControllerButtons Buttons, HidJoystickPosition LeftStick, HidJoystickPosition RightStick) { Buttons |= UpdateStickButtons(LeftStick, RightStick); long ControllerOffset = HidPosition + HidControllersOffset; ControllerOffset += (int)ControllerId * HidControllerSize; ControllerOffset += HidControllerHeaderSize; ControllerOffset += (int)ControllerLayout * HidControllerLayoutsSize; long LastEntry = Device.Memory.ReadInt64(ControllerOffset + 0x10); long CurrEntry = (LastEntry + 1) % HidEntryCount; long Timestamp = GetTimestamp(); Device.Memory.WriteInt64(ControllerOffset + 0x0, Timestamp); Device.Memory.WriteInt64(ControllerOffset + 0x8, HidEntryCount); Device.Memory.WriteInt64(ControllerOffset + 0x10, CurrEntry); Device.Memory.WriteInt64(ControllerOffset + 0x18, HidEntryCount - 1); ControllerOffset += HidControllersLayoutHeaderSize; long LastEntryOffset = ControllerOffset + LastEntry * HidControllersInputEntrySize; ControllerOffset += CurrEntry * HidControllersInputEntrySize; long SampleCounter = Device.Memory.ReadInt64(LastEntryOffset) + 1; Device.Memory.WriteInt64(ControllerOffset + 0x0, SampleCounter); Device.Memory.WriteInt64(ControllerOffset + 0x8, SampleCounter); Device.Memory.WriteInt64(ControllerOffset + 0x10, (uint)Buttons); Device.Memory.WriteInt32(ControllerOffset + 0x18, LeftStick.DX); Device.Memory.WriteInt32(ControllerOffset + 0x1c, LeftStick.DY); Device.Memory.WriteInt32(ControllerOffset + 0x20, RightStick.DX); Device.Memory.WriteInt32(ControllerOffset + 0x24, RightStick.DY); Device.Memory.WriteInt64(ControllerOffset + 0x28, (uint)HidControllerConnState.Controller_State_Connected | (uint)HidControllerConnState.Controller_State_Wired); }
public void InitilizePrimaryController(HidControllerType controllerType) { HidControllerId controllerId = controllerType == HidControllerType.Handheld ? HidControllerId.ControllerHandheld : HidControllerId.ControllerPlayer1; if (controllerType == HidControllerType.ProController) { PrimaryController = new HidProController(_device); } else { PrimaryController = new HidNpadController(controllerType, _device, (NpadColor.BodyNeonRed, NpadColor.BodyNeonRed), (NpadColor.ButtonsNeonBlue, NpadColor.ButtonsNeonBlue)); } PrimaryController.Connect(controllerId); }
public override void Connect(HidControllerId ControllerId) { base.Connect(ControllerId); HidControllerColorDesc SingleColorDesc = HidControllerColorDesc.ColorDesc_ColorsNonexistent; HidControllerColorDesc SplitColorDesc = 0; NpadColor SingleColorBody = NpadColor.Black; NpadColor SingleColorButtons = NpadColor.Black; Device.Memory.WriteInt32(Offset + 0x08, (int)SingleColorDesc); Device.Memory.WriteInt32(Offset + 0x0c, (int)SingleColorBody); Device.Memory.WriteInt32(Offset + 0x10, (int)SingleColorButtons); Device.Memory.WriteInt32(Offset + 0x14, (int)SplitColorDesc); Connected = true; }
public void InitilizePrimaryController(HidControllerType ControllerType) { HidControllerId ControllerId = ControllerType == HidControllerType.Handheld ? HidControllerId.CONTROLLER_HANDHELD : HidControllerId.CONTROLLER_PLAYER_1; if (ControllerType == HidControllerType.ProController) { PrimaryController = new HidProController(Device); } else { PrimaryController = new HidNpadController(ControllerType, Device, (NpadColor.Body_Neon_Red, NpadColor.Body_Neon_Red), (NpadColor.Buttons_Neon_Blue, NpadColor.Buttons_Neon_Blue)); } PrimaryController.Connect(ControllerId); }
// GetNpadIrCameraHandle(u32) -> nn::irsensor::IrCameraHandle public long GetNpadIrCameraHandle(ServiceCtx context) { NpadIdType npadIdType = (NpadIdType)context.RequestData.ReadUInt32(); if (npadIdType > NpadIdType.Player8 && npadIdType != NpadIdType.Unknown && npadIdType != NpadIdType.Handheld) { return(ErrorCode.MakeError(ErrorModule.Irsensor, IrsError.NpadIdOutOfRange)); } HidControllerId irCameraHandle = HidUtils.GetIndexFromNpadIdType(npadIdType); context.ResponseData.Write((int)irCameraHandle); // NOTE: If the irCameraHandle pointer is null this error is returned, Doesn't occur in our case. // return ErrorCode.MakeError(ErrorModule.Irsensor, IrsError.HandlePointerIsNull); return(0); }
// GetNpadIrCameraHandle(u32) -> nn::irsensor::IrCameraHandle public ResultCode GetNpadIrCameraHandle(ServiceCtx context) { NpadIdType npadIdType = (NpadIdType)context.RequestData.ReadUInt32(); if (npadIdType > NpadIdType.Player8 && npadIdType != NpadIdType.Unknown && npadIdType != NpadIdType.Handheld) { return(ResultCode.NpadIdOutOfRange); } HidControllerId irCameraHandle = HidUtils.GetIndexFromNpadIdType(npadIdType); context.ResponseData.Write((int)irCameraHandle); // NOTE: If the irCameraHandle pointer is null this error is returned, Doesn't occur in our case. // return ResultCode.HandlePointerIsNull; return(ResultCode.Success); }