GetFirstActivePadConfig returns a dummy config if nothing is connected, which
didn't have any of its arrays created. Fill in dummy arrays for enabledSensors,
etc. so refreshes don't throw exceptions if they're updated right when the
last controller disconnects. (This is a rare race condition and I've only
seen it while stepping in the debugger and disconnecting while stopped.)
This fixes the pad flickering when dragging the color slider, because it
could briefly use an out-of-date configuration (only really visible when
going between red and white on the left).
If this is used to play GIF animations on the pad, being able to have
it launch on startup is useful.
This is disabled by default and there's no UI to enable it yet.
This is the same as SMX_SetLights, but instead of taking one buffer with a
fixed size, it takes a separate buffer for each pad, and explicitly includes
the size of the buffer rather than assuming it's 864 bytes. SMX_SetLights
and SMX_SetLights2 call into the same underlying update.
This fixes the default always being up-left (which is usually disabled),
causing the color slider to not do anything until you select a different
panel.
This improves recovery if a start packet is received when we didn't receive a complete
packet earlier. This doesn't normally happen, this just matches the error recovery used
in game.
Having this at 5 is causing confusion, since the hardware isn't actually designed
to have the thresholds so close together. This was set to 5 for internal testing,
but it's not actually useful to have them so close together. The thresholds exist
to prevent ghosting and strobing on the panels, and putting the thresholds very
close together prevents them from doing that.
This caused SMXConfig to think it was setting both controller configurations even
when only one was connected, which made the UI not refresh correctly if only P2
was connected.