More actions
CTROLLER for Android | |
---|---|
General | |
Author | superl2 |
Type | PC Utilities |
Version | 0.1.3 alpha |
License | Mixed |
Last Updated | 2018/01/29 |
Links | |
[binary+apk Download] | |
Website | |
Source | |
Ctroller-android is a program that lets you use your 3DS as an input device for your Android system via the uinput kernel module.
It consists of a client that runs on your 3DS, continously streaming the 3DS input data to a server on your Android device. 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. The kernel gamepad input documentation can be found here.
This is a port of phijor's ctroller application to Android.
Note: To use this your phone must be rooted with a uinput enabled kernel. ARM(64) only.
Installation
Prerequisites
ctroller-3ds, you can use the pre-built binaries by phijor (3DSX or CIA).
ctroller-android, you can use either the ELF binary, or the Android app.
To run the server, the uinput
kernel module needs to be loaded:
$ modprobe uinput
Installing
Create a directory ctroller
in the root of your SD card.
Place ctroller.cfg
in there and replace the IP with the one of your PC (the config file should now be at sdmc:/ctroller/ctroller.cfg
).
Install ctroller-3DS using either one of the following:
- CIA - Install
.cia
with the CIA-manager of your choice. - 3DSX - Copy
.3dsx
and.smdh
to/3ds/ctroller/
on your SD card.
Install ctroller-android using either one of the following:
- APK - With a simple UI.
- ARM64 - Run ELF binary manually.
User guide
App version
Run the application and press start.
Launch the ctroller.3dsx
or ctroller.cia
application on your 3DS using a homebrew launcher of your choice.
ELF binary
Start the ELF binary manually by copying to a executable location (like /data/local/tmp/) and running:
$ ./ctroller
Flags if you manually run the binary:
-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) -k --keymap use a keymap file (if not set, ctroller will use the default keymap)
Then launch the ctroller.3dsx
or ctroller.cia
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.
Custom keymap file
To remap the buttons in a way you want, you need to create a file with a button label on each line. The default mapping is this:
A B X Y START SELECT L R ZL ZR
To modify it, copy the above into a file, and swap keys around. The order is very important; any key in your custom keymap will override the default one on the same line.
To use this keymap with ctroller-android, use the -k option (see above).
For example, to change the layout to be more like an xbox, you can swap A
and B
; X
and Y
; R
and ZR
; and L
and ZL
. The keymap file will look like this:
B A Y X START SELECT ZL ZR L R
Notes
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.
Screenshots
Known issues
C-stick and D-Pad may not work.
Changelog
APK v0.1.3 2017/12/27
- Add about page - Check if the native binary is already running on app launch, and if so, give an option to stop it.
- Update native binary to release android-0.1.2 (buttons are now mapped like an xbox controller, fixed error logging).
ARM64 v0.1.2 2017/12/27
- The buttons now map like an xbox controller.
External Links
- GitHub (ctroller-android app) - https://github.com/hacker1024/ctroller-android-app
- GitHub (ctroller-android binary) - https://github.com/hacker1024/ctroller-android
- XDA - https://forum.xda-developers.com/t/use-your-nintendo-3ds-as-an-android-game-controller.3712796
- Reddit - https://www.reddit.com/r/3dshacks/comments/7gmvec/use_your_3ds_as_a_android_game_controller_port_of