Flatout 2 как изменить разрешение экрана
Добрый день. Изменить разрешение игры FlatOut 2 можно сразу несколькими способами. Во-первых, когда вы запускали игру в первый раз на экране появилось окно с настройками, где можно было выставить разрешение. Чтобы это окно появилось снова вы можете удалить сохранения игры в ее папке. Окно настроек также можно вызвать, если во время запуска игры удерживать кнопку Alt. Наконец до настроек игры можно добраться через меню Пуск, там будут пункты игры.
Разбор ресурсов
Заглянем в папку с установленной игрой, чтобы узнать, с чем придется работать. В данном случае, интерес представляет всего лишь один файл — «flatout.exe». В некоторых играх могут присутствовать дополнительные DLL, к примеру в Max Payne для исправления пропорций изображения я делал инжект в e2mfc.dll, а не в исполняемый файл. Flatout.exe пропатчен до v1.1, но официальный патч от российского дистрибьютора — компании «БУКА», содержит три разных EXE:
Я выбрал flatout,3.exe(2 822 144 байт) для исследования, так как IDA дизассемблирует его во вполне читабельный вид.
Flatout 2 как изменить разрешение экрана
Эта публикация удалена, так как она нарушает рекомендации по поведению и контенту в Steam. Её можете видеть только вы. Если вы уверены, что публикацию удалили по ошибке, свяжитесь со службой поддержки Steam.
Этот предмет несовместим с FlatOut 2. Пожалуйста, прочитайте справочную статью, почему этот предмет может не работать в FlatOut 2.
Этот предмет виден только вам, администраторам и тем, кто будет отмечен как создатель.
В результатах поиска этот предмет сможете видеть только вы, ваши друзья и администраторы.
Проблема с разрешением.
Здравствуйте! Помогите, пожалуйста. Скинул у друга FlatOut2 через USB-носитель, один рас сыграл, потом снова захожу, а там разрешение экрана стало 800х600 точек и никак не могу поменять(у меня максимальное 1366х768). С интернета FlatOut2 скачать не могу. Подскажите, каким образом мне изменить разрешение в игре.
Саша Скальський
Привет! Чтобы изменить разрешение в игре сделай следующее: зайди в папку с игрой, там в папку Savegame, и удали файлик device.cfg, при следующем запуске игры получишь окно с её первоначальными настройками.
Можно ведь и не удалять ничего, чтобы зайти в это окно. В папке с игрой найти исполняемый файл FlatOut2.exe, создать к нему ярлык и в свойствах ярлыка в поле "Объект" приписать -setup (". \FlatOut2\FlatOut2.exe" -setup). Теперь с этого ярлыка будет запускаться окно настроек.
Опыты
Открыв flatout,3.exe в IDA, первым делом начинаю искать константы. Судя по моему предыдущему опыту, большинство старых игр используют для отображения интерфейса и 3D изображения одни из этих: 640.0, 480.0, 1.3333, 0.0015625 = 1.0/640.0, 0.00208333333 = 1.0/480.0 и т.п. Первым делом вбиваю в поиск 0.0015625, так как вторые по популярности константы 640.0 и 480.0 обычно находятся неподалеку. IDA находит искомое по адресу 0x667CE4:
Теперь можно запускать игру и попробовать изменить значение по этому адресу памяти. Вот так выглядит интерфейс FlatOut в разрешении 1280х720:
Запускаю параллельно Cheat Engine, присоединяюсь к процессу. Кнопкой «Add address manually» добавляю в таблицу адрес 0x667CE4:
Меняю его текущее значение на 0.0010, просто посмотреть, что из этого выйдет. По результату видно, что полдела сделано:
Среди найденных адресов, добавляю в таблицу только отмеченные зелёным цветом. Зелёный цвет означает, что данные адреса принадлежат диапазону flatout.exe, а остальные нам попросту не нужны.
Меняю все найденные значения на 360:
Изображение игры пропадает, потом появляется ошибка. Опытным путём выясняю, что вылет происходит из за изменения двух адресов — FlatOut.exe+1069C3(0x5069C3) и FlatOut.exe+107CCB(0x507CCB). Перехожу по адресу 0x5069C3 в IDA, посмотреть, почему же вылетает:
480 здесь — смещение, а не константа, поэтому данная функция интереса не представляет, но внимание привлекает функция ниже, по адресу 0x5069D0, которая при небольшом преобразовании получает такой вид:
Пробую менять константы 4.0 и 3.0 на 16.0 и 9.0 соответственно:
C удивлением обнаруживаю что это и есть то самое aspect ratio, на разрешении 1280х720 картинка сразу обрела правильные пропорции(как было/как стало):
Теперь осталось написать плагин, который рассчитает вышеупомянутые константы в соответствии с текущим разрешением и сделает изображение игры корректным при любых настройках.
- Конфигурация — Release
- Набор символов — Использовать многобайтовую кодировку
- Библиотека времени выполнения — Многопоточная (/MT)
- Уровень предупреждений — Level1 (/W1)
- Конечное расширение — .asi
- Выходной каталог — E:\Games\FlatOut\FlatOut
Чтобы моя ASI-библиотека загружалась вместе с игрой, нужно установить универсальный ASI Loader, скопировав dsound.dll из архива в папку с игрой. ASI — это всего лишь переименованная DLL, а dsound.dll загружает ASI в процесс любой игры, которая использует DirectSound. Возможна загрузка из подпапки scripts.
Как я писал фикс широкоэкранных разрешений для FlatOut
Что требуется
Для создания полноценного фикса, который легко устанавливается и не требует замены файлов игры, я использовал: IDA, Cheat Engine, Visual Studio, универсальный ASI Loader(об этом чуть ниже), а для запуска исследуемой игры в окне — D3DWindower.
Результат
Это только первая версия плагина, и скорее всего она еще не раз обновится. Есть определенные недоработки, например главное меню. Также в случае несовместимости можно добавить поддержку других EXE, например steam-версии.
Читайте также: