Ostatnimi czasy napotkałem się na kilka opinii, że AROS to kiepskie środowisko do grania. Że nie ma obsługi joysticka, że źle się gra na klawiaturze, że korzystanie z kursorów przy odpalaniu tytułów dla m68k, za pomocą emulatora JanusUAE, nijak się ma do amigowania. Powiem krótko: nic bardziej mylnego. Po pierwsze, dla joysticków istnieje biblioteka lowlevel.library, odpowiedzialna za obsługę większości joysticków i joypadów, wpinanych w USB i jeśli dany programista z niej skorzysta, przy tworzeniu swojego tytułu, to możemy spokojnie grać na joyu. Po drugie, większość developerów idzie jednak na łatwiznę, implementując tylko klawiaturę, ale i na to jest rada, która bardzo się przyda entuzjastom emulacji Klasyka, na AROS-ie, mianowicie mapowanie klawiatury na joyu. Tym się właśnie zajmiemy. Ale zanim, to po trzecie, wystarczy zajrzeć na Aros Archives Exec. Ile tam jest tytułów. Od zatrzęsienia. Więc niech nikt mi nie mówi, że na AROS-a nie ma w co grać.

Do rzeczy. Sposób konfiguracji który przedstawię, po raz kolejny, był już przeze mnie opisywany. Dokładniej mówiąc w Commodore & AmigaFan #9, z lipca 2012. Po przetestowaniu swoich wypocin, okazało się, że tutorial nadal jest niezawodny i skuteczny. Zatem pozwolę sobie przytoczyć większą jego część.

Zanim zaczniemy konfigurację, proponuję przelecieć się po kilku grach, niekorzystających z lowlevel.library i zobaczyć jakie klawisze są najczęściej wykorzystywane, co i ja uczyniłem. Stwierdzenia są dwa. Najczęściej, dla gracza pierwszego domyślnymi klawiszami były: kursory, RAlt, RShift, Ctrl, Spacja oraz enter. Drugim stwierdzeniem jest fakt, że większość gier oferowało zmianę ustawień klawiatury. To natomiast przyda się, jeśli zechcemy skonfigurować joya dla drugiego gracza.

Kolejnym etapem, jest wzięcie do ręki swojego pada i zrobienie listy, jakie klawisze zechcemy przypisać klawiaturze. Na szczęście dzisiejsze pady raczej dają możliwość wykorzystania więcej niż jednego przycisku fire, więc tutaj mamy już na samym starcie sprawę nieco ułatwioną. Nie owijając dalej w bawełnę, przejdę do konkretów, prezentując sposób skonfigurowania joya na autopsyjnym przykładzie. Po krótkich oględzinach, prezentuję listę, która poprzedzona jest poniższymi zdjęciami:

Joy góra – strzałka kursora w górę;
Joy w dół – strzałka w dół;
Joy lewo – to wiadomo kursor w lewo;
Joy w prawo – nie inaczej jak strzałka w prawo;
Fire 1 – Control;
Fire 2 – prawy Shift;
Fire 3 – Spacja;
Fire 4 – Return (enter na głównej, nienumerycznej);
Fire 5 – lewa Amiga;
Fire 6 – prawa Amiga;
Fire 7 – prawy Alt;
Fire 8 – lewy Alt;
Fire 9 – Help;
Fire 10 – Delete.

Uruchamiamy komputer, po załadowaniu AROS-a wpinamy pada w port USB. Na blacie pojawi się komunikat Posejdona o wykrytym urządzeniu. Uruchamiamy Tridenta (program preferencyjny Posejdona).

Trident

Na liście w lewej górnej części okna, klikamy na Devices. Po prawej stronie pojawi się nam spis, wszystkich urządzeń wpiętych w USB (także tych wewnętrznych, podłączonych do bezpośrednio do płyty głównej, w przypadku komputerów stacjonarnych). Z listy wybieramy nasz joystick w dolnej prawej części listy klikamy na Settings. Otworzy się nam okno preferencji Hid Klasy, z której wybieramy trzecią zakładkę, czyli Action. Naszym oczom ukaże się okno z trzema listami. Górna lewa przedstawia funkcje joya (pada). Nas interesuje tylko pierwsza pozycja z góry. Po jej wybraniu, na drugiej liście po prawej wyświetlą się nam wszystkie dostępne klawisze, począwszy od osi x, na ostatnim przycisku fire kończąc. Ostatnia lista, po prawej na dole, pokazuje domyślne ustawienia dla poszczególnych przycisków z poprzedniej.

Hid klasa

Jak widać wyraźnie, są to przypisania cyfrowe i analogowe. Tych ustawień, także nie będziemy zmieniać. Będziemy natomiast do każdego przycisku z listy drugiej przypisywać klawisz z klawiatury.

Zanim to zaczniemy, kilka uwag. Każdy klawisz przypisane będzie miał dwa polecenia; klawisz wciśnięty i puszczony. Nowe funkcje muszą znajdować się na końcu prawej dolnej listy, bo jeśli dana gra korzysta z lowlevel.library, w pierwszej kolejności będą brane pod uwagę polecenia cyfrowe i analogowe, na końcu nasze. Funkcja wciśnięty i puszczony powinny być w tej właśnie kolejności (jeśli wpisałem na odwrót, pad czasami dziwnie się zachowywał). Po każdej nowo wklepanej funkcji, klikamy na save (lub save as default – zdarzało się, że gdy wprowadziłem wszystkie ustawienia, po zapisie część znikała; każdorazowe zapisywanie uchroni nas od powtarzania tejże żmudnej czynności, jedyne co będziemy musieli powtarzać, to otwieranie za każdym razem okna hid.class).

Z górnej lewej klikamy na pierwszą pozycję (Joystick(Joystick)), prawa górna lista – oś x (X axis). Następnie pod listą u dołu klikamy na New. Pojawi się nam No action. Teraz przechodzimy do prawej dolnej części. Klikamy na gadżet cykliczny również zatytułowany No action i wybieramy Raw key. W Trigger wybieramy Any, a w kolejnej linijce zaznaczamy gadżet CC. Pojawią się nam nowe trzy gadżety cykliczne. W pierwszym wybieramy Eval. Item Val, w drugim znak > , a w trzecim Constant. Wklepujemy wartość Left Constant „0”, a wartość Right Constant „64”. Z czwartej listy (ostatniej, w prawym dole, która pojawiła się w trakcie konfiguracji) wybieramy Cursor left, zaznaczamy send keyup event…. (zaraz pod czwartą listą) i zapisujemy.

Klikamy znowu na Settings, przechodzimy do Action, pierwsza pozycja z lewej górnej listy, w drugiej liście x axis, pod trzecią listą New (ma być na końcu, jeśli coś się pomieszało, należy je przesortować klikając na Up lub Down). Następnie znowu Raw key, Any, CC, Eval. Item Val, teraz wybieramy <= i ostatnia Constant. Wartości Left Constant „0” i Right Constant „64”. Ostatnia lista to oczywiście Cursor left, natomiast Send keyup event… ma być w tym przypadku odznaczona. Zapisujemy. Właśnie przypisaliśmy lewy kursor klawiatury przyciskowi w lewo na joysticku. Jak widać z powyższych czynności, owa konfiguracja zmierza do pewnego rodzaju schematu, który został przedstawiony w Tabeli 1.

Tabela 1

Teraz zostały nam jeszcze klawisze fire. W moim przypadku jest 10 zwykłych i 2 w gałkach (stąd 12 buttonów na liście). Powód skonfigurowania „tylko” dziesięciu podałem na końcu artykułu. Z górnej prawej listy wybieramy Button 1(primary/trigger). Na dolnej prawej liście, tradycyjnie pojawi się nam już gotowe ustawienie dla lowlevel.library (Digital joystick), którego nie ruszamy. Tutaj także musimy ustawić dwie akcje; klawisza wciśniętego i puszczonego. Klikamy na New, w Performed action (pierwszy gadżet cykliczny) wybieramy Raw key, w Trigger wybieramy Any. Następnie z prawej dolnej listy, wzorem przygotowanego wcześniej planu wybieramy klawisz z klawiatury, czyli w tym przypadku Control. Ptaszkujemy Send keyup event… Zapisujemy. Powtarzamy całą operację, czyli znowu Button 1…, New, Raw key, w Trigger tym razem wybieramy Down, klawisz Control na dolnej prawej liście, natomiast Send keyup event… tutaj ma być odznaczona i zapisujemy. Pierwszy fire na naszym padzie właśnie został przypisany do klawisza Ctrl na klawiaturze.

Jak zauważyliście, jedyne różnice w stosunku do klawiszy ruchu, to brak zaznaczonego gadżetu CC w linijce Opts (a co za tym idzie, niewymagane wprowadzanie wartości Left i Right Constant), oraz opcja Down (Trigger) w poleceniu klawisza puszczonego (zamiast Any).

Pozostałe klawisze fire konfiguruje się identycznie. Dla poszczególnych buttonów zmienią się tylko przypisane klawisze klawiatury. Tak więc, nawiązując do stworzonej przeze mnie listy, odsyłam Was do drugiej tabeli.

Powyższy tutorial powstał wiele lat temu na zasadzie metody prób i błędów. Mimo to, nie pokusiłem się o konfigurację klawiszy fire na gałkach (11 i 12), gdyż jak uprzednio, uznałem że dziesięć to i tak wystarczająco, oraz dlatego iż nie udało mi się skutecznie przypisać samych ruchów gałek dla padzie. Co prawda gałki były obsługiwane przez klawisze kursorów (po przełączeniu trybu MODE na padzie), ale nie we wszystkich grach zachowywały się prawidłowo. Moim zdaniem, w owej konfiguracji, najlepiej spiszą joypady i joysticki, nie posiadające żadnych dodatkowych udziwnień.

Z przetestowanych tytułów dosłownie kilka pozycji gryzło się z naszym mapowaniem klawiatury, gdyż w tych przypadkach, autor jednak postanowił zaimplementować lowlevel.library. Na to też jest rada. Posejdon zapisuje swoje preferencje w EnvArc:Sys. Po zakończeniu konfiguracji, robimy sobie kopię tych ustawień, a następnie jeszcze raz przystępujemy do edycji, z tą różnicą, że we wszystkich klawiszach pada kasujemy polecenia cyfrowe i analogowe z dolnej prawej listy (zostawiamy same Raw Key – czyli te które sami wprowadziliśmy) i zapisujemy. Potem także robimy kopię tych ustawień (najlepiej np. zrobić sobie katalog „joy”, a w nim dwa osobne; „low” i „raw” i tam wrzucić kopie naszych ustawień). Potem wystarczy stworzyć dwa skrypty dla IconX-a, który w zależności od potrzeby, będzie nam kopiował żądane ustawienia (najlepiej do Env:Sys w Ram Dysku, a np. w EnvArc zostawić jedną wersję ustawień i traktować ją jak domyślne – będą się ładować przy każdym starcie AROS-a).

Tak czy siak, przedstawiony sposób konfiguracji joysticka w AROS-ie, mimo tylu lat, ponownie zadziałał bezproblemowo, na niemalże wszystkich przetestowanych tytułach. Mało tego, bez problemów joypad obsłużył także pozycje dla linii klasycznej, uruchamiane w środowisku AmiBridge i JanusUAE (biorąc pod uwagę akurat ten model pada). Natomiast dzięki zaplanowanej liście przypisanych klawiszy, w grach, w których jest to możliwe, mogłem ustawić własne preferencje. Jeśli zechcecie przypisać klawiaturze więcej niż jeden kontroler, wpięty w port USB, sposób już znacie. Wystarczy tylko przygotować listę klawiszy dla drugiego joya i do dzieła.

’Don Rafito’ – Amiga NG (6) 1/2019

—> do spisu artykułów

Dodaj komentarz