Emuladores
Ejecutar el programa original sobre hardware diferente. Normalmente sin acceso al fuente original
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
Emuladores
Preservar 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 Arcade
PlayStation Network
Nintendo Virtual Console
Classic Collections
Las empresas de videojuegos apuestan por sagas clásicas, éxito asegurado.
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 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)
¿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
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) con el juego
El 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)
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, información correcta.
Placas de juego
Capcom CPS3
IGS PolyGameMaster
SNK NeoGeo
Capcom CPS2
Sega Model2 A-CRX
Konami Mystic Warrior
Crystal System
ROMs
Pasar el código almacenado en las ROMS 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)
Estructura
Frontend (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):
Procesadores
Chips de sonido
Chips de video
Emulación de máquinas/sistemas (MAME/MESS: Drivers):
Instanciar dispositivos de la librería
Asociar mapas de memoria al emulador del procesador
Conectar chips de la librería (sonido, gráficos) al procesador
Implementar e interconectar los chips específicos al sistema.
Ejecución de procesadores (timeslice)
Procesador
Identificar 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+Z80
Decenas de emuladores de 68k y Z80.
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
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.
Procesador
Registros -> 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
Procesador
Verificación en el Hardware = Correr código en la placa y comparar:
Página siguiente |