Update executable links

This commit is contained in:
Joshua Goins 2023-09-23 08:48:27 -04:00
parent f72f8879a2
commit 272a61255b
5 changed files with 17 additions and 15 deletions

View file

@ -4,7 +4,7 @@ title: "ffxiv.exe"
This is the actual game executable, and theres two versions - one for DX9 and DX11. You'll almost always be using the DX11 version, called `ffxiv_dx11.exe`.
## Arguments
# Arguments
* DEV.DataPathType
* **Guessing** that this controls the asset data type used by the client, this is will always be `1`.
@ -29,6 +29,6 @@ This is the actual game executable, and theres two versions - one for DX9 and DX
**Note:** For benchmark versions of the game, there is a whole host of graphical options available as game arguments - but this seems to be missing in the retail version.
## Alternative Implementations
# Alternative Implementations
None.

View file

@ -4,11 +4,11 @@ title: "ffxivboot.exe"
This executable handles launching [ffxivlauncher.exe](executable/ffxivlauncher), and also patching "boot files" (aka anything inside of the GameInstall/boot folder).
## Arguments
# Arguments
None(?) that I've found yet.
## Alternative Implementations
# Alternative Implementations
* [Astra](https://git.sr.ht/~redstrate/astra/tree/main/item/launcher/core/src/squareboot.cpp)/[libxiv (C++)](https://git.sr.ht/~redstrate/libxiv/tree/main/item/src/patch.cpp)
* [XIVQuickLauncher (C#)](https://github.com/goatcorp/FFXIVQuickLauncher/blob/master/src/XIVLauncher.Common/Game/Launcher.cs)
* [Astra (C++)](https://git.sr.ht/~redstrate/astra/tree/main/item/launcher/src/squareboot.cpp)

View file

@ -14,6 +14,7 @@ To find them, simply find the needle string "Disk1\\{FileName}" where FileName i
They are simply put right next to each other in the executable, so if you follow that order you'll find each of them quite easily.
## Alternative Implementations
# Alternative Implementations
* [physis (Rust)](https://git.sr.ht/~redstrate/physis/tree/main/item/src/installer.rs)
* [libxiv (C++)](https://git.sr.ht/~redstrate/libxiv/tree/main/src/installextract.cpp)

View file

@ -2,7 +2,7 @@
title: "ffxivlauncher.exe"
---
## Arguments
# Arguments
**Note:** Just like the other executables, it requires you to pass these using the [SqexArg](concept/sqexarg) format.
@ -24,7 +24,7 @@ title: "ffxivlauncher.exe"
- Your usual path to your FFXIV data folder in Documents.
## Alternative Implementations
# Alternative Implementations
* [XIVQuickLauncher (C#)](https://github.com/goatcorp/FFXIVQuickLauncher)
* [Astra (C++)](https://sr.ht/~redstrate/astra/)

View file

@ -4,7 +4,7 @@ title: "ffxivupdater.exe"
**Note:** This is unconfirmed information, as I'm still progressing through my reverse engineering work. If you have any idea what this updater is doing, please contact me :-)
## Arguments
# Arguments
**Note:** Just like the other executables, it requires you to pass these using the [SqexArg](concept/sqexarg) format.
@ -28,10 +28,10 @@ title: "ffxivupdater.exe"
- UserPath
- This is the usual UserPath arugment, pointing to your FFXIV-ARR Documents directory.
## Processes
# Processes
During update execution, the launcher(?) copies the updater executable into your `UserPath/downloads` directory, where it is then ran. I'm assuming this is to work around a Windows limitation where you can't update the executable on disk, so it has to be ran from a location where it could "update" itself.
### ShowMode 2
## ShowMode 2
This is the regular retail patching mode, and it runs ffxivupdater64.exe in a hidden window that's just there for message processing. I'm not sure yet if ffxivupdater.exe is the one actually downloading the patch files yet. The launcher just reflects ffxivupdater's progress, and passes it along to the web form in the form of a json callback. You can set a breakpoint at 0x183278 (tested on the launcher ver 3/20/2022) and see that it first hits that area when updating. There is three seperate printf strings, which I'm guessing is the three "modes" of patch progress:
@ -46,11 +46,11 @@ The first one appears very minimal but might be the one used when it's not downl
The second one appears to be the regular "downloading" patch mode, considering it says "downloadsize" right there.
The last one would appear to be when it's actually applying the patches, as it has "remaintime" as well as "speed".
#### IPC
# IPC
It appears that ffxivlauncher.exe and ffxivupdater.exe is communicating exclusively through Win32 IPC (SendMessage). I haven't deciphered the actual messages yet, but here is a few interesting ones I've seen used:
##### 0x7fc
## 0x7fc
The format is `{version:\"%s\",ID:%d}`. I'm guessing this means "install this patch", version obviously corresponds to the patch version, and maybe ID is the jumble of alphanumeric characters in the directory names of the ffxivpatch folder?
@ -58,7 +58,8 @@ The format is `{version:\"%s\",ID:%d}`. I'm guessing this means "install this pa
0x81a - unknown
## Alternative Implementations
# Alternative Implementations
* [XIVQuickLauncher (C#)](https://github.com/goatcorp/FFXIVQuickLauncher/tree/master/src/XIVLauncher.Common/Game/Patch)
* [libxiv](https://git.sr.ht/~redstrate/libxiv/tree/main/item/src/patch.cpp)
* [physis (Rust)](https://git.sr.ht/~redstrate/physis/tree/main/item/src/patch.rs)
* [libxiv (C++)](https://git.sr.ht/~redstrate/libxiv/tree/main/item/src/patch.cpp)