Seite 1 von 1
Mehrere Knöpfe am Joystick
Verfasst: 20.03.2025 18:01
von LarsImNetz
Moin,
wollte mal erfragen, wie das funktionieren soll?
Mein nächstes Game braucht bisher keinen Knopf, aber vielleicht stelle ich Twist of Souls nochmal um, damit man zum Screen flippen nicht die Space Taste drücken muss.
Also bitte her mit den Ideen, wie man das programmiert.
Etwas mehr als den Link:
https://github.com/ascrnet/Joy2Bplus.git hätte ich schon gerne.
Re: Mehrere Knöpfe am Joystick
Verfasst: 20.03.2025 19:29
von pps
Man kann das sehr gut mit dem Altirra testen, wenn man selbst keinen umgebauten Joystick für den ATARI hat. Natürlich muss man das extra einstellen, dass der Altirra dann einen solchen Stick für den "ATARI" simuliert...
Im Prinzip ist der zusätzliche Knopf über den Paddle Ausgang angeschlossen. Liegt dort ein bestimmtes Signal an, weiß man, dass ein Joy2B+ angeschlossen ist.
Ich habe das in meinem MyTris eingebaut. Erkennt das Spiel einen solchen Stick, gibt es automatisch andere Optionen.
Ist der Stick angeschlossen, kommt im Paddle0 und/oder im Paddle1 ein $e4 - je nachdem, wie ob es einen oder 2 zusätzliche Knöpfe gibt. Ein Anderer Wert (i.d.R. 0) gibt dann an, dass der Knopf gedrückt wurde. Es wird also geschaut, ob es $e4 in Paddle0 und/oder Paddle 1 gibt.
Re: Mehrere Knöpfe am Joystick
Verfasst: 22.04.2025 21:15
von ascrnet
LarsImNetz hat geschrieben: ↑20.03.2025 18:01
wollte mal erfragen, wie das funktionieren soll?
wie der Kollege pps erklärt hat. Wenn Sie es immer noch nicht verstehen, hilft Ihnen vielleicht ein kurzes Beispiel in ATARI BASIC.
Code: Alles auswählen
10 PRINT STICK(0),STRIG(0),PADDLE(0),PADDLE(1):GOTO 10
müssen Sie einen neuen Joystick in Altirra konfigurieren, die Schritte sind im Video zu sehen.
https://www.youtube.com/watch?v=EOBmjwyS6Fs
Mehrere Knöpfe am Joystick
Verfasst: 23.04.2025 15:15
von Erhard
Braucht jemand die Auswertung für den SNACK-Adapter?
Könnte ich in ACTION! anbieten.
Re: Mehrere Knöpfe am Joystick
Verfasst: 23.04.2025 15:35
von ascrnet
Erhard hat geschrieben: ↑23.04.2025 15:15
Braucht jemand die Auswertung für den SNACK-Adapter?
Er wird im ATARIAGE-Forum verkauft, ist aber kein Standard wie Joy 2B+.

Re: Mehrere Knöpfe am Joystick
Verfasst: 24.04.2025 21:46
von Mathy
.
Hallo Erhard, Leute
Erhard hat geschrieben: ↑23.04.2025 15:15
Braucht jemand die Auswertung für den SNACK-Adapter?
Könnte ich in ACTION! anbieten.
Wieso wird so etwas immer gefragt? Irgendjemand wird irgendwann diese Info haben wollen. Und wieso würde man Information nicht teilen wollen? Also immer her damit.
Tschüß
Mathy
Mehrere Knöpfe am Joystick
Verfasst: 25.04.2025 08:21
von Erhard
Also dann hier der Ausschnitt (Hauptprogramm, Variablendefinition usw fehlt alles und vermutlich gibt es Darstellungsprobleme mit ATASCII):
Code: Alles auswählen
DO
i=PADDLE(0)
j=PADDLE(1)
IF i<5 and j<5 THEN
simple=1
ELSE
simple=0
FI
IF i>120 AND i<160 AND j>120 AND j<160 THEN
enhanced=1
ELSE
enhanced=0
FI
IF simple=0 and enhanced=0 THEN
POSITION (0,2)
PRINT ("SNACK: NOT DETECTED ")
DO
IF PADDLE(0)=1 AND PADDLE(1)=1 THEN
simple=1
FI
UNTIL simple=1 or CONSOL=6
OD
FI
UNTIL simple=1 or enhanced=1 or CONSOL=6
OD
IF simple=1 THEN
POSITION (0,2)
PRINT (" SNACK: SIMPLE MODE ")
DO
st=STICK(0)
xu=(st&1)
xd=(st&2)
xl=(st&4)
xr=(st&8)
POSITION (8,10)
IF xu=0 THEN
PUT('?)
ELSE
PUT('o)
FI
POSITION (8,12)
IF xd=0 THEN
PUT('?)
ELSE
PUT('o)
FI
POSITION (6,11)
IF xl=0 THEN
PUT('?)
ELSE
PUT('o)
FI
POSITION (10,11)
IF xr=0 THEN
PUT('?)
ELSE
PUT('o)
FI
POSITION (6,7)
IF st=11 or st=3 THEN
PRINT("(L2)(L1)")
ELSE
PRINT("(L2)(L1)")
FI
POSITION (26,7)
IF st=7 or st=3 THEN
PRINT("(R2)(R1)")
ELSE
PRINT("(R2)(R1)")
FI
POSITION (29,11)
IF STRIG(0)=0 THEN
PRINT("Y A")
ELSE
PRINT("Y A")
FI
POSITION (11,13)
IF st=10 THEN
PUT('?)
ELSE
PUT('?)
FI
POSITION (12,13)
IF st=14 THEN
PUT(252)
ELSE
PUT('|)
FI
POSITION (13,13)
IF st=6 THEN
PUT('?)
ELSE
PUT('?)
FI
POSITION (11,14)
IF st=11 THEN
PUT('?)
ELSE
PUT('?)
FI
POSITION (13,14)
IF st=7 THEN
PUT('?)
ELSE
PUT('?)
FI
POSITION (11,15)
IF st=9 THEN
PUT('?)
ELSE
PUT('?)
FI
POSITION (12,15)
IF st=13 THEN
PUT(252)
ELSE
PUT('|)
FI
POSITION (13,15)
IF st=5 THEN
PUT('?)
ELSE
PUT('?)
FI
POSITION (31,10)
IF PADDLE(1)>200 THEN
PUT('X)
ELSE
PUT('X)
FI
POSITION (31,12)
IF PADDLE(0)>200 THEN
PUT('B)
ELSE
PUT('B)
FI
UNTIL CONSOL=6
OD
FI
IF enhanced=1 THEN
POSITION (0,2)
PRINT ("SNACK: ENHANCED MODE")
DO
st1=STICK(0)
i=paddle(0)
j=paddle(1)
st=15
IF j<10 THEN
st=st&$0E
FI
IF j>200 THEN
st=st&$0D
FI
IF i<10 THEN
st=st&$0B
FI
IF i>200 THEN
st=st&$07
FI
xu=(st&1)
xd=(st&2)
xl=(st&4)
xr=(st&8)
POSITION (8,10)
IF xu=0 THEN
PUT('?)
ELSE
PUT('o)
FI
POSITION (8,12)
IF xd=0 THEN
PUT('?)
ELSE
PUT('o)
FI
POSITION (6,11)
IF xl=0 THEN
PUT('?)
ELSE
PUT('o)
FI
POSITION (10,11)
IF xr=0 THEN
PUT('?)
ELSE
PUT('o)
FI
POSITION (11,13)
IF st=10 THEN
PUT('?)
ELSE
PUT('?)
FI
POSITION (12,13)
IF st=14 THEN
PUT(252)
ELSE
PUT('|)
FI
POSITION (13,13)
IF st=6 THEN
PUT('?)
ELSE
PUT('?)
FI
POSITION (11,14)
IF st=11 THEN
PUT('?)
ELSE
PUT('?)
FI
POSITION (13,14)
IF st=7 THEN
PUT('?)
ELSE
PUT('?)
FI
POSITION (11,15)
IF st=9 THEN
PUT('?)
ELSE
PUT('?)
FI
POSITION (12,15)
IF st=13 THEN
PUT(252)
ELSE
PUT('|)
FI
POSITION (13,15)
IF st=5 THEN
PUT('?)
ELSE
PUT('?)
FI
POSITION (33,11)
IF st1=1 THEN
PUT('A)
ELSE
PUT('A)
FI
POSITION (31,12)
IF st1=2 THEN
PUT('B)
ELSE
PUT('B)
FI
POSITION (31,10)
IF st1=4 THEN
PUT('X)
ELSE
PUT('X)
FI
POSITION (29,11)
IF st1=5 THEN
PUT('Y)
ELSE
PUT('Y)
FI
POSITION (15,11)
IF st1=6 THEN
PRINT("sel")
ELSE
PRINT("sel")
FI
POSITION (19,11)
IF st1=7 THEN
PRINT("start")
ELSE
PRINT("start")
FI
POSITION (26,7)
IF st1=8 THEN
PRINT("(R2)(R1)")
ELSE
PRINT("(R2)(R1)")
FI
POSITION (6,7)
IF STRIG(0) THEN
PRINT("(L2)(L1)")
ELSE
PRINT("(L2)(L1)")
FI
UNTIL CONSOL=6
OD