|Type||Other PC Utilities|
Ctroller is an application that allows you to use your 3DS as an input device for your Linux system via the uinput kernel module. Inspired by 3DSController, it consists of a client that runs on your 3DS, continously streaming the 3DS input data to a server on your PC.
The server exposes a virtual device to your system, interpretes the data it receives and writes it to a event node under
/dev/input/event* or similar.
Note: This project is no longer maintained, it might still work in an up to date homebrew environment but this is not guaranteed.
To run the server, the
uinput kernel module needs to be loaded:
$ modprobe uinput
make to build both components, or enter either of the
linux subdirectories to build them individually by running
make there. You can use the
debug target for development.
Install the server to your system by running
make install. This is equivalent to:
$ cd linux
$ make install DESTDIR="" BINDIR="/usr/bin"
- You can set
DESTDIRto a install to a different location, i.e.
make DESTDIR="/my/fakeroot/environment"installs ctroller in
Download the latest release of the 3DS binaries. Or you can build them yourself:
$ cd 3DS
$ make release
ctroller.cia with the CIA-manager of your choice. If you want to install the 3DSX-executable:
/3ds/ctroller/on your SD card.
- You can also directly upload the application to your 3DS using upload.sh (do not blindly execute unknown scrips).
- To do so, start a FTP server, such as ftpd, on your 3DS on port 5000, then run:
$ cd 3DS
$ make upload DSIP=<IP of your 3DS here>
- Note this requires
ftpto be installed on your system.
Create a directory
ctroller in the root of your SD card.
Place 3DS/ctroller.cfg in there and replace the IP with the one of your PC (The config file should now be at
Start the server by running:
$ ./linux/ctroller </code>
-d --daemonize execute in background -h --help print this help text -p --port=<num> listen on port 'num' (defaults to 15708) -u --uinput-device=<path> uinput character device (defaults to /dev/uinput)
Then launch the ctroller.3dsx application on your 3DS using a homebrew launcher of your choice. For development purposes, the 3DS-Makefile includes a
run target that uses
3dslink to upload and run the application using the Homebrew Menu NetLoader.
This program is intended to be used in a private network. For simplicity, the server right now accepts any connection on it's port, which might pose a security risk if others can send data to it. This will be changed in future releases. For now, you probably shouldn't be using this in a public network.