
Исправление вылета игры Skyrim при загрузке / Load Game CTD Fix
Если вы играете в 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 LE 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 в игре.
Оперативная память (8Gb) кончалась и вылет...
Три месяца использовал мод "Continue Game No Crash", который избавил от вылетов игры.
Работал очень надежно, никаких недостатков не отметил.
Только что попробовал "Load Game CTD Fix", вылетов также нет, к тому же загрузка выполняется быстрее.
Посмотрим, как он себя покажет в дальнейшем.
Огромное спасибо авторам!
Поначалу все работало отлично - у меня перестала вылетать игра при запуске и на открытых пространствах, но недолго :с
Игра не вылетает, она замораживается - встает как посреди игрового процесса, так и при загрузке локации (не часто, но бывает). И вообще ничего не спасает - ни консоль, ни диспетчер задач (который вообще зависает). Приходится через ctrl+alt+delete из системы выходить.
Как можно решить, а?
Ну у меня тоже была игра без вылетов, кроме как при явной несовместимости модов. А главное, что причин вылетов может быть много, которые не все обнаруживаются, и нет радикального решения.
Вылеты бывают в 4-х случаях:
1. не хватает памяти для загрузки всех модов - лечится с помощью SKSE.ini
2. windows exception c0000005 - лечится с помощью исправления настроек самой windows
3. битое сохранение - не лечится (нужно просто следить за своими сохранениями)
4. кривой мод - но это уже вылет в любое время, не только при загрузке
Если для вас бесполезен, то это не означает, что он бесполезен для других.
А на ультимативные заявления подобного рода вспоминается фраза из игры.
А как конкретно лечится ? Если движок игры расчитан на память не более 3,25 Гб, то это уже не увеличить. И все другие способы увеличения не работают, пробовал.
А чем вас разделение памяти посредством ENB не устраивает?
И этот ENB не прибавит памяти к движку игры (ограничение 3,25 Гб), а то что видно в Диспетчере задач, это показатель дополнительной нагрузки на систему, на память.
ENB можно использовать только для управления памятью без влияния на визуальную составляющую.
"И этот ENB не прибавит памяти к движку игры (ограничение 3,25 Гб)"
Ограничение на ОТДЕЛЬНО взятый 32битный процесс. Ядро ENB разделяет эту память на 2, а при необходимости и более процессов и позволяет обойти это ограничение.
Да ничего не разделяется, ограничение в движке игры. Если бы всё было так просто, то не делали бы 64-битный Скайрим.
Я ещё раз повторюсь. Это системное ограничение Windows для одного процесса, а не движка игры. Если Вы не согласны с этим, то не вижу смысл метать бисер дальше по этому поводу. Только трата времени.
" Если бы всё было так просто, то не делали бы 64-битный Скайрим."
SE делали только для фарма бабок с игроков консолей. О юзерах PC там думали меньше всего.
Если бы это было системное ограничение Windows, то Скайрим на системе х64 шёл бы без ограничения памяти (до 32 Гб), именно ограничение в движке игры.
Лимит виртуального адресного пространства в рамках одного 32битного процесса равен 4ГБ даже на 64битной Винде. Это ограничение самой Windows, а не игры.
Ну хорошо, попробую практически, проверю.
Тогда поскажи какой именно ENB использовать.
У меня сейчас стоит на 308 ядре. А какой именно, то это дело вкуса конкретного игрока. Да и само разделение памяти никак не решает проблему возможного вылета при первой загрузке после перезапуска игры. Разделение памяти просто повышает стабильность. В настроенной связке с Crash Fixes и SKSE Plugin Preloader для моего конфига творит чудеса)
P.S. к слову судя по комменту к размещённому здесь моду, то он конфликтует с крашфиксом/прелоадером. Правда лично не проверял.
Я понимаю что не решает проблему, но памяти мало не бывает. Например, когда я загружаю дом очередной спутницей, то вижу как грузится ОЗУ, и при большем 3,25 Гб на игру (без Windows), игра или зависает или вылетает.
Зачем вы порезали и выдернули из контекста предложения фразу??? Там писалось о первоначальной загрузке после полного перезапуска игры, а не о процессе самой игры при котором разделение памяти на 2 и более процесса средствами ENB очень неплохо себя показывает.
"то вижу как грузится ОЗУ, и при большем 3,25 Гб на игру "
Вот для этого ENB и используют разделение памяти. Чтобы обойти кап памяти для отдельно взятого процесса.
Понятно. А я сразу не понял. Вообще с этим ENB я никогда не пробовал. Знаю только, что он для графики и грузит систему, поэтому и не использовал. Теперь надо изучить, разобраться и решить.
По Вашим заявлениям этот процесс не имеет к игре никакого отношения. Эта табличка показывает иное.
"Кто вам сказал что это разделение процесса игры?"
Это прямо задекларировано разработчиками ENB. Это введено с 200го ядра и выше. Да и это прекрасно видно в равных условиях с ним и без.
Теперь всё заработало. Большое спасибо за подсказку.
- прописал всё в SKSE.ini
- установил MemoryBlockLog
- прописал в ярлыке к skse_loader.exe ключ \skse_loader.exe" -forcesteamloader
2.Запустил старое сохранение:
- в логе так:
block1 block2
256 256
3.Сделал новое сохранение:
- в логе так же.
Что ещё можно попробовать, чтобы выделялась память ?
Интересно, что до этого варианта сборки модов, стояла сборка с гораздо большим количеством модов, и вылетов не было, но я переустановил эту сборку из-за белых кистей рук у ГГ . Теперь руки нормальные, но появились вылеты.