AnyPS5: El proyecto open source quiere llevar los juegos de PS5 a PC de forma nativa

Imagen


Hilo creado con previa autorización de la administración.

Un nuevo proyecto de código abierto está intentando encontrar una vía completamente diferente para ejecutar juegos de PlayStation 5 en PC. Se trata de AnyPS5, una herramienta desarrollada por boykopovarque pretende adaptar los ejecutables de PS5 para que puedan funcionar de forma nativa tanto en Windows como en Linux, sin recurrir a un emulador tradicional.

Aunque todavía se encuentra en una fase muy temprana y no existe ninguna versión pública con la que podamos jugar a títulos de PS5, el proyecto ya ha alcanzado un punto especialmente interesante.

AnyPS5 no quiere emular PlayStation 5
La principal peculiaridad de AnyPS5 está precisamente en su enfoque. En lugar de crear una PS5 virtual y reproducir mediante software el comportamiento de su hardware, el proyecto intenta convertir directamente el ejecutable de la consola al formato nativo del sistema operativo de destino.

Para ello utiliza un relinker capaz de transformar el ejecutable original y cuenta además con implementaciones alternativas de las bibliotecas de sistema de PlayStation necesarias para que el programa pueda ejecutarse. El proyecto describe expresamente su funcionamiento como sin emulación y sin necesidad de un proceso de ejecución independiente.



En otras palabras, la intención es que el juego termine ejecutándose como un programa nativo de Windows o Linux, en lugar de tener un emulador trabajando constantemente entre el juego y el hardware del PC.

La arquitectura de la CPU de PlayStation 5 ayuda en este planteamiento. La consola utiliza un procesador basado en x86-64, la misma arquitectura general empleada por los procesadores de escritorio actuales. Eso permite evitar una traducción completa de las instrucciones de CPU que sí sería necesaria al trasladar código entre arquitecturas diferentes.

Sin embargo, convertir el ejecutable es solamente una parte del problema. Los juegos dependen de numerosas funciones específicas de PlayStation 5, por lo que AnyPS5 también necesita recrear el comportamiento esperado de esas bibliotecas.

El apartado gráfico es uno de los grandes retos
La GPU representa otro de los principales desafíos del proyecto. AnyPS5 incorpora un recompilador de shaders capaz de trabajar con los programas gráficos de la arquitectura RDNA y generar código SPIR-V, que posteriormente puede utilizarse mediante Vulkan.

Según el estado publicado por el desarrollador, esta parte ya es capaz de producir SPIR-V validado mediante Spirv-Tools.

No obstante, todavía existen funciones gráficas pendientes de implementar. El propio repositorio señala, por ejemplo, que todavía no están implementados determinados recursos de imágenes muestreadas y de almacenamiento dentro de AGC graphics.

Es aquí donde se entiende por qué llegar al menú de un juego es un avance importante, pero todavía queda muchísimo trabajo por delante antes de poder hablar de compatibilidad real.

Todavía no hay una versión para descargar

Aquí conviene rebajar bastante las expectativas que puedan generar algunos titulares que leáis por ahi. El código de AnyPS5 está disponible públicamente en GitHub bajo licencia GPL-2.0, pero el proyecto todavía no dispone de una versión oficial para usuarios finales.

El propio desarrollador ha establecido que las primeras versiones descargables se publicarán cuando consiga realizar el lanzamiento completo de, al menos, un juego.

Quienes quieran experimentar con el proyecto actual tienen que compilar el código por su cuenta. En Linux se utiliza GCC, mientras que en Windows el estado actual especifica MinGW-w64 GCC 15.2.0, concretamente la configuración winlibs-gcc15 con x86_64-ucrt-posix-seh.

Por tanto, a día de hoy no existe una lista de juegos compatibles, cifras de rendimiento ni una versión de AnyPS5 que permita a cualquier usuario instalarla y comenzar a jugar.

Un concepto diferente al de los emuladores de PS5
AnyPS5 no pertenece realmente a la misma categoría.

Un emulador intenta reproducir durante la ejecución el funcionamiento de la consola original. AnyPS5 busca realizar buena parte de ese trabajo antes de ejecutar el juego, convirtiendo el binario y proporcionando las bibliotecas necesarias para que ese código pueda funcionar directamente en Windows o Linux.

Esto hace que el proyecto resulte especialmente interesante desde el punto de vista técnico. Sobre el papel, reduciría una parte importante del coste asociado a la emulación de CPU.

Para un proyecto que todavía lleva muy poco tiempo en desarrollo, llegar hasta este punto resulta, cuanto menos, bastante interesante.
Realmente es lo mismo que KYTY Y SHARPEMU

Tuve la oportunidad de echar un vistazo al proyecto AnyPS5. En realidad, no descompila juegos de PS5. En cambio, vuelve a enlazar el código original del juego x86-64 en un ejecutable nativo del host y recrea o traduce el runtime de PS5, las bibliotecas del sistema y las interfaces gráficas a su alrededor.

https://x.com/CursedIfElse/status/21037 ... 41933?s=20
PS2Recomp es un mejor ejemplo de recompilación estática real: decodifica las instrucciones MIPS originales y emite código C++ equivalente. AnyPS5 no hace eso; mantiene el código de juego x86-64 original y lo vuelve a enlazar para el host mientras recrea el entorno PS5 circundante.



https://x.com/CursedIfElse/status/21038 ... 42992?s=20
En realidad, SharpEmu, KytyPS5, ShadPS4, etc., todos funcionan de la misma manera. Porque PS5 x86-64, así que traducimos la API gráfica propietaria > Vulkan.


https://x.com/CursedIfElse/status/21039 ... 18005?s=20
Es básicamente lo mismo, solo empaquetado como un .exe separado para cada juego. Nada más.


Scarecrow es uno de los desarrolladores principales de sharpemu, que ya tiene varios juegos de PS5 funcionando en PC a 60fps.

Todos son lo mismo en general, son como proton más o menos, por cierto, demon's souls remake ya corre a 120fps en KYTYPS5 hilo_ho-kytyps5-sharpemu-emulador-de-ps5-para-pc-windows-linux-mac_2534567_s50#p1757026510


El desarrollo de llevar juegos de PS5 a PC va a pasar por varios proyectos diferentes que no dejan de ser lo mismo, cada uno se especializará en determinados juegos, en las capas de traducción de cada juego, para hacerlo ejecutable.
2 respuestas