Initial release of 8BitDo Control Center
Provide a Linux desktop controller configuration app with evdev input, uinput remapping, profiles, calibration, and reconnect recovery. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
31
docs/ROADMAP.md
Normal file
31
docs/ROADMAP.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# Development Roadmap
|
||||
|
||||
## Completed foundations
|
||||
|
||||
- Tauri + React/TypeScript desktop shell, themes, navigation, and accessibility
|
||||
contrast mode.
|
||||
- Versioned JSON profiles with built-in templates and import/export.
|
||||
- Generic, non-copyrighted controller visualization.
|
||||
- Real evdev controller enumeration/capability probing plus a safe simulated
|
||||
fallback for development without hardware.
|
||||
- Pure, tested stick/trigger response transformation math.
|
||||
|
||||
## Next engineering milestones
|
||||
|
||||
1. Connect the reader to the transform pipeline and a managed uinput virtual
|
||||
controller with safe cleanup on disconnect/shutdown.
|
||||
2. Finish advanced mappings (macros, turbo timing, shift layers, hold/toggle
|
||||
semantics) in the output pipeline.
|
||||
3. Complete calibration sampling and custom curve editing.
|
||||
4. Add executable-based profile switching and the support-bundle exporter.
|
||||
5. Validate hardware behavior across USB, Bluetooth, and receiver modes; build
|
||||
distributable Linux packages.
|
||||
|
||||
## Safety principles
|
||||
|
||||
- No firmware changes.
|
||||
- No undocumented vendor commands.
|
||||
- No root application process.
|
||||
- Never create a virtual output device unless requested and permission checks
|
||||
pass.
|
||||
- Release virtual controls on disconnect and application shutdown.
|
||||
46
docs/TROUBLESHOOTING.md
Normal file
46
docs/TROUBLESHOOTING.md
Normal file
@@ -0,0 +1,46 @@
|
||||
# Troubleshooting
|
||||
|
||||
## The controller is not listed
|
||||
|
||||
1. Confirm the controller is powered on and in an active input mode. An
|
||||
8BitDo device shown by `lsusb` as **8BitDo IDLE** is not yet an evdev
|
||||
controller and cannot produce input events.
|
||||
2. Connect it over USB or pair it through a supported receiver/Bluetooth mode.
|
||||
3. Check kernel discovery with `ls -l /dev/input/event*` and `evtest`.
|
||||
4. Reopen the app or switch Simulation Mode off in Settings.
|
||||
|
||||
The app only reads Linux evdev capability metadata. It does not send
|
||||
undocumented commands or update controller firmware.
|
||||
|
||||
## Permission denied for input or virtual controller
|
||||
|
||||
Install the local udev rule:
|
||||
|
||||
```bash
|
||||
bash scripts/setup-linux.sh
|
||||
```
|
||||
|
||||
Then log out and back in so your new `8bitdo` group membership takes effect.
|
||||
Settings → Diagnostics reports whether `/dev/uinput` is writable.
|
||||
|
||||
## Duplicate or missing game input
|
||||
|
||||
Do not enable live remapping until the virtual controller pipeline is active
|
||||
and the physical input device is safely grabbed. Until then, keep remapping
|
||||
disabled to retain direct physical-controller input.
|
||||
|
||||
## No battery or firmware details
|
||||
|
||||
Those details are optional Linux input properties and may not be exposed by
|
||||
every controller mode. This application never queries undocumented 8BitDo
|
||||
protocols to obtain them.
|
||||
|
||||
## App will not build
|
||||
|
||||
Install development dependencies:
|
||||
|
||||
```bash
|
||||
bash scripts/dev-deps.sh
|
||||
npm install
|
||||
npm run tauri dev
|
||||
```
|
||||
Reference in New Issue
Block a user