v0.0.67 — Smarter HD texture loading (time-sliced prefetch + budget cache)
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
- Game files: The Curse of Monkey Island — Steam or GOG
- HD texture packs: hd_assets_v1.0.3 (separate release)
- 4K cutscenes (optional): archive.org/details/COMI_4k
Build from Source
See build/BUILD.md in the repository.