Bug 1223618

Summary: Retroarch missing fonts and icons
Product: [openSUSE] openSUSE Tumbleweed Reporter: Francis Therien <frtherien>
Component: OtherAssignee: Yunhe Guo <i>
Status: NEW --- QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None    
Version: Current   
Target Milestone: ---   
Hardware: x86-64   
OS: openSUSE Tumbleweed   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: Screenshot

Description Francis Therien 2024-05-01 23:45:51 UTC
Created attachment 874612 [details]
Screenshot

I've just installed Retroarch on OpenSUSE Tumbleweed, a mostly fresh install of the OS. Text appears in a pixel-type font, and all icons are replaced by a black box. It seems like it is missing assets, or a similar issue. I have attached a screenshot. Here is the output from starting `retroarch --verbose`:

[INFO] [Config]: Looking for config in: "/home/francis/.config/retroarch/retroarch.cfg".
[INFO] === Build =======================================
[INFO] CPU Model Name: Intel(R) Core(TM) i3-4130 CPU @ 3.40GHz
[INFO] Capabilities: MMX MMXEXT SSE SSE2 SSE3 SSSE3 SSE4 SSE42 AES AVX AVX2 
[INFO] Version: 1.18.0
[INFO] Built: Mar 23 2024
[INFO] =================================================
[INFO] [Input]: Found input driver: "x".
[INFO] [Environ]: SET_PIXEL_FORMAT: RGB565.
[INFO] [Core]: Version of libretro API: 1, Compiled against API: 1
[INFO] [Core]: Geometry: 320x240, Aspect: 1.333, FPS: 60.00, Sample rate: 48000.00 Hz.
[INFO] [Audio]: Set audio input rate to: 48000.00 Hz.
[INFO] [Video]: Set video size to: 960x720.
[ERROR] [Wayland]: Failed to connect to Wayland server.
[INFO] [GLX]: GLX_EXT_swap_control_tear supported.
[INFO] [GL]: Found GL context: "x".
[INFO] [GL]: Detecting screen resolution: 1920x1080.
[INFO] [GLX]: X = 0, Y = 0, W = 960, H = 720.
[INFO] [GLX]: Found swap function: glXSwapIntervalEXT.
[INFO] [GL]: Vendor: Intel, Renderer: Mesa Intel(R) HD Graphics 4400 (HSW GT2).
[INFO] [GL]: Version: 4.6 (Compatibility Profile) Mesa 24.0.5.
[INFO] [GL]: Using resolution 960x720.
[INFO] [GL]: Default shader backend found: glsl.
[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] [Joypad]: Found joypad driver: "udev".
[INFO] [DBus]: Suspended screensaver via DBus.
[INFO] [Video]: Found display server: "x11".
[INFO] [PulseAudio]: Requested 24576 bytes buffer, got 18432.
[INFO] [Audio]: Started synchronous audio driver.
[INFO] [ALSA] Using ALSA version 1.2.11
[INFO] [Microphone]: Initialized microphone driver.
[INFO] [Display]: Found display driver: "gl".
[INFO] [Playlist]: Loading history file: "/home/francis/.config/retroarch/content_history.lpl".
[INFO] [Playlist]: Loading history file: "/home/francis/.config/retroarch/content_music_history.lpl".
[INFO] [Playlist]: Loading history file: "/home/francis/.config/retroarch/content_video_history.lpl".
[INFO] [Playlist]: Loading history file: "/home/francis/.config/retroarch/content_image_history.lpl".
[INFO] [Playlist]: Loading favorites file: "/home/francis/.config/retroarch/content_favorites.lpl".
Comment 1 Francis Therien 2024-05-02 22:43:01 UTC
OK, so here is the workaround: In order to obtain assets, including fonts and icons, the user must use the "Online Updater" feature in Retroarch to download and install assets. They are installed in the user's home directory.

I'm not sure what the fix should be, as Retroarch's design seems counter to typical linux packaging. The package can't install assets in all users home directories. If they are installed in /usr, then that prevents users from using the online updater feature as they do not have write access. However the current state is a bad user experience, in my opinion. The user is not even guided to download assets if they are missing at startup. Even navigating the menus to the online updater is difficult due to missing navigation icons.

Perhaps the assets could be included and installed under /usr, and then if a user wants to use the Online Updater, they have to configure the assets directory to be under their home? This config option already exists in Retroarch.