Ejemplo n.º 1
0
 public TestCpu(IMmu mmu,
     byte a, byte b,
     byte c, byte d,
     byte e, byte h, byte l,
     ushort sp, ushort pc,
     bool fz, bool fn,
     bool fh, bool fc,
     bool ime)
     : base(mmu)
 {
     A = a;
     B = b;
     C = c;
     D = d;
     E = e;
     H = h;
     L = l;
     SP = sp;
     PC = pc;
     FZ = fz;
     FN = fn;
     FH = fh;
     FC = fc;
     IME = ime;
 }
Ejemplo n.º 2
0
        public Gpu(IMmu mmu, params Color[] palette)
        {
            _mmu = mmu;

            _defaultPalette = new List<Color>()
            {
                Colors.GhostWhite,
                Colors.LightSlateGray,
                Colors.DarkSlateBlue,
                Colors.Black
            };

            for (int i = 0; i < 4; i++)
            {
                if (i < palette.Length)
                {
                    _defaultPalette[i] = palette[i];
                }
            }

            _bgPalette = _defaultPalette.Take(4).ToList();
            _spritePalette = _defaultPalette.Take(4).ToList();

            Reset();
        }
Ejemplo n.º 3
0
 public Console(ICpu cpu, IMmu mmu, IGpu gpu, ITimer timer, IController controller)
 {
     Cpu = cpu;
     Mmu = mmu;
     Gpu = gpu;
     Timer = timer;
     Controller = controller;
     _emitFrames = true;
     _breakpoints = new HashSet<uint>();
 }
Ejemplo n.º 4
0
 public void Execute(Instruction instruction, ICpu cpu, IMmu mmu)
 {
     cpu.Registers.A.Value = cpu.Registers.H.Value;
 }
Ejemplo n.º 5
0
 public void Execute(Instruction instruction, ICpu cpu, IMmu mmu)
 {
     cpu.Stack.Push(cpu.Registers.BC.Value, cpu.Registers, mmu);
 }
Ejemplo n.º 6
0
        public void Execute(Instruction instruction, ICpu cpu, IMmu mmu)
        {
            var nn = cpu.ReadImmediateNN();

            mmu.WriteByte(nn, cpu.Registers.A.Value);
        }
Ejemplo n.º 7
0
 public Controller(IMmu mmu)
 {
     _mmu = mmu;
 }
Ejemplo n.º 8
0
 public Controller(IMmu mmu)
 {
     _mmu = mmu;
 }
Ejemplo n.º 9
0
 /// <summary>
 /// Executes the instruction block.
 /// </summary>
 /// <param name="registers">The registers.</param>
 /// <param name="mmu">The mmu.</param>
 /// <param name="alu">The alu.</param>
 /// <param name="peripheralManager">The peripheral manager.</param>
 /// <returns></returns>
 public InstructionTimings ExecuteInstructionBlock(IRegisters registers,
                                                   IMmu mmu,
                                                   IAlu alu,
                                                   IPeripheralManager peripheralManager) => _action(registers, mmu, alu, peripheralManager) + _staticTimings;
Ejemplo n.º 10
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PrefetchQueue" /> class.
 /// </summary>
 /// <param name="mmu">The mmu.</param>
 public PrefetchQueue(IMmu mmu)
 {
     _mmu = mmu;
     ReBuildCache(0x0000);
 }
Ejemplo n.º 11
0
 public void Execute(Instruction instruction, ICpu cpu, IMmu mmu)
 {
     cpu.Registers.H.Value = mmu.ReadByte(cpu.Registers.HL.Value);
 }
Ejemplo n.º 12
0
 public void Execute(Instruction instruction, ICpu cpu, IMmu mmu)
 {
     throw new NotImplementedException(Mnemonic);
 }
Ejemplo n.º 13
0
 public void Execute(Instruction instruction, ICpu cpu, IMmu mmu)
 {
     cpu.InterruptsEnabled = false;
 }
Ejemplo n.º 14
0
 public Cpu(IMmu mmu) : this()
 {
     _mmu = mmu;
     Reset();
 }
Ejemplo n.º 15
0
 public MmuByteProvider(IMmu mmu)
 {
     _mmu = mmu;
 }
Ejemplo n.º 16
0
 public void Execute(Instruction instruction, ICpu cpu, IMmu mmu)
 {
     mmu.WriteByte(cpu.Registers.HL.Value, cpu.Registers.A.Value);
     cpu.Registers.HL.Value--;
 }
Ejemplo n.º 17
0
 public void Execute(Instruction instruction, ICpu cpu, IMmu mmu)
 {
     // NOP
 }
Ejemplo n.º 18
0
 public Timer(IMmu mmu)
 {
     _mmu = mmu;
 }
Ejemplo n.º 19
0
 public MmuByteProvider(IMmu mmu)
 {
     _mmu = mmu;
 }
Ejemplo n.º 20
0
 public Gpu(IMmu mmu) : this(mmu, null)
 {
 }
Ejemplo n.º 21
0
 public Timer(IMmu mmu)
 {
     _mmu = mmu;
 }
Ejemplo n.º 22
0
 public void Execute(Instruction instruction, ICpu cpu, IMmu mmu)
 {
     cpu.Registers.D.Value = cpu.ReadImmediateN();
 }
Ejemplo n.º 23
0
 /// <summary>
 /// Executes the dma operation.
 /// </summary>
 /// <param name="mmu">The mmu.</param>
 public void Execute(IMmu mmu) => mmu.TransferBytes(SourceAddress, DestinationAddress, Length);
Ejemplo n.º 24
0
 public Cpu(IMmu mmu) : this()
 {
     _mmu = mmu;
     Reset();
 }
Ejemplo n.º 25
0
 public GameBoy(ICpu cpu, IMmu mmu)
 {
     Cpu = cpu;
     Mmu = mmu;
 }
Ejemplo n.º 26
0
 public GameBoy(ICpu cpu, IMmu mmu, ICartridge cartridge) : this(cpu, mmu)
 {
     Cartridge = cartridge;
     Mmu       = mmu;
 }
Ejemplo n.º 27
0
        public void Execute(Instruction instruction, ICpu cpu, IMmu mmu)
        {
            var nn = cpu.ReadImmediateNN();

            cpu.Stack.Call(nn, cpu.Registers, mmu);
        }