Unless Sony made the controllers send the same signals and have the same connectors there's no way that a PS2 can talk to a device created in the future without some intermediate hardware (as you suggest). However, it's not really in Sony's interest to do this themselves.
Wiki Answers and Answer Bag would appear to agree with me.
Though you're not the only one suggesting this. Though I don't see any answers that suggest how it might be done. Some sort of device like the USB to PS/2 converter you can get for PC mice and keyboards is what you need.
I decided to buy a Dualshock 4 and see for myself what works and what doesn't.
First off: As promised, the Dualshock 4 works on Windows without the need to install additional drivers.1 Connection is established via a Micro-B USB cable, or via Bluetooth on computers with a Bluetooth receiver. (Hold down the Home and Share buttons together for several seconds to enable Bluetooth pairing mode. The light bar will continuously flash when pairing mode is activated.)
Game support is extremely lacking. The Dualshock 4 is a DirectInput device while the Xbox 360 controller uses XInput, which is the only API that most - if not all - modern games use. In order to use the Dualshock 4 in games that only support the Xbox 360 controller, a wrapper is needed2. Here's to hoping Sony will release drivers to add XInput support to the Dualshock 4.
As for the default key-mapping; even if games accept input from the Dualshock 4, you might want to calibrate the controller to match the Xbox 360 controller's key mapping.
Matching inputs are:
- Left analog stick: main X/Y Axis
- D-Pad: Point of View Hat
- Y/: button 4
- LB/L1: button 5
- RB/R1: button 6
The Xbox 360 controller uses 3 Axis and 2 Rotations as input for its two analog sticks and 2 triggers; the triggers both share the Z-Axis.
The Dualshock 4 on the other hand uses 3 Axis and 3 Rotations for the same.
According to Windows' very own Game controller settings:
The Xbox 360 offers a total of 10 buttons3.
The Dualshock 4 offers a total of 14 buttons4.
1: Tested on Windows 7 and 8.1
2: I found one such wrapper here
3: Excluding the home button, which does not seem to map to a controller input
4: 2 buttons are mapped to the L2/R2 triggers, which are also mapped to the X and Y Rotations
Best Answer
Use GIMX over Bluetooth with the Playstation 4
In this example you use a desktop, laptop or Raspberry Pi running Linux to which you connect the controllers and input devices you want to use plus a Dualshock 4 (DS4) controller. The DS4 in this setup is required for authentication and will get polled periodically by the Playstation 4 (PS4), so it needs to stay connected this way. While you can still use the DS4, I do recommend a spare DS4. All input and authentication data is sent from the computer to the console via Bluetooth. The adapter you are going to build from a Teensy board in the next section is required for the initial pairing process of a new controller to the PS4. Basically the adapter is a man in the middle between the DS4 controller and the PS4 during the initial connection setup.
More information is available on the blog, the FAQ, the forum and the wiki.
Hardware requirements and cost
The required Teensy 2.0 USB development board costs about $16. I bought mine from an online store in Germany for about 22€ with shipping included.
Depending on the reliability of your existing Bluetooth solution you may need to buy a Bluetooth dongle with a certain chip, prices range from $5 to $15. A USB to serial TTL converter for the complete DIY adatper isn't needed in this example, but since these are cheap you might want to get one too.
You can find suggestions for other hardware components to build your DIY adapter, but the Teensy 2.0 is recommended. Don't buy a Teensy with another version number like Teensy 3.0, that is a different chip which is not supported.
GIMX supported consoles and controllers
As far as I am aware Xbox, Xbox 360, Xbox One, Playstation 3 and Playstation 4 are currently supported.
It doesn't matter if the input devices are connected to the computer via USB, Bluetooth or something else. You can use every controller or device that is detected by the host operating system – Linux in this case – as an input device and you can map buttons and functionality as you like.
Playstation 4 force feedback wheel support functionality that currently needs funding.
Installation and instructions for pairing the DS4
On Ubuntu download and install the Debian package for your platform. You should also install the
gksu
package, otherwise you might get the "Can't restart bluetoothd" error message.In this example we only need the EMUPS4PAIRING firmware and the Teensy Loader to flash it. You can download the other firmwares here. Extract contents of the individual zip files after download.
Pairing the DS4
Note that pairing does not need to be performed every time. If you use a dedicated DS4 regularly it ideally needs to be done only once. After that you can put the Teensy somewhere safe until you need it.
49-teensy.rules
and gave the binary proper permissions, otherwise you would need to usegksu
.atmega32u4.hex
), connect the Teensy, enable automatic mode and push the button on the Teensy board. You can disconnect the Teensy after the flashing succeeded.Bluetooth/PS4
for output and click the new button to create a new pairing connection.Troubleshooting: Remove devices in the Bluetooth menu of the PS4 when the DS4 connects directly to the PS4 instead of GIMX.
Video demonstration
I cramped a test setup onto my desk and made a video demonstrating paring and usage for GIMX version 3.5, it's only about 2:30 minutes long.
Don't be confused about the red button on the fightstick not working as expected in the video, it was swapped with another button in my custom configuration.
Using GIMX with the PS4
Controller configuration
Start the connection
Bluetooth/PS4
Physical devices
Press Shift+Esc on the keyboard to end the connection.
You may need to restart your bluetooth service for normal desktop operation, example on Ubuntu:
sudo service bluetooth restart