Hallo Besucher, der Thread wurde 20k mal aufgerufen und enthält 82 Antworten

letzter Beitrag von DP64 am

Joy-Control 64 - Ein Bastelprojekt

  • Dein Päckchen schicke ich doch morgen ab... :winke:

    Ja, das spezielle Päckchen :D Danke schon mal!


    Aber wenn es eine Sammelbestellung geben sollte, bin ich mit 2 dabei! :thumbup:

  • So, wieder ein bisschen weiter.


    Gestern hab ich den Modus für Sega Megadrive Controller eingebaut. Somit funktioniert Joy-Control 64 jetzt mit normalen Joysticks, Paddles und eben den Sega Controllern. Alles lässt sich beliebig an den Ports mischen und die erweiterten Feuer-Button Funktionen gehen natürlich auch mit dem Sega Controller. Damit ist es schön einfach (und billig) an einen Controller zu kommen der 3 unterschiedliche Feuertastenfunktionen unterstützt.


    Der Controller mit dem ich getestet habe:


    IMG_2321.jpgIMG_2326.jpg

  • Mal eine Frage in den Raum geworfen.
    Ist bei allen Commodore Computern der Abstand zwischen den Joystick Ports gleich? Also bei allen C64 Boards, SX64, 128er usw.
    Ich bin gerade so am überlegen ob ich eine Steckplatine für die Joystick Ports machen soll.

  • hmmm... zum Thema Portabstände scheint niemand was genaueres zu wissen.



    Immerhin hab ich heute ein zweites Joy-Control 64 zusammen gelötet und programmiert.
    Fast schon Massenfertigung :facepalm:


    IMG_2420_1.jpg

  • Immerhin hab ich heute ein zweites Joy-Control 64 zusammen gelötet und programmiert.
    Fast schon Massenfertigung

    Dann mach doch daraus eine. Ich wäre daran interessiert. :thumbup:

  • Es sei noch gesagt, dass ich weder in Hardware, Software, Design oder 3D-Modeling Fachmann bin. Sondern dass ich das nur zum Spaß gemacht habe.

    Bei solchen Aussagen frage ich mich immer, ob diese Tiefstapelei ernst gemeint ist. ?( Wie kann man als Nichtfachmann in allen genannten Bereichen soetwas entwickeln und einfach mal so aus dem Ärmel schütteln? Ich bin auch Nichtfachmann in den genannten Bereichen und kriege sowas nicht hin. Schon garnicht nur so aus Spaß. || Wer´s glaubt wird seelig ;) .


    Respekt, tolles Projekt du Profi!

  • Nö das ist keine Tiefstapelei. Ich hab mit nichts von dem was ich hier mache etwas beruflich zu tun. Habs auch nie gelernt. Aber ich bin ganz gut darin mir Dinge zu erlesen und umzusetzen. Und das Internet macht vieles einfach.
    Und hier im Forum gibt es mehr als genug Leute die in jedem Bereich Kreise um mich tanzen könnten.



    Dann mach doch daraus eine. Ich wäre daran interessiert.

    Ich Arbeite an einer Kleinserie von 10 Stück.


    Brotboxfan hat mir angeboten einige meiner Platinen mit SMD zu belegen und in den Ofen zu schieben. Ich würde sie dann noch soweit bestücken das ich sie programmieren kann. Der Rest wäre dann noch einfache through hole bestückung und löterei. Die so vorbereiteten Platinen würde ich dann als Bausatz anbieten.
    Die STL Dateien zu den Gehäusemodellen werde ich dann irgendwann mal irgendwo hochladen. Wahrscheinlich auf meiner Projekt Seite. Dann kann sich jeder selbst sein Gehäuse drucken. Eventuell werd ich auch eine Option über Shapeways machen.


    Aktuell werde ich aber erst mal 3 Platinen komplett fertig machen und an Betatester vergeben. Erst mal sehen wie das feedback dann so ist.



    So würde die vorbestückte Platine aussehen __________ Zum Vergleich nochmal komplett bestückt
    IMG_2352_1.jpg IMG_2398_1.jpg

  • Dann melde ich mich als Betatester schon mal an. :)

  • Danke für dein Angebot. Ich muss noch dazu sagen dass ich im Moment auf Bestückungsteile warte die erst im August Liefertermin haben. Was Bedeutet dass ich im z.Z. keine weiteren JC64 zusammenbauen kann.


    UND wie ich oben schon mal geschrieben habe, habe ich Selbstkosten von 60€ pro JC64 (eigentlich sogar mehr). Die würde ich auch von den Betatestern haben wollen. Ansonsten wird der Spaß für mich so teuer dass ich ihn mir nicht leisten mag.


    Außerdem sollte ein Betatester auch ein paar Voraussetzungen mitbringen:

    • Den Willen und die Zeit tatsächlich zu testen. Ich kann keine early adopter brauchen die einfach alles als ersten für ihre Vitrine haben wollen.
    • Es sollte Equipment und Know How vorhanden sein um das JC64 per SPI programmieren zu können. Ich verwende Visual Studio zum flashen. Aber auch Atmel Studio oder als leichtgewichtigeres Programm myAVR werden funktionieren. Das handling des jeweiligen Programms solltet ihr soweit beherrschen. Da kann ich keinen Support leisten.
    • Und natürlich einen Programmer um über die 6-polige Standard SPI Schnittstelle das JoyControl 64 flashen zu können. Ich empfehle den Pololu USB AVR Programmer v2. Der kommt ohne diese hackeligen libusb Treiber aus und lässt sich schön per mitgelieferter Software (Win, Mac) konfigurieren. Der macht auch in meiner VM Umgebung keine Probleme. Natürlich werden auch andere Programmer (wenn vorhanden) funktionieren.


    Also wer Beta testen will soll sich bei mir melden. Ich werde drei JC64 dafür komplett aufbauen um sicher zu gehen das soweit, zum testen, alles in Ordnung ist. Bei der letzten Platine war tatsächlich einer der Schiebeschalter ab Werk kaputt. Was dazu geführt hat dass das JoyControl 64 bei jedem umschalten resetet hat. So etwas möchte ich natürlich vermeiden.
    Aber wie gesagt bis August wird jetzt erst mal weiter nichts passieren.


    GMP: Du bist vorgemerkt falls meine Voraussetzungen für Dich in Ordnung sind.

  • GMP: Du bist vorgemerkt falls meine Voraussetzungen für Dich in Ordnung sind.

    Eine SPI-Schnittstelle habe ich an meinem TL866 und die funktioniert super.
    Ansonsten lasse Dir ruhig noch was Zeit. Jetzt steht erst einmal ein großer Urlaub an und da benötigen wir (als Großfamilie), jeden Cent. :D
    Bin ansonsten gerne dabei.

  • Melden uns* als BetaTester für einen JC64 an.


    August passt super - im Moment ist halt Urlaubszeit und daher auch erstmal Urlaub angesagt.


    -x- edit -x-


    Geplant ist neben den von Dir schon umgesetzten Funktionen z.B. die Kommunikation mit dem KeyMan64 zu realisieren, damit man mit einem Joystick-Befehl auch Tastendrücke simulieren kann, um in Spielen zum Beispiel Bomben oder Zweitwaffen abzufeuern oder andere Funktionen auszuführen.


    Weiteres kann man dann in einem seperaten Thread diskutieren, sobald die Hardware da ist :D


    -x-


    *) siehe eMail


    P.S. Klasse Sache und weiter so!

  • Nun ja bei dem Betatest soll es vor allem darum gehen das Joy-Control so zu testen wie es jetzt ist. Also auf Fehler abzuklappern die ich übersehen habe.
    Zusätzliche Funktionen mag ich im Moment noch nicht einbauen. Das macht Fehler suchen nur noch schwieriger.


    Ein KeyMan 64 besitze ich nicht. Es wird also schwierig werden etwas zu entwickeln das darauf aufsetzt ohne dass ich es testen kann.
    Ich hab mich mal auf der sehr informativen Seite von Henning etwas eingelesen um die prinzipielle Machbarkeit zu checken. Es wäre wohl möglich das Serielle Interface vom KeyMan über das JoyControl anzusteuern und darüber Tastenfunktionen auszulösen. Eine andere Möglichkeit sehe ich nicht.


    Allerdings müsste ich dafür die Hardware vom JoyControl etwas ändern und zusätzliche Kabel vom KeyMan zum JoyControl ziehen. Und Kabel aus dem C64 herauszuziehen ist etwas was ich eigentlich nicht mag. Und eine der Intentionen von Hennings KeyMan ist ja eigentlich auch gerade dass zu vermeiden. Also keine Löcher in den C64 zu bohren.


    Ob ich sowas mal einbaue hängt stark vom Bedarf ab. Wie gut das funktionieren würde (Geschwindigkeit über sie serielle Schnittstelle) kann ich auch nicht sagen.


    Meine aktueller Softwarestand beim JoyControl steht bei v0.5. Am Ende der Beta wirds v1.0 sein. So ein Soft- und Hardware Umbau ist aber eher was für v2.0. Also ich schließe das jetzt mal nicht grundsätzlich aus, es liegt allerdings außerhalb vom Fokus des Betatests.

  • Der Test des JoyControls während des Betatestes versteht sich von ganz allein - ebenso wie die Rückmeldungen über Fehler oder Funktion.


    Wenn der Betatest dann abgeschlossen ist, kann man andere Funktionen einbauen und da sehem wir halt die Möglichkeit mit dem KeyMan, weil es sich für einige Spiele geradezu anbietet - vor allem wenn eh schon JoySticks unterstützt werden, die unterschiedliche Feuerknöpfe haben. Dafür kann ich Dir dann auch einen KeyMan zur Verfügung stellen.
    (Dieser Eingeschobene Block in meiner letzten Nachricht diente nur als Ausblick auf das was wir uns wünschen und die Bereitschaft aktiv nach Lösungen zu suchen.)


    Ebenso als weitere Idee wäre die Möglichkeit ganze Sequenzen (sozusagen Macros) auf Knopfdruck durchzuführen - aber auch dies erst sobald die Beta rum ist. Wir hatten diesbezüglich auch schon eine Idee wie der JoyControl vom C64 aus nor über die Controlports programmiert werden könnte (bei gegebener Zeit können wir darüber mal reden)

  • Es wäre wohl möglich das Serielle Interface vom KeyMan über das JoyControl anzusteuern und darüber Tastenfunktionen auszulösen. Eine andere Möglichkeit sehe ich nicht.

    Nein, eine andere Möglichkeit gibt es nicht.

    Allerdings müsste ich dafür die Hardware vom JoyControl etwas ändern und zusätzliche Kabel vom KeyMan zum JoyControl ziehen. Und Kabel aus dem C64 herauszuziehen ist etwas was ich eigentlich nicht mag. Und eine der Intentionen von Hennings KeyMan ist ja eigentlich auch gerade dass zu vermeiden. Also keine Löcher in den C64 zu bohren.

    Ich bastle gerade an einem kleinen Ersatz für den 4066 (U28 bzw. U18 auf 469) der es erlaubt, die Paddle-Leitungen von den Controlports entweder normal zum SID weiterzuleiten oder "woanders hin". In Verbindung mit dem Keyman und dessen "map"-Befehl lassen sich damit schon direkt zwei zusätzliche Joystick-Buttons pro Port auf verschiedene Tasten mappen. Der JoyControl könnte später theoretisch über die Paddle-Leitungen dann auch direkt die serielle Schnittstelle des Keyman ansprechen. Siehe https://github.com/hbekel/potmux (Prototyp, funktioniert soweit gut).

  • Ich bastle gerade an einem kleinen Ersatz für den 4066 (U28 bzw. U18 auf 469) der es erlaubt, die Paddle-Leitungen von den Controlports entweder normal zum SID weiterzuleiten oder "woanders hin". In Verbindung mit dem Keyman und dessen "map"-Befehl lassen sich damit schon direkt zwei zusätzliche Joystick-Buttons pro Port auf verschiedene Tasten mappen. Der JoyControl könnte später theoretisch über die Paddle-Leitungen dann auch direkt die serielle Schnittstelle des Keyman ansprechen. Siehe https://github.com/hbekel/potmux (Prototyp, funktioniert soweit gut).

    Das klingt super.


    Das bedeutet also mit diesem Ersatz...
    ...braucht man dann keine zusätzlche Modifikation am C64 vorzunehmen
    ...man kann jede Funktion auslösen die der KeyMan steuert


    Herrlich - wie die verschiedenen Hardware-Erweiterungen miteinander zusammenwachsen können.


    @Zipcom
    Nach dem BetaTest, solltest Du eine Kleinserie produzieren, wäre ich mit ein oder zwei Platinen dabei - je nachdem

  • ...man kann jede Funktion auslösen die der KeyMan steuert

    Nein, nur mit dem Multiplexer und dem Keyman kann man Tasten mit Buttons verknüpfen, sofern man einen Joystick hat, der seine zusätzlichen Buttons auf POTX und POTY legt.


    Jede Funktion könnte der JoyControl auslösen, wenn er über den Controlport reingeht und über den Multiplexer direkt zur seriellen Schnttstelle geht.

  • Ich bastle gerade an einem kleinen Ersatz für den 4066 (U28 bzw. U18 auf 469) der es erlaubt, die Paddle-Leitungen von den Controlports entweder normal zum SID weiterzuleiten oder "woanders hin". In Verbindung mit dem Keyman und dessen "map"-Befehl lassen sich damit schon direkt zwei zusätzliche Joystick-Buttons pro Port auf verschiedene Tasten mappen. Der JoyControl könnte später theoretisch über die Paddle-Leitungen dann auch direkt die serielle Schnittstelle des Keyman ansprechen. Siehe github.com/hbekel/potmux (Prototyp, funktioniert soweit gut).

    Klingt interessant.
    Mal sehen ob ich das richtig verstanden habe.


    Du würdest alle 4 Paddle Leitungen mit deinen PotMux auf den Keyman umbiegen. Das würde bedeuten dass ein eventuell am anderen Port angeschlossenes Paddle auch nicht mehr abgefragt wird?


    Um die Paddle Leitungen zu mappen verwendest du ein Konfigurationsprogramm dass den Keyman über die "Cassette Sense" und "Cassette Data" Leitungen programmiert mit denen dein serielles Interface verbunden wird.


    Über dieses Programm könntest du dann den Keyman so konfigurieren dass er 2 Paddle Leitungen als zusätzliches serielles Interface verwendet. Das dann vom Joy-Control angesprochen werden kann.




    Prinzipiell gibt es also drei Möglichkeiten:


    1. Man mapppst vor dem Start eines Spieles, über dein Config-Programm, 2 Joysticktasten auf irgendwelche Keyboard Tasten.

    • Nachteil: geht nur vor dem Programmstart
    • Nachteil: Paddle funktionieren nicht mehr
    • Nachteil: setzt PotMux voraus
    • Vorteil: funktioniert ohne JoyControl.
    • Vorteil: keine zusätzlichen Kabel

    2. Man schaltet vor dem Start eines Spiels, über dein Config-Programm (oder Metakey Funktion?), die Paddle Leitungen als serielles Interface.


    • Nachteil: funktioniert nur mit JoyControl
    • Nachteil: Paddle funktionieren nicht mehr
    • Nachteil: setzt PotMux voraus
    • Vorteil: keine zusätzlichen Kabel
    • Vorteil: das mapping der Knöpfe könnte jederzeit geändert werden.

    3. Man spricht den Keyman direkt über sein serielles Interface an. Über den Kassetten Port. (wenn die Leitungen eh schon anliegen)


    • Nachteil: Zusätzliche Kabel zum Kassettenport
    • Nachteil: Brücke im JoyControl löten
    • Nachteil: funktioniert nur mit JoyControl
    • Vorteil: Paddle funktionieren
    • Vorteil: setzt keinen PotMux voraus
    • Vorteil: das mapping der Knöpfe könnte jederzeit geändert werden.




    Zu diesen Gedankenspiel sei gesagt dass es meiner Meinung nach nur Sinn ergibt maximal 2 Joystick Buttons auf Tasten oder Funktionen im C64 zu mappen. Denn die normalen Joystick Funktionen sollen ja immer erhalten bleiben.
    Bei den Sega Megadrive Controllern könnte man auch 3 Buttons verwenden. Da ich hier auch den Start Knopf abfragen kann.


    Auch geht es nicht nur darum was man machen kann (vieles), sondern auch darum was man bedienen kann (nicht so vieles).


    Das User Interface vom JoyControl ist letztlich auf zwei Digitalanzeigen und ein paar LEDs beschränkt. Ich wollte bewusst kein Display weil ich so die Anzeigen klarer und deutlicher finde. Dutzende Funktionen zu implementieren für die man hinterher ein Seminar braucht um sie zu begreifen werd ich nicht machen.


    Aktuell kann ich mir die Anbindung an den Keyman in sofern vorstellen dass ich die Programmierung der Feuerknöpfe so ändere, dass man die HEX Codes der gewünschten Tasten über die Drehcoder auf den Digitalanzeigen einstellt und abspeichert. Und dann halt bei Tastendruck seriell sendet.
    Allerdings muss dazu die Software massiv umgebaut werden


    @Zipcom
    Nach dem BetaTest, solltest Du eine Kleinserie produzieren, wäre ich mit ein oder zwei Platinen dabei - je nachdem

    Naja zur Zeit mache ich ja eine Kleinserie von 10 Stk. Die Frage ist halt eher ob überhaupt genügend Interesse besteht um noch mehr zu produzieren.



    Dafür kann ich Dir dann auch einen KeyMan zur Verfügung stellen.

    Danke für das Angebot. Allerdings würde ich mir dann selbst ein Keyman besorgen. Ich würde ungern die Hardware von jemand anderem grillen wollen. :strom:

  • Über dieses Programm könntest du dann den Keyman so konfigurieren dass er 2 Paddle Leitungen als zusätzliches serielles Interface verwendet. Das dann vom Joy-Control angesprochen werden kann.

    Nein, kein zusätzliches serielles Interface. Ich denke mir das so: Entweder a) Die Paddle-Leitungen werden zu an die IO-Leitungen des Keyman geführt (und können da mit Hilfe des Map-Befehls auf Tasten gemappt werden oder b) zwei der Paddle-Leitungen gehen direkt an das serielle Interface des Keyman, und wer immer am anderen Ende hängt (z.B. JoyControl) kann dann den Keyman direkt ansprechen, Tasten drücken, Sequenzen ausführen, was halt über das serielle Interface geht. Im Fall a) liest der Keyman die Buttons selbst aus und weiß, welche Tasten zu drücken sind, im Fall b) entscheidet das JoyControl, ob und wenn ja welche Tasten gedrückt werden sollen. Die Frage ist dann lediglich, auf welcher Seite der Benutzer das konfigurieren muss bzw. kann.


    Die einzige Funktion des potmux ist ja, die Paddle-Leitungen umbiegen zu können und so vier Leitungen in den C64 kriegen zu können, ohne bohren zu müssen.

    Du würdest alle 4 Paddle Leitungen mit deinen PotMux auf den Keyman umbiegen. Das würde bedeuten dass ein eventuell am anderen Port angeschlossenes Paddle auch nicht mehr abgefragt wird?

    Ja, das potmux ist erstmal "ganz oder garnicht", entweder gehen alle Leitungen woanders hin, oder alle gehen wie gewohnt zum SID. Es ist auch erstmal extrem simpel gehalten. Falls eine Unterscheidung zwischen den Controlports Sinn macht, kann man da aber nochmal gucken.


    Das Programm, das dem potmux beiliegt, ist nicht zwingend erforderlich. Man könnte auch unterschiedliche Konfigurationen auf Keyman-Funktionstasten legen. Das Programm ist nur ein zusätzliches goodie, um Spielen gleich die richtige Konfiguration mitzugeben. Würde man z.B. im Keyman fest eine Leitung zum Umschalten konfigurieren und einen Button auf Space mappen, wäre das wahrscheinlich für 90% aller Spiele ausreichend.


    Generell wollte ich auch nur auf die Möglichkeit hinweisen, da JunAle das Thema Keyman mit reingebracht hat. Ob der JoyControl das nun aktiv unterstützt oder nicht, steht ja auf einem anderen Blatt.

  • Von meiner Seite aus wäre wahrscheinlich relativ einfach (wenn ich schon die Software umbaue) so zu programmieren dass das JoyControl Daten parallel sowohl über botmux (ohne Kabel) als auch direkt zum Keyman (mit Kabel) senden würde. Die Wahl der Methode würde dann am Keyman stattfinden. Da beide Schnittstellen parallel geschaltet sind sollte es bei relativ relaxtem timing keine Probleme geben.


    Das muss ich alles mal noch eine Weile im Kopf drehen bevor ich mich da reinklemme. Mal sehen was raus kommt...

  • !!!! ACHTUNG WICHTIGE INFORMATION !!!!



    Habe hier einmal eine Umfrage zum Interesse an dem Joy-Control 64 gestartet! :thumbsup:


    Interessensbekundung an einen oder mehrere Joy-Control 64