USB Sega gamepad

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
dasich
Открыл глаза
Сообщения: 73
Зарегистрирован: Ср июн 17, 2015 20:20:44

Re: USB Sega gamepad

Сообщение dasich »

Reloader, есть игры на андройде, типа contra evolution, в которых невозможно переназначить кнопки. Нужен человек, который смог бы разобраться с кнопками в коде.
Аватара пользователя
Reloader
Мучитель микросхем
Сообщения: 451
Зарегистрирован: Сб фев 26, 2011 14:38:42
Откуда: Новочеркасск

Re: USB Sega gamepad

Сообщение Reloader »

Нужен человек...

почему бы вам не стать этим человеком? )

Ну или здесь оставить сообщение. можа кто и откликнется

Добавлено after 13 minutes 4 seconds:
dasich, я туть немного погуглил..
Вот ссыль на 4PDA.
Думаю именно то что вам и нужно.

"С помощью этой программы можно подключить джойстик к устройству и играть с контроллером даже в те игры, которые по-умолчанию не поддерживают его. У программы есть два режима работы: 1. переназначение кнопок на манипуляторе; 2. транслирование действий (нажатия, свайпы, круговые и бесконечные и т.п.) с манипулятора на дисплей устройства (для этого потребуются рут права)."


сам не тестировал да и ненужно мне.
Думаю если вы поищите то найдёте достаточно программ которые всё же смогут переназначать кнопки. Вы не один с такой проблемой в мире столкнулись.
Более того я считаю что это более оптимальный вариант - вдруг вы захотите использовать другой геймпад )
Выпрямите спину и уберите левую руку от лица.
Мой Youtube канал
dasich
Открыл глаза
Сообщения: 73
Зарегистрирован: Ср июн 17, 2015 20:20:44

Re: USB Sega gamepad

Сообщение dasich »

Reloader, а я начал код копать :lol:
Спасибо, доберусь до консоли, опробую и отпишусь.
dasich
Открыл глаза
Сообщения: 73
Зарегистрирован: Ср июн 17, 2015 20:20:44

Re: USB Sega gamepad

Сообщение dasich »

Отписываюсь... Не работает! Джойстик не видится. Другой софт тоже пробовал, так же не работает. Пока подзабил.
dasich
Открыл глаза
Сообщения: 73
Зарегистрирован: Ср июн 17, 2015 20:20:44

Re: USB Sega gamepad

Сообщение dasich »

Все таки пришлось по изучать код... Мне конечно это не помогло, contra evolution все так же не управляема.
Находим в исходниках файл twelve.c В нем находим метод static void twelveUpdate(void)
Нас интересует вот этот кусок кода
if (data[0] & 0x02) // btn 0 - START
last_read_controller_bytes[2] |= 0x01;

if (data[0] & 0x01) // btn 1 - MODE
last_read_controller_bytes[2] |= 0x02;

if (data[1] & 0x20) // btn 2 - Z
last_read_controller_bytes[2] |= 0x04;

if (data[1] & 0x10) // btn 3 - Y
last_read_controller_bytes[2] |= 0x08;

if (data[1] & 0x08) // btn 4 - X
last_read_controller_bytes[2] |= 0x10;

if (data[1] & 0x04) // btn 5 - C
last_read_controller_bytes[2] |= 0x20;

if (data[1] & 0x02) // btn 6 - B
last_read_controller_bytes[2] |= 0x40;

if (data[1] & 0x01) // btn 7 - A
last_read_controller_bytes[2] |= 0x80;

Красным выделены переменные посылаемые при нажатии кнопок. Меняем их в нужном нам порядке, компилим и льем в мегу. Вот и все.

В андройде кнопки прописаны по пути system\usr\keylayout\Generic.kl

key 304 BUTTON_A
key 305 BUTTON_B
key 306 BUTTON_C
key 307 BUTTON_X
key 308 BUTTON_Y
key 309 BUTTON_Z
key 310 BUTTON_L1
key 311 BUTTON_R1
key 312 BUTTON_L2
key 313 BUTTON_R2
key 314 BUTTON_SELECT
key 315 BUTTON_START
key 316 BUTTON_MODE
key 317 BUTTON_THUMBL
key 318 BUTTON_THUMBR

Код кнопок MODE и START не нашел. Бьются какие-то L1/LB и R1/RB(0x80/0x40)
Аватара пользователя
ApTu(T
Опытный кот
Сообщения: 859
Зарегистрирован: Ср апр 13, 2011 02:13:43

Re: USB Sega gamepad

Сообщение ApTu(T »

С весны лежат 2 новых джойстика, 2 штуки atmega8-16au, фоторезист, плёнка для печати, программатор, текстолит, 2 флакона перекиси, лимонная кислота...
Только бери да делай.

Изображение

Вот у меня вопрос, джойстики у меня с turbo/slow, если я просто приделаю 2 контактные плошадки к свободному входу меги, потом в коде же можно будет отловить их замыкание на землю, и уже сами кнопки потом проверять. Кстати в оригинальном(китайском) джойстике земли 2, на кнопки ABCXYZ одна, на остальные другая.
Если замкнуто turbo, тогда при зажатии кнопок ABCXYZ отправлять нажатие/отжатие быстро, если slow - тогда медленно, если ничего - тогда в обычном режиме.

Посмотрел разводку от dasich, к моим джойстикам не подходит, кнопки смещены по другому, ну думаю подвину...
Аватара пользователя
Reloader
Мучитель микросхем
Сообщения: 451
Зарегистрирован: Сб фев 26, 2011 14:38:42
Откуда: Новочеркасск

Re: USB Sega gamepad

Сообщение Reloader »

Вот у меня вопрос, джойстики у меня с turbo/slow, если я просто приделаю 2 контактные плошадки к свободному входу меги, потом в коде же можно будет отловить их замыкание на землю


Исходники открыты и доступны по ссылке). Можете сделать если вам хочется. Сам я с турбо джойстиками ни разу в жизни не играл (если не считать верхние кнопки на Денди)
Выпрямите спину и уберите левую руку от лица.
Мой Youtube канал
Аватара пользователя
ApTu(T
Опытный кот
Сообщения: 859
Зарегистрирован: Ср апр 13, 2011 02:13:43

Re: USB Sega gamepad

Сообщение ApTu(T »

Чем их скомпилировать? Скачал avr-gcc 12, полез в гугл, а там просто ничего нет.
dasich
Открыл глаза
Сообщения: 73
Зарегистрирован: Ср июн 17, 2015 20:20:44

Re: USB Sega gamepad

Сообщение dasich »

ApTu(T, я юзал WinAVR-20100110
Аватара пользователя
ApTu(T
Опытный кот
Сообщения: 859
Зарегистрирован: Ср апр 13, 2011 02:13:43

Re: USB Sega gamepad

Сообщение ApTu(T »

Я что уже только не пробовал, и студию и это, всё с ошибками компилит.
dasich
Открыл глаза
Сообщения: 73
Зарегистрирован: Ср июн 17, 2015 20:20:44

Re: USB Sega gamepad

Сообщение dasich »

ApTu(T, проверяйте у себя. Переустановил, накатил патч, скомпилил.
Изображение
Аватара пользователя
ApTu(T
Опытный кот
Сообщения: 859
Зарегистрирован: Ср апр 13, 2011 02:13:43

Re: USB Sega gamepad

Сообщение ApTu(T »

Ау меня:

Код: Выделить всё

D:\usb_game>make Makefile all
make: Nothing to be done for `Makefile'.
avr-gcc -Wall -Os -Iusbdrv -I. -mmcu=atmega8 -DF_CPU=12000000L  -c usbdrv/usbdrv.c -o usbdrv/usbdrv.o
avr-gcc -Wall -Os -Iusbdrv -I. -mmcu=atmega8 -DF_CPU=12000000L  -x assembler-with-cpp -c usbdrv/usbdrvasm.s -o usbdrv/usbdrvasm.o
avr-gcc -Wall -Os -Iusbdrv -I. -mmcu=atmega8 -DF_CPU=12000000L  -c usbdrv/oddebug.c -o usbdrv/oddebug.o
avr-gcc -Wall -Os -Iusbdrv -I. -mmcu=atmega8 -DF_CPU=12000000L  -c main.c -o main.o
avr-gcc -Wall -Os -Iusbdrv -I. -mmcu=atmega8 -DF_CPU=12000000L  -c twelve.c -o twelve.o
avr-gcc -Wall -Os -Iusbdrv -I. -mmcu=atmega8 -DF_CPU=12000000L  -c devdesc.c -o devdesc.o
avr-gcc -Wall -Os -Iusbdrv -I. -mmcu=atmega8 -DF_CPU=12000000L  -o main.bin usbdrv/usbdrv.o usbdrv/usbdrvasm.o usbdrv/oddebug.o main.o twelve.o devdesc.o -Wl,-Map=main.map
rm -f main.hex main.eep.hex
avr-objcopy -j .text -j .data -O ihex main.bin main.hex
./checksize main.bin
      0 [main] sh 9796 sync_with_child: child 2108(0x340) died before initialization with status code 0xC0000142
    161 [main] sh 9796 sync_with_child: *** child state waiting for longjmp
D:\usb_game\checksize: fork: Resource temporarily unavailable
make: *** [main.hex] Error 128
dasich
Открыл глаза
Сообщения: 73
Зарегистрирован: Ср июн 17, 2015 20:20:44

Re: USB Sega gamepad

Сообщение dasich »

Так у вас проблема указана

Код: Выделить всё

      0 [main] sh 9796 sync_with_child: child 2108(0x340) died before initialization with status code 0xC0000142
    161 [main] sh 9796 sync_with_child: *** child state waiting for longjmp
D:\usb_game\checksize: fork: Resource temporarily unavailable

Откуда исходник? Что в нем правили?

Сейчас посмотрел, исходник на сайте тот же. Но у вас жалуется на 0 и 161 строчку файла main. Я предлагаю смотреть в ваши правки. Ну либо дайте мне ваши исходники я попробую их откомпилировать, чтобы исключить компилятор.
Аватара пользователя
ApTu(T
Опытный кот
Сообщения: 859
Зарегистрирован: Ср апр 13, 2011 02:13:43

Re: USB Sega gamepad

Сообщение ApTu(T »

Из второго поста, и из первоисточника, всё одинаково, с ошибками.
Ничего не правил.
Я 12 версией avr-gcc компилил.

Добавлено after 1 hour 14 minutes 37 seconds:
Удаляю main.hex и main.bin.
И каждый раз при компиляции он на разные строки ругается.
162, 754, 169...
dasich
Открыл глаза
Сообщения: 73
Зарегистрирован: Ср июн 17, 2015 20:20:44

Re: USB Sega gamepad

Сообщение dasich »

Тогда не знаю, пробуйте мой https://www.dropbox.com/s/1gmhwukee8zam ... R.rar?dl=0
Аватара пользователя
ApTu(T
Опытный кот
Сообщения: 859
Зарегистрирован: Ср апр 13, 2011 02:13:43

Re: USB Sega gamepad

Сообщение ApTu(T »

Да я править буду, у меня и выводы на другие ноги идут, вернее я уже наковырял, давно, что аж забыл и теперь надо заново всё смотреть.
Дело в том, что у меня даже заведомо рабочий не компилится.
dasich
Открыл глаза
Сообщения: 73
Зарегистрирован: Ср июн 17, 2015 20:20:44

Re: USB Sega gamepad

Сообщение dasich »

ApTu(T, я дал вам winavr, с которым компилится оригинальный исходник
Аватара пользователя
ApTu(T
Опытный кот
Сообщения: 859
Зарегистрирован: Ср апр 13, 2011 02:13:43

Re: USB Sega gamepad

Сообщение ApTu(T »

Ааа, спасибо, сейчас попробую. ))

Добавлено after 1 hour 6 minutes 53 seconds:
Неа. Тут вообще нет кнопки "[Win Avr] make all" в меню tools.
dasich
Открыл глаза
Сообщения: 73
Зарегистрирован: Ср июн 17, 2015 20:20:44

Re: USB Sega gamepad

Сообщение dasich »

Похоже проблема у вас в microsoft visual c++
Изображение
Аватара пользователя
ApTu(T
Опытный кот
Сообщения: 859
Зарегистрирован: Ср апр 13, 2011 02:13:43

Re: USB Sega gamepad

Сообщение ApTu(T »

У меня до этого эта же версия стояла, там были кнопки. Я переустановил на эту, и теперь нет.

Добавлено after 25 minutes 47 seconds:
Тупанул, я открыл не тот, я просто русифицированную версию блокнота ставил, она оказалась обычной.
ну не суть. Сейчас удалил, почистил реестр, временные файлы, перезагрузился, установил, опять перезагрузился.

Код: Выделить всё

> "make.exe" all
avr-gcc -Wall -Os -Iusbdrv -I. -mmcu=atmega8 -DF_CPU=12000000L  -c usbdrv/usbdrv.c -o usbdrv/usbdrv.o
avr-gcc -Wall -Os -Iusbdrv -I. -mmcu=atmega8 -DF_CPU=12000000L  -x assembler-with-cpp -c usbdrv/usbdrvasm.s -o usbdrv/usbdrvasm.o
avr-gcc -Wall -Os -Iusbdrv -I. -mmcu=atmega8 -DF_CPU=12000000L  -c usbdrv/oddebug.c -o usbdrv/oddebug.o
avr-gcc -Wall -Os -Iusbdrv -I. -mmcu=atmega8 -DF_CPU=12000000L  -c main.c -o main.o
avr-gcc -Wall -Os -Iusbdrv -I. -mmcu=atmega8 -DF_CPU=12000000L  -c twelve.c -o twelve.o
avr-gcc -Wall -Os -Iusbdrv -I. -mmcu=atmega8 -DF_CPU=12000000L  -c devdesc.c -o devdesc.o
avr-gcc -Wall -Os -Iusbdrv -I. -mmcu=atmega8 -DF_CPU=12000000L  -o main.bin usbdrv/usbdrv.o usbdrv/usbdrvasm.o usbdrv/oddebug.o main.o twelve.o devdesc.o -Wl,-Map=main.map
rm -f main.hex main.eep.hex
avr-objcopy -j .text -j .data -O ihex main.bin main.hex
./checksize main.bin
      0 [main] sh 1208 sync_with_child: child 3736(0x324) died before initialization with status code 0xC0000142
  37771 [main] sh 1208 sync_with_child: *** child state waiting for longjmp
D:\Project\checksize: fork: Resource temporarily unavailable
make.exe: *** [main.hex] Error 128

> Process Exit Code: 2
> Time Taken: 00:02


То же самое.

Добавлено after 2 minutes 50 seconds:
Может я не так делаю, я просто пустой проект winavr создал в папке с исходниками, чтобы блокнот путь видел, и нажал сборку.
Ответить

Вернуться в «Интеграция с ПК»