Four phones, one couch, zero extra hardware: PC couch co-op done right
I love a couch co-op night. What I do not love is the moment two hours before everyone shows up where I realize I own one Xbox controller, two slightly broken DualShock 4s, and an 8BitDo SN30 with a stuck D-pad… and I need four working gamepads in 90 minutes.
After the third or fourth time hitting that exact problem, I built a tool to fix it. Today, every guest’s phone is also a gamepad. They walk in, install Dish, scan a QR code, and they’re playing.
This post is the recipe.
What you need
- A gaming PC connected to your TV (or streaming to it via Sunshine + Moonlight)
- A Wi-Fi 5 GHz network (Wi-Fi 6 is ideal) that everyone can join
- One Android phone per player (Android 7.0+; Dish for Windows, macOS, Linux, and iOS are in development for later releases)
- A four-player local co-op game on the gaming PC (Cuphead, Streets of Rage 4, Overcooked, BroForce, Towerfall, Lovers in a Dangerous Spacetime, pick your poison)
Step 1: Install Dish
Have everyone install Dish for Android. It’s a one-tap install from Google Play, or a signed APK from GitHub Releases. Either way, takes about 30 seconds. Android 7.0+ (API 24), arm64 + x86_64, ships with six languages (en, es, de, fr, pt-BR, bs).
(Dish for Windows, macOS, and Linux are in active development for guests who’d rather use a laptop, but for V1 today, plan on phones in hands.)
Step 2: Install Satellite for Windows on the gaming PC
Grab the signed SatelliteSetup.exe from the Satellite releases and run it. The installer bundles ViGEmBus 1.22.0. Look for the dish icon in your system tray when you’re done, and the local web UI lives at http://localhost:9877. Satellite is now parked there ready to register up to 16 virtual gamepads. Four is the comfortable couch-co-op number, but the protocol won’t blink at more. (A Linux Satellite is on the roadmap; the V1 receiver ships on Windows only.)
Step 3: Get everyone on Wi-Fi
This is the part most people get wrong. Make sure all four phones and the gaming PC are on the same 5 GHz Wi-Fi network. A surprising number of houses have their gaming PC on the wired network and their phones on a guest 2.4 GHz SSID. Dish will still work but you’ll feel the 5 ms penalty.
Pro tip: if you’ve got a Wi-Fi 6 router, put everything on the 5 GHz or 6 GHz band. 2.4 GHz is shared with microwaves, baby monitors, and your neighbor’s everything. 5 / 6 GHz is much cleaner.
Step 4: Pair each phone
Open Dish on each phone. Each one auto-discovers your gaming PC via mDNS (with a UDP broadcast fallback for older networks). Tap the PC, type the 4-digit PIN that Satellite displays in its web UI, done.
You don’t have to repeat this every time. Dish remembers each PC it’s paired with. Next month when these same friends come over, they can skip straight to step 5.
Step 5: Pick layouts
Dish ships several layouts:
- Classic: Xbox-style ABXY + dual sticks + triggers
- Fight stick: D-pad + 6 buttons, optimized for fighters
- Minimal: D-pad + 2 buttons, for retro and 2D
- Custom: long-press anything to drag, resize, or remap
For Cuphead, classic. For Streets of Rage 4, fight stick. For BroForce, minimal. Players can switch layouts mid-session.
If a player would rather use a real Bluetooth gamepad they already have paired to their phone, Dish will see it and use it automatically. Touch overlay disappears.
Step 6: Launch the game
On the gaming PC, your TV will show the game. The PC sees four virtual Xbox 360 controllers, one per Dish client. Most games will recognize all four as soon as a button is pressed on each.
Hit “Local Co-op” or whatever the game’s equivalent is. You’re playing.
Pro tips after running this dozens of times
Have everyone open Dish before you launch the game. Some games only scan for controllers at launch and won’t pick up a fifth one that joined late. Dish-1, Dish-2, Dish-3, Dish-4, then launch the game.
Designate a player order. Dish doesn’t have a concept of “player 1.” Whoever connects first to Satellite gets controller index 0, and so on. If your game cares about player order (some platformers do), have your group connect in a deliberate order.
Mute Dish’s haptics if your phones are loud. A vibrating phone on a glass coffee table is louder than you’d expect, and four of them is unbearable.
Let people use their own gamepads. Whoever brought a real controller can plug it into their phone over USB or Bluetooth and Dish will use it instead of the touch overlay. Makes the experience genuinely no-compromise for the experienced players in your group.
Plug in. With four phones running Dish for two hours, charging cables are the real limiting factor. Have a multi-port charger on the coffee table.
Why this works so well
The reason 4-phone co-op is suddenly easy is that Dish was built for it from the start:
- Multi-session by design. Up to 4 Dish clients can pair to a single Satellite, each with independent encryption keys, heartbeats, and reconnect logic. One phone dropping out doesn’t disturb the others.
- No Bluetooth contention. Bluetooth gets cranky past 2 paired controllers. Wi-Fi has no such limit.
- Cheap virtual gamepads. ViGEmBus on Windows can create up to 8 virtual Xbox 360 pads. We use 4 for now, with headroom.
- Per-player layouts. Each Dish client picks its own layout: fight stick for the player who knows what they’re doing, classic for the kid.
Where to go next
If you’ve thrown a successful Dish-powered couch co-op night, please:
- Tell another nerd. The single highest-leverage thing for this project is word of mouth.
- Donate. Every dollar genuinely helps.
- Share which game your group played. We’re maintaining a list of “definitely works great” titles based on feedback.
For more reading:
- Why Wi-Fi UDP beats Bluetooth for gamepad streaming
- Sunshine + Moonlight + Dish, the perfect cloud-gaming-at-home trio
- Latency deep-dive
Vous aimez ce que vous lisez ?
Dish et Satellite sont gratuits et open source. Les dons permettent qu'ils le restent.