m4dEngi / RemotePlayWhatever

Tiny application that lets you force remote play together any game you have in your steam library including non-steam ones.
MIT License
1.14k stars 40 forks source link

[Request] Flatpak or AppImage support #59

Closed Ihmoda closed 2 years ago

Ihmoda commented 2 years ago

Pretty self-explanatory, but this would make the app much more useable on the Steam Deck, which has an immutable operating system. Users can override the read-only OS, but any new packages added get wiped by subsequent system updates.

Unfortunately, I believe that Steam Deck users will have to rebuild the app every time the OS updates (which is not infrequent).

Adding Flatpak or AppImage support would solve that particular issue.

m4dEngi commented 2 years ago

Due to its nature this application requires rebuilding almost with every client update.

different55 commented 2 years ago

If there's prebuilt binaries, I think just making a statically-linked one might work here? The binary doesn't have to be installed in a system folder to run it, especially if you're just adding it as a non-Steam game.

m4dEngi commented 2 years ago

Since we need to communicate with running steam client instance static build is preferable (i'm not even sure if it's possible with flatpak). But it will still require some rework on open-steamworks side of things.... and its current state is a mess.

Godsbane commented 2 years ago

I think AppImage would be best for sure. they can even self update, so as soon as a new version is built, it updates itself at launch. I think Flatpak is a can of worms i wouldn't open with something like this.

different55 commented 2 years ago

I do believe flatpak can be configured to auto-update. I've got quite a few appimages and none of them update themselves, I even have appimaged running and everything. If that's the goal it's probably easiest to just have the statically linked binary just check for updates, overwrite, and re-exec itself. Skip the whole packaging headache entirely.

Godsbane commented 2 years ago

A binary is 100% a ok with me. I am personally primarily thinking about the deck here. My thoughts on this are around bundling it with emudeck so users can play with their friends easily.

m4dEngi commented 2 years ago

Added AppImage release for testing.

Tested it in VM running latest SteamOS and was able to successfully initiate remote play session, but was unable to join it, could be caused my missing guest modules/drivers on VM side.

Ihmoda commented 2 years ago

Amazing!!! I was able to download and test out the AppImage in desktop mode of the Steam Deck and can confirm that it's working.

I was able to get it to work fully with Cemu - got Xinput coming through and working properly on my Razer Kishi connected to my phone using a shared remote play together link.

It was also working with Yuzu, however I could not get the controls to work. My guess is that this has more to do with how the Yuzu emulator handles Xinput than the AppImage for RemotePlayTogether itself.

Also tried Ryujinx emulator, but wasn't able to actually connect at all with that one.

Wondering if it might be possible to use Python to create a plugin that can allow users to trigger this from game mode using this: https://github.com/SteamDeckHomebrew/decky-loader.

The most ideal scenario would be if we could just enable the native Steam Deck Remote Play Together UI for all games in the library and if it's a non-steam game use RemotePlayWhatever under the hood. That being said, not sure what's possible with the plugin loader, and even just being able to trigger the app from gaming mode would be a big win.

ViViDboarder commented 2 years ago

I was unable to connect when sharing a session from RetroArch. I'm not sure if this would actually have anything to do with the game (or in this case, emulator) or if it's just a fluke.

To add more detail, it all looked good but on the client (Steam Link app on macOS) the spinning loading icon in the bottom right just kept on pinwheeling. I imagine it could be a client issue as well.

jakequi commented 2 years ago

Little update, using the app image and desktop mode I was able to have a friend connect, but their controller was registered as mine. And when I launched Cemu through Steam, the second controller was connected but didn't register inputs

Ihmoda commented 2 years ago

Little update, using the app image and desktop mode I was able to have a friend connect, but their controller was registered as mine. And when I launched Cemu through Steam, the second controller was connected but didn't register inputs

Yeah, setting the second controller is a major pain due to Cemu UI issues in game mode. You will likely need to connect an external keyboard. With the keyboard you should be able to use alt + arrow keys to access the input settings. Definitely tricky and takes some trial and error. Once you manage to get into input settings you need to setup controller 2 as a pro controller. You need go add a controller using the XInput API and select controller 2 (which may not be visible on the select box, but you can still scroll down to it). No mapping is required once you select controller 2.

This isn't related to RemotePlayWhatever, it's just an annoyance of the Cemu UI.

Ihmoda commented 2 years ago

I was unable to connect when sharing a session from RetroArch. I'm not sure if this would actually have anything to do with the game (or in this case, emulator) or if it's just a fluke.

To add more detail, it all looked good but on the client (Steam Link app on macOS) the spinning loading icon in the bottom right just kept on pinwheeling. I imagine it could be a client issue as well.

Yeah same problems with RA. I don't think I've gotten RemotePlayWhatever to work for any Flatpaks come to think of it. Working for Yuzu minus the controls (AppImage) and Cemu (.exe via Proton).

jakequi commented 2 years ago

I

Little update, using the app image and desktop mode I was able to have a friend connect, but their controller was registered as mine. And when I launched Cemu through Steam, the second controller was connected but didn't register inputs

Yeah, setting the second controller is a major pain due to Cemu UI issues in game mode. You will likely need to connect an external keyboard. With the keyboard you should be able to use alt + arrow keys to access the input settings. Definitely tricky and takes some trial and error. Once you manage to get into input settings you need to setup controller 2 as a pro controller. You need go add a controller using the XInput API and select controller 2 (which may not be visible on the select box, but you can still scroll down to it). No mapping is required once you select controller 2.

This isn't related to RemotePlayWhatever, it's just an annoyance of the Cemu UI.

Believe it or not, we did all of this, but up to selecting Controller 2 in Xinput. But, despite Controller 2 being found and all of the binds defaulting, the actual input from the controller didn't work. No inputs were detected. It was a PS4 controller if that makes any difference

Ihmoda commented 2 years ago

annoyance of the Cemu UI.

Believe it or not, we did all of this, but up to selecting Controller 2 in Xinput. But, despite C

Darn. Above steps worked with my Razer Kishi, not sure about PS4 controller.

jakequi commented 2 years ago

annoyance of the Cemu UI.

Believe it or not, we did all of this, but up to selecting Controller 2 in Xinput. But, despite C

Darn. Above steps worked with my Razer Kishi, not sure about PS4 controller.

Just tested on my own network with an Xbox controller. I used an alternate Steam account while on my PC and invited myself from the Steam Deck. My controller was counted under the Steam Deck/host's controller as Controller 2 (not the guest/invite account) and was registered in all emulators as a second controller. However, no inputs could be gotten from the controller. This is strange, but it's definitely progress. I look forward to seeing more on this

EDIT: In Steam Big Picture Mode, both controllers are recognised and so are their inputs in the controller settings. I have no idea

Ihmoda commented 2 years ago

hav

Tested on my PC with an Xbox controller and works. Did you map with your other controllers? I can't remember, but I may have had to map the controls the first time.

jakequi commented 2 years ago

hav

Tested on my PC with an Xbox controller and works. Did you map with your other controllers? I can't remember, but I may have had to map the controls the first time.

I managed to get not only Cemu working, but everything working! If I launch through EmulationStation everything works beautifully

EDIT: Even got it working Deck to Deck with EmulationStation quite smoothly, as long as one is in Desktop mode. you're doing god's work @m4dEngi

Ihmoda commented 2 years ago

Closing as we now have an AppImage. Amazing @m4dEngi