-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
issues with RetroArch #37
Comments
Hi, if Wayland is detected then the X11 build options will be disabled and the binary will not work under an X11 desktop. I will look into the issue to see what is going wrong. Which desktop are you using? I use Budgie which is X11 only and RetroArch builds and works fine on an x86_64 machine. I do have Sway installed as well so I can test RetroArch on that as well. |
I tested the binary built under an X11 environment on Sway with xwayland disabled and it worked fine. I built RetroArch under Sway again with xwayland disabled and it also worked fine. Looks like this may be a rpi issue. I only have an raspberry pi 2 and the last time I tested was under KMS and it worked fine. Do you have any error logs or messages? Thanks |
I forgot to mention that if RetroArch is built under a KMS environment (no desktop) then the binary will not work under X11 or Wayland. I set it this way to create binaries without X11 dependencies for Wayland and KMS only users. |
I use Manjaro with KDE plasma desktop on RPI4. I can confirm that the retroarch binary on Manjaro KDE Plasma on my x86_64 VM works.
Will look at the lr-mess paths later. Ineed, it looks like an RPI/RPI4 issue only. When I can I will do the compiling again and add the log and the params created by the retroarch.sh script. |
I have looked at lr-mess and I don't understand how it can work under RetroPie. The core clearly does not look for the hash folder under ${biosdir}/mame. I tried using the Coleco platform and it does not work due to not being able to find the driver which I assume it looks up in coleco.xml in the hash folder. I have also noticed an issue with how I set BIOS directories for the RetroArch cores, they are getting overwritten because retroarch.cfg is shared per platform by all cores supporting that platform. I don't want to have to patch harcoded paths for each core but I also hate throwing all bios files in a single unsorted directory like the RetroArch & RetroPie default. The lack of flexibility is frustrating! |
Thanks for looking at the path/config issues. Let's first focus on the params issues, agree ? |
I added a picture with the differences between using the function build from the retropie version vs the archypie version. |
Are you building from the setup menu or via ./archypie_packages because it looks like it is picking up the kms flag which is disabling both x11 & wayland. |
Expected behaviour is: The Retropie build supports x11 & kms but wayland is disabled. Looking at the text file screenshot. I don't really want to enable x11 for kms builds because you should not need x11 dependencies for a gui-less build. |
I did all the source installs via the setup menu loading the archypie-setup from the terminal. Question : |
You should be able to run archypie-setup from the terminal and it should pick up the correct flag from XDG_SESSION_TYPE. I might incorporate this RetroPie/RetroPie-Setup#3686 as it looks less error prone than I how I have it set. For now I will set RetroArch to build like Retropie. |
* Don't disable x11 build flags to see if it fixes issue #37
I have removed those disabled x11 options. If you could please update and test it again. Thanks |
Great ! 👍 I tested the update and installed a working retroarch from source on x11. Apparently, other things have been improved now too. Strange though that the platform seems to be detected as kms in the script. Edit : |
That's great thanks for testing. __XDG_SESSION_TYPE is a global variable for archypie storing the contents of the variable display which in turn stores the value of the envar XDG_SESSION_TYPE. It's very hacky and not very robust it appears either! I prefer the way that gizmo98 has come up with, it can be modified for use on all the platforms not just native. I got coleco games working on lr-mess by storing the bios/device file in the roms folder. This is not ideal as it appears software list are like split roms. Not sure if the core can read from mame.ini so paths can be set like MAME standalone. |
What is the solution that gizmo98 came up with ? Btw: Indeed your lr-mess solution isn't ideal. |
Sudo should not be used with ./archypie_packages either. It won't generate a warning though as I could never get the warning to trigger. Sorry I forgot to mention that earlier! The unmerged change to RetroPie is RetroPie/RetroPie-Setup#3686 I have created a new branch to test it. I thought my lr-mess script is the same as the RetroPie one. Does it work correctly in RetroPie by using the mame bios directory? |
Happy to test if you add the changes ;-)
Indeed my initial look was that it was somewhat the same. I checked it manual, in the CLI, with next commands : For a system/driver I used the system specific retroarch.cfg like this ( <system> is for example coleco, I used msx2 ) : So my hotkey_enable_key option works because it's not in the system specific retroach.cfg and therefor, when it redirects to the all retroarch.cfg it is used. For the system_directory that is not the case. EDIT : Will have a look later at how the standard coleco will do. |
I tested the standard coleco, indeed it works when placing the coleco bios inside the roms/coleco path. |
Strange that this core will not find coleco.zip under the mame bios directory. I wonder if other softlists are the same? I will test the other systems set under lr-mess.sh. On another note I am going to abandon the distinction between x11 and wayland. After doing further research there really is no accurate way to determine which session is running. If you want to build a binary via SSH for x11 or wayland it will not work due to the session type being set to tty. I will just set the scripts to build for both so the binary can be used when swapping between the two. I will let you know when I updated this. |
Looking at the RetroPie docs it is how it originally worked with coleco, see here. Good to hear you will try to abandon the distinction between x11 and wayland I think thats a good thing with swapping between them. |
Thanks for looking into that. For some reason when you run a script or command using sudo you cannot retrieve the value for certain envars like XDG_SESSION_TYPE. If I remember correctly you have to change a configuration file in Linux to change this behaviour. The only way I found to circumvent it is the one I used in the script. I never considered the impact on using SSH to run the script and build binaries or on people switching between x11 and Wayland sessions on desktops that support switching. I believe GNOME is going to remove switching by default. For the sake of supporting all possible scenarios I will revert it back to the default RetroPie behaviour for the main branch. So binaries will either be X11/Wayland combined or KMS only. I have created a new branch test_video with modified changes for my own use and testing that retains the distinction between x11,Wayland & KMS. |
Ok, thanks for the info. |
I have now reverted back to how RetroPie works in the main branch. |
If it is ok with you I will close this issue. Thanks |
That's ok. |
I use ArchyPie now on Manjaro 23.x.x on my RPI4.
Found that on this OS somehow the params for building RetroArch are not correctly set.
RetroArch is compiled, however is complaining about not being able to switch resolutions.
In the login screen I can change between choosing "wayland" or "x11".
Tried both and got 2 non working retroarch binaries.
I stayed on "x11" and I used the params generated by the retroarch.sh module-script of RetroPie.
Pasting them in the build function compiled a working RetroArch for me.
There are a lot of params but with the ArchyPie version the x11 option is disabled.
Seems that some params are wrongly disabled resulting in a non working RetroArch.
So when I got a correct RetroArch working I noticed that the hash tables of lr-mess aren't found in the correct BIOS/mame folder.
I am not sure if this set somehow in RetroArch or if this setting has to be found in lr-mess.
Running lr-mess with RetroArch revealed that it uses the folder .config/retroarch/system/mame/hash.
That mame path is also used by lr-mess for more folders.
I tried to email you about these issues however [email protected] or [email protected] don't seem to exist.
The text was updated successfully, but these errors were encountered: