How a Steam Controller ran Zork: custom firmware emulates Intel 8080 and CP/M

How a Steam Controller ran Zork: custom firmware emulates Intel 8080 and CP/M

Owen Feldman has demonstrated an unusual capability of the Steam Controller: running the classic text adventure Zork entirely on the device itself. Although the controller was designed purely as an input device, it can now execute games independently, without a PC connection.

To achieve this, Feldman wrote a Rust program that emulates the Intel 8080 CPU and the CP/M operating system. He then ported this emulator to the Steam Controller's internal processor, which handles CPU and memory emulation. Since the controller lacks a keyboard and screen, all input and output is streamed over USB. The CP/M disk image resides in the controller's internal memory, while the Zork game data is also streamed via USB.

The key to this project was an undocumented tool included with Steam that allows firmware flashing on the controller. Valve also provides the original firmware in the same folder — it is unsigned and protected only by a simple CRC checksum. Feldman bricked his controller several times while experimenting with the tool and loading his own firmware, but he managed to recover it each time.

The Steam Controller is likely the most unusual device to run CP/M in recent years. However, Feldman himself notes that this trick is less impressive than the auto-docking hack demonstrated a few months ago. The project is documented on his personal website, where he explains the technical details and the steps required to replicate the experiment.

Slate (Sl8) — the new social network. Post, grow your audience and earn — plus staking rewards that actually pay.
Invite codehXA6hX
Join Slate