Автор Тема: Собираем световой пистолет для MegaDrive'a своими руками  (Прочитано 18353 раз)

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

Оффлайн masyanya

  • Пользователь
  • Сообщений: 534
  • Пол: Мужской
  • My Island is SEGA
    • Youtube
    • Просмотр профиля
Продолжаем, значит так. Дизасм Lethal Inforces II, дал свои результыты, после нескольких дней ковыряния алгоритм работы светового пистолета всё больше вырисовывается.
Значит так (учитывая что у меня никогда небыло конамевского Justifier'a):
Отстраненно.
Как и что
1. Сей агрегат состоит из двух половинок BlueGun и PinkGun.
2. BlueGun, втыкается только во второй порт приставки, в него втыкается PinkGun.
3. BlueGun содержит всю логику и фотодетектор (с интегрированным усилителем), в то время как PinkGun содержит только фотодетектор.
4. Каждый пистолет имеет в своем составе кнопки START и TRIGGER_HOOK (курок).
Как работает:
1. Определяется пистолет как класс наличием воткнутого во второй порт приствки BlueGun'a, происходит это так:
   а. Ставим SELECT=1 (STROBE), читаем с порта D0-D4, (D0-D1=0 и D2-D3=0 должны быть низкого уровня).
   b. Ставим SELECT=0, читаем с порта D0-D4, (D0-D1=1 и D2-D3=0).
   с. Если что-то не так, то пистолет не обнаружен.
2. Работает сам агрегат так:
   а. В момент когда один из фотодатчиков в пистолетах "видит" луч ЭЛТ, D06 внутри BlueGun переставляется в режим вывода и выставляется "0", что вызывает IO прерывание "в пиставке".
   b. После вызова прерывания, BlueGun переключает пин D06 в режим приема.
   с. Читаются данные с пистоля посредствам управления пинами D04 и D05. Данные с пистолетов определяются пинами D00, D01, D02.
       c.1 Читаем состояние BlueGun:
            D04=D05=0.
            Ждем 2 "клока"
            D00-D02 - Текущее состояние BlueGun.
       c.2 Читаем состояние PinkGun:
            D04=1,D05=0
            D04=0,D05=1
            Ждем 2 "клока"
            D00-D02 - Текущее состояние PinkGun.
       c.3 Возвращаем BlueGun в режим "IO прерываний".
            D04=D05=1
А вот и подтверждение того что я не пи..деть сюда пришел:


Добавлено позже:
Ждем окончания изготовления, забавно так, я решил не совать в достаточно простые устройства микроконтроллеры.
А тут захожу в мангазин, дайте мне 74HC157, - "Таких нету"  0_0
ну тогда 74HC158, - "И таких нету!"   0_0 0_0
ну тогда 74HC573, - "И таких тоже нету!!!"  0_0  0_0  0_0
а тогда GAL16v8, - "Ато ваще чё такое?"  >:(
ну может ATF16v8, - "Чё-то страноое такое просите... таких вообще никогда не завозили".  o_0
тогда мне 74HC00, - "Аааа, эти вчерв были, но закончились.  :)", да б..я, издеваетесь что-ли?
ну хоть транзисторы то есть...2SK160? - "Не таких нет."
а кварци на 15MHZ есть, "Есть"... долгое ковыряние в закромах... "Не, эти кончились"...  0_0 o_0 >:(
а ATTINY2313 и кварцы на 20MHz есть?,-"Ага, есть.", ну вот их и давайте.
Вот так я снова вернулся к микроконтроллерам...
« Последнее редактирование: 19 Декабрь 2007, 08:39:47 от masyanya »

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 6115
    • Просмотр профиля
А ATTiny 15L не хватит?

Оффлайн sergi

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

Второй пистолет действительно суется в синий пистолет и действительно розового цвета
Но я его никогда не видел к сожалению :(
Там разъем в синем как у телефона или скорее как у витухи только 6 контактов ( у телефона 4 а у витухи 8)

Ну и как подсоединить тоже не очень понятно честно говоря

Т.е. нужно как раз как я понял 6 проводов для этого
Ну если конечно не земля для всех общая

Ну и кстати точ такойже пистолет с точ такойже игрой и для SNES существует ;)

И в идеале было бы круто чтобы и для SEGA master System и для Мегадрайва использовался один и тот же пистолет

Ну и момент такой - а как бы выглядела схема на обычной логике без навороченных микроконтроллеров?
Может комуто проще собрать на логике это дело :?

Оффлайн sergi

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

Собственно также как и у DS с ее сенсорным экраном - тоже стик "пристреливать" нужно

И лучше тогда разрешить еще одну задачу - игры для менейсера тоже харошие

Можно добавить к пистолету еще 3 кнопки а игры пропатчить чтобы можно было бы играть не менейсером а justifisherом  :?

Оффлайн ajak

  • Пользователь
  • Сообщений: 235
  • Пол: Мужской
    • Просмотр профиля
Тоже задавался таким вопросом но так ответа и е нашол, <_< хотя не охотно искал, так что просим знатоков,

Оффлайн masyanya

  • Пользователь
  • Сообщений: 534
  • Пол: Мужской
  • My Island is SEGA
    • Youtube
    • Просмотр профиля
Т.е. нужно как раз как я понял 6 проводов для этого
Ну если конечно не земля для всех общая
Используются только 5, я бы их назвал так:
PIN  NAME
1     VCC
3     GND
4     Не используется.
?     START
?     TRIGGER_HOOK
?     LIGHT_DETECTOR
И вряд-ли я смогу точно сказать куда какой. Так как из кода не понять куда что паяется. А пистолета у меня нет и никогда небыло. 1,4 и 3 пины определены 100% извините за ламерство... по фотографии. Для опытов нужен тот у кого есть оригинальный пистоль.
Ну и момент такой - а как бы выглядела схема на обычной логике без навороченных микроконтроллеров?
Может комуто проще собрать на логике это дело :?
Ну я ещё не закончил, не совсем понятно на какие пины что раскидано (а именно куда START и куда TH, и каким уровнем сообщется о нажатии кнопочек, у меня сильно большое подозрение что высокий уровень-нажато, низкий не нажато... для сеги это как-то через Ж...).
Я думаю не обломаюсь спроектировать схему и на обычной логике.
Кстати - а как пистолет определяет положение точки попадания?
Блин ломы писать, мож завтра... ну в общем фишка в том что приставка считает сока раз пришло HBlank после каждого VBlank, а когда приходит IO прерывание от пистолета приставка фактически и вычисляет по этому числу положение луча, и смотрит нажимался ли TriggerHook, если нажимался значит стреляли и имеет смысл проверить точку попадания. Ну вот как-то так. Пропатчить можно, наверно, не пробовал... имхо проще менасера собрать.

Оффлайн sergi

  • Пользователь
  • Сообщений: 1659
    • ВКонтакте
    • Просмотр профиля
Менейсер сложно собирать - если только не его упрощенную версию чтобы без ИК передачи данных

А так пистолет то есть у меня - посмотреть что куда не проблема
Могу сказать замыкается ли кнопка на землю или нет у спускового крючка и как там старт себя ведет

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

Ну а я лично за универсализм борюсь
Т.е. нужен пистолет - и чтобы его и к денди и к сеге и к мастер систему и короче ко всем старым приставкам

У ягуара тоже кстати пистолет предусматривался - даже ножка есть для него в порте джоя - но только хоммейдеры сделали чтото типа демки и пистолет из мастер системского под это дело переделали

А так вроде у Денди только выстрел производится по перепаду с низкого на высокий уровень сигнала

У мастер система точно на землю когда замыкаешь выстреливает - я пытался сделать переходник чтобы на денди играть но получалось что нужно 2 раза нажимать - неудобно короче

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 16977
  • Пол: Мужской
    • Просмотр профиля
Конечно, желательно собирать на дискретной логике. В оригинале ни каких контроллеров нет. Рабочий пистолет найти можно, правда, не оригинал. По разъемам вроде у меня где-то были записи.
Есть ещё один нюанс: координаты отсчитываются по развертке, и на PAL консолях NTSC игры работают очень плохо - часть экрана не простреливается, да и точность оставляет желать лучшего.

PS
Есть пистолет и для Дрима, только японский  :(. Не в том смысле, что сделан в Японии, а в том, что с ПАЛ-консолями не работает

Оффлайн sergi

  • Пользователь
  • Сообщений: 1659
    • ВКонтакте
    • Просмотр профиля
Дело не в ТTSC и PAL - пистолет пристрелять можно
Я свой и на NTSС и на PAL играл без проблем ;)

У дримовского да вроде есть такие траблы - не понять чем вызванные :(

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 16977
  • Пол: Мужской
    • Просмотр профиля
Цитата: sergi
пистолет пристрелять можно
Нельзя. Не рассказывай. Пристрелка совсем для другого.

Оффлайн sergi

  • Пользователь
  • Сообщений: 1659
    • ВКонтакте
    • Просмотр профиля
Я лично играл на пистолете и в PAL и в NTSC и без проблем

И в мастер системский тоже самое - говорю как есть
Сеги регион не касается >:(

Тоже самое и у снес - да получается зона в которую пистолет попасть не может - скраю и снизу
Но всеравно играть им можно

Оффлайн masyanya

  • Пользователь
  • Сообщений: 534
  • Пол: Мужской
  • My Island is SEGA
    • Youtube
    • Просмотр профиля
Конечно, желательно собирать на дискретной логике. В оригинале ни каких контроллеров нет.
Ну дак я бы и собирал, токак в магзине деталек нет...  :lol:
Рабочий пистолет найти можно, правда, не оригинал. По разъемам вроде у меня где-то были записи.
У нас в ж..пе их не купить!
Есть ещё один нюанс: координаты отсчитываются по развертке, и на PAL консолях NTSC игры работают очень плохо - часть экрана не простреливается, да и точность оставляет желать лучшего.
Судя по коду непростреливание происходит из-за того что там счетчик "короче" (в PAL версии). И по идее должен получаться не меньший прямоугольник (подрезанный), а что-то типа такого:
                     ____
экран слева->|  /..|<-экран справа 
                     ----
Типа справа и снизу, и при пристреливании эта ересь может смещаться по экрану.
PS
Есть пистолет и для Дрима, только японский  :(. Не в том смысле, что сделан в Японии, а в том, что с ПАЛ-консолями не работает
А за какие деньги его мне можно заиметь, если вообще можно?
« Последнее редактирование: 20 Декабрь 2007, 11:44:04 от masyanya »

Оффлайн sergi

  • Пользователь
  • Сообщений: 1659
    • ВКонтакте
    • Просмотр профиля
Ну она не  может постоянно смещаться - сброс счета по новому кадру должен производиться
Просто может смещение и на искосок - не вдавался в подробности :-\

Оффлайн masyanya

  • Пользователь
  • Сообщений: 534
  • Пол: Мужской
  • My Island is SEGA
    • Youtube
    • Просмотр профиля
А я и не писал что она постоянно смещается.

Оффлайн sergi

  • Пользователь
  • Сообщений: 1659
    • ВКонтакте
    • Просмотр профиля
GAL16V8B
Масяня, ты говорил выше что умеешь пользоваться контроллерами этими
Не в курсе - можно ли их задампить?
Просто их часто используют в переходниках особенно мегадрайва и в других устройствах тоже видел
В чипе сатурна, в картридже NEO-GEO MVS
Можно или нельзя их задампить? :? и как их програмить - инфы так и не нашел

Кстати странно - в переходниках он просто стоит параллельно дорожкам припаян - я как понимаю он давит своим сигналом приходящий набор бит на ножках - 8 бит помоему
Короче не понятно мне до сих пор как они работают :(

Оффлайн masyanya

  • Пользователь
  • Сообщений: 534
  • Пол: Мужской
  • My Island is SEGA
    • Youtube
    • Просмотр профиля
GAL и ATF это микросхемы программируемой логики, и их тока писать через JTAG.

Оффлайн sergi

  • Пользователь
  • Сообщений: 1659
    • ВКонтакте
    • Просмотр профиля
Ну они защищены от копирования? - просто я еще не смотрел и в общен не в курсе :(
Сайчас даташит читаю но лучше опыт старшего товарища :blush:

Оффлайн masyanya

  • Пользователь
  • Сообщений: 534
  • Пол: Мужской
  • My Island is SEGA
    • Youtube
    • Просмотр профиля
Из ATF прочитать мне не удавалось, ATF говорят аналог гал полный, но из GAL читать не пробовал.

Оффлайн masyanya

  • Пользователь
  • Сообщений: 534
  • Пол: Мужской
  • My Island is SEGA
    • Youtube
    • Просмотр профиля
Меня постигла нерадость, сгорел Damper/Flasher... какого-то хрена постоянно горит КР850ВВ55А, причем линия в адресном пространстве между A20 и А23 (если считать начиная с А1), блин, в чем дело... понять не могу... в среднем раз в 2 года его менять приходиться... мож глюк микросхемы? ...кто мож сталкивался?

Оффлайн HardWareMan

  • Модератор
  • Сообщений: 6115
    • Просмотр профиля
Ну по сути ВВ55 то еще говно... Лучше бы не поленился и на 374х (или 574х) собрал. 3 корпуса поменьше, но зато хоть короти. У меня один такой регистр минут 15 на КЗ работал, прежде чем я просек в чем дело. И ниче - работает. Кстати, чистокровный 8255 работает надежнее, чем наш КР580ВВ55А.

Оффлайн masyanya

  • Пользователь
  • Сообщений: 534
  • Пол: Мужской
  • My Island is SEGA
    • Youtube
    • Просмотр профиля
Собирая я думал о том что дорожек меньше типа до ВВ55А 8 проводов тока, а там по восемь к каждой кикросхеме, запаришся разводить...

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 16977
  • Пол: Мужской
    • Просмотр профиля
Цитата: sergi
Я лично играл на пистолете и в PAL и в NTSC и без проблем
Я тоже лично играл. А как ты определял, PAL или NTSC картридж?
Цитата: masyanya
А за какие деньги его мне можно заиметь, если вообще можно?
Пиши в ЛС, договоримся
Некоторые соображения по сути процесса. В своё время мы пытались с этим разобраться. Увы, процесс до конца не дошел (масса причин). Но остались некоторые теоретические соображения.
По идее, вызывать прерывание должно нажатие на курок. По нему генерируется "серое поле", на котором и происходит захват луча и дальнейший обсчет его координат.

masyanya, конечно, это отдельный разговор, но у меня как раз есть ряд вопросов к тебе по данной теме

Оффлайн sergi

  • Пользователь
  • Сообщений: 1659
    • ВКонтакте
    • Просмотр профиля
Я в пиратку играл и один раз был у меня картридж PAL

Как картридж отличить PAL от NTSC оригинальный не нужно писать надеюсь

Запускал и на PAL приставке и на NTSC US, просто японка всего раз была - Sumsung которая - не ней действительно не пробовал, она только картриджи ни PAL ни NTSC US не запускает это факт :)

Все работало и во все попал

Могу для чистоты эксперимента записать ромы U и E но ничего это не изменит

Оффлайн masyanya

  • Пользователь
  • Сообщений: 534
  • Пол: Мужской
  • My Island is SEGA
    • Youtube
    • Просмотр профиля
По идее, вызывать прерывание должно нажатие на курок. По нему генерируется "серое поле", на котором и происходит захват луча и дальнейший обсчет его координат.
Нет, ты нажимаешь на курок, прорисовывается поле, и по тому моменту в который произошло прерывание определяется "куда попал". Нажатие на курок определяется пином D00, что для первого пистоля что для второго. А прерывание вызывать мы можем от внешнего устройства только пином D06.
Поэтому получается, как только приставка обнаружила нажатие, она рисует белое поле, и если поизошло прерывание, попали куда-то в поле, если нет ваще мимо...
« Последнее редактирование: 24 Декабрь 2007, 11:27:40 от masyanya »

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 16977
  • Пол: Мужской
    • Просмотр профиля
masyanya, я же сказал, что это только первоначальные предположения.  :blush: До дизасма тогда не дошло. Кстати, всё получается логично.
По кадровому прерыванию идет опрос портов.
Если курок нажат, следующим кадром генерится серое поле.
От его начала запускается счетчик, который останавливается прерыванием, если есть засветка фотодатчика.
Дальше - просчет координат.
Выстрел мимо экрана - перезарядка пистолета

Оффлайн masyanya

  • Пользователь
  • Сообщений: 534
  • Пол: Мужской
  • My Island is SEGA
    • Youtube
    • Просмотр профиля
Значит, так, до чего я домутился. Работают старты на обоих пистолях и курки.
Вот так выглядит схема логики в основном (я назвал её BLUE_GUN) пистолете:

А вот платка номер 2 (я назвал её SW_Plate), которая подключается к основной платке нарисованной выше.
Эта плата что для BlueGun, что для PinkGun одинаковая. К разьему "J1" подключается платка фотодетектора. Достойной схемы фотодетектора пока нету  :'(.

« Последнее редактирование: 21 Апрель 2008, 08:07:16 от masyanya »

Оффлайн sergi

  • Пользователь
  • Сообщений: 1659
    • ВКонтакте
    • Просмотр профиля
У фазера какойто фазовращатель стоит - не понятно нужен ли он или нет - я от денди так и не попробовал пестоль воткнуть в сегу :(

А пистолеты классные конечно если все так просто - один момент смущает - играть кроме как в Lethal Enforcement 1 и 2 невочто

В Snatcher - для этого сега CD нужна - да и игра мне не нравится а Mad Dog McRee можно и на PS1 по бахать

Пистолет я могу достать готовый за 200 р тут, правда только синий

В общем теперь игры для него писать нужно и старые под него переделывать

Я еще спрашивал можно ли приделать к нему кнопки A,B,C и игры под него которые для менейсера переделать - ну чтобы была не просто вешь - а супервещь ^_^

Оффлайн masyanya

  • Пользователь
  • Сообщений: 534
  • Пол: Мужской
  • My Island is SEGA
    • Youtube
    • Просмотр профиля
Синий можно переделать в розовый, как и собсна наоборот. Блиииииин, а можно мне два пистоля синих, за деньги... в качестве ответной услуги за схемы и исходники дампера?

Добавлено позже:
А я тут выложу как переделывать....

Оффлайн sergi

  • Пользователь
  • Сообщений: 1659
    • ВКонтакте
    • Просмотр профиля
ну я там в личку отправил ;)

Оффлайн masyanya

  • Пользователь
  • Сообщений: 534
  • Пол: Мужской
  • My Island is SEGA
    • Youtube
    • Просмотр профиля
Ну как зачем, если есть два синих пистоля, то поиграть то можно будет только на одном. Если нет Pink Gun'а.

Добавлено позже:
SERGI, а закинь сюда фотки BlueGun "изнутри". Печатку крупным планом с обоих сторон... если не сложно... :blush: