Use your phone as a controller for Sunshine, Apollo, or Wolf


Moonlight assumes the controller is attached to the device that shows the stream. That’s fine when you hold a pad paired to a Shield. It’s awkward when the screen is a TV box that won’t take your controller, when you want your phone as the gamepad, or when a friend’s phone should be player 2.

Dish can join a Sunshine, Apollo, or Wolf host on its own, as a controller only. Nothing new goes on the host: Dish speaks the same protocol Moonlight does.

How it works

Dish pairs with the host the way any Moonlight client does. It shows a 4-digit PIN, and you type that PIN into the host, on the PIN page of Sunshine’s or Apollo’s web UI. The PIN itself never crosses the network: both sides derive a key from it and prove they hold it. From then on every request is mutual TLS, and Dish pins the host’s certificate, so a different machine at the same address is refused.

To open a controller session, Dish launches or rejoins an app on the host. The protocol needs a video stream to hold a session open, so Dish asks for the smallest one the host allows and throws it away without decoding it. Your input travels over the protocol’s encrypted control channel.

What reaches the game

  • Buttons, sticks, and analog triggers
  • Gyro and motion, when the game asks the host for it
  • The DualSense or DualShock 4 touchpad, from the pad itself or from your phone’s screen
  • Rumble, including the trigger motors on Xbox One and Series pads held on Android
  • The lightbar color the game picks
  • Battery level

Up to four controllers can share one host session, each its own player. The host builds the virtual pad from the type Dish declares, so pick Xbox or PlayStation per controller.

What doesn’t come through this way: HD haptics, adaptive triggers, the player lights, and the controller microphone and speaker. Those need Satellite. The Moonlight protocol has no microphone channel, and Dish doesn’t take trigger effects over it yet.

Setting it up

  1. Install Dish on the device holding your controller: Android, Windows, or Linux.
  2. Find the host. Dish lists Sunshine, Apollo, and Wolf hosts it finds on your network next to any Satellites. If yours doesn’t show up, add it by address.
  3. Pair. Pick the host, and type the PIN Dish shows into the host’s PIN page.
  4. Pick what the host runs. The first controller on a host chooses the app; later controllers join that session.
  5. Bind your controller and choose its type.

Dish remembers the host and the binding. Restart the app, or the phone, and your controller goes back on the host.

When the host is busy

Sunshine and Apollo run one app at a time. If the host is already running a session for this device, Dish joins it. If it’s running an app for a different device and won’t hand that session over, Dish tells you instead of taking it, and you can close the app on the host or try again later.

If the app you picked disappears from the host’s list, Dish names the missing app and lets you pick another, rather than quietly starting whatever is first.

Satellite or direct?

Both work next to Sunshine, Apollo, and Wolf. Pick by what you need:

Directly to the hostThrough Satellite
On the gaming PCNothing newSatellite, a small tray app
SpeedFast, over the host’s control channelFastest, over Dish’s own UDP protocol
DualSense extrasLightbar and touchpadAlso HD haptics, adaptive triggers, mic, and speaker, on Windows
Needs a streamYes, a minimal one Dish discardsNo, works with or without streaming

If you only need buttons, sticks, and rumble on a host you already run, pairing directly is the quickest start. If you want everything a DualSense can do, or you play without streaming at all, install Satellite.

Dish is free and open source, and it owes its names to Sunshine and Moonlight. If it made your setup better, tips keep it going.

¿Te gusta lo que lees?

Dish y Satellite son gratuitos y de código abierto. Las propinas permiten que sigan siendo así.

Dejar una propina Descargar Dish