Новый Steam Controller от Valve лишён нативной поддержки XInput: эмуляция возможна, но только пока Steam работает в фоне. Энтузиаст под псевдонимом Safijari предложил решение поизящнее — самодельный проект OpenPuck, позволяющий контроллеру на лету притворяться другими геймпадами. Поддерживаются раскладки Xbox, PlayStation и даже Nintendo, причём независимо от компьютера.

Оригинальный приёмник Steam Controller 2Источник изображения — tomshardware.com

OpenPuck — это прошивка с открытым исходным кодом для микроконтроллера, превращающая отладочную плату в самодельный приёмник. Она перехватывает сырые данные с контроллера и обрабатывает их прямо на устройстве, обеспечивая полноценную эмуляцию в реальном времени без участия Steam Input.

Что понадобится для сборки

Готовые решения на рынке есть, но автор обошёлся платой Pro Micro NRF52840 с модулями Bluetooth и 2,4 ГГц. Порядок действий несложный: перевести плату в режим DFU, подключить по USB-C, перетащить на неё скетч Arduino — и микроконтроллер мгновенно становится приёмником. Для приличного внешнего вида корпус можно напечатать на 3D-принтере.

Плата микроконтроллера Pro Micro с прошивкой OpenPuckИсточник изображения — tomshardware.com

реклама кормит Уточку 🦆

Скетч выложен на странице проекта на GitHub. После прошивки настройка идёт через конфигуратор — простой веб-сайт, использующий WebUSB. Там переключаются режимы: Switch Pro, Xbox, DualSense и DualShock 4. Заявленная задержка — всего 1 мс.

Тонкости по консолям

Режим Switch работает на консоли нативно, с гироскопом и тактильной отдачей; при желании можно прикинуться Hori Pad, отключив эти функции. Режимы PlayStation действуют только на ПК, за одним исключением: специальный режим DualShock 3 работает напрямую с PlayStation 3, включая гироскоп и вибрацию. Стандартный режим Steam Controller, разумеется, тоже никуда не делся.

реклама кормит Уточку 🦆

Переключение между частью режимов делается прямо с геймпада — одновременным нажатием всех четырёх задних кнопок и затем A, B, X или Y. Для режимов PlayStation придётся зайти в веб-конфигуратор. После настройки контроллер ведёт себя ровно как официальный геймпад соответствующей платформы — даже без запущенного Steam.

Веб-конфигуратор OpenPuck с выбором режимов эмуляцииИсточник изображения — tomshardware.com

Бонус: Steam Deck как геймпад

У проекта есть подпроект ReversePuck, позволяющий использовать Steam Deck в качестве внешнего контроллера с поддержкой почти всех функций Steam Controller — кроме хватов. Схема такая: прошить вторую плату, подключить её к консоли и транслировать её встроенные органы управления по каналу 2,4 ГГц на ПК с приёмником. Получается фактически ещё один Steam Controller, только с экраном.

реклама кормит Уточку 🦆

Практическая ценность у затеи выше, чем кажется на первый взгляд. Речь не только об играх вне Steam: такой приёмник открывает дорогу к эмуляторам, консолям и любому софту, ожидающему стандартный геймпад. Плата обходится в пределах пары тысяч рублей, а сборка сводится к перетаскиванию файла — без пайки и без компиляции. Единственное, о чём стоит помнить: эмуляция чужих контроллеров на актуальных консолях всегда живёт на птичьих правах и может перестать работать после очередного системного обновления.