Skip to content

feat: initial Rust implementation of x360ce#1

Merged
rozsazoltan merged 29 commits into
masterfrom
feat/starter
Jul 16, 2026
Merged

feat: initial Rust implementation of x360ce#1
rozsazoltan merged 29 commits into
masterfrom
feat/starter

Conversation

@rozsazoltan

Copy link
Copy Markdown
Owner

Summary

Initial merge of the Rust-based x360ce application.

This PR introduces a Windows-native controller mapping application that reads physical gamepad input and forwards it to a virtual Xbox 360 controller through ViGEm.

Included

  • Rust-based Windows desktop application
  • SDL2 physical controller input
  • ViGEm virtual Xbox 360 controller output
  • Controller discovery and device selection
  • Per-controller mapping profiles
  • Live physical input monitoring
  • Interactive virtual Xbox 360 layout
  • Double-click mapping learn mode
  • Escape key to cancel learning
  • Positive and negative axis direction mapping
  • Axis inversion support
  • Per-mapping clear action
  • Unmapped control indicators
  • Mapping profile import and export
  • Tray mode
  • Optional forwarding only while application is in tray
  • Automatic tray countdown
  • Start with Windows support
  • Embedded ViGEm installer
  • Update checking and release installation support
  • Development-build update checks disabled
  • Single-instance application behavior
  • Xbox Game Bar Guide/Nexus output suppression
  • Silent ms-gamebar and ms-gamebarservices protocol sink
  • Windows GUI subsystem for silent background launches
  • Modern Windows 11-compatible UI
  • Application, tray and executable icons

Mapping workflow

  1. Select physical controller.
  2. Select virtual Xbox 360 control.
  3. Double-click control or mapping row to start learning.
  4. Press or move physical input.
  5. Press Esc to cancel learning.

Axis mappings preserve detected positive or negative direction and can be inverted manually.

Tray behavior

When forwarding-only-in-tray mode is enabled:

  • Physical input is monitored while application window is open.
  • Virtual Xbox 360 output is paused while configuring mappings.
  • Forwarding becomes active after application is moved to tray.

This prevents controller input from affecting Windows or other applications during configuration.

Xbox Game Bar handling

Guide/Nexus output is blocked to prevent unwanted Xbox Game Bar activation.

The application also registers silent no-op handlers for:

  • ms-gamebar
  • ms-gamebarservices

This prevents Windows from displaying missing-application dialogs when Game Bar is unavailable.

Validation

Manually validated on Windows:

  • Application builds and starts
  • Physical controller detection
  • Virtual Xbox 360 controller connection
  • Button mapping
  • Axis direction mapping
  • Double-click learning
  • Escape cancellation
  • Mapping clear
  • Profile import/export
  • Tray forwarding
  • Silent Game Bar protocol handling

Notes

This is the first functional project merge and establishes the base architecture for future controller support, UI improvements and release automation.

@rozsazoltan
rozsazoltan merged commit edd2d88 into master Jul 16, 2026
1 check passed
@rozsazoltan
rozsazoltan deleted the feat/starter branch July 16, 2026 19:44
@rozsazoltan
rozsazoltan restored the feat/starter branch July 16, 2026 19:45
@rozsazoltan
rozsazoltan deleted the feat/starter branch July 16, 2026 19:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant