コード例 #1
0
ファイル: EmulatorSDL.cs プロジェクト: jarkkopa/GeemuBoy
        private void HandleInputs()
        {
            IntPtr state = SDL.SDL_GetKeyboardState(out var size);

            InputRegister.Keys keys = InputRegister.Keys.None;
            unsafe
            {
                byte *data = (byte *)state;
                if (data[(int)SDL.SDL_Scancode.SDL_SCANCODE_DOWN] != 0)
                {
                    keys |= InputRegister.Keys.Down;
                }
                if (data[(int)SDL.SDL_Scancode.SDL_SCANCODE_UP] != 0)
                {
                    keys |= InputRegister.Keys.Up;
                }
                if (data[(int)SDL.SDL_Scancode.SDL_SCANCODE_LEFT] != 0)
                {
                    keys |= InputRegister.Keys.Left;
                }
                if (data[(int)SDL.SDL_Scancode.SDL_SCANCODE_RIGHT] != 0)
                {
                    keys |= InputRegister.Keys.Right;
                }
                if (data[(int)SDL.SDL_Scancode.SDL_SCANCODE_A] != 0)
                {
                    keys |= InputRegister.Keys.Start;
                }
                if (data[(int)SDL.SDL_Scancode.SDL_SCANCODE_S] != 0)
                {
                    keys |= InputRegister.Keys.Select;
                }
                if (data[(int)SDL.SDL_Scancode.SDL_SCANCODE_Z] != 0)
                {
                    keys |= InputRegister.Keys.B;
                }
                if (data[(int)SDL.SDL_Scancode.SDL_SCANCODE_X] != 0)
                {
                    keys |= InputRegister.Keys.A;
                }
            }

            cpu.HandleInput(keys);
        }
コード例 #2
0
ファイル: CPU.cs プロジェクト: jarkkopa/GeemuBoy
 public void HandleInput(InputRegister.Keys keys)
 {
     memory.UpdateInputRegister(keys);
 }