Tutorial  Updated

Pairing the joy-con on emunand and sysnand

Hello guys! I had the same issue of this thread:
Practically, my joy-con and pro controller weren't synched anymore between EMUnand and SYSnand because I connected them to another console... so when I was switching from SYSnand to EMUnand (and vice versa) I had to redo the controllers pairing

In that thread, that's a way to re-sync the joy-con but you have to transfer a file from EMUnand to SYSnand and for me it's not very safe... So I found a way to transfer that file from SYSnand to EMUnand and keep the SYSnand clean!

So here is the tutorial:


WARNING:

SOMETIMES THIS TUTORIAL CAN LEAD TO THE "RED FIRST SETUP SCREEN" BUT DON'T PANIC! YOUR GAMES AND SAVES ARE SAFE, JUST COMPLETE THE SETUP AND EVERYTHING SHOULD BE AS BEFORE

WE FIGURED OUT THAT SOMETIMES THE SCRIPTS DOESN'T WORK PROPERLY WITH THE NEW HORIZONTAL MODE IF YOU HAVE YOUR JOYCONS ATTACHED SO IS PREFERABLE TO REMOVE JOYCONS BEFORE USING THE SCRIPTS.
I THINK THAT'S A TEGRA EXPLORER BUG AND NOT OUR'S.

I DON'T ASSUME ANY RESPONSIBILITY IF SOMETHING GOES WRONG SO PLEASE FOLLOW THESE STEPS ONLY IF YOU KNOW WHAT YOU ARE DOING


Preparation:
Download the latest version of Tegra Explorer from here: https://github.com/suchmememanyskill/TegraExplorer/releases
Download the right script according to your emunand type from the attached files (and make sure you choose it right)


ATMOSPHERE:

MAKE SURE YOU ARE IN AIRPLANE MODE ON EITHER SYSNAND AND EMUNAND, THIS PROCESS CAN "BREAK" YOUR DNS BECAUSE AS I KNOW, THE 8000000000000050 FILE CONTAINS ALSO WIFI AND OTHER SETTINGS AND THIS CAN LEAD TO BAN.
IF YOU'RE USING INCOGNITO MODE, YOU DON'T NEED TO BE IN AIRPLANE MODE. (BUT IS RACCOMANDED TO DO THAT)



1. Launch TegraExplorer.bin trough whatever you want (RCM loader, TegraRCM ecc…)


2. Go to [SD:/] SD CARD -> tegraeplorer -> syncfix -> Syncfix.te -> Launch Script
and follow the script instructions!

3. DONE!


If you pair your joy-cons/controllers to another console or you format your NAND (SYS or EMU), you have to launch again Syncfix.te to fix the sync issue!



SX OS EMUNAND AS HIDDEN PARTITION:
IF YOU'RE USING SXOS STEALTH MODE OR INCOGNITO MODE, YOU DON'T NEED TO BE IN AIRPLANE MODE.
ON THE CONTRARY, IF YOU ARE NOT USING THOSE, YOU HAVE TO BE IN AIRPLANE ON EITHER SYSNAND AND EMUNAND BEFORE PROCEDING.



DON'T USE TEGRAEXPLORER V2 OR LATER, INSTEAD USE THIS VERSION: https://github.com/suchmememanyskill/TegraExplorer/releases/tag/2.0.5

1. Launch TegraExplorer.bin trough whatever you want (RCM loader, TegraRCM ecc…)

2. Go to
[SD:/] SD CARD -> tegraeplorer -> syncfix -> Preparation.te -> Launch Script
and follow the script instructions!

3. REBOOT TO TEGRA EXPLORER

4. Go to
[SD:/] SD CARD -> tegraeplorer -> syncfix -> Syncfix.te -> Launch Script -> Launch Script
and follow the script instructions!

5. DONE!


You have to launch Preparation.te only the first time you follow this tutorial.
(Obviously, if you delete the emuMMC folder, you have to launch Preparation.te again but… dunno why you should delete it)

This script will create the following path on your micro sd:
sd:/emuMMC/emummc.ini
sd:/emuMMC/ER00/raw_based

This script is necessary to let Tegra Explorer read/write on your emunand and won’t affect it nowise.
If you pair your joy-cons/controllers to another console or you format your NAND (SYS or EMU), you have to launch again ONLY Syncfix.te to fix the sync issue!



SX OS EMUNAND AS FILE
IF YOU'RE USING SXOS STEALTH MODE OR INCOGNITO MODE, YOU DON'T NEED TO BE IN AIRPLANE MODE.
ON THE CONTRARY, IF YOU ARE NOT USING THOSE, YOU HAVE TO BE IN AIRPLANE ON EITHER SYSNAND AND EMUNAND BEFORE PROCEDING.
THIS SCRIPT IS TESTED ONLY ON FAT32 FILE SYSTEM, SO I DON’T KNOW IF IT WORKS ALSO ON EXFAT, LET ME KNOW IF THE EMUNAND CONFIGURATION IS DIFFERENT FOR EXFAT


DON'T USE TEGRAEXPLORER V2 OR LATER, INSTEAD USE THIS VERSION: https://github.com/suchmememanyskill/TegraExplorer/releases/tag/2.0.5

1. Launch TegraExplorer.bin trough whatever you want (RCM loader, TegraRCM ecc…)

2. Go to
[SD:/] SD CARD -> tegraeplorer -> syncfix -> Preparation.te -> Launch Script
and follow the script instructions!

3. REBOOT TO TEGRA EXPLORER

4. Go to
[SD:/] SD CARD -> tegraeplorer -> syncfix -> Syncfix.te -> Launch Script
and follow the script instructions!

5. DONE!


You have to launch Preparation.te every time you follow this tutorial.

This script will create the following paths on your micro sd:

sd:/emuMMC/emummc.ini
sd:/emuMMC/EF00/file_based
sd:/emuMMC/EF00/eMMC

Then, the script will move and rename all your Sxos emunand files from sd:/sxos/emunand/ to sd:/emuMMC/EF00/eMMC like this:

sd:/sxos/emunand/full.00.bin -> sd:/emuMMC/EF00/eMMC/00
.
.
.
sd:/sxos/emunand/full.07.bin -> sd:/emuMMC/EF00/eMMC/07
sd:/sxos/emunand/boot0.bin -> sd:/emuMMC/EF00/eMMC/boot0
sd:/sxos/emunand/boot1.bin -> sd:/emuMMC/EF00/eMMC/boot1


As I said, if you’re using exfat as your file system, please let me know if you have seven “full.XX.bin” files or less (or even more)!

This script is necessary to let Tegra Explorer read/write on your emunand.
As you can imagine, after launching Preparation.te, you aren’t able to boot to Sxos emunand, SO DON’T DO IT, just REBOOT TO TEGRA EXPLORER and launch Syncfix.te.
In Syncfix.te there’s a part that will revert the process so you can boot to Sxos Emunand again!

If you pair your joy-cons/controllers to another console or you format your NAND (SYS or EMU), you have to launch again FIRST Preparation.te, REBOOT TO TEGRA EXPLORER and THEN Syncfix.te to fix the sync issue!


Unfortunately, the Sxos version is still not running on tegragraexplorer v2 or later... so please, if you want to run the script safely on sxos, use this version of tegraexplorer until i'll update it to a newer version: https://github.com/suchmememanyskill/TegraExplorer/releases/tag/2.0.5
 

Attachments

Last edited by MezBar,
That's what I think but I prefer asking to people who knows before screwing up something 😀

Thank you so much.

I have another doubt it's you don't mind.

I've read today it's a good idea backup your nans via Hekate (already done) and extract you keys via lockpick RCM.
Is it safe extract the keys from the sysnand? My kid plays online and I don't wanna get banned.

Thanks in advance
Yes they are good idea, and yes, is very safe to extract the keys from SysNAND, you only read them.

There is a thread https://gbatemp.net/threads/nintendo-switch-banning-hub-warning.508710/ where more information about avoid banning is compiled.
 
  • Like
Reactions: Nachomagic
Yes they are good idea, and yes, is very safe to extract the keys from SysNAND, you only read them.
Thank you very very much for your time
Post automatically merged:

Thank you very very much for your time
I've done it with no results :(

I've copied emmc: system/save/8000000000000050 to emummc: system/save/8000000000000050

Now in emummc color has change as sysnand, Wifi settings has changed as sysnand but joycons remains unsyncronized

I don't understand nothing :)

Edit: I've done again using the screen all time (joycon detached) but nothing.
Maybe is not the right file with fw18 🤷

Edit 2:
Working!!!

The problem was that enable_external_bluetooth_db = u8!0x1was enabled in Atmos. I've comented de line and working :)
Thanks to all of you
 
Last edited by Nachomagic,
  • Like
Reactions: aarstar and impeeza
I haven't been able to get this to work with my Pro Controller (latest firmware and atmos). Tried with the 'enable_bluetooth_db..." line in place and not in place, and it makes no difference.
 
I haven't been able to get this to work with my Pro Controller (latest firmware and atmos). Tried with the 'enable_bluetooth_db..." line in place and not in place, and it makes no difference.
On Atmosphère 1.5.1 A feature was added to optionally mirror the bluetooth pairing database to the SD card (thanks @ndeadly).
This allows device pairings to be automatically kept in-sync across sysmmc/all emummcs.
This is opt-in, and can be controlled by setting: atmosphere!enable_external_bluetooth_db = u8!0x1.
When enabled, the pairing database will be synchronized to /atmosphere/bluetooth_devices.db.


first, turn off your console, then on your "SDMC:/atmosphere/config/system_settings.ini" file be sure you have ONLY A LINE with the text:
enable_external_bluetooth_db
and what that line is inside the [atmosphere] section

Be sure that line have the value u8!0x1 at end:
enable_external_bluetooth_db = u8!0x1

Delete the file "SDMC:/atmosphere/bluetooth_devices.db"

Then start one of your *NANDs, then go to HOS settings -> Controllers and Sensors -> Disconnect Controllers and keep X pressed.

Restart your console to the same *NAND and test/pair all your wireless controllers.

Turn off your console and start another *NAND then verify all your controllers are already synced

You have to take in account: if any of your *NANDs have firmware less than 13, when you boot that firmware the database will be trunk to the 10 first entries.

*NAND refers to SysNAND or EmuNAND booting with the CFW, if you boot without CFW (OFW) the database will not be synced.


Post automatically merged:

@0bvious did worked?
 
Last edited by impeeza,
Hello,

I run the lastest FW and atmos, do i need to edit the system_settings.ini file in order to make it work?
Or may it work without that edit too?
 
Can I do this with Stock OFW? I don't use sysnand and I have this problem when swirtching from stock to emunand
 
any update if this Syncfix.te is working on new 20.4.0.. having this problem on new system update
Post automatically merged:

Any idea is this is working on firmware 20.4.0.. haveing this problem at the moment after update
 
any update if this Syncfix.te is working on new 20.4.0.. having this problem on new system update
Post automatically merged:

Any idea is this is working on firmware 20.4.0.. haveing this problem at the moment after update
Atmosphere does this...
 
any update if this Syncfix.te is working on new 20.4.0.. having this problem on new system update
Post automatically merged:

Any idea is this is working on firmware 20.4.0.. haveing this problem at the moment after update

Atmosphere does this...
You can start on the post

 
  • Like
Reactions: Blythe93
You can copy the file to other switches if you want to use the pairings on multiple consoles, but you will also need to use Mission Control to spoof the host address of the original console that the controllers paired with.

Heya ! Do you think it's possible to spoof the Mac Address of a Switch 2 to keep the controllers synced between my 2 and my CFW'ed Switch 1 ?

Right now I have changed the host_address to my Switch 2 but I'm not sure if I have to change the host_name to something else

Or is it just not possible at all due to the 2 not able to run MissionControl / any kind of mod? Thank you in advance for your time
 
  • Like
Reactions: cearp
Heya ! Do you think it's possible to spoof the Mac Address of a Switch 2 to keep the controllers synced between my 2 and my CFW'ed Switch 1 ?

Right now I have changed the host_address to my Switch 2 but I'm not sure if I have to change the host_name to something else

Or is it just not possible at all due to the 2 not able to run MissionControl / any kind of mod? Thank you in advance for your time
In theory it should be possible, but becomes a bit more challenging since we don't have code execution on the Switch 2 so can't inject or read out pairing information from the console. This restricts us to doing the initial pairing on the Switch 2. You would then need to read the LTK from the controller and inject it on Switch 1. You can't do this via Bluetooth because you would need to re-pair the controller with another device, invalidating the pairing with Switch 2. For a Pro Controller you can read the key from controller memory via USB on PC, however for Joycons I'm not sure. Maybe you could wire them up to a UART adapter
 
  • Like
Reactions: Blythe93 and Fyrus
In theory it should be possible, but becomes a bit more challenging since we don't have code execution on the Switch 2 so can't inject or read out pairing information from the console. This restricts us to doing the initial pairing on the Switch 2. You would then need to read the LTK from the controller and inject it on Switch 1. You can't do this via Bluetooth because you would need to re-pair the controller with another device, invalidating the pairing with Switch 2. For a Pro Controller you can read the key from controller memory via USB on PC, however for Joycons I'm not sure. Maybe you could wire them up to a UART adapter
Would it be possible to read the keys via 3rd party controllers like 8bitdo ?
 
Would it be possible to read the keys via 3rd party controllers like 8bitdo ?
It depends whether they actually have onboard memory and how closely they match official Nintendo controllers. Many (most?) third party controllers just hardcode responses to the handful of memory reads that actually occur in practice. Bluetooth pairing data is not one of them. Most of what's stored in memory is meant for internal use only, so there is not a lot of incentive for 3rd parties to recreate it all.
 
  • Like
Reactions: Fyrus
It depends whether they actually have onboard memory and how closely they match official Nintendo controllers. Many (most?) third party controllers just hardcode responses to the handful of memory reads that actually occur in practice. Bluetooth pairing data is not one of them. Most of what's stored in memory is meant for internal use only, so there is not a lot of incentive for 3rd parties to recreate it all.
I see, how would I go about reading the internal data and extract what I need, in case I find an official Pro controller to work with ?
 
  • Like
Reactions: Blythe93 and Fyrus
Hmm well, I tried to run the scripts (and download the libusb dll) but it seems like I'm still missing modules according to the errors it throws out (if the window doesn't instantly disappear)
 
Hmm well, I tried to run the scripts (and download the libusb dll) but it seems like I'm still missing modules according to the errors it throws out (if the window doesn't instantly disappear)
Yes, you will need the pyusb and numpy modules installed too. A disappearing window suggests you're trying to launch the script from explorer or something. Run the script with python from the terminal and it will never disapper, even upon error.
 
  • Like
Reactions: Fyrus
Okay, I did that and tried for now with my 8bitdo, Not sure how to interpret all of that, if it's not conclusive I can probably borrow a Pro controller off my neighbor

I do see a part called LTK though
 

Attachments

Site & Scene News

Popular threads in this forum