Ejemplo n.º 1
0
        public MainWindow()
        {
            displayDictionary = new Dictionary <Point, Rectangle>();

            for (var x = 0; x < 64; x++)
            {
                for (var y = 0; y < 32; y++)
                {
                    var point = new Point(x,
                                          y);

                    displayDictionary[point] = null;
                }
            }

            var registers = new RegisterModule();

            emulator = CHIP8Factory.GetChip8(DisplayEmulatorScreen,
                                             registers,
                                             new StackModule(),
                                             new MemoryModule(Enumerable.Repeat <byte>(0x0,
                                                                                       4096)));

            emulator.ToneOn  += this.ToneOn;
            emulator.ToneOff += this.ToneOff;

            var bytes = File.ReadAllBytes("pong.ch8");

            emulator.LoadProgram(bytes);

            InitializeComponent();

            this.KeyDown += MainWindow_KeyDown;
            this.KeyUp   += MainWindow_KeyUp;
        }
Ejemplo n.º 2
0
 private ushort GetProgramCounter(CHIP8 chip)
 {
     return((ushort)typeof(CHIP8).GetField("programCounter",
                                           BindingFlags.Instance | BindingFlags.NonPublic)
            .GetValue(chip));
 }