-
Hello. I'm interested in a way to natively develop achievements on GNU/Linux and I can image a lot of others are aswell. To make RALibretro compatible with Linux, would the hardest part be to change the UI to something like QT or are there other major parts that would need to be changed? Would it make more sense to write a new program from the ground up instead? I would like to help development-wise, but unfortunately I have no programming experience (I do know basic concepts). I also don't know how to approach understanding the source code of RALibretro/RAIntegration. Can you please give me some pointers? |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 2 replies
-
This is largely redundant with #763.
Several people have had luck running it in WINE.
The DLL is heavily tied to the Windows API currently (raw API calls - it's not even using MFC or any other abstraction layers). The hardest part is eliminating the Windows API calls. Over the last several years, I've separated most of the logic from the UI using a custom MVVM implementation. It might be feasible to start providing a QT (or similar) view layer as an alternative. There's probably going to still be some shenanigans around the overlay as I'm not sure if QT provides a way to put a semi-transparent window over the top of an existing non-QT window.
That's almost never a good idea. Doing so stalls development on the already available product, and maintaining two codebases during the rewrite can cause functionality to become out-of-sync as changes made in one inevitably get forgotten in the other. The general process would be to create a new version of the DLL that uses QT on Windows, converting one window at a time. Then you'd have to convert the VS project to a Makefile so you could create an .so. Then you'd have to modify RALibretro to load and interface with the .so. And finally, you'd have to update RALibretro to be able to download the .so from the server.
Then you'll probably find it difficult to even convert the simplest window to QT. |
Beta Was this translation helpful? Give feedback.
-
I have a Linux machine and RALibretro runs fine for me through Wine. I don't recall stumbling upon crashes nor features not working (although I never used it for any serious dev work either). Is there anything substantial to be gained from a native version instead? |
Beta Was this translation helpful? Give feedback.
This is largely redundant with #763.
Several people have had luck running it in WINE.
The DLL is heavily tied to the Windows API currently (raw API calls - it's not even using MFC or any other abstraction layers). The hardest part is eliminating the Windows API calls.
Over the last several years, I've separated most of the logic from the UI using a custom MVVM implementation. It might be feasible to start providing a QT (or similar) view layer as an alternative. There's probably going to still be some shenanig…