Monday, July 2, 2018
MLB 2K12 Freezing Heres the Workaround Updated with Batch File
MLB 2K12 Freezing Heres the Workaround Updated with Batch File
Read on if youre stuck on MLB 2K12s title screen.
* This post has been updated. Click here to skip to the new stuff. *
* Update #2: Click here to check out another workaround. *

2K Sports makes me a little sad.
This is likely the end of the line for the MLB 2K series since Take-Twos agreement with MLBPA expires this year. Post-release support for MLB 2K12 has been pretty awful, with the PC version left completely untouched and consoles last seeing a patch in June. This years title isnt terrible, but the game isnt without its bugs and shortcomings.
One such bug that first cropped up during the actual All-Star Break in July seems to have returned. After opening MLB 2K12 and watching the game load all of the sliders, profiles, and roster files, the game freezes. This likely has to do with the "MLB Today" feature and the fact that there werent any games on the real-life MLB schedule on July 9, 11-12, and October 4-5.
Thankfully, theres a relatively easy workaround that involves changing your system date. In Windows 7, right-click the system clock on the taskbar and select "Adjust date/time". Click "Change date and time..." and change the date to a day on which MLB games were played - Tuesday October 2nd works.

After changing the system date you should be able to play MLB 2K12 normally.
Unfortunately, theres a very real possibility that you may need to keep adjusting your system date until 2K releases a permanent fix. Hopefully they address the issue before too long, because this is pretty ridiculous.
UPDATE: Automatic Date Adjustment and Game Launching via Batch File
Its pretty annoying to need to manually update your system date every time you start MLB 2K12, so after slumming it for a couple of days I began to search for a better method. Thanks to Google and a crash course in batch file creation, I figured out how to automate the entire process.
Note: A user suggested an alternative batch script in the comments below, and Ive tweaked the code and incorporated it into my own batch file. To view the original batch file and step-by-step creation guide, click on the button below.
Note: Im using Windows 7. This method works perfectly on my PC, but theres no guarantee itll work on yours without some tinkering.
First, open up Notepad - you can use the Start menu to open the program, or you can create a text file by right-clicking on your desktop and choosing "New > Text Document." Next, paste the following into the blank Notepad window:
@echo off
date 10/02/2012
echo Date changed to October 2nd.
cd /d "E:2K SportsMajor League Baseball 2K12"
echo Starting MLB 2K12...
Start /WAIT mlb2k12.exe
echo Re-syncing Windows time...
net start W32Time
w32tm /resync
pause
exit
Im in the US, so Windows is configured to display dates in month/day/year format. You may need to change the date (in purple above) if things arent working. Try opening a command promt (Start > "cmd" without quotes in the search box) and typing "date /t" (again without quotes) to display your system date.
The value in quotes (red) needs to be changed to your MLB 2K12 installation directory. Mine is "E:2K SportsMajor League Baseball 2K12" while yours is probably "C:Program Files (x86)2K SportsMajor League Baseball 2K12" or "C:Program Files (x86)Steamsteamappscommonmlb 2k12". If youre unsure of where your game is installed, right-click the shortcut you use to open the game and look at the "shortcut" tab; you should be able to find the installation path next to the "Start in:" label. Make sure to enclose the path in quotes.
Heres the important part: youll need to save this file as a batch (.bat) file. First, click on "File > Save As." Next, change the "Save as type:" option from "Text Documents (*.txt)" to "All Files." Name the file whatever you like, but make sure to add ".bat" to the end of the filename so that it reads "whatever.bat". It should look like the following:
![]() |
| You absolutely need to save the file as a .bat. Thats pretty much the whole point of this exercise. |
You should be left with a file that has an icon with a white box and a couple of gears inside.
This batch script does a number of things. The system date is first changed to October 2nd (which I find safer than October 3rd in case midnight rolls around while youre playing). After changing the date, the script runs mlb2k12.exe, which is the executable file that launches MLB 2K12. Once youre done playing and you close the game, the script re-syncs your system to todays time and date before exiting.
To execute the script and run the game, simply double-click the file.
Potential Issues
Unfortunately, your system date probably wont update correctly the first time you try to run the script. Microsoft wont re-sync your time and/or date unless the new value is within 15 hours of the old one, probably to prevent a potential error with a time server from suddenly changing everyones date to January 1st 1969 or something.
Getting around the 15-hour limit involves editing a couple of registry entries (which I found out about here). Create a new text file and paste the following into the window that appears.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeConfig]
"MaxNegPhaseCorrection"=dword:ffffffff
"MaxPosPhaseCorrection"=dword:ffffffff
This time youll need to save this file with a .reg extension. Follow the same process as above, this time naming the file "whatever.reg". Double-clicking on the file you just edited should greet you with a warning about editing registry entries - allow the changes and you should be all set. The edits above simply change the time difference limit from 15 hours (54000 seconds, or D2F0 in hexadecimal) to an "unlimited" amount (FFFFFFFF in hex, which is 4,294,967,295 seconds or 136 years).
The Windows time service will need to be restarted for this change to go into effect. Either restart your PC (easy) or restart the Windows service manually (slightly more involved). To restart manually, click Start and type "services" into the search box. Click on the "Services" result (the one with a gear icon) and scroll down to "Windows Time." Right-click and select "Restart" to get the service running again.
If the re-sync still isnt working correctly, check to make sure that Internet time syncing is working in the first place. Right-click the clock in the system tray and select "Adjust date/time". Select the "Internet Time" tab and click "Change settings...". Make sure the checkbox is ticked, select a time server, and hit "Update now"; you should see a message saying that the action completed successfully.
tl;dr
Phew. To recap:
- Create a new batch file and paste the script (first box above) into it. Make sure to verify date format and installation directory.
- Create a new registry file and paste the registry edit commands (second box) into it.
- Run the .reg file and either restart your PC or manually restart the Windows Time service.
- If the date doesnt update correctly, check to make sure that Internet time syncing is enabled and working correctly.
To run MLB 2K12, simply double-click the batch file. Date adjustments should be taken care of automatically, and you can verify that everything went smoothly via the scripts output before hitting any key to close the window.
Occasionally Ill run the script and itll tell me that the time sync didnt complete correctly even though it actually did - a glance at the date in the system tray verifies this. Im not totally sure why, but hey, it works. Additionally, try not to run this script 50 times per day or anything as you might get banned from the Internet time server for requesting too many updates. Ive been tinkering with the script for several hours and everything is working fine, though, so this shouldnt be a problem for normal use.
Again, Im not exactly a batch file guru, but Id imagine this should work for any standard Windows Vista or 7 installation (and maybe even XP). Feel free to post a comment below if you have a problem, but I cant guarantee that Ill be able to help.
In the end, I spent something like 2 hours figuring out how to create a batch file so that I wouldnt need to spend 10 seconds changing my system date every time I open MLB 2K12. I feel like a legend.
Note: Im using Windows 7. This method works perfectly on my PC, but theres no guarantee itll work on yours without some tinkering.
First, open up Notepad - you can use the Start menu to open the program, or you can create a text file by right-clicking on your desktop and choosing "New > Text Document." Next, paste the following into the blank Notepad window:
@echo off
:: Save month, day, and year from current date in MM/DD/YYYY format
For /F "tokens=2,3,4 delims=/ " %%A in (Date /t) do @(
Set Month=%%A
Set Day=%%B
Set Year=%%C
)
:: Set tomorrows date to todays date plus one
set /A Tomorrow=%Day%+1
:: Save pre-run hour from time variable
set hh1=%time:~-11,2%
set /a hh1=%hh1%+100
set hh1=%hh1:~1%
:: Display current date and time
echo Current date is: %date% %time%
:: Set date to October 2nd
date 10/02/2012
echo Date changed to October 2nd.
:: Start MLB2K12 and wait for exit
cd /d "E:2K SportsMajor League Baseball 2K12"
echo Starting MLB 2K12...
Start /WAIT mlb2k12.exe
pause
:: Save post-run hour
set hh2=%time:~-11,2%
set /a hh2=%hh2%+100
set hh2=%hh2:~1%
:: If hh2 is less than hh1 increment day, else keep same
echo Syncing date...
if /i %hh2% LSS %hh1% (
date %Month%/%Tomorrow%/%Year%
) else (
date %Month%/%Day%/%Year%
)
echo Current date is:
date /t
pause
exit
Im in the US, so Windows is configured to display dates in MM/DD/YYYY format. You may need to change the lines in purple above if things arent working for your localized version of Windows - more on that in a bit.
The value in quotes (red) needs to be changed to your MLB 2K12 installation directory. Mine is "E:2K SportsMajor League Baseball 2K12" while yours is probably "C:Program Files (x86)2K SportsMajor League Baseball 2K12" or "C:Program Files (x86)Steamsteamappscommonmlb 2k12". If youre unsure of where your game is installed, right-click the shortcut you use to open the game and look at the "shortcut" tab; you should be able to find the installation path next to the "Start in:" label. Make sure to enclose the path in quotes.
Heres the important part: youll need to save this file as a batch (.bat) file. First, click on "File > Save As." Next, change the "Save as type:" option from "Text Documents (*.txt)" to "All Files." Name the file whatever you like, but make sure to add ".bat" to the end of the filename so that it reads "whatever.bat". It should look like the following:
![]() |
| You absolutely need to save the file as a .bat. Thats pretty much the whole point of this exercise. |
You should be left with a file that has an icon with a white box and a couple of gears inside.
To execute the script and run the game, simply double-click the file.
This batch script does a number of things. First, the current time and date are stored. The system date is then changed to October 2nd (which I find safer than October 3rd in case midnight rolls around while youre playing). After changing the date, the script runs mlb2k12.exe, which is the executable file that launches MLB 2K12.
After you exit the game, the script compares the current time (after playing) to the previously recorded time (before playing) and sets the system back to the correct date. Lets say that today is the 22nd. If you started playing at 10pm and finished at 11pm, its still the 22nd, so nothing exciting happens. However, if instead you started at 11:30pm (23:30) on the 22nd and finished at 12:30am (00:30) on the 23rd, the original date needs to be adjusted. The "hours" value of the ending time (00) is less than the "hours" value of the starting time (23), meaning midnight has passed (or youve gone back in time) and we need to increment the originally stored date by one.
tl;dr - double-click the file and magic happens. Hit the spacebar a few times once youre done playing MLB2K12 and your system date should be back to normal.
Date and Time Formatting Issues
Again, the main thing you need to double check when using this script is the date format of your copy of Windows. Open up a command prompt and test out the following command (without quotes):
- "date /t" - My system returns something along the lines of "Tue 10/23/2012"
Lets say your system uses a European date format of DD/MM/YYYY; in other words, October 23rd 2012 is 23/10/2012. Youd want to change lines 2-7 above to the following:
:: Save month, day, and year from current date in MM/DD/YYYY format
For /F "tokens=2,3,4 delims=/ " %%A in (Date /t) do @(
Set Day=%%A
Set Month=%%B
Set Year=%%C
)
Here "Day" comes before "Month" in the default formatting, so you need to flip-flop those two lines. In addition, youd need to change line 17 ("date 10/02/2012") to "date 02/10/2012". Youd also need to change the formatting of the "if/else" statement near the end of the file: "%Month%/%Tomorrow%/%Year%" becomes "%Tomorrow%/%Month%/%Year%" and "%Month%/%Day%/%Year%" becomes "%Day%/%Month%/%Year%" (6 and 8 lines from the end).
If for some reason your copy of Windows is configured to show dates without a slash "/" character, youll need to change another value. In the third line of code, "delims=/" corresponds to the date delimiter (the slashes in MM/DD/YYYY). If your system displays dates as MM.DD.YYYY for example, try changing "delims=/" to "delims=.". Youd also need to change the date formatting throughout the rest of the script.
All of this was cobbled together via Google searches and I dont claim to be anything close to a batch file or Windows localization expert. With that being said, the script works perfectly on my US Windows 7 install and should work in other locales with minimal tweaking.
UPDATE #2: An Alternative Workaround
Kccitystar, a prominent modder over at MVPMods.com, has come up with a potentially permanent fix. He posted the details over at the 2K Sports forums.
I havent tried the fix yet myself, but it basically involves rolling your system date back, connecting to 2K Share to download a roster, and resetting your system date. Everything should update on its own from there on out, with the daily match-up featuring last years World Series teams (Cardinals and Rangers).
The things we do to be able to play baseball on the PC...
