feat: preserve native HD rumble on Switch 2 controllers

This commit is contained in:
Joey Yakimowich-Payne 2026-09-07 08:19:53 -06:00
commit 006b573ee8
25 changed files with 1722 additions and 60 deletions

View file

@ -6,6 +6,7 @@
// The parser uses the SDK's actual GATT types/accessors. Only the asynchronous
// radio, run loop, platform admission and persistence endpoints are simulated.
enum fixture_query { QUERY_NONE, QUERY_SERVICE, QUERY_CHARACTERISTICS, QUERY_DESCRIPTORS, QUERY_CCCD, QUERY_WRITE };
#define FIXTURE_RUMBLE_HISTORY 128
struct fixture_peer {
uni_hid_device_t device;
bool used, link_alive;
@ -16,7 +17,10 @@ struct fixture_peer {
uint16_t command_length;
const uint8_t* pending_write;
uint16_t pending_length;
uint8_t pending_snapshot[33];
uint8_t rumble[33];
uint16_t rumble_length;
unsigned commands, rumbles;
uint8_t rumble_history[FIXTURE_RUMBLE_HISTORY][33];
uint32_t rumble_times[FIXTURE_RUMBLE_HISTORY];
};