Message from crash fixes skyrim что делать

Опубликовано: 28.02.2024

Описание:
Этот плагин SKSE исправляет ошибку 0x15e2ec hdtPhysicsExtensions.dll, приводящую к краху игры при загрузке. Обычно такую ошибку воспринимают как сбой загрузки игры, потому что игра вылетает сразу после загрузки вашего первого сохранения.
Сбой происходит из-за гонки вызова функции TlsGetValue (при котором возвращается значение 0/NULL при ошибке инициализации), а затем, HDT PE, не проверяя это значение, выполняет арифметику по нулевому указателю и, как следствие, разыменовывает результат вычислений, тем самым вызывая сбой игры через обращение к недопустимому адресу памяти.
Решение состоит в немедленном принудительном возврате функции, если полученный результат TlsGetValue равен нулю, таким образом предотвращая ее попытку обращения к недопустимому адресу памяти и аварийному завершению игры.
*Гонка (состояние гонки) или гейзенбаг - "плавающая" ошибка. В данном случае приводит к тому, что переменная перед использованием не инициализируется.

Обновление 1.5.0.
- Добавлено ведение журнала (логов) исправленных ошибок. Лог информационный, для удобства пользователей. Чтобы пользователь знал, какие ошибки в его игре были исправлены этим фиксом.
Лог записывается по пути /Data/SKSE/Plugins/hdtPhysicsExtensionsCrashFix.log.

Обновление 1.4.0:
- Добавлен фикс краха игры с ошибкой 0xC89E8.

Обновление 1.3.0:
- Добавлен фикс краха игры с ошибкой 0xD5A5C.

Обновление 1.2.0:
- Добавлен фикс краха игры с ошибкой 0xEF30.
Этот сбой происходил потому, что игра может вернуть ноль указателю ссылки на объект, который HDT PE не проверяет. Решение состояло в том, чтобы выполнить код сброса для этой ссылки на объект из HDT, который выполняется тогда, когда ссылка на объект больше не находится в ячейке ожидания.

Установка:
Вручную или с помощью модменеджеров.
Если вручную, то поместите файл hdtPhysicsExtensionsCrashFix.dll в тоже место где находится файл hdtPhysicsExtensions.dll, то есть по пути Data/SKSE/Plugins/

Неучтённые неисправности:
Функция TlsGetValue может обращаться и к другим адресам памяти без проверки. Это тоже можно будет исправить. Для этого автор просит сообщать ему о кодах ошибки.

Load Game CTD Fix

Автор: Utopium
Версия: 1.0
Перевод: русский

Описание:
Если вы играете в Skyrim с большим количеством модов, многие как и я, вероятно испытывают регулярные сбои при загрузке сохраненной игры из главного меню. Изначально, единственным способом обойти это надежным способом, являлся трюк с консольной командой "сос qasmoke", когда вы перемещаетесь в qasmoke ячейку, а затем вручную загружали сохранение из меню. Некоторые игроки также полагались на загрузку сохранения игры находясь в безопасном районе и выполнения второй загрузки оттуда. Этот фикс вносит некоторые изменения в "Главное меню" игры, чтобы при нажатии на кнопку "Продолжить" или "Загрузить" сохраненную игру, предотвращался вылет при загрузке сохранения игры, без каких либо сложностей. Я автоматизировал этот процесс в предыдущем моде "Continue Game No Crash", который я опубликовал некоторое время назад, но он как оказалось был не идеальным, так как он использует .esp файл (и скрипты), который занимал бессмысленное место в порядке загрузки модов, начальная двойная загрузка занимала больше времени и многие люди воспринимали его как вредный мод, который "якобы" вшивал в сохранение неверные данные и что в итоге не могли даже играть. В итоге я принял решение изменить полностью мод, исправить различные проблемы. С учетом новых знаний о проблемах, я решил опубликовать этот фикс как новый мод, а не просто создать обновление для старой версии мода "Continue Game No Crash" по причинам, которые я объясню ниже.

Первое объяснение проблемы, которую вы можете пропустить, если Вы не имеете опыта программирования. Многие люди воспринимали крах игры при нагрузке как ошибку типа FootIK и как проблему с памятью, когда Скайрим пытался загрузить слишком много данных одновременно. Другие люди думали, что это было из-за плохих данных в сохранении, которые не давали игре загрузиться. Проблема связана с большим количеством данных для загрузки, но вылет игры вызван многопоточностью и не потому что не хватает памяти или из-за плохого сохранения данных. По сути, программисты в Bethesda забыли прописать "мьютекс" для защиты критически важных данных, которые позволяли одному ядру процессора получать доступ к данным, которые еще не закончили загрузку другим процессором. В итоге для сильно модифицированной игры уходит больше времени на загрузку данных. Методы двойной нагрузки люди использовали чтобы обойти вылет при загрузке вызванной тем фактом, что между шагами было меньше данных, что уменьшало шансы вылета и обработка данных происходила немного быстрее с базовыми активами, которые загружались первыми, а затем прогружалось все остальное, с базовых активов, которые уже кэшированы в памяти. Исправление, которое делает этот плагин заключается в том, чтобы предотвращать эти вылеты и ограничить использование игрой Skyrim только одного ядра процессора при загрузке. После того, как игра завершит загрузку сохранения, этот плагин позволит Skyrim использовать все ядра процессора в вашей системе. Вы можете испытывать более медленное время загрузки в результате ограничения на одно ядро ЦП во время загрузки сохранения игры, но оно обычно быстрее, чем двойная загрузка из предыдущей версии мода "Continue Game No Crash", и после завершения загрузки игры, все ядра процессора будут снова доступны для использования, чтобы не повлиять на производительность геймплея.

Причины по которым мне пришлось изменить мод на новый вариант:
* Мод "Continue Game No Crash" возможно не был лучшим, поскольку люди искали такие вещи, как «load ctd fix» и т.д. Я назвал его «Continue Game No Crash» изначально, потому что первая версия мода работала только с загрузкой самой последней игры, например, кнопка "Продолжить" в главном меню.
* Некоторые считают, что мой предыдущий мод "Continue Game No Crash" - это вредный мод, похожий на Stable uGridsToLoad и что он вводил другие проблемы в сохранения игры.
* В новом варианте мода нет скриптов, нет .esp файла, только один файл .dll

Примечание:
- Этот мод не гарантирует работу на 100% у всех игроков, в попытке обойти ошибки, которые существуют в Скайриме. Если этот мод и способ не сработает для вас, то возможно виноваты какие-то моды, и очень трудно сделать так, чтобы мод работал для каждого компьютера и игры, с любыми возможными комбинациями модов.

Совместимые моды:
- Совместим с любым модом.
- Совместим с Enderal.

Требования:
Skyrim 1.9.32.0.8
SKSE 1.07.03 и выше

При обновлении с варианта мода "Continue Game No Crash" на новый вариант "Load Game CTD Fix":
1. Если у вас установлен предыдущий вариант мода с названием "Continue Game No Crash" и хотите перейти на новый вариант "Load Game CTD Fix", то обязательно удалите все файлы
- Удалите файл startmenu.swf по пути Data/Interface если таковой имеется и если у вас есть мод в котором есть файл startmenu.swf, то переустановите его.
- Удалите файл ContinueGameNoCrash.esp из папки Data в игре.
- Удалите скрипт ContinueGameNoCrash.pex по пути Data/scripts/
- Удалите файл ContinueGameNoCrash.dll по пути Data/SKSE/Plugins/
2. Установите новый вариант мода "Load Game CTD Fix".

Установка:(можно вручную или через NMM / MO менеджеры)
Поместить папку SKSE из архива в папку Data в игре.

To enjoy the benefits of Nexus Mods, please log in or register a new account

  • All games
  • Skyrim
  • Mods
  • Patches
  • Crash fixes

File information

Last updated

Original upload

Created by

Uploaded by

Virus scan

Tags for this mod

  • Performance Optimization
  • Utilities for Players
  • Skyrim Script Extender (SKSE)
  • Bug Fixes
Tag this mod
  • Description
  • Files 10
  • Images 4
  • Videos 13
  • Docs
  • Posts 4,515
  • Forum 5
  • Bugs 39
  • Logs
  • Stats

About this mod

Fixes some of the crashes in Skyrim.

This mod does not have any known dependencies other than the base game.

Mods requiring this file

Mod name Notes
Requiem - The Roleplaying Overhaul - French Optionnel mais vivement recommandé
Skyrim Romance VOSTFR

Credits and distribution permission

  • Other user's assets All the assets in this file belong to the author, or are from free-to-use modder's resources
  • Upload permission You are not allowed to upload this file to other sites under any circumstances
  • Modification permission You must get permission from me before you are allowed to modify my files to improve it
  • Conversion permission You are not allowed to convert this file to work on other games under any circumstances
  • Asset use permission You must get permission from me before you are allowed to use any of the assets in this file
  • Asset use permission in mods/files that are being sold You are not allowed to use assets from this file in any mods/files that are being sold, for money, on Steam Workshop or other platforms
  • Asset use permission in mods/files that earn donation points You must get permission to earn Donation Points for your mods if they use my assets

Author notes

This author has not provided any additional notes regarding file permissions

File credits

This author has not credited anyone else in this file

Donation Points system

This mod is opted-in to receive Donation Points

Made a plugin to help try and fix some of the crashes I've been seeing in http://www.loverslab.com/topic/46913-how-to-debug-ctd/. You can turn each individual fix on / off in the SKSE/Plugins/CrashFixPlugin.ini, default settings recommended but if you have problems with something and you know what you're doing you can change. If you want to see exactly what crashes are fixed (with addresses) and a small explanation of my best understanding of the crash then check the INI file or readme on the nexus mod page.

This plugin is meant to fix some common crashes AFTER you have followed STEP guides and sensible modding rules! It does not fix problems that come from modding irresponsibly or conflicts between mods.

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
(6.) Causes game to crash more frequently (especially with UNP RaceMenu sliders)? Try AlignHeapAllocate=1 in CrashFixPlugin.ini

Tips for additional stability:
(These are things I've observed and Not 100% fact!)

If you don't have some lines listed below in your INI it means they are set to default value.

Data/SKSE/SKSE.ini (not needed if UseOSAllocators=1 in CrashFixPlugin.ini):

  • Set DefaultHeapInitialAllocMB:Memory to 768. If you are using a lot of mods or higher uGrid than 5 then set 1024. Helps with CTD during save load, especially if you can load the save after qasmoke. Max value is 1280. If you are using ENB you may get CTD on startup with higher value than 768 and ExpandSystemMemoryX64 true in enblocal.ini!
  • Set ScrapHeapSizeMB:Memory to 256. Game can't use more than 256 of this and setting higher serves no purpose.

Skyrim.ini:
  • uExterior Cell Buffer:General - setting this too high causes crashes more, especially when game wants to unload many cells at once. If you set 0 or just remove it from your INI then game decides this and that's the best way.
  • bPreemptivelyUnloadCells:General - setting this 1 will mean game purges cell buffers and unload cell whenever it is possible. Default is 0 which means keep cell in memory until we need the space for other cells. I find 0 to be better, there's no reason to unload cell immediately, the buffer was implemented for a reason.
  • fPostLoadUpdateTimeMS:Papyrus - setting higher will cause longer loading. Mine is 500, seems to work well for me. You can try 750 or even 1000+ if you have a lot of script-heavy mods.
  • fUpdateBudgetMS:Papyrus - remove (this sets to default 1.2). If you have a lot of script heavy mods and a good PC you can set higher for example 2.0, however this can reduce your FPS when a lot of things are happening.
  • fExtraTaskletBudgetMS:Papyrus - remove (this sets to default 1.2). See above.
  • bEnableLogging:Papyrus - set 0. There's no reason to log papyrus unless you are developing a mod. Writing to file constantly is not good for performance. Papyrus logs have nothing to do with finding causes for crashes, although you can use this to find misbehaving mod scripts which can be helpful, I'd recommend to disable it for normal gameplay though.
  • bEnableTrace:Papyrus - set 0. See above.
  • Any other papyrus setting - delete. Changing the papyrus from default will just cause instability or lagged scripts.
  • iPresentInterval:Display - VSync enabled or disabled. You shouldn't need to change this as default value is 1 and that's good.

Safety Load (not needed if UseOSAllocators=1 in CrashFixPlugin.ini):
Install Safety Load if you have a infinite loading screen or freeze at any point. It fixes a bug in memory allocation that causes deadlock. Yes you still need this if you have SKSE memory patch, no they don't do the same thing. SKSE memory patch hides the problem of deadlock for longer because it allocates a larger memory block. If you don't have freeze or infinite loading screen at all then you don't need this!


Stable uGridsToLoad:
Don't use this. It causes memory corruption and does nothing unless you are changing your uGridsToLoad setting in INI often (I don't know why you would).

ENB:
I'm not an expert in ENB, but these two I recommend in enblocal.ini:
ExpandSystemMemoryX64=false
ReduceSystemMemoryUsage=true

Bashed Patch:
You should make this. It helps resolve a lot of conflicts between mods, especially related to leveled lists which can be a big problem. If there are no conflicts this doesn't really do any harm but even a small mod list usually has some.

LOOT:
LOOT can be a good tool to help resolve issues with ordering, but it is not perfect, sometimes it places mods incorrectly, use your best judgement. LOOT can also warn you about other potential problems with mods.

TES5Edit cleaning:
Do this! LOOT can tell you which mods need cleaning.

Playthrough:
Don't install or uninstall mods (with ESP files) in the middle of playthrough. Even changing the order can be very bad, especially if you use bashed patch or anything with SkyProc (requiem, perkus maximus). This of course applies to ESP files! Graphics mods and pure SKSE plugins are fine most of the time.

Этот SKSE-плагин создан с целью исправить некоторые ошибки, приводящие к крашам Skyrim'а. Но это не панацея! Если вы используете конфликтующие или нестабильные моды, то они по-прежнему будут рушить вашу игру.

Эта библиотека позволяет системе загружать SKSE-плагины до инициализации игры. В отличие от SKSE, который вызывает SKSEPlugin_Query и SKSEPlugin_Load уже после запуска, она вызывает LoadLibrary плагина.

Установка:
1) Скопировать папку Data из архива "Crash Fixes 12" в корневую папку игры.

Настройка аллокаторов:

  1. Скопировать файл d3dx9_42.dll из архива "SKSE Plugin Preloader 3" в корневую папку игры.
  2. Открыть файл CrashFixPlugin.ini по адресу Data\SKSE\Plugins.
  3. Найти строчку UseOSAllocators, установить значение 1.
  4. Найти строчку AlignHeapAllocate, установить значение 1. (Внимание! Эта функция может увеличить время загрузки и потребление памяти игрой. Также несколько человек сообщали о её несовместимости с некоторыми параметрами ENB. Если вы не сталкиваетесь с этими проблемами, рекомендуется оставить значение 1.)

Рекомендуемые изменения в других файлах:
enblocal.ini (в корне игры) (должен быть установлен ENB-пресет/ENBoost)
ReduceSystemMemoryUsage=true➔ SKSE.ini (в папке Data/SKSE) (если его нет, можете скачать с Nexus'а )
ScrapHeapSizeMB=256➔ Skyrim.ini (в папке Документы/My Games/Skyrim)

* если у вас много тяжёлых скриптовых модов.

Другие замечания:

  • ENBoost: практически обязателен, если вы не используете ENB-пресет. Если используете - всё равно обратите внимание на числа в enblocal.ini. Повышает стабильность и производительность.
  • Safety Load, патч памяти от SKSE и SSME: больше не нужны, если вы настроили аллокаторы Crash Fixes. Установка значений в SKSE.ini оставлена, чтобы плагин не ругался на их отсутствие.
  • Stable uGridsToLoad: не рекомендован к использованию, уменьшает стабильность игры. В целом, менять значение uGridsToLoad не рекомендуется (по умолчанию 5), особенно посреди игры, дважды особенно в меньшую сторону. Значение 7 могут использовать только опытные игроки.
  • Bashed Patch: желателен для исправления некоторых конфликтов между модами (например, в уровневых листах). Не забудьте убедиться в корректности настроек Wrye Bash, чтобы избежать "кракозябр" в игре.
  • LOOT: не идеальный, но полезный инструмент, может предупредить о проблемах с плагинами (укажет на ITM записи, например).
  • TES5Edit: практически обязателен. Единственный инструмент, который чистит плагины от ошибочных записей.

Требования:
  • Skyrim
  • SKSE.

Примечания:
Для пользователей МО: установка Crash Fixes (не Preloader'а) должна проводиться через МО. "Data\SKSE\Plugins" означает "Папка_мода\SKSE\Plugins", аналогично и для SKSE.ini, который может быть установлен как обычный мод. Кроме того, файл Skyrim.ini (как и SkyrimPrefs.ini), который используется игрой, лежит не в Документах, а в папке профиля МО - воспользуйтесь встроенным редактором INI.

Что нового в версии 12

  • Оригинальный INI-файл на английском установлен как основной.
  • Перевод - рядом с файлом Description в корне архива.


Что это?

Это развитие мода «Продолжить игру без вылетов» (Continue Game No Crash), основанное на дополнительной информации, полученной в ходе кропотливых исследований в этой области xD.

Любой, кто играет с Скайрим с большим количеством модов, особенно скриптовых и на анимацию, рано или поздно сталкивается с ситуацией, когда становится невозможно загрузить последнее сохранение (да и не только последнее). В какой-то момент игра начинает регулярно вылетать при попытке это сделать. Народное средство от этого — двойная загрузка: сначала грузят легкое сохранение, сделанное в какой-то закрытой, желательно безлюдной, ячейке, а потом уже — нужное. Мод «продолжить игру без вылетов» просто автоматизировал этот процесс, поскольку в то время сам автор еще не понимал, в чем же реальная причина этих чертовых вылетов. Теперь ситуация прояснилась, и в результате появился этот фикс, который гораздо, гораздо лучше.

Отличия:
1. Это не *.esp, а SKSE-плагин, что позволяет сэкономить лишний слот в списке загружаемых модов, а также подключать (и отключать) его в любое время.
2. Позволяет загрузить любое сохранение, а не только последнее.
3. Не делает промежуточной загрузки, как «продолжить игру без вылетов».

Автор решил опубликовать этот фикс как отдельный мод, поэтому и я делаю то же самое. К такому решению автора подтолкнула, в частности, инфа о том, что многие люди считают мод Continue Game No Crash таким же вредоносным, как Повышенный uGridsToLoad , повреждающий сохранение. И оттого им не пользуются. И я подумал, что у нас тоже немало таких же умников.

Для особо одаренных. 100% гарантий, что этот фикс будет работать всегда и везде, нет. В Скайриме уйма багов. Если лично вам этот фикс не помогает, то, скорее всего, проблема в каких-то других ваших модах. Вместо того, чтобы бежать сюда и строчить в коментах «мод гавно не работаит», потратьте это время на диагностику своей сборки или поплачьте тихонечко в уголке.

Лирическое отступление, которое можно не читать.

Одни люди — таких большинство — полагают, что вылеты при загрузке происходят прежде всего из-за FootIK-бага — это когда игра пытается назначить слишком много анимаций слишком большому количеству актеров — или что ей не хватает памяти. Другие считают, что всему виной — испорченный сейв. Проблема вылетов при загрузке действительно имеет отношение и к большому объему данных, и к повреждению данных, но совсем не в том смысле. Игра вылетает не потому, что ей не хватает памяти или сейв поврежден, а потому, что возникает «состояние гонки», или, выражаясь научно, неопределенности параллелизма. Программисты беседки забыли поставить мьютекс для защиты критических данных, и в результате одно ядро процессора может получить доступ к данным, которые еще не до конца обработаны другим ядром. В ванильной игре такая ситуация может возникнуть исключительно редко, потому что объем загружаемых данных слишком мал, чтобы запустить состояние гонки. Но в игре с большим количеством модов данные грузятся долго, и другое ядро успевает обратиться к ним преждевременно. Метод двойной загрузки работает именно потому, что по отдельности объем промежуточных данных не так велик. Базовые данные грузятся быстро, а когда идет вторая загрузка, основного сейва, они уже в кэше.

Этот фикс предотвращает состояние гонки, запрещая игре использовать больше одного ядра на время загрузки сохранения. Кто-то, быть может, заметит, что сейвы стали грузиться дольше — но все равно это гораздо, гораздо быстрее, чем двойная загрузка с модом «Продолжить игру без вылетов». После окончания загрузки все ядра снова будут доступны, так что никакого урона производительности этот фикс не наносит.

Автор настоятельно рекомендует использовать этот фикс совместно с Crash Fixes.

Требования:

Установка:

Распаковать Load Game CTD Fix-85443-1.zip в ПапкаГдеУстановленСкайрим

Читайте также: