PDA

Ver la versión completa : El gran salto de la emulación



chipan
01/08/2008, 10:02
Hola son Chipan McLure, me recordarán de otros hilos como 10000 no es una peli y Ban a Contauc; hoy vengo a ofrecerles un tema para que opinen, charlen y discutan.

Puede que el tema ya se haya debatido pero ahí está.
El tema que nos atañe es "El gran salto de la emulacion".

La pregunta que lanzaré ahora es la base del tema... ¿De donde viene ese absurdísimo salto en requerimientos para emular las máquinas posteriores a la Nintendo 64?
Aqui todos sabemos bastante de emulación... bueno... Puck no... Puck sabe mucho; y me gustaría que expusieseis vuestras teorías, opiniones y conjeturas acerca de hechos como los que voy a relatar a continuación.
De todos es sabido que la emulación de máquinas antiguas está tremendamente conseguida en los PCs actuales, por ejemplo, un viejo Pentium 166 puede emular la SNES cuasi a la perfección (Chips especiales aparte) o un Pentium II a 266Mhz o un poco más, con una buena aceleradora de la época (Vease una 3dfx o similar) podía emular el funcionamiento de una playstation o una nintendo64 perfectamente. Pero el caso es que para emular maquinas posteriores a la nintendo 64 los requerimientos suben exponencialmente...
Por ejemplo, para emular una "simple" GBA se necesita casi un PIII a 500Mhz y para emular la Dreamcast damos un salto hasta los 2Ghz para que se mueva medianamente fluida.
¿A que creeis que se deben estos saltos abismales en los requerimientos para la emulación de un sistema cuando de la nintendo64 para abajo no eran apenas notables?
Lo cierto es que es cuanto menos curioso.

Bueno, ahora os toca a vosotros majos.

Molondro
01/08/2008, 10:07
Sin tener mucha idea, creo que es debido al aumento de la complejidad en las entrañas de la máquina. Saturn es un buen ejemplo de ésto, y no se si es la Jaguar o la 3DO (juraría que la primera), tienen requerimientos bestiales en comparación con la máquina que emulan.

Otra posible causa es el desconocimiento del hardware debido a que las especificaciones completas no estén disponibles (Caso PSP).

También puede ser que emular las máquinas más modernas suponga un reto para los programadores, o no les valga la pena el esfuerzo. Hay emuladores de la generación anterior completamente parados, en cambia cada poco tiempo sale un nuevo emulador de spectrum, msx, amstrad, etc.

chipan
01/08/2008, 10:12
Sin tener mucha idea, creo que es debido al aumento de la complejidad en las entrañas de la máquina. Saturn es un buen ejemplo de ésto, y no se si es la Jaguar o la 3DO (juraría que la primera), tienen requerimientos bestiales en comparación con la máquina que emulan.

Otra posible causa es el desconocimiento del hardware debido a que las especificaciones completas no estén disponibles (Caso PSP).
Si está claro que el aumento de complejidad es notable, pero aún asi me parece una diferencia abismal en muchos casos...
Es que con el tema pandora, que se supone que podrá emular todo hasta la N64, me ha asaltado la duda de cuanto tardarán las handhelds en poder emular la dreamcast...

K-Navis
01/08/2008, 10:35
Porque el romanticismo se acabó en los 32/64 bits :)

Puck2099
01/08/2008, 10:57
Pues desde mi humilde punto de vista hay muchos factores.

- La complejidad de las máquinas a emular. Las primeras máquinas eran "simples" puzzles de un procesador más o menos sencillo, una pequeña memoria, un chip sencillito gráfico y a tirar millas, pero ahora cada vez llevan más hardware específico, memorias muy rápidas, procesadores segmentados y complejos (MMU, memorias caché, etc.), procesadores específicos para cada tarea (que si un ARM para el sonido, un procesador gráfico brutal...). Todo esto multiplica los requisitos.

- El desconocimiento de la documentación técnica. Ahora es muy sencillo conseguir documentación de máquinas de 8 y 16 bits, pero seguro que es su tiempo se guardaba celosamente y bajo NDAs. Pues hoy en día sucede lo mismo, los desarrolladores no sueltan prenda y las compañías menos.

- Falta de optimización. Cuando los PCs objetivo eran Pentium a 100 Mhz los programadores optimizaban al máximo su emulador para que corriera bien, al igual que sucede con los emuladores para móviles, portátiles, etc. Hoy en día los emuladores van a correr en PCs que como poco van ya a 2 o 3 GHz, así que los programadores no tienen la necesidad de optimizar el código si van sobrados (aquí hablo por experiencia propia, en mi emulador de SMS para mi TFC paso de optimizar ciertas cosas para que quede más didáctico precisamente porque me sobra tiempo de CPU, pero luego a la hora de portarlo a una plataforma inferior es muy probable que toque reprogramar todo para que tire correctamente).

- Motivación. Supongo que toda la gente que está en el mundillo de la emulación tiene ya una edad, por la que vivimos en otra época donde flipábamos con las consolas u ordenadores que había. Es por esta razón que nos supone mucha satisfacción hacer un emulador de aquellas máquinas y revivir nuestras viejas partidas, pero un emulador de una Dreamcast por ejemplo a mi no me supondría más que un reto, pero no lo cogería con ningún cariño nostálgico.

Y muchas más cosas que me dejo, pero esto me ha recordado que tengo que seguir con mi emulador si quiero entregar el TFC a tiempo :angel1:

< - >

Es que con el tema pandora, que se supone que podrá emular todo hasta la N64, me ha asaltado la duda de cuanto tardarán las handhelds en poder emular la dreamcast...

Si seguimos portando emuladores de PC supongo que un buen tiempo.

En la web de Pandora me llamó la antención que decían algo así como que iría cualquier emulador de cógido abierto que existiera en PC. Creo que habría que cambiar el chip y pensar en hacer los emuladores específicamente para estas consolas, centrándonos en sus limitaciones.

Claro que es mucho más costoso y aquí entra lo que decía de antes. Si el programador siente un cariño hacia el sistema en cuestión es probable que se deje los cuernos para conseguirlo, pero si le es indiferente no se va a meter en estos berenjenales para una consola que va a durar x años y después su trabajo ya no valdrá para nada.

nandove
01/08/2008, 11:57
Recuerdo hace años unas declaraciones del presiende de Sega afirmando que la Saturn podria realizar un juego tipo Gran turismo e incluso superarlo, puesto que en potencia de calculo dejaban atras a la play, pero que era inviable por que tendrian que programar a muy bajo nivel...

Eso mismo pasa ahora, todos los emuladores son portados desde otros sistemas, y lo quera facil para la plataforma incial del emulador, es muy complejo para la maquina final del port. un ejemplo claro es que los emus fueron casi todos realizados en pc con procesadores con unidad de coma flotante, mmu, mmx y de mas optimizaciones de micro que aprovecha el lenguaje "X" y cuando llega al compilador hace que una cosa "compleja" como manejar trigonomeria, se quede en 4 instrucciones que van directas a la unidad de mmx en vez de la unidad de coma flotante (copro), quedandose en apenas 4 instrucciones... ahora sin tocar llevate ese codigo a un micro que si bien es casi de los mismos MHz, NO TIENE NINGUNA DE ESAS UNIDADES DE MMX O COPRO, cuando lo pilla el compilador, lo que antes eran 4 instrucciones se transforman en 50 o 100 instrucciones, colapsando el micro y funcionando mucho peor.

El secreto esta en que muchas partes las tienen que reestructurar y aunque sean grandes programadores, estan atados a unas plataformas que aunque se curren librerias de tablas de coma flotante, o librerias de "resultados tipicos resueltos", eso sigue consumiendo mas recursos que el micro de la plataforma original.

Si a eso le añades que las maquinas cada vez son mas rapidas, con mas procesadores con mas memorias caches por cada procesador y cada procesador tiene mas unidades destinadas a partes muy complejas, como los ultimos chips de ati y nvidia que tienen implementaciones via hardware especializadas en fisicas... pues imagina lo complicado de lleva a código TODA esa lógica que en otras maquinas esta en chip


semapiraolapelota! que alguien la recoja![Ahhh]

neostalker
01/08/2008, 13:34
Mis conocimientos sobre emulaci&#243;n son m&#225;s bien limitados, pero tratar&#233; de aportar algo al tema. Cuanto m&#225;s complejo sea el hardware y su manera de trabajar m&#225;s trabajoso ser&#225; emularlo, el mejor ejemplo: la Saturn. Cuanto m&#225;s enrevesado sea el trabajo que realiza el sistema m&#225;s recursos vamos a tener que usar para hacer lo mismo nosotros con un sistema diferente. Personalmente creo que el futuro de la emulaci&#243;n pasa por aprovechar que las consolas cada vez se parecen m&#225;s a PCs y empezar a realizar tareas de forma nativa en vez de por emulaci&#243;n. Evidentemente esto no depende de los programadores, si no de los creadores de las consolas. Por ejemplo, Xbox360 es casi un PC, pero no creo que se lleguen a emular nunca decentemente sus 3 procesadores a 3'2 GHz (si a d&#237;a de hoy emulamos de una manera muy cutre el de PS2)