Skip to content
altstrument

FM-1 Doom E1M1

Firmware for FM-1 (M-VAVE)

Port of Doom's first level (E1M1) to the FM-1, with title screen, sound and music, on rp2040-doom and Felucca's hardware layer, installed from a browser page.

by Sean O'Hollaren (seanohollaren)

ActiveSource: openGPL-3.0-only

Brick risk. Flashing this carries a known, documented risk of damaging the device.

Distribution
Browser installer (WebMIDI / WebUSB)
License notes
Engine is GPL-2.0-or-later (Doom via Chocolate Doom and rp2040-doom, whose additions are BSD-3-Clause); Felucca's hardware layer is GPL-3.0-only. No game data is stored in the repository.
Source
github.com https://github.com/seanohollaren/fm1-doom
Homepage
doom.deadlockinteractive.com https://doom.deadlockinteractive.com/

Description

Squeezes one level into the chip's 1 MB of flash and 512 KB of RAM, drawing on the 240x240 screen with the keys and knobs as controls. The firmware keeps Felucca's update loader, accepts a new firmware over USB in every state and never writes the boot code; holding HOME at power-on gives a screen that only waits for an update. Game data is not in the repository: the installer page fetches id Software's shareware DOOM1.WAD into the visitor's browser (or takes your own copy) and prepares it there. Separate from the FM-1 Doom entry by zvenson, which uses a different engine and the Freedoom data.

Install notes

Chrome or Edge over USB. The author describes it as experimental, installed and played on one FM-1. A failure before the recovery screen runs can only be fixed with extra hardware (see NOTES.md, Recovery). tools/fm1boot.py and tools/fm1restore.py back up and restore the whole flash through the chip's USB boot mode.

Version history

FM-1 Doom E1M1 version history
VersionDateNotes
main @ bde88932026-10-13No tagged releases; this is the latest commit.

Back to FM-1