Hallo Besucher, der Thread wurde 6,4k mal aufgerufen und enthält 42 Antworten

letzter Beitrag von alx am

Adapter für Mehrtasten-Joypads und Trackballs (9-Pin Guru)

  • 9Pin-Guru


    Eine kleine Einleitung, wie es überhaupt zu dem Projekt kam:
    Für ein neues C64-Spiele-Projekt von P1X3L.NET erschien es uns sinnvoll (bzw. fast zwingend), eine Trackball/Maus-Unterstützung zu integrieren.


    Die Atari-Trak-Balls (CX22/CX80) und Amiga-Mäuse/Trackballs sind nicht zueinander kompatibel aber sie haben eines gemeinsam: Es sind digitale Eingabegeräte (im Gegensatz zu analogen, wie. z.B. Paddles oder 1351-Maus). Und man muss sie mit hoher Frequenz vom Computer (oder der Spielkonsole) aus abfragen, um die gelieferten Informationen richtig interpretieren zu können. Das birgt ein Problem, denn dadurch geht sehr viel Rechenzeit verloren. Unser neues Spiel hat davon aber nicht all zuviel zu verschenken, weswegen die Trackball-Abfrage (zumindest bei hohen Kugel-Geschwindigkeiten) nicht immer fehlerfrei gelang und das zu steuernde Objekt bei schnellen Trackball-Bewegungen ins Stocken kam.


    Ohne Trackball wäre es aber nur der halbe Spaß, also musste eine Lösung her. Die Idee: Wenn du es nicht in Software tun kannst, dann mach es in Hardware! Also: Ein Adapter sollte her, welcher dem Computer einen Großteil der Arbeit abnimmt. Nach kurzem Brainstorming hat ALeX gleich angefangen, eine kleine Platine aufzubauen und einen AVR ATtiny*4 zu programmieren. Und wenn man schon mal dabei ist, so einen Adapter zu entwickeln, kann man auch gleich andere Eingabe-Geräte unterstützen, die man gerne mal am C64 nutzen würde: Mehrtasten-Joypads, wie man sie vom Amiga CD32 oder Sega-Konsolen kennt. Und mit weiteren/anderen Anschlüssen kann man sogar Controller verwenden, die über proprietäre Anschlüsse verfügen (PlayStation, NES).


    Der Adapter:
    Unser, in Planung befindlicher, Adapter soll ein kleines Kästchen sein, dass man zwischen Eingabe-Gerät und Computer/Konsole hängt. Technisch gesehen ist es kein Hexenwerk, es wird (wie unsere ganze Hardware) gut dokumentiert und OpenSource sein und sicherlich (wenn man selbst basteln kann/möchte) unter 10 € pro Stück kosten. Wenn jemand den Adapter in Serie herstellen will: Bitte sehr, gerne – wir würden uns freuen.


    Unterstützte Computer/Konsolen:
    Auf Computerseite werden alle 8-Bit-Computer/Konsolen mit Atari-Joystick-Support* unterstützt (für die jemand interessiert ist, Spiele anzupassen). Wir haben z.B. positive Resonanz von Thomas Jentzsch bekommen, der evtl. Crystal Castles auf dem Atari 2600 daran anpassen würde.


    Beispielhafte Geräte: C64, C128, VC20, Atari 2600, Atari 5200, Atari XL/XE ...


    * = nur die 4 Richtungs-Leitungen werden genutzt, der Port muss bidirektional sein


    Geplante/mögliche unterstützte Eingabegeräte:
    Maus/Trackball:
    - Atari CX22 Tackball, 2 Tasten
    - Atari CX80 Trackball (im ST Modus), Atari-ST Maus, je 2 Tasten
    - Atari CX80 Trackball (im 90° gedrehten ST Modus), 2 Tasten
    - Amiga Maus/Trackball, 2/3 Tasten


    Joystick/Gamepad:
    - Atari Joystick kompatibel mit 1-3 Tasten (inkl. 3 Tasten Sega MegaDrive)
    - Sega MegaDrive Controller, alle 6 Tasten *
    - CD32 Gamepad, alle 7 Tasten *
    - MegaDive, alle 4 Tasten **, ***
    - NES/SNES, alle 4/8 Tasten **, ***
    - PlayStation Digital Pad, alle 10 Tasten **, ***, ****


    * = geplant, ungetestet
    ** = sollte möglich sein, ungetestet
    *** = benötigt andere Buchse am Adapter
    **** = evtl. auf 8 reduziert


    Die Software:
    Mithilfe eines Setup-Programms (von uns für C64, evtl. von Anderen für andere Plattformen) kann man einstellen, welche(r) Maus/Trackball und welches Gamepad man benutzen möchte. Diese Einstellungen werden im Adapter gespeichert. Ein Programm/Spiel würde dem Adapter dann sagen, ob es eine Maus oder Joystick erwartet. Der Adapter erwartet dann das eingestellte Gerät.


    9Pin-Guru fragt die Controller eigenständig ab und stellt die Daten dem Computer (bzw. der Konsole) in leicht lesbarer Form (mit wenig Rechenzeit) zur Verfügung.


    Die Abfrage des 9Pin-Gurus vom Computer aus ist einheitlich, ungeachtet unterschiedlicher Belegungen auf Controller-Seite.


    Man muss (natürlich und leider) Software auf den Adapter anpassen bzw. neu schreiben. Wir erhoffen uns, dass evtl. das eine oder andere vorhandene Spiel von Hackern dafür angepasst wird. Z.B. könnte bei einem Spiel wie Commando die Handgranate über eine 2. Feuertaste ausgelöst werden, statt über "Space". Spiele, deren Autoren noch aktiv sind, könnte von denen selbst angepasst werden. Und vielleicht regen die Möglichkeiten des Adapters aktive Entwickler an, Spiele dafür speziell zu entwickeln.


    Community:
    Wir würden uns natürlich freuen, wenn gerade neue (noch in Entwicklung befindliche) Spiele, wie Sam's Journey oder TrapThem den (auch noch nicht fertigen) Adapter unterstützen würden.


    Was haltet ihr von der Idee, eine einheitliche Ansprache für unterschiedliche Mehrtasten-Joypads (und Trackballs) zu realisieren? Wie seht ihr die Chancen, dass für diesen neuen Adapter angepasste Software erscheint? Sollen wir daran weiterarbeiten oder lieber in diesem noch frühen Stadium das Projekt besser begraben und keine weitere Arbeit investieren?

  • Ich habe immer einen zweiten (oder gar dritten) Feuerknopf am C64 vermisst. Auch wenn man mit der Space und was auch immer Taste hier zurecht kam, war es aus meiner Sicht immer ne Krücke.
    Daher begrüße ich ein solches Projekt, auch wenn man das Spiel dafür extra anpassen muss.


    Wie viele Feuerknöpfe würde eure Hardware unterstützen?
    Und welche Joysticks wären dann überhaupt dafür geeignet?

  • Ein Programm/Spiel würde dem Adapter dann sagen, ob es eine Maus oder Joystick erwartet. Der Adapter erwartet dann das eingestellte Gerät.

    Habt Ihr Euch mal das Protokoll der NEOS-Mouse angesehen? Wenn man das für Mauszugriff benutzt, muss man das Rad nicht neu erfinden und wäre immerhin schon von Anfang an bereits zu einer real existierenden Hardware kompatibel...

  • Also nur um sicher zu stellen dass ihr eine wichtige Eigenschaft registriert habt:
    - Das Ding ist zu nix bestehendem kompatibel!


    (Um es anzusteuern ist es von nöten dass die 4 richtungs-leitungen sowohl für ein als auch ausgang genutzt werden können. Ist dadurch u.a. auch mit Atari 2600 kompatibel. [anfangs dachte ich auch noch die feuer-leitung zu nutzen aber die is am 2600er nicht schaltbar.)


    Was sich daraus schliesst:
    - ob die Spiele mit oben oder knopf 5 springen ist sache der Entwickler


    und deshalb wird es keine mapping funktion im adaper geben


    EDIT: da der adapter nur an den joy-port angeschlossen wird ist keine tastatur-belegung möglich

  • Einen ähnlichen Adapter gibt es schon, nur ist der für 10 Euro nicht zu bekommen. Und wird wohl auch nicht alles können, was Retro-Fan sich so vorstellt.

    Ich habe die Doku kurz überflogen und meine, dass wir uns das Teil damals schon angeguckt haben, als wir 9-Pin-Guru konzipierten (bin aber nicht sicher, ist schon ein paar Tage her). Kurz: Eigentlich kann 64HDD nichts von dem, was uns vorschwebt. Man kann damit zwar Mehrtasten-Joypads an den C64 anschließen und kann dann Belegungen modifizieren, z.B. Autofire und Decathlon-Schütteln simulieren – aber das bringt einem keine zusätzlich in Spielen nutzbare Tasten. Dafür funktioniert der Adapter ohne Anpassungen der Spiele – ist ja auch nicht nötig, denn weitere (als unterschiedlich erkennbare) Tasten werden nicht zur Verfügung gestellt, sondern nur Sachen komfortabler gemacht, die ein C64-Joystick grundsätzlich beherrscht.


    9-Pin-Guru soll etwas ganz anderes tun: Ein Spiel soll ganz einfach z.B. Action-Taste A, B, X oder Y abfragen können, als würden die Leitungen des Joystick-Ports das wirklich hergeben – was sie nicht tun! Das ist der Trick. Nachteil der Lösung: Das Spiel muss dafür gepatched (oder gleich dafür entwickelt) werden.


    Nebenbei (eigentlich als erstes) soll 9-Pin-Guru Trackballs auf 8-Bit-Systemen unterstützen, die dafür eigentlich zu langsam sind. Als drittes muss der Entwickler keine Anpassungen für unterschiedliche Mäuse, Trackballs und Joypads programmieren, da der Adapter eine einheitliche Schnittstelle zur Verfügung stellt.


    Der Entwickler fragt also z.B. die X-Taste ab und es ist egal, ob da ein NES- oder ein Sega-Controller dranhängt. Und die Infos zu den ganzen Buttons werden über nur 4 Leitungen des Joyports übertragen. Der Ansatz ist komplett neu und deswegen vielleicht nicht so leicht zu erklären. Man kann damit Steuerungen, wie auf der Playstation realisieren – und das über die wenigen Kontakte, die in einem 9-Pin-Port drinstecken.

  • Nur ob sich Leute dran machen alte Klassiker dafür zu patchen, das wird man sehen.

    Existierende Spiele, die Vorteile durch 2 oder noch mehr Action-Tasten haben, kann man wahrscheinlich an den Fingern seiner Hände und Füße ;) abzählen – die sind sicherlich schnell gepatched (wenn es denn jemand tun mag): Commando, Scramble, Bank-Panic, Robotron 2084 .... Dazu dann noch ein paar Games, die man gerne aus Ergonomie-Gründen ummappen möchte (wie Giana Sisters), wenn man den Adapter ohnehin schon hat.


    Das schöne ist, dass man die 9Pin-Guru-Anpasungen gleich mit in den Hacker/Trainer-Vorspann mit einbauen kann. Da könnte man sogar unterschiedliche Belegungs-Sets zur Auswahl anbieten.


    Alles weitere wären dann neue Spiele. Wir sitzen z.B. am einem Game, dass mit Trackball doppelt Spaß macht – und der C64 könnte das ohne Adapter-Unterstützung nicht leisten, da zu langsam.


    die anfängliche Begeisterung Sachen für EasyFlash oder SD2IEC zu patchen hat auch relativ schnell nachgelassen

    Naja, beim SD2IEC ist der "App-Gap" der Programme, die damit nicht laufen, dank M2i-Unterstützung doch sehr klein geworden. Und wenn nur noch wenig zu tun ist, lässt natürlich die Geschwindigkeit nach. Aber das war natürlich auch eine ganz andere Hausnummer, was die Anpassungen der Nachlade-Games anging.

  • Der Adapter ist für genau ein Eingabegerät gedacht?

    So haben wir uns das vorgestellt. Optimal wäre halt ein kurzes Kabel mit Joyport-Stecker und daran befestigt ein kleines Kästchen mit der Technik und einem Port für das anzuschließende Joypad. Ich kenne ohnehin kein bestehendes Programm, dass einen (simultanen) Mehrspielermodus hat und gleichzeitig Mehrtasten-Unterstützung gebrauchen könnte. Der Sinn eines Doppeladapters wäre also fraglich und vielleicht auch nicht immer kompatibel zu allen Computern und Konsolen.


    Und bei dem anvisierten Preis wäre es auch kein unmögliches Unterfangen, sich zwei von den Adaptern zu kaufen, wenn es ein Spiel gäbe, dass davon Gebrauch macht.