keepcalculator

06 Numbers and Powers

Play Doom on a Raspberry Pi Pico: What Really Works

Card No. 06·17790 · Updated · Standard formula, shown below

You can play a version of Doom on a Raspberry Pi Pico, but not by simply copying the original PC game onto the board. The practical route is a Pico-compatible Doom port, matching display and controls, and a legally obtained Doom data file; the same approach applies to other tiny microcontrollers when a port exists.

What You’ll Need

  • A Raspberry Pi Pico or Pico W, or another microcontroller explicitly supported by the port. Check whether the instructions target the RP2040 chip and whether your board has enough flash and memory.
  • A small screen and wiring supported by that port. Many builds use a color SPI display, but pin assignments, resolution, and controller type vary.
  • Controls such as buttons or a small joystick, wired to the pins specified by the project.
  • A USB data cable and a computer for downloading and flashing the firmware. Some cables provide power only and cannot transfer files.
  • Firmware and build instructions from a reputable project repository, plus a Doom WAD data file you are entitled to use. The shareware release is commonly used for demos; full-game data files are not interchangeable with the firmware.
  • A soldering iron and basic soldering supplies if your display or controls do not connect through headers. Follow the board and display documentation when wiring.

Step-by-Step

  1. Choose a port before buying or wiring parts. Search for a Doom port specifically supporting your board, then read its README and build instructions. Confirm the exact board revision, display controller, screen resolution, button layout, required WAD name, and available flash storage. A port for a different microcontroller may not run on the Pico even if both boards look similar.
  2. Gather the exact hardware configuration. Make a note of the display’s pin labels and the port’s pin map. Check voltage requirements: Pico GPIO uses 3.3 V logic and is not 5 V tolerant. Do not connect a 5 V signal directly to a GPIO pin. Use only the display power and signal connections specified for your hardware.
  3. Get the source and toolchain the project specifies. Follow the repository’s build guide rather than a random precompiled file. If the project requires a Pico SDK, compiler, or build system, install the versions and dependencies it documents. Open the project’s example configuration and set the board and display options exactly as described. Avoid changing pin definitions unless you understand how the firmware uses them.
  4. Build the firmware, or download a matching release. If a release provides a UF2 file for your exact board, use it. Otherwise build from source using the project’s documented commands. A successful build should produce a firmware file, often with a .uf2 extension. Read the build output and confirm it completed without errors; do not rename an unrelated firmware file and assume it will work.
  5. Prepare the Doom data file. Obtain a WAD legally, such as a shareware data file where available, or use a data file from a copy you own according to its terms. The port’s documentation should identify supported WADs and how to install them. Some firmware bundles the WAD; other builds expect a specific filename on a removable card or in a particular flash location. Do not assume any WAD will fit or be compatible.
  6. Wire the display and controls with power disconnected. Match each signal to the port’s pin map: common connections include power, ground, clock, data, chip select, and display command/data. Button inputs may use internal pull-ups, so the wiring can require a button between a GPIO pin and ground. Follow the project diagram, check for shorts, and keep all signal voltages within the board’s limits before plugging in USB.
  7. Put the Pico into bootloader mode. Disconnect USB, hold the board’s BOOTSEL button, and connect it to the computer with a data-capable cable. Release the button when the computer shows the board as a USB storage device. On boards without this exact bootloader process, follow that board’s documented firmware-flashing method instead.
  8. Flash the firmware. Copy the correct UF2 file to the bootloader drive, or use the flashing method described by the project. The drive normally disappears and the board restarts after a valid copy. Do not unplug it while the copy is in progress. If using a command-line tool, select the documented target and verify the tool reports success.
  9. Install the WAD as the port expects. If the firmware needs a separate WAD, use the specified storage method and exact filename. For a microSD setup, use a card and filesystem supported by the port, and eject it cleanly from the computer before inserting it. If the project uses a generated header or embedded data, follow its conversion/build instructions instead of copying files to an arbitrary folder.
  10. Power up and test input. Reconnect power and watch the screen for startup text or a title screen. Try each control and check that movement, firing, and menus respond as expected. If the display stays blank, turn off power before inspecting wiring. Compare every connection against the selected display configuration, not just a pinout for a similar-looking board.

Common Mistakes

  • Using a PC Doom executable: a Pico cannot run the desktop game binary directly. It needs a port compiled for its processor and runtime.
  • Mixing firmware and WAD files: the port is the program; the WAD contains game data. Installing one does not necessarily provide the other.
  • Choosing hardware by appearance: screens with similar sizes may use different controllers or pinouts. Verify the exact model.
  • Ignoring voltage limits: applying 5 V to a Pico GPIO can damage the board. Confirm both power and signal levels before connecting.
  • Following instructions for a different board: pin numbers, bootloaders, storage, and memory differ among microcontrollers.

Tips

  • Start with the project’s simplest supported display-and-button setup before adding sound, a case, or extra controls.
  • Keep a copy of the known-good firmware, WAD, build settings, and pin map together. Record any changes so you can restore a working setup.
  • Test the display and buttons with a basic example, if the project provides one, before troubleshooting the full game.
  • Use the repository’s issue tracker or documentation to check whether a board revision or display module is known to work.

Troubleshooting

The computer does not show a bootloader drive: try a known data-capable USB cable and another USB port. Disconnect other wiring, then retry BOOTSEL while connecting. If the board still does not appear, check the board manufacturer’s bootloader instructions and the computer’s USB device list.

The UF2 copy fails or the board does not restart: confirm the file is for the correct chip and board, and that the bootloader drive is still available. Re-enter bootloader mode and copy the file again. A firmware image for another Pico variant or another microcontroller may be rejected.

The screen is blank, scrambled, or shows only a backlight: switch off power and check ground, power, and every display signal against the selected configuration. Confirm the controller and resolution settings. A backlight can turn on even when communication pins are wrong.

The game reports a missing data file or returns to a menu: check the required WAD name, location, and supported format in the port documentation. Make sure the file is complete and that the storage device or embedded-data build is set up correctly.

Buttons do nothing or behave backward: verify the pin assignments and whether the firmware expects active-low inputs, internal pull-ups, or a particular button order. Test one button at a time and check for loose connections or solder bridges.

The build runs out of space or fails: confirm the selected board target and build options, then follow the project’s storage guidance. Remove optional features only when the instructions explain how; changing memory settings blindly can cause crashes.

Frequently Asked Questions

Can a Raspberry Pi Pico run the original Doom?
Not the original desktop executable. A compatible port must be compiled for the Pico, and it may have limits or use a different display and control setup.

Does the Pico include a screen?
No. The standard Pico board has no built-in display, so you need a supported external screen and suitable wiring.

Do I need a WAD file?
Usually. The firmware port often needs separate game data. Check its documentation for compatible files and legal ways to obtain them.

Will a Pico W work?
Possibly, but do not assume it. Use a build that explicitly supports the Pico W or the relevant RP2040 board configuration; wireless capability is not required for Doom.

Can I use any small microcontroller?
No. It needs a compatible port and adequate memory, storage, display support, and input options. Confirm those requirements before choosing a board.

Is soldering always required?
No. A board and display with compatible headers or a prepared adapter can avoid soldering, but the connections still must match the project’s pin map.

Related

Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.

More cards in this drawer

The whole Numbers and Powers drawer →