Viva el software libre!: MAME ahora es OpenSource

Imagen

El emulador MAME despues de 10 meses de discusiones entre colaboradores internos y externos, decide liberar su codigo como software libre, con lo que ahora habra mas interes en ir actualizando y mejorando la de por si alta compatibilidad de este emulador.

Del estudio que realizaron enre los colaboradores quedo que los archivos de bibliotecas y otros mas que requiere el emulador estaran bajo licencia BSD 3-Clause, mientras que el proyecto en si del emulador quedara bajo la licencia GNU GPL 2.0+. Y muy aparte queda el registro del logo y nombre 'MAME' el cual sigue quedando bajo control de Nicola Salmoria, fundador del proyecto.

Pagina Oficial: http://mamedev.org


About MAME
MAME originally stood for Multiple Arcade Machine Emulator.

MAME's purpose is to preserve decades of software history. As electronic technology continues to rush forward, MAME prevents this important "vintage" software from being lost and forgotten. This is achieved by documenting the hardware and how it functions. The source code to MAME serves as this documentation. The fact that the software is usable serves primarily to validate the accuracy of the documentation (how else can you prove that you have recreated the hardware faithfully?). Over time, MAME absorbed the sister-project MESS (Multi Emulator Super System), so MAME now documents a wide variety of (mostly vintage) computers, video game consoles and calculators, in addition to the arcade video games that were its initial focus.


Purpose
MAME main purpose is to be a refefence to the inner workings of the emulated machines. This is done both for educational purposes and for preservation purposes, in order to prevent historical software from disappearing forever once the hardware it runs on stops working. Of course, in order to preserve the software and demonstrate that the emulated behavior matches the original, you must also be able to actually use the software. This is considered a nice side effect, and is not MAME's primary focus.

It is not our intention to infringe on any copyrights or patents on the original games. All of MAME's source code is either our own or freely available. To operate, the emulator requires images of the original ROMs, CDs, hard disks or other media from the machines, which must be provided by the user. No portions of the original game code are included in the executable.


Cost
MAME is free. Its source code is free. The project as whole is under distributed under the GNU General Public License, version 2 (GPL-2.0), but most of code (including core functionality) is available under the BSD-3-clause license.

Derivative Works
Because the name MAME is trademarked, you must abide by the rules set out for trademark usage if you wish to use "MAME" as part of the name your derivative work. In general, this means you must request permission, which requires that you follow the guidelines above.

The version number of any derivative work should reflect the version number of the MAME release from which it was was derived.


Official Contact Information
For questions regarding the MAME license, trademark, or other usage, go to http://mamedev.org/.


Imagen
Sin lugar a dudas una gran noticia para los amantes de MAME; habrá que ver cómo evoluciona el asunto ;)
Pues seguro es para bien, mejoras en rendimiento, quiza uso de las ultimas APIs graficas como Vulkan o D3D12, asi como ya lo han hecho en el emulador Dolphin.

Imagen
Imagen
hilo_grandes-avances-emulacion-ps3-wiiu-con-direct3d12_2143864_s25
Curioso cuanto menos la mezcla de GPL-2 y BSD.

Una licencia con retroproteccion de su libertad y la otra no.

Si alguien pretende usarlo para sus proyectos habra que fijarse cual de las dos le toca al trozo codigo que roba xD
Los buenos artistas IMITAN, los maestros ROBAN
Imagen
A ver si esto sirve para que optimicen, que en el ultimo tiempo cada vez pedía mas y mas recursos para emular un juego de hace 20 años...
matuanime escribió:A ver si esto sirve para que optimicen, que en el ultimo tiempo cada vez pedía mas y mas recursos para emular un juego de hace 20 años...


Y cada vez seguiran subiendo los requisitos a medida que vayan perfeccionado su emulacion, pues es la razon del porque aun presentan errores algunos juegos. Se podria decir que estan hardcodeados ahora mismo la mayoria.
Pero quiza y solo quiza ahora que tendrian mas manos trabajando, eso ya no sea asi y puedan optimizar sin aumentar los requisitos.
1985a escribió:
matuanime escribió:A ver si esto sirve para que optimicen, que en el ultimo tiempo cada vez pedía mas y mas recursos para emular un juego de hace 20 años...


Y cada vez seguiran subiendo los requisitos a medida que vayan perfeccionado su emulacion, pues es la razon del porque aun presentan errores algunos juegos. Se podria decir que estan hardcodeados ahora mismo la mayoria.

eeehm no, el proyecto de mame no se preocupaba de optimizar, le bastaba con que el juego sea reconocido y ejecutado aunque de mala manera, por eso versiones antiguas del emulador funcionan mejor que las ultimas. De hecho, si buscas un poco en el foro encontraras cientos de quejas al respecto...
Y la gente siempre recomendando versiones viejas de este emulador....

Por eso digo que ojala esto sirva para que entren programadores a los que les interese optimizar, porque esto ya era un chiste xD
TRASTARO escribió:Pues seguro es para bien, mejoras en rendimiento, quiza uso de las ultimas APIs graficas como Vulkan o D3D12, asi como ya lo han hecho en el emulador Dolphin.

Imagen
Imagen
hilo_grandes-avances-emulacion-ps3-wiiu-con-direct3d12_2143864_s25

Muchas ganitas de ver Vulkan en Linux, Steam por lo pronto se une a Vulkan y deja 'tirada' a DX12, porque cree que en general es mejor Vulkan para Windows, OS X y Linux (SteamOS), y no les falta razón.

https://www.youtube.com/watch?v=P_I8an8jXuM

Impresionante ver como trabajan los 4 núcleos juntos.

Está claro que donde más rendirá es con juegos pesados, ahí se notará su calidad.
Ciertamente a declinado a D3D12 Valve y steam, y han sido de los que mas apoyan a Vulkan desde sus inicios, incluso sacaron un controlador para el iGP de los CPUs intel.

Esperemos que pronto los programadores de emuladores y juegos saquen su software con esta API de Vulkan.
matuanime escribió:
1985a escribió:
matuanime escribió:A ver si esto sirve para que optimicen, que en el ultimo tiempo cada vez pedía mas y mas recursos para emular un juego de hace 20 años...


Y cada vez seguiran subiendo los requisitos a medida que vayan perfeccionado su emulacion, pues es la razon del porque aun presentan errores algunos juegos. Se podria decir que estan hardcodeados ahora mismo la mayoria.

eeehm no, el proyecto de mame no se preocupaba de optimizar, le bastaba con que el juego sea reconocido y ejecutado aunque de mala manera, por eso versiones antiguas del emulador funcionan mejor que las ultimas. De hecho, si buscas un poco en el foro encontraras cientos de quejas al respecto...
Y la gente siempre recomendando versiones viejas de este emulador....

Por eso digo que ojala esto sirva para que entren programadores a los que les interese optimizar, porque esto ya era un chiste xD


Te equivocas, el objetivo de mame es emular con precision, no que sea jugable perfectamente. No es cosa de optimizacion, es cosa de que mientras mas mejoran la emulacion y la hacen mas precisa, mas recursos necesita porque es mas demandante. Las versiones viejas corren mejor porque la emulacion es menos precisa y en versiones aun mas viejas se usaban hacks.

De momento ni vulkan ni D3D12 significan nada si la emulacion de los sistemas 3D se hace por medio de software y no de hardware.
Pues esperemos que con esta propusta de hacrl parte de software libre se utiliza mas el hardware, que tanto vulkan como d3d12 ofrecen bastante para la presicion de emulacion.
TRASTARO escribió:Pues esperemos que con esta propusta de hacrl parte de software libre se utiliza mas el hardware, que tanto vulkan como d3d12 ofrecen bastante para la presicion de emulacion.


El problema es que la emulación cycle accurate apenas experimenta ganancia de la GPU. Necesitas potencia bruta de cómputo. Y eso principalmente te lo da un core con muchos GHz. Es pura CPU.
Moki_X escribió:
TRASTARO escribió:Pues esperemos que con esta propusta de hacrl parte de software libre se utiliza mas el hardware, que tanto vulkan como d3d12 ofrecen bastante para la presicion de emulacion.


El problema es que la emulación cycle accurate apenas experimenta ganancia de la GPU. Necesitas potencia bruta de cómputo. Y eso principalmente te lo da un core con muchos GHz. Es pura CPU.

Pongo fuente:
Games with 3D graphics. As of this writing, MAME does not pass polygons down to the video card of your system; instead, it renders all 3D graphics by hand in software. Although this code is generally optimized to take advantage of multiple CPUs, it is still quite taxing to do this. Some 3D games give you control of the output resolution; reducing it will reduce the CPU requirements.
Si-si, eso queda claro, que usan el render por software y nadie lo discute, que les da segun su planeamiento mas precision, pero siendo que ahora es codigo abierto, esperemos que salga un motor que saque partido de las capacidades de computo de los CPUs actuales via OpenCL o DirectCompute, mas paralelismo, computo asincrono que ayudaria mucho en terminos de rendimiento y si se realiza bien, manteniedno esa presicion -si deciden conservarla- y sacando partido a ese otro procesador que cualquier PC tiene desde hace tiempo.
TRASTARO escribió:Si-si, eso queda claro, que usan el render por software y nadie lo discute, que les da segun su planeamiento mas precision, pero siendo que ahora es codigo abierto, esperemos que salga un motor que saque partido de las capacidades de computo de los CPUs actuales via OpenCL o DirectCompute, mas paralelismo, computo asincrono que ayudaria mucho en terminos de rendimiento y si se realiza bien, manteniedno esa presicion -si deciden conservarla- y sacando partido a ese otro procesador que cualquier PC tiene desde hace tiempo.


El objetivo de MAME no es hacer emuladores, sino simuladores. Es decir: simular fielmente el comportamiento de la consola para que ejecute cualquier juego IGUAL que lo haría el hardware físico. Ahora bien: Cada consola es de su padre y de su madre. Y emular los diferentes componentes es mucho más complicado que "asigno un core a la CPU de la consola, otro core a la GPU, otro al sonido y otro a sincronizarlo todo".

Hay mucha discusión y teoría al respecto. Puedes encontrarla si buscas "Cycle Accurate Emulation" en google.

Una NES es sencilla de simular. Pero cosas más complejas son más complicadas.

Lo más sencillo de implementar es: Un core haciendo todo.

Ejemplos:
- Emulador BSNES: Necesita un core rulando a 3GHz para simular fielmente una SNES. Si usas más núcleos, ganas velocidad pero pierdes fidelidad en la emulación.
- Emulador CEN64: http://cen64.com/En su estado actual no es capaz de simular fielmente una Nintendo 64, pero ha conseguido cosas que ningún emulador había conseguido hasta ahora. Por supuesto, arranca ROMs comerciales.
Podéis continuar la discusión en el hilo oficial hilo_hilo-de-mame_823352 que es el sitio más adecuado ;)
17 respuestas