hids on xbox, and psx?

Started by ulao, October 09, 2009, 06:27:45 AM

Previous topic - Next topic

ulao

Hi all , As I understand it the xbox uses a hid, and so does the ps2 and sp3. So what if I made a generic hid controller, can I use it on these consoles?

My guesses..
Xbox, guessing there is a hacked driver for it?
xbox 360, native support

psx2,3 native support

Also, if this is possible, what about button assignments? Would there be a way to map buttons?

phreak97

hid is just human interface device isnt it? I thought any controller was hid? or is it actually a standard?
I dont think youre going to get anywhere with this if I'm honest.. what is your goal? there is probably a better way to do it.. I dont see that you would really want to play games with a generic controller that wasnt made for it, I'm assuming you have something more specific in mind?

generally if you want to build a controller for a more modern console you just buy an aftermarket controller and stick its guts into your own controller.

ulao

#2
HID is a standard m$ driver for a device.  Not all controllers are HID's but most are. If your going to write software for a controller you make, it is easiest to use a standard. So most are just HID's.

QuoteI dont think youre going to get anywhere with this if I'm honest.. what is your goal? there is probably a better way to do it.. I dont see that you would really want to play games with a generic controller that wasnt made for it, I'm assuming you have something more specific in mind?
- I may not have explained my point then.

"what is your goal?"- - To make consoles use other controllers.
"I dont see that you would really want to play games with a generic controller that wasnt made for it"- Ever here of emulators?

The xbox, for example uses HID, its not a standard HID, as they changed it a bit. For example XBCD does jut the reverse. It makes a computer read the driver. I want the console to read a HID  controller.

Its not all that much of a stretch.  See http://nfggames.com/forum2/index.php?topic=3848.0
Same type of Idea, and I'm hoping he may chime in here.

Or more like this!!
http://www.xgaming.com/adapters.shtml
I gave them a shout but to think I will here back. I want to do that same thing, only with my adapter.
UPDATE xgaming uses their own protocol, not usb.



dimensionxor

The X-arcade stick itself isn't universal, it still requires a separate (and overpriced) protocol adapter for each console it is used with. If you are looking for a "skeleton key" protocol for a DIY arcade stick or adapter, I think you would be much better off using the ps1/ps2 protocol.

Ps1/ps2 controllers are not USB HID controllers in disguise like the controllers of the original Xbox, they use an SPI-like protocol that pre-dates USB. Because this same protocol was used for the original playstation (125 million sold), the psone (28 million sold), and the playstation2 (138 million sold), there are a massive number of gaming peripherals that speak this protocol floating around the world. A convenient side effect of this is that it creates a huge market for adapters to use these peripherals on other systems. Adapters that convert ps1/ps2 protocol devices to most other consoles can be found easily and cheaply. I bought a couple for the original Xbox a few years ago at $4.00 each, and recently one for the 360 at $8.50 shipped.

So, if you design whatever device you are building to speak the ps1/ps2 protocol, you can have the same thing you would with the X-arcade for a lot less money. You also then have automatic ps1/ps2 compatibility without needing any adapter.

ulao

#4
this is a very good point.. thx

In my case I'm out of pins.  I'd need at least 3 for a psx protocol. Damn, but never though about it.

dimensionxor

Yeah, unfortunately I/O pins tend to get eaten up quickly in a project like this. For the ps1/ps2 protocol, you would actually need a minimum of five pins if you want to communicate with a console (Data, Command, Clock, Attention, and Acknowledge), you can ignore the Acknowledge line and get away with just four if you only need to read data from a controller. You could squeeze out a few more I/O pins using a shift register, or maybe just switch to a micro with more pins.

phreak97

ah,
dimensionxor got in before me, I was going to say pretty much what he said in his first post, but it looks like he knows more than I do anyway. any time I wanted a custom controller for my pc (music game controllers etc) I used to hack up a playstation controller and plug it into my parallel port. If my new motherboard has parallel then I probably still will.
there are playstation to pretty much everything adaptors.

ulao

Right 3, was an off my head count. I ignore ak for my code but If I did create the psx protocol I would try to stay consistent.  I may do a serial comm to a second co-processor if it remains a must.

ulao

#8
Ok so I found a way to do it..

M$ desired to use a mangled descriptor.

So I just need to use this to comm with an xbox ( note the 360 is way harder )

l_oliveira

XBOX360 devices contain something like a signed device certificate.  If you connect a XBOX360 device to the PC (even if no driver exists) you will notice two devices being installed. One is the device for the function of the peripheral and the  other is the security device.

The purpose of that mechanism is keep people from developing third party controllers and other devices to work on the XBOX360 without a license agreement with MS.

ulao

Yeah I have a buddy trying the 360.. He is about to give up..

Anyways,    I DID IT!! I got my device to show up as an xbox controller.  Now I can use any controller I want on a xbox, this is going to be a cool toy. Need to figure out button mapping thought...that is going to be tricky.