Angepinnt USB-Joystickadapter - Neue Firmware / Weiterentwicklung

  • USB-Joystickadapter - Neue Firmware / Weiterentwicklung

    News:

    Ich habe die neue, auf v-usb basierende Software jetzt mal zusammengestellt und auf eine Website gepackt.

    hexagons.de/index.php/USB_Joystickadapter

    Dies war für die v-usb Freeware Lizenz erforderlich. Es wird nach wie vor der ATtiny2313 eingesetzt, der Einsatz eines ATtiny4313 ist jedoch auch möglich und wird für zukünftige Softwareerweiterungen wahrscheinlich zwingend notwendig.

    Changes:
    - Software mit gcc 4.5.2 übersetzt
    - USB Treiber von avrusb auf aktuelle v-usb Version umgestellt
    - PID/VID auf für v-usb Projekte vorgesehene Werte geändert
    - USB Header Daten korrekt ausgefüllt
    - Beide Joysticks heissen nun "Joystick" in der Spielsteuerung. (Und das selbst beim ATtiny2313 mit 2 KB Flash)
    - Die Software kann auch für den ATtiny4313 übersetzt werden, der Chip ist pinkompatibel und hat mehr Platz

    Hinweis:
    - Zukünftige Erweiterungen werden wahrscheinlich den 4313 brauchen. Es hat mich jetzt schon gewundert daß das zusätzliche Zeugs trotzdem noch in den 2313 gegangen ist. Ich denke der v-usb Treiber effizienter ist.

    ToDo:
    - Linux Problem mit nur einem js0 Device checken
    - unterscheidbare Joystick Namen, sowas wie "Joystick - 1", "Joystick - 2"

    Viele Grüße
    hexagon

    Edit: Beitrag in eigenen Thread verlagert

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von hexagon ()

  • Das war eine schnelle Antwort!

    Die Seite habe ich schon gefunden und die Firmware runtergeladen, aber noch nicht geflasht!

    hexagon schrieb:

    der Einsatz eines ATtiny4313 ist jedoch auch möglich und wird für zukünftige Softwareerweiterungen wahrscheinlich zwingend notwendig.

    Wo bekommt man den Chip her?

    hexagon schrieb:

    unterscheidbare Joystick Namen, sowas wie "Joystick - 1", "Joystick - 2"

    Man könnte sie doch Joy1 und Joy2 nennen, dann dürfte es doch mit dem Speicher keine Probleme geben, oder?

    hexagon schrieb:

    Linux Problem mit nur einem js0 Device checken

    Wurde das schon überprüft? Evtl. läufts ja mit V-USB, es gibt ein ähnliches Projekt namens "Retro Adapter 2", der wohl zwei Joysticks unter Linux ab Kernel 2.6.33 (!) erzeugen kann. Ich müsste die neue Firmware mal flashen und ausprobieren und mal sehen, was Linux dazu meint.

    Gruß,

    Sven
  • Hallo,

    die genannten Probleme sind bekannt.

    - Was Mac OS X betrifft - ich hab einen Snow Leopard und einen Lion zum Testen. Muss ich mal ausprobieren. Linux geht in die gleiche Kerbe, da sind die Systeme doch ein wenig ähnlich :)

    - Firmware Weiterentwicklung: Die Firmware ist Open Source. Ich hab mich dem ein bisschen angenommen, von Greg (ursprünglicher Entwickler) hab ich nichts mehr gehört. Es kann aber jeder der möchte und da Ideen dazu hat was beitragen. Fände ich gut. Also wenn jemand einen Plan hat wie man mit v-usb 2 unterschiedliche Geräte in einem Device abbildet (ist vorgesehen, muss man aber erst mal lauffähig hinkriegen)... da sind wir wieder beim Thema 2 Endpoints oder geteilte Reports im Descriptor...

    - Der Tip mit dem Retro Adapter war gut. Ich hab mal geschaut, ich dachte bisher der könnte nur 1 Joystick, wenn auch sehr viele verschiedene. Habe aber jetzt gesehen daß mit dem second DB9 Adapter auch 2-Joystick Betrieb geht. Die Sources hatte ich schon da, ich schau mir mal an wie die das Problem der Deskriptoren gelöst haben. Hab auch schon was interessantes gesehen, eventuell ist das die Lösung die ich in den USB-Joystickadapter portiere.

    - Joy1, Joy2 , Joystick-1, Joystick-2 ... die Länge ist erstmal egal, das Problem sind daß sich der Namen überhaupt unterscheidet.

    - 4313 - ich mach mal ein Archiv fertig in dem der derzeitige Stand für den 4313 übersetzt werden kann. (Einfach Switch für Compiler). Wenn es irgentwie geht wird der 2313 voll weiterverwendet, aber wenn der Platz knapp wird muss es eben für Neuerungen der 4313 sein. Der 4313 ist also kein Fehler, aber auch kein muss.

    Viele Grüße
    hexagon
  • hexagon schrieb:

    - Joy1, Joy2 , Joystick-1, Joystick-2 ... die Länge ist erstmal egal, das Problem sind daß sich der Namen überhaupt unterscheidet.


    Sorry, da hatte ich die alte Firmware noch im Kopf, da standen 2 Diskriptoren (oder wie das heißt) drin. Beide hatten Länge 0, da kein Platz mehr auf dem Chip war.

    hexagon schrieb:

    Der 4313 ist also kein Fehler, aber auch kein muss.

    Ich habe auch nicht behauptet, dass es ein Fehler wäre, bloß bekommt man den nicht mehr. Ich hatte den im CSD-Shop gesehen, für 2,95€ oder so, aber: weg! Und der 461 (oder so ähnlich) hat ja eine komplett andere Pin-Anordnung. Schade.

    Mit dem Retro-Adapter bin ich zufällig drauf gestoßen, als bei Chip ein neue Version eines Mario-Spiels draußen war und ich geschaut habe, welche Möglichkeiten es gibt, ggf. ein SNES-Pad anzuschließen. Der kann zwei Joysticks, allerdings wie gesagt erst ab Kernel 2.6.33 und ist deswegen interessant, weil der hiesige USB-Adapter ja nun auch V-USB verwendet. Ich hoffe ja mal, dass die Firmware noch in den 2313 passt.
  • hexagon schrieb:

    - Was Mac OS X betrifft - ich hab einen Snow Leopard und einen Lion zum Testen. Muss ich mal ausprobieren. Linux geht in die gleiche Kerbe, da sind die Systeme doch ein wenig ähnlich :-)
    Mal kurz nachgfragt: Hab den Joystickadapter V1.4 hier und würde den gerne unter OSX mit Vice nutzen.
    Funktioniert das? Wenn ja, wie?
    --------------------------------------------------------------------------------------------------------
    RapidFire BBS: rapidfire.hopto.org:64128
  • pcollins schrieb:

    hexagon schrieb:

    - Was Mac OS X betrifft - ich hab einen Snow Leopard und einen Lion zum Testen. Muss ich mal ausprobieren. Linux geht in die gleiche Kerbe, da sind die Systeme doch ein wenig ähnlich :)
    Mal kurz nachgfragt: Hab den Joystickadapter V1.4 hier und würde den gerne unter OSX mit Vice nutzen.
    Funktioniert das? Wenn ja, wie?
    Also ich hab den USB Joystickadapter (Edelstahlgehäuse) in der neuesten Version hier und versuche diesen gerade unter OSX zu testen. Leider ohne Erfolg... Hat jemand einen Tip für mich?
  • Retro-Nerd schrieb:

    Auf dem EAB fragt gerade jemand, ob der USB Adapter auch Analog Joysticks unterstützt. Wird wohl nicht gehen, oder? In dem Fall ein Konix Speed King für Amiga.

    Das hab ich jetzt nicht ganz verstanden. Der Konix Speed King ist doch ein Digitaljoystick. Der Amiga verwendet ebenfalls nur Digitaljoysticks.

    Analoge Joysticks kamen üblicherweise am PC (und am Apple II?) zum Einsatz und haben auch einen anderen Anschlussstecker. Diese können nicht an den USB-Joystickadapter angeschlossen werden.

    Viele Grüße
    hexagon
  • Ich kann nur das wiedergeben, was auf dem EAB geschrieben wurde. Der Stick soll wohl einen klassischen 9-pin Anschluss haben, und soll eben die Analog Version sein. Der Stick wird vom Adapter zwar erkannt, es funktionieren aber nur die Feuerknöpfe.

    Einige wenige Amiga Spiele sollen auch Analog Sticks unterstützen, dürften Flugsimulatoren und Rennspiele gewesen sein. Es gab natürlich auch PC Analog Stick zu Amiga Adapter. Aber gut, wenn der USB Adapter das nicht kann ist die Sache ja auch vom Tisch.

    Edit:

    Hier ist sogar eine Liste von Amiga Spielen, die Analog Sticks unterstützen oder per PC Stick zu Amiga Adapter laufen.

    eab.abime.net/showpost.php?p=252205&postcount=6

    Vielleicht ist es ein Stick aus dieser Liste. Könnte ja sein, dass der auch zusätzlich als Speed King Analog verkauft wurde, für Atari 2600 und Co.


    Epyx 500XJ von Konix
  • Die Sticks für das VCS sind ebenfalls digital. Sie hat zwar analoge Eingänge, die werden aber meines Wissen nach nur für Paddles benutzt. Ein Spiel für analoge Joysticks ist mir nicht bekannt. Sollte technisch aber gehen; wenn der Wert der Potis halbwegs passt bräuchte man die Potis für die X und Y-Achse nur auf die Paddle-Eingänge legen.

    Sleepy
    Totgesagte leben länger: drive Capri & play ATARI

    Amiga 500 1MB mit HxC, Unmengen an ATARI-8Bit, Toch me, VCS, 2600, 7800, Jaguar, McWill Lynx 1, Lynx 2, Flashback 1 & 2, Pole Position Cab
  • Hallo,

    bin neu hier im Forum. Ich habe 2 Competition Pro's und Donald's Joystickadapter. Leider betreibe ich das Ganze unter Linux und da erscheint nur ein "js0"-Device. Ich habe 2 Kinder, die gerne mal ab und zu gegen-/miteinander ^^ ein Spiel spielen möchten. Gibt es bzgl. der Firmwareweiterentwicklung unter Linux für 2 Joysticks noch Aktivitäten? Leider kann ich aufgrund mangelnder Programmierkenntnisse nicht wirklich etwas zum Thema beitragen - so bleibt mitr nur "unterwürfig" nachzufragen 8)

    Schöne Grüße,
    ciaccom
  • Hallo,

    also machbar sollte es sein. Es gibt eine andere Hardware, die 2 Joysticks generieren können soll. Das werde ich vermutlich nächstes Wochenende mal testen. Die Grundfirmware ist ähnlich. Man könnte die bestehende Firmware anpassen (Fehlerbeseitigung) oder aber die Firmware von dem anderen Adapter an die Hardware anpassen.

    Gruß,

    Sven
  • Um mal die Mac OS Problematik nochmal ans Licht zu zerren: Ich habe den Adapter aus den Sinchai-Shop, der bei mir unter Windows 8 famos funktioniert. Jetzt versuche ich, ihn unter Mac OS X Yosemite zum Laufen zu bringen mit Vice 2.4 (stable). Die Richtungen funktionieren alle prima (allerdings sind Joystick A und B im Vice Joystick-Dialog vertauscht). Nur die Feuertaste bringe ich nicht zum funktionieren. Hat jemand mittlerweile Erfolg gehabt, den Adapter unter MacOS zum Laufen zu bringen?

    EDIT: es ist wohl etwas komplizierter. Scheinbar wird der Joystick in Port 2 des Adapters insoweit erkannt, dass die Richtungen gehen (aber nicht Feuer). Beim Joystick in Port 1 gehen dafür die Richtungen nicht, und Feuer wird als alle Richtungen+Feuer gleichzeitig erkannt. Hm...
    ────────────────────────────────────────────────────────────
    Time of Silence - Time of Silence 2 Development Blog
    ────────────────────────────────────────────────────────────
  • Habe hier eine neue Firmware für den USB-Joystickadapter hochgeladen:

    hexagons.de/index.php/USB_Joystickadapter

    Die Firmware ist von Philipp Lang neu geschrieben. Die Joysticks heissen Retro-Joystick (-1, -2). Die Firmware funktioniert mit 2 Joysticks auch unter Linux und Mac OS X. Die Portzuordnung (1/2) kann getauscht und im EEPROM gespeichert werden.

    Viele Grüße
    Andreas