A ja z ciekawości zajrzałem sobie w kod jak wygląda ten nieszczęsny wybór sterowania (bo żeby było zabawnie jak się w emulatorze przełączy klawiaturę w Issue 2, wybierze klawiaturę jako sterowanie odpalając grę a potem wyłączy Issue 2 to gra działa czyli w samej rozgrywce klawiatura wydaje się być czytana poprawnie). Kod wygląda... dziwnie
...
ld hl,$f7fe
push hl
pop bc
in a,(c)
ld l,a
ld h,0
ex de,hl
ld hl,$00fd
xor a
sbc hl,de
jp nz,$c2b8 ; skok jeśli nie jest wciśnięty oczekiwany klawisz
; tu następuje ustawienie zmiennej określającej wciśnięcie konkretnego
; klawisza i wyskok z procedury
...
Ten sam pattern jest powtarzany jeszcze dwa razy zmienia się tylko wartość ładowana do HL przed SBC HL,DE. Wartość ta to w kolejnych przebiegach $FD, $FB i $F7 - binarnie to odpowiednio 11111101, 11111011 i 11110111. Kod czyta więc stan "półrzędu" klawiatury 1-5 a następnie sprawdza czy to, co przeczytał zgadza się z zakładanym patternem - pierwszy to zgaszony bit 01 czyli wciśnięte 4, drugi to bit 02 - wciśnięte 3, trzeci to bit 03 - wciśnięte 2. Tylko zamiast sprawdzać konkretne bity odczytane z portu (i najlepiej robić to jednym odczytem a potem ewentualnie sprawdzić zwolnienie klawisza) czyta trzy razy i porównuje z całym bajtem wliczając w to trzy nadmiarowe bity w tym ten, który w nowszych wersjach jest bardziej podatny na to, co jest wcześniej do portu $FE wysyłane. A w tym wypadku tuż przed odczytem klawiatury wywoływana jest procedura grania beeperem z ROMu w której oczywiście zapisów jest mnóstwo. Efekt jest taki, że w wypadku Issue 3 szósty bit czytany z portu $FE (w tym wypadku $F7FF) zawsze jest wyzerowany i zwracany pattern nigdy nie ma na trzech najwyższych bitach samych jedynek co oczywiście powoduje, że gry nie da się wystartować.
Podobnie przedziwne kombinacje są używane do odczytu klawiatury w samej grze, ale z jakiegoś powodu tam Issue 3 wydaje się nie przeszkadzać w działaniu - być może zapisy do $FE odbywają się w innej kolejności/miejscu i nie wpływają już na stan szóstego bitu. Nie chce mi się tego dalej analizować, bo kod wygląda dość koszmarnie - prawdopodobnie był kompilowany z czegoś wysokopoziomowego.