# WinHelp decompiler for johnmcm.com The WebAssembly module behind johnmcm.com's HLP viewer (/hlp-viewer). It is [helpdeco](https://github.com/pmachapman/helpdeco), the WinHelp decompiler by Manfred Winterhoff, Ben Collver and Paul Wise, compiled with Emscripten as a program: each help file is decompiled by a fresh instance with its own in-memory file system, and the page reads back the files it writes (the RTF topics, the help project, pictures, phrases, icon). helpdeco's files say GPL version 2 or later and its LICENSE file is GPL version 3; this site publishes exactly what it builds: - `source/`: helpdeco's source at commit `785273788af17fde4fba7df7162d547f8645d7d8`, unmodified, with its README and LICENSE. - `src/run.mjs`: one decompile (writes the .hlp into the file system, runs helpdeco, collects its output). helpdeco asks "Press CR to continue" when a file is partly damaged; stdin always answers with a carriage return. - `src/worker.mjs`: the worker the page talks to. - `Dockerfile` and `build.ps1`: the build, with the Emscripten image pinned by digest. Run `build.ps1` with Docker Desktop running; the module goes to `frontend/vendor/local/helpdeco@1/`. The module is loaded as a separate file by the page, so it can be replaced with one built from modified source. (The package's splitmrb tool is not built: it assumes 16-bit integers and writes SHG and MRB pictures out garbled; the page decodes those pictures itself, in TypeScript.)