You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fixed a crash-prone NULL/dangling pointer dereference in rumble processing (my_platform.c): Corrected a bitwise OR (|) to a logical OR (||) in the rumble handler. Previously, an invalid controller pointer was dereferenced on every idle cycle (8ms) for any unconnected player slot—causing continuous background faults from boot before any controller paired, leading to unpredictable behavior or hard faults on Core 1.
Secured player slot device cleanup: Fixed the source of the dangling pointer issue by ensuring the stored device pointer for a player slot is now properly cleared on disconnect, preventing it from pointing to a device object that Bluepad32 has freed or reused.
Fixed inter-core message queue duplicate check (intercore.c): Corrected a broken check that compared new messages against stale leftover data in the ring buffer rather than the actual last message sent, which could silently drop legitimate controller connect/disconnect events.
New Features & Improvements
Added Bluetooth Pairing Persistence ("Controller Saving"): Previously, all bonded controller keys were unconditionally wiped on every boot, forcing a full re-pair every time the console powered on. Controllers now stay bonded and will automatically reconnect across power cycles.