Поддержка геймпада для эмулятора Omega Red

Привет всем читателям!

Я продолжаю тему программного эмулятора для PlayStation 1, PlayStation 2 и PlayStation Portable — Omega Red. Более подробно:

  • Новый PS1 графический рендерер для эмулятора Omega Red
  • Omega Red + PS1 эмулятор = Кодзима гений
  • PS2/PSP эмулятор + game play streaming (YouTube, Facebook, Twitch) = новая версия Omega Red
  • PS2/PSP эмулятор + Google Drive + YouTube = «безумие» продолжается
  • Как я подружил PlayStation 2 и PlayStation Portable (спойлер — объединил в один эмулятор)
  • Красный Омега PS2 эмулятор


Данную публикацию я написал в связи с включением поддержки XInput геймпада в свой проект Omega Red.
Добро пожаловать под «кат».

Изначально я разрабатывал проект для Microsoft Surface 3 — да, платформа слабая и i5 обжигает пальцы, но к своему удивлению я обнаружил что интересные мне старые игры запускаются и идут не плохо. По мере работы с кодом для эмуляции touch-pad я решил добавить поддержку геймпада ещё на ранней версии проекта, но более или менее вменяемое решение у меня получилось только недавно.
Зачем я добавил геймпад в touch-pad проект? Из любви к искусству программирования.

Выбор типа игрового контроллера можно осуществить из меню «Игровой контроллер»:
jjcextql3gh1p4ild2bwknmiqao.png
Распознаётся тип подключения (проводной и беспроводной), поддержка обратной отдачи-вибрации и отображение текущей активности геймпада.

Геймпад поддерживает комбинации кнопок для быстрого сохранения и быстрой загрузки:

rxla6kkgqbrh41y0ytxsctdrxnm.png

kimvlcapn3yhyyzcpry4pmo9png.png

В дополнение, я включил поддержку увеличение резкости текстур для PS1 рендерера:

5cbketvs2fvvhmr8galjgwgzwju.png

В настоящий момент программа доступна по ссылке: Omega Red и представлена на GitHub: OmegaRed.

© Habrahabr.ru