v1.10.0 "Atelier"
Sixth release of the RustyNES-parity roadmap: HD-pack emu-thread wiring.
Fixed
- HD texture packs (
v1.3.0) were never wired into theemu-threadbuild —
app.rs's synchronous render path composited an active pack via
hd_compositor::compositebefore its owndrop(emu), but the threaded build's
emu_thread::drive_onehad no equivalent step, so a threaded build with a pack
selected silently rendered the native (uncomposited) framebuffer
(docs/frontend.md's documented scope cut, closed here).drive_one's
plain-frame (run-ahead-disabled) branch now composites before publishing to
PresentBuffer; the common no-pack-active case stays exactly as fast as before
(a cheaphd_pack_name()&selfpre-check, no extra allocation) since the real
compositing cost only applies once a pack is actually selected. Found in review
(#90): the lock is now released before thePresentBuffercopy in this branch
too, matching the run-ahead branch's existingdrop(emu)-before-publish pattern.
Deferred (honestly scoped, not silently dropped)
- The in-app HD-pack Builder GUI (browsing the live
TileTagstream,
assigning replacement PNGs, writingpack.toml+ assets) needs a new
core-side "reconstruct RGBA pixels for a given tile hash" API that doesn't
exist yet — the tile-identity hash doesn't reverse to a VRAM location, so
authoring support is a genuinely separate, substantial piece of work from the
emu-threadwiring fix above. Pushed to a later, explicitly-scoped release.
Seeto-dos/VERSION-PLAN.md'sv1.10.0section. - HD-pack compositing is deliberately NOT applied to
emu-thread's run-ahead
branch. Found in review (#90):step_with_run_ahead's returned frame is a
PEEKED frame (captured, then rolled back soemu's persisted state only
advances by one real frame), butEmuCore::hd_pack_composite_inputsreads
Ppu::tile_tags()fromemu's CURRENT (post-rollback) state — a different
frame than the peeked bytes. Compositing with a mismatched(fb, tags)pair
would silently apply replacement tiles keyed to the wrong frame, corrupting
the picture rather than just showing native art, so this rung skips
compositing there instead. The same desync already exists, unfixed, in
app.rs's synchronous render path (pre-existing since run-ahead and
HD-pack were first combined; not introduced by this release, not touched by
it either) — both are tracked together as av1.10.x/later follow-up in
to-dos/VERSION-PLAN.md. Run-ahead and HD-pack are each off by default, so
this only affects the narrow case where a user has both features enabled
simultaneously.