summaryrefslogtreecommitdiff
path: root/PHASE2_COMPRESSION.md
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-01-31 14:34:59 +0100
committerskal <pascal.massimino@gmail.com>2026-01-31 14:34:59 +0100
commit815c4032813b5aafce09cf4e3731f4b7dfda106a (patch)
tree438a9ecd17500f0dc7d53163a3fb0d3198ed48f7 /PHASE2_COMPRESSION.md
parent2d760dee6751981db1eac1a22111e597f6bdbbee (diff)
update session with mix fixes
Diffstat (limited to 'PHASE2_COMPRESSION.md')
-rw-r--r--PHASE2_COMPRESSION.md18
1 files changed, 16 insertions, 2 deletions
diff --git a/PHASE2_COMPRESSION.md b/PHASE2_COMPRESSION.md
index a2d19d3..3c83fa4 100644
--- a/PHASE2_COMPRESSION.md
+++ b/PHASE2_COMPRESSION.md
@@ -1,4 +1,18 @@
# Phase 2 – Compression & Size Reduction
-See conversation description for full intent.
-Executable and shader compression deferred until visuals/audio stabilize.
+This document tracks ideas and strategies for the final optimization phase to reach the <=64k goal.
+
+## Executable Size
+
+### Windows
+- **Replace GLFW**: For the final build, replace the statically linked GLFW library with a minimal "tiny" implementation using native Windows API (`CreateWindow`, `PeekMessage`, etc.). This is expected to yield significant savings.
+ - *Status*: Deferred until feature completion.
+- **CRT Replacement**: Consider replacing the standard C runtime (CRT) with a minimal startup code (e.g., `tiny_crt` or similar) to avoid linking heavy standard libraries.
+- **Import Minimization**: Dynamically load functions via `GetProcAddress` hash lookup to reduce the Import Address Table (IAT) size.
+
+### General
+- **Shader Compression**: Minify WGSL shaders (remove whitespace, rename variables).
+- **Asset Compression**:
+ - Store spectrograms with logarithmic frequency bins.
+ - Quantize spectral values to `uint16_t` or `uint8_t`.
+ - Use a custom packer/compressor for the asset blob. \ No newline at end of file