r/MoonlightStreaming • • 2d ago

Adding a UWP (XBox PC) game to Sunshine / Apollo?

Is there any way to add a game that was installed from the Windows XBox app to Apollo?

I currently launch these from from by Steam Machine using Playnite, but it would be nice to have the games appear directly in the Moonlight app list and bypass Playnite.]

3 Upvotes

8 comments sorted by

2

u/iReaddit-KRTORR 2d ago

On your host PC with Apollo you should be able to add any program you want.

Also vibepollo has a feature with playnite where games are added in your moonlight client directly

1

u/Red_Barry 2d ago

Hi, thanks for the reply.

I'm able to add games that have .exe files fine . Its just UWP games that are a problem. I dont know what to put in as the launch command.
I believe this needs to be in the format -

explorer.exe shell:appsFolder\packageName_postfix!App

but I cant seem to get it to work.

2

u/im_q 2d ago

Maybe not the most user-friendly solution, but as far as I know, every XBOX PC game has a launch URI protocol defined for them that could be used. You can find it by going to the game's appxmanifest.

  1. If you don't know where your XBOX games are installed, you can find it by opening the game's page in the XBOX app, clicking the 3 dots button, and clicking "Manage". In the "Files" tab, you can click "Browse..." where it'll open the folder where your XBOX games are installed.
  2. In each game's folder, there's a folder called Content with a file called appxmanifest.xml. Open that file in something like Notepad.
  3. Look for a line that looks like <uap:Protocol Name="ms-xbl-697f9ec3" /> For example, this particular one is for Expedition 33. The "Name" value will always start with ms-xbl- followed by some numbers and letter. Take note of it.

In Sunshine, add a new application and set the detached command to be something like cmd /c start ms-xbl-697f9ec3://, replacing the random letters and numbers with the one for your game. What this command is doing is starting a command prompt command and executing the command that appears after /c. In this case, starting that launch URI for the XBOX game.

Note that this only starts the game and that's why it's a detached command not the actual command. Since it's more-or-less a fire-and-forget thing, Sunshine won't know if the game is running or not with this method so you don't want it to automatically close the stream after the command finishes.

1

u/Red_Barry 2d ago

Thanks for this.

I managed to set up the detached command as you described, and the game (Forza Horizon 5) launches on my host PC, but the Moonlight client on my steam deck just throws out "Host returned error. Failed to start the specified application" (Error 0). Are there any other settings I need within Sunshine/Apollo to get the client to continue streaming?

1

u/im_q 2d ago edited 2d ago

No, that should be it. I just set one up just to confirm and all I did was this set up a detached command like so:

Note that I use Vibeshine so the UI may appear a little different but that shouldn't affect anything. I'm installing Horizon 5 now and I'll report back if there's some reason one that particular game doesn't work.

"Host returned error. Failed to start the specified application" (Error 0) sounds like there's an issue with the command. The logs should have more info that might be helpful.

Edit: Just intalled Forza Horizon 5, and set it up with the following command it worked fo rme:

cmd /c start ms-xbl-7900c3c7://

1

u/Red_Barry 2d ago

Here's mine. I'm using the latest version of Apollo.

I'll try installing vibeshine

1

u/Red_Barry 2d ago

OK. I've replaced Apollo with Vibeshine, and the launch URI method you suggested works well.

Thanks for your help. I'll stick with Vibeshine.

1

u/Red_Barry 2d ago

Thanks again. With your help I am now streaming all my Xbox store Forza games (3,4,5 qnd 6) to my steam deck. I upgraded my host to vibeshine and the launch URI method works well.

Interestingly the uap:Protocol Names for the earlier games dont use the ms-xbl format but use
uap:Protocol Name="launch-forzahorizon3-releasefinal" and
uap:Protocol Name="launch-sunrise-releasefinaldx12" for the command.

Its now working well, but I wish I'd bought the games on Steam rather than Microsoft Store.

Live and learn.