Autor Thema: Arcade-Automat bauen... Wie Buttons an den ST anschießen?  (Gelesen 13351 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

guest800

  • Gast
Hallo Leute!

Ich möchte mir einen Arcade-Automaten wie aus den 80ern bauen. Alles soweit kein Problem, Gehäuse wird aus Holz gebaut, Joysticks und Buttons kann man kaufen.

Als Rechner möchte ich einen Atari ST einbauen und ihn zur Spielekonsole degradieren. Die Spiele kommen auf jeweils eine Diskette, von der automatisch gestartet wird.

Soweit so gut.

Folgendes Problem:
Manche Spiele verlangen ja Eingaben vom Keyboard, um die Anzahl der Spieler o.Ä. zu bestimmen.

Sagen wir mal, der Automat hat drei zusätzliche Knöpfe für 1 Player, 2 Playerund Start.
Jetzt brauche ich eine Lösung, wie ich die Knöpfe mit dem ST verbinden kann und einen "Treiber", mit dem ich den Knöpfen dynamisch Tasten am ST zuordnen kann.

Hat jemand eine Idee?

Schöne Feiertage wünscht
Stefan

Offline tuxie

  • Benutzer
  • Beiträge: 6.836
  • Falcon! Milan! Schuetzt die Raubvoegel!
Re: Arcade-Automat bauen... Wie Buttons an den ST anschießen?
« Antwort #1 am: Fr 06.04.2007, 10:02:15 »
Hallo,

Bau dir doch eine kleine Matrix Tastatur und binde sie an der IKB-Controller an. Sollte eigentlich möglich sein. Mußt da aber die matrix der Original tastatur entflechten. Oder du nimmst eine Original tastatur und lötest an die Kontakte der Tasten einen entsprechenden TAster an.

Edit:
Mir fällt gerate ein das im Profibuch eine Matrix abgebildet ist.

Tschau Ingo
« Letzte Änderung: Fr 06.04.2007, 10:04:05 von tuxie »
Tschau Ingo

guest800

  • Gast
Re: Arcade-Automat bauen... Wie Buttons an den ST anschießen?
« Antwort #2 am: Fr 06.04.2007, 10:21:26 »
Hallo Ingo!

Oder du nimmst eine Original tastatur und lötest an die Kontakte der Tasten einen entsprechenden TAster an.

Daran habe ich auch zuerst gedacht. Aber die Spiele verlangen ja nach unterschiedlichen Tasten.
Bei Pacman wählt man mit F2 die Anzahl der Spieler, bei Joust mit den Ziffern 1 und 2.

Darum suche ich nach einer Möglichkeit, beim Booten von der jeweiligen Diskette die neuen Tasten individuell zu belegen.

Ich brauche also eine Anschlussmöglichkeit und ein Programm.

Offline tuxie

  • Benutzer
  • Beiträge: 6.836
  • Falcon! Milan! Schuetzt die Raubvoegel!
Re: Arcade-Automat bauen... Wie Buttons an den ST anschießen?
« Antwort #3 am: Fr 06.04.2007, 10:24:37 »
Und wenn du dir so eine Matrx edelstahltastatur oder eine Schwarz Automatentastatur besorgst. Und diese dann Anschließt. Da kannste dann auch eine PS2 oder AT Tastatur nehmen. Und diesen dann Via Adapter asnschließt.

Das sieht dann ja auch recht Ordentlich aus denke ich oder?

Tschau Ingo
Tschau Ingo

guest800

  • Gast
Re: Arcade-Automat bauen... Wie Buttons an den ST anschießen?
« Antwort #4 am: Fr 06.04.2007, 10:33:43 »
Ja, das stimmt schon. Dann würde ich allerdings direkt die ST-Tastatur benutzen.
Mein Traum ist halt ein Partykasten, der wirklich so aussieht wie die 80er-Jahre Automaten. Die haben nunmal keine Tastatur.

Aber vielleicht ist Hartverdrahten+Umschalter die einfachste Lösung. Vielleicht ein Umschalter, den man per Software steuern kann...

Offline Dennis Schulmeister

  • Galerie Moderator
  • Beiträge: 535
  • Do be do be do -- Sinatra.
Re: Arcade-Automat bauen... Wie Buttons an den ST anschießen?
« Antwort #5 am: Sa 07.04.2007, 16:54:50 »
Hallo Stefan,

ein per Software steuerbarer Schalter ist gar nicht so schlecht. Die einfachste Lösung wäre ein Relais, welches du per Parallelport ansteuerst.

Hier gibt es zwei Arten: Relais, welche nur Schalten, solange der Schaltstrom anliegt und Relais, welche umgeschaltet bleiben. Ich denke, letzteres wäre sinnvoll.

Die Software sollte also folgendes machen: Einlesen der Zustände der beiden Knöpfe am Automaten. (Auch per Parallelport). Anschließend betätigen der richtigen Relais, um den Tastendruck zu simulieren. Eventuell kann man den Tastandruck aber auch per Software "simulieren", so dass du keinen Hardwareumschalter brauchst.

Das Problem an der Sache: Der ATARI kann keine zwei Programme gleichzeitig laufen lassen. Das heißt, du müsstest ev. einen Interrupt Handler programmieren, welcher sich z.B. an den Timer-Interrupt oder den Zeilenrücklauf hängt.

Prinzipiell bin ich bereit hierbei zu helfen. Ich muss aber zugeben, dass ich für ATARI noch nie programmiert habe. Nur für x86 unter diversen Betriebssystemen.

Gruß,
Dennis 8)
Wenn ich mal groß bin, will ich bei Atari arbeiten.

guest800

  • Gast
Re: Arcade-Automat bauen... Wie Buttons an den ST anschießen?
« Antwort #6 am: Sa 07.04.2007, 18:37:16 »
Hallo Dennis!

An Relais habe ich auch schon gedacht. Die Sache mit dem Multitasking ist kein Problem.
Jedes Spiel soll auf einer eigenen Diskette gespeichert werden. Da ist es dann ja kein Problem, ein Skript zu schreiben, dass erst die Relais nach Bedarf umschaltet und dann das Spiel lädt, oder?

Es geht ja nur darum, dass es ein paar Knöpfe geben wird, die je nach Spiel auf eine andere Taste verweisen sollen.

Wie kann man denn mit dem Parallelport die Relais steuern?

Und gibt es vielleicht eine Möglichkeit die Tastatur anzusprechen ohne zusätzliche Kabel an die Tastenkontakte zu löten? Wie ist die Tastenmatrix im ST belegt?

Viele Grüße
Stefan

Offline Dennis Schulmeister

  • Galerie Moderator
  • Beiträge: 535
  • Do be do be do -- Sinatra.
Re: Arcade-Automat bauen... Wie Buttons an den ST anschießen?
« Antwort #7 am: So 08.04.2007, 14:12:47 »
Hallo Stefan,

ich habe mal vor ein paar Jahren mit einem Freund ein kleines Projekt umgesetzt. Es ging darum, ein selbst gebautes Mini-Auto mit dem Computer zu steuern. Er hat das Auto gebaut, ich war für den Computer-Teil zuständig. (Schön mit einem 486er Laptop unter Windows 3.1)

Das Ansteuern von Relais mit dem Parallelport ist ganz einfach:

Das Parallelport überträgt seine Daten, indem er auf 8 Ausgangsleitungen Strom anlegt oder nicht. Somit kann er zu jeder Zeit den Zustand von genau 8 Bit (1 Byte) darstellen.

Schreibt man eine dezimale 0 über den Parallelport nach draußen, so liegt auf keiner Leitung Strom an.

Schreibt man eine dezimale 1, so liegt auf der ersten Leistung Strom an, da die dezimale 1 binär 00000001 lautet.

Die 2 lautet 00000010, die 3 lautet 00000011 und so weiter.

Das Erkennen von Schaltzuständen erfolgt genau umgekehrt. Der Parallelport bestizt 8 Eingangsleitungen, mit denen er zu jedem Zeitpunkt den Zustand von 8 Bits erkennen kann.

Liegt auf keiner Leitung Strom an, so wird man eine 0 einlesen. Liegen folgende Ströme an 00001011 an, so wird man eine dezimale 11 einlesen.

Du siehst, es ist ganz einfach. Man muss eigentlich nur Relais finden, für welche der Parallelport einen genügend großen Schaltstrom bietet. Das Verdrahten der Knöpfe mit den Eingängen ist etwas aufwendiger, aber auch kein Hexenwerk.


Theoretisch wäre es möglich, ein kleines Script oder auch ein kleines C-Programm zu schreiben, welches zu Anfangs erst die Relais setzt. (Hier helfe ich gerne).

Das Problem ist nur, dass die entsprechende Taste dann "dauergedrückt" ist. Die Spieler haben keine Möglichkeit, während dem Spiel den Modus zu wechseln. So weit ich weis arbeitet der ATARI mit einem Eingangspuffer für die Tastatur. Dieser würde ziemlich schnell überlaufen. Beim PC verursacht sowas immer größere Aussetzer.

Aus diesem Grund würde ich den Weg mit der Interrupt Routine bevorzugen. Ein regelmäßig auftretender Interrupt triggert eine kleine Assembler-Routine, welche den Zustand der Buttons ausliest und den Tastendruck simuliert.

Ich habe gerade einige Zeit im ATARI ST Programmierhandbuch gestöbert und bin mir nicht sicher, ob es nicht möglich ist, einen Tastandruck rein dadurch zu simulieren, dass man den entsprechenden Scancode in den RAM des Keyboard-Controllers schreibt.

Falls die Abbildung der Tastaturmatrix für dich interessant ist, kannst du diese im ATARI ST Hadrware-Handbuch finden. Leider habe ich keinen Scanner, so dass ich sie dir nicht einscannen kann.

Gruß,
Dennis 8)
Wenn ich mal groß bin, will ich bei Atari arbeiten.