Hallo,

zum Projekt: Ich möchte gern einen Babelfisch (Universalübersetzer) für Gamepads und Joysticks entwicklen.

Also: Ausgang: USB,
Eingang: Alle möglichen Gamepads und Joysticks (je vier gleichzeitig). Also Atari 2600, NES, SNES, Playstation GC, N64, Neo Geo, etc. etc. Je mit einem Adapter auf ein DB25 Stecker (oder direkt verlötet, wenn das Pad billig ist)...

Jetzt gibt es zwei Möglichkeiten: Ich benutze Midalg... HId-Interface und versuche die möglichen Gamepads je zu Konvertieren. Naja... Dafür bräuchte ich dann wohl 8 Mega8 Chips... Weil ja neben USB evtl. nicht mehr viel Zeit bleibt zum dekodieren... Und die neueren Gamepads auch unterhalten werden müssen... Die mögen es gar nicht, wenn sich mal der Host nicht mehr meldet, nur weil der grad besseres (USB) zu tun hat... Also je zwei Seriell verbundene Mega 8 oder 16 oder 32 mit 12 MHZ.

Naja, jetzt gibt es aber Spiele / Emulatoren, die nicht mit Joysticks umgehen können, sondern Tastatureingaben verlangen...

Also müsste ich theoretisch noch 4 Mega8 nehmen, um je eine Tastatur zu emulieren.

Dann gibts da noch die Paddles oder Spinner (Deutsch: Drehgeber). Die lassen sich mal wieder nur mit einer Maus emulieren... kommen also noch ein paar Chips dazu...

Wenn ich jetzt aber einen Mega 8 dazu bekomme als 4 Joysticks, eine Tastatur und ein, zwei Mäuse aufzutreten, dann klappts auch mit 5 Mega 8 und ich kann mehr programmieren als löten (was nicht so meine Stärke ist).

Aber: Z.B. könnte ich mit dem rechten AnalogStick eines Gamepads auch den Mauszeiger bewegen lassen... etc. Geilo, oder?
Makros Programmieren...
Dauerefeuer...

Das mit den mehreren Devices geht auch... Siehe Tastaturen mit eingebautem Trackball, die ohne Treiber auskommen und nur einen USB-Anschluss haben. Oder meinen Memory Stick, der sich gleichzeitig als zwei Festplatten anmeldet (auf der einen ist ein security Programm mit der man die Verschlüsselung der anderen FP ausstellen kann).

Pro USB"Device" kannst Du mehrere USB"Interfaces" definieren.
Microsoft sagt dazu:
If you're designing a USB device that includes some HID-like functionality, don't forget that you can make it a composite device by defining several interfaces. The generic parent driver will separate the functions of your device so that the system will load the standard Microsoft drivers for the HID function.

Das Problem ist nur, dass Igor da nicht so dran gedacht hat, und MId... schon gar nicht, da der ja nur einen! Joystick bauen wollte, den er hart verdrahtet...

Ich bin übrigens wesentlich weiter in der USB-Spec gekommen und denke, dass ich mittlerweile das auch ganz gut verstanden habe... vielleicht klappts ja am Wochenende erstmals als zwei Joysticks mit einem Chip aufzutreten

Mittlerweile ist auf meinem Ausdruck der Midalg... Routine mehr handschriftlicher Kommentar als alles Andere...

Naja...

Ich krieg's schon hin...

Andreas