Main | Screenshots | Downloads | Manual | FAQ | GET Gamepads!



Go to the downloads page and install WifiPad Server on your PC. The WifiPad client for the iPhone/iPod Touch may be obtained from the App Store.

Firewall configuration

WifiPad-server requires port TCP/UDP 8989 to be available over the local network. It must also alow outgoing port UDP 8990.

Server configuration

Starting WifiPad server

Make sure that the computer that is running WifiPad server is connected to the network.

You can find information about troubleshooting your network connection here:


Windows: Start WifiPad Server by clicking the Start menu and choosing Programs, WifiPad, and WifiPad Server.

Mac: Double click "WifiPadServer," in your Applications.

WifiPad Server Interface

This is the main interface of the WifiPad server.

WifiPad Server Interface

1. Optional. You can specify the server name here. The server name appears on the WifiPad client when queried.

2. This drop-down box contains a list of saved key configuration. A configuration is a set of defined keys for a gamepad. For example, you can create a configuration called "Game X Player 1" with key bindings for player 1 for a specific game. A default configuration is provided for convenience, but you will be required to create a configuration in order to change the keys.

3. The Gamepad drop-down box lets you select a gamepad. WifiPad allows different gamepad themes to be installed. Go here to find more gamepads.

4. This adjusts the speed of the cursor for mouse operations.

5. The Show Keys and Show Tap Zone checkboxes allow you to see the keys on the gamepad configuration view as well as the tap zones.

6. This is preview of the gamepad. By clicking on a tap zone of a button, you can change the key assignment. You must select a configuration in the Configuration drop down box in order to change the keys. Remember to click "Save" or your changes will not be applied.

7. This is a text field which you can use to test key presses from the client.

Assigning keys

In order to change keys, a configuration must be created. Click on the "New..." button next to the configuration drop-down box. Enter a configuration name and click OK.

Once you have created a configuration, you can start assigning keys to the gamepad. Select the configuration that was just created from the drop-down box and choose the gamepad you wish to configure. By clicking on one of the tap zones of the button a window will pop up, allowing you to change the key.

Button configure window

Button configuration window (Mac OS X)

Enter the key assignment for the button. You can able to assign up to three unique key strokes for a button. This is necessary to simulate diagonals (such as buttons UP+RIGHT at the same time). Drop down boxes are available to select special keys, such as mouse. Use the "Accept" button to confirm changes if you use special keys.

Repeat the above process for the other buttons. Once you're done, don't forget to click "Save".

Creating custom gamepad

** New ** WifiPad Creator is a helper utility for creating gamepads.

WifiPad provides the ability to install and use custom designed gamepads. A gamepad consists of a description file identifying the gamepad information such as button coordinates, a main image for the gamepad and a set of additional images which represent the button pressed state. The format is very strict, any mistakes will not be tolerated.

Creating a gamepad description file

The gamepad description file consists of a number of Key: Value pairs specified individually on each line. To begin, create a text file and name it "gamepad.txt". Start off by entering:

Tag: GP10

as the first line. This line is required for the server to identify that the gamepad is a WifiPad gamepad file rather than some random text file. Next, enter a name for the gamepad.

Tag: GP10
Name: WifiPad

This will give your gamepad a title. Next, we'll need a UUID for the gamepad. The UUID is a unique identifier which uniquely identifies the gamepad. A UUID maybe obtained with the 'uuidgen' program available on the Mac OS X or Linux platforms. You can also look on Google for free UUID generators.

The UUID may be entered into the UUID line.

Tag: GP10
Name: Name of my gamepad

The gamepad will require a background image. This is the image of the gamepad. The image should be 24-bit RGB, 480x320 pixels and saved in PNG format. Use the Image: tag to specify the filename of the image. Notice: The image filename must be less than or equal to 15 characters long and not contain any spaces!

Tag: GP10
Name: Name of my gamepad
Image: gamepad.png

The rest of the gamepad consists of Button: entries. Each button is defined by a hot spot (the rectangle which triggers the button), an optional overlay image to display when the button is pressed, and the default key the button is assigned to. A button entry will look like this:

Button: 0,0,20,20 ; btndown.png,0,0 ; UP

The format of each button line is as follows:

Button: x1,y1,x2,y2 ; down.png,imageX,imageY ; Button1,Button2,Button3

(x1,y1) refers to the top-left corner of the hot spot rectangle while (x2,y2) refers to the bottom right. The coordinates (x1,y1), (x2,y2) must be in the range of (0,0) -> (479,319). The button down image specified by down.png in the above example must be a 24-bit PNG image and is displayed at the coordinates specified by (imageX,imageY). Note that the filename of the button down image must be less than or equal to 15 characters and not contain any spaces. Button1, Button2 and Button3 refer to the default button presses assigned to this key. Up to three buttons are simulated simultaneously. It is a good idea to stick use only A-Z, LEFT, RIGHT, UP, DOWN and RETURN for the keys as they are portable across platforms.

The following is an example of gamepad.txt.

Tag: GP10
Name: WifiPad (Default)
UUID: 16F628FA-215C-49D8-B651-E3DB524E3A3E
Image: gamepad.png
Button: 70,60,145,155 ; pad-u.png,7,86 ; UP
Button: 145,80,215,155 ; pad-ur.png,7,86 ; UP,RIGHT
Button: 120,155,215,230 ; pad-r.png,7,86 ; RIGHT
Button: 145,230,215,303 ; pad-dr.png,7,86 ; DOWN,RIGHT
Button: 70,230,145,319 ; pad-d.png,7,86 ; DOWN
Button: 0,230,70,303 ; pad-dl.png,7,86 ; DOWN,LEFT
Button: 0,155,95,230 ; pad-l.png,7,86 ; LEFT
Button: 0,80,70,155 ; pad-ul.png,7,86 ; UP,LEFT
Button: 399,165,479,287 ; a-dn.png,400,162 ; A
Button: 268,218,395,303 ; b-dn.png,315,213 ; B
Button: 335,87,451,162 ; x-dn.png,334,85 ; X
Button: 240,108,327,215 ; y-dn.png,249,136 ; Y
Button: 277,0,376,55; l-dn.png,278,0 ; L
Button: 383,0,479,55 ; r-dn.png,383,0 ; R
Button: 198,0,233,55 ; start-dn.png,193,0 ; RETURN
Button: 139,0,185,55 ; sel-dn.png,141,0 ; SHIFT

Trackpad (v1.1+)

WifiPad 1.1+ supports a trackpad for basic mouse support. In order to create gamepads with trackpad support, one start the gamepad.txt with Tag: GP11 instead of GP10.

Tag: GP11

The trackpad definition follows the same format as Button.

Trackpad: 0,0,479,319 ; ; LBUTTON

can turn the entire screen space into a wireless mouse pad.

Creating images

Be conservative. The larger the image, the more memory it will consume on the device. Keep all images to a minimum size. Use PNGCrush to reduce the size of PNG's to a minimum.

Creating the .gamepad file

A .gamepad file is an archive of the gamepad.txt and png images. The standard AR format is used and thus, you can use the 'ar' tool on Mac OS X or Linux. A copy of AR for windows may be available in the MinGW distribution. To make the gamepad, use the commandline:


ar -Tr mygamepad.gamepad gamepad.txt image.png image1.png image2.png ...


ar -r mygamepad.gamepad gamepad.txt image.png image1.png image2.png ...

Notice that only historical ar format works. That means each filename can be at maximum 15 characters long. WifiPad does not understand long filenames!

Gamepad validation

If you find that you are getting the "Invalid gamepad error" or the gamepad is not showing up in the gamepad list, it is probably because there is an error in the making of the gamepad. Here is a checklist of things to look out for. The following must be true for a valid gamepad:

  • The main gamepad image must be 480x320 24-bit RGB in PNG format
  • The UUID must be unique
  • All hotspot rectangles must be in the range of (0,0) -> (479,319)
  • All hotspot rectangles must be valid (e.g. 50,50,25,25 is invalid because 50,50 is greater than 25,25)
  • All button down images are < 480x320 in size and are 24/32-bit RGB PNG images
  • All image filenames are <= 15 characters in length and not contain spaces
  • gamepad.txt is in plain text format