FAQ

Frequently asked questions.

Short answers to what people ask most. Don't see yours? Drop a GitHub Discussion on the Satellite repo and we'll add it.

Is Dish actually free?

Yep. Free and open source under the GNU Lesser General Public License v3.0 or later. No paid tier, no ads, no analytics, no plans for any of that.

What's in V1?

Two apps: Dish for Android (the client, runs on your phone) and Satellite for Windows (the server, runs on your gaming PC). They pair over Wi-Fi and the phone becomes a sub-frame-latency wireless gamepad. Dish for Windows, macOS, and Linux (plus Satellite for Linux) are in development and listed on the downloads page roadmap, but are not yet installable.

Do I need Sunshine and Moonlight to use Dish?

Nope. Dish is a standalone wireless gamepad. You can run it on its own and control your gaming PC from the couch with zero video streaming. It also slots in beautifully alongside Sunshine and Moonlight if you do want video on a second screen.

What platforms does Dish run on?

V1 ships Dish for Android 7.0+ (arm64 + x86_64) and Satellite for Windows 10/11 (x64). The Android app is on Google Play and as a signed APK on GitHub Releases. The Satellite Windows installer bundles ViGEmBus 1.22.0 so a fresh PC works in one click.

Will it work with my game?

Satellite injects either a virtual Xbox 360 controller (via ViGEmBus) or a virtual DualShock 4. If your game supports an Xbox pad (which is basically every PC game) it sees Dish. Games that want the DualSense touchpad, motion, or lightbar work end-to-end with the DS4 surface.

Does it work over the internet, or only on my LAN?

Dish is built for the LAN. That's how it hits single-digit-millisecond latency. Internet play is doable if you bridge with a VPN like Tailscale, but expect 30 to 80 ms of round-trip and check that your VPN preserves DSCP markings.

Can I use my real Xbox or PS5 controller with Dish?

Yes, via Bluetooth HID passthrough. On Android, plug or pair a DualSense or Xbox pad to your phone, and Dish for Android forwards every input surface (buttons, sticks, triggers, gyro, accelerometer, touchpad, battery) to Satellite, where they show up on your gaming PC as a virtual Xbox 360 or DualShock 4 pad. Native desktop clients (Dish for Windows / Mac / Linux) that poll pads directly are on the roadmap.

What about gyro aim and motion controls?

Dish forwards 3-axis gyro and 3-axis accelerometer in MSG_MOTION (0x000A) at up to 250 Hz per controller, in the Cemuhook DSU convention. On Windows with the DS4 virtual pad, motion lands on the DualShock 4 surface that motion-aware PC games and DSU-pipe tools both consume. The phone's own IMU streams motion too, which is useful for tilt-aim games when you don't have a pad with gyro.

Does Dish support the DualSense touchpad?

Yes. Both fingers, monotonic tracking IDs, and the clicky-pad button are forwarded as MSG_TOUCHPAD (0x000C). You pick the routing per device in Satellite's web UI: into the virtual DS4 touchpad surface, into a host mouse driver, or off. Hot-swappable.

What about the DualSense lightbar?

When a game writes a new color to the virtual DS4's lightbar, Satellite emits MSG_LIGHTBAR (0x000D) back to Dish. It's capability-gated, so only clients that own an RGB controller get the packet. Astro's Playroom, GTA V, Returnal: all work end-to-end across the LAN.

Will the rumble in my game feel anything?

Yes. When the game writes to the virtual pad's rumble output, Satellite emits MSG_RUMBLE (0x0009) with strong + weak motor magnitudes back to the right Dish. On Android, by design, rumble lands on the phone's own vibrator(s) rather than the connected pad. Your hand feels it either way.

How many controllers can I connect at once?

Up to 16 controllers per Satellite session. Each gets its own virtual gamepad, encryption state, motion stream, and rumble route. One player dropping out doesn't drag the others down. Practically, four-player couch co-op is the sweet spot, but the protocol won't blink at more.

What's the difference between Dish and Steam Link or Moonlight's built-in input forwarding?

Steam Link and Moonlight forward inputs from the same client that's receiving the video. Dish splits the two apart. Your phone is the controller, your TV is the screen, and the controller device doesn't need streaming software at all.

Does Dish drain my phone battery?

Not noticeably. Dish for Android idles near zero CPU between input events. The heartbeat is a tiny UDP packet every 2 seconds. In testing it pulls less battery than a Bluetooth audio call.

Is it safe on public Wi-Fi at a hotel or coffee shop?

Yes. Pairing happens over HTTPS with an X25519 key exchange seeded by a 4-digit PIN that lives for 5 minutes. After that, every packet is sealed with ChaCha20-Poly1305 IETF using a 256-bit session key and a monotonic counter for replay defence. Replays, spoofing, and eavesdropping are all blocked. See the security page for the full threat model.

How does Dish find Satellite on my network?

Two parallel paths. Modern: mDNS / Bonjour for the _satellite._udp service. Legacy fallback: a UDP broadcast beacon on :9879. Dish merges results from both, labels each entry with its discovery source, and de-duplicates by IP. Most cold-cache discoveries finish under a second.

Does Satellite update itself?

Yes. Satellite checks GitHub Releases on whatever channel you pick (stable or pre-release), and if there's a newer version it downloads the platform artifact, verifies the SHA-256 against the cosign-signed sum file, and applies it via Inno Setup. Auto-download and auto-install are opt-in. Cancellable and skippable.

Does Dish for Android send any analytics?

No analytics, no advertising ID, no event pipeline. The only outbound TinkerNorth-touched flow is Firebase Crashlytics for crash and ANR reports: stack trace, device model, install UUID, and that's it. Never gamepad input, never Satellite IPs, never Wi-Fi SSIDs. There's a one-tap opt-out in the in-app Settings under Diagnostics. The full Dish for Android privacy policy is on this site.

What do "Dish" and "Satellite" actually mean?

It's a nod to Sunshine and Moonlight. Those projects beam video out of your PC; we picked up the broadcasting metaphor on the controller side. Satellite is the receiver on your gaming PC, Dish is the transmitter in your hand. The naming page has the longer story.

Why doesn't Dish work over Bluetooth?

Bluetooth gamepad profiles tack on 8 to 15 ms of unavoidable polling latency, plus they hog the same radio your phone needs for network and audio. Wi-Fi UDP is faster and more reliable for this specific job. That said, Dish for Android can act as a Bluetooth HID gamepad if you specifically want to forward inputs to a console or TV box without a Satellite around.

Can I customize the touch overlay on Dish for Android?

Yes. The on-screen layout adapts to your screen size, safe-area insets, and display cutouts. You can flip between Xbox and PlayStation profiles per slot, and the eight-direction d-pad has diagonal sweet-spots so you don't accidentally rage-quit on a diagonal swipe.

What languages does Dish ship in?

Dish for Android ships English, Spanish, German, French, Brazilian Portuguese, and Bosnian out of the box. Strings are externalised so additional locales can land without a code change.

What if I find a bug?

Open an issue on the relevant GitHub repo: dish-android for the client, Satellite for the server. We try to triage within a couple of days. Security disclosures go to security@tinkernorth.com. See SECURITY.md in either repo.

When will Dish for Windows / macOS / Linux ship?

They're in active development. We're not committing to dates publicly until each one passes its release-readiness checklist (release-channel CI, code signing, OTA verify path, parity with the wire-format tests). Watch the repos on GitHub or the Dish blog for the announcement.

How do I support the project?

GitHub Sponsors (recurring) is the highest-leverage way. It's the closest to a no-cut donation rail and stable month-to-month support is what funds the unglamorous costs (code-signing certs, the Google Play developer fee, hosting). Ko-fi and Buy Me a Coffee work great for one-time tips. See the donate page. Starring the repos, filing good bug reports, and telling a friend all help too.