# Doom Deck

Print files and source code for our four-screen Doom Deck.

**Manual setup:** follow [SETUP.md](SETUP.md). **Using an agent:** extract this whole ZIP, open its folder in your coding agent, and ask it to follow [AGENTS.md](AGENTS.md). Keep the files together.

## Connections

```text
Windows PC running Doom
    │ USB data + power
    ▼
Waveshare P4 / main 5-inch display
    └── private Wi-Fi ──► health / ammo / mission round displays
                          ▲ power only through their USB cables
```

The round displays need wired **power only** during play. The main board sends their HUD data over private Wi-Fi. Plug the large display directly into the PC using the P4 board's **USB** port. Use **USB TO UART** for programming.

Doom, controls and sound run on the PC. Our software streams the game window to the main display. The round screens draw their HUDs locally.

## In this pack

- `prints/`: full front plate, keeper, carrier, legs, cross tray/brace, switch strips and TPU feet. STL units are millimetres; import at 100% scale. `legs-and-brace.stl` combines the legs and cross tray, so do not print duplicates of its individual files.
- `experiments/doom_hud/`: round-screen firmware source, telemetry bridge and wireless protocol.
- `experiments/p4_pc_stream/pc/`: PC capture and USB streaming code.
- `source-changes.json`: our modifications to Crispy Doom and the Waveshare P4 example. `prepare.py --sources` downloads their pinned sources and applies these changes locally.
- Setup/build/launch scripts, manual instructions and agent instructions.

The front plate is the v12 part we printed. Use Galaxy PLA for the face, PLA+ for the carrier, silk PLA for legs/brace, and TPU 95A for the feet. Slice the STL files for your printer.

## Download Doom separately

Our build uses **Crispy Doom 7.0** with our telemetry additions and the **Doom 1.9 shareware episode**. The stock Crispy Doom executable alone will not drive the round-screen HUDs; SETUP.md builds the patched version.

- [Crispy Doom source and release](https://github.com/fabiangreffrath/crispy-doom/releases/tag/crispy-doom-7.0)
- [Original Doom shareware download](https://www.gamers.org/pub/idgames/idstuff/doom/doom19s.zip) ([archive listing](https://www.gamers.org/pub/idgames/idstuff/doom/))

No Doom game files, artwork, music, third-party executables or vendor libraries are bundled. The setup obtains dependencies separately and extracts the round-screen graphics from your local shareware WAD. Firmware is supplied as source so each builder can use their own board addresses and wireless credentials.

Hardware: one **ESP32-P4-WIFI6-Touch-LCD-5**, rev3.x, and three **ESP32-S3-Touch-AMOLED-1.75** boards (not 1.75C). See SETUP.md for versions, flashing and power details.

[JustineBuilds.app](https://justinebuilds.app) · JustineBuildsOfficial@gmail.com
