Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

PadSend DS - Wii

From GameBrew
PadSend for DS/Wii
Padsendwii.png
General
Authormntorankusu
TypeOther Apps
Version2011
LicenseMixed
Last Updated2011/06/05
Links
Download
Website

PadSend allows you to use GameCube pads connected to a Wii or a DS as a PC gamepad (requires PPJpy installed). By default, it will only work if your DS or Wii has an IP address that starts with 192.168.1.

The homebrew was entered into the GBAtemp Homebrew Bounty 2011 (Wii).

Features

Wii

  • Support for all four controller ports, simultaneously.
  • Analog sticks and triggers are supported.
  • Mouse control using either or both of the analog sticks and L/R buttons. Note that mouse movement might be choppy due to how messages are handled.

DS

  • Support for up to 16 connected DS systems.
  • Relative mouse control using the touch screen and L/R buttons.
  • Absolute joystick control using the touch screen (must be calibrated in the Windows joystick panel).

Server

  • Automatically creates PPJoy virtual joysticks for each unique device connected. It does not automatically delete them, though, because it turns out that is really annoying.
  • Writes button and axis names to the registry, which means games that bother to look for this can use accurate button labels.
  • You can rename each device connected through the program interface - you can have two systems connected named "Nintendo DS Lite" and "Nintendo 3DS" for example.
  • An icon is displayed on the status window next to each device, the color of which can be changed to match your controller or system.
  • Mouse control can be enabled or disabled, and this setting can be applied per-controller.
  • All settings are saved and loaded automatically. The MAC address on the DS is used as a unique identifier, so settings can be saved, loaded per-system.
  • Sits quietly in the tray, and if it works, then it never requires any settings or attention.

User guide

How to use

Make sure you have PPJoy installed (works on Win95/98/XP).

First run the server application on your computer (requires .NET framework 2.0). The server window will briefly appear before hiding itself in the system tray. Clicking the tray icon will reveal the status window. The behavior and appearance is intended to mimic the way Windows 7's volume, network, etc, tray icons work.

Then run the client on your Wii or DS. Please be aware the client will only work if your DS or Wii has an IP address starting with 192.168.1. For instructions on how to use PadSend with other IP addresses on the Wii, refer to the tutorial written by Cyan. (do the same if you are using the DS version)

Once a device is connected, it will be shown on the status menu. You can click the device icon to change its name or color. Right clicking the icon will change how the color is displayed, but this isn't saved, so it's not very useful.

Click About/Help to see descriptions for what each checkbox does.

Using Wiiload (Wii)

Run the server on your computer.

If you have Wiiload configured or if you know your Wii's IP address, you can send the Wii client directly to your Wii from here - open the Homebrew Channel on your Wii, and click Wiiload Client.

If Wiiload is already configured, it will send it over right then. If it's not configured, it will prompt for you to enter your Wii's IP address, then send it. You can also do this from the tray icon's right click context menu, if you don't want to bring up the full status window.

Development

For developers who want to write apps to interface with the server, UDP messages are sent to 192.168.1.255, on port 9501. The data structure for both types of controllers is (bytes):

  • 00 - Counter (not used yet)
  • 01 - Unique ID
  • 02 - Identifier (explained below)
  • 03 - Extension (not used yet)
  • 04 - Buttons 0 (each bit is one button state)
  • 05 - Buttons 1

After this it's different for each; GC:

  • 06 - Left Analog X
  • 07 - Left Analog Y
  • 08 - Right Analog X
  • 09 - Right Analog Y
  • 10 - Analog Trigger L
  • 11 - Analog Trigger R

DS:

  • 06 - TouchX1 (each two bytes makes up a single unsigned 16-bit number-- maximum is 4000 though)
  • 07 - TouchX2
  • 08 - TouchY1
  • 09 - TouchY2

Identifier:

  • 01 - Gamecube Port 1
  • 02 - Gamecube Port 2
  • 03 - Gamecube Port 3
  • 04 - Gamecube Port 4
  • 09 - Nintendo DS

The server expects at least one message every second, or it assumes the device has disconnected.

Screenshots

PadSend for DS
padsendds.png

PadSend for Wii
padsendwii.png

Known issues

  • Only the last byte of the MAC address is used to identify the connected DS, so two systems may identify as one and fight over a single virtual joystick.
  • The Wii does not send a unique identifier, so you can't use more than four Gamecube controllers by connecting multiple Wiis. Not that I figure anyone would want to do this.
  • Color settings either do not save or load properly for Gamecube controllers.
  • If the virtual joysticks configured by PPJoy are not sequentially numbered, the server may (probably will) create duplicate joysticks.
  • There's no dead zone for Gamecube analog sticks, so if your pads are worn out, you may find your mouse pointer wandering.
  • Input is only updated each time a new message is received, so mouse control is not consistent when controlling it with an analog stick.
  • It will only work if your router assigns addresses that start with 192.168.1. You might be able to hex edit the executables to change this to match your situation (leave the last octet as 255, though).

External links

Advertising: