Updated docs and added attribution
This commit is contained in:
parent
16ead63221
commit
0ff822a0cf
3 changed files with 32 additions and 8 deletions
|
|
@ -17,3 +17,10 @@ Functionality is currently under development.
|
||||||
## Getting Started
|
## Getting Started
|
||||||
|
|
||||||
TBA
|
TBA
|
||||||
|
|
||||||
|
## Issues
|
||||||
|
|
||||||
|
- Switching from the slow frequency mode on the "Change Grip/Order" menu to the full input report
|
||||||
|
frequency is still a bit of a frail process. Some game start menus have a frequency of 15Hz
|
||||||
|
but specifically only allow exiting by pressing the A button. The "Change Grip/Order" menu
|
||||||
|
allows for exiting with A, B, or the Home button, however.
|
||||||
|
|
|
||||||
|
|
@ -54,6 +54,10 @@ Using the following equations, we can decode these values into meaningful ones.
|
||||||
Each stick's data is treated as an array of byte values for the equations.
|
Each stick's data is treated as an array of byte values for the equations.
|
||||||
|
|
||||||
```python
|
```python
|
||||||
|
# The following code comes from DekuNukem's reverse engineering repo:
|
||||||
|
# https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering/blob/master/spi_flash_notes.md
|
||||||
|
# All credit goes to the original author(s)
|
||||||
|
|
||||||
# The nine stick bytes are labelled stick_cal[0] - stick_cal[8] here
|
# The nine stick bytes are labelled stick_cal[0] - stick_cal[8] here
|
||||||
data = [0] * 6
|
data = [0] * 6
|
||||||
data[0] = (stick_cal[1] << 8) & 0xF00 | stick_cal[0];
|
data[0] = (stick_cal[1] << 8) & 0xF00 | stick_cal[0];
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,16 @@
|
||||||
This is a compilation of quirks, tidbits, and other info that pertain to
|
This is a compilation of quirks, tidbits, and other info that pertain to
|
||||||
this project.
|
this project.
|
||||||
|
|
||||||
|
## Crashing a Switch with Malformed Packets
|
||||||
|
|
||||||
|
After successfully connecting to a Nintendo Switch (either through
|
||||||
|
reconnection or connection on the "Change Grip/Order" menu), simply
|
||||||
|
send blank packets for about 2 to 3 seconds. The Switch will throw up
|
||||||
|
an error screen and force a system restart.
|
||||||
|
|
||||||
|
Refer to the "crash_switch.py" script in the "scripts" folder for an
|
||||||
|
implementation and more details.
|
||||||
|
|
||||||
## Requirements for pairing with the Switch
|
## Requirements for pairing with the Switch
|
||||||
|
|
||||||
- Controller SDP record. They all share the same one (generally), so a only a single record is needed to emulate all three controllers
|
- Controller SDP record. They all share the same one (generally), so a only a single record is needed to emulate all three controllers
|
||||||
|
|
@ -41,15 +51,12 @@ to #323232, the button colour set to #FFFFFF and the grip colours are set to
|
||||||
In the future, Nintendo may produce more Pro Controller colours, however,
|
In the future, Nintendo may produce more Pro Controller colours, however,
|
||||||
at this point in time, setting the grip colour is not possible.
|
at this point in time, setting the grip colour is not possible.
|
||||||
|
|
||||||
## Reconnecting after the "Change Grip/Order" menu is opened
|
## (Re)Connecting after the "Change Grip/Order" menu is opened
|
||||||
|
|
||||||
Opening the "Change Grip/Order" menu (either through the Controllers menu or
|
Opening the "Change Grip/Order" menu (either through the Controllers menu or
|
||||||
within a game) causes the Switch to cancel all Bluetooth connections to
|
within a game) causes the Switch to cancel all Bluetooth connections to
|
||||||
controllers and force a reconnection.
|
controllers and force a reconnection. There are a couple of little quirks
|
||||||
|
and gotchas to be aware of that I've run into:
|
||||||
The process is still a bit of a mystery (for me, at least) how exactly
|
|
||||||
a controller reconnects after the Grip/Order menu is opened. There are a
|
|
||||||
couple of little quirks and gotchas to be aware of that I've run into:
|
|
||||||
|
|
||||||
1. Controllers must run through a complete reconnection after the Grip/Order
|
1. Controllers must run through a complete reconnection after the Grip/Order
|
||||||
menu is opened. A controller cannot revive or reconnect on its previous
|
menu is opened. A controller cannot revive or reconnect on its previous
|
||||||
|
|
@ -61,12 +68,18 @@ couple of little quirks and gotchas to be aware of that I've run into:
|
||||||
process.
|
process.
|
||||||
|
|
||||||
2. After reconnection on the Grip/Order menu, **emulated** controllers
|
2. After reconnection on the Grip/Order menu, **emulated** controllers
|
||||||
**must** press the L + R buttons before attempting regular input. This is a bit of a strange condition that I'm still grappling with. In some situations,
|
**must** press the L + R buttons before attempting regular input.
|
||||||
|
This is a bit of a strange condition that I'm still grappling with. In some situations,
|
||||||
a non-emulated controller can get away with not pressing the L + R buttons
|
a non-emulated controller can get away with not pressing the L + R buttons
|
||||||
and jump straight into regular input. I'm not 100% sure how they're able to,
|
and jump straight into regular input. I'm not 100% sure how they're able to,
|
||||||
however, I think it's an okay enough compromise to hardcode an L + R press
|
however, I think it's an okay enough compromise to hardcode an L + R press
|
||||||
after a reconnection.
|
after a reconnection.
|
||||||
|
|
||||||
|
3. All communication must be done at 15Hz. Once the controller is off of the
|
||||||
|
Change Grip/Order menu, communication speeds up to 60Hz (Joy-Con) or 120Hz
|
||||||
|
(Pro Controller). If communication is not done at 15Hz, input can be severely
|
||||||
|
delayed or outright ignored.
|
||||||
|
|
||||||
## Waking the Switch Over Bluetooth
|
## Waking the Switch Over Bluetooth
|
||||||
|
|
||||||
From a preliminary investigation, it seems that the Pro/Joy Controllers use
|
From a preliminary investigation, it seems that the Pro/Joy Controllers use
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue