From f254eb37b96809435c378d381278b8896c6b2921 Mon Sep 17 00:00:00 2001 From: Marcus Gursch Date: Wed, 23 Mar 2022 12:49:18 +0100 Subject: [PATCH] feature: add camera fix --- er-patcher | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/er-patcher b/er-patcher index 4c4faf4..7ec549c 100755 --- a/er-patcher +++ b/er-patcher @@ -16,7 +16,8 @@ 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("--all", action='store_true', help="Enable all options except rate adjustment.") + 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.") parser.add_argument("-v", "--disable-vigniette", action='store_true', help="Disables the vigniette overlay.") parser.add_argument("-c", "--disable-ca", action='store_true', help="Disables chromatic abberation.") @@ -37,6 +38,13 @@ if __name__ == "__main__": ) ) + if patch.fix_camera: + cf_pattern = '0f 29 a6 .. .. .. .. 41 0f 28 cf'.replace(" ", "") + cf_addr = re.search(cf_pattern, exe_hex).span()[0] + cf_offset = 0 + cf_patch = "90 90 90 90 90 90 90".replace(" ", "") + exe_hex = exe_hex[:cf_addr + cf_offset] + cf_patch + exe_hex[cf_addr + cf_offset + len(cf_patch):] + if patch.ultrawide or patch.all: exe_hex = exe_hex.replace( "8b0185c07442448b5904",