Owen Feldman has managed to get Zork on the Steam Controller running by writing a Rust-based emulator for the Intel 8080 CPU and CP/M, then porting the whole thing to the controller’s own internal processor. Input and output are streamed over USB, since the hardware naturally lacks a keyboard or a screen. It is, to put it mildly, not the intended use of the device.
Running Zork on the Steam Controller: How It Actually Works
The architecture Feldman settled on is genuinely clever. The CP/M disk image lives on the controller itself, but the Zork disk data is streamed over USB alongside the I/O. The Steam Controller’s internal processor handles CPU and memory emulation entirely on its own, effectively becoming a self-contained CP/M machine that just happens to need a USB tether for anything resembling a terminal.
Getting there was not painless. Feldman describes the custom Rust programme as “1514 lines of pain”, according to PC Gamer. That figure alone gives a sense of the yak-shaving involved in coaxing a 1980 Infocom text adventure out of a gamepad’s microcontroller.
An Undocumented Valve Tool and a Couple of Bricks
The route onto the hardware itself involved what appears to be an undocumented tool shipped with Steam that allows firmware to be flashed onto the controller. Feldman found it sitting there, apparently included by Valve for internal use. Helpfully, the original firmware was in the same folder, unsigned and protected only by a simple CRC checksum rather than anything more robust.
That combination of an undocumented flasher and a lightly protected firmware turned the project into something of a tightrope walk. Feldman bricked his controller more than once while experimenting, though he managed to recover it each time. The process is documented on his personal website for anyone determined enough to follow along, and brave enough to risk a $99 controller in the process, that being the retail price of the Steam Controller, as PC Gamer notes.
The risk is real. The undocumented nature of the flashing tool means there is no official safety net, and the CRC-only verification on the firmware is the only thing standing between a curious experimenter and an expensive paperweight. Feldman’s willingness to brick his own hardware a couple of times in the pursuit of CP/M on a gamepad is, frankly, the correct attitude.
Where This Sits in the Grand Tradition of Running the Wrong Thing
The Steam Controller is already a somewhat unusual piece of hardware, built around a pair of haptic trackpads and a fairly capable internal processor. Using that processor to emulate an Intel 8080 and run Zork on the Steam Controller sits neatly in the tradition of getting entirely the wrong software onto entirely the wrong machine, which is, of course, one of the finer hobbies in computing.
CP/M itself was the dominant microcomputer operating system of the late 1970s and early 1980s, running on Z80 and 8080-based machines before MS-DOS reshaped the landscape. Seeing it emulated on a gamepad’s internal hardware is the kind of thing that would have seemed like science fiction to anyone hunched over a CP/M terminal in 1980.
The Zork on Steam Controller project sits alongside, though does not quite displace, the auto-docking hack referenced previously as one of the more inventive things done with this particular piece of hardware. Feldman’s own write-up on his personal website gives the full technical breakdown for anyone who wants to follow the 1514 lines of pain from the beginning.

