USB->3DO converter


    Что-то захотельсь мне мышкой в маддога поиграть.... Здесь рассказано как собрать такой конвертер.

     Тут можно найти обратный конвертер для игры джойстиком от 3DO на ПК http://www.freedo.org

     Мнемоник, создал несколько конвертеров для подключения PSX джойстиков к 3DO http://thdo-homebrew.narod.ru/


 

     19.07.07

    Долго мучая порт ждойстика посредством LPT, пришел к выводу что нуждаюсь в новом подходе.   Нужен быстрый порт... а что может быть лучше IDE? А значит нужна ПЛИС с большим количеством выводов. Как я выяснил, в Туле невозможно купить монтажку TQFP с шагом... с любым шагом! Не ехать же из-за 100р. в Москву... Помнится видел на прежней работе задрипаную плату Игрософт - знаете - обезяна там жрет ваши деньги... Думаю из ее верхней платки выйдет хороший программатор, куда лучшее применение...

 

    20.07.07

    День веселого паяльника и звонкого тестера! Из игрософта сделал отладочную плату, прицепил к IDE и порту джоя. Вродебы все шло как по маслу, но SP2 для XP чуть все не обламал - UserPort под ним не работает (что ни делают в винде - все к худшему), а писать драйвер Ring0 как-то не хочется... Нашел софтик - TVicHW32 - все отлично, только он дал 30 дней на то, что бы все успеть.

    21.07.07

    Съэмулил Джой. Распиновка порта (относительно консоли) на всякий случай:

1 - GND

2- VCC

3- Aidio left

4- Audio right

5 - VCC

6- LATCH (DATA OUT)   (выход)

7- CLC (выход)

8- GND

9 - DATA IN  (вход)

 

    Завтра буду эмулить мышь - прийдется изрядно попотеть - мышка требует сто с лишним бит на передачу, а в ПЛИС это может не влезть - думаю стоит настроить работу с внешней памятью.

    Завтра уже наступило... а я все мучаю кеш память от древнего компа на предмет того, как бы из обычной CMOS SRAM памяти сделать двухпортовую с асинхронным доступом... Сделал! и работает с доступом до 20 Мб/с (8 бит данных) x 2 порта, для джоев и мышек это конечно не к чему, но когда буду работать с DiagPort консоли это позволит организовать обмен меж 2-мя хостами (3DO<->PC)

    23.07.07

    Попробовал съэмулить 2 геймпада, получилось - повеселился в капитане Квазаре, в режиме 2-х игроков синхронно управлял двумя Квазарами :)

    Ищу игры с поддержкой мышей и пистолетов... вот что нашел:

 

6-button Controller     

    Super Street Fighter II Turbo 1994 Matsushita Electric Corporation of America (Panasonic)

 

FlightStick Pro

    The Need for Speed 1994 Electronic Arts, Inc.

    Phoenix 3 1995 Studio 3DO

    PO'ed 1995 Accolade, Inc., Any Channel

    Shock Wave 2: Beyond the Gate 1995 Electronic Arts, Inc.

    Shock Wave: Operation Jumpgate 1994 Electronic Arts, Inc.

    Super Wing Commander 1994 Electronic Arts, Inc.

    Wing Commander III: Heart of the Tiger 1995 ORIGIN Systems, Inc.

 

-Blade Force

-Flying Nightmares

-Killing Time

-Mega Race

-Need for Speed

-Operation Jumpgate

-Phoenix 3

-Po'ed

-Return Fire

-Scramble Cobra

-Space Ace

-Star Fighter

-Star Wars Rebel Assault

-VR Stalker

-Wing Commander III

 

 

LightGun

    Demolition Man 1994 Virgin Interactive Entertainment, Inc.

    Mad Dog II: The Lost Gold 1994 American Laser Games, Inc.

    Space Pirates 1994 American Laser Games, Inc.

    ...думаю большенство интерактивных тиров...

Mouse

    Mad Dog II: The Lost Gold 1994 American Laser Games, Inc.

    Space Pirates 1994 American Laser Games, Inc.

    Zhadnost: The People's Party 1995 Studio 3DO

    и др.

    Так, займемся грызуном:

 

Пока известно только ID 0х49  и что:

 

#define MouseLeft            0x80000000

#define MouseMiddle          0x40000000

#define MouseRight           0x20000000

#define MouseShift           0x10000000

!!!!!!!!!!!!!!Грызун повержен!!!!!!!!!!!!!!!!!!!!!!!!

    Мышь выдает 4 кнопки, как в дефайнах, затем смещение по Y в 10 битах и смещение по X еще 10 бит, итого 32 бита вместе с ID 0х49. Странно но MedDog2 определяет мышь только когда она идет первым устройством, когда вторым - глючно как-то, надо ею хорошо поводить иначе не определяется... Фуф все иду спать...

    24.07.07

 Долго пытаясь настроить флайстик, так и не ощутил отличия от стандартного джоя в плане протокола, плюнул и решил заняться USB, что б его...

    15.08.07

     Немного о протоколе передачи данных по порту джойстика:

     CLC имеет форму       -           ____----стартовый строб - самый долгий-----_______--__--__--__--__ маленькие стробы повторяются 159 раз, если на DATA IN подается в конце "1", а не "0", иначе стробов будет очень много и порт будет "тормозить", т.е. активное состояние - ноль. Иными словами если нам нужно передать консоли больше чем 160 бит, то проверяя последний байт, консоль, не найдя там признак конца (0xff)  выдает еще 160 стробов для приема дополнительных 160 бит и т.д.Данные джойстик выдвигает в приставку начиная с самого старшего бита и по заднему фронту CLC начиная со стартового строба, который длится как остальные 159 стробов.  LATCH (DATA OUT) - служит для передачи устройству данных, например управления диодами на пистолете. Частота стробов около 125КГц (могу ошибаться - осциллографом не мерял).

 

    30.08.07

    Должен предупредить - разработка под USB нагоняет странную дипрессию, от USB вообще несет чем-то неготивным, когда пытаешься разобраться в протоколе... возможно всему виной стиль документации по этой шине... Даже лог перестал вести на эту тему :) Но так или иначе с USB покончено и любой желающий может обзавестись переходником под свою консоль в моей лавке, вся прибыль будет направлена на развитие проекта. Сейчас я соершенствую прошивки.

     PS. Вышеуказанной информации вполне достаточно что бы сделать переходник самостоятельно, все остальное в Гугле.

     22.10.07

    Выкладываю схему

и исходный код для микроконтроллеров, но тут есть "но" - код написан для прототипа и там:

     1) контроллеры связаны по UART

     2) оба контроллера - Tyny2313

поскольку доработанную схему я не реализовывал, то и код не правил, но думаю проблем быть не должно, первая легко решается перемычкой(или переписыванием кода отвечающего за пересылку), вторая небольшой корректировкой кода. В общем - кому надо - справится, если что спрашивайте на форуме. В принципе - данная схема может быть использована и для других консолей, это вопрос написания прошивки и как видите к ней гипотетически можно подключить джои для гейм порта  -  аналогове входы имеются.


Назад          Карта сайта