Descargar

Emulación y Porting

Enviado por Pablo Turmero


Partes: 1, 2, 3

    edu.red

    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

    edu.red

    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.

    edu.red

    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)

    edu.red

    ¿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

    edu.red

    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)

    edu.red

    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.

    edu.red

    Placas de juego Capcom CPS3 IGS PolyGameMaster SNK NeoGeo Capcom CPS2 Sega Model2 A-CRX Konami Mystic Warrior Crystal System

    edu.red

    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)

    edu.red

    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)

    edu.red

    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.

    edu.red

    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

    edu.red

    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.

    edu.red

    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

    edu.red

    Procesador Verificación en el Hardware = Correr código en la placa y comparar:

    Partes: 1, 2, 3
    Página siguiente