ADDED sounds.js Index: sounds.js ================================================================== --- /dev/null +++ sounds.js @@ -0,0 +1,20 @@ +// This program will read the sounds from HEROFALL.EXE +// The output is written to a Hamster archive to stdout +"use strict"; +const hamarc=require("hamarc"); +const fs=require("fs"); +const out=new hamarc.File(1); +const hdr=Buffer.allocUnsafe(12); +const fil=fs.openSync(process.argv[2],"r"); +let n=0; +let o=process.argv[3]?parseInt(process.argv[3],16):0x5CD92; +for(;;) { + if(fs.readSync(fil,hdr,0,12,o)<12) break; + if(hdr.toString("ascii",0,4)!="RIFF" || hdr.toString("ascii",8,12)!="WAVE") break; + let len=hdr.readUInt32LE(4); + let buf=Buffer.allocUnsafeSlow(len+8); + fs.readSync(fil,buf,0,len,o); + out.put(n+".WAV",buf); + o+=len+8; + n++; +}