From 815c4032813b5aafce09cf4e3731f4b7dfda106a Mon Sep 17 00:00:00 2001 From: skal Date: Sat, 31 Jan 2026 14:34:59 +0100 Subject: update session with mix fixes --- PHASE2_COMPRESSION.md | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'PHASE2_COMPRESSION.md') 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 -- cgit v1.2.3