+===========================================================================+ | FreeSCI 0.3.5 -- OpenVMS Port vs. vanilla Linux tree | +===========================================================================+ STATUS SUPPORTED --------- King's Quest 4 Police Quest 2 Leisure Suit Larry 2 Leisure Suit Larry 3 Space Quest 3 Quest for Glory 1 Colonel's Bequest Conquests of Camelot Codename ICEMAN King's Quest 1 SCI remake NOT supported ------------- Quest for Glory 2 A. BUILD SYSTEM & PLATFORM GLUE ------------------------------------------------------------------------- DESCRIP.MMS ......... NEW. MMK/MMS descrip replacing autoconf/Makefile. __VMS auto-guard .... OPENVMS auto-#defined from __VMS; no -DOPENVMS, and #ifdef OPENVMS code can never silently vanish. fnmatch_openvms.c ... NEW. Provides fnmatch(); scicore/fnmatch.c NOT built (its BeOS headers break the DEC C build). sdl_stubs_openvms.c . NEW. SDL shim glue for the VMS SDL port. sound_stubs_openvms.c NEW. Null/stub sound-server entry points. scitypes.h, tools.c, sci_memory.h ........ Type / memory / path portability shims. B. GRAPHICS (gfx/drivers/sdl_driver.c -- largest single change) ------------------------------------------------------------------------- PALETTE FIX : primary physical palette pushed via SDL_SetColors (not LOGPAL-only) -- fixes the all-black screen. PERF FIX : dirty-rectangle SDL_UpdateRect, not a full-screen push every event cycle -- restores playable speed. operations.c, gfx_tools.c, gfx_resource.c, sci_pic_0.c, gfx_drivers.c, sci_resmgr.c ........ registration / minor VMS adjustments. C. ENGINE / INPUT / FILES ------------------------------------------------------------------------- engine/kevent.c ..... Char-select: gated on global_108 prevSignal==2/3; null server emits ABSOLUTE sound cues paced by HANDSHAKE (once/cycle) + WRAPS counter for loops. engine/kfile.c ...... Saving: two hardcoded "soundserver_dead" guards wrapped in #ifndef OPENVMS -- unblocks save games. main.c .............. NEW switch -R/--restore-savegame : load a save directly, no config file needed. Debug logging ....... File-dump logging (debug_file/DEBUG_LOG) REMOVED across ~10 files (was on the hot path). D. GENERAL SCI FIXES (correct, harmless to SCI0, kept) ------------------------------------------------------------------------- engine/ksound.c ..... kDoSound also routes to SCI01 path when resmgr sci_version == SCI_VERSION_01 (patchlevel misroutes). resource_patch.c .... loose-patch header honours filehdr[1]: patch_hdr = 2 + filehdr[1] (was hardcoded 2). Found via QFG2 but verified against stock FreeSCI; zero effect on SCI0. WHY QFG2 (SCI01) WAS DROPPED ------------------------------------------------------------------------- QFG2 does not fit FreeSCI 0.3.5's FIXED 64 KB SCI heap (16-bit offsets, 0xffff sentinel = hard limit). Shortfall GREW per stage: room 70 -131 B (a 512 B stack trim covered it), then char-gen cloning, then game script 0x64 -~4 KB. Real fix = restore the reference-counted script GC upstream #if 0'd out: large, QFG1-regression-risky, beyond this port's scope. +===========================================================================+