Jump to content
  • 0

Common CTDs, Freezes, ILS and memory issues


Question

Posted

 

 

Basic requirements to follow this FAQ

Use the following utilities and have some idea of what they do.

  • ENBoost: This extension moves the DX9 texture cache to a different 64 bit process. This reduces the chance of filling up the 32 bit process with textures causing random CTDs.
  • Crash Fixes: This is an SKSE plugin that helps catch some issues that cause skyrim to CTD, freeze or hang. 
  • Some form of memory fix:
    • SSME: Made redundant by SKSE memory tweaks.
    • SKSE memory tweaks: This changes the initial heap size to make it larger. This avoids the issue where skyrim will not increase the heap causing it to CTD, freeze or hang. This method requires some input for the correct size. This can be found by using Memory Blocks Log. This is a workaround to an issue.
    • Crash Fixes OSAllocators: This is a fix for the same issue that SKSE memory tweaks workarounds. This is a true fix but has its share of issues.
    • Crash Fixes CustomMemoryBlocks: This is a fix to some of the issues caused by OSAllocators. By breaking the heap into smaller blocks, the memory can be allocated and freed as needed. This method requires some input by observing how high you need to set the blocks size. This can be viewed in the console if the toggle is enabled.

 

Info that is typically useless:

  • Papyrus logs: These are NOT crash logs. Typically, the last entry could be several minutes before you even experience a crash. Any useful info is typically debugging code in scripts, this is usually removed/disabled before a mod is released. This is a very helpful tool to modders, but not to users.
  • Windows logs: These are rarely of any use to a user.

 

Issues caused by SKSE memory tweaks:

Problem: I randomly CTD.

Solution: Check the size against the memory blocks log. If the last element is close to the max size then you may need to increase heap 1 by some amount(~128 MB increments is accurate enough). Heap 2 doesnt need to be increased as it spawns more like it should.

 

Issues caused by Crash Fixes OSAllocators:

Problem: I get "Skyrim has failed to allocate memory"

Solution: This is caused by memory fragmentation and there isn't really a solution for this. Its suggest to use the custom memory blocks instead.

 

Issues caused by Crash Fixes CustomMemoryBlocks:

Problem: Stuff isn't loading in as expected.

Solution: Check to make sure the size is appropriate.

 

How to read and interpret Crash Fixes crash log:

I don't know, I'm curious myself. The hex given isn't a formid, its a memory location by my understanding.

 

 

 

 

 

This is the easiest solution to the memory issue.

 

Install this manually into the "Skyrim" folder(with the TESV.exe)

SKSE Plugin Preloader

Install this manually by moving the SKSE folder into the "Skyrim\Data\" folder

Crash fixes

 

Then open the "Skyrim\Data\SKSE\Plugins\CrashFixPlugin.ini"

Modify the "UseOSAllocators=0" to "UseOSAllocators=1"

Save.

 

You should be good now.

 

I'd recommend removing the old methods of heap modification, ENBoost is fine.

 

[spoiler=Old Post]

I made this sticky because there is a sudden up-rise in CTD relating to the memory tweaks not working. It is flooding The General forum and has kind of spread to the memory blocks log mod topic

 

If you are curious how the memory tweaks work, there is an amazing post by keith over here.

 

There are several reasons for one to CTD or freeze but the most common one is that the SSME/Memory Patch 3.0/SKSE memory tweaks are not applying for some reason.

NOTE: SSME is no longer needed and should be removed and replaced with the SKSE Memory Tweaks.

Safety load is also not needed anymore and may cause unexpected issues.

 

 

First, please copy and paste the following into your SKSE.ini file

Make sure your ini is located as such ...\Skyrim\Data\SKSE\SKSE.ini

If you follow STEP check this out.

[General]
ClearInvalidRegistrations=1

[Memory]
DefaultHeapInitialAllocMB=768
ScrapHeapSizeMB=256

To find out if your memory tweaks are working correctly, download and install Memory Blocks Log.

Run the game through MO, I would recommend fully loading into the game but the main menu will suffice. After which close out of the game and open MO again if it closed on you. Go to the overwrite folder and navigate to the "SKSE\plugins\" folder and open up the memoryblockslog.log.

 

Your log should look similar to this:

logging of blocks enabled
logging max values only
Timer disabled
Block1 Block2
512MB 256MB

However, people that experience a lot of crashing will have something like the following:

logging of blocks enabled
logging max values only
Timer disabled
Block1 Block2
256MB 256MB

The most common "fix" is to open the "Modify Executables" window by clicking the gears on  the top part of MO and select the SKSE executable and add the Argument 

-forcesteamloader

It should then look something like this.

ForceSteamLoader.png

After which, click the modify button and then relaunch the game through MO then close it and make the comparison again. 

 

If your results did not change then make a post below, otherwise search for topics that already exist in the General forum. If your particular issue does not already exist then make a new topic and there will be someone to answer your questions.

 

  • +1 3

Recommended Posts

  • 0
Posted

Hey,

 

I just wanted to let you know that I've literally been searching for days to find the cause of my random CTD's and freezes during playthrough. I've installed and reinstalled STEP Core and Extended multiple times. Made countless test runs and put over a hundred hours into find the most stable modded Skyrim experience. Every time, my game became a bit more stable, but then I ran into a lot of seemingly random CTD's and freezes.

 

Using the log mentioned above, I found out that the memory patch wasn't loading properly for my game. My first mem block consisted of 256mb instead of 512. I'm a Mod Organizer user, so I found out adding -forcesteamloader to the SKSE didn't have the desired effect, but placing the SKSE.ini file into the regular game folder (C:/Program Files (x86)/Steam/steamapps/common/Data/SKSE) AND adding -forcesteamloader to the arguments of SKSE in MO, did have the desired effect.

 

I have STEP Extended installed (folllowed all the instructions to the letter), along with a few other mods, so I was at a loss as to how I could solve the issues. But no longer!

 

Thank you so much for this fix! Since using this fix (2 days ago), my freezes and CTD's have reduced by about 80%-90%, which means I can play for at least an hour without any problems. Thanks a bunch for posting this, hopefully other users facing the same issue as me can benefit from this!

  • +1 2
  • 0
Posted

Safety load and the memory tweak can do some really crazy stuff.

 

GACostermans, that is very unusual and it may uncover that skse.ini being in MO instead of that data directory may cause issues but excellent find.

  • 0
Posted

you probably have "Hide extensions" for known file types enabled in the Windows Folder Options.

 

If it is enabled then you may edit the "skse" file may appear as "skse.ini" but because the extensions are hidden the files remains as "skse.ini.txt"

 

867lrU9.png

  • 0
Posted

Which should I remove? Is Safety Load necessery anymore?

 

Also the forcesteam did not work. Only the Lazy Users download seems to work for now. Which is fine with me, it simply added one more mod to my list. https://www.nexusmods.com/skyrim/mods/51038/?tab=2&navtag=http%3A%2F%2Fwww.nexusmods.com%2Fskyrim%2Fajax%2Fmodfiles%2F%3Fid%3D51038&pUp=1

I believe the consensus is to use Sheson's Memory Block Log alongside the CTD and Memory Patch instead of Safety Load.

You could always read the thread here about Safety Load and see where you experience falls compared to everyone else? Some swear by it, others say it isn't needed, others say it causes other problems. YMMV

  • 0
Posted

As a disclaimer, I am not a programmer by trade, but I've looked at the Safety Load source code, and discussed it with several people who are knowledgeable in C, and what safety load tries to do is address the ILS (infinite loading screen) problem of Skyrim, which is just one aspect of what the Sheson memory patch fix takes care of.

 

Safety Load is quite different from the Sheson memory patch fix in that it hijacks Skyrim's routine to automatically increase the heap cache memory allocation if it happens during a loading screen. When I say "hijack", I mean that it uses a sort of "brute force" method to insert itself into Skyrim's code to take over that memory allocation routine.

 

My personal experience is that although it does work most of the time, in some cases it caused severe visual corruption to the flash-based graphic of the SkyUI mod. Even scarier is that the corruption was "baked" into subsequent game saves. The author did try to address this issue, but there was no guarantee that it was completely resolved.

 

The Sheson patch method is far less invasive, because for its central feature, it literally just changes one byte (if you only change the block 1 allocation) before Skyrim even starts executing code, and that byte is just used to set the initial size of the "Block 1" heap cache allocation.

 

Long story short, Sheson's memory patch supersedes Safety Load, because it addresses the problem both when it happens during a loading screen, and also when it happens while moving across exterior cell borders.

 

Purely based on my direct experience with the SkUI, I sadly cannot recommend using Safety Load. And, really, it's not adding any more stability. I myself hardly ever experience ILS, and I use Sheson's fix and ENBoost, without Safety Load.

 

Keep in mind that there are other reasons that ILS can occur, related to troubles loading texture / 3D geometry data. Also, from everything I've read people reporting, certain combinations of settings in ENBoost and mod load out can lead to loading screens taking much longer than expected, and I think a lot of people get impatient and assume it was an ILS instead of a TMLS (two minute loading screen :lol: ).

  • +1 2
  • 0
Posted (edited)

I did like you described some weeks ago and also noticed that my memory patch wasn't working properly. I was experiencing freezes, ILS with a save and some CTDs.

It came out that the only faulty thing was that my SKSE.ini was not a .ini but instead a SKSE.ini.txt file. Stupid Windows and their default option of not showing the whole data extension. :ermm:

After I fixed that, it worked like intended and now my ILS and CTDs are all gone. Haven't experienced one since then. Incredible!

Edited by tschilpi
  • 0
Posted

Do you guys know if running sheson's memory tweak along with HiAlgo GPU Boost will create a conflict? I couldn't instal HiAlgo with MO. Is it a d3d9.dll based Mod ? https://www.nexusmods.com/skyrim/mods/15123/?

 

 

As a disclaimer, I am not a programmer by trade, but I've looked at the Safety Load source code ...

Aweseom explanation! thanks for the detailed reply, it makes things much clearer.

 

you probably have "Hide extensions" for known file types enabled in the Windows Folder Options...

 

No, I made sure I deleted the .txt part. It has the ini gear symbol too.

  • 0
Posted (edited)

Hello there,

I'm experiencing the same issue addressed in the thread. Although I'm an NMM user, I have configured it to run custom skyrim launcher using skse_loader with -forcesteamloader argument. However, the memory tweak still won't work for me. I have also tried launching skse_loader directly with -forcesteamloader in a shortcut, neither did this help.

 

My preallocated memory is still 256MB for the first block:

 

 

 

logging of blocks enabled
logging max values only
Timer disabled
Block1 Block2
256MB 256MB
85 8
85 8
...

 

 

 

Below are my skse.ini settings (I have  checked it is not .ini.txt):

 

 

 

[Memory]
DefaultHeapInitalAllocMB=768
ScrapHeapSizeMB=256

 

 

 

and here's what I get from C:\Users\Lingyi\Documents\my games\skyrim\SKSE\skse_steam_loader.log

 

 

 

skse loader 01070010 (steam) 01D0310D652CCEC3 6.2 (9200)
base addr = 71CB0000
GetSystemTimeAsFileTime IAT = 0106B1D8
original GetSystemTimeAsFileTime = 75FB4CF0
patched GetSystemTimeAsFileTime = 71CB17F0
GetStartupInfoA IAT = 0106B1D0
original GetStartupInfoA = 75FBA47C
patched GetStartupInfoA = 71CB1810
InstallHook: thread = 50268 retaddr = 00F5673E hookSrc = 1
appPath = C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\TESV.exe
dwSignature = FEEF04BD
dwStrucVersion = 00010000
dwFileVersionMS = 00010009
dwFileVersionLS = 00200000
dwProductVersionMS = 00010009
dwProductVersionLS = 00200000
dwFileFlagsMask = 00000017
dwFileFlags = 00000000
dwFileOS = 00000004
dwFileType = 00000001
dwFileSubtype = 00000000
dwFileDateMS = 00000000
dwFileDateLS = 00000000
version = 0001000900200000
steam exe
dll = C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\skse_1_9_32.dll
old winmain = 0069D1D0
runtime root = C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\
config path = C:\Program Files (x86)\Steam\SteamApps\common\Skyrim\Data\SKSE\skse.ini
OnHook: thread = 50268
calling winmain

 
As far as I know, this memory patch is included in 1.7.1 version of skse. Could anyone help me with this ? I have 64-bit windows 8 OS and I'm currently using Realvision ENB which use enbseries 262.
 
I realy hope I could get this memory tweak to work since I have been running about 150 mods and every once a while it will run above 256mb memory
 
Thanks ahead for any inputs on this
 
 
P.S. for the time being, I will be using SSME and it does successfully tweaked the memory, but I'm still looking for a skse.ini solution since this is likely the method that'll be maintained in future.
Edited by saber47

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

By using this site, you agree to our Guidelines, Privacy Policy, and Terms of Use.