Joystick w E-UAE

Tani joypad za 10 złotych będący podróbką tego od Playstation tylko podłączany przez usb znakomicie nadaje się do grania w klasykę.

 

Na chińskim pudełeczku napisane jest, że działa bez dodatkowych sterowników już pod Win98 więc urządzenie bez problemu wykrywane jest także pod Linuksem. W systemie zgłasza się jako /dev/input/js0. Joy'a należy skalibrować, posłuży do tego program jscal z pakietu joystick, jeśli ktoś chciałby to wszystko zobaczyć w bardziej przystępnej formie może zainstalować pakiet jscalibrator (wszystko dostępne w standardowym repozytorium).

 

Konfiguracja joysticka w systemie:

Podłączamy joystick, uruchamiamy program jscal z parametrem urządzenia:

~$ jscal /dev/input/js0 
Joystick has 6 axes and 10 buttons. 
Correction for axis 0 is broken line, precision is 0. 
Coeficients are: 112, 142, 5534751, 5534751 
Correction for axis 1 is broken line, precision is 0. 
Coeficients are: 112, 142, 5534751, 5534751 
... 
Correction for axis 5 is broken line, precision is 0. 
Coeficients are: 3, 3, 178956970, 178956970

 

Pad zgłasza się jako sześcio-osiowy, to zapewne dzięki osiom zarezerwowanym dla grzybków, które dodano w dual-shockach, ale nie w wersji budżetowej za dychę. To tak na prawdę jedyna komplikacja, jeśli trafisz urządzenie z ilością osi odpowiadającą faktycznie występującym manipulatorom, czyli np. klasyczny joystick z dwiema osiami czy prawdziwy dual-shock (krzyżyk i dwa grzybki) z sześcioma to praktycznie od razu można zacząć grać.

Ja jednak w tym układzie musiałem ustalić jaka oś odpowiada prawo-lewo, a jaka góra-dół i przekazać to do gry, czyli oczywiście do emulatora Amigi. Odpaliłem:

~$ jscal -c /dev/input/js0

zatrzymał się na

Move axis 0 to minimum position and push any button.
Axis 0:        1

Enter, Enter, ... dopiero trzecia oś zaczęła reagować na ruchy na padzie, czyli trzecia to lewo-prawo, przyciskam lewo i Enter ...

Move axis 3 to minimum position and push any button.
Axis 3:      0

później nic nie przyciskam, czyli że środkowe położenie manipulatora

Move axis 3 to center position and push any button.
Axis 3:      127

... i prawo, czyli skrajne maksymalne położenie

Move axis 3 to maximum position and push any button.
Axis 3:      255

Tak samo postępuję z osią pionową. Wiem już, że oś 3 i 4 to mój krzyżak - teraz trzeba to ustawić w e-uae.

 

Konfiguracja E-UAE pod joystick:

Jest kilka nieudokumentowanych zmiennych w pliku konfiguracyjnym, które służą ustawieniom joysticka. Oto one:

joyport

joyport0=mouse
joyport1=joy0

Określa jakie urządzenie wpięte jest do wirtualnej Amigi. Możliwe parametry: mouse; kbd1, kbd2, kbd3 czyli układy klawiatury emulujące joystick; joy0, joy1 czyli kolejne systemowe joysticki.

 

input.config

input.config=1

Określa, która konfiguracja jest w ogóle brana pod uwagę, zaraz poniżej definujemy ustawienia dla konkretnych "inputów". Na początek potrzeba przynajmniej jeden, ale dobry, w kolejnych można trzymać inne warianty.

 

input

input.1.joystick.0.disabled=0
input.1.joystick.0.axis.3=JOY2_HORIZ.0
input.1.joystick.0.axis.4=JOY2_VERT.0
input.1.joystick.0.button.0=JOY2_FIRE_BUTTON.0
input.1.joystick.0.button.1=JOY2_2ND_BUTTON.0
input.1.joystick.0.button.2=JOY2_3RD_BUTTON.0

Konkretne wskazanie elementów urządzenia sterującego i zmapowanie go na wirtualny manipulator.

input.1 - czyli to co skonfigurowane w input.config

joystick.0 - czyli pierwszy joystick dostępny w systemie gospodarzu ( w Ubuntu się znaczy)

disabled=0 - czyli, że w ogóle włączony

axis.3 - oś, z naszego kontrolera, którą chcemy zmapować na joystick w Amidze

axis.4 - j.w.

JOY2_HORIZ.0 - określa wirtualny joystick Amigi oraz jego oś (tu poziomą), na którą przełożona będzie oś rzeczywistego kontrolera, jest tu pewna zmyłka, bo joysticki nie są tu numerowane od zera, a od 1, zatem JOY2 to wirtualny joystick siedzący w drugim porcie Amigi (czyli normalna konfiguracja w rzeczywistości, kiedy w porcie pierwszym była mysz, a w drugim joy)

JOY2_VERT.0 - j.w., ale dla osi pionowej

button.0 - pierwszy guzik rzeczywistego urządzenia

JOY2_FIRE_BUTTON.0 - podstawowy i często jedyny "fajer" w dżoju amigowym, jednak system Amigi pozwala na wykorzystanie do trzech guzików (np. Flashback obsługuje dwa)