Проект с открытым исходным кодом AnyPS5 достиг 100% покрытия инструкций графического процессора, что является важной вехой в его стремлении запускать игры PlayStation 5 нативно на ПК с Windows и Linux. На отслеживающем прогресс сайте проекта теперь перечислены все 1166 инструкций из набора инструкций AMD RDNA 1 и RDNA 2, которые были реализованы. Однако у этой цифры есть важное примечание: это не означает полную поддержку графического процессора PS5, не говоря уже о готовности игр PS5 к запуску на вашем ПК.
Различие заключается в том, как AnyPS5 определяет «реализовано». В данном случае это означает, что декодер шейдеров проекта распознает инструкцию. Это важный первый шаг, но он не означает, что каждая инструкция реализована в переводе на SPIR-V, не говоря уже о гарантии того, что поведение инструкции корректно во всех ситуациях, что поддерживаются все функции графического процессора или что шейдеры игры будут отображаться должным образом. Рассмотрим сетевые библиотеки: libSceHttp имеет 95% реализации, но в документе о техническом долге явно указано, что в текущей реализации ни один HTTP-запрос не достигает сети.
Если вы запутались в AnyPS5, позвольте мне объяснить. Наиболее точной отправной точкой является «нативная портировка через бинарную трансформацию и перереализацию API», а не обычная эмуляция PS5. AnyPS5 берет существующий исполняемый файл PS5 (в стандартном формате ELF, как у Linux) и перекомпоновывает его в нативный исполняемый файл Linux ELF x86-64 или Windows PE. Ему не нужен исходный код игры, и он не перестраивает игру с нуля; вместо этого он адаптирует существующий машинный код и предоставляет нативные замены для системных библиотек PS5, которые игра ожидает найти.
Граница становится более размытой, когда мы доходим до графического процессора. Игры PS5 используют проприетарный графический интерфейс AGC от Sony и специфичные для AMD RDNA инструкции шейдеров вместо стандартных графических API и форматов шейдеров, знакомых разработчикам ПК. AnyPS5 перереализует необходимое графическое поведение и преобразует программы шейдеров RDNA в SPIR-V для выполнения через Vulkan. Это перевод, перереализация и, возможно, некоторая эмуляция аппаратного поведения на разных уровнях, но это не обычный эмулятор, воссоздающий весь виртуальный PS5 и запускающий игру внутри него. Код ЦП обычно может выполняться непосредственно на совместимом хосте x86-64, хотя AnyPS5 также предоставляет опцию «–to-intel» для преобразования инструкций, предназначенных только для AMD, для процессоров Intel.
Помимо декодирования шейдеров, предстоит еще много работы. Трекер проекта сообщает о 84,69% реализации из 2578 из 3044 функций системной библиотеки, в настоящее время объявленных в его кодовой базе. Эта цифра не отражает каждую функцию в прошивке PS5, и она не гарантирует, что каждая реализованная функция ведет себя точно так же, как на консоли. Графическое состояние, форматы текстур, синхронизация, управление памятью, аудио и другие системные службы также должны работать правильно, чтобы вся игра могла запуститься.
Официальный список совместимости проекта в настоящее время идентифицирует Dreaming Sarah, очаровательный, но технически очень простой 2D-платформер, как единственную подтвержденную играбельную игру. Разработчики добиваются прогресса с более требовательными играми (включая недавнюю Ghost of Yotei), но отчеты об экспериментальной настройке по-прежнему документируют существенные проблемы с рендерингом, стабильностью и производительностью. Достижение интро игры или рендеринг ее первой 3D-сцены — это реальный прогресс; очевидно, это не то же самое, что пройти игру.
Здесь также нет прямой связи между диском и рабочим столом. Документированный рабочий процесс AnyPS5 начинается с уже извлеченного ELF-файла игры, связанных с ним модулей и ресурсов, а также правильно собранного набора библиотек совместимости на стороне хоста. Это не инструмент для извлечения или дешифровки дисков, поэтому вам придется самостоятельно разобраться, как извлечь ELF-файл игры и ресурсы.
Требования к оборудованию будут зависеть от игры, но большой проблемой является запас памяти: в Windows проект предупреждает, что игра может запрашивать до 13 824 МБ (13,5 ГБ) прямой памяти, причем вся эта память сразу же учитывается в лимите коммитов системы. Это не универсальное требование к свободной ОЗУ, но это означает, что это не то, что стоит пробовать на любом старом ПК с 16 ГБ ОЗУ и небольшим файлом подкачки.
Чтобы было ясно, ничего из этого не следует понимать как преуменьшение моего восхищения этим достижением. Распознавание каждой инструкции в отслеживаемом списке RDNA проекта является критически важным шагом на пути к более широкой совместимости, и работа, которая сейчас проводится над переводом этих инструкций и воспроизведением окружающего графического поведения, именно то, что делает проект интересным. Здесь также ведется реальная работа людей; помимо ожидаемой помощи от Claude (и, возможно, других ассистентов, не указанных напрямую на GitHub), в проекте насчитывается более 100 участников-людей.
Более вероятным долгосрочным результатом AnyPS5 является не универсальный эмулятор PS5, куда вы вставляете диск и нажимаете «играть», а мощная основа для неофициальных нативных портов отдельных игр на ПК. Однако здесь есть сложная юридическая запутанность, которую предстоит разрешить, и между сегодняшней вехой и этим будущим еще предстоит проделать огромную работу, но прогресс в проекте идет быстрыми темпами. Вполне возможно, что мы будем играть в версию GTA VI для PS5 на ПК раньше, чем Rockstar выпустит официальную версию для ПК.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Zak Killian




