Ponieważ przewalczyłem problem projektując (S)NESctrl, to wypowiem się technicznie językiem zrozumiałym nie tylko dla techników.
Generalnie koncepcja drugiego przycisku polega na wykorzystaniu wejścia potencjometrycznego. W odróżnieniu od wejść kierunków i wejścia pierwszego przycisku, które są "cyfrowe". Wejścia "cyfrowe" są sprzętowo podciągnięte do plusa zasilania poprzez rezystor, więc jak nie podajemy na nie nic, to jest plus 5V czyli logiczna jedynka, a jak podamy masę, to 0V czyli zero logiczne.
Wejście potencjometryczne nie jest i nie może być podciągnięte do plusa zasilania, bo przeczyło by to ich konstrukcji, gdzie ma być odczytywany dowolny poziom (tak w skrócie, przenośni i "po ludzku"), nazwijmy to "analogowy" a nie cyfrowy.
To, czy wejście zadziała nam jako drugi przycisk bez rezystora, zależy od tego jak obsługuje to wejście dany program czy gra. Nie wiedziałem też, że zależy od kickstartu - ale to logiczne, że również kickstart może sobie jakoś tymi wejściami sterować (a raczej jakiś tam konkretny program czy biblioteka z kickstartu). Trzeba przy tym zauważyć, że pomimo kickstartu jakiś program lub gra może bezpośrednio obsługiwać port joya z pominięciem bibliotek kickstartu, których nie musi przecież używać -wtedy najlepszy kickstart nie pomoże
Ogólnie rzecz biorąc po wciśnięciu drugiego przycisku sprowadzamy wejście do zera co oznacza jego wciśnięcie (przycisku), ale jak puścimy przycisk i zostanie on w powietrzu, to wejście samo nie powróci do plusa zasilania i efekt jest taki, że pomimo puszczenia przycisku jest on cały czas wciśnięty jeżeli oczekujemy na wejściu stanu bliskiego plus 5V, czyli jedynki logicznej. Trwa to tak długo, aż rozładuje się kondensator, który tam jest w okolicach tego wejścia (piszę z głowy, nie pamiętam który to kondensator i jak to tam dokładnie wygląda, bo analizowałem to szczegółowo pół roku temu - chodzi o zasadę).
Wg mnie prawidłowo napisany program, który chce wykorzystać drugi przycisk, powinien sprawdzać, czy napięcie wzrosło choćby minimalnie powyżej zera (puszczenie przycisku) i wtedy programowo podciągnąć wejście do plusa (chyba jest taka możliwość?) lub też sprawdzać czy na wejściu jest napięcie choćby minimalnie wyższe od zera i wtedy od razu traktować to jako puszczony przycisk.
Projektując (S)NESctrl testowałem kilka gier i niektóre poprawnie obsługiwały drugi przycisk, a w niektórych drugi przycisk pozostawał wciśnięty nawet jak się go puściło (przez czas 30-60sekund). Efekt taki występuje np. w grze Flashback na mojej Amidze 500.
Rzecz najłatwiej jest obejść dolutowując na zewnątrz rezystor podciągający do plusa. Ja dałem 4k7, bo takie rezystory podciągające występowały na oryginalnych schematach Amigi 500, które analizowałem, ale nie ma znaczenia czy to będzie 1k czy 10k -grunt, żeby był taki rząd wielkości.