diff --git a/README.md b/README.md index 9769b7a..207df06 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ A tool aimed at enhancing the experience when playing the game on linux through ## Warning -**This tool is based on patching the game executable through hex-edits. However it is done in a safe and non-destructive way, that ensures the patched executable is never run with EAC enabled. Use at your own risk!** +**This tool is based on patching the game executable through hex-edits. However it is done in a safe and non-destructive way, that ensures the patched executable is never run with EAC enabled (unless explicity told to do so). Use at your own risk!** ## Dependencies @@ -23,16 +23,17 @@ Note: There might be some distros (e.g. older Ubuntu releases) that launch pytho ## Features -| Argument | Description | -| --------------------------------------- | ---------------------------------------------------------------------------- | -| `-r RATE` or `--rate RATE` | Set a custom framerate limit (default: 60). | -| `--fix-camera` | Disable camera auto-rotation. | +| Argument | Description | +| --------------------------------------- | ------------------------------------------------------------------------------- | +| `-r RATE` or `--rate RATE` | Set a custom framerate limit (default: 60). | +| `--with-eac` | Run game with EAC (Use at own your risk) | +| `--fix-camera` | Disable camera auto-rotation. | | `--all` | Enable all options except `--rate` and
gameplay changes like `--fix-camera`. | -| `-u` or `--ultrawide` | Remove black bars. | -| `-v` or `--disable-vigniette` | Remove the vigniette overlay . | -| `-c` or `--disable-ca` | Disable chromatic abberation. | +| `-u` or `--ultrawide` | Remove black bars. | +| `-v` or `--disable-vigniette` | Remove the vigniette overlay . | +| `-c` or `--disable-ca` | Disable chromatic abberation. | | `-a` or `--increase-animation-distance` | Fix low frame rate animations at screen
edges or for distant entities. | -| `-s` or `--skip-intro` | Skip intro logos at game start. | +| `-s` or `--skip-intro` | Skip intro logos at game start. | | `-f` or `--remove-60hz-fullscreen` | Remove the 60Hz limit in fullscreen
mode (not needed with proton). | @@ -46,7 +47,7 @@ Note: This spawns a python console which will close by itself after the game has ## How it works -When the game is launched through steam, the tool creates a patched version of `eldenring.exe` in a temporary subdirectory while leaving the original intact. The tool then modifies the steam launch command to launch the patched executable instead of `start_protected_game.exe`. This ensures that the patched exe is never run with EAC enabled. After the game is closed, the patched executable is removed. +When the game is launched through steam, the tool creates a patched version of `eldenring.exe` in a temporary subdirectory while leaving the original intact. As long the flag `--with-eac` is not set, the tool modifies the steam launch command to launch the patched executable instead of `start_protected_game.exe`, thefore ensuring that the patched exe is never run with EAC enabled. After the game is closed, the patched executable is removed. ## Credits diff --git a/er-patcher b/er-patcher index e0b8042..a74707c 100755 --- a/er-patcher +++ b/er-patcher @@ -17,6 +17,7 @@ if __name__ == "__main__": parser = argparse.ArgumentParser(description="Patch Elden Ring executable and launch it without EAC.") parser.add_argument("-r", "--rate", type=int, default=60, help="Modify the frame rate limit (e.g. 30, 120, 165 or whatever).") + parser.add_argument("--with-eac", action='store_true', help="Run game with EAC (Use at own your risk)") parser.add_argument("--fix-camera", action='store_true', help="Disable camera auto-rotation.") parser.add_argument("--all", action='store_true', help="Enable all options except rate adjustment and gamplay changes like `--fix-camera`.") parser.add_argument("-u", "--ultrawide", action='store_true', help="Removes black bars when using a resolution with an aspect ratio other than 16:9.") @@ -126,14 +127,14 @@ if __name__ == "__main__": # to handle but by default windows 10 doesn't allow them game_files = [f for f in game_dir.rglob("*") if f.is_file()] for f in game_files: - if f.name in ["eldenring.exe", "start_protected_game.exe", "er-patcher"]: + if f.name in ["eldenring.exe", "er-patcher"]: continue if not (game_dir_patched / f).is_file(): f.link_to(game_dir_patched / f) # start patched exe directly to avoid EAC steam_cmd = sys.argv[1 + sys.argv.index("--"):] - steam_cmd[-1] = Path(steam_cmd[-1]).parent.absolute() / game_dir_patched / "eldenring.exe" + steam_cmd[-1] = Path(steam_cmd[-1]).parent.absolute() / game_dir_patched / ("start_protected_game.exe" if patch.with_eac else "eldenring.exe") subprocess.run(steam_cmd, cwd=steam_cmd[-1].parent.absolute()) # cleanup