Updated docs and added attribution
This commit is contained in:
parent
16ead63221
commit
0ff822a0cf
3 changed files with 32 additions and 8 deletions
|
|
@ -16,4 +16,11 @@ Functionality is currently under development.
|
|||
|
||||
## 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.
|
||||
|
||||
```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
|
||||
data = [0] * 6
|
||||
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 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
|
||||
|
||||
- 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,
|
||||
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
|
||||
within a game) causes the Switch to cancel all Bluetooth connections to
|
||||
controllers and force a reconnection.
|
||||
|
||||
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:
|
||||
controllers and force a reconnection. 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
|
||||
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.
|
||||
|
||||
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
|
||||
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
|
||||
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
|
||||
|
||||
From a preliminary investigation, it seems that the Pro/Joy Controllers use
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue