Автор Тема: Джой для сеги на ардуино  (Прочитано 7446 раз)

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

Оффлайн demolition.nick

  • Пользователь
  • Сообщений: 776
  • Пол: Мужской
    • ВКонтакте
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #30 : 13 Август 2018, 00:09:33 »
всё бы ничего, только посмотри что у AVR есть со столькими свободными GPIO и ты сам вернёшься к выпиливанию капли из джоя
а так уверенно я говорю потому что твоя идея пришла мне в голову ещё тогда, когда ты только заикнулся про микрухи джоев для своей портативке в теме про MD350. я ещё тогда прикинул как это будет выглядеть в микрике, посмотрел продукцию atmel'a и взвесил все за и против  ;)
И какие "против"? Я могу повторить всё что писал выше.

Добавлено позже:
Валяются у меня 2 платы с Atmega16
« Последнее редактирование: 13 Август 2018, 00:25:52 от demolition.nick »

Оффлайн megavolt85

  • Пользователь
  • Сообщений: 1464
  • Пол: Мужской
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #31 : 13 Август 2018, 00:26:17 »
И зачем нам прерывания по 20 мкс

потому что джой шестикнопочный и сразу после прерывания по низкому уровню SEL нужно заводить таймер на 20-25 мкс, если за это время не прелетит прерывание по SEL, то работаем в режиме трёх кнопочного

ATmega8, 23 GPIO. Тоже мало?

может и достаточно, но не рентабельно, рублей 80 мега + кварц + керамика, а джой 135 стоит

И какие "против"?

цена + размер = неоправданное создание проблем для себя самого

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24660
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #32 : 13 Август 2018, 00:44:02 »
может и достаточно, но не рентабельно, рублей 80 мега + кварц + керамика, а джой 135 стоит
Блин, ну автор же давно озвучил свои условия.
неоправданное создание проблем для себя самого
Ну тут лучшее решение - вообще ничего не делать :lol:

потому что джой шестикнопочный и сразу после прерывания по низкому уровню SEL нужно заводить таймер на 20-25 мкс, если за это время не прелетит прерывание по SEL, то работаем в режиме трёх кнопочного
Я, видимо, что-то не улавливаю. Определение режима делается один раз. Или нет?

Оффлайн megavolt85

  • Пользователь
  • Сообщений: 1464
  • Пол: Мужской
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #33 : 13 Август 2018, 02:00:39 »
Определение режима делается один раз. Или нет?

тут как бы не совсем определение режима.

SET_L_1: D0 = вверх, D1 = вниз, D2 = 0,        D3 = 0 ,         D4 = A, D5 = START
SET_H_1: D0 = вверх, D1 = вниз, D2 = влево, D3 = вправо, D4 = B, D5 = C
SET_L_2: D0 = 0,        D1 = 0,      D2 = 0,        D3 = 0,          D4 = A, D5 = START
SET_H_2: D0 = Z,       D1 = Y,       D2 = X,        D3 = MODE,   D4 = 1, D5 = 1
SET_L_3: D0 = 1,       D1 = 1,       D2 = 1,        D3 = 1,          D4 = A, D5 = START

1) начало цикла
2) пока SEL в высоком уровне выводим SET_H_1 и ждём прерывания по SEL
3) если прилитело прерывание по низкому уровню SEL выводим SET_L_1
4) ждём 20 микросекунд, если SEL перешёл в высокий уровень, то выводим SET_H_1, иначе ждём пока SEL в низком уровне и переходим в начало
5) ждём 20 миллисекунд, если SEL перешёл в низкий уровень, то выводим SET_L_1, иначе переходим в начало
6) ждём 20 микросекунд, если SEL перешёл в высокий уровень, то выводим SET_H_1, иначе ждём пока SEL в низком уровне и переходим в начало
7) ждём 20 миллисекунд, если SEL перешёл в низкий уровень, то выводим SET_L_2, иначе переходим в начало
8) ждём 20 микросекунд, если SEL перешёл в высокий уровень, то выводим SET_H_2, иначе ждём пока SEL в низком уровне и переходим в начало
9) ждём 20 миллисекунд, если SEL перешёл в низкий уровень, то выводим SET_L_3 , иначе переходим в начало
10) ждём перехода SEL в высокий уровень и возвращаемся в начало

ну собственно я уже и расписал всю логику программы, осталось перевести это в код  :lol:
единственно надо будет поиграть ожиданием в 20 микросекунд, думаю надо начинать с 30 мкс
« Последнее редактирование: 13 Август 2018, 09:44:38 от megavolt85 »

Оффлайн Skay

  • Пользователь
  • Сообщений: 4115
  • Пол: Мужской
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #34 : 13 Август 2018, 09:14:13 »
Раньше статью находил про устройство и сигналы сеговских джоев, щас найти не могу. Мб кто поделится?
Ты про эту  ? http://www.emu-land.net/forum/index.php/topic,8876.msg1327061.html#msg1327061

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 7422
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #35 : 13 Август 2018, 18:18:23 »
Ммм. Теперь я понимаю причину несовместимости некоторых китайских 6-ти кнопочных джойстиков с некоторыми 3х кнопочными играми (вроде того же Golden Axe). Оригинальный или качественный клон 6ти кнопочного считает импульсы для переключения на расширенные кнопки, а некачественный клон тупо имеет одновибратор задержки от первого импульса. Таким образом, Если на оригинальный или качественный клон подать длинный импульс SYN то они всё равно отдадут базовые кнопки, а если на некачественный - то он через некоторое время после активации вместо базовых кнопок начнет отдавать расширенные. Замечу, что в рекомендации программирования заявлены установки программных задержек при управлении сигналом SYN (обычна пара-тройка команд NOP, или производить другие необходимые вычисления).

Оффлайн demolition.nick

  • Пользователь
  • Сообщений: 776
  • Пол: Мужской
    • ВКонтакте
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #36 : 13 Август 2018, 21:21:39 »
Да уж. Врядли я это осилю

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24660
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #37 : 13 Август 2018, 21:39:03 »
Да, ещё один момент. Попадались китайские джойстики, которые в игре определялись как 3-кнопочные.
И ещё. Кнопка MODE. Удерживаемая при старте системы она должна однозначно перевести джойстик в 3-кнопочный режим, даже если игра в состоянии работать с 6-кнопочным.

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 7422
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #38 : 13 Август 2018, 21:50:34 »
И ещё. Кнопка MODE. Удерживаемая при старте системы она должна однозначно перевести джойстик в 3-кнопочный режим, даже если игра в состоянии работать с 6-кнопочным.
Уточнение: при подаче питания на джой. Т.е., можно просто перетыкнуть с зажатым MODE. Но производитель запрещает перетыкать на включенную, и мы безоговорочно придерживаемся этих правил, правда?

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24660
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #39 : 13 Август 2018, 22:30:44 »
Ну следствия перетыкания я видел. Выбитая линия порта. Что на клонах, что на оригиналах (на оригиналах интереснее :D)
А так - да, правила созданы для того, чтобы их нарушать  :lol:

Добавлено позже:
Да, ещё есть "горячее" перетыкание картриджей в поисках ништяков. Производитель тоже запрещает, но мы же не ищем лёгких путей, правда?

Оффлайн megavolt85

  • Пользователь
  • Сообщений: 1464
  • Пол: Мужской
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #40 : 13 Август 2018, 23:07:13 »
Врядли я это осилю

глаза боятся, а руки пишут  :lol: главное начать, а там код сам польётся, что не понятно не стесняйся спрашивать

Кнопка MODE. Удерживаемая при старте системы она должна однозначно перевести джойстик в 3-кнопочный режим

а для чего? где то такая фишка используется?

P.S. если уж на микрике делать джой, то можно на секундное зажатие START повесить режим SLOW

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24660
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #41 : 13 Август 2018, 23:36:45 »
а для чего? где то такая фишка используется?
Аутентичность? Нет, не слышали. Речь идёт как бэ об аналоге, полном аналоге. Что бы потом не ломать голову, почему что-то не так. Иметь возможность проделать все манипуляции, что доступны с оригинальным джойстиком.

можно на секундное зажатие START повесить режим SLOW
:crazy: Я, я, натюрлих! Мало того, что SLOW - самый дебильный режим из возможных, так ещё и включение по удержанию кнопки... :facepalm: То есть нажал на СТАРТ и сразу начал время отсчитывать :lol:

Оффлайн megavolt85

  • Пользователь
  • Сообщений: 1464
  • Пол: Мужской
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #42 : 14 Август 2018, 01:02:00 »
Мало того, что SLOW - самый дебильный режим из возможных

а как же
Аутентичность? Нет, не слышали.


То есть нажал на СТАРТ и сразу начал время отсчитывать

не вижу никаких проблем, TMR никто не отменял, хотя всё довольно просто разруливается и без него

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24660
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #43 : 14 Август 2018, 02:58:07 »
а как же
0_0 Это что, шютка юмора? 0_0 Или троллинг?


Оффлайн megavolt85

  • Пользователь
  • Сообщений: 1464
  • Пол: Мужской
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #44 : 14 Август 2018, 09:41:39 »
Rumata, та не, просто неудачная попытка (с элементом юмора) объяснить для чего там SLOW
ну раз уж делать принудительный перевод в трёх кнопочный режим (большинство, включая меня, даже и не знали о такой возможности), то почему бы не прикрутить SLOW

Оффлайн demolition.nick

  • Пользователь
  • Сообщений: 776
  • Пол: Мужской
    • ВКонтакте
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #45 : 14 Август 2018, 11:35:21 »
Я один не знаю что за режим такой этот SLOW?

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 7422
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #46 : 14 Август 2018, 12:00:29 »
Да, ещё есть "горячее" перетыкание картриджей в поисках ништяков. Производитель тоже запрещает, но мы же не ищем лёгких путей, правда?
Причем запрещает агрессивно, вводя механический блокиратор (под него вырез слева на картридже). :) Прям защита от особо отмороженных ушлепков.

Кстати, в новоделах этого выреза нет, стало быть их нельзя запустить на оригинальных приставках с блокиратором. Тоже вполне себе защита приставки от LVTTL поделок. :)
ну раз уж делать принудительный перевод в трёх кнопочный режим (большинство, включая меня, даже и не знали о такой возможности), то почему бы не прикрутить SLOW
Дык, ЕМНИП он был то только у не оригиналов. Поэтому, принудительный перевод в 3х кнопочный режим - аутентично, SLOW - нет. Как и турбокнопки в 3х кнопочном режиме.

Оффлайн demolition.nick

  • Пользователь
  • Сообщений: 776
  • Пол: Мужской
    • ВКонтакте
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #47 : 14 Август 2018, 22:24:31 »
Ты про эту  ? http://www.emu-land.net/forum/index.php/topic,8876.msg1327061.html#msg1327061
Да. Получается я ничего и не находил, мне готовое подсунули :D

Вроде как немного вкурил как оно работает. Получается эти импульсы из статьи это и есть эти SET_L_1 и тд?
Если так то вроде дошло. Но мыслей как написать код попрежнему нет :crazy:
И повторю вопрос: что за SLOW такой?

Добавлено позже:
Кстати, в новоделах этого выреза нет, стало быть их нельзя запустить на оригинальных приставках с блокиратором.
Я мб не имел дело со свежайшим и хреновейшим новоделом, но у меня вырез под замок есть везде. Даже на новоделе из ужасно хренового пластика. Нет на одном стародельном, качественном картридже и на New Game картриджах

Оффлайн Yoti

  • Пользователь
  • Сообщений: 4424
  • Пол: Мужской
  • Не тро-гай ме-ня
    • Steam
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #48 : 14 Август 2018, 22:37:28 »

Оффлайн demolition.nick

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

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24660
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #50 : 15 Август 2018, 02:41:18 »
Я один не знаю что за режим такой этот SLOW?
Может быть  - да, и при этом тебе крупно повезло. Это фишка очень старых китайских джойстиков - автоповтор паузы. Если просто смотреть на экран, то да, вроде бы как всё движется медленнее. Но если попробовать поиграть, то то тут совсем плохо. Тормозится всё, в том числе и реакция не нажатие. Но это ещё пол беды. Во многих играх при нажатии START выскакивает сообщение ПАУЗА, или экран гаснет, или вообще переходим в меню

Кстати, в новоделах этого выреза нет
Бу-га-га. :lol: Этого выреза нет нигде,  кроме Японии. Все оригиналы Америка / Европа такового не имеют. И это как раз хороший признак пиратки :lol:

Оффлайн Skay

  • Пользователь
  • Сообщений: 4115
  • Пол: Мужской
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #51 : 15 Август 2018, 11:31:26 »
demolition.nick, может в качестве примеров стоит посмотреть https://github.com/ClusterM?tab=repositories  ?

Оффлайн demolition.nick

  • Пользователь
  • Сообщений: 776
  • Пол: Мужской
    • ВКонтакте
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #52 : 15 Август 2018, 11:35:57 »
demolition.nick, может в качестве примеров стоит посмотреть https://github.com/ClusterM?tab=repositories  ?
Чёт я у него ничего путного не нашёл. Мб плохо искал.
Знаю он сеговский пад подключал к фамикому. Ну так то обратная ситуация
« Последнее редактирование: 15 Август 2018, 11:49:04 от demolition.nick »

Оффлайн Skay

  • Пользователь
  • Сообщений: 4115
  • Пол: Мужской
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #53 : 15 Август 2018, 11:58:04 »
demolition.nick, это не похоже на то что тебе надо? https://github.com/ClusterM/gpio2nesc

Оффлайн demolition.nick

  • Пользователь
  • Сообщений: 776
  • Пол: Мужской
    • ВКонтакте
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #54 : 15 Август 2018, 14:29:17 »
Skay, так это ж для SNES Classic (и Wii). Там принцип другой совсем

Оффлайн megavolt85

  • Пользователь
  • Сообщений: 1464
  • Пол: Мужской
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #55 : 16 Август 2018, 23:09:04 »
Skay, для начинающего программиста ковыряние в чужом коде не лучшая затея, а ты ему ещё и кучу шлака подсыпаешь.
Самое сложное на первых парах, это построить структурную схему, к слову я её уже расписал, поэтому не забивай человеку голову, если он захочет написать прошивку, он это с лёгкостью сделает по структурной схеме.
P.S. я много читал чужого кода и не редко сталкивался с таким ужасным форматированием и стилем написания, что проще написать своё чем разбираться с чужим

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24660
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #56 : 16 Август 2018, 23:26:29 »
Самое сложное на первых парах, это построить структурную схему
Вообще алгоритм называется. Там вские If, Else, GoTo и прочее.
для начинающего программиста ковыряние в чужом коде не лучшая затея
Как знать, как знать. На Си - скорее всего да. А я вот в своё время ковырялся в чужом асме на Z80 - очень познавательно.


Оффлайн megavolt85

  • Пользователь
  • Сообщений: 1464
  • Пол: Мужской
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #57 : 17 Август 2018, 00:39:05 »
Вообще алгоритм называется. Там вские If, Else, GoTo и прочее.

базовых знаний английского вполне достаточно чтоб заменить "если" на "if" и получится почти готовый алгоритм, нужно лишь добавить инициализацию железа и опрос кнопок

А я вот в своё время ковырялся в чужом асме на Z80 - очень познавательно.

я до сих пор ковыряюсь в бинариках dreamcast'a и подчерпываю новые фишки, правда в последнее время всё реже и реже, максимум я выжал при дизасме БИОС'a вот там действительно было чему поучиться, но как ты уже верно заметил ASM ни разу не СИ, я конечно видел гениальный код на сях, но по большому счёту там мало чему можно удивиться, компилятор один фиг переиначит

Оффлайн demolition.nick

  • Пользователь
  • Сообщений: 776
  • Пол: Мужской
    • ВКонтакте
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #58 : 17 Август 2018, 02:09:36 »
Мне тут поступила инфа что у AVR скорости не хватит для этой задачи. Кто что скажет?

Оффлайн Yoti

  • Пользователь
  • Сообщений: 4424
  • Пол: Мужской
  • Не тро-гай ме-ня
    • Steam
    • Просмотр профиля
Джой для сеги на ардуино
« Ответ #59 : 17 Август 2018, 11:48:57 »
demolition.nick,
предлагаю видео Кластера посмотреть. Там полно инфы куда смотреть, что писать и что использовать.