Maquinas recreativas, emuladores y MAME

37
Miguel Ángel Horna (ElSemi) Zaragoza, 13 de Noviembre de 2008 ¿Qué hay en una máquina recreativa? ¿Qué son las ROMs? ¿Cómo funciona un emulador? ¿Qué es MAME? Autor:

description

Maquinas recreativas, emuladores y MAME. ¿Qué hay en una máquina recreativa? ¿Qué son las ROMs? ¿Cómo funciona un emulador? ¿Qué es MAME?. Autor:. Miguel Ángel Horna (ElSemi) Zaragoza, 13 de Noviembre de 2008. Emuladores. - PowerPoint PPT Presentation

Transcript of Maquinas recreativas, emuladores y MAME

Page 1: Maquinas recreativas, emuladores y MAME

Miguel Ángel Horna (ElSemi)

Zaragoza, 13 de Noviembre de 2008

¿Qué hay en una máquina recreativa?

¿Qué son las ROMs?¿Cómo funciona un emulador?

¿Qué es MAME?Autor:

Page 2: Maquinas recreativas, emuladores y MAME

EmuladoresEjecutar el programa original de la máquina

recreativa en un PC o consola actual.Preservar los juegos y sistemas clásicos.El resurgir de los juegos clásicos:

XBOX Live ArcadePlayStation NetworkNintendo Virtual ConsoleClassic Collections

Ahora las empresas de videojuegos buscan emuladores

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 3: Maquinas recreativas, emuladores y MAME

EmuladoresNebula: CPS1, CPS2, NeoGeo, PGM, KonamiModel2 Emulator: Sega Model 2 (original y revs A,B y C)CPS3 Emulator: Capcom CPS3 (CPX3 versión para

XBOX)Crystal System Emulator: BrezzaSoft Crystal SystemChankast: Emulador de Dreamcast (Sonido y Maple

bus), Naomi (preliminar)MAME (colaboración desde 2004):

Colaboración en CPS2,Neogeo, Model 1, Konami (Protecciones)

Drivers para PGM, Crystal SystemCores para DSPs y CPU de Model 2Sonido para Saturn/Model2 (SCSP) y Dreamcast/Naomi

(AICA)

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 4: Maquinas recreativas, emuladores y MAME

¿Qué hay dentro de una máquina?

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 5: Maquinas recreativas, emuladores y MAME

¿Qué hay dentro de una máquina?Monitor, Amplificador, Fuente de alimentación,

controles…Placa (o placas) de juegoCableado: Sonido, video, controles:

Maquinas antiguas: Conexiones específicas para cada juego

Maquinas recientes (90s): Estándar JAMMA (sonido mono, solo entradas digitales, 2 players, 4 botones)

(Más recientes JVS (JAMMA2) pocas máquinas)Máquinas dedicadas

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 6: Maquinas recreativas, emuladores y MAME

Placas de juegoStandalone. Un juego por placa:

Cambiar el juego=Cambiar la placa.Hardware diferente para cada juego=Código

diferente en el emulador.Mucho trabajo=1 juego.

“Sistemas”. Una placa Base + placa(s) (o cartuchos) con el juegoEl mismo hardware, solo cambian las ROMs=El

emulador solo tiene que cargar las roms apropiadas

Mucho trabajo=muchos juegos (o no, CPS3 6 juegos, Crystal System 3 juegos)

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 7: Maquinas recreativas, emuladores y MAME

Placas de juegoSistemas de juegos:

Cartuchos: SNK (NeoGeo) IGS (PolyGameMaster)

Rom Board: Capcom (CPS1,CPS2) SEGA (System16,System32,Model2,Model3,…) Namco

Disco: Capcom (CPS3) SEGA (Naomi GDRom)

Standalone:Konami (Diseño modular. En MAME librería de

componentes básicos)Mucha info en www.system16.com. Mantenido por

MAMEDevs.Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 8: Maquinas recreativas, emuladores y MAME

Placas de juego

Capcom CPS3 IGS PolyGameMaster

SNK NeoGeo

Capcom CPS2 Sega Model2 A-CRX Konami Mystic Warrior

Crystal System

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 9: Maquinas recreativas, emuladores y MAME

Placas de juego

SF3 2nd Impact (CPS3)

Daytona USA (Model 2)

Knights of Valour Super Heroes (PGM)

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 10: Maquinas recreativas, emuladores y MAME

ROMsAlmacenamiento del juego (programa, gráficos,

sonido) en memorias ROM.Relativamente baja capacidad en la época (max

4MB por chip): Muchos chips para juegos grandes.

¿Por qué no CD? Acceso lento comparado con ROMs.Siempre en marcha. Lo que se mueve se rompe .

Problema de las ROMS: se pueden copiar -> Protección.

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 11: Maquinas recreativas, emuladores y MAME

ROMsDump: Pasar el código almacenado en los

chips de memoria ROM a un archivo.Se usan programadores/lectores de ROMsChips DIP: fáciles. Programadores baratos.Chips SMD: desoldar + adaptadores caros =

que lo hagan los que saben (MAMEDev, The Dumping Project)

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 12: Maquinas recreativas, emuladores y MAME

ROMs

Virtua Fighter 2 (Model 2) Cartucho CPS3 (BIOS + protección)

Cartucho PGM

KOF 2003 (Neogeo PCB)

KOF 99 (Neogeo Cartucho)

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 13: Maquinas recreativas, emuladores y MAME

ProcesadorEjecutar el programa original (Z80, 68k) sobre un

procesador diferente (x86, PowerPC).Emulación aproximadamente un 10% de la

velocidad original: Emular 10Mhz requiere 100Mhz.

El núcleo del emulador (core). Debe funcionar 100% igual que el original (incluyendo errores).

MAME core: Decenas de emulaciones de procesadores testeadas y funcionales.

Sistemas de juegos años 90, lo normal: 68000+Z80

Decenas de emuladores de 68000 y Z80 libres. Gran cantidad de documentación para hacerlos

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 14: Maquinas recreativas, emuladores y MAME

ProcesadorA veces no existe un core ya hecho para el

procesador.Escribirlo usando los manuales de

programación y hardware. Problemas:Puede que ya no estén disponibles para

descarga. Internet Archive (Manuales de HW Video Model 3)

Prototipos o procesadores “clasificados”. Ingeniería Inversa (TGP de model 2/2A)

En japonés (TGPx4 de model 2C)Debe funcionar exactamente igual que el

original. Pequeños errores causan fallos difíciles de encontrar.

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 15: Maquinas recreativas, emuladores y MAME

Mapa de memoria¿Que hay en cada rango de memoria?

RAM, ROMRegistros de vídeo, RAM de vídeo, tilemaps, sprites,

display listsRegistros de sonidoPuertos de E/S (Controles)Protección

Test de memoria del menú de servicio, da pistas sobre qué hay en cada área (a veces).

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 16: Maquinas recreativas, emuladores y MAME

GráficosHardware sistemas 2D:

FramebuffersTilemaps + Sprites

FramebuffersDibujar toda la pantalla cada frame pixel a pixelProcesadores lentos=Haría falta un procesador

dedicado a dibujar (existen sistemas así).Blitters (DMAs de ROM/RAM a Framebuffer con

efectos)

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 17: Maquinas recreativas, emuladores y MAME

Gráficos: TilemapsDibujado por hardware, 0% de CPU.Mosaico de pequeñas piezas.Piezas (Tiles) en ROM, no se pueden cambiar.Gráficos limitados a los tiles existentes en ROM.Mosaico mas grande que la pantalla. Scroll H/V

cambiando un registro. Movimiento “gratis” para la CPU.

Características avanzadasTransparenciaPrioridad mezclada con los spritesLinescroll, ColumnscrollROZ

Se usan para fondos, suelos, texto,…Es algo estándar y con poca variación entre sistemas.

Librería estándar en MAMEZaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 18: Maquinas recreativas, emuladores y MAME

Gráficos: TilemapsPara emularlo, se recorre la memoria igual que el HW y se

pintan las capas una sobre otra empezando por la de mas atrás.

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 19: Maquinas recreativas, emuladores y MAME

Gráficos: SpritesGráficos posicionables en pantalla.Generalmente compuestos de pequeños bloques

(como los tilemaps)Gráficos limitados por los tiles existentes en ROM.Escalado, rotación, transparenciaSe usan para los elementos que se mueven por la

pantalla (personajes, enemigos, disparos…)Varias capas entre los tilemapsNúmero máximo de sprites simultáneos por

pantalla.Igual que los tilemaps, librería genérica en MAME

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 20: Maquinas recreativas, emuladores y MAME

Gráficos: Sprites

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Tilemaps Sprites+

Imagen Final

Page 21: Maquinas recreativas, emuladores y MAME

GráficosCPS1/CPS2: 3 Tilemaps (32x32,16x16,8x8 orden

programable) + SpritesNeoGeo: 1 Tilemap (8x8, fijo) + SpritesPGM: 2 Tilemaps (8x8,16x16 orden fijo) + SpritesCrystal System: BlitterModel2: 2 Tilemaps (8x8 orden programable) + 3D.

Generalmente se dibuja todo por software pixel a pixel (MAME) pero con las tarjetas actuales (Pixel Shader), intentar pasar carga a la tarjeta (Nebula, Model2)

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 22: Maquinas recreativas, emuladores y MAME

Gráficos

Tilemap Texto (mascara)Tilemap Texto (Color)

Sprites (Posición)

Tilemaps Scroll

Final

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 23: Maquinas recreativas, emuladores y MAME

Gráficos: 3DSistemas 3D propietarios. No existían

estándares 3D aun.Generalmente de origen militar. Principios de

los 90.Chips dedicados a operaciones 3D

generalmente prototipos o clasificados.Rasterización:

Software render: Pixel accurate, más lento (MAME)

Direct3D: Menos preciso. Más rápido, aprovecha tarjetas 3D (Model2 Emulator)

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 24: Maquinas recreativas, emuladores y MAME

Gráficos: 3DEvolución de la emulación de 3D del emulador

de Model2

Geometría Color Texturas

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 25: Maquinas recreativas, emuladores y MAME

SonidoAlmacenar el sonido digitalizado en ROM no

era práctico:No existía MP3, grabación del sonido “en bruto”.Ocupa mucho espacio de ROM. Muy caro.

La solución: Almacenar partitura + instrumentos.

Voces y efectos digitalizados en ROM. Compresión ADPCM. Mucha distorsión.

Generalmente un procesador dedicado a manejar sonido.

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 26: Maquinas recreativas, emuladores y MAME

SonidoComponentes “discretos”

Osciladores, filtros, electrónicaLibrería de simulación de redes electrónicas (MAME)Anteriormente, emulación con grabaciones de la máquina

(Samples)FM (Frequency Modulation)

Chips Yamaha.Sonido “electrónico”.MAME: librería completa de chips Yamaha (menos mal).

Sample mixersDiseño propioSonido digitalizadoVarios canales, bucles, frecuencia variable.

Normalmente un procesador aparte dedicado a sonido

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 27: Maquinas recreativas, emuladores y MAME

ProtecciónLas memorias ROM se pueden copiar.Sistemas de juegos. Sólo hacen falta las ROMs

para cambiar de juego.Mercado pirata. Bootlegs.Para evitarlo: Protección anti-copia.Efectos colaterales (involuntarios en la

época): También significa protección anti-emulación.

A veces los piratas también protegían sus versiones, generalmente mejor que el original.

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 28: Maquinas recreativas, emuladores y MAME

ProtecciónDongles (Mochila)

SEGA (System32, Model2, Model3). Infrautilizada, fácil de emular.

EncriptaciónCapcom (CPS2,CPS3), IGS (PGM), SNK (Neogeo),

GaelcoBuscar puntos débiles para extraer los datos

desencriptados (BIOS).Coprocesadores

IGS (PGM), Konami“Adivinar” el funcionamiento a partir de los

parámetros.Si es programable, obtener el programa (tablas sin

bounds check, decapping).Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 29: Maquinas recreativas, emuladores y MAME

ProtecciónExtraer los datos no es fácil:

Datos a pantalla + Fotografía + Teclear a mano (Martial Masters: 16KB a mano).

Conexión Placa <-> PCDecapping + microfotografía

Extracción de programa de protección Martial Masters

Cable de conexión JAMMA <-> Puerto Paralelo de PC

Microfotografía de ROM de MCU de sonido de Namco

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 30: Maquinas recreativas, emuladores y MAME

Cuando todo funcionaEmular características poco usadas del hardware

o que tengan pequeños fallos.Optimización

Profiling: encontrar las funciones críticasOptimización a ensamblador (MMX).No portable.Multiprocesador.

Otras características del emuladorFiltros gráficosSavestates (a veces es bueno tenerlos antes)NetplayTrucos (Cheats)

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 31: Maquinas recreativas, emuladores y MAME

MAME1997: Nicola Salmoria desarrolla un emulador de Pac-

Man para MS-DOS de código abierto.Separa el emulador en una librería genérica +

“Drivers” para los juegos.El proyecto crece y se unen programadores de todo el

mundo.La filosofía de MAME: Documentar el hardware. Poder

jugar es un “efecto secundario”.El objetivo es la máxima precisión de la emulación:

Toda la emulación gráfica por software.Mezcla de sonido por software.

Se intenta que todo sea Pixel Accurate.Portabilidad (DOS, Windows, Mac, Xbox, PDAs …)En general, es mas lento que los emuladores

específicosMiles de juegos emulados

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 32: Maquinas recreativas, emuladores y MAME

MAMECódigo abierto. Cualquiera puede contribuirMAMEDev. Equipo de desarrollo:

Decenas de miembros de todo el mundo (en la lista de desarrollo hay unos 70 miembros)

Casi todos los programadores de emuladores “standalone” están en MAME también.

Un responsable del proyectoNo solo programadores, tambien traductores, dumpers,

grafistas, testers, matemáticosFTP con roms, manuales, documentos, datasheets…Mailing list, IRC (no oficial)Repositorio SVN para el código

En general, una release al mes, con releases intermedias semanales.

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 33: Maquinas recreativas, emuladores y MAME

MAMEEl código abierto presenta algunos problemas

Versiones derivadas con caracteristicas no deseadasUso del código sin permiso en emuladores

comercialesUso no autorizado en maquinas "arcade" multijuegos

(junto con roms)La licencia presenta problemas a la hora de usarla

contra usos no autorizadosLo que se puede denunciar es el uso de la marca

MAME, registrada por Nicola.Es legal MAME? El emulador sí, lo ilegal es la ROM.Algunas empresas de videojuegos han licenciado el

código de MAME para sus recopilaciones (Konami)

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 34: Maquinas recreativas, emuladores y MAME

MAMEEn general todo lo posible está emulado (años

80 y mitad 90)Lo que falta se debe a:

EncriptaciónProtecciónHardware muy complejo (sistemas 3D)Problemas legales

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 35: Maquinas recreativas, emuladores y MAME

MAME Hitos mas importantes

Febrero 1997. Nace el proyecto MAME con el juego PacMan (Z80) Septiembre 1997. Se añade el core para Motorola 68000 (para el

juego Rastan) Enero 1998. Se añade la emulación de los chips FM de yamaha y

drivers para CPS1 Agosto 1998. Se añade soporte para NeoGeo Febrero 1999. Se crea la librería genérica para Tilemaps y Sprites

(antes cada juego tenia su propia implementación) Mayo 2001. La versión de Windows pasa a ser la oficial. Mayo 2003. David Haywood (Haze) pasa a ser el coordinador del

proyecto. Se crean las releases intermedias (u) Abril 2005. Aaron Giles pasa a ser el coordinador del proyecto. Se

comienza a utilizar SVN para mantener el código. Febrero 2007. Se desencripta el sistema CPS2 Junio 2007. Se desencripta el sistema CPS3 Junio 2008. Se emula el World Rally de Gaelco Agosto 2008. Primeros juegos en Laserdisc añadidos a MAME

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 36: Maquinas recreativas, emuladores y MAME

MAMEDonde conseguirlo? www.mamedev.orgInterface de MAME: Línea de comandos, es un poco

"duro" (actualmente también una lista simple de juegos)

FrontEnds: Facilitan el uso del emulador:Lista de juegos con imágenes, historia, datosConfiguración mediante interface (la original, un .ini)Integración en máquinas (sin teclado ni ratón).MAME32, MaLa, EmuLoader…

Información de juegos incluidos en MAME: www.mameworld.net/maws

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

Page 37: Maquinas recreativas, emuladores y MAME

Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)