Энтузиаст разрабатывает AnyPS5 для нативного запуска игр PlayStation 5 на Windows и Linux

Независимый разработчик под ником boykopovar представил проект AnyPS5, нацеленный на исполнение бинарных файлов PlayStation 5 в среде операционных систем Windows и Linux. В отличие от традиционных эмуляторов, требующих колоссальных аппаратных ресурсов для виртуализации закрытой архитектуры консоли, создаваемый инструмент представляет собой конвертер исполняемых файлов и слой совместимости. Программа берет оригинальные файлы формата ELF и адаптирует их под архитектуру современных персональных компьютеров на уровне бинарного интерфейса приложений.
В основе разработки находится специализированный релинкер, созданный исключительно средствами стандартной библиотеки C++20. Утилита осуществляет детерминированную пересборку кода, преобразуя структуры данных консоли в нативные исполняемые файлы, включая формат PE для операционной системы Windows. Программа выстраивает таблицы раскрутки стека, адаптирует обработку системных исключений и транслирует вызовы из соглашений SysV ABI в среду исполнения x86-64. Для сборки компонентов под платформу Microsoft в текущей версии задействован инструментарий MinGW-w64 GCC 15.2.0.
Параллельно ведется активное написание собственных замен системных динамических библиотек консоли формата PRX. В составе проекта уже появились реализации базовых функций ядра libkernel, стандартной библиотеки libc, подсистем управления контроллером libScePad, системных служб и даже модулей синхронизации трофеев NpTrophy2. Все нереализованные на текущий момент системные вызовы настроены на выброс информативных исключений в консоль, что позволяет детально отслеживать потребности игрового кода во время выполнения.
Графическая подсистема AnyPS5 построена на трансляции закрытых консольных команд в современные открытые стандарты. Оконный интерфейс и вывод видеоряда реализованы при помощи библиотеки SDL2, а низкоуровневые вызовы библиотек libSceAgc и libSceAgcDriver перенаправляются в графический API Vulkan. Разработчик уже отчитался об успешном прохождении теста с рендерингом треугольника через SPIR-V, кадр которого без ошибок прошел проверку драйвером и отобразился на экране.
Инструмент уже продвинулся значительно дальше синтетических тестов и сумел добраться до основного цикла рендеринга реальной коммерческой игры. Согласно описанию в репозитории проекта, тестовый бинарный файл успешно преодолевает стартовую точку входа, инициализирует модули вывода звука и видео, проходит глубокую цепочку вызовов с кадром стека около 64 КБ, а также целиком считывает необходимые шейдерные ресурсы с накопителя.
Главным препятствием на пути к полноценной картинке на экране сейчас выступает подсистема динамической трансляции шейдеров. Консоль Sony использует графическую архитектуру RDNA, чьи инструкции необходимо на лету преобразовывать в формат, доступный видеокартам персональных компьютеров. Выполнение коммерческого приложения останавливается на этапе первой отрисовки, упираясь в блок рекомпилятора шейдеров. Серия последних обновлений в репозитории как раз направлена на создание транслятора векторных, скалярных и пространственных инструкций графического чипа.
Создатель AnyPS5 обозначил жесткую позицию относительно распространения программы. Первые публичные релизы и готовые сборки не будут опубликованы до тех пор, пока хотя бы одна игра для PlayStation 5 не продемонстрирует полноценный и стабильный запуск. Проект распространяется по лицензии GPL-2.0 исключительно в исследовательских целях и не содержит в себе ключей шифрования, прошивок или защищенного авторским правом кода компании Sony.
Bizning Telegram kanalga obuna bo‘ling
Barcha yangi maqolalar, treylerlar va Steam chegirmalari telefoningizda birinchi bo‘lib paydo bo‘ladi.
Fikrlar va muhokama0