Raynegard game assets
From Raynegard Wiki
Raynegard's game data is distributed as many small files packed into a handful of custom container/archive formats. The client unpacks these at startup (or on demand) to load its text, images, sprites, maps, NPC/item data, and sound.
The two container families documented so far:
- BIN files — the game's general-purpose archive format. Assets of a given category (text, sprites, maps, NPC data, etc.) are bundled in matched pairs of files: a small header file (e.g.
textdatah.bin) and the packed data file (textdata.bin). The header is just a flat list of(offset, size)entries, one per packed file, with no padding or alignment between entries. Some archives ("directory-type") also store a self-referential file-name list as entry 0, so files can be looked up by name instead of index; others are accessed purely by numeric index. Contents are sometimes obfuscated with a simple repeating XOR cipher (key byte + increment, resetting per file) rather than real encryption. At startup the client loads about a dozen of these paired archives —bitmapdata,cockpitdata,etcimage,mapdata,npcdata,palette,pattern,point,sedata,seqence,sprite,textdata,texture— together covering nearly every non-executable asset category in the game. - SSF files — Raynegard's custom compressed audio format. Unlike the BIN archives, an
.ssffile is not a container — each one holds a single sound effect or music track. It has a small header (channel count, sample rate, loop flag/loop point) followed by audio data encoded with a custom ADPCM-style compression scheme. Decoding walks the file block by block, reconstructing 16-bit PCM samples from packed nibbles and a small set of fixed prediction coefficients, so it can be converted losslessly-in-practice to a standard.wavfor playback outside the game.
Overviews of the individual file types packed inside each container (or, for SSF, further format detail) will be added on their respective pages next.