add C port, supports hotplugging and multiple adapters (untested), rumble support not done yet