updated readme
The readme was updated to highlight the differences of this fork.
This commit is contained in:
		
							parent
							
								
									f5b01fb543
								
							
						
					
					
						commit
						e084a7e529
					
				
					 1 changed files with 97 additions and 117 deletions
				
			
		
							
								
								
									
										214
									
								
								README.md
									
										
									
									
									
								
							
							
						
						
									
										214
									
								
								README.md
									
										
									
									
									
								
							|  | @ -2,152 +2,132 @@ | |||
| 
 | ||||
|  | ||||
| 
 | ||||
| ## Demo | ||||
| https://youtu.be/f_1IkUHFdH8 | ||||
| 
 | ||||
| ## Features | ||||
| - Play Just Dance 2016 and later on all platforms with Joy-Cons. | ||||
| - Playing with a Joy-Con (+ its strap) is safer and more comfortable than holding a phone. | ||||
| - No latency. | ||||
| - Better score than using a phone (hopefully). | ||||
| - No random disconnection. | ||||
| - Support up to 6 players. | ||||
| - Support all platforms: | ||||
| Play Just Dance 2016 and later on all platforms with Joy-Cons! | ||||
| 
 | ||||
| |              | Xbox Series | Xbox One | PS4/5 | NSW | Stadia | PC | Wii U | | ||||
| |--------------|:-----------:|:--------:|:-----:|:---:|:------:|:--:|:-----:| | ||||
| | 2020-2022    | ✅          | ✅       | ✅    | ✅  | ✅    |    |       | | ||||
| | 2016-2019 ⚠️ |             | ✅       | ✅    | ✅  |       | ✅ | ✅    | | ||||
| - 6 players supported | ||||
| - no latency | ||||
| - no random disconnection | ||||
| 
 | ||||
| ⚠️ **Important**: Can't use buttons on Joy-Con to navigate the UI in JD 2016-2019 (you'll have to use controllers/keyboard). See [#6](../../issues/6). | ||||
| ### Compatiblitiy | ||||
| |              | Xbox Series | Xbox One | PS4/5 | Nintendo Switch | Stadia | PC | Wii U | | ||||
| |--------------|:-----------:|:--------:|:-----:|:---------------:|:------:|:--:|:-----:| | ||||
| | 2020-2022    | [x]         | [x]      | [x]   | [x]             | [x]    |    |       | | ||||
| | 2016-2019 ⚠️ |             | [x]      | [x]   | [x]             |        | [x]| [x]   | | ||||
| 
 | ||||
| **Important**: Can't use buttons on Joy-Con to navigate the UI in JD 2016-2019 (you'll have to use controllers/keyboard). See [#6](../../issues/6). | ||||
| 
 | ||||
| ### Benefits | ||||
| - Playing with a Joy-Con, with the strap on, is safer and more comfortable than holding a phone. | ||||
| - Score better than with a phone!  | ||||
| 
 | ||||
|    | ||||
| ## How does it work? | ||||
| It pretends to be the [Just Dance Controller app](https://play.google.com/store/apps/details?id=com.ubisoft.dance.justdance2015companion), sends movements of the Joy-Con to your game console. | ||||
| 
 | ||||
| ## Tested on | ||||
| - MacOS Catalina 10.15 with [TP-Link Bluetooth 4.0 Nano USB Adapter UB400](https://www.tp-link.com/us/home-networking/usb-adapter/ub400/). | ||||
| - Raspberry Pi Zero 2 W (Bullseye, kernel 5.15) with [MPOW BH519A Bluetooth 5.1 USB Adapter](https://www.xmpow.com/products/mpow-bh519a-bluetooth-5-1-usb-adapter-for-pc). Tested with 2 Joy-Cons and it worked just fine. | ||||
|    | ||||
| 
 | ||||
| ## Requirements | ||||
| - PC/Mac/Linux with bluetooth support. Doesn't work with Chrome OS/Crostini ([#15](../../issues/15)). | ||||
| - [Python 3.7+](https://www.python.org) and [pip](https://pip.pypa.io/en/stable/installation/) installed. | ||||
| - 1 to 6 Joy-Cons. | ||||
| - It's **RECOMMENDED** to: | ||||
|   - Use a Bluetooth dongle, because built-in Bluetooth sucks (or you will get disconnected constantly while playing). Make sure you buy a dongle with game controllers support, not just for audio devices. Not all dongles support Mac/Linux, so remember to check compatibility before buying. | ||||
|   - Use a Nintendo Switch to update Joy-Con to the latest firmware & calibate its motion sensors. Ask your friends or bring it to the game shop if you don't have one. | ||||
| ### Hardware | ||||
| - Bluetooth module or dongle | ||||
| 	- It is preferred to use a Bluetooth dongle because built-in Bluetooth may not perform quite well. Make sure you buy a dongle with game controllers support, not just for audio devices. Not all dongles support macOS or Linux, so remember to check compatibility before buying. | ||||
| - up to 6 Joy-Cons | ||||
| 	- It's recommended to update the Joy-Cons to the latest firmware and to calibate its motion sensors.  | ||||
| 
 | ||||
| ### Software | ||||
| - a desktop operating system | ||||
| - [Python 3.7+](https://www.python.org) and [`pip`](https://pip.pypa.io/en/stable/installation/) installed | ||||
| 
 | ||||
| ## Installation | ||||
| 
 | ||||
| 1. Download [the latest version](https://github.com/redphx/joydance/releases/latest/) and extract it into a folder. | ||||
| 2. Open that folder in Terminal/Command Prompt, then run this command: | ||||
| ``` | ||||
| pip3 install -r requirements.txt | ||||
| ``` | ||||
|    | ||||
| #### Extra steps for Linux users | ||||
| 	- The dependencies will be automatically downloaded. _(new from original version)_ | ||||
| 	 | ||||
| ### Extra steps for Linux users | ||||
| <details> | ||||
|   <summary>Click to expand!</summary> | ||||
| 	<summary>Click to expand!</summary> | ||||
| 
 | ||||
|   1. Linux users may need to use [`hid`](https://github.com/apmorton/pyhidapi) instead of [`hidapi`](https://github.com/trezor/cython-hidapi) (not sure why `hidapi` couldn't find Joy-Cons on Linux). | ||||
|   ``` | ||||
|   pip3 uninstall hidapi | ||||
|   sudo apt install libhidapi-dev | ||||
|   pip3 install hid | ||||
|   ``` | ||||
| 	1. Linux users may need to use [`hid`](https://github.com/apmorton/pyhidapi) instead of [`hidapi`](https://github.com/trezor/cython-hidapi) (not sure why `hidapi` couldn't find Joy-Cons on Linux). | ||||
| 	``` | ||||
| 	pip3 uninstall hidapi | ||||
| 	sudo apt install libhidapi-dev | ||||
| 	pip3 install hid | ||||
| 	``` | ||||
| 
 | ||||
|   2. Create a new udev rule file at `/etc/udev/rules.d/50-nintendo-switch.rules` ([Source](https://www.reddit.com/r/Stadia/comments/egcvpq/using_nintendo_switch_pro_controller_on_linux/fc5s7qm/)) | ||||
|   ``` | ||||
|   # Switch Joy-con (L) (Bluetooth only) | ||||
|   KERNEL=="hidraw*", SUBSYSTEM=="hidraw", KERNELS=="0005:057E:2006.*", MODE="0666" | ||||
| 	2. Create a new udev rule file at `/etc/udev/rules.d/50-nintendo-switch.rules` ([Source](https://www.reddit.com/r/Stadia/comments/egcvpq/using_nintendo_switch_pro_controller_on_linux/fc5s7qm/)) | ||||
| 	``` | ||||
| 	# Switch Joy-con (L) (Bluetooth only) | ||||
| 	KERNEL=="hidraw*", SUBSYSTEM=="hidraw", KERNELS=="0005:057E:2006.*", MODE="0666" | ||||
| 
 | ||||
|   # Switch Joy-con (R) (Bluetooth only) | ||||
|   KERNEL=="hidraw*", SUBSYSTEM=="hidraw", KERNELS=="0005:057E:2007.*", MODE="0666" | ||||
| 	# Switch Joy-con (R) (Bluetooth only) | ||||
| 	KERNEL=="hidraw*", SUBSYSTEM=="hidraw", KERNELS=="0005:057E:2007.*", MODE="0666" | ||||
| 
 | ||||
|   # Switch Pro controller (USB and Bluetooth) | ||||
|   KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="2009", MODE="0666" | ||||
|   KERNEL=="hidraw*", SUBSYSTEM=="hidraw", KERNELS=="0005:057E:2009.*", MODE="0666" | ||||
| 	# Switch Pro controller (USB and Bluetooth) | ||||
| 	KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="2009", MODE="0666" | ||||
| 	KERNEL=="hidraw*", SUBSYSTEM=="hidraw", KERNELS=="0005:057E:2009.*", MODE="0666" | ||||
| 
 | ||||
|   # Switch Joy-con charging grip (USB only) | ||||
|   KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="200e", MODE="0666" | ||||
|   ``` | ||||
| 	# Switch Joy-con charging grip (USB only) | ||||
| 	KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="200e", MODE="0666" | ||||
| 	``` | ||||
| 
 | ||||
|   Reload udev rules: | ||||
|   ``` | ||||
|   sudo udevadm control --reload-rules | ||||
|   sudo udevadm trigger | ||||
|   ``` | ||||
| 	Reload udev rules: | ||||
| 	``` | ||||
| 	sudo udevadm control --reload-rules | ||||
| 	sudo udevadm trigger | ||||
| 	``` | ||||
| 
 | ||||
|   3. Install [`dkms-hid-nintendo`](https://github.com/nicman23/dkms-hid-nintendo) (Joy-Con driver) if you're running Linux kernel older than 5.16. | ||||
| 	3. Install [`dkms-hid-nintendo`](https://github.com/nicman23/dkms-hid-nintendo) (Joy-Con driver) if you're running Linux kernel older than 5.16. | ||||
| </details> | ||||
| 
 | ||||
| ## Usage | ||||
| 
 | ||||
| 1. Open the phone pairing screen on Just Dance. | ||||
| 
 | ||||
| 2. Connect your PC/Mac/Linux to the same Wi-Fi or LAN network as your game console. For Stadia you just need to connect to the internet. | ||||
| 
 | ||||
| 3. Run this command: | ||||
|     ``` | ||||
|     python3 dance.py | ||||
|     ``` | ||||
|     or | ||||
|     ``` | ||||
|     python dance.py | ||||
|     ``` | ||||
| 
 | ||||
| 4. Open http://localhost:32623 (not https://...) in a web browser (32623 = DANCE). You can also open JoyDance on another device (connected to the same network) with this link: `http://[JOYDANCE_DEVICE_IP]:32623` (for example: `http://192.168.1.100:32623`). | ||||
| 
 | ||||
| 5. Turn on Bluetooth and pair with Joy-Con by holding down the [SYNC button](https://en-americas-support.nintendo.com/app/answers/detail/a_id/22634) until the light move up and down. Press the "Refresh" button until your Joy-Con shows up. | ||||
| 
 | ||||
| 2. Connect your computer to the same Wi-Fi or LAN network as your game console. | ||||
| 	- For Stadia, you just need to connect to the internet. | ||||
| 3. Run the executable or the Python script (`dance.py`).  | ||||
| 4. Open [**http://**localhost:32623](http://localhost:32623) in a web browser. You can also open JoyDance on another device connected to the same network by replacing `localhost` with your computer's private IP address.  | ||||
| 5. Turn on Bluetooth, and pair with the Joy-Cons by holding down the [sync button](https://en-americas-support.nintendo.com/app/answers/detail/a_id/22634) until the light move up and down. Press the "Refresh" button until your Joy-Con shows up. | ||||
| 6. Fill the form. | ||||
| 		- **Pairing Method**: | ||||
| 			|                    | Default        | Fast      | Stadia    | Old                   | | ||||
| 			|--------------------|----------------|-----------|-----------|-----------------------| | ||||
| 			| Platforms          | All but Stadia | Xbox One, PlayStation, Nintendo Switch | Stadia    | all | | ||||
| 			| Game versions      | 2020-2022      | 2020-2022 | 2020-2022 | 2016-2019             | | ||||
| 			| Pairing Speed      | slow           | fast      | slow      | fast                  | | ||||
| 			| Pairing Code       | [x].           | [ ]       | [x]].     | [ ]                   | | ||||
| 			| Private IP Address | host           | console   |           | PC, console           | | ||||
| 
 | ||||
|     - **Pairing Method**: | ||||
|       |                    | Default        | Fast      | Stadia    | Old                   | | ||||
|       |--------------------|----------------|-----------|-----------|-----------------------| | ||||
|       | Platforms          | All but Stadia | X1/PS/NSW | Stadia    | All, incl. PC & Wii U | | ||||
|       | Game versions      | 2020-2022      | 2020-2022 | 2020-2022 | 2016-2019             | | ||||
|       | Pairing Speed      | Slow           | Fast      | Slow      | Fast                  | | ||||
|       | Pairing Code       | Require        |           | Require   |                       | | ||||
|       | Private IP Address | Host           | Console   |           | PC/Console            | | ||||
| 
 | ||||
|     - **Host's Private IP Address**: | ||||
|       - The private IP address of your PC/Mac/Linux running JoyDance. Find this in the Wi-Fi settings. | ||||
|       - Starts with `192.168.` or `10.`. | ||||
|     - **PC/Console's Private IP Address**: | ||||
|       - The private IP address of your PC/console. Find this in the Wi-Fi settings on PC/console. | ||||
|       - Starts with `192.168.` or `10.`. | ||||
|     - **Pairing Code**: get this from the game. | ||||
| 
 | ||||
| 		- **Host's Private IP Address**: | ||||
| 			- The private IP address of your device running JoyDance. Find this in the Wi-Fi settings. | ||||
| 			- Starts with `192.168.` or `10.`. | ||||
| 		- **PC/Console's Private IP Address**: | ||||
| 			- The private IP address of your PC or gaming console. Find this in the Wi-Fi settings on that device.  | ||||
| 			- Starts with `192.168.` or `10.`. | ||||
| 		- **Pairing Code**: Get this from the game. | ||||
| 7. Press the "Connect" button next to Joy-Con to start the pairing process. | ||||
| 8. Once paired, go ahead with the game!  | ||||
| 
 | ||||
| 8. 💃🕺 | ||||
| ### Controller Mappings | ||||
| | Joy-Con (L) | Joy-Con (R) | | ||||
| |-------------|-------------| | ||||
| | Up          | X           | | ||||
| | Right       | A           | | ||||
| | Down        | B           | | ||||
| | Left        | Y           | | ||||
| | L           | R           | | ||||
| | ZL          | ZR          | | ||||
| | Minus       | Plus        | | ||||
| 
 | ||||
| ## FAQ | ||||
| 1. **What is the correct way to hold a Joy-Con?**   | ||||
|   Please follow these images for [Joy-Con (L)](https://static.wikia.nocookie.net/justdance/images/2/20/Hold_joy-constrap_blue.png) and [Joy-Con (R)](https://static.wikia.nocookie.net/justdance/images/8/8a/Hold_joy-constrap_04.png).   | ||||
|    | ||||
| 2. **How to control with Joy-Con (L)?**   | ||||
| 
 | ||||
|     | Joy-Con (L) | Joy-Con (R) | | ||||
|     |-------------|-------------| | ||||
|     | Up          | X           | | ||||
|     | Right       | A           | | ||||
|     | Down        | B           | | ||||
|     | Left        | Y           | | ||||
|     | L           | R           | | ||||
|     | ZL          | ZR          | | ||||
|     | Minus       | Plus        | | ||||
| 
 | ||||
| 3. **How to exit JoyDance?**   | ||||
|   Press `Ctrl + C` two times or close the Terminal window. | ||||
| 
 | ||||
| 4. **Is it possible to port JoyDance to wearable devices like smart watches (Wear OS, watchOS...)?**   | ||||
|   Yes. I tested on a tiny [M5StickC Plus](https://shop.m5stack.com/collections/stick-series/products/m5stickc-plus-esp32-pico-mini-iot-development-kit) and it worked! But remember, some movements require you to move only the palm of your hand won't be recognized correctly. | ||||
| 
 | ||||
| 5. **Can I play Just Dance 2017 (PC) and run JoyDance on the same PC?**   | ||||
|   Yes, you can. | ||||
| ## FAQs | ||||
| <details> | ||||
| 	<summary>### 1. What is the correct way to hold a Joy-Con?</summary> | ||||
| 	Please follow these images for [Joy-Con (L)](https://static.wikia.nocookie.net/justdance/images/2/20/Hold_joy-constrap_blue.png) and [Joy-Con (R)](https://static.wikia.nocookie.net/justdance/images/8/8a/Hold_joy-constrap_04.png).   | ||||
| </details> | ||||
| <details> | ||||
| 	<summary>### 2. How to exit JoyDance?  </summary> | ||||
| 	Close the only window. _(new from original)_ | ||||
| </details> | ||||
| <details> | ||||
| <details> | ||||
| 	<summary>### 3. Can I play Just Dance 2017 on a PC while using JoyDance?  </summary> | ||||
| 	Yes, you can. | ||||
| </details> | ||||
| 
 | ||||
| ## Acknowledgements | ||||
| -  [redphx/joydance](https://github.com/redphx/joydance) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue