“RealPad” DualShock(1,2) gamepad plugin for PCSX2 PS2 emulator
Я использовал борд с микроконтроллером серии STM32F7 с сайта одного знакомого “электронщика”: https://evaluationboard.ru . В борде нет ни чего лишнего и имеется всё необходимое. Например, в нём распаян полностью рабочий программатор ST-Link V2 и установлена микросхема FTDI (USB to COM адаптер), оба они припаяны к хабу, от которого идёт наружу “принтерный” USB разъем. Получаем отладку SWD, UART через 1 кабель и ни каких лишних девайсов/проводов. Остальные плюшки борда можно рассмотреть на сайте, при желании.
Но этого оказалось недостаточно…
Когда всё заработало, я подумал: а что если реализовать мечту “детства” и написать немного кода для некогда часто мной используемого эмулятора PlayStation2 “PCSX2”?
Сделал fork pcsx2 проекта на github, разобравшись (со скрипом, т.к. API очень не интуитивно сделан и не документирован) в API эмулятора, накидал быстро код общения с моим хардварным интерфейсом к геймпадам и назвал проект “RealPad” по аналогии с другими плагинам. “Real” – тут важная часть названия, т.к. подключается настоящий геймпад и по-настоящему читается виртуальной PS2 без дополнительных алгоритмов обработки ввода.
Это самая простая и самая нативная интеграция геймпада, что может быть ) Любая игра может как угодно пользоваться геймпадом – это и чтение данных ввода (любых, включая силу нажатия кнопок) и конфигурация геймпада и т.п.
Disclaimer: код пока что сырой, написан в скоростном режиме как proof of concept. Предстоит его почистить, реализовать правильную выгрузку, поддержку нескольких геймпадов, починить косяк, когда игры не видят контроллер после загрузки быстрого сохранения (F3). А ещё ввод с клавиатуры не работает, когда используется мой плагин, например, не могу использовать “быстрое сохранение” (F1), придётся разобраться что ещё от меня хочет эмулятор.
В дальнейшем выложу и прошивку под STM32, как только её в порядок приведу )