Hace poco salió la 2.8 de Stella, el emulador más famoso de Atari 2600, entre las novedades trae un extraño
CRT Emulation, después de ver un poco la documentación y probarlo, estamos ante el next-level del filtrado en emuladores
Modos de renderización y filtrados hay muchos, los clásicos son el Bilinear, el renderizado de Scanlines, los filtrados HQX, Sai y similares. Personalmente de estos últimos no me convence ninguno, aunque depende mucho de la máquina emulada normalmente quedan horribles, los scanlines para arcades y bilinear en general son la mejor opción
Hace poco Final Burn Alpha introdujo el efecto más brutal, la Proyección 3D, que quizá sea uno de los efectos más impresionantes que ha renderizado un emulador, aquí teneis un ejemplo sobre
MvsC, sobre
Knights of Valour 2 o sobre
Metal Slug 2La emulación de CRT (Catode Ray Tube) se basa fundamentalmente en 4 defectos gráficos que genera una televisión de tubo, esta no es más que un acelerador de partículas (es como el LHC de Ginebra pero reducido unas millones de veces y lineal en vez de ovalado) que lanza electrones en una dirección determinada por un electroimán a una pantalla de fósforo que se ilumina con los impactos, a diferencia de una TFT que ilumina cada pixel independientemente, la imprecisión al dirigir los electrones y el fósforo crean estos defectos:
Textura: La malla de fósforo ilumina el punto de impacto de manera más notable que la zona a su alrededor, esto crea un efecto de degradado por punto (una especie de dithering) que genera un ruido, imperceptible en un emulador convencional en una pantalla TFT, donde los colores planos son totalmente planos, no tiene ningún tipo de punteado
Fantasma: Lo que se conoce habitualmente como
ghosting, las pantallas CRT (y LCD también, aunque por diferente motivo) dejan un rastro de cada imagen debido a que el brillo de el impacto del electrón tarda unas milésimas de segundo en desaparecer (en borrarse), al generarse la siguiente imagen, durante este tiempo el fantasma de la imagen anterior y la nueva comparten la pantalla, esto fué usado por Atari para generar transacciones en pantalla, un efecto genial que no es apreciable en un emulador. Este efecto sería aprovechado por Sony en la segunda mitad de los 90 para crear el efecto blur, dejar intencionadamente estelas de polígonos que se renderizaron antes, el más claro exponente fue Metal Gear Solid
Fusión de color: En los emuladores normalmente vemos que cada "sprite" (no son realmente sprites los de A2600) tiene una delimitación en su color respecto del entorno, está claro donde acaba un color y empieza el otro, totalmente enfocado. En una TV no, los colores generados por el fósforo se mezclaban unos con otros, esto generaba un suavizado en los bordes que no está presente en los emuladores
Ruido: En la época de Atari 2600 no existía ni el cable RGB, ni el HDMI, ni los componentes, ni tan siquiera el S-Video, la señal iba (aunque siempre jugué en SNES de esta manera xD) por RF, un cable de antena, aunque la frecuencia estuviera totalmente sintozinada (sí, sintozinada) la señal siempre generaba ruido, esto pasaba en emisiones de TV igualmente, pero A2600, al ser colores totalmente planos en vez de imágenes reales, generaba un ruido mucho más perceptible al ojo humano
Y nada más, estos son los 4 efectos que los super-cracks de el proyecto Stella han implementado por software, el resultado es INCREÍBLE, tan bueno como la proyección 3D (donde parece que estés frente a un arcade real), lo malo es que necesita muchos recursos de la CPU aplicar este renderizado. La esperanza es que se optimice y se use en todos los emuladores, imaginaros un emulador de SNES o Mega Drive con esto
, de todas formas en Atari 2600 es probablemente la máquina donde más se note
Unas capturas para apreciar este efecto
Que tanto Final Burn Alpha como Stella hayan introducido estas maravillas y en MAME tengamos que comernos la mierda del filtrado por archivos externos (PNG), increíble, al menos MAME Team tendría que tener un poco de sentido común y volver al filtrado de scanlines por software como tenía anteriormente (creo que llegó hasta la 094)