profi200 / open_agb_firm

open_agb_firm is a bare metal app for running GBA homebrew/games using the 3DS builtin GBA hardware.
GNU General Public License v3.0
908 stars 44 forks source link

Headphones don't work #11

Closed BrittanyOfKoppai closed 1 year ago

BrittanyOfKoppai commented 4 years ago

When booting open_agb_firm (I used the no intro version) despite my headphones being plugged in, the audio still streamed through the system's built in speakers. Using an old 3ds if that matters.

profi200 commented 4 years ago

I don't know why the automatic output switching is broken for a select few people but i know how Nintendo handles this and gets around the issue. That said it's not high priority but i will look into it eventually.

ghost commented 4 years ago

I get this problem sometimes. Unplugging the headphones and plugging them back in seems to fix it.

wiceli commented 3 years ago

I have the same problem, the sound doesn't come out from the earbuds! the latest release is used.

edit: hm, I solved by using an extension cord. Somehow the Apl airbuds couldn't be detected.

profi200 commented 3 years ago

As mentioned above i don't know why the auto detection is broken but it can be manually handled by the CPU.

sak-pase commented 2 years ago

I only have this problem with Apple headphones, and I can usually get them to work by holding the Play/Pause button on them for about a second after re-plugging them in. Probably has something to do with Apple's disdain for industry standards.

profi200 commented 2 years ago

Not sure about that. I still don't know why the output switching is so wonky. Going by a similar datasheet it measures output pins and switches if it detects changes. In theory it's fine. No idea why it's broken in practice. I still have not implemented the second detection method Nintendo uses.

OrangeFlavored commented 2 years ago

Seems like it's dependent on the cable used or something, using M-M extension cord into portable amp which my headphones are connected to was not detected despite reconnecting/rebooting multiple times, but plugging the same headphones directly into the 3DS worked fine every time.

profi200 commented 2 years ago

Forgot who posted it originally but it seems the issue is exclusive to 4 pin headphones/headsets. You can usually make them work by holding a button for 1-2 seconds (tested it). If there is no button that won't work of course.

PiptonyZX commented 1 year ago

Used 3 pins for short range cord and it work and no button at all. It work fine. I tested long range, didnt work. Only work under 3ft cord.

PiptonyZX commented 1 year ago

Forgot to mention, only one speaker does work. Model name is 19YX01. Brand name, well it kinda weird name and it is pretty long. Some kind of language I think.

SHENZHEN JIA HUA LI DIAN ZI YOU XIAN GONG SI.

If you want use other speaker, then you must leave cord on your 3ds. If you take it off on 3ds, then it wont work wne you plug it up. You have to start over from gm3 menu. (Not main menu where you dump it) I test it with other speaker to plug and it work as long you jeep cord on your 3ds. If you leave cord on speaker and 3ds after turn it off, then you wont have to use this model of speaker again as long you dont take off from 3ds. If you do, then you have to use this model of speaker.

profi200 commented 1 year ago

Might have mentioned it above already but it's not clear to me how CODEC does the detection. Might be measuring impedance or similar. And as mentioned Nintendo uses a different method of detection that uses a physical switch inside the headphone jack. I will implement Nintendos way of detection to fix these issues eventually.

PiptonyZX commented 1 year ago

Here is video to proof.

Oh okay. Hope work it out with Nintendo.

https://youtu.be/3IQiNLMxsu4

profi200 commented 1 year ago

This is now fixed. See nightlies/actions tab.