Vanilla Doom IWAD/PWAD parser with GZDoom-parity export for lumps, maps, and PLAYPAL-rasterized assets.
- Full WAD directory parse (
loadWadFromArrayBuffer) - Texture (TEXTURE1+2), flat, sprite, music, sound inventories
- Headless patch/flat/texture rasterization using PLAYPAL
- GZSTATE v1 export and byte-level parity comparison vs GZDoom
-dumpgzstate
npm install @hypercrab2000/doom-wad-coreGitHub Packages (until published to npmjs):
echo "@hypercrab2000:registry=https://npm.pkg.github.com" >> ~/.npmrc
npm install @hypercrab2000/doom-wad-coreimport fs from 'node:fs';
import {
loadWadFromArrayBuffer,
rasterizePatch,
rasterizeFlat,
exportToGzstate,
} from '@hypercrab2000/doom-wad-core';
const wad = loadWadFromArrayBuffer(fs.readFileSync('DOOM.WAD').buffer);
const patch = rasterizePatch(wad.lumpHash.WALL00_1!, wad.playpal);
const gzstate = exportToGzstate(wad, 'E1M1');npm install
npm run sync # copy latest from ../doom-wad-lab
npm test
npm run buildIntegration tests compare export against GZDoom fixtures in test/fixtures/. Regenerate fixtures from doom-wad-lab using tools/gzrender-v2/dump-gzdoom-state.sh.
Full 68-map corpus gate runs in doom-wad-lab: npm run test:corpus.
Documentation: docs/TESTING.md · workspace ../docs/TESTING.md
MIT