mirror of
https://github.com/ARMSX2/ARMSX3.git
synced 2026-08-24 16:58:52 -07:00
Ports 2-7 were left as Null pad handlers unless a USB device happened to be plugged in. The loop that claims them for the virtual handler existed, but only inside _rpcsx_usbDeviceEvent, so it ran on a USB plug/unplug and nowhere else. A second controller on a phone is normally BLUETOOTH, which never produces that event, so those ports stayed Null and a second pad did not exist in the core at all. Per-player button mapping therefore looked correct -- the UI stores those bindings regardless -- while the second controller did nothing in game. Reported against Tekken 6. Now claimed at startup, next to player 1. Also adds a KEYBOARD touch button (Kind.STATEACTION, so it emits no pad code and calls MainActivityRuntime.toggleSoftKeyboard) for the same reason the hotkey exists: to reach the keyboard without pausing. The hotkey needs a spare pad button, which a touch-only player does not have. Opt-in, absent from the default layout, like the save/load/screenshot buttons. Appending to TouchButtonId is safe: touch layouts serialise the id by NAME (TouchButtonId.valueOf), unlike SysHotkey which is persisted by ordinal.