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)

