Releases: duoduo-88/S2P-XInput-Lite
Release list
S2P-XInput-Lite-v0.4.1
English
Changes since v0.4
- Improved input latency and stability for wired USB, ESP32, and native Windows Bluetooth.
- Reduced gyro and Tilt-mode delay for more immediate aiming.
- Improved game and audio rumble so only the newest state is sent, reducing delayed vibration and slow stops.
- Kept wired input stable during heavy rumble output.
- Added an updated low-latency ESP32-S3 firmware while retaining the previous firmware for rollback.
- Improved controller connection, reconnection, HidHide, and error-recovery behavior.
How to use
- Install ViGEmBus with
driver/Install-ViGEmBus.batif it is not already installed. - Connect the controller using one of these methods:
- Wired USB: connect the controller with a USB-C data cable.
- ESP32: connect a flashed ESP32-S3, then wake the controller. Hold SYNC when pairing it to the ESP32 for the first time.
- Native Bluetooth: turn on Windows Bluetooth, start this application, then wake the controller. Do not pair it manually in Windows Settings; hold SYNC for first pairing.
- Run
S2P-XInput-Lite.exe. - Configure button mapping, sticks, gyro, and rumble in the settings window, then select Save.
- Select Start Connection and wake the controller if necessary.
- Keep the connection console open while playing. Closing it disconnects the controller and virtual XInput device.
The application automatically checks wired USB first, then ESP32, and finally native Bluetooth. Connect only the transport you want to use.
For stick or motion calibration, stop the active connection, open the appropriate calibration tool in the settings window, and follow the on-screen instructions.
Updating
- Extract this release to a new folder instead of overwriting a running installation.
- To retain settings, back up the old
src/config.iniand copy it into the new version. - If ViGEmBus is not installed, run
driver/Install-ViGEmBus.bat. - ESP32 users should flash the new firmware under
esp32s3/firmwareto receive all improvements. - Hold the controller's SYNC button when pairing native Bluetooth for the first time or switching hosts.
Notes
- Windows and one Switch 2 Pro Controller only.
- HidHide is optional for wired USB when games should see only the virtual Xbox controller.
- Close Steam, reWASD, and other controller tools before calibration, firmware testing, or first connection.
- XInput cannot expose raw motion sensors; gyro input is mapped to a stick or mouse.
繁體中文
相較 v0.4 的更新
- 改善 USB 有線、ESP32 與 Windows 藍牙的操作延遲與穩定性。
- 降低陀螺儀與 Tilt 模式的延遲,瞄準反應更直接。
- 改善遊戲與音訊震動,只傳送最新狀態,減少震動延後或停止不乾脆的情況。
- 有線手把在大量震動輸出時,仍能維持穩定輸入。
- 更新 ESP32-S3 低延遲韌體,並保留舊版韌體供需要時回復。
- 改善手把連線、重新連線、HidHide 與錯誤恢復流程。
使用方法
- 尚未安裝 ViGEmBus 時,先執行
driver/Install-ViGEmBus.bat。 - 選擇一種方式連接手把:
- **USB 有線:**使用可傳輸資料的 USB-C 線連接手把。
- **ESP32:**接上已燒錄韌體的 ESP32-S3,再喚醒手把;第一次配對 ESP32 時請按住 SYNC。
- **Windows 原生藍牙:**開啟 Windows 藍牙並啟動本程式,再喚醒手把。不要先在 Windows 設定中手動配對;第一次配對請按住 SYNC。
- 執行
S2P-XInput-Lite.exe。 - 在設定視窗調整按鍵映射、搖桿、陀螺儀與震動,然後按下 儲存設定。
- 按下 啟動連線,需要時再按手把按鍵喚醒。
- 遊戲期間請保持連線主控台開啟;關閉視窗會中斷手把與虛擬 XInput 控制器。
程式會依序檢查 USB 有線、ESP32、Windows 原生藍牙。建議只接上目前要使用的連線方式。
需要校正搖桿或動作感測器時,請先停止目前連線,再從設定視窗開啟對應校正工具並依畫面指示操作。
更新方式
- 解壓縮到新的資料夾,不要直接覆蓋正在使用中的程式。
- 若要保留原本設定,先備份舊版的
src/config.ini,再複製到新版。 - 尚未安裝 ViGEmBus 時,執行
driver/Install-ViGEmBus.bat。 - ESP32 使用者請燒錄新版
esp32s3/firmware韌體,才能取得完整改善。 - 第一次使用原生藍牙或切換連線主機時,請按住手把的 SYNC 鍵重新配對。
注意事項
- 僅支援 Windows 與單支 Switch 2 Pro Controller。
- USB 有線若希望遊戲只看到虛擬 Xbox 手把,可另外安裝 HidHide。
- 請先關閉 Steam、reWASD 或其他會占用手把的程式,再進行校正、韌體測試或首次連線。
- XInput 不支援原始動作感測器;陀螺儀會映射成搖桿或滑鼠輸入。
S2P-XInput-Lite-v0.4.0
English
Update Summary
- Added wired USB input with full sensor reports, rumble output, safe shutdown, stalled-stream recovery, and HID write congestion protection.
- Improved connection selection: wired USB is checked first, then ESP32-S3, with Windows native BLE as fallback.
- Changed native BLE discovery to connect as soon as a matching advertisement appears, and added notification retry plus visible Windows high-throughput request status.
- Improved ESP32-S3 detection by prioritizing Espressif ports; the main and calibration programs now share the same detector.
- Added live 6-axis/9-axis status for wired USB, ESP32, and native BLE based on sustained magnetometer data.
- Added live connection, battery-level, ESP32, and ViGEmBus status.
- Added per-controller stick, gyro, accelerometer, and magnetometer calibration.
- Improved stick processing with time-based smoothing, stabilization, deadzones, smooth curves, and round-to-square output shape.
- Expanded button and stick mapping with keyboard combinations, Windows/media keys, mouse buttons, wheel input, multiple activation buttons, and reset controls.
- Improved HD Rumble 2 conversion and added Game, WASAPI Audio, and Mix modes with five-band EQ and vibration-tail controls.
- Added gyro mapping to an Xbox stick or mouse, including aim, tilt/steering, recentering, calibration, response curves, and stability controls.
- Added Traditional Chinese/English switching for the GUI, tooltips, dialogs, calibration, and connection consoles.
- Improved 1080p scrolling, 4K DPI scaling, atomic configuration writes, firmware flashing, runtime size, and shutdown cleanup.
- Included the complete upstream ESP32-S3 source corresponding to the bundled
0.12.4firmware.
Quick Start
- Install ViGEmBus with
Install-ViGEmBus.batif required. - Choose a connection method:
- Wired USB: connect the controller before opening Steam, reWASD, or another controller tool.
- Native BLE: turn on Windows Bluetooth, but do not pair the controller through Windows Bluetooth settings. This application handles pairing and connection directly.
- ESP32-S3: connect a compatible ESP32-S3 flashed with the bundled firmware.
- Run
S2P-XInput-Lite.exe. - Select the language with the
中 / Enbutton. - Adjust mappings and settings, then select Save.
- Select Restart and wake the controller. For first-time native BLE pairing, hold SYNC; a previously paired controller can normally be woken with any button.
The program checks wired USB first, then ESP32-S3, and automatically uses native BLE when neither is available.
Calibration
- Sticks: close the active connection, select Calibrate, choose wired USB, ESP32, or native BLE, and follow the prompts.
- Motion sensors: connect the controller first, then use Sensor Cal on the gyro page and complete every stage carefully.
- Calibration data is stored separately for each controller and applied immediately when possible.
Vibration and Gyro
- Vibration source can be Game, Audio, or Mix. Audio capture uses the Windows default output through WASAPI.
- The five-band curve and vibration-tail controls process the final advanced vibration output.
- Set both LF and HF strength to
0.00to disable vibration. - Gyro mapping is off by default. Select an activation method, output target, and activation button before use.
- Save changed settings and restart the connection program before testing.
Important Notes
- Windows 10/11 only; one controller at a time.
- ViGEmBus is required for Xbox 360/XInput output.
- Keep the connection console open while using the controller.
- Do not pre-pair native BLE through Windows Bluetooth settings; start this application and use SYNC for first-time pairing.
- A different controller should be paired and calibrated separately.
- Hold SYNC when moving a controller to a different ESP32 or host.
- After flashing firmware, reset or reconnect the ESP32-S3 and restart the application.
- Perform gyro calibration on a stable surface. Perform accelerometer and magnetometer calibration away from magnets, speakers, large metal objects, and powered equipment.
- XInput cannot expose raw motion sensor data; motion is mapped to a stick or mouse.
- Wired USB may require HidHide if a game sees both the physical HID and virtual XInput controller.
- If wired status shows Basic mode, fully close Steam and other controller tools, reconnect the controller, and start this application first.
- Settings and calibration data are stored in
config.ini. Keep a backup before replacing or redistributing a configured build.
繁體中文
更新摘要
- 新增 USB 有線輸入,支援完整感測報告、震動輸出、安全關閉、停流自動恢復及 HID 寫入堵塞保護。
- 改善連線選擇:優先偵測 USB 有線,其次為 ESP32-S3,最後自動改用 Windows 原生 BLE。
- 原生 BLE 改為偵測到相符廣告後立即連線,並加入通知重試與 Windows 高吞吐量請求狀態。
- 改善 ESP32-S3 偵測速度,優先測試 Espressif 連接埠,主程式與校正程式共用相同偵測器。
- USB 有線、ESP32 與原生 BLE 皆可依磁力計持續資料即時顯示六軸/九軸狀態。
- 新增即時連線、電量等級、ESP32 與 ViGEmBus 狀態。
- 新增每支手把獨立的搖桿、陀螺儀、加速度計及磁力計校正。
- 改善搖桿處理,加入時間式平滑、防抖、死區、平滑曲線及圓形至方形輸出。
- 擴充按鍵與搖桿映射,支援鍵盤組合、Windows/媒體鍵、滑鼠按鍵、滾輪、多重啟動按鍵及個別還原。
- 改善 HD Rumble 2 轉換,新增遊戲、WASAPI 音訊及混合震動,並加入五頻段與餘震控制。
- 新增陀螺儀映射至 Xbox 搖桿或滑鼠,包含瞄準、傾斜方向盤、回中、校正、感度曲線及穩定控制。
- GUI、問號提示、對話框、校正與連線主控台皆支援繁中/英文切換。
- 改善 1080p 捲動、4K DPI、設定檔原子寫入、韌體刷寫、runtime 容量及關閉清理。
- 發佈包包含與隨附
0.12.4韌體完全對應的上游 ESP32-S3 原始碼。
快速操作
- 尚未安裝時,執行
Install-ViGEmBus.bat安裝 ViGEmBus。 - 選擇連線方式:
- **USB 有線:**請先接上手把,再開啟 Steam、reWASD 或其他手把工具。
- 原生 BLE:開啟 Windows 藍牙,但不要先透過 Windows 藍牙設定配對手把;配對與連線由本程式直接處理。
- **ESP32-S3:**接上已刷入隨附相容韌體的 ESP32-S3。
- 執行
S2P-XInput-Lite.exe。 - 使用
中 / En按鈕選擇語言。 - 調整映射與設定後按 儲存設定。
- 按 重新啟動連接程式 並喚醒手把。原生 BLE 第一次配對請按住 SYNC;已配對過通常按任意鍵即可喚醒。
程式會優先偵測 USB 有線,其次為 ESP32-S3;兩者都不可用時自動改用原生 BLE。
校正
- **搖桿:**先關閉連線程式,按 校正搖桿,選擇 USB 有線、ESP32 或原生 BLE,再依提示操作。
- **動作感測器:**先連上手把,再到陀螺儀頁面按 感測器校正,完整完成各階段。
- 每支手把的校正資料會分開儲存,能立即套用時不必重新連線。
震動與陀螺儀
- 震動來源可選 遊戲、音訊 或 混合;音訊模式透過 WASAPI 擷取 Windows 預設輸出。
- 五頻段曲線與餘震控制會處理進階震動的最終輸出。
- 將 LF 與 HF 強度都設為
0.00即可關閉震動。 - 陀螺儀映射預設關閉;使用前需選擇啟動方式、輸出目標及啟動按鍵。
- 修改後請先儲存,再重新啟動連線程式測試。
注意事項
- 僅支援 Windows 10/11,一次連接一支手把。
- Xbox 360/XInput 輸出必須安裝 ViGEmBus。
- 使用手把期間請保持連線主控台開啟。
- 原生 BLE 不要先透過 Windows 藍牙設定配對;請啟動本程式,第一次配對時按住 SYNC。
- 更換手把後應分別重新配對及校正。
- 手把要切換到另一個 ESP32 或主機時,請按住 SYNC 重新配對。
- 刷完韌體後,請重設或重新插拔 ESP32-S3,並重新開啟程式。
- 陀螺儀校正時需將手把平放;加速度計及磁力計校正應遠離磁鐵、喇叭、大型金屬與通電設備。
- XInput 無法輸出原始動作感測器資料,陀螺儀只能映射至搖桿或滑鼠。
- USB 有線模式若讓遊戲同時看到實體 HID 與 XInput,需使用 HidHide 隱藏實體手把。
- 若 USB 有線狀態顯示 基本模式,請完全退出 Steam 或其他手把工具,重新插拔手把後先啟動本程式。
- 設定與校正資料位於
config.ini;替換或發佈已設定的版本前建議先備份。
S2P-XInput-Lite-v0.3.0
[English] | [繁體中文]
English
Update Summary
- Added automatic ESP32-S3 detection with Windows native BLE fallback.
- Improved ESP32 status heartbeat, disconnect handling, BLE notification retry, and throughput detection.
- Added live connection, battery-level, ESP32, and ViGEmBus status.
- Added per-controller stick, gyro, accelerometer, and magnetometer calibration.
- Improved stick processing with time-based smoothing, stabilization, deadzones, smooth curves, and round-to-square output shape.
- Expanded button and stick mapping with keyboard combinations, Windows/media keys, mouse buttons, wheel input, and reset buttons.
- Improved HD Rumble 2 conversion and added game, WASAPI audio, and mixed vibration modes.
- Added gyro mapping to an Xbox stick or mouse, including aim, tilt/steering, recentering, and stability controls.
- Added Traditional Chinese/English switching for the GUI, tooltips, dialogs, calibration, and connection consoles.
- Improved 1080p scrolling, 4K DPI scaling, configuration safety, firmware flashing, and shutdown cleanup.
Quick Start
- Install ViGEmBus with
Install-ViGEmBus.batif required. - For native Bluetooth, do not pair the controller through Windows Bluetooth settings. The application handles the Bluetooth connection directly. For ESP32 mode, connect a compatible ESP32-S3 flashed with the required firmware.
- Run
S2P-XInput-Lite.exe. - Select the language with the
中 / Enbutton. - Adjust mappings and settings, then select Save.
- Select Restart and press any controller button to wake it.
The program checks for ESP32 first and automatically uses native Bluetooth when ESP32 is unavailable.
Calibration
- Sticks: close the active connection, select Calibrate, choose ESP32 or native Bluetooth, and follow the prompts.
- Motion sensors: connect the controller first, then use Sensor Cal on the gyro page and follow every stage carefully.
- Calibration data is stored separately for each controller.
Vibration and Gyro
- Vibration source can be Game, Audio, or Mix. Audio capture uses the Windows default output through WASAPI.
- Set both LF and HF strength to
0.00to disable vibration. - Gyro mapping is off by default. Select an activation method, output target, and activation button before use.
- Save changed settings and restart the connection program before testing.
Important Notes
- Windows 10/11 only; one controller at a time.
- ViGEmBus is required for Xbox 360/XInput output.
- Keep the connection console open while using the controller.
- A different controller should be paired and calibrated separately.
- Hold SYNC when pairing a controller with a different ESP32 or host.
- After flashing firmware, reset or reconnect the ESP32-S3 and restart the application.
- Perform gyro calibration on a stable surface. Perform accelerometer and magnetometer calibration away from magnets, speakers, large metal objects, and powered equipment.
- XInput cannot expose raw motion sensor data; motion is mapped to a stick or mouse.
- Settings and calibration data are stored in
config.ini. Keep a backup before replacing or redistributing a configured build.
繁體中文
更新摘要
- 新增 ESP32-S3 自動偵測,找不到時自動改用 Windows 原生藍牙。
- 改善 ESP32 心跳狀態、斷線處理、BLE 通知重試及傳輸能力偵測。
- 新增即時連線、電量等級、ESP32 與 ViGEmBus 狀態。
- 新增每支手把獨立的搖桿、陀螺儀、加速度計及磁力計校正。
- 改善搖桿處理,加入時間式平滑、防抖、死區、平滑曲線及圓形至方形輸出。
- 擴充按鍵與搖桿映射,支援鍵盤組合、Windows/媒體鍵、滑鼠按鍵、滾輪及個別還原。
- 改善 HD Rumble 2 轉換,新增遊戲、WASAPI 音訊及混合震動模式。
- 新增陀螺儀映射至 Xbox 搖桿或滑鼠,包含瞄準、傾斜方向盤、回中及穩定控制。
- GUI、問號提示、對話框、校正與連線主控台皆支援繁中/英文切換。
- 改善 1080p 捲動、4K DPI、設定檔安全寫入、韌體刷寫及關閉清理。
快速操作
- 尚未安裝時,執行
Install-ViGEmBus.bat安裝 ViGEmBus。 - 使用原生藍牙時,不要透過 Windows 藍牙設定配對手把,程式會直接處理藍牙連線;使用 ESP32 模式時,請接上已刷入相容韌體的 ESP32-S3。
- 執行
S2P-XInput-Lite.exe。 - 使用
中 / En按鈕選擇語言。 - 調整映射與設定後按 儲存設定。
- 按 重新啟動連接程式,再按手把任意按鍵喚醒。
程式會優先偵測 ESP32;ESP32 不可用時會自動改用原生藍牙。
校正
- **搖桿:**先關閉連線程式,按 校正搖桿,選擇 ESP32 或原生藍牙,再依提示操作。
- **動作感測器:**先連上手把,再到陀螺儀頁面按 感測器校正,完整完成各階段。
- 每支手把的校正資料會分開儲存。
震動與陀螺儀
- 震動來源可選 遊戲、音訊 或 混合;音訊模式透過 WASAPI 擷取 Windows 預設輸出。
- 將 LF 與 HF 強度都設為
0.00即可關閉震動。 - 陀螺儀映射預設關閉;使用前需選擇啟動方式、輸出目標及啟動按鍵。
- 修改後請先儲存,再重新啟動連線程式測試。
注意事項
- 僅支援 Windows 10/11,一次連接一支手把。
- Xbox 360/XInput 輸出必須安裝 ViGEmBus。
- 使用手把期間請保持連線主控台開啟。
- 更換手把後應分別重新配對及校正。
- 手把要切換到另一個 ESP32 或主機時,請按住 SYNC 重新配對。
- 刷完韌體後,請重設或重新插拔 ESP32-S3,並重新開啟程式。
- 陀螺儀校正時需將手把平放;加速度計及磁力計校正應遠離磁鐵、喇叭、大型金屬與通電設備。
- XInput 無法輸出原始動作感測器資料,陀螺儀只能映射至搖桿或滑鼠。
- 設定與校正資料位於
config.ini;替換或發佈已設定的版本前建議先備份。
S2P-XInput-Lite-v0.2.0
使用方式
- 下載並解壓縮
S2P-XInput-Lite-v0.2.0。 - 第一次使用前,請執行目錄內的
Install-ViGEmBus.bat安裝 ViGEmBus 驅動程式。 - 直接執行
S2P-XInput-Lite.exe開啟程式。 - 如果程式仍顯示未偵測到 ViGEmBus,請重新啟動 Windows,並再次執行
S2P-XInput-Lite.exe。
連接手把
程式支援 ESP32-S3 橋接模式與 Windows 原生藍牙模式。
ESP32-S3 橋接模式
- 將 ESP32-S3 連接至電腦。
- 確認 ESP32-S3 已刷入本專案提供的相容韌體。
- 啟動
S2P-XInput-Lite.exe。 - 依照程式提示開啟 Switch 2 Pro Controller,等待手把連線。
Windows 原生藍牙模式
- 確認電腦已開啟藍牙。
- 啟動
S2P-XInput-Lite.exe並選擇 Windows 原生藍牙模式。 - 依照程式提示開啟 Switch 2 Pro Controller,等待手把連線。
首次配對時,請將 Switch 2 Pro Controller 進入配對模式;已完成配對的手把,之後通常只需要按下任意按鍵喚醒即可重新連線。
---主要更新
這次更新主要擴充了搖桿調整、映射與連線功能,並重新整理部分操作介面。
相較於 v0.1.0,v0.2.0 已經不只是單純將 Switch 2 Pro Controller 轉換為 XInput,而是加入更多針對搖桿操作與不同使用情境的自定義功能。
新增搖桿自定義曲線
左右搖桿現在可以分別設定獨立的輸出曲線。
- 左右搖桿可分別調整
- 使用 5 個可拖曳控制點
- 控制點可同時調整 X / Y 位置
- 即時顯示控制點座標
- 雙擊單一控制點可恢復預設位置
- 新增曲線放大編輯模式,方便進行更精細的調整
新增中心死區與外圍死區
新增獨立的搖桿死區設定。
- 中心死區:降低搖桿中心飄移造成的影響
- 外圍死區:讓搖桿接近外圈時提前輸出最大值
- 曲線圖會直接顯示中心死區與外圍死區範圍
死區與曲線會分開處理,避免曲線設定改變原本的死區行為。
新增搖桿曲線防抖
左右搖桿可分別設定曲線防抖強度。
防抖會根據目前曲線區段的放大倍率自動調整,在高靈敏度曲線區域增加穩定性,同時盡量避免對一般 1:1 區域造成不必要的平滑。
新增搖桿方向映射
左右搖桿現在可以作為方向輸入使用。
支援:
- 4 向模式
- 8 向模式
- 自訂每個方向的映射
- Xbox / XInput 按鍵映射
- 自定義鍵盤按鍵
- 自定義複合鍵
- 可調整方向觸發門檻
- 可調整方向放開門檻
透過獨立的觸發與放開門檻,可降低搖桿停留在臨界位置時反覆觸發與放開的情況。
新增左右搖桿互換
搖桿方向映射模式現在也支援:
- 左搖桿映射為右搖桿
- 右搖桿映射為左搖桿
- 左右同時設定時可直接交換左右搖桿
新增自定義鍵盤映射
按鍵與搖桿方向現在可以映射為鍵盤輸入。
支援:
- 單一鍵盤按鍵
- 功能鍵
Ctrl/Shift/Alt等修飾鍵- 複合按鍵
例如:
F12Ctrl + SCtrl + Shift + S
新增 Windows 原生藍牙連線模式
除了原本的 ESP32-S3 橋接模式之外,現在也加入 Windows 原生藍牙連線方式。
使用者可以依照自己的需求選擇不同的連線方式,不一定需要透過 ESP32-S3。
改善 ESP32-S3 連線流程
改善 ESP32-S3 與控制器的連線與重新連線處理,包括已配對控制器的連線流程與控制器重新喚醒後的連線行為。
新增 ESP32-S3 相容韌體刷入功能
設定介面現在可以協助刷入專案使用的相容 ESP32-S3 韌體。
程式會:
- 引導 ESP32-S3 進入刷機模式
- 自動偵測新的刷機 COM Port
- 呼叫內附的刷機工具與韌體進行刷入
降低手動輸入刷機指令的需求。
改善 XInput 輸入處理
重新調整部分搖桿輸入處理與防抖邏輯,改善輸入穩定性,並讓新的曲線、死區與方向映射功能能夠正確配合。
改善震動轉換設定
持續調整 Switch 2 Pro Controller HD Rumble 2 與 XInput 震動之間的轉換方式。
目前可調整:
- 低頻震動強度
- 高頻震動強度
- 低頻輸出曲線
- 高頻輸出曲線
- 低頻補償
- 高頻補償
- LF 頻率命令值
- HF 頻率命令值
- 最大振幅限制
改善設定介面
重新整理部分設定介面的排列與操作方式。
包括:
- 新增曲線放大 / 返回操作
- 放大模式下重新排列曲線、防抖與死區設定
- 改善控制項對齊
- 增加更多設定說明
- 死區變更時即時更新曲線預覽
- 改善未儲存設定的檢查與處理
v0.2.0 重點
v0.2.0 的主要方向是讓 Switch 2 Pro Controller 的 XInput 轉換不再只是固定映射,而是可以依照不同遊戲與個人操作習慣調整:
搖桿曲線、死區、防抖、方向映射、鍵盤映射、左右搖桿互換,以及更多連線方式。
這次更新涉及較多底層輸入與連線邏輯。如果遇到問題,歡迎回報使用的連線模式、控制器韌體版本,以及問題發生時的操作方式。
S2P-XInput-Lite-v0.1.0
S2P-XInput-Lite 的第一個公開版本。
本專案是一個輕量化的 Windows 控制器橋接工具,透過 ESP32-S3 與 Switch 2 Pro Controller 通訊,並在 Windows 上輸出為標準的 Xbox 360 / XInput 虛擬控制器。
此版本主要專注於 ESP32-S3 橋接 → XInput 輸出,並在 XInput 架構基礎上提供自訂控制、搖桿校正與 HD Rumble 2 震動轉換功能。
v0.1.0 主要功能
- 透過 ESP32-S3 USB CDC 橋接控制器
- 自動偵測相容的 ESP32-S3 裝置
- 輸出 Xbox 360 / XInput 虛擬控制器
- 自訂按鍵映射
- 自訂左右搖桿方向映射
- 類比搖桿校正
- 鍵盤按鍵映射
- XInput 震動轉換為 HD Rumble 2
- 可調整 LF / HF 震動頻率與強度
- 可調整 LF / HF 響應曲線
- LF → HF 與 HF → LF 震動補償
- 最大震動振幅限制
- 圖形化設定介面
- ViGEmBus 安裝狀態檢查
- 控制器 Pin 震動定位功能
- 連線成功後設定 Player 1 LED
- 內附 ESP32-S3 相容橋接韌體與刷寫工具
- 內含可攜式 Python 執行環境,無需另外安裝 Python
系統需求
- Windows x64
- 相容的 ESP32-S3 裝置
- Switch 2 Pro Controller
- ViGEmBus 1.22.0
如果尚未安裝 ViGEmBus,可以執行:
Install-ViGEmBus.bat
腳本會從官方來源下載並啟動 ViGEmBus 1.22.0 安裝程式。
使用方式
- 安裝 ViGEmBus 1.22.0。
- 將 ESP32-S3 連接至電腦。
- 如有需要,先使用內附工具刷入相容的 ESP32-S3 橋接韌體。
- 執行
S2P-XInput-Lite.exe。 - 在圖形化介面中完成設定並啟動連線程式。
- 按下控制器任意按鍵喚醒控制器並等待連線。
目前限制
此版本專注於 XInput 輸出,因此目前:
- 一次僅支援一支控制器
- 僅支援 Windows
- 不支援陀螺儀與加速度計動作輸入
- 不支援 Joy-Con 配對
- 不支援 PS5 控制器模擬
- 不支援音訊觸覺
如果需要更多控制器功能或更完整的實作,可以參考 TommyWabg 的 Switch2Connect 專案。
注意事項
這是第一個公開版本,部分功能仍可能需要進一步測試與調整。
S2P-XInput-Lite 是非官方社群專案,與 Nintendo、Microsoft、Espressif Systems 或其他第三方不存在官方隸屬、認可、贊助或合作關係。
本專案採用 GNU General Public License v3.0(GPL-3.0)授權。
第三方元件、上游來源與相關授權資訊請參閱 THIRD_PARTY_NOTICES.md。











