- Про смартфон — цены, обзоры и реальные отзывы покупателей
- Ps2 не работает джойстик
- Что делать, если система не реагирует на аналоговый контроллер DUALSHOCK 2.
- Что делать, если система не реагирует на аналоговый контроллер DUALSHOCK 2?
- Что делать, если функция вибрации аналогового контроллера DUALSHOCK 2 не работает?
- Порт и слот
- Работа с джойстиками
- Работа с DualShock и чувствительность нажатия кнопок
- Вибрация
- Асинхронные функции
- Ближе к концу
- Не работает кнопка
- Дуалшок 4 л2 баттон проблем
Про смартфон — цены, обзоры и реальные отзывы покупателей
На сайте Pro-Smartfon найдёте отзывы и обзоры топовых смартфонов 2017 года. Всё о плюсах и минусах мобильных телефонов. Свежие фотографии, цены и реальные отзывы покупателей о лучших смартфонах
Ps2 не работает джойстик
Что делать, если система не реагирует на аналоговый контроллер DUALSHOCK 2.
Что делать, если система не реагирует на аналоговый контроллер DUALSHOCK 2?
- Убедитесь, что контроллер подключен к системе.
- Убедитесь, что используется лицензированный аналоговый контроллер DUALSHOCK 2. На контроллере должен быть официальный логотип PlayStation. Sony Interactive Entertainment Europe (SIEE) не гарантирует правильной работы нелицензированных дополнительных устройств 1 .
- На работу дополнительных устройств, таких как контроллеры, могут влиять статическое электричество и другие факторы. Выключите систему при помощи выключателя на задней стенке и снова включите ее.
- Если есть возможность, проверьте работу контроллера 2 на другой системе PlayStation 2.
- Если контроллер работает неправильно, возможно, его придется заменить.
- Если контроллер работает нормально, возможно, система PlayStation 2 неисправна.
Что делать, если функция вибрации аналогового контроллера DUALSHOCK 2 не работает?
- Осмотрите упаковку программного продукта формата PlayStation 2, чтобы убедиться, что на ней присутствует значок функции вибрации. Если значок отсутствует, программный продукт не поддерживает функцию вибрации.
- Если на упаковке есть значок функции вибрации, проверьте, что эта функция включена в настройках игры. Если функция вибрации выключена, включите ее и сохраните настройки.
- Проверьте, включен ли аналоговый режим. Нажмите кнопку analog на контроллере, чтобы переключить его из аналогового режима в цифровой и наоборот.
1 Sony Interactive Entertainment Europe (SIEE) рекомендует использовать только оборудование, одобренное и официально лицензированное для использования с продукцией PlayStation. Такое оборудование не причинит вреда вашей системе, а его использование не аннулирует гарантию. Если вы используете оборудование, которое не выпущено и не лицензировано SIEE для использования с PlayStation 2, рекомендуем более не использовать это оборудование.
2 Оригинальный аналоговый контроллер DUALSHOCK может неправильно работать с системой PlayStation 2 при воспроизведении программных продуктов формата PlayStation 2.
Уже неоднократный случай, когда люди ходили в магазин со схожей жалобой, на что получали отказ.
Вот на примере переходника под параллельный порт PC (т. к. не нашел более подходящей схемы), этот контакт вовсе не использовался у «PS2» геймпадов.
Когда я начал писать эту статью, то понял, что глав выйдет на контроллер поболее:
Это сам джойстик, второй джойстик, вибрация и Мультитап (устройство для подключения 4 джойстиков в один порт) – он у меня есть.
Для самого джойстика существует две библиотеки, каждая из которых дает свою информацию.
Я использую 2 оригинальных джойстика Dual Shock 2, однако, у меня есть два не оригинальных джойстика (используются для подключения к компу через спец. Устройство или через мультитап для игры вчетвером), о которых я буду упоминать отдельно.
У каждого контроллера есть так называемый контроллер терминала – это собственно порт, через который вы обращаетесь к контроллеру.
Для управления контроллерами существует специальная библиотека libpad, которая обеспечивает получения данных с кнопок, изменение режима контроллера и вибрацию.
Также существует «обычная» библиотека libmtap. Обе библиотеки могут работать с multitap.
Библиотека поддерживает следующие контроллеры от PS1 и PS2:
Обычный цифровой контроллер (без аналогов): > Dual Shock 1 и Dual Shock 2: > NeGcon контроллер: > Обычный аналоговый джойстик: > Namco пистолет: > Jog контроллер и контроллер рыбалки (сюда, видимо, входит и гитара): Спец. расширенный ID.
Об остальных я буду пополнять информацию по пути.
Порт и слот
Понятия порт и слот – разные вещи в PS2.
Порт указывает на главные контроллеры – те самые для первого и второго джойстика на самой PS2.
Слот используется, в большинстве, когда у вас есть MultiTap. Мультитап нужен для подключения нескольких джойстиков в один порт (максимум — 4). Обычно, в играх это отображается как Joystick 1A, Joystick 1B и т.п.
Если у вас нет мультитапа, то, в принципе, вам и заморачиваться не стоит: порт 0, слот 0 – первый джойстик, порт 1, слот 0 – второй джойстик.
С мультитапом будет по другому: если у вас, скажем, вставлен во второй порт мультитап и к нему подключен джойстик в слот А, то вам требуется обратиться к нему с помощью порт 1, слот 0.
Достаточно подробно это видно на изображении:
На будущее скажу, что также происходит работа с картами памяти.
Работа с джойстиками
Для использования libpad нужно подключить библиотеку «libpad.a» и заголовочный файл «libpad.h».
Для запуска следует использовать во время старта приложения функцию «sceSifLoadModule()».
В makefile должен быть добавлен параметр «–lpad».
Основные процедуры для использования контроллеров:
scePadInit() – инициализация библиотеки. Параметром является 0.
scePadPortOpen() – открытие порта контроллера. Возвращает Его параметрами являются: порт, слот, буфер, который будет использоваться. Должен быть размером 64 байта. Объявляется видом:
static u_long128 pad_dma_buf[scePadDmaBufferMax] __attribute__((aligned (64)));
Где scePadDmaBufferMax – константа, которую объявлять не надо.
Возвращает функция int, по которому вы можете проверить то, что джойстик вставлен – если его нет, то параметр будет равен 0;
Далее библиотека начинает автоматически общаться с контроллером когда контроллер включен и открыт. Далее есть две функции:
scePadRead() – используется для чтения кнопок.
Функция имеет 3 параметра: порт и слот и буфер для сохранения результата.
Буфер представляет из себя unsigned char buffer[32];
Также функция возвращает результат. И если он равен нулю, то чтение зафейлилось.
Далее нам просто надо читать буфер, хоть на самом деле это не просто.
scePadGetState() – с помощью нее можно проверять находится ли контроллер в спокойном состоянии. Принимает параметрами порт и слот.
Возвращает статус контроллера. Если статус больше и равен нулю, а также меньше или равен 7, то что-то произошло.
Для закрытия контроллеров используется функция scePadPortClose(), где параметры порт и слот, и после scePadEnd() выключает библиотеку. Обычно эти две функции не используются.
Добавлю, что все эти функции также используются для чтения аналогов, только если включен режим.
Самый банальный пример будет выглядеть так:
main()
scePadPortClose(0,0);
scePadEnd();
>
* This source code was highlighted with Source Code Highlighter .
Работа с DualShock и чувствительность нажатия кнопок
Для начала требуется включить режим аналогов функцией scePadSetMainMode(). Принимает параметры порт, слот, 1 и 0. Возвращает результат в виде 0 или 1, что значит не включен или включен, соответственно.
Чтобы убедиться, что контроллер действительно DualShock, требуется вызвать функцию scePadInfoPressMode(). Принимает параметры порт и слот, возвращает результат в виде 0 или 1.
Включение самого режима происходит функцией scePadEnterPressMode(). Принимает параметры и возвращает также как и предыдущая функция.
В дальнейшем, через функцию scePadRead() в буфере мы получаем дополнительно еще один байт, в котором степень нажатия кнопок отображены значениями от 0 до 255. Где 0 равен тому, что кнопка не нажата.
Скажу, на заметку, что мой первый джойстик иногда показывает сам силу нажатия до 3.
По спецификации вполне нормальная ошибка движения аналога является плюс-минус 25.
С помощью функции scePadExitPressMode() можно выйти из режима чувствительности клавиш. Принимает он порт и слот. Может понадобиться на переключение в меню.
Если пользователь во время чувствительного режима нажмет на кнопку аналога, то он переключится на обычный цифровой режим без чувствительности. Повторное нажатие на кнопку аналога не переключит джойстик обратно в режим чувствительности.
Вибрация
Вибрация в джойстике достаточно проста и в то же время нет.
Можно подключить для нее отдельную библиотеку, а можно использовать только две функции, которые входят в libpad.
Про другую библиотеку вибрации расскажу в следующий раз, тут же расскажу о достаточно простых двух функциях, это scePadSetActAlign() и scePadSetActDirect(), которые принимают, порт, слот и 6 байт о закручивании.
В первом байте вы указываете сильный мотор или слабый мотор.
Слабый мотор принимает во втором байте значения 0 или 1, что значит остановка или кручение. Сильный мотор принимает во втором байте значение от 1 до 255 или 0, что означает силу кручения или остановка.
Функция scePadSetActDirect() возвращает true или false, говорящие о выполнении операции вибрации. Остальные байты желательно заполнять значением 0xff, если вы их не используете.
После этого джойстик пользователя получит 10 единиц тока для работы вибрации.
Для увеличения количества единиц тока до 20 просто заполните остальные значения 0x00.
Важно!
Надо знать, что каждый порт ограничен максимальным числом единиц тока, равным 60. Если попробовать дать больше 60, то порт может быть заблокирован до перезагрузки консоли (срабатывает внутренний ограничитель).
Таким образом, если у меня стоит мультитап, и на джойстики 1А, 1B и 1C я подам по 20 единиц тока, то на джойстик 1D я не могу уже это сделать, иначе могу заблокировать порт. Поэтому использовать повышенную подачу тока я вам не советую.
Также добавлю, что эти функции не могут использоваться для долгой вибрации.
Асинхронные функции
Следующие функции являются асинхронными. Они могут не вернуть вам результат в тот же момент. В этом случае вы можете получить результат их исполнения через функции scePadGetState() или scePadGetReqState().
scePadSetMainMode – переключение режимов ввода;
scePadSetActAlign – функция вибрации;
scePadEnterPressMode — вход в режим чувствительности нажатия кнопок;
scePadExitPressMode – выход из режима чувствительности нажатия кнопок.
Ближе к концу
Вообще, в принципе, приложение будет дальше работать с портом и слотом, даже если джойстик удален (выключен). Программно проверить что джойстик удален можно с помощью scePadGetState(), которая вернет scePadStateDisconnect.
Перед каждым кадром советуется проверять состояние контроллера, дабы не возникло ситуации, когда джойстик случайно выключился.
Также, в зависимости от версии контроллеров DualShock или DualShock 2, спецификация аналогов может меняться и надеяться на автокалибровку джойстика не стоит. Поэтому чаще всего приходится делать поправки на то, что аналог не остановился в точке 127х127.
На этом все. Увидимся в следующей, более подробной статье о джойстиках.
P.S.: Видя актуальность темы, я писал эту статью пол ночи и утро. Если SDK будет готов к следующей статье, то вместо джойстиков будет описание установки.
Update: Функция scePadInit() нужна только в использовании EE, о котором я и веду речь. IOP инициализирует библиотеку сам.
Источник
Не работает кнопка
Привет, проблема такова, не работает кнопка Ps на геймпаде, по другому можно как то подсоединить геймпад к приставка (PlayStation 4)?
Подошёл уверенно, достал отвёртку, разобрал, нежно потрогал кнопку мультиметром, перепаял
Для начала спроси а он паяльник то в руках держал?И думаешь сумеет нежно и окуратно разобрать?
Ебучие настоящие мужики™ накрутили пафоса вокруг пайки и прочей бытовой инженегрии, взял перепаял, чё сложного, отломает кусок геймпада — перемотает синей изолентой и нормально
Вся проблема это лень в магаз за дешёвым паяльником идти или нет, ну детали ещё
. смотреть без смс и регистрации.
Все понимаю, сделать можно, я к тому что нашел на Авито как говорит продавец, рабочий геймпад но кнопка ps не работает, хотелось бы определить работают ли остальные кнопки, по этому и спрашиваю как включить без нажатия на кнопку ps.
А ты уверен что он не 200 раз паян перепаян?Внешний осмотр тоже может сказать многое.В конце концов встряхни кго несильно и прислушайся.
Геймпад это расходник, на геймпаде с авито может 1 кнопка не работать и ещё 10 находиться при смерти. Бери лучше новый.
Через usb кабель
Просто соединяешь usb геймпад и консоль, играешь. Если я правильно понял твою проблему
Кнопка ps на геймпаде не работаете а, если подсоединить кабель к геймпаду и консоли он ведь заряжать начнет.
Не знаю, как тебе помочь, но чтобы определить работоспособность геймпада, ты можешь подключить его к пк и запустить сайт gamepad-tester.
Источник
Дуалшок 4 л2 баттон проблем
Просто перестала работать. Разобрал, всё порядке, ничего не отходит, всё остальное работает. Приставка не при чём — на ПК то же самое. Там просто хардварно нечему сломаться. Кто-нибудь сталкивался? Я думал купить новый, но так-то я хотел чтобы у меня два было.
Дуалшок 4 л2 баттон проблем
Зер из ноу солюшен.
Там просто хардварно нечему сломаться
Просто перестала работать
может не сама кнопка сломалась, а провода\дорожки ее с основной платой соединяющие
Как это нечему ломаться? Фото механизма в студию пожалуйста.
Л2 нажимает на резинку, которая соприкасается с контактом. Резинка которая нажимает на контакт усохла и не проводит больше электричество попробовать нанести на резинку грифель от карандаша и проверить. Так же проверить сам контакт нет ли там залития какой-нибудь жидкостью, типа сок. Протереть сухой ваткой.
И ещё точно не помню, но если эта кнопка работает от датчика холла, то если он вышел из строя то это будет проблемно дома ремонтировать. Ещё из вариантов, проверить все шлейфы в геймпаде, т.е. выдернуть и протереть спиртом и обратно вставить, может где-то просто отсутствует контакт.
А сдать в ремонт не судьба , чтобы специалисты проверили ?
Ага. Пятилетний геймпад за 30 баксов.
5 летний геймпад , кнопка не работает, почему ?Адекватный ?
Он рассыпаться должен что ли? От пс3 у меня геймпады работают, и от пс2, даже от пс1 думаю тоже. Более того, я думаю джойстик от Атари, которую покупали родители еще в 80-х тоже наверняка до сих пор работает если кто-то захочет это достать и включить. Да и к тому же я слукавил, геймпад в 2017 покупался. ред.
Тебя реальность носом тыкает — он СЛОМАЛСЯ. Ты когда перестанешь это отрицать?)
Уже вангую какую ему цену за ремонт выставят -_- пустая трата
Скорее всего отошел один из контактов, перепроверь, раз уж разобрал. Не может такого быть, что бы механически все было в порядке, а кнопка не работала.
Ну там эти контакты сплошной такой пластинкой, как они отойти могут?
Чувак, такая же беда. Вначале перестал работать DOWN на крестовине потом все кнопки нахой сдохли. Заказывал всю пластину контактную, сразу две заказал, на всякий случай, разобрал-поменял, всё работает. До этого всё протирал, чистил, хертам. Решил для себя что микротрещины, тем более у меня фатка ещё бородатых годов, лет уже хз сколько всему этому делу. Так что AliExpress и вперёд, недорого стоит. Главное правильно версию выбрать, там их около 5-6. До этого кстати заказывал запасные курки и бамперы, и стики заказал железные. Так что тоже советую, пригодятся.
Источник