Skip to content

Controller features detection #28

@sonik-br

Description

@sonik-br

Opening this more as a way to talk about it. :)

I've been testing and debugging a lot of psx controllers lately.
And comparing my findings with what's documented online. There's a lot of wrong or missing information.

So the big news: There are controllers with multiple switchable modes (not just digital/analog).
And rumble can be supported on all modes, not just on the dualshock device.

Command 0x45 returns the constants:
amount of modes
amount of actuators
And the variable:
current mode (led state too)

Then command 0x46 can get info for each actuator with the constants:
Actuator function (rumble, jog rotation,...)
Sub function (low speed, high speed,...)
Parameter length (if it's just on/off or more complex arguments)
Max current drain

And command 0x44C can get info for each controller mode with some data that I don't understand yet, but can be used to identify the protocol (negcon, digital, analog,...)

I've seen a controller with a physical switch for digital, analog, negcon. All with rumble and two motors.
This device reports as single mode, too signal that the software can't change it's mode. user must move the switch.

And I've seen a controller with a mode button and 4 possible modes (digital, analog, flightstick, negcon).
It reports correctly and all 4 modes can be set from software. (via command 0x44)

So it looks like that rumble is not tied to specific controller types. And most important, games can use those features!
There's some games that only have analog input with a negcon controller. And the same game can have rumble enabled with a negcon compatible controller.

Some of my debug data in the next message...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions