Skip to content

Releases: ChiricoG/xbox_controller_plugin

v1.4.0 - Global Game Support, P1 Merge & P2 Secondary Modes

Choose a tag to compare

@ChiricoG ChiricoG released this 25 Oct 09:28

What's New in v1.4.0

Safe Global [default] Installation

You can now safely enable xbox_controller.prx under [default] in /data/GoldHEN/plugins.ini:

  • The plugin automatically checks the running process Title ID (CUSA, PCAS, PLAS).
  • Non-game processes (Homebrew apps like Apollo Save Tool, Itemzflow, GoldHEN Cheats Manager, PS4-Explorer, and system daemons) are cleanly bypassed without installing hooks.
  • Eliminates crashes when launching homebrew applications with the plugin enabled globally.

Dual Operating Modes (Single Player & Local Co-Op)

  • Single Player (MERGE - P1): When only one user is logged in, the Xbox controller merges directly with Player 1 (DualShock 4). Analog sticks are merged smoothly and buttons are combined.
  • Local Multiplayer (SECONDARY - P2): When 2 or more users are logged in, the Xbox controller is automatically assigned to Player 2, operating as an independent controller.
  • Mode Toggle Combo: Switch between Player 1 (Merged) and Player 2 (Secondary) at any time during gameplay by pressing:
    LB + RB + Back + Start

Central Xbox Guide / Home Button Mapping

  • The central Xbox Guide / Home button is now mapped to Touchpad Click (DS4_BUTTON_TOUCHPAD), opening maps, journals, and inventories instantly in games (e.g., GTA V, Red Dead Redemption 2, The Witcher 3, etc.).
  • Eliminates watchdog freezes and system error CE-36329-3.

Polling, Hotplug & Connection Fixes

  • Fixed USB interrupt transfer timeout handling (SCE_USBD_ERROR_TIMEOUT) that previously caused an infinite connect/disconnect notification loop.
  • Full USB hotplugging support: disconnect and reconnect controllers at any time while playing.
  • Dedicated 250 Hz (4ms) low-latency polling thread.
  • Immediate on-screen notifications indicating whether the controller joined as [Player 1] or [Player 2].
  • Dynamic executable memory trampoline allocation (sceKernelMmap within +-2 GB) replacing static .bss trampolines for reliable function hooking.

Installation & Setup

  1. Copy xbox_controller.prx to /data/GoldHEN/plugins/ on your PS4.
  2. Edit /data/GoldHEN/plugins.ini and add:
    [default]
    /data/GoldHEN/plugins/xbox_controller.prx
  3. Launch any game — your Xbox or compatible controller will be detected automatically.

Full Changelog: v1.3.0...v1.4.0

v1.3.0 - Third-Party Xbox Controller Support & Build Improvements

Choose a tag to compare

@ChiricoG ChiricoG released this 23 Oct 12:04

What's Changed

Features

  • Generic Descriptor-Based Detection: Added automatic detection for third-party Xbox 360 (FF/5D/01) and Xbox One (FF/47/D0) controllers (PowerA, PDP, Razer, Hori, 8BitDo, etc.) in XInput mode without requiring hardcoded VID/PID lists.
  • Dynamic Endpoint & Interface Resolution: Dynamically parses USB configuration descriptors to claim the appropriate interface and determine interrupt IN/OUT endpoints.
  • Vendor Init Sequences: Added initialization packet sequences for third-party Xbox One compatible pads (PDP and PowerA).

Build System & Toolchain

  • OpenOrbis Compatibility: Added patch header for missing libusb_endpoint_descriptor definition in OpenOrbis toolchain.
  • Submodule Fix: Added .gitmodules configuration for GoldHEN_Plugins_SDK.
  • Windows Build Support: Added �uild_windows.sh for compiling under MSYS2 environments on Windows.
  • Makefile Improvements: Replaced hardcoded user paths with portable environment and relative directory resolution.

Installation & Setup

  1. Copy xbox_controller.prx to /data/GoldHEN/plugins/ on your PS4.
  2. Add the plugin entry to /data/GoldHEN/plugins.ini under the specific game Title ID:
    ini [CUSAXXXXX] /data/GoldHEN/plugins/xbox_controller.prx

⚠️ WARNING: Do NOT enable this plugin under [default]. Enabling it globally will cause your PS4 to crash when launching homebrew applications. Always bind it to specific game Title IDs ([CUSAXXXXX]).