Actions

Main Page and Old Engine/JAGGRAB Protocol: Difference between pages

From RuneWiki

(Difference between pages)
 
No edit summary
 
Line 1: Line 1:
RuneWiki is a collaborative effort to describe how the RuneScape client, and client to server communication, has functioned in the past.
==Resources==
[[Old Engine/File Archive]]
==Basics==
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.


It does not intend to infringe on Jagex's copyright in any way. This is purely academic and exists because we are curious humans.
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.


[https://www.runewiki.org/archive We keep an organized archive of data here] so less will be lost to time.
The remaining model, animation, midi, and map data is loaded [[On Demand Protocol|on demand in a separate protocol]].


==Index==
==URIs==
[[Old Engine]]


[[World Map Applet]]
==="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[1]===
Title screen content.
 
==="config" + crcs[2]===
Resource definitions (NPCs, Objects, Items, etc).
 
==="interface" + crcs[3]===
In-game interfaces.
 
==="media" + crcs[4]===
2D graphics.
 
==="versionlist" + crcs[5]===
Contains CRCs, versions, and index data for idx1-4 files.
 
==="textures" + crcs[6]===
3D graphics.
 
==="wordenc" + crcs[7]===
Word encoding (censoring) data.
 
==="sounds" + crcs[8]===
.WAV sounds.

Revision as of 23:29, 6 September 2021

Resources

Old Engine/File Archive

Basics

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.

URIs

"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[1]

Title screen content.

"config" + crcs[2]

Resource definitions (NPCs, Objects, Items, etc).

"interface" + crcs[3]

In-game interfaces.

"media" + crcs[4]

2D graphics.

"versionlist" + crcs[5]

Contains CRCs, versions, and index data for idx1-4 files.

"textures" + crcs[6]

3D graphics.

"wordenc" + crcs[7]

Word encoding (censoring) data.

"sounds" + crcs[8]

.WAV sounds.