📓 Update documentation
This commit is contained in:
parent
b027d86c5f
commit
806e9fb330
2 changed files with 37 additions and 29 deletions
60
README.md
60
README.md
|
@ -49,14 +49,14 @@ In addition to the SSN patcher, the live game (but not the PTS) can also be inst
|
|||
SSN uses the following terms; make sure you are familiar with them since we use them as well in documentation and in code.
|
||||
|
||||
- __```product```__: SWTOR is split into multiple products. That way, you can choose to only install part of SWTOR. For example, if you install the products ```assets_swtor_main``` and ```assets_swtor_en_us```, you only have the English-language live client files and no other languages and no PTS.
|
||||
- __```release```__: Colloquially, this is known as a “patch” (or Game Update). For example, release ```264``` in product ```assets_swtor_main``` refers to Game Update 5.2.0. However, not every release can be mapped to a “patch” (or Game Update); sometimes there are multiple releases between two actual “patches”, e.g. because of built errors or because they need to add another hotfix before releasing the “patch”. A release is always an integer starting at ```0```.
|
||||
- __```patch```__: In a SSN sense, a patch refers to the difference between two releases. For example, ```263to264``` is a patch that can be used to update a product from release ```263``` to release ```264```. The first number is called ```from``` while the second number is ```to```. If the ```from``` number is ```-1```, e.g. in patch ```-1to0```, the patch does not store the differences but the full file contents to allow a fresh install. Otherwise, you must already have the ```from``` release installed in order to apply the patch.
|
||||
- __```environment```__: An environment consists of multiple products. For example, the ```live``` environment has products like ```assets_swtor_main``` while the ```pts``` environment has ```assets_swtor_test_main```.
|
||||
- __```release```__: Colloquially, this is known as a “patch” or “Game Update”. For example, release ```264``` in product ```assets_swtor_main``` refers to Game Update 5.2.0. However, not every release can be mapped to a “patch”; sometimes there are multiple releases between two actual “patches”, e.g. because of build errors or because they need to add a hotfix via another release before the “patch” can be pushed to the live servers. A release is always an integer starting at ```0```.
|
||||
- __```patch```__: In the SSN sense, a patch refers to the difference between two releases. For example, ```263to264``` is a patch that can be used to update a product from release ```263``` to release ```264```. The first number is called ```from``` while the second number is ```to```. In order to install a patch, the release given in the ```from``` number must already be installed on your disk, with one exception: If the ```from``` number is ```-1```, e.g. in patch ```-1to0```, the patch does not store the differences but it has full file contents to allow for a fresh install.
|
||||
- __```environment```__: An environment consists of multiple products. For example, the live environment (```swtor```) has products like ```assets_swtor_main``` while the PTS environment (```publictest```) has ```assets_swtor_test_main```.
|
||||
- __```manifest```__: Each product has a manifest, a single file that lists all releases and all patches, and specifies which release is the current release (that the launcher must install).
|
||||
|
||||
# SSN file format and encryption
|
||||
|
||||
All files used by SSN are password-protected .zip files with a .exe header. The files are stored in the .zip section, while the .exe header (and the signatures at the end) are used to verify the integrity of the file. We are not interested in checking the integrity, so we only look at the .zip file. Check the [.zip specification](https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT) for more information on the .zip format.
|
||||
All files used by SSN are password-protected .zip files with a .exe header. The files are stored in the .zip section, while the .exe header (and the signatures at the end) are used to verify the integrity of the file. We are not interested in checking the integrity, so we only look at the .zip sections. Check the [.zip specification](https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT) for more information on the .zip format.
|
||||
|
||||
For each file, the extra field contains the following information:
|
||||
|
||||
|
@ -77,14 +77,31 @@ Once a patch is installed, you can look into the .version file to figure out whi
|
|||
|
||||
# File download and CDN
|
||||
|
||||
Manifests are hosted on manifest.swtor.com, while patches are hosted on cdn-patch.swtor.com. They can only be downloaded via HTTP (port 80) but the files are integrity-checked via their included signatures.
|
||||
Manifests are hosted on manifest.swtor.com, while patches are hosted on cdn-patch.swtor.com. They can only be downloaded via HTTP (port 80) but the lack of HTTPS is not an issue since the files are integrity-checked via their included signatures.
|
||||
|
||||
Manifests can be downloaded as follows: `http://manifest.swtor.com/patch/${product}.patchmanifest`
|
||||
|
||||
Then knowing which patch you need, you can get the patch as follows: `http://cdn-patch.swtor.com/patch/${product}/${product}_${from}to${to}.solidpkg`
|
||||
|
||||
In cases where the environment is part of the product name, the URL is slightly different since there is a folder for the environment: `http://cdn-patch.swtor.com/patch/${environment}/${product}/${product}_${from}to${to}.solidpkg`
|
||||
|
||||
# Appendix
|
||||
|
||||
## Environments used by SWTOR
|
||||
|
||||
Currently, the following three environments are used:
|
||||
|
||||
- __```swtor```__: The live game, including the European and North American servers. Open to all players and the default environment when logging into the launcher.
|
||||
- __```publictest```__: The Public Test Server to allow players to test upcoming content. Open to players most of the time, unless the testing under NDA, in which case only accounts invited to the test have access.
|
||||
- __```liveqatest```__: The environment where QA can test upcoming patches before they are deployed to the live servers. Not accessible to players.
|
||||
|
||||
Previously, the following environments were also used:
|
||||
|
||||
- __```betatest```__: The client used during the closed beta (2011 and earlier) to play the game.
|
||||
- __```cstraining```__: No longer used.
|
||||
- __```liveeptest```__: No longer used.
|
||||
- __```squadron157```__: The client used during the early closed beta by the Squadron157 testing group to play the game.
|
||||
|
||||
## Products used by SWTOR
|
||||
|
||||
SWTOR uses the following products:
|
||||
|
@ -101,28 +118,19 @@ SWTOR uses the following products:
|
|||
- __```movies_de_de```__: Intro movies by Blur in German language.
|
||||
- __```movies_en_us```__: Intro movies by Blur in English language.
|
||||
- __```movies_fr_fr```__: Intro movies by Blur in French language.
|
||||
- __```patcher2014```__: The old launcher, now replaced by ```patcher2017```.
|
||||
- __```patcher2014```__: The old launcher, now replaced by ```patcher2017``` but still available for download.
|
||||
- __```patcher2017```__: Current version of the launcher, used to download and install patches.
|
||||
- __```retailclient_liveqatest```__: The current client used by QA the day before a maintenance to log into a private server and check that the upcoming patch is correct.
|
||||
- __```retailclient_publictest```__: The current client used to play the game on the PTS.
|
||||
- __```retailclient_swtor```__: The current client used to play the game in the live environment.
|
||||
- __```retailclient_{environment}```__: The client used to play the game, e.g. ```retailclient_swtor``` or ```retailclient_publictest```.
|
||||
|
||||
In addition, there are a few private products which are only reachable through BioWare’s VPN and are not publicly accessible:
|
||||
|
||||
- ```biomon_cstraining```, ```biomon_liveeptest```, ```biomon_liveqatest```, ```biomon_publictest```, ```biomon_swtor```: The ```Biomongoose``` tool, possibly to monitor performance like CPU and memory usage.
|
||||
- ```byftools_cstraining```, ```byftools_liveeptest```, ```byftools_liveqatest```, ```byftools_publictest```, ```byftools_swtor```: Unknown tools ```ByfTools``` and ```iPen```.
|
||||
- ```heroblade_cstraining```, ```heroblade_liveeptest```, ```heroblade_liveqatest```, ```heroblade_publictest```, ```heroblade_swtor```: The IDE used for editing the game, either by placing new objects into the game world or editing scripts.
|
||||
- ```morpheme_cstraining```, ```morpheme_liveqatest```: Morpheme is a middleware used for character animations.
|
||||
- ```patcher```: The old launcher before the 2014 revamp. No longer in use.
|
||||
- ```playerclient_cstraining```, ```playerclient_liveeptest```, ```playerclient_liveqatest```, ```playerclient_publictest```, ```playerclient_swtor```: A client to play the game, used by the devs instead of ```retailclient```. Has a console and integrates with HeroBlade.
|
||||
- ```repositoryassistant_cstraining```, ```repositoryassistant_liveeptest```, ```repositoryassistant_liveqatest```, ```repositoryassistant_publictest```, ```repositoryassistant_swtor```: unknown
|
||||
- ```repositorybrowser_cstraining```, ```repositorybrowser_liveeptest```, ```repositorybrowser_liveqatest```, ```repositorybrowser_publictest```, ```repositorybrowser_swtor```: The repository browser interfaces with HeroBlade to load 3D models, textures and other assets.
|
||||
- ```toolshub_cstraining```, ```toolshub_liveeptest```, ```toolshub_liveqatest```, ```toolshub_publictest```, ```toolshub_swtor```: Used to launch more tools; most likely SpeedTree, WWise and other middleware.
|
||||
- ```visualizer_cstraining```, ```visualizer_liveeptest```, ```visualizer_liveqatest```, ```visualizer_publictest```, ```visualizer_swtor```: Also known as ```VANViewer```; possibly the tool mentioned by Georg Zoeller in his 2011 GDC talk.
|
||||
|
||||
The following products are deprecated and no longer used.
|
||||
|
||||
- ```retailclient_betatest```: The client used during the closed beta (2011 and earlier) to play the game.
|
||||
- ```retailclient_cstraining```: No longer used.
|
||||
- ```retailclient_liveeptest```: No longer used.
|
||||
- ```retailclient_squadron157```: The client used during the closed beta by the Squadron157 testing group to play the game.
|
||||
- __```biomon_{environment}```__: The ```Biomongoose``` tool, possibly to monitor performance like CPU and memory usage.
|
||||
- __```byftools_{environment}```__: Unknown tools ```ByfTools``` and ```iPen```, might be related to Photoshop or other designer tools.
|
||||
- __```heroblade_{environment}```__: The IDE used for editing the game, either by placing new objects into the game world or editing scripts.
|
||||
- __```morpheme_{environment}```__: Morpheme is a middleware used for character animations. Only available in the ```cstraining``` and ```liveqatest``` environments.
|
||||
- __```patcher```__: The old launcher before the 2014 revamp. No longer in use.
|
||||
- __```playerclient_{environment}```__: A client to play the game, used by the devs instead of ```retailclient```. Has a console and integrates with HeroBlade.
|
||||
- __```repositoryassistant_{environment}```__: unknown
|
||||
- __```repositorybrowser_{environment}```__: The repository browser interfaces with HeroBlade to load 3D models, textures and other assets.
|
||||
- __```toolshub_{environment}```__: Used to launch more tools; most likely SpeedTree, WWise and other middleware.
|
||||
- __```visualizer_{environment}```__: Also known as ```VANViewer```; possibly the tool mentioned by Georg Zoeller in his 2011 GDC talk.
|
||||
|
|
|
@ -10,7 +10,7 @@ interface ISolidFileInfo {
|
|||
files: ISolidFile[];
|
||||
/** Length of one piece in bytes, i.e. 64 KiB, 128 KiB, 256 KiB, 512 KiB, 1 MiB, 2MiB or 4 MiB */
|
||||
'piece length': 65536 | 131072 | 262144| 524288 | 1048576| 2097152| 4194304;
|
||||
/** Concatenated SHA1 hashes of all pieces, where each hash is 20 bytes long. */
|
||||
/** Concatenated SHA1 hashes of all pieces, where each hash is 20 bytes (or 40 characters) long. */
|
||||
pieces: string;
|
||||
/** Whether the torrent is private, always 0. */
|
||||
private: 0 | 1;
|
||||
|
@ -31,8 +31,8 @@ interface ISolid {
|
|||
networkgroupid: 16068 | 16097;
|
||||
/** The URL where the files from this torrent are stored, in the format `http://cdn-patch.swtor.com/patch/${product}/${product}_${from}to${to}/` */
|
||||
reliable: string;
|
||||
/** Always '0' or '1' */
|
||||
'reliable-id': '0' | '1' | '2';
|
||||
/** Integer in the range 0-3 */
|
||||
'reliable-id': '0' | '1' | '2' | '3';
|
||||
/** Contains further information about this torrent, including the list of files. */
|
||||
info: ISolidFileInfo;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue