Jump to content

Crash at >65k strings with Crash Fixes (LE)


Recommended Posts

Posted

Hello LL Community,

 

I am currently rather stumped by a strange CTD on my new character. The save has recently exceeded the vanilla hard cap of 65k strings and now crashes on save despite having Crash Fixes installed.

 

The crash message is this:

01 Mar 00:39:40 Game has crashed with exception address 0x68701D!

 

Some googling has revealed different tips on how to fix this error such as it being a corrupt audio file or the absence of a batched patch. I've tried disabling my Sound mods and created a proper bashed patch, to no avail. But given that the character saves perfectly fine with 65529 strings (7 decimals below 16 bit) but crashes afterwards this looks like a very likely culprit to me.

The whole player.kill trick didn't work either, but I'm not a huge fan of this workaround anyways as it doesn't fix the actual cause of the issue, just the symptom.

 

Load Order:

Spoiler

Skyrim.esm
Update.esm
Dawnguard.esm
HearthFires.esm
Dragonborn.esm
Lanterns Of Skyrim - All In One - Main.esm
Unofficial Skyrim Legendary Edition Patch.esp
Skyrim Project Optimization - Full Version.esm
Unique Flowers & Plants.esm
Schlongs of Skyrim - Core.esm
RaceCompatibility.esm
SexLab.esm
CreatureFramework.esm
SexLabAroused.esm
EFFCore.esm
hdtHighHeel.esm
Campfire.esm
ZaZAnimationPack.esm
ApachiiHair.esm
ApachiiHairFemales.esm
Devious Devices - Assets.esm
Devious Devices - Integration.esm
daymoyl.esm
Skyrim - Utility Mod.esm
Devious Devices - Expansion.esm
Amputator.esm
dcc-soulgem-oven-000.esm
Cutting Room Floor.esp
Weapons & Armor Fixes_Remade.esp
Clothing & Clutter Fixes.esp
RealisticRoomRental.esp
SkyUI.esp
Relationship Dialogue Overhaul.esp
CollegeOfWinterholdImmersive.esp
JKs Skyrim.esp
Complete Crafting Overhaul_Remade.esp
WetandCold.esp
AOS.esp
Immersive Sounds - Compendium.esp
SD Cages.esp
WARP.esp
Book Covers Skyrim.esp
ethereal_elven_overhaul.esp
DIVERSE SKYRIM -Nord Stormcloaks Only.esp
Paralysis.esp
iHUD.esp
XPMSE.esp
Footprints.esp
ORM-Arvak.esp
DeadlySpellImpacts.esp
AOS2_DSI Patch.esp
SDO Full-LOD - The Morthal Swamp Complete.esp
SkyFalls + SkyMills + DG + DB.esp
SkyFalls Dragonborn Small waterfalls.esp
AOS2_WetandCold Patch.esp
WetandCold - Ashes.esp
Unleveled_Items.esp
Thief skills rebalance for Ordinator.esp
IHSS.esp
randomthunder.esp
ADS.esp
ISCompendium AOS Patch.esp
Auto Unequip Ammo.esp
Hothtrooper44_Armor_Ecksstra.esp
Traps Make Noise.esp
WM Trap Fixes.esp
TheEyesOfBeauty.esp
RevampedExteriorFog.esp
AHZmoreHUD.esp
Beards.esp
Brows.esp
Lepidoptera Of Skyrim DLC1.esp
The Eyes Of Beauty - Elves Edition.esp
IcePenguinWorldMap.esp
UIExtensions.esp
Smoking Torches.esp
TorchRadius.esp
RaceMenu.esp
RaceMenuPlugin.esp
AddItemMenu2.esp
ISCompendium CCO Patch.esp
Summermyst - Enchantments of Skyrim.esp
Weapons & Armor_TrueWeaponsLvlLists.esp
ContinueGameNoCrash.esp
SOS - Smurf Average Addon.esp
FISS.esp
FNIS.esp
Random Vampire Attacks in Towns Disabled.esp
RaceMenuMorphsUUNP.esp
SexLab_Solutions.esp
SimplyKnock.esp
honedmetal.esp
UUNP Vanilla Outfits.esp
GirlHeavyArmor.esp
SOS - Leito Addon.esp
NIOVHH.esp
RealisticHumanoidMovementSpeed.esp
Andromeda - Unique Standing Stones of Skyrim.esp
NARC.esp
SLAnimLoader.esp
SexLabTools.esp
AnubAnimObj.esp
SlaveTats.esp
FeMequins - Hearthfire.esp
KS Hairdo's.esp
ZIA_Complete Pack_V4.esp
imp_helm_legend.esp
ISC CCF Patch.esp
SexLab-AmorousAdventures.esp
AmorAdvExtended.esp
WARP - JKs Skyrim Patch.esp
SFO - Expanded Diversity.esp
Hothtrooper44_ArmorCompilation.esp
Point The Way.esp
SDO Full-LOD - Waterfall Effects.esp
RealisticWaterTwo.esp
AOS2_RealisticWaterTwo Patch.esp
SexyBanditCaptives.esp
EFFDialogue.esp
RDO - Cutting Room Floor Patch.esp
TheChoiceIsYours.esp
sanguinesDebauchery.esp
SkyrimSewers.esp
Further Dark Dungeons for ENB.esp
Immersive Weapons.esp
Wildcat - Combat of Skyrim.esp
WeaponsArmorFixes_ImmersiveWeapons_Patch.esp
aMidianborn_Skyforge_Weapons.esp
dD - Enhanced Blood Main.esp
dD-Dragonborn-Dawnguard-EBT Patch.esp
AOS2_EBT Patch.esp
Improved Combat Sounds v2.2.esp
ISC WAFR Patch.esp
ISC MLU Patch.esp
ISCompendium Enhanced Blood Patch.esp
Schlongs of Skyrim.esp
RaceCompatibilityUSKPOverride.esp
MoreNastyCritters.esp
hothtrooper44_ArmorPatch.esp
Mortal Enemies.esp
Populated Dungns Caves Ruins Legendary.esp
RealisticWaterTwo - Legendary.esp
CFTO.esp
Run For Your Lives.esp
SMIM-Merged-All.esp
SexLabMatchMaker.esp
SLAL_AnimationByBakaFactory.esp
Convenient Horses.esp
DragonCombatDialogue.esp
SLALAnimObjBillyy.esp
Mining For Mages Redux.esp
Bathing in Skyrim - Main.esp
Bathing in Skyrim - Realistic Room Rental.esp
SexyBanditCaptives_ApachiiHair.esp
SlaveTatsEventsBridge.esp
WardsFunctionalitiesExtendedSLE.esp
Celes Tarot Outfit Light UNP.esp
Gwelda Armor Pack.esp
Sotteta Necromancer Outfit.esp
Merta Black Rose Armor.esp
DianaVampyrePureBloodEdit.esp
Tiwa44_Minidresses_Standalone.esp
Tiwa44_Minidresses_Standalone_DG&DB.esp
UNP Spice Gear.esp
BloodMagicArmor.esp
SimpleSlavery.esp
Immersive Patrols II.esp
Populated Cities Towns Villages.esp
SDO Full-LOD - Whiterun Trundra Creeks.esp
Frostfall.esp
SLPrivacy.esp
SexLab_Dialogues.esp
Dismiss Summons - Spell.esp
Devious Cidhna.esp
Skyrim Flora Overhaul.esp
Verdant - A Skyrim Grass Plugin.esp
HoldBorderBanners.esp
SexLab Eager NPCs.esp
WARP - CFTO Patch.esp
iNeed.esp
SDO Full-LOD - Giant Campfires.esp
iNeed - Dangerous Diseases.esp
SD Patches.esp
Ordinator - Perks of Skyrim.esp
CWIOrdinatorPatch.esp
Alternate Start - Live Another Life.esp
pchsWartimes.esp
hydra_slavegirls.esp
Thugs.esp
Predator Vision.esp
DVA - Dynamic Vampire Appearance.esp
MagnoCumGaudio.esp
Deviously Cursed Loot.esp
Sexual Vampire Feed.esp
Sacrosanct - Vampires of Skyrim.esp
DD_Helpers.esp
Vampire Skin Color Fix.esp

 

 

SKSE.ini

Spoiler

[General]
ClearInvalidRegistrations=1
EnableDiagnostics=1
[Display]
iTintTextureResolution=2048
[Memory]
DefaultHeapInitialAllocMB=768
ScrapHeapSizeMB=256
[Debug]
Writeminidumps=1

 

 

CrashFixPlugin.ini (untouched I believe?)

Spoiler

[Patch]

; Info: Completely disable Skyrim's memory allocator and use regular C malloc. That means memory blocks will not exist anymore
;       and game will not crash at some arbitrary limit. Theoretically it should also be faster (especially loading screens)
;       and eliminate most ILS or freezing issues.
; IMPORTANT!!: You NEED custom plugin loader to run this so CrashFixPlugin.dll gets loaded before the game initializes!
;              Here is the link to "SKSE Plugin Preloader": http://www.nexusmods.com/skyrim/mods/75795/?
; When this is enabled then Safety Load and SSME/SKSE memory patch are not needed, but they don't cause any trouble if you do have them.
UseOSAllocators=0

; Info: When the game crashes unexpectedly then write the relevant information from crash to Data/SKSE/Plugins/CrashLog/crash_time.txt
;       If game crashes when running out of memory or has other issues it's possible for the file to not appear or become empty!
;       If the game crashes in SKSE dll or a SKSE plugin dll then it's possible for the crash information to not appear.
;       This setting's value is treated as flags where:
;       1 - enabled (TL;DR set this for normal enable)
;       2 - don't write timestamp into file name but instead always write to crash_last.txt (overwritten by default)
;       4 - don't ignore already known crashes, usually ones that display a message box are ignored
;       8 - append file if it already exists instead of replacing
;       16 - when the game crashes CTD without a message box about game stopped responding
RecordCrashInfo=1

; Write messages that appear in error box also to file in "Data/SKSE/Plugins/CrashFixPluginLog.txt"
LogMessageToFile=1

; Info: Warn user on startup if ENB settings are incorrect.
WarnBadENB=1

; Info: Crash happens unknown constructor (TESObjectLAND::unk_24 object), movaps instruction is used
;       but heap allocate did not allocate this object to have 16 align. Crash happens more frequently
;       with high Ugrids because more cells are loaded and greater chance to misalign.
; Solution: Could align only this object or align all objects. Trying with all to see what happens since
;       same error could be elsewhere as well and I think I have seen it elsewhere.
; Result: Fixes these type of crashes. Some people report longer loading times and higher memory usage with this enabled!
; Update: Disabled by default since it's incompatible with some ENB settings, higher memory usage and longer loading times.
;         It's safe and probably good to enable if you are ok with those downsides. I have not personally experienced
;         any incompatibility with ENB, some people say it messes up their game that's why I wrote it here.
AlignHeapAllocate=0

; Info: Game crashes when strcmp is passed NULL char*
; Address: D573A8
; Cause: Most frequently happens in TthkbClipGenerator::activate (0xBF2FB3),
;        tracked issue to skeleton was deleted in another thread while
;        this function is attempting to use it. Have seen in other places
;        too.
; Solution: Unknown. This doesn't really fix it for BF2FB3 because it just pops up in foot IK.
;        If patched in foot IK it pops up in hand IK, the problem is larger than just this.
;        Still enabled because it may fix crashes in other places too this is a very common function.
;        There's really no reason not to have it since the game would crash certainly with this off.
; Enable one. NoTry may be slightly faster but catches less crashes.
StrCmp=1
;StrCmpNoTry=1

; Info: Game crashes when strlen is used on NULL char*
; Address: 46EDF0
; Cause: NiNode names are compared, one of the NiNode's name is NULL.
; Code:
;	NiNode ** v72 = NiNode::children.data - this is iterated until count
;	NiNode * v69 = ...
;	const char * v56 = v69->name;
;	if ( v56 )
;	{
;	const char * v57 = v72[v49]->name; // <- v57 name is not checked for NULL for some reason ?
;	_strnicmp(v56, v57, strlen(v57)); <- strlen on NULL, also result is not even used anywhere!
;	}
; Solution: Unknown, temporarily bypass whole strcmp since it's unused.
; Result: Seems to have stopped the crash for me.
StrLen=1

; Info: Unknown, reported as loading save game.
; Address: 8B437C - vtable seems to be 0 or wrong pointer is used.
; Solution: Skip since this is the last part of the function and already has a check anyway
UnkUniqueId=1

; Info: Unknown, reported as loading save game. Possibly related to rendering. First
;       argument is gNiDX9Renderer->unk_650 which is a pointer.
; Address: CEC5EC - null pointer is passed as second argument to function, this function does not expect it
; Solution: Bypass using argument if it's null. Maybe doesn't fix.
Render650=1

; Info: Unknown, no info was provided. // char __thiscall TESObjectREFR::unk_4D4EB0(TESObjectREFR *this)
; Address: 4D4EB9 - vtable of base form is 0
; Solution: Bypass and pretend that base form is 0 since the function does this check itself already
UnkObjRef4D4EB0=1

; Info: Game is saving location's seen data to save game. The data is NULL.
; Address: 4C6031
; Cause: Game doesn't check for null pointer
; Code:
; TESObjectCELL * v3 = ...
; v5 = BaseExtraList::GetSeenData_40D980(&v3->extraData);
; result = (void *)(*((int (__thiscall **)(_DWORD, _DWORD))*v5 + 1))(v5, v2); // <-- v5 can be null! but not checked
; v5 is IntSeenData, size is known.
; Solution: Only solution seems to be temporarily creating an empty IntSeenData and writing this to stream instead.
NullSeenData=1

; Info: BSFixedString::Set is called with NULL argument.
; Address: A51285
; Solution: Ignore call when NULL argument. Not really a solution :P probably better than crashing though.
StringRefSetNull=1

; Info: This crash happens because StrLen crash was prevented.
; Address: 46EE1D
; Solution: Skip over it.
; Result: See StrLen.
SkipStrLenCrash=1

; Info: This crash happens because unknown reasons during loading. Something to do with behavior graph.
;       One of the more common crashes I get.
; Address: C27A8F
; Solution: Don't know, trying to let game think the value is 0 and see what happens.
; Result: Haven't had this crash since.
bhvGraphUpdateLoad=1

; Info: Crash happens during loading, no idea. Might be related to rendering.
; Address: D822D8
; Solution: Tried patch something but it probably doesn't work.
Unk11=1

; Info: Incompatible skeleton, but could be something else too.
; Address: 46ECF5 - NiNode children access
; Solution: No solution from here, but since it's going to crash anyway we could at least
;           warn user about possible incompatible skeleton and let them fix it. Shows messagebox
MissingNode=1

; Info: Crash, it's function array and index goes out of bounds which causes it to call invalid address.
; Address: 6F3A31
; Solution: Check index before calling.
; Result: Haven't had this crash since.
IndexError1=1

; Info: Crash happens in "MovementPlannerAgentWarp" function, unknown what it does. LookupFormById returns
;       NULL and game does not check or expect this to happen.
; Address: 76E358
; Solution: Game has a check for if returned isn't actor it sets 0 as value, we will do same if NULL is returned.
MovementPlannerAgentWarp=1

; Info: Crash happens in DDB0A0, seems to be used in some havok animated object's vtables.
;       Normally these crashes are fixed by aligning allocated memory with 16 bytes. But
;       this one isn't because it can be used on static memory locations which aren't using
;       Skyrim's allocator at all, this means that memory isn't guaranteed to be 16 byte aligned.
; Address: DDB0B2
; Solution: Use movups instruction instead of movaps.
UnallocatedMovaps=1

; Info: Weird crash with NULL ptr in TESWorldSpace::GetCellByCoordMask_4375D0, don't know why it happens.
; Address: 437604
; Solution: return 0 if this crash would happen.
; Result: Haven't had this crash since, but it's rare anyway so it could be coincidence.
CellNullCrash=1

; Info: Crash when trying to do: v14 = MagicItem::unk_406C70(a3)->properties.projectile;
;       This 406C70 function is something like "GetMainMagicEffect". Sometimes though it may return
;       NULL and in 90% of places the game expects this and checks for NULL result, this patch will
;       fix the remaining locations.
; Address: 7E39EC, 657677, 6577D5, 65FEEC, 8127CF
; Solution: Check for NULL and skip (depends on location) if it is.
GetMainMagicEffect=1

; Info: Crash when game searches node "NPC COM [COM ]" on actor but the node was not found. This is unexpected
;       for game because it uses the result without checking for NULL. This whole thing has something to do
;       with mounting. The function that does this whole thing is present in "StopMountCameraHandler" and
;       "MountInteraction" vtable. Also it seems that this has something to do with updating position.
; More info: Was reported that this could happen if non-humanoid tries to mount a horse. This is a rather specific
;            error with a mod. Instead we will show error message to user when this happens so they can
;            fix or uninstall that mod.
; Address: 6E7F85
; Solution: Check for NULL and if it is NULL then use base node of actor instead of this. It's fine because
;           we only take X and Y position from it.
; Solution2: Show error message and crash after.
MountNodeCrash=0
MountNodeWarn=1

; Info: Crash when game is trying to setup foot IK but there's a problem. Real cause is unknown but for me.
;       So we will display a message box when this crash happens. Seems related to the
;       StrCmp crash in BF2FB3, maybe. Try reducing the amount of installed animations.
; Address: BFECC1
; Solution: No solution from here, display warning with helpful tips.
IKCrashWarn=1

; Info: Crash happens when rendering and saving. I think this is when it renders the save game image.
; if ( v8 ) // <- not null
; {
;  if ( v8 )
;    v9 = *(v8 + 8); // <- *(v8 + 8) is null
;  else
;    v9 = 0;
;  v10 = *(v9 + 140) * *(a2 + 4) // <- crash because null
;    + *(v9 + 136) * *a2
;    + *(v9 + 144) * *(a2 + 8);
;  v21 = v10 - *(*(v8 + 8) + 148) * a3;
; }
; Address: CB051A
; Solution: We will skip this if block when *(v8 + 8) is null, as if v8 was null.
RenderSave=1

; Info: Crash was reported as casting spell. Only happens sometimes. Happens in movement controller.
;       Seems like vtable is NULL.
; Address: 76636B
; Solution: This happens in a for loop and it happens in if clause. We can skip if this crash would happen.
MoveControllerCast=1

; Info: Crash when saving game and trying to render (possibly save game image again?). It's trying to get
;       vtable of NULL pointer which will crash.
;   if ((*a2 + 76)(a2, a1)) // a2 is null
;   {
;     *(0x1BA9344) = a1;
;     *(0x1BA9340) = a2;
;   }
;   else
;   {
;     *(0x1BA9340) = 0;
;     *(0x1BA9344) = 0;
;   }
; Address: CAF9F7
; Solution: Skip function call and set return value to false so we don't have to use the NULL value.
SaveRenderCrash=1

; Info: Crash when game tries to get loaded node but it is set to NULL. Only ever seen this on two people.
;       It is most likely actually related to corrupted mesh being unable to be loaded and game does not expect it.
;       NiNode * node = a->GetLoadedStateNiNode();
;       v2 = node->(*(vtable+0x14))(); // <- node is NULL
;       if(v2) { *((int*)(v2 + 212)) = 0; } // <- we can skip this part since it has a check anyway
; Address: 4C119E
; Solution: Real solution would be to find the broken mesh and remove it. So lets notify user instead of ignoring this part.
; Enable one of the following, ignore problem and try to continue or show message box with object reference form ID and form Type.
NullLoadedNodeIgnore=0
NullLoadedNodeNotify=1

; Info: Crash in GarbageCollector::Add when actor argument's base form is NULL. Game does not check this, when in
;       some other places it does check for this possibility.
; Address: 690A69
NullActorBaseForm=1

; Info: Crash when modifying actor value but the pointer is bad, possibly due to actor being invalid. This happens often
;       when script engine is lagged and spells want to modify actor values a lot.
; Address: 6E07C6
AVSetCrash=1

; Info: If your scripts use more than 65535 different strings then the save game will be corrupt and not possible to load.
;       This fixes it by changing the save file format slightly if string count is higher than 65520. That means if you
;       have this option enabled and your save game would have become corrupt it changes format instead and vanilla game
;       or save game tools will not be able to open it! Opposite is true as well, if the count goes below 65520 after
;       and you save again then the format reverts to vanilla.
; TLDR: Fix for https://forums.nexusmods.com/index.php?/topic/3924850-corrupt-saves-strcount-0xffff-ctd-on-load/
; Address: Around 30 different parts of code had to be patched.
StringCount32=1

; Info: Warn if SKSE memory patch is not active. This checks if default heap size is 256 or less and warns if you try to
;       click New, Continue or Load in main menu. Still lets you play the game, just shows a warning.
WarnSKSEMemoryPatch=1

; Info: If AlignHeapAllocate is disabled by user then fix that one movaps crash manually. There's no downside to having this enabled.
; Address: 4BD832
FixMovApsManuallyIfAlignedAllocateIsDisabled=1

; Info: Overwrite array allocator directly when UseOSAllocators is set to 1. Don't understand the code enough yet to
;       say if it's safe or not. At this point it's just here for testing.
OverwriteArrayAllocator=0

; Info: Player's NiNode (not necessarily same as loaded node) is NULL while drawing world.
; Address: 69B84B
NullPlayerNode=1

; Info: Function TESObjectREFR::CanBeMoved_4D9CF0 is called on an object reference that has NULL base form. This is not expected
;       and will crash. We will instead return false from that function if that's the case. The problem is most likely larger than
;       just this, if you prefer to crash instead disable it.
; Address: 4D9D09
NullBaseFormMove=1

; Info: Game tries to iterate child nodes of a NiAVObject but it's possible that the target is not a NiNode and can't have child nodes.
;       This ends up in a NULL pointer crash.
;  v26 = v22->vtable->sub_5EADD0(v22); // Returns "this" if v22 is a NiNode and returns "NULL" if not.
;  for ( i = 0; i < v26->children.emptyRunStart; ++i ) // crash because v26 is NULL.
; Address: 46CA06
NullRefNode=1

; Info: Something is done with outfit of NPC, but one or more entry is NULL and game crashes.
; Address: 561FF7
NullOutfitEntry=1

; Info: Actor is being deleted and base form is NULL.
; Address: 6BAC9A
ActorDeleteNullBase=1

; Info: Does two things:
;    1. Tracks the last X files opened by game.
;    2. If the game crashes while reading binary data stream (e.g. NIF file but could be others too) then show message box listing
;       those files.
; This can be helpful to track down a corrupted NIF file.
DebugStream=1

; Info: When the game fails to create texture in memory should we display a warning and exit game? Recommended yes because you will
;       see purple textures couple of seconds and then the game will crash anyway since it's not expected for this to be a NULL value.
WarnTextureFailure=1

; Info: Something is done with face gen animation on BSFaceGenNiNode but the parent node is NULL which is unexpected.
; Address: 5A8808
NullParentNode=1

; Info: For debugging purposes, on game startup run allocator benchmark and write results to "AllocatorBenchmark.txt" in Skyrim root
;       directory. This compares vanilla, aligned vanilla, malloc, aligned_malloc and custom memory block implementation. When you reach
;       main menu the game will start the test, wait for a message box to say the test is completed, then close game and disable this option.
RunAllocatorBenchmark=0
; Info: How many objects to allocate and free for each size (8, 12 and 16).
CountAllocatorBenchmark=1000000
; Info: How many times to run each test.
TimesAllocatorBenchmark=2
; Info: How many threads to run concurrently. Most accurate is only running one thread, although you can also try 2 to see the performance
;       of thread-safe code.
ThreadsAllocatorBenchmark=1

; Info: Enable custom block allocator for small sizes. May help with memory fragmentation problem. This option does nothing if UseOSAllocators
;       is not enabled.
CustomMemoryBlock=0

; Info: Set total megabytes allocated for the custom block allocators. This amount is sensibly divided between each block.
;       Has no effect if CustomMemoryBlock is not enabled. The more you allocate here the less memory you have for other stuff!
CustomMemoryBlockTotalSizeMb=64

; Info: Show usage of each memory block in per cent when you open console. Has no effect if CustomMemoryBlock is not enabled.
;       This can help you tweak the CustomMemoryBlockTotalSizeMb value.
MemoryInfoConsole=1

; Info: Fixes two crashes specific to Enderal mod. Seems like something to do with havok.
; Address: EBC0A6 and ECD92E
EnderalSpecific=1

; Info: Active effect list of actors is not thread safe but accessed and modified from multiple threads, this will add mutex to each actor's
;       effect list.
FixUnsafeEffectList=1

; Info: Game crashes when actor's combat style form is NULL for some reason. Warn the user and try to display the actor's reference and base ID.
; Address: 8368B1
WarnNullCombatStyle=1

; Info: Set OS update frequency to 1 millisecond (regular is around 16) and replace GetTickCount with timeGetTime. This is for debug only! Don't use.
;       May reduce performance.
HighFrequencyOSTimer=0

; Info: Make game's update timer more accurate. This is for debug only! Don't use.
HighFrequencyGameTimer=0

 

 

Minidump:

(The Website to analyze them seems to be down - is there a consensus in the community on what tool should be used?)

I don't feel confortable to just post the binary file as it likely contains senstive data by my guess. (memory dump, etc?)

 

I'd be hugely grateful for any help or pointers in the right direction, as I'd like to avoid this issue corrupting any of my future characters.

Posted
31 minutes ago, RealGesichtsfelsen said:

But given that the character saves perfectly fine with 65529 strings (7 decimals below 16 bit) but crashes afterwards this looks like a very likely culprit to me.

Stupid question: are you sure you installed crash fixes correctly?

 

Crash fixes files:

  • CrashFixPlugin.dll
  • CrashFixPlugin.ini
  • CrashFixPlugin_preload.txt

=> those files go to: skyrim/data/SKSE/plugin

 

 

next grab the SKSE Plugin Preloader

Preloader files:

  • d3dx9_42.dll

=> the file goes to the Skyrim folder

 

are you using ENB or Enboost?

 

if you use Enboost:

 

⚠️ activate the memory allocator patch of crash fixes in CrashFixPlugin.ini:
UseOSAllocators=1

⚠️to use the CF memory allocator be sure that the enblocal.ini setup is right:
ExpandSystemMemoryX64=false

(CTD after LAL or after loading an early save if set to true)

 

⚠️If UUNP RaceMenu sliders are used change the following line in CrashFixPlugin.ini:

AlignHeapAllocate=1

 

Just saw your using ENB ?

 

When exactly do you get the CTD?

during saving?

on load?

while playing?

 

 

Posted
42 minutes ago, RealGesichtsfelsen said:

CrashFixPlugin.ini (untouched I believe?)

here the crash fix settings if using ENB:

 

How to use the memory allocator patch?
1. Open CrashFixPlugin.ini and find "UseOSAllocators=0"
2. Change it to "UseOSAllocators=1"
3. Download and install SKSE Plugin Preloader
4. Start game, if you get an error saying that memory patch could not be applied read the message for help, otherwise you're good to go.
(5.) Causes game to crash and you use ENB? Set ExpandSystemMemoryX64=false in enblocal.ini (=> if you use the OS memory allocator)

(6.) If UUNP RaceMenu sliders are used change the following line in CrashFixPlugin.ini: AlignHeapAllocate=1 (=> if you use the OS memory allocator)

 

Posted
29 minutes ago, donttouchmethere said:

Stupid question: are you sure you installed crash fixes correctly?

 

Crash fixes files:

  • CrashFixPlugin.dll
  • CrashFixPlugin.ini
  • CrashFixPlugin_preload.txt

=> those files go to: skyrim/data/SKSE/plugin

 

 

next grab the SKSE Plugin Preloader

Preloader files:

  • d3dx9_42.dll

=> the file goes to the Skyrim folder

 

are you using ENB or Enboost?

 

if you use Enboost:

 

⚠️ activate the memory allocator patch of crash fixes in CrashFixPlugin.ini:
UseOSAllocators=1

⚠️to use the CF memory allocator be sure that the enblocal.ini setup is right:
ExpandSystemMemoryX64=false

(CTD after LAL or after loading an early save if set to true)

 

⚠️If UUNP RaceMenu sliders are used change the following line in CrashFixPlugin.ini:

AlignHeapAllocate=1

 

Just saw your using ENB ?

 

When exactly do you get the CTD?

during saving?

on load?

while playing?

 

 

Hey there!

 

thanks for your super quick reply. Much appreciated! :D

 

Unforunately I think they're installed correctly:

 

File view in MO:

Spoiler

mods_1.PNG.17de0c93bb7c8349cb97698bd3113e4b.PNG

 

 

Preloader in Windows Explorer:

Spoiler

mods_2.PNG.09220babba9a697c068c07990fa3c04d.PNG

 

I am using ENBoost yes. I used to use the Bleak ENB Preset but recently switched to Rudy as I was getting bored of the... well bleak look :)

 

The CTD occurs on Save. Loading works perfectly fine, and the occasional crash during playing is just Oldrim being Oldrim (Or FootIK...).

  1. Save while <0xFFFF strings -> OK
  2. Now I have more than >0xFFFF strings (I noticed that my string count increases every time I save, is this normal?)
  3. Sometimes I can save one more time, allowing me to go SLIGHTLY above 0xFFFF (66119 is the highest I've gotten without crash)

This is a screenshot of the highest string count. This save crashes 99% of the time after saving:

Spoiler

mods_3.PNG.346bda6f30ccaa13ee142c3534e9b837.PNG

 

I've uploaded the save aswell as the SKSE co-save to mediafire in case it is of any help: (I don't have an account so they'll only last 2 weeks)

 

ABOVE 0xFFFF:

https://www.mediafire.com/file/1rg0r4hzu6zszyq/Save_1350_-_Almyra__Skyrim__32.46.14.ess/file

https://www.mediafire.com/file/0sftu6vfncb0so7/Save_1350_-_Almyra__Skyrim__32.46.14.skse/file

 

BELOW 0xFFFF:

https://www.mediafire.com/file/bllmi0r9c6blu28/Save_1346_-_Almyra__Understone_Keep__32.41.14.ess/file

https://www.mediafire.com/file/2jdrbjgb8idtfjv/Save_1346_-_Almyra__Understone_Keep__32.41.14.skse/file

Posted
16 minutes ago, donttouchmethere said:

here the crash fix settings if using ENB:

 

How to use the memory allocator patch?
1. Open CrashFixPlugin.ini and find "UseOSAllocators=0"
2. Change it to "UseOSAllocators=1"
3. Download and install SKSE Plugin Preloader
4. Start game, if you get an error saying that memory patch could not be applied read the message for help, otherwise you're good to go.
(5.) Causes game to crash and you use ENB? Set ExpandSystemMemoryX64=false in enblocal.ini (=> if you use the OS memory allocator)

(6.) If UUNP RaceMenu sliders are used change the following line in CrashFixPlugin.ini: AlignHeapAllocate=1 (=> if you use the OS memory allocator)

 

I've changed UseOSAllocators to 1 and set AlignHeapAllocate to 1. ExpandSystemMemoryX64 was already set to false. Sadly still the same behaviour :(

 

I've seem some posts around the internet advising against enabling this setting. I'll do some more readup on it myself, but as there seems to be lot of misconception about its behavior the setup described above is whats currently considered "best pratice"?

Posted
23 minutes ago, donttouchmethere said:

Maybe a LOD issue?

Beth.ini can help with LOD issues.

 

Skyfalls:

"If you use The Skyrim Distance Overhaul LOD Improvement by Grieche:
Install the patch (Included in FOMOD/BAIN installer). Do not install the optional New Skyrim LOD. The rest of the mod is perfectly compatible."

 

SOD is also pretty outdated, you might want to change to DynDOLOD

Thanks for the tip! Never used BethINI before. It's 2AM at my place so I'll take a look at the tool tomorrow. I'll report once I succeed (or not) with it. :)

Posted

Somehow I doubt it's the string count that causes the CTD.

 

10 minutes ago, RealGesichtsfelsen said:

I am using ENBoost yes

You use an ENB or ENBoost not both ?

Basically ENBoost is only the memory management of an ENB and you install only specific files of an ENB.

If your using a full ENB you set it up differently.

 

I see you have already a few suspended stacks. Could you show the active scripts?

You could also create/check papyrus logs. I think you will find some stack dumps there.

Posted
10 hours ago, donttouchmethere said:

Somehow I doubt it's the string count that causes the CTD.

 

You use an ENB or ENBoost not both ?

Basically ENBoost is only the memory management of an ENB and you install only specific files of an ENB.

If your using a full ENB you set it up differently.

 

I see you have already a few suspended stacks. Could you show the active scripts?

You could also create/check papyrus logs. I think you will find some stack dumps there.

That would be nice! Makes sense to me, as I am able to create saves slightly above them limit, which wouldn't even be possible in Vanilla.

 

I am sorry, I think I used the wrong terminology. I thought ENB=ENBoost, but the "normal" ENB is called ENBseries.

So I'll correct myself: I am using ENBseries and have an ENB Preset installed.

 

I'll also post my enblocal.ini in case it is relevant.

Spoiler

// ENBLOCAL for BLEAK/UNBLEAK ENB, DO NOT USE THIS FILE WITH OTHER ENB PRESETS
// DEFAULT PRESET

[PROXY]
EnableProxyLibrary=true
InitProxyFunctions=true
ProxyLibrary=d3d9_sfx.dll

[GLOBAL]
UsePatchSpeedhackWithoutGraphics=false
UseDefferedRendering=true
IgnoreCreationKit=true

[PERFORMANCE]
SpeedHack=true
EnableOcclusionCulling=true

[MULTIHEAD]
ForceVideoAdapterIndex=false
VideoAdapterIndex=0

[MEMORY]
//SETUP GUIDE:
//http://wiki.step-project.com/Guide:ENBlocal_INI/Memory

ExpandSystemMemoryX64=false
ReduceSystemMemoryUsage=true
DisableDriverMemoryManager=false
DisablePreloadToVRAM=false
EnableUnsafeMemoryHacks=false
EnableCompression=false
ReservedMemorySizeMb=256
VideoMemorySizeMb=22050
AutodetectVideoMemorySize=false

[WINDOW]
ForceBorderless=false
ForceBorderlessFullscreen=false
//Remember to set FixLag=true below if (and only if) using Windowed modes

[ENGINE]
ForceAnisotropicFiltering=true
MaxAnisotropy=16
EnableVSync=true
AddDisplaySuperSamplingResolutions=false
VSyncSkipNumFrames=0
ForceLodBias=true
LodBias=-0.4

[LIMITER]
WaitBusyRenderer=false
EnableFPSLimit=false
FPSLimit=60.0

[INPUT]
//shift
KeyCombination=16
//f12
KeyUseEffect=123
//home
KeyFPSLimit=36
//num /       106
KeyShowFPS=106
//insert
KeyScreenshot=45
//enter
KeyEditor=13
//f4
KeyFreeVRAM=115
KeyBruteForce=66
KeyDepthOfField=118

[ADAPTIVEQUALITY]
Enable=false
Quality=1
DesiredFPS=20.0

[ANTIALIASING]
EnableEdgeAA=true
EnableTemporalAA=false
EnableSubPixelAA=false

[FIX]
FixGameBugs=true
FixParallaxBugs=true
FixParallaxTerrain=true
FixAliasedTextures=false
IgnoreInventory=true
FixTintGamma=false
RemoveBlur=true
FixSubSurfaceScattering=true
FixSkyReflection=true
FixCursorVisibility=true
FixLag=false
[THREADS]
DataSyncMode=0
PriorityMode=0
EnableUnsafeFixes=false
[LONGEXPOSURE]
EnableLongExposureMode=false
Time=1.0
BlendMax=0.0

What I've found odd is that the Video Size tester reports an absued amount of video memory on my 6GB GTX1060. But the tool itself even mentions that some RAM can be used at times to offload some data to it, so maybe this makes sense. (I have 32 GB of overclocked DDR4 RAM in dual channel if relevant)

mods_6.PNG.ef924bb0ac22441cd0667783df8726cf.PNG

 

I wasn't able to find an error in the papyrus log around the time of the crash, but I've created a pastebin regardless (Created with bEnableLogging & bEnableTrace): https://pastebin.com/nMVDUVE3

 

The active scripts pane shows these scripts: (The exact number varies between 10-25 on different save games)

Spoiler

mods_4.PNG.ad5728e78265c810738f209fa87f1fa2.PNG

I've expanded as many scripts as my screen size allows for.

A lot of XPMSE Weapon scripts are running by the looks of it. Not sure if that's normal.

 

9 hours ago, donttouchmethere said:

also check this out for ENB memory settings:

 

 

Looking into it.

 

I've already applied "Part I - Memory Patches" using the "OS Allocators" way as per your recommendation.

For "Part II - Animation Fixes" I am currently using "Continute Game No Crash" which seems to be outdated. I'll look into a newer solution, but I don't think this is what causes the crashes.

Regarding "Part III - Optional" I've already increased my papyrus budget by a very sizeable amount in the past as LL mods tend to be very script heavy. This has led to massively increased script responsiveness without a relevant decrease in FPS. (I am fine with 30FPS in a game like Skyrim). Taking a more detailed look at it, it seems like my budget may be over the top while my memory page size seems to be far below the recommended. Should I change these options?

Spoiler

mods_5.PNG.0f1cf4ceabe797a8d9d8e5959f9476cd.PNG

 

//EDIT: I've adjusted my INI settings using BethINI following the STEP guide (https://wiki.step-project.com/BethINI) also also deactivated Skyrim Distance Overhaul, but I'm still getting the same result. I've also tried to COC to a different location (whiterun, I am in front of markarth in the save) and save there but this also crashes.

Posted
46 minutes ago, RealGesichtsfelsen said:

I am currently using "Continute Game No Crash" which seems to be outdated. I'll look into a newer solution, but I don't think this is what causes the crashes.

Load Game CTD Fix
https://www.nexusmods.com/skyrim/mods/85443/

Probably wont help with this problem but will help in the long term.

 

50 minutes ago, RealGesichtsfelsen said:

Regarding "Part III - Optional" I've already increased my papyrus budget by a very sizeable amount in the past as LL mods tend to be very script heavy. This has led to massively increased script responsiveness without a relevant decrease in FPS. (I am fine with 30FPS in a game like Skyrim). Taking a more detailed look at it, it seems like my budget may be over the top while my memory page size seems to be far below the recommended. Should I change these options?

Leave them at defaults. Most of what is said about them is myth as is what is said about 'script-heavy'.

 

59 minutes ago, RealGesichtsfelsen said:

A lot of XPMSE Weapon scripts are running by the looks of it. Not sure if that's normal.

It is normal. You can deactivate the XPMSE esp to get rid of it while still having the skeleton.

Posted
10 hours ago, RealGesichtsfelsen said:

I'd be hugely grateful for any help or pointers in the right direction, as I'd like to avoid this issue corrupting any of my future characters.

Seems that you have everything configured correctly and probably your problem has nothing to do with the configuration of the game, the utils of the mods.

 

9 hours ago, RealGesichtsfelsen said:

I've changed UseOSAllocators to 1 and set AlignHeapAllocate to 1. ExpandSystemMemoryX64 was already set to false. Sadly still the same behaviour :(

That change solve 99% of the CTD in Skyrim and everybody must use OsAllocators.

But not solve your problem because is not related to game configuration, utils or mods.

 

9 hours ago, RealGesichtsfelsen said:

The CTD occurs on Save. Loading works perfectly fine,

That is the most important point because the only way that i know to have CTD while save the game is load a corrupted or damaged savegame.

 

The CTD by excesive strings only happend when you try load a savegame with more than 65k string that has not been corrected by CrashFixes. More exactly, the normal pure vanilla game, whitout CrashFixes, not have any problem to create a save with more than 65k strings. But that savegame can not be loaded in any way. For that, the CTD by excesive string happend ONLY when we try load the savegame.

The problem is caused because the string that exced 65k overwrite some critical data inside the savegame and that result in a totally unusable savegame that can not be loaded by the game, or by SaveGameCleaner or by ReSaver. Is direct trash that can not be recovered in any way.

Crash fixes intercept the savegame process and write the excesive string in another section of the savegame to not overwrite anything and, when the savegame is loaded, CrashFixes load that special zone of the savegame, that has been created by CrashFixes when save the game, and restore all the string in memory.

That operation, of course, change the internal structure of the savegame and that savegames can only be loaded by ReSaver and by a Skyrim with CrashFixes.

 

But your problem is not caused by the String Table Bug because you have CrashFixes and when we open your savegame with ReSaver everything is correct. When ReSaver open a Savegame with more that 65k string that has not been corrected by CrashFixes show a messagebox saying the savegame is damaged and unrecoverable.

 

 

Then, if you only have CTD when you try save your game the ony posible cause, in my opinion, is load a corrupted or damaged savegame. Your CTD can not be caused by the bad configuration of the game, or the utilis or the mods. None mod, except CrashFixes, make a interception of the savegame process.

 

I can load your savegame 1346 whitout any problem with 142 faulting plugings, of course, with some problems because i not have yours models and tetures, but works as you can see in the screenshot:

Spoiler

TESV 2020-03-01 11-38-22-60.jpg

 

But my game can not load your savegame 1350 in any way.

I try remove the co-save, cleaning it with ReSaver, deleting ActiveScript, Quest, References... Inclusive i try delete everything inside the savegame that can be deleted  by ReSaver and try load a minimal savegame of 2159kb but my game continue making CTD every time i try load a minimun extract of your savegame.

 

That mean, from my opinion, that your savegame is damaged and corrupted in an unrecoverable way and that only can happend when you load a damaged or corrupted savegame and save it again. 

Forget your damaged savegames, delete it, load a good and sure stable savegame and continue playing with it.

 

--------

 

The savegame process in Skyrim is not a 100% guaranticed operation. Sometimes, one of the savegames is bad generated and the game create a bad corrupted savegame. Only happend one time every 100 or 200 savegames, but happend.

The only way to know that exact savegame are corrupt is load it and play with it to discover that the game is making strange things like, for example, some quest not advance or some dialog not show or some NPC is making weird things or your follower not answer or not follow yours instructions. Also, you can have CTD when save the game or strange and unexplainable random CTD or have sttutering, micro freezes or totall freezes.

 

But we save the game hundreds and hundreds of times and nobody load every created savegame.

For example, you have saved your game 1350 consecutive times but i'm totally sure you has not been loaded every one of yours 1350 savegames.

We presume that the savegame is correctly generated ALWAYS and we presume that the savegame must be loaded ALWAYS whitout any problem.

But we are talking about Skyrim and Skyrim NOT works in that way.

 

Sometimes the savegame is bad generated and sometimes a mod have a fail and store some bad data inside the savegame converting that exact savegame in a headache that give us a lot of unexplaibale problems.

That happend to me a lot of times in the last 8 years and i must be forced to delete hundreds and hundreds of my savegames until i find a sure stable and guaranticed savegame that allow me continue playing whitout problems.

 

For example, i playing the same savegame for more than 1 year and half, i saved my game more than 3300 times and have now near 50 mb of size and, of course, works whitout any problem and is very strange for me have a CTD. I can play for 4 o 5 consecutive hours loading that savegame with 250 plugings that, of course, has been cleaned whit ReSaver hundreds and hundreds of times.

But for have that i must delete hundreds and hundreds of savegames in the process.

 

More exactly, in one situation, i parked my followers and go to make some special quest from a new big mod. I play that exact mod for more than 10 days of real time saving my game hudreds of times in the process. 

But when i finally go to recover my followers one of them not answer, the other answer but not follow the order and the other answer and try follow the order but walking whitout moving.

I'm totally unable to recover my followers. I must delete ALL my savegames generated in that 10 days to have access to my followers again. 

I repeat the process, parked my followers again and play the mod again. But this time, every day, i go to my followers to verify it and every day they works perfectly.

 

Why i have that exact problem in that exact situation?

I'm ussing exactly the same Skyrim installation with exactly the same utils and configuration, exactly the same mod in the same exact load order. But the second time works perfectly while the first time give me a daramatic and horrendous headache. My only explanation is: I have a corrupted or damaged savegame.

Posted
39 minutes ago, Grey Cloud said:

Load Game CTD Fix
https://www.nexusmods.com/skyrim/mods/85443/

Probably wont help with this problem but will help in the long term.

 

Leave them at defaults. Most of what is said about them is myth as is what is said about 'script-heavy'.

 

It is normal. You can deactivate the XPMSE esp to get rid of it while still having the skeleton.

Thanks! I'll take a look at using this mod instead. What would I loose from disabling the ESP? And do I have a benefit from getting rid of these active scripts or are they "harmless"?

 

39 minutes ago, GenioMaestro said:

[... snip ...]

Thanks for the super detailed explanation!

 

So in essence this means that I should continue playing from save 1346 since it loads up correctly for you? Or are you saying that even this save might already be corrupted and I'll have to load an even earlier? If so, is the only way to determine if a save is corrupt to play a long time with it?

 

Just to verify: If I save the game the save file can become corrupted. But if I never load the save file but instead save the game again e.g. 10 minutes later it is possible that this save file is not corrupted?

 

Are there any steps to avoid corruption? I save quite often (as evident by being at >1000 saves at level 15), so avoiding saving the game would be quite painful for me. Some people say to never use quick or auto saves but that mostly seems to be a myth.

 

The story about loosing 10 hours of playtime sounds really heartbreaking :| Loosing both the "story told" and the time investment really sucks. But you have my respect for sticking with a chracter for so long. I typically think of a story I want to tell in advance, follow it and just see where the path takes me. Once I feel like it has reached a statisfying end I move on to a new character idea I dreamt up while playing the previous :D

Posted
1 hour ago, GenioMaestro said:

But my game can not load your savegame 1350 in any way.

Just for the record, I could not load that save either.

 

59 minutes ago, RealGesichtsfelsen said:

What would I loose from disabling the ESP?

Only the weapon scaling and positioning options as far as I am aware. It will not affect the skeleton itself or animations etc. that depend upon it.

 

1 hour ago, RealGesichtsfelsen said:

And do I have a benefit from getting rid of these active scripts or are they "harmless"?

They are harmless but also worthless. Why have them if you don't need them? One less thing to worry about; one less thing to go wrong etc.

Posted
1 hour ago, RealGesichtsfelsen said:

So in essence this means that I should continue playing from save 1346 since it loads up correctly for you? Or are you saying that even this save might already be corrupted and I'll have to load an even earlier? If so, is the only way to determine if a save is corrupt to play a long time with it?

If you load your savegame number 1346 and you can save it whitout any problem use it.

If you load your savegame number 1347 and you can save it whitout any problem use it.

If you load your savegame number 1348 and you can save it whitout any problem use it.

If you load your savegame number 1349 and you can save it whitout any problem use it.

If you load your savegame number 1350 and you can save it whitout any problem use it.

 

If you load your savegame number 1350 and you get CTD when you try save the game delete it.

If you load your savegame number 1349 and you get CTD when you try save the game delete it.

If you load your savegame number 1348 and you get CTD when you try save the game delete it.

If you load your savegame number 1347 and you NOT get CTD when you try save the game USE it.

If you load your savegame number 1346 and you NOT get CTD when you try save the game USE it.

 

Is as so easy. The only way to know if the savegame works is load it and play whit it.

If you get problems or CTD or the game make strange things and not works as expected when you load the savegame DELETE that savegame and load an early savegame.

 

1 hour ago, RealGesichtsfelsen said:

Just to verify: If I save the game the save file can become corrupted. But if I never load the save file but instead save the game again e.g. 10 minutes later it is possible that this save file is not corrupted?

Of course, every savegame is a diferent file in the hard disk. If you save the game and Skyrim generate a corrupted savegame but you never load that exact corrupt savegame is imposible you can have a problem.

Every time you save the game you are playing to the roulette but you have a 99% or 99.5% of posibilities of win and have a correct savegame. But we always have a 1% or a 0.5% of have a bad savegame.

If that bad savegame is NEVER loaded nothing happend, nobody notice that the exact savegame is corrupt.

 

The problem happend when you load that exact corrupt savegame because you start having problems in the game, normally, strange and unexplainable problems that not have any explanation and, of course, must not happend because nothing has been changed in the game. The only diference is the savegame.

 

If you not notice the problems or you ignore that strange things because "is Skyrim and CAN make strange things" and you continue playing you can end with a totally unstable game that can be imposible of play because any problem in the savegame is carried to any subsecuent savegame. Until is too late.

 

 

If you load a correct savegame you must not have more problems than the normal and know problems of Skyrim that, after 8 years, we know very well each one of them because all the fails of the game has been solved, located, documented and explained. I left apart all the problems caused by the bad installation of the mods, the bad load order, the collision inside the ESP's and the incompatibilities in the mods.

 

If you load a corrupted savegame you start having problems whitout explanation.

You can revise your game, the instalation, the utils, the configuration, the manager, the mods... everything...

But all is correct and the problem not have explanation.

You can totally delete your game, deleting the skyrim folder, reinstall the game, the utils, restore the configuration, use a diferent manager with diferent mods... but the problem persist...

Because the problem is INSIDE the savegame and not have any relation to the configuration, utils or mods.

 

1 hour ago, RealGesichtsfelsen said:

Are there any steps to avoid corruption?

NOT... I'm sorry but NOT.

 

Is a problem in the Game Engine that nobody has located. We, the expert players, know the problem and, afortunatelly, after 8 years of play, modding and develop in skyrim, we can determine, normally whit a great security, when and why the game has a problem and how solve it. When the problem not have a clear explanation we investigate it to the infinite until found a logical explanation.

 

The only way to not have corrupt savegames is follow my Golden Rule:

If the game make a strange thing or not works as expected NEVER save the game.

Load the savegame again and repeat. Is better lost 10 minutes of gameplay than lost days or weeks.

 

If the problem persist determine if the problem is caused by a bad mod, a bad configuration or a bad installation. If all that is correct the only posible explanation is a damaged or corrupted savegame.

Then, DELETE IT and load and early savegame. If the problem disapear you have the explanation.

 

If the problem persist, start making test in a New Game to have a 100% security about the problem is not in the installation or configuration. If the problem only happend when load the savegame you have the explanation = The savegame is damaged.

Posted
On 3/1/2020 at 2:28 PM, GenioMaestro said:

[...snip...]

 

The only way to not have corrupt savegames is follow my Golden Rule:

If the game make a strange thing or not works as expected NEVER save the game.

Load the savegame again and repeat. Is better lost 10 minutes of gameplay than lost days or weeks.

 

[...snip...]

Thanks again for the super detailed explanation!

 

So I've loaded save 1346, played a few minutes on it to test, and then it crashed after a load door. This means that most likely this save is already corrupt and I'll have to load an even earlier and try with that one. Got it.

 

I might most likely start a new character if the save at which the corruption starts is too far in the past but I'll make sure to pay more attention to signs of corruption in the future and then immediately load an earlier one instead of just ignoring it and writing it off as "Skyrim being Skyrim".

 

Thanks to everyone for their amazing help, this case is most likely closed :D

Posted
9 minutes ago, RealGesichtsfelsen said:

Why do you recommend this mod over Animation Loading fix?

[My understanding of the situation] ALF is designed to handle just

 

the animations loading. LGCF was designed to deal with loading in general and it also stops ILS (Infinite Loading Screen). Or are you getting confused with Continue Game No CTD Fix? This use an esp slot ( ? ) and is deemed obsolete by its author.

 

On 3/1/2020 at 1:28 PM, GenioMaestro said:

If the game make a strange thing or not works as expected NEVER save the game.

If I followed that rule I would never save again. :classic_smile:

Posted
1 hour ago, RealGesichtsfelsen said:

Oh one more thing: Why do you recommend this mod over Animation Loading fix? https://www.nexusmods.com/skyrim/mods/98204

Since the stability guide recommends the latter mod, which also fixes a second issue in a newer version:

 

You are mixing tools. First, we have different tools to solve different problems in the game. Second, in 8 years the tools has evolved and has been replaced by new tools, normally, solving the same problems in different ways. Some replacements make the old tools obsolete while other make it compatibles.

 

The mix is a bit complex because we have a lot of tools and versions but i try concentrate it.

 

1 - CTD by Memory Out:

The first tool to manage memory in Skyrim was SSME that latter was included inside SKSE.

The two make exactly the same and SKSE totally replace SSME.

The next tool to manage memory is OsAllocatos from CrashFixes and make a much better work, can speed up the game up to 50%, and totally replace the memory management from SKSE.

 

2 - CTD when Load the SaveGame:

The first tool was Safety Load and was designed to solve ILS = Infinite Loading Screen. Is not a real CTD but the final result is the same because we always must close the game to solve the ILS.

The second tool was Continue Game No Crash making an automatic teleport to QaSmoque before continue the game. But only works when you click "Continue" and not works when you load a savegame directly from Main Menu.

The next tool was Load Game CTD Fix that solve 90% of the CTD when load the savegame and totally replace Continue Game No Crash.

If you use OsAllocatos from CrashFixes you not need Safety Load but Load Game CTD Fix is strictly obligatory.

 

3 - CTD by excesive animations:

The first tool was the computation of CTD% in FNIS and is very acuratelly.

The second tool was Animation Loading Fix that allow play the game whit the FNIS CTD% at 150% 

The last tool was Animation Limit Crash Fix that allow play the game whit all the animations that you want.

 

 

We have much more tools to solve others specific problems and some of them can speed up the game a lot but are not oriented to solve CTD. Some are very convenient but that is advanced configuration.

Posted
1 hour ago, GenioMaestro said:

 

You are mixing tools. First, we have different tools to solve different problems in the game. Second, in 8 years the tools has evolved and has been replaced by new tools, normally, solving the same problems in different ways. Some replacements make the old tools obsolete while other make it compatibles.

 

The mix is a bit complex because we have a lot of tools and versions but i try concentrate it.

 

1 - CTD by Memory Out:

2 - CTD when Load the SaveGame:

3 - CTD by excesive animations:

 

Ah I see. So the tools solve completely different problems. Thank you!

 

I really like the result of this post - it's made a lot of my long standing issue and questions about Skyrim modding a lot clearer. I've now installed the following setup of "fixes":

  • Crash fixes (Adjusted configuration to use OSAllocators)
  • Animation Limit Crash Fix LE 1.1
  • Load Game CTD Fix instead of Continue Game No Crash
  • DynDOLOD instead of SDO (GamerPoets has a great video on it)
  • Also finally bothered to learn how to make bashed patches
  • Disabled some mods with scripts to reduce things that can go wrong
  • Learned to pay more attention to signs of save game corruption

Thanks again :)

If I have any further questions not directly related to my crashes I'll open a new thread as this one has taken quite the detour as of now :D

Posted

Well, it seems the FootIK section needs small clarification. 

 

ContinueGameNoCrash

+ Tested personally by me for several hunderds of hours.

+ Preloads complete gamesave what may help with other problems.

+ Doesn't affect on FPS or loading speed between cells.

- Has a little bug with first save reload after new game creation. 

- Hides SKSE's warning about missing ESP's.

 

Load Game CTD Fix

+ Does not have the save reload bug and doesn't hide SKSE warning as previous version did.

- May affect on FPS and loading speed even between cells.

* Not sure if this version completely preloads gamesave as the old version did, I didn't look inside the src, so it can be + or -.

 

Animation Loading Fix v1.0

+ Logically most right solution for the FootIK problem.

+ Doesn't affect on FPS or loading speed between cells.

- Doesn't preload gamesave. 

 

As you can see all soultions have its pros and cons. And, actually, it's really doesn't matter what solution you will use because all of them work. Personally, I use ContinueGameNoCrash because it emulates the first loading as second. Several years ago I remember I had a problem with a gamesave and couldn't load it until I start a new game first (it was not FootIK error, i hadn't even fnis installed). With the second loading there's less chance to get CTD because some part of data don't need to be loaded again. I don't know what caused the crash it was long time ago, however, gamesave preloading helped me once.

Probably it was an exceptional situation, I'm not sure about that, so, unless you have some crashes on startup I recommend to use Animation Loading Fix v1.0 as FootIK error solution, coz it is the most modern and right solution for the problem. 

 

1 hour ago, GenioMaestro said:

The second tool was Animation Loading Fix that allow play the game whit the FNIS CTD% at 150% 

The last tool was Animation Limit Crash Fix that allow play the game whit all the animations that you want.

My latest test shown that we can write any positive value to the problematic register. If you would use Animation Loading Fix v1.1 instead of Animation Limit Crash Fix and pass the UNSIGNED_SHORT_MAX limit it will become 0 again and will be pretty similar to the solution created by me. In other words, even with Animation Loading Fix v1.1 you will not crash with any amount of animations. The only difference left between these solutions is performance impact which can be quite noticable with ~60k numStaticNodes. 

Posted
20 hours ago, mrsrt said:

[...snip...]

Now you've got me confused again :D

 

From how I understand your plugin (https://www.nexusmods.com/skyrim/mods/100672) solves problem number 3 mentioned by @GenioMaestro ("CTD by excesive animations"). You even mention Animation Loading Fix in the description.

 

After comapring the two I've found that your plugin is the "cleaner" version as it cirumvents the buggy code altogether instead of trying to somehow work around the bug by doubling the limit. I'm more than willing to take a slight performance hit for that. (Currently still running at 60 FPS in most areas)

 

Could you please clarify?

Posted
5 hours ago, RealGesichtsfelsen said:

Could you please clarify?

Sure.

 

5 hours ago, RealGesichtsfelsen said:

From how I understand your plugin (https://www.nexusmods.com/skyrim/mods/100672) solves problem number 3 mentioned by @GenioMaestro ("CTD by excesive animations").

Correct.

 

5 hours ago, RealGesichtsfelsen said:

After comapring the two I've found that your plugin is the "cleaner" version as it cirumvents the buggy code altogether instead of trying to somehow work around the bug by doubling the limit. I'm more than willing to take a slight performance hit for that. (Currently still running at 60 FPS in most areas)

Not certainly in that way. All animations have static nodes. Their amount is not determinated and completely depends on animation. When you install a new animation the ingame numStaticNodes counter increases, dependently on how much nodes the animation has. So, if you install, for example, 700 anims, it may bring like 3k nodes. Everything will be good until nodes counter will be less than 32767. But if you go over the value you get crash. 

 

The root of the problem is in Short register overflow: https://en.wikipedia.org/wiki/Integer_overflow After 32767 goes -32768 because there's no more space to store additional bit. Then in the code this value transforms to Integer in the worst possible way, when -32768 results in billions and then access to RAM cell happens by this number which is ofc incorrect (and probably is not even exist). Exactly this operation crashes the game.  

While reversing the problem I found that we can write in the counter any positive value as it doesn't bring any important functionality.  And this is where the difference between these animations limit solutions we can understand.

 

The solution by Felisky in Animation Loading Fix v1.1 changes the register from SHORT to UNSINGED_SHORT. It makes the register to store values withing 0-65535 (never negative). This way Integer cast will not fuck up the register with negative value so we will never get the crash. 

But, the bigger the numStaticNodes counter the more useless iterations will happen each frame. Iterations quite fast, 30k of them will happen within about 1.5ms on a good PC, sounds fast, but, actually, it's a lot for the render thread and it directly affects on your FPS. So, if we can write any value in the register then why not to write here 0 to skip redundant iterations? And this is exactly what my solution does. We cast 0 to Integer without register runing and skip useless iterations (repeat 0 times if more precisely). More info about performance impact and will you get it or not I explaned here: https://www.nexusmods.com/skyrim/articles/52477

 

So, what I recommend is to install Animation Loading Fix v1.0 and Animation Limit Crash Fix LE. I think this is the best combination to solve anim problems.   

Posted

use the FallrimTools - ReSaver.exe and load the save game check the number of active scripts and suspended scripts if u see big numbers there could be something wrong.., check Papyrus logs and i'll suggest u merge and consolidate the plugins esp those scriptless ones.

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

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