Shokunin
ca82734bb8
sio: add the NeGcon (0x23) controller type
...
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 >
2026-10-05 19:25:38 -07:00
..
2026-09-03 07:39:06 -07:00
2026-09-30 15:57:32 +03:00
2026-06-06 23:04:23 -07:00
2026-09-30 19:26:29 -04:00
2026-10-01 09:39:57 +03:00
2026-10-04 19:27:02 -07:00
2026-09-30 22:18:36 +03:00
2026-09-30 02:43:46 -07:00
2026-10-04 19:27:02 -07:00
2026-07-13 21:52:25 -07:00
2026-10-04 19:37:19 -07:00
2026-10-04 05:56:08 +08:00
2026-10-05 21:41:42 +08:00
2026-10-05 21:41:42 +08:00
2026-10-05 23:15:48 +08:00
2026-07-19 12:11:56 -07:00
2026-09-05 12:38:01 -07:00
2026-08-11 14:34:12 -07:00
2026-07-20 13:42:06 -07:00
2026-07-29 03:18:10 -04:00
2026-09-30 19:26:29 -04:00
2026-08-31 09:16:14 +03:00
2026-07-29 03:18:10 -04:00
2026-09-30 19:26:29 -04:00
2026-10-03 23:46:25 -07:00
2026-09-26 06:43:12 -07:00
2026-07-17 23:56:58 -07:00
2026-04-28 21:29:19 -07:00
2026-08-05 18:16:16 -07:00
2026-08-11 14:34:12 -07:00
2026-09-30 12:55:56 -07:00
2026-08-30 23:24:47 +03:00
2026-04-28 21:29:19 -07:00
2026-09-11 23:39:11 -07:00
2026-09-11 23:39:11 -07:00
2026-10-05 12:57:31 -07:00
2026-08-01 02:15:34 -07:00
2026-07-20 17:34:12 -07:00
2026-09-26 06:31:33 -07:00
2026-09-11 23:39:47 -07:00
2026-10-04 10:50:02 -07:00
2026-09-14 17:26:33 +03:00
2026-08-27 21:17:20 -07:00
2026-09-28 16:54:33 -07:00
2026-08-31 09:15:39 +03:00
2026-09-03 01:23:01 +03:00
2026-09-30 22:36:54 +03:00
2026-10-04 19:27:02 -07:00
2026-10-03 23:46:26 -07:00
2026-09-05 19:53:03 +03:00
2026-07-29 03:18:10 -04:00
2026-09-07 16:11:22 +03:00
2026-10-04 17:59:57 -07:00
2026-08-14 19:12:37 -07:00
2026-09-28 18:30:24 -07:00
2026-08-27 13:21:17 -07:00
2026-08-27 13:21:17 -07:00
2026-09-28 21:02:43 -07:00
2026-09-28 21:02:43 -07:00
2026-06-09 20:09:25 -07:00
2026-08-29 04:33:56 +03:00
2026-10-01 02:56:05 -07:00
2026-08-29 04:43:30 +03:00
2026-10-05 10:11:09 -07:00
2026-10-05 10:12:14 -07:00
2026-09-06 13:36:37 +03:00
2026-10-05 21:41:42 +08:00
2026-09-28 20:52:23 -07:00
2026-10-03 23:46:25 -07:00
2026-10-04 19:27:02 -07:00
2026-07-14 18:35:07 -07:00
2026-07-14 18:34:32 -07:00
2026-10-04 19:27:02 -07:00
2026-09-08 12:52:09 -07:00
2026-09-26 08:03:57 -07:00
2026-10-04 23:18:39 -07:00
2026-07-21 15:54:07 -07:00
2026-09-14 17:26:34 +03:00
2026-10-05 13:25:10 -07:00
2026-09-14 17:26:31 +03:00
2026-08-25 01:50:55 -07:00
2026-09-29 20:57:11 -07:00
2026-10-04 17:59:57 -07:00
2026-08-25 20:37:49 -07:00
2026-09-28 20:52:23 -07:00
2026-10-03 23:51:13 -07:00
2026-09-30 22:18:36 +03:00
2026-10-03 23:46:26 -07:00
2026-10-03 23:51:13 -07:00
2026-10-01 09:39:57 +03:00
2026-09-30 02:43:46 -07:00
2026-09-29 17:55:26 -07:00
2026-07-14 20:03:02 -07:00
2026-09-24 14:38:03 -07:00
2026-08-15 12:15:23 +03:00
2026-09-14 17:26:30 +03:00
2026-09-11 16:38:34 -04:00
2026-10-05 13:49:35 -07:00
2026-09-30 12:55:56 -07:00
2026-07-29 03:18:10 -04:00
2026-09-28 23:42:17 -07:00
2026-09-28 23:42:17 -07:00
2026-09-11 23:39:47 -07:00
2026-09-30 16:10:59 +03:00
2026-10-05 13:49:35 -07:00
2026-10-02 15:44:09 -07:00
2026-09-30 20:23:16 -07:00
2026-09-29 21:57:34 -07:00
2026-08-31 19:28:10 -07:00
2026-09-25 22:27:47 -07:00
2026-09-30 12:55:56 -07:00
2026-08-25 20:37:49 -07:00
2026-10-04 10:46:04 -07:00
2026-09-13 16:50:26 -07:00
2026-09-28 23:42:17 -07:00
2026-09-29 20:57:11 -07:00
2026-10-03 23:46:25 -07:00
2026-10-01 11:36:48 -07:00
2026-09-29 20:57:11 -07:00
2026-10-04 20:55:30 -07:00
2026-10-04 19:29:17 -07:00
2026-09-28 16:26:33 -07:00
2026-09-13 21:06:58 -07:00
2026-10-05 13:49:35 -07:00
2026-09-28 16:51:21 -07:00
2026-09-28 22:05:03 -07:00
2026-10-03 23:51:14 -07:00
2026-09-30 15:58:52 +03:00
2026-09-30 14:30:38 -07:00
2026-10-02 19:13:57 +03:00
2026-08-11 14:34:12 -07:00
2026-10-05 12:57:31 -07:00
2026-08-11 23:52:31 -04:00
2026-10-02 19:13:57 +03:00
2026-10-05 23:15:48 +08:00
2026-10-05 13:41:02 -07:00
2026-07-20 14:13:46 -07:00
2026-09-30 02:43:45 -07:00
2026-10-05 03:23:18 -07:00
2026-09-26 08:03:57 -07:00
2026-09-30 02:43:46 -07:00
2026-09-11 23:39:47 -07:00
2026-07-19 16:19:57 -07:00
2026-07-19 12:11:56 -07:00
2026-09-26 08:03:58 -07:00
2026-09-30 02:43:46 -07:00
2026-09-30 02:43:46 -07:00
2026-07-18 08:32:42 -07:00
2026-09-28 18:03:43 -07:00
2026-09-30 14:27:29 -07:00
2026-10-05 13:49:35 -07:00
2026-08-31 19:28:10 -07:00
2026-09-30 22:24:10 +03:00
2026-10-05 12:41:59 -07:00
2026-10-05 03:40:41 -07:00
2026-08-30 14:20:09 -04:00
2026-10-04 10:55:58 -07:00
2026-08-06 00:52:14 -04:00
2026-08-27 16:26:44 +03:00
2026-09-12 23:30:41 -07:00
2026-07-19 12:11:56 -07:00
2026-07-19 14:54:30 -07:00
2026-09-26 08:03:57 -07:00
2026-10-04 10:50:02 -07:00
2026-09-30 00:24:07 -07:00
2026-10-05 12:57:31 -07:00
2026-08-25 01:54:42 -07:00
2026-09-26 15:38:21 -07:00
2026-08-11 14:34:12 -07:00
2026-08-31 09:15:51 +03:00
2026-10-02 15:49:13 -07:00
2026-09-11 23:39:47 -07:00
2026-10-04 11:03:01 -07:00
2026-10-03 23:46:25 -07:00
2026-10-04 05:54:05 +08:00
2026-10-03 23:46:25 -07:00
2026-10-04 10:59:28 -07:00
2026-10-03 23:46:25 -07:00
2026-10-04 10:57:48 -07:00
2026-09-04 07:33:08 -04:00
2026-07-18 08:32:42 -07:00
2026-09-30 20:23:16 -07:00
2026-09-05 21:47:40 +03:00
2026-08-25 01:39:33 -07:00
2026-10-04 19:27:02 -07:00
2026-10-02 12:21:53 -07:00
2026-09-07 17:17:30 +03:00
2026-09-13 16:33:46 -07:00
2026-10-05 13:49:35 -07:00
2026-10-05 19:25:38 -07:00
2026-10-05 19:25:38 -07:00
2026-10-05 19:25:38 -07:00
2026-09-13 16:33:46 -07:00
2026-08-11 14:34:12 -07:00
2026-08-05 18:16:16 -07:00
2026-07-14 18:56:51 -07:00
2026-08-21 23:34:25 +01:00
2026-08-26 21:43:28 +03:00
2026-09-05 12:17:16 -04:00
2026-10-03 23:51:13 -07:00
2026-09-30 22:14:24 +03:00
2026-09-30 22:14:24 +03:00
2026-08-25 02:11:25 -07:00
2026-07-29 03:18:10 -04:00
2026-07-21 15:54:17 -07:00
2026-07-21 15:54:29 -07:00
2026-09-06 14:16:53 +03:00
2026-07-21 15:55:06 -07:00
2026-07-21 15:55:11 -07:00
2026-08-25 11:17:44 -04:00
2026-07-21 15:54:42 -07:00
2026-10-04 05:54:05 +08:00
2026-10-02 12:25:00 -07:00
2026-09-30 23:30:28 -07:00
2026-09-24 14:42:12 -07:00
2026-09-12 14:47:47 -07:00
2026-07-29 03:18:10 -04:00
2026-10-03 23:46:25 -07:00
2026-10-03 23:51:14 -07:00
2026-09-30 21:38:17 -07:00
2026-09-03 01:20:41 +03:00
2026-09-07 22:40:23 -07:00
2026-09-13 19:27:03 -07:00
2026-10-02 20:42:00 -07:00
2026-10-01 16:43:56 -07:00
2026-10-01 11:13:30 -07:00
2026-09-19 20:02:29 -07:00
2026-09-19 19:06:42 -07:00
2026-09-20 12:01:32 -07:00
2026-10-04 10:42:45 -07:00