mirror of
https://github.com/uberhalit/SekiroFpsUnlockAndMore.git
synced 2026-06-13 01:47:54 +00:00
Added user prompt to decide between mouse or controller
This commit is contained in:
parent
c6faf5c28a
commit
1b51f98e41
6 changed files with 31 additions and 12 deletions
|
|
@ -19,7 +19,7 @@ Patches games memory while running, does not modify any game files. Works with e
|
|||
* 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 (for mouse users only!)
|
||||
* disable camera auto rotate adjustment on movement (intended for mouse users)
|
||||
* display hidden counters such as death/kill count and optionally log them to file to display in OBS
|
||||
* game modifications
|
||||
* global game speed modifier (increase or decrease)
|
||||
|
|
@ -30,7 +30,7 @@ Patches games memory while running, does not modify any game files. Works with e
|
|||
|
||||
## Usage
|
||||
|
||||
The following graphical guide has to be done if you want to unlock the game's framerate or play on a higher refresh rate in fullscreen. If you do not wish to use that feature you can scroll down further to the guides on all other features. The graphic setup has to be done only once but as the patcher hot-patches the memory **you have to start the patcher every time you want use any of its features**.
|
||||
The following graphical guide has to be done if you want to unlock the game's framerate or play on a higher refresh rate in fullscreen. If you do not wish to use that feature you can scroll down further to the guides on all other features. The graphic setup has to be done only once but as the patcher hot-patches the memory **you have to start the patcher every time you want to use any of its features**.
|
||||
|
||||
The game enforces VSYNC and forces 60 Hz in fullscreen even on 144 Hz monitors so we have to override these.
|
||||
|
||||
|
|
@ -122,7 +122,7 @@ The game enforces VSYNC and forces 60 Hz in fullscreen even on 144 Hz monitors s
|
|||
5. If you want fullscreen borderless enable `Fullscreen stretch`
|
||||
|
||||
### 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.
|
||||
This will completely disable the automatic camera rotation adjustments when you are moving. This is mostly intended for mouse users, enabling it on non-native windows controllers will not work perfectly (some rotation adjustments will be left) and you will temporary lose the ability to slow-tilt (deadzones). Disabling the automatic camera adjustments makes little sense on controllers. If you changed your input device or made a mistake while selecting it simply close the utility, delete the `SekiroFpsUnlockAndMore.xml` file and restart the mod.
|
||||
|
||||
### To display total death/kill counters in OBS:
|
||||
1. Start the game
|
||||
|
|
@ -204,7 +204,7 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|||
* the game has forced VSYNC so unlocking the frame rate when your monitor has 60Hz will do nothing. You'll have to disable VSYNC in Nvidia Control Panel or AMD Radeon Settings first, see Usage
|
||||
* 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
|
||||
* due to how the game renders the 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
|
||||
|
|
|
|||
|
|
@ -240,6 +240,7 @@ namespace SekiroFpsUnlockAndMore
|
|||
};
|
||||
/**
|
||||
Controls automatic camera pitch adjust on move on XY-axis. Pointer in rax holds new pitch while rsi+170 holds current one prior movement so we overwrite xmm0 with the old pitch value and then overwrite [rax] with xmm0
|
||||
Breaks Pitch on emulated controllers...
|
||||
000000014073B476 | F3:0F1000 | movss xmm0,dword ptr ds:[rax] | newCamPitch | code inject overwrite from here
|
||||
000000014073B47A | F3:0F1186 70010000 | movss dword ptr ds:[rsi+170],xmm0 | camPitch
|
||||
000000014073B482 | F3:0F1085 E4120000 | movss xmm0,dword ptr ss:[rbp+12E4] | jump back here from code inject
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
<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="MOUSE USERS ONLY! Disables the annoying automatic camera adjustment on movement." 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="Disables the annoying automatic camera adjustment on movement. Intended for mouse users." 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">
|
||||
|
|
@ -76,7 +76,7 @@
|
|||
<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>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">Disabling camera auto rotate is mostly 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>
|
||||
|
|
|
|||
|
|
@ -259,7 +259,8 @@ namespace SekiroFpsUnlockAndMore
|
|||
string gameFileVersion = FileVersionInfo.GetVersionInfo(procList[0].MainModule.FileName).FileVersion;
|
||||
if (gameFileVersion != GameData.PROCESS_EXE_VERSION && !_settingsService.ApplicationSettings.gameVersionNotify)
|
||||
{
|
||||
MessageBox.Show("Unknown game version.\nSome functions might not work properly or even crash the game. Check for updates on this utility regularly following the link at the bottom.", "Sekiro FPS Unlocker and more", MessageBoxButton.OK, MessageBoxImage.Warning);
|
||||
MessageBox.Show("Unknown game version.\nSome functions might not work properly or even crash the game. " +
|
||||
"Check for updates on this utility regularly following the link at the bottom.", "Sekiro FPS Unlocker and more", MessageBoxButton.OK, MessageBoxImage.Warning);
|
||||
_settingsService.ApplicationSettings.gameVersionNotify = true;
|
||||
}
|
||||
else
|
||||
|
|
@ -865,14 +866,28 @@ namespace SekiroFpsUnlockAndMore
|
|||
{
|
||||
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);
|
||||
MessageBoxResult result = MessageBox.Show("Disabling camera auto adjustment is intended for mouse users.\n\n" +
|
||||
"If you are using a controller this will not work perfectly and you will temporary loose the deadzones on your controller (slow tiling).\n\n" +
|
||||
"Do you want to continue?", "Sekiro FPS Unlocker and more", MessageBoxButton.YesNo, MessageBoxImage.Warning);
|
||||
if (result == MessageBoxResult.No)
|
||||
{
|
||||
this.cbCamAdjust.IsEnabled = false;
|
||||
this.cbCamAdjust.IsChecked = false;
|
||||
this.cbCamAdjust.IsEnabled = true;
|
||||
return;
|
||||
}
|
||||
result = MessageBox.Show("Are you using a mouse as input?\n\n" +
|
||||
"To change your selection just delete the configuration file: SekiroFpsUnlockAndMore.xml", "Sekiro FPS Unlocker and more", MessageBoxButton.YesNo, MessageBoxImage.Question);
|
||||
if (result == MessageBoxResult.No)
|
||||
_settingsService.ApplicationSettings.peasantInput = true;
|
||||
_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);
|
||||
if (!_settingsService.ApplicationSettings.peasantInput)
|
||||
_codeCaveGenerator.ActivateCodeCaveByName(_CODECAVE_CAMADJUST_PITCH_XY); // BREAKS PITCH AND OTHER CONTROLS ON CONTROLLERS
|
||||
_codeCaveGenerator.ActivateCodeCaveByName(_CODECAVE_CAMADJUST_YAW_XY);
|
||||
this.cbCamAdjust.IsEnabled = true;
|
||||
}
|
||||
|
|
@ -1206,7 +1221,8 @@ namespace SekiroFpsUnlockAndMore
|
|||
|
||||
private void CbCamAdjust_Check_Handler(object sender, RoutedEventArgs e)
|
||||
{
|
||||
InjectToGame();
|
||||
if (this.cbCamAdjust.IsEnabled)
|
||||
InjectToGame();
|
||||
}
|
||||
|
||||
private void CbStatChanged(object sender, RoutedEventArgs e)
|
||||
|
|
|
|||
|
|
@ -21,5 +21,5 @@ using System.Runtime.InteropServices;
|
|||
ResourceDictionaryLocation.SourceAssembly
|
||||
)]
|
||||
|
||||
[assembly: AssemblyVersion("1.2.1.0")]
|
||||
[assembly: AssemblyFileVersion("1.2.1.0")]
|
||||
[assembly: AssemblyVersion("1.2.1.1")]
|
||||
[assembly: AssemblyFileVersion("1.2.1.1")]
|
||||
|
|
|
|||
|
|
@ -17,6 +17,8 @@ namespace SekiroFpsUnlockAndMore
|
|||
[XmlElement]
|
||||
public bool cameraAdjustNotify { get; set; }
|
||||
[XmlElement]
|
||||
public bool peasantInput { 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