abgx360

Wednesday 12 October 2011

Sony PlayStation 3 Controller Made Fully Remappable

Developer Hazer has managed to do something that will benefit not only us and those with Japanese consoles but more importantly those who are physically challenged . Remember the Rogero button swapper that allowed us to switch between X and O,this can do much more. What developer Hazer has managed to do is completely remap the entire controller to suit your needs.


To Quote: Hack a Day

Hazer managed to take a PlayStation 3 SixAxis controller and modify it so that all of the buttons can be remapped in hardware. Aside from this being really cool, he had a good reason for doing it. As the industry still hasn’t taken up the idea of 'button mapping as a feature' in all games, Hazer developed this mod and has released it for anyone out there who wishs to give it a try.

The hardware alterations are pretty hardcore. On the left of the image, just below the rumble motor, a DIP microcontroller is nestled dead-bug style. This is a PIC 18F14K50. It’s running a bootloader, and has its own USB port on the opposite side of the controller. By cutting traces and soldering to vias, this chip intercepts button presses and shoots them off to the controller’s processor based on alternative mapping stored in EEPROM. There’s a helper app that lets you plug the controller into a computer to specify what each button does, including features like toggle for the buttons.
Here is a video showcasing the feat that has been accomplished.



Here is a video showcasing Chuck Bittner a physically challenged PS3 gamer.




Here is a detailed tutorial: (Images can be viewed by following the source below)

Click to open


To Quote: Hazer - AcidMods
Hello everyone, I am glad to introduce the long awaited PS3 Remappable controller. This project started with the express intention of granting Chuck Bittner his desire to remap the buttons on a standard controller. With this controller, Chuck will be able to remap the buttons on any current and past game that he normally would have to pass on due to the ergonomics of the default button layout. But his petition is much more important than that, as it will allow stock controllers the same ability for all games in the future. So please visit his petition and support the cause.

Video Game Custom Button Remapping Petition

OK. Now onto the main event! I have spent better than 6 months of late nights (I dont have free time before 10PM) getting this modification to work just right. I have made the decision not only to make the first controller for Chuck, but I am also releasing the files neded for other modders to make thier own, or use it for other abled gamers. In the past, my work has been raped/bunked/stolen as others work and this made me ponder if I should make this mod public or not. My compromise is this: I will release the hex files and the utility and the schematics, but the source code will remain my own. The mod will function as intended without giving anyone the hard work I put in to make a rapidfire and profit from me again. If they want to market the remap as is, thats fine by me. This modification is difficult enough, it probably should be left in the hands of professional modders to perform. Which brings up the next point:

THE DIFFICULTY OF THIS MOD IS HIGHER THAN NORMAL. IT REQUIRES CUTTING TRACES AND SOLDERING TO VIAS. AS SUCH, PERFORMING THIS MOD IS AT YOUR OWN RISK AND ACIDMODS AND I TAKE NO RESPONSIBILITY FOR ANY DAMAGE THAT MAY OCCUR.

So, the reverse engineering of monitoring the button signals and then having the PIC replicate the signals correctly was a good adventure. First up (for the technically inclined) is that this mod uses the PIC18F14K50 and a modified bootloader to hold the firmware. The bootlaoder was modified to use only one LED and keep the outputs in a safe condition for the PS3 controller during firmware updates. Then came the modding: The LED was installed into the PS3 button using a dual red/green SMD.

The tact button for enabling the bootloader and getting the controller into USB mode was installed on the top of the controller:

The USB port was fashioned from a 2.5mm plug and jack. The finished product was very sleek looking (too bad the tact looks ugly).

I know what your thinking: Why not use the USB port on the controller? I did not fully test the possibility, but there is a chance that wiring both USB ports together could result in either the PIC getting reallt messed up while your chargin the PS3, or you could lose the ability to charge your PS3 from now on. The PS3 requires a USB pre-amble to charge from the USB port. You cannot simply use a 5V source with a USB cable end. The PS3 will shut itself off if it does not get the proper communication protocol when it needs to charge. So on to the wire tidying:

I really should have just etched a SMD PCB to get this all in, but I thought I was saving time by free-handing the entire circuit (I was wrong):

In the end, we now have the final mod for Chuck Bittner

Once installed, the buttons are disconnected from the PS3 main inputs and the PIC then deciphers the remapping stored in EEPROM and sends out the new signals. This means you can map any button to any other button. You can make all the buttons be DPAD up if you want (but you never should). Another feature is the Toggle/Hold function. You can set the button to toggle its new mapping instead of direct remap. By this I mean you tap the button to make the function turn on and stay on as if you were holding the button down indefinately, and another quick tap would turn the function off. This should help greatly with sight-aiming. One downfall of this mod is that the buttons are originally analog/pressure sensitive. The PIC is programmed to create digital signals, so there is no intermediate values. Remember this for driving games. Another feature is that you can adjust the pressure needed for the PIC to see a button press. You can make the controller very sensitive, or require a good tap to register presses, its your choice.

The following buttons are the ones that can be remapped to each other: X, Circle, Trianlge, Square, R1, R2, L1, L2, DPAD up, DPAD down, DPAD right, DPAD left, right stick click (R3), and left stick click (L3). The analog sticks were left alone (sorry, no southpaw).
The user guide and zip file with all schematics and the PC utility can be downloaded here:

"http://www.mediafire.com/?zk1nqsljw8jjl36"
"http://www.mediafire.com/?b0u2f6r30od6ecl"

This has been installed on my own V3.5X Dualshock that I am donating to Chuck. Modded Matt is in the process of testing one of the other versions.

In final mentioning, the bootloader has made it possible to fix any bugs that may be found in the future. It also means that if a remapping feature can be improved, I can create the firmware and it can be added without opening the controller. I will not be adding macros or rapidfire though. If I did that, this would simply not be public in any form or manner. Sorry, I have fed the Ebayers enough already.

And Chuck, I hope this controller helps in some small way, and is a good crutch until they finally make it so that the controller is remappable through the PS3 dashboard.


There you have it, a fully mapped controller.

Download: PS3 Remap Utility User Guide
Download: PS3 Remap Utility

Sources:
Hack a Day
AcidMods

No comments:

Post a Comment