Joystick Button 2/3 POTX/POTY - Gefahr durch Beschaltung (0..5V)?

Es gibt 23 Antworten in diesem Thema, welches 3.868 mal aufgerufen wurde. Der letzte Beitrag (19. Januar 2020 um 20:17) ist von 0xdeadbeef.

  • Das eigentliche Ziel wäre ja gewesen, einen Amiga zuverlässig zu erkennen und genau da würde meine Strategie wohl nur dann funktionieren, wenn der Joystick erst dann eingesteckt würden, wenn ein Spiel das entsprechenden Paula-Register (POTGO) bereits konfiguriert hat.

    Schade. Aber selbst, wenn man einen Amiga von einem C64 unterscheiden könnte, wäre das ja noch kein Rezept für die Erkennung aller Plattformen, an die man so einen Stick anschließen könnte, oder? Was wäre z.B. mit einem Atari XL/XE oder 2600 oder ST?

    Bitte melde dich an, um diesen Link zu sehen. | Meine Lieblings-Themen im Forum64:

    Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.

  • Ich will nicht mal behaupten, daß man Amiga und C64 mit entsprechendem Aufwand nicht unterscheiden könnte. Aber wohl halt nicht mit meiner angedachten Quick'n'Dirty-Lösung (über den Pegel und einmalig nachdem der Joystick spannungsversorgt ist).

    Leider machen der C64 (wo jedes Spiel seinen eigenen Keyscan programmieren kann und damit den Multiplexer für POTX/Y beliebig schaltet) und Amiga (wo man das Verhalten der POTnX/Y-Pins von Paula umkonfigurieren kann) die Sache aber in der Tat ziemlich kompliziert, selbst wenn man die Erkennung dauerhaft fortführt.

    Unausgereifte Schnellschußidee: man könnte den Pegel am Ausgang für Button2/3 dauerhaft zurücklesen und mit dem Erwartungswert für Ein/Aus vergleichen. Wenn man keinen Pegelwechsel beim Drücken von Button2/3 feststellen kann oder der Off-Pegel dauerhaft falsch ist, ist die Polarität falsch. So könnte ein zunächst fälschlich als C64 erkannter Amiga beim Start eines 2-Button-Spiels doch noch erkannt werden.

    Jetzt könnte aber halt wieder ein C64-Spiel den Multiplexer für POTX/Y nur für 1ms alle 17ms oder so aktivieren, weil es z.B. die entsprechenden (mit PA6/7 verbundenen) Tasten gar nicht oder unkonventionell scannt. Das könnte dazu führen, daß die Spannung am Portpin so langsam sinkt, daß der Algorithmus einen falschen OFF-Pegel erkennt o.ä. Also müßte alle 2-Button Spiele daraufhin untersuchen, ob ein solcher Algorithmus an ihrem Verhalten scheitern würde oder nicht und ihn entsprechend feintunen. Klingt nach einem riesigen Aufwand mit geringem Nutzen im Vergleich zu einer festen Umschaltmöglichkeit.

    Ich will auch nicht ausschließen, daß es mit entsprechendem (HW- und SW)Aufwand möglich sein könnte, diverse Computer und/oder Spielekonsolen mit Sub-D-Anschluß zu unterscheiden, aber dazu müßte man ihre Eingangsbeschaltung, Konfigurationsmöglichkeiten, usw. sehr genau studieren und dann eine Schaltung und entsprechende Algorithmen entwickeln. Ehrlich gesagt denke ich auch nicht, daß es dafür wirklich einen Markt (im weitesten Sinne) gibt und es gibt ja auch genügend Computer, die nicht mal eine Spannungsversorgung auf dem Joystickport haben.

  • Um die Sache nicht unnötig kompliziert zu machen, werde ich halt einfach den Status der Buttons beim Einschalten des Joysticks abfragen (so ähnlich wie die Moduseinstellung bei der C1351). Vermutlich werde ich den "low active"-Fall des Amiga als Standardeinstellung benutzen und den "high active"-Fall des C64 als speziellen Modus, den man nur aktiviert, wenn man beim Einschalten/Einstecken des Joysticks den zweiten Button (o.ä.) gedrückt hält. Für die wenigen C64-Spiele, die den zweiten Button überhaupt unterstützen, sollte das vertretbar sein.

    Genau so hab ich das auch gemacht, aus den gleichen Gruenden, wie von Dir geschildert (mehr Amiga Sachen nutzen 2 Knoepfe als C64). Und das klappt auch gut. Die einzige Stelle, wo mir das bisher Umstaende bereitet hat ist wenn ich ein Final Cartridge III anschliesse, und an mache, ohne den Joystick richtig zu kalibrieren (da ich das ja normal nur brauche wenn ich ein Spiel spielen will das 2 Knoepfe unterstuetzt), dann denkt er es ist eine Maus angeschlossen, und ich kann es nicht mehr per Joystick benutzen.

    Werde evtl das ganze eines Tages so programmieren, dass er sich die vorige Konfiguration merkt, und nur was dran aendert, wenn ich eine der beiden Feuerknoepfe beim einschalten druecke, Feuer1 zB fuer C64, Feuer2 fuer Amiga.

    Mein USB + Game Port Joystick Projekt: Bitte melde dich an, um diesen Link zu sehen.