Android tester v17 adds a game-controller mapping for the legacy USB Gamepad adapter 0810:0001 reported on a moto g53 5G / Android 14.
Input test confirms Android receives X/Y/Z/RZ sticks, HAT_X/Y D-pad and generic BUTTON_1..12 keys. SDL forwards those keys correctly even with their keyboard source, but its Android auto-mapper requires named A/B/X/Y buttons. The game only opens mapped controllers, so this raw joystick was ignored.
The new native fallback maps the exact matching Android layout to SDL controller events, with both sticks, D-pad, face/start/select/stick-click buttons and full-pressure digital triggers. It translates SDL's existing Linux PS1 profile for this VID/PID into Android's raw-button numbering. It installs only for an otherwise-unmapped device with the expected four-axis/numbered-button capability layout, preserves existing mappings, opens immediately after registration, guards duplicate opens and retains normal hotplug/removal behavior. Other unidentified adapters are not assigned this profile.
Retest:
- Install over the previous preview to preserve disc/save data.
- Confirm footer
0.1.57-android-preview.17, launchera43fa7a0, game98d743f7; version code 15717. - Connect the adapter and press Play; no new toggle is required. BUTTON_10 should act as Start, BUTTON_3 as bottom/A, BUTTON_2 as right/B, BUTTON_4 as left/X and BUTTON_1 as top/Y. Check movement, camera, D-pad, spraying and button release, then unplug/reconnect.
- If physical buttons or camera orientation differ, export Input test while pressing each labelled button and moving only the right stick horizontally, then vertically. Physical shoulder/right-stick assignments still need confirmation; the existing desktop profile is a starting point.
- Return to the launcher and export the game log before another Play. The log includes the accepted
Android legacy controller 0810:0001profile.
Validation: actual SDL host virtual-joystick mapping/event checks pass for exclusions, numbered buttons, digital triggers, D-pad/sticks, release events and reconnect with a distinct instance ID. These use host SDL 2.30 without video or Android; NDK builds use bundled SDL 2.32.10. Android debug/release compilation, launcher 228/228 tests and all 10/10 host graphics groups passed. Static audits verify source/version strings, mapping payload, same signing certificate, ARM64-only packaging, 16 KiB ELF/APK alignment and no ROM/save/self-test payload.
Physical gameplay input/layout validation is pending. No Android emulator/container was installed, launched or tested for this build, as requested. The input-test screen remains a diagnostic; this new build adds an actual game mapping. Memory/texture, widescreen and pacing fixes remain included. No clock-policy change or FPS improvement is claimed. v15/v16 releases and APKs remain unchanged.
Same development signing key as previous previews. Android 10+, ARM64, GLES 3.1+; no game data bundled. Separate prerelease, no merge or desktop Stable/Beta changes.
Sources pushed to both Android branches: launcher a43fa7a08b9a67fe3bd04faa722588a3637b857b, game 98d743f79fc51ee135ed4db0fb9caec83bba14d0. Companion PRs #107 and chasem-dev/sms-pc-port#98.
SHA256: f97d021e535faa912ac3506e23fbf6aa61099ecf606eb0337f5c25616565737b