Esempio n. 1
0
 public SkipOnKeyState(CHIP8Configuration configuration)
 {
     _keyManager     = configuration.KeyManager;
     _localCode      = 0xE;
     _programCounter = configuration.ProgramCounter;
     _registers      = configuration.Registers;
 }
 public ClearScreenOrReturnFromSubroutine(CHIP8Configuration configuration)
 {
     _localCode      = 0x0;
     _programCounter = configuration.ProgramCounter;
     _screen         = configuration.Screen;
     _stackPointer   = configuration.StackPointer;
 }
Esempio n. 3
0
 public MiscFCodes(CHIP8Configuration configuration)
 {
     _delayTimer          = configuration.DelayTimer;
     _instructionRegister = configuration.InstructionRegister;
     _keyManager          = configuration.KeyManager;
     _localCode           = 0xF;
     _memory     = configuration.Memory;
     _registers  = configuration.Registers;
     _soundTimer = configuration.SoundTimer;
 }
Esempio n. 4
0
 public DrawSprite(CHIP8Configuration configuration)
 {
     _instructionRegister = configuration.InstructionRegister;
     _localCode           = 0xD;
     _memory       = configuration.Memory;
     _registers    = configuration.Registers;
     _screen       = configuration.Screen;
     _screenHeight = configuration.Screen.ScreenHeight();
     _screenWidth  = configuration.Screen.ScreenWidth();
 }
Esempio n. 5
0
        private void RegisterOpCodes(CHIP8Configuration configuration)
        {
            opCodes = new Dictionary <Byte, CHIP8OpCode>();


            AddOpCodeToDictionary <Arithmetic>(configuration);
            AddOpCodeToDictionary <CallSubroutine>(configuration);
            AddOpCodeToDictionary <ClearScreenOrReturnFromSubroutine>(configuration);
            AddOpCodeToDictionary <DrawSprite>(configuration);
            AddOpCodeToDictionary <IncreaseRegisterValue>(configuration);
            AddOpCodeToDictionary <JumpAheadByRegisterValue>(configuration);
            AddOpCodeToDictionary <JumpToLocation>(configuration);
            AddOpCodeToDictionary <LoadValueIntoRegister>(configuration);
            AddOpCodeToDictionary <MiscFCodes>(configuration);
            AddOpCodeToDictionary <RandomValue>(configuration);
            AddOpCodeToDictionary <SetInstructionRegister>(configuration);
            AddOpCodeToDictionary <SkipIfEqualsRegisterValue>(configuration);
            AddOpCodeToDictionary <SkipIfNotEqualToRegisterValue>(configuration);
            AddOpCodeToDictionary <SkipIfRegistersEqual>(configuration);
            AddOpCodeToDictionary <SkipIfRegistersNotEqual>(configuration);
            AddOpCodeToDictionary <SkipOnKeyState>(configuration);
        }
Esempio n. 6
0
        public CHIP8(ICHIP8OpCodesDirector opCodesDirector, CHIP8Configuration configuration)
        {
            _delayTimer = configuration.DelayTimer;
            _generalPurposeRegisters = configuration.Registers;
            _instructionRegister     = configuration.InstructionRegister;
            _memory          = configuration.Memory;
            _opCodesDirector = opCodesDirector;
            _programCounter  = configuration.ProgramCounter;
            _screen          = configuration.Screen;
            _soundTimer      = configuration.SoundTimer;
            _stackPointer    = configuration.StackPointer;

            _cpuTimer = new CHIP8Timer(configuration.CPURefreshRate);
            _cpuTimer.TimerExpired           += CPUTimerExpired;
            _screenRefreshTimer               = new CHIP8Timer(configuration.ScreenRefreshRate);
            _screenRefreshTimer.TimerExpired += ScreenRefreshTimerExpired;


            opCodesDirector.Initialize(configuration);
            LoadFont();

            _cpuTimer.Start();
            _screenRefreshTimer.Start();
        }
 public JumpToLocation(CHIP8Configuration configuration)
 {
     _localCode      = 0x1;
     _programCounter = configuration.ProgramCounter;
 }
Esempio n. 8
0
 public SetInstructionRegister(CHIP8Configuration configuration)
 {
     _instructionRegister = configuration.InstructionRegister;
     _localCode           = 0xA;
 }
Esempio n. 9
0
 public LoadValueIntoRegister(CHIP8Configuration configuration)
 {
     _localCode = 0x6;
     _registers = configuration.Registers;
 }
 public JumpAheadByRegisterValue(CHIP8Configuration configuration)
 {
     _localCode      = 0xB;
     _programCounter = configuration.ProgramCounter;
     _registers      = configuration.Registers;
 }
Esempio n. 11
0
 public void Initialize(CHIP8Configuration configuration)
 {
     RegisterOpCodes(configuration);
 }
Esempio n. 12
0
 public RandomValue(CHIP8Configuration configuration)
 {
     _localCode = 0xC;
     _registers = configuration.Registers;
 }
Esempio n. 13
0
 public IncreaseRegisterValue(CHIP8Configuration configuration)
 {
     _localCode = 0x7;
     _registers = configuration.Registers;
 }
Esempio n. 14
0
 public SkipIfRegistersEqual(CHIP8Configuration configuration)
 {
     _localCode      = 0x5;
     _programCounter = configuration.ProgramCounter;
     _registers      = configuration.Registers;
 }
Esempio n. 15
0
        private void AddOpCodeToDictionary <T>(CHIP8Configuration configuration) where T : CHIP8OpCode
        {
            T activatedOpCode = (T)Activator.CreateInstance(typeof(T), configuration);

            opCodes.Add(activatedOpCode.GetCode(), activatedOpCode);
        }
Esempio n. 16
0
 public CallSubroutine(CHIP8Configuration configuration)
 {
     _localCode      = 0x2;
     _programCounter = configuration.ProgramCounter;
     _stackPointer   = configuration.StackPointer;
 }
Esempio n. 17
0
 public SkipIfNotEqualToRegisterValue(CHIP8Configuration configuration)
 {
     _localCode      = 0x4;
     _programCounter = configuration.ProgramCounter;
     _registers      = configuration.Registers;
 }
Esempio n. 18
0
 public Arithmetic(CHIP8Configuration configuration)
 {
     _localCode = 0x8;
     _registers = configuration.Registers;
 }