Orbital, el emulador de PS4, una recolpilación

El emulador más avanzado, estable, seguro y eficiente de PS4 para ordenadores Windows y Mac se llama Orbital, y de momento sigue en fase de desarrollo.

Un emulador es un sistema muy complejo que tiene que afrontar varias fases antes de llegar a funcionar correctamente.

No solo es necesario desarrollar la base de software sobre la que funcionará, sino que además hay que cargar todos los controladores necesarios y llevar a cabo un proceso de optimización que en algunos casos puede llegar a ser casi eterno. Para entender mejor esta realidad basta ver la situación en la que se encuentra RPCS3, un emulador centrado en PS3 que todavía afronta un desarrollo continuado que ayuda a mejorar su rendimiento gradualmente.

El proyecto inició en octubre de 2017 de la mano de Alexandro Sanchez (quien por cierto ya nos ha regalado Nucleus, un emulador de PS3) y durante estos dos años ha compartido con los fanáticos continuas actualizaciones de su sistema.

Según ha declarado su desarrollador en varias oportunidades, Orbital toma como fuente una virtualización de sistema (y no un emulador en sí), razón por la cual el resultado obtenido tanto en la ejecución como en la proyección del aparato gráfico es casi idéntico al del sistema original de la consola de Sony.

También debemos tener en cuenta que un emulador de juegos actúa como capa añadida que se ocupa de realizar una gran cantidad de tareas, lo que significa que se requiere de un equipo mucho más potente en comparación con el hardware original sobre el que corrían los juegos emulados. De nuevo el RPCS3 es un buen ejemplo, ya que a pesar de que mueve juegos de una consola lanzada en 2006 tiene unos requisitos recomendados propios de un PC de gama alta de 2014: CPU Core 4000 de cuatro núcleos, 8 GB de RAM y tarjeta gráfica Radeon HD serie 7700 o GTX 650.

Orbital se basa en la ” virtualización acelerada por hardware, no en la emulación, por lo que produce un rendimiento casi nativo . En todo caso, podría haber cuellos de botella en el procesamiento de GPU, por ejemplo, debido a UMA, pero [él había estado] trabajando en formas de reducir los gastos generales allí “. Orbital utiliza SPIR-V para la virtualización acelerada por hardware: es un lenguaje de sombreador de bajo nivel que se utiliza en la API de gráficos Vulkan. El programa impulsa la salida gráfica al emular completamente la GPU AMD a través del backend Vulkan y recompilar el código de bytes GCN a SPIR-V.

Las últimas actualizaciones lo hacen compatible con los Dualshock 4 y sus menús avanzan sin ningún tipo de problema a través del modo seguro del sistema.

Requisitos

• Sistema : Windows (7+), Linux (4.4+), macOS (10.10+).
• Procesador : CPU x86-64 con AVX / BMI1 y extensiones de virtualización.
• Memoria : 12 GB de RAM.
• Gráficos : GPU con soporte de software para Vulkan 1.0+.

Estado

El estado actual de Orbital en el arranque de los núcleos descifrados se puede seguir en el rastreador de problemas: se han probado tanto PS4 4.55 como PS4 5.00 . También puede obtener actualizaciones y noticias ocasionales a través de Twitter . Apoye este proyecto en Patreon .

Los planes futuros para el emulador

• Núcleo
El emulador sobrevive a hammer_time .
El emulador sobrevive a la inicialización del controlador.
El emulador sobrevive start_init (inicia el proceso del primer usuario).
• Espacio de usuario
El emulador sobrevive /mini-syscore.elf .
El emulador sobrevive /SceAvControl.elf .
El emulador sobrevive /safemode.elf .
El emulador sobrevive /system/sys/SceSysCore.elf .
Tareas
• Emulador
*Añadiendo soporte Vulkan a QEMU.
• Cargador de arranque.
*Se agregó soporte para imágenes de kernel descifradas.
*Se agregó soporte para imágenes de kernel cifradas.
• Núcleo
Depuración del núcleo con símbolos [1] .
• Hardware
*Emulando la interfaz UART de Aeolia.
*Emulando la interfaz SFlash de Aeolia. (parcial).
*Implementado Liverpool GC / Starsha.
-Implementado IH ringbuffer.
-Procesador de comandos implementado.
-Procesando comandos SAMU (30% completado).
-Vulkan backend para motor GFX (¡requiere más trabajo!).
-Traductor de GCN a SPIRV (¡requiere más trabajo!).
• Emulación de alto nivel.
*SBL ACMgr (0 /? Completado).
*SBL AuthMgr (3/5 completado).
• Virtualización.
*Se agregó la depuración de invitados a HAXM.
*Se agregó soporte AMD MSR a HAXM.
*Se agregaron funciones de CPU requeridas para HAXM.
*Se bextr instrucción bextr a KVM.
*Se bextr instrucción bextr a HAXM.
*API HAXM extendida para anular valores de MSR y hojas de CPUID.
• Herramientas.
*Herramienta de creación de disco duro PS4.
*Compuerta.
-Lanzamiento de la carga útil de 5.00
-Lanzamiento de la carga útil 4.55
-Lanzamiento del exploit 5.00
-Lanzamiento del exploit 4.55

• Optimizaciones
Si bien estos no son parte de la hoja de ruta, son ideas con las que vale la pena experimentar:

– Hipervisor : durante cada evento de salida de VM, se invocan varias funciones para guardar / cargar el estado del huésped / host. Estas funciones dependen en gran medida de las características del host y, por lo tanto, contienen muchas ramificaciones condicionales, y en algunos hipervisores como HAXM, incluso decenas de llamadas de CPUID. Dado que estas características se mantienen constantes, podríamos mejorar el rendimiento compilando JIT dichas funciones para eliminar todo el código condicional y las comprobaciones de características.

-GPU : a veces los controladores envían paquetes INDIRECT_BUFFER e INDIRECT_BUFFER_CONST con tamaño = 1. Los únicos paquetes que tienen un tamaño de 1 byte son los paquetes PM4 tipo 2, lo que significa que podríamos detectar este período de tiempo y omitir la instrucción INDIRECT_BUFFER *, evitando así el desperdicio de recursos al mapear el búfer en la memoria virtual del host.

Será interesante ver cuándo resulta viable emular juegos de PS4, y también qué hardware será necesario para conseguirlo. Los emuladores siempre suelen requerir más CPU que GPU y no creemos que el emulador de PS4 vaya a ser una excepción, así que podemos dar por seguro que será recomendable contar con un procesador de ocho núcleos.

Preguntas más frecuentes

¿Cómo funciona Orbital sin tener claves SAMU?

El descifrado con SAMU se ” emula ” mediante el cifrado de blobs de entrada cifrados y la devolución de blobs descifrados obtenidos previamente de la consola real. No se arrojaron llaves, no se arrojarán llaves. Más importante: no los necesitamos, por lo que este proyecto no está dirigido a SAMU.

Mi volcado del kernel se bloquea poco después de arrancar. ¿Por qué?

Los ELF de kernel generados a partir de volcados de memoria no funcionarán ya que los segmentos grabables podrían haberse modificado a un estado en el que no es posible el arranque. Genere los binarios adecuados sin conexión descifrando segmentos ELF con SAMU en su consola real, no volcando la memoria.

¿Dónde puedo obtener Orbital?

Este proyecto no está listo para usuarios finales. No se proporcionan binarios, por lo que debe compilar cada uno de los tres componentes (BIOS, GRUB, QEMU). Además, configurar el emulador para hacer algo será difícil, ya que necesitará volcar y descifrar todo el sistema de archivos PS4 y sflash, incluido el kernel. Puede encontrar pistas sobre cómo hacer esto en los pocos archivos .sh dispersos en este repositorio. Por supuesto, en el futuro, haré que este emulador sea más fácil de usar.

14 respuestas a «Orbital, el emulador de PS4, una recolpilación»

  1. Final con los requisitos que van a hacer falta para emular un juego de ps4, yo creo que además de que va a necesitar un CPU durísimo va a hacer falta una gráfica muy pero muy potente, ya que la que lleva el ps4 en su versión original está dura, no hablar de la pro, y si comparamos la del PS3 a una GTX 650 que es la que se necesita para emular (ps3) ya pueden ir sacando sus conclusiones.

    1. para nada
      ya las PS4 y la XBONE originales son basicamente computadoras, arquitecturas x86_64 y GCN 1.0 (AMD). el CPU es muy flojo, aun en su momento de salida, y la GPU algo asi como una una HD 7850/R7 260x, las originales. las versiones mas actuales son algo asi como una RX580 pero aflojada dando el redniminto mas o menos de una RX 570

      las dos cosas son muuucho mas faciles de “emular”, que emulacion al final tendra poco, solo las cosas particulares que les hayan hecho, todo lo demas no es mas que uan traduccion, mas qu traduccion, implementacion casi directa, pues se ejecutan operaciones casi todas 100% compatibles con las normales de una PC. lo mas dificil es la parte de software propio, es como hacer una ingenieria inversa limpia y hacer funciones equivalentes. ademas de las coas de proteccion que tenga el sistema.

      por eso ves que basicamente estan metiendolo en una maquina virtual y si mejor miras, vas viendo los requisitos que no son altos para nada, CPU de 2011 para aca (de i3 o mejor) y GPU de 2012 para aca (y medianamente responsable) sirve. si luego van viendo que se necesita mas segun los juegos ya actualizaran

      el probelma de las PS3 y XBOX360 es que la arquitectura del CPU es muuuyyy distinta de los cpus que usamos mas comunes, pues eran arquitecturas PowerPC muy modificadas y con unidades especializadas. Eso ha sido lo dificil de hacer funcionar OK. los gpus son algo asi como una GTX7800GT en la PS3 y una HD2600XT en la xbox360, la segunda GPu se acerca mas a los tipo que tenemos desde 2006

      1. Ojalá y salga pronto para por fin poder jugar al GOW y el uncharted.
        Un emulador que salió muy bien fue el de wii U moviendo perfectamente y con pocos recursos el Zelda.

        1. Con pocos recursos no, el emulador si tiene su merito pero cuando vemos la arquitectura en la que esta basada la wii u y su potencia de graficos vemos que al menos hace falta aproximadamente 10 veces la potencia grafica para moverlo a velocidades decentes ,cemu esta muy mal optimizado ojala se mejore con la implementacion de vulkan, en cuanto a orbital habra que esperar un rato para ver un juego a velocidades decentes

      1. Richard no dije nunca que la cpu de la ps4-xbox one estuvieran duras, todo lo contrario, yo solo dige que a lo mejor se necesitaría una cpu durísima para emularla ya que con respecto a las generaciones anteriores si que hay una gran diferencia de rendimiento, y ya los requisitos para emular ps3 y Xbox 360 son altos conciderando sus especificaciones, aunque ya Maikel me señaló que está gen de consolas no será difícil de emular gracias a su parentesco con el PC.

          1. hacer falta una gráfica muy pero muy potente, ya que la que lleva el ps4 en su versión original está dura, no hablar de la pro extraido de tu comentario

            tus palabras no las mías todos emos dicho barbaridades no hay que ponerse asi.

      2. Es verdad Richard me equivoqué pero tú eres el pro, al igual que Maikel, del blog ,asumo , yo solo soy un aficionado, esto es como un pasatiempo para mí. Y todos emos!!(es broma)jajaja

Responder a Marshmello Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *