1 / 37

Maquinas recreativas, emuladores y MAME

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.

tyme
Download Presentation

Maquinas recreativas, emuladores y MAME

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. Emuladores • Ejecutar 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 Arcade • PlayStation Network • Nintendo Virtual Console • ClassicCollections • Ahora las empresas de videojuegos buscan emuladores Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  3. Emuladores • Nebula: CPS1, CPS2, NeoGeo, PGM, Konami • Model2 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 System • Chankast: 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 System • Cores para DSPs y CPU de Model 2 • Sonido para Saturn/Model2 (SCSP) y Dreamcast/Naomi (AICA) Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  4. ¿Qué hay dentro de una máquina? Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  5. ¿Qué hay dentro de una máquina? • Monitor, Amplificador, Fuente de alimentación, controles… • Placa (o placas) de juego • Cableado: 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 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  6. Placas de juego • Standalone. 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 juego • El 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) Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  7. Placas de juego • Sistemas 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. Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  8. Placas de juego Capcom CPS3 IGS PolyGameMaster SNK NeoGeo Capcom CPS2 Sega Model2 A-CRX Konami Mystic Warrior Crystal System Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  9. Placas de juego SF3 2nd Impact (CPS3) Knights of Valour Super Heroes (PGM) Daytona USA (Model 2) Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  10. ROMs • Almacenamiento 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. Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  11. ROMs • Dump: Pasar el código almacenado en los chips de memoria ROM a un archivo. • Se usan programadores/lectores de ROMs • Chips DIP: fáciles. Programadores baratos. • Chips SMD: desoldar + adaptadores caros = que lo hagan los que saben (MAMEDev, The Dumping Project) Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  12. ROMs Cartucho CPS3 (BIOS + protección) Virtua Fighter 2 (Model 2) KOF 2003 (Neogeo PCB) Cartucho PGM KOF 99 (Neogeo Cartucho) Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  13. Procesador • Ejecutar 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 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  14. Procesador • A 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. Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  15. Mapa de memoria • ¿Que hay en cada rango de memoria? • RAM, ROM • Registros de vídeo, RAM de vídeo, tilemaps, sprites, display lists • Registros de sonido • Puertos de E/S (Controles) • Protección • Test de memoria del menú de servicio, da pistas sobre qué hay en cada área (a veces). Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  16. Gráficos • Hardware sistemas 2D: • Framebuffers • Tilemaps + Sprites • Framebuffers • Dibujar toda la pantalla cada frame pixel a pixel • Procesadores lentos=Haría falta un procesador dedicado a dibujar (existen sistemas así). • Blitters (DMAs de ROM/RAM a Framebuffer con efectos) Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  17. Gráficos: Tilemaps • Dibujado 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 avanzadas • Transparencia • Prioridad mezclada con los sprites • Linescroll, Columnscroll • ROZ • Se usan para fondos, suelos, texto,… • Es algo estándar y con poca variación entre sistemas. Librería estándar en MAME Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  18. Gráficos: Tilemaps • Para emularlo, se recorre la memoria igual que el HW y se pintan las capas una sobre otra empezando por la de mas atrás. Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  19. Gráficos: Sprites • Grá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, transparencia • Se usan para los elementos que se mueven por la pantalla (personajes, enemigos, disparos…) • Varias capas entre los tilemaps • Número máximo de sprites simultáneos por pantalla. • Igual que los tilemaps, librería genérica en MAME Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  20. Gráficos: Sprites Tilemaps + Sprites Imagen Final Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  21. Gráficos • CPS1/CPS2: 3 Tilemaps (32x32,16x16,8x8 orden programable) + Sprites • NeoGeo: 1 Tilemap (8x8, fijo) + Sprites • PGM: 2 Tilemaps (8x8,16x16 orden fijo) + Sprites • CrystalSystem: Blitter • Model2: 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) Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  22. Gráficos Sprites (Posición) Tilemap Texto (mascara) Tilemap Texto (Color) Tilemaps Scroll Final Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  23. Gráficos: 3D • Sistemas 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) Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  24. Gráficos: 3D • Evolución de la emulación de 3D del emulador de Model2 Geometría Color Texturas Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  25. Sonido • Almacenar 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. Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  26. Sonido • Componentes “discretos” • Osciladores, filtros, electrónica • Librerí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 mixers • Diseño propio • Sonido digitalizado • Varios canales, bucles, frecuencia variable. • Normalmente un procesador aparte dedicado a sonido Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  27. Protección • Las 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. Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  28. Protección • Dongles (Mochila) • SEGA (System32, Model2, Model3). Infrautilizada, fácil de emular. • Encriptación • Capcom (CPS2,CPS3), IGS (PGM), SNK (Neogeo), Gaelco • Buscar 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). Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  29. Protección • Extraer los datos no es fácil: • Datos a pantalla + Fotografía + Teclear a mano (Martial Masters: 16KB a mano). • Conexión Placa <-> PC • Decapping + 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 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  30. Cuando todo funciona • Emular características poco usadas del hardware o que tengan pequeños fallos. • Optimización • Profiling: encontrar las funciones críticas • Optimización a ensamblador (MMX).No portable. • Multiprocesador. • Otras características del emulador • Filtros gráficos • Savestates (a veces es bueno tenerlos antes) • Netplay • Trucos (Cheats) Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  31. MAME • 1997: 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íficos • Miles de juegos emulados Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  32. MAME • Código abierto. Cualquiera puede contribuir • MAMEDev. 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 proyecto • No solo programadores, tambien traductores, dumpers, grafistas, testers, matemáticos • FTP con roms, manuales, documentos, datasheets… • Mailinglist, IRC (no oficial) • Repositorio SVN para el código • En general, una release al mes, con releases intermedias semanales. Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  33. MAME • El código abierto presenta algunos problemas • Versiones derivadas con caracteristicas no deseadas • Uso del código sin permiso en emuladores comerciales • Uso no autorizado en maquinas "arcade" multijuegos (junto con roms) • La licencia presenta problemas a la hora de usarla contra usos no autorizados • Lo 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) Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  34. MAME • En general todo lo posible está emulado (años 80 y mitad 90) • Lo que falta se debe a: • Encriptación • Protección • Hardware muy complejo (sistemas 3D) • Problemas legales Zaragoza. 13 de Noviembre de 2008 Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

  35. 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)

  36. MAME • Donde conseguirlo? www.mamedev.org • Interface 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, datos • Configuració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)

  37. Máquinas recreativas, emuladores y MAME. Miguel Ángel Horna (ElSemi)

More Related