

Основные системные настройки
Особенности мода:
Это плагин SFSE для Starfield, который представляет собой объединение идей из других модов с добавлением некоторых дополнительных функций. Вы можете настроить основные вещи, например, то, как игра использует дисковый кэш, настроить приоритезацию процессора, отключить сохранение при выходе и иметь возможность рандомизировать игровые ресурсы, такие как текстуры. Все эти функции настраиваемы и могут быть включены или выключены по вашему усмотрению.
КЭШИРОВАНИЕ ДИСКА
Первоначальная идея для этого исходила от Disk Cache Enabler, разработанного enpinion для Starfield. Я использую подход, немного отличающийся от этого мода, в том смысле, что вместо исправления определенных областей памяти в игровом коде я использую обходные пути Microsoft для перехвата всех вызовов CreateFile. Это позволяет мне также реализовать другие функции в этом плагине, которые я опишу ниже. В дополнение к включению дискового кэширования я добавляю возможность указывать тип дискового кэширования, который может быть выполнен, чтобы пользователи могли дополнительно настраивать производительность в зависимости от своих конкретных характеристик системы. В этой статье объясняется разница между доступными вариантами. Вполне возможно, что эти различные параметры кэширования никак не влияют на производительность игры, но я подумал, что не мешало бы добавить возможность их настройки на случай, если эти параметры действительно пригодятся.
ПРИОРИТЕТ процессора
Оригинальная идея для этого взята из Skyrim Priority, разработанного boring3 для Skyrim. Функция довольно проста в том смысле, что она просто вызывает SetPriorityClass, чтобы изменить приоритет процесса, чтобы игра могла больше использовать процессор, если в фоновом режиме выполняются другие задачи. В дополнение к этой функциональности я добавил возможность устанавливать сходство процессов с помощью функции SetProcessAffinityMask. Я не могу сказать, что это то, чем я когда-либо пользовался сам, но я видел, как люди говорили об этом, и это может иметь смысл, если, скажем, например, у вас есть процессор с ядрами P и E и вы хотите убедиться, что игра работает только на ядрах P.
ОТКЛЮЧИТЬ СОХРАНЕНИЕ ПРИ ВЫХОДЕ
Первоначальная идея для этого исходила от Disable Exit Save, разработанного PK0 для Fallout 4. Я склонен находить сохранение выхода раздражающим, так что это может пригодиться людям, которые думают так же. Поскольку я уже использую обходные пути Microsoft для перехвата всех вызовов CreateFile, я просто перехватываю любые записи для сохранения файлов, начинающихся с имени “Exitsave”, и устанавливаю флаг FILE_FLAG_DELETE_ON_CLOSE, чтобы выходное сохранение было немедленно удалено после завершения сохранения.Это моя собственная идея, которую, как я понял, я мог бы реализовать с помощью обходных путей Microsoft. По сути, когда Starfield пытается загрузить определенный ресурс из незакрепленного файла, он может быть перенаправлен на другой случайный незакрепленный файл. Например, я заметил кучу модов, которые меняют текстуры рубашек. Вы можете настроить это таким образом, чтобы у вас были разные текстуры рубашек, и при каждой загрузке текстуры выбиралась случайная, так что вы можете получать немного разнообразия каждый раз, когда играете в игру.Хотя это может сработать для любых незакрепленных файлов в папке “Data” в Starfield, я рекомендую вам использовать это только для текстур прямо сейчас, и даже с учетом этого ваш пробег может отличаться. Для простых вещей замена текстур должна работать нормально, но существует вероятность странного поведения или даже сбоев, если игровому движку не нравятся заменяемые текстуры.
КОНФИГУРАЦИЯ
Для настройки этого плагина существует файл с именем “BasicSystemTweaks.json”, который содержит следующие параметры:
{
“disk_cache_enabled”: true,
“disk_cache_type”: 0,
“exit_save_disabled”: false,
“process_priority”: 0,
“process_affinity”: 0,
“asset_randomizer_enabled”: false
}
Эти параметры можно суммировать следующим образом:
disk_cache_enabled – Указывает, следует ли включить кэширование диска.disk_cache_type – Если кэширование диска включено, это будет указывать тип кэширования диска. Используйте следующие значения для его настройки:
0 – Метод кэширования операционной системы по умолчанию
1 – FILE_FLAG_RANDOM_ACCESS
2 – FILE_FLAG_SEQUENTIAL_SCAN
exit_save_disabled – Указывает, следует ли отключить сохранение при выходе.process_priority – используемый приоритет процесса. Поскольку флаги, передаваемые в SetPriorityClass, могут быть немного странными для прямой установки, я присвоил следующие значения:
-2 – IDLE_PRIORITY_CLASS
-1 – BELOW_NORMAL_PRIORITY_CLASS
0 – NORMAL_PRIORITY_CLASS
1 – ABOVE_NORMAL_PRIORITY_CLASS
2 – HIGH_PRIORITY_CLASS
3 – REALTIME_PRIORITY_CLASS
процесс_аффинность – Если установлено значение, отличное от 0, это установит соответствие процесса указанной битовой маске. Это значение считывается как 64-разрядное целое число, которое передается непосредственно в SetProcessAffinityMask. Возможно, вам потребуется использовать программистский калькулятор для преобразования битовой маски, но любой, кто намеревается использовать это, вероятно, знает, что он делает.asset_randomizer_enabled – Если это включено, файлы конфигурации в папке “RandomAssetsConfigs” будут загружены и использованы для рандомизации ресурсов.Файлы конфигурации случайных ресурсов хранятся в формате JSON в папке “RandomAssetsConfigs” с файлами, заканчивающимися расширением “.json”. Ниже приведен пример того, как это выглядит:
{
“текстуры\одежда\outfit_trucker_tee_01\outfit_trucker_tee_01_upperbody_color.dds”: [
“textures\clothes\outfit_trucker_tee_01\outfit_trucker_tee_01_upperbody_color.dds”,
“textures\clothes\outfit_trucker_tee_01\outfit_trucker_tee_01_upperbody_color_01.dds”,
“textures\clothes\outfit_trucker_tee_01\outfit_trucker_tee_01_upperbody_color_02.dds”
],
“textures\items\magazines\peak_performance\peakperformance01_color.dds”: [
“textures\items\magazines\peak_performance\peakperformance01_color.dds”
“textures\items\magazines\peak_performance\peakperformance01_color_alternative.dds”
]
}
Пожалуйста, имейте в виду, что исходный незакрепленный файл то, что подлежит замене, должно существовать, в противном случае игровой движок пропустит эту логику и перейдет непосредственно к поиску ресурса в архиве BA2, который этот плагин не может обнаружить, чтобы выполнить случайную замену.
Автор:: Forsaken Nomad







