Home » EMULADORES » Citra Progress Report 2015

Citra Progress Report 2015

Desde que Citra se dio a conocer en Abril de 2014, nada interesante se mostró hasta finales de ese mismo año. Después de mucho trabajo para hacer correr algo, en 2015 Citra paso de ser un emulador experimental que no podía correr nada, a un emulador experimental que podía correr muchos juegos. Aunque no parezca, Citra ha hecho muchos progresos desde que consiguió correr sus primeros juegos comerciales.

Durante el 2014, Citra era un pequeño proyecto desarrollado por Bunnei y Neobrain. Durante todo este tiempo se intento descubrir como funcionaba la GPU de 3DS para crear un Renderizado por Software preciso y emular el sistema operativo de la 3DS. A pesar de todos las avances orientados a una emulación precisa, aún no funcionaba ningún juego.

El 13 de Diciembre de 2014, Citra había logrado correr The Legend Of Zelda Ocarina Of Time 3D. Este logro había estimulado a los desarrolladores a conseguir funcionar alguna escena en 3D. En los días siguientes, Bunnei se centró en arreglar bugs en la emulación del núcleo e implementar algunas funciones necesarias del sistema operativo. Mientras tanto, Neobrain seguía con la ingeniería a la inversa de la GPU para solucionar algunos problemas que tenia Ocarina Of Time con el Renderizado por Software.

 

 

Al paso de unos días, Citra ya había alcanzado otro logro: su primer renderizado de una escena 3D.

 

 

En las siguientes semanas, nuevos juegos se sumaban junto a Ocarina Of Time: Cave StoryCave Story 3DVVVVVV, Ikachan, Gunman Clive, Super Little Acorns, y Retro City Rampage.

 

 

En los siguientes meses, Bunnei y Lioncash reemplazaron la vieja implementación de la emulación del ARM con una mucho mas rápida y precisa. Ahora era posible correr juegos bajos en gráficos a mas de la mitad de la velocidad en procesadores potentes.

Mientras tanto, Tfarley estuvo un mes entero desarrollando un Renderizado por OpenGL. Como resultado, Ocarina Of Time era capaz de funcionar a una velocidad perfecta:

 

 

Con el paso de los meses, mas juegos conseguían funcionar en Citra: Super Mario 3D Land, Fire Emblem Awakening, The Legend Of Zelda A Link Between Worlds, Mario Kart 7 y muchos más.

 

     

     

     

    

 

En el plazo de unas semanas, los desarrolladores Yuriks y Subv implementaron todo lo necesario para hacer funcionar los videos Moflex (formato de video de 3DS)

 

 

Pero Citra aún tenia un gran problema, su lentitud. Las bajas velocidades era un problema a la hora de probar los juegos. Una mayor velocidad haría esto mucho mas fácil.
El causante del problema era obvio: la emulación de Vertex Shaders. La GPU de la 3DS, a diferencia de otras consolas, soporta nativamente shaders. Teniendo en cuenta que en aquel momento se usaba para la emulación de CPU un Interprete, la solución fue evidente: un Vertex Shader JIT, ya que un Recompilador JIT traería problemas con la emulación de shaders.

Después de varias semanas trabajando en él, las mejoras eran notables. Juegos duros en vértices corrían dos o tres veces mas rápido, incluso Ocarina Of Time lograba correr a velocidad perfecta en muchas áreas.

 

 

A finales de año Citra ya era capaz de correr un amplio catalogo de juegos sin muchos problemas, por lo que se avanzo en implementar técnicas gráficas mas avanzadas, a las cuales aun no se les había aplicado la ingeniería inversa. Una de ellas es Fragment Lighting, una característica que permite realizar cálculos complejos de iluminación. Su implementación fue posible gracias al desarrollo de homebrews utilizando esta técnica.

 

 

A pesar de no ser una implementación completa, resulto en una mejora significativa:

 

     

 

Por último, a finales de año, Subv trabajo duramente en los CROs, que son las librerías dinámicas de la 3DS, similar a los DLLs en Windows. La falta de los CROs no dejaba ejecutar a Citra varios de los juegos más populares, como Pokemon X, Y, Omega Ruby, Alpha SapphireSuper Smash Bros. For 3DS. A pesar de que la implementación de CROs esta lejos de estar completa, muchos de estos juegos finalmente lograban funcionar.

 

Mira también

CemUI 2.3.2

CemUI es (como su nombre viene a indicar) una GUI sencilla preparada para usarse en …

Killer is Dead – Nightmare Edition ¡GRATIS!

De nuevo la plataforma Humble Bundle nos trae la noticia de que nos es posible …

5 Comentarios

  1. Pero aún no es jugable verdad?, quiero decir, que todavía no hay juego con fps constantes, ¿o me equivoco?

    • Prueba el Cave Story 3D, Whoa Dave!,Ninja Jajamaru-Kun o Madagascar 3 por ponerte varios ejemplos y tener reservas por si acaso alguno no va en alguna revision.

      Si no te funcionan bien esos en tu ordenador de momento no te irá bien ninguno en Citra

  2. Gracias por la info, está muy verde aún, pero tiene futuro.

Deja un comentario

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