diff --git a/README.md b/README.md
index 66142db..899e8b9 100644
--- a/README.md
+++ b/README.md
@@ -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
diff --git a/SekiroFpsUnlockAndMore/GameData.cs b/SekiroFpsUnlockAndMore/GameData.cs
index 02e5d09..09fde8b 100644
--- a/SekiroFpsUnlockAndMore/GameData.cs
+++ b/SekiroFpsUnlockAndMore/GameData.cs
@@ -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
diff --git a/SekiroFpsUnlockAndMore/MainWindow.xaml b/SekiroFpsUnlockAndMore/MainWindow.xaml
index 02db622..8f36620 100644
--- a/SekiroFpsUnlockAndMore/MainWindow.xaml
+++ b/SekiroFpsUnlockAndMore/MainWindow.xaml
@@ -28,7 +28,7 @@
-
+
@@ -76,7 +76,7 @@
Borderless window mode requires "Windowed" in game settings first.
Custom resolution adds 21:9 support and overwrites a default resolution, hud will be limited to 16:9.
Borderless window mode with custom resolution requires you to patch and set resolution first, then activate borderless afterwards.
- Disabling camera auto rotate is intended for mouse users.
+ Disabling camera auto rotate is mostly intended for mouse users.
To enable Player Speed modification you have to be ingame first.
See the link below for detailed information, guides, GSYNC support and an AMD fix.
diff --git a/SekiroFpsUnlockAndMore/MainWindow.xaml.cs b/SekiroFpsUnlockAndMore/MainWindow.xaml.cs
index 7ea7588..d19efb6 100644
--- a/SekiroFpsUnlockAndMore/MainWindow.xaml.cs
+++ b/SekiroFpsUnlockAndMore/MainWindow.xaml.cs
@@ -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)
diff --git a/SekiroFpsUnlockAndMore/Properties/AssemblyInfo.cs b/SekiroFpsUnlockAndMore/Properties/AssemblyInfo.cs
index 671bc10..e32205d 100644
--- a/SekiroFpsUnlockAndMore/Properties/AssemblyInfo.cs
+++ b/SekiroFpsUnlockAndMore/Properties/AssemblyInfo.cs
@@ -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")]
diff --git a/SekiroFpsUnlockAndMore/SettingsService.cs b/SekiroFpsUnlockAndMore/SettingsService.cs
index 041ff81..4d3e317 100644
--- a/SekiroFpsUnlockAndMore/SettingsService.cs
+++ b/SekiroFpsUnlockAndMore/SettingsService.cs
@@ -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; }