[Tool] Joy-Con Toolkit v1.0

Discussion in 'Switch - Hacking & Homebrew' started by CTCaer, Jul 24, 2017.

  1. CTCaer
    OP

    CTCaer GBAtemp Regular

    Member
    150
    104
    Mar 22, 2008
    Greece
    Joy-Con Toolkit v2.0

    [​IMG] [​IMG] [​IMG]

    [​IMG]


    Summary:
    Since months ago, I bought yellow joy-con shells and modded my Joy-Cons. Then I found Shinyquagsire23 HID-Joy-Con-Whispering and changed my joy con colors and this reflected my new neon yellow color in-game.

    I always wanted to make an easy tool for that, for the community. So here it is with some additional goodies.
    Have fun creating funky combinations.

    Before you do anything, make a backup of your SPI flash.

    The v1.2 and older, always created a corrupted backup for Pro Controller and some times for Joy-Con. Make a new one!
    If you have one with v1.3 and up, change the name a little bit to avoid overwrites and keep it for life!

    When you change colors, before 3.0.0 update you need to restart your Switch and then pair, for colors to take effect.
    For 3.x.x just pair the controller with Switch.
    The custom colors in the color dialog are the retail ones.


    What it can currently do:
    • Change colors of your Joy-Con and Pro Controller
    • Save your custom colors for future use
    • Backup your SPI flash
    • View S/N, FW Version, MAC address and Battery
    • Restore from a backup. Restore colors, S/N, Calibration, Full restore.
    • Change S/N
      *Disclaimer* If you didn't do a valid backup and you lost your S/N, you are the only responsible! If for whatever reason you lost it, check the plastic slivers that your Joy-Con were wrapped inside the retail box.
    • Debug - Send Custom Commands. Send Vibrations, set player and HOME leds, etc, and see their reply.
      *Disclaimer* Only for users that know what they are doing. You are the only responsible!
    • Easter Egg: Play Mario theme through Joy-Con HD Rumble
    Player Led behavior: Solid = Waiting for command, 4th Led Blinking = Doing stuff.


    Prerequisites:
    Install the first two only if needed.

    Video tutorial:



    Changelog:
    v2.0:

    • Full featured HD Rumble Player. Supports .bnvib and .jcvib. Also added LF/HF EQ, Pitch and support for looped .bnvib format.
      You can find attached the Mario theme in raw format. Please don't share .bnvib ripped from games.
    • Full Debug reply report. You can now check buttons/joystick/battery from the received packet.
    • Added S/N protection mechanism. With the first S/N change, it now saves it in an unused area inside your SPI.
      If you already changed it, it will not trigger. You need to restore it from a backup and then change it back.
    • Added option to restore it from inside the SPI. Needs the above. Otherwise you can still restore it from your SPI backup.
    • Battery percent based on regulated voltage reported from the device.
    • Now Joy-Con (R) and Pro Controller utilize the HOME led. Heartbeat = Standby/Awaiting command, Breathing = Doing stuff.

    v1.5.2:

    Hotfix version
    • Fixed a major compatibility issue with newest shipments of Joy-Con. Previously we were expecting 2 FW Ram Patches inside the SPI dump. New Joy-Con have only 1 like Pro. This was triggering a "Backup is corrupt" message, even though the backup was perfect.
    • Revambed the debug and made it like a normal feature a little bit. Added sent subcmd/arguments windows and you can now send 25byte subcmd arguments (this fixes the HOME LED, subcmd: 38, arg: F100F0F0F0F0F0F000FFFF00FFFF00FFFF).
    • Some bugfixes

    v1.5.1:
    Minor fix version
    • Fixed debug option to not send additional commands
    • Revambed logic of debug option to show Input Report from Joy-Con
    • Configuration file now has a fixed filename. *Compatible with v1.5 config*. Rename your config name to Colors.config if you already set custom colors.
    • Fixed bugs and made logic way simpler to many functions
    • Removed all unsafe sprintf and fopen and changed them to safe and simpler logic

    v1.5:
    • Added Battery view
    • Added Restore option! It has many checks so don't worry. Corrupted backups from v1.2 and older will be automatically discarded!
    • Added Debug option. *Disclaimer* Only for users that know what they are doing. You are the only responsible!
    • Added Change S/N option. *Disclaimer* If you didn't do a valid backup with v1.3 or v1.5 and you lost your S/N, you are the only responsible!
    • *New .config* Added separate custom colors for Pro (until I create a custom color dialog in C++). You need to copy your colors from the old .config to the new one. The colors in .config are in BGR! Not in RGB and for every type they must be 16. Not less, not more
    • Many bug fixes
    • Added an Icon and an About screen that links here.
    • Added ability to close the app in lengthy operations.
    • Added write check for restore option. This also means no more failed writes for color/SN writing.
    • Changed the 4th LED behavior: On = Standby, Blinking = Doing operations
    • Added an Easter Egg. Can you find it???

    Old changelog:
    Warning: Spoilers inside!
    Download Old Versions


    Source


    Special thanks:
    Everyone at Nintendo_Switch_Reverse_Engineering: General BT protocol usage
    shinyquagsire23: General hidapi and BT protocol usage
    shuffle2: General hidapi usage for windows
    Ceri: Neon-Yellow hex color values
    Cosmic_Link: Splatoon Pink and Green Joy-Con dumps and colors
    KapuDaKoopa, Sam S, SomeGamer, Jackson Ferrell, Starwort: Beta testing
    Spawn Wave: For the video tutorial
     

    Attached Files:

    Last edited by CTCaer, Aug 21, 2017


  2. Selim873

    Selim873 Nunnayobeesnes

    Member
    1,164
    583
    Jul 31, 2010
    United States
    Chillin' with Bob Ross
    Holy shit! I bought the Neon console shells since I regretted getting gray and that was going to be my biggest annoyance. This will come in handy! Thanks!! :)

    EDIT: Backing up my right Joycon now. I second the end of the OP with retail hex codes. I'd like to know those for Neon. The preview picture looks close enough though so I might just use an image editor to grab each color.

    Also, make sure the joycon is completely paired. I opened the app too soon and it was seen as a pro controller and the backup finished immediately (Supposed to take around 10 minutes according to the tool kit). Once Windows said that pairing was complete, it worked as it should.
     
    Last edited by Selim873, Jul 24, 2017
    Anonymous456 and CTCaer like this.
  3. Mnecraft368

    Mnecraft368 GBAtemp Advanced Fan

    Member
    895
    210
    Aug 8, 2015
    im confused... what does this do. If im right, it changes the home button LED color?
     
  4. Selim873

    Selim873 Nunnayobeesnes

    Member
    1,164
    583
    Jul 31, 2010
    United States
    Chillin' with Bob Ross
    No. You know when you sync a joycon it shows on the system what color it is on screen? This changes that.
     
    Anonymous456 and petethepug like this.
  5. Mnecraft368

    Mnecraft368 GBAtemp Advanced Fan

    Member
    895
    210
    Aug 8, 2015
    ohhhh ok
     
    rebmcr likes this.
  6. CTCaer
    OP

    CTCaer GBAtemp Regular

    Member
    150
    104
    Mar 22, 2008
    Greece
    BTW, the 3 (Grey, Neon-Blue and Neon-Red) colors at the custom colors section are correct.
    They are dumped from the actual colored joy-cons.

    Neon-Yellow, is made approximately by me. If someone has the new joy cons and can send me the hex code for body color and buttons color it would be helpful.

    Lastly, the buttons color are not actually black. They are a very dark hue of the body color. Again, the 3 first custom ones are correct.
     
    Selim873 likes this.
  7. xXxSwagnemitexXx

    xXxSwagnemitexXx The person who asks n00b questions

    Member
    307
    72
    Dec 7, 2016
    United States
    Somewhere
    I'll try it
     
  8. Selim873

    Selim873 Nunnayobeesnes

    Member
    1,164
    583
    Jul 31, 2010
    United States
    Chillin' with Bob Ross
    Success! Went from gray to neon. I custom painted my joycon, they were originally gray but I bought the neon shells. Waiting for those to arrive. Picture was taken before I changed button color but I don't think there would have been a difference on picture.

    IMG_20170724_112610.jpg
     
    Soulsilve2010 likes this.
  9. luk_pop

    luk_pop Member

    Newcomer
    40
    3
    Apr 30, 2017
    Poland
    Warszawa
    Super I have to try as I come back from work.
     
  10. whateverg1012

    whateverg1012 Fringe Weaver

    Member
    248
    286
    Sep 23, 2016
    United States
    Valhalla
    this is awesome! does it also change the color for the "switch" animation when you slides the joycons in?
     
    BBriof likes this.
  11. soaresden

    soaresden GBAtemp Regular

    Member
    141
    41
    Dec 16, 2013
    France
    Since everyone is confused here a screen of my colors and what the OP is talking about :

    [​IMG]
     
    CTCaer likes this.
  12. Selim873

    Selim873 Nunnayobeesnes

    Member
    1,164
    583
    Jul 31, 2010
    United States
    Chillin' with Bob Ross
    Yep!
     
    BlastedGuy9905 and whateverg1012 like this.
  13. CTCaer
    OP

    CTCaer GBAtemp Regular

    Member
    150
    104
    Mar 22, 2008
    Greece
    Yes. Every colored icon or animation changes.

    Yep that's exactly what it is

    I wanted to put Joy-Con images that change color instead of buttons in the UI, but it was a lot of work and kept it for later release. :P
     
  14. soaresden

    soaresden GBAtemp Regular

    Member
    141
    41
    Dec 16, 2013
    France
    It worked like a charm

    Here an example of Hundred of possibilities

    [​IMG]
    Many Thanks !
     
    CTCaer likes this.
  15. Chizko

    Chizko GBAtemp Regular

    Member
    108
    27
    Jan 24, 2015
    Chile
    ???? ??? ???
    Awesome. Thanks.
     
  16. Eastonator12

    Eastonator12 GBAtemp Fan

    Member
    376
    100
    Aug 16, 2016
    United States
    So how to I use this? Hold my joycon next to my computer and hit a button?
     
  17. dj505

    dj505 Inexperienced Romhacker

    Member
    519
    119
    Oct 4, 2014
    Canada
    Most likely at the arcade
    This is really cool! I wonder what other stuff is possible with this kind of thing

    Connect it through Bluetooth like you would a standard Bluetooth device.
     
    Eastonator12 likes this.
  18. StarGazerTom

    StarGazerTom GBAtemp Advanced Fan

    Member
    813
    527
    Feb 2, 2015
    That's pretty damn funny that you can do that. Here's hoping folks start printing custom colors now. Need to get ahold of some Marie Green shells now and I'll be a happy chappy.
     
  19. zakeblast

    zakeblast Advanced Member

    Newcomer
    50
    32
    Sep 30, 2009
    United States
    a house
    I can't even get the application to open, it's actually pretty frustrating.
    I open it, and it immediately closes.
    I already have my joycon paired, and I've ensured that they have a solid connection.
     
  20. dj505

    dj505 Inexperienced Romhacker

    Member
    519
    119
    Oct 4, 2014
    Canada
    Most likely at the arcade
    Do you have the .net framework it needs installed?