Drugi przycisk joysticka
Drugi przycisk joysticka
Cześć! Badam możliwość dorobienia drugiego przycisku w joysticku własnego projektu, opartym na mikrokontrolerze i mam dylemat związany z brakiem lub obecnością rezystora przy połączeniu z POTX.
Na Reddit trafiłem wątek gdzie jest rozebrany Cheetach Annihilator i tam rezystora nie ma. Na wiki jest z kolei rekomendacja aby dać 270 lub 330 ohm. Na Githubie jest projekt 5plusbuttonsJoystick, który rezystor pomija oraz np. C64-JoyKEY gdzie rezystor jest. W tym projekcie autor stosuje 330 ohm, zwracając uwagę na możliwość uszkodzenia SID'a ale idąc tym tropem to chyba każdy C64GS powinien być już uszkodzony plus zwykłe komody gdzie było grane na tych drążkach. Generalnie nie wiem jak potraktować temat więc jeśli macie jakąś wiedzę/doświadczenie w tym temacie to chętnie posłucham.
Na Reddit trafiłem wątek gdzie jest rozebrany Cheetach Annihilator i tam rezystora nie ma. Na wiki jest z kolei rekomendacja aby dać 270 lub 330 ohm. Na Githubie jest projekt 5plusbuttonsJoystick, który rezystor pomija oraz np. C64-JoyKEY gdzie rezystor jest. W tym projekcie autor stosuje 330 ohm, zwracając uwagę na możliwość uszkodzenia SID'a ale idąc tym tropem to chyba każdy C64GS powinien być już uszkodzony plus zwykłe komody gdzie było grane na tych drążkach. Generalnie nie wiem jak potraktować temat więc jeśli macie jakąś wiedzę/doświadczenie w tym temacie to chętnie posłucham.
Re: Drugi przycisk joysticka
A że lubię sam sobie odpowiadać to wrzucam dla potomności jeden, drugi i trzeci wątek, z których wynika, że rezystor nie jest potrzebny i wynika bardziej z potrzeby wewnętrznego spokoju niektórych posiadaczy niż faktycznej konieczności. Dodatkowo utwierdziłem się analizując schemat podłączenia wiosełek w oficjalnym datasheet SID'a - przy najmniejszym ustawieniu wiosełka oporu nie będzie więc najwyraźniej jest to dopuszczalne.
Re: Drugi przycisk joysticka
Rezystor pewnie służy do ograniczenia prądu.
Tu musiałby się wypowiedzieć doświadczony elektronik czy jest niezbędny w tym obwodzie.
Inny prąd wywołamy przez skręcanie potencjometru z 470k do 0 ohm. I na pewno nie taki jaki w impulsie możemy uzyskać, przez szybkie załączenie styku w przycisku fire2 i 3 na potx/y
Taki mouster który pozwala na podłączenie do Commodore myszy lub gamepada USB ma na inii potx/y wstawione rezystory bodajże 500 ohm.
Gdybym miał zbudować taki Joy to dla świętego spokoju bym wstawił tu rezystor.
Ale jak powiedziałam, potrzebna opinia obeznanego w temacie elektronika.
Tu musiałby się wypowiedzieć doświadczony elektronik czy jest niezbędny w tym obwodzie.
Inny prąd wywołamy przez skręcanie potencjometru z 470k do 0 ohm. I na pewno nie taki jaki w impulsie możemy uzyskać, przez szybkie załączenie styku w przycisku fire2 i 3 na potx/y
Taki mouster który pozwala na podłączenie do Commodore myszy lub gamepada USB ma na inii potx/y wstawione rezystory bodajże 500 ohm.
Gdybym miał zbudować taki Joy to dla świętego spokoju bym wstawił tu rezystor.
Ale jak powiedziałam, potrzebna opinia obeznanego w temacie elektronika.
Re: Drugi przycisk joysticka
Stąd moja obecność na forum. Ale póki co trzeba radzić sobie samemu i próbować wyciągać logiczne wnioski na bazie dostępnych informacji. Dziś przeglądam schematy SID'a i widzę tam pewną ciekawostkę. Nieopodal pinu POTX jest FET, który kontroluje jego stan. Na zbliżeniu widać, że ma on przypisaną wartość 520 ohm. Widzę, że jest on sterowany licznikiem, co zresztą jest opisane:
Czyli to nie jest tak, że POTX jest cały czas w stanie niskim, nie ma wewnątrz żadnego zabezpieczenia, a prąd płynie jak chce. To poniekąd potwierdza opinie "przeciw", które podlinkowałem w poprzednim poście.When the voltage at the POT_X pin has reached a certain level, the value from the counter is loaded into the POT_X register.
Also, when the coutner has reached $FF (maybe because the paddle potentiometer is missing), there is some circuitry that forces loading the counter value into POT_X.
It's a 9 bit counter, while the counter MSB ( bit 8 ) is 1, the external capacitor is discharged through a FET in the SID which is close to the POT_X pin.
Oczywiście moje własne wnioski mogą być obarczone jakimś błędem ale na chwilę obecną utwierdzam się w przekonaniu, że rezystor jest zbędny.
Re: Drugi przycisk joysticka
Nie pozostaje nic innego jak doświadczalnie dorobić generator autofire i przetestować przez godzinkę fire na potx. Niech się trochę spoci
-
- Posty: 229
- Rejestracja: 15 gru 2020, 10:41
Re: Drugi przycisk joysticka
Na początek pytanie, gdzie ten rezystor powinien być umieszczony, bo jeśli w joysticku, to nie ma żadnego sensu.
Zwróć uwagę, że w C64 paddle jest podłączony inaczej niż w dokumentacji SID-a, którą podałeś. W C64 właściwie nie jest podłączony do SID bezpośrednio, a przez układ 4066, z czego wynika, że przez rezystancję ok. 50 ohm.
Więc jeśli chodzi o zabezpieczenia, to nie ma sensu, ale powinien być jakiś, aby dopasować impedancję przewodów (między 30-120 ohm), wówczas taki przycisk powinien działać pewniej dzięki mniejszym zakłóceniom podczas zwierania.
Jeśli chodzi o zabezpieczenia, to Commodore jak zwykle dał ciała Według schematów C64 zabezpieczenia dał tylko na port 2, a port 1 pozostawił niezabezpieczony? Czyżby skąpstwo wynikłe ze statystyki, że port 2 będzie częściej używany?
Z drugiej strony, jeśli źródło zasilania jest to samo, to raczej nie pojawi się tam napięcie wyższe od napięcia zasilania.
No ale i rezystor, i diody, aby działać, powinny być umieszczone we wtyczce, a nie w joysticku.
Zwróć uwagę, że w C64 paddle jest podłączony inaczej niż w dokumentacji SID-a, którą podałeś. W C64 właściwie nie jest podłączony do SID bezpośrednio, a przez układ 4066, z czego wynika, że przez rezystancję ok. 50 ohm.
Więc jeśli chodzi o zabezpieczenia, to nie ma sensu, ale powinien być jakiś, aby dopasować impedancję przewodów (między 30-120 ohm), wówczas taki przycisk powinien działać pewniej dzięki mniejszym zakłóceniom podczas zwierania.
Jeśli chodzi o zabezpieczenia, to Commodore jak zwykle dał ciała Według schematów C64 zabezpieczenia dał tylko na port 2, a port 1 pozostawił niezabezpieczony? Czyżby skąpstwo wynikłe ze statystyki, że port 2 będzie częściej używany?
Z drugiej strony, jeśli źródło zasilania jest to samo, to raczej nie pojawi się tam napięcie wyższe od napięcia zasilania.
No ale i rezystor, i diody, aby działać, powinny być umieszczone we wtyczce, a nie w joysticku.
Re: Drugi przycisk joysticka
We wszystkich wspomnianych projektach rezystor jest w joysticku. Tak więc tu się zgadzamy. Jeśli chodzi o wiosełka to masz oczywiście rację. Schemat w dokumentacji SID'a pomija wszystko "po drodze", co w sumie widziałem w serwisówce, ale jakoś mi to ostatecznie umknęło. Bardziej skupiłem się na samej budowie wiosełek, bo to było w tym momencie dla mnie najistotniejsze. We wtyczce nie zrobię rezystora, bo korzystam z gotowego kabla ale to chyba nie będzie konieczne. Te łatki dla gier pod drugi przycisk łapią w zakresie 0-15 ohm. Skoro u niego to działa to i u mnie powinno. Ale to już temat na działanie praktyczne, jak zasugerował radius75.
Re: Drugi przycisk joysticka
Ja tylko w kwestii sprostowania , to nie jest 0-15 ohm
To odczyt z rejestru Pot przy wciśniętym przycisku.
<$10 (0-15) oznacza że driver w grze odczytuje że przycisk został wciśnięty
>=$10 (16-255) że przycisk został zwolniony.
Tak sobie wymyślił swój driver crystalct@, można dać równie dobrze <$80 na wciśniecie i >=$80 na zwolnienie
To odczyt z rejestru Pot przy wciśniętym przycisku.
<$10 (0-15) oznacza że driver w grze odczytuje że przycisk został wciśnięty
>=$10 (16-255) że przycisk został zwolniony.
Tak sobie wymyślił swój driver crystalct@, można dać równie dobrze <$80 na wciśniecie i >=$80 na zwolnienie
-
- Posty: 229
- Rejestracja: 15 gru 2020, 10:41
Re: Drugi przycisk joysticka
Czyli taki rezystor nastawny mialby sens na wypadek gdyby ktos sobie nagle wymyslil inny zakres
A moze od razu do paddle podlaczyc caly joystick cyfrowy jak to bylo robione np. w appleII i od razu miec mozliwosc podpiecia 4 joystickow do 2 portow ?
A moze od razu do paddle podlaczyc caly joystick cyfrowy jak to bylo robione np. w appleII i od razu miec mozliwosc podpiecia 4 joystickow do 2 portow ?
Re: Drugi przycisk joysticka
Nie, nie. Wartość analogowego odczytu Pot zmienia się płynnie w zakresie $ff - 00
Przy otwartym obwodzie (wysoka rezystancja) odczyt osiąga $ff
Przy zamkniętym, gdzie rezystancja jest bliższa 0 ohm a prąd ładowania kondensatora SIDa jest na tyle wysoki, osiąga się $00
I tutaj gdzieś sobie trzeba ustalić "przełamanie".
Czyli poniżej jakiej wartości odczyt traktować mamy jako przycisk wciśnięty
crystalst@ początkowo programował gry że jedynie $00 oznacza przycisk wciśnięty.A pozostały zakres $01-ff jako zwolniony.
Ale w tamtym watku z linku User miał problem z osiągnięciem takiego wyniku na tych grach. Bo zastosował MCU 3V w swoim konwerterze na DB9
I crystalc@ mu te kilka gier przekompilował na zakres że odczyt <$10 to przycisk wciśnięty
Ja nie widzę przeciwwskazań zeby "przełamanie" ustalać na <$80
Ciekawostka:
Mouster też jest na MCU 3V , u mnie na C64C osiąga $0d na wciśniętym przycisku. Działa na styk z tymi grami od crystalct@
Niektórym pewnie nie zadziała, to juz moze zależeć od stanu zabytkowego hardware, oksydacji portów itd i wartości napięcia z zasilacza
Przy otwartym obwodzie (wysoka rezystancja) odczyt osiąga $ff
Przy zamkniętym, gdzie rezystancja jest bliższa 0 ohm a prąd ładowania kondensatora SIDa jest na tyle wysoki, osiąga się $00
I tutaj gdzieś sobie trzeba ustalić "przełamanie".
Czyli poniżej jakiej wartości odczyt traktować mamy jako przycisk wciśnięty
crystalst@ początkowo programował gry że jedynie $00 oznacza przycisk wciśnięty.A pozostały zakres $01-ff jako zwolniony.
Ale w tamtym watku z linku User miał problem z osiągnięciem takiego wyniku na tych grach. Bo zastosował MCU 3V w swoim konwerterze na DB9
I crystalc@ mu te kilka gier przekompilował na zakres że odczyt <$10 to przycisk wciśnięty
Ja nie widzę przeciwwskazań zeby "przełamanie" ustalać na <$80
Ciekawostka:
Mouster też jest na MCU 3V , u mnie na C64C osiąga $0d na wciśniętym przycisku. Działa na styk z tymi grami od crystalct@
Niektórym pewnie nie zadziała, to juz moze zależeć od stanu zabytkowego hardware, oksydacji portów itd i wartości napięcia z zasilacza
-
- Posty: 229
- Rejestracja: 15 gru 2020, 10:41
Re: Drugi przycisk joysticka
Ja nie widze problemu najlatwiej ustalic i ustawic polozenia skrajne tj. $0 i $ff oraz okolice polowy $80.
Tak jest w apple dzieki temu na jednym POT bardzo latwo otrzymujesz informacje o polozeniu dwoch przyciskow $0 i $ff oraz wogole o ich obecnosci $80
A co do napiec to SID i tak tylko porownuje napiecie do okolo 3,3 V wiec wystarczy mu podac ok. 4 V na caly zakres.
Tak jest w apple dzieki temu na jednym POT bardzo latwo otrzymujesz informacje o polozeniu dwoch przyciskow $0 i $ff oraz wogole o ich obecnosci $80
A co do napiec to SID i tak tylko porownuje napiecie do okolo 3,3 V wiec wystarczy mu podac ok. 4 V na caly zakres.
Re: Drugi przycisk joysticka
No można coś pokombinować w tę stronę. Dać w linii dwa rezystory, każdy zwierany przez przycisk.
Dwa rezystory o tak dobranych opornościach aby rozróżniać który przycisk akurat wciśnięty a który zwolniony.
Za wiele się na rezystorach nie wyciśnie, bo wahania odczytu na Pot są dosyć spore i skaczą przy wysokiej oporności na linii o więcej niż +/- 8 w rejestrach
Jeszcze ktoś musiałby przygotować soft dla takiego kontrolera. Czyli dywagacje czysto teoretyczne
Dwa rezystory o tak dobranych opornościach aby rozróżniać który przycisk akurat wciśnięty a który zwolniony.
Za wiele się na rezystorach nie wyciśnie, bo wahania odczytu na Pot są dosyć spore i skaczą przy wysokiej oporności na linii o więcej niż +/- 8 w rejestrach
Jeszcze ktoś musiałby przygotować soft dla takiego kontrolera. Czyli dywagacje czysto teoretyczne
-
- Posty: 229
- Rejestracja: 15 gru 2020, 10:41
Re: Drugi przycisk joysticka
W sumie hardware można zrobić na jednym rezystorze nastawnym. A dodatkowa zaleta to, że każdy będzie mógł sobie doregulować, kręcąc śrubkę w otworku
Re: Drugi przycisk joysticka
No to czekamy na kogoś kto wymyśli sobie inny zakres...
Wtedy będziemy kręcić w takim Joysticku jak w Datasette.
Wtedy będziemy kręcić w takim Joysticku jak w Datasette.
Re: Drugi przycisk joysticka
Zakres zakresem, ale trzeba jeszcze łatać te gry, a tu już powodzenia nie wróżę. Tak więc pewnie skończy się na tym co crystalct zrobił. Dla mnie dwa przyciski to dokładnie tyle ile powinno być.
-
- Posty: 229
- Rejestracja: 15 gru 2020, 10:41
Re: Drugi przycisk joysticka
To moja propozycja na 3 przyciski dodatkowo bedzie kompataybilny z ewentualnymi dodatkowymi rozwiazaniami
Na dwa paddle daje 6 przyciskow
Na dwa paddle daje 6 przyciskow
- Załączniki
-
- Untitled.png (4.37 KiB) Przejrzano 3604 razy
Re: Drugi przycisk joysticka
Hmm, to nie zadziała, wciśnięcie górnego przycisku zablokuje działanie dwóch dolnych.
A znowu wciśnięcie jednocześnie dwóch dolnych to to samo jakby wcisnąć górny
A znowu wciśnięcie jednocześnie dwóch dolnych to to samo jakby wcisnąć górny
-
- Posty: 229
- Rejestracja: 15 gru 2020, 10:41
Re: Drugi przycisk joysticka
Ten 3 przycisk mozna traktowac jako glowny tam gdzie wystarczy jeden , a jak potrzeba wiecej to stosowac 1 i 2 a 3 ewnentualnie do zadan specjalnych np. zacznij gre od poczatku
No i jeszcze mozna je tak rozplanowac aby ryzyko wcisniecia kilku na raz ograniczyc.
No i jeszcze mozna je tak rozplanowac aby ryzyko wcisniecia kilku na raz ograniczyc.
Re: Drugi przycisk joysticka
Jakoś mnie nie przekonuje to rozwiązanie.
Joystick 5+1 buton od crystalct@ też się jakoś specjalnie nie przyjął, nie powstał na niego ani jeden dobry nowy tytuł, który by te dwa dodatkowe przyciski Start i Select wykorzystywał. Albo przeszło to bez większego echa.
Jeden dodatkowy button, no góra dwa, to wszystko czego trzeba na Commodore.
Nawet obecnie nowe gry najczęściej nie obsługują drugiego przycisku. Nawet kiedy ewidentnie by się przydał.
A nie jest to jakoś specjalnie trudne do zaimplementowania.
Joystick 5+1 buton od crystalct@ też się jakoś specjalnie nie przyjął, nie powstał na niego ani jeden dobry nowy tytuł, który by te dwa dodatkowe przyciski Start i Select wykorzystywał. Albo przeszło to bez większego echa.
Jeden dodatkowy button, no góra dwa, to wszystko czego trzeba na Commodore.
Nawet obecnie nowe gry najczęściej nie obsługują drugiego przycisku. Nawet kiedy ewidentnie by się przydał.
A nie jest to jakoś specjalnie trudne do zaimplementowania.
Re: Drugi przycisk joysticka
Pewnie dlatego, że to jedna z wielu nowinek z Github'a więc ciężko tu mówić o jakimś standardzie. Wydawca mógłby tu bardziej pomóc ale np. Protopad nie dość, że jest mocno spóźniony jako pomysł to wciąż znajduje się w fazie rozwoju.