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; }
private ushort GetProgramCounter(CHIP8 chip) { return((ushort)typeof(CHIP8).GetField("programCounter", BindingFlags.Instance | BindingFlags.NonPublic) .GetValue(chip)); }