Iniciar sesión

Ver la versión completa : [Programación] El futuro de la emulacion



JoJo_ReloadeD
10/08/2011, 10:48
Acabo de leer este articulo de Ars Technica:

Accuracy takes power: one man's 3GHz quest to build a perfect SNES emulator (http://arstechnica.com/gaming/news/2011/08/accuracy-takes-power-one-mans-3ghz-quest-to-build-a-perfect-snes-emulator.ars/1)

En donde, a grandes rasgos nos hablan de como los emuladores actuales tienden cada vez mas a la sincronizacion perfecta de todos los elementos emulados, para asi conseguir una emulacion mas fiel.

Asi, tenemos casos bestiales, Zsnes emula SNES con un x86 a 300mhz, mientras que el emulador del articulo, Bsnes necesita uno a 3000mhz.

Obviamente, la emulacion del ultimo es mucho mas fiel, y como se comenta, hay algunos juegos que requieren de esta potencia extra de cpu para poder emular efectos en unos pocos juegos que de otra forma los harian injugables en su totalidad.

Pero aqui viene la que para mi gusto es la magra con tomate del articulo. Se nos habla de un nuevo emulador, DICE (http://adamulation.blogspot.com/), cuya filosofia no es la tipica de un emulador tal y como lo conocemos. Este software se dedica a simular en tiempo real los transistores de los que esta formado el sistema original, la latencia electrica entre los componentes, las resistencias, los condensadores... todo...

Imaginaos un programa de simulacion de circuitos, pero cuya funcion no sea ayudar a la creacion de los mismos, si no simular en tiempo real lo que haria dicho circuito, llevandolo a sus ultimas consecuencias.

Y aqui me vais a permitir que haga un alto en el camino y os cuente una historia que esta relacionada y que me va a servir de parabola para explicar lo que yo creo que va a ser la emulacion de sistemas retro en las proximas decadas.

A principios de los 90 comenzaron a verse los primeros emuladores de Spectrum. Todos recordamos aquel genial emulador de Pedro Gimeno. Este emulador funcionaba con snapshots de memoria.

Alguien cargaba un juego desde cinta directamente al emulador, y luego el programa podia hacer un volcado de la memoria completa del spectrum a un fichero .SNA. Luego podias cargar ese volcado las veces que quisieras. El sistema funcionaba, y era muy rapido, pero perdias elementos, como la pantalla de carga del juego, los efectos durante el mismo, que en muchos juegos estaban muy currados...

El siguente paso fue un emulador que cargaba ficheros .WAV. Tu grababas tu cinta en wav a pelo, y el emulador lo cargaba. Pero claro, los juegos terminaban ocupando 40 megas, 50 megas... una barbaridad, habia que hacer algo para unir lo mejor de los dos sistemas.

Asi surgio el formato TZX. Este formato es una 'partitura' de la cinta en si. En vez de grabar la cinta, haces una partitura, el emulador la 'toca' y el resultado final es la cinta original. Ocupa poco y es una recreacion perfecta. El sistema perfecto.

La gran ventaja era que servia en los dos sentidos, podias pasar de cinta a TZX... y de TZX a cinta, de forma que te bajas un juego de internet, lo grabas en una cinta y puedes rularlo en el hardware original!


Volvamos a 2011 y a lo que comentaba. Vemos que la actual tendencia es replicar electricamente los sistemas a emular... y si esto es posible, que impide que estos futuros emuladores EXPORTEN la replica a:

- VHDL o VERILOG: Se podrian crear sistemas como el Minimig o el One Chip MSX on the fly
- GERBER: Crear las PCBs de los sistemas emulados, con una lista de chips a soldar y todo el soft necesario para programar las roms, pics, gals...

Todo esto, por supuesto tiene su desventaja, y es la enorme potencia que hace falta para llevar esto a cabo. DICE ahora mismo solo emula el Pong, y en un x86 a 3000mhz lo hace a unos 15fps, asi que imaginad un sistema mas moderno y potente como la n64... pero tiempo al tiempo...

Asi, creo que este va a ser el futuro. No ya emuladores hiper precisos, si no emuladores llevados al plano electrico, que en ultima instancia permitiran recrear la maquina emulada en la vida real.

Sumadle a todo esto una impresora 3d y vereis a lo que me refiero ;)

tl;dr; version:
En 20 años habran emuladores de megadrive con una opcion de 'crear replica fisica del sistema'

akualung
10/08/2011, 11:11
tl;dr; version:
En 20 años habran emuladores de megadrive con una opcion de 'crear replica fisica del sistema'


¿Tú crees que en 20 años habrá impresoras 3D que permitan imprimir circuitos que necesitan piezas metálicas, chips de silicio (y por lo tanto imprimiendo estas piezas también), etc? Demasiado optimista te veo (suponiendo que haya entendido bien lo que querías decir).

JoJo_ReloadeD
10/08/2011, 11:14
¿Tú crees que en 20 años habrá impresoras 3D que permitan imprimir circuitos que necesitan piezas metálicas, chips de silicio (y por lo tanto imprimiendo estas piezas también), etc? Demasiado optimista te veo (suponiendo que haya entendido bien lo que querías decir).

xD

La impresora 3d la decia para la carcasa hombre... lo otro habra que encargarlo.. o bien programar tu megasistema VHDL...

akualung
10/08/2011, 11:17
xD

La impresora 3d la decia para la carcasa hombre... lo otro habra que encargarlo.. o bien programar tu megasistema VHDL...

Ah, vale. Ya lo estaba flipando, yo xDDD

ChAzY_ChaZ
10/08/2011, 11:30
yo quiero una impresora de esas 3d! en tratoestremo tienen?

tanuquillo
10/08/2011, 11:34
pero un emulador debe emular el programa en si y no los componentes

kennyspirit
10/08/2011, 11:53
Esos emuladores de circuitos se harán sólo como estudios, prácticas y/o frikismo, con lo que serán más que escasos.

El pragmatismo y la ley del mínimo esfuerzo harán que los emuladores al uso sean para emular el software lo mejor posible y con menor esfuerzo del programador conforme los ordenadores vayan teniendo más y más potencia relativamente a la del aparato a emular.

Sr.Polilla
10/08/2011, 11:56
pero un emulador debe emular el programa en si y no los componentes

Creo que lo que tu dices es un interprete del programa, pero es más fiel si emulas la arquitectura donde corre traduciendo las instrucciones del procesador, ahí es donde la emulación se vuelve costosa (en cuanto a recursos)

X-Code
10/08/2011, 12:03
Un concepto interesante. Mas que emulación me suena a simulación, pero me gusta :)

tanuquillo
10/08/2011, 12:04
es como intentar emular un reloj mecanico con un programa de arquitectura 3d y fisicas en vez de usar el reloj interno del pc para dar la hora. dentro de muchos muchos años se usara pero por ahora solo es frikismo

jmmanson
10/08/2011, 13:00
eso seria una pasa, el poder crearte tus propias makinas fisicas, seria la locura. pero lo veo bastante dificil y mas alejado en el tiempo de esos 20 años...

JoJo_ReloadeD
10/08/2011, 13:10
De verdad pensais que en 20 años los PCs (o lo que se use entonces) no tendran potencia para emular los sistemas clasicos de esta manera?

Mirad como eran los PCs hace 20 años y ahora... (aprovecho para spamear un grafico interactivo que hice hace tiempo xD):

http://wiki.vieju.net/bench/

X-Code
10/08/2011, 13:16
La velocidad de procesador de un PC de dentro de 20 años se medirá en terahercios (THz), pero como la gente continuará utilizando güindows, parecerá que el sistema va lento do carallo xDDD - nah, en serio creo que la tecnologia avanza a un ritmo frenético, y que de un dia para otro podríamos tener un sistema capaz de hacer algo así.

Doy por hecho que el 2012 no será el fin, eso lo dejo para los que crean en esas cosas :lol:

Nathrezim
10/08/2011, 14:15
La velocidad de procesador de un PC de dentro de 20 años se medirá en terahercios (THz), pero como la gente continuará utilizando güindows, parecerá que el sistema va lento do carallo xDDD - nah, en serio creo que la tecnologia avanza a un ritmo frenético, y que de un dia para otro podríamos tener un sistema capaz de hacer algo así.

Doy por hecho que el 2012 no será el fin, eso lo dejo para los que crean en esas cosas :lol:

Psss no creo que suba más la frecuencia de los micros, se está llegando al límite de los materiales, a las señales no les da tiempo de llegar en la pista para el siguiente ciclo, de hecho hay etapas en los micros en las que solamente se espera a que el pulso eléctrico recorra la pista del integrado. Ahora solo queda mejorar los diseños a la hora de usar los transistores, usar un diseño 3D dentro de los micros (que ayudaría un huevo a la hora de acortar la longitud de las pistas) y el paralelismo a la hora de tratar datos.

PD: Y tratar de miniaturizar más se va volviendo poco a poco imposible, se esta llegando a tener separaciones entre las puertas de los transistores de átomos y llegará el caso de que si se quiere miniaturizar más haya que superar el límite del tamaño de un átomo, y en el modelo actual no parece posible.

X-Code
10/08/2011, 14:19
Era mas [modo coñas] que otra cosa, pero esta claro que no se ha tocado techo y que la cosa avanza. Lo que se es que yo voy a ir para atrás, en busca de equipos que resulten mas simples y que requieran menos recursos, la emulación es importante para mi, pero también lo son la economía y el gasto energetico ( que evidentemente van de la mano xD ):lol:

dj syto
10/08/2011, 14:54
el zsnes de msdos emulaba fx incluido en un 166 mmx xddd

Jonazan2
10/08/2011, 15:04
De verdad pensais que en 20 años los PCs (o lo que se use entonces) no tendran potencia para emular los sistemas clasicos de esta manera?

Mirad como eran los PCs hace 20 años y ahora... (aprovecho para spamear un grafico interactivo que hice hace tiempo xD):

http://wiki.vieju.net/bench/

Te deja un poco con el "culo torcio" el gráfico. Siempre ves el salto pero no piensas en que sea tan alto :D

dj syto
10/08/2011, 15:05
De verdad pensais que en 20 años los PCs (o lo que se use entonces) no tendran potencia para emular los sistemas clasicos de esta manera?

Mirad como eran los PCs hace 20 años y ahora... (aprovecho para spamear un grafico interactivo que hice hace tiempo xD):

http://wiki.vieju.net/bench/

yo no dudo que desde luego se podra. Pero sera una frikeza innecesaria.

kennyspirit
10/08/2011, 15:13
De verdad pensais que en 20 años los PCs (o lo que se use entonces) no tendran potencia para emular los sistemas clasicos de esta manera?

Mirad como eran los PCs hace 20 años y ahora... (aprovecho para spamear un grafico interactivo que hice hace tiempo xD):

http://wiki.vieju.net/bench/

El de pentium 2 no me funciona (y yo que quería ver el salto del primer ordenador "mío" a los de ahora :quepalmo:)

Un buen gráfico :brindis:

JoJo_ReloadeD
10/08/2011, 15:14
El de pentium 2 no me funciona (y yo que quería ver el salto del primer ordenador "mío" a los de ahora :quepalmo:)

Un buen gráfico :brindis:

Es que no tengo ningun P2 para probarlo, y tampoco me he encontrado con alguien que lo tenga. Como puedes ver en el grafico se muestran pruebas reales, no suposiciones.

BeaR
10/08/2011, 15:41
Yo tengo en mi casa un Cyrix 333Mhz... vaya bazofia , como tenía una castaña de coma flotante hasta jugar al Quake1 tenía que hacerlo toqueteando cosas......

Por cierto, el tema de emular la máquina de esa forma me parece una barbaridad que creo que no se llegará a materializar nunca (espero que me equivoque).

Salu2

bernard
11/08/2011, 18:32
Pues sinceramente, a nivel técnico puede estar muy bien para probar el funcionamiento real de ciertos componentes y después hacer la emulación más fiel. A nivel práctico me parece tan estúpido como ponerse a diseñar los organos (pulmones, corazón ...) de un personaje 3D.

jduranmaster
11/08/2011, 18:46
Volvamos a 2011 y a lo que comentaba. Vemos que la actual tendencia es replicar electricamente los sistemas a emular... y si esto es posible, que impide que estos futuros emuladores EXPORTEN la replica a:

- VHDL o VERILOG: Se podrian crear sistemas como el Minimig o el One Chip MSX on the fly
- GERBER: Crear las PCBs de los sistemas emulados, con una lista de chips a soldar y todo el soft necesario para programar las roms, pics, gals...



ya hay emuladores de sistemas como MegaDrive o NES implementados en VHDL como IPCores para FPGA´s de la familia Xilinx, obviamente son de pago, pero estar, estan ahi. Internamente no se hasta que pto el codigo VHDL representa la arquitectura hardware original pero funcionan.

....y lo de GERBER, juas, ahora mismo lo uso para programar una máquina de microfresado capaz de grabar a dos caras substratos plásticos metalizados para la implementación de circuitos de RF. Seria la caña tener potencia suficiente para sacarse la placa de una NES o incluso una NeoGeo. :D