JAGGRAB runs on port 43595, it is used as a fallback when a resource over HTTP is not available. It downloads the necessary BZip2 archives to bootstrap the client. They are then stored in main_file_cache.idx0.
This protocol is essentially HTTP/0.9, see: https://www.w3.org/Protocols/HTTP/AsImplemented.html. The main difference is the client closes the connection, not the server. If you close the connection from the server the client will raise an end of stream exception. The method is also JAGGRAB and not GET.
The remaining model, animation, midi, and map data is loaded on demand in a separate protocol.
"crc" + rand() + "-" + clientVersion
40-byte CRC/hash of all the idx0 archives.
- 36-byte CRCs: 9 archives * 4 byte CRC
- 4-byte hash.
"title" + crcs
Title screen content.
"config" + crcs
Resource definitions (NPCs, Objects, Items, etc).
"interface" + crcs
"media" + crcs
"versionlist" + crcs
Contains CRCs, versions, and index data for idx1-4 files.
"textures" + crcs
Textures for 3D graphics.
"wordenc" + crcs
Word encoding (censoring) data.
"sounds" + crcs