There is no formal signature, but all known examples end with four null bytes. Also, the file sizes come in multiples of 4,096 bytes. Known files may be called JOESND, SOUNDS, SONGS, F_SONGS, W_SONGS or LOOPS depending on purpose and which game they are for.
The last 4096 bytes of the archive contain the file index. Every index entry consists of 12 bytes as follows:
|UINT32LE||Offset of file, to be multiplied by 4096|
|UINT32LE||Extra (Sound priority for sounds, possibly ignored for music)|
Any unused entries, and the final four bytes of the archive, should be filled with null bytes, although each game will expect a fixed number of entries for a particular archive.
These files contain either raw PCM sounds or HMP music. Sounds should be interpreted as unsigned 8 bit PCM, mono, and 11025 sample rate. The HMPs are HMIMIDIP013195 version.
The end of each file entry in the archive should be padded with null bytes to reach the next 4096-byte division in the file.
The following tools are able to work with files in this format.
|Name||Platform||Extract files?||Decompress on extract?||Create new?||Modify?||Compress on insert?||Access hidden data?||Edit metadata?||Notes|