holy shit Linux is fucking awful and every moment trying to do anything in it is excruciating
I set myself one simple task:
play Super Smash Bros Melee in the Steam version of RetroArchI want to use Steam RetroArch instead of native RetroArch as a non-Steam game for the sake of cloud saves and other Steam-related conveniences, it's nice, it should work
I install Steam RetroArch and Dolphin is not among its DLC cores, you can't just run it out of the box
so I look around online for how to add non-official cores to the Steam version, and find out that the easiest way to do this is to install regular RetroArch on your computer and then copy the cores over
I already have RetroArch installed so I grab Dolphin and put the files on a flash drive, and connect it to the Deck...it turns out Windows cores are .dll files and Linux cores are .so files, now that's my own dumb mistake for assuming any files could make the jump between Win and Linux
so I have to install Linux RetroArch to use those cores instead, and I do this through Discover which uses Flatpak
along the way I am poking around at SteamOS's Linux and either it's Valve's fault or KDE's fault or Debian(? Arch Linux?) or some combination of everything, but it just feels buggy as hell with a million little imperfections, like when I open Steam's virtual keyboard for some reason it mirrors a chunk of the desktop elsewhere for a second before the actual keyboard drops into place, and every few minutes I keep getting pop ups that my internet connection disconnected and then immediately reconnected, and the directory structure for everything is completely bonkers
I have to google where the working directory of RetroArch actually is, I can't even find it right now, I think the app is located at var/lib/flatpak/exports/share/applications? what the fuck is being exported or shared here? and then there are a million satellite folders to get lost in which lead nowhere like var/lib/flatpak/app/org.libretro.RetroArch/x86_64/stable/active/files etc. etc.
ok wait I just found it again, the actual place is home/.var/app/org.libretro.RetroArch/config/RetroArch/cores, again what is the deal with this path? config? this isn't a folder with a couple configuration options, it's the whole damn program with your downloads and screenshots and save files and everything
meanwhile guess where RetroArch installed by default on Windows? C:\RetroArch-Win64, and literally everything is right there with no fuss
so I go in there and I copy dolphin_libretro.so over to...googling again...run/media/mmcblk0p1/steamapps and I can find Steam's RetroArch from there, and paste it in
games still don't work, it appears that RetroArch has no idea what the core actually is or what files are associated with it, so I do some more research online and find out that I need .info files alongside the cores to provide that info, and I find a helpful link to
https://github.com/libretro/libretro-core-info as a mirror of those needed files
so I download it and put it where it needs to go and it still doesn't work, which has to do with github not being that simple to download from, instead I need the raw text of the file saved into a .info file, so I click the button to copy the raw text and THAT doesn't work, some unspecified error
well I don't want to do text editing on the Deck with a virtual keyboard anyway so I figure what I probably should've done in the first place is get the .info files from the existing Linux install and put them in the Steam install, so I go looking for them and they're not there
where the fuck are the info files, again I reiterate on Windows they are simply located at C:\RetroArch-Win64\info
but when I go to home/.var/app/org.libretro.RetroArch/config/RetroArch there is no info folder
so I open RetroArch to look in the directories section
by the way you can't do anything but mouse around and click unless you have Steam's interface actively open to somehow enable other buttons to work, like those in RetroArch, and half the time it gets stuck and just won't fucking open at all so you're boned, again is this Valve's fault? Linux's fault?
I restart the Deck so I can actually open Steam so I can actually push buttons within RetroArch, and then I get to the directories section
oh ok it's in app/share/libretro/info
except it's not,
there is no root app folderwhat the fuck is this file path?
I use search functions to look for app/share, oh I guess you can't do that, ok I just search for app then, oh there are a bunch of those and none of them are the right one
I google around and I find this page describing my problem:
https://github.com/flathub/org.libretro.RetroArch/issues/102But if I look for something like /app/share/libretro/info, I can't find anything under ~/.var/app that's even remotely like it.
Which suggests to me that these things probably aren't expected to live under ~/.var/app at all.
I then looked in my users whole home directory and something like /app/share/libretro/assets/ seems to have something much more like a match under:
~/.local/share/flatpak/app/org.libretro.RetroArch/x86_64/stable/a437b0ef4eb1f1563d84a8ec881b9f19eb9fb84c06b35ecafe4ce85d5aad918a/files/share/libretro/assets
I looked at a few more and they also seem to have matching things under ~/.local/share/flatpak/app/org.libretro.RetroArch/x86_64/stable/a437b0ef4eb1f1563d84a8ec881b9f19eb9fb84c06b35ecafe4ce85d5aad918a/files
oh ok so when Linux says files are located in one path they're actually in a completely fucking different place, I see
except I don't have the path this guy has, when I check home/Deck/.local/flatpak I hit a complete dead end, there's no app folder there
so I fuck around for another while and finally discover where the .info files are located
they are in var/lib/flatpak/app/org.libretro.RetroArch/x86_64/stable/[shitload of numbers and letters]/files/share/libretro/info
so easy to find! Linux is a joy to use!
I copy the Dolphin .info file to Steam's RetroArch, and then Dolphin works
except I had a minor panic because it ran super shitty until I realized it's because I locked the Deck to 30 FPS and emulators need to run at 60
this whole process took 1 minute in Windows, and hours of fucking around in Linux