How to Make Amazon Luna Work on Steam Deck (and Linux PC)

By

I recently tested Amazon Luna on Linux and Steam Deck. While my experience was better than I expected, it was not without hurdles, as Linux is not well-supported, and you will need to do a few tweaks for it to work properly.

During my first game session on Linux, before the tweaks, there was a message about the ESC and other special keys not working, and I tried to play anyway. Just to get my game closed when I tried to crouch while moving forward (CTRL+W).

Other worries:

  • I expected heavy latency because I live in a region far away from Amazon Servers, but it was bearable for most games
  • Different from Xbox Cloud Gaming, Amazon Luna checks and blocks the access if your user agent says Linux
  • You will need to tweak some permissions for your browser to recognize the controller.

Here I will show how to get it running on Steam Deck and on Linux in general, overcome the hurdles I faced, and share some of my impressions with games and features.

What is Amazon Luna

Amazon Luna is a Game Streaming service, instead of running a game on your hardware, it runs on Amazon servers, on your side it just gets the inputs and plays a video of the game. It can be an option for people on the go and with weaker hardware, like old computers and mobile phones, but make sure to have strong and stable internet and Wi-Fi on those devices. It seems to work with FireTV as well, but I do not have the device to test.

Luna offers a subscription similar to Prime Video, with channels subscriptions at different prices. The options currently are:

  • Luna+ : Amazon collection of games, it is small presently
  • Ubisoft+ : A even smaller list of games from Ubisoft at almost twice of Luna+’ price
  • Jackbox games: Jackbox party games
  • if you are an Amazon Prime member, you can play a rotation of games at no additional costs
  • Link Ubisoft account to play the games you already own. You will need a Prime or Luna+ account to play them

You can also stream to Twitch, while there are not many features as OBS, it is solid and easy to set up

With the Couch feature, like steam remote, friends can play without paying. They will need an Amazon account, and you will send them a code, so they can join your session.

Getting it to run

The steps are similar to the Xbox Cloud Gaming and you can use it for reference, except that we will use Luna’s URL, and we need to spoof the user agent, as Luna seems to be checking for Windows or macOS.

By following here, you will:

  1. Install a Luna compatible browser
  2. Give the browser access to your gamepad/controller
  3. Add the browser to Steam for easy access.
  4. Enjoy and have fun.

This guide is similar for GeForce NOW and Xbox Cloud Gaming(XCG), you just need to update the URL. And XCG would not need to trick the user agent.

Installing a browser.

I used a browser I do not use at all, Microsoft Edge. It also works with other Chromium-based and with Firefox, as we are going to spoof the user agent.

You can install it using flatpak on Linux. With flatpak installed, just run the command at the end of this page using your terminal.

On Deck:

  1. Go to Desktop Mode, press STEAM button, then Power > Switch to Desktop
  2. Open Deck Discover Software Center from the taskbar.
  3. In Discover Software Center, select Applications > Internet > Web Browsers.
  4. Find Microsoft Edge and select Install

Changing user agent

First, we need to fool Luna thinking we are using Windows. Depending on the browser, you can use an add-on or extension to change the user agent.

If you just want to test it once on your Linux, after installing your browser, go to the terminal and run the Test command for Linux: flatpak run com.microsoft.Edge --kiosk "https://luna.amazon.com" --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.54"

Notes:

  • Change com.microsoft.Edge to com.github.Eloston.UngoogledChromium or any other browser you might prefer
  • Change https://luna.amazon.com to the URL of your Amazon account (Canada or UK)
  • Because we are now using a static user agent, after a while Amazon will complain your browser is too old, that is a sign for you to update the user-agent string with a most recent one

Making your life easier / Starting from Steam

Running the test command from terminal can be a burden, even more on Deck. I recommend adding the browser to Steam, and adding the parameters in the Launch Options

On Linux PC.

  1. On Steam, select Add a Game > Add Non-Steam Game…
  2. Find and add Microsoft Edge from the list
  3. Now, find Microsoft Edge in your Steam Library. Right-click > Preferences
  4. On launch options, at the end after @@u @@ add this: --kiosk "https://luna.amazon.com" --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.54"

It should look like this: "run" "--branch=stable" "--arch=x86_64" "--command=/app/bin/edge" "--file-forwarding" "com.microsoft.Edge" "@@u" "@@" --kiosk "https://luna.amazon.ca" --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.54"

On Deck, Desktop Mode,

  1. Right-click (L2) Application Launcher > System > Microsoft Edge
  2. Select Add to Steam
  3. Now, find Microsoft Edge in your Steam Library. Right-click(L2) > Preferences.
  4. On launch options, at the end after @@u @@ add this: --window-size=1024,640 --force-device-scale-factor=1.25 --device-scale-factor=1.25 --kiosk "https://luna.amazon.com" --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.54"

Optionally: --window-size=1280,800 --kiosk "https://luna.amazon.com" --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.54"

Notes:

  • You can use a service like Pastebin to save the commands you need to copy into your Deck from your computer
  • Change com.microsoft.Edge to com.github.Eloston.UngoogledChromium or any other browser you might prefer
  • Change https://luna.amazon.com to the URL of your Amazon account (Canada or UK)
  • Because we are now using a static user agent, after a while Amazon will complain your browser is too old, that is a sign for you to update the user-agent string with a most recent one

Using gamepad / controllers

If you installed your browser with a flatpak (Deck Discover Software Center) your gamepad will not work. As Edge will need access to the controllers with udev read permission.

You can add support to it by using Flatseal, and adding to Filesystem > Other files /run/udev:ro

or running on terminal flatpak --user override --filesystem=/run/udev:ro com.microsoft.Edge

On Deck, to access the terminal:

  • On Desktop Mode, select Application Launcher > System > Konsole

if your browser was open, close it and when you run the Test command or start it from Steam, Luna will show a message that your controller is ready for use.

Notes:

  • Your controller MUST be plugged before starting Luna
  • Change com.microsoft.Edge to com.github.Eloston.UngoogledChromium or any other browser you might prefer

Luna Controller

I do not have a Luna controller, nor intend to buy one, as Luna is not my main source for games. I tested it on the Deck and Linux with DualSense controller, they are heavily optimized and most games work fine with either keyboard or gamepad.

Depending on your stack of hardware, OS, Bluetooth, controller, you might experience more latency on your input. Making the Luna controller ideal (especially for phones and tablets). The Luna Controller has the potential of cutting the middle man, if you have a strong Wi-Fi and internet, you can connect it straight to Amazon game servers and shave a lot of the latency.

CONNECT VIA WIFI – Connects directly to Amazon’s custom game servers using Cloud Direct technology for low-latency gameplay.

The “Official Luna Wireless Controller” can be acquired directly from Amazon.

Experience

There is no Amazon Server anywhere near me, but the latency was only a problem in a few games, usually older or fighting games, and if you play a newer game on your hardware, then try the same title with Luna right away it might feel a bit off, but otherwise it was a pleasant experience.

I tested the games by playing solo, with friends local and also using the couch feature. I plugged four controllers and all worked. Luna identified the DualSense, but the games treated all the inputs as any generic controller, so you will have no access to gyro or button sensitivity.

Controllers worked better in general, even helping with latency perception. I tried using a mouse for shooters, and it felt a bit janky, like I was playing with those old mouse in which the ball was not cleaned in a while. The keyboard was not great either, after a while every key press would bring the desktop forward.

If you are playing on Steam Deck, I recommend you to map the back buttons to SHIFT+TAB (Luna menu) and SHIFT+F2(Ubisoft).

Rainbow Six Siege

I noticed that I could bring my Ubisoft games to play, since I started using Linux exclusively I haven’t played For Honor and Rainbow Six Siege(R6S). Sadly, For Honor was not available, but R6S was.

Besides the game menus changed a lot since my last try, with a lot of layers, nonsense and a vast chore list, it plays fine. I would recommend you to test your latency against bots before joining competitive matches, as you have to take in account the delay from your device to the Luna Servers and from there to the Siege Servers.

Sadly gyro was not an option to help fine tune the aim with a controller, and the mouse and keyboard had the issues mentioned earlier. The initial loading took longer than other games.

The Legend of Heroes: Trails from Zero

Works fine, probably the best of the bunch, you can barely feel any lag, but even if it happens it does not affect much.

The first time I tried to fit the gameplay during a quick pause in my day, 10 minutes after starting a new game and I had yet to do anything. I had to stop. I was thinking it was some sort of novel or machinima, but the game description said otherwise, so I decided to time my second attempt.

New Game, start timer. Exposition, exposition, long intro, shots around the city, exposition, exposition… I was about to give up at 16 minutes of exposition when they started showing their weapons to each other, I imagined soon I will be able to play. At 17 minutes, the tutorial started =p.

Note for future game devs: no mater how much you love your story, give the players some time to get involved using GAMEPLAY before regurgitating non-interactive lore on top of them. Chances are that after playing for 20 hours, I would bathe on a 20-min exposition and love it. The game is good with interesting combat mechanics, like in the image above I have to fight while protecting two suicidal kids running around monsters, but an RPG is not the same if you just skip past through all of the story just to fit in a busy day, also the voice-over is quite nice.

Resident Evil 2 (2019)

The RE2 remake impressed me a lot, the low perceived latency made me think Luna engineers put great effort to make this game to feel right. I would love if they publish something detailing their work. On the same note, I would also love to read about speed runners and professional players, as I wonder if my perceived latency with this game is because of my low familiarity compared to other titles from this list.

Earthworm Jim ½

Playable, but the input delay was the most noticeable of the bunch. I wonder if the game didn’t receive the same treatment as the other titles, or I am just used to eat dirt.

King of Fighters ’97

I played this game a lot in Neo Geo Arcades, I was one of the worst in there. So, I would like to blame the latency on my poor performance here.

Jackbox Party 3

It worked really well, as everyone will have to connect to jackbox.tv to play anyway.

Final notes

I am impressed with the quality of game streaming, but I don’t think it is time for me to fully adopt it yet. I will still come back to test things as they add more servers and optimize game input latency, also it seems worthy paying for a month for when I don’t have gaming hardware available or when having a gaming party with friends.

That said, I encourage you to try game streaming services if those are available in your area, as your experience might differ substantially from mine, a few states away from the closest server. Usually, they offer some sort of free tier to test, in the case of Luna, you get a free first week to try Luna+, and if you have Amazon Prime, you can also play a selection of games each month besides access to your Ubisoft games at no additional cost.

If you do so, please share your experience in the comments here, on the linked Reddit or on the linked Hacker News.

What is next? Probably try the gaming streaming services you recommend in the comments if they are available in my region.

Troubleshoot

Unsupported / Old Browser

Amazon might report that your browser is too old, that means the --user-agent needs to be updated.

To check that on Edge:

  1. Open Edge normally.

  2. Open the Dev Tools with Ctrl+Shift+I.

  3. Use Ctrl+Shift+P to show the Command Menu.

  4. Type network conditions, select Show Network conditions, and then press Enter.

  5. Uncheck Use browser default checkbox

  6. On the dropdown list, select Microsoft Edge (Chromium) - Windows)

  7. Copy the new user agent that will appear below, and update your starting commands.

Amazon Luna is not supported in your region / Cannot play Amazon Prime Games on Luna

Although I was able to play games, the Luna menu would show that is only available in the USA, Canada and UK, and I could not play the Amazon Prime selection of games for Luna.

After a long time of back and forth with Amazon Support and no one figuring it out why that was happening, as my Prime account was in one of those regions. I noticed that an old Kindle I had was in a different region than my Prime Account. Updating the Kindle account to be the same as my Prime solved the problem. Super weird.

  1. Login into your Amazon account.
  2. Account & List>Manage your Content and Devices
  3. Click Preferences
  4. If there are no Preferences**, it means you might have a device in another region. Instead, you will have a message to manage it using that region, do it so.
  5. Click Country/region, check if the region is the same as your Prime.
  6. If it is not, you click Change, update with your address then Update
  7. Find “You are currently linked to shop on YOUR AMAZON. Click here to learn more about other Amazon sites you are eligible to shop on based on your country/region of residence.”, select the link in the sentence: here.
  8. Make sure that Other Kindle Stores show different stores from your own, for example, if your store is .com, a Canadian store should show there. If so, you are all set.
  9. If YOUR AMAZON is the same as the other kindle store, click Learn about
  10. Select Transfer your Kindle account to YOUR AMAZON.

That solved those problems for me.