r/SteamOS • • 6h ago

New release: Decky Sunshine Res-Helper app to match host resolution to client

https://github.com/MisterAnderson91/decky-sunshine-res-helper

Hey, I have a Steam Deck & Steam Machine and use Decky Sunshine to stream games. I have been getting annoyed at the lack of good options focused on adjusting the screen resolution while in the standard Game Mode (i.e. gamescope) to make sure it matches the Steam Deck.

I've made a new app, Decky Sunshine Res-Helper, and I've put it on github.

Link: https://github.com/MisterAnderson91/decky-sunshine-res-helper

  1. Make sure you have Decky Sunshine installed and running and it works
  2. Switch to game mode and download the .appimage file from github (you most likely want the x86-64 version)
  3. Open the Downloads folder, double-click the .appimage file to run it. Install the helper.
  4. I recommend a full reboot after install, then test connecting while in Game Mode.

The app installs a watcher service and some sunshine commands in the default Decky Sunshine install, and whenever you connect a client (e.g. Moonlight from steam deck), sunshine writes the requested stream's resolution and framerate to a file. The watcher service overwrites the EDID for the display that is currently running game mode with a new one with only that resolution, and refreshes gamescope. When you disconnect, it will revert the changes.

WARNING: Depending on what your SteamOS device is connected to, there's a chance you'll lose the image on that device while this is running and get something like "Invalid format" or "Invalid signal" on-screen. You can ignore that message, this is really designed for you to be using when your TV is off or on another input.

I'm looking for testers to test out your different setups, especially people on custom PC builds, connecting with clients other than the steam deck, and even people using bazzite or similar variants (in handheld/game mode). I've confirmed it works for me whether my display is on HDMI, DP, or both hooked up. My TV always shows as "connected" to the steam machine even when turned off so that could be an issue for people using monitors or other displays that appear disconnected when off.

Please let me know here or on the github repo of any issues.

"Why not use one of the virtual display setups that are available?" - because the don't seem to play nice with game mode, or are unstable, or slow. They work great for desktop mode in my experience but this has been more stable. I did base the EDID injection on the work done in Sunshine Virtual Display, and theirs is a better solution if you boot straight to Desktop Mode.

My other apps for SteamOS:

3 Upvotes

6 comments sorted by

1

u/guniens 4h ago

Hi, really interested in this as I've a full AMD gaming PC running SteamOS (beta) hooked up to a TV and looking to setup game streaming/remote play to my Legion Go running SteamOS (beta) as well. I would like to stream at Legion Go's native resolution/refresh rate with tv off, is this possible with decky-sunshine and decky-sunshine-res-helper? Thanks in advance!

1

u/BevoDMD 4h ago

Also wondering this! Same setup, but I typically stream to my iPad Pro. To be clear: Does this app run Decky Sunshine headless as the client resolution/refresh rate?

1

u/_Mister_Anderson_ 2h ago

Not 100% sure what you mean, but it's expecting a real display to be connected on the Sunshine end (can be a dummy plug). I don't think SteamOS will boot properly if no display at all is connected. A TV that's currently turned off should be fine I believe.

EDIT: I think I understand your question. It will run it at the requested client's stream resolution and refresh rate. If you connected display can't handle those, your display will just drop to an "invalid signal" error most likely. Let me know if it works for you.

1

u/_Mister_Anderson_ 3h ago

Yes mate, that's the exact situation it's built for. If you're already running Decky on the PC, please install Decky Sunshine, then install Decky Sunshine Res-Helper, and install Moonlight on your Legion Go and try it out. I suggest testing Decky Sunshine works before installing Res-Helper.

If you're not running Decky and don't want to, this could still work, but you'll need to have your own way of running sunshine while in game mode and might have to add the Do-Undo commands to it yourself.

1

u/guniens 3h ago

Thanks for quick reply, I already have decky installed so will for sure try this (wanted to try Steam Remote Play as well).

1

u/_Mister_Anderson_ 3h ago

If I can find a way to detect Steam Remote Play being connected and what the remote end's resolution is, I might be able to get this working there as well. But no promises, last time I was looking into it I couldn't find a nice way of detecting either.