Sharpemu y Kyty Emulador de PS5 para PC

https://emulation.gametechwiki.com/inde ... yStation_5

https://github.com/par274/sharpemu
https://github.com/Nmzik/KytyPS5


SharpEmu es un proyecto de emulador que actualmente se encuentra en sus primeras fases de desarrollo.

Este proyecto se desarrolla únicamente con fines de investigación y educativos. No hay objetivos comerciales asociados a ello. Nos gusta aprender sobre arquitectura de sistemas e ingeniería inversa.

SharpEmu se centra exclusivamente en PlayStation 5.
Nuestro objetivo no es emular juegos de PS4, ya que ya existe un excelente emulador dedicado a esa plataforma: ShadPS4.

Estado
Actualmente, el emulador puede cargar juegos reales, ejecutar instrucciones nativas de CPU y gestionar parcialmente funcionalidades relacionadas con el núcleo. Sin embargo, siguen faltando varios componentes críticos.eboot.bin

Las capacidades actuales incluyen:

-Carga y archivoseboot.bin.elf
-Ejecución de instrucciones nativas de CPU
-Leer metadatos básicos del juego (título, versión, etc.)
-Módulos del sistema de carga (prx / sys_module)
-Soporte parcial para algunas funciones del núcleo
-Fiber y exportacionesAMPR
-Escenarios de PlayGo
-Carga inicial de archivos del juego
-Envíos de shader/resource y inicial de AGC
-Salidas de vídeo en algunos juegos
-Algunos juegos han alcanzado etapas similares y AGC.sce VideoOut

Actualmente, el proyecto está dirigido principalmente a Windows. Se planifica soporte multiplataforma (Linux y macOS), pero actualmente el desarrollo se centra en Windows para simplificar la depuración y la iteración en etapas iniciales.

Interesante. Aunque creo que el futuro de los juegos, tanto de PS4 como de PS5 ejecutados fuera de sus máquinas, puede estar más bien en las decompilaciones-recompilaciones, al ser la arquitectura de estas consolas prácticamente la de un PC normal.
(mensaje borrado)
@SirAzraelGrotesque no sabemos, yo lo que veo más son capas de compatibilidad, algo tipo wine que traduzca las apis gráficas de las consolas a las de windows, creo que es básicamente lo que hace ShadPS4 o el emulador de XBOX ONE.


No es necesario decompilar ni emular a bajo nivel realmente, solo traducir las llamadas entre la API y el sistema.
@katatsumuri Sí, eso también es posible. Lo que está claro es que, a poco que se le ponga trabajo, debería ser más sencillo lograr resultados con estas máquinas que con muchas de las anteriores.
Por cierto, ya hay web de PCSX5, no caigáis en la trampa https://pcsx5.org/

ES UN VIRUS
Se ve que los que hacen emuladores no le dedican mucho tiempo al nombre.
mingui escribió:Se ve que los que hacen emuladores no le dedican mucho tiempo al nombre.

La verdad que estos dos y el de PS4 son bastante horribles, el resto de PSX si están bien, tienen mejores nombres.
He mirado por encima y ya corre varios juegos, lo cual está brutal

Igual PS5 no tiene casi exclusivos, lo único que me interesaría jugar de ahí es demon souls remake, a ver si sigue avanzado para los 4 juegos interesantes que le quedan a la máquina
Sin exclusivos estos emuladores cada vez tiene menos sentido.
@Pletesermerr tiene muy pocos por el tema de multiplataforma, pero ya han cerrado

https://en.wikipedia.org/wiki/Category: ... only_games


De momento así interesante:
Ghost of Yotei
Demon's Souls REMAKE
Astrobot
Saros


Por venir:
God Of War Trilogy REMAKE y Lawfey
Intergalactic
Wolverine
@katatsumuri yo sumaría el gran turismo, pero al pedir conexión permanente me imagino que jugarlo vía emulación sería enviable

Bastante lamentable ha sido esta generación de PS5, muchísimo peor que la de PS4, el intergalactic ni tiene fecha de salida ni se le espera pronto, y el resto de cosas quitando demons, ni fu ni fa, el yotei no vendió ni la mitad que el tsushima y el Saros entiendo que no llego ni al millón de copias, ahí tienes a marathon a punto de cerrar....bastante lamentable todo la verdad

Con que emulen el Demons Souls (que habría vendido una millonada en PC) me conformo, aunque dudo que se consiga pronto, pero al menos son buenas noticias que ya existan avances tangibles, lo suyo sería que se enfoquen en los 4/5 juegos de turno igual que hicieron con Shad PS4, no es en absoluto necesario emular todo el catálogo
Mientras haya un solo exclusivo, se hará necesario el emulador (o decompilar/recompilar).
Con que hagan funcionar los exclusivos ya vale, es lo que tienen que hacer, conseguir un emulador funcional que ejecute 3 o 4 exclusivos y no la mayoría de la plataforma es lo suyo, y será más "fácil" en teoría.
DEMON'S SOULS REMAKE ya alcanza a los menús


Venimos de aquí en relación a los avances en emulación de PS5 que podrían traer a GTA VI a PC antes de tiempo hilo_ho-grand-theft-auto-6-cuando-saldra-en-pc-rumores-y-leaks_2492290_s400#p1756886556

fluzo escribió:Bueno, "emulacion"...

Como quieras llamarlo.
"Ejecutarlo no nativamente" si quieres XD

Pero vamos, que sea como sea, no va a consumir menos recursos que un juego nativo y optimizado de PC...



djlogan83 escribió:Eso es emulación claramente 🤣🤣

Un emulador precisamente emula ciertas instrucciones de la BIOS para ejecutar lo más preciso posible un juego de un sistema de la cual no se tiene el código fuente completo y se consigue de varias formas posibles.

Leyendo la RAM, volcando la BIOS y haciendo ingeniería inversa etc...



Esto es como WINE, o lo que VALVE llamó proton en LINUX, y las siglas de WINE significan precisamente
WINE IS NOT an EMULATOR

Recordemos que PS4 y PS5, igual que las XBOX recientes, comparten arquitectura con PC.

Claro que adaptar eso lleva tiempo, Wine no nació siendo perfecto, de hecho sin el apoyo de Valve no hubiera llegado a donde está ahora, ya que a Valve le interesó por competencia tener una forma de escape a Windows si Windows empezaba a cerrarse a la hora de permitir instalar software externo en cualquier momento, ya que hace unos años Microsoft se puso muy perro con querer potenciar su tienda en Windows y su formato UWP de aplicaciones, querían consolizar Windows, y no les salió bien afortunadamente (fue precisamente en la época del 2016 cuando salió Gears of War 4 que empezaron a meterle a todo formato UWP distinto al exe, Valve lanzó proton en 2018), aunque creo que la store últimamente está ganando relevancia, no para juegos, pero si para software.

Lo que si creo que se tendría que emular son algunos chips de la consola de arquitectura diferente, como el kraken de la compresión del NVMe, o el chip de audio 3D, pero no el resto, como si era común en la emulación de bajo nivel, por eso se ha avanzado tan rápido en nada, y por eso el rendimiento es infinitamente mejor que con un emulador de bajo nivel.

Aquí por ejemplo tenéis Bloodborne de PS4 corriendo en una 3050 a 1080p 60fps, eso con una emulación a bajo nivel sería impensable, a no ser que hubiera un avance tremendo, que os digo yo que no lo habría, de hecho hace un día o dos, después de muchos años, RPCS3 ha anunciado soporte del emulador a GPUs antiguas.


Pero nada, os subo la apuesta, aquí tenéis a Bloodborne corriendo en una GTX 970 del 2014


Obviamente vas a necesitar una máquina de unos 6 u 8 cores porque estas consolas tienen esos núcleos en los cuales reparten el procesamiento del juego, si no los tienes el juego si se ahoga más.
@katatsumuri puedes llamarlo como quieras, pero la emulación no tiene que ver con la arquitectura si no con emular funciones, syscalls de las que no se conocen ya que no se tiene el código fuente como te he dicho.

Wine es otra cosa muy diferente. Simplemente lo que hace wine es traducir las funciones que se conocen en otro lenguaje.
Para ponerte un ejemplo, es como si tengo el código fuente de un programa en C++ y lo quiero convertir a Java pero en tiempo real. Voy traduciendo las variables, funciones etc de C++ a Java en tiempo real con el costo que conlleva.

Estás confundiendo dos cosas que son muy pero que muy diferentes.

De hecho el programa se llama SharpEMU. No te dice nada ya el nombre? Y si te metes en el repo o en la web te lo pone bien claro. PS5 Emulator

Te recomiendo aprender bases de programación para entender de lo que estás hablando mejor
@djlogan833 este es uno de los primeros proyectos que se hizo de PS4, aquí su dev dice que es una capa de compatibilidad y pone emulador entre paréntesis, porque la gente cuando busca estas cosas en internet busca EMULADOR, da más visibilidad.
https://github.com/red-prig/fpPS4

Imagen

De hecho ShadPS4 se inspiró directamente de este proyecto
https://grokipedia.com/page/shadps4
Imagen




Le llaman emulador porque es más pop, es lo que ha habido toda la vida, lo que la gente conoce por familiarizarse con el concepto, a la gente si le dicen capa de compatibilidad no van a entender nada, van a pensar que es streaming o dios sabe que, entonces le llaman emulador para que la gente lo relacione con un emulador por el concepto de que ejecuta los juegos en otro sistema que no es el nativo, porque a la hora de encontrar el proyecto por parte de los usuarios es más fácil, por el posicionamiento e indexación en google y resto de buscadores web.

Muy parecido a cuando te sacan un Resident Evil, que no es un resident evil, como la película que saldrá en setiembre creo, tiene el nombre, pero se pasa el lore por ahí, pues esto es lo mismo, le ponen el nombre porque vende más.


No está emulando la arquitectura de la CPU que es lo más complejo y lo que más consume recursos.

We act as a compatibility layer by doing a reimplementation of the system libraries.
We're also an emulator since the GPU has to be fully emulated. The GPU is the only portion of the PS4's hardware that is emulated.


Esto lo borraron ya de su github hace tiempo. Es parcialmente un emulador, y lo más pesado no lo emula, que es la arquitectura del procesador, por ahí si se podría decir es un "emulador", pero no es un emulador completamente hablando, de hecho antes ya dije que habría que emular otros chips como el del audio o el kraken, pero serían porciones ínfimas y que no penalizarían al rendimiento apenas.

Si nos vamos a la wiki de emulación
Imagen
https://emulation.gametechwiki.com/index.php/ShadPS4

Principalmente actúa como una capa de compatibilidad, por eso el rendimiento es tan bueno y se ha avanzado tan rápido.

Imagen



El GitHub parece explicar nada sobre como funciona ShadPS4 salvo lo que dices, que pone EMULADOR, EMULADOR, EMULADOR. Solo sirve como repositorio y para la descarga del público generalista, de hecho sería bueno encontrar a esta gente hablado de como funciona realmente, cuanto tiene de emulador y cuanto de intérprete.

Extraído del discord oficial de uno de sus colaboradores
https://github.com/kalaposfos13/shadPS4/tree/gr2-hacks
Imagen
Imagen

Bueno, no me importa hacerlo. La PS4 sí que tiene llamadas al sistema, pero eso es prácticamente lo único que has acertado. shadPS4 es un emulador HLE (emulación de alto nivel). Esto significa que no estamos emulando el sistema en su nivel más bajo, sino que estamos emulando las bibliotecas del sistema con las que interactúan los juegos, y esa interfaz está compuesta por llamadas a funciones en C (SysV ABI). Ni siquiera emulamos el núcleo en absoluto, por lo que las llamadas al sistema simplemente se transfieren a la plataforma anfitriona en lugar de ser gestionadas por el emulador, lo cual no supone ningún problema debido a que ningún juego realiza llamadas al sistema directamente. En este sentido, shadPS4 es más una capa de compatibilidad que un emulador.



Vulkan es una API gráfica para comunicarse con la GPU, como ya se ha señalado; sin embargo, la PS4 no la utiliza, sino que ejecuta un controlador propietario llamado Gnm. Esto significa que tenemos que traducir las llamadas a Gnm a algo que los ordenadores puedan entender, que en este caso es Vulkan. Esta parte del emulador se acerca mucho más a la emulación propiamente dicha que la parte dedicada a la CPU y a las bibliotecas del sistema, y aunque ocupa una parte significativa del emulador, no lo constituye en su totalidad. Esto significa que no es necesario entender Vulkan ni siquiera la programación de la GPU para trabajar en otras partes de shadPS4, categoría en la que yo también me incluyo. A día de hoy, toda la estructura básica ya está lista, por lo que las dos partes principales en las que se está trabajando son la GPU y las reimplementaciones de las bibliotecas del sistema.



Se le tiende a llamar emulador porque es lo que hemos tenido hasta ahora, y es el término familiar, hasta yo lo usé para los hilos, y curioso que en el github no diga nada de capa de compatibilidad ¿Qué emula algunas cosas? Pues ya dije que si puede que haya que emular algunas, como los chips dedicados de compresión y audio que tienen supongo su propia arquitectura y quizás alguna cosilla más, pero no es un emulador al 100%, y ni diría que 70%


Estos "emuladores" de PS5 son lo mismo que shadPS4, les podemos seguir llamando emuladores por costumbrismo, yo hasta lo prefiero, pero no son puramente emuladores, si es cierto que emulan algunas cosas a alto nivel, pero por lo general actúan más como un intérprete, así que tenerlos solo como emuladores tampoco es correcto porque son híbridos.

Esto viene a coalición de que el usuario @fluzoo no cree que un emulador de estos pueda performar tan bien en juegos como GTA VI, y que mejor nos esperemos a RDR3 para cuando funcione bien, vamos, 10 años más si es que el siguiente juego es otro RDR, que creo que no, algo que suele ocurrir con la emulación a bajo nivel, que es a la que solíamos estar acostumbrados, pero como se ha visto, Bloodborne corre perfectamente en hardware de hace más de una década, así que perfectamente a las pocas semanas, GTA VI podría correr perfectamente en este emulador, porque no es un emulador al uso simplemente y por eso el avance es tan acelerado.


Volviendo a SharpEMU, esto es de sus desarrolladores/contribuidores, del discord
Imagen
Scarecrow (lleva el discord official)
Afirma ofrecer una interfaz, pero ¿qué valor tiene una interfaz si no permite ejecutar juegos? Además, hay gente que solo quiere usar Al para poder ejecutar su juego favorito. Eso no es emulación, es una «capa de compatibilidad para el juego X».

Scarecrow
De momento no estamos trabajando en juegos concretos. Nos centramos en las capas de compatibilidad que faltan. Personalmente, me centro principalmente en Demon's Souls.
Imagen
Sí, los avances en la emulación de PS4 y PS5 han sido más rápidos porque comparten una arquitectura similar, la x86-64, por lo que, en realidad, lo único que tenemos que hacer es escribir capas de traducción de alto nivel.

Aquí tienes un nuevo "emulador resurgido CraziiEmu de PS5 que usa la base del SharpEMU
https://github.com/craze1pirate/craziiEmu/
Imagen

Y bueno, a pesar de que se llama CraziiEMU dice que es una capa de compatibilidad.
@katatsumuri me parece muy bien todo el tocho, pero es un emulador puro y duro. Un emmulador "emula" el comportamiento al no tener código fuente. Si tuviéramos código fuente podríamos trabajar con las librerías nativas y tener el OS completo y estaríamos ahora mismo jugando a todo el catálogo de PS5.

Cuando se vayan descubriendo mas exploit a nivel de kernel y se puede leer mas librerías desencriptadas, irá avanzando mucho mas rápido los emuladores. Mientras tanto no queda otra que ir trabajando muchas veces en base a fallo y error.

Esto es emulación pura y dura. No hay mas.
djlogan83 escribió:@katatsumuri me parece muy bien todo el tocho, pero es un emulador puro y duro. Un emmulador "emula" el comportamiento al no tener código fuente. Si tuviéramos código fuente podríamos trabajar con las librerías nativas y tener el OS completo y estaríamos ahora mismo jugando a todo el catálogo de PS5.

Cuando se vayan descubriendo mas exploit a nivel de kernel y se puede leer mas librerías desencriptadas, irá avanzando mucho mas rápido los emuladores. Mientras tanto no queda otra que ir trabajando muchas veces en base a fallo y error.

Esto es emulación pura y dura. No hay mas.

No estoy de acuerdo. Tiene unas partes que si van a ser emulación como el chip que se encarga de la descompresión en tiempo real o el audio (por lo que he leído en este hilo), pero el gordo de jugar a ps4/5 es mediante capas de compatibilidad que traducen instrucción para ser interpretadas por los drivers de los distintos componentes.
En una emulación has de recrear un chip físico que no existe en tu PC además de traducir sus instrucciones, aquí esa parte de recreación ya no se da y queda solo la parte de la interpretación de las llamadas de la librerías de PS4 y 5 para poder ser ejecutadas por las librerías y el SO de un PC estándar.

El compañero creo que lo ha dejado bien claro en su tocho, los propios desarrolladores, que digo que algo entenderán, lo llaman capa de compatibilidad.... será por algo....
DeathWalk escribió:
djlogan83 escribió:@katatsumuri me parece muy bien todo el tocho, pero es un emulador puro y duro. Un emmulador "emula" el comportamiento al no tener código fuente. Si tuviéramos código fuente podríamos trabajar con las librerías nativas y tener el OS completo y estaríamos ahora mismo jugando a todo el catálogo de PS5.

Cuando se vayan descubriendo mas exploit a nivel de kernel y se puede leer mas librerías desencriptadas, irá avanzando mucho mas rápido los emuladores. Mientras tanto no queda otra que ir trabajando muchas veces en base a fallo y error.

Esto es emulación pura y dura. No hay mas.

No estoy de acuerdo. Tiene unas partes que si van a ser emulación como el chip que se encarga de la descompresión en tiempo real o el audio (por lo que he leído en este hilo), pero el gordo de jugar a ps4/5 es mediante capas de compatibilidad que traducen instrucción para ser interpretadas por los drivers de los distintos componentes.
En una emulación has de recrear un chip físico que no existe en tu PC además de traducir sus instrucciones, aquí esa parte de recreación ya no se da y queda solo la parte de la interpretación de las llamadas de la librerías de PS4 y 5 para poder ser ejecutadas por las librerías y el SO de un PC estándar.

El compañero creo que lo ha dejado bien claro en su tocho, los propios desarrolladores, que digo que algo entenderán, lo llaman capa de compatibilidad.... será por algo....

Si, eso no lo discuto nada de lo que ha dicho el compañero, pero al final eso se traduce en emulación ya que en el momento que no tienes acceso a las librerias, tienes que emularlas ya que no te queda otra. Las capas de compatibilidad es lo que he dicho en mi comentario del otro hilo. Básicamente es traducir un lenguaje/arquitectura a otro. Pero si no se tienen las librerías y funciones, no te queda otra que hacerlas a mano leyendo SYSCALLS.

Por lo tanto es emulación pura y dura.

Si se tuviera todo el código fuente, en ese video se vería GTA V corriendo a la perfección. Al no tener la abstracción de cada función, tenemos que intentar interpretarlas e imaginar el código que contiene y por lo tanto imaginar y desarrollarlas en base a los errores que nos devuelve el juego cuando intenta arrancar.

Para entender, el juego ahora mismo puede estar devolviendo un error que falta una Class ObjectInterception, por lo tanto hay que crear esa clase, y volver a ejecutar. Como ya encuentra esa clase, nos devolverá otro error, y entonces habrá que ir codeando en base a eso.
Eso es lo que es emular el comportamiento del OS de PS5.

Que por cierto, el chip no lo tienes que recrear, lo que tienes que recrear es literalmente el OS, y de ahí las SYSCALLS . Luego se interpreta en base a esas llamadas y se crean las funciones en C o en el lenguaje que se quiera usar en el emulador. Pero vamos, que no deja de "emularse" el comportamiento de las funciones que no tenemos. No hay mas, y como le he dicho al compi, el propio emulador se llama SharpEMU.
Las capas de compatibilidad son cosas totalmente diferente.
Al parecer Kyty ya está emulando los primeros juegos 3D, entre ellos he visto que los remasters de klonoa son completamente jugables.
Oooh [tadoramo] alucinando con la velocidad que lleva esto. Solo pido Astrobot ;)
Chevi escribió:Oooh [tadoramo] alucinando con la velocidad que lleva esto. Solo pido Astrobot ;)



Lo bueno es que por lo que han comentado se van a centrar en los exclusivos que realmente no son tantos, así que la cosa avanzara muy rápido, esta claro que la arquitectura de una Ps5 sea en esencia un Pc ayuda y mucho para estas cosas
Por cierto siguen siendo emuladores mirando código
Aunque la CPU ejecute el código o se traduzca estáticamente a C++, la mayor parte del hardware se sigue emulando por software.
El Sistema Operativo se recrea desde cero se emula cada entrada al desconocer su funcionamiento con respecto a Wine donde se conocen las entradas de windows y estan documentadas para no emularlas.
Recorren emulación HLE pura y dura.
https://github.com/sharpemu/sharpemu/tr ... arpEmu.HLE
Solo hay que ver el código fuente
La memoria no corre nativamente deben de reinterpretar la lógica del kernel original para que encaje a la fuerza en la memoria de Windows o Linux o mac o otro sistema operativo que quisieras ejecutarlo.
La sincronización de los hilos tiene emularse donde el sistema operativo lo maneja de una manera o lógica a lo mejor esa misma manera en windows , linux o mac no le gusta y provoca cuelgues inesperados .
Muchas veces se tiene que simular los registros vectoriales y ya no es una ejecución directa y toca emulación (software) equivalente que le diga a windows , linux o mac al CPU qué hacer.
Ya solo es cuestión de tiempo


26 respuestas