plutooo / nx-btred

257 stars 12 forks source link

Doesn't work on every game - Specific issue on Bravely Default 2 #21

Open OperationNT414C opened 3 years ago

OperationNT414C commented 3 years ago

Configuration Atmosphere 0.19.2 on FW 12.0.1 MissionControl 0.5.0alpha2 NX-BTRED 0.9.3 Headset Sony WH-1000XM3

Scenario Initially, I thought that NX-BTRED was simply not working with my headset because it paired fine using the companion homebrew but I didn't get any sound when I came back to the game which was "Bravely Default 2". Then, "by luck", I tried to change the game to "Super Mario 3D World" and I got some output sound! I also tried "Monster Hunter Rise" and it's fine too. But when I come back to "Bravely Default 2", there is no output sound.

Do you have any idea why there is an issue on a specific game?

JonJaded commented 3 years ago

Super Smash Bros Ultimate doesn't output audio either.

We should make this post a compatibility list. At first I thought games that disabled recording (last 30 seconds) wouldn't work, as seen in Smash Ultimate, but I tried Puyo Puyo Tetris, which has recording disabled and it worked perfectly fine. So now it just comes down to finding games that have the audrec:u service disabled.

OperationNT414C commented 3 years ago

Thank you for this feedback. So, we just have to hope that someone will find a way to get the Switch sound output data without exploiting data from "audrec:u" service.

JonJaded commented 3 years ago

Witcher 3 not supported as reported by @ezzinekaemel

OperationNT414C commented 3 years ago

I manage to make sound work on Bravely Default 2 but it's a very tedious process...

I hadto extract the game NSP file, then extract the control NCA, edit the "control.nacp" file at offset 0x3035 with the value 0x02 (check https://switchbrew.org/wiki/NACP for more details). Once I repackage everything (using hacPack) and reinstall the game with my patched NSP, I got sound output from nx-btred in this game.

I wish Atmosphere could have a kind of "layered FS" for "control.nacp" file instead of having to repackage everything just for one byte... Or maybe there is already a way and I missed it?

JonJaded commented 3 years ago

I manage to make sound work on Bravely Default 2 but it's a very tedious process...

I hadto extract the game NSP file, then extract the control NCA, edit the "control.nacp" file at offset 0x3035 with the value 0x02 (check https://switchbrew.org/wiki/NACP for more details). Once I repackage everything (using hacPack) and reinstall the game with my patched NSP, I got sound output from nx-btred in this game.

I wish Atmosphere could have a kind of "layered FS" for "control.nacp" file instead of having to repackage everything just for one byte... Or maybe there is already a way and I missed it?

Did you patch the base or the update? I'm assuming the latter. And if that is true, that means for every update after, you would need to patch again?

That's really cool though. I would like to keep testing but atm this sysmodule doesn't let my switch sleep properly.

OperationNT414C commented 3 years ago

As Bravely Default 2 doesn't have any patch yet, I did the changes on the base game. If there is a patch, I think it should be done on the patch instead: the patch probably has its own "control.nacp" because this file also contains the version display string. However, I use hacPack to repack everything and I am not sure it would work on patches.

That's really cool though. I would like to keep testing but atm this sysmodule doesn't let my switch sleep properly.

Yes, unfortunately, there are a lot of bugs which doesn't allow to "safely use" this plugin: the fact that when you stop the connection, you often don't get back the sound on the speakers and the crash when you go to sleep after a connection are problematic.

Phalk commented 3 years ago

Is there a possibility to patch this control.nacp using a sysmodule? If so, I think it should be included with nx-btred...

JonJaded commented 3 years ago

Is there a possibility to patch this control.nacp using a sysmodule? If so, I think it should be included with nx-btred...

In the future, atmosphere will have some functionality to live patch games to unlock the functionality. You can read what SciresM said about the matter here.