RPi 4b | Buster 10 | Retropie 4.7.1 | No Sound 3.5mm Jack EmulationStation
-
Hello All,
I was having a heck of a time figuring out why my emulationstation was not producing any sound out of the 3.5 mm jack, and I wanted to share my findings in the event it may help someone else.Setup:
Pi 4b
Debian Buster 10
Retropie 4.7.1
Kernel: 5.10.63-v7l+
3.5mm jack to mini 12v amplifieremulationstation was not playing any sound at all; these were the steps I took to resolve the issue:
I noticed this error message in the logs:
code_text ```ASLA lib control .c:1375: (snd_ctl_open_noupdate) Invalid CTL``` code_text
Issue #1:
I noticed there was no default card listed when I did aplay -L
code_text ```pi@retropie:~$ aplay -L null Discard all samples (playback) or generate zero samples (capture) default output sysdefault:CARD=b1 bcm2835 HDMI 1, bcm2835 HDMI 1 Default Audio Device dmix:CARD=b1,DEV=0 bcm2835 HDMI 1, bcm2835 HDMI 1 Direct sample mixing device dsnoop:CARD=b1,DEV=0 ...``` code_text
I found the solution for this here.
Find your desired card with:
code_text ```cat /proc/asound/cards``` code_text
Then create /etc/asound.conf with following:
code_text ```defaults.pcm.card 1``` code_text
Replace "1" with number of your card determined above with the cat /proc/asound/cards.
Issue #2
A recent change in kernel/firmware for the audio system on the Pi changes the names of the cards and devices which causes a naming mismatch between the OS and emulationstation. See the announcement on the 29th, the Other changes section.
For me ES was still using HeadphoneS (plural) but ALSA Mixer was using Headphone (with no "S")
the only workaround I could find was to edit es_settings.cfg and set AudioDevice to:
code_text ```sudo nano /opt/retropie/configs/all/emulationstation/es_settings.cfg``` code_text
Headphone, if using the analog jack for audio
HDMI, if using the HDMI for audiocode_text ```<string name="AudioCard" value="default" /> <string name="AudioDevice" value="Headphone" />``` code_text
Lastly, I had to add this code to the /boot/config.txt:
code_text ```# Pretends no audio formats are supported by HDMI display, forcing all sound out the 3.5mm headphone jack. # May not be needed for all HDMI devices hdmi_ignore_edid_audio=1``` code_text
This resolved everything and sound is now working nicely through emulationstation.
Hope this helps someone else facing the same issues as I was.
-
Issue 1 can be easily solved by using the Audio menu in RetroPie and choosing your default output (Analog Jack/HDMI).
For #2 - The Headphone value can also be chosen in the EmulationStation settings, since it has been updated in June 2020 following the RPI OS changes.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.