Баг в GTA: San Andreas на Windows 11 24H2 связан с устаревшим кодом

Баг в GTA: San Andreas на Windows 11 24H2 связан с устаревшим кодом

Баг в GTA: San Andreas на Windows 11 24H2 связан с устаревшим кодом

На днях на GitHub-трекере SilentPatch и GTAForums начали активно обсуждать странную проблему: в GTA: San Andreas на Windows 11 24H2 пропал гидросамолёт Skimmer. Его нельзя найти на обычных спавнах, нельзя заспавнить через трейнер — и даже в чистой версии игры без модов он просто исчезает.

Причём ошибка повторяется у всех, кто обновился до новой версии Windows.

Поначалу это выглядело как какой-то странный случай, но после реальных тестов в виртуальной машине стало ясно: после обновления до 24H2 Skimmer действительно исчезает. Попытка заспавнить его вручную приводила к забавному результату: игрока катапультировало на немыслимую высоту — примерно на 1 квадриллион световых лет вверх!

Что оказалось не так

При расследовании выяснилось, что проблема связана с багом в самой GTA: San Andreas, который просто чудом не проявлялся больше 20 лет. Всё дело в том, что в файле vehicles.ide у Skimmer были неполные данные — отсутствовали параметры масштабов колёс, которые обязательны для самолётов. Игра при чтении этой строки полагалась на старые значения из памяти, которые «по счастливой случайности» всегда были нормальными… до Windows 11 24H2.

В новой версии Windows внутренняя работа функций типа fgets изменилась: они теперь используют больше места на стеке. Из-за этого те старые «спасительные» значения перезаписываются, и игра начинает работать с мусорными данными. В результате Skimmer появляется с поломанными координатами и либо не спавнится вовсе, либо моментально отправляет игрока в стратосферу.

Как починить проблему прямо сейчас

Разработчик SilentPatch уже подготовил исправление для патча, но если хочется вернуть Skimmer без ожидания, всё просто:

  1. Открыть файл data\vehicles.ide в папке с игрой.
  2. Найти строку, начинающуюся с 460, skimmer.
  3. Заменить её на следующую:
    460, skimmer, skimmer, plane, SEAPLANE, SKIMMER, null, ignore, 5, 0, 0, -1, 0.7, 0.7, -1
  4. Сохранить файл.

После этого Skimmer снова будет спавниться нормально!

Почему так произошло

Ошибка появилась не из-за Windows 11 24H2 как такового — Microsoft просто изменила внутренние механизмы работы системы, и старая ошибка в коде игры, на которую никто не обращал внимания десятилетиями, внезапно себя проявила. Кстати, в более поздних версиях GTA: San Andreas (на Xbox, Steam 3.0, мобильных версиях) Rockstar тихо исправили эту проблему, добавив недостающие параметры.

Вывод

История с исчезнувшим Skimmer — отличный пример того, как даже небольшие изменения в новой ОС могут «всплыть» через старые ошибки в коде приложений. И ещё одно напоминание, почему важно не оставлять неинициализированные переменные без присмотра. К счастью, у нас есть моддеры и патчи вроде SilentPatch, которые позволяют сохранять любимые игры рабочими даже через десятилетия.

В Android 17 Beta нашли функцию, упрощающую защиту сим-карты

Вышла Android 17 Beta 2, и энтузиасты уже активно копаются в коде в поисках нововведений. Одной из самых интересных находок может стать изменение в работе защиты сим-карты — функции, которую ценят за безопасность, но не любят за лишние действия.

Сейчас всё просто: если у вас включён ПИН-код для защиты симки, при каждой перезагрузке смартфона приходится вводить сначала код разблокировки устройства, а затем ещё и этот ПИН. С точки зрения защиты — отлично. С точки зрения удобства — не очень.

Судя по коду Android 17 Beta 2, Google может упростить этот процесс. Предполагается, что система будет автоматически вводить ПИН-код от сим-карты при запуске устройства, после того как пользователь введёт ПИН самого смартфона. То есть дополнительный шаг просто исчезнет.

При этом безопасность, по всей видимости, останется на том же уровне. ПИН-код будет храниться в защищённой области Android, а если извлечь симку и вставить её в другой телефон, блокировка останется активной. Иными словами, защита от несанкционированного использования никуда не денется, но пользоваться устройством станет проще.

Пока функция выглядит как заготовка на ранней стадии, но есть шанс, что она доберётся до финальной версии Android 17, релиз которой ожидается летом.

Тем, кто хочет попробовать бета-версию уже сейчас, нужно зарегистрироваться в программе Android Beta Program (при наличии актуального смартфона Pixel). В целом система работает стабильно, хотя без мелких проблем традиционно не обходится. Так что устанавливать её на основной рабочий телефон стоит с осторожностью.

RSS: Новости на портале Anti-Malware.ru