Enhancements

Features the hardware never had. Off by default means bit-identical. Full list: libretro docs.

True-color rendering merged — PR #341

The blitter computes Gouraud shading with 16 fraction bits, then discards them in the 16-bit CRY write. virtualjaguar_true_color keeps them in a shadow framebuffer. Game-visible RAM stays bit-identical.

Stock 16-bit CRY (off)
Cybermorph terrain, stock 16-bit CRY rendering: visible banding on shaded polygon surfaces
Cybermorph, frame 850 — 304 unique colors.
True-color (on)
Cybermorph terrain, true-color rendering: smooth gradients on shaded polygon surfaces
Same frame, same inputs — 450 unique colors.
Three-panel comparison: stock frame, true-color frame, and a difference map amplified 64 times showing shading refinement across polygon surfaces
Off / on / difference (amplified 64×). 45.9% of pixels refined; every changed channel moves exactly one quantization step.
304 → 450 unique colors (peak 423 → 702). Both blitter engines agree exactly; off, 600 frames hash bit-identical to develop. CRY 16bpp only, ~8 MB when enabled. Merged — PR #341; in nightlies, not yet in a tagged release.

Overclocking that doesn't break the game

virtualjaguar_m68k_clock_scale (0.5×–3×) and virtualjaguar_risc_clock_scale (0.5×–2×). Bus latencies stay in wall time at any scale — pacing and pitch don't drift; CI proves it at non-1× scales.

v3.1.0 notes (#314, #316) · cycle-domain contract #318, PR #337 (merged).

CD read-speed control

virtualjaguar_cd_read_speed: 1× (hardware-faithful) to instant, on the HLE path. Streaming reads keep fast transfers from stomping in-flight game code — regression-tested.

docs/cd-read-speed.md · v3.0.0 notes.

Crash watchdog

virtualjaguar_crash_detect (default on) matches known failure signatures each frame. Your frontend log names the broken subsystem.

src/core/crash_detect.c (signatures and thresholds in the header comment).

Roadmap: internal hi-res upscaling in design

The shadow framebuffer is the 1× prototype of in-core hi-res rendering. Epic #338 — in design, no dates.