I have PlayStation 3 game console. Fat model with 80gb HDD, not hacked with latest firmware and I can confirm that mbed loaded with joystick example is corectly recognized by PS3 as gamepad and works. I made gamepad program based on new USB mouse, keyboard.... examples from end of last year.
This do not use any hardware inputs and data sent are fake. I used this to check funcionality. But it is very easy to use it.
But there is small number of games like Gran Turismo 5 (I have and confirm that not work), Fallout 3 (not tested) and maybe Ace Combat Assault horizon (because in demo that didn't work). But this mean You can not control gameplay but still works in menus but when You load game save, game do not use values received from gamepad to controll game.
I can confirm that it works in my games like Call of Duty, Battlefield Bad Company 2, Infamous 2 and many others.
For now it does not have PS button but it's easy about editind report descriptor and adding button no. 13 because PS button is button no.13 in Dualshock 3. This is not problem, I made whole device and report descriptor same as Dualshock 3 has and PS3 still understand it in way - Hey this is gamepad - and was working but still without PS button. To get working PS button, there is need to send 8 bytes array after host request and receives HID report.
But I was not able to figure out how to send data to host - but I am sure it is pretty easy for anybody who is more experienced in C++.
When device is getting enumerated, host ask for device, configuration, interface, HID, String and report descriptors.
Those are arrays and are send to host when he requests them. And between Hid and String there is need to send our array to get PS button working.
It was discovered by somebody sniffing comunication between PS3 and Dualshock 3 gamepad.
Please can You post what PS3 model do You have and confirm if USB Joystick example works or not.
In afternoon I will edit my USB gamepad to be publicable and You can try this my too.
In USB Joystick Example are used analog inputs to read data from analog stick that can be found on many many gamepads.
PS3's Dualshock 3 gamepad is different because it do not use potentiometers for each axe with 3 pins but uses contactless Hall effect sensors with 4 pins each axe.
Hello the purpose will be to hack a standard controller to make one more easy for impaired people (this way it will be more universal and console independent)
the buttons/clicks are just a wiring pb
the analog joysticks are more tricky and i would like to control them with the head movement (3 axes)
I would like to use a 3 axe accelerometer or gyroscope to control the up/down, right/left, slide right/left . the forward/back could stay as it is.
does anybody know how to get a value dependent of the position (not of the acceleration) of the head ?
after that there is the pb of the emulation of the potentiometer, the more easy to do is to command modelist servo motor to drive normal pot but i think there is electronic pot I2C drived who could do the trick with a faster response
what do you think of the project ?
I've seen a commercial thing like that but the cost is around 1000$ for the complete system, I think it is possible to do cheaper solution (whit more possibility to adapt to different case