From 758ed467e4af5f77059dd0fa86389066e0e290f4 Mon Sep 17 00:00:00 2001 From: Narr the Reg <5944268+german77@users.noreply.github.com> Date: Tue, 24 Feb 2026 13:45:48 -0600 Subject: [PATCH] controller/nin: Fix NpadState --- include/controller/nin/seadNinJoyNpadDevice.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/include/controller/nin/seadNinJoyNpadDevice.h b/include/controller/nin/seadNinJoyNpadDevice.h index 52bd4143..22b7066a 100644 --- a/include/controller/nin/seadNinJoyNpadDevice.h +++ b/include/controller/nin/seadNinJoyNpadDevice.h @@ -33,15 +33,19 @@ class NinJoyNpadDevice : public ControlDevice static_assert(sizeof(VibrationThread) == 0x298); + struct SixAxisState + { + nn::hid::SixAxisSensorState state[16]; + }; + static_assert(sizeof(SixAxisState) == 0x600); + struct NpadState { - nn::hid::NpadBaseState mState; - u8 _28[0x258]; + SafeArray mStates; s32 mSixAxisDeviceNum; s32 mVibrationDeviceNum; SafeArray mSixAxisSensorHandles; - SafeArray mSixAxisSensorStates; - u8 _288[0xb40]; + SafeArray mSixAxisSensorStates; SafeArray mVibrationDeviceHandles; }; @@ -63,6 +67,8 @@ class NinJoyNpadDevice : public ControlDevice void disconnectNpad(s32); void sendVibrationValue(s32, s32, const nn::hid::VibrationValue&); + nn::hid::NpadJoyHoldType getNpadJoyHoldType() const { return mNpadJoyHoldType; } + const NpadState& getNpadState(s32 idx) { return mNpadStates[idx]; } private: