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

Шанувальники ігрових приставок знають, наскільки цікавіше і азартніше грати не поодинці, а в компанії. Добре удвох, а то і утрьох, учотирьох. Однак не всі ігрові приставки на це розраховані. Зокрема, 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 і прийняти рішення про наявність адаптера. Надалі одиничний рівень на входах S не змінюється і муль-

 

 

 

 

випадку встановлення комп'ютерних роз'ємів серії DB-9 їх попередньо слід випробувати для фізичної стикування з SEGA-роз'ємами, зважаючи на великий різноманітності конструктивних різновидів.

Харчування адаптера здійснюється від джерела 5 В, що знаходиться всередині "Sega", через лінію +5 V розетки 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, http://db.gamefaqs.com/console/genesis/file/gene-sis_programming.txt

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

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