Игра S.T.A.L.K.E.R Shadow of Chernobyl совместимость с Windows 7 – как исправить?

XR_3DA.exe не отвечает Ответ

Нашел! (Но у меня это не сработало)

Умный Мегамозг пишет на форуме:

С технической точки зрения механизм работает так. Пользователь каким-то образом пытается запустить исполняемый файл. Но система не сразу дает ему контроль, а сначала пытается проверить его совместимость по разным причинам (например, имя, контрольная сумма и т.д.), Тот факт, что необходимо применить режим совместимости или даже заблокировать выполнение этой задачи (программная установка старой версии Windows, например).

В Vista / Seven к этому списку добавлен список устаревших игр. Их управление осуществляется только по имени исполняемого файла. Если имя исполняемого файла игры совпадает с одним из этого списка, то _ПЕРЕД_ запуском этого исполняемого файла ОС просто запускает rundll32, чтобы добавить игру в проводник игры. До завершения этот исполняемый файл не запустится. Добавляемые данные берутся из файла GameUXLegacyGDFs.dll.

Кроме того, в какой-то момент база данных GameExplorer повреждается. Портится самопроизвольно из-за работы самого GameExplorer (точнее того кода, который ему добавили в семерке). Не все и достаточно редко. Конечно, это вина пользователя: он либо выключил компьютер, когда GameExplorer занимался очень важной оптимизацией производительности его данных в фоновом режиме, либо закрыл окно GayExplorer сразу после запуска игры, не задерживая отведенное время 10 минут. Под БД я подразумеваю здесь набор информации из GameUXLegacyGDFs.dll, реестра и файловой структуры (которая разбросана по кучке папок). Впоследствии код GameUx.dll не может правильно выполнить итерацию всех записей из GameUXLegacyGDFs.dll (и не может обнаружить повреждение метаданных), из-за чего он зацикливается.

В цикле он начинает потреблять ресурсы процессора. Потому что, к счастью, он не многопоточный, поэтому занимает не весь процессор, а только одно ядро. Для одноядерных это может быть 70 процентов (остальное будет занято другими действиями), для двухъядерных – 50%, для моего 3-ядерного – 33% и т.д.

Диагностика:

1. Игра может запускаться и работать, но при этом тормозить, не выдавать ожидаемый FPS. Наиболее очевидное проявление – дергающийся звук. Даже если вам все кажется хорошо, нажмите три кнопки и посмотрите, не зависает ли в ваших процессах rundll32. Владельцы многоядерных процессоров могут вообще не замечать проблемы, а таких процессоров сейчас большинство.

2. Игра начинается со второй попытки. Это, кстати, одно из решений проблемы. Просто запустите его еще раз и забейте в фоновый процесс.

3. Подобная ситуация может возникнуть не со всеми играми, а только с теми, которые операционная система распознает как игры (наличие данных для GameExplorer) или имя исполняемого файла находится в списке Legacy games. Или даже с одной игрой.

Варианты решения:

1. Способ от саппорта! Отключите сбор игровой информации в gameexplorer. Метод, конечно, не работает, но я упоминаю о нем, потому что каждый, кто столкнулся с проблемой, сначала проверяется на вирусы, а затем отправляется в базу знаний Microsoft, где написана эта рекомендация.

2. Отключите все остальное в проводнике игры и очистите собранную информацию. Это тоже мало кому помогает.

3. Переименуйте исполняемый файл игры. Недостатки: каждую игру нужно переименовывать отдельно, некоторые онлайн-игры загружают новый исполняемый файл или создаются при запуске и т.д.

4. Отключите gameexplorer, удалив файлы gameux.dll или записи в ветке реестра HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ GameUX. Кроме того, это не всегда вариант, т.к многие люди находят удобным пользоваться GameExplorer, в конце концов, они сделали это не зря.

5. Удалите старую базу данных игры GameUXLegacyGDFs.dll. В отличие от предыдущего, новые игровые рекорды будут работать. Но старые гаснут.

6. Подождите, пока кто-нибудь из разработчиков отличится от старых версий gameux.dll и удалит неверный код. Будет сложная и трудоемкая служба поддержки, которая должна осуществлять взаимодействие между пользователем и разработчиком, в Microsoft мучается мусор, говорит, что все должно быть как есть, или придумывает свои способы «исправить» ошибку проблема.

Проблемы совместимости приложений и операционных систем:

Как разработчик приложения может справиться с ними в этой ситуации, когда они даже не успевают выполнить свой код? Вам нужно написать драйвер, который обходит механизмы операционной системы и исправляет ошибки Microsoft? Если этого не происходит в некоторых играх, это просто означает, что имя исполняемого файла еще не было включено в список устаревших версий или что база данных GameExplorer еще не была повреждена на машине.

Источник: https://answers.microsoft.com/ru-ru/windows/forum/all/game-stalker-shadow-of/b516ebd8-bd49-467e-9579-7b9c520dca0c

Добавить комментарий