← Volver al blog
Aiaprox. 8 min de lectura

AnyPS5: reenlazar los ejecutables de PS5 en vez de emularlos

Publicado 18 oct 2026
AnyPS5: reenlazar los ejecutables de PS5 en vez de emularlos

Hay una categoría de proyectos que se vuelven virales en GitHub por motivos que nadie se molesta en escribir. AnyPS5 es uno de ellos. Está en lo alto de la lista semanal con unas 16,000 estrellas nuevas, roza los 10,000 commits, y su descripción de una línea — «herramienta para portar automáticamente ejecutables de PS5 a Linux y Windows» — es de esas frases que hacen que un abogado busque un bolígrafo y un ingeniero busque un marcador.

Lo interesante no es que exista. Lo interesante es a qué se niega a parecerse.

Sin emulador, sin runtime, sin consola dentro de una ventana

Casi todos los proyectos que ejecutan software de consola en un PC son emuladores. Modelan el hardware: la CPU, la GPU, el reparto de memoria, los tiempos. Ese enfoque es una maravilla cuando funciona y una molienda de una década cuando no, porque cada juego se convierte en una negociación con el modelo incompleto de una máquina para la que nadie tiene documentación completa.

AnyPS5 toma otro camino. Incluye un relinker que convierte un ejecutable de PS5 al formato nativo de la plataforma de destino, más implementaciones de las bibliotecas de sistema prx contra las que el ejecutable espera enlazarse. El README dice la consecuencia sin rodeos: nada de emulación, nada de proceso runtime aparte. El código del juego se ejecuta como código nativo en tu máquina y llama a bibliotecas de sistema reimplementadas igual que habría llamado a las de Sony.

Es una promesa mucho más difícil de cumplir, y mucho mejor si se cumple. La emulación grava cada instrucción. El reenlazado solo grava la frontera: las llamadas que cruzan del juego a la capa de sistema.

La parte que decide si funciona: los shaders

Un juego es, sobre todo, un montón de shaders disfrazados de juego. Un título de PS5 trae programas de GPU compilados para una pila gráfica concreta; una máquina Windows o Linux quiere algo que su driver pueda digerir. AnyPS5 incluye un recompilador de shaders que emite SPIR-V, y el repositorio anota que la salida se valida con SPIRV-Tools cuando la compilación activa ANYPS5_ENABLE_SPIRV_TOOLS.

Validar SPIR-V no es lo mismo que hacer correr un juego. Solo significa que el módulo generado es estructuralmente legal, que es la diferencia entre «esto podría funcionar» y «el driver lo va a rechazar de una forma muy difícil de depurar». Quien haya pasado una noche mirando una pantalla en negro reconoce el valor de esa comprobación.

La página de progreso del proyecto es cauta con lo que significan sus cifras. La cobertura de bibliotecas mide el porcentaje de funciones que el proyecto ha declarado hasta ahora, no el porcentaje de todas las funciones que expone una PS5. Es un planteamiento honesto, y también implica que el porcentaje se moverá a medida que el equipo descubra cuánto es lo que no sabe.

Cómo falla, y a propósito

Hay una decisión de diseño que dice mucho sobre la madurez de una base de código. Los estados no soportados o inesperados lanzan std::runtime_error; el mensaje va a stderr y el proceso termina.

Suena brutal, y es lo correcto. La alternativa — adivinar, seguir adelante, corromper el estado — produce un crash tres fotogramas después, en un sitio que no tiene nada que ver con el fallo real. Un proyecto en esta fase necesita fallos ruidosos, tempranos y concretos. Hay un commit de mediados de octubre que arregla justamente un cuelgue de tests en Windows causado por este tipo de problema de orden: en Windows, un test que retorna desde main pasa por exit, y exit mata todos los demás hilos antes de que corran los destructores estáticos en el desacople de la DLL, así que un destructor que luego espera a un logger muerto no vuelve nunca. El arreglo envuelve main en MinGW y termina el proceso a través de la libc. No es trabajo glamuroso. Es el trabajo que separa una demo de una herramienta.

La entrada, y las pequeñas cosas que importan

Los mandos mapeados por SDL funcionan, incluidos sticks analógicos y gatillos. Teclado y ratón se configuran mediante un archivo anyps5-input.ini. Hay un conversor web que procesa los archivos en local, así que no se sube nada.

La compatibilidad juego por juego no se mantiene en el README. Vive en un mapa de bloqueos comunitario construido con datos públicos de GitHub, con hilos por título en las discussions del repositorio para los informes de pruebas. Merece la pena entenderlo antes de descargar nada: el proyecto registra dónde se atasca cada título, no una lista verde de juegos que funcionan.

La frase legal que sí deberías leer

El aviso legal dice que el proyecto es para interoperabilidad, investigación, preservación y compatibilidad. Dice que no incluye, distribuye ni requiere software con copyright, firmware, claves criptográficas ni bibliotecas propietarias. Y dice que los usuarios son responsables de asegurarse de que los binarios que usan se obtuvieron y se usan de forma lícita.

Es una línea trazada con cuidado, y ahí está todo. La herramienta en sí es GPL-2.0-only y no contiene ningún dato de juego. Lo que le des de comer es tu problema, y en la mayoría de jurisdicciones «lo reenlacé yo mismo» no es una defensa que se haya probado en un tribunal.

Dónde está realmente la frontera

El trabajo de un relinker es la resolución de símbolos. El ejecutable pide funciones por nombre; la herramienta tiene que garantizar que cada uno de esos nombres resuelva a algo invocable en tiempo de carga, con la convención de llamada correcta, en una máquina que no es la máquina para la que se compiló el binario. Fallas una y el proceso muere al arrancar, normalmente con un mensaje que nombra una biblioteca y nada más.

Por eso la página de cobertura del proyecto es el documento más honesto del repositorio. Informa del porcentaje de funciones declaradas que están implementadas, no del porcentaje de toda la superficie de API de una PS5. La diferencia es enorme, y significa que el porcentaje bajará conforme el equipo descubra más de lo que no sabe. Casi todos los proyectos esconden esa dinámica. Este pone una nota al lado del número.

La misma lógica explica el lado de la GPU. La traducción de shaders no es un problema único; es un problema distinto por shader, y un título que renderiza bien durante veinte minutos y luego pisa una ruta de instrucciones sin traducir se caerá de una forma que parece un fallo del driver. La validación de SPIR-V atrapa pronto los problemas estructurales. No puede atrapar los semánticos, y el proyecto no afirma que lo haga.

Así que la pregunta práctica no es «¿funciona?». Es «¿dónde se para mi título?», y el mapa de bloqueos la responde juego por juego, con las issues abiertas adjuntas.

Por qué se ha viralizado ahora

La preservación está de moda. Discos que se degradan, tiendas que retiran juegos, servidores que se apagan: el argumento para mantener el software ejecutable ha dejado de ser sentimental y se ha vuelto práctico. Un relinker es una herramienta de preservación de una forma en que un emulador no lo es: no necesita modelar una máquina, solo satisfacer la interfaz que el software espera.

También hay una explicación más simple. El proyecto es enorme, los commits caen por cientos, y una buena parte está claramente escrita con agentes de código en el bucle: el repositorio incluye incluso un archivo AGENTS.md con las reglas que los agentes suelen incumplir. Ver construirse un proyecto de 10,000 commits en unos dos meses y medio es un espectáculo en sí mismo, y explica una curva de estrellas que tiene poco que ver con cuántos juegos arrancan.

Qué hacer con esto

Si tienes un ejecutable obtenido legalmente y una noche libre, la expectativa honesta es esta: aprenderás muchísimo sobre cómo se monta un título de consola moderno, y probablemente no te termines un juego. Lee primero el mapa de bloqueos de tu título. Lee el documento de deuda técnica antes de abrir una issue. Y lee la licencia antes de publicar cualquier cosa construida con esto.

El punto de fondo se sostiene sin importar cuántos títulos lleguen a arrancar. Durante veinte años, la respuesta a «¿este software de consola puede correr en otro sitio?» ha sido «solo si alguien emula la máquina». AnyPS5 es un intento serio de una segunda respuesta, y que se esté escribiendo en público, a esta velocidad y con tanta fontanería sin glamur es justo la razón por la que merece estar en la página de tendencias.

Artículos relacionados