#37 Creo que si comparto un tweet del dev donde está jugando en la consola, es porque el proyecto está destinado a que el juego se juegue en la consola, no en un emulador.
También que la beta dejada por Rockstar era injugable en una Dreamcast al uso porque corrían en consolas modificadas con 32MB de RAM, pero han conseguido que funcione con los 16MB de las consolas sin modificar y ese es el logro.
Chicos, se agradece que escribáis tanto, pero por favor, leed un poquito ):
El port de GTA 3 para la Sega Dreamcast ha avanzado a un ritmo increíble. Ha sido asombroso ver a toda la comunidad de DC unirse para abordar este proyecto "imposible". Aquí está funcionando en una Dreamcast estándar, sin necesidad de la modificación de hardware de 32MB de RAM, solo unas pocas semanas después de comenzar el desarrollo.
Ahora que finalmente tuve tiempo para sentarme, construir la base de código y analizar lo que creo que es el camino crítico para el rendimiento, hablemos de algunos aspectos técnicos y de los pasos futuros que creo que se pueden tomar para mejorar aún más el rendimiento.
Primero, quiero que todos sepan que este NO es un port de la versión de PS2. Este es un port de la versión de PC, que tiene contenido adicional, mayor distancia de dibujado, texturas mejoradas y otras cosas que han aumentado el desafío aquí. Si la versión de DC tendrá estas adiciones o no, aún está por verse, pero nos estamos encontrando con muchos problemas que la PS2 no tenía que enfrentar (como estos enormes archivos de guardado de repetición de PC que no caben en una Unidad de Memoria Visual).
En segundo lugar, hablemos de lo que está y no está optimizado actualmente, porque es absolutamente vital que el hardware de la DC se utilice completamente aquí para el rendimiento y lograr un conteo de polígonos competitivo.
A diferencia de los dispositivos modernos, donde toda la canalización gráfica es manejada por la GPU, tanto la PS2 como la Dreamcast eran responsables de transformar y hacer cálculos de iluminación para cada vértice ANTES de enviarlos a la GPU. La PS2 tenía un coprocesador vectorial para hacer esto, mientras que la Dreamcast tenía algunas instrucciones SIMD y de matemáticas rápidas extremadamente importantes en su CPU para hacer estos cálculos.
Hasta literalmente hace unas pocas horas (no mostrado en este metraje), el SH4 de la Dreamcast estaba haciendo el 100% de estas operaciones en código C y C++ lento, lo cual es absolutamente subóptimo y está sobrecargando inmediatamente su CPU solo con transformar vértices, estrangulando toda la canalización gráfica en la primera etapa de T&L, y también dejando menos tiempo de CPU para manejar otra lógica de juego... esto absolutamente tendrá que ser abordado (y ya ha comenzado a serlo).
Otro problema que está afectando el rendimiento aquí es el hecho de que los modelos están usando triángulos individuales en lugar de tiras de triángulos, que la GPU PVR de la Dreamcast estaba diseñada para manejar mejor. Convertir estos modelos para usar tiras en lugar de triángulos individuales resultará en MUCHAS mejoras para la DC, ya que se pasa de 3N a N+2 vértices por triángulo.
Convertir los modelos a tiras de triángulos 1) reducirá los tiempos de carga, ya que los activos del modelo serán más pequeños 2) reducirá la cantidad de memoria de video requerida para mantener estos vértices en la GPU 3) reducirá la cantidad de datos que deben transferirse de la CPU a la GPU y 4) nos devolverá una gran cantidad de tiempo de CPU, ya que el SH4 estará menos sobrecargado transformando vértices redundantes.
En resumen: Esto sigue siendo EXTREMADAMENTE subóptimo en términos de utilizar completamente el potencial gráfico de la Dreamcast. Todavía hay MUCHO que se puede hacer para mejorar tanto el rendimiento como el conteo de polígonos, así que manténganse atentos.
Finalmente, un gran respeto y amor para @poiitidis, por hacer un trabajo increíble liderando este proyecto, y para @Frogbull55, Esppiral, y todos los demás que nos están ayudando a superar a la PS2 haciendo esto posible.