Задался целью на этих выходных подключить геймпад от PS3 к ПК с win10. Первое, что решил сделать - это то, что все и везде советуют: использовать Motionjoy + DS3 Tool. Мне хватило всего пару раз упереться в рекламный сайт без редиректа, чтобы послать этот способ на все возможные стороны. Погуглив еще немного, нашел на Kotaku статью по подключению разных геймпадов к ПК. Для Dualshock 3 там было два способа и оба они использовали драйвера Motionjoy. Но вот утилиты для работы с геймпадом были разные: DS3 Tool и прямо намекающее Better DS3.
Вариант с Better DS3 отложил на потом и принялся еще гуглить: ну вот было у меня чувство, что должен быть более интересный способ. В итоге набрел на свободный проект ScpToolkit (ранее ScpDriver). Почитал немного мануалов и подумалось, что это лучший вариант. Дело в том, что SCP помимо установки своего драйвера создает сервис в Windows, который подминает под себя bluetooth и драйвера Xbox 360 представляя компьютеру Dualshock 3 (и 4 тоже), как контроллер от 360-й коробишки. То есть, в тех играх, где есть полная поддержка Xbox 360 контроллера, то вы сможете полноценно играть там на Dualshock.
Ну, в общем забурился на целый день с этим Scp и чуть не посидел. Во-первых, проблема была в том, что проект свободный и поддерживаемый по сей день, а это значит, что мануалы и советы из интернета быстро устаревают. (А еще быстро фиксятся баги и появляются новые.) Во-вторых, офф. мануала нет. Есть только определенные доки, которые все же мне очень помогли. И в-третьих: мое оборудование, как оказалось, не поддерживается.
Да, у утилиты (скорее программного пакета) есть список поддерживаемого оборудования и он, честно говоря, маловат. Речь идет о bluetooth устройствах. Полный список есть тут:
https://github.com/nefarius/ScpToolkit/ ... th-Devices. И вот моего bluetooth тут нет. Также мне удалось узнать, что есть проблемы у пользователей win10, т.к. она не дает полный доступ над оборудованием. К слову о первом способе (DS3 Tool + Motionjoy), в инете пишут, что она не дружит с Broadcom'овскими bluetooth, которые очень любит Lenovo.
Еще один момент по поводу поддержки оборудования, а именно контроллеров. Фейковые Dualshock'и не поддерживаются (есть в списке на будущее). Есть, конечно, патч для Scp, но там придется повозится к конфигами и 100% решения не обещают. У кого не офф. контроллер, то стоит почитать это:
https://github.com/nefarius/ScpToolkit/issues/652.
-----
Отойдя немного от темы, напишу, что копаясь в конфигах смог заставить видеть свой bluetooth и он даже стал видеть мой контроллер в утилите ScpPair.exe, но хост не создавался. При этом, даже, ScpDriverInstaller.exe эмулировал установку драйвера для bluetooth, но при этом в списке Initialized он не появился. Может я шел верным путем и не добил до конца, но проверять не хочу ибо у меня сдали нервы и совсем нет настроения продолжать это. Может потом сорсы почитаю, но не уверен, что мне это поможет, т.к. не системщик.
-----
Но повозится с Scp в любом случае придется и в первую очередь из-за отсутствия вменяемых мануалов к нынешним версиям Scp. Поэтому, для всех (в том числе и для моей чудной памяти) пишу короткий мануал с разбором того, что из себя представляет Scp, чтобы потом, если опять все поменяют можно было бы использовать эту писанину как отправную точку.
Итак, первое, что нужно сделать, так это скачать последнюю версию тулкита с офф. репы:
https://github.com/nefarius/ScpToolkit/ ... .238.16010. Или отсюда тестовую версию:
https://github.com/nefarius/ScpToolkit/releases. Установщики беты и стабильной версии отличаются. И писать буду, опираясь на бету 1.7.277, предполагая, что скоро таковой будет стабильная версия.
Ну и конечно же ставим пакеты. Из предложенного списка советую ставить все, кроме того, что unstable, т.к. может пригодиться при дебаге. После установки будет приблизительно такой список пакетов:
- ScpCleanWipe.exe (сброс геймпада - сбрасывает и для плойки тоже),
- ScpDebugInfoCollector.exe (создает логи),
- ScpDriverInstaller.exe (установщик необходимых пакетов),
- ScpGamepadAnalyzer.exe (так и не понял зачем оно),
- ScpMonitor.exe (мониторит подключенные геймпады из сервера Scp),
- ScpPair.exe (утилита для дебага (кажется дебага) bluetooth хоста),
- ScpServer.exe (сервер и основная вещица во всем ScpToolkit для работы с геймпадом после всех настроек),
- ScpService.exe (win-сервис, если правильно понял),
- ScpSettings.exe (ну, тут и так понятно),
- ScpTrayApp.exe (то, что должно убирать ScpServer в Tray, но не делает этого),
- ScpUpdater.exe (ну и тут, думаю, понятно).
Второе, что стоит сделать, так это запустить ScpDriverInstaller.exe, предварительно подключив геймпад по usb (можно и потом, но так вы можете случайно пропустить шаг установки драйвера под Dualshock) и bluetooth приемник. Эта утилита поможет нам установить все необходимые для работы пакеты:
- драйвер для контроллера x360 (лучше поставить ручками, если не стоит),
- драйвер для Dualshock (вот на этом шаге должен быть подключен геймпад),
- драйвер для установки хоста через bluetooth (то, из-за чего у меня не работает Scp - там даже warning надпись есть),
- драйвер для эмулирования контроллера от 360 коробочки,
- win-сервис.
После установки всех необходимых драйверов запускаем ScpServer.exe и ScpMonitor.exe. Подключаем Dualschok и радуемся :) , наверное. В ScpServer.exe можно потестить (вибрацией) подключенный геймпад, предварительно выбрав его, а в ScpMonitor.exe можно уже посмотреть на работу всех кнопочек. На приведенном ниже скриншоте видно в левом верхнем углу, что у меня написано "Host Address : Disconnected" - это и есть мой злополучный bluetooth.
Забавно, но один раз у меня в "Host Address" появлялся мой геймпад (или bluetooth - не запомнил какой там mac был) еще до установки на него драйверов. К сожалению повторить это не смог.
Еще одна забавность в том, что система опознает Dualshok 3 (при подключении по usb) как контроллер, но ничего далее сделать с ним нельзя.
В завершении, думаю, стоит упомянуть, что было в свое время много попыток реализовать драйвера для Dualshock 3 на ПК. Больше всего, как по мне кажется, подобрался к истине драйвер от tamamy, который сейчас уже, наверное, не найти.
Добавлено спустя 55 минут 58 секунд:Попробовал просто поставить Motionjoy. Ставится на win10 только если установить системное время 2014 год (привет мой 2006-й). Геймпад теперь "нормально" определяется по USB как два геймпада, но оба стика хоть и определяются в тестере, но состояние свое не изменяют. Отлично вроде бы, но вот проблема теперь в том, что каждого USB-устройства у меня стало по два-три штуки в системе и постоянно что-то отключается и подключается - бесит. Но больше всего бесит то, что этот драйвер конфликтует с моей USB-мышью.
Далее запустил Better DS3 и понял, что мой bluetooth приемник не работает и здесь. В общем, то что в инете пишут для DS3 Tool + Motionjoy справедливо и для Better DS3 + Motionjoy.
В общем, думаю еще раз вернуться к ScpToolkit и выковырять bluetooth адаптер со старого ноутбука. А там посмотрим, может и Motionjoy буду использовать, ведь с Scp мой Dualshock не работал как xinput или directinput по кабелю, из-за чего настроить его как обычный геймпад не мог.
Добавлено спустя 5 минут 59 секунд:Забыл добавить, что мышь лечится удалением ее драйвера (на нее цепляется Motionjoy driver, после подключения Dualshock) и перетыком. Но это после того, как будет удален из USB геймпад.
Добавлено спустя 11 часов 17 минут 54 секунды:Посмотрел проблему с отваливанием мыши при использовании Motionjoy. Оказывается, мне еще и повезло, т.к. у народа бывает так, что все отваливается, включая клавиатуры. Это говорит о кривом подходе к реализации драйвера, т.к. все офф. геймпады от PS3 имеют один ID. И драйвер похоже подминает под себя устройства не по ID, а по какой-то совокупности параметров. Возможно, это попытка заставить работать фейковые геймпады.
Добавлено спустя 6 часов 7 минут 49 секунд:Вот пару мануалов до кучи по ScpToolkit:
http://www.instructables.com/id/How-to- ... gh-Xinput/http://kunmii.blogspot.com/2015/08/how- ... shodi.htmlПо второй ссылке предлагают использовать утилиту Zidag для решения проблем с bluetooth. Ее я тоже пробовал использовать, но в списке устройств моего приемника нет. Не знаю от чего это: отсутствия поддержки оного или из-за ограничений со стороны win10.