Автор Тема: Подключение приставочных джойстиков через USB  (Прочитано 227567 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 7528
    • Просмотр профиля
Цитата: masyanya;155009
Ого... чё-то я какой-то злой...:)
Ну пришлите кто-нить мультитап, а я в ответ готовое устройство... А?
Блин, ну чего ты завелся? Я же сказал - в пятницу.

Оффлайн masyanya

  • Пользователь
  • Сообщений: 545
  • Пол: Мужской
  • ...there's no knowledge that is not power...
    • Youtube
    • Просмотр профиля
Эт я от жары пухну...:cranky: (ну я жа когда писал ещё не знал что ты в пятницу потопаешь.... :jumpy: ) ...это.... спасибо кстати... за помощь...
Добавлено через 23 часа 59 минут
[/I]Народ!!! Какой репорт сделать для джойстиков в аналоговом/цифровом режиме для переходника?
... сейчас в аналоговом режиме используется:
крестовина - HAT
левый стик - X:Y
правый стик - Z:Rz (ось Z, вращение по оси Z)
кнопки - 10 как в джоях у меня и ещё по докам + 2 (r.s, l.sw - у меня такого нет, но всёравно сделал)
В цифровом:
крестовина - X:Y
кнопки - 10 + 2 (r.s, l.sw)
Переходник сам детектит тип джойстика и выбирает дескриптор сам.
Мож чего поменять? Как удобнее-то сделать?
« Последнее редактирование: 12 Июль 2007, 13:47:19 от masyanya »

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24712
    • Просмотр профиля
Да, вроде, нормально. Сколько я видел готовых - они так и сделаны

Оффлайн andrey20111987

  • Пользователь
  • Сообщений: 101
  • Пол: Мужской
    • Просмотр профиля
по идеи должнобыть так :
аНАЛОГОВЫЙ РЕЖИМ
крестик: X и Y
левый аналог -вращения кнопка 11
правый анлог - РОV кнопка 12
как у сайтека
 
в цифровом :
левый аналог -Z и rZ
правый анлог - POV
крестик: X и Y
 
и кнопки - start-9 Select-10
 
,а можно добавить в софт возможность выбирать настройку аналога самостоятельно!!! как в PSX дровах
« Последнее редактирование: 13 Июль 2007, 21:31:52 от andrey20111987 »

Оффлайн Олег

  • Пользователь
  • Сообщений: 155
  • Пол: Мужской
    • Просмотр профиля
Выбираю вариант масяни.

Оффлайн masyanya

  • Пользователь
  • Сообщений: 545
  • Пол: Мужской
  • ...there's no knowledge that is not power...
    • Youtube
    • Просмотр профиля
to andrey20111987
Цитата
в цифровом :
левый аналог -Z и rZ
правый анлог - POV

Цитата
цифровом

Цитата
аналог

 ЭТО КАК? :cranky:

Оффлайн andrey20111987

  • Пользователь
  • Сообщений: 101
  • Пол: Мужской
    • Просмотр профиля
аналоги -это две пипачки на джоойстике
а аналоговый и цифровой режимы включаются кнопкой Analog на  джойчтике и индикатором режимов является потухший или светящийся светодиод.

Оффлайн masyanya

  • Пользователь
  • Сообщений: 545
  • Пол: Мужской
  • ...there's no knowledge that is not power...
    • Youtube
    • Просмотр профиля
ДА БЛ... какие аналоги могут быть в цифровом режиме... В ЦИФРОВОМ РЕЖИМЕ НИКАКИХ "ПИПОЧЕК" НЕТ!!! Цифровой режим это:
* SCPH-1110(analog stick : digital mode)
| 4th byte | L  | DW | R  | UP | ST |  1 |  1 |SEL |
| 5th byte | [] |  X  |  O | <| | R1 | L1 | R2 | L2 |
Аналоговый это:
* SCPH-1110(analog stick : analog mode)
| 4th byte | L  | DW | R  | UP | ST |r.sw|l.sw|SEL |
| 5th byte | [] |  X |  O | <| | R1 | L1 | R2 | L2 |
| 6th byte | r handle L<->R  L:00h,C:80h,R:FFh     | left,right
| 7th byte | r handle U<->D  U:00h,C:80h,D:FFh     | up,down
| 8th byte | l handle L<->R  L:00h,C:80h,R:FFh     | left,right
| 9th byte | l handle U<->D  U:00h,C:80h,D:FFh     | up,down
Последние 4-ре байта это аналоговые "ПИПАЧКИ". В цифровом режиме их нет!!!
А это ещё что?
Цитата
левый аналог -вращения кнопка 11
правый анлог - РОV кнопка 12

Крутишь левый аналог 11-ая кнопка срабатывает
Крутишь правый аналог 12-ая кнопка и POV срабатывает...
Цитата
и кнопки - start-9 Select-10

А остальные тогда кнопки как?
Если уж до мелочей хочешь распиши подробно
[] : 1-ая кнопка
X : 2-ая кнопка
O : 3-ая кнопка
<| : 4-ая кнопка
и так далее...
Извини конечно... но них..я я не понял...

Добавлено через 2 минуты
В любом случае... спасиба за содействие. :)
« Последнее редактирование: 16 Июль 2007, 10:22:11 от masyanya »

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 7528
    • Просмотр профиля
masyanya, под "пипочками" есть тоже кнопки. По одной на "пипочку".

Оффлайн masyanya

  • Пользователь
  • Сообщений: 545
  • Пол: Мужской
  • ...there's no knowledge that is not power...
    • Youtube
    • Просмотр профиля
Ах вот блин откуда берутся r.sw и l.sw.... всё!!! Понял!!!

Оффлайн sergi

  • Пользователь
  • Сообщений: 1651
    • ВКонтакте
    • Просмотр профиля
Уже продаются свободно в принципе переходники PS2/PS3 Converter
Т.е. PS2 то USB к компу

Без драйверов втыкаешь - Винда сама определяет
И работает - правда пока коряво и аналоговый режим постоянно включен

Стоит 500 р всего

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24712
    • Просмотр профиля
Цитата: masyanya
Ах вот блин откуда берутся r.sw и l.sw....
Они же R3 и L3. Правда, на приставке работают только в аналоговом режиме.

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24712
    • Просмотр профиля
Аналоговый:
крест = POV
L стик = ОсьX / Ось Y
R стик = Ось Z / Вращение вокруг оси Z
L3 = 11
R3 = 12

Цифровой:
крест = ОсьX / Ось Y
L стик = нет
R стик = нет
L3 = нет
R3 = нет

Оффлайн sergi

  • Пользователь
  • Сообщений: 1651
    • ВКонтакте
    • Просмотр профиля
Самое чего забавно что этот девайс как раз точно такое же диалоговое окно показывает абсолютно
Оно универсально походу для аналоговых джойстиков
А вибрацию предполагает - никто не в курсе?

Оффлайн andrey20111987

  • Пользователь
  • Сообщений: 101
  • Пол: Мужской
    • Просмотр профиля
МОДЕР ИСПРАВЬ ОФОРМЛЕНИЕ АТО ПЛ текста невидно!!!!

Цитата: masyanya;156256
ДА БЛ... какие аналоги могут быть в цифровом режиме... В ЦИФРОВОМ РЕЖИМЕ НИКАКИХ "ПИПОЧЕК" НЕТ!!! Цифровой режим это:
* SCPH-1110(analog stick : digital mode)
| 4th byte | L | DW | R | UP | ST | 1 | 1 |SEL |
| 5th byte | [] | X | O | <| | R1 | L1 | R2 | L2 |
Аналоговый это:
* SCPH-1110(analog stick : analog mode)
| 4th byte | L | DW | R | UP | ST |r.sw|l.sw|SEL |
| 5th byte | [] | X | O | <| | R1 | L1 | R2 | L2 |
| 6th byte | r handle L<->R L:00h,C:80h,R:FFh | left,right
| 7th byte | r handle U<->D U:00h,C:80h,D:FFh | up,down
| 8th byte | l handle L<->R L:00h,C:80h,R:FFh | left,right
| 9th byte | l handle U<->D U:00h,C:80h,D:FFh | up,down
Последние 4-ре байта это аналоговые "ПИПАЧКИ". В цифровом режиме их нет!!!
А это ещё что?
 
Крутишь левый аналог 11-ая кнопка срабатывает
Крутишь правый аналог 12-ая кнопка и POV срабатывает...
 
А остальные тогда кнопки как?
Если уж до мелочей хочешь распиши подробно
[] : 1-ая кнопка
X : 2-ая кнопка
O : 3-ая кнопка
<| : 4-ая кнопка
и так да
 
 :)

 
Не ..уя в цифровом режиме стики могут работать как аналоги! Ведь Рюмику както удалось в цифровом режиме повесить на стик на ось ХУ. Почитай его программу через блокнотик.
 
А ещё лучше сделать софт в делфи под переходник чтоб можнобыло выставлять самостоятельно все оси. Как в дровах к лрт PSXpad
« Последнее редактирование: 17 Июль 2007, 09:17:08 от andrey20111987 »

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 7528
    • Просмотр профиля
Цитата: andrey20111987;156441
Не ..уя в цифровом режиме стики могут работать как аналоги! Ведь Рюмику както удалось в цифровом режиме повесить на стик на ось ХУ. Почитай его программу через блокнотик.

Блин, да скока повторять: в цифровом режиме САМ ДЖОЙСТИК не отдаст состояние аналогов! А то что у Рюмика все повешано всегда на аналоги - это тока так комп видит, но они не будут двигаться когда джой не в аналоге. Совместимость - штука жестокая.

Оффлайн masyanya

  • Пользователь
  • Сообщений: 545
  • Пол: Мужской
  • ...there's no knowledge that is not power...
    • Youtube
    • Просмотр профиля
HardWareMan - RESPECT. Я бы сам лучше не написал бы...:)
20 - ого будет MultiTap и, ->
Цитата
софт в делЬфи под переходник
Хер-то, ТОЛЬКО С,С++ или на крайняк #C, "DELPHI - программирование для баб" - это не я сказал это сказал Никлаус Вирт (Niclaus Wirth). Кто не знает, известен как создатель языка Pascal. Мож ещё на FORTRAN'e набабахать? Где я тебе найду DDK под дельфи? (Тут на каком то стайте в форуме надыбал вопрос, - "Где найти дизассемблер чтоб сразу в код паскаля переводил программы?", ржал под столом... типа где найти? мне так проще в програмном коде разбираться. :rofl:  SORRY за OFFTOP)
Цитата
Самое чего забавно что этот девайс как раз точно такое же диалоговое окно показывает абсолютно
Оно универсально походу для аналоговых джойстиков

Так, к делу, штоб развеять весь бред по поводу...ну в общем щас понятно будет.
Почему же почему независимо от того в каком режиме находится джойстик мы видим X, Y, Z, Rz, 12 buttons, POV? А всё веселье в том, что любое HID устройство для USB, способно сообщать свои аппаратные возможности только один раз, при включении. Вот оно и сообщает сразу максимум, чтоб в последствии не "обосраться". На примере,  (мне почемуто всегда казалось что живой пример значительно лучше чем долгая болтовня "на тему"):
В любом, в том числе и в моем устройстве, прежде чем сообщать состояние джойстика драйверу мы должны вначале определится со структурой информационного пакета определяющего состоянии джойстика. Это делает REPORT_DESCRIPTOR, и высылается он по требованию от хоста GET_REPORT_DESCRIPTOR, у меня он выглядит так:
.db 0x05, 0x01    ; USAGE_PAGE (Generic Desktop)
.db 0x09, 0x04    ; USAGE (Joystick)
.db 0xa1, 0x01    ; COLLECTION (Application)
.db 0xa1, 0x01    ; COLLECTION (Logical)
.db 0x85, 0x01    ; REPORT_ID (1)
.db 0x75, 0x01    ; REPORT_SIZE (1)
.db 0x15, 0x00    ; LOGICAL_MINIMUM (0)
.db 0x35, 0x00    ; PHYSICAL_MINIMUM (0)
.db 0x09, 0x01    ;USAGE (Pointer)
.db 0x95, 0x0C    ;REPORT_COUNT (12)
.db 0x05, 0x09    ;USAGE_PAGE (Button)
.db 0x19, 0x01    ;USAGE_MINIMUM (Button 1)
.db 0x29, 0x0C    ;USAGE_MAXIMUM (Button 12)
.db 0x81, 0x02    ;INPUT (Data,Var,Abs)
.db 0x95, 0x01    ;REPORT_COUNT (1)
.db 0x75, 0x04    ;REPORT_SIZE (4)
.db 0x25, 0x07    ;LOGICAL_MAXIMUM (7)
.db 0x46, 0x3b, 0x01;PHYSICAL_MAXIMUM (315)
.db 0x66, 0x14, 0x00;UNIT (Eng Rot:0x114)
.db 0x05, 0x01    ;USAGE_PAGE (Generic Desktop)
.db 0x09, 0x39    ;USAGE (Hat switch)
.db 0x81, 0x42    ;INPUT (Data,Var,Abs,Null)
.db 0x95, 0x04    ;REPORT_COUNT (4)
.db 0x75, 0x08    ;REPORT_SIZE (8)
.db 0x26, 0xff, 0x00 ;LOGICAL_MAXIMUM (255)
.db 0x46, 0xff, 0x00 ;PHYSICAL_MAXIMUM (255)
.db 0x09, 0x32    ;USAGE (Z)
.db 0x09, 0x35    ;USAGE (Rz)
.db 0x09, 0x30    ;USAGE (X)
.db 0x09, 0x31    ;USAGE (Y)
.db 0x81, 0x02    ;INPUT (Data,Var,Abs)
.db 0xc0            ;END_COLLECTION
.db 0xc0                ;END_COLLECTION

А если коротко, то так:
Если первый байт = 1 (нужно для того чтобы рулить несколькоми подключенными джоями, или если в один репрт не влазит), то это состояние джойстика для данного репорта,
следующие 12 бит состояние кнопок,
затем 4 бита состояние HAT(POV),
затем 1 байт - Z
затем 1 байт - Rz
затем 1 байт - X
затем 1 байт - Y
Исходя из репорта, состояние "ничё не нажато" будет выглядеть так:
0-----1-----2----3----4----5
0х01 0х00 0х80 0х80 0х80 0х80
Ну и к чему я всё это, а к тому, что репорт мы сообщаем 1 раз, а переключить джойстик можно из аналогового в цифровой или наоботот режим и после сообщения репорта, вот поэтому и при инициализации высылается "максимальный " репорт, а потом устройиство само в зависимости отрежима работы джоя крнфигурит информативный пакет. То есть у меня например в цифровом режиме 2-ой и 3-ий байт всегда 0х80, а направления Х и У могут быть только 0,0х80,0хFF и складываются в 4-ый и 5-ый байты, а в аналоговом я направления засовываю в HAT (POV). А левый стик в 4-ый и 5-ый байты информативного пакета. Можно конечно и репорт менять в зависимости от того в каком режиме джой, тока постоянно придется перевтыкать USB, то бишь лазить под стол, или постоянно выбырать конфигурацию... помоему так полная жопа.
Короче, намудрил я чё-то, но надеюсь понятно...
« Последнее редактирование: 17 Июль 2007, 12:13:45 от masyanya »

Оффлайн andrey20111987

  • Пользователь
  • Сообщений: 101
  • Пол: Мужской
    • Просмотр профиля
тогда что ме кажется
я обрал схему и когда подключил то при негоревшем светодиоде левый стик отвечал за ХУ а правый был 13,14,15,16.Батоны
а при аналоговом режиме ,горящем светодиоде левый стик отвечал за вращение, а правый стик за ХУ



А что насчет софта. Будет?
« Последнее редактирование: 17 Июль 2007, 11:46:57 от andrey20111987 »

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24712
    • Просмотр профиля
Я тоже не понял. Это мой же скриншот. А где 128 кнопок?
Менять репорт не вижу смысла - и правда гемор

Добавлено через 5 минут
Что до Рюмика...
Радио №1, 2007, стр 30:
"...PSX - 12 кнопок, 1 ось и две ручки управления, причем две кнопки и обе ручки действуют только в "аналоговом" режиме..."
« Последнее редактирование: 17 Июль 2007, 22:15:26 от Rumata »

Оффлайн masyanya

  • Пользователь
  • Сообщений: 545
  • Пол: Мужской
  • ...there's no knowledge that is not power...
    • Youtube
    • Просмотр профиля
Цитата
Я тоже не понял. Это мой же скриншот. А где 128 кнопок?

Ну я просто сказал что это окошечко прикольно выглядит, а если ставишь 128 кнопок ими весь этот диалог "замощается" и и когда его (этот диалог) собственно открываешь, винда секунды 4-ре живет, а потом вываливается в синий экран смерти... так что я собственно скриншот сделать не успею... короче, не заморачивайтесь... :)
Вплотную подошел к написанию дров..., а точнее уже по ним иду...
3499-05486[/ATTACH]
А вообще-то честно-говоря уже поднадоедает... я чего... единственный знаком с программированием... на форуме...... Мож поможет кто? Ну эт конечно не означает что я не доделаю...
« Последнее редактирование: 18 Июль 2007, 13:33:12 от masyanya »

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24712
    • Просмотр профиля
Цитата: masyanya
короче, не заморачивайтесь...
Так бы сразу и сказал :)
Цитата: masyanya
я чего... единственный знаком с программированием... на форуме...
Очень может быть. Ведь это всё же эмуляционный форум. Тем более, что речь идет не о программировнии "вообще", а о программировании микроконтроллеров, а именно Atmel AVR. На самом деле, специалистов в данной области даже вне форума не слишком много.
Короче - взялся за гуж - полезай в кузов :)

Оффлайн masyanya

  • Пользователь
  • Сообщений: 545
  • Пол: Мужской
  • ...there's no knowledge that is not power...
    • Youtube
    • Просмотр профиля
:) Да в общем-то в контроллер прошивку я написал, с дровами лажа... не совсем понимаю (...а точнее совсем непонимаю... ) как совместить в одном "флаконе" устройство передачи данных и HID,  по идее пишем драйвер шины, затем HID минидрайвер, но вот сможет ли приложение уровня RING3 достучатся до драйвера шины, шоб читать карточки памяти, пока идет пулинг (то бишь опрос джойстиков)? ....непонятно.... если не сможет, то тогда данные читать придется посредствам HID минидрайвера... тоже, честно-говоря, - сомнительное предприятие... в упор не понимаю как DINPUT и куда сообщает винде данные о Force Feedback... и как отконвертировать эффекты Standart Force F... в DUALSHOCK2...:blush:
Ну эт я к тому, что если каждый поищет чего-нить на эту тему... как-то мне мож полегче будет... ну пжалуйста... а? :)
« Последнее редактирование: 19 Июль 2007, 09:07:39 от masyanya »

Оффлайн andrey20111987

  • Пользователь
  • Сообщений: 101
  • Пол: Мужской
    • Просмотр профиля
а вобще вариант использовать уже написаные дрова для LPT (скачатьздесь http://vtasu.3dn.ru/load/27-1-0-97 ) PSXPAD и при их радоте прослотреть все обращения к джою и отдаче.

Ещё просьба сделать ещё схему для THQP Версии Атмеги (та которая маленькая)

Оффлайн masyanya

  • Пользователь
  • Сообщений: 545
  • Пол: Мужской
  • ...there's no knowledge that is not power...
    • Youtube
    • Просмотр профиля
Цитата
   а вобще вариант использовать уже написаные дрова для LPT (скачатьздесь http://vtasu.3dn.ru/load/27-1-0-97 ) PSXPAD и при их раБоте просМотреть все обращения к джою и отдаче.

Во первых, чем смотреть, во вторых это написано для FDO, а мне надо PDO, то бишь HID USB. Исходники PSXPAD может быть бы и помогли... а так...
Не
Цитата
THQP

а TQFP.

Оффлайн tav

  • Пользователь
  • Сообщений: 120
  • Пол: Мужской
    • Просмотр профиля
masyanya а как насчет джоя GameCube? Мне кажется, он самый удобный. И обратная связь там прикольней "ощущается". :cool:

P.S. Насчет удобности и обратной связи прошу не пинать, это мое мнение. Имею и Куб и ЗЫЗ, сравнивал.

Оффлайн masyanya

  • Пользователь
  • Сообщений: 545
  • Пол: Мужской
  • ...there's no knowledge that is not power...
    • Youtube
    • Просмотр профиля
Ну мысль хорошая, тока надо этот проект сначала закончить... а то щас понахватаю и заглохнет всё... <_<

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 7528
    • Просмотр профиля
Цитата: masyanya;156920
Ну мысль хорошая, тока надо этот проект сначала закончить... а то щас понахватаю и заглохнет всё...

Да-да! Я лично заинтереснован в картридере. И не дам заглохнуть теме.
« Последнее редактирование: 19 Июль 2007, 16:01:53 от HardWareMan »

Оффлайн sergi

  • Пользователь
  • Сообщений: 1651
    • ВКонтакте
    • Просмотр профиля
А в картридере чего заинтересованы?

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 7528
    • Просмотр профиля
Цитата: sergi;156945
А в картридере чего заинтересованы?
1. Я инициатор.
2. Мне нужен картридер/врайтер ЗЫЧевских карточек. LPT уже не канает, нужен USB.

Оффлайн masyanya

  • Пользователь
  • Сообщений: 545
  • Пол: Мужской
  • ...there's no knowledge that is not power...
    • Youtube
    • Просмотр профиля
to HardWareMan
Ну вот тока скорости копирования на таком устройстве будут "ошеломляющие"... pooling+чтение:(