libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.06k stars 1.81k forks source link

Menu Screensaver animation not working on rpi2 & rpi3 #14799

Open pasnox opened 1 year ago

pasnox commented 1 year ago

Description

The menu screensaver that should start after the menu screensaver timeout is not working on rpi2 and rpi3. Especially, OFF mode is working (black screen) but the snow, star field and vortex animations does not works at all, it fallback to OFF mode instead.

Expected behavior

Animations works

Actual behavior

Black screen

Steps to reproduce the bug

  1. Enable menu screensaver snow effect
  2. Set menu screensaver timeout to 10seconds
  3. Wait 10seconds
  4. Screen goes black until an input is pushed

Version/Commit

You can find this information under Information/System Information

Environment information

gouchi commented 1 year ago

According to this feature PR,

The animations are dependent upon the font file assets_dir/pkg/osd-font.ttf. Most platforms should have this installed by default. If the font file is missing (or on platforms without TTF font support), the animations will still run, but all glyphs will be replaced by * from RA's internal bitmap font.

So you should at least have * and we are using RA fonts assets.

pasnox commented 1 year ago

Yes, I did read the screensaver code and concluded that even if font / freetype was a problem, I would still have this * fallback, still it's not happening, and no error is triggered :( I will see if LibreElec allow me to install gdb and see why it's not working, but if I can't I have no idea on how to make it works.

gouchi commented 1 year ago

Do you reproduce the issue with RPiOS or Armbian ?

pasnox commented 1 year ago

I can reproduce on official lakka os and self retroarch build on official libreelec

gouchi commented 1 year ago

I can't reproduce this issue using latest nightly on Tinkerboard.

pasnox commented 1 year ago

That's not a RPI based board, but I will have a look again with master head

pasnox commented 1 year ago

That's still an issue using master HEAD as of today :(

pasnox commented 1 year ago

According to this feature PR,

The animations are dependent upon the font file assets_dir/pkg/osd-font.ttf. Most platforms should have this installed by default. If the font file is missing (or on platforms without TTF font support), the animations will still run, but all glyphs will be replaced by * from RA's internal bitmap font.

So you should at least have * and we are using RA fonts assets.

I created $HOME/.config/fontconfig/conf.d/05-retroarch-fonts.conf and put the content inside, but still no luck after reboot :(

ToKe79 commented 1 year ago

Hi @pasnox the root of the issue might be due to the change of assets storage location. Recently there were some changes on Lakka side that changed the path of the assets from /usr/share/retroarch-assets to /usr/share/retroarch/assets. The update process does not make any changes to existing config file in /storage/.config/retroarch/retroarch.cfg, so the config file can still include old/non-existent paths. If you have a chance to edit the mentioned config file (e.g. connect via ssh and edit using nano), I'd suggest to change all paths that refer to retroarch assets to /tmp/assets (overlay mount). This value is also used for assets_directory. Also do not forget to stop retroarch before editing the config file (i.e. systemctl stop retroarch), because running instance of retroarch might overwrite your changes during quit/shutdown (if set to save settings on exit). After you are done with editing and saving the changes to the config file, you can start retroarch (i.e. sytemctl start retroarch).

pasnox commented 1 year ago

Thanks for the suggestion, but after some debugging, it seems the issue is caused by rendering bad font glyph, not the font because if it was a font issue, RA would throw warnings. I have changed the animation background color from black to red, and we then can see the animation running, but each glyph are just black boxes. I don't use anymore Lakka so I will not be able to test, but the same issue is visible on LibreElec.