Releases: harrytyp/comiupscale
Release list
v0.0.68 — HD fonts fixed, CD-quality music
v0.0.68 — HD fonts fixed, CD-quality music, new asset packs
HD fonts now render correctly (Issue #17)
In-game text (dialogs, menus, verb labels) now renders in crisp HD with the correct outline + fill colors. The previous font sheets contained no glyphs (FONT0 was just black placeholder boxes); the new sheets have the real glyphs for all 5 fonts, extracted directly from the NUT frames and 4x upscaled.
- Correct outline + fill rendering (black contour, palette-colored letter body), matching the original 8-bit look
- Correct baseline alignment (text sits on the line, not top-aligned)
- Fonts are drawn 1:1 from the pre-upscaled sheets (no renderer-side resampling)
CD-quality music (Issue #19)
The game now streams lossless CD-quality WAVs from hd/audio/ whenever a matching music cue exists. Download the soundtrack, convert to WAV, drop into hd/audio/ — that's it. Everything else keeps the original music. Setup instructions are in the README (Path A, step 5).
New asset packs (hd_assets_v1.0.4)
- HD textures with corrected fonts: hd_assets_v1.0.4 (4 parts, ~4.8 GB)
- Original 1x source textures are now included in the release as
comi-original-assets.zip(~80 MB) for anyone who wants the un-upscaled assets
Other
- README: table of contents, music section moved into Quick Start, release links updated
- Docs:
docs/HD_FONTS.md(font pipeline) anddocs/CD_QUALITY_MUSIC.md(music implementation)
HD Assets v1.0.4 — Texture Packs
HD texture packs for COMI-HD (4x upscale via RealESRGAN).
Extract all 4 parts into the same directory — they merge into a single hd/ folder.
Note: 4K cutscenes are at archive.org/details/COMI_4k
What's new in v1.0.4
- Fixed HD fonts (Issue #17): the previous font sheets (v1.0.3) contained no glyphs — FONT0 was just black placeholder boxes on a checkerboard. The new sheets contain the real glyphs for all 5 fonts (extracted directly from the NUT frames, 4x upscaled), so in-game text now renders in crisp HD with the correct outline + fill colors.
- Fonts are now in the texture packs (
hd/fonts/FONT0-4.NUT_chars.png) — previously they were missing from the release assets. - Now 4 parts instead of 3 (the corrected font sheets and complete costume set required a different split). All parts stay under GitHub's 2 GB per-file limit.
Contents
| Part | Contents | Size |
|---|---|---|
hd_assets_part1.zip |
backgrounds, objects, objects_layers, fonts | ~512 MB |
hd_assets_part2.zip |
costumes (part 1 of 3) | ~1.4 GB |
hd_assets_part3.zip |
costumes (part 2 of 3) | ~1.4 GB |
hd_assets_part4.zip |
costumes (part 3 of 3) | ~1.4 GB |
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.
v0.0.66 — HD texture cache prewarm (no more first-frame hitches)
v0.0.66 — HD texture cache prewarm (no more first-frame hitches)
Fixes
- HD texture cache prewarm on room enter (Issue #14): First-time asset display caused heavy frame hitches — up to 618 ms spikes and 27 sluggish frames (200–330 ms each) when entering a room, because PNG decode + cache insert ran synchronously inside the render path every time an object changed state or a costume cel animated.
- All object states and all animation frames of visible actors' costumes are now decoded once at room enter, so gameplay frames run from cache
- Texture cache limits raised (object cache was only 64 entries — room objects were constantly evicted and reloaded; both caches now hold 2000)
- Room transitions are a bit longer (the decode cost lands there), gameplay frames are smooth immediately — benchmark: 262 ms avg / 618 ms max over the first 30 frames → 75–80 ms avg / ~120 ms max after the prewarm frame
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.
v0.0.65 — HD rendering fixes
v0.0.65 — HD rendering fixes
Fixes
- Actor scaling: HD costumes now respect the engine's scale factor for both position and size. Scaled actors (e.g. the distant skeleton boats in the cannon scene) previously rendered up to 2.4x too large and clipped at screen edges.
- Mirrored actors: Actors facing left are now drawn flipped and anchored at the right edge, matching the original 8-bit engine. Previously they were offset by a full image width, so the skeleton boats were impossible to hit (visible position did not match the hitbox).
- White fringe removal: AI-upscaled textures often carry white/light halos along their alpha edges (visible on Larry and the cannon in the treasure hold). These are now removed at load time — only near-white pixels directly on the edge are cleared, interior white detail (eyes, highlights, shirts) is preserved.
- Complete-character cels: Costumes whose limbs share a single cel now draw the pre-composited HD frame once at the actor's base position instead of layering duplicate limbs.
Binary Assets (this release)
scummvm— Linux binary (stripped, 27 MB, self-contained: SDL2 with X11 + ALSA is 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.
Issue #10: Inventory items HD render fix (blank cursor approach)
Issue #10 — Inventory Items HD beim Drag außerhalb des Inventars ✅
GELÖST! Der Fix: Statt den Cursor zu verstecken (was backend-abhängig nie funktioniert hat) wird das Cursor-Bild durch ein 1x1 transparentes Pixel ersetzt. Das SD/OpenGL Cursor-Overlay ist dann unsichtbar, und die HD-Textur im Composite ist das einzig Sichtbare.
Was geändert wurde
- Step 2.9 (gfx.cpp): CursorMan.replaceCursor(blank, 1, 1, 0, 0, 0, true) — ersetzt das Cursor-Bild durch transparentes Pixel
- setCursorFromImg-Hook (cursor.cpp): Trackt _hdCursorObject und unterdrückt updateScreen() für Inventory-Items
- OpenGL Backend (opengl-graphics.cpp): renderCursor() prüft _cursorVisible
Release Dateien
- comiupscale-fix10-win32.tar.gz — Windows Binary + DLLs + INI + Start-Scripts
- comiupscale-fix10-linux64.tar.gz — Linux Binary + INI + Start-Script
Installation
- HD-Assets downloaden (comi_hd_v1.0.2.tar.* oder hd_assets_part*.zip)
- Tar.gz in ein lokales Verzeichnis entpacken
- start_comi_hd.bat (Windows) oder start_comi_hd.sh (Linux) ausführen
HD Assets v1.0.3 — Texture Packs
HD texture packs for COMI-HD (4x upscale via RealESRGAN).
Extract all 3 parts into the same directory — they merge into a single hd/ folder.
Note: 4K cutscenes are at archive.org/details/COMI_4k
v0.0.64 — SMUSH fix, inventory fix, frame limiter
v0.0.64 — Critical fixes
Fixes
- SMUSH video playback:
_hdDebugDumpCountno longer kills all cutscenes - Inventory overlay: No more persistent HD overlay when inventory is closed
- Frame limiter: ~30fps cap to prevent GPU saturation on fast hardware
- Auto-load removed: Game starts normally at difficulty screen (no forced save load)
Binary Assets (this release)
scummvm— Linux binary (stripped, 101 MB)scummvm.exe— Windows binary (70 MB)scummvm-win-bundle.zip— Windows bundle: SDL2.dll (with audio), zlib1.dll, scummvm.ini, .bat launchers
HD Assets
HD texture packs are in a separate release: hd_assets_v1.0.3
Build from Source
See build/BUILD.md in the repository.
v0.0.63: INVOBJ dump + brace fix
v0.0.63 — INVOBJ one-shot dump wenn Inventar aufgeht
Beim ersten Öffnen des Inventars werden ALLE Objekte im _objs Array (Room Objects + FLOBJs) geloggt mit:
- oi, obj_nr, fl_object_index, state, parent, position, size
Das zeigt uns ENDLICH wo die Inventar-Items sind und wie sie positioniert sind — bisher fehlen sie in den HD-Overlays.
Bitte testen: Einmal Inventar öffnen (RCLICK) → im hd_state.log erscheinen INVOBJ:... Zeilen mit ALLEN Objekten.
v0.0.61: EVERY event logged — no buffer, no frame skip
v0.0.61 — JETZT WIRKLICH ALLES!
Der Log schreibt sich jeden Frame via Append in die Datei. Kein Warten, kein Überschreiben, kein Buffer-Cap.
Was sich geändert hat:
- Buffer wird jeden Frame in die Datei geflusht (nicht alle 30 Frames)
- Read-Modify-Write: alte Daten bleiben erhalten → Append, kein Überschreiben
- 4MB File-Cap statt 512KB (viel mehr Platz)
- Buffer ohne Limit: kein Silent-Drop von Events mehr
Keine Kompromisse mehr:
- KEY-Events? ✅ Sofort im Log
- MOUSE-Clicks? ✅ Sofort im Log
- CULL/RENDER? ✅ Sofort im Log
- Frame-Dumps? ✅ Sofort im Log