GMAMEUI startet unter Linux keine Spiele

Wer Linux benutzt, muss keineswegs auf Spiele verzichten, es gibt schließlich xmame, den universellen Emulator für Arcade-Spiele für Linux und seine zahlreichen Ableger.

Allerdings ist xmame ein Programm für die Kommandozeile, und das ist für viele Menschen ein erhebliches Hindernis. Zum Glück gibt es das GMAMEUI-Projekt, das eine hübsche graphische Oberfläche für den Start der MAME-Spiele zur Verfügung stellt:

So sieht die Oberfläche aus...

Leider muss ein deutschsprachiger Linux-Anwender zurzeit feststellen, dass GMAMEUI auf rätselhafte Weise seinen Dienst versagt. Große Teile des Programmes funktionieren reibungslos, es ist möglich, eine Liste der Spiele zu erzeugen, aber ausgerechnet der Start eines Spieles schlägt fehl, ohne dass auch nur eine Fehlermeldung ausgegeben wird. Und dabei hat man sich das Programm doch installiert, um Spiele starten zu können.

Ich habe mich mal darangesetzt, diesen Fehler zu analysieren und einen sehr einfachen Weg gefunden, wie GMAMEUI dazu gebracht werden kann, Spiele zu starten.

Ursache des Fehlers

Zunächst zur Ursache des rätselhaften Fehlers. GMAMEUI ist nicht etwa MAME mit etwas Oberfläche dazu, sondern „nur“ eine grafische Oberfläche, die dann das Kommandozeilenprogramm „xmame“ aufruft. Dabei werden die zusammengeklickten (und gespeicherten) Einstellungen für das jeweilige Spiel in einer langen Kommandozeile übergeben.

Und in dieser Kommandozeile steckt ein Fehler, wenn GMAMEUI zusammen mit deutschen Spracheinstellungen verwendet wird.

Für einige Werte, etwa die Helligkeitskorrektur, werden Zahlen mit Dezimalstellen übergeben. GMAMEUI formatiert diese Zahlen beim Zusammenstellen der Kommandozeile nach den im deutschen Sprachraum üblichen Konventionen und verwendet ein Komma als Dezimaltrenner, aber „xmame“ muss diese Zahlen mit einem Punkt als Dezimaltrenner erhalten. In vielen Sprachräumen wird dieses Problem nicht auftreten, und deshalb steckt der Fehler auch noch in GMAMEUI.

Lösung

Es ist möglich, in GMAMEUI anzugeben, an welcher Stelle die ausführbare Datei „xmame“ im Dateisystem liegt. Diese Einstellmöglichkeit findet sich unter Optionen/Verzeichnisse im Menü. Normalerweise liegt das Binary unter „/usr/games/xmame“.

Um das Problem zu beheben, schreibe man einfach ein kleines Shellskript mit dem Namen „mame-wrap“ (oder einem beliebigen anderen) und dem folgenden Inhalt:

filtered=`echo $@ | sed 's/\,/\./g'`
/usr/games/xmame $filtered

Natürlich muss „/usr/games/xmame“ an die verwendete Installation angepasst werden, an der Kommandozeile kann man mit „which xmame“ herausbekommen, wo das xmame-Binary liegt.

Dieses Shellskript speichern und die Dateirechte mit der Shell oder dem Dateimanager der eigenen Wahl so setzen, dass es auch ausgeführt werden kann.

Das war der schwierige Teil. Dieses Skript ersetzt in den Optionen einfach Kommas durch Punkte, und da nur für die Zahlen Kommas verwendet werden, korrigiert es die falsche Kommandozeile, die von GMAMEUI erzeugt wird. Wer keine Lust hat, das Shellskript selbst zu erstellen, kann gern meine Version verwenden oder an seine Linux-Installation anpassen.

Nun muss dieses Shellskript in GMAMEUI unter „Optionen/Verzeichnisse“ als „von MAME ausführbare Datei“ eingetragen werden, was nur ein bisschen Klicken erfordert. Wenn schon eine Spielliste erstellt wurde, ist eine Neuerzeugung der Liste nicht erforderlich, deshalb die Frage nach der Änderung der Einstellung verneinen, wenn schon eine Liste vorhanden ist.

Have fun!

Das war alles. Nun stehen die MAME-Spiele in einer leicht zu bedienenden graphischen Oberfläche zur Verfügung.

Übrigens: Ist es nicht schön, wie einfach man sich unter Linux mit kleinen Skripten um ärgerliche Schwächen großer Programme herumarbeiten kann? 😉

Leave a Reply

You must be logged in to post a comment.