Funktionen

Was Dish anders macht.

Jede Input-Surface eines modernen Controllers, über Wi-Fi mit Sub-Frame-Latenz weitergeleitet.

Sub-Frame-Latenz

Jedes Controller-Event wird in einen 12-byte XUSB-Report verpackt, versiegelt und per raw sendto() inline im Input-Thread verschickt. Keine Queue, kein Async-Hop. Einstellige Millisekunden Ende-zu-Ende in einem normalen Wi-Fi-6-LAN.

Authentifizierte Verschlüsselung

X25519-Schlüsselaustausch beim Pairing, ChaCha20-Poly1305 IETF auf jedem Paket, monotoner Zähler als Replay-Schutz. Dasselbe AEAD wie TLS 1.3, WireGuard und SSH. Auth-Tags sind 128 Bit, sodass gefälschte Inputs im Empfänger sterben.

mDNS + UDP-Discovery

Satellite kündigt _satellite._udp via Bonjour an und beantwortet einen Legacy-UDP-Broadcast auf :9879. Dish fügt beide zusammen und markiert jeden Eintrag mit seiner Quelle. Cold-Cache-Discoveries sind meist in unter einer Sekunde fertig.

Heartbeats und stilles Reconnect

Beide Seiten feuern alle 2 Sekunden einen Heartbeat. Fünf hintereinander verpasste reapt die Verbindung. Bei einem Aussetzer bringt Dish die Verbindung gegen den gespeicherten Schlüssel wieder her – ohne PIN-Neueingabe. Das virtuelle Gamepad bleibt eingesteckt.

Xbox oder DualSense pro Slot

Jedes gekoppelte Dish wählt seine virtuelle Identität. Satellite stöpselt entweder ein Xbox-360-Pad via ViGEmBus oder einen DualShock 4 mit voller DS4-Surface (Motion, Touchpad, Lightbar, Akku) ein – deine Entscheidung pro Controller.

Motion-Weiterleitung (Gyro + Beschleunigung)

MSG_MOTION (0x000A) streamt 3-Achsen-Gyro und Beschleunigung mit bis zu 250 Hz pro Controller in der Cemuhook-DSU-Konvention. Tilt-Aim, Gyro-Look oder DSU-Pipe zu deinem Lieblings-Emulator auf dem Empfänger.

Zwei-Finger-DualSense-Touchpad

MSG_TOUCHPAD (0x000C) trägt beide DualSense-Finger, monotone Tracking-IDs und die Click-Pad-Taste. Wähle pro Gerät das Routing auf dem Empfänger: DS4-Surface, Host-Maus oder aus. Hot-Swap-fähig, kein Neu-Pairen nötig.

RGB-Lightbar-Steuerung

MSG_LIGHTBAR (0x000D) treibt die DualSense- und DS4-LEDs unabhängig vom Rumble. Spiele, die die Bar passend zum In-World-State färben (Astro's Playroom, GTA V, Returnal), funktionieren Ende-zu-Ende über das LAN.

Rumble-Round-Trip

Wenn ein Spiel auf den Rumble-Output des virtuellen Pads schreibt, sendet Satellite MSG_RUMBLE (0x0009) mit den Magnituden des starken + schwachen Motors zurück an das richtige Dish. Unter Android landet Rumble per Design auf dem/den eigenen Vibrator(en) des Smartphones statt am angeschlossenen Pad – deine Hand fühlt es so oder so.

Akku-Telemetrie

Controller melden Stand (0–100) und Ladestatus alle 30 Sekunden und bei jedem Übergang. Verkabelte oder unbekannte Pads fallen auf den Akku des Host-Geräts zurück, sodass du in der Slot-Karte immer etwas Sinnvolles siehst.

Touch-Overlay auf Android

Dish for Android liefert ein konfigurierbares On-Screen-Layout mit Xbox- und PlayStation-Profilen. D-Pad, Sticks, ABXY, Trigger, alles pro Spiel anpassbar. Acht-Richtungs-D-Pad mit diagonalen Sweet-Spots, Multi-Finger L3/R3.

Bluetooth-HID-Passthrough

Dish for Android kann sich auch als Bluetooth-HID-Gamepad registrieren – einmal mit deinem PC, deiner Konsole oder TV-Box koppeln und Inputs weiterleiten, selbst wenn kein Satellite im Netzwerk ist.

Lokale Web-UI

Satellite stellt ein Dashboard unter localhost:9877 bereit. Live-RTT pro Verbindung, gekoppelte Geräte, Paketzähler, Loop-Mikrosekunden, Log-Tail und eine Debug-Telemetrie-Ansicht. Alles über reines HTTP, weil die Grenze localhost ist.

In-App-OTA-Updates

Satellite verfolgt GitHub Releases auf einem stable- oder pre-release-Channel, lädt das Plattform-Artefakt herunter, verifiziert die SHA-256 gegen die cosign-signierte Summen-Datei und wendet es via Inno Setup an. Abbrechbar, überspringbar, weglegbar.

Drop-in für Sunshine / Moonlight

Streame Video mit Moonlight und halte dein Android-Smartphone als Controller via Dish. Oder überspring Moonlight komplett und nutze Dish als Wireless-Gamepad am selben Monitor.

Virtueller Xbox 360 oder DS4

Satellite injiziert unter Windows via ViGEmBus. Xbox 360 deckt jedes PC-Spiel ab. DualShock 4 deckt alles, was PlayStation-Tasten bevorzugt oder die volle Touchpad- / Motion- / Lightbar-Surface haben möchte.

Multi-Controller pro Session

Couch-Co-op-Abend? Bis zu 16 Controller pro Satellite-Session, mit unabhängigen virtuellen Pads, Encryption-State, Motion-Streams und Rumble-Pfaden. Ein ausgefallener Spieler reißt die anderen nicht runter.

DSCP-getaggte Pakete

Jedes ausgehende Paket wird als Expedited Forwarding (DSCP EF / 0xB8) markiert. QoS-fähige Router und APs schieben sie vor Bulk-Traffic. Zusammen mit Thread-Prio-Pinning auf dem Empfänger hält das die Latenz auch auf belegtem WLAN zusammen.

Sechs Sprachen auf Android

Dish for Android bringt von Haus aus Englisch, Spanisch, Deutsch, Französisch, brasilianisches Portugiesisch und Bosnisch mit. Strings sind ausgelagert, sodass weitere Sprachen ohne Code-Änderung landen können.

Null Analytics, null Werbung

Keine Analytics, kein Remote-Logging, kein Account-System. Der einzige ausgehende Datenpfad bei Dish for Android ist opt-out Firebase Crashlytics für Crash- und ANR-Reports – niemals Gamepad-Input, niemals Satellite-IPs, niemals SSIDs. Verifizierbar in den öffentlichen Repos.

Bereit, es zu fühlen?

Kostenlos, Open Source und zehn Minuten vom Download bis zum ersten Frag.