Skip to content

Releases: abduct/vixen

ViXEn PSTV Controller Support Preview 1

Pre-release

Choose a tag to compare

@abduct abduct released this 09 Sep 02:03

ViXEn PSTV Controller Support Preview 1

This is a fork integration preview combining several controller-related changes that are currently pending upstream review.

It is not an official upstream ViXEn release.

Included changes

PSTV controller port allocation

Improves controller allocation on PlayStation TV so USB controllers managed by ViXEn do not collide with native PlayStation controller ports.

The allocator dynamically reserves ports occupied by native DS3/DS4 controllers and assigns ViXEn controllers to available PSTV controller ports.

8BitDo Ultimate 2 Wireless — DInput

Adds support for the 8BitDo Ultimate 2 Wireless controller in DInput mode.

Supported USB IDs:

  • 2dc8:6012 — active DInput controller
  • 2dc8:6013 — idle/unpaired receiver

The idle receiver is handled without creating a phantom controller slot or showing an unsupported-device notification.

8BitDo Ultimate 2 Wireless — XInput

Adds support for the 8BitDo Ultimate 2 Wireless controller in XInput mode:

  • 2dc8:310b

The Ultimate 2 exposes a composite USB device, so the driver locates the Xbox 360-compatible ff/5d/01 interface and performs the receiver initialization sequence required before normal Xbox 360 input reports begin:

  1. SET_CONFIGURATION
  2. SET_INTERFACE, alternate setting 0
  3. Interrupt OUT packet 01 03 02
  4. Begin interrupt IN reads

The standard ViXEn Xbox 360 report parser is used after initialization.

Hardware testing

This exact binary was tested on a PlayStation TV with two 8BitDo Ultimate 2 Wireless controllers and a native DualShock 4.

Validated configurations include:

  • One Ultimate 2 in XInput mode
  • Two Ultimate 2 controllers simultaneously in XInput mode
  • Ultimate 2 DInput mode
  • DInput receiver lifecycle 6013 -> 6012 -> 6013
  • Mixed XInput + DInput controllers
  • Two Ultimate 2 controllers plus native DualShock 4
  • Dynamic PSTV controller allocation
  • Controller disconnect/reconnect
  • Receiver disconnect/reconnect
  • Application/game transitions
  • RetroArch
  • Reboot
  • Shutdown

No crashes, freezes, unsupported-device notifications, or controller-port collisions were observed during the completed test matrix.

Known limitations

  • PS/Home behavior on a second ViXEn-managed controller appears to be an existing ViXEn/PSTV limitation and is not introduced by the Ultimate 2 support.
  • Some unpowered USB hubs may not enumerate their downstream devices correctly when already connected during a cold PSTV boot. Reconnecting the entire hub restores enumeration. This appears separate from ViXEn controller support.

Installation

Copy vixen.skprx to the location used by your existing ViXEn installation and ensure the plugin is loaded from ur0:tai/config.txt.

Back up your existing plugin and configuration before replacing anything.

A reboot is required after replacing the kernel plugin.

Build

Integration commit:

4b92761d34a27acdb8a23671dc36d6384709e64d

SHA-256 of the attached vixen.skprx:

f11f3fb061f26d50b27fb6fa9480671449a1099671c5c7e4c5e94aa14b4af05c

Pending upstream changes

AI assistance

AI assistance was used during investigation, implementation, debugging, code review, test planning, and documentation.

All controller functionality described above was validated on physical PlayStation TV and 8BitDo Ultimate 2 Wireless hardware.