Retropie Installation on Ubuntu Server x64 18.04.1
-
@etheling said in Retropie Installation on Ubuntu Server x64 18.04.1:
I tinkered with the KMS/DRM setup and I think I am now at a pretty good place with it. Here is updated install script.
I'm having my first go at this and it is FANTASTIC! There is no gnome terminal window to speak of. Normally I would be able to ALT-TAB to the terminal but it isn't even there! :D
-
Since I am testing on a Lenovo T430 (for now) and the panel is capable of 1366x768 max, I had to make the necessary tweaks. If not, Retroarch yelled that it couldn't find a display that was capable of 1920x1080 and bailed.
Here is the log from a successful launch:
pi@t430:~$ cat /dev/shm/runcommand.log Parameters: Executing: SDL_VIDEO_KMSDRM_CRTCID=42 SDL_VIDEO_KMSDRM_MODEID=0 /opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-snes9x/snes9x_libretro.so --config /opt/retropie/configs/snes/retroarch.cfg "/home/pi/RetroPie/roms/snes/Legend of Zelda, The - A Link to the Past (USA).zip" --verbose --appendconfig /dev/shm/retroarch.cfg [INFO] RetroArch 1.8.8 (Git 9552f87) [INFO] Redirecting save file to "/home/pi/RetroPie/roms/snes/Legend of Zelda, The - A Link to the Past (USA).srm". [INFO] Redirecting save state to "/home/pi/RetroPie/roms/snes/Legend of Zelda, The - A Link to the Past (USA).state". [INFO] === Build ======================================= [INFO] CPU Model Name: Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz [INFO] Capabilities: MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE4.2 AES AVX [INFO] Built: Oct 14 2020 [INFO] Version: 1.8.8 [INFO] Git: 9552f87 [INFO] ================================================= [INFO] Loading dynamic libretro core from: "/opt/retropie/libretrocores/lr-snes9x/snes9x_libretro.so" [INFO] [Overrides] no core-specific overrides found at /home/pi/.config/retroarch/config/Snes9x/Snes9x.cfg. [INFO] [Overrides] no content-dir-specific overrides found at /home/pi/.config/retroarch/config/Snes9x/snes.cfg. [INFO] [Overrides] no game-specific overrides found at /home/pi/.config/retroarch/config/Snes9x/Legend of Zelda, The - A Link to the Past (USA).cfg. [INFO] [Environ]: GET_LANGUAGE: "0". [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_INTL. [INFO] [Environ]: SET_CONTROLLER_INFO. [INFO] [Remaps]: remap directory: /opt/retropie/configs/snes/ [INFO] Redirecting save file to "/home/pi/RetroPie/roms/snes/Legend of Zelda, The - A Link to the Past (USA).srm". [INFO] Redirecting save state to "/home/pi/RetroPie/roms/snes/Legend of Zelda, The - A Link to the Past (USA).state". [INFO] [Environ]: GET_LOG_INTERFACE. [INFO] [Environ]: SYSTEM_DIRECTORY: "/home/pi/RetroPie/BIOS". [INFO] [Environ]: SET_SUPPORT_ACHIEVEMENTS: yes. [INFO] [Environ]: PERFORMANCE_LEVEL: 12. [INFO] Loading content file: /tmp/retroarch/Legend of Zelda, The - A Link to the Past (USA).sfc. [INFO] Did not find a valid content patch. [INFO] [Environ]: SET_INPUT_DESCRIPTORS: [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY. [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY. [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY. [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY. [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY. [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY. [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY. [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY. [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY. [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY. [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY. [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY. [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY. [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY. [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY. [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY. [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY. [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY. [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY. [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY. [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY. [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY. [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY. [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY. [INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY. [libretro INFO] "THE LEGEND OF ZELDA" [checksum ok] LoROM, 8Mbits, ROM+RAM+BAT, NTSC, SRAM:64Kbits, ID:$__0, CRC32:777AAC2F [INFO] [Environ]: SET_PIXEL_FORMAT: RGB565. [INFO] Skipping SRAM load.. [INFO] Version of libretro API: 1 [INFO] Compiled against API: 1 [INFO] [Cheats]: Load game-specific cheatfile: /home/pi/.config/retroarch/cheats/Snes9x/Legend of Zelda, The - A Link to the Past (USA).cht [INFO] [Audio]: Set audio input rate to: 31987.32 Hz. [INFO] [Video]: Video @ 1366x768 [ERROR] [Wayland]: Failed to connect to Wayland server. [INFO] [DRM]: Found 8 connectors. [INFO] [DRM]: Connector 0 connected: yes [INFO] [DRM]: Connector 0 has 1 modes. [INFO] [DRM]: Connector 0 assigned to monitor index: #1. [INFO] [DRM]: Connector 1 connected: no [INFO] [DRM]: Connector 1 has 0 modes. [INFO] [DRM]: Connector 2 connected: no [INFO] [DRM]: Connector 2 has 0 modes. [INFO] [DRM]: Connector 3 connected: no [INFO] [DRM]: Connector 3 has 0 modes. [INFO] [DRM]: Connector 4 connected: no [INFO] [DRM]: Connector 4 has 0 modes. [INFO] [DRM]: Connector 5 connected: no [INFO] [DRM]: Connector 5 has 0 modes. [INFO] [DRM]: Connector 6 connected: no [INFO] [DRM]: Connector 6 has 0 modes. [INFO] [DRM]: Connector 7 connected: no [INFO] [DRM]: Connector 7 has 0 modes. [INFO] [DRM]: Mode 0: (1366x768) 1366 x 768, 60 Hz [INFO] [GL]: Found GL context: kms [INFO] [GL]: Detecting screen resolution 1920x1080. [INFO] [EGL] Found EGL client version >= 1.5, trying eglGetPlatformDisplay [INFO] [EGL]: EGL version: 1.4 [INFO] [EGL]: Current context: 0x560e9fbe2f70. [INFO] [KMS]: New FB: 1366x768 (stride: 5632). [INFO] [GL]: Vendor: Intel Open Source Technology Center, Renderer: Mesa DRI Intel(R) HD Graphics 4000 (IVB GT2). [INFO] [GL]: Version: 3.0 Mesa 20.0.8. [INFO] [GL]: Using resolution 1366x768 [INFO] [GL]: Default shader backend found: glsl. [INFO] [Shaders]: preset directory: /home/pi/.config/retroarch/config [INFO] [Shaders]: preset directory: /opt/retropie/configs/snes/ [INFO] [Shaders]: preset directory: /home/pi/.config/retroarch/shaders/presets [INFO] [Shader driver]: Using GLSL shader backend. [INFO] [GLSL]: Checking GLSL shader support ... [WARN] [GL]: Stock GLSL shaders will be used. [INFO] [GLSL]: Found GLSL vertex shader. [INFO] [GLSL]: Found GLSL fragment shader. [INFO] [GLSL]: Linking GLSL program. [INFO] [GLSL]: Found GLSL vertex shader. [INFO] [GLSL]: Found GLSL fragment shader. [INFO] [GLSL]: Linking GLSL program. [INFO] [GLSL]: Found GLSL vertex shader. [INFO] [GLSL]: Found GLSL fragment shader. [INFO] [GLSL]: Linking GLSL program. [INFO] [GL]: Using 4 textures. [INFO] [GL]: Loaded 1 program(s). [INFO] [GL]: Using GL_RGB565 for texture uploads. [INFO] [udev]: Keyboard #0 (/dev/input/event3). [INFO] [udev]: Mouse #0 (/dev/input/event5). [INFO] [udev]: Mouse #1 (/dev/input/mouse0). [INFO] [Joypad]: Found joypad driver: "udev". [INFO] [Font]: Using font rendering backend: stb-unicode. [INFO] [Video]: Found display server: null [INFO] Found shader "/home/pi/.config/retroarch/shaders/bilinear.glslp" [INFO] Found shader "/home/pi/.config/retroarch/shaders/nearest.glslp" [INFO] Found shader "/home/pi/.config/retroarch/shaders/slang-conversion-template.glsl" [INFO] Found shader "/home/pi/.config/retroarch/shaders/stock.glsl" [INFO] [ALSA]: Using signed 16-bit format. [INFO] [ALSA]: Period size: 768 frames [INFO] [ALSA]: Buffer size: 3072 frames [INFO] [ALSA]: Can pause: yes. [INFO] [Menu]: Found menu display driver: "gl". [INFO] [Font]: Using font rendering backend: stb-unicode. [INFO] [Font]: Using font rendering backend: stb-unicode. [INFO] [Font]: Using font rendering backend: stb-unicode. [INFO] [Environ]: SET_SUBSYSTEM_INFO. [INFO] [Menu]: Found menu display driver: "gl". [INFO] [LED]: LED driver = 'null' 0x560e9d133060 [INFO] [MIDI]: Initializing ... [INFO] [MIDI]: Input disabled. [INFO] [MIDI]: Output disabled. [INFO] [MIDI]: Initialized "alsa" driver. [INFO] Loading history file: [/opt/retropie/configs/snes/content_history.lpl]. [INFO] Loading history file: [/opt/retropie/configs/snes/content_music_history.lpl]. [INFO] Loading history file: [/opt/retropie/configs/snes/content_video_history.lpl]. [INFO] Loading history file: [/opt/retropie/configs/snes/content_image_history.lpl]. [INFO] Loading favorites file: [/opt/retropie/configs/snes/content_favorites.lpl]. [INFO] [GL]: VSync => on [INFO] Written to playlist file: /opt/retropie/configs/snes/content_history.lpl [INFO] [Environ]: SET_GEOMETRY. [INFO] [KMS]: New FB: 1366x768 (stride: 5632). [INFO] [KMS]: New FB: 1366x768 (stride: 5632). [INFO] [Cheats]: Save game-specific cheatfile: /home/pi/.config/retroarch/cheats/Snes9x/Legend of Zelda, The - A Link to the Past (USA).cht [INFO] Saving RAM type #0 to "/home/pi/RetroPie/roms/snes/Legend of Zelda, The - A Link to the Past (USA).srm". [INFO] Saved successfully to "/home/pi/RetroPie/roms/snes/Legend of Zelda, The - A Link to the Past (USA).srm". [INFO] Content ran for a total of: 00 hours, 08 minutes, 44 seconds. [INFO] Unloading game.. [INFO] Unloading core.. [INFO] Unloading core symbols.. [INFO] [Core Options]: Saved core options file to "/opt/retropie/configs/all/retroarch-core-options.cfg" [INFO] Written to playlist file: /opt/retropie/configs/snes/content_music_history.lpl [INFO] Written to playlist file: /opt/retropie/configs/snes/content_video_history.lpl [INFO] Written to playlist file: /opt/retropie/configs/snes/content_image_history.lpl [INFO] [Video]: Average monitor Hz: 59.944851 Hz. (3.142 % frame time deviation, based on 2048 last samples). [INFO] Removing temporary content file: /tmp/retroarch/Legend of Zelda, The - A Link to the Past (USA).sfc. [INFO] [Video]: Average monitor Hz: 59.944851 Hz. (3.142 % frame time deviation, based on 2048 last samples).
-
I'm going to run @etheling's updated script on my Asus CN65 Chromebox that is connected to my 4K TV tonight and perform some more testing.
-
I tried playing around with various video options (something I normally wouldn't need to do), but lr-dolphin is running games in a small window in the bottom left corner of the screen.
-
@johnodon Great to hear your test results! :) I had not tried lr-dolphin - that's a bummer. Did you try if there is any differenve if you change video drivers? E.g, video_driver=vulkan or video_driver=gl.
I'll try to do some additional testing during the weekend myself with a PC with geforce card.
@MisterB - looks like there is a way around patching retroarch. sh - turns out there is a 'flag' to support kms on x86 in RetroPie-Setup. I'll test that over the weekend too. Looks like I'll do an additional round of updates after all.
-
@johnodon Couldn't resist trying. I got same result with lr-dolphin as you did, but switching to
video_driver=glcore
worked for me (whereas vulkan segfaulted it). -
@etheling said in Retropie Installation on Ubuntu Server x64 18.04.1:
@johnodon Couldn't resist trying. I got same result with lr-dolphin as you did, but switching to
video_driver=glcore
worked for me (whereas vulkan segfaulted it).That did the trick. It's good to have Gamecube back again! :)
-
@etheling I have now moved on to trying to get Firefox to launch. Any hints?
-
@johnodon I didn't try this, but
startx
should launch openbox, and you could add a autostart file that launches Firefox. And you can call startx from a shell script through ports and then in that script add/remove the custom autostart file if you want (but don't use exec or I think otherwise you wont be able to return to ES after closing X). Edit: you should also modify /etc/X11/xorg.conf that the script installed to set resolution appropriate for your display (from 1080p). -
@etheling said in Retropie Installation on Ubuntu Server x64 18.04.1:
@johnodon I didn't try this, but
startx
should launch openbox, and you could add a autostart file that launches Firefox. And you can call startx from a shell script through ports and then in that script add/remove the custom autostart file if you want (but don't use exec or I think otherwise you wont be able to return to ES after closing X).I'm just about there.
If I create a
.config/openbox/autostart
file with...gnome-terminal --full-screen --hide-menubar -- firefox
And create a
Firefox.sh
in ports that has...startx
It works fine.
However, if delete the autostart file and edit the
Firefox.sh
file to be...startx gnome-terminal --full-screen --hide-menubar -- firefox
I get a black screen.
I know i'm doing something completely stupid! :)
-
@MisterB I changed my mind about the 'recipes'. I think. I had some time during the weekend to refactor my KMS/DRM modifications (new gist here) and it's now almost completely split into it's own script that can be run via existing optional script mechanism. Unfortunately I couldn't avoid patching RetroPie setup, so there are three changes that remain in your script (both scripts in gist):
-
Add libdrm-dev dependency that RetroArch needs to compile when KMS/DRM flags are enabled (this really should go to ~/RetoPie-Setup/..../retroarch.sh , but on the other hand I really want to avoid patching it).
-
Patch
~/RetroPie-Setup/scriptmodules/system.sh
to include x11 flag when compiling kms target (this is needed to get e.g. vulkan support, and be able to run under both KMS and X (or Wayland). -
set __has_kms flag to let RetroPie-Setup know we want to do kms 'target'. My script checks that it's been set before executing as well.
I briefly consider (but didn't test) doing all of the above from my script, and then re-running RetroPie setup basic_install, but install takes long enough already, and dealing with all kinds of unexpectedness resulting from running it twice didn't really thrill me.
But other than that, it looks like it works really nicely as an optional script. And especially now that I ended up adding some complexity to it, I think it's much cleaner this way. I do rollback some of the changes made by your script, but it was much less work than I thought it would be.
Changes to KMS/DRM setup script functionality-wise (see previous posts for others):
- Detect if we're using Intel/i915 based setup and add
i915.modeset=
kernel boot option - Probe maximum resolution of framebuffer device and if less than 1080p, (try to) find suitable resolution
- Construct video= kernel boot option to include connector (e.g. HDMI-A-3, DP-1, Virtual-1...)
- Added some error checking that we're getting 'official' version of libsdl2 from libsdl.org (e.g. I am not big fan of downloading 'random' tarballs from a website and then executing what gets compiled)
And lastly, while not completely unexpected, still somewhat disappointing: it looks like nVidia or Radeon based systems don't trivially support this approach. They might still, but... I got KMS/DRM working under Nouveau nVidia driver (used 'nouveau.modeset=1 i915.modeset=0' boot options), but performance was subjectively substandard to running emulators under X with nVidia binary drivers, so unless one is open source purist, I don't know why would you want to do that.
Although there are some cleanups to do for my script, I hope I won't have any changes that would need to go to your script anytime soon. I think I said that few days a go too! ;-) As for my script, I guess I should create a github repo for it and move it there.
Edit: I updated the Gist. I had a last minute omission there that broke it.
-
-
FYI...
Unless it is installed via the Retropie setup script (or somewhere else early in the process), software-properties-common needs to be added to the dependencies otherwise
apt-add-repository
won't be there. The Ubuntu mini source ISOs don't have this included. -
@johnodon said in Retropie Installation on Ubuntu Server x64 18.04.1:
However, if delete the autostart file and edit the Firefox.sh file to be...
I'm pretty sure startx blocks. And I don't think adding
&
to background it would work either. -
@etheling said in Retropie Installation on Ubuntu Server x64 18.04.1:
@johnodon said in Retropie Installation on Ubuntu Server x64 18.04.1:
However, if delete the autostart file and edit the Firefox.sh file to be...
I'm pretty sure startx blocks. And I don't think adding
&
to background it would work either.So, Chromium appears to work just fine when calling it directly using startx (
startx chromium-browser
). If I try to do the same with Firefox, the window isn't maximized and the mouse goes whacko. -
@MisterB Ubuntu 20.10 is now out. I quickly tested the script and looks like Python2 dependency
python-xdg
is no longer available and thus it doesn't install any of the other dependencies either and produces broken install (after reboot you'll get the infamous black screen). Changing topython3-xdg
appears to fix it and produce mostly working install (see next message; not all libretro cores get installed). (edit)20.04 appear to have python3-xdg as well.
I'm not familiar for what it is used for, so don't know if this is the right way to fix this though.
Maybe the script should abort/exit if RETROPIE_DEPENDS fails to install in any case? Something like this:
# Install RetroPie dependencies function install_retropie_dependencies() { echo "--------------------------------------------------------------------------------" echo "| Updating OS packages and installing RetroPie dependencies" echo "--------------------------------------------------------------------------------" apt-get update && apt-get -y upgrade && \ apt-get install -y $APT_RECOMMENDS ${RETROPIE_DEPENDS[@]} if [ ! $? -eq 0 ]; then echo "ERROR: Problem with apt-get. Cowardly refusing to continue." exit 1 fi echo -e "FINISHED install_retropie_dependencies \n\n" sleep 2 }
-
Also noticed that RetroPie
setup basic_install
doesn't pass on Ubuntu 20.10 x64.I suspect this might be related to recent RetroPie/Retroarch updates more so than testing it on 20.10 though.But just wanted to drop it here as I have the logs in front of me now (will test on 20.04 soon).Edit #1: tested on a clean 20.04.1 and 20.10 VMs. Looks like this only happens on 20.10. GCC on 20.04 is 9.3.0 and on 20.10 it is 10.2.0.
Edit #2: Looks like this is caused by Ubuntu 20.10 upgrading to GCC 10.x. Created new thread with a workaround here.
... Getting sources for 'lr-mupen64plus' : N64 emu - Mupen64Plus + GLideN64 for libretro = = = = = = = = = = = = = = = = = = = = = git clone --recursive --depth 1 --branch master "https://github.com/libretro/mupen64plus-libretro.git" "/home/pi/RetroPie-Setup/tmp/build/lr-mupen64plus" .... /home/pi/RetroPie-Setup/tmp/build/lr-mupen64plus /home/pi = = = = = = = = = = = = = = = = = = = = = Building 'lr-mupen64plus' : N64 emu - Mupen64Plus + GLideN64 for libretro ... ... g++ -march=native -O2 -fvisibility-inlines-hidden -std=c++11 -O2 -DNDEBUG -fsigned-char -ffast-math -fno-strict-aliasing -fomit-frame-pointer -fvisibility=hidden -DGIT_VERSION=\"" ab8 134a"\" -DOS_LINUX -DARCH_MIN_SSE2 -msse -msse2 -D__LIBRETRO__ -DUSE_FILE32API -DM64P_PLUGIN_API -DM64P_CORE_PROTOTYPES -D_ENDUSER_RELEASE -DSINC_LOWER_QUALITY -DTXFILTER_LIB -D__VEC4_O PT -DMUPENPLUSAPI -I./custom -I./custom/mupen64plus-core -I./custom/android/include -I./custom/GLideN64 -I./GLideN64/src -I./GLideN64/src/osal -I./mupen64plus-core/src -I./mupen64plus-c ore/src/api -I./custom/mupen64plus-core/plugin/audio_libretro -I./libretro-common/include -I./libretro -I./GLideN64/src/inc -I./xxHash -I./libretro-deps/libpng -fPIC -DCORE -DHAVE_OPE NGL -DDYNAREC -c GLideN64/src/ShaderUtils.cpp -o GLideN64/src/ShaderUtils.o In file included from GLideN64/src/ShaderUtils.cpp:3: GLideN64/src/ShaderUtils.h:10:52: error: ‘string’ in namespace ‘std’ does not name a type 10 | void logErrorShader(GLenum _shaderType, const std::string & _strShader); | ^~~~~~ GLideN64/src/ShaderUtils.h:6:1: note: ‘std::string’ is defined in header ‘<string>’; did you forget to ‘#include <string>’? 5 | #include "Combiner.h" +++ |+#include <string> 6 | GLideN64/src/ShaderUtils.h:11:93: error: ‘std::string’ has not been declared 11 | int compileCombiner(const gDPCombine & _combine, Combiner & _color, Combiner & _alpha, std::string & _strShader); | ^~~~~~ make: *** [Makefile:433: GLideN64/src/ShaderUtils.o] Error 1 make: *** Waiting for unfinished jobs.... Removing additional swap /home/pi Could not successfully build lr-mupen64plus - N64 emu - Mupen64Plus + GLideN64 for libretro (/home/pi/RetroPie-Setup/tmp/build/lr-mupen64plus/mupen64plus_libretro.so not found). Errors: Could not successfully build lr-mupen64plus - N64 emu - Mupen64Plus + GLideN64 for libretro (/home/pi/RetroPie-Setup/tmp/build/lr-mupen64plus/mupen64plus_libretro.so not found). No module 'splashscreen' found for platform x86
-
@noise said in Retropie Installation on Ubuntu Server x64 18.04.1:
My main problem is now pcsx2 i can't install from
Did you managed to install it?!
I recently got into RetroPie and had PCSX2 installed on my normal Ubuntu 20.04 Desktop version, yesterday when I found this script online I switched to Ubuntu server 20.04 and now can't install PCSX2 either. -
I never really had used/liked shaders much for a variety of reasons such as speed, gimmicky look, etc. Over the weekend I came a cross some posts with examples of scalefx and xBRZ shaders and started reading more about Pixel-art scaling algorithms. And it looks like I can run many systems (SNES, NeoGeo, ...) with full framerate with ScaleFX or xBRZ enabled (on 8th gen NUC). And while results and performance vary, subjectively these filters really perform miracles on some games - see below:
Looks like RetroArch is moving away from [old?] GLSL/Cg shaders to new(er) Slang shaders (Github) which are also only supported shaders with Vulkan and glcore video drivers.
Setup script didn't install slang shaders. I modified
install_retroarch_shaders()
to install them to/opt/retropie/configs/all/retroarch/shaders-slang
. See below. Also sent pull request to @MisterB with these updates.# Install RetroArch shaders from official repository function install_retroarch_shaders() { echo "--------------------------------------------------------------------------------" echo "| Remove the RPi shaders installed by RetroPie-Setup and replace with" echo "| RetroArch (merge of common & GLSL, and new Slang) shaders from Libretro" echo "--------------------------------------------------------------------------------" # Cleanup pi shaders installed by RetroPie-Setup rm -rf /opt/retropie/configs/all/retroarch/shaders mkdir -p /opt/retropie/configs/all/retroarch/shaders mkdir -p /opt/retropie/configs/all/retroarch/shaders-slang # Install common shaders from Libretro repository git clone --depth=1 https://github.com/libretro/common-shaders.git /tmp/common-shaders cp -r /tmp/common-shaders/* /opt/retropie/configs/all/retroarch/shaders/ rm -rf /tmp/common-shaders # Install GLSL shaders from Libretro repository git clone --depth=1 https://github.com/libretro/glsl-shaders.git /tmp/glsl-shaders cp -r /tmp/glsl-shaders/* /opt/retropie/configs/all/retroarch/shaders/ rm -rf /tmp/glsl-shaders # Install Slang shaders from Libretro repository (for use with Vulkan, glcore, ..) # https://www.libretro.com/index.php/category/slang/ git clone --depth=1 https://github.com/libretro/slang-shaders.git /tmp/slang-shaders cp -r /tmp/slang-shaders/* /opt/retropie/configs/all/retroarch/shaders-slang rm -rf /tmp/slang-shaders # Remove git repository from shader dir rm -rf /opt/retropie/configs/all/retroarch/shaders/.git rm -rf /opt/retropie/configs/all/retroarch/slang-shaders/.git chown -R $USER:$USER /opt/retropie/configs echo -e "FINISHED install_retroarch_shaders \n\n" sleep 2 }
-
Installed this mod years ago and it worked straight away. But after installing this script, after the initial RetroPie animation loading bar, it just goes to the black screen.
Tried another fresh Ubuntu image but got to the same point again.
Any ideas?
I am using the ubuntu-20.04.1-live-server-amd64 version of Ubuntu.
-
@elliot123 It sounds like you maybe hitting this problem (discussed earlier in this thread).
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.