This version is outdated by a newer approved version.DiffThis version (2021/08/02 23:26) is a draft.
Approvals: 0/1

This is an old revision of the document!


System Troubleshooting

Your audio output might not be initialized correctly. The best way to diagnose audio issues is:

  1. Launch Kodi from the main menu, then navigate to Settings (the small gear symbol), “System”, “Audio”, “Audio output device” and test all available Audio output devices listed there. If you navigate with a keyboard through Kodi, you will hear “click” sounds while navigating, when you have chosen the correct/working Audio output device.
  2. Remember the name/number of this working Audio output device (for example HDMI#0), exit Kodi and go to the Batocera Main Menu, “System Settings”, “Audio Output” and select the Audio output device, which has the same (or at least a similar) name, to the one that works in Kodi. Then reboot and you should have working audio.
  3. You can also diagnose some sound issues with the alsamixer sound mixer that is available when pressing [Ctrl][Alt][F4] (text-mode sound mixer). Make sure that all the outputs are enabled, and they have their volume up.

If you have sound on EmulationStation, and in the emulators, but you can't hear the sound of the video snapshots, here are several steps that may help you:

  1. First, make sure you have enabled video snaps sounds in the menu SOUNDS SETTINGSENABLE VIDEO AUDIO
  2. Then, you can try to connect to Batocera through SSH and enter the following command:
wget -O /userdata/system/.asoundrc https://www.batocera.org/users/lbrpdx/asoundrc

This command will create an alsa config file as /userdata/system/.asoundrc. It should fix your video snap sounds for most SBC like Odroid Go Advance, but maybe not on a PC.

On a PC, depending on your hardware configuration, your GPU and audio chipset, it might be trickier to get it working.

First, through SSH, get the list of audio outputs with the command aplay -l. In my setup, I get:

# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC255 Analog [ALC255 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 10: HDMI 4 [HDMI 4]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

If I want to use the audio output from HDMI0, I can see that it is card 0 and device 3. So, to make audio work on my setup, I need to edit the /userdata/system/.asoundrc file and replace pcm “hw:0,0” with pcm “hw:0,3”, and then save and on reboot, it worked. This method might not work in 100% cases, but it's worth a try.

Worst case, if it doesn't work and you want to go back to the original state, just remove the file /userdata/system/.asoundrc (or \system\.asoundrc from the network share).

First of all, check that the splash.screen.sound value in the batocera.conf file is set to 1

If this isn't the cause of the problem, you may need to edit the file containing the splash screen command to add the correct sound device:

  1. Run the command mpv --audio-device=help on your batocera using SSH
  2. Locate the sound device you need to use, for exemple alsa/hdmi:CARD=HDMI,DEV=2
  3. Edit the file /etc/init.d/S03splash
    • find the line /usr/bin/mpv --really-quiet -fs --no-config --vo=drm $mpv_audio $mpv_video "$video" & and add --audio-device=DEVICE where DEVICE is the name you found previously (in our exemple, the line will become /usr/bin/mpv --audio-device=alsa/hdmi:CARD=HDMI,DEV=2 --really-quiet -fs --no-config --vo=drm $mpv_audio $mpv_video "$video" &)
  4. Run the command batocera-save-overlay to keep the changes.
  5. Reboot
  6. When updating batocera, those changes will be lost.

When you try to launch a game, the emulator stops and gets you back to EmulationStation. In most cases, you will find some useful information in /userdata/system/logs/es_launch_stderr.log (which is also /system/logs/es_launch_stderr.log from the network shared drive).

Come to the Discord channel with this file, you'll get some help. In many case, you can see problems with BIOS missing, or bad ROM format.

First of all:

  • You may need to change your BIOS to allow legacy boot.
  • Make sure you have enabled “unsecured boot” option in your BIOS, this is a requirement for most Linux distributions
  • Unplug any attached storage or controllers
  • If your BIOS is UEFI and you can't use legacy boot, make sure you can load bootx64.efi from Batocera's boot partition

In order to get more information on your boot sequence, you can edit the /boot/boot/syslinux/syslinux.cfg file (for Batocera 5.25+, or /boot/boot/syslinux.cfg for Batocera 5.24 and earlier) and replace:

APPEND label=BATOCERA console=tty3 quiet loglevel=0 vt.global_cursor_default=0

With:

APPEND label=BATOCERA console=tty3 loglevel=9 vt.global_cursor_default=0

Don't forget you need to put the /boot/ mount point in write mode first, as described on this page.

Several video issues on PC x86 and x86_64 can be investigated with xrandr as described on this page.

If you use Batocera with a display that provides a high resolution like a 4K monitor, you might have trouble reading the text on the file browser (F1 on a PC) or the configuration screens of a few emulators. You can change the default DPI settings by editing batocera.conf and look for the section:

## DPI
## Workaround when correct DPI setting is not detected
## if fonts are too small, uncomment next line
#global.dpi=96

How to get access to a Linux console for troubleshooting?

  • If you can't use SSH because the network is not available, you can plug a USB keyboard on your Batocera box and:
  • on an x86_64 or x86 PC you can get a console with full graphical capabilities by pressing the [F1] key from the main system menu (to get into the file manager) and then [F4] for an xterm. You can get to a text console by pressing simultaneously [Ctrl][Alt][F3].

If you are a Mac user, you might wonder why you see lots of files starting with ._ and that are duplicates of your actual rom files, or other files, (like you have a 1943.zip file and next to it ._1943.zip. This is because you accessed your Batocera machine from a Mac, and MacOS leaves this files that are hidden by default under Linux, because they start with a dot, but might still appear in EmulationStation.

In order to list them all, you SSH into your Batocera system and enter:

find /userdata/ -name "._*"

And to remove them all:

find /userdata/ -name "._*" -exec rm {} \;

In case you want to share a snapshot of your system log files to help developers diagnose your systemm you can use the menu SYSTEM SETTINGSDEVELOPERCREATE A SUPPORT FILE It will generate a tarball in /userdata/saves/ named batocera-support-YYYYMMDDHHMMSS.tar.gz (with year/date/time of creation in the filename).

Emulators will not show up in the EmulationStation system meny unless you have a rom in their respective folders. All available cores are always installed by Batocera, you never need to “add” cores.

3DS

  • Does not support Encrypted Games - they must be Decrypted

PS2

  • Bios may be needed if having graphical issues and boot issues
  • Most games let you invert your controls if you feel the left stick is swapped
  • Compatibility between games and PCSX2 emulator can be checked on this webpage.
  • To access all configuration options for PCSX2, you need to run its app in APPLICATIONS menu of the File Explorer that you can access by pressing F1 on your PC keyboard, from the systems menu.

Gamecube and Wii (Dolphin emulator).

  • To access all configuration options for Dolphin, you need to run its app in APPLICATIONS menu of the File Explorer that you can access by pressing F1 on your PC keyboard, from the systems menu.

When things go really wrong, and you want to “factory reset” your Batocera, i.e. putting all the settings to their default values without losing your ROMs, saves and scraped metadata, there is a method to do it:

  • If you access your Batocera user data from the network, simply rename the directory system from the SHARE network drive into system.old and reboot your Batocera.
  • Or, if you are connected through SSH, just enter mv /userdata/system /userdata/system.old and then reboot.

Those two commands are the same, and upon reboot, all your settings will be cleared out to their default values. You'll have to re-enter some parameters like your wifi credentials and so on… or, you can look at what you have in the previous configuration files like /userdata/system.old/batocera.conf and the files in /userdata/system.old/configs/ and one by one you can set up your previous configuration without re-entering everything (in particular for batocera.conf, you might have many options set in there).

  • troubleshooting.1627939599.txt.gz
  • Last modified: 3 years ago
  • by lbrpdx