A few days ago, I went over the steps to getting updated software onto my RetroStone retro gaming device. It is linux-based and has internals similar to an OrangePi. Fortunately there is a big open source community for emulating old games and there is some great software called RetroPie and EmulationStation which set everything up for you.

After the update, I had a handful of issues and needed to tweak some configurations to get things functioning again. One of my big issues was with a broken audio setup in EmulationStation. The audio menu did not work properly and I kept getting on the error VolumeControl::init() - Failed to find mixer elements! logged to my console. After a lot of searching and trial and error I found directions on the retropie wiki which explain how to get the audio set up.

Unfortunately the update had introduced a new feature that I was not aware of. It now broke up audio devices into devices and mixers - instead of previously just devices. The upgrade did its best effort to get it configured, but the RetroStone apparently has a non-standard audio device setup.

I needed to edit the file /opt/retropie/configs/all/emulationstation/es_settings.cfg to properly set up the audio card / device (mixer).

<string name="AudioCard" value="sysdefault" />
<string name="AudioDevice" value="Lineout volume control" />

Now that audio was again working in EmulationStation, I thought my work was done. Soon after changing that value however, I started seeing another error ALSA lib pcm.c:7843:(snd_pcm_recover) underrun occurred. Following advice from the reddit post here, I got more issues ironed out with audio and emulation station.

I simply had to edit /etc/asound.conf and change the sound buffer settings:

period_size = 4096
buffer_size = 32768

Now that my audio on the device is working properly, I think that my tweaking is almost done. The last step is going to be working on getting my wifi working more reliably than it currently is.