Profile - Faster Game Start (INI File Transferr)

by Kerber·v0.2.0·Updated 2018-08-04

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

  1. Unzip the archive from playbuff and read the bundled readme / instructions first.
  2. 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.
  3. Place the files exactly as the readme says; mods with listed dependencies need those installed too.
  4. 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.

File & checksum

Filename
个人资料-更快的游戏开始(INI文件传送器)
File size
135.0 KiB