If you have feedback, comments, questions, metadata corrections, copyright concerns, or suggestions about how this site should develop, please email me: Mike Melanson (mike -at- multimedia.cx)
Visit the site changelog if you are interested in seeing how this project has evolved.
While some chiptune formats encapsulate all songs for a given game into a single file, some formats split each song into a separate file and then bundle the files into a common archive format. An example of the latter is SNES SPC files. The prevailing method for bundling all SPC songs for a game is to compress them into a RAR package with the extension '.rsn'.
Salty Game Music Player introduces an archive format called .gamemusic. This is simple resource format that essentially concatenates a series of files together with a simple header. The format is as follows (multi-byte numbers are big-endian):
16 bytes: file signature: 'Game Music Files' 4 bytes: number of files (n) in the archive n * 4 bytes: table of absolute offsets to file data [file data]
The length of each file can be derived from successive absolute offsets, or (in the case of the last file) the difference between the file length and the last file offset.
After concatenating a series of song files into a .gamemusic file, the files are compressed using 'xz --check=crc32' and renamed with a .gamemusicxz extension. The '--check=crc32' is necessary because Salty Game Music Player uses XZ Embedded for decompression which requires the simplified integrity check.