This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

DOOM

    Yes, it runs DOOM. E1M1 — Knee-Deep in the Dead — renders on the badge’s e-paper panel at a couple of frames per second, in four levels of grey, with the level’s music picked out on the piezo buzzer.

    It is a slideshow, and it is genuinely playable.

    How to install it

    Getting DOOM running takes two steps, because the game data is far too big to sit on the badge’s little USB drive. The firmware goes into the badge’s program memory over USB; the game data goes into the separate 2 MB QSPI flash chip over a serial connection.

    1. Flash the DOOM firmware on the Flash page, the same way as any other image, then power-cycle the badge.
    2. Upload a WAD with the loader below.

    Upload a WAD

    This browser cannot upload. Web Serial is required, and only Chromium-family browsers ship it (Chrome, Edge, Brave, Opera, Arc). Firefox and Safari do not. You can still send the blob from a terminal with a YMODEM tool such as sb or lrzsz.

    1 Choose a WAD

    No WAD chosen yet.

    2 Put the badge in upload mode

    Reset the badge while holding Cancel. It does this on its own too, whenever no WAD has been uploaded yet. The screen says it is waiting for a transfer.

    disconnected

    Pick the badge's serial port when the browser asks — on Linux it is usually /dev/ttyACM0, on macOS a usbmodem entry, on Windows a COM port.

    3 Upload

    idle

    Nearly two megabytes over a serial line takes a few minutes. Leave the tab in the foreground and do not unplug the badge.

    Diagnostics

    Controls

    InputAction
    JoystickMove, strafe and turn
    Joystick press (Fire)Shoot
    ExecuteUse / open doors
    CancelCycle weapon — and, held at boot, enter WAD upload mode
    Execute + CancelToggle the music

    If something goes wrong

    The browser never shows a serial port. The badge only presents its serial console in WAD upload mode. Reset it while holding Cancel and try again.

    “Timed out waiting for the badge to ask for data”. The badge is connected but not in upload mode, so nothing is asking for a transfer. Reset holding Cancel.

    The upload fails part-way. Nothing is damaged — the badge simply has no usable WAD and drops back into upload mode. Reconnect and send it again.

    DOOM boots but complains about missing game data. The firmware is installed and the WAD is not, which is exactly what you get after a fresh flash. Upload it above.

    Firefox or Safari show no Connect button. Neither ships Web Serial. Use a Chromium-family browser, or send the blob from a terminal with a YMODEM tool:

    sb --ymodem-1k e1m1.blob < /dev/ttyACM0 > /dev/ttyACM0
    

    About the game data

    Only one level fits: the blob offered above is about 1.8 MiB, roughly 92% of the badge’s QSPI flash. It is built from the freely distributable shareware doom1.wad, trimmed and compressed by the asset pipeline in the cyberaegg-doom repository. DOOM and its game data remain the property of id Software.

    To build your own from a copy of doom1.wad you already have:

    bash tools/build_assets.sh    # doom1.wad -> build/e1m1.blob
    

    Then pick that file in the loader instead of the prepared one.

    Source

    The port lives at rarenerd/cyberaegg-doom. It is a fork of next-hack/nRF52840Doom (of prBoom and GBADoom lineage), re-fitted to the badge’s e-paper display, buttons and power budget. The DOOM engine is licensed under the GPL.