Guide: Moonlight on Retro Handhelds

Last updated: 04SEP2023

Moonlight is a game streaming tool designed to allow you to stream your screen (and games) from a PC to a connected device. This means you can stream games that wouldn’t normally run on your device, such as GameCube, PS2, PC games, and so on. This is an excellent option if you want to play a few games while in bed, or on the couch, or maybe at the dinner table.

For this guide, we will focus on Moonlight support for custom Linux-based firmwares on the following handheld devices:

Anbernic RG351P (ArkOS final, AmberELEC) — requires WiFi dongle
Anbernic RG351M (ArkOS final, AmberELEC)
Anbernic RG351V (ArkOS, AmberELEC)
Anbernic RG351MP (ArkOS, AmberELEC)
PowKiddy RGB10 (ArkOS) — requires WiFi dongle
PowKiddy RGB10 Max (RetroOZ) — requires WiFi dongle for 5GHz
GameForce Chi (ArkOS)
RK2020 (ArkOS) — requires WiFi dongle
ODROID Go Advance (ArkOS) — may require WiFi dongle
ODROID Go Super (RetroOZ) — requires WiFi dongle

Update: Moonlight is now available via the PortMaster app, so any of the many devices and OS options that run PortMaster will run Moonlight, and some custom firmwares (like JELOS) have Moonlight integrated directly into the OS. Elements of the written guide below may be a little out of date!

Locating the Moonlight app

Moonlight will be located in different places depending on your firmware.

If using ArkOS on currently supported devices (Anbernic RG351V, GameForce Chi, PowKiddy RGB10, RK2020, OGA), you can install Moonlight as a port via the PortMaster tool found in the ArkOS OPTIONS menu — just be sure to update to the latest version of ArkOS so that PortMaster will appear. Once installed, Moonlight will be in the Ports section.

If using ArkOS on the RG351P or RG351M, you will need to manually install PortMaster (more info here).

If using RetroOZ on the RGB10 Max or ODROID Go Super, you can find Moonlight as its own section in the main menu. If it is not displaying, go into Main Menu > UI Settings > Visible Systems and make sure it is checked. Make sure that you are running RetroOZ v0.50 or higher (v0.51b or higher is preferred).

If using The Retro Arena, you can find Moonlight as its own section in the main menu. Be sure to check the connection requirements specific to TheRA in the section below.

If using recent AmberELEC versions, you can now run Moonlight via PortMaster. You’ll need to manually install PortMaster (follow this guide for more info), but after that the setup process will be the exact same as it is for ArkOS.

Connecting via Moonlight (modern NVIDIA GPUs)

To get started, you will need a PC that supports the NVIDIA GeForce Experience app. For more information, you can check to see if your PC meets the system requirements. If your PC supports the app, download and install the app via the NVIDIA website (if it isn’t already on your PC).

Update: Moonlight/streaming support has been deprecated from the NVIDIA GeForce Experience app, so your primary way of connecting Moonlight to your PC will be via the Sunshine app (covered in the next section).

ArkOS:

  • On your device, launch Moonlight from the Ports menu (ArkOS) and then select Settings > Pair.
  • You will see a screen asking for the name or IP address of your PC with the NVIDIA GeForce Experience app installed. Enter in your information, then press OK. Your device will display a four-digit PIN code.
  • On your PC, a pairing dialog box should appear. Enter the PIN code shown on your device and click the Connect button.
  • For more information, check out the ArkOS Wiki entry for Moonlight.

AmberELEC:

  • On your device, launch Moonlight from the Ports menu and then select Settings > Pair.
    • If you haven’t already, you will need to manually install PortMaster manually, and then install PortMaster. More info here.
  • You will see a screen asking for the name or IP address of your PC with the NVIDIA GeForce Experience app installed. Enter in your information, then press OK. Your device will display a four-digit PIN code.
  • On your PC, a pairing dialog box should appear. Enter the PIN code shown on your device and click the Connect button.
  • For more information, check out the ArkOS Wiki entry for Moonlight.

RetroOZ:

  • On your PC, launch the NVIDIA GeForce Experience app if it’s not already running.
  • On your device, navigate to the Moonlight section and select the Server – Pair with Server option. Your device should automatically connect to your PC and it will display a four-digit PIN code.
  • On your PC, a pairing dialog box should appear. Enter the PIN code shown on your device and click the Connect button.
  • For more information, check out the ArkOS Wiki entry for Moonlight.

Connecting via Sunshine (older or non-NVIDIA GPUs)

If you are using a non-Moonlight compatible PC (like with an older NVIDIA GPU or with an AMD GPU), you will need to use an app called Sunshine to create a connection with the handheld device. Note that this only works with Windows machines (or Linux if you’re using it).

The instructions are generally the same for both ArkOS, AmberELEC, and RetroOZ, other than the location of Moonlight and its settings on your device. For ArkOS and AmberELEC, you will find it in your Ports section after you have installed it via PortMaster, and in JELOS and RetroOZ it will be located in its own section in the Main Menu.

  • Head over to this GitHub repository and download the latest release of Sunshine.
  • Extract the file into a new folder. Inside, you will find a sunshine.exe file. Open that exe file, which will open a Command Prompt screen and some text.
  • Next, on your PC, on the bottom-right task bar you should see your network connection status (either ethernet or WiFi). Right-click on that icon and select “Open Network and Internet settings”. In the pop-up window, click on the “Properties” button and then scroll down until you find your IPv4 address (192.168.86.XX or something along those lines), and make note of that address.
  • On your Internet browser, type in https://192.168.86.XX:47990 but with your actual IP address instead of the placeholder here (the :47790 will remain the same). It will likely warn you that the connection is not private, just go ahead and override that warning.
  • It will ask you to set up a username and password upon first connection, make sure it’s something simple and memorable. It will refresh the page and ask you to log in with those same credentials. Once logged in, you will see a series of tabs.
  • On your device, open the Moonlight settings, and select “Pair with Server”. It will give you a four-digit PIN to use on the PC.
  • Back on your Internet browser, navigate to the PIN tab and enter the PIN displayed on your device. You should now be paired with your local server.
  • Still on your Internet browser, go to the Apps tab. Under the “Steambigpicture” app, change its name to simply “Steam”.
  • Back on the device, navigate to the Moonlight-Steam option and open it. You should now be booted into the Steam Big Picture.

Connecting with The Retro Arena

The Retro Arena requires manual configuration, and unfortunately the Moonlight port found within PortMaster doesn’t work so you can’t take advantage of its configuration wizard. Here’s how to set up the connection manually. Note that in my testing I was able to successfully pair and connect with my device using the Sunshine method, but I could not get my PC’s image to display on my screen (controls worked, though). The developer is aware of the issue and is looking into a fix. I tested with the ODROID Go Super/Advance build of The Retro Arena, but there are also builds for RG351P/M and RG351V if you want to try those, too.

If using Sunshine to connect to your device, complete the first five bullets in that section now before moving on. If running a NVIDIA GeForce Experience-capable PC, be sure to open that app before proceeding.

  • With your device connected to your home network, go into Options > Network Info and make note of your device’s IP address.
  • Next, on your PC, on the bottom-right task bar you should see your network connection status (either ethernet or WiFi). Right-click on that icon and select “Open Network and Internet settings”. In the pop-up window, click on the “Properties” button and then scroll down until you find your IPv4 address (192.168.86.XX or something along those lines), and make note of that address.
  • On your PC, open an FTP client like WinSCP and connect via SFTP to the device. The connection address will be the device’s IP address, and both the username and password will be “odroid” (lowercase).
  • Once connected, navigate to root/roms/Moonlight and open the Moonlight.sh file inside. This will open with a text editor; find the IP address (it will be 10.0.0.4 by default) and change it to your PC’s IP address. Save the file and exit out of WinSCP.
  • Still on your PC, open up Command Prompt and type in the following command line, with the “192.168.86.XX” being the IP address of your device:
ssh odroid@192.168.86.XX
  • When prompted for a password, type in “odroid” (lowercase). You should now be logged into your device via SSH.
  • Next, type in the following command, with the “192.168.86.XX” being the IP address of your PC:
moonlight pair 192.168.86.XX
  • The device will give you a four-digit PIN. If using a PC capable of the NVIDIA GeForce Experience app, you should get a pop-up asking to enter the pin, which you should do now. If using Sunshine, on your browser navigate to the PIN tab and enter the PIN displayed on your device. You should now be paired with your local server.
  • If on Sunshine, go to the Apps tab in your browser. Under the “Steambigpicture” app, change its name to simply “Steam”.

Now that you are paired, you should be able to open the Moonlight app on your device and Steam should launch.

Setting up RetroOZ apps

With RetroOZ you can create direct links to Games and Emulators outside of Steam.

  • Add the Game or Emulator to NVIDIA or the Sunshine web tool (Applications tab).
  • On the device, select “Server-LIst Applications” and check for your newly-added application (for example, an emulation frontend like BigBox).
  • Select “Server-Generate Application File” and a new link will be added to Moonlight Menu — for example, Moonlight-Big Box. These links can be removed from the menu in the same manner as deleting ROMs from your SD card.

Streaming tips and tricks

  • If running Moonlight on the RGB10 Max or ODROID Go Super with RetroOZ, I recommend using this TP-Link AC600 Nano USB WiFi dongle because it has 5GHz WiFi support. If using The Retro Arena for these same devices, I recommend using the ODROID 5GHz WiFi 5A or 5B dongle instead. These two devices are unique in that they support 5GHz WiFi, which will be much more stable than the 2.4GHz WiFi in the other devices. Note that even though the RGB10 Max has built-in WiFi, it’s only 2.4GHz; in order to use the 5GHz dongle, you should shut off the WiFi toggle on the device itself.
  • When connecting your device via a WiFi dongle, it is always best to insert the dongle BEFORE you turn on the device.
  • I recommend using Steam Big Picture for your interface, since it was designed to be used with a controller. If you’re looking to stream an emulator, go into Steam and click on the “Add a Game” option on the bottom-right of the client, then navigate to your emulator. Now you can launch the emulator from your Steam menu easily.
  • You can also add Google Stadia as a “game” in your Steam library. Watch the video above for instructions!
  • While running Steam, you can hold down the SELECT button for a few seconds and bring up a mouse mode which will allow you to more easily navigate your computer.
  • When streaming a game or emulation app to your device, I would recommend streaming it at its lowest resolution settings. It’ll still look great on the device’s small screen, and it will be a bit easier for the PC to send to the device.

Changelog

04SEP2023
– updated link to Sunshine app
– updated info re: Sunshine vs GeForce Experience

28NOV2021
– added AmberELEC instructions

23SEP2021
– added RetroOZ apps section
– published guide

14 thoughts on “Guide: Moonlight on Retro Handhelds

  1. Hi, thanks for the guide!
    I have encountered a bit of a problem here:
    I’m using 351p and ArkOS, and everything seems fine until I boot on Steam Bigpicture. When I’m there, I cannot move around at all in my device (I can do it from my keyboard and it’ll be mirrored, but it works just for mirroring my screen, not for playing). I trying deactivating all controller related configuration on Steam BP, but it still appears as “no controller connected”.
    Could anyone tell me what I’m doing wrong?
    Thanks in advance!

    Like

      1. Okay, sorry again haha
        I was able to see what was my problem, I’ll leave you here the reply of u/CrudelyDrawnStickman, from Reddit:
        “I had the same problem. The solution is to go to the Sunshine GitHub page and you will find under the “optionally install” for Windows build Aug21 a file called ViGEmBus. This emulates the xbox360 controller when using sunshine.”
        And, like that, I can use Moonlight just fine. I hope this will useful to anyone out there!

        Like

  2. Having an issue when I try to pair it with my PC. Will not connect whether I put in my IP address or PC name. I am using a 351P with the latest 351Elec software (Pineapple Forest). My PC is running the Nvidia 3070 and naturally has Geforce installed. I have all of my drivers updated and made sure Portmaster and Moonlight are running the updated versions.

    Like

    1. Good days, every retro-gamers. I encountered problem and need your help. Mine is non-Nvidia GPUs, so I followed sunshine ‘s step. The step stopped at “Pair to PC”, no any hint for PIN digit and show on device….I also saw the message from DOS prompt, “Not authorized”. But sunshine application already run by administrator,l. So, I don’t know how to solve this problem.

      Like

  3. Thanks for sharing, I will try that for my handheld (RK2020 and RG351P). By the way, any solution to transfer handheld screen to PC? my thinking is software with Wi-Fi to implement output function …

    Like

  4. Having an issue on my 351v running 351ELEC where controls work fine once I launch Moonlight but when I try to pair with my computer, none of the controls work anymore. Do you happen to know of a solution?

    Like

  5. Hello everyone,

    I’m having an issue and I wondered if anyone had solved the same problem. I am running Moonlight on the latest version of AmberElec (Panda Conspiracy) with Sunshine on my Windows 10 PC.

    I’ve followed the guide with everything looking correct until I select Pair PC in Moonlight. At this point, instead of getting a four-digit PIN as expected, I simply get a “Failed to pair” message. My current thought is that this is a problem with the latest version of AmberElec, but I thought I would ask here before I try installing Pineapple Forest. Any other ideas? Thanks!

    Like

  6. Hi Russ. for PowKiddy X55 JELOS, the built on moonlight are 30fps by default, so gameplay are not as smooth. theres no settings to change the framerate for the built in moonlight.
    on my RG353PS running ARKOS, the moonlight app in portsmaster has more options to choose from, including resolutions & framerate. so i copied the moonlight folder and the .sh files to my X55 and tried moonlight from portsmaster instead of the built in. the app boot but i cant enter or type in any input when trying to connect to my computer ip address, connected my bluetooth and tried to type it that way also doesnt worked. any ideas on how to solve this minor issues?

    the built in moonlight on my X55 JELOS works great but were stucked with 30fps, would love it if we change it to 60fps framerate like we can do on the moonlight through portsmaster.

    Like

  7. Just my 2c worth, I know Russ recommends using the portable version of Sunshine in his RGB30 guide but I could not get the controllers recognised at all on the portable version even with ViGEmBus installed. Once I installed the full version, it worked fine. This is on Windows11 Pro if that helps anyone.

    Like

Leave a comment