|
1 |
| -# PocketRelay Hooks |
| 1 | +# PocketRelay Embedded Client |
| 2 | + |
| 3 | + |
| 4 | + |
| 5 | +[Discord Server (discord.gg/yvycWW8RgR)](https://discord.gg/yvycWW8RgR) |
| 6 | + |
| 7 | +## Table of Contents |
| 8 | + |
| 9 | +- [What](#what) What Pocket Relay Embedded client is |
| 10 | +- [Whats different](#whats-different) Whats different between this version and the previous client tool |
| 11 | +- [Whats been improved](#whats-been-improved) The improvements over the original tool |
| 12 | +- [Installation](#installation) The installation guide |
| 13 | + - [1. Download patch file](#1-download-patch-file) |
| 14 | + - [2. Open game folder](#2-open-game-folder) |
| 15 | + - [3. Rename official file](#3-rename-official-file) |
| 16 | + - [4. Patch game](#4-patch-game) |
| 17 | + - [5. Done](#5-done) |
| 18 | +- [Manually Building](#manually-building) Instructions for building manually |
| 19 | + - [Requirements](#requirements) |
| 20 | + - [1. Cloning sources](#1-cloning-sources) |
| 21 | + - [2. Adding rust target](#2-adding-rust-target) |
| 22 | + - [3. Building](#3-building) |
| 23 | + - [4. Done](#4-done) |
| 24 | +- [Credits](#credits) Credit sources |
| 25 | +- [License](#license) Project license |
| 26 | + |
| 27 | +## 📌 EA / BioWare Notice |
| 28 | + |
| 29 | +The **Pocket Relay** software in all its forms are in no way or form supported, endorsed, or provided by BioWare or Electronic Arts. |
| 30 | + |
| 31 | + |
| 32 | +## What |
| 33 | + |
| 34 | +This is a new iteration of the **PocketRelay** client to allow you to connect to **Pocket Relay** servers (Mass Effect 3 private servers). |
| 35 | + |
| 36 | +## Whats different |
| 37 | + |
| 38 | +The previous version of the client required being run as administrator and required the user to patch the game using a [binkw32.dll](https://github.com/Erik-JS/masseffect-binkw32) file. |
| 39 | + |
| 40 | +This new version skips the client step and rather than having the patch and client seperate (requiring the user to patch the game within the client). Instead this version embeds the client UI within a custom patch. This new version also patches hostname lookups which removes the need for running the program as admin because the program no longer needs to access the system hosts file. |
| 41 | + |
| 42 | +With this new version the user simply replaces the binkw32.dll in their game folder and then whenever the game starts a little popup window will apear where the player can set the **Pocket Relay** server connection URL they would like to use. |
| 43 | + |
| 44 | + |
| 45 | + |
| 46 | +> This also works for the official servers because either closing, or just ignoring this popup window will cause the game to just connect to the official servers instead |
| 47 | +
|
| 48 | +## Whats been improved |
| 49 | +- Program runs without admin permissions |
| 50 | + - The program is much safer and can be trusted much easier by the users now that it no longer requires any elevated permissions and doesn't modify any system files |
| 51 | + - This is also good for devices where the user doesn't have access to admin permissions |
| 52 | +- Improved logging |
| 53 | + - Much easier to diagnose issues with the client now that a dedicated console window can be used to display errors and debug information |
| 54 | +- Easier to use |
| 55 | + - Users no longer have to keep around a extra client utility, they just have to patch once then if they want to connect to a server they can enter its address and they're done |
| 56 | +- Supports disconnecting |
| 57 | + - You can disconnect from a private server while the game is running and connect back to the official servers (Note: If you've connected back to the official servers you will have to restart your game before you can re-connect to private servers) |
| 58 | +- Can close the window |
| 59 | + - The connection URL window can be closed after you've connected to the server and doesn't need to be kept open like the previous client tool (Note: You cannot close the terminal window or this will also close your game) |
| 60 | + |
| 61 | +## Installation |
| 62 | + |
| 63 | +As this version is still under development there is not currently an automated installer so you must install it yourself |
| 64 | + |
| 65 | +### 1. Download patch file |
| 66 | + |
| 67 | +Download the provided binkw32.dll file |
| 68 | + |
| 69 | +> TODO: There will be a link here when stable releases are available |
| 70 | +
|
| 71 | +### 2. Open game folder |
| 72 | + |
| 73 | +Head over to %GAME_FOLDER%/Binaries/Win32/ |
| 74 | + |
| 75 | +> This should be the same folder as your MassEffect3.exe file, with %GAME_FOLDER% being the actual folder your Mass Effect 3 game is stored in |
| 76 | +
|
| 77 | +### 3. Rename official file |
| 78 | + |
| 79 | +> **Note** |
| 80 | +> If you have already patched your game previously using another tool that replaces the binkw32.dll (Any modding tools or custom launchers likely applied this patch) you will see there is already a file named binkw23.dll and you can skip this step |
| 81 | +
|
| 82 | +In this folder you should see a file named `binkw32.dll` this is the original dll provided with the game, rename this file to `binkw23.dll` (The naming is very important so make sure it matches) |
| 83 | + |
| 84 | +### 4. Patch game |
| 85 | + |
| 86 | +Copy the provided binkw32.dll file into in the same folder as `binkw23.dll` |
| 87 | + |
| 88 | +> If you've patched your game previously as mentioned in step 3 you can choose to replace the current patched binkw32.dll file with this patch or you can rename that to some other name incase you would like to revert the patch |
| 89 | +
|
| 90 | +### 5. Done |
| 91 | + |
| 92 | +Your game should now be patched and you should see the two additional windows pop up when your game starts |
| 93 | + |
| 94 | + |
| 95 | +## Manually Building |
| 96 | + |
| 97 | +If you would like to manually build the dll you can follow the instructions below |
| 98 | + |
| 99 | +### Requirements |
| 100 | +- Git (Optional, but required if you want to clone the repository rather than manually downloading, skip the git steps if you are not using it) |
| 101 | +- Rust, Cargo, Rustup (Requires minimum Rust version of 1.70 may not compile on older versions, Rustup is required to add the required i86 target) |
| 102 | +- MSVC / Microsoft C++ Build Tools https://learn.microsoft.com/en-us/windows/dev-environment/rust/setup |
| 103 | + |
| 104 | +### 1. Cloning sources |
| 105 | + |
| 106 | +Clone github repository (Skip this step if you have manually downloaded the sources) |
| 107 | + |
| 108 | +```sh |
| 109 | +git clone https://github.com/PocketRelay/EmbeddedClient.git |
| 110 | +cd EmbeddedClient |
| 111 | +``` |
| 112 | + |
| 113 | +### 2. Adding rust target |
| 114 | + |
| 115 | +You must add the following rust target to compile (The DLL requires being compiled for 32bit) you can add the target with the following rustup command |
| 116 | + |
| 117 | +> This command only needs to be run for the first setup, and will be already installed for future builds |
| 118 | +
|
| 119 | +```sh |
| 120 | +rustup target add i686-pc-windows-msvc |
| 121 | +``` |
| 122 | + |
| 123 | +### 3. Building |
| 124 | + |
| 125 | +If you manually cloned the repository make sure you have cd'ed into the repository folder |
| 126 | + |
| 127 | +```sh |
| 128 | +cargo build --release |
| 129 | +``` |
| 130 | + |
| 131 | +### 4. Done |
| 132 | + |
| 133 | +The dll should now be built you can find it at |
| 134 | + |
| 135 | +``` |
| 136 | +target/i686-pc-windows-msvc/release/binkw32.dll |
| 137 | +``` |
2 | 138 |
|
3 |
| -This is a DLL that when attached to Mass Effect 3 will hook and replace the required functions in order to make it possible to connect to private multiplayer servers. |
4 | 139 |
|
5 | 140 | ## Credits
|
6 | 141 |
|
7 |
| -* WarrantyVoider & Erik-JS - Original version which was used for sourcing the patch patterns [Here](https://github.com/Erik-JS/masseffect-binkw32) |
| 142 | +* WarrantyVoider & Erik-JS - Sourced the patch patterns and offsets for Console, DLC, and VerifyCertificate [Here](https://github.com/Erik-JS/masseffect-binkw32) |
| 143 | + |
| 144 | + |
| 145 | +## 🧾 License |
| 146 | + |
| 147 | +MIT License |
| 148 | + |
| 149 | +Copyright (c) 2023 Jacobtread |
| 150 | + |
| 151 | +Permission is hereby granted, free of charge, to any person obtaining a copy |
| 152 | +of this software and associated documentation files (the "Software"), to deal |
| 153 | +in the Software without restriction, including without limitation the rights |
| 154 | +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
| 155 | +copies of the Software, and to permit persons to whom the Software is |
| 156 | +furnished to do so, subject to the following conditions: |
| 157 | + |
| 158 | +The above copyright notice and this permission notice shall be included in all |
| 159 | +copies or substantial portions of the Software. |
| 160 | + |
| 161 | +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
| 162 | +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
| 163 | +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
| 164 | +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
| 165 | +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
| 166 | +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
| 167 | +SOFTWARE. |
0 commit comments