Ako na konfiguráciu herných ovládačov 1.

Ako na konfiguráciu herných ovládačov 1.
12.01.2017 23:00 | Články | mirek biňas

S podporou natívnych herných titulov to na Linux-e už dnes nie je také hrozné aké to bolo ešte pomerne nedávno. A nedávna štatistika najpredávanejších hier na Steam-e za rok 2016 to len potvrdzuje. Ak teda uvažujete o tom, že Linux začnete používať aj na hranie hier, okrem podpory vašej grafickej karty môžete naraziť ešte na jeden problém - na nájdenie kompatibilného herného ovládača…

Trochu (vlastnej) motivácie na úvod

Neviem ako vy, ale ja som sa k počítačom a celkovo k IT dostal najmä vďaka počítačovým hrám. Už keď ma ako malého (asi) 8 ročného jogurta posadili pred legendárne PMD 85, na ktorom bežal Robot Karel, som tak akosi tušil, že presne tomuto sa chcem venovať. Prihlásil som sa na počítačový krúžok, na ktorom som na každom stretnutí začal programovať novú počítačovú hru. Samozrejme som žiadnu nedokončil. No celkom stratený som sa stal až vtedy, keď mi naši kúpili Didaktik M. Mal som 11. No nie o tom som chcel.

K retro hrám sa stále rád vraciam. Emulátor ZX Spectra mám dokonca aj v telefóne (Marvin) a z času načas si niektorý titul stále rád zahrám. A keďže som nadšencom aj Raspberry PI, napadla ma myšlienka poskladať si vlastnú retro hernú stanicu pomocou distribúcie RetroPie alebo Recalbox. Jediné, čo mi k dokončeniu tohto plánu donedávna chýbalo, bol herný ovládač. Ten mi však nedávno z Číny došiel, takže zábavka na pár večerov s jeho konfiguráciou bola zaručená.

Ktorý herný ovládač si vybrať?

Nie som si istý, či sa na krabici s herným ovládačom alebo na stránke niektorého e-shopu s hernými ovládačmi dočítate o podpore na OS Linux. Skôr nie. Ako sa teda rozhodnúť, či ten alebo onen ovládač má podporu v Linux-e? Vyzerá to byť na mačku vo vreci.

Podobne neistý som sa cítil aj ja, keď som si ovládač vyberal. Doma mám síce už dlhšiu dobu Nintendo Wii Remote s Classic Controller-om, ale to je iný príbeh. Na niektorých stránkach som sa dočítal, že napríklad podpora herného ovládača pre Microsoft Xbox X360 je "out of the box". Až toľko peňazí som však do ovládača investovať nechcel. Zo stránok Alliexpress-u som si teda vybral bezdrôtový ovládač, ktorý už v názve hlásal podporu pre Raspberry Pi 3 Retropie. To bude určite tá správna voľba.

Neznačkový bezdrôtový herný ovládač pre PS3, PS2, PC, a Raspberry Pi 3 Retropie

Obrázok 1: Neznačkový bezdrôtový herný ovládač pre PS3, PS2, PC, a Raspberry Pi 3 Retropie

Prvé pripojenie

Po pripojení USB prijímača do môjho laptopu som začal pátrať, aké zariadenie to vlastne mám:

$ lsusb
Bus 002 Device 002: ID 8087:8000 Intel Corp. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 115: ID 138a:0017 Validity Sensors, Inc. Fingerprint Reader
Bus 003 Device 003: ID 058f:9540 Alcor Micro Corp. AU9540 Smartcard Reader
Bus 003 Device 113: ID 2563:0526  
Bus 003 Device 007: ID 5986:0268 Acer, Inc 
Bus 003 Device 006: ID 8087:07dc Intel Corp. 
Bus 003 Device 045: ID 1199:a001 Sierra Wireless, Inc. 
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Ak hľadáte v zozname zariadení práve pripojený bezdrôtový prijímač, podľa opisu ho nespoznáte, pretože je to presne to zariadenie, pri ktorom opis chýba. Pozrime sa, čo sa po pripojení zapíše do systémového záznamníku. Ten totiž napovie viac. Jeho čiastočný výpis po zadaní príkazu journalctl -f sa nachádza nižšie:

jan 09 00:40:13 discovery kernel: usb 3-1: new full-speed USB device number 118 using xhci_hcd
jan 09 00:40:13 discovery kernel: usb 3-1: New USB device found, idVendor=2563, idProduct=0599
jan 09 00:40:13 discovery kernel: usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
jan 09 00:40:13 discovery kernel: usb 3-1: Product: HJD-X
jan 09 00:40:13 discovery kernel: usb 3-1: Manufacturer: hongjingda
jan 09 00:40:13 discovery kernel: input: hongjingda HJD-X as /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.0/0003:2563:0599.0048/input/input136
jan 09 00:40:13 discovery kernel: hid-generic 0003:2563:0599.0048: input,hidraw0: USB HID v1.10 Gamepad [hongjingda HJD-X] on usb-0000:00:14.0-1/input0
jan 09 00:40:13 discovery mtp-probe[16871]: checking bus 3, device 118: "/sys/devices/pci0000:00/0000:00:14.0/usb3/3-1"
jan 09 00:40:13 discovery mtp-probe[16871]: bus: 3, device: 118 was not an MTP device
jan 09 00:40:13 discovery /usr/libexec/gdm-x-session[2048]: (II) config/udev: Adding input device hongjingda HJD-X (/dev/input/js0)
jan 09 00:40:13 discovery /usr/libexec/gdm-x-session[2048]: (II) No input driver specified, ignoring this device.
jan 09 00:40:13 discovery /usr/libexec/gdm-x-session[2048]: (II) This device may have been added with another device file.
jan 09 00:40:13 discovery kernel: usb 3-1: USB disconnect, device number 118
jan 09 00:40:13 discovery /usr/libexec/gdm-x-session[2048]: (II) config/udev: Adding input device hongjingda HJD-X (/dev/input/event4)

Z výstupu sa konečne dozvedám, že pripojené zariadenie je označené ako Hongjingda HJD-X. A podľa očakávania - Google o tomto zariadení veľa informácií neposkytne. Dôležité však je, že v systéme boli vytvorené dve znakové zariadenia (character devices):

  1. /dev/input/js0 - toto zariadenie sa dá použiť so starým Joystick API
  2. /dev/input/event4 - toto zariadenie sa dá použiť s novým Evdev API

Môžeme sa pozrieť ešte na vytvorené linky v priečinku /dev/input/by-id:

$ ls -lh /dev/input/by-id/ 
total 0
lrwxrwxrwx. 1 root root  9 jan  9 10:07 usb-hongjingda_HJD-X-event-joystick -> ../event4
lrwxrwxrwx. 1 root root  6 jan  9 10:07 usb-hongjingda_HJD-X-joystick -> ../js0
lrwxrwxrwx. 1 root root 10 jan  7 02:29 usb-SunplusIT_INC._Integrated_Camera-event-if00 -> ../event17

Pozrime sa však bližšie na oba súbory reprezentujúce dané zariadenie:

$ ls -lh /dev/input/event4 /dev/input/js0
crw-rw----+ 1 root input 13, 68 jan  9 10:07 /dev/input/event4
crw-rw-r--+ 1 root input 13,  0 jan  9 10:07 /dev/input/js0

Ak budete chcieť niektoré z týchto zariadení použiť, potrebujete mať k nemu prístup. To môžete zabezpečiť opäť niekoľkými spôsobmi - môžete zmeniť prístupové práva k týmto súborom (zariadeniam), môžete sa stať členom skupiny input alebo vytvoriť potrebné pravidlo pre udev.

Najjednoduchšie bude, ak sa stanete členmi skupiny input, pretože prístupové práva budete potrebovať nastaviť zakaždým, keď zariadenie pripojíte. Nehľadiac na to, že ich umiestnenie sa môže zmeniť. To, či už ste alebo nie ste členom skupiny input si môžete overiť príkazom groups. Ak členmi tejto skupiny nie ste, môžete sa ním stať zadaním nasledujúceho príkazu:

$ sudo usermod -a -G input pouzivatel

To, či máte prístup k jednému alebo druhému súboru si môžete overiť jednoducho - zadajte príkaz:

$ cat /dev/input/event4

Ak teraz začnete na vašom ovládači stláčať ľubovoľné tlačidlá alebo manipulovať s joystikom, na obrazovke sa vám začnú zobrazovať rozličné znaky. Tieto znaky reprezentujú hodnoty, ktoré sa po manipulácii s ovládačom dostali do počítača. Ich význam nás však momentálne zaujímať nebude. Podobný výstup získate aj vtedy, ak si necháte "zobraziť obsah" druhého súboru. Ak teda dostávate spätnú väzbu v podobe nezrozumiteľných znakov na obrazovke, je všetko pripravené na to, aby ste začali svoj ovládač používať na hranie niektorej hry. Bližšie sa pozrieme na to, ako si s herným ovládačom rozumejú hry dostupné cez Steam.

Steam v režime Big Picture

Steam dokáže pracovať v dvoch režimoch - v klasickom, ktorý sa vám štandardne zobrazí po spustení, alebo v režime Big Picture, do ktorého sa viete prepnúť kliknutím na ikonu herného ovládača v pravej hornej časti obrazovky alebo stlačením kombinácie kláves ALT + ENTER. Tento režim bol navrhnutý pre použitie na TV, aby ste si jednotlivé hry mohli vychutnať z pohodlia vášho gauča s herným ovládačom v ruke.

Tlačidlo na zapnutie režimu Big Picture

Obrázok 2: Tlačidlo na zapnutie režimu Big Picture.

Použitie herného ovládača je v tomto režime veľmi jednoduché. Ak teda máte k dispozícii herný ovládač a po jeho pripojení boli vytvorené všetky potrebné súbory reprezentujúce toto zariadenie, prejdite v režime Big Picture do nastavení, kde v časti Controller vyberte položku Controller Settings. Váš herný ovládač by ste mali vidieť v časti Detected Controllers.

Nastavenia ovládačov spolu so zoznamom rozpoznaných ovládačov

Obrázok 3: Nastavenia ovládačov spolu so zoznamom rozpoznaných ovládačov.

Keď si v menu vyberiete rozpoznaný ovládač, zobrazí sa vám obrazovka, na ktorej ho môžete detailne nastaviť. Konfigurácia prebieha veľmi intuitívne, keď v ľavej časti obrazovky sa nachádza podoba ovládača Xbox 360 so zvýrazneným buď tlačidlom alebo joystikom, ktorý práve nastavujete. Vy už len stlačením príslušného tlačidla na vašom ovládači alebo pohybom joystika do príslušnej strany potvrdíte, čo bude zodpovedať práve mapovanému tlačidlu na obrázku.

Konfigurácia ovládača

Obrázok 4: Konfigurácia ovládača.

Po potvrdení konfigurácie sa stal váš ovládač plne funkčný a môžete ho používať ako na ovládanie samotného Steam-u, tak aj na hranie jednotlivých hier (z pohodlia vášho gauča). Všade tam, kde ste mali doteraz zobrazené názvy kláves, ktoré sa používali pre nejakú akciu alebo navigáciu, sa od tohto momentu budú zobrazovať tlačidlá ovládača.

Zmena navigačných tlačidiel z textových na tlačidlá ovládača

Obrázok 5: Zmena navigačných tlačidiel z textových na tlačidlá ovládača.

Ak ste skôr zvyknutí používať klasický režim, môžete svoj herný ovládač používať aj v ňom. Ak ste ho totiž úspešne nastavili v režime Big Picture, každá hra, ktorú spustíte aj v klasickom režime, bude vedieť tento ovládač používať.

Mapa z hry Alien: Isolation bez použitia ovládača

Obrázok 6: Mapa z hry Alien: Isolation bez pripojeného ovládača.

Mapa z hry Alien: Isolation s použitím ovládača

Obrázok 7: Mapa z hry Alien: Isolation s pripojeným ovládačom.

Čo nás čaká nabudúce?

Zrejme nie všetky hry, ktoré hráte, máte dostupné výlučne na Steam-e, aby ste vedeli využiť jeho výhodu takmer automatickej konfigurácie herného ovládača. Čo teda v prípade, že používate iného klienta na spúšťanie hier? Alebo spúšťate svoje hry priamo? Alebo cez wine?

Nabudúce sa pozrieme trochu viac pod povrch. Pozrieme sa na to, ako zachytiť jednotlivé stlačené tlačidlá a k akým udalosti pritom dochádza. Pokúsime sa tieto tlačidlá správne namapovať a nakonfigurovať tak ľubovoľný ovládač pre ľubovoľnú hru.

Použité zdroje

    • RE: Ako na konfiguráciu herných ovládačov 1. 13.01 | 17:17
      Avatar redhawk75 mint, arch, debian, mx16  Používateľ

      pekne.

      K raspberry pi len tolko ze na OSMC (KODI) je mozne doplnit repozitare a hrat na TV (ano 47" plazma a taky Exolon :D je zabijak) Inak podobny clanok som pisal pred vianocami k Raspi a k mintu

      Ja pouzivam na hranie gamepad k Retropi Thrustmaster FireStorm Digital USB a osvedcil sa mi aj lacny Gembird JPD-UB-01 (cca 4€ za kus a mimozem stal to ma ako Gembird JPD-UB2-01 2ks za 7.3€)

      • RE: Ako na konfiguráciu herných ovládačov 1. 13.01 | 17:22
        Avatar mirek biňas Fedora 25  Administrátor

        tiez sa tesim na kadejake pecky ;) aj ked aktualny top je alien: isolation a nocne stretnutia s nim su nezabudnutelne ;-)

        dnes som si uvedomil, ze v gameroom-e spolocnosti, kam chodim kurzovat, maju herne konzoly. videl som tam ps4 a druha je neviem co. urcite sa tam stavim prevetrat ten gamepad a vyskusat ho v linuxe ;)

    • RE: Ako na konfiguráciu herných ovládačov 1. 07.03 | 16:03
      Avatar Branislav Poldauf Ubuntu LTS, Debian stable  Používateľ

      ja mám MI GAMEPAD (bluetooth) a linux ho rozpozná fajn, len skoda ze nemam ziadnu hru na steame

      ale mam telku s androidom a hravam tam stareho tomb raidera (neskutočná nostalgia) a obcas auticka ked nemozem zaspat

      Linux: the operating system with a CLUE... Command Line User Environment
      • RE: Ako na konfiguráciu herných ovládačov 1. 07.03 | 17:10
        Avatar bedňa antiX, Devuan, LegacyIce  Administrátor

        Na Steame je kopec hier pre Linux zdarma.

        Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
        • RE: Ako na konfiguráciu herných ovládačov 1. 08.03 | 09:23
          Avatar Branislav Poldauf Ubuntu LTS, Debian stable  Používateľ

          tak to si to asi skusim nainstalovat, som myslel ze steam ma len platene hry

          Linux: the operating system with a CLUE... Command Line User Environment
          • RE: Ako na konfiguráciu herných ovládačov 1. 08.03 | 10:22
            Avatar Andrej Lacho Debian, CentOS obcas Kubuntu  Administrátor

            Su tam aj free ale drviva vacsina stoji za ...

            Mozno skus Team Fortress 2, ta je celkom v pohode.

            Anyway, nezacni kupovat lebo dopadne ako ja zbierka sa ti rozroste na nikolko desiatok az stoviek hier ktore si v zivote nehral :)

            Linux without fckin systemd
            • RE: Ako na konfiguráciu herných ovládačov 1. 08.03 | 11:04
              Avatar bedňa antiX, Devuan, LegacyIce  Administrátor

              To bude vec názoru, pretože je tam War Thunder a Fistful of Frags, tie som hral a pokľadám ich za výborné.

              Potom je tam kopec takých, ktoré by som chcel odskúšať, ale nenašiel som si čas, ako Tiger Knight: Empire War, No More Room in Hell, The Pirate: Caribbean Hunt, Infestation: The New Z, Heroes & Generals a kopec ďalších. Ja osobne nikdy neprejdem ani sekciu zadarmo.

              Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
              • RE: Ako na konfiguráciu herných ovládačov 1. 08.03 | 11:37
                Avatar Andrej Lacho Debian, CentOS obcas Kubuntu  Administrátor

                No More Room in Hell

                Nieco medzi Half-Life a Left4Dead :) To je dobra odreagovacka. A stym suvisia aj celkovo free hry. Pokial si clovek chce zahrat kvalitnu hru s dobrym pribehom alebo nieco podobne (kazdemu sedi nieco ine) a nie sa odreagovat na par minut tak mu free hry povacsinu nestacia.

                Linux without fckin systemd
                • RE: Ako na konfiguráciu herných ovládačov 1. 08.03 | 17:13
                  Avatar Branislav Poldauf Ubuntu LTS, Debian stable  Používateľ

                  tak ja hrávam presne len pre odreagovanie v robote agar.io, solitare a míny doma androidove hry spustitelne na telke (tomb raider, sword of xolan, real racing, asphalt) jedine co mam dlhodobo nainstalovane v kompe je battle for wesnoth (jednu epizodu z kampane hrám aj mesiac)

                  zvacsa ma to hranie po celedennom sedeni pri pc po 15m prestane bavit

                  preto si hry nekupujem, nemam na to ani cas ani vydrz

                  ale ak ma steam nejake fajne free hry tak to teda vyskusam

                  Linux: the operating system with a CLUE... Command Line User Environment