СХЕМЫ И ДОКУМЕНТАЦИЯ

Четыре джойстика в одной упряжке

Поклонники игровых приставок знают, насколько интереснее и азартнее играть не в одиночку, а в компании. Хорошо вдвоем, а то и втроем, вчетвером. Однако не все игровые приставки на это рассчитаны. В частности, 16-битная "SEGA Mega Drive-II" ("Sega") имеет на передней панели только два разъема для подключения периферийных устройств. Тем не менее играть в режиме "multiplayer" она позволяет, о чем имеются указания в различных книгах и каталогах. На обложках картриджей также приводится информация в виде пиктограмм адаптеров и цифр, обозначающих допустимое число джойстиков.

Разновидности адаптеров

Программисты первыми осознали необходимость увеличения количества игроков.

Фирмы EA SPORTS (подразделение Electronic Arts), Codemasters и SegaSoft практически одновременно стали разрабатывать игры, рассчитанные на число участников от 4 до 8. Для их работы требовались специальные переходные устройства или по-другому, адаптеры. К сожалению, все они оказались несовместимыми друг с другом. "Засекреченность" протоколов обмена данными и лицензионные ограничения резко сократили число мультиджойстиковых игр и количество фирм, которые могли бы их создавать.

Адаптер фирмы EA SPORTS называется "4 Way Play". Его можно подключать сразу к двум входным разъемам "Sega" с маркировкой "CONTROL-1", "CONTROL-2". Цифра "четыре" указывает на максимальное количество игроков. Именно столько участников, по мнению EA SPORTS, достаточно, чтобы в полной мере ощутить азарт спортивных соревнований по футболу, хоккею, баскетболу, теннису, бейсболу, регби.

Адаптер фирмы SegaSoft называется "Team Player". Он также рассчитан на четыре джойстика, но вставляется только в один разъем "Sega". Это означает, что в другой разъем приставки можно включить или дополнительный пятый джойстик, или еще один адаптер, увеличивая тем самым максимальное число участников до 8. На передней панели "Team Player" имеется переключатель режимов работы "1, 2, 3, 4, Multi".

Адаптер фирмы Codemasters называется J-cart (очевидно, сокращение от слов "joystick" и "cartridge"). Изюминка в том, что этот адаптер встроен прямо в игровой картридж и позволяет подключать к нему через два разъема два дополнительных джойстика. Всего было выпущено 6 разновидностей J-cart с играми фирмы Codemasters: "Micro Machines 2" (1994), "Micro Machines 96" (1995), "Micro Machines Military Edition" (1996), "Pete Sampras tennis" (1994), "Pete Sampras tennis 96" (1995), "Super Skidmarks" (1993).

рис. 2

Оригинальное техническое решение на практике не прижилось, вскоре были выпущены усеченные версии этих игр в обычных картриджах без разъемов. Возможность игры с четырьмя джойстиками у них отсутствует, хотя на обложке осталась многообещающая рекламная надпись "1-4 player".

Поскольку фирмам не удалось договориться о едином стандарте, в середине 90-х годов были выпущены универсальные адаптеры Gamester "Team Player II 4-Way". Судя по названию, они могли работать одновременно с картриджами EA SPORTS и SegaSoft. Плата за удобство - высокая цена адаптера. На программном уровне также были приняты меры по унификации. Некоторые фирмы стали вводить в свои игры драйверы обслуживания джойстиков, которые поддерживали сразу два стандарта: EA SPORTS и SegaSoft.

Общее количество мультиджойстиковых игр составляет около 6-8% от числа всех выпущенных для платформы "Sega". К сведению, отдельных наименований Sega-игр насчитывается чуть более 1000, а с разновидностями картриджей - примерно 3000! Подавляющее большинство игр, рассчитанных на 4-8 джойстиков (не путать с 4-8 игроками), это спортивные симуляторы. В таблице приведены наиболее известные игры фирм EA SPORTS (рис.1) и Electronic Arts. Для их прохождения необходим адаптер "4 Way Play", схему которого попробуем синтезировать самостоятельно.

Исходные данные для проектирования. Адаптер должен подключаться к двум разъемам приставки "Sega", как показано на структурной схеме (рис.2). Адаптер должен работать с тремя и четырьмя джойстиками на любых играх фирмы EA SPORTS. К сожалению, поиск "живого" экземпляра "4 Way Play" оказался безуспешным, фирмы-изготовители уже перешли на выпуск игровых аксессуаров для более современных приставок.

Поиск информации

Тема мультиджойстиковых адаптеров в компьютерных и радиолюбительских журналах стран СНГ до сих пор не освещалась. Следовательно, единственная надежда - на помощь Интернета. Действительно, в недрах Сети удалось обнаружить исследования зарубежных геймеров о программном и аппаратном устройстве "Sega", точнее, ее американской модели "SEGA Genesis". Наиболее близкой к теме оказалась информация Генри Рика (Henry Rieke) [1]. Ее суть.

Управление работой джойстиков в "Sega" производится через 4 восьмиразрядных порта, которые доступны на чтение и запись, как ячейки памяти с адресами A10003h, A0005h, A10009h, A1000Bh. Первые два из них являются портами приема/передачи данных DATA1, DATA2 соответственно для джойстиков 1 и 2. Вторые называются портами управления CTRL1, CTRL2 и задают направление ввода/вывода для каждого разряда портов DATA1, DATA2 (рис.3).

В обычном режиме линии обоих джойстиков UP, DOWN, LEFT, RIGHT, A/B, ST/C работают на прием, а SYN -на передачу [2]. При подключенном адаптере "4 Way Play" линии UP и DOWN джойстика 2 переключаются с приема на передачу и формируют на своих выходах низкие логические уровни. Адаптер должен перетранслировать их на линии UP, DOWN джойстика 1. Далее центральный процессор "Sega" опрашивает состояние порта DATA1 джойстика 1 и по наличию нулей в разрядах PD0, PD1 принимает решение о наличии или отсутствии адаптера. В дальнейшем выбор одного из четырех джойстиков производится комбинацией уровней, передаваемых по линиям A/B, ST/C джойстика 2.

Более детальной информации по устройству адаптера в [1] не приводится. Однако на основании уже имеющихся сведений можно создать "детектор мультиджойстиковых картриджей" (ДМК). Он необходим, чтобы приобрести для дальнейших исследований полную (а не усеченную) версию игры, рассчитанную на 4 джойстика.

Схема ДМК (рис.4) содержит стандартный одновибратор, выполненный на элементах DD1.2, DD1.3. Он запускается в работу от схемы совпадения DD1.1 при наличие двух логических нулей на линиях UP и DOWN. Выходной буфер DD1.4 имеет нагрузочную способность около 4 мА, что позволяет подключать индикатор НИ непосредственно к его выходу.

Розетка XS1 вставляется в разъем "C0NTR0L-2" приставки "Sega", при этом джойстик в ее разъеме "CONTROL-1" может отсутствовать. Если картридж поддерживает стандарт "4 Way Play", то после каждого нажатия кнопки сброса "RESET" светодиод НИ будет на 50-70 мс засвечиваться. Если картридж обычный, рассчитанный на одного или двух игроков, то индикатор светиться не будет.

Итак, картридж отобран. Теперь необходимо изучить логику работы его программы, чтобы уяснить последовательность обращений к портам джойстиков в муль-типлейерном режиме.

Анализ кодов игровой программы

Для начала потребуется несложное переходное устройство, позволяющее подключить SEGA-картридж к LPT-порту IBM-совместимого компьютера [3]. После того, как с помощью переходного устройства будет получена прошивка кодов программы в виде файла с расширением .bin, ее переводят в формат ,h68 (утилита "binh68.exe" [3]) и дизассемб-лируют программой IDA-3.7 фирмы DataRescue. Далее в теле программы по команде осуществляется поиск строки, содержащей текст "А10005". Это адрес порта данных DATA2 джойстика 2. Если в него производится запись кодов OCh, 1Ch, 2Ch, 3Ch, 7Ch, значит, где-то близко находится начало подпрограммы обслуживания "4 Way Play".

Экспериментами установлено, что обращение к адаптеру производится в двух отдельных местах программы. К примеру, для картриджа с игрой "NBA Live-98" адреса подпрограмм составляют 00072690h и 000726E8h. Первая из них отвечает за проверку наличия адаптера "4 Way Play" при начальном включении питания, вторая задает логику выбора джойстиков в процессе игры.

Анализ работы подпрограмм несложен, следует только учитывать обратный к общепринятому порядок записи операндов в ассемблерном тексте. Например, строка "move d0, $а10005" означает пересылку содержимого регистра d0 в порт A10005h, а не наоборот. Это особенность ассемблера процессора MC68000 (Motorola), применяемого в "Sega".

Итак, при включении питания ("холодный старт") или нажатии кнопки "RESET" ("теплый старт") происходит формирование перепада из единицы в нуль на линиях UP, DOWN джойстика 2. Затем проверяются состояния линий UP, DOWN джойстика 1. Если хотя бы на одной из них окажется лог. "1", программа считает, что адаптер "4 Way Play" отсутствует. Далее происходит переход в обычный режим работы с двумя джойстиками и процедура проверки адаптера больше не повторяется.

Если адаптер обнаружен, то все разряды порта джойстика 2 переводятся из состояния приема в состояние передачи, а по линиям A/B и ST/C каждые 20 мс последовательно в двоичном коде выдается номер джойстика. Очередность следующая: код "0-0" (W-ST/C") - первый, "0-1" - второй, "1-0" - третий, "1-1" - четвертый джойстик. После каждой из приведенных комбинаций кодов запускается в работу подпрограмма считывания данных с порта А100031! джойстика 1.

Вывод

Если в такт с опросом номера джойстика синхронно будут переключаться физические линии от внешних разъемов "4 Way Play" к разъему "CONTROL-1" приставки "Sega", то можно осуществить многопользовательское управление.

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

Электрическая схема адаптера. Словесное описание работы устройства показывает, что схема адаптера должна содержать две части, во-первых, блок инициализации, во-вторых, многоканальный мультиплексор смены джойстиков. На рис.5 приведена электрическая схема устройства.

Основой адаптера являются три мультиплексора DD1 -DD3. На их входы D0...D3 поступают информационные сигналы с разъемов XP1...XP4 от четырех джойстиков. Линии SYN у них запараллелены и коммутации не подлежат. Выходы мультиплексоров подключаются к розетке XS1, которая стыкуется с разъемом "CONTROL-1" игровой приставки. Дешифрация посадочных мест джойстиков происходит по сигналам с линий A/B(2) и ST/C(2), которые поступают от "Sega" через розетку XS2 "CONTROL-2".

Блок инициализации должен осуществлять проверку наличия адаптера. Его удалось совместить с мультиплексором DD1, используя особенность работы входа блокировки S (выводы 1, 15 микросхемы DD1). В начальный момент времени после подачи питания линия DOWN(2) джойстика 2 программно настраивается на прием информации. Находящийся внутри одной из СБИС "Sega" высокоомный "pull-up" резистор "подтягивает" потенциал на линии DOWN(2) к источнику +5 В, образуя уровень лог. "1" Этот уровень подается на контакт 2 розетки XS2 и через резистор R1 - на выходы S микросхемы DD1 адаптера. Как следствие, на выводах 7, 9 микросхемы DD1 принудительно устанавливаются логические нули.

Далее на линии DOWN(2) устанавливается низкий уровень. Цепочка R1C1 на 30-40 мс задерживает смену уровня с "1" в "0" на выводах S микросхемы DD1. Этого времени вполне достаточно, чтобы центральный процессор "Sega" смог зафиксировать логические нули на линиях UP, DOWN разъема XS1 и принять решение о наличие адаптера.

 

Питание адаптера осуществляется от источника 5 В, находящегося внутри "Sega", через линию +5V розетки XS1. Ток потребления зависит от серии установленных микросхем: К155 - 100.120 мА; К555, КР1533 - 15.25 мА; К561 -около 1 мА.

Налаживание схемы не требуется. Конструкцию лучше выполнить без жесткой фиксации разъемов XS1, XS2, на коротких (до 100 мм) кабелях. При монтаже особое внимание следует уделить прозвонке соединительных цепей разъемов XS1, XS2, XP1 .XP4. Их внешний вид с лицевой стороны изображен на рис.10.

После изготовления адаптера геймеры, наконец-то, смогут "отдохнуть" от бесконечных стрелялок. Картриджи с играми на спортивную тематику теперь, без сомнения, получат более высокую оценку. Увлекательный мир спорта раскроет новые грани, игроки смогут на деле ощутить взаимопомощь, сотрудничество, научиться слаженной коллективной игре.

С. М. Рюмик, г. Чернигов.

Литература:

1. Henry Rieke. Sega Programming FAQ, Sixth Edition, 18.10.1995.

2. Рюмик С.М. Восстановление работоспособности "SEGA"-джойстика // Радиоаматор. - 2000. - №2. - С.42-44.

3. Рюмик С.М. Подключение SEGA-картриджей к IBM PC // Радиоаматор. - 2000. - №12. - С.27- 28;  2001. - №1. - С. 26-28.