lutris / lutris

Lutris desktop client
https://lutris.net
GNU General Public License v3.0
7.56k stars 671 forks source link

Detect presence of PS2 bios files #3034

Open mYnDstrEAm opened 3 years ago

mYnDstrEAm commented 3 years ago

It would be very useful if Lutris also carried out some configurations of runners after installing them from "Manage Runners" to make sure that they are a) well-configured for the system and b) work as in "plug&play" without any further setup required.

System-dependent configuration

For system-dependent configuration Lutris could detect information about for example installed graphics drivers, used hardware (graphics card, CPU) and more to make configurations to make the runner fit the system and run with good performance (these settings could later be automatically slightly altered depending on the game).

Making sure the runner is set up properly and can run games

Where automatic configuration isn't possible yet (without changes to external software) the user could be guided through a short setup after installing a runner.

It would be best if the Lutris project aggregated which necessary changes are required in different cases to automatically configure the runner/emulator and/or the system so that the runner is properly set up for running games.

One issue I had with the later was that when I installed PCSX2 via Lutris on one of my Debian10/KDE machines PCSX2 still needed two things to be configured in order to work instead of either, preferably, working right away or guiding the user through a setup:

The configured GS plugin file was not found [...]/lutris/runners/pcsx2/plugins/Please Configure Press Ok to go to the configuration panel

It may not be possible to automatically solve the first issue yet. This is why it would need a short setup process (which at first could be a simple message window asking the user to put file x in directory y to make sure the PS2 emulator works).

From #2285 it looked like I only needed to have libOpenGL0 installed - but I did have it installed on the machine. However, I did have the GS plugin file on another machine so I simply copied these two missing files from the other machine into the folder of the PCSX2 plugins ([...]/lutris/runners/pcsx2/plugins):

libGSdx-AV2.so

libGSdx-SSE4.so

As of right now, I don't know why these two files were present on one machine but not the other / how I got them onto the machine. Maybe this is something that could be automatically configured. And if it can't yet please show a short setup that tells the user what the problem is and how to solve it to make it easy to set up the runners.

These two issues reappeared on the machine from where I copied the files after updating Lutris today.

strycore commented 3 years ago

It would be very useful if Lutris also carried out some configurations of runners after installing them from "Manage Runners" to make sure that they are a) well-configured for the system and b) work as in "plug&play" without any further setup required.

This is what Lutris is supposed to do, you ran into an issue for one runner. No need to consider the whole project broken because of the issue you ran into.

mYnDstrEAm commented 3 years ago

Okay, that's great then. Sorry for being not more specific about the PCSX2 issue. I'll try to investigate why this happened further and update the issue if I find out. However, whenever I installed PCSX2 with Lutris the two things listed above had to be configured and were not shown in some kind of setup or message window after installing the runner. So maybe things could be made easier for users this way. I (intentionally) assumed other runners to potentially have similar issues based on this and that it does not carry out a system-dependent configuration that configures many of the graphics settings depending on many system-variables because some games did not work well with the preconfigured settings. Thanks for clarifying.

strycore commented 3 years ago

There are 2 different things indeed. First is that we need a BIOS check for PS2. We have one for other consoles but we need to make it more generic so it's usable across all emulators. Then there's a packaging issue in the PCSX2 runner itself. I think I gave this a look a while ago and couldn't figure out a fix. I should give it another look.

strycore commented 3 years ago

I have released a build of the most recent devel version of PCSX2. With the correct libraries installed locally, the GL plugin works without issue. The runner will display a message when libraries are not detected (tracked in #3083 ). I still want to add a BIOS check, even if the emulator has one integrated.

alx242 commented 3 years ago

I still don't get any GL plugins installed when I installed this runner. Is there some dependency that is required for it?

legluondunet commented 1 year ago

We could give a message to user when they install runner and PS2 bios are not present:

_PCSX2 needs bios files to emulate PS2 games. Needed bios files: SCPH-70004_BIOS_V12_EUR_200.BIN SCPH-70004_BIOS_V12_EUR_200.EROM SCPH-70004_BIOS_V12_EUR_200.ROM1 SCPH-70004_BIOS_V12_EUR200.ROM2 You need to place this files in ~/.PCSX2

It is just an example based on Retroarch doc, exact files names need to be verified and message improved.

@stryder: where do we have to add code and include verification routine? runner/pcsx2.py ? We could verify that bios files are present in ~/.PCSX2 each time before to launch PCX2. If not present, we do not launch PCSX2 and show informative message. An option to disable this routine could be welcome if user prefer to store bios files in another place and set the place directly from PCSX2?

strycore commented 1 year ago

@legluondunet check out the file lutris/util/retroarch/core_config.py. This is where I've started writing down BIOS list and hashes. In the case of PCSX2, it can be both a standalone emulator or a retroarch core so we would need to have some shared code to handle both.