This library will replace the in-game heap with a faster, more optimized version. It should decrease load times, remove some stutter and slightly improve frame rate.
Requirements
This mod does not have any known dependencies other than the base game.
Other user's assetsAll the assets in this file belong to the author, or are from free-to-use modder's resources
Upload permissionYou are not allowed to upload this file to other sites under any circumstances
Modification permissionYou must get permission from me before you are allowed to modify my files to improve it
Conversion permissionYou are not allowed to convert this file to work on other games under any circumstances
Asset use permissionYou must get permission from me before you are allowed to use any of the assets in this file
Asset use permission in mods/files that are being soldYou are not allowed to use assets from this file in any mods/files that are being sold, for money, on Steam Workshop or other platforms
Asset use permission in mods/files that earn donation pointsYou are not allowed to earn Donation Points for your mods if they use my assets
Author notes
This author has not provided any additional notes regarding file permissions
File credits
This author has not credited anyone else in this file
Donation Points system
Please log in to find out whether this mod is receiving Donation Points
Changelogs
Version 4.2
Bug fixes and improvements.
Version 4.1
Fixed typo with AVX512 dll.
Version 4.0
Rewrote in C. Fixed many bugs found along the way. Improved allocation speeds and free speeds. Decreased memory usage on all heaps substantially. Allows for largely expanding scrap heap.
Version 3.2
Fixed bug with memory pool indexing using the wrong pool and indexing an array out of bounds. Optimized pools and heap further. Added more pools.
Version 3.1
Fixed issue with CPUs that do not support lzcnt.
Version 3.0
Fixed bugs, increased default heap to use 2GB, improved performance further. Added cpu_info to determine highest supported instruction set. Added all MS C++ compiler supported instruction sets.
Version 2.4
Added both AVX2 and SSE2 versions. Small improvements, should be faster.
Version 2.3
Removed newer instructions unsupported by older CPUs. (SSE2 now used instead of AVX2).
Version 2.2
Added scrap heap replacement after fixing bug.
Version 2.1
Removed scrap heap replacement.
Version 2.0
Changed too many things for me to remember. All changes are on GitHub. Tons of changes and optimizations.
Changed FalloutNV.exe detection from first letter to IAT address. Added console to confirm loading. Added LAA check with MessageBox alert. Added hot-fix to allow compatibility with NVSE 5.14.
Donations
No donations accepted
Installation
You will need a 4GB aware version of Fallout: New Vegas for this to work. If you are using a 2GB version, it will not load. Simply extract the folder contents into your game's root directory. If you would like to confirm that the heap replacement loads successfully, a black terminal should spawn every time the game is launched. If you would like the terminal to stop appearing, create a file "d3dx9_38.tmp" in the game's root folder. This will not affect anything in-game. If you want the terminal to appear again, you can delete "d3dx9_38.tmp". I recommend using NVTF with the option bModifyDirectXBehavior set to 1 (bModifyDirectXBehavior=1). It reduces memory usage significantly. It is imperative when using large texture mods.
Conflicts
This should conflict with any existing heap replacer such as NVSR. It is possible to run this alongside NVSR as long as the relevant settings have been disabled. "DefaultHeapInitialAllocMB" in "nvse_config.ini" is now a pointless setting. It will affect absolutely nothing. NVSE v5.14 is incompatible, it has a severe memory corruption bug that has since been fixed in xNVSE.
What this Does
This library completely replaces the game's heap management system with a faster implementation. Every object in game needs to exist somewhere in memory, this library dictates where each object is placed and how those objects are freed. It outperforms the game's outdated heap and thus has quite large performance gains, though perhaps not significant in vanilla New Vegas.
Thanks
Firstly, I would like to thank Nukem and jazzisparis for their "d3dx9_38.dll" library proxy, starting project and advice along the way.
Secondly, to all the testers who helped make this possible. RoyBatty play tested for hours on end in order to get the first stages of the heap going and Kormákur for assistance and stress testing intensive scenarios. Thank you tgspy for consistently testing the latest versions and for sending countless NVAC logs. Later down the line, AVeryUncreativeUsername, V4r0kz, Zhunter5000, Darian Stephens, Vangrel and TheGreatBhan assisted with testing. I am truly grateful for your contributions.
Lastly, to every person I have not mentioned who has provided any sort of assistance along the way, be it large or small, thank you.