Hello everyone,
hopefully I am asking this in the right place. Today I have connected my Raspberry Pi 4 with a premade Batocera image to my PAL CRT via composite output, specifically using a 3.5mm to RCA A/V cable. The video output works completely fine, however the audio breaks a lot and is noticeably slower than normal. This is the case for all of the game systems, as well as the EmulationStation interface itself. Needless to say, the output works flawlessly when i configure the output to an LCD screen via HDMI, however my goal is to have it working properly on composite. I previously used the same hardware and cable setup to run RetroPie images, where there were no audio issues, which leads me to believe that the drivers might be causing the problem. Is there anything I can do to make the audio work? Here is my config.txt if it can be of any use:
# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720
# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1
# uncomment the hdmi_group command which defines the HDMI output group to be either...
# 1 use CEA (Consumer Electronics Association, the standard typically used by TVs) or
# 2 use DMT (Display Monitor Timings, the standard typically used by monitors).
# This setting should be used in conjunction with hdmi_mode.
#hdmi_group=2
# uncomment to apply an appropriate CEA or DMT mode for your display
# see the web site below for valid options depending on the hdmi_group setting
# https://www.raspberrypi.org/documentation/configuration/config-txt/video.md
#hdmi_mode=4
# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2
# uncomment will remove all other modes except the ones specified by hdmi_mode and hdmi_group from the internal list
# meaning they will not appear in any enumerated lists of modes.
# this option may help if a display seems to be ignoring the hdmi_mode and hdmi_group settings.
#hdmi_force_mode=1
# use this option to allow selection of 4k 60Hz refresh rates.
# note, this will increase power consumption and increase the temperature of the Raspberry Pi.
# it is not possible to output 4Kp60 on both micro HDMI ports simultaneously.
#hdmi_enable_4kp60=1
# forces the EDID content type to a specific value.
# the options are:
# 0 = EDID_ContentType_NODATA, content type none.
# 1 = EDID_ContentType_Graphics, content type graphics, ITC must be set to 1
# 2 = EDID_ContentType_Photo, content type photo
# 3 = EDID_ContentType_Cinema, content type cinema
# 4 = EDID_ContentType_Game, content type game
#edid_content_type=4
# if you plug your tv at the same time as your rpi and that the rpi switches from the hdmi or give a low resolution because tv had no enough time to initialize it
boot_delay=3
# uncomment to enable composite output via 4 pole TRRS ("headphone") socket.
# note: slightly slows down the entire system on Pi 4 models.
enable_tvout=1
# uncomment for composite mode.
# 0 Normal NTSC (defult)
# 1 Japanese version of NTSC – no pedestal
# 2 Normal PAL
# 3 Brazilian version of PAL – 525/60 rather than 625/50, different subcarrier
# 16 Progressive scan NTSC
# 18 Progressive scan PAL
sdtv_mode=2
# uncomment to define the wide aspect ratio for composite video output above.
# 1 4:3 (default)
# 2 14:9
# 3 16:9
sdtv_aspect=1
# uncomment if you have slow sound issues on composite output
audio_pwm_mode=1
# uncomment to pretend that all audio formats are supported by the display
# allowing passthrough of DTS/AC3 even when this is not reported as supported.
#hdmi_force_edid_audio=1
# uncomment to pretend that all audio formats are unsupported by the display.
# this means ALSA will default to the analogue audio (headphone) jack.
# hdmi_ignore_edid_audio=1
# uncomment to avoid the firmware parsing the EDID of any HDMI attached display
# that way the Linux video mode system (KMS) will then parse the EDID itself and pick an appropriate mode.
#disable_fw_kms_setup=1
# uncomment for lirc-rpi
#dtoverlay=lirc-rpi
# uncomment if you don't want the rainbow at startup
#disable_splash=1
kernel=boot/linux
initramfs boot/initrd.gz
# enable UART (required for for retroflag)
# affect rpi performances
# enable_uart=1
# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on
# Uncomment this to enable infrared communication.
#dtoverlay=gpio-ir,gpio_pin=17
#dtoverlay=gpio-ir-tx,gpio_pin=18
# Additional overlays and parameters are documented /boot/overlays/README
# Configure GPU memory based on SDRAM size
# https://www.raspberrypi.org/documentation/configuration/config-txt/memory.md
# Default GPU memory split (do not change if you do not know what you are doing)
gpu_mem=128
# Configure GPU memory based on SDRAM size - overrides above setting
gpu_mem_256=112
gpu_mem_512=160
gpu_mem_1024=256
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
# Optional 'Fake' KMS for displays that won't work with 'Full' KMS
dtoverlay=vc4-fkms-v3d
[DPI]
# Put any DPI required display code here
# i.e. Official 7" DSI Raspberry Pi Touch Display for 'Full' KMS
#ignore_lcd=1
#dtoverlay=vc4-kms-dsi-7inch
[pi02]
# 64-bit mode
arm_64bit=1
start_file=start_x.elf
fixup_file=fixup_x.dat
# Enable DRM VC4 V3D driver on top of the dispmanx display stack
# Preferred 'Full' Kernel Mode Setting (KMS)
dtoverlay=vc4-kms-v3d,cma-128
[pi2]
start_file=start_x.elf
fixup_file=fixup_x.dat
# Enable DRM VC4 V3D driver on top of the dispmanx display stack
# Preferred 'Full' Kernel Mode Setting (KMS)
dtoverlay=vc4-kms-v3d
[pi3]
# 64-bit mode
arm_64bit=1
start_file=start_x.elf
fixup_file=fixup_x.dat
# Enable DRM VC4 V3D driver on top of the dispmanx display stack
# Preferred 'Full' Kernel Mode Setting (KMS)
dtoverlay=vc4-kms-v3d
[pi4]
# 64-bit mode
arm_64bit=1
# Run as fast as firmware / board allows
arm_boost=1
start_file=start4x.elf
fixup_file=fixup4x.dat
# Enable DRM VC4 V3D driver on top of the dispmanx display stack
# Preferred 'Full' Kernel Mode Setting (KMS)
#dtoverlay=vc4-kms-v3d-pi4
# Ensure only one display output can be used on the Pi4 with batocera
max_framebuffers=1
# custom config
[all]
dtparam=i2c_arm=on
dtparam=i2c-1=on
enable_uart=1
[Overclock]
over_voltage=6
arm_freq=2100
gpu_freq=750
Thanks in advance for the support.