Monday, September 27, 2010

PS3 jailbreak and the state of XIM for PS3 users

So, a lot has happened over the last few weeks with regards to the PS3. Hackers figured out a way to enable some debugging features using a very sophisticated USB attack. If you're interested in the particulars of how the hack works, there's a ton of info regarding it in the wiki over at PSFreedom.com. Sony reacted just as quickly as everyone thought they would and released a PS3 firmware update which closed the exploit. Shortly there after, they released another firmware update which secretly blacklisted most 3rd party USB peripherals. Included in these blacklisted peripherals were 3rd party controllers by companies like Mad Catz, FPS controllers like the FRAGnStein created by Bannco, and a whole host of adapters that allow gamers to use PlayStation 2 controllers on the PS3.

Something similar to this happened quite a while ago, and Sony quickly admitted that it was a complete accident. This time around they've been particularly quiet, only stating that unlicensed peripherals won't always work with the PS3. This has caused quite a problem for the people who use input devices like the XIM1 with the PlayStation 3. There are still a few adapters out there that work, but it will be a trial and error process to try to figure out which ones still work. Furthermore, any adapters that are found to be working aren't guaranteed to continue to work once Sony releases another firmware update for the PS3.

So, where does that leave us? Well, it leaves us between a rock and a hard place. We can continue to play this cat and mouse game, or we can come up with a better solution. In truth, a better solution has already been created. The creator of the XIM1 has taken his input device through two iterations and is currently working on a third, and each has been better than the last. The second XIM, more commonly knows and XIM2 or XIM360, uses a custom made FPC that solders directly to the motherboard of a wired XBox controller. This FPC is connected back to a computer via a USB cable, and it communicates with software running on the PC. This software takes raw mouse movement data, as well as mouse-button and keyboard data and sends it over the USB cable back to the microcontroller on the FPC. The microcontroller decodes the data, and electrically operates the controller. The design and functionality has been lauded by first-person shooter aficionados on the XBox 360, so why mess with success.

This brings me to my next point. The creator of the XIM1 and XIM360 has on several occasions said that he does not intend to support PS3 users, which is completely understandable. It was a complete accident that we were able to use the XIM1 on the PS3, and I think it was a bit of a slap in the face to the XIM scene that a device designed for the XBox 360 worked far better on an unintended platform than it did on the intended one. So, what are our options? Well, we'll just have to do it ourselves.

My first thought was to try to reverse engineer the firmware of the original XIM, and port it to another microcontroller that had enough outputs to electrically manipulate the PS3 controller. Basically this would just be tricking the PC software into thinking that another device was a XIM box. While this option sounds like a lot of fun since I would have to learn 8051 asm to accomplish this task, I have no intent to pursue it. I can't stand people who rip off the code of others, and I'll be damned if I'm going to do it myself. The second option is to create a completely new interface and write the PC-side software from scratch. This will be a fair amount of work, but in the end it will be the better option. It will give us far more control over fine-tuning every aspect of the performance.

I spent part of the weekend doing some bit-bashing and I believe that a project like this will be easy enough to accomplish. I'll make another post later today with some specifics regarding what kind of hardware will be necessary, along with some info on the software side of things.

No comments:

Post a Comment