mirror of
https://github.com/uberhalit/SekiroFpsUnlockAndMore.git
synced 2026-06-13 09:57:55 +00:00
Gave the game some time to initialize
fixed return values updated readme
This commit is contained in:
parent
c2d9c22637
commit
312a3c1c12
5 changed files with 39 additions and 20 deletions
10
README.md
10
README.md
|
|
@ -116,7 +116,7 @@ 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
|
4. Start `Sekiro FPS Unlocker and more` and enable borderless window mode
|
||||||
5. If you want fullscreen borderless enable `Fullscreen stretch`
|
5. If you want fullscreen borderless enable `Fullscreen stretch`
|
||||||
|
|
||||||
### To display death/kill counters in OBS
|
### To display total death/kill counters in OBS
|
||||||
1. Start the game
|
1. Start the game
|
||||||
2. Load up your save game
|
2. Load up your save game
|
||||||
3. Start `Sekiro FPS Unlocker and more` and enable `Log stats` check box
|
3. Start `Sekiro FPS Unlocker and more` and enable `Log stats` check box
|
||||||
|
|
@ -126,6 +126,7 @@ The game enforces VSYNC and forces 60 Hz in fullscreen even on 144 Hz monitors s
|
||||||
7. Select either `DeathCouner.txt` (only tracks true deaths, excluding revives) or `TotalKillsCounter.txt`
|
7. Select either `DeathCouner.txt` (only tracks true deaths, excluding revives) or `TotalKillsCounter.txt`
|
||||||
9. Customize font style and color
|
9. Customize font style and color
|
||||||
10. To add additional counters repeat steps 4-7
|
10. To add additional counters repeat steps 4-7
|
||||||
|
11. [[!On Stream Display with OBS](https://camo.githubusercontent.com/007910d42ace53ee0db0ea8b61d525751b9d48a6/68747470733a2f2f692e696d6775722e636f6d2f4c39546e6f34462e706e67)](#)
|
||||||
|
|
||||||
### To use any of the game modifications
|
### To use any of the game modifications
|
||||||
1. Start the game
|
1. Start the game
|
||||||
|
|
@ -135,7 +136,7 @@ The game enforces VSYNC and forces 60 Hz in fullscreen even on 144 Hz monitors s
|
||||||
|
|
||||||
## Preview
|
## Preview
|
||||||
|
|
||||||
[](#)
|
[](#)
|
||||||
|
|
||||||
### Unlocked framerate
|
### Unlocked framerate
|
||||||
[](#)
|
[](#)
|
||||||
|
|
@ -163,6 +164,7 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
||||||
|
|
||||||
## Credits
|
## Credits
|
||||||
|
|
||||||
|
* Me_TheCat for his contribution to log stats and display them in OBS
|
||||||
* Zullie the Witch#7202 for game speed and player speed modifier offsets
|
* Zullie the Witch#7202 for game speed and player speed modifier offsets
|
||||||
* jackfuste for FOV offset and basic running speed fix
|
* jackfuste for FOV offset and basic running speed fix
|
||||||
* TyChii93#2376 for AMD and widescreen testing
|
* TyChii93#2376 for AMD and widescreen testing
|
||||||
|
|
@ -174,10 +176,14 @@ 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
|
* 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
|
* 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 altering HUD is limited to 16/9 even on 21/9 resolutions
|
||||||
|
* Player speed modification needs a loaded save before it can be activated
|
||||||
* the hotkey won't work if the game runs in exclusive, true fullscreen mode
|
* the hotkey won't work if the game runs in exclusive, true fullscreen mode
|
||||||
|
|
||||||
## Version History
|
## Version History
|
||||||
|
|
||||||
|
* v1.2.0 (2019-04-02)
|
||||||
|
* Added stats (kills & deaths for now) with an option to log them to file for display in OBS (thanks to Me_TheCat for his contribution)
|
||||||
|
* Player speed modifier will stick between quicktravel now
|
||||||
* v1.1.0.1 (2019-03-31)
|
* v1.1.0.1 (2019-03-31)
|
||||||
* Fixed topmost for borderless
|
* Fixed topmost for borderless
|
||||||
* v1.1.0 (2019-03-30)
|
* v1.1.0 (2019-03-30)
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ namespace SekiroFpsUnlockAndMore
|
||||||
fFrametimeCriticalRunningSpeed should be roughly half the frame rate: 30 @ 60FPS limit, 50 @ 100FPS limit...
|
fFrametimeCriticalRunningSpeed should be roughly half the frame rate: 30 @ 60FPS limit, 50 @ 100FPS limit...
|
||||||
00000001407D4E08 | F3:0F5905 90309202 | mulss xmm0,dword ptr ds:[1430F7EA0] | pFrametimeRunningSpeed->fFrametimeCriticalRunningSpeed
|
00000001407D4E08 | F3:0F5905 90309202 | mulss xmm0,dword ptr ds:[1430F7EA0] | pFrametimeRunningSpeed->fFrametimeCriticalRunningSpeed
|
||||||
*/
|
*/
|
||||||
internal const string PATTERN_FRAMELOCK_SPEED_FIX = "F3 0F 59 05 00 30 92 02"; // F3 0F 59 05 ?? 30 92 02 | 0F 51 C2 F3 0F 59 05 ?? ?? ?? ?? 0F 2F F8
|
internal const string PATTERN_FRAMELOCK_SPEED_FIX = "F3 0F 59 05 00 30 92 02"; // F3 0F 59 05 ?? 30 92 02
|
||||||
internal const string PATTERN_FRAMELOCK_SPEED_FIX_MASK = "xxxx?xxx";
|
internal const string PATTERN_FRAMELOCK_SPEED_FIX_MASK = "xxxx?xxx";
|
||||||
internal const int PATTERN_FRAMELOCK_SPEED_FIX_OFFSET = 4;
|
internal const int PATTERN_FRAMELOCK_SPEED_FIX_OFFSET = 4;
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:local="clr-namespace:SekiroFpsUnlockAndMore"
|
xmlns:local="clr-namespace:SekiroFpsUnlockAndMore"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
Title="Sekiro FPS Unlocker and more v1.1.1" Width="Auto" Height="Auto" SizeToContent="WidthAndHeight" ResizeMode="CanMinimize" Loaded="Window_Loaded" Closing="Window_Closing">
|
Title="Sekiro FPS Unlocker and more v1.2.0" Width="Auto" Height="Auto" SizeToContent="WidthAndHeight" ResizeMode="CanMinimize" Loaded="Window_Loaded" Closing="Window_Closing">
|
||||||
|
|
||||||
<Grid Background="#FFF9F9F9">
|
<Grid Background="#FFF9F9F9">
|
||||||
<DockPanel>
|
<DockPanel>
|
||||||
|
|
@ -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="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" />
|
<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>
|
</StackPanel>
|
||||||
<CheckBox x:Name="cbLogStats" Margin="0,5,0,0" Height="25" FontSize="14 px" VerticalContentAlignment="Center" Content="Log stats to file (Deaths, Kills)" ToolTip="Check the guide on how to display these with OBS." Checked="CbStatChanged" Unchecked="CbStatChanged" />
|
<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">
|
<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">
|
<Grid Margin="3,0,0,0" Background="#FFF9F9F9">
|
||||||
<StackPanel Width="Auto" Height="Auto">
|
<StackPanel Width="Auto" Height="Auto">
|
||||||
|
|
@ -81,7 +81,7 @@
|
||||||
</TextBlock>
|
</TextBlock>
|
||||||
<Label HorizontalAlignment="Right" FontSize="12 px">
|
<Label HorizontalAlignment="Right" FontSize="12 px">
|
||||||
<Hyperlink NavigateUri="https://github.com/uberhalit/SekiroFpsUnlockAndMore" RequestNavigate="Hyperlink_RequestNavigate">
|
<Hyperlink NavigateUri="https://github.com/uberhalit/SekiroFpsUnlockAndMore" RequestNavigate="Hyperlink_RequestNavigate">
|
||||||
v1.1.1 - by uberhalit
|
v1.2.0 - by uberhalit
|
||||||
</Hyperlink>
|
</Hyperlink>
|
||||||
</Label>
|
</Label>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@ namespace SekiroFpsUnlockAndMore
|
||||||
internal readonly DispatcherTimer _dispatcherTimerFreezeMem = new DispatcherTimer();
|
internal readonly DispatcherTimer _dispatcherTimerFreezeMem = new DispatcherTimer();
|
||||||
internal readonly DispatcherTimer _dispatcherTimerCheck = new DispatcherTimer();
|
internal readonly DispatcherTimer _dispatcherTimerCheck = new DispatcherTimer();
|
||||||
internal bool _running = false;
|
internal bool _running = false;
|
||||||
|
internal bool _gameInitializing = false;
|
||||||
internal string _logPath;
|
internal string _logPath;
|
||||||
internal string _deathCounterPath;
|
internal string _deathCounterPath;
|
||||||
internal string _killCounterPath;
|
internal string _killCounterPath;
|
||||||
|
|
@ -87,13 +88,13 @@ namespace SekiroFpsUnlockAndMore
|
||||||
bool result = await CheckGame();
|
bool result = await CheckGame();
|
||||||
if (result) PatchGame();
|
if (result) PatchGame();
|
||||||
});
|
});
|
||||||
_dispatcherTimerCheck.Interval = new TimeSpan(0, 0, 0, 2);
|
_dispatcherTimerCheck.Interval = new TimeSpan(0, 0, 0, 0, 2000);
|
||||||
_dispatcherTimerCheck.Start();
|
_dispatcherTimerCheck.Start();
|
||||||
|
|
||||||
_dispatcherTimerFreezeMem.Tick += new EventHandler(FreezeMemory);
|
_dispatcherTimerFreezeMem.Tick += new EventHandler(FreezeMemory);
|
||||||
_dispatcherTimerFreezeMem.Interval = new TimeSpan(0, 0, 0, 0, 2000);
|
_dispatcherTimerFreezeMem.Interval = new TimeSpan(0, 0, 0, 0, 2000);
|
||||||
|
|
||||||
_timerStatsCheck.Elapsed += new ElapsedEventHandler(StatReadTimer);
|
_timerStatsCheck.Elapsed += new ElapsedEventHandler(StatsReadTimer);
|
||||||
_timerStatsCheck.Interval = 2000;
|
_timerStatsCheck.Interval = 2000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -142,12 +143,12 @@ namespace SekiroFpsUnlockAndMore
|
||||||
this.cbSelectFov.SelectedIndex = _settingsService.ApplicationSettings.cbSelectFov;
|
this.cbSelectFov.SelectedIndex = _settingsService.ApplicationSettings.cbSelectFov;
|
||||||
this.cbBorderless.IsChecked = _settingsService.ApplicationSettings.cbBorderless;
|
this.cbBorderless.IsChecked = _settingsService.ApplicationSettings.cbBorderless;
|
||||||
this.cbBorderlessStretch.IsChecked = _settingsService.ApplicationSettings.cbBorderlessStretch;
|
this.cbBorderlessStretch.IsChecked = _settingsService.ApplicationSettings.cbBorderlessStretch;
|
||||||
|
this.cbLogStats.IsChecked = _settingsService.ApplicationSettings.cbLogStats;
|
||||||
this.exGameMods.IsExpanded = _settingsService.ApplicationSettings.exGameMods;
|
this.exGameMods.IsExpanded = _settingsService.ApplicationSettings.exGameMods;
|
||||||
this.cbGameSpeed.IsChecked = _settingsService.ApplicationSettings.cbGameSpeed;
|
this.cbGameSpeed.IsChecked = _settingsService.ApplicationSettings.cbGameSpeed;
|
||||||
this.tbGameSpeed.Text = _settingsService.ApplicationSettings.tbGameSpeed.ToString();
|
this.tbGameSpeed.Text = _settingsService.ApplicationSettings.tbGameSpeed.ToString();
|
||||||
this.cbPlayerSpeed.IsChecked = _settingsService.ApplicationSettings.cbPlayerSpeed;
|
this.cbPlayerSpeed.IsChecked = _settingsService.ApplicationSettings.cbPlayerSpeed;
|
||||||
this.tbPlayerSpeed.Text = _settingsService.ApplicationSettings.tbPlayerSpeed.ToString();
|
this.tbPlayerSpeed.Text = _settingsService.ApplicationSettings.tbPlayerSpeed.ToString();
|
||||||
this.cbLogStats.IsChecked = _settingsService.ApplicationSettings.cbLogStats;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -164,12 +165,12 @@ namespace SekiroFpsUnlockAndMore
|
||||||
_settingsService.ApplicationSettings.cbSelectFov = this.cbSelectFov.SelectedIndex;
|
_settingsService.ApplicationSettings.cbSelectFov = this.cbSelectFov.SelectedIndex;
|
||||||
_settingsService.ApplicationSettings.cbBorderless = this.cbBorderless.IsChecked == true;
|
_settingsService.ApplicationSettings.cbBorderless = this.cbBorderless.IsChecked == true;
|
||||||
_settingsService.ApplicationSettings.cbBorderlessStretch = this.cbBorderlessStretch.IsChecked == true;
|
_settingsService.ApplicationSettings.cbBorderlessStretch = this.cbBorderlessStretch.IsChecked == true;
|
||||||
|
_settingsService.ApplicationSettings.cbLogStats = this.cbLogStats.IsChecked == true;
|
||||||
_settingsService.ApplicationSettings.exGameMods = this.exGameMods.IsExpanded;
|
_settingsService.ApplicationSettings.exGameMods = this.exGameMods.IsExpanded;
|
||||||
_settingsService.ApplicationSettings.cbGameSpeed = this.cbGameSpeed.IsChecked == true;
|
_settingsService.ApplicationSettings.cbGameSpeed = this.cbGameSpeed.IsChecked == true;
|
||||||
_settingsService.ApplicationSettings.tbGameSpeed = Convert.ToInt32(this.tbGameSpeed.Text);
|
_settingsService.ApplicationSettings.tbGameSpeed = Convert.ToInt32(this.tbGameSpeed.Text);
|
||||||
_settingsService.ApplicationSettings.cbPlayerSpeed = this.cbPlayerSpeed.IsChecked == true;
|
_settingsService.ApplicationSettings.cbPlayerSpeed = this.cbPlayerSpeed.IsChecked == true;
|
||||||
_settingsService.ApplicationSettings.tbPlayerSpeed = Convert.ToInt32(this.tbPlayerSpeed.Text);
|
_settingsService.ApplicationSettings.tbPlayerSpeed = Convert.ToInt32(this.tbPlayerSpeed.Text);
|
||||||
_settingsService.ApplicationSettings.cbLogStats = this.cbLogStats.IsChecked == true;
|
|
||||||
_settingsService.Save();
|
_settingsService.Save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -203,7 +204,7 @@ namespace SekiroFpsUnlockAndMore
|
||||||
LogToFile(string.Format("\tDescription #{0}: {1} | {2} | {3}", j, procList[j].MainWindowTitle, procList[j].MainModule.FileVersionInfo.CompanyName, procList[j].MainModule.FileVersionInfo.FileDescription));
|
LogToFile(string.Format("\tDescription #{0}: {1} | {2} | {3}", j, procList[j].MainWindowTitle, procList[j].MainModule.FileVersionInfo.CompanyName, procList[j].MainModule.FileVersionInfo.FileDescription));
|
||||||
LogToFile(string.Format("\tData #{0}: {1} | {2} | {3} | {4} | {5}", j, procList[j].MainModule.FileVersionInfo.FileVersion, procList[j].MainModule.ModuleMemorySize, procList[j].StartTime, procList[j].Responding, procList[j].HasExited));
|
LogToFile(string.Format("\tData #{0}: {1} | {2} | {3} | {4} | {5}", j, procList[j].MainModule.FileVersionInfo.FileVersion, procList[j].MainModule.ModuleMemorySize, procList[j].StartTime, procList[j].Responding, procList[j].HasExited));
|
||||||
}
|
}
|
||||||
Task.FromResult(false);
|
return Task.FromResult(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
_gameProc = procList[gameIndex];
|
_gameProc = procList[gameIndex];
|
||||||
|
|
@ -220,7 +221,7 @@ namespace SekiroFpsUnlockAndMore
|
||||||
{
|
{
|
||||||
UpdateStatus("no access to game...", Brushes.Red);
|
UpdateStatus("no access to game...", Brushes.Red);
|
||||||
_dispatcherTimerCheck.Stop();
|
_dispatcherTimerCheck.Stop();
|
||||||
Task.FromResult(false);
|
return Task.FromResult(false);
|
||||||
}
|
}
|
||||||
_gameHwnd = IntPtr.Zero;
|
_gameHwnd = IntPtr.Zero;
|
||||||
if (_gameAccessHwnd != IntPtr.Zero)
|
if (_gameAccessHwnd != IntPtr.Zero)
|
||||||
|
|
@ -231,7 +232,14 @@ namespace SekiroFpsUnlockAndMore
|
||||||
}
|
}
|
||||||
LogToFile("retrying...");
|
LogToFile("retrying...");
|
||||||
_retryAccess = false;
|
_retryAccess = false;
|
||||||
Task.FromResult(false);
|
return Task.FromResult(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
// give the game some time to initialize
|
||||||
|
if (!_gameInitializing)
|
||||||
|
{
|
||||||
|
_gameInitializing = true;
|
||||||
|
return Task.FromResult(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
//string gameFileVersion = FileVersionInfo.GetVersionInfo(procList[0].MainModule.FileName).FileVersion;
|
//string gameFileVersion = FileVersionInfo.GetVersionInfo(procList[0].MainModule.FileName).FileVersion;
|
||||||
|
|
@ -329,6 +337,7 @@ namespace SekiroFpsUnlockAndMore
|
||||||
{
|
{
|
||||||
int playerStatsToDeathsOffset = Read<Int32>(_gameAccessHwndStatic, ref_pPlayerStatsRelated + GameData.PATTERN_PLAYER_DEATHS_POINTER_OFFSET_OFFSET);
|
int playerStatsToDeathsOffset = Read<Int32>(_gameAccessHwndStatic, ref_pPlayerStatsRelated + GameData.PATTERN_PLAYER_DEATHS_POINTER_OFFSET_OFFSET);
|
||||||
Debug.WriteLine("offset pPlayerStats->iPlayerDeaths found : 0x" + playerStatsToDeathsOffset.ToString("X"));
|
Debug.WriteLine("offset pPlayerStats->iPlayerDeaths found : 0x" + playerStatsToDeathsOffset.ToString("X"));
|
||||||
|
|
||||||
if (playerStatsToDeathsOffset > 0) _offset_player_deaths = Read<Int64>(_gameAccessHwndStatic, pPlayerStatsRelated) + playerStatsToDeathsOffset;
|
if (playerStatsToDeathsOffset > 0) _offset_player_deaths = Read<Int64>(_gameAccessHwndStatic, pPlayerStatsRelated) + playerStatsToDeathsOffset;
|
||||||
Debug.WriteLine("iPlayerDeaths found at: 0x" + _offset_player_deaths.ToString("X"));
|
Debug.WriteLine("iPlayerDeaths found at: 0x" + _offset_player_deaths.ToString("X"));
|
||||||
}
|
}
|
||||||
|
|
@ -434,9 +443,9 @@ namespace SekiroFpsUnlockAndMore
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Read and refresh all offsets that can change on quick travel or save game loading.
|
/// Read and refresh the player speed offset that can change on quick travel or save game loading.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void ReadIngameOffsets()
|
private void ReadPlayerTimescaleOffsets()
|
||||||
{
|
{
|
||||||
bool valid = false;
|
bool valid = false;
|
||||||
if (_offset_timescale_player_pointer_start > 0)
|
if (_offset_timescale_player_pointer_start > 0)
|
||||||
|
|
@ -474,10 +483,13 @@ namespace SekiroFpsUnlockAndMore
|
||||||
_running = false;
|
_running = false;
|
||||||
if (_gameAccessHwnd != IntPtr.Zero)
|
if (_gameAccessHwnd != IntPtr.Zero)
|
||||||
CloseHandle(_gameAccessHwnd);
|
CloseHandle(_gameAccessHwnd);
|
||||||
|
_dispatcherTimerFreezeMem.Stop();
|
||||||
|
_timerStatsCheck.Stop();
|
||||||
_gameProc = null;
|
_gameProc = null;
|
||||||
_gameHwnd = IntPtr.Zero;
|
_gameHwnd = IntPtr.Zero;
|
||||||
_gameAccessHwnd = IntPtr.Zero;
|
_gameAccessHwnd = IntPtr.Zero;
|
||||||
_gameAccessHwndStatic = IntPtr.Zero;
|
_gameAccessHwndStatic = IntPtr.Zero;
|
||||||
|
_gameInitializing = false;
|
||||||
_offset_framelock = 0x0;
|
_offset_framelock = 0x0;
|
||||||
_offset_framelock_speed_fix = 0x0;
|
_offset_framelock_speed_fix = 0x0;
|
||||||
_offset_resolution = 0x0;
|
_offset_resolution = 0x0;
|
||||||
|
|
@ -488,6 +500,7 @@ namespace SekiroFpsUnlockAndMore
|
||||||
_offset_total_kills = 0x0;
|
_offset_total_kills = 0x0;
|
||||||
_offset_timescale = 0x0;
|
_offset_timescale = 0x0;
|
||||||
_offset_timescale_player = 0x0;
|
_offset_timescale_player = 0x0;
|
||||||
|
_offset_timescale_player_pointer_start = 0x0;
|
||||||
this.cbFramelock.IsEnabled = true;
|
this.cbFramelock.IsEnabled = true;
|
||||||
this.cbAddResolution.IsEnabled = true;
|
this.cbAddResolution.IsEnabled = true;
|
||||||
this.cbFov.IsEnabled = true;
|
this.cbFov.IsEnabled = true;
|
||||||
|
|
@ -712,7 +725,7 @@ namespace SekiroFpsUnlockAndMore
|
||||||
if (!this.cbPlayerSpeed.IsEnabled || !CanPatchGame()) return false;
|
if (!this.cbPlayerSpeed.IsEnabled || !CanPatchGame()) return false;
|
||||||
if (this.cbPlayerSpeed.IsChecked == true)
|
if (this.cbPlayerSpeed.IsChecked == true)
|
||||||
{
|
{
|
||||||
if (_offset_timescale_player_pointer_start > 0x0) ReadIngameOffsets();
|
if (_offset_timescale_player_pointer_start > 0x0) ReadPlayerTimescaleOffsets();
|
||||||
if (_offset_timescale_player == 0x0)
|
if (_offset_timescale_player == 0x0)
|
||||||
{
|
{
|
||||||
this.cbPlayerSpeed.IsChecked = false;
|
this.cbPlayerSpeed.IsChecked = false;
|
||||||
|
|
@ -784,7 +797,7 @@ namespace SekiroFpsUnlockAndMore
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (_offset_timescale_player_pointer_start == 0x0 || !CanPatchGame()) return;
|
if (_offset_timescale_player_pointer_start == 0x0 || !CanPatchGame()) return;
|
||||||
if (_offset_timescale_player_pointer_start > 0x0) ReadIngameOffsets();
|
if (_offset_timescale_player_pointer_start > 0x0) ReadPlayerTimescaleOffsets();
|
||||||
if (_offset_timescale_player == 0x0) return;
|
if (_offset_timescale_player == 0x0) return;
|
||||||
|
|
||||||
bool isNumber = Int32.TryParse(this.tbPlayerSpeed.Text, out int playerSpeed);
|
bool isNumber = Int32.TryParse(this.tbPlayerSpeed.Text, out int playerSpeed);
|
||||||
|
|
@ -806,7 +819,7 @@ namespace SekiroFpsUnlockAndMore
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Reads some hidden stats and outputs them to text files and status bar. Use to display counters on Twitch stream or just look at them and get disappointed.
|
/// Reads some hidden stats and outputs them to text files and status bar. Use to display counters on Twitch stream or just look at them and get disappointed.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void StatReadTimer(object sender, EventArgs e)
|
private void StatsReadTimer(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (_gameAccessHwndStatic == IntPtr.Zero || _offset_player_deaths == 0x0 || _offset_total_kills == 0x0) return;
|
if (_gameAccessHwndStatic == IntPtr.Zero || _offset_player_deaths == 0x0 || _offset_total_kills == 0x0) return;
|
||||||
int playerDeaths = Read<Int32>(_gameAccessHwndStatic, _offset_player_deaths);
|
int playerDeaths = Read<Int32>(_gameAccessHwndStatic, _offset_player_deaths);
|
||||||
|
|
|
||||||
|
|
@ -21,5 +21,5 @@ using System.Runtime.InteropServices;
|
||||||
ResourceDictionaryLocation.SourceAssembly
|
ResourceDictionaryLocation.SourceAssembly
|
||||||
)]
|
)]
|
||||||
|
|
||||||
[assembly: AssemblyVersion("1.1.1.0")]
|
[assembly: AssemblyVersion("1.2.0.0")]
|
||||||
[assembly: AssemblyFileVersion("1.1.1.0")]
|
[assembly: AssemblyFileVersion("1.2.0.0")]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue