Hallo Besucher, der Thread wurde 3,3k mal aufgerufen und enthält 13 Antworten

letzter Beitrag von adtbm am

Potmux: Zusatzmodul für den Keyman64 -- zusätzliche Joystick-Buttons an Tasten binden

  • Hallo zusammen,


    Ich habe soeben die erste Version des kleinen Zusatzmoduls namens "Potmux" für meinen Keyman64 veröffentlicht.


    Mit Hilfe dieses Moduls ist es möglich, zusätzliche Joystick-Buttons, die an die Potentiometer-Leitungen der Kontrollports angeschlossen sind, mit Tasten auf der Tastatur zu verknüpfen.


    Dazu wird der 4066 (U28 bzw. U18 auf der 250469) durch dieses Modul ersetzt und ermöglicht es über eine Steuerleitung, die Potentiometer-Leitungen alernativ nicht an den SID, sondern stattdessen an andere Stellen weiterzuleiten.


    Werden die Leitungen mit dem Keyman verbunden, kann der Keyman so konfiguriert werden, dass er eine Taste auf der Tastatur betätigt, wenn die entsprechende Leitung low wird, also wenn der Joystick-Button gedrückt wird.


    Zusätzlich gibt es ein kleines Tool, mit dessen Hilfe man Programme (vor allem Spiele) so patchen kann, dass zuvor eine bestimmte Konfiguration von Buttons und Tasten automatisch am Keyman eingestellt wird. Dazu muss allerdings der Keyman über seine serielle Schnittstelle mit dem Prozessorport (sprich Kassettenport) verbunden sein, das geht also nur, wenn man den Kassettenport nicht anderweitig nutzt.


    So habe ich hier zum Beispiel eine Version von Giana Sisters, bei der ich mir SPACE auf die zusätzlichen Buttons gelegt habe. Und eine Version von Elite, bei der ich T (ready missile) und U (unlock missile) auf meinen beiden Zusatztasten habe.


    Da ich selber kein großer Zocker bin und die Entwicklungen in Sachen Joysticks nicht verfolge, kann ich nicht beurteilen, ob es etwas ähnliches bereits gibt oder ob da überhaupt Interesse besteht.


    Ein Nachteil ist natürlich, dass man erstmal einen Keyman64 dazu braucht.


    Einen Vorteil sehe ich darin, dass die meisten vorhandenen Spiele aufgrund des Mangels an Buttons zusätzliche Funktionen eigentlich immer schon auf die Tastatur legen. Mit dem Potmux kann man diese Aktionen zumindest teilweise wieder "in den Joystick" holen.


    Bausätze habe ich dazu noch nicht, und auch nur 9 Platinen von meinem Prototyp hier rumliegen. Ob ich daraus einen Bausatz mache würde ich vom allgemeinen Interesse abhängig machen, falls es überhaupt besteht.


    Alle weiteren Details findet ihr in der Dokumentation.


    Henning

  • Prima.. dass du wieder da bist...


    Danke, dass du auch anfängst deine (sonst gute Seite) auch mit deutschen Betriebsanleitungen zu füllen...

    wird mir z.B. bei Keyman nun auch weiter helfen... ;)


    bis demnächst...


    mfG. Micha

  • Schön dass du wieder da bist!!! Und cooles Projekt das hier, witzige Idee. Fehlt natürlich ein Verweis auf die passenden Joysticks, mit denen man das nutzen könnte. Bei Turrican die Laserwände oder Granaten von der Tastatur hin zu einem Button zu legen wäre schon was feines. :)

  • Fehlt natürlich ein Verweis auf die passenden Joysticks, mit denen man das nutzen könnte.

    Da hast du recht. Ich hatte mir vor etlichen Jahren, bevor ich wieder einen echten C64 hatte, mal zwei Competition Pro USB gekauft.


    Später habe ich die Elektronik rausgeworfen und wieder analoge Joysticks daraus gebastelt.


    Die beiden zusätzlichen dreieckigen Tasten habe ich dann mit POTX und POTY verbunden, Pins 5 und 9 am Controlport.

  • Da viele "SID-Ersatzschaltungen" keine Funktonen für Mäuse und Paddles bieten: Ist es möglich, sowas über diesen Expander "umzuleiten"?

    (es fehlt ja immer noch die Analog-Digital-Wandlung )

    Es werden zwei analoge Multiplexer 4052 verwendet, daher ließe sich die Wandlung auch nach dem Umleiten machen.

  • viele "SID-Ersatzschaltungen

    Gibts denn außer dem SwinSID nano noch andere, die keine Paddles unterstützen?

  • Die Frage wäre, was man denn mit der DA-Wandlung anfangen sollte. Um die fehlende DA-Wandlung des SID-Ersatzes wieder hinzuzufügen und die Werte dann auch in den Registern $19 und $1A wieder erscheinen zu lassen müsste man mehr Aufwand treiben: DA-Wandlung implementieren, dann das SID-CS-Signal nochmal dekodieren und beim Lesen von $19 und $1A dem SID vorenthalten, stattdessen die gelesen Werte liefern... Ein GAL zur Dekodierung und zum Multiplexen von CS, zwei 8-bit Register?


    Dieses Modul macht nichts weiter mit den Signalen, es bietet nur die Möglichkeit, sie generell wohin auch immer umzuleiten.

  • Hat schon mal jemand die Device ID Schalter vom SD2IECmini versucht zu schalten mit dem keyman64? Bei mir geht es zwar aber ich bin mir nicht sicher ob ich die nicht vielleicht falsch schalte.
    Wenn ich die Pins an der Platine vom SD2IEC messe so sind DEV0 und DEV1 auf High, also +5Volt. Um die Adresse zu ändern muss also DEV0 auf LOW gebracht werden. Mit dem keyman64 (Taste B derzeit bei mir) mach ich das so:

    b: set port b bit 7 to 0

    Das klappt auch. Und wenn ich wieder die alte Adresse einstellen will so müsste ich doch DEV0 wieder auf HIGH bringen, also so:

    b: set port b bit 7 to 1

    oder? Oder lieber auf X im keyman64, also Tristate?

    Die Umschaltung funktioniert prinzipiell jedoch braucht es mindestens einen Reset des SD2IECmini. Den versuche ich derzeit mit LOW an dem Reset Anschluss vom AVR (ich denke das es dieser ist).


    Noch eine andere Frage, beim Absenden von Texten zB:
    f: type open 1,8,15: print#1,"i": close 1\r
    schlägt das ja fehl weil die Raute # ja das Zeichen für einen Kommentar in der keyman64.cfg ist. Gibt es dafür eine Lösung?

  • Das die Geräteadresse erst nach einem Reset am SD2IEC geändert wird, ist vollkommen normal.

    Das mach ich auch so und lasse mir dann gleich den Inhalt anzeigen. Allerdings ist mir eben nicht ganz klar wie ich mit den Pegeln umgehen soll. Weiteres komisches Verhalten ist das ausgerechnet beim Befehl LIST manchmal eine Taste "vergessen" wird.



  • b: set port b bit 7 to 1

    oder? Oder lieber auf X im keyman64, also Tristate?

    Wenn ich die Pins an der Platine vom SD2IEC messe so sind DEV0 und DEV1 auf High

    Wenn beim Messen die beiden Leitungen nicht mit dem Keyman verbunden ist, bedeutet das, dass die Signale schon von sd2iec über einen pullup-Widerstand auf high gezogen werden. In diesem Fall reicht Tristate. Die Signale mit dem Keyman auf high zu ziehen sollte nicht weiter tragisch sein, tristate wäre in diesem Fall aber "korrekter".


    Noch eine andere Frage, beim Absenden von Texten zB:
    f: type open 1,8,15: print#1,"i": close 1\r
    schlägt das ja fehl weil die Raute # ja das Zeichen für einen Kommentar in der keyman64.cfg ist. Gibt es dafür eine Lösung?

    Du musst die Raute in diesem Fall über eine Escape-Sequenz angeben, siehe type:


    f: type open 1,8,15: print\{35}1,"i": close 1\r


    Weiteres komisches Verhalten ist das ausgerechnet beim Befehl LIST manchmal eine Taste "vergessen" wird.

    Welche Taste kommt denn da nicht an? Bist du sicher, dass das Laden des Directories immer weniger als eine Sekunde dauert?

  • wäre in diesem Fall aber "korrekter".

    Hab ich jetzt so umgesetzt und funktioniert.


    Escape-Sequenz angeben

    Ja, klappt nun auch. Wenn auch der Basicbefehl nicht funktioniert. Egal, daran forsche ich noch. Ich wollte einfach eine Ausgabe ob und welche Floppylaufwerke was melden ob sie da sind oder nicht.


    immer weniger als eine Sekunde

    Stimmt, ich war einfach nur zu ungeduldig! Wenn ich dem Ganzen etwas Zeit gebe dann funktioniert es auch :) Sehr schön!


    Ich danke dir erstmal bis hier her, der keyman funktioniert aus meiner Sicht wunderbar und lässt sich auch leicht von meinem Linuxrechner aus programmieren.

    Derzeit habe ich diese Sachen umgesetzt (falls es wem interessiert):


  • Hallo Henning !


    Schön, dass du wieder da bist !

    Ich hätte auf jeden Fall Interesse am Bausatz !

    Auch wenn ich im Moment die Zeit nicht dazu habe, den Bausatz einzubauen, (zu viel mit dem MEGA65 zu tun ;-) ), so wird die Zeit kommen und deinen Keyman habe ich ja schon :-)