DEUTSCHE VERSION |
|
Links | | | Forums | | | Comments | | | Report news |
Chat | | | Polls | | | Newsticker | | | Archive |
amiga-news.de Forum > Programmierung > 2.+3.Joystikknopf Signale | [ - Search - New posts - Register - Login - ] |
-1- 2 3 4 5 6 | [ - Post reply - ] |
2006-06-11, 18:06 h MaikG Posts: 5172 User |
Weiss jemand wie man an die Signale vom 2. und 3. Joystikknopfes kommt? (Adresse) [ - Answer - Quote - Direct link - ] |
2006-06-12, 00:43 h Ralf27 Posts: 2779 User |
Zitat: Moment, spielst du jetzt auf das CD32-Pad an? -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2006-06-12, 10:43 h MaikG Posts: 5172 User |
>Moment, spielst du jetzt auf das CD32-Pad an? Nein, die zusätzlichen Tasten werden beim CD32-Pad Seriell übertragen über die 3. Maustaste. Ich möchte praktisch vom Joyport "Maustaste 2" und "Maustaste 3" abfragen. Das entspricht dann Feuer 2 und 3. Feuer 2 wird durch einige Spiele genutzt Feuer 3 nicht. [ - Answer - Quote - Direct link - ] |
2006-06-12, 19:22 h bubblebobble Posts: 707 User |
Schreib dir ein kleines Prog, dass dir alle IDCMP_MOUSEBUTTON Events ausgibt. Dann drücke den Knopf, und du wirst im EventCode und den Qualifiern sehen, wie manes abfrägt. Über Hardware Register würde ich es nur machen, wenn es nicht auf anderen Maschinen laufen soll. -- Thilo Köhler, Author von: HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker Homepage: http://www.hd-rec.de [ - Answer - Quote - Direct link - ] |
2006-06-12, 19:32 h Holger Posts: 8116 User |
Der zweite und dritte Joystickknopf sollten identisch mit dem rechten und mittleren Mausknopf sein. Beim CD³² Pad sind's, wenn ich mich richtig erinnere, Roter/Blauer/Play-Pause Knopf. Die anderen werden imho über die paddle-Eingänge übertragen, die entsprechende Analyse will man bestimmt nicht nachprogrammieren. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
2006-06-12, 22:24 h MaikG Posts: 5172 User |
>Schreib dir ein kleines Prog, dass dir alle IDCMP_MOUSEBUTTON >Events ausgibt. Dann drücke den Knopf, und du wirst im EventCode >und den Qualifiern sehen, wie manes abfrägt. Über Hardware Register >würde ich es nur machen, wenn es nicht auf anderen Maschinen laufen >soll. Ich brauch die Knöpfe vom Joyport, nicht vom Mouseport... Von wo es kommt ist egal, muss nur auf echten Amigas laufen. >Der zweite und dritte Joystickknopf sollten identisch mit dem >rechten und mittleren Mausknopf sein. Beim CD³² Pad sind's, wenn >ich mich richtig erinnere, Roter/Blauer/Play-Pause Knopf. Die >anderen werden imho über die paddle-Eingänge übertragen, die >entsprechende Analyse will man bestimmt nicht nachprogrammieren. Ich brauche nur das was rechter und mittlerer Maustaste entspricht, aber am Joyport. [ - Answer - Quote - Direct link - ] |
2006-06-12, 22:45 h bubblebobble Posts: 707 User |
Soweit ich weiss, kommen die Joystick Knöpfe auch als IDCMP Messages an. Ich kann dir ja mal ein kleines Testprogramm zuschicken, dann siehst du ob es geht. (falls du interesse hast, und dich nicht schon auf Hardware Register Peeken eingeschworen hast). -- Thilo Köhler, Author von: HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker Homepage: http://www.hd-rec.de [ - Answer - Quote - Direct link - ] |
2006-06-12, 23:02 h MaikG Posts: 5172 User |
>Soweit ich weiss, kommen die Joystick Knöpfe auch als IDCMP Messages >an. Ich kann dir ja mal ein kleines Testprogramm zuschicken, dann >siehst du ob es geht. Klar, das währe nett. MaikG492 at freenet.de [ - Answer - Quote - Direct link - ] |
2006-06-14, 10:23 h MaikG Posts: 5172 User |
Hat sich nun erledigt, ich wollte die unteren Bits mit AND ausmaskieren was natürlich dumm war weil man das mit OR macht. Also: POKEB &hDFF034, (PEEKB(&hDFF016) OR 240) c&=PEEKB(&hDFF016) LOCATE 8,2:PRINT "Feuer2"; (c& AND 64)64 LOCATE 9,2:PRINT "Feuer3"; (c& AND 16)16 Das Poken muss man immer wieder vor dem Lesen machen. [ - Answer - Quote - Direct link - ] |
2006-06-14, 19:30 h Ralf27 Posts: 2779 User |
Zitat: Interesante Lösung, wird aber auch auf einem echten laufen (vermute ich einfach mal), aber das war dir ja klar. Aber wie sieht es mit einer systemkonformen Lösung aus? Interesiert mich halt auch irgendwie. -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2006-06-14, 23:54 h MaikG Posts: 5172 User |
>Interesante Lösung, wird aber auch auf einem echten laufen (vermute >ich einfach mal), aber das war dir ja klar. Wird nur auf einem echten Amiga laufen, aber auch wenn OS4 drauf läuft. Hat so ein oller AONE überhaupt einen Joyport? Wenn ja Digital? >Aber wie sieht es mit einer systemkonformen Lösung aus? Interesiert >mich halt auch irgendwie. Thilo hat mir inzwischen ein Testprogramm geschickt, mit IDCMP bekommst du Links, Rechts, Vor, Zurück. Leider keine Feuerknöpfe. Es gibt da die lowlevel.library, die das können soll... [ - Answer - Quote - Direct link - ] |
2006-06-15, 02:00 h bubblebobble Posts: 707 User |
Das läuft ganz sicher nicht auf einem AOne, nur auf Classic Hardware und WinUAE. Komisch, dass Links Recht kommt, aber keine Knöpfe. Ich werde das Testprog mal durchgucken, evtl. habe ich was übersehen. Ich dachte, die kommen auch als Mausknöpfe an. -- Thilo Köhler, Author von: HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker Homepage: http://www.hd-rec.de [ - Answer - Quote - Direct link - ] |
2006-06-15, 10:14 h MaikG Posts: 5172 User |
>Das läuft ganz sicher nicht auf einem AOne, nur auf Classic Hardware >und WinUAE. Sag ich doch, wenn WinUAE die Ausgabe korrekt auf einem Joyport umleiten würde, könnte das gehen. Hab am PC aber weder Soundkarte noch Joyport. >Komisch, dass Links Recht kommt, aber keine Knöpfe. Ich werde das >Testprog mal durchgucken, evtl. habe ich was übersehen. >Ich dachte, die kommen auch als Mausknöpfe an. Feuer1 weiss ich nicht warum das so ist. Feuer2 und 3 ist Logisch, weil Intuition müsste dazu dem Joyport auf Ausgang schalten. Standardmäßig ist er auf Eingang, sehe ich ja in mein Programm, ich muss das dort ja auch erst machen. [ - Answer - Quote - Direct link - ] |
2006-06-15, 11:31 h Holger Posts: 8116 User |
Zitat:Hä? Ein Eingang ist etwas, wo Signale hereinkommen und durch einen Ausgang gehen Signale heraus. Joystick-Buttons sind draußen, ihre Signale kommen also herein. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
2006-06-15, 12:19 h bubblebobble Posts: 707 User |
Normalerweise sollte das das input.device machen. Es wurde ja zu einer Zeit geschrieben, wo es druchaus üblich war einen Joystick am Amiga zu haben. Mehrere Knöpfe sollten auch kein Problem sein, denn es gibt ja ein Feld in den IDCMP_MEssages für die Knopf Nummer. -- Thilo Köhler, Author von: HD-Rec, Samplemanager, ArTKanoid, Monkeyscript, Toadies, AsteroidsTR, TuiTED, PosTED, TKPlayer, TKUnpacker Homepage: http://www.hd-rec.de [ - Answer - Quote - Direct link - ] |
2006-06-15, 17:29 h platon42 Posts: 400 [Former member] |
Zitat: Allerdings. Und zwar so extrem einfach, dass man das Hardware-Hacking echt vergessen kann. Und dann funktionierts auch mit USB Joysticks code:#include <proto/exec.h> #include <proto/lowlevel.h> #include <proto/dos.h> #include <dos/dos.h> #include <libraries/lowlevel_ext.h> ULONG main(void) { struct Library *LowLevelBase; ULONG cnt; ULONG val; if(LowLevelBase = OpenLibrary("lowlevel.library", 37)) { val = SetJoyPortAttrs(1, SJA_Type, SJA_TYPE_GAMECTLR, TAG_END); Printf("SetJoyPortAttrs() returned %ldn", val); Delay(50); do { if(SetSignal(0,0) & SIGBREAKF_CTRL_C) { break; } for(cnt = 0; cnt < 4; cnt++) { val = ReadJoyPort(cnt); Printf("Port %ld: %08lx ", cnt, val); if(val & JPB_BUTTON_BLUE) { PutStr("2nd Button "); } } PutStr("n"); Delay(2); } while(TRUE); CloseLibrary(LowLevelBase); } return(0); } -- -- Best Regards Chris Hodges [ - Answer - Quote - Direct link - ] |
2006-06-15, 17:49 h Ralf27 Posts: 2779 User |
Die LowLevel scheint dafür wirklich genau richtig zu sein. Ich hab mir mal die Doku angesehn und da ist einiges möglich. @MaikG: Das scheint genau das richtig zu sein. Was für ein Game (vermute ich einfach mal) hast du denn gerade in der Entwicklung? Ich hab hier gerade ein CD32-Knochen in der Hand und überlege gerade ein uraltes Game von mir auf den meinen aktuellen Wissensstand zu heben. ... -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2006-06-15, 18:17 h MaikG Posts: 5172 User |
>Hä? >Ein Eingang ist etwas, wo Signale hereinkommen und durch einen >Ausgang gehen Signale heraus. >Joystick-Buttons sind draußen, ihre Signale kommen also herein. Tja, warum ist das so? Weil die Joystiknöpfe nach GND geschaltet werden. Dazu muss aber erst Spannung an den Pins liegen, was durch das auf "Ausgang" Schalten passiert. Man könnte warscheinlich auch +5Volt so reinschicken, aber da ich die Hardware vor der Software gebaut hatte, war das schlecht. >Allerdings. Und zwar so extrem einfach, dass man das >Hardware-Hacking echt vergessen kann. Und dann funktionierts auch >mit USB Joysticks Danke. Guck ich mir mal in Ruhe an. >Was für ein Game (vermute ich einfach mal) hast du denn gerade in >der Entwicklung? Gar keins, ich benötige nur 7 Signal-Eingänge und der Parallelport ist schon belegt... [ - Answer - Quote - Direct link - ] |
2006-06-15, 18:30 h Ralf27 Posts: 2779 User |
Ich hab das ganze eben in MaxonBasic programmiert und vollgendes festgestellt:code:if(val & JPB_BUTTON_BLUE) Läuft so nicht, außer wenn man JPF_BUTTON_BLUE schreibt. Dann läuft es auch mit den anderen Knöpfen. Oder überseh ich da jetzt was? -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2006-06-15, 18:31 h Holger Posts: 8116 User |
Zitat:Nein, das ist totaler Quatsch. Ausgang und Eingang sind Bezeichner für den Datenfluß, nicht für den Stromfluß. Glaubst Du nicht, daß die Konstrukteure des Amiga wußten, daß man eine Verbindung zu GND nur dann registrieren kann, wenn man eine Spannung anlegt? mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
2006-06-15, 18:36 h Holger Posts: 8116 User |
Zitat: Wenn die Bezeichner dem üblichen Schema entsprechen, liegst Du richtig. XXF_YYY ist der Flag-Wert, also genau das richtige für die AND-Verknüfung und XXB_YYY ist die Bitnummer, also (1<<XXB_YYY) == XXF_YYY mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
2006-06-15, 18:42 h MaikG Posts: 5172 User |
>Nein, das ist totaler Quatsch. Ausgang und Eingang sind Bezeichner >für den Datenfluß, nicht für den Stromfluß. Glaubst Du nicht, daß >die Konstrukteure des Amiga wußten, daß man eine Verbindung zu GND >nur dann registrieren kann, wenn man eine Spannung anlegt? Doch, aber das ist nunmal so, probier es einfach aus. [ - Answer - Quote - Direct link - ] |
2006-06-15, 18:53 h Holger Posts: 8116 User |
Zitat: Ist es nicht. Glaub es einfach, bislang hat noch niemand einen JoystickPort auf Ausgang geschaltet, um ihn zu lesen. Wenn es mit Deiner Hardwarebastelei nicht funktioniert, ist Deine Hardware fehlerhaft. Probier es einfach mal mit einem richtigen Joystick. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
2006-06-15, 19:56 h Ralf27 Posts: 2779 User |
Zitat: Ja, und somit läuft es recht einfach und flexsibel. Aber leider hat sich eben beim testen SFS auf der Startplatte verabschiedet und en haufen Müll hinterlassen denn ich erst beseitigen muß. Ich bekomm en Hals! Zum Glück hab ich eine "Nothintertür" eingebaut und wieder da, aber leider nicht ganz. So, wie bekomme ich jetzt SFS wieder hin. Da, dann darf ich mal wieder auf die Suche gehn. Leider ist auch mein großer seit einigen Monaten platt und ich komme da einfach nicht weiter. Langsam geht es da wohl auch bei mir zu Ende in Sachen lauffähige Amigas. -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2006-06-15, 20:35 h ylf Posts: 4112 User |
Zitat: So sieht's aus. Übrigens: alter TTL-Trick, es genügt den Eingang offen zu lassen, damit High erkannt wird. Sauberes Design ist dies zwar nicht, dazu müßte man noch einen Pull-Up dazu schalten. Bei einem TTL-Gatter fließt der Strom immer aus dem Eingang heraus, wenn dieser auf Low liegt. Das liegt daran, daß der Eingang nicht etwa die Basis eines Transistors ist, sondern der Emitter. bye, ylf [ - Answer - Quote - Direct link - ] |
2006-06-15, 21:54 h platon42 Posts: 400 [Former member] |
Zitat: So kommts, wenn man "schnell mal" nen Testsourcecode zusammenschustert... Natürlich muss es JPF_xxx heißen (oder val & (1<<JPB_xxx) ). Danke für den Hinweis -- -- Best Regards Chris Hodges [ - Answer - Quote - Direct link - ] |
2006-06-15, 22:13 h Ralf27 Posts: 2779 User |
Zitat: Ich vermute mal das dann der Hack sogar schwerer ist als der offizielle Weg. So kann man gerade 7 Buttons auf den CD32-Knochen recht einfach auswerten. -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2006-06-15, 22:16 h Ralf27 Posts: 2779 User |
Zitat: Gern geschehn. Und das werd ich vermutlich auch nicht vergessen, da gerade beim Testprogrammschreiben sich meine StartSFS-Platte verabschiedet hat. Aber ich schreib gerade über die Notplatte. Zja, auf die alten Tage werd ich auch immer vorrausschauender. Aber das ich bis jetzt kein SFSRepairtool gefunden habe, macht mich schon nachdenklich... -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
2006-06-15, 22:20 h platon42 Posts: 400 [Former member] |
Zitat: Es gibt einen Grund, warum meine Partition mit allen Entwicklungssachen und Sourcen in den unteren 4 GB der Platte liegt und FFS ist... Viel Glück und Erfolg! -- -- Best Regards Chris Hodges [ - Answer - Quote - Direct link - ] |
2006-06-15, 22:30 h Ralf27 Posts: 2779 User |
Zitat:Zja, diesmal war es wohl die Hitze. Mein Amiga ist leider auch nicht mehr Hitzeunempfindlich. Es hat ja mit der Datenparitition angefangen und erst mal hab ich en Schock bekommen. Und was macht man dann als erstes? Genau, Datensicherung. Dummerweise wollte ich diese auf die Startpartition machen (hat noch sehr viel Platz frei) und dann hab ich diese mit dem überhitzen Amiga wohl etwas verdellert. Das Ende vom Lied: Programmdaten vermutlich alle vorhanden und fehlerfrei, aber die Startpartition etwas (2 Fehlerhafte Dateien gefunden) lediert. Das dumme ist ja das seit einigen Monaten mein zweiter, großer Amiga1200T ganz und gar nicht mehr will und ich einfach nicht versteh was da abgeht. Da steh ich wirklich auf dem Schlauch. Da war das hier was kleineres, aber auch der Schock des Tages... Zitat: Danke, das kann ich bei beiden Amigas sehr gut gebrauchen! -- http://www.alternativercomputerclub.de.vu [ - Answer - Quote - Direct link - ] |
-1- 2 3 4 5 6 | [ - Post reply - ] |
amiga-news.de Forum > Programmierung > 2.+3.Joystikknopf Signale | [ - Search - New posts - Register - Login - ] |
Masthead |
Privacy policy |
Netiquette |
Advertising |
Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved. |