Does anyone know if Retroarch can be compiled to work on top of Raspbian without X11 or Pixel loaded?
I use a CRT arcade setup, so I can't display anything that requires higher than 240p resolution.
Just in case people are wondering why I'm asking about this, I have already *fully* explored Retropie and Lakka solutions, got them "working" and found certain unworkable technical limitations (in my particular setup) that I am attempting to circumvent with the Rapsbian lite plus Retroarch solution that I'm trying to get going.
5 posts • Page 1 of 1
Yes you did! Thank you.
I haven't finished compiling as per your instructions yet, but I definitely will do so over the next couple days. I'm eager to get this working. The GPIO doesn't support interlaced resolutions. Because of that, any HDMI-VGA adapter solution is currently superior to the GPIO, and I think it will become more important once people start using CRT switch res (which takes advantage of native resolution switching). That means it now makes sense to have the ability to switch between interlaced and non interlaced res on the fly. Up til now, you kind of had to pick a single res and stick with it.
I'm going to just paste your reply below here for now so that anyone trying to get this going has the whole story:
It's been a while so I ran through this again. Basically followed squid's instructions for RetroArch 1.7.7 that he linked above at https://gist.github.com/AlexMax/32e5d03 ... nt-2960702 for building, although added --prefix=/usr/local --disable-x11 --enable-kms on top of all the other options in the gist comment.
Then for a custom build of SDL2 without X11:
Code: Select all
sudo apt-get build-dep libsdl2-2.0-0
apt-get source libsdl2-2.0-0
./configure --prefix=/usr/local --disable-video-x11 --enable-video-kmsdrm
sudo make install
Then after doing sudo systemctl stop lightdm, retroarch could still run from the the console, and after editing retroarch.cfg and configuring core_updater_buildbot_url as the instructions say, I was able to download the MAME 2003 Plus core and play Pacman.
This is only for the Pi 4. If you're on a Pi 3B+ or older, you should still be able to use --enable-video-rpi with the legacy driver.
Your mileage may vary but hope this gives you an idea. CRT displays can give trouble with custom resolutions so you may want to ground yourself by testing with standard PC flatpanel too.
So I'm trying to accomplish the same thing (Retroarch without X11), and I followed the instructions from that Gist you linked (the URL got broken when it got pasted from the other thread; the right one is here: https://gist.github.com/AlexMax/32e5d03 ... nt-2960702).
I'm trying to get Dolphin working on the Pi 4 -- I got it working standalone, but getting it into Retroarch has been a pain. I got Dolphin working in Retroarch on X by manually compiling the Dolphin core, but all the overhead made it pretty much unplayable (it was barely playable standalone). So I'm looking for alternatives that remove the overhead of an X driver.
As Dolphin won't work outside of chroot in Raspbian, I'm running Ubuntu Server 19.10 so I can run arm64. Of course, arm64 isn't technically supported by a lot of things, so it's been an adventure.
I compiled Retroarch with the following parameters:
I had to change some parameters due to compiler issues, probably due to arm64.
Code: Select all
$ CFLAGS='-mtune=cortex-a72' ./configure --disable-opengl1 --enable-udev --enable-opengles3 --enable-opengles --disable-videocore --disable-pulse --disable-oss --prefix=/usr/local --disable-x11 --enable-kms
From there, for libsdl2:
It installed, but for some reason when RetroArch boots all my input goes to the TTY "underneath" RetroArch instead of RetroArch itself. Any ideas?
Code: Select all
$ sudo apt-get build-dep libsdl2-2.0-0 $ sudo apt-get source libsdl2-2.0-0 $ cd libsdl2-2.0.10+dfsg1 $ ./configure --prefix=/usr/local --disable-video-x11 --enable-video-kmsdrm $ make $ sudo make install
EDIT: Turns out I forgot to enable audio in my config.txt. Enabling audio fixed the issue... but now I have a new issue. I can only see about a quarter of the screen or so -- the top 50%(-ish) and the left 50%(ish). Changing my resolution doesn't seem to have any effect, and I'm seeing these lines print to the console:
Searching the internet has turned up one result: https://bugs.launchpad.net/ubuntu/+sour ... ug/1852035
Code: Select all
[drm:vc4_crtc_mode_set_nofb [vc4]] *ERROR* couldn't fill AVI infoframe
However, that bug turned out to be because someone was had their max pixel frequency set too low -- which I don't think is the case here.
I'm running into 2 obvious roadblocks.
1) SDL2 driver for Retroarch doesn't seem to work. I downloaded and installed it from source as your example, but if I switch the video driver in retroarch to SDL2, it doesn't load at all. One thing I noticed is that apt-get picked a different libsdl2 entry, but I got the latest source in my directory anyway (libsdl2-2.0.9+dfsg1) which I was able to build with the options you suggested and no apparent errors.
2) The core_updater_buildbot_url instruction is perplexing me. I see the list of cores here: http://buildbot.libretro.com/nightly/li ... hf/latest/ in my core list. Does that mean I can only use these cores? There are some notable exclusions there. (mupen is one I want to try out with this setup)
Current results: retroarch will run and I was able to play a snes game using the gl video driver. I still can't use SDL2, and I can't update the cores with the url suggested as a source.
Any help is much appreciated.