Page 1 of 1

programming USB controller : Buzz! on PC or PS2 ?

Posted: Mon Nov 07, 2005 10:58 pm
by napo7
Hi,

I've got the "Buzz : the music Quiz" game on PS2, which is sold with an USB controller "Buzz" with 4 buzzers...
I've plugged it on my PC, and it's detected as a standard USB Joystick (entitled "Buzz"), but there is no way to light on the buzzers (which can be light, when plugged on PS2, with the original game).

As on PC I can access all the buttons, I'd like to know if there's a way of lighting the buzzers (I think with a Hardware Specific command, but which one ???)

Thanks to all ;)

Posted: Thu Nov 10, 2005 10:24 pm
by napo7
Update :I've found on the Buzz DVD (the game) a directory named "IOP" with inside some files (most of them are .IRX), and one is called "BUZZER.IRX"... Have opened it, seems to be a driver for the buzzers. Is it possible to disassemble it and pick functions included in it ?
I'm looking for a hardware-specific command which could light on the buzzers....

Posted: Thu Nov 10, 2005 11:10 pm
by Saotome
napo7 wrote:... Is it possible to disassemble it and pick functions included in it ?
I'm looking for a hardware-specific command which could light on the buzzers....
You could disassemble it with ps2dis (hint: google).
But it's not that easy as you might think (not just "pick functions" - maybe if you're lucky and there's debug information in it).

Posted: Sat Nov 12, 2005 7:51 am
by J.F.
The device itself is probably pretty simple - just an input port and an output port. The input port would have the button states, and the output port would control the buzzer. (Note: it could be one in/out port as opposed to two separate ports.)

If you're in linux, do "lsusb -v" while the things isn't plugged in, then plug it in and do "lsusb -v" again. Look for the new device, then check for the endpoints. Endpoints are where data comes from/goes to in USB devices. Reading a port via usb is as easy as just getting the endpoint... once you know about it. In this case, the data returned should be easy to figure out - it's just the button state. Ditto for the output. It may or may not generate an interrupt when the button is pressed. lsusb should say if it does or not. Then look at how the ps2sdk mouse and keyboard drivers work to get an idea of how to read endpoints.

If you're in Windows, I have no idea how to look at USB devices. You might look around for a program similar to lsusb.

Posted: Sat Nov 12, 2005 10:30 am
by rinco
A cross platform program similar to lsusb is test_libhid from the libhid library.

Here is a quote from test_libhid.c:
/* How to write to and read from a device:
*
* Writing to a device requires the HID usage path, a buffer, and the length
* of the latter. You must also know the exact length of a packet expected
* by the device, and the protocol to speak over HID.
*
* libhid uses the MGE hidparser, which parses the HID usage tree and places
* the available usages at its leafs (leaves?). The path information can be
* read from the `lsusb -vvv` output, or by inspecting the output of
* hid_dump_tree. In the output, 0x80 denotes an input endoint (sent by the
* device), and 0x90 an output endpoint (sent to the device). These are then
* used to communicate with the device.

Posted: Mon Nov 14, 2005 10:09 pm
by napo7
Thanks for the answer.
In windows, the device is seen and installed without any drivers (maybe because of an HID device ?), and I can acces each buttons state, but there is no output support (it is supported by DirectX Force Feedback, but this device does not support forcefeedback.) As a Driving force pro Wheel, I think I must send a special command to this device to light on or off the buzzers; For Driving force pro for example, there must be a special command to set 900° mode and disable it. I'm just looking for this command for the buzzers. I wonder if it is included in the BUZZER.IRX file??

Buzz!-Controller on PC

Posted: Mon Jul 24, 2006 7:08 pm
by Cyberpop
Hello,

although this topic is already somewhat older, I'd like to bring it back to life. I'm the proud owner of a buzz-controller-set since last week, and I'm also quite interested in bringing the buzz-lights up when hooked to a PC. Now I'm wondering whether either one of you has at last been successful in figuring out the correct commands by trial and error or by using a USB-protocol analyzer (like the ones that can be seen here).

If any of you has some information about that, I'd be quite happy if you're sharing it with us.