Spiele


Der Raspberry Pi eignet sich natürlich auch als Spielkonsole. Dabei gibt es verschiedene Ansätze, die ihr verfolgen könnt. Ich möchte hier die verschiedenen Möglichkeiten kurz erläutern:

Die Linuxspiele installiert ihr unter Raspbian mit sudo apt-get install (Name des Spiels) genauso wie Programme.

Für RetroPie und Recalbox findet ihr im Internet sehr viele Seiten, die sich mit diesen Projekten beschäftigen.

Ich werde hier ausführlich erläutern, wir man DOSBox installiert und einrichtet.

Ich setzte voraus, dass ihr ein aktuelles Raspbian Stretch auf eurem Raspi installiert habt, wie ich es im Kapitel Mediaplayer beschrieben habe.


Installation:


Öffnet auf eurem Raspi ein Terminal:

 sudo apt-get install dosbox

DOSBox wird folgendermassen gestartet:

RaspbianMenue => Spiele => DOSBox Emulator

Beim ersten Programmstart wird im Unterverzeichnis /home/pi/.dosbox die Konfigurationsdatei dosbox-Version.conf mit Standardeinstellungen angelegt (Version steht für die jeweilige DOSBox-Version). Eine vollständige Dokumentation mit allen Einstellungsmöglichkeiten findet ihr hier.

Das DOSBox Terminal beendet ihr mit:

 exit

Um DOSBox auf Deutsch und mit dem deutschen Tastaturlayout zu starten, benötigt ihr das deutsche Sprachpaket.

Dieses Paket findet ihr auf https://www.dosbox.com/download.php?main=1.

Dort klickt ihr unter dem Menuepunkt Translations auf German languagefile+Readme und ladet die Datei auf euren Rechner. Entpackt die Zip-Datei in den Ordner /home/pi/.dosbox.

Darin befindet sich eine angepasste dosbox-Version.conf Datei, in der die Einstellungen schon vorhanden sind. Die originale Konfigurationsdatei wird dabei überschrieben.

Jetzt müssen wir noch das Tastaturlayout einrichten. Dazu ändert ihr in der dosbox-Version.conf die Zeile:

keyboardlayout=auto

in

Keyboardlayout=gr

Als nächstes erstellen wir ein Laufwerk c: unter dem wir die Spiele installieren. Dazu geben wir im Terminal ein:

 mkdir -p ~/.dosbox/drive_c

Dieses neu erstellte Unterverzeichnis wird unter DOSBox als Laufwerk c: eingebunden.

Ihr geht in der dosbox-Version.conf ans Ende der Datei und gebt im Abschnitt [autoexec] folgendes ein:

[autoexec]
mount c ~/.dosbox/drive_c
c:

Nun konfigurieren wir noch Midi. Dazu sucht ihr in der dosbox-Version.conf den Abschnitt [midi] und gebt folgende Werte ein:

mpu401=intelligent
mididevice=alsa
midiconfig=128:2

Datei speichern und die Konfiguration ist abgeschlossen.


Eine Anmerkung zur Bildschirmauflösung:

In der dosbox-Version.conf ist es möglich die Bildschirmauflösung zu ändern. Das funktioniert unter Raspbian nicht.
Für eine Änderung der Bildschirmauflösung muss Raspbian rebootet werden.

Wie wirkt sich die Bildschirmauflösung auf ein Spiel aus?

Ich erkläre es mal mit einem Beispiel. Ihr habt unter Raspbian als Bildschirmauflösung die Default Einstellung eures TV-Gerätes gewählt. Ich besitze noch einen alten Plasma Fernseher. Das wäre dann in meinem Fall eine Auflösung von 1024 * 768 Bildpunkten. Alte DOS-Spiele waren nicht hochauflösend und oftmals in der Auflösung 640 * 480 programmiert. Wenn ihr das Spiel jetzt startet wird es relativ klein auf eurem Bildschirm zu sehen sein. Würdet ihr eine geringere Auflösung z. B. 720 * 480 für Raspbian wählen, wird das Spiel auf dem Bildschirm wesentlich grösser erscheinen.

Um das Spiel nun in einer ordentlichen Grösse auf dem Bildschirm zu spielen, gehe ich folgendermassen vor:

Ich habe in der dosbox-Version.conf unter [sdl] folgendes eingestellt:

[sdl]
fullscreen=true
fullresolution=original

Nun startet DOSBox direkt im Fullscreen Modus und übernimmt die bei Raspbian eingestellte Auflösung. Für ein
DOS-Spiel ändere ich die Auflösung:

RaspbianMenue => Einstellungen => Raspberry-Pi-Konfiguration => Auflösung festlegen

Hier ändere ich die Einstellungen auf die schon erwähnten 720 * 480 Bildpunkte

Nach der Auswahl möchte das System neu booten. Nach dem Reboot kann ich nun DOSBox nahezu formatfüllend auf dem TV Gerät öffnen.

Wenn ihr auf die normale Bildschirmauflösung zurück wechseln möchtet kann es sein, dass euch im Einstellungsmenue z.B. der OK Button nicht mehr angezeigt wird (wegen der geringen Auflösung, werden nicht mehr alle Elemente des Dektops angezeigt). Um das zu umgehen, ändere ich die Auflösung mit der raspi-config. Terminal öffnen:

 sudo raspi-config

In diesem Konfig Menue geht ihr auf:

Advanced Options => Resolution

Dort könnt ihr wieder die Default Einstellung auswählen. Nach Bestätigen mit <OK> wird auch hier ein Reboot durchgeführt.


Spiele installiert ihr folgendermassen:

Ihr ladet euch die Zip-Datei mit dem Spiel herunter. Entpackt das Spiel in euer Download Verzeichnis. Nun erstellt ihr ein neues Verzeichnis für dieses Spiel auf dem Terminal des Raspi's. Wir nennen es einmal racing:

 mkdir ~/.dosbox/drive_c/racing

In dieses Verzeichnis kopiert ihr die entpackten Dateien, bzw. Ordner.

Wenn ihr DOSBox öffnet, seht ihr den Prompt C:\>.

Alle DOS-Spiele lassen sich mit der Tastatur steuern. Besser wäre natürlich ein Joystick, oder noch besser ein Game Pad. Richtig gut eignet sich dafür ein Xbox One Controller, weil er optimal von Raspbian Stretch unterstützt wird. Ich empfehle einen Originalcontroller zu verwenden, weil Nachbauten teilweise nicht richtig funktionieren.

Es gibt den Xbox One Controller für Windows auch mit einem USB Stick zu kaufen. Der USB Stick stellt unter Windows die Verbindung zum Computer her. Unter Raspbian funktioniert er nicht. Wenn ihr einen Raspi 3 besitzt, ist eine Bluetooth Schnittstelle schon integriert. Für einen Raspi 2 müsst ihr euch einen handelsüblichen Bluetooth USB Stick besorgen. Über Bluetooth verbindet sich der Controller dann mit dem Raspberry Pi.


Installation Xbox One Controller:

Ich beschreibe jetzt die Installation mit einem Raspi 2, einem Bluetooth Stick und einem Xbox One Controller.

Zur Unterstützung des Controllers werden 2 Module benötigt. Einmal das Kernelmodul joydev (dieses Modul wird automatisch beim Starten von Raspbian geladen), und zusätzlich das Modul xpad. Dieses Modul müsst ihr selbst laden. Entweder bei jedem Systemstart im Terminal mit:

 sudo modprobe xpad

oder ihr fügt es in die Datei /etc/modules ein. Dann wird es beim Start von Raspbian automatisch geladen:

 sudo nano /etc/modules

An das Ende der Datei fügt ihr ein:

 xpad

Datei speichern und Raspbian rebooten.

Die geladenen Kernelmodule kann man sich anschauen mit:

 lsmod


Steckt nun den Bluetooth Stick in einen freien USB Port eures Raspi's. Die Module zur Bluetooth Unterstützung werden automatisch geladen. Ihr braucht hier nichts weiteres zu installieren.
Sollte die Verbindung nicht zustande kommen und mit einer Fehlermeldung abbrechen, öffnet ein Terminal:

 sudo apt install sysfsutils

Nachdem wir das Programm sysfsutils installiert, haben öffnen wir die Konfig-Datei:

 sudo nano /etc/sysfs.conf

Nun fügen wir am Ende der Datei folgendes ein:

 module/bluetooth/parameters/disable_ertm = 1

Speichert die Datei und macht einen Reboot. Nach dem Reboot dauert es wieder etwas, bis das Bluetooth Symbol blau leuchtet. Klickt wieder auf das Symbol und ihr seht unten den Menuepunkt Xbox Wireless Controller. Wenn ihr mit der Maus darüber fahrt könnt ihr euch über Connect... verbinden. Sollte der Xbox Controller nicht angezeigt werden, führt noch einmal Add Device.. aus. Nun verbindet sich Raspbian mit dem Controller.

Zukünftig verbindet sich der Controller automatisch mit dem Raspi. Nach dem Start von Raspbian warten bis das Bluetooth Symbol blau leuchtet, dann den Controller einschalten. Die Verbindung wird ohne weiteres Zutun hergestellt.

Um die Verbindung zu trennen: Controller auschalten.


Controller konfigurieren:


Dazu installieren wir das Programm joystick:

 sudo apt-get install joystick

Die Gerätedateien zu den Eingabegeräten liegen immer im Verzeichnis /dev/input/. Die korrekte Gerätedatei zu unserem Xbox Controller lautet /dev/input/js0. Kontrollieren könnt ihr das mit dem Befehl:

 cat /proc/bus/input/devices

Da werden euch alle angeschlossenen und erkannten Eingabegeräte angezeigt.
Interessant ist N: Name und H: Handler.

Unter Name: seht ihr den Namen eures Controllers und unter Handler: die Gerätedatei.


Controller kalibrieren:


 jscal -c /dev/input/js0

Nachdem das Programm gestartet wurde versucht es die Achsen und Tasten des Controllers zu erkennen. Währenddessen sollte der Controller nicht berührt werden. Nach einer kurzen Zeit erfolgt folgende Aufforderung:

Move axis 0 to minimum position and push any button

Ihr müsst jetzt die einzelnen Achsen in Minimum Mittel und Maximumposition bringen und jeweils mit einem beliebigen Button bestätigen. Die Minimum und Maximumposition erkennt ihr anhand der Zahlenwerte.

Achse 0 = linkerJoystick in x-Richtung
Achse 1 = linker Joystick in y-Richtung
Achse 2 = linker Trigger
Achse 3 = rechter Joystick in x-Richtung
Achse 4 = rechter Joystick in y-Richtung
Achse 5 = rechter Trigger
Achse 6 = Steuerkreuz in x-Richtung
Achse 7 = Steuerkreuz in y-Richtung

Am Ende der Prozedur speichert jscal die ermittelten Daten. Die Kalibrierung bleibt nur solange erhalten, bis die Verbindung vom Controller zu Raspbian beendet wird. Wollt ihr die Daten dauerhaft speichern, gebt im Terminal folgendes ein:

 jscal-store /dev/input/js0

Die Speicherung erfolgt in der Datei /var/lib/joystick/joystick.state.

Wollt ihr nach einem Neustart des Systems die Kalibrierungsdaten wieder laden, macht ihr das mit:

 jscal-restore /dev/input/js0

Zum Testen der Kalibrierung könnt ihr das Programm jstest verwenden:

 jstest /dev/input/js0

Hier seht ihr, wie sich die Zahlenwerte beim Bewegen der Joysticks ändern, und die Buttons beim Drücken erkannt werden.

Beendet wird das Programm mit der Tastenkombination <Strg> + <C>.


Das Programm joystick besitzt auch ein grafisches Frontend. Das installiert ihr mit:

 sudo apt-get install jstest-gtk

Ihr findet das Programm unter:

RaspbianMenue => Systemwerkzeuge => jstest-gtk


Jetzt wollen wir den Controller natürlich auch in Spielen nutzen. Dazu müsst ihr im jeweiligen Spiel die Joystickunterstützung aktivieren. Dann könnt ihr vielleicht aber nicht die Achsen und Buttons des Controllers nutzen, die ihr eventuell bevorzugt. Um das zu ändern gibt es Mapper Programme. MIt Hilfe eines Mapperprogramms ist es möglich die Achsen und Buttons des Controllers mit den Tasten der Tastatur zu belegen.

So kann man z.B. die Pfeiltasten der Tastatur auf die Achsen des Xbox One Contollers zu übertragen.


Ich stelle hier 3 Möglichkeiten vor:


Mit jstest-gtk kann man die Reihenfolge der Achsen und Buttons verändern. Geht auf Mapping und ihr seht die Achsen und Buttons des Controllers in aufsteigender Reihenfolge. Klickt eine Achse oder einen Button mit der Maus an, haltet den linken Mausknopf gedrückt und verschiebt die Achsen (Buttons) nach oben oder unten.

Um dies nutzen zu können, müsst ihr in dem jeweiligen Spiel die Joystickunterstützung aktiviert haben. Das Spiel wird immer den linken Joystick auf dem Controller ansprechen (Achsen 0 und 1). Wollt ihr aber den rechten Joystick nutzen, verschiebt im Mapping die Achsen 3 und 4 nach oben. Jetzt könnt ihr den rechten Joystick nutzen. Die Buttons lassen sich genauso verschieben. Diese neue Konfiguration könnt ihr natürlich wie oben beschrieben mit jscal-store und
jscal-restore speichern und wieder laden.


Bei den nächsten 2 Möglichkeiten muss die Joystickunterstützung in Spielen, bzw. unter DOSBox deaktiviert sein. In jedem Spiel gibt es einen Config Menuepunkt, um den Joystick zu aktivieren oder zu deaktivieren. Unter DOSBox deaktiviert ihr die Joystickunterstützung wie folgt:

Ihr geht in der dosbox-Version.conf zum Abschnitt [joystick] und ändert folgendes:

joysticktype=none


DOSBox bietet die Funktion Keymapper an. Die Konfiguration wird in der Datei mapper.txt im Verzeichnis /home/pi/.dosbox gespeichert. Wenn ihr dem Link folgt, wird dort genau erläutert, wie das gemacht wird. Keymapper startet ihr unter DOSBox mit derTastenkombination <Strg> + <F1>.

Das Problem bei dieser Methode besteht darin, dass DOSBox mit maximal 4 Achsen arbeiten kann. D. h., ihr könnt nur die Achsen von 0 bis 3 belegen. Eine Achsenbelegung für 4 und 5 ist nicht möglich. Ihr könnt den rechten Joystick somit nicht in y-Richtung bewegen, und den rechten Trigger auch nicht. Das ist für einen Rechtshänder schwierig, da der Joystick ja normalerweise mit der rechten Hand bedient wird.

Die dritte Möglichkeit hat diese Einschränkung nicht. Ihr müsst dazu nur das Programm QJoyPad installieren:

 sudo apt-get install qjoypad

Wir starten QJoyPad folgendermassen:

RaspbianMenue => Spiele => QJoyPad

Oben auf eurem Desktop wird nun das QJoyPad Symbol abgelegt. Wenn ihr es mit der Maus anklickt, öffnet sich das Einstellungsmenue. Am einfachsten funktioniert das Mapping so:
Ihr könnt somit für jedes Spiel ein individuelles Layout anlegen. Die Konfig-Dateien werden im Verzeichnis /home/pi/.qjoypad3 gespeichert.

Zum Spielen muss QJoyPad natürlich geöffnet bleiben. Um das Programm in den Hintergrund zu legen klickt auf den Button Close Dialog. Mit Quit wird QJoyPad beendet. Wenn ihr mit der Maus über das Symbol auf dem Desktop geht und die rechte Maustaste drückt könnt ihr ein gespeichertes Layout direkt anwählen.

QJoyPad funktioniert sowohl unter Raspbian, als auch unter DOSBox.




Hier geht es zurück zum Inhalt.