Batocera works fine with displays that are connected through the Pi's HDMI port. But some extra work is required to make it work with screens connected to the DPI or SPI ribbon/GPIO pins. Batocera already supports a few (undocumented) screens but more likely than not your screen isn't supported yet. Some extra effort is required to get this working.
Some drivers only work on 32-bit systems (most typically because Raspberry Pi OS was 32-bit for the majority of its life, but has recently moved to 64-bit) so you will have to use Batocera v31 or earlier on the RPi3B+ or the last available 32-bit build, v29, for RPi4.
DUSE_DMA_TRANSFERS=OFF flag before they'll start working. First try without it, though./boot/. If necessary, copy the overlay file(s) (usually the *.dts and *.dtb files) for your drivers to /boot/ as well./userdata/system/, however this is ill-advisable as you'll miss out on the display working until after the splash screen and if you ever use that card on another Raspberry Pi without an identical screen you effectively won't get a display output. Drivers that require overlay files will only work if copied to the /boot/ partition./boot/config.txt and edit the line applicable to your display (usually mentioned in the driver's documentation, some displays require you to add new lines in while others require you to remove all dtoverlays). For example: dtoverlay=waveshare32b,rotate=90,speed=22000000,fps=60
dtoverlay=vc4-fkms-v3d-pi4
This is an advanced tutorial, you are assumed to be familiar with basic Linux principles, have already made your small LCD screen working on Raspberry Pi OS and can copy files in and out between Raspberry Pi OS and Batocera.
mhs35.dtbo, mhs35-overlay.dtb) into /boot/overlays/ folder from Raspberry Pi OS’s /boot/overlays/ folder./boot/overlays.bak/ and copy /boot/overlays/vc4-kms-v3d-pi4.dtbo into it for backup; then copy /boot/overlays/vc4-fkms-v3d.dtbo into /boot/overlays/vc4-kms-v3d-pi4.dtbo. This is to force Batocera to load the LCD’s 3D driver instead of HDMI’s 3D driver./boot/config.txt (remember, use a text editor that can save line terminators properly!):dtoverlay=mhs35:rotate=90; add the GPU 3D acceleration line dtoverlay=vc4-fkms-v3d-pi4,noaudio./boot/config.txt, either:hdmi_group=2 hdmi_mode=87 hdmi_cvt 800 480 60 6 0 0 0 hdmi_drive=2
hdmi_group=2 hdmi_mode=85 hdmi_drive=2
/boot/cmdline.txt:console=serial0,115200 fbcon=map:10 fbcon=font:ProFont6x11 to the line (don’t create a new line), these optional settings are for console display.mybin/ ) inside the system folder, transfer the frame-buffer copier program (/usr/local/bin/fbcp) into that folder.libvchiq_arm.so.0, libvcos.so.0, etc.) into the folder; you can get the dependency libraries of a Linux executable by running ldd -v fbcp in Raspberry Pi OS./system/custom.sh (if absent), add the line to run fbcp, LD_LIBRARY_PATH=/userdata/mybin /userdata/mybin/fbcp & into the script.Credit to xuancong on the forums. Original post.