atarionline.pl jak zrobić joystik trzyprzyciskowy - Forum Atarum

Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

  • :
  • :

Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

    • 1: CommentAuthorPablo112
    • CommentTime24 Oct 2012 zmieniony
     
    W związku z prośbą otwieram wątek, mam nadzieje, że powstanie jakaś gra.
    Pomysł na trzyprzyciskowy joystik do atari zrodził się w głowie Sikora. ->link<-
    Ja robiąc przeróbkę joya zeemote pod androida, wykorzystałem ten pomysł, bo trzy przyciski do jednego fire wydawały się marnotrawstwem. Tak powstał arcade joy. ->link<-
    Z racji że nie jest to tania zabawka, i może nastręczyć pewnych trudności w wykonaniu, tu będą tylko praktyczne porady jak małym kosztem można wykonać taki joystik.

    1.potrzebny 9 żyłowy kabel z wtyczką do portu joya atari, prawie zawsze mamy tylko 7 żyłowy.
    Można kupić 10 żyłowy kabel i wtyczkę COM a następnie samemu polutować, ale nie polecam takiej zabawy.
    Lepiej zdobyć pada od SEGI, kabelek jest idealny!

    2.potrzebne 2 rezystory 1 kohm, koszt 50 gr
    3.teraz przydał by się joy który ma fizycznie 3 przyciski, istnieje tego trochę więc może znajdzie się coś w szafie
    Można z powodzeniem wykorzystać wspomnianego pada od SEGI, zrobiłem ostatnio taką przeróbkę, jak znajdę chwile to zamieszczę coś więcej.

    Idealne wydają się mi megastary znalazłem nawet model SV135 z 9 żyłowym kablem!

    Teraz tylko pozostaje podmiana kabla od SEGI do joya i lutowanie kabelków do przycisków.
    Pin 7 (+5V) z jednej strony do obu przycisków.
    Na drugim łączu przycisków lutujemy po rezystorze i odpowiednio do przewodu, pierwszy do pin9, drugi do pin5.

    Teraz już możemy sprawdzić programikiem który zamieścił Sikor (wciśnięty powinien dawać wynik =1) i odpalić na razie tylko Bioptronid
    • 2: CommentAuthorpajero
    • CommentTime24 Oct 2012 zmieniony
     
    Tu masz wersję 6-przyciskową - tańszą i z suportem QMEGa

    ->link<-

    tylko, że to wszystko takie na opak... przecież można napisać prosty handler do procka i go wlutować zamiast istniejącego
    • 3: CommentAuthorPablo112
    • CommentTime24 Oct 2012
     
    dobre, ale nie każdy lubi grać na padzie, poza tym trzeba przyjąć jakiś standard
    • 4:
       
      CommentAuthorlarek
    • CommentTime24 Oct 2012
     

    pajero:

    Tu masz wersję 6-przyciskową - tańszą i z suportem QMEGa

    A QMEG 5.xx jest już gdzieś dostępny?
    • 5:
       
      CommentAuthortdc
    • CommentTime25 Oct 2012 zmieniony
     
    Bioptronid to gra, która obsługuje taki dżojstik. Jednak to może doprowadzać do nieznanych jeszcze problemów, dlatego proszę o zgłaszanie takich jeśli ktoś zauważy coś niepokojącego (ale to jest możliwe do przetestowania tylko uruchamiając grę w wersji obsługującej taki dżojstik czyli przynajmniej od wersji 1,4).

    Powtórzę:
    Uwaga: z racji małej dostępności takiego joysticka, tego typu rozwiązania jeszcze nie są do końca przetestowane, dlatego może się okazać, że u kogoś z uszkodzonym portem PIA, kablem itp. mogą pojawiać się jakieś dziwne efekty (szczególnie po podłączeniu "wiosełek"), dlatego proszę raportować tego typu zdarzenia w tym wątku - nie wiemy jak powszechne mogą być.



    @Pablo112 - dzięki za taki fajny opis!
    • 6: CommentAuthorPablo112
    • CommentTime25 Oct 2012
     
    Po dokładnym przeczytaniu pomysł Pajero jest bardzo dobry, nic nie stoi na przeszkodzie dostosować się do tego schematu i dodając np. tylko 2 lub 3 przyciski do joya zbudować tylko obwód 1 między pin 7a 5, nawet bez QMEG-OS 5.xx da się napisać obsługę tych przycisków.
    Ważne żeby nie tworzyć do każdej gry innych standardów i innego zestawu rezystorów.
    Jest tylko pytanie, co się stanie jak wciśniemy w tym schemacie 2 przyciski dodatkowe równocześnie.
    • 7: CommentAuthorwieczor
    • CommentTime25 Oct 2012 zmieniony
     
    To jest akurat dość proste:
    żaden przycisk = 39+82+160 = 281 k
    fire 2 = 82 + 160 = 242 k
    fire 3 = 39 + 160 = 199 k
    fire 2+3 = 160 k
    fire 4 = 39 + 82 = 121 k
    fire 2+4 = 82 k
    fire 3+4 = 39 k
    fire 2+3+4 = 0 k

    Czyli wartości pośrednie - teraz wszystko zależy od przyjętego progowania - odległości wynoszą dla każdej kombinacji ok 40 kOhm - jeśli jest to bezpieczna odległość i zostaje miejsce na margines to ok. Oczywiście trzeba dodać jeszcze ten 4.7 - 5.6 k na początku (bardzo mądrze - nigdy nie ma całkowitego zwarcia).

    Artykuł Sikora zakłada pojedynczy rezystor 1 k na każdym wejściu. Czyli jego przyciskowi odpowiada naciśnięcie wszystkich trzech. O ile 4.7 - 5.6 k da odczyt mieszczący się w progu. @tdc - jaki próg założyłeś u siebie? Bo jeśli np. połowę zakresu to wtedy być może fire 4 lub 2+3 zadziała.

    QMEG nie ma tu nic do rzeczy - jedyną rzeczą jaką robi to mapuje drugie wiosło na SELECT, START i OPTION.
    • 8:
       
      CommentAuthortdc
    • CommentTime26 Oct 2012
     

    pajero:

    Tu masz wersję 6-przyciskową - tańszą i z suportem QMEGa

    Być może tańsze, ale w mojej ocenie:
    - 3 przyciski na Atari jest akurat (bo gier typu KOF robić nie będziemy)
    - wersja Sikora jest obsługiwana przez (chyba) wszystkie języki programowania oraz każdy system operacyjny (a nie tylko QMEG)
    • 9: CommentAuthorwieczor
    • CommentTime26 Oct 2012 zmieniony
     
    wersja Sikora jest obsługiwana przez (chyba) wszystkie języki programowania oraz każdy system operacyjny (a nie tylko QMEG)


    Ta wersja TEŻ jest obsługiwana przez wszystko - napisałem powyżej - daje określone odczyty na paddle i tyle. Odczytujesz tak samo tylko inaczej interpretujesz odczyt.

    A jeśli jako warunek zaprogramujesz - naciśnięcie = cokolwiek na porcie większego od 255 , to wtedy oba joysticki będą działać - na padzie wystarczy nacisnąć którykolwiek z dodatkowych guzików.

    QMEG nie jest potrzebny - QMEG powoduje tylko że 3 z 6 przycisków są zmapowane jako START / SELECT / OPTION. Bez niego masz 6 przycisków ogólnego przeznaczenia, z nim - 3.

    Różnica polega na tym że w wersji Sikora sprawdzasz tylko jeden próg - zwarte / rozwarte, tu robisz tablicę wartości i sprawdzasz w jakim zakresie jest odczyt. Jak pokazałem powyżej, odstępy są na tyle duże, że można odczytać dowolny przycisk i ich kombinację w sposób wiarygodny.
    • 10: CommentAuthorPablo112
    • CommentTime26 Oct 2012
     
    Tak masz racje wieczór, tylko programista musi uwzględnić ewentualnie kombinacje.
    O ile konstrukcja takiego pada jak przedstawiony wymusza użycie jedynie kciuka do wciskania któregoś z przycisków wystarczą trzy zamknięte niepokrywające się przedziały liczbowe.
    Jeśli mamy joya gdzie da się, a nawet dajmy na to jest potrzebne w grze wciśnięcie jednocześnie 2 dodatkowych przycisków musimy jasno określić w programie co ma się stać (działają obie funkcje przypisane, czy może inna) i potrzebujemy nowego przedziału wartości dla paddle.

    Tak więc jak sam dowiodłeś dla 3 dodatkowych przycisków musimy mieć 6 przedziałów liczb w zakresie (1-228) i do każdego jasno określić co ma się stać, by w ferworze walki nie wyszło że nie możemy np. walnąć rakietą B jeśli nie zwolniliśmy któregoś z pozostałych przycisków
    • 11: CommentAuthorwieczor
    • CommentTime26 Oct 2012
     
    No tak to jasne, ale przedziały są oddzielone dość dobrze od siebie - i uwzględniają wszystkie kombinacje. Natomiast nic nie stoi na przeszkodzie aby gra obsługująca wersję 2 przyciskową, obsługiwała bez żadnych modyfikacji tą 6 przyciskową - zależy jak zaimplementujesz sprawdzanie. Jeśli zakładasz że masz 2 dodatkowe fire i dla każdego z nich ustalisz, że jest wciśnięty jeśli odczyt jest powiedzmy <200 to zadziała wersja 2 przyciskowa i każdy z 3 przycisków w tej drugiej.
    • 12: CommentAuthorPablo112
    • CommentTime26 Oct 2012
     
    A konkretnie jakie przedziały wartości dla paddle w tym układzie 3 przycisków należy przyjąć?, nie mam chwilowo czasu żeby przekonać się lutując.
    • 13: CommentAuthorwieczor
    • CommentTime26 Oct 2012
     
    Ja też nie mogę a nikt z autorów się nie pofatygował :) A rozbieżności są duże, tu dają 280 kilo sumaryczny opór, a w przepisie na wiosełka 500... i bądź pan mądry