Saints Row: The Third

Saints Row: The Third

Not enough ratings
Fix freezing & crashing on modern multicore CPU PCs
By WEBMUBE
Here I explore the solution that involves disabling excessive CPU cores in order for this game to function with more stability on 4 cores only.
I had this issue with the game pediodically crashing out of nowhere. With one frame frozen and PC completely unresponsive (but interestingly game sound kept going in the background).
One of the popular solutions for this problem is disabling all CPU cores except 0,1,2,3 via Task Manager >>> Details >>> Right click on "SaintsRowTheThird_DX11.exe" >>> Set Affinity.
And this worked for me nicely. The game became stable.
But this solution is not optimal. You can't really do this everytime you launch the game. This would be super annoying. So I've opened the good old ChatGPT and started exploring options. Here is my optimal solution that works automatically and let's you run the game normally with proper stability. It has one small downside, you'll have to be launching the game using a .bat file. (it still launches on Steam, so it doesn't matter that much).
   
Award
Favorite
Favorited
Unfavorite
Step 1.
1. We create our FIRST .bat file with the following code (this bat can be stored on your desktop or anywhere really):
@echo off rem Get the Process ID (PID) of SaintsRowTheThird_DX11.exe for /f "tokens=2" %%i in ('tasklist /fi "imagename eq SaintsRowTheThird_DX11.exe" /nh') do set PID=%%i rem If the PID is found, set the affinity using PowerShell if defined PID ( powershell -Command "Get-Process -Id %PID% | ForEach-Object { $_.ProcessorAffinity = 15 }" echo Affinity set to cores 0, 1, 2, 3 for process ID %PID% ) else ( echo Process not found! ) pause
What this code does is finding the SaintsRowTheThird_DX11.exe active process and setting the 0,1,2,3 cores as the only active. Disabling the rest. Basically the same task that you would do manually but using Windows PowerShell.
Step 2.
2. Ok, our first .bat file is kinda awesome but in order for this to work, the game has to be launched first. Here comes the second .bat file. This is the one we'll be using to actually launch the game when we're done. So create the second .bat and paste the following code:
@echo off start "" "C:\Program Files (x86)\Steam\steam.exe" -applaunch 55230 timeout /t 20 /nobreak start /min "" "C:\PATH TO YOUR FIRST BAT\NAME OF YOUR FIRST BAT.bat" exit
What this code does is:
1. It launches the steam App number 55230 (Saints Row the Third that is).
2. Starts the countdown of 20 seconds (adjustable). We give your PC time to launch the game.
3. When 20 seconds are over, it starts our first .bat file which finds the process for us and adjusts the cores affinity.
Closing info
This way we automate almost everything. From now on, you only have to click on your second .bat in order to start the game properly with correct CPU core settings.
This guide might seem a little bit too complicated, but remember, there is also an annoying pre-game launcher that asks the DirectX version you wanna be using. That's also why we are giving a 20 second countdown, so you have time to select DirectX 10-11 version and start the actual executable. (Yes, this guide is for 10-11 DirectX version, but I guess you can adjust it for 9 as well if needed).

Also, this guide would be perfectly viable for other older games that have the same bad taste of becoming unstable on modern Multicore CPUs, so be sure to remember about it.
2 Comments
joshuaboyd1999 15 Aug @ 6:35pm 
although a bit of work, i did this in saints row 4 but it sounds like a similar thing. https://www.eightforums.com/threads/cpu-affinity-shortcut-for-a-program-create-in-windows.40339/
tatourice 21 Jun @ 5:13pm 
FOR OTHERS:
Just to make sure, put the path of your first .bat file in the second to last line of the second .bat file.

It'll let you know, but for example I didn't, but mine is at "E:\SteamLibrary\steamapps\common\Saints Row the Third\Bat 1.bat"

(Made it easy for me). Whever your Saints row be, just go to settings on the game page, or right click the game, and manage, then browse local. I'd recommend putting the 2 files there to make it easy to find, then right click BAT 2, and create a shortcut and put it to desktop.