Regresar   Foro de marcianitos.org > Emuladores y programas de todo tipo > Emuladores > MAME

 
 
Old 20-mar-2007, 21:42   #11
zarkon0
Usuario registrado
Vamos a ver, no os tiréis todos al cuello que parece que el MAMETeam os paga, je.

Hace unos añitos que empecé a realizar un emulador de megadrive en java.
La verdad es que no lo terminé. Tan sólo me quedé en la emulación del juego
de instrucciones del M68000 y el mapeo de la memoria. La parte gráfica la avancé muy poquito (e iba súper lenta) y el sonido nada de nada.

Con esto me gustaría que la gente no se tirara al cuello con cosas como "ya sabes lo que hay" o "te currás uno".

Hacer un emulador no es hacer "magia". De hecho, es más fácil realizar el emulador que cualquiera de los juegos que ejecuta. Además emular una máquina de forma precisa (que es lo que hacen los del mame) es más fácil que mediante "hacks" que aceleren.

Pongamos un ejemplo: puedo adecuar la paleta de colores de forma precisa (perdiendo muchísimos ciclos de reloj" o puedo emplear un algoritmo que me haga perder precisión pero en el cuál el 100% de los mortales humanos no noten la diferencia de color por suponer un desplazamiento muy leve en la escala cromática. Un algoritmo optimizado siempre es más complicado que el "sota, caballo y rey".

Un "emulador" tiene que emular. ¿Y qué emula mejor :el mame con su"precisión" a 10 fps o el NeoRage con su "imprecisión" a 60 fps y utilizando un 10% del procesador?. Desde mi punto de vista es más fiel el NeoRage, que me permite jugar, que el Mame, que no me lo permite, for example, je, je.

Que utilices una programación modular no quiere decir que esos módulos estén bien diseñados. Además, la memoria de los juegos debería reorganizarse. Esto es
que, por ejemplo, se coloque en posiciones de memoria reales, de tal forma que accedamos a sus valores de forma nativa, directa, con instrucciones de la máquina, y no se coloque simplemente en un arreglo al que debemos acceder. Recordemos el caso del procesador M68000 y su manía de colocar las instrucciones en posiciones impares (o eran pares, je).

La idea del MAME es muy buena, no lo discuto, pero comenzó ejecutando un puñado de juegos y ahora es un programa muy parcheado. La gente puede hacer
maravillas reimplementando la parte gráfica, de audio o de lo que sea... pero si la base falla no hay nada que hacer.

Lo único bueno del MAME es que tienes un emulador para todo pero puestos
a emular sistemas únicos existen decenas de emuladores mejores que él.

Ya se sabe el dicho: "el que mucho abarca poco aprieta".

Un Saludote.
   
Old 20-mar-2007, 21:56   #12
Paul Sernine
Moderador
 
Avatar de Paul Sernine
Tiene mucho sentido todo lo que dices, menos lo de la "precisión".

Que un emulador emule un juego mejor que otro es cuestión de interpretaciones. Pero en cuanto a la fidelidad, es más fiel aquel que hace las cosas igual que la máquina original, aunque sea a costa del rendimiento o de la jugabilidad.

Que sea apreciable por el ojo humano ya es otra historia, pero no se puede tomar una política de "esto si lo emulamos fielmente" y "esto otro no porque nadie se va a dar cuenta". El equipo de mame es fiel a una política y es una decisión muy respetable.

También es cierto que para poder "preservar" un juego, este tiene que ser jugable, pero no quiere decir que tenga que ser jugable "Ya". Si un juego va a 10fps hoy, irá correctamente mañana cuando la máquina sea capaz de emularlo fielmente.

Es mi opinión.
   
Old 20-mar-2007, 22:40   #13
zarkon0
Usuario registrado
La emulación debe ser fiel desde el punto de vista del usuario, lo que
haga por dentro el emulador debe dar igual.

Por ejemplo: muchos juegos no tenían un reloj de cuarzo para marcar cuando los
valores de tensión en los componentes son los adecuados sino que utilizaban el propio barrido de la pantalla, al generar un evento.

Ahora mismo, en un PC, MAME no puede hacer eso. Hace uso del tiempo "real", no
de un "clic" que le marque el monitor. ¿Entonces cómo se come lo del mame? ¿Para unas cosas si emulamos fielmente y para otras no?

Si es que es absurdo emular fielmente algo que no se puede. La emulación es un nivel de abstracción del hardware original de la máquina. Cómo se haga da igual, lo que importa es el resultado. Y en este caso los resultados del MAME son pésimos. A lo mejor con un ordenador cuántico, dentro de 20 años podamos jugar, pero ahora mismo con mi Pentium II 233Mhz y 32Mb de Ram juego a Neo Geo sin problemas, for example, je.
   
Old 20-mar-2007, 22:53   #14
Macarro
Administrador
 
Avatar de Macarro
Más datos, por favor . Yo de programación lo justito, pero estas cosas me interesan mucho.

Con respecto a MAME. Yo en general estoy de acuerdo con su línea de trabajo, sin embargo hay cosas con las que no estoy de acuerdo.

Pero creo que el único modo de mantener un proyecto tan grande como este es definir unas líneas bien definidas. Si se permiten las optimizaciones y trucos por un lado, empezarán a aparecer por todos lados y al final no se sabe ni con qué se termina.
   
Old 20-mar-2007, 22:55   #15
Paul Sernine
Moderador
 
Avatar de Paul Sernine
Cómo ya he dicho es cuestión de interpretaciones y yo veo tu postura igual de buena que la de cualquier otro.

Lo de la explicación técnica no lo acabo de entender, es cierto que un PC no es una placa jamma y que hay cosas que no se pueden emular, como los famosos samples y los overlays, en esos casos no hay nada que hacer y hay que tragar con lo que hay.

Quote:
pero ahora mismo con mi Pentium II 233Mhz y 32Mb de Ram juego a Neo Geo sin problemas
Ese es precisamente mi punto, existen alternativas que dan mejor rendimiento, lo mejor es usarlas en los casos que sean aplicables como el de tu pentium2 y no poner verde a los desarrolladores de mame que al fin y al cabo tienen el derecho de hacer las cosas cómo crean convenientes.

Saludos.
   
Old 21-mar-2007, 00:22   #16
Fuents
Administrador
 
Avatar de Fuents
voy a aportar otro granito de arena.... la fidelidad es imposible desde el momento en que ninguno de nosotros usamos el mismo hardware y en casos software para emular las roms... esta claro que una version del mame tendra un rendimiento en tu equipo totalmente distinto al mio.. cosa que por narices provocara que el comportamiento de las roms sea distinto.

De ahi que Mame tenga que usar, filtros, patches, parches o como le quieras llamar... para intentar que indistintamente del hardware que se posea se pueda emular lo mas fidelmente posible la rom.

Si todos usaramos el mismo Hardware y software tambien te juro que la emulacion seria perfecta.. pero no es el caso... asi que esto es como el windows... no furula igual en todos los equipos... mayor compatiblidad es igual a menor consistencia y fidelidad...

He dicho
   
Old 21-mar-2007, 00:53   #17
Cananas
Usuario Baneado
Zarkon0, simplemente no entiendes la filosofía de MAME: emular exhaustivamente el hardware, que casualmente, permite ejecutar juegos de máquinas arcade. Punto. El objetivo de MAMe no es otro. ¿Que para emular el Gauntlet Legends a 60fps hay que esperar 4 años a la evolución de los micros? No es problema de MAME.

La verdadera filosofía de los emuladores es emular el hardware de una máquina. Una vez hecho esto, todos los programas creados para funcionar bajo ese hardware funcionará.

Sin embargo, existen otros pseudo emuladores cuyo principal objetivo es emular el funcionamiento de los programas que se ejecutaban en un hardware distinto al actual.

La diferencia entre estos dos conceptos es la clave para que todos nos entendamos:

En el primer grupo solemos encontrar a la mayoría de emuladores de ordenadores, MAME y algún que otro emulador de consolas como HazeMD (basado en MAME) o pSX (emulador de Playstation). Me dejo algunos, seguro.

En el segundo grupo encontramos emuladores como NeoRagex, Epsxe, etc.) centrados en hacer funcionar los juegos, y no en emular exactamente el hardware que los hacía funcionar.

Os pondré el ejemplo de los emuladores de Spectrum. Comenzaron emulando lo imprescindible para poder hacer funcionar muchos programas y juegos, pero se fue viendo la necesidad de tener que emular correctamente cuestiones como la ULA y demás intrucciones no registradas del procesador Z80 para asegurarse que todo el software funcionara como lo hacía en la máquina real.

Os aseguro que en el emulador de PSX de MAME funcionan más juegos que en cualquier otro. Eso es emular una máquina. Que la velocidad sea inferior o superior no indica que no se esté emulando bien.Al contratio, indica que no hay máquina suficiente para emular con tanta exactitud. Nada más.

Ahora bien, como dice Paul Sernine, hay alternativas para el que sólo quiera que detrminado juego funcione a la velocidad adecuada, independientemente que si se emula la capa tal o cual de sprites, por ejemplo. Pero aquellos que prefieran eso no deberían criticar a MAME. Más de una vez el MAMETeam ha comentado lo mismo:"MAME es gratuito, si lo quieres usar lo usas. Si no, no lo uses. Nadie te obliga a hacerlo".

Para terminar, recordaros que muchos de las personas que trabajan en MAME lo hacen también en emuladores paralelos en los que el objetivo está más centrado en la jugabilidad que en la emulación exhaustiva. Incluso la cabeza más visible del equipo, Aaron Giles, creó un emulador específico del Radikal Bikers, donde se hacía uso de la aceleración 3D por hardware.

Por cierto, en este enlace, donde podréis encontrar el emulador, Aaron habla de por qué MAME no tiene aceleración 3D por hardaware.
   
Old 21-mar-2007, 01:11   #18
Cananas
Usuario Baneado
Quote:
Un "emulador" tiene que emular. ¿Y qué emula mejor :el mame con su"precisión" a 10 fps o el NeoRage con su "imprecisión" a 60 fps y utilizando un 10% del procesador?. Desde mi punto de vista es más fiel el NeoRage, que me permite jugar, que el Mame, que no me lo permite, for example, je, je.
Evidentemente, emulara mejor MAME. Para pintar un punto azul en la pantalla (es un ejemplo sin más) MAME emula todas las funciones que realizaba la máquina orginal. El otro emulador, para hacer lo mismo, desehecha unas funciones porque las cree innecesarias para mostrar el punto azul, ¿Cuál crees que realmente emula mejor el hardware de la máquina original?

Te pondré el caso de los emuladores de circuitos impresos. Por si alguien no lo sabe, tardan bastante tiempo en calcular el resultado que daría de ejecutar esa construcción en la realidad. Eso es emular. ¿O es mejor emulación que el programa 'pasase' por alto unas cuantas especificaciones de componentes por considerarlas superfluas para esa emulación y acelerar el proceso? Evidentemente, aunque el resultado fuese el mismo (pero más rápido) siempre te quedaría la duda de si eso es correcto o no. Te quedaría la duda de si eso está bien emulado o no. Eso no pasa con MAME.

Quote:
Quote:
Hay gente que está a favor de esta política y gente que está en contra, y se crean bastantes polémicas al respecto.
Veis, veis como tenía razón
Qué va. No hay tal polémica. Simplemente desconocimiento de lo que debe ser un emulador y la filosofía de MAME.
   
Old 21-mar-2007, 10:23   #19
zarkon0
Usuario registrado
Hola.

Ya que ha salido el tema.
¿Alguien recuerda los minterms y los maxterms?

¿Qué es mejor? Hacer un circuito con 20 puertas lógicas que emula perfectamente la lógica del circuito o efectuar una reducción mediante minterms y maxterms y que el circuito se nos quede en 12 componentes (por ejemplo). Y no va a quedar ninguna duda de si en algún caso dejará de funcioanr por tener menos componentes. Para eso está la base matemática en la que se apoyan todas las simplificaciones, reducciones o como se las quiera llamar.Con esto sólo quiero decir que si el resultado es el mismo para qué quiero "fidelidad" con algo que como se ha comentado no se puede "fidelizar".

¿Para que quiero perder 50 ciclos de reloj dibujando un punto si puedo hacer lo mismo en 10?.

La filosofía del MAME me parece todo lo correcta que quieras: en la última versión van a conseguir emular el tetris al ritmo que Patjinov tecleaba las instrucciones, je, je. Eso si, será perfecta... je, je

EDITO: De todas formas nos estamos alejando del tema. Un emulador de juegos tiene que servir para jugar y no es normal que con cada nueva versión los juegos vayan peor en vez de mejor. Si no se puede jugar simplemente no sirve.

Editado por zarkon0 en 21-mar-2007 a las 10:28.
   
Old 21-mar-2007, 10:59   #20
elarcadio
Marciano
 
Avatar de elarcadio
Mame nunca se ha caracterizado por su velocidad. Ya en sus comienzos era un emulador lento. En esa época teniamos el callus que emulaba CPS1 en un 486 y al mame ya le costaba emular el Galaxian en un pentium.

Pero ha sido el que mas éxito ha tenido y al tratarse de un proyecto abierto ha sobrevidido al paso del tiempo, cosa que otros emuladores optimizados no han logrado.

Yo tardé en pasarme al mame porque tenía otras opciones que eran mas rápidas y para mi como dice zarkon0 primaba mas la velocidad que la fidelidad.

Pero eso no le quita meritos al mame. Gracias a él somos muchos los que disfrutamos de los clásicos de toda la vida y por eso no le veo el problema a las nuevas versiones de mame. Yo, al igual que muchos marcianos no actualizo el mame hace siglos. Los juegos que mas añoro los tengo emulados de sobra con una versión antigua y tengo claro que no voy a jugar al Soul Calibur, al Virtua Striker o al House of The Dead en el mame.

Ya tendré tiempo dentro de unos años cuando compre mi Pentium Trial Core

Salu2