Hallo Besucher, der Thread wurde 12k mal aufgerufen und enthält 58 Antworten

letzter Beitrag von jenpie am

C16 Joystick Adapter

  • Wäre es nicht ideal, direkt einen Joystickswapper so zu konstruieren, dass er gleichzeitig als Adapter fungiert?


    Gesagt, getan (Allerdings nur für einen Spieler, denn für zwei fehlten mir die Bauteile):



    Der Grundaufbau basiert auf dieser Anleitung.


    Hier mal meine Streifenraster-Schaltung:



    Der Aufbau war total simpel, nur bei den Mini-Din-Steckern muss man etwas aufpassen, daß man keinen Kurzschluß verlötet. Die Ummantelung (ca.5mm) des Steckers muss man noch mit einem Cutter-Messer abschneiden, da sonst der Stecker nicht in die Buchsen passt und keinen Kontakt bekommt.



  • Ich habe den Umschalt-Adapter mal nachgebaut. War gar nicht schwer :) Allerdings bin ich der Meinung, die Gehäuseschrauben gehören nach unten. Auf dieser Seite sind auch Schraublöcher um die Platine zu fixieren. Und auch die SubD-Buchse ist mir mit Schrauben sicherer.


    Erster Einschalttest: Mist, das macht ja alles, außer das was ich drücke. Ursache war aber ein nicht ganz regelkonformer Joystick, der jedoch am C64 und Amiga problemlos tut. (umgebautes SNES-Pad, wahrscheinlich bin ich beim Öffnen den falschen Weg gegangen und habe deswegen nicht alle Widerstände gesehen um sie zu deleten *g*)
    Na jedenfalls hat mich das dazu gebracht, mein Joytest-Programm vom C64 für den C16 umzuschreiben, und das will ich euch nicht vorenthalten. Es werden die Ports direkt abgefragt und alles was gedrückt ist wird angezeigt, also auch normalerweise unmögliche Kombinationen.


    Die Abfrage (gefunden in Das große C16-Buch) beginnt mit
    lda #$fb
    sta $ff08
    lda $ff08
    Das sieht komisch aus, funktioniert aber wirklich so.


    P.S. Wehe es lacht einer über die Start-Zeile, ich habe nur auf die Schnelle kein Äquivalent zu jsr $e544 gefunden...

  • Ja, ist richtig so. Die Joystickports werden über D1 und D2 selectiert, die Leitung die LOW ist wählt den Port aus der abgefragt wird. Damit das korrekt funktioniert sollten nie beide Leitungen LOW sein. Die anderen Bits sind egal. Wenn man sichergehen will, daß die Tastatur Ruhe gibt sollte man vorher noch $FF in den Tastaturport auf $FD30 schreiben, Aber da man meist Tastatur oder Joystick benutzt ist das nicht so wichtig.


    $FF08 ist das Tastaturlatch im TED. Bei einem Schreibbefehl werden die am Tastaturport von TED anliegenden Bits in das Latch geladen, was du schreibst ist egal und interessiert TED nicht. Mit dem folgenden Lesezugriff liest du den Inhalt des Latches aus.


    Jetzt sollte klar sein wie Joysticks am C16 funktionieren und wie man sie abfragt.

  • Ich habe den Umschalt-Adapter mal nachgebaut. War gar nicht schwer :) Allerdings bin ich der Meinung, die Gehäuseschrauben gehören nach unten. Auf dieser Seite sind auch Schraublöcher um die Platine zu fixieren. Und auch die SubD-Buchse ist mir mit Schrauben sicherer.


    Fotos davon wären nicht schlecht.


    Finde gut, daß endlich jemand mal was nachbaut, was ich gepostet habe. :thumbsup:

  • Okay, schlechte Fotos machen kann ich gut :)
    Bild1 zeigt das Innenleben. Ich habe die Streifenrasterplatine in der Breite so gelassen wie sie kam und die Ecken etwas für die Schrauben ausgefeilt. Hab dann aber nur noch 2 passende Schrauben gefunden, wovon eine auf dem Bild auch noch verdeckt ist.
    Bild 2, so sieht es von außen aus. Der Schalter wurde so positioniert dass der Gnubbel die Position des aktiven Ports anzeigt. Okay, die Schrauben vom Schalter könnten noch durch hübschere Exemplare ersetzt werden.
    Und was mir erst nach Fertigstellung aufgefallen ist: Die Konstruktion ist mit den 2 Kabeln ziemlich starr, was den Platzbedarf des C16 jetzt unnötig in die Breite vergrößert. Wäre vielleicht besser gewesen, die Stecker im Gehäuse zu fixieren, so dass der Kasten ohne Zwischenraum an den C16 gesteckt wird.

  • Danke für die Fotos. Sieht doch ganz gut aus. :thumbsup:


    Und was mir erst nach Fertigstellung aufgefallen ist: Die Konstruktion ist mit den 2 Kabeln ziemlich starr, was den Platzbedarf des C16 jetzt unnötig in die Breite vergrößert. Wäre vielleicht besser gewesen, die Stecker im Gehäuse zu fixieren, so dass der Kasten ohne Zwischenraum an den C16 gesteckt wird.


    Beim C16 wäre das in der Tat besser gewesen. Da aber in dem Kästchen noch Platz ist, würde ich die Kabel einfach noch mehr Abisolieren und die Kabel so weit "hineinschieben" wie es geht. Die Dräht sollten im Gehäuse aufgewickelt eigentlich noch Platz finden.

  • Ja, ist richtig so. Die Joystickports werden über D1 und D2 selectiert, die Leitung die LOW ist wählt den Port aus der abgefragt wird. Damit das korrekt funktioniert sollten nie beide Leitungen LOW sein. Die anderen Bits sind egal. Wenn man sichergehen will, daß die Tastatur Ruhe gibt sollte man vorher noch $FF in den Tastaturport auf $FD30 schreiben, Aber da man meist Tastatur oder Joystick benutzt ist das nicht so wichtig.

    Leider wurde in der Praxis selten eine vernünftige Joystickabfrage programmiert, insbesondere bei den kommerziellen Spielen. Einfach mal ein paar Programme ausprobieren, die 2 Joysticks erlauben. Und dann mal die entsprechenden Tasten stattdessen ausprobieren ... und manche Hersteller waren auch noch stolz darauf, auf diese Weise eine Tastatur-Steuerung automatisch mit drin zu haben.

  • Hallo zusammen,


    ich grabe hier mal diesen 6 Jahre alten Thread aus, denn ich würde mir auch gerne so einen Joystick Switcher für meinen C16 bauen.

    Leider reicht mein eingeschränkter "Sachverstand" nicht so ganz aus, um aus den Bildern/Zeichnungen von CapFuture1975 so ganz schlau zu werden. :/

    Also ich komme mit vorgefertigten Bausätzen (ohne SMD!) immer super zurecht, allerdings sehe ich da auch immer, welche Bauteile wo genau hinkommen. :D

    Aus den obigen Zeichnungen ersehe ich leider nicht so ganz, wo genau die Widerstände hinkommen. ?(


    Wäre es möglich, für mich die Schaltung nochmal für Dummies darzustellen?

    Eine kleine Einkaufsliste mit den passenden Bauteilen wäre auch super hilfreich.:whistling:


    Ich bedanke mich schon im Voraus,


    Gruss,

    Jenpie


    PS.

    Ich kann auch gerne einen neuen Thread dafür eröffnen.

  • hmmm das ist doch recht eindeutig:

    https://www.forum64.de/wcf/ind…ickadapterumschalter-png/


    Du brauchst einen 74ls244 (evtl. gleich mit passendem Sockel) und fünf Widerstände 100 Ohm und ein Stück Streifenrasterpaltine.

    Ach ja... und einen Schalter 2x Um


    Gruß, Gerd

  • Hallo Gerd,


    vielen Dank für deine Antwort.

    Ich habe mir das nun nochmal in Ruhe angeschaut und muss dir Recht geben, ist wirklich recht eindeutig. :)

    Sobald ich alle notwendigen Bauteile beisammen habe, werde ich mich mal daran versuchen.


    Gruss,

    Jenpie

  • Das dunkelblaue sind Brücken, an den roten Quadrate musst du den Kupferstreifen unterbrechen.

    Hellblau sind die drei Widerstände (drei davon stehend eingebaut) und was du wo anschießen musst steht jeweils neben der entrechenden Kupferleiterbahn.


    Gruß, Gerd

  • Die Funktion des Schalters verstehe ich nicht. Warum werden das nur Select und Fire umgeschaltet?

    Welche Funktion hat der Schalter?

  • Die Funktion des Schalters verstehe ich nicht. Warum werden das nur Select und Fire umgeschaltet?

    Welche Funktion hat der Schalter?

    Weil beim 264 die Joysticks nicht gegen GND, sondern gegen eine Datenleitung der CPU geschaltet werden (= "Select"). D2 selektiert Joystick 1 und D1 selektiert Joystick 2. (Ja, Commodore halt ... :)).


    Daher reicht das Umschalten der Select-Leitung (und Fire) für das tauschen der Control Ports,


    [EDIT] Siehe Schaltplan. [/EDIT]

    "Wenn du überredet, ermahnt, unter Druck gesetzt, belogen, durch Anreize gelockt, gezwungen, gemobbt, bloßgestellt, beschuldigt, bedroht, bestraft und kriminalisiert werden musst. Wenn all dies als notwendig erachtet wird, um deine Zustimmung zu erlangen, dann kannst du absolut sicher sein, dass das, was angepriesen wird, nicht zu deinem Besten ist." - Quelle unbekannt.


    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.

    "Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.

    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.


  • Weil beim C16/Plus4 etwas ander läuft als beim C64


    Up/Down/Left/Right geht direkt auf die Tastaurmatrix... aber von beiden Joys gleichzeitig. Um festzustallen von welchem das nun kommt ist da noch ein Gatter (ein 74ls08) mit im Spiel... das ist das 'Select'. Muss also entsprechen umgeschaltet werden.


    Fire ist bei beiden Port separat, muss also auch entsprechend umgeschaltet werden.

  • Alles klar, jetzt hab ich's verstanden!

    So ein Dinge werde ich mir dann wohl auch mal basteln, für meinen C16.


    Gibt es einen Link für die Mini-DIN-Stecker?

  • Gibt es einen Link für die Mini-DIN-Stecker?

    Die hat Reichelt, die habe ich da schon bestellt.

    "Wenn du überredet, ermahnt, unter Druck gesetzt, belogen, durch Anreize gelockt, gezwungen, gemobbt, bloßgestellt, beschuldigt, bedroht, bestraft und kriminalisiert werden musst. Wenn all dies als notwendig erachtet wird, um deine Zustimmung zu erlangen, dann kannst du absolut sicher sein, dass das, was angepriesen wird, nicht zu deinem Besten ist." - Quelle unbekannt.


    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.

    "Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.

    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.


  • Es gibt ja unterschiedliche, mit unterschiedlicher Pin-Anzahl und -Anordnung. Änliche wie bei DIN.

    Deshalb die Frage.

  • Es gibt ja unterschiedliche, mit unterschiedlicher Pin-Anzahl und -Anordnung. Änliche wie bei DIN.

    Genau, und die kann man abzählen und dann bei Reichelt suchen. ;)


    Im Gegensatz zu den großen DIN gibt es bei den Minis meines Wissens nur eine Anordnung pro Polzahl. Wenn man die Pinanzahl weiß, war es das.

    "Wenn du überredet, ermahnt, unter Druck gesetzt, belogen, durch Anreize gelockt, gezwungen, gemobbt, bloßgestellt, beschuldigt, bedroht, bestraft und kriminalisiert werden musst. Wenn all dies als notwendig erachtet wird, um deine Zustimmung zu erlangen, dann kannst du absolut sicher sein, dass das, was angepriesen wird, nicht zu deinem Besten ist." - Quelle unbekannt.


    "Steve Jobs hat User hervorgebracht, Jack Tramiel Experten." - Quelle unbekannt.

    "Mein Herr, ich teile Ihre Meinung nicht, aber ich würde mein Leben dafür einsetzen, dass Sie sie äußern dürfen." - Voltaire.

    "Diskutiere nie mit einem Idioten - er zieht dich auf sein Niveau hinunter und schlägt dich dort mit seiner Erfahrung!" - Volksweisheit.