From 81ac8678c8ae43e7850ed47569f5334dc2f7771a Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Sun, 19 Mar 2023 01:54:59 +0100 Subject: [PATCH] Update README.md --- README.md | 72 +++++++++++++++++++++++++++---------------------------- 1 file changed, 35 insertions(+), 37 deletions(-) diff --git a/README.md b/README.md index 7f700650..a2e5c57e 100644 --- a/README.md +++ b/README.md @@ -1,64 +1,62 @@ -# Description +# Source SDK +* This repository houses the source code for the development package targeting the game **Apex Legends**. - * Source Engine development package to be used for the game 'Apex Legends'. +## Building +In order to compile the SDK, you will need to install Visual Studio 2017, 2019 or 2022 with: +* Desktop Development with C++ Package. +* Windows SDK 10.0.10240.0 or higher. +* C++ MFC build tools for x86 and x64. -## Instructions - -To compile and use the SDK: - -1. Download or clone the solution to `\platform\`. - * The results should be `r5apex.exe\platform\sdk\r5sdk.sln`. +Steps: +1. Download or clone the solution to anywhere on your disk. + 1. In the folder `r5sdk.sln` resides, create a new folder called `game`. + 2. Move all the game files in the `game` folder so that the path `game/r5apex(_ds).exe` is valid. 2. Open `r5sdk.sln` in Visual Studio and compile the solution. - * The launcher executable and worker dll will be copied over automatically to the root directory of the game. - * If this does not happen, copy `gamesdk.dll` and `launcher.exe` to the game folder (where `r5apex.exe` resides). -4. Run `launcher.exe`, toggle the desired options and hit the `Launch Game` button. + 1. Depending on your version of Visual Studio, you might need to re-target the solution. + 2. All binaries and symbols are compiled in the `game` folder. + 3. Run `launcher.exe`, toggle and set the desired options and hit the `Launch Game` button. -## Launch parameters +## Debugging +The tools and libraries offered by the SDK could be debugged right after they are compiled. -When the `-wconsole` parameter is passed to the game, an external debug terminal will pop up -in which everything of the game gets logged to (this is passed by default on debug launch options). -This does not count for the dedicated server, the debug terminal is always present as this is a console application. +Steps: +1. Set the target project as **Startup Project** + 1. `Right Click project --> Set as Startup Project` +2. Configure the project's debugging settings. + 1. Debug settings are found in `Right Click Project --> Properties --> Configuration Properties --> Debugging` + 2. The `Working Directory` field should be set to `$(SolutionDir)\game\`. + 3. The `Command` field should be set to the target executable (`r5apex(_ds).exe` for example). + 4. Additional command line arguments could be set in the `Command Arguments` field. -When the `-ansiclr` parameter is passed to the game or dedicated server, color logging will be enabled to enhance -output readability. It is recommended to use this unless your system does not support `VirtualTerminalLevel 1`, -in which a SDK warning message will follow. This parameter is passed by default. +## Launch Parameters +- The `-wconsole` parameter toggles the external console window to which output of the game is getting logged to. +- The `-ansiclr` parameter enables colored console output to enhance readability (NOTE: unsupported for some OS versions!). +- The `-nosmap` parameter instructs the SDK to always compute the RVA's of each function signature on launch (!! slow !!). +- The `-noworkerdll` parameter prevents the GameSDK dll from initializing (workaround as the DLL is imported by the game executable). Additional launch parameters can be added to the `startup_*.cfg` files, which are located in `\platform\cfg\startup_*.cfg`. ## Note [Important] This is not a cheat or hack, do not attempt to use the SDK on the live version of the game! -The only versions currently supported are `R5pc_r5launch_N1094_CL456479_2019_10_30_05_20_PM` and anything below. - The following builds are tested and guaranteed to work: * S0 `R5pc_r5launch_J1557_CL387233_2019_01_28_07_43_PM` - * S0 `R5pc_r5launch_J1595_CL392411_2019_02_15_11_25_AM` * S0 `R5pc_r5launch_J1624A_CL394493_2019_02_24_09_29_PM` - * S1 `R5pc_r5launch_N52A_CL399039_2019_03_12_03_21_PM` - * S1 `R5pc_r5launch_N29_CL406647_2019_04_09_06_28_PM` - * S1 `R5pc_r5live_N10_CL423814_2019_06_18_07_11_PM` - - * S2 `R5pc_r5launch_N191_CL429743_2019_07_11_01_04_PM` * S2 `R5pc_r5launch_N428_CL436418_2019_08_07_09_35_PM` - * S2 `R5pc_r5launch_N676_CL443034_2019_09_06_02_23_PM` - * S3 `R5pc_r5launch_N1094_CL456479_2019_10_30_05_20_PM` ## Pylon DISCLAIMER -When you host game servers on the Server Browser (Pylon) you will stream your IP address to the database -which will be stored there until you stop hosting the server. -This is needed so other people can connect to your server. +When you host game servers on the Server Browser (Pylon) you will stream your IP address to the database +which will be stored there until you stop hosting the server; this is needed so other people can connect to your server. There is a Checkbox in the server browser called `Server Visibility` that is by default set to `Offline`. - * `Offline` allows you to play the game offline without any data being broadcasted to the Pylon master server. - * `Hidden` allows you to play the game online, but your server will not be listed in the server borwser list - people with a token can connect to your server, similar to the real private matches of Apex Legends. - * `Public` allows you to play online, your server will be listed in the server browser list and everyone - except for banned people can join your server. +- `Offline`: No data is broadcasted to the Pylon master server; you are playing offline. +- `Hidden`: Your server will be broadcasted to the Pylon master server, but could only be joined using the private token. +- `Online`: Your server will be broadcasted to the Pylon master server, and could be joined from the public list. Alternatively, you can host game servers without the use of our master server, and grant people access to your game server by sharing the IP address and port manually. The client can connect using the `connect` command. The usage of the `connect` -command is as follows: IPv4 `connect 127.0.0.1:37015`, IPv6 `connect [::1]:37015`, NOTE: the IP address and port where examples. +command is as follows: IPv4 `connect 127.0.0.1:37015`, IPv6 `connect [::1]:37015`, NOTE: the IP address and port were examples.