Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las...
-
Upload
thera-serrato -
Category
Documents
-
view
14 -
download
2
Transcript of Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las...
![Page 1: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/1.jpg)
Miguel Ángel Horna (ElSemi)
Zaragoza, 26 de Mayo de 2009
¿Qué es un emulador?¿Qué son las ROMs?
¿Cómo funciona un emulador?
Autor:
![Page 2: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/2.jpg)
EmuladoresEjecutar el programa original sobre hardware
diferente.Para ello, simular el funcionamiento del
Hardware por Software.Pero existe multitud de hardware actual (y
futuro) donde queremos que funcione. Portabilidad.
Proyecto KEEP (Keeping Emulation Environments Portable) http://www.keep-project.eu
![Page 3: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/3.jpg)
EmuladoresPreservar los sistemas antiguos (y los juegos)Datos en ordenadores o soportes que los
sistemas actuales no pueden leer.El resurgir de los juegos clásicos:
XBOX Live ArcadePlayStation NetworkNintendo Virtual ConsoleClassic Collections
Ahora las empresas de videojuegos buscan emuladores
![Page 4: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/4.jpg)
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 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)
![Page 5: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/5.jpg)
¿Qué hay dentro de una máquina?Monitor, Amplificador, Fuente de alimentación,
controles…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
Placa (o placas) de juego
![Page 6: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/6.jpg)
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) con el juegoEl mismo hardware, solo cambian las ROMs=El
emulador solo tiene que cargar las roms apropiadas, el resto del código es igual.
Mucho trabajo=muchos juegos (o no, CPS3 6 juegos, Crystal System 3 juegos)
![Page 7: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/7.jpg)
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, información correcta.
![Page 8: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/8.jpg)
Placas de juego
Capcom CPS3 IGS PolyGameMaster
SNK NeoGeo
Capcom CPS2 Sega Model2 A-CRX Konami Mystic Warrior
Crystal System
![Page 9: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/9.jpg)
ROMs
Virtua Fighter 2 (Model 2) Cartucho CPS3 (BIOS)
Cartucho PGM
KOF 2003 (Neogeo PCB)
KOF 99 (Neogeo Cartucho)
![Page 10: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/10.jpg)
ROMsPasar el código almacenado en las ROMS a un
archivoSe 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)
![Page 11: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/11.jpg)
EstructuraFrontend (MAME: OSD)
Dependiente del sistema operativo, facilita la portabilidad.Cargar las ROMs a memoria.Acceso a video y sonido.Leer controles
Librería de dispositivos (MAME: Core): ProcesadoresChips de sonidoChips de video
Emulación de máquinas/sistemas (MAME/MESS: Drivers): Instanciar dispositivos de la libreríaAsociar mapas de memoria al emulador del procesadorConectar chips de la librería (sonido, gráficos) al procesador Implementar e interconectar los chips específicos al sistema.Ejecución de procesadores (timeslice)
![Page 12: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/12.jpg)
ProcesadorIdentificar el procesador (o procesadores) de
la placa.Conocimiento del lenguaje máquina del
procesador.Desensamblado de ROMs de programa
(DataRescue IDA)MAME core: Decenas de emulaciones de
procesadores testeadas y funcionales.Sistemas de juegos años 90, lo normal:
68000+Z80Decenas de emuladores de 68k y Z80.
![Page 13: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/13.jpg)
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
![Page 14: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/14.jpg)
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.
![Page 15: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/15.jpg)
ProcesadorRegistros -> Struct…Memoria -> Array…El emulador lee una instrucción y ejecuta las acciones
sobre registros y memoria.L/E a memoria (mapa de memoria):
ROM: Devuelve de un array con el contenido leído de las ROMs
RAM: Lee/Escribe a array de datos.Dispositivos: Ejecuta función del emulador.
Parámetros: Dirección a leer/escribir y valor a escribir (o devuelve valor leído).
Interrupciones. Prioridad, colas,…Optimización: Generadores de código, Threaded code,
Recompilación dinámica
![Page 16: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/16.jpg)
ProcesadorVerificación en el Hardware = Correr código
en la placa y comparar:
![Page 17: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/17.jpg)
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).
![Page 18: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/18.jpg)
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)
![Page 19: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/19.jpg)
Gráficos: TilemapsDibujado por hardware, 0% de CPU.Mosaico de NxN piezas de MxM Pixels.Piezas (Tiles) en ROM o RAM.Área de memoria con las casillas.Cada casilla, índice a tile + paleta de color.Gráficos limitados a los tiles existentes.Mosaico mas grande que la pantalla. Scroll H/V
cambiando un registro. Movimiento “gratis” para la CPU.
Dos forma de emularlo:Dibujar al framebuffer todo el tilemap cada frame.Carga en textura y usar D3D para scroll, y mezcla.
También “gratis” para el emulador.
![Page 20: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/20.jpg)
Gráficos: TilemapsCaracterísticas avanzadas
TransparenciaPrioridad mezclada con los spritesLinescroll, ColumnscrollROZ
Modificaciones por interrupciones raster
![Page 21: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/21.jpg)
Gráficos: SpritesDisplay List: Lista de índices en RAM o ROM +
Paleta + posición.Cada sprite, uno o mas tiles.Prioridad, intercalación entre tilemaps.Para emularlo, recorrer la display list y dibujar
tiles al framebuffer.También precargar como texturas y dibujar
quads, (sobre sistemas con 3D potente pero poco procesador (PSP))
![Page 22: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/22.jpg)
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.
![Page 23: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/23.jpg)
GráficosAlmacenamiento en ROM, una pesadilla.Adivinar buscando gráficos conocidos (letras,
números)Cada fabricante su sistema:
CPS1/2: Bit interleaved en 4 roms. 1 bit de cada rom=pixel de 4bpp.
NeoGeo: Byte interleaved en 2 roms. Bloques de 4 bytes, 1 bit de cada byte en el bloque=4bpp
PGM: rom máscaras de pixels visibles + rom de colores (solo los visibles) empaquetados a 5bpp: 6 pixels en 32 bits (2 no usados)
CPS3: Tablas de sustitución de patrones de 2 bytes + compresión RLE. Fue un milagro.
![Page 24: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/24.jpg)
Gráficos
Tilemap Texto (mascara)
![Page 25: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/25.jpg)
Gráficos
Tilemap Texto (Color)
![Page 26: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/26.jpg)
Gráficos
Tilemaps Scroll
![Page 27: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/27.jpg)
Gráficos
Sprites (Posición) Final
![Page 28: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/28.jpg)
Gráficos
![Page 29: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/29.jpg)
Gráficos: 3DDisplay listsDSPs para leer la display list y hacer T&L de
polígonos.Dos opciones:
Emular el DSP. Mas precisa pero mas lenta: MAME.
Estudiar el código del DSP y reescribirlo en el emulador optimizado (Model2 Emulator).
Rasterización:Software render: Pixel accurate, más lento: MAMEDirect3D: Menos preciso. Más rápido, aprovecha
tarjetas 3D. Model2 Emulator.
![Page 30: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/30.jpg)
Gráficos: 3D
Geometría
Evolución de la emulación de 3D del emulador de Model2
![Page 31: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/31.jpg)
Gráficos: 3D
Color
![Page 32: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/32.jpg)
Gráficos: 3D
Texturas
![Page 33: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/33.jpg)
SonidoComponentes “discretos”
Osciladores, filtros, electrónicaLibrería de simulación de redes electrónicas (MAME)
FM (Frequency Modulation)Chips Yamaha.Sonido “electrónico”. Interconexiones programables de generadores de ondas
y moduladores.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
![Page 34: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/34.jpg)
Sonido: Sample mixersCargar ROM de sonido en programa de edición de
audio.Pruebas con diferentes configuraciones de
canales, frecuencia, bits, endianness.PCM,u-Law,a-Law, ADPCM. (Aun no había MP3)Buscar un sample reconocible (meter moneda,
start, sound test en el menú de servicio)Parar el emulador en el punto del juego donde se
genera.Buscar relación registros de sonido con dirección,
frecuencia, etc… del sample encontrado.
![Page 35: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/35.jpg)
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, Gaelco“Adivinar” el funcionamiento a partir de los
parámetros.Si es programable, obtener el programa (tablas sin
bounds check, decapping).
![Page 36: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/36.jpg)
ProtecciónExtraer los datos no es fácil:
Datos a pantalla + Fotografía + Teclear a mano (Martial Masters: 4KB a mano).
Conexión Placa <-> PC (JammaLink, JVSLink )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
![Page 37: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/37.jpg)
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)
![Page 38: Miguel Ángel Horna (ElSemi) Zaragoza, 26 de Mayo de 2009 ¿Qué es un emulador? ¿Qué son las ROMs? ¿Cómo funciona un emulador? Autor:](https://reader035.fdocuments.co/reader035/viewer/2022062511/54d72a6c4979596c658b5a84/html5/thumbnails/38.jpg)
MAMEMAMEDev:
Decenas de programadores de todo el mundo.Un responsable del proyectoFTP con roms, manuales, documentos, datasheets…Mailing list, IRC (no oficial)Repositorio SVN para el código
Estructura:OSD: Frontend y partes de acceso a video y sonido.Core: Librerías de dispositivos comunes (CPUs, chips
de sonido, EEPROMs,…)Drivers: instanciación de dispositivos + mapa de
memoria + emulación de video (también sonido si es específica al HW)