mirror of
https://github.com/RetroPortingToolKit/psxrecomp
synced 2026-10-28 02:56:36 -04:00
ca82734bb8
SIO_PAD_NEGCON = 3 presents a Namco NeGcon (NPC-101): poll ID 0x23 with buttons, twist (left X), then analog I, II and L (Mednafen negcon.cpp). sio_set_pad_negcon() supplies I/II/L per frame like the sticks. The device has no config mode: any command but 0x42 gets the ID byte with no ACK, and game bytes in a poll drive no motors. Multitap seats stay digital unless the analog-on-tap hack is armed; the bulk status block carries the NeGcon frame. Entering or leaving NeGcon is a device swap, not the DualShock analog button: a deferred request applies even while the game holds the 0x44 mode lock, and the swap clears the lock, config latch and motor map. Requests raised mid-config still wait for config exit. 0x44 now selects the analog mode of the device in the port: a JogCon the game set to digital returns as a JogCon instead of becoming a DualShock. The mode lock and that device are guest state, so they join the snapshot as an appended section (older snapshots still load, unlocked). pad_status reports negcon and mode_locked per slot. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>