Skip to content

v0.0.67 — Smarter HD texture loading (time-sliced prefetch + budget cache)

Choose a tag to compare

@harrytyp harrytyp released this 03 Aug 20:16
· 23 commits to main since this release

v0.0.67 — Smarter HD texture loading (time-sliced prefetch + budget cache)

What changed (Issue #14, second iteration)

The previous prewarm approach (decode all animation frames of every visible actor on room enter) made room transitions take ~15 s and could leave animations half-loaded. This release replaces it with the industry-standard combination of predictive prefetch, a budget-based LRU cache and lazy background loading:

  • Room enter loads only the current cels of visible actors plus the next ~30 frames of their playing animation (room 10: 561 frames instead of 1.306) — a one-time cost of ~2–3 s on desktop hardware, per room
  • Per-frame prefetch (max ~12 ms, runs between frames, never blocks rendering): priority 1 = current cels, priority 2 = upcoming animation frames, priority 3 = lazy loading of all other rooms' object textures in the background
  • Budget-based cache (1.5 GB, LRU) instead of a fixed entry count — the current and previous room stay resident, so switching back to a room costs nothing
  • Missing frames fall back to 8-bit for 1–2 frames while the prefetch catches up — no stutter, no half-loaded animations

Benchmark (headless, room 10)

  • Old: 15.3 s room-enter block, or 27 frames at 200–330 ms each (before v0.0.66)
  • New: one ~7 s prewarm frame (headless CPU; ~2–3 s on desktop), then immediately stable at ~76 ms/frame
  • Room 9: 94 frames prewarm (~2 s), then steady 30 FPS

Binary Assets (this release)

  • scummvm — Linux binary (stripped, 27 MB, self-contained: SDL2 with X11 + ALSA statically linked, no system SDL2 required)
  • scummvm.exe — Windows binary (stripped, 29 MB)
  • scummvm-win-bundle.zip — Windows bundle: scummvm.exe, SDL2.dll (with audio), zlib1.dll, scummvm.ini, .bat launchers, INSTALL.txt

You also need

Build from Source

See build/BUILD.md in the repository.