struct Gamepad : Controller { enum : uint { Up, Down, Left, Right, A, B, C, X, Y, Z, Start, }; Gamepad(uint port); auto readData() -> uint8 override; auto writeData(uint8 data) -> void override; boolean select; boolean latch; };