Skip to content

Releases: openfpgaOS/Doom

Doom for Analogue Pocket v1.2.0

Choose a tag to compare

@thinkelastic thinkelastic released this 13 Sep 23:43

Doom 1.2.0 reduces CPU work in complex scenes while preserving gameplay, rendering precision, and save compatibility.

  • Batch opaque wall columns and reuse exact wall geometry and plane coefficients.
  • Reduce GPU command setup, repeated header copies, and visplane clearing.
  • Keep the compact wall loop and MIDI envelope tick in fast RAM.
  • Avoid repeated MIDI pitch and volume calculations while preserving the 1 kHz envelope updates and mixer output.

Validation includes 24 gameplay/audio regressions, 300,000 exact wall/plane parameter comparisons, more than 1.7 million matching wall columns, and 711,157 identical MIDI mixer/state records. Fresh Pocket and MiSTer executables reproduce the previously tested optimized binaries exactly. Heavy SIGIL scenes can still miss the 60 FPS frame budget; this release does not promise a locked 60 FPS throughout either episode.

This Pocket release is one ZIP with the standard Cores/, Assets/, and Platforms/ folders. Extract it at the SD-card root and merge the folders. Supply your own WADs under Assets/doom/common/; WAD files are not included.

The bundle includes the optimized openfpgaOS 0.9.5 os25 core at 100 MHz. The rebuild reproduces the existing core exactly and passes all 276 Pocket GPU acceptance checks. It remains an overclocked build: two slow-corner setup checks fail, with worst slack -0.645 ns; the other 18 timing checks pass. Physical Pocket FPS and long-duration stability have not been measured.

Doom for MiSTer v1.2.0

Choose a tag to compare

@thinkelastic thinkelastic released this 13 Sep 23:43

Doom 1.2.0 reduces CPU work in complex scenes while preserving gameplay, rendering precision, and save compatibility.

  • Batch opaque wall columns and reuse exact wall geometry and plane coefficients.
  • Reduce GPU command setup, repeated header copies, and visplane clearing.
  • Keep the compact wall loop and MIDI envelope tick in fast RAM.
  • Avoid repeated MIDI pitch and volume calculations while preserving the 1 kHz envelope updates and mixer output.

Validation includes 24 gameplay/audio regressions, 300,000 exact wall/plane parameter comparisons, more than 1.7 million matching wall columns, and 711,157 identical MIDI mixer/state records. Fresh Pocket and MiSTer executables reproduce the previously tested optimized binaries exactly. Heavy SIGIL scenes can still miss the 60 FPS frame budget; this release does not promise a locked 60 FPS throughout either episode.

Install companion openfpgaOS core 0.9.5, extract doom-v1.2.0.zip at the SD-card root, and run Scripts/openfpgaos-doom-setup.sh. Existing saves are preserved. Supply your own WADs.

On the SS1 reference E1M1 save, a full rotation measured 59 FPS minimum and 60.01 FPS average at both 100 MHz and 90 MHz, with no presentation intervals over 25 ms. These are scene-specific measurements. The companion core retains the requested 100 MHz default with a known timing miss of −0.114 ns; see its release notes.

The ZIP is the manual-install package. The loose assets and database support MiSTer Downloader. Full validation details are in the release report.

Doom for MiSTer v1.1.26

Choose a tag to compare

@thinkelastic thinkelastic released this 12 Sep 04:50

Doom now computes GPU plane bounds with native floating-point maximum instructions, reducing branches in the renderer. Normal link-order profiling shows a small 0.2–0.4 ms improvement in the heavy views. Game rules, save compatibility and the 35 Hz simulation are unchanged.

Install the companion MiSTer core v0.9.4 for the DirectFB audio refill fix. SS1 tests at 90 MHz and 100 MHz show that core eliminates the measured mixer sample deficit without a measurable frame-rate cost. Listening confirmation is still needed, and the heaviest scenes still fall below 60 FPS.

The fresh normal executable is byte-identical to the build tested on the SS1. All 200,000 finite plane-encoding comparisons and 24 smoothness regression scenarios pass. The package includes no profiling or automated input.

Extract doom-v1.1.26.zip at the SD-card root and run the setup script, or update through MiSTer Downloader. Existing working game data and saves are preserved; commercial IWADs remain user-supplied. Downloader payload URLs are pinned to this release. SHA256SUMS.txt is included.

Doom for Analogue Pocket v1.1.25

Choose a tag to compare

@thinkelastic thinkelastic released this 11 Sep 20:42

Stability improvements:

  • Retaining buffered music and retrying failed reads.
  • Recovering delayed audio transfers safely.
  • Waiting for pending frame presentation while continuing to service audio, reducing menu-related GPU stalls.

Doom for MiSTer v1.1.25

Choose a tag to compare

@thinkelastic thinkelastic released this 11 Sep 13:15

Opening or navigating the MiSTer OSD no longer overfills Doom's GPU command queue while frame presentation is paused. Audio continues to be serviced until rendering can resume.

  • Keep the last valid PCM music buffer playing when a read fails or the file bridge is unavailable, then retry without skipping track data.
  • Recover delayed or missed DMA completions and avoid reusing a staging buffer while a transfer is still active.
  • Handle failed WAD seeks and fall back to MIDI if the optional music WAD or initial PCM buffer is unavailable.
  • Preserve game rules, save compatibility and the 35 Hz simulation.

The executable was rebuilt in a fresh directory and matches the version tested on the SuperStation One. Six OSD navigation cycles passed with MiSTer's OSD visibility log confirming that the menu was open. All 15 recovery test groups pass under ASan/UBSan. These checks do not establish that every reported audio or frame-rate issue is resolved.

Install doom-v1.1.25.zip at the SD-card root and follow INSTALL.txt, or update through MiSTer Downloader. Run the setup script after updating. Existing working game data and saves are preserved; commercial IWADs remain user-supplied. Compatible with openfpgaOS MiSTer core v0.9.2 and later.

Doom for Analogue Pocket v1.1.24

Choose a tag to compare

@thinkelastic thinkelastic released this 09 Sep 23:49
  • Bump Doom to 1.1.24 with stability and rendering fixes
  • Release Doom for MiSTer v1.1.23
  • mister: sync mkgame --all-elfs (multi-engine self-contained images)
  • mister: boot-shell template model; doom shell 1 GB, heretic/hexen 128 MB
  • setup: storage-priority games search; republish hexen DB in lockstep
  • setup: storage-priority games search; republish heretic DB in lockstep
  • setup: storage-priority games search; republish doom DB in lockstep
  • mister: republish doom DB in lockstep with its release assets
  • mister: Downloader DBs for heretic and hexen
  • mister: pin DB asset URLs to the release tag; serve db_url from raw
  • sdk: per-variant boot images in one game folder
  • release: bump mister game versions (2026-08-13 wave)
  • mister: heretic/hexen bundle updates + doom freeware CSV
  • sdk: sync mister packaging tooling
  • Doom v1.1.21: Downloader DB on release assets
  • Fix URL
  • MiSTer support

Doom for MiSTer v1.1.24

Choose a tag to compare

@thinkelastic thinkelastic released this 10 Sep 14:28

This release brings the v1.1.24 rendering and stability fixes to MiSTer, including improvements for heavy SIGIL scenes.

  • Reduce repeated wall calculations and cache geometry calculations for each view while preserving rendering results.
  • Correct menu/HUD redraws when closing menus or changing the view.
  • Improve music voice and file handling; validate MIDI chunks and SoundFont sample ranges.
  • Check WAD directories, lump bounds and allocation sizes before use.
  • Keep shared SDK build objects private to each game.

Game rules and the 35 Hz simulation remain unchanged. Install the companion openfpgaOS MiSTer core v0.9.2 to receive the audio voice-rearming fixes and the timing-closed 100 MHz build.

Unzip doom-v1.1.24.zip into the SD-card root and follow INSTALL.txt, or update through MiSTer Downloader. Run the setup script after updating. Existing game data and saves are preserved; commercial IWADs remain user-supplied.

Validation: fresh build with the official RISC-V container, 24 sanitizer regression scenarios, 16 WAD/allocation checks, 15 SoundFont checks and MIDI scheduler regressions. The committed source also passed 14 DOOM, DOOM II and SIGIL demo comparisons covering 31,967 gameplay tics. These tests do not establish sustained 60 FPS or resolve every reported audio dropout. The new executable was not hardware-tested during release preparation because the SS1 was unreachable.

Doom for MiSTer v1.1.23

Choose a tag to compare

@thinkelastic thinkelastic released this 06 Sep 20:57

This release fixes DOOM's MiSTer frame pacing and music playback, with renderer optimizations and several correctness fixes.

  • Use the correct 60 Hz display timing on MiSTer and remove unnecessary waits that caused periodic stalls under load.
  • Speed up sprite sorting and avoid software 64-bit divisions for axis-aligned walls.
  • Precache monster attack and explosion sprites to reduce first-use loading stalls.
  • Fix leaked music voices and MIDI track timing after heavy event bursts; skip unchanged sound-effect volume updates.
  • Fix out-of-bounds sprite sampling, invalid configuration bindings, sound allocation failures, and black screens when changing gamma.

Game rules, 35 Hz simulation, resolution, and audio polyphony are unchanged.

Update the openfpgaOS core to v0.9.1 as well to receive the FPGA audio-output fix. Existing game data and saves are preserved. New installations should follow the package's INSTALL.txt.

Validation: 20 focused sanitizer scenarios, MIDI/synth regressions, three recorded demos covering 7,674 gameplay tics against a reference with the same sprite-bounds correction, and builds for all three shared-shim games. This DOOM executable is the same one deployed on SuperStation One. Sustained 60 FPS across all maps and boards is not established by these tests.

Hexen for MiSTer v1.0.4

Choose a tag to compare

@thinkelastic thinkelastic released this 13 Aug 16:31
  • mister: heretic/hexen bundle updates + doom freeware CSV
  • sdk: sync mister packaging tooling
  • Doom v1.1.21: Downloader DB on release assets
  • Fix URL
  • MiSTer support
  • Updated core
  • Fix composite-column post walk (SIGIL II stall), keyboard input
  • Update runtime to the re-swept fleet
  • Version number and minor fix
  • Fixes and preparing it for MiSTer
  • Performance fixes
  • Improved CD audio playback
  • Adding perf improvements to Hexen and Heretic
  • Updated version number
  • Save freeze regression fix
  • Music streaming and fixes
  • Performance improvements
  • Increase doom version number
  • Fixed performance regression

Heretic for MiSTer v1.0.4

Choose a tag to compare

  • mister: heretic/hexen bundle updates + doom freeware CSV
  • sdk: sync mister packaging tooling
  • Doom v1.1.21: Downloader DB on release assets
  • Fix URL
  • MiSTer support
  • Updated core
  • Fix composite-column post walk (SIGIL II stall), keyboard input
  • Update runtime to the re-swept fleet
  • Version number and minor fix
  • Fixes and preparing it for MiSTer
  • Performance fixes
  • Improved CD audio playback
  • Adding perf improvements to Hexen and Heretic
  • Updated version number
  • Save freeze regression fix
  • Music streaming and fixes
  • Performance improvements
  • Increase doom version number
  • Fixed performance regression