Profile - Faster Game Start (INI File Transferr)
Speed up your game by storing INI files in memory instead of opening, parsing, and closing the file every time.
Screenshots 1 screenshots
About this mod Machine translation
Speed up your game by storing INI files in memory instead of opening, parsing, and closing the file every time.
question
The problem this plugin is trying to solve comes from the fact that the game uses an old, deprecated, and extremely inefficient function to load values from an INI file. The function in question is GetPrivateProfileString, a relic of 16-bit operating systems. But you know what's worse than using a function like this? Apparently the game uses this function for every game setting, which means the same ini file is opened and closed hundreds of times. What's really sad is that for every plugin enabled, the game will try to read all the same settings from a hypothetical INI file, and the plugin may or may not load. So you end up with a large number of unusually inefficient calls for every mod plugin enabled. As a solution, this module will concatenate the functions involved and load the target INI file into memory, so that each call to the same INI file will be much faster, since it will read directly from memory and there will be no need to open the file from scratch.
This module will reduce your startup time by a number of seconds depending on the number of plugins you have enabled, and others using INI files (although ENB comes with its own loading issues that this module cannot fix). It will be essentially unnoticeable when used in a vanilla game and will go up from there, dropping 6 seconds for around 50 addons, up to 20 seconds for 250+ addons.
untie
When a game, ENB or something else calls GetPrivateProfileString for the first time this plugin will load the requested file in memory and return the required data. Next time, no files will be loaded and the data will be fetched from memory. The same thing happens when a process tries to write a value to a file. Instead of opening the file again, parsing it and saving it to disk, the plugin will write the data to an in-memory file and then save it to disk (if allowed). Additionally, all files are saved when the game is closed, if the game does not crash the process.
Plugin source is available on GitHub.
required
SKSE 64, SSE engine fixes.
Install
This is an SKSE plugin, so install like any other SKSE plugin. Unzip the archive in your game folder or use a mod manager.
uninstall
Use a MOD manager or delete all installed files.
Override function
GetPrivateProfileStringA
GetPrivateProfileStringW
WritePrivateProfileStringA
WritePrivateProfileStringW
GetPrivateProfileIntA
GetPrivateProfileIntW
Configuration
The plug-in can be configured in its own INI file, and each parameter is described in this file.
Q&A
Q: Do I really need this?
Answer: It depends on the situation. If your game starts from shortcut keys to the main menu in an instant, then no. If it takes longer, this plugin can help. How much time you'll save depends on your setup.
Q: Does this apply to MO/NMM/Vortex/Kortex (yes, I had to mention that) or any other mod manager?
Answer: Tested with MO2 and Kortex, no problem found. Vortex and NMM have not been tested but are expected to work fine. I can't speak to the compatibility with other mod managers.
Q: I installed it on launch and it crashed the game.
A: Enable login profiles and replicate crashes. Go to Data\SKSE\Plugins, find the file PrivateProfileRedirector.log, zip it up, upload it somewhere, and post a link to it in your problem report. The log file can exceed 100 MB, so don't upload it as-is, be sure to compress it.
Thanks to everyone who helped test the plugin, especially AL 12.
Install & use Install: follow the bundled instructions
- Unzip the archive from playbuff and read the bundled readme / instructions first.
- There is no universal mod manager for this game: some mods replace game files directly, some go into a game-specific Mods folder, and some need a game-specific community loader or tool first — follow the bundled readme.
- Place the files exactly as the readme says; mods with listed dependencies need those installed too.
- Launch the game to confirm it loaded; some games require enabling mods in settings or an in-game mod menu.
Install locations vary a lot between games and mods — the bundled readme is the most reliable guide.