ndeadly / MissionControl

Use controllers from other consoles natively on your Nintendo Switch via Bluetooth. No dongles or other external hardware neccessary.
GNU General Public License v2.0
2.56k stars 141 forks source link

[Bug Report]: Xiaomii gamepad disconect after press "A" in Change grip/order screen #401

Closed yovin closed 2 years ago

yovin commented 2 years ago

Switch Firmware Version

13.2.0 (Latest)

Atmosphère Version

1.2.5 (Latest)

Mission Control Version

0.6.3 (Latest)

Boot Method

Fusée

Issue Description

My xiaomii gamepad can connect to switch and play normaly, but it will disconect after press "A" in change grip/order screen on game pop up to change how many player are join. I can use the gamepad normal if didnt open change grip/order option

Error Report

No response

Additional Context

No response

ndeadly commented 2 years ago

This controller might be another victim of me changing the default behaviour surrounding the sending of the SetTsi command to third party controllers a few versions back.

Run the latest version of btdb and identify the bluetooth address of your controller. Then navigate to sdmc:/config/MissionControl/controllers/<controller address> and create an empty file in this directory called settsi_disable.flag. Reconnect your controlller and see whether the problem goes away.

If this fixes the issue let me know and I'll make it the default behaviour in code.

seampl0 commented 2 years ago

Hi @ndeadly , i have found this issue while trying to understand why my small supported controller "Steelseries Free" is struggling to even pair. Everything looks like after 1 sec controller was constantly disconnected. Creating empty file settsi_disable.flag fix my problem too. Now controller works fine and is pairing super fast.

ndeadly commented 2 years ago

@seampl0 thanks for reporting. In my experience, this is the cause for every controller that gets disconnected unexpectedly. The default behaviour used to be to always block this command but I changed it after it became clear that this can cause performance issues, so now it's only blocked when absolutely necessary (I just don't own every controller to confirm). I'll change the default for that one too so you don't need the flag file in the future.

yovin commented 2 years ago

This controller might be another victim of me changing the default behaviour surrounding the sending of the SetTsi command to third party controllers a few versions back.

Run the latest version of btdb and identify the bluetooth address of your controller. Then navigate to sdmc:/config/MissionControl/controllers/<controller address> and create an empty file in this directory called settsi_disable.flag. Reconnect your controlller and see whether the problem goes away.

If this fixes the issue let me know and I'll make it the default behaviour in code.

Thanks, this fixes the issue...

ndeadly commented 2 years ago

Great. The command is now blocked in code for both controllers so the flag file will no longer be required. Changes will be affective as of the next release. Here's a build of the current develpment branch.

MissionControl-0.6.3-develop-0489e30.zip