Виберіть свою мову

Любителі комп'ютерних ігор почали підключати звичні і зручні джойстики від ігрових видеоприставок до своїх комп'ютерів з 1999 р., коли для їх обслуговування з'явився програмний пакет DirectPad Pro, безкоштовно розповсюджується через Інтернет. Але нерідко трапляється, що цілком справний джойстик відмовляється працювати з комп'ютером. Автор пропонує своє вирішення цієї проблеми, надаючи до того ж корисну у багатьох іграх можливість збільшити число одночасно підключених до комп'ютера джойстиків.

Джойстики від ігрових приставок з'єднують з паралельним портом LPT1 або LPT2 комп'ютера через перехідники всього з декількох малогабаритних діодів. В Інтернеті нескладно знайти схеми підключення джойстиків від приставок "Atari", "TurboGrafX-16", "Genesis" ("Sega Mega Drive-ll"), "NES" ("Dendy"), "PlayStation" (у тому числі джойстик "DUAL SHOCK"), "SuperNES", "Sega Master System", "Nintendo-64", "Sega Saturn", 'Jaguar", "Virtual Boy". Самі джойстики ніякої переробки не вимагають і працюють, як правило, без зовнішнього джерела живлення.

Найбільш поширені в країнах СНД джойстики від "Dendy", "PlayStation" і "Sega Mega Drive". Останні, на жаль, принципово несумісні з деякими материнськими платами комп'ютерів недавньої розробки. Джойстики перших двох типів успішно використовують численні любителі ігор, встановили на своїх комп'ютерах пакет DirectPad Pro.

Але іноді джойстики, нормально взаємодіють з ігровою приставкою, відмовляються працювати, будучи підключеними до комп'ютера. До того ж при підключення до LPT-порту декількох джойстиків одночасно не вдається обійтися без зовнішнього джерела живлення.

Основних причин - дві. По-перше, недостатня навантажувальна здатність використовуються для живлення джойстиків ліній LPT-порту. Вже під навантаженням 3...4 мА рівень лог. 1 (з урахуванням падіння напруги на діодах перехідника) падає нижче необхідного для роботи мікросхеми джойстика мінімуму - 3 Ст. По-друге, проявляється властивий КМОП-мікросхем тиристорний ефект - раптове різке збільшення споживаного струму.

Останнє явище пов'язане з відкриванням зазвичай надійно закритого "паразитного" тиристора, утвореного всередині мікросхеми ділянками напівпровідникового кристала різної провідності. Воно стає можливим, якщо напруга на логічному вході мікросхеми перевищує напруга живлення, і відбувається, як правило, в моменти включення живлення або "гарячою", без виключення живлення, перестиковки роз'ємів. Саме такі ситуації виникають при підключенні джойстика до LPT за "стандартною" схемою. Напруга на його входах логічних підвищений, так на відміну від виводу живлення вони з'єднані з лініями порти безпосередньо, без розділових діодів і не споживають від них помітного струму. Ситуацію посилює звичайно наявний у ланцюзі харчування джойстика і розряджений в момент включення блокувальний конденсатор.

Потрібно сказати, що не всі КМОП мікросхеми схильні до ефекту в тиристорному однаковою мірою. Він характерний, наприклад, для мікросхем КР537РУ10, КР1146ФП2, але рідко проявляється в таких поширених серіях, як К561, КР1561 і багатьох інших, виготовлених з використанням спеціальних прийомів - охоронних кілець, МОП-транзисторів з вертикальним каналом і окольцовывающим затвором, технології КНС (кремній на сапфірі).

Вдосконалені схеми підключення до LPT-порту від ігрових джойстиків приставок показано на рис. 1 (для "Денді) і рис, 2 (для "Sony PlayStation"). В відміну від розповсюджуються через Інтернет прототипів, в обох випадках звичайні кремнієві діоди VD1-VD5 замінені діодами Шотткі, знову введені аналогічні діоди VD6-VD11 і збільшено відповідно до п'яти і двох число роз'ємів для джойстиків. Звичайно, якщо користуватися таким числом джойстиків одночасно не планується, що "зайві" роз'єми можна виключити.

Катоди всіх наявних раніше і знову введених діодів з'єднані паралельно. Таким чином, у харчуванні джойстика беруть участь всі лінії порту, на яких програмно встановлений або може бути встановлений рівень лог. 1. Звичайно, навантаження розподіляється між лініями нерівномірно, основну частку струму віддає та, напруга на якій трохи більше, ніж на інших. Однак можливість одночасного живлення п'яти джойстиків "Dendy" або двох "PlayStation", у тому числі "DUAL SHOCK", підтверджена експериментально.

Діоди VD7, VD8 (див. рис. 1) або VD7-VD9 (рис. 2) виконують і додаткову функцію - захищають мікросхему джойстика від тиристорного ефекту, не даючи напругою на її входах піднятися вище напруги живлення більш ніж на величину прямого падіння напруги на діоді Шотткі. Це напруга ніколи не перевищує того, при якому може відкритися "звичайний" р-п перехід всередині мікросхеми, здатний спровокувати тиристорний ефект.

Яка стикуються з розеткою LPT-порту комп'ютера вилка Х1 в обох варіантах перехідники - DB-25M. Діоди VD1 - VD11 розміщують всередині корпусу вилки, припаявши їх безпосередньо до її контактам і добре ізолювавши відрізками полівінілхлоридної трубки відповідного діаметру.

Номери контактів роз'ємів Х2...Х6 на рис. 1 вказані для вилок DB-9M, стикуючих з "вузькими" кабельними розетками джойстиків. Якщо необхідно підключити джойстик з "широкою" розеткою, вилку DB-9M замінюють на DB-15M з урахуванням зазначених у таблиці відмінностей у призначенні контактів. В якості Х2-Х6 можна застосувати і вилки від несправних видеоприставок.

Останній варіант - майже єдиний для джойстиків від "PlayStation", так як підходять як ХЗ і Х4 розетки (рис. 3, вид з боку гнізд) вдається знайти тільки в несправної відеоприставці. Якщо такої не виявилося, доведеться скористатися окремими гніздами потрібного розміру, надітими на відповідні штирі кабельних вилок.

Довжина проводів, що з'єднують перехідник з розетками (виделками) джойстиків, не повинна перевищувати 1 м. Краще використовувати стрічковий кабель. Якщо обмежитися підключенням одного джойстика, роз'єм для нього можна встановити на корпусі вилки Х1. Можна і взагалі відмовитися від роз'єму, припаявши дроти кабелю джойстика безпосередньо до контактами вилки Х1 і висновків діодів VD1 - VD11. Природно, такий джойстик вже не можна буде підключити до відеоприставці.

Для повноцінної роботи джойстиків "DUAL SHOCK" з вібровіддачею необхідно від зовнішнього джерела подати на роз'єм Х2 (див. рис. 2) напруга 7,5, не потрібний джойстикам інших типів. Джерело повинен бути розрахований на струм не менше 0,5 А (для кожного джойстика). Іноді рекомендують збільшити напругу до 9 В, що помітно підсилює ефект віддачі. Проте в результаті перегрівається обмотка вібратора. Без зовнішнього живлення джойстик "DUAL SHOCK" зберігає працездатність, але вібрація не діє.

В якості діодів VD1 - VD11, крім зазначених на схемах, підійдуть КД923А або інші малогабаритні діоди Шотткі. В крайньому випадку можна застосувати й звичайні КД522Б, але це збільшить ймовірність нестійкої роботи деяких примірників джойстиків. Всі діоди повинні бути однотипними. Діоди VD6, VD9...VD11 (див. рис. 1) або VD6, VD10, VD11 (див. рис. 2) можна не встановлювати, якщо це не призводить до збоїв.

Зв'язок між джойстиками, підключеними до LPT-порту комп'ютера, і ігровими програмами забезпечує пакет DirectPad Pro. Пакет розробив Earle F. Philhower III в 1999 р. Входять до його складу драйвери працюють під Windows-9x, використовуючи набір інструкцій Directlnput пакету DirectX версії 5.0 і старше. В результаті установки пакета DirectPad Pro в системі з'явиться нове ігрове пристрій - "джойстик DPP".

Встановлюють DirectPad Pro у наступному порядку. Створивши окрему папку (наприклад, під ім'ям DPP) і розпакувавши в неї архів dpadpr50.zip необхідно, діючи за схемою "Мій комп'ютер" - "Панель управління" - "Ігрові пристрої" - "Додати" - "Додати" - "Встановити з диска", повідомити ім'я папки операційної системі комп'ютера. У списку файлів вкажіть DirectPad Pro.inf, двічі натисніть воц" і виберіть пристрій DirectPad Pro Standard And Force FeedBack.

Далі знайдіть у списку ігрових пристроїв DirectPad Pro Controller (для джойстика "Dendy" звичайного "PlayStation") або DirectPad Pro Force FeedBack Controller (для джойстика "DUAL SHOCK"). Натиснувши кнопку "Властивості", виберіть контролер - NES для "Dendy" або один з п'яти запропонованих комп'ютером варіантів (зазвичай - PSX Digital або PSX Left Analog) для "PlayStation". Залишається вказати ідентифікаційний номер (ID) джойстика (1 - для першого з встановлюваних, порядку зростання номера - для подальших) та адреса LPT-порту, до якого він буде підключений. З'ясувати адресу порту можна за схемою "Мій комп'ютер" - "Панель управління" -"Система" - "Пристрою" - "Порти COM і LPT".

Залишається відкалібрувати джойстик, натискаючи його кнопки і спостерігаючи в закладці "Configure" вікна "Властивості" (рис. 4) за переміщеннями чорного прямокутника усередині білого квадрата. При збоях слід у вкладці "Advanced" того ж вікна збільшити значення параметра PSX Scan Delay з 3 до 10. Там же можна підібрати параметри Sine, Ramp, Const, Spring, що забезпечують найкращий ефект зворотного зв'язку в джойстику "DUAL SHOCK".

У більшості програм, що імітують роботу видеоприставок на IBM PC, підтримка джойстиків DPP передбачена. "Скачати" безкоштовні емулятори приставок можна, наприклад, з сайту <http://emu-russia.km.ru>. В принципі, з допомогою джойстика DPP можна керувати роботою будь-якої комп'ютерної програми. Для цього існує кілька безкоштовних емуляторів, наприклад, joyemu41 (автор Simone Zanella). Після установки будь-якого з них усі операції, які виконувалися раніше з допомогою "миші", можна виробляти джойстиком DPP.

Додаток

При підключенні джойстика від відеоприставки "Sega" до LPT-порту за схемою, рекомендованою автором пакету DPP, сучасні IBM-сумісні комп'ютери, в відміну від їх морально застарілих версій, не реагують на натискання кнопок UP/Z і DOWN/Y джойстика. Згідно з цією схемою (у файлі під назвою genesis.gif) згадані кнопки з'єднані з лініями STROBE і AUTOFEED порту LPT, стан яких відображають розряди 0 і 1 регістр управління принтером. Для програміста це порт37АН (LPT1) або 27АН (LPT2). Пояснення причини несумісності не вдалося знайти ні на одному Інтернет-сайті. Довелося уважно вивчити пристрій адаптерів LPT-порту персональних комп'ютерів різних поколінь.

На рис. 1,а наведена типова схема вхідних і вихідних ланцюгів одного розряду регістр управління "старого" LPT-адаптера, що застосовувався в IBM PC/XT, їх клонах та в деяких комп'ютерах пізніших поколінь. З контактом роз'єми безпосередньо з'єднаний вихід з відкритим колектором інвертора DD1, навантажений резистором R1. Сюди ж підключений і вхід інвертора DD2. При стандартному використання регістра для виведення сигналів управління принтером логічний рівень на виході елемента DD2 повторює поданий на вхід елемента DD1, а рівень на контакт роз'єму Х1.1 їм инверсен.

Програмний драйвер джойстика "Sega" використовує "заборонений прийом". Записом лог. 0 у відповідний розряд регістра керування на виході елемента DD1 встановлено високий рівень напруги. У цьому стані вихідний транзистор інвертора DD1 закритий і не впливає на роботу вузла. Підключена до контактів роз'єму Х1 кнопка джойстика SB1, будучи натиснутою, з'єднає вхід інвертора з DD2 загальним проводом. В результаті читання регістра керування процесором комп'ютера дасть у відповідному розряді 0 при відпущеній кнопці і 1 при натиснутій.

У сучасних комп'ютерах вхідні і вихідні ланцюги регістра керування побудовані за іншою схемою, показаної на рис. 1,6, причому елементи DD1.1-DD1.3 знаходяться, як правило, всередині БІС. Логіка стандартної (висновок) роботи сайту залишається колишньою, але описаний вище прийом вже не проходить. Тому комп'ютер і не реагує на натискання кнопок UP/Z, DOWN/Y джойстика.

Удосконалена схема з'єднання джойстика від відеоприставки "Sega" з комп'ютером показана на рис. 2. У ній три відмінності від оригіналу. По-перше, сигнал від кнопки DOWN/Y поданий на вільний раніше контакт 15 (ERROR) вилки Х1. По-друге, введені транзистори VT1 і VT2, на базі яких подані сигнали від кнопок UP/Z і LEFT/X, а їх колектори з'єднані між собою і з контактом 10 (ACKNLG) вилки Х1. Емітери транзисторів з'єднані відповідно з контактами 1 (STROBE) і 14 (AUTOFEED) вилки Х1. По-третє, доданий діод VD8, що зменшує ймовірність прояви "тиристорного" ефекту КМОП-мікросхемі джойстика.

Положення кнопки DOWN/Y тепер відображається в розряді 3 регістра стану принтера за адресою 379h для LPT1 або 279h для LPT2. У розряді 6 того ж регістра в залежності від рівнів напруги, встановлених програмно на эмиттерах транзисторів відображається стан кнопки UP/Z або LEFT/X. Наприклад, якщо на контакті 1 низький, а на контакті 14 - високий рівень, транзистор VT2 постійно закритий, a VT1 відкритий при високому і закритий при низькому рівні лінії UP/Z. При інверсії рівнів на контакти 1 і 14 постійно буде закритий транзистор VT1, a VT2 відкритий при високому і закритий при низькому рівні лінії LEFT/X.

Харчування на джойстик надходить по ланцюгу VCC через розділові діоди VD1-VD8 від восьми ліній LPT-порту, на семи з яких (контакти 3-9 вилки Х1) високий логічний рівень присутня постійно. Струм споживання джойстика залежить від числа одночасно натиснутих кнопок і не перевищує, як правило, 2...4 мА. Напруга живлення джойстика при цьому не виходить за межі 3,5...3,8 (VD1-VD8 - діоди Шоткі, зазначені на схемі) або 3,1 ...3,4 (діоди звичайні кремнієві).

Всі елементи перехідного пристрою можна розмістити всередині пластмасового корпусу 25-контактної вилки DB-25M (Х1), припаюючи їх висновки безпосередньо до контактів. Вилка DB-9M (Х2) з'єднана з іншими елементами плоским девятипроводным шлейфом або джгутом багатожильних ізольованих проводів перерізом не менше 0,2 мм2 і довжиною не більше 1,5 м.

Резистори - будь-які малогабаритні. Номінали двох з них (R1 і R3) некритичні і можуть знаходитися в межах від 22 до 82 кОм. Транзистори - КТ315, КТ312, КТ3117 з будь-якими буквеними індексами або інші малопотужні кремнієві структури n-p-п. Не слід застосовувати транзистори -з надвисоким (понад 250) значенням коэффици ента һ21Э. Діоди з бар'єром Шоткі 1N5819 можна замінити аналогічними КД923А. Якщо встановити звичайні кремнієві діоди, наприклад, КД522Б, зменшиться напруга живлення джойстика, внаслідок чого деякі екземпляри можуть працювати зі збоями.

Для адаптації до нового способу підключення джойстика від приставки Sega" у файли dpadpro.vxd і dpadpro.dll пакета DPP версії 5.0 внесені зміни. Модернізований пакет (номер версії змінений на 6.0) упакований в архів dpadpr60.zip де в папці З++ є також вихідний текст нової підпрограми опитування джойстика.

При установці нового пакету на комп'ютер скористайтеся рекомендаціями згаданої вище статті, вибравши на відповідному етапі процесу контролер "Genesis" (джойстик з кнопками UP, DOWN, LEFT, RIGHT, А, В, С, START) або "Genesis 6 button" (додані кнопки X, Y, Z, MODE). При роботі з джойстиками від інших видеоприставок нова версія нічим не відрізняється від вихідної 5.0.

Якщо під час калібрування виявлена неправильна реакція комп'ютера на натискання кнопок джойстика, причина криється, як правило, в помилках монтажу узгоджувального пристрою.

Пакет DPP розрахований на роботу в середовищі Windows-9x. Для операційних систем Windows-2000/ХР буде потрібно додатковий драйвер "NTPAD ХР".

Пакет програм DPP версії 6.0.

Автор: С. Рюмик, р. Чернігів, Україна