Ejemplo n.º 1
0
Archivo: gb.cs Proyecto: vggonz/csgbe
 /// <summary>Constructor</summary>
 /// <param name="nombreCartucho">Ruta al fichero de la ROM</param>
 public GB(string nombreCartucho)
 {
     // Crea el cartucho, memoria y procesador con los parametros por defecto
     _cartucho = Cartucho.cargarCartucho(nombreCartucho);
     Debug.WriteLine(_cartucho.info());
     Debug.WriteLine();
     _memoria = new Memoria(Constantes.MEMSIZE, _cartucho);
     _cpu = new CPU(_memoria, Constantes.CPU_SPEED);
 }
Ejemplo n.º 2
0
Archivo: CPU.cs Proyecto: vggonz/csgbe
 /// <summary>Constructor</summary>
 /// <param name="memoria">Memoria</param>
 /// <param name="velocidad">Velocidad en MHz</param>
 public CPU(Memoria memoria, double velocidad)
 {
     _memoria = memoria;
     _registros = new Registros();
     _MHZ = velocidad;
     _graphics = new Graphics(_memoria);
     _ciclos = new int[3];
     _bp = new System.Collections.ArrayList();
     reset();
 }
Ejemplo n.º 3
0
 /// <summary>Actualiza la direccion de memoria adecuada segun la matriz de teclas solicitada con el estado
 /// actual de las teclas</summary>
 /// <param name="memoria">Memoria</param>
 public static void actualizar(Memoria memoria)
 {
     byte joypad = memoria.ram[JOYPAD];
     joypad &= 0xF0;
     // Segun la peticion, se actualiza la memoria con las teclas apropiadas
     switch(joypad){
         case 0x30: joypad = 0x3F; break;
         case 0x20: if (!_teclas[0]) joypad |= 0x08; // Down
                if (!_teclas[1]) joypad |= 0x04; // Up
                if (!_teclas[2]) joypad |= 0x02; // Left
                if (!_teclas[3]) joypad |= 0x01; // Right
                break;
         case 0x10: if (!_teclas[4]) joypad |= 0x08; // Start
                if (!_teclas[5]) joypad |= 0x04; // Select
                if (!_teclas[6]) joypad |= 0x02; // B
                if (!_teclas[7]) joypad |= 0x01; // A
                break;
     }
     // Accede directamente al array de la memoria para evitar bucles infinitos con las funciones de gestion
     // del acceso a memoria
     memoria.ram[JOYPAD] = joypad;
 }
Ejemplo n.º 4
0
 /// <summary>Constructor</summary>
 /// <param name="registros">Registros de la CPU</param>
 /// <param name="memoria">Memoria</param>
 public Instruccion(Registros registros, Memoria memoria)
 {
     _registros = registros;
     _memoria = memoria;
 }
Ejemplo n.º 5
0
 /// <summary>Constructor</summary>
 /// <param name="registros">Registros de la CPU</param>
 /// <param name="memoria">Memoria</param>
 public Instruccion(Registros registros, Memoria memoria)
 {
     _registros = registros;
     _memoria   = memoria;
 }
Ejemplo n.º 6
0
 /// <summary>Constructor</summary>
 /// <param name="memoria">Memoria</param>
 public Graphics(Memoria memoria)
 {
     _memoria = memoria;
 }