Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run ScanHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
FREEDOM251

Freedom251 › Blog › arcade cabinet

How to Stream DOS Games to a Raspberry Pi Arcade Cabinet

By Freedom251 Team · · 11 min read

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use the Raspberry Pi as the cabinet-side streaming client and a separate Windows or Linux gaming PC as the host. The host runs the DOS emulator or game launcher, while Steam Link or Moonlight sends its video and audio to the Pi and returns joystick and button input. This arrangement lets a modest Pi drive the arcade display without asking it to emulate every DOS title locally.

For the simplest Steam-centered setup, use Steam Link on a Raspberry Pi 3 or newer and connect both machines by Ethernet. For a more general desktop or launcher workflow, Moonlight has an official Raspberry Pi 4 client and exposes controls for resolution, bitrate and frame rate. In either case, the host PC still does the game processing.

As an Amazon Associate I earn from qualifying purchases.

How the streaming arrangement works

A streaming cabinet has two computers with different jobs. The Raspberry Pi is mounted in or beside the cabinet and connected to the display and arcade controls. It decodes the incoming video, plays the audio, and sends controller events back to the host. The Windows or Linux gaming PC runs the DOS emulator, the game files and any launcher required to start the title.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Component Role What it must do
Raspberry Pi Cabinet client Run Steam Link or Moonlight, decode the stream, output video and audio, and report control input.
Host PC Game computer Run the DOS emulator or launcher and the game itself, then encode the desktop or game stream.
Network Low-delay transport Carry video and audio from the host to the Pi and input events back in the opposite direction.
Arcade encoder Input interface Present the joystick and buttons to the Pi as a keyboard or gamepad that the client and host can recognize.

This is not the same as installing a DOS emulator directly on the Pi. Streaming moves the demanding work to the host, so the Pi model is mainly constrained by client support, video output, networking and input compatibility.

#1 Best Overall
CanaKit Raspberry Pi 4 4GB Starter PRO Kit - 4GB RAM
  • Includes Raspberry Pi 4 4GB Model B with 1.5GHz 64-bit quad-core CPU (4GB RAM)
  • Includes Pre-Loaded 32GB EVO+ Micro SD Card (Class 10), USB MicroSD Card Reader
  • CanaKit Premium High-Gloss Raspberry Pi 4 Case with Integrated Fan Mount, CanaKit Low Noise Bearing System Fan
  • CanaKit 3.5A USB-C Raspberry Pi 4 Power Supply (US Plug) with Noise Filter, Set of Heat Sinks, Display Cable - 6 foot (Supports up to 4K60p)
  • CanaKit USB-C PiSwitch (On/Off Power Switch for Raspberry Pi 4)

What happens when you press a cabinet button

  1. The encoder converts the physical switch into a keyboard key or gamepad button event.
  2. The Pi client sends that event to the host over the local network.
  3. The DOS game running on the host reacts to the mapped key or button.
  4. The host renders a new frame, encodes it and sends the resulting video and audio back to the Pi.
  5. The Pi displays the frame on the arcade monitor or television.

Every stage adds a small amount of delay. A wired connection reduces the chance that congestion or wireless retransmissions will make the controls feel sluggish.

Hardware and software checklist

Gather the following before assembling the cabinet:

  • Raspberry Pi: a Pi 3 or newer for the Steam Link route, or a Raspberry Pi 4 for Moonlight’s officially listed client support.
  • Power: an officially supported power supply for the Pi model.
  • Boot storage: a microSD card with Raspberry Pi OS installed and enough free space for the client and normal system operation.
  • Display connection: an HDMI or micro-HDMI cable, depending on the Pi model and display connector. Models with HDMI support can carry audio over HDMI.
  • Network: Ethernet cable for the Pi and host whenever practical. If the board or cabinet layout lacks a usable Ethernet port, use a compatible USB-to-Ethernet adapter.
  • Controls: an arcade joystick and button encoder that appears to the Pi as a keyboard or a gamepad.
  • Host computer: a Windows or Linux gaming PC that can run the DOS game, its emulator or launcher, and the selected streaming host software.

The Pi does not replace the host PC in this design. If you do not have a computer capable of running the game and streaming its output, neither client application can provide a complete cabinet on its own.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Steam Link or Moonlight?

Both clients perform the same basic job, but they suit different libraries and workflows.

Decision point Steam Link Moonlight
Pi support covered here Raspberry Pi 3 or newer. Official Raspberry Pi 4 client.
Best fit A Steam-centered library, including DOS games added as non-Steam shortcuts. A general host-desktop or game-launcher workflow.
Initial setup Install the package, sign in to Steam on the host, then pair the Pi and host. Pair the Pi with the host by local IP, then choose the desktop or launcher exposed by the host.
Host compatibility Streams games the host computer can run through Steam, including non-Steam shortcuts when the host can launch them. Designed to stream a host desktop or game launcher; the host must be configured with compatible streaming software.
Video controls Uses the Steam Link client and host streaming settings. Provides configurable resolution, bitrate and frame rate in the client workflow.
Network guidance Valve recommends wired networking; 5 GHz wireless may work but is not recommended on the Raspberry Pi. Pair and test on the home network before attempting Internet streaming.
Controller work Map the encoder as a keyboard or gamepad and verify the host receives each event. Use the same encoder and host-side mapping, then verify input before launching the game.

Choose Steam Link when your titles already live in Steam or you want the shortest path from a Steam library to the cabinet. Choose Moonlight when selecting a host desktop or launcher is more useful than staying inside Steam. You can also keep both clients available and use the one that matches the game or host workflow.

Rank #2
Raspberry Pi 4 Model B (2GB)
  • Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz
  • 1GB, 2GB, 4GB or 8GB LPDDR4-3200 SDRAM (depending on model)
  • 2.4 GHz and 5.0 GHz IEEE 802.11ac wireless, Bluetooth 5.0, BLE Gigabit Ethernet
  • 2 USB 3.0 ports; 2 USB 2.0 ports.
  • Raspberry Pi standard 40 pin GPIO header (fully backwards compatible with previous boards)

Set up Steam Link on the Raspberry Pi

1. Prepare Raspberry Pi OS

Boot the Pi into Raspberry Pi OS, connect it to the cabinet display and ensure it has network access. A Pi 3 or newer is the supported baseline for the Steam Link application described by Valve.

2. Install the client

Open a terminal and run:

sudo apt update
sudo apt install steamlink

After installation, start Steam Link from the Games menu, or launch it from a terminal with:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
steamlink

3. Put both computers on the same network

Connect the host PC and Pi to the same home network. Ethernet is the preferred arrangement for both ends. If wireless is unavoidable, keep the Pi and host close to the access point and test the game before permanently mounting the hardware.

4. Sign in and pair

  1. Sign in to Steam on the host PC.
  2. Open Steam Link on the Pi.
  3. Select the host shown by the client and complete the pairing code process.
  4. Confirm that the Pi can reach the host before changing cabinet wiring or launching a game.

5. Make the DOS game launchable

If the DOS title is already in the host’s Steam library, select it normally. Steam Link can also stream games added as non-Steam shortcuts when the host can launch them. Add the shortcut on the host, verify that it starts correctly at the host monitor, and then select it from the Steam Link library on the Pi.

6. Launch and test controls

Start the title from the Steam Link interface. Test every joystick direction, fire button, start button and coin button while the game is at its input screen. If a control is wrong, correct the encoder or host mapping before attempting a longer play session.

Rank #3
Raspberry SC15184 Pi 4 Model B 2019 Quad Core 64 Bit WiFi Bluetooth (2GB)
  • Broadcom BCM2711, quad-core Cortex-A72 (ARM v8) 64-bit SoC @ 1. 5GHz
  • 2. 4 GHz and 5. 0 GHz IEEE 802. 11b/g/n/ac wireless LAN, Bluetooth 5. 0, BLE
  • 2 × USB 3. 0 ports, 2 x USB 2. 0 Ports
  • 2 × micro HDMI ports supproting up to 4Kp60 video resolution
  • Micro SD card slot for loading operating system and data storage

Set up Moonlight on a Raspberry Pi 4

Moonlight’s official client list includes Raspberry Pi 4. This route is useful when you want to select the host desktop or a game launcher rather than rely on a Steam library view.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

1. Install and prepare the host software

On the Windows or Linux gaming PC, install and configure a Moonlight-compatible streaming host. Make sure the DOS emulator or launcher can be started from that host environment before pairing the Pi. The host must be able to expose either its desktop or the launcher you intend to use.

2. Install Moonlight on the Pi 4

Install the Raspberry Pi client using the distribution method appropriate to your Raspberry Pi OS setup, then open Moonlight from the Pi’s application menu or command line. The exact package command is not specified in the available documentation, so do not substitute a Steam Link package command here.

3. Pair locally first

  1. Find the host PC’s local IP address.
  2. In Moonlight on the Pi, add or select the host by that IP address.
  3. Read the pairing code shown by Moonlight and enter it on the host.
  4. Wait for the host desktop or launcher to appear in the Pi client.

Moonlight documentation recommends completing pairing on the home network before attempting Internet streaming. A local test isolates cabinet problems from remote-access, firewall and Internet-connection problems.

4. Select the desktop or launcher

After pairing, choose the host desktop or the game launcher exposed by the host. Start the DOS emulator and title from there, then return to the game window if the host desktop is being streamed.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
CanaKit Raspberry Pi 4 4GB Basic Kit with PiSwitch (4GB RAM)
  • Includes Raspberry Pi 4 4GB Model B with 1.5GHz 64-bit quad-core CPU (4GB RAM)
  • CanaKit 3.5A USB-C Power Supply with Noise Filter (UL Listed) specially designed for the Raspberry Pi 4 (5-foot cable)
  • CanaKit USB-C PiSwitch (On/Off Power Switch)
  • Set of 3 Aluminum Heat Sinks for the Raspberry Pi 4

5. Set an initial stream mode

A Raspberry Pi Magazine tutorial uses 720p at 60 frames per second as an example and reports trying 30 frames per second on its network. Those values are starting points, not guarantees for every cabinet. Moonlight lets you adjust resolution, bitrate and frame rate, so begin conservatively and increase quality only after the controls and picture remain stable.

Wire the arcade controls

Use an encoder the Pi can identify

The easiest cabinet controls are built around an encoder that presents each switch as a standard keyboard key or gamepad button. The Pi client must see the device, and the host must receive the resulting event through the stream.

Map controls in a deliberate order

  1. Connect the encoder to the Pi and open the client without starting the game.
  2. Confirm that the operating system or client detects the joystick and buttons.
  3. On the host, map the DOS game’s expected directions and actions to the same keys or gamepad buttons.
  4. Test one direction at a time, followed by each action button.
  5. Test simultaneous inputs, such as moving and firing, because an encoder or mapping can behave differently when multiple switches are pressed.
  6. Only after all events arrive correctly should you mount the controls permanently.

There is no universal mapping for every DOS game. Some titles expect keyboard keys, while others accept a gamepad-style device. The encoder’s presentation and the host-side mapping determine whether the cabinet feels native to the game.

Choose Ethernet over Wi-Fi when possible

Valve’s guidance for Steam Link is explicit: “A wired network (5 GHz wireless may work, but is not recommended on the Raspberry Pi).” Run Ethernet to the host and Pi whenever the cabinet layout allows it. A USB-to-Ethernet adapter is an option for a board or installation without a convenient Ethernet port.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Wi-Fi can be usable, but its result depends on signal strength, channel congestion, distance and other traffic on the network. Do not judge a wireless setup from the desktop alone; test an actual game while pressing several controls quickly.

Best Value
Vilros Raspberry Pi 4 4GB Basic Starter Kit with Fan-Cooled Heavy-Duty Aluminum Alloy Case
  • KEEP YOUR PROCESSOR COOL: The busier a processor gets the more it heats up, leading to sub-optimal performance. To prevent this common issue, this kit includes an aluminum alloy case with a pre-installed fan. The aluminum alloy actively draws the heat from the pi board, while the fan further cools the board and case. These cooling mechanisms will help push the limits of your processor and increase its flexibility.
  • SIZABLE RAM: This Raspberry Pi 4 comes equipped with 4GB of RAM, which is the same amount of RAM or more RAM than many mainstream laptops contain. With 4GB of RAM, your processor will be capable of running retro gaming setups and common computer applications, media players, and much more!
  • SIMPLE TO TURN ON & OFF: This kit includes a USB-C Raspberry Pi 4 compatible power supply with an easy-to-use on/off switch that was designed specifically for the Raspberry Pi 4 model to streamline processing.
  • IMPROVEMENTS FROM PREVIOUS MODELS: This latest model of the Raspberry Pi 4 offers groundbreaking increases in processor speed, multimedia performance, connectivity, memory, and more! The desktop performance of this model is comparable to entry-level x86 PC systems.
  • VERSATILE USE: The Raspberry Pi may have a small processor, but it is a highly adaptable little computer that can replace your desktop PC. Its functions range from practical to nostalgic since it can power an ad-blocking server as easily as it can power an outmoded gaming setup. Other uses include but are not limited to printing from non-wireless printers, playing media, making time-lapse videos, and building multiplayer network game servers and motion-capture security systems.

Keep the first Moonlight pairing and stream test on the same local network. Remote streaming adds variables that can hide a local configuration error. Once the local session is reliable, you can decide whether Internet access is worth the additional setup and risk.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Set resolution, frame rate and bitrate methodically

Start with a moderate mode rather than immediately selecting the highest output your display accepts. For Moonlight, 720p/60fps is an example configuration documented in a tutorial, while 30fps was also tried on that author’s network. Treat those numbers as setup examples rather than performance claims for your hardware.

  1. Begin at 720p and 60fps if the stream is stable and the display suits that resolution.
  2. If the picture stutters or controls feel inconsistent, lower the frame rate or resolution first.
  3. Reduce bitrate when the network cannot sustain the selected mode.
  4. Change one setting at a time and replay the same section of the game so you can identify which change helped.
  5. Raise quality gradually only after the cabinet remains responsive for a full session.

There is no authoritative latency benchmark for this exact DOS-cabinet arrangement. Responsiveness depends on the host, encoder, network path, selected mode and display, so measure success by repeatable play in your own cabinet rather than by a promised number.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Troubleshoot by symptom

The Pi cannot find or pair with the host

  • Confirm that both devices are on the same local network, not isolated guest networks.
  • For Steam Link, verify that Steam is signed in and running on the host.
  • For Moonlight, try the host’s local IP address and complete pairing locally before attempting remote access.
  • Check that the host streaming software is running and that a desktop or launcher is exposed.
  • Restart the client and host after correcting the network or streaming service, then pair again.

The stream stutters

  • Test Ethernet between the host and Pi before changing emulator settings.
  • If you are using Wi-Fi, move the Pi or access point closer and remove competing traffic during the test.
  • Lower resolution, frame rate or bitrate.
  • Check whether the host is busy running another application or encoding workload.
  • Repeat the test on the same local network so remote-network variability is not part of the diagnosis.

The picture is visible but controls do nothing

  • Verify that the Pi detects the encoder before launching the game.
  • Check that each encoder input produces the intended keyboard or gamepad event.
  • Confirm the host receives every direction and button through the streaming client.
  • Review the DOS game’s expected key or gamepad mapping.
  • Test one control at a time, then test combinations such as movement plus fire.

Audio is missing

Check the HDMI or micro-HDMI connection and the display’s audio path. Raspberry Pi models with HDMI support can carry audio over HDMI, but the display or amplifier must also be configured to use that signal.

The DOS title will not start from the client

Launch the emulator and game directly on the host first. For Steam Link, confirm that a non-Steam shortcut points to a host command that actually starts the title. For Moonlight, confirm that the selected desktop or launcher can open the emulator and that the host-side streaming software exposes it.

Which setup should you build?

Choose Steam Link when

  • Your DOS games are already in Steam or can be added as non-Steam shortcuts.
  • You want the cabinet to open into a Steam-oriented library interface.
  • You are using a Pi 3 or newer and prefer the documented package installation with sudo apt update and sudo apt install steamlink.

Choose Moonlight when

  • You have a Raspberry Pi 4 and want an officially listed Moonlight client.
  • You need to select a host desktop or a general game launcher.
  • You want direct client controls for resolution, bitrate and frame rate.
  • You are comfortable pairing by local host IP and configuring compatible host streaming software.

Use both when your library is mixed

A cabinet does not have to be locked to one client. Steam Link can cover titles managed through Steam, while Moonlight can cover a host-desktop workflow. Keep the host PC, network and encoder mapping consistent, and select the client that provides the cleanest launch path for each game.

A reliable first-session checklist

  1. Boot the Pi and confirm the display and audio connection.
  2. Connect the host and Pi by Ethernet if possible.
  3. Start the host emulator, launcher or streaming service and verify the DOS game runs locally.
  4. Open Steam Link or Moonlight on the Pi and complete local pairing.
  5. Confirm the encoder appears as a keyboard or gamepad.
  6. Launch the game and test every cabinet direction and button.
  7. Play for several minutes before mounting the Pi or hiding the network cable.
  8. If stutter appears, test Ethernet and lower stream settings before changing unrelated game options.

Final verdict

Streaming is the practical way to put DOS games in a Raspberry Pi arcade cabinet when you already have a Windows or Linux gaming PC. The Pi handles the cabinet interface; the host handles emulation and rendering. Use Steam Link for the most direct Steam and non-Steam-shortcut workflow, or use Moonlight on a Raspberry Pi 4 when a host desktop or launcher and adjustable stream settings matter more. Whichever route you choose, wired networking and a carefully tested encoder mapping will do more for playability than simply choosing a higher video setting.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Quick Recap

Bestseller No. 1
CanaKit Raspberry Pi 4 4GB Starter PRO Kit - 4GB RAM
CanaKit Raspberry Pi 4 4GB Starter PRO Kit - 4GB RAM
Includes Raspberry Pi 4 4GB Model B with 1.5GHz 64-bit quad-core CPU (4GB RAM); Includes Pre-Loaded 32GB EVO+ Micro SD Card (Class 10), USB MicroSD Card Reader
$159.99
Bestseller No. 2
Raspberry Pi 4 Model B (2GB)
Raspberry Pi 4 Model B (2GB)
Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz; 1GB, 2GB, 4GB or 8GB LPDDR4-3200 SDRAM (depending on model)
$83.00
Bestseller No. 3
Raspberry SC15184 Pi 4 Model B 2019 Quad Core 64 Bit WiFi Bluetooth (2GB)
Raspberry SC15184 Pi 4 Model B 2019 Quad Core 64 Bit WiFi Bluetooth (2GB)
Broadcom BCM2711, quad-core Cortex-A72 (ARM v8) 64-bit SoC @ 1. 5GHz; 2. 4 GHz and 5. 0 GHz IEEE 802. 11b/g/n/ac wireless LAN, Bluetooth 5. 0, BLE
$92.97
Bestseller No. 4
CanaKit Raspberry Pi 4 4GB Basic Kit with PiSwitch (4GB RAM)
CanaKit Raspberry Pi 4 4GB Basic Kit with PiSwitch (4GB RAM)
Includes Raspberry Pi 4 4GB Model B with 1.5GHz 64-bit quad-core CPU (4GB RAM); CanaKit USB-C PiSwitch (On/Off Power Switch)
$139.99
Bestseller No. 5
Vilros Raspberry Pi 4 4GB Basic Starter Kit with Fan-Cooled Heavy-Duty Aluminum Alloy Case
Vilros Raspberry Pi 4 4GB Basic Starter Kit with Fan-Cooled Heavy-Duty Aluminum Alloy Case
SD Card is NOT Incuded-Customer Must provide own SD card properly flash before use.
$136.99

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

arcade cabinetDOS gamesGame StreamingMoonlightRaspberry Piretro gamingSteam Link

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.