@stormlord: Mira, por ideología, yo preferiría UN MILLÓN DE VECES que los emuladores por software diesen el resultado que dan las FPGA, porque podría regalar una Raspberry Pi con un emulador de Neo Geo a todos mis amigos y sabría que están jugando como en la máquina original.
Que las FPGAs sean caras me da por el culo de mala manera, me jode, me cabrea, me pone malo.En lo de los slots de cartuchos no voy a insistir más: no vas a ver una sola máquina de estas "oficiales" leer cartuchos en tiempo real jamás, por los motivos técnicos que te he explicado. Si no te lo quieres creer, ya es cosa tuya.
Y no, los buses no se pueden "reprogramar". Bueno, sí que se puede... usando FPGAs. Es lo que hay. Si no te gusta te lo tienes que tomar de dos veces.
Pero en dos palabras te digo lo que pasa aquí:
input lag.Las máquinas ARM que os venden con emuladores son basura. Y te explico por qué:
Todas esas máquinas corren emuladores sobre GNU/Linux. El asunto es que además
todas usan una GPU muy concreta, una MALI 400/450. Esa GPU ya es mala de cojones de por sí, pero es que encima los cabrones de ARM Holdings (el nombre ya es como para salir corriendo, pero bueno) no han ayudado NADA a que haya drivers open source: compras la placa de los cojones, con una versión del kernel viejísima y unos drivers cerrados que funcionan con esa versión del kernel y ya.
Te estarás preguntando: A mi que me importan esas fricadas si yo sólo quiero jugar al Fatal Fury, chaval?
Pues te importa porque esos drivers usan una cosa para pintar en pantalla que se llama buffer de vídeo. Concretamente usan un sistema de triple buffer para disimular el pésimo rendimiento en emulación que dan esos chips (emular por software es un desperdicio de potencia y energía del copón, pero eso es otra historia).
Y con un sistema de triple buffer, lo que obtienes es que el juego emulado va a la velocidad correcta (en el mejor de los casos) pero los fotogramas son enviados a pantalla con retraso. Con varios frames de retraso.
Y no sé cómo lo ves tú, pero para mi eso es un insulto a las máquinas originales, que no funcionaban así. No tenían retraso. Si coges una Neo Geo original y la pones en un CRT, no hay lag.
Si la pones en una tele moderna, habrá el lag que tenga la tele, pero la consola no tiene lag alguno.Vale, y qué pasa con las FPGAs? Pues sencillo: la implementación será más o menos exacta (va siendo cada vez más exacta, de ahí esas actualizaciones que percibes) pero no hay lag. Nada. Cero. El que aporte tu tele, nada más, como en el hardware real. Y no hace falta un buffer de audio, no hay lag de audio ni de vídeo.
Igual esto así dicho te suena complicado. Vale, ya lo he dicho alguna vez, pero cuando quieras prueba una implementación en FPGA y, aunque sea sólo por las sensaciones, verás que es otro mundo. Notas que estás ante el hardware de verdad, se nota MUCHO.
Y no, bajo emulación hospedada en un sistema operativo moderno, el lag inexistente es imposible. Todo sistema tiene cierto jittering, así que las cosas no ocurren siempre del mismo modo y en el mismo periodo de tiempo, lo que obliga a tener un buffer que no existía en la máquina original... o varios!!!Hay experimentos, si te interesa el tema, que son la polla, como este emulador de Commodore 64 que no necesita sistema operativo:
http://accentual.com/bmc64A mi me la pone muy dura, pero despiértame cuando haya algo así para emular Neo Geo. Entonces hablamos de equiparar las FPGAs a la emulación software.