Проблемы и оптимизация

Утилита для устранения крашей Killing Floor - Large Address Aware

Один из старых способов уменьшить часть вылетов Killing Floor - включить для KillingFloor.exe флаг Large Address Aware. В редакторах PE-заголовков он часто называется App can handle >2gb address space.

Этот фикс не увеличивает FPS и не делает игру "64-битной". Он только разрешает 32-битному исполняемому файлу использовать больше виртуального адресного пространства там, где это поддерживается системой. Иногда это помогает при вылетах на тяжелых картах, с большим количеством кастомного контента или после долгой игровой сессии.

Важно: это правка исполняемого файла. Сначала попробуйте обычные ini-настройки и сделайте backup KillingFloor.exe.

Когда это может помочь

  • игра вылетает на больших кастомных картах
  • вылеты появляются после нескольких смен карт
  • проблема похожа на нехватку памяти, а не на сетевой disconnect
  • игра стабильно падает при большом количестве mutators, skins или custom packages
  • другие простые фиксы уже проверены

Когда не стоит применять

  • игра не запускается вообще - сначала проверьте файлы через Steam
  • вы играете только на серверах со строгими античит/whitelist правилами
  • вы не знаете, как вернуть оригинальный KillingFloor.exe
  • вы пытаетесь исправить ping, packet loss или server disconnect
  • проблема появилась после конкретного mutator или карты

Что понадобится

Нужен PE-header editor, например CFF Explorer или аналогичная утилита, которая умеет менять Characteristics у exe-файла.

Не скачивайте такие инструменты с случайных зеркал. Если нет уверенности в источнике, лучше пропустить этот способ и использовать только стандартные исправления.

Подготовка

  1. Закройте Killing Floor и Steam.
  2. Откройте папку игры.
KillingFloor/System/KillingFloor.exe
KillingFloor.exe.backup

Если что-то пойдет не так, эта копия позволит быстро откатиться.

Как включить Large Address Aware

В PE-header editor:

  1. Откройте KillingFloor.exe.
Nt Headers -> File Header -> Characteristics
  1. Нажмите Click Here или аналогичную кнопку редактирования флагов.
App can handle >2gb address space
  1. Нажмите OK.
  2. Сохраните файл.
  3. Закройте утилиту.
  4. Запустите игру и проверьте проблемную карту или сервер.

Что меняется технически

Large Address Aware меняет флаг в PE-заголовке exe-файла. После этого Windows может дать 32-битному процессу больше адресного пространства, чем обычный лимит для старых 32-битных приложений.

Это не означает, что Killing Floor начнет использовать всю RAM компьютера. Эффект ограничен движком, ОС и конкретной ситуацией, в которой игра раньше упиралась в память.

Проверка после правки

После включения флага проверьте:

  • запускается ли игра
  • работают ли настройки графики и управления
  • не сбросились ли бинды
  • можно ли зайти на обычный сервер
  • повторяется ли старый crash на проблемной карте

Проверяйте на той же карте и с тем же набором mutators, где вылет воспроизводился раньше. Иначе будет непонятно, помогла ли правка.

То же для UCC.exe выделенного сервера

В теме «Изменение UCC.exe на использование более 2 гигабайт оперативной памяти» (форум killingfloor.ru) w.a.l так же правил UCC.exe сервера в CFF Explorer: строка File Header, кнопка характеристик, галочка «приложение может работать с адресным пространством больше 2 ГБ», OK. По его статистике, при 15 игроках на 5-й волне сервер стал занимать около 1 ГБ вместо 700 МБ. Пользы от этого другие участники не увидели: у них сервер даже под полной нагрузкой занимал 0,5-0,7 ГБ (например, 0,7 ГБ при 16 игроках), и, по мнению Proton, больше 2 ГБ один сервер никогда не использует. Flack предположил, что правка имеет смысл, только если сервер реально упирается в 2 ГБ и начинает уходить в файл подкачки.

Возможные проблемы

Steam вернул файл обратно

Steam Verify integrity of game files может заменить измененный exe на оригинальный. Это нормально. Если нужно, примените правку заново после проверки файлов.

Игра перестала запускаться

KillingFloor.exe.backup -> KillingFloor.exe

Если backup потерян, восстановите файлы через Steam.

Сервер не пускает или античит ругается

Верните оригинальный exe. На публичных серверах лучше не спорить с античитом: даже безопасная правка заголовка может выглядеть как измененный исполняемый файл.

Вылеты не исчезли

Значит причина не в адресном пространстве. Проверьте:

  • поврежденный кеш
  • конфликт custom packages
  • слишком тяжелые графические настройки
  • UsePrecache / UsePrecaching
  • нестабильный mutator
  • проблемы Direct3D renderer

Безопасный порядок фиксов

Перед изменением exe лучше пройти простой список:

  1. Сделать backup KillingFloor.ini и User.ini.
  2. Очистить или переименовать Cache.
  3. Настроить CacheSizeMegs=256.
  4. Снизить тяжелые настройки графики.
  5. Проверить другой renderer.
  6. Только после этого включать Large Address Aware.

Откат

1. Закройте игру и Steam.
2. Удалите измененный KillingFloor.exe.
3. Переименуйте KillingFloor.exe.backup в KillingFloor.exe.
4. Запустите игру.
Steam -> Killing Floor -> Properties -> Installed Files -> Verify integrity of game files