tidied up experimental mode
slight optimization - no point scanning controller keys if keyboard not changed any states