Checkpoint virtual mouse.
Add scrolling.
Move some joypad events to different tick events for better handling.
Refactor movement/button handling