Add engine-debug-tools and fix critter animation rendering bugs
build / build (push) Successful in 2m52s

- engine-debug-tools/: a debug dump hotkey + dump2png to inspect
  decoded critter frames independent of the renderer (see root
  README.md's "Debugging" section).
- engine-patches/04,05: fix critter sprite scale and an OpenGL
  texture cache collision, found using that tooling.
- mdlp: fix encodeFrames RLE-diffing upscaled frames against a
  previous-frame reference the real RSD8 decoder never implements
  (verified against Night Dive's original Mac source down to the
  68K assembly) - was rendering as scattered static in-game.
- Upscale pipeline: better color quantization (dithering, pure-ramp
  exclusion) and per-resource model selection.
This commit is contained in:
ml
2026-10-18 06:59:47 +02:00
parent ab2b778f44
commit 9d0a0d5798
21 changed files with 1185 additions and 82 deletions
+17 -1
View File
@@ -21,7 +21,7 @@ ASSETS_DIR := res/assets/ss_ee
BUILD_DIR := build
ARCH := $(shell uname -m)
.PHONY: all dist dist-linux dist-win build-image engine engine-win assets \
.PHONY: all dist dist-linux dist-win dist_debug build-image engine engine-win assets \
package package-linux package-win apk android-studio clean
all: dist
@@ -87,6 +87,22 @@ dist-linux: engine assets
chmod +x "$(DIST_DIR)/run-mods.sh"
@echo "== Done - run $(DIST_DIR)/run.sh to play =="
# Same as dist-linux, but also applies engine-debug-tools/engine-patches/
# (debug-only instrumentation - currently a dump hotkey, see
# engine-debug-tools/ and README.md's "Debugging" section), builds
# engine-debug-tools/dump2png into $(DIST_DIR) alongside it, and copies in
# convert-dumps.sh (res/convert-dumps.sh - a dump2png wrapper pointed at
# $(DIST_DIR)'s own res/data and dumps/, same convention as run-mods.sh
# wrapping run.sh). Overwrites whatever dist-linux last produced in
# $(DIST_DIR) - there's one dist/, and which of these two targets built it
# last is the only difference.
dist_debug: export ENGINE_DEBUG_TOOLS := 1
dist_debug: dist-linux
./engine-debug-tools/build-dump2png.sh "$(DIST_DIR)/dump2png"
cp res/convert-dumps.sh "$(DIST_DIR)/convert-dumps.sh"
chmod +x "$(DIST_DIR)/convert-dumps.sh"
@echo "== dist_debug: debug dump hotkey + $(DIST_DIR)/dump2png + $(DIST_DIR)/convert-dumps.sh are ready =="
# Windows counterpart of dist-linux. Unlike dist/, the DLLs sit flat
# alongside systemshock.exe instead of in a lib/ subdirectory - Windows'
# default DLL search order already checks the executable's own directory