Difference between revisions of "Retail Patcher and Login"
Line 11: | Line 11: | ||
<code>/vercheck/ffxiv/win32/release/<game or boot>/<patchnumber></code> | <code>/vercheck/ffxiv/win32/release/<game or boot>/<patchnumber></code> | ||
− | < | + | <pre> |
header("HTTP/1.0 204 No Content"); | header("HTTP/1.0 204 No Content"); | ||
header("Content-Location: ffxiv/2d2a390f/vercheck.dat"); | header("Content-Location: ffxiv/2d2a390f/vercheck.dat"); | ||
Line 19: | Line 19: | ||
header("X-Info-Url: http://www.example.com"); | header("X-Info-Url: http://www.example.com"); | ||
header("X-Latest-Version: 2012.09.19.0000"); | header("X-Latest-Version: 2012.09.19.0000"); | ||
− | < | + | </pre> |
− | |||
<pre> | <pre> | ||
header("HTTP/1.0 200 OK"); | header("HTTP/1.0 200 OK"); | ||
Line 42: | Line 41: | ||
--477D80B1_38BC_41d4_8B48_5273ADB89CAC-- | --477D80B1_38BC_41d4_8B48_5273ADB89CAC-- | ||
</pre> | </pre> | ||
− |
Revision as of 16:34, 24 May 2019
Originally the retail version of the game used a built in patcher and login program to both update and start the game. The patcher consists of two programs ffxivboot.exe and ffxivupdater.exe. The login program is ffxivlogin.exe. Finally the actual game is ffxivgame.exe.
FFXIVBoot
This is the main application that is start when a user clicks on the "Final Fantasy XIV" shortcut. It facilitates version checking as well as patch downloading and verification. The patch downloader is a modified Bittorrent client, which causes problems with using non-ffxivboot clients. Interestingly ffxivboot was built on top of the Rapture engine and contains the same various RTTI info and referenced strings as the main ffxivgame executable. This was most likely to reuse the logic for rendering the Silverlight based UI, access game files, and to play the SCD music.
Version Check
The first thing ffxivboot does after initialization is perform a version check for both ffxivboot and ffxivgame programs. A GET HTTP request is made to ver01.ffxiv.com first for the boot program, followed by the game program. Both requests and responses have the same format.
/vercheck/ffxiv/win32/release/<game or boot>/<patchnumber>
header("HTTP/1.0 204 No Content"); header("Content-Location: ffxiv/2d2a390f/vercheck.dat"); header("X-Repository: ffxiv/win32/release/boot"); header("X-Patch-Module: ZiPatch"); header("X-Protocol: torrent"); header("X-Info-Url: http://www.example.com"); header("X-Latest-Version: 2012.09.19.0000");
header("HTTP/1.0 200 OK"); header("Content-Location: ffxiv/48eca647/vercheck.dat"); header("Content-Type: multipart/mixed; boundary=477D80B1_38BC_41d4_8B48_5273ADB89CAC"); header("X-Repository: ffxiv/win32/release/boot"); header("X-Patch-Module: ZiPatch"); header("X-Protocol: torrent"); header("X-Info-Url: http://example.com"); header("X-Latest-Version: 2012.05.20.0000.0001"); header("Connection: keep-alive") --477D80B1_38BC_41d4_8B48_5273ADB89CAC Content-Type: application/octet-stream Content-Location: ffxiv/48eca647/metainfo/D2012.05.20.0000.0001.torrent X-Patch-Length: 20874726 X-Signature: jqxmt9WQH1aXptNju6CmCdztFdaKbyOAVjdGw_DJvRiBJhnQL6UlDUcqxg2DeiIKhVzkjUm3hFXOVUFjygxCoPUmCwnbCaryNqVk_oTk_aZE4HGWNOEcAdBwf0Gb2SzwAtk69zs_5dLAtZ0mPpMuxWJiaNSvWjEmQ925BFwd7Vk= [TORRENT FILE HERE] --477D80B1_38BC_41d4_8B48_5273ADB89CAC--