mirror of
https://github.com/uberhalit/SekiroFpsUnlockAndMore.git
synced 2026-06-13 01:47:54 +00:00
Made the intentions of cam-adjustments clear
added warning for cam-adjustments fixed typo updated readme
This commit is contained in:
parent
9290ec22d3
commit
c6faf5c28a
4 changed files with 53 additions and 39 deletions
61
README.md
61
README.md
|
|
@ -1,6 +1,6 @@
|
|||
# Sekiro FPS Unlocker and more
|
||||
|
||||
A small utility to remove frame rate limit, add custom resolutions with 21/9 widescreen support, change field of view (FOV), borderless window mode, display and log stats (OBS), disable camera auto adjust on movement and various game modifications for [Sekiro: Shadows Die Twice](https://www.sekirothegame.com/) written in C#.
|
||||
A small utility to remove frame rate limit, add custom resolutions with 21:9 widescreen support, change field of view (FOV), borderless window mode, display and log stats (OBS), disable camera auto adjust on movement and various game modifications for [Sekiro: Shadows Die Twice](https://www.sekirothegame.com/) written in C#.
|
||||
Patches games memory while running, does not modify any game files. Works with every game version (legit steam & oh-not-so-legit), should work with all future updates. Also available on [Nexus Mods](https://www.nexusmods.com/sekiro/mods/13/).
|
||||
|
||||
## Download
|
||||
|
|
@ -16,14 +16,14 @@ Patches games memory while running, does not modify any game files. Works with e
|
|||
* works with legit, unmodified steam version as well as with unpacked, not-so-legit versions
|
||||
* GSYNC and FreeSync support even in borderless window mode
|
||||
* unlock frame rate (remove FPS limit) by setting a new custom limit
|
||||
* add a custom resolution, 21/9 widescreen supported (will overwrite the default 1920x1080 / 1280x720 resolution, HUD limited to 16/9)
|
||||
* add a custom resolution, 21:9 widescreen supported (will overwrite the default 1920x1080 / 1280x720 resolution, HUD limited to 16/9)
|
||||
* increase and decrease field of view (FOV)
|
||||
* set the game to borderless window mode
|
||||
* disable camera auto rotate adjustment on movement (annoying for mouse users)
|
||||
* disable camera auto rotate adjustment on movement (for mouse users only!)
|
||||
* display hidden counters such as death/kill count and optionally log them to file to display in OBS
|
||||
* game modifications
|
||||
* global game speed modifier
|
||||
* player speed modifier
|
||||
* global game speed modifier (increase or decrease)
|
||||
* player speed modifier (increase or decrease)
|
||||
* automatically patch game on startup
|
||||
* seamlessly switch between windowed, borderless and borderless fullscreen
|
||||
* hotkey for patching while in (borderless) window mode
|
||||
|
|
@ -93,7 +93,7 @@ The game enforces VSYNC and forces 60 Hz in fullscreen even on 144 Hz monitors s
|
|||
### To play the game with GSYNC do these additional steps (Nvidia):
|
||||
1. Under Nvidia Control Panel navigate to `3D Settings -> Manage 3D settings -> Program Settings -> Sekiro`
|
||||
2. Set `Monitor Technology` to `G-SYNC`
|
||||
3. Set `Vertical sync` to `Off` again as enabling G-SYNC re-enables it
|
||||
3. If you want to play in (borderless) window mode you have to set `Vertical sync` to `Off` again as enabling G-SYNC re-enables it, if you play in exclusive fullscreen you can keep VSync on `Application controlled` to help remove frame time stutters ([see here](https://www.blurbusters.com/gsync/gsync101-input-lag-tests-and-settings/15/))
|
||||
4. Make sure that `Preferred refresh rate` is still set to `Highest available`
|
||||
5. [](#)
|
||||
6. If you do not have `Preferred refresh rate` or `Vertical sync` see the guide above on how to use the Nvidia Profile Inspector
|
||||
|
|
@ -103,31 +103,13 @@ The game enforces VSYNC and forces 60 Hz in fullscreen even on 144 Hz monitors s
|
|||
10. Start the game and set it to Fullscreen
|
||||
11. Enjoy perfectly tearing free variable high refresh rates without VSYNC
|
||||
|
||||
### Troubleshooting:
|
||||
* Make sure you followed the appreciate steps and didn't skip any (especially not the deletion of the Sekiro profile!)
|
||||
* Try disabling `Fullscreen optimization` for Sekiro: right mouse click on `sekiro.exe -> Compatibility-> tick 'Disable fullscreen optimizations'`
|
||||
* Try adding the whole game folder and `Sekiro FPS Unlocker and more` to your antivirus's exclusion list
|
||||
* Try disabling `Steam Broadcast` (streaming via overlay)
|
||||
* Do a clean reinstall of your graphic driver:
|
||||
1. Download latest graphics driver for your GPU
|
||||
2. Download [DDU](https://www.guru3d.com/files-get/display-driver-uninstaller-download,1.html)
|
||||
3. Disconnect internet so windows update won't auto-install minimal driver as soon as you uninstall them
|
||||
4. Boot into safe mode
|
||||
5. Completely uninstall graphics driver and all of their utilities using DDU
|
||||
6. Reboot
|
||||
7. Install the latest driver you previously downloaded
|
||||
8. Reconnect internet
|
||||
* Close and disable all screen recording and streaming applications
|
||||
* Close and disable all overlays
|
||||
* Close and disable all performance "booster" programs and alike
|
||||
|
||||
### To add a custom resolution
|
||||
### To add a custom resolution:
|
||||
1. Start the game
|
||||
2. Start `Sekiro FPS Unlocker and more`, set you desired resolution and enable it by ticking the check box
|
||||
3. Set your custom resolution in the graphical settings
|
||||
4. Be aware that your monitor has to natively support this resolution and the ingame HUD will be limited to 16/9
|
||||
|
||||
### To use the FOV changer
|
||||
### To use the FOV changer:
|
||||
1. Start the game
|
||||
2. Load up your save game
|
||||
3. Start `Sekiro FPS Unlocker and more`, set you desired FOV value and enable it by ticking the check box
|
||||
|
|
@ -139,7 +121,10 @@ The game enforces VSYNC and forces 60 Hz in fullscreen even on 144 Hz monitors s
|
|||
4. Start `Sekiro FPS Unlocker and more` and enable borderless window mode
|
||||
5. If you want fullscreen borderless enable `Fullscreen stretch`
|
||||
|
||||
### To display total death/kill counters in OBS
|
||||
### On 'Disable camera auto rotate on movement':
|
||||
This is intended exclusively for mouse users, enabling it on non-native windows controller-input can temporary disable your up-down controls. Disabling the automatic camera adjustments makes little sense on controllers.
|
||||
|
||||
### To display total death/kill counters in OBS:
|
||||
1. Start the game
|
||||
2. Load up your save game
|
||||
3. Start `Sekiro FPS Unlocker and more` and enable `Log stats` check box
|
||||
|
|
@ -151,13 +136,32 @@ The game enforces VSYNC and forces 60 Hz in fullscreen even on 144 Hz monitors s
|
|||
9. To add additional counters repeat steps 4-7
|
||||
10. [](#)
|
||||
|
||||
### To use any of the game modifications
|
||||
### To use any of the game modifications:
|
||||
1. Start the game
|
||||
2. Load up your save game
|
||||
3. Start `Sekiro FPS Unlocker and more` and expand `Game modifications`
|
||||
4. Set your desired values and then tick the checkbox you'd wish to enable
|
||||
5. Be aware that player and game speed modifications can potentially crash the game in certain cutscenes and NPC interactions
|
||||
|
||||
## Troubleshooting:
|
||||
* Make sure you followed the appropriate steps and didn't skip any (especially not the deletion of the Sekiro profile!)
|
||||
* Try disabling `Fullscreen optimization` for Sekiro: right mouse click on `sekiro.exe -> Compatibility-> tick 'Disable fullscreen optimizations'`
|
||||
* Try adding the whole game folder and `Sekiro FPS Unlocker and more` to your antivirus's exclusion list
|
||||
* Try disabling `Steam Broadcast` (streaming via overlay)
|
||||
* Try to force disable VSYNC even when you are using GSYNC
|
||||
* Close and disable all screen recording and streaming applications
|
||||
* Close and disable all overlays
|
||||
* Close and disable all performance "booster" programs and alike
|
||||
* Do a clean reinstall of your graphic driver:
|
||||
1. Download latest graphics driver for your GPU
|
||||
2. Download [DDU](https://www.guru3d.com/files-get/display-driver-uninstaller-download,1.html)
|
||||
3. Disconnect internet so windows update won't auto-install minimal driver as soon as you uninstall them
|
||||
4. Boot into safe mode
|
||||
5. Completely uninstall graphics driver and all of their utilities using DDU
|
||||
6. Reboot
|
||||
7. Install the latest driver you previously downloaded
|
||||
8. Reconnect internet
|
||||
|
||||
## Preview
|
||||
|
||||
[](#)
|
||||
|
|
@ -201,6 +205,7 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|||
* in fullscreen the game forces the monitor to 60 Hz so you'll have to handle this with driver override too, see Usage
|
||||
* your monitor has to support your custom resolution otherwise it won't show up correctly
|
||||
* due to how the game renders altering HUD is limited to 16:9 even on 21:9 resolutions
|
||||
* disabling automatic camera rotation adjustment on movement is intended for mouse users only, using it on a non-native windows controller can disable up-down controls
|
||||
* Player speed modification needs a loaded save before it can be activated
|
||||
* Player and game speed modification can potentially crash the game in certain cutscenes and NPC interactions, use with caution
|
||||
* the hotkey won't work if the game runs in exclusive, true fullscreen mode
|
||||
|
|
|
|||
|
|
@ -28,13 +28,13 @@
|
|||
<CheckBox x:Name="cbBorderless" DockPanel.Dock="Left" Margin="0,0,0,0" Height="25" FontSize="14 px" VerticalContentAlignment="Center" Content="Borderless window" ToolTip="To enable this set 'Windowed' mode in game options first." IsEnabled="False" Checked="CbBorderless_Checked" Unchecked="CbBorderless_Unchecked"/>
|
||||
<CheckBox x:Name="cbBorderlessStretch" DockPanel.Dock="Right" Margin="10,0,0,0" Height="25" FontSize="14 px" VerticalContentAlignment="Center" Content="Fullscreen stretch" IsEnabled="False" Checked="CbBorderlessStretch_Check_Handler" Unchecked="CbBorderlessStretch_Check_Handler" />
|
||||
</StackPanel>
|
||||
<CheckBox x:Name="cbCamAdjust" Margin="0,5,0,0" Height="25" FontSize="14 px" VerticalContentAlignment="Center" Content="Disable camera auto rotate on movement" ToolTip="Disables the automatic camera adjustment on movement. Annoying when mouse is used." Checked="CbCamAdjust_Check_Handler" Unchecked="CbCamAdjust_Check_Handler" />
|
||||
<CheckBox x:Name="cbCamAdjust" Margin="0,5,0,0" Height="25" FontSize="14 px" VerticalContentAlignment="Center" Content="Disable camera auto rotate on movement" ToolTip="MOUSE USERS ONLY! Disables the annoying automatic camera adjustment on movement." Checked="CbCamAdjust_Check_Handler" Unchecked="CbCamAdjust_Check_Handler" />
|
||||
<CheckBox x:Name="cbLogStats" Margin="0,5,0,0" Height="25" FontSize="14 px" VerticalContentAlignment="Center" Content="Log stats (Deaths, Kills) to file for OBS" ToolTip="Check the guide on how to display these on stream with OBS." Checked="CbStatChanged" Unchecked="CbStatChanged" />
|
||||
<Expander x:Name="exGameMods" Margin="-3,5,0,0" Height="Auto" FontSize="14 px" Header="Game modifications" IsExpanded="False">
|
||||
<Grid Margin="3,0,0,0" Background="#FFF9F9F9">
|
||||
<StackPanel Width="Auto" Height="Auto">
|
||||
<DockPanel Margin="0,3,0,0" LastChildFill="False">
|
||||
<CheckBox x:Name="cbGameSpeed" DockPanel.Dock="Left" Margin="0,0,0,0" Height="25" FontSize="14 px" VerticalContentAlignment="Center" Content="Game speed (%):" ToolTip="Can potentially crash the game in cutscenes, use with caution." Checked="CbGameSpeed_Check_Handler" Unchecked="CbGameSpeed_Check_Handler" />
|
||||
<CheckBox x:Name="cbGameSpeed" DockPanel.Dock="Left" Margin="0,0,0,0" Height="25" FontSize="14 px" VerticalContentAlignment="Center" Content="Game speed (%):" ToolTip="Increase or decrease. Can potentially crash the game in cutscenes, use with caution." Checked="CbGameSpeed_Check_Handler" Unchecked="CbGameSpeed_Check_Handler" />
|
||||
<Button x:Name="bGs100" DockPanel.Dock="Right" Content="100" Margin="0,0,0,0" Width="30" Height="25" FontSize="14 px" BorderThickness="1" Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"
|
||||
Focusable="False" Click="BGs100_Click" />
|
||||
<Button x:Name="bGsHigher" DockPanel.Dock="Right" Content=">" Margin="0,0,3,0" Width="25" Height="25" FontSize="14 px" BorderThickness="1" Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"
|
||||
|
|
@ -46,7 +46,7 @@
|
|||
Focusable="False" Click="BGs0_Click" />
|
||||
</DockPanel>
|
||||
<DockPanel Margin="0,5,0,0" LastChildFill="False">
|
||||
<CheckBox x:Name="cbPlayerSpeed" DockPanel.Dock="Left" Margin="0,0,0,0" Height="25" FontSize="14 px" VerticalContentAlignment="Center" Content="Player speed (%):" ToolTip="To enable this start the game and load a save, then tick the checkbox. Can potentially crash the game in cutscenes, use with caution." Checked="CbPlayerSpeed_Check_Handler" Unchecked="CbPlayerSpeed_Check_Handler" />
|
||||
<CheckBox x:Name="cbPlayerSpeed" DockPanel.Dock="Left" Margin="0,0,0,0" Height="25" FontSize="14 px" VerticalContentAlignment="Center" Content="Player speed (%):" ToolTip="Increase or decrease. To enable this start the game and load a save, then tick the checkbox. Can potentially crash the game in cutscenes, use with caution." Checked="CbPlayerSpeed_Check_Handler" Unchecked="CbPlayerSpeed_Check_Handler" />
|
||||
<Button x:Name="bPs100" DockPanel.Dock="Right" Content="100" Margin="0,0,0,0" Width="30" Height="25" FontSize="14 px" BorderThickness="1" Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"
|
||||
Focusable="False" Click="BPs100_Click" />
|
||||
<Button x:Name="bPsHigher" DockPanel.Dock="Right" Content=">" Margin="0,0,3,0" Width="25" Height="25" FontSize="14 px" BorderThickness="1" Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"
|
||||
|
|
@ -69,13 +69,14 @@
|
|||
<Run FontWeight="Bold">If your monitor is 60 Hz you will have to use</Run>
|
||||
<Run FontWeight="Bold" Foreground="#FFF00000">fullscreen mode and force disable VSYNC</Run>
|
||||
<Run FontWeight="Bold">with Nvidia Control panel or AMD Radeon Settings to get frame rate unlock working.</Run>
|
||||
<Run>To avoid stuttering it's recommended to disable VSYNC even with a 144 Hz monitor.</Run>
|
||||
<Run>To avoid stuttering it's recommended to always disable VSYNC (except when you have GSYNC).</Run>
|
||||
<Run FontWeight="Bold">If your monitor is >60 Hz you will have to use</Run>
|
||||
<Run FontWeight="Bold" Foreground="#FFF00000">borderless window mode or force the game to run on highest available refresh rate</Run>
|
||||
<Run FontWeight="Bold">using Nvidia Control panel or AMD Radeon Settings.</Run>
|
||||
<Run>Borderless window mode requires "Windowed" in game settings first.</Run>
|
||||
<Run FontWeight="Bold">Custom resolution adds 21/9 support and overwrites a default resolution, hud will be limited to 16/9.</Run>
|
||||
<Run FontWeight="Bold">Custom resolution adds 21:9 support and overwrites a default resolution, hud will be limited to 16:9.</Run>
|
||||
<Run>Borderless window mode with custom resolution requires you to patch and set resolution first, then activate borderless afterwards.</Run>
|
||||
<Run FontWeight="Bold">Disabling camera auto rotate is intended for mouse users.</Run>
|
||||
<Run FontWeight="Bold">To enable Player Speed modification you have to be ingame first.</Run>
|
||||
<Run FontWeight="Bold" Foreground="#FFF00000">See the link below for detailed information, guides, GSYNC support and an AMD fix.</Run>
|
||||
</TextBlock.Inlines>
|
||||
|
|
|
|||
|
|
@ -863,21 +863,27 @@ namespace SekiroFpsUnlockAndMore
|
|||
|
||||
if (this.cbCamAdjust.IsChecked == true)
|
||||
{
|
||||
this.IsEnabled = false;
|
||||
if (!_settingsService.ApplicationSettings.cameraAdjustNotify)
|
||||
{
|
||||
MessageBox.Show("Disabling camera auto adjustment is intended for mouse users!\nDo not enable this if you are using a controller.", "Sekiro FPS Unlocker and more", MessageBoxButton.OK, MessageBoxImage.Warning);
|
||||
_settingsService.ApplicationSettings.cameraAdjustNotify = true;
|
||||
}
|
||||
|
||||
this.cbCamAdjust.IsEnabled = false;
|
||||
_codeCaveGenerator.ActivateCodeCaveByName(_CODECAVE_CAMADJUST_PITCH);
|
||||
_codeCaveGenerator.ActivateCodeCaveByName(_CODECAVE_CAMADJUST_YAW_Z);
|
||||
_codeCaveGenerator.ActivateCodeCaveByName(_CODECAVE_CAMADJUST_PITCH_XY);
|
||||
_codeCaveGenerator.ActivateCodeCaveByName(_CODECAVE_CAMADJUST_YAW_XY);
|
||||
this.IsEnabled = true;
|
||||
this.cbCamAdjust.IsEnabled = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
this.IsEnabled = false;
|
||||
this.cbCamAdjust.IsEnabled = false;
|
||||
_codeCaveGenerator.DeactivateCodeCaveByName(_CODECAVE_CAMADJUST_PITCH);
|
||||
_codeCaveGenerator.DeactivateCodeCaveByName(_CODECAVE_CAMADJUST_YAW_Z);
|
||||
_codeCaveGenerator.DeactivateCodeCaveByName(_CODECAVE_CAMADJUST_PITCH_XY);
|
||||
_codeCaveGenerator.DeactivateCodeCaveByName(_CODECAVE_CAMADJUST_YAW_XY);
|
||||
this.IsEnabled = true;
|
||||
this.cbCamAdjust.IsEnabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1092,14 +1098,14 @@ namespace SekiroFpsUnlockAndMore
|
|||
/// Check whether input is numeric only.
|
||||
/// </summary>
|
||||
/// <param name="text">The text to check.</param>
|
||||
/// <returns>True if inout is numeric only.</returns>
|
||||
/// <returns>True if input is numeric only.</returns>
|
||||
private static bool IsNumericInput(string text)
|
||||
{
|
||||
return Regex.IsMatch(text, "[^0-9]+");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Logs messages to log file
|
||||
/// Logs messages to log file.
|
||||
/// </summary>
|
||||
/// <param name="msg">The message to write to file.</param>
|
||||
internal static void LogToFile(string msg)
|
||||
|
|
|
|||
|
|
@ -15,6 +15,8 @@ namespace SekiroFpsUnlockAndMore
|
|||
[XmlElement]
|
||||
public bool gameVersionNotify { get; set; }
|
||||
[XmlElement]
|
||||
public bool cameraAdjustNotify { get; set; }
|
||||
[XmlElement]
|
||||
public bool cbFramelock { get; set; }
|
||||
[XmlElement]
|
||||
public int tbFramelock { get; set; }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue