Repository navigation
5DO 1.3.0
5DO 1.3.0
Release date: 2026-11-06
Status: Presentation feature update on the 1.2.2 performance/library release.
Highlights
- 480i/240p field handling. Interlaced titles can now be presented with correct
field handling instead of showing one field as a full frame. Settings > Video exposes
four modes:- Auto detects complementary fields and weaves them (desktop default).
- Bob presents each field unchanged (the historical behavior and CLI default).
- Weave always combines two fields into a 480-line (PAL 576-line) frame.
- Blend averages consecutive fields into one flicker-free 240-line frame.
- Content-based detection.
Autocompares same-index rows in adjacent fields with
the vertical difference inside the current field. Progressive 240p content repeats the
same row in both fields, so its temporal difference is near zero; interlaced content
puts an adjacent source row in each field. A verdict must persist for 12 fields before
weaving starts and 30 progressive fields before it stops. Explicit modes and per-game
profiles override detection when a title still combs or flickers. - Correct presentation geometry. Woven frames carry a half-height pixel aspect, so
the OpenGL, Vulkan, Direct3D 11, and CPU presenters keep the source display geometry
and apply integer scaling in display space. PAL 288-line fields weave to 576 lines. - Screenshots, GIFs, and automation. Screenshots and GIF recording capture the
presented frame. GIFs rescale a mid-recording 240↔480 change instead of dropping
frames.--deinterlace auto|bob|weave|blendselects the mode inrunandtrace, and
run --jsonreportsdeinterlace,interlaced, andinterlaceDetected. - No 240p regression. The CLI and emulation core default to bob. On 2026-11-06,
3,000-frame bob-vs-auto runs of Road Rash, Space Ace, and Alone in the Dark produced
identical hashes, as did 300-frame runs of Wolfenstein 3D and Lemmings.
Changed
- GIF recording now keeps its initial canvas size and rescales frames whose dimensions
change, rather than skipping every frame after a field-mode switch. - Per-game profiles include the field-handling mode; older profiles leave the global
setting unchanged.
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.
Download
| System | Bundle |
|---|---|
| Windows x64 | 5do-1.3.0-win-x64.zip |
| Windows arm64 | 5do-1.3.0-win-arm64.zip |
| Linux x64 | 5do-1.3.0-linux-x64.tar.gz |
| Linux arm64 | 5do-1.3.0-linux-arm64.tar.gz |
| macOS x64 | 5do-1.3.0-osx-x64.tar.gz |
| macOS arm64 | 5do-1.3.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
Autois a content heuristic, not a hardware mode bit. No local title is confirmed
480i, so the synthetic complementary-field tests are the current 480i evidence.
Explicitweave/blendmodes and per-game profiles are available.- A woven capture is stored at 320x480 (PAL 320x576) with half-height pixels. Viewers
that assume square pixels will show it taller than 4:3; the presenters apply
VdlFrame.PixelAspectcorrectly. - The opt-in 640x480 high-resolution mode is already progressive line-doubled output and
ignores weave/blend. - Emulation accuracy, compatibility, and save-state behavior are unchanged from 1.2.2.
Validation
- Full suite: 1,833/1,833 passing in Debug and Release.
dotnet format --verify-no-changesclean.jb inspectcode --severity=WARNING: no warnings in changed files; the remaining
warnings are pre-existing inArm60.Jit.csandStateWriter.cs.- Frontend
--smoke-testpassed. - Forced weave produced a 320x480 frame on Road Rash; forced blend stayed at 320x240;
high-resolution Lemmings stayed at 640x480 under both modes.
See Video.md section 1 for the field-handling model and
ImplementationPlan.md for the backlog status.