Обходим софт-лок в Gears of War 3: Raam's Shadow, при игре на эмуляторе Xenia

Обходим софт-лок в Gears of War 3: Raam's Shadow, при игре на эмуляторе Xenia

При игре на эмуляторе в этом дополнение возникает проблема: после любой смерти ломаются внутриигровые скрипты и блокируется дальнейший корректный прогресс в главе игры. Приходится перезапускать главу с нуля. А простой рестарт с чекпоинта не помогает.

Обойдём эту проблему:

Кратко как - сделаем скрипт который будет в фоне бэкапить сейв.
В случае смерти просто восстанавливаем последний недавний рабочий файл сейва.

Как использовать скрипт, подробно:

  1. Кладём скрипт в папку сейва игры: Папка Xenia \ content \ B13EBABEBABEBABE (id вашего профиля в эмуле) \ 4D5308AB (id игры) \ 00000001 \ GearsCheckpoint ;
    Наш файл сейва который будем авто-бэкапить: GearsCheckpoint0.sav (цифра на конце – в зависимости от слота, у меня это первый слот, поэтому файл нулевой, Л - логика);
  2. Запускаем скрипт работать перед запуском игры;
  3. В случае смерти: не перезапускаем чекпоинт в игре – жмём Alt+Tab в папку сейва, смотрим время изменения испорченного файла сейва, и удаляем его (он сломан). Ищем в списке файл-бэкап с временем чуть раньше и копируем / переименовываем его под сейв;
  4. Alt+Tab обратно в игру, выходим в главное меню, и оттуда уже загружаемся в наше нормальное сохранение чекпоинта;

Костыльно? Да.

Но это лучше чем перезапускать целую главу из-за одной смерти (а вы будете периодически умирать, поверьте), или играть на легком чтобы не умереть (тогда весь сок превозмогания шестеренок теряется).

Вся операция восстановления занимает ~30 сек. в случае смерти.

Скрипт бэкапа сейвов:

@echo off setlocal enabledelayedexpansion set "FILE_PATH=GearsCheckpoint0.sav" set "BACKUP_DIR=%~dp0" set "NUM_BACKUPS=60" if not exist "%BACKUP_DIR%" mkdir "%BACKUP_DIR%" :: Инициализация счетчика ротации if not exist "%BACKUP_DIR%\backup_index.txt" echo 1 > "%BACKUP_DIR%\backup_index.txt" for /f %%i in (%BACKUP_DIR%\backup_index.txt) do set /a INDEX=%%i :loop :: Создание копии с текущим индексом copy "%FILE_PATH%" "%BACKUP_DIR%\backup%INDEX%.sav" > nul echo Создана копия: backup%INDEX%.sav :: Увеличиваем индекс с возвратом к 1 после 60 set /a INDEX=(INDEX %% NUM_BACKUPS) + 1 echo %INDEX% > "%BACKUP_DIR%\backup_index.txt" :: Ожидание N секунд перед следующей копией timeout /t 120 > nul goto loop

Важно: Сохраняйте его в кодировке OEM 866, иначе не запустится (вероятно из-за кириллицы комментариев внутри, но это не точно)

Вот так:

Обходим софт-лок в Gears of War 3: Raam's Shadow, при игре на эмуляторе Xenia

Как работает скрипт:

  • Делает копию файла сохранения каждые 120 сек.;
  • В ротации держит 60 последних копий, после дохождения до последнего номера, начинает перезаписывать с начала нумерации;

Как выглядит работающий скрипт:

Обходим софт-лок в Gears of War 3: Raam's Shadow, при игре на эмуляторе Xenia

Вот как выглядит результат работы скрипта в папке сейвов:

Обходим софт-лок в Gears of War 3: Raam's Shadow, при игре на эмуляторе Xenia

Доп. инфа:

  • Дополнение Raam's Shadow на мой взгляд стоит прохождения - оно мясное, эпичное, несколько полноценных глав на несколько вечеров;
  • В основной кампании Gears of War 3 на Xenia такая проблема встречается редко, только в отдельных миссиях (помню было на паре боссов), и почти не доставляет проблем - но вот в дополнении полная жопа, т.к. помирать нельзя совсем, иначе сейву капец, внутриигровые скрипты пойдут по известному месту. Тут нам и поможет авто-бэкап;
  • Перед прохождением основной кампании игры и её дополнения – также рекомендую скачать кэш шейдеров Xenia для этой игры. Это избавит вас от статтеров. Ссылку давать не буду по понятным причинам, но ищется легко в интернете;
  • Ещё можете скачать патч на 60fps - работает нормально, багов не замечено (баг с сейвом не от этого);

Теперь у вас не будет проблем с сейвами.

Приятной игры!

13
5
2
1
1
1
8 комментариев