Разработчик Чокри Хаммеди под псевдонимом blue0x1 опубликовал первый релиз проекта EmuFive под номером 1.0.0, предназначенного для запуска игр от PlayStation 5 на консоли PlayStation 4. Проект представляет собой специализированную сборку Linux на базе PS4 Multiboot, которая загружается напрямую в полноэкранный интерфейс эмулятора без стандартного рабочего стола. Новинка базируется на кодовой базе KytyPS5, который в свою очередь является форком известного эмулятора Kyty от разработчика InoriRus.
Ключевой сложностью при запуске проектов нового поколения на старом железе стала фундаментальная несовместимость процессоров. Игры для PlayStation 5 скомпилированы под современную архитектуру Zen 2 и повсеместно используют векторные инструкции AVX2, BMI2 и FMA. Процессор AMD Jaguar консоли PlayStation 4 лишен поддержки этих наборов команд, поэтому при попытке исполнить оригинальный код игра моментально завершала работу с фатальной ошибкой. Для обхода проблемы автор внедрил в загрузчик модулей специальный патч, на лету транслирующий неподдерживаемые инструкции в эквивалентные последовательности для SSE4.2, AVX и BMI1.
Сложные команды, которые невозможно переписать во время первичной загрузки модуля, перехватываются и заменяются непосредственно в момент первого исполнения. Разработчик проверил корректность всех сгенерированных инструкций на ПК путем побитового сравнения регистров и флагов памяти. В тестовой программе для God of War Sons of Sparta совпали 287 форм инструкций, а редкие расхождения коснулись лишь последнего бита при округлении чисел с плавающей запятой в операциях двойной точности.
Графический стек системы опирается на драйвер RADV из пакета PS4 Mesa, обеспечивающий видеочипу поддержку Vulkan 1.3 с экспериментальным режимом разреженных ресурсов. Это позволило задействовать чипы Liverpool на базовой версии PlayStation 4 и Gladius на более мощной PlayStation 4 Pro. Из-за колоссальной разницы в производительности между Jaguar и Zen 2 общая скорость работы большинства проектов остается низкой, однако проект God of War Sons of Sparta на PlayStation 4 Pro уже демонстрирует стабильные 40 кадров в секунду и выше.
Оболочка EmuFive полностью ориентирована на телевизоры и геймпад DualShock 4, поэтому подключение клавиатуры не требуется. Главное меню отображает игры плитками и позволяет запускать файлы с внешних накопителей USB, с внутреннего диска консоли или по локальной сети через общую папку на ПК. Во время игры нажатие кнопки PS вызывает быстрое меню с возможностью поставить процесс на паузу, отрегулировать звук или вернуться на главный экран. Система также включает создание скриншотов с передачей на смартфон через QR код, поддержку до 8 независимых пользовательских профилей и файл подкачки объемом 4 ГБ для защиты системы от зависания при переполнении оперативной памяти.
Для запуска эмулятора требуется взломанная консоль PlayStation 4 с установленным загрузчиком GoldHEN и около 28 ГБ свободного места на внутреннем накопителе либо отдельный USB накопитель объемом от 8 ГБ. Исходный код модифицированного эмулятора, скрипты сборки и системный образ распространяются под лицензией GPL-2.0 на платформе GitHub.
Источник: www.playground.ru