Multiple mice and keyboards support

I managed to build a custom SDL library (from libSDL 1.2 sources) that exposes the source of mouse & keyboard events. People interested in how I did that will find the patch there: patch. It uses XI2/RawEvents. It’s very hackish and ugly, but it does the job. Note that it probably breaks stuffs useless to the sixaxis emulator.

This allows to use several mice and keyboards with the sixaxis emulator, which is a nice feature to play split-screen FPS games with friends 🙂

About the "Kinect-PS3" project

The Kinect-PS3 project from Shantanu Goel makes some huge buzz on the web. The Kinect-PS3 uses -among others things- the sixaxis emulator (called “diyps3controller” everywhere because of the name of my googlecode page), and probably wouldn’t be there without it. Many websites are talking about the Kinect-PS3, and they only give credits to only one person… guess who. This is not very fair, and I really would have appreciated getting a few credits for what I am working on.

That said, the Kinect-PS3 is a great showcase for the sixaxis emulator, and my googlecode page and blog are currently receiving an unusual amount of visitors.

I guess Sony will not enjoy this stuff at all, and I hope they won’t try to break the compatibility with the sixaxis emulator. But if they try to, be sure I will do my best to fix it.

QtSixA – Sixaxis control mapping for all!

The Sixaxis emulator supports standard joysticks thanks to the SDL library.
The sixaxis itself is not a standard joystick. This means some ugly patches have to be done to get it work.

It already works fine in usb mode, which makes it usable as-is with the sixaxis emulator, BUT bluetooth mode doesn’t work out of the box.

If you want to use your sixaxis in bluetooth mode, there is an excellent tool called QtSixA. There is a big thread about it in Ubuntu forums.

It turns out that QtSixA (current version is 1.5.0) works fine with the sixaxis emulator 😀

This tool even let you use the motion sensing! This is not supported by the sixaxis emulator… for now 🙂

To install it, from a terminal:

sudo add-apt-repository ppa:falk-t-j/qtsixa
sudo apt-get update
sudo apt-get install qtsixa

There is a shortcut in menu Applications > Accessories.

The pairing is currently broken, to fix it, just type in a terminal:

sudo mv /usr/bin/sixpair /usr/sbin/sixpair

All buttons and sticks are working with the sixaxis emulator. There is an issue with some ‘analog’ (pressure sensitive) buttons that are not working as axes: square/triangle/circle/cross.

There also is a minor compatibility issue regarding the joystick name which is different in bt mode. The joystick name is used to distinguish joystick models, so that this will require a small patch.

Remember: don’t use the same bluetooth address at the same time! This requires 2 sixaxis (1 turned off, 1 turned on). Or a usb dev board (such as the teensy++) to pair custom bluetooth addresses.

Version 0.14 released

Main improvements:

  • Config file permission/ownership problems should be fixed.
  • Software reset is improved (better compatibility with Broadcom dongles).
  • It’s possible to choose a circle or rectangle dead zone shape.
  • Sixemuconf allows to modify a mapping.
  • Sixemugui doesn’t hang anymore if connection is not successful.

All corrected issues:

Download link: sixemu_0.14-1_i386.deb

Enjoy!!

New all-in-one package 0.13

I built a new all-in-one package 0.13 that includes everything needed to install, configure and launch the sixaxis emulator.

It features a new gui called “sixstatus” that is able to display the sixaxis status (issue 35), as shown in the following screenshot:


It’s now possible to save the configuration of sixemugui (Sixaxis and PS3 addresses) so that it is not required (except for the first launch) to have the sixaxis plugged anymore (issue 33).

Last but not least, the mouse calibration mode is improved (issue 36).

If you installed the 9.99 test package, uninstall it before installing this new package!

Package download: sixemu_0.13-1_i386.deb

I will update the tutorials latter.