Skip to content

Commit 82243a5

Browse files
committed
update documentation
1 parent 1327672 commit 82243a5

File tree

2 files changed

+50
-9
lines changed

2 files changed

+50
-9
lines changed

README.md

Lines changed: 46 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,61 @@
11
# 3DS vJoy Controller
2-
This project allows anybody with one (or more) 3DS and vJoy to use their device(s) as a singular, coherent controller
2+
This project allows anybody with one (or more) 3DS and vJoy to use their device(s) as a singular, coherent controller.
3+
When a 3DS joins the server (running on the system where the button inputs are wanted), it will be assigned the next available buttons on the virtual controller and update those depending on which buttons are pressed on the 3DS.
4+
5+
Focus of the project is the simple protocol and the extensibility for different devices.
6+
7+
For educational purposes only.
38
# Requirements
49
- Nintendo 3DS
5-
- with this spicy firmware Nintendo loves
10+
- with the spicy firmware Nintendo loves
611
- [vJoy](https://github.com/shauleiz/vJoy)
712
- Python
8-
- `pyvjoy`
9-
## Build
13+
- `pyvjoy`-Library
14+
## Build-Requirements
1015
- [devkitARM](https://devkitpro.org/wiki/Getting_Started)
1116
# Getting the 3DS application
12-
## Universal Updater
13-
> [!NOTE]
14-
> The app is being submited to Universal DB to be available in the Universal Updater directly
1517

16-
## Release
18+
## From Releases
1719
Go over to the releases and download the binary
18-
## Build
20+
21+
## By building yourself
1922
`cd 3ds && make`
23+
24+
## From Universal Updater
25+
> [!NOTE]
26+
> The app is submited to Universal DB to be available in the Universal Updater
27+
> Still in revision
28+
2029
# Usage
2130
1. Install the `.3dsx` app to your 3DS devices
2231
2. Start the server using `python3 server.py`
2332
3. Start the application on your 3DS devices
2433
4. Enter the IP of the server
34+
5. Profit
35+
36+
# Protocol
37+
![Protocol](assets/protocol.svg)
38+
39+
## Data
40+
The data is sent in the following format:
41+
```
42+
<Packet> ::= '<' <Data> '>'
43+
<Data> ::= <Integer> ';' <Data> | <Integer>
44+
<Integer> ::= <Digit> | <Digit> <Integer>
45+
<Digit> ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
46+
```
47+
48+
## Example
49+
```plaintext
50+
<4; 17408; 16998>
51+
```
52+
- First integer will be interpreted as pressed buttons binary formatted
53+
- 4 = 100
54+
- 0 = A
55+
- 0 = B
56+
- 0 = X
57+
- 1 = Y
58+
- Second integer will be interpreted as the X-Axis value
59+
- The value is in the range of 0-32768
60+
- Third integer will be interpreted as the Y-Axis value
61+
- The value is in the range of 0-32768

assets/protocol.svg

Lines changed: 4 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)