Hacking [Tool] Joy-Con Toolkit

VampireOniX

Well-Known Member
Member
Joined
Nov 20, 2018
Messages
177
Trophies
0
Age
34
XP
664
Country
United States
You can't. All 3rd party controllers/adapters don't expose write access to SPI. They are mostly hardcoded.


You can modify the hw and change the leds.

As for flashing etc, switch now resets it.

The app is for BT ones. I have commented functions that use USB though. Tested them before with MAGIC-NS.


Yes you can and it's pretty easy.

On debug panel, search for a tiny button below the cmd window. It will highlight as you pass over it. Click it. This will enable full debug mode and you'll be able to write to the SPI.
Then cmd 01, subcmd 11, subcmd args: 12 60 00 00 01 01

hint: the button is at the bottom left of the debug commands pane :P

Any debug command related to our unused joy con light?
 

CTCaer

Developer
OP
Developer
Joined
Mar 22, 2008
Messages
1,154
Trophies
0
XP
3,008
Country
Greece
That did indeed work, and that's pretty damn awesome.
Tomorrow sir, when I have woken up, you're getting a beer.

So now I have a working joycon with the serial number ÿÿÿÿÿÿÿÿÿÿÿÿÿ and MAC address FF:FF:FF:FF:FF:FF. Awesome.
ÿ are also represented in FF. So you had a blank slate.
And btw, you can recreate everything with that command.

The new fake serial number can be changed by clicking the serial number in the toolkit.
Colors the same. You need to fix calibration via the relevant panel in toolkit also.

After these you need to fix the following addresses: x6013 (you'll write it `13 60 00 00` in the toolkit) and x601B.

check here for the relevant data:
https://github.com/CTCaer/Nintendo_...d#x6000-factory-configuration-and-calibration

subcmd args info:
[12 60 00 00] [04] [01 45 22 34 ] -> [addr in LE (0x6012)] [size to write] [data]
The above are hex numbers. Max write size is 0x1D.


And thanks for the beer mate, cheers!



Any debug command related to our unused joy con light?
Yeah, I have it in OP.
Also here https://github.com/CTCaer/Nintendo_...mands_notes.md#subcommand-0x38-set-home-light
 

PikachuPro

Active Member
Newcomer
Joined
Apr 3, 2018
Messages
44
Trophies
0
Age
32
XP
298
Country
United States
I have joycons from a 3.0.0 switch. I recently updated to 6.1 and am getting the 'update joycon firmware' message.
do I lose any features by updating the joycons?
 

KilatiF

New Member
Newbie
Joined
Dec 22, 2018
Messages
3
Trophies
0
Age
31
XP
55
Country
Belarus
Hi! I don't know, if you read e-mail regular, but see that you answer her. So would like to ask. Can you please answer me on e-mail? ) (from kilatif1992 gmail)
 

KilatiF

New Member
Newbie
Joined
Dec 22, 2018
Messages
3
Trophies
0
Age
31
XP
55
Country
Belarus
Why don't u just ask it here?
Okay, can duplicate my message =)

First of all sorry for my bad English :)
I found you in project Nintendo_Switch_Reverse_Engineering on github and after it I saw that you very active are making your own project for JoyCons.
Now I'm trying to understand some staff according to programming for Pro controller and would like to ask you some questions about it. I will pleasure so much if you help me!

So, for you understanding a hole image, I explain what I would like to do.
I have a goal to develop some JoyCons support for Steam with gyro and accel support. For this reason, Now I'm trying to develop some virtual device, that will be recognized by Steam like Pro Controller (because Steam has full support for it) and after it I would like to develop some feeder for this virtual device, which will be send control from real JoyCons to my virtual ProController.

And I very close to this goal and now I have a problem: Steam send some requests to my virtual device to recognize, that it realy Pro Controller and start work with it
But I can't understand format for some of them. I tried to find in project Nintendo_Switch_Reverse_Engineering and it was very helpful and got me a lot of information about HID packets, but Steam send me packets with first byte 0x81 and Pro controller send response with first byte 0x80 and some data sometimes and I didn't find information about input report ID 0x80 and output report ID 0x81. I think this is last piece in a hole puzzle, that I'm trying to understand. So can you help me with this, please? Do you know what is this data? And for more detail and like example I need to understand this packet from Pro Controller:

81 01 00 03 F7 45 42 D6 03 04 00 00 00 00 00 00

This is first 16 bytes, other are zero. So what kind of data here?
 

CTCaer

Developer
OP
Developer
Joined
Mar 22, 2008
Messages
1,154
Trophies
0
XP
3,008
Country
Greece
I have joycons from a 3.0.0 switch. I recently updated to 6.1 and am getting the 'update joycon firmware' message.
do I lose any features by updating the joycons?
Just update. They will become faster and support more cmds needed from some games.
There's no need to hold back. Joycon FW does not equal Switch FW.

Okay, can duplicate my message =)

First of all sorry for my bad English :)
I found you in project Nintendo_Switch_Reverse_Engineering on github and after it I saw that you very active are making your own project for JoyCons.
Now I'm trying to understand some staff according to programming for Pro controller and would like to ask you some questions about it. I will pleasure so much if you help me!

So, for you understanding a hole image, I explain what I would like to do.
I have a goal to develop some JoyCons support for Steam with gyro and accel support. For this reason, Now I'm trying to develop some virtual device, that will be recognized by Steam like Pro Controller (because Steam has full support for it) and after it I would like to develop some feeder for this virtual device, which will be send control from real JoyCons to my virtual ProController.

And I very close to this goal and now I have a problem: Steam send some requests to my virtual device to recognize, that it realy Pro Controller and start work with it
But I can't understand format for some of them. I tried to find in project Nintendo_Switch_Reverse_Engineering and it was very helpful and got me a lot of information about HID packets, but Steam send me packets with first byte 0x81 and Pro controller send response with first byte 0x80 and some data sometimes and I didn't find information about input report ID 0x80 and output report ID 0x81. I think this is last piece in a hole puzzle, that I'm trying to understand. So can you help me with this, please? Do you know what is this data? And for more detail and like example I need to understand this packet from Pro Controller:

81 01 00 03 F7 45 42 D6 03 04 00 00 00 00 00 00

This is first 16 bytes, other are zero. So what kind of data here?
Yeah I didn't ahve time to check the emails at all. I'll reply here so this info is public.

I never managed to update the USB protocol (which differs in many things from BT one) in that repo. I wanted to but well..

This reply, is a reply to x80 01. This one requests MAC and type. So that 03 is the type (Pro controller), and the other data is your BT mac address in reverse (LE).
There is some tiny info in "USB-HID-Notes.md". So check that first. All x8# ids are for nintendo's custom protocol when you use USB.
 
  • Like
Reactions: PikachuPro

Mscr

New Member
Newbie
Joined
Dec 22, 2018
Messages
4
Trophies
0
Age
25
XP
54
Country
Germany
Hi,
Some time ago i used your tool and i did infact made a SPI backup. But today i cant find my SPI anymore so the programm says: S/N Not Supported. Do you know what i can do to get my S/N to show up again or restore the SPI ?
 

CTCaer

Developer
OP
Developer
Joined
Mar 22, 2008
Messages
1,154
Trophies
0
XP
3,008
Country
Greece
Hi,
Some time ago i used your tool and i did infact made a SPI backup. But today i cant find my SPI anymore so the programm says: S/N Not Supported. Do you know what i can do to get my S/N to show up again or restore the SPI ?
What controller you have? if it's Pro, it doesn't have one on SPI. That's why N/A. Not applicable.
 

Mscr

New Member
Newbie
Joined
Dec 22, 2018
Messages
4
Trophies
0
Age
25
XP
54
Country
Germany
What controller you have? if it's Pro, it doesn't have one on SPI. That's why N/A. Not applicable.
Ah ok. Thanks, but theres another problem regarding your Software. If i change the grip color ( Pro controler ) to any color it doesnt get recognised by the nintendo switch even if i try to set the color back to the default one.
Sorry for my bad english.
 

CTCaer

Developer
OP
Developer
Joined
Mar 22, 2008
Messages
1,154
Trophies
0
XP
3,008
Country
Greece
Ah ok. Thanks, but theres another problem regarding your Software. If i change the grip color ( Pro controler ) to any color it doesnt get recognised by the nintendo switch even if i try to set the color back to the default one.
Sorry for my bad english.
Yeah, 6.1+ changed the algo again.
There are members here that they figured out the new way. Read back a little bit.
 

SkyGaming01

New Member
Newbie
Joined
Dec 23, 2018
Messages
3
Trophies
0
Age
23
XP
43
Country
Belgium
Good morning, everyone,

I have a quick question, could you explain clearly how to activate the LED of the Home button when you receive a notification, etc...? Because I didn't understand how to do it and I couldn't find anyone to explain it...

Thank you :D

(Sorry for my bad english...)
 
Last edited by SkyGaming01,

Mscr

New Member
Newbie
Joined
Dec 22, 2018
Messages
4
Trophies
0
Age
25
XP
54
Country
Germany
Restart your switch[/Q
If I use the stock body color and stock white buttons, the grips are forced to be grey.

If I change the buttons to the stock black joycon buttons, the whole body becomes stock grey
Can somebody tell me the rgb or hex codes for the stock ones, because i seem to mess these colors up.

--------------------- MERGED ---------------------------

Keep body color stock, stock button color, then you can change the grips color.



Certain things, yes.
do you have the rgb or hex codes for the stock ones for the pro controller i mess them up :(
 

limatime

Member
Newcomer
Joined
Aug 3, 2018
Messages
8
Trophies
0
Age
35
XP
260
Country
United States
Hey everyone, I'm having some trouble setting the deadzone in my left Joy con. The changes seem to write but to no effect. Calibration changes and color work perfectly fine. I've even tried adjusting the deadzone all the way to FFF but still cannot get it to reflect in the playground or console. There's a pretty good chance that I'm missing something simple.

My console is on 6.2.0 and the JC firmware is 3.91. PC is running Windows 7. Using a super-cheap USB BT dongle with "Generic Bluetooth Radio" driver and "Microsoft Bluetooth Enumerator".

In the testing playground (assuming the stick isn't in full on drift mode) Raw zeros at around X: 78A Y: 8B9 and Cal at X: 0 Y: 0. My assumption is that "Cal" would stay at 0 until it passes the deadzone, but it's not doing that for me. It also looks like I'm not meant to change "Parameters 2." These are the current settings on my joystick:


Flat surface ACC Offset:
015E 0000 0FF1

Stick Parameters:
019 4CD
FFF (Deadzone)
E14 (Range ratio)
2EE 2EE
2EE 2EE
AB4 AB4
496 496

Stick Parameters 2:
019 4CD
AE (Deadzone)
E14 (Range ratio)
2EE 2EE
2EE 2EE
AB4 AB4
496 496

L Stick Factory:
Center X,Y: (7A3, 895)
X: [229 - CB7] Y: [461 - D39]

L Stick User:
Center X,Y: (78B, 8DA)
X: [2A8 - CE4] Y: [4A4 - D25]




Sorry if this post was a mess. Any help would be greatly appreciated!
 

SkyGaming01

New Member
Newbie
Joined
Dec 23, 2018
Messages
3
Trophies
0
Age
23
XP
43
Country
Belgium
Good morning, everyone,

I have a quick question, could you explain clearly how to activate the LED of the Home button when you receive a notification, etc...? Because I didn't understand how to do it and I couldn't find anyone to explain it...

Thank you :D

(Sorry for my bad english...)

Someone, please ?
 
Last edited by SkyGaming01,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: Manual charging