RealGesichtsfelsen Posted February 29, 2020 Posted February 29, 2020 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.
donttouchmethere Posted March 1, 2020 Posted March 1, 2020 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?
donttouchmethere Posted March 1, 2020 Posted March 1, 2020 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
donttouchmethere Posted March 1, 2020 Posted March 1, 2020 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)
RealGesichtsfelsen Posted March 1, 2020 Author Posted March 1, 2020 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! Unforunately I think they're installed correctly: File view in MO: Spoiler Preloader in Windows Explorer: Spoiler 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...). Save while <0xFFFF strings -> OK Now I have more than >0xFFFF strings (I noticed that my string count increases every time I save, is this normal?) 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 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
RealGesichtsfelsen Posted March 1, 2020 Author Posted March 1, 2020 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"?
RealGesichtsfelsen Posted March 1, 2020 Author Posted March 1, 2020 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.
donttouchmethere Posted March 1, 2020 Posted March 1, 2020 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.
donttouchmethere Posted March 1, 2020 Posted March 1, 2020 also check this out for ENB memory settings:
RealGesichtsfelsen Posted March 1, 2020 Author Posted March 1, 2020 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) 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 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 //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.
Grey Cloud Posted March 1, 2020 Posted March 1, 2020 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 Fixhttps://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.
GenioMaestro Posted March 1, 2020 Posted March 1, 2020 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 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.
RealGesichtsfelsen Posted March 1, 2020 Author Posted March 1, 2020 39 minutes ago, Grey Cloud said: Load Game CTD Fixhttps://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
Grey Cloud Posted March 1, 2020 Posted March 1, 2020 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.
GenioMaestro Posted March 1, 2020 Posted March 1, 2020 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.
RealGesichtsfelsen Posted March 2, 2020 Author Posted March 2, 2020 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
RealGesichtsfelsen Posted March 2, 2020 Author Posted March 2, 2020 On 3/1/2020 at 12:32 PM, Grey Cloud said: Load Game CTD Fixhttps://www.nexusmods.com/skyrim/mods/85443/ [...snip...] 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:
Grey Cloud Posted March 2, 2020 Posted March 2, 2020 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.
GenioMaestro Posted March 2, 2020 Posted March 2, 2020 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.
RealGesichtsfelsen Posted March 2, 2020 Author Posted March 2, 2020 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
mrsrt Posted March 2, 2020 Posted March 2, 2020 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.
Grey Cloud Posted March 2, 2020 Posted March 2, 2020 You now have the knowledge to discover new ways of breaking your game. ? Happy gaming.
RealGesichtsfelsen Posted March 3, 2020 Author Posted March 3, 2020 20 hours ago, mrsrt said: [...snip...] Now you've got me confused again 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?
mrsrt Posted March 4, 2020 Posted March 4, 2020 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.
Whizkid Posted March 4, 2020 Posted March 4, 2020 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.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.