Display Emulationstation to HDMI (& other bugs)
-
Hi all. I just installed version 4.5 of Retropie. I have a few questions to try and work out some of the bugs.
Here are my specs:
Pi Model or other hardware: 3 B+
RetroPie Version Used: 4.5
Built From: on-top of existing Raspbian Buster image...didn't want to have to reinstall pi-hole
USB Devices connected: logitech wirelsss keyboard
Controller used: logitech F710
Error messages received: none
Emulator: N64-
I am running 2 screens using the fkms overlay so they are independent of each other. Primary screen is the foundation 7" touchscreen via dsi, secondary is my Sony HDTV via HDMI. Pi boots to desktop and all looks normal, with Retropie splashscreen during boot. But I cannot get the emulationstation to output to my TV (HDMI). I am reluctant to go back to legacy drivers since it has difficulty running dual displays. Is there any way to force emulationstation to output to HDMI or have emulationstation mirror on both the touchscreen and HDMI?
-
I've test started 2 games with emulationstation (Starfox 64 and Super Mario 64). Both games start but the direction pad on the controller does not work in game. Start and action buttons work fine, just no direction pad.
-
Audio is very choppy (audio over HDMI, analog setting) in game. I keep a resource monitor running on the other display and I am not exceeding 50% memory or CPU usage so I'm not sure what is not working properly.
Attached is my config.txt, let me know if there are any other config files or logs I should post. I did not find any in the /dev/shm/ folder.
# For more options and information see # http://rpf.io/configtxt # Some settings may impact device functionality. See link above for details # uncomment if you get no picture on HDMI for a default "safe" mode #hdmi_safe=1 # uncomment this if your display has a black border of unused pixels visible # and your display can output without overscan disable_overscan=1 # uncomment the following to adjust overscan. Use positive numbers if console # goes off screen, and negative if there is too much border #overscan_left=16 #overscan_right=16 #overscan_top=16 #overscan_bottom=16 # uncomment to force a console size. By default it will be display's size minus # overscan. #framebuffer_width=1200 #framebuffer_height=720 # uncomment if hdmi display is not detected and composite is being output #hdmi_force_hotplug=1 # uncomment to force a specific HDMI mode (this will force VGA) #hdmi_group=2 #hdmi_mode=9 # uncomment to force a HDMI mode rather than DVI. This can make audio work in # DMT (computer monitor) modes #hdmi_drive=2 # uncomment to increase signal to HDMI, if you have interference, blanking, or # no display #config_hdmi_boost=4 # uncomment for composite PAL #sdtv_mode=2 #uncomment to overclock the arm. 700 MHz is the default. #arm_freq=800 # 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 the lirc-rpi module #dtoverlay=lirc-rpi # Additional overlays and parameters are documented /boot/overlays/README # Enable audio (loads snd_bcm2835) dtparam=audio=on [pi4] # Enable DRM VC4 V3D driver on top of the dispmanx display stack #dtoverlay=vc4-fkms-v3d #max_framebuffers=2 [all] dtoverlay=vc4-fkms-v3d max_framebuffers=2 #display_default_lcd=0 # NOOBS Auto-generated Settings: #hdmi_force_hotplug=1 lcd_rotate=2 #lcd_blanking=1 #ignore_lcd=1 #hdmi_blanking=1 enable_uart=off #start_x=0 # desktop display will default to the LCD (fb0) # This will force the specified display to be the first in the list, i.e. /dev/fb0 # Actually this is the full set: # MAIN_LCD 0 # AUX_LCD 1 # HDMI0 2 # SDTV 3 # HDMI1 is only availabe on RPi4 # HDMI1 7 framebuffer_priority=2 # increase GPU memory gpu_mem=256
-
-
Update on what I've tried.
For the video, I've tried two different solutions, neither of which worked:
- Modify the /opt/retropie/configs/all/retroarch.cgf file, specifically uncommented the line video_monitor_index = 1. I've had the value set to 0, 1, and 2. Each time, reboot and start emulationstation. It caused the system to slow to a crawl and forced me to reboot via ssh. Video still only displayed on the touchscreen
- Followed directions on this post to create a script for emulationstation: https://retropie.org.uk/forum/topic/7517/retropie-ubuntu-dual-screen/4
Script had the same effect as modifying retroarch.cfg. Emulationstation would load then the system would slow considerably.
For the sound: I've tried modifying the sound settings in emulationstation to each of the options (digital, analog, pcm, etc.) and tried running a game. Sound is still choppy. Also tried a test mp3 file with vlc player in desktop. Test file plays back correctly.
For the controller: I've tried re-configuring/remapping my controller and unplugging my keyboard while emulationstation is running. When I launch a game, the display does show my controller is connected at port 0. So not sure why it won't pick up the direction pads or analog sticks.
-
@radji Ran into this while I was researching my own struggles outputting dual monitors from my Pi 4. I found a way to get it done - I'll spare you the walkthrough if that's okay but it involved booting the desktop environment first with xrandr installed and the displays configured there - then rigging the thing to autostart emulation station from there on top of that environment. Long story short, I took a huge performance hit, even the gen. 4 consoles started dropping frames and chopping audio. I was super proud to get it working after many failures and posts online saying it couldn't be done, but unfortunately it just wasn't worth it in the end. Most people suggest an HDMI splitter and now that I can see how rough it can be on the system to make this work - just don't do it is my advice. Maybe it's a moot point for you by now, but FYI for anyone else down the road. Go with the splitter.
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.