libretro / RetroArch

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

Very strange linux default folders and no core downloader #14567

Open Ever17lab opened 1 year ago

Ever17lab commented 1 year ago

Description

Very strage linux default folders and no core downloader

Expected behavior

AppImage (or navite RA) works without system folders Core downloader works

assets_directory = "~/.config/retroarch/assets/"
audio_filter_dir = "~/.config/retroarch/filters/audio/"
libretro_directory = "~/.config/retroarch/cores"
libretro_info_path = "~/.config/retroarch/cores"
video_filter_dir = "~/.config/retroarch/filters/video/"
assets_directory = "~/.config/retroarch/assets/"

Actual behavior


assets_directory = "/usr/share/libretro/assets/"
audio_filter_dir = "/usr/lib/x86_64-linux-gnu/retroarch/filters/audio/"
libretro_directory = "/usr/lib/x86_64-linux-gnu/libretro/"
libretro_info_path = "/usr/share/libretro/info/"
video_filter_dir = "/usr/lib/x86_64-linux-gnu/retroarch/filters/video/"
assets_directory = "/usr/share/libretro/assets/"

No core downloader, but online updater is working.

Steps to reproduce the bug

  1. Download stable https://buildbot.libretro.com/stable/1.12.0/linux/x86_64/RetroArch.7z
  2. Unpack to clean folder (no config)
  3. Launch

Bisect Results

Don't know

Version/Commit

Environment information

hizzlekizzle commented 1 year ago

I'm not getting any of that from the AppImage. When I download it, it tries to use the portable 'home' directory that it comes with. If I delete/move that directory, it falls back to using my regular user's config file (i.e., ~/.config/retroarch/retroarch.cfg).

I suspect you installed a distro package, which uses those paths you listed and breaks the online updater, at some point, and now that config is living in your $HOME. If you rm -rf ~/.config/retroarch (i.e., nuke your existing RetroArch directory and everything in it) and then re-run the AppImage, it should act as expected.

Ever17lab commented 1 year ago

Thanks, hizzlekizzle

I suspect you installed a distro package, which uses those paths you listed and breaks the online updater, at some point, and now that config is living in your $HOME.

It's true, I've installed 1.7.3 version from Mint Software Manager

Flatpak wants to spend 3.2 GB of storage and 1.2 GB to download. Oh no ~_~

image Even I can fix paths manually, no core downloader. But cores works.

image

So, some of paths are ~./config"

Some of them are "/usr*"

Same situation was on my another laptop with mint, some months ago, I thought it was fixed.

My retroarch.cfg after clean launch (I renamed it) retroarch.cfg.txt

PS: 1.7.3 retroarch and Retroarch-assets is removed

Radon86222 commented 1 year ago

If I'm correct, this happens on Linux because they're trying to get you to use your package manager to install cores for RetroArch. IMHO don't bother, just fix the dirs to something more normal, such as the dirs it makes in ~/.config/retroarch and manually re-enable the core downloader in Settings > User Interface > Menu Item Visibility > Core Downloader.

Ever17lab commented 1 year ago

manually re-enable the core downloader in Settings > User Interface > Menu Item Visibility > Core Downloader.

It's craziness, it enables core downloader. I thought it just disappeared. Also, if you press start button (set default setting), position is 'on'. But if you delete cfg file, position is off. Maybe it's because RA sees it can't write to image Very strange behaviour.

i30817 commented 1 year ago

There is nothing strange here. If you use distro packages they don't want you downloading random executables from the internet, so they disable the core downloader. The distro package maintainers changes the code to use those readonly paths and that has nothing to do with this upstream.

That's all it is. If you want those, either use the app image or build RA yourself, or do the workarounds mentioned here.

They're correct even. If a program depends on updates not from the distro vetted packages, it can't be distributed by the distro because people would rightfully blame the distro if one of those updates had a malicious executable. So they don't allow it in their package and if you want the latest bleeding edge, you have to use something else.

They allow to install app images because those are (supposedly) sandboxed enough that they can't compromise the whole system (although i suppose the RA appimage can read the user home just fine to function).

Radon86222 commented 1 year ago

This entire issue is unfortunately more of an downstream issue that should be posted to the distro's proper authority on the RetroArch package. There's not much that can be done on this side, the distros are the ones who choose to modify RA in this way. I wish they wouldn't though, it just confuses new users. And also most of the cores on those are horribly out-of-date.

Ever17lab commented 1 year ago

If you use distro packages

I use AppImage official AppImage from libretro buildbot. May be Linux Mint in not supported, too many Linux distros, but it's quite popular.

hizzlekizzle commented 1 year ago

The AppImage works fine with linux mint, but if you already have installed a distro package, the retroarch.cfg it created with the funky settings will still be used with the AppImage unless you use the portable home directory it comes with.

Ever17lab commented 1 year ago

he AppImage works fine with linux mint, but if you already have installed a distro package, the retroarch.cfg it created with the funky settings will still be used with the AppImage unless you use the portable home directory it comes with.

In my case I have portable mode & strange default settings ┐(︶▽︶)┌. With latest night build too.

gouchi commented 1 month ago

Is it still an issue ?

Please try to make a test by resetting your ra configuration directory with something like

mv ~/.config/retroarch ~/.config/retroarch.old

Thank you.