Repository navigation
5DO 1.4.0
5DO 1.4.0
Release date: 2026-11-07
Status: Feature and accuracy update on the 1.3.0 field-handling release.
Highlights
- Online cover art (UX-26). An optional content-addressed WebP catalog at
https://assets.purelogiccode.com/5do/v1provides 473 unique covers and maps 645 of
653 4DO game IDs. 5DO downloads the catalog and only the covers it needs, verifies every
image by SHA-256, and supports an optional ~27 MB bulk pack for offline use. Matching
uses exact game IDs, annotation stripping, token/no-space/subtitle aliases, and
Jaro-Winkler fallback with sequel-number guards. Settings > Covers and the
covers update/download/match/verify/cacheCLI commands expose the feature. - Latency controls (VID-12). Settings > Video adds 0-2 frame run-ahead, a 0-8 frame
presentation delay, and VRR/adaptive-sync presentation. Settings > Audio and
--audio-sync -250..250add a host A/V offset. Per-game profiles store all four values,
the FPS overlay reports software input-poll-to-frame-submit telemetry, and run-ahead
auto-disables after repeated frame-budget overruns. The run-ahead snapshot is a reusable
uncompressedMachineStateSnapshot; machine-state section v2 stores only visible lines
and copies pixels as blocks, and the RAM loader clears only the previously addressable
tail. - Unsigned-disc support (SYS-06). Settings > Paths and
--allow-unsigned-discs
disable the BIOS media RSA check in memory so unsigned, homebrew, and arcade discs can
boot. A known No-RSA BIOS is preferred when available; otherwise a compatible retail
1 MB image is patched with the documented two-site bypass. The BIOS file is never
modified. Already patched images and known No-RSA file names are accepted, and an
incompatible image is rejected with an explicit error. - Exact NTSC field clock and rational VDL. NTSC now runs at 60000/1001 (59.94 Hz,
208,541 cycles per field at 12.5 MHz) instead of 60.00 Hz.Quartzuses an exact
rational VDL accumulator, removing the per-batch 8.24 rounding that ran the scanline
clock about 0.09% fast. Quartz state is version 4; version 1-3 states convert their
8.24 fraction on load. - VDLP and audio fixes. Disabled bitmap DMA now renders a black line instead of
retaining the previous field, and the background word is converted from 8-bit RGB to
the 5-bit format the renderers expect. Live OpenAL device switching uses the
thread-local context extension, and the Settings test tone queues the whole second up
front so Windows sleep granularity cannot insert silent gaps. - Differential evidence. The harness now compares CD command counts, opcode hashes,
full command sequences, per-command cycle stamps, CPSR, instruction counts, and sample
deltas. The 50-title panel captured 50/50 with 0 errors; 32/50 titles match every
frame hash at frames 60/120/300 and every sample delta is within 9. At 3,000 frames
Space Ace, Wolfenstein 3D, Alone in the Dark, and Lemmings match Opera's hash; Road
Rash still diverges.
Changed
FiveDoMachine.FramesPerSecondnow returns the exact 59.94 Hz field rate for host
pacing; the nominalFieldRateremains 60/50 for display and JSON compatibility.AppSettingsschema is version 7. Version 5 added unsigned-disc support, version 6
added latency options, and version 7 added the online cover options. Older files load
with documented defaults.- Machine save-state section v2 stores only visible VDL lines and preserves frame
dimensions and pixel aspect across load/restore. CoreRunnerinvalidates the run-ahead snapshot after any external machine action
(disc swap, state load, BIOS/NVRAM change) even when the frame counter does not move.LatencyTelemetry.MaxMillisecondsnow describes the rolling window rather than the
maximum ever observed.
Requirements
- The .NET 10 Runtime installed on the host. The bundles are framework-dependent and
do not include the runtime. Choose the x64 or arm64 bundle that matches your OS. - A legally obtained 1 MB 3DO BIOS ROM (for example
panafz1.bin). - Legally obtained 3DO disc images in ISO, BIN, CUE+BIN, or CHD format.
- Optional: network access for the online cover catalog. Local covers and the core
emulator work offline.
Download
| System | Bundle |
|---|---|
| Windows x64 | 5do-1.4.0-win-x64.zip |
| Windows arm64 | 5do-1.4.0-win-arm64.zip |
| Linux x64 | 5do-1.4.0-linux-x64.tar.gz |
| Linux arm64 | 5do-1.4.0-linux-arm64.tar.gz |
| macOS x64 | 5do-1.4.0-osx-x64.tar.gz |
| macOS arm64 | 5do-1.4.0-osx-arm64.tar.gz |
Each bundle contains the framework-dependent single-file CLI and desktop app, the
README/license/notices, whatsnew.md, and the legal/release docs. SHA256SUMS.txt is
attached to the GitHub release.
Known limits
- Run-ahead is CPU-bound and opt-in. It is incompatible with rewind history and
deterministic movie recording/playback; the frontend disables those features while it
is active. - VRR is a display/driver feature. 5DO can avoid the blocking swap interval, but actual
adaptive-sync activation depends on the GPU, driver, monitor, and desktop. - The online cover catalog is optional and is not included in any release bundle. A wrong
fuzzy match should be corrected with the threshold or a local cover. - The 50-title differential panel still has unresolved PC/CPSR phase and CD-cadence
differences. Frame-hash matches are evidence, not a full accuracy claim. - Windows x64 is the validated target. Linux x64 full-suite and CLI/frontend smoke
validation pass; GPU presentation remains preview/best-effort under llvmpipe/SSH.
macOS and arm64 bundles are cross-published and architecture-validated.
Validation
- Full suite: 1,905/1,905 passing in Debug and Release.
dotnet build 5DO.sln -c Debug: 0 warnings, 0 errors.dotnet format 5DO.sln --verify-no-changes --no-restore: clean.jb inspectcode 5DO.sln --severity=WARNING --no-updates: 0 results.- Frontend
--smoke-test, CLIselftest, and the differential harness checks are part
of the release gate.