RPCS3
RPCS3 es un emulador y depurador de Sony PlayStation 3 de código abierto escrito en C ++ para Windows y Linux. El emulador ha estado en desarrollo desde principios de 2011 y actualmente es compatible con los modernos renderizadores DirectX 12, Vulkan y OpenGL. El emulador es capaz de arrancar y jugar una buena cantidad de juegos comerciales y muestras de SDK de PlayStation 3. Muchos más títulos también se están convirtiendo en jugables con el desarrollo futuro de los contribuyentes.
Requisitos del sistema
Los requisitos del sistema para ejecutar el emulador no se han finalizado y están sujetos a cambios durante el desarrollo. Sin embargo, tenemos un conjunto de requisitos mínimos del sistema que deben cumplirse para que el emulador funcione correctamente en cualquier sistema. Tenga en cuenta que estas son las especificaciones mínimas del sistema y el emulador no funcionará de lo contrario.
Requerimientos mínimos
Windows 7 de 64 bits o superior / Linux de 64 bits.
Un procesador x64 moderno con soporte SSSE3.
Una GPU que admite OpenGL 4.3 o superior.
Mínimo: 4 GB de RAM. Recomendado: 8 GB de RAM o superior.
Microsoft Visual C ++ 2015 redistribuible.
Tiempo de ejecución del usuario final de Microsoft DirectX.
PlayStation 3 PS3UPDAT.PUP archivo de software del sistema.
PlayStation 3 juegos auto-descargados o aplicaciones.
Los requisitos de almacenamiento se ampliarán dependiendo del software instalado de PlayStation 3.
No apoyamos la piratería. Todos los juegos de PlayStation 3 deberían ser autodumping.
Actualización de RPCS3
Para usuarios de Windows, debe arrastrar y soltar el archivo ejecutable actualizado al directorio raíz de su carpeta RPCS3. No es necesario desplazarse sobre otros archivos y puede sobrescribir la configuración del usuario. En algunos casos, la carpeta GUIconfigs puede necesitar ser eliminada y regenerada a medida que se agregan nuevas características a la interfaz de usuario.
Instalación de los archivos de firmware de PlayStation 3
Debido a razones legales, no podemos distribuir los archivos oficiales de firmware de PlayStation 3. Debe descargar el último archivo de actualización de firmware de PlayStation 3 de PlayStation.com para su uso con RPCS3. Una vez descargado, debe instalar el firmware utilizando el instalador de firmware incorporado en RPCS3 que se encuentra en Archivo> Instalar Firmware.
Selección del módulo de firmware
De forma predeterminada, los módulos de firmware se seleccionan automáticamente según el juego de PlayStation 3 o el software cargado. Todavía puede anular la selección automática de módulos y elegir los módulos de firmware que desea utilizar manualmente, pero no se recomienda hacerlo a menos que sepa lo que está haciendo.
Carga automáticamente las bibliotecas necesarias: Carga automáticamente todos los módulos necesarios en el juego ejecutable.
Cargar manualmente bibliotecas seleccionadas: Permite al usuario cargar manualmente módulos de firmware seleccionados.
Cargar bibliotecas automáticas y manuales: Carga automáticamente todos los módulos necesarios y módulos de firmware seleccionados manualmente al mismo tiempo.
Cargar liblv2.sprx solamente: carga los módulos de forma dinámica, más cerca de lo que haría una PlayStation 3 real. Es posible que algunos juegos no funcionen correctamente con esta opción.
Administrar datos guardados
• Los archivos de almacenamiento de PlayStation 3 se pueden administrar en: \ dev_hdd0 \ home \ 00000001 \ savedata \
• Tenga en cuenta que los datos guardados se almacenan en carpetas que corresponden al ID de su juego.
Nota: Si está en linux, las carpetas RPCS3 se encuentran en: ~ / .config / rpcs3 /
Gestión de juegos y software
Debido a razones legales, los juegos y el software de PlayStation 3 no se pueden distribuir en línea y deben ser descargados de su propia consola PlayStation 3 (tanto para juegos Blu-ray como PSN) o desde su ordenador mediante una unidad Blu-ray compatible (sólo juegos de disco ).
El diseño típico de un directorio raíz del juego Blu-ray Disc :
• Carpeta PS3_GAME (obligatoria), PS3_DISC.sfb (necesario), carpeta PS3_UPDATE (no necesaria)
El diseño típico del directorio raíz del juego PlayStation Network :
• Carpeta TROPDIR, carpeta USRDIR, ICON0.png, PARAM.sfo, etc.
Los juegos de Blu-ray y PlayStation Network deben colocarse en una sola carpeta con sus respectivos archivos y el nombre de la carpeta debe corresponder al ID del juego. Si no está seguro de cuál es el ID de la región del juego que ha perdido, puede encontrar su ID de región en el borde lateral inferior de su caso de juego. Si ya no está en posesión de su caso de juego o su juego es un juego de PlayStation Network, puede hacer una búsqueda en Internet para "Your Game Name Here + Region ID" . Tenga en cuenta que es muy importante que utilice el ID de región correcto.
• Las ID de juego que comienzan con un B son juegos de discos Blu-Ray
• Las ID de juego que empiezan con un N son juegos de PlayStation Network
Al trabajar con ID de región de juego real, el ID de región del juego se verá similar a esto:
• Por ejemplo: BLUS30443 es una copia de Blu-Ray Disc de los Estados Unidos de Demon's Souls
• Por ejemplo: NPEB02436 es una copia de PlayStation Network de Europa de Persona 5
Instalación de juegos y software
• Los archivos .pkg deben extraerse utilizando el instalador de paquetes incorporado de RPCS3 que se encuentra en Archivo> Instalar .pkg
• Los archivos .pkg se instalarán automáticamente en: \ dev_hdd0 \ game \
• Los datos del juego Blu-ray Disc se pueden colocar en \ dev_hdd0 \ disk \ o en cualquier lugar excepto para \ dev_hdd0 \ game \ y se pueden iniciar desde File> Boot Game si no están presentes en la lista de juegos
• Los datos del juego PlayStation Network deben colocarse en: \ dev_hdd0 \ game \
• Los archivos .rap de PlayStation Network deben colocarse en: \ dev_hdd0 \ home \ 00000001 \ exdata \
Nota: Si está en linux, las carpetas RPCS3 se encuentran en: ~ / .config / rpcs3 /
Instalación de juegos y actualizaciones de software
Las actualizaciones de juegos y software se manejan de la misma manera que los archivos .pkg de PlayStation Network. Los. pkg debe instalarse utilizando el instalador de paquetes incorporado en RPCS3 que se encuentra en Archivo> Instalar .pkg La actualización se colocará en la carpeta de juego o software que corresponda al ID de región correcto. Tenga en cuenta que las actualizaciones de juegos y software deben ser la misma región para poder trabajar. La mezcla cruzada de juegos o regiones de software puede crear daños irreversibles al juego o al software.
Informe de progreso: julio de 2018
Este mes se han producido importantes mejoras en el recompilador LLVM de SPU y la emulación RSX, así como en la implementación de nuevas características como un administrador de usuarios y un diseño de interfaz de usuario actualizado, entre muchas otras mejoras y adiciones.
En las estadísticas de Git, se han agregado 8 047 líneas de código y 4 671 eliminadas mediante 135 confirmaciones por 12 autores.
Principales mejoras de RPCS3
Recompilación asincrónica de Shader ( # 4876 )
Este mes vio la implementación de la recompilación del sombreador Async por kd-11.
Mejoras en el Descompilador y Analizador del Programa Vertex ( # 4844 )
Si bien el compilador shading asincrónico fue sin duda la mejora más notable que kd hizo este mes, no fue su primer lote ni su único lote importante de cambios. En la primera semana de julio, realizó importantes mejoras en el descompilador y el analizador del programa Vértice, lo que dio como resultado sombreadores más compactos y una disminución en el número total de sombreadores generados.
Este cambio mejoró enormemente los títulos en los que la compilación de sombreadores era frecuente y era el cuello de botella, o en los que los sombreados de sombreado se volaban de forma poco realista. Muchos problemas indirectos fueron causados por estos, como los juegos que se bloquean debido a que se estancaron durante demasiado tiempo, o el parpadeo de la pantalla debido a la gran cantidad de sombreadores en caché. Con esto, no solo se acortan los tiempos de carga del caché, sino también los tiempos de compilación, lo que, en combinación con el compilador de sombreado asíncrono que siguió a todo esto, significa que los sombreadores representan un problema mucho menor para el usuario final que antes.
Estos cambios también significaron que los juegos que solían estar paralizados por problemas de compilación de sombreadores ahora salen mucho mejor, con algunas categorías incluso cambiantes:
¡Watch Dogs pasó de Intro a Ingame!
|
|
TMNT: Tortugas a tiempo Re-Shelled mejoró dramáticamente! |
Y por último pero no menos importante, estas mejoras obtuvieron Sonic: Unleashed, Bleach: Soul Resurrección, Resistance 2 y 3 (con 2 regresos corregidos) y Ratchet & Clank: ¡Un juego de crack in time!
Mejoras SPU LLVM ( # 4816 )
Este mes, Nekotekina nos trajo algunas mejoras significativas en el recompilador de LLVM SPU. Como mencionó en su primera publicación de Patreon , la velocidad de compilación era (y es relativamente inmóvil) un problema importante. Para aliviar esto hasta cierto punto, entre las muchas simplificaciones de código, refactores, arreglos, detección de patrones y mejoras generales del analizador, también se cambió al LLVM 7 aún no lanzado, con modificaciones adicionales en el tenedor local de RPCS3 en la parte superior. Estos no solo produjeron mejoras de rendimiento, sino que también lograron aumentar la precisión de SPU LLVM, por lo que títulos como F1 Race Stars, Dragon Ball Z: Burst Limit y SoulCalibur V finalmente lo respaldan.
Administrador de usuarios ( # 4300 )
Ya en marzo, mpm11011 abrió una solicitud de extracción con la idea de implementar un administrador de usuarios en RPCS3. Esta funcionalidad está presente en PlayStation 3 y permite que múltiples usuarios administren sus trofeos, guarden datos y los juegos de PSN por separado en el mismo dispositivo. RPCS3 tenía soporte para trofeos y datos guardados, pero esto se limitaba a un solo usuario "00000001". Después de 4 meses de discusión, con contribuciones de Megamouse, el administrador de usuarios finalmente se fusionó.
Con este nuevo administrador de usuarios, que se puede encontrar en Administrar -> Cuentas de usuario , los usuarios no solo pueden ver todas las cuentas existentes y sus respectivos ID, sino también crear, renombrar, eliminar y alternar entre usuarios activos cuando no están dentro del juego. El administrador de usuarios permite a los usuarios:
- segrega los juegos guardados para diferentes usuarios
- desbloquear trofeos para diferentes usuarios
- tener juegos de PSN registrados para diferentes usuarios
Dado que RPCS3 no es compatible con PSN, y probablemente tampoco en el futuro previsible, esta es una aproximación bastante cercana a la funcionalidad multiusuario de una PS3 real y un paso adelante en usabilidad para el emulador. Esto permitirá que la misma instalación del emulador sea utilizada por personas completamente separadas sin arriesgar sus ahorros. Entonces, si compartes una PC con hermanos u otros miembros de la familia que quieren jugar, ¡esta es una gran noticia para ti!
Además, para algunos juegos como Terraria, el modo multijugador de pantalla dividida local requiere que diferentes usuarios inicien sesión en el mismo sistema. Con la implementación del administrador de usuarios, ahora es posible emular correctamente este modo de juego. Lamentablemente, a pesar de que el administrador de usuarios funciona a la perfección, los problemas gráficos aún impiden que este modo de juego se pueda reproducir:
Nuevo diseño de GUI ( # 4841 )
¡Este mes @DAGINATSUKO y Megamouse trabajaron juntos para revisar la GUI RPCS3 para que se vea aún mejor que antes! La hoja de estilo codificada predeterminada está reemplazada por la propia hoja de estilo de DAGINATSUKO. Esta actualización trae iconos renovados para la barra de herramientas, le da a los usuarios la capacidad de dar estilo a los elementos de la tabla, así como a la cuadrícula del juego al agregar el objeto llamado "game_grid". Junto con estas adiciones, esta actualización de la GUI solucionó ciertos problemas, como los iconos del juego que se resaltaban innecesariamente cuando se seleccionaba su fila, y una inexactitud en el método de repintado de iconos que causaba que un subpíxel se pintara con el color incorrecto.
Además, para reducir la complejidad de las hojas de estilo, se eliminaron las funciones redundantes, como la posibilidad de volver a pintar la barra de herramientas y sus iconos en el menú. Para el usuario que prefirió el aspecto anterior, no se preocupe, el estilo anterior sigue estando disponible en la forma de la hoja de estilo "Clásico (Brillante)".
Eche un vistazo a estas capturas de pantalla comparativas entre los diseños antiguos y nuevos:
Juegos
Sonic Unleashed
Gracias a "Program Fixes" por kd-11 detallado arriba, Sonic Unleashed, un juego muy querido de la franquicia de Sonic, ¡ahora entra en juego! Si bien requiere una CPU capaz de funcionar, RPCS3 puede superar el rendimiento de la consola física en varios escenarios con gráficos casi impecables en 4K. Para ver qué tan bien funciona, mira este video:
Ratchet & Clank Future: una grieta en el tiempo
Una vez más, debido a las mejoras antes mencionadas de kd-11 y "Ugh fix" de isJuhn, ¡este título entra en juego por primera vez! Sin embargo, el juego aún se bloquea después de unos minutos debido a errores de memoria RSX IO.
Resistencia 3
Como se insinuó en el informe del mes anterior, esta exclusiva de AAA Playstation 3 entra en juego con una buena tasa de fotogramas y gráficos. Sin embargo, el juego actualmente falla después del área inicial del tutorial. Mira el rendimiento de Resistance 3 dentro del juego en este video:
Bleach: Soul Resurrección
Este mes, la exclusiva de PlayStation 3, Bleach: Soul Resurrección, se convirtió en totalmente jugable. Gracias a las correcciones de kd-11, los problemas de textura restantes se corrigieron y ahora este título se ejecuta con buen rendimiento y gráficos.
SSX
¡Esta exclusiva consola favorita de los fanáticos ahora está finalmente dentro del juego! Vale la pena señalar, sin embargo, que aún sufre de bajo rendimiento y gráficos rotos en ambos procesadores (con OpenGL en una situación significativamente peor).
Contrato de caballeros
¡Este título exclusivo de la consola ahora es completamente jugable!
MotorStorm: Apocalipsis
Este título exclusivo de PlayStation 3 ahora entra en juego. Sin embargo, este título adolece de bajo rendimiento y pocos problemas gráficos que impidan que sea completamente jugable.
Gundam Crossfire y Dynasty Warriors: Gundam Reborn
Este mes también vieron 2 entradas de la serie de Gundam alcanzando dentro del juego: Mobile Suit Gundam: Crossfire, una exclusiva de PlayStation 3, y Dynasty Warriors: Gundam Reborn, una consola exclusiva. Los únicos problemas pendientes son que Gundam Reborn es propenso a fallas, y Gundam Crossfire sufre de baja FPS debido a que requiere el intérprete de PPU (rápido) para funcionar, por lo que ninguno de ellos es reproducible por el momento.
PixelJunk SideScroller
En el frente indie, este pequeño y divertido título exclusivo de PlayStation 3 ahora entra dentro del juego. Si bien este juego tiene una performance estable en el juego, el menú sufre fallas gráficas que evitan que sea legible.
Fondo
Tartamudeo de compilación de Shader no es nada nuevo para la mayoría de los usuarios de emuladores, especialmente en RPCS3. Sin embargo, vale la pena aclarar algunos conceptos erróneos que giran en torno a cómo funcionan los sombreadores RPCS3. Trataré de repasar rápidamente la historia de la compilación de sombreadores en RPCS3 y, con suerte, explicaré por qué apareció el tartamudeo de compilación de sombreadores y por qué algunas personas creen que RPCS3 no tenía sombreadores antes.
Complejidad de Shader y obtención de vértices personalizados
A principios de 2017, me embarqué en una tarea para eliminar el costoso paso de preprocesamiento de vértices desde el lado de la CPU de RPCS3. Básicamente, esto significaba implementar todos los tipos de vértices personalizados y técnicas de lectura de vértices en el sombreador de vértices y proporcionar solo la vista de memoria en bruto que vería el hardware ps3. Este rendimiento de RPCS3 ha mejorado mucho, más de diez veces en algunas aplicaciones. Este cambio es lo que hace que RPCS3 sea utilizable para jugar juegos comerciales reales con tasas de fotogramas reproducibles sin necesidad del sistema HEDT. Sin embargo, la nueva técnica de búsqueda aumentó el tamaño del sombreador de vértices y agregó una función compleja para extraer datos de vértices del bloque de memoria. Esto hizo que los controladores de gráficos llevaran mucho tiempo para vincular los programas, incluso sin optimizaciones, probablemente debido al uso de indexación vectorial, bloques de interruptores y bucles con salidas dinámicas. También se necesitaron operaciones adicionales que incluyeron cambios de bits y enmascaramiento para decodificar el bloque de disposición de vértices. El código se ejecuta muy rápido, pero el paso de enlace es muy lento. Ya existía un sistema de caché de sombreado y si ejecutó un área por primera vez, hubo ligeros errores de microscopía que algunos usuarios no notaron; es esta tartamudez que empeoró mucho. La solución a esto: precarga los sombreadores para que no necesites compilarlos la próxima vez. Esto lleva a la infame pantalla "Cargando objeto de canalización ..." y la notificación "Compilando sombreadores ...".
Desafíos
Existen varios desafíos para abordar los sombreadores RSX. Primero, el RSX no es una arquitectura unificada como la mayoría de los programadores están acostumbrados a hoy. Tiene tuberías de vértices y fragmentos separadas, ambas con su propia ISA separada. También son muy limitados y los programas más grandes o más complejos pueden resultar en binarios muy desordenados. Uno de los mayores problemas es que el bytecode no contiene toda la información necesaria para ejecutar el programa, la configuración adicional se configura a través de registros a medida que se transfieren las llamadas al sorteo. Un buen ejemplo es que la instrucción TEX no diferencia entre los tipos de textura, pero existe un registro de configuración de texturas que permite usar el mismo programa para leer texturas 1D, 2D, 3D o CUBE, así como sus variantes de comparación de sombras. Esto significa que solo puede conocer el sombreador generado una vez que se ha configurado el registro de texturas. Hay otros ejemplos de cosas como estas que hacen que sea necesario que el juego configure el entorno del programa antes de que el programa en sí sea compilable.
Orígenes
Cualquier persona que alguna vez haya analizado la canalización de generación del programa RPCS3 podría haber notado que los descompiladores del programa están separados en clase de programa y en clase de subproceso decompilador. Esto se debe a que la descompilación técnicamente asincrónica estaba en RPCS3 desde el principio, pero probablemente nunca funcionó correctamente y terminó siendo efectivamente sincrónica (ver https://code.google.com/archive/p/rpcs3/source/default/source para RPCS3 original) código de 2011 a 2013). El objetivo era volver a trabajar la forma en que los programas se decodifican y recompilan de forma asincrónica. Antes de que todo esto sea posible, el decodificador debería ser muy eficiente para reducir la carga de la CPU, de lo contrario, la descomposición infinita de los sombreadores causaría un parpadeo permanente y fallas en los gráficos. Esta es la razón por la que me esfuerzo en limpiar los descompiladores de programas de antemano para minimizar los sombreadores únicos generados al reutilizar la mayor cantidad posible de códigos emitidos.
Implementación
Una vez que el analizador de programa de vértices se mejoró hasta un punto en el que la mayoría de los títulos podían ejecutarse con sombreadores generados en 1k, llegó el momento de desacoplar por completo los pasos de descompilación, recompilación y vinculación del subproceso principal del renderizador. Esto fue bastante sencillo de configurar para Vulkan, que está intrínsecamente construido con multihilo en mente, y una pequeña molestia en OpenGL donde el multihilo es más difícil de configurar debido a los espacios de contexto. Se esperaba que persistieran las fallas en los gráficos hasta que todos los programas estuvieran preparados, pero incluso con una implementación escueta, me di cuenta de que la mayoría de los sombreadores necesarios se compilarían correctamente después de solo unos segundos. Esto hizo que la implementación fuera utilizable en su etapa incompleta, incluso sin la ayuda de sombreadores de aproximación o intérpretes. Esta fue una muy buena noticia y permitió que esta característica se habilitara por defecto ya que la mayoría de los usuarios prefieren los gráficos faltantes por un segundo o dos en lugar de congelar por completo el emulador por un minuto antes de compilar todos los sombreadores. Esto es particularmente efectivo ya que no todos los sombreadores compilados afectan los elementos que son visibles para el usuario.
Resultados
Los resultados son sorprendentes incluso para mí. La velocidad a la que se resuelven las fallas gráficas es muy impresionante en las máquinas capaces.
Los tiempos de carga y el tartamudeo se reducen significativamente cuando no hay una memoria caché precompilada presente
Conclusión
Si bien el compilador mejora en gran medida la calidad de vida al usar el emulador, está lejos de ser perfecto. Las CPU del extremo inferior pueden perder algo de rendimiento cuando el descompilador está activo e incluso enganchar y tartamudear un poco de vez en cuando. No es tan malo como antes, pero sigue siendo un problema. También está el problema de los gráficos faltantes. Esto podría mejorarse con intérpretes de aproximación para proporcionar un programa de marcador de posición para ayudar en la representación.
Si bien queda mucho trabajo por hacer, es de esperar que estas mejoras ayuden a muchos usuarios y admiradores a ejecutar aplicaciones en el emulador.