The GRP Format is used by a number of games powered by Ken Silverman's Build engine. It is one of the more efficient group files in that it only stores file sizes in the headers, and the file offsets must be calculated from these. It does not however support compression, but this does make it a very elegant and easy to understand example of what a group file is and does.
All GRP files begin with the format designer's name, "KenSilverman", followed by the number of files stored inside the group file.
|char||signature||"KenSilverman", not NULL-terminated|
|UINT32LE||fileCount||Number of files|
The signature is followed immediately by a file entry structure, repeated fileCount times.
A file entry consists of the filename and its size.
|char||filename||Filename (8.3 style), only NULL-terminated if there is enough room|
The file's offset must be calculated from the offset of the previous file plus its size. The first file's data immediately follows the last file entry, and if required its offset can be calculated by adding one to fileCount (to include the KenSilverman signature) and multiplying the result by 16 (the size of a file entry, also the same as the signature size.)
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|