Skip to content

Prashanth-DevO/Virtual_Remote_software_Linux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

linux-joystick

linux-joystick is a Linux C++ server that:

  1. Creates a virtual gamepad with /dev/uinput.
  2. Receives controller state over UDP.
  3. Applies that state to the virtual gamepad.
  4. Exposes a UDP discovery endpoint so clients can find the server.

The executable built by this repo is virtual_remote_server.

Virtual Linux Remote 🎮

System Architecture

System Architecture

Server Initialization & Runtime Flow

Server Initialization and Runtime Flow

Discovery Protocol

Discovery Protocol

Demo Screenshots

Demo Screenshot 1 Demo Screenshot 2 Demo Screenshot 3 Demo Screenshot 4 Demo Screenshot 5 Demo Screenshot 6

Key Features

  • Binary UDP controller input on 9000/udp.
  • UDP discovery service on 9002/udp.
  • Virtual gamepad output via /dev/uinput.
  • Sender pair-lock with timeout-based unlock.
  • Input watchdog that falls back to neutral state on silence.

Project Layout

  • src/: runtime implementation (server_main, controller engine, UDP receiver, discovery service, virtual gamepad).
  • include/: protocol, mapping, and public headers used by the server sources.
  • docs/demo/: architecture diagrams and demo screenshots.
  • CMakeLists.txt: builds virtual_remote_server with C++17.

Build

cmake -S . -B build
cmake --build build

Run

sudo ./build/virtual_remote_server

sudo (or equivalent permissions) is usually required for /dev/uinput.

Runtime Output

On successful start, the server prints its control and discovery ports and then waits for controller traffic.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors