Tool to control linux computer from a 3ds. Basically like VNC, RDP, etc. Currently, it can only manage about 4 fps, tops.
It goes without saying, but the the server simply isn't secure, so don't do anything stupid with it. 😉
For optimal server performance, you should probably
make the "server/work" folder RAM based. This can be done with:
sudo mount -t tmpfs -o size=50m tmpfs ./server/work
- Runs on port 55550 UDP
- Uses NanoJpeg, by KeyJ. (License in source file)
- Compression: dynamic PNG/JPEG, or static JPEG. (Toggleable at runtime)
- devkitpro/ctrulib! Thx WinterMute/smea!
- The mouse pointer graphic is from the GTK theme "greybird"
- Uses xautomation and xdotool for input events
- Image encoding is done with image magick
- The server must be running within the server folder
- Git
Packages required:
- imagemagick
- xdotool
- xautomation
sudo apt-get install imagemagick xdotool xautomation
The client requires devkitARM and ctrulib. To compile, just
enter make
in the root of the repository.
To compile the server, just enter make
in the "server" folder.
The server only needs the cstdlib, and BSD sockets for compilation.
However, the packages listed above are required at runtime.
- Make sure port 55550 UDP isn't blocked by a firewall. (
sudo ufw allow 55550/udp
) - Start the server, from within the server folder. (
cd server; ./server
) - Enter your IP address into the "serveraddr" field of 3ds-remote-linux.ini
- Place 3ds-remote-linux.ini on your SD card in: "3ds/3ds-remote-linux/3ds-remote-linux.ini"
- Start 3ds-remote-linux on your 3ds.
Tap the buttons labeled under "Video mode," to switch between dynamic, and static compression.
Dynamic compression is ideal for tasks like web browsing, or anything where the screen isn't changing very quickly. Static compresssion is best suited for watching videos, or perhaps gaming.
When using static compression, the slider labeled "Video quality" can be used to set the JPEG quality.
Input | Action |
---|---|
A | Left Click |
B | Double left click |
Y | Right click |
X | Speed up mouse movement |
Circle pad | Move mouse |
D Pad | Arrow keys |
Start | Exit |
R + Dpad L/R | Change logging verbosity |