Autor Thema: Hatari auf Raspberry Pi - Tastaturproblem  (Gelesen 426 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline Count

  • Benutzer
  • Beiträge: 122
Hatari auf Raspberry Pi - Tastaturproblem
« am: So 24.11.2019, 19:52:06 »
Moin,

ich habe mit Hatari auf meinem Pi ein seltsames Tastaturproblem. Es handelt sich um eine vorinstallierte Version 2.0.0, bei der das Menü aufpoppt, wenn ich die Kleiner-Größer-Taste drücke. Ich habe es mit mehreren Tastaturen ausprobiert, immer das gleiche Phänomen.

Als Hotkey ist AltGr+F12 eingestellt, das funktioniert auch. Nur würde ich natürlich gerne die Kleiner-Größer-Taste zur Eingabe der entsprechenden Zeichen nutzen. Das checkkeys-Tool zeigt auch den richtigen Code (60=0x3c) für die Taste an. Hotkeys ohne Modifier habe ich gar nicht festgelegt.

Wenn ich Hatari mit der Option "--trace keymap" starte, werden alle Tastendrücke protokolliert, aber nicht die Kleiner-Größer-Taste. Auch ein Eintrag in einer Keymap-Tabelle hilft nicht weiter. Help und Undo konnte ich so problemlos auf F11 und F12 legen.

Hat einer eine Idee, was hier schief läuft.

Ich habe auch probiert Hatari selbst zu kompilieren (2.0.0 und 2.2.1), dann funktioniert die Taste auch wie gewünscht. Dafür bekomme ich beim Aufruf des Menüs Darstellungsfehler nach Mausklick und andere Tasten zeigen das unerwünschte Verhalten, u.a. die Umlauttasten.

Offline Count

  • Benutzer
  • Beiträge: 122
Re: Hatari auf Raspberry Pi - Tastaturproblem
« Antwort #1 am: Do 28.11.2019, 19:48:47 »
Update:

Diesen Absatz muss ich korrigieren:

Zitat
Ich habe auch probiert Hatari selbst zu kompilieren (2.0.0 und 2.2.1), dann funktioniert die Taste auch wie gewünscht. Dafür bekomme ich beim Aufruf des Menüs Darstellungsfehler nach Mausklick und andere Tasten zeigen das unerwünschte Verhalten, u.a. die Umlauttasten.

Die Effekte traten auf, weil ich Hatari gegen libSDL V1 kompiliert habe.

Heute habe ich die aktuelle SDL2 heruntergeladen, kompiliert und installiert und anschließend Hatari 2.0.0 und 2.2.1 nochmal kompiliert. Nun ist alles so, wie bei der vorinstallierten Version: Die Kleiner-/Größer-Taste ist ein scheinbar voreingestelltem Hotkey für das Hatari-Menü. Alle anderen Tasten funktionieren wieder wie gewünscht und die Darstellungsfehler im Menü sind auch nicht mehr da.

Kann mir keiner einen Tipp geben?  :(

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 666
Re: Hatari auf Raspberry Pi - Tastaturproblem
« Antwort #2 am: Do 28.11.2019, 21:04:21 »
Frag besser mal auf atari-forum.com nach, da lesen auch einige der Entwickler mit.

Offline mfro

  • Benutzer
  • Beiträge: 1.364
Re: Hatari auf Raspberry Pi - Tastaturproblem
« Antwort #3 am: Do 28.11.2019, 21:08:17 »
Update:

Diesen Absatz muss ich korrigieren:

Zitat
Ich habe auch probiert Hatari selbst zu kompilieren (2.0.0 und 2.2.1), dann funktioniert die Taste auch wie gewünscht. Dafür bekomme ich beim Aufruf des Menüs Darstellungsfehler nach Mausklick und andere Tasten zeigen das unerwünschte Verhalten, u.a. die Umlauttasten.

Die Effekte traten auf, weil ich Hatari gegen libSDL V1 kompiliert habe.

Heute habe ich die aktuelle SDL2 heruntergeladen, kompiliert und installiert und anschließend Hatari 2.0.0 und 2.2.1 nochmal kompiliert. Nun ist alles so, wie bei der vorinstallierten Version: Die Kleiner-/Größer-Taste ist ein scheinbar voreingestelltem Hotkey für das Hatari-Menü. Alle anderen Tasten funktionieren wieder wie gewünscht und die Darstellungsfehler im Menü sind auch nicht mehr da.

Kann mir keiner einen Tipp geben?  :(

Ich weiß es nicht und hätte auch erst mal das probiert, was Du schon gemacht hast.
Nachdem das Problem erst mit SDL2 aufgetaucht ist, solltest Du wahrscheinlich dort mal in die Sourcen schauen (und möglicherweise die mal selbst bauen)?
And remember: Beethoven wrote his first symphony in C

Offline mfro

  • Benutzer
  • Beiträge: 1.364
Re: Hatari auf Raspberry Pi - Tastaturproblem
« Antwort #4 am: Do 28.11.2019, 22:25:27 »
Schau' mal: https://www.lexaloffle.com/bbs/?tid=28066

Sieht ein wenig aus wie dein Problem.
And remember: Beethoven wrote his first symphony in C

Offline Count

  • Benutzer
  • Beiträge: 122
Re: Hatari auf Raspberry Pi - Tastaturproblem
« Antwort #5 am: Fr 29.11.2019, 18:26:24 »
Ja, das sieht wirklich auf den ersten Blick so aus wie mein Problem.

Aber er schreibt:
Zitat
As far as i understand it, it has to do with the keyboard handling of SDL. SDL seems to drop unknown keycodes.

Und das kann nicht sein, weil das Hatari-Menü ja aufpoppt. Außerdem funktioniert die Taste in ARAnyM einwandfrei. Und ARAnyM verwendet meines Wissens auch SDL.

Ich halte mich mal an Thorstens Rat.  ::)

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 666
Re: Hatari auf Raspberry Pi - Tastaturproblem
« Antwort #6 am: Sa 30.11.2019, 01:13:49 »
Und ARAnyM verwendet meines Wissens auch SDL.

Ja, allerdings meistens SDL1. Gibt aber auch ne SDL2 version. Schonmal Hatari mit SDL1 ausprobiert? Dann solltest du zumindest  feststellen können, ob es irgendein Problem mit der Systemweiten Tastatur-Einstellung ist, oder ein SDL-Problem.

PS: auch wenn beide SDL2 benutzen, muss dass nicht zangsläufig heissen, daß das Tastaturmapping das gleich ist. Siehe zb. https://github.com/aranym/aranym/blob/263212c3fbbdb2cd62cdc62b56a7e07340339a94/src/input.cpp#L533 die dort gemachte Abfrage bezieht sich auf die </> Taste, die auf US-Tastataturen nicht vorhanden ist.

Offline czietz

  • Benutzer
  • Beiträge: 2.230
Re: Hatari auf Raspberry Pi - Tastaturproblem
« Antwort #7 am: Sa 30.11.2019, 11:00:49 »
Um zu klären, als welche Taste Hatari die [</>]-Taste erkennt, folgende Idee: Im Hatari-Menü einmal auf "Keyboard" klicken und dann versuchen, diese Taste als Shortcut (egal für was) zu definieren. Welchen Namen zeigt Hatari dann an?

Offline Count

  • Benutzer
  • Beiträge: 122
Re: Hatari auf Raspberry Pi - Tastaturproblem
« Antwort #8 am: Sa 30.11.2019, 16:09:51 »
Es scheint an SDL zu liegen. Das Keyboard-Event, das Hatari von SDL geliefert bekommt, enthält in der Struktur SDL_keysym folgende Werte:

sym = 0
scancode = 100

Der Scancode von 100 ist korrekt (SDL_SCANCODE_NONUSBACKSLASH = 100), aber warum ist sym = 0? Dadurch liefert ShortCut_CheckKeys() true, Hatari findet aber keinen Shortcut mit dem Wert 0 und zeigt stattdessen als Fallback das Menü.

Offline czietz

  • Benutzer
  • Beiträge: 2.230
Re: Hatari auf Raspberry Pi - Tastaturproblem
« Antwort #9 am: Sa 30.11.2019, 16:15:47 »
Unter Windows habe ich hier (mit Hatari) sym = 60, was -- soweit ich das sehe -- SDLK_LESS ist, also der erwartete Wert.

Trotzdem ist die Frage, ob Hatari eine Taste ohne "symbolic key code" als Shortcut erkennen sollte. Müsstest Du mal mit den Hatari-Entwicklern diskutieren, ob es einen Grund dafür gibt.
« Letzte Änderung: Sa 30.11.2019, 16:19:17 von czietz »

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 666
Re: Hatari auf Raspberry Pi - Tastaturproblem
« Antwort #10 am: Sa 30.11.2019, 16:39:16 »
aber warum ist sym = 0?

Schon mal xev gestartet, und geschaut, was die Taste dort bei keycode und keysym liefert?


Edit: mit Windows lässt sich das Problem nicht vergleichen, dort wird ja ein anderer Event-Handler in SDL benutzt.

Edit2: scheint tatsächlich an SDL2 zu liegen.
https://hg.libsdl.org/SDL/file/b393fb36e61a/src/events/SDL_keyboard.c#l146

Die 0 in Zeile 147 wäre das Mapping für SDL_SCANCODE_NONUSBACKSLASH.

Müsste also in Hatari  gefixt werden, ähnlich der Abfrage in Aranym.
« Letzte Änderung: Sa 30.11.2019, 16:55:23 von Thorsten Otto »

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 666
Re: Hatari auf Raspberry Pi - Tastaturproblem
« Antwort #11 am: Sa 30.11.2019, 16:44:15 »
[delete] Wollte mich nicht selber zitieren ;)
« Letzte Änderung: Sa 30.11.2019, 16:54:42 von Thorsten Otto »

Offline Count

  • Benutzer
  • Beiträge: 122
Re: Hatari auf Raspberry Pi - Tastaturproblem
« Antwort #12 am: Sa 30.11.2019, 18:23:59 »
So, für mich persönlich habe ich es mit der Holzhammermethode hinbekommen:

Mit diesen drei Zeilen in src/keymap.c (Hatari) zu Beginn der Funktionen Keymap_KeyDown() und Keymap_KeyUp() jeweils nach dem ersten LOG_TRACE() funktioniert die Taste wie gewünscht. Aber das gilt natürlich nur für Tastaturen, auf denen diese Taste mit </> belegt ist.

if (symkey == 0 && sdlkey->scancode == 100) {
       symkey = sdlkey->sym = '<';
}

Offline Thorsten Otto

  • Benutzer
  • Beiträge: 666
Re: Hatari auf Raspberry Pi - Tastaturproblem
« Antwort #13 am: So 01.12.2019, 05:41:59 »
Aber das gilt natürlich nur für Tastaturen, auf denen diese Taste mit </> belegt ist.

Eigentlich nicht. Es geht nur darum daß Hatari den richtigen Scancode an den IKBD sendet, was TOS dann daraus macht steht auf einem anderen Blatt.