Hallo Besucher, der Thread wurde 2,1k mal aufgerufen und enthält 19 Antworten

letzter Beitrag von Unseen am

Arcade Jostick an 9 poligen D-SUB

  • Ich hab da mal eine Frage aufgrund einer kleinen Bastelei meinerseits:

    Ich will einen Arcade-Joystick mit weit mehr als einem Button auf einen normalen 9 Pin D-Sub Port mappen. Welche Pins kann ich verwenden, sodass man den Joystick dann auch am C64/Amiga/Mega Drive sonstwo verwenden kann ?

    Ich bin bisher zu folgender Belegung gekommen:

    1 up

    2 down

    3 left

    4 right

    5 button 3

    6 button 1

    7 not connected

    8 ground

    9 button 2


    Ich will alle Buttons bei Betätigung direkt auf Masse ziehen.

    Ist das totaler Murks oder würde das ohne Gefahr funktionieren ? Macht das so Sinn ?

  • Ich will einen Arcade-Joystick mit weit mehr als einem Button auf einen normalen 9 Pin D-Sub Port mappen. Welche Pins kann ich verwenden, sodass man den Joystick dann auch am C64/Amiga/Mega Drive sonstwo verwenden kann ?

    Evtl. hilft diese Vergleichstabelle (und der darauf folgende Text) ein wenig weiter. Mega Drive-Controller und C64-Controller sind jedenfalls nicht ganz kompatibel. Für den C64 sind MD-Controller sogar gefährlich, weil die 5V schalten, wo beim C64 POT Y/Button 3 ist.

  • Welche Pins kann ich verwenden, sodass man den Joystick dann auch am C64/Amiga/Mega Drive sonstwo verwenden kann ?


    Ich will alle Buttons bei Betätigung direkt auf Masse ziehen.

    Ist das totaler Murks oder würde das ohne Gefahr funktionieren ? Macht das so Sinn ?

    Im Prinzip für Amiga schon.


    Pin 7 liegt auf + 5V für Dauerfeuer etc. oder für den C64 für PotX/PotY (Pin 9 und 5)

    Beim C64 wird für 2. und 3. Button (Pin 9 und 5) das statt auf GND auf +5 V über einen Widerstand (z.B. 270 Ohm) gezogen.


    Und beim Mega Drive ist das noch mal anders.


    Siehe auch http://wiki.icomp.de/wiki/DB9-…2.2F3_Button_modification


    Edit:

    Für MegaDrive ist eben Pin 5 auf 5V statt Pin 7 und über Pin 7 wird eber selektiert ob man die Knöpfe B/C oder Start/C abfragen möchte.


    Und für das CD32 kann man eben noch mehr Knöpfe seriell abfragen, in dem man Pin 9, 5 und 6 nutzt, ähnlich wie bei NES oder SNES Pads. (Siehe auch: http://wiki.icomp.de/wiki/DB9-Joystick#Pinout)

  • Danke schon mal für die Tipps. Na dann muss ich mal schauen. Eventuell lasse ich dann Mega-Drive und CD32 unter den Tisch fallen. Die hab ich beide nicht. Ein CD32 werde ich mir wohl auch in Zukunft nicht zulegen (zu teuer).

    Was passiert denn am C64, wenn ich Button 2 und 3 auf Masse ziehe ? Funktionieren die dann einfach nur nicht oder killen die bei Betätigung irgendetwas ?

  • nur zum Verständnis: würde es denn Sinn ergeben, da noch Pull-Ups oder Pull-Down Widerstände an den Signalleitungen vorzusehen, oder ist das eher kontraproduktiv, weil im 64er bzw Amiga diese eh schon vorhanden sind?

  • nur zum Verständnis: würde es denn Sinn ergeben, da noch Pull-Ups oder Pull-Down Widerstände an den Signalleitungen vorzusehen, oder ist das eher kontraproduktiv, weil im 64er bzw Amiga diese eh schon vorhanden sind?

    Nein, ich glaube nicht, dass Pull-Up Widerstände hilfreich sind. Im Amiga (wenigstens) sind schon Pull-Up Wiederstände drin und in Joysticks von damals gab es ja auch keine Pull-Up Widerstände.


    Ich bin mir nicht sicher, aber so weit ich weiß, sind mindestens in alten C64 keine Pull Up Widersände drin(?). Auf späteren Boards und im C128 sind irgenwelche Kondensatoren drin zum Schutz (?) der CIAs und werden als EMI auf der Platine bezeichnet. Sonst sind die Leitungen direkt mit dem CIA verbunden.


    In Amigas sind dagegen Pull-Up Widerstände drin, wenigstens ab dem Amiga 500.


    Dagegen brauchte ich in meinem eigenen Hardware-Projekt von damals auf jeden Fall Pull-Up Widerstände für die Ports hinter den Tri-State Buffern: 10 Spieler Adapter

  • irgenwelche Kondensatoren drin zum Schutz (?) der CIAs und werden als EMI auf der Platine bezeichnet

    das sind EMI-Filter... haben 3 Anschlüsse und leiten das ursprüngliche Signal grundsätzlich nur weiter , dämpfen jedoch elektromagnetische Abstrahlungen durch die Signale auf den Leitungen - sind also "Funkentstörfilter". 1 Anschluss = in .. 1 Anschluss = out .. 1 Anschluss = Masse (für die Dämpfung).. aber es sind keine Pull-Downs/Ups.


    hier eine gute Erklärung : (hoffe, ein Link zum AmigaWiki ist okay?) https://www.amigawiki.org/doku.php?id=de:parts:emi_filter


    Du hast Recht, dass der Amiga die Pull-Ups drin hat.. aber nur für die Bewegungs-Signale des Joysticks.. nicht für die Feuer-Knöpfe .. die gehen 1:1 zum CIA oder bei den POTX/POTY-Signalen zur Paula weiter.

  • das sind EMI-Filter... haben 3 Anschlüsse und leiten das ursprüngliche Signal grundsätzlich nur weiter , dämpfen jedoch elektromagnetische Abstrahlungen durch die Signale auf den Leitungen - sind also "Funkentstörfilter". 1 Anschluss = in .. 1 Anschluss = out .. 1 Anschluss = Masse (für die Dämpfung).. aber es sind keine Pull-Downs/Ups.


    hier eine gute Erklärung : (hoffe, ein Link zum AmigaWiki ist okay?) https://www.amigawiki.org/doku.php?id=de:parts:emi_filter


    Du hast Recht, dass der Amiga die Pull-Ups drin hat.. aber nur für die Bewegungs-Signale des Joysticks.. nicht für die Feuer-Knöpfe .. die gehen 1:1 zum CIA oder bei den POTX/POTY-Signalen zur Paula weiter.

    Danke für die Erklärung der EMI-Filter, wusste ich noch nicht.


    Doch für die Feuerknöpfe gibt es auch Pull-Up Widerstände:
    https://www.amigawiki.org/dnl/schematics/A500_R6.pdf
    Siehe Widerstände R401 und R408 auf Seite 6 der Schaltpläne.


    Was ich bemerkenswert halte, ist das man am C64 die Feuerknopf und Richtungsleitung als Ausgang verwenden kann, während man beim Amiga nur die Feuerknöpfe 1-3 als Ausgänge verwenden kann. Und beim C64 kann man die PotX/PotY Leitung nicht als Ausgang verwenden. Leider kann man so keine CD32 Pads am C64 direkt nutzen (wenigstens keine Extra Feuerköpfe) und am Amiga kann man keine TrapThem (aka SNES) Controller direkt verwenden (nur über ein 4-Spieler Adapter oder über eine andere Belegung der Anschlüsse).

  • Doch für die Feuerknöpfe gibt es auch Pull-Up Widerstände:

    Siehe Widerstände R401 und R408 auf Seite 6 der Schaltpläne.


    Sorry, wenn ich dich hier korrigieren muss. :rolleyes:


    die R401 und R408 dienen dazu, an Pin 7 der Joystick-Buchse einen 5V Pegel anzulegen/bereitzustellen ... das hat nichts mit dem Pin 6 (FIRE) zu tun, der über einen EMI-Filter direkt auf den CIA bzw. beim A3000 auch auf den Agnus geht.


    Und die anderen beiden "Buttons" sind so, wie du schon sagst, ebenfalls über einen EMI-Filter nur direkt mit Paula verbunden - ohne Pullup- / Pulldown-Widerstände.


    Genau deshalb hatte es mich interessiert, ob der peiselulli nun hier sowas vorsehen sollte :)

  • Sorry, wenn ich dich hier korrigieren muss. :rolleyes:


    die R401 und R408 dienen dazu, an Pin 7 der Joystick-Buchse einen 5V Pegel anzulegen/bereitzustellen ... das hat nichts mit dem Pin 6 (FIRE) zu tun, der über einen EMI-Filter direkt auf den CIA bzw. beim A3000 auch auf den Agnus geht.

    kein Problem, hatte ich irgendwie falsch gesehen.

  • So als Zweitmeinung, falls noch KEIN Joystick vorhanden ist: Ich nutze inzwischen mehrere Monster Joystick Mini von... Monster Joysticks. Die sind nicht billig, haben aber originale Sanwa Buttons und auch Sticks. Die 2-Button Version ist kompatibel zum C64, da sie de fakto nur einen Button haben, der zweite ist schaltbar auf "Up", so dass man in Spielen wo man mit Up springt stattdessen den zweiten Button drücken kann.

    Ich nutze die Sticks vor allem am 2600 aber habe jetzt auch den C64 damit ausgerüstet und sollte ich am Amiga mal was mit Joystick zocken auch dort. Ich habe einen der Sticks in der billigeren Variante bestellt, wo KEINE Sanwa Teile drin sind, würde aber absolut Sanwa empfehlen: deutlich besserer Stick!

    Am MegaDrive nutze ich zwei M30 von 8bitdo. Aber die sollte man, wie oben genannt, nicht ohne weiteres am C64 nutzen, wegen der CIA Problematik...

  • wir sind nun etwas weiter und haben die meisten Signale für den Arcade-Joystick angeschlossen..


    Nun fehlen nur noch die zusätzlichen FeuerButtons (2+3 auf den Joystick-Pins 5 und 9).


    Hier ist die Frage, welche Spannung dort mindestens angelegt werden sollte, damit der C64 einen gedrückten Feuerknopf erkennt?


    Laut der icomp-Beschreibung wird das Signal von 5V über einen kleinen Widerstand (270Ohm) geleitet ... wobei ich mich aber frage, ab wann der 64er einen Highpegel an diesem Pin detektiert... immerhin sind das ja analoge Eingänge (PotX, PotY), die dann nachher zum SID gehen.

  • wobei ich mich aber frage, ab wann der 64er einen Highpegel an diesem Pin detektiert... immerhin sind das ja analoge Eingänge (PotX, PotY), die dann nachher zum SID gehen

    Warum ist der High-Pegel für dich da so wichtig? Die Eingänge sind zum Messen eines Widerstands gebaut, nicht zum Messen einer Spannung. Der SID zählt nur mit, wie lange es dauert bis der externe Kondensator über den Widerstand des Paddles aufgeladen wurde - wenn man den Minimalpegel für die Erkennung per Schalter deutlich und schnell überschreitet gibt das genauso ein Ergebnis als ob das langsam via Paddle passiert

  • Danke für die Erklärung Unseen .


    Gibt es denn für diese Zeitmessung eine Obergrenze? denn auch bei einer sehr niedrigen Spannung würde ja, wie du sagst, irgendwann der Kondensator voll werden...


    Ich habe in der aktuellen Schaltung nun 0.3V für einen "nicht gedrückten" Schalter und 3.3 bis 4.0V für einen geschalteten (das ist dann jeweils der Ausgang aus einem TTL Chip bzw. CMOS)

  • Gibt es denn für diese Zeitmessung eine Obergrenze? denn auch bei einer sehr niedrigen Spannung würde ja, wie du sagst, irgendwann der Kondensator voll werden

    Der Kondensator kann sich nur bis zur Höhe der anliegenden Spannung aufladen, was aber bei einem Paddle kein Problem ist weil dessen Poti an 5V hängt. Der komplette Messzyklus dauert 512 Taktzyklen, die Hälfte davon ist Messzeit und in der andere Hälfte schaltet der SID den POT-Pin auf GND, um den Messkondensator zu entladen.