GMAMEUI zum Laufen bringen

Wer Linux benutzt, muss keineswegs auf Spiele verzichten, es gibt schließlich XMAME, den universellen Emulator für Arcade-Spiele unter 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 diese 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 einer 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.

Diese Trennung steht übrigens in bester Unix-Tradition, und sie ermöglicht es auch, den Fehler zu beheben, ohne etwas an GMAMEUI zu verändern.

In der erzeugten 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 ist der Fehler in GMAMEUI wohl auch noch nicht behoben worden.

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 der Aufruf von /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? 😉

Dieser Beitrag wurde unter Allgemeines abgelegt und mit , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

1 Antwort zu GMAMEUI zum Laufen bringen

  1. Pingback: » Ich finde es ja toll, wenn Programmierer an eine … Nachtwächter-Blah

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.