Wifi Joystick application allows each iPhone, iPod Touch and iPad(generally saying each Apple's device that runs iPhone OS in version at least 3.0 and have both accelometer and wifi) to behave as a wireless joystick. Any game on linux that supports joystick can be played using wifi Joystick. Wifi Joystick application can't emulate joystick by itself on the device. It needs a special software to be installed in the system!

AVAILABLE SOON!

 
 
     
 

Wifi Joystick can emulate joystick behavior - simulating buttons(up to 4) displaying on the screen(all can be pushed at the time) and device position in X and Y axis(those can be replaced by additional 4 buttons). Summing up, our wireless joystick can run in two modes:

  • mode with at last 8 buttons and no axis emulation
  • mode with at last 4 buttons with X and Y axis emulation

Number of buttons can be configured on the device, by wifi Joystick application.

Wifi Joystick in order to work properly needs to have a wifi connection and has to be connected to the same network as the computer on which the game will be played.

Wifi Joystick works with ALL linux games that supports joystick controls.
Wifi Joystick will NOT WORK with any game on Mac or Windows

Games on which wifi Joystick has been tested:

  • etracer (Tux Racer) - wifi Joystick in mode with 4 buttons and axis
  • ballistics demo - wifi Joystick in mode with 8 buttons and no axis
 
 
     
 
t

What do you need in order to use wifi Joystick?

  • wifi Joystick from AppStore installed onyour iPhone/iPod/iPad
  • Linux operating system with kernel version 2.6.x
  • downloaded and installed joystick driver from here
  • downloaded application that connects to the iPhone/iPod/iPad from here

1. How to check which version of kernel you have?

Open console and type:

$uname -r
2.6.31.8-0.1-default

In my case I use kernel version 2.6.31.8-0.1-default which is supported by wifi Joystick.

2. Know, as you know which version of the kernel you use, it is obligatory to download kernel sources and developer tools(gcc), otherwise joystick driver couldn't be compiled and used. How to install those? This process looks differently on different linux distributions, I am going to present the solution for most used distributions(for other the process is similar).

  • If you are using OpenSUSE 10.x:

Open Yast(Start->Programs->System->Administrator Settings(Yast)). Choose Software Management. Search for packages and tick up them in order to install them: gcc, kernel-source, linux-kernel-headers. ATTENTION! there will be many options of the kernel-source and linux-kernel-headers to install. You should choose the one that has the same name as kernel you currently use(in my case 2.6.31.8-0.1-default - see above).

  • If you are using Ubuntu or Debian like distribution:

Open terminal(console) and type the following in order to install gcc:

$ sudo apt-get install gcc

We also need to install kernel-headers, first lets search for their name:

$ apt-cache search `uname -r`
linux-image-2.6.31.8-0.1-default - Linux kernel image for version 2.6.27 on x86/x86_64
linux-headers-2.6.31.8-0.1-default - Linux kernel headers for version 2.6.27 on x86/x86_64
linux-restricted-modules-2.6.31.8-0.1-default - Non-free Linux kernel modules for version 2.6.27 on x86/x86_64

From the results above we are interested in instaling headers so that type the following in the console with the proper headers name. In my case it would be:

$ sudo apt-get install linux-headers-2.6.31.8-0.1-default

Now you are ready to compile and install the driver.

3. Installation of the driver.

In console type the following:

$ cd ~
$ mkdir wifiDriver
$ cd wifiDriver
$ wget http://wifijoystick.alias.pl/driver.tar ./
$ tar -xvf driver.tar
$ make

When everything went well you should have the driver compiled and placed in ~/ folder. Its name should be iemulator.ko . Now it's high time to put the driver into the system. You can achive that by typing:

$ sudo insmod iemulator.ko

In order to check if the driver was successfully loaded, the output of the following command should consists of something like "[IEMULATOR] Device has been initialized successfully":

$ tail dmesg

In order to be able to write to the driver we have to setup proper device access permissions. For now we can grant all permissions to it by doing:

$ sudo chmod a+wx /dev/iemulator*

In the end of the article. I described how to set the permissions using the udev.

4. Running ConnectionTool. To run ConnectionTool, firstly download it, unpack and run:

$ cd ~
$ mkdir connectionTool
$ cd connectionTool
$ wget http://wifijoystick.alias.pl/connectiontool.tar
$ tar -xvf connectiontool.tar
$ ./connectionTool

When you see the following screen you are ready to pair your computer with the device:

Now take your iPhone/iPod touch/iPad and launch wifi Joystick application. Choose number of button you want to emulate and tap on "Emulate" button(ATTENTION! your device has to be connected to the wifi at this time. It has to be connected to the same network as your PC!). Wifi Joystick should now show you the IP address and port to which you should connect with your ConnectionTool. Rewrite the IP address and port in the ConnectionTool so that it equals with the values that the iPhone/iPod/iPad shows.

Click Connect in the ConnectionTool when ready. If everything went well. ConnectionTool should change the window to the following:

When you see the above image, it means that the connection with the device has been setup successfully. When rotating the device, iphone image should rotate the same direction. ConnectionTool shows also the state of the buttons at the top right corner. If you want to start playing game you have to click "Emulate joystick" in the ConnectionTool. If already pressed and no error message appeared, you are ready to go! Don't close ConnectionTool, start any game that supports joystick and enjoy!