Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Emulación y Porting (página 3)




Enviado por Pablo Turmero



Partes: 1, 2, 3

Monografias.com

Sonido
Componentes “discretos”
Osciladores, filtros, electrónica
Librerí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 mixers
Diseño propio
Sonido digitalizado
Varios canales, bucles, frecuencia variable.
Normalmente un procesador aparte dedicado a sonido

Monografias.com

Sonido: Sample mixers
Cargar 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.

Monografias.com

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, Gaelco
“Adivinar” el funcionamiento a partir de los parámetros.
Si es programable, obtener el programa (tablas sin bounds check, decapping).

Monografias.com

Protección
Extraer 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

Monografias.com

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)

Monografias.com

MAME
MAMEDev:
Decenas de programadores de todo el mundo.
Un responsable del proyecto
FTP 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)

Monografias.com

Porting
Convertir un juego de una plataforma a otra, a partir del fuente. Ejemplos:
Dreamcast->Xbox,PS3,PSVita (Jet Set Radio)
Xbox->PS3,PSVita (Fez)
Megadrive->Xbox,PS3 (Sonic CD)
Cada plataforma tiene su propio API (a menudo incompatible incluso entre plataformas del mismo fabricante)
APIs de video no estandar (Xbox si, DirectX)

Monografias.com

Porting
BlitWorks (www.blitworks.com)
Sonic CD: de MegaCD a Xbox,PS3
Jet Set Radio: de Dreamcast a Xbox,PS3,PSVita,PC,iOS,Android
Spelunky: de Xbox a PS3,PSVita
Fez: de Xbox (XNA C#) a PS3,PSVita,PS4 (C++)
Age Of Zombies: de iOS a PSVita

Monografias.com

Porting
Juegos ya existentes y con una rentabilidad “asegurada”.
En teoría poco trabajo pero…
Diferencias de potencia entre plataformas
Los APIs de las consolas son incompatibles entre ellas.
Incluso dentro del mismo fabricante (PS3/PSVita/PS4).
APIs de video propias, acceso directo al hardware.
Intentar desarrollar un framework básico que abstraiga el hardware de la consola.

Monografias.com

Porting
Cada API grafica expone las peculiaridades del hardware:
PS3:
Generación directa de display list a la GPU.
Multiples display lists en paralelo, con call/return entre ellas
Parcheo en memoria de constantes en fragment program.
PSVita:
Cada render target cambia escena (overhead)
Alpha blending en el fragment shader (cache de shaders)
Vertex fetch en vertex shader (cache de shaders)
Todo esto lo abstrae OpenGL en iOS, pero no hay control

Monografias.com

Porting
Jet Set Radio:
Código fuente de Dreamcast.
Datos en blobs binarios con direcciones absolutas de memoria!!, la dreamcast no tenia un SO al uso
Dreamcast: Little endian. Xbox y PS3 big endian. Convertir los datos. Algunos sin el fuente original
Redibujado de algunas texturas en HD
Sonido MIDI en formato propio, grabado de emulador.
Desarrollo de una versión de la librería grafica de Dreamcast para cada target.

Monografias.com

Porting
Jet Set Radio

Dreamcast
4:3 ratio. Max 576i.
30 fps with frequent frame drops

Xbox
16:9 ratio. 720p
30 fps solid

Monografias.com

Porting
Sonic CD:
Al principio se iba a usar la version de MegaCD, parcheada.
Reimplementación casera en scripts del juego original.
Insertar trofeos, records,…
Spelunky
A partir de la versión de Xbox
Shaders complejos. 10fps en vita
Mucho alphablending, costoso en vita

Monografias.com

Porting
Fez
Versión en C#!!, convertir a C++ (C++11)
Reimplementar XNA por cada plataforma!!!
Shaders no optimizados
Mucha geometria, vertex shaders lentos en PS3/Vita : backface culling por CPU
Mucho alpha test (discard): Lento en PSVita
Version xbox: frecuentes saltos (aleatorios) en el framerate debido al GC. En PS3/Vita framerate consistente, determinista.

Partes: 1, 2, 3
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter