Actualizado el 2 de Marzo del 2020 (Publicado el 3 de Marzo del 2017)
2.215 visualizaciones desde el 3 de Marzo del 2017
13,8 MB
151 paginas
Creado hace 17a (11/09/2007)
UNIVERSIDAD DE CASTILLA-LA MANCHA
ESCUELA SUPERIOR DE INFORMÁTICA
INGENIERÍA
EN INFORMÁTICA
PROYECTO FIN DE CARRERA
EMULADOR DE GAMEBOY PARA DISPOSITIVOS MÓVILES
Ángel Roldán Carrasco
Septiembre, 2007
UNIVERSIDAD DE CASTILLA-LA MANCHA
ESCUELA SUPERIOR DE INFORMÁTICA
Departamento de Informática
PROYECTO FIN DE CARRERA
EMULADOR DE GAMEBOY PARA DISPOSITIVOS MÓVILES
Autor: Ángel Roldán Carrasco
Director: Carlos Gonzalez Morcillo
Septiembre, 2007
© Ángel Roldán Carrasco. Se permite la copia, distribución y/o modicación de este documento
bajo los términos de la licencia de documentación libre GNU, versión 1.1 o cualquier versión
posterior publicada por la Free Software Foundation, sin secciones invariantes. Puede consultar esta
licencia en http://www.gnu.org.
TRIBUNAL:
Presidente:
Vocal:
Secretario:
FECHA DE DEFENSA:
CALIFICACIÓN:
PRESIDENTE
VOCAL
SECRETARIO
Fdo.:
Fdo.:
Fdo.:
ii
RESUMEN
La emulación consiste en imitar el comportamiento de un sistema hardware o
software sobre otro diferente al primero, de manera que para un observador externo el
segundo sistema se comporte como el primero.
Es una técnica que está a la orden del día. Términos como máquina virtual,
emulador o virtualización se oyen con frecuencia en el ámbito de la informática.
Por otro lado, el mercado de las PDA's y otros dispositivos móviles ha
experimentado un importante crecimiento debido al abaratamiento de costes y el aumento
de sus prestaciones, lo que ha posibilitado el desarrollo de un conjunto de frameworks
alrededor de estos sistemas que permiten el desarrollo de aplicaciones de un modo rápido,
portable y flexible.
Para la arquitectura PC, existen multitud de emuladores de videoconsola, siendo
muchos de ellos software libre. Sin embargo, para dispositivos móviles como PDAs
(Pocket PC o Palm) hay pocas alternativas y muy pocos de ellos son libres. En el proyecto
GINAGE, se pretende desarrollar un emulador libre de Game Boy que sea multiplataforma
para PC y varios dispositivos de tipo PDA.
iii
A mis padres, mi familia y amigos, por apoyarme
en todo momento y tener confianza en mi.
AGRADECIMIENTOS
A Carlos por sus consejos, su tiempo y sus “empujones” periódicos en forma de e-
mails.
A todos los que colaboraron en las pruebas de rendimiento: Ángel, Jose Antonio,
Juan, Miguel Ángel, Carlos y Anastasio.
A Ángel y Jose Antonio por el ánimo que me han dado y por la ayuda prestada.
A todos los que hacen posible que el software libre exista y crezca día a día.
A todos vosotros, muchas gracias.
iv
Índice de contenido
RESUMEN.............................................................................................................................5
Notación............................................................................................................................... 13
Acrónimos............................................................................................................................ 14
Capítulo 1. INTRODUCCIÓN.............................................................................................15
1.1 Antecedentes.............................................................................................................15
1.2 Estructura de éste documento................................................................................... 16
Capítulo 2. OBJETIVOS DEL PROYECTO....................................................................... 18
Capítulo 3. ESTADO DEL ARTE....................................................................................... 19
3.1 Conceptos previos sobre emulación......................................................................... 19
3.1.1 ¿Que es un emulador?.......................................................................................19
3.1.2 Tipos de emuladores......................................................................................... 20
3.1.3 Los emuladores de videoconsola o arcade........................................................ 22
3.1.4 Utilidades comunes de los emuladores............................................................. 26
3.1.5 Aspectos legales................................................................................................26
3.1.6 La obtención de ROMs..................................................................................... 28
3.1.7 Emuladores conocidos de Game Boy para diferentes plataformas................... 32
3.2 Breve historia de las portátiles de 8 bits de Nintendo.............................................. 47
3.3 El hardware de una videoconsola............................................................................. 49
3.3.1 Consolas de 8 y 16 bits..................................................................................... 49
3.3.2 Consolas de 32 bits a las actuales..................................................................... 51
3.4 El hardware de la Game Boy.................................................................................... 52
3.4.1 Introducción...................................................................................................... 52
3.4.2 Diferencias entre Game Boy y Game Boy Color.............................................. 55
3.4.3 CPU...................................................................................................................55
3.4.4 Memoria............................................................................................................60
3.4.5 Hardware de Video........................................................................................... 66
3.4.6 Cartuchos.......................................................................................................... 76
3.4.7 Otros periféricos (no emulados)........................................................................80
Capítulo 4. MÉTODO DE TRABAJO.................................................................................83
4.1 Decisiones de diseño.................................................................................................83
4.1.1 Elección del sistema a emular...........................................................................83
4.1.2 Elección del lenguaje y la plataforma............................................................... 83
4.1.3 Elección del tipo de emulador...........................................................................84
4.1.4 Elección del modelo de desarrollo....................................................................85
4.2 El ciclo de desarrollo en emulación..........................................................................85
4.2.1 Metodología evolutiva orientada a prototipos.................................................. 86
v
4.2.2 Las pruebas....................................................................................................... 87
4.2.3 Ventajas de la metodología evolutiva orientada a prototipos........................... 88
4.3 Arquitectura del sistema........................................................................................... 88
4.3.1 Diagrama de estados genérico...........................................................................92
4.3.2 La clase CPU.....................................................................................................94
4.3.3 La clase Video.................................................................................................102
4.4 Fases en el desarrollo (Algunas iteraciones del modelo)........................................112
4.4.1 Lectura de metadatos de una ROM (cabecera)............................................... 112
4.4.2 Generación del switch de procesamiento de instrucciones.............................113
4.4.3 Comparativa de pintado de imágenes de Ewe y Superwaba...........................113
4.4.4 Implementación de readByte() writeByte() y reset().......................................113
4.4.5 Pruebas de rendimiento de implemetación de instrucciones y Flags..............113
4.4.6 Pruebas de accesos aleatorios a memoria........................................................114
4.4.7 Emulación de la ROM homebrew Apocalipsis Now......................................114
4.4.8 El soporte de Video y E/S............................................................................... 114
4.4.9 Soporte a más homebrew: Game Boy Demo, BigScroller y LandScape........ 114
4.4.10 La reescritura del pintado de la pantalla....................................................... 115
4.4.11 La primera ROM comercial: “Castlevania 2 – Belmont's Revenge”............115
4.4.12 Varias ROMs comerciales funcionando y soporte a GBC............................115
4.4.13 Mejoras en Ewe.............................................................................................115
4.4.14 La creación de la GUI................................................................................... 116
4.4.15 Mejoras......................................................................................................... 116
4.4.16 La versión final............................................................................................. 116
4.5 Consideraciones para mejorar la eficiencia............................................................ 116
4.6 Software utilizado durante el desarrollo................................................................. 117
Capítulo 5. RESULTADOS............................................................................................... 118
5.1 ROMs comerciales soportadas............................................................................... 118
5.2 Comparativa de eficiencia en diferentes arquitecturas........................................... 121
5.2.1 Organización de las pruebas...........................................................
Comentarios de: EMULADOR DE GAMEBOY PARA DISPOSITIVOS MÓVILES (0)
No hay comentarios