KI-generiert
Kurz gesagt
Unter Linux holst du MAME am schnellsten aus dem Paketmanager, bekommst die neueste Version als Flatpak oder Eigenbau, und legst Konfiguration samt ROM-Pfad in ~/.mame ab statt in einen Programmordner.
Inhalt
Unter Windows lädst du ein selbstentpackendes Archiv und hast in Minuten einen fertigen Ordner. Unter Linux gibt es diesen einen offiziellen Download nicht, und genau das verwirrt viele Umsteiger. Dafür hast du hier gleich drei saubere Wege: das Paket deiner Distribution, eine aktuelle Flatpak-Version oder den Eigenbau aus dem Quellcode. Diese Anleitung zeigt dir alle drei, sagt dir ehrlich, welcher wann der richtige ist, und erklärt am Ende, wo unter Linux die Konfiguration und die ROMs hingehören. Wenn du bisher nur die Windows-Seite kennst, findest du den Windows-Guide hier.
Warum es unter Linux keinen Klick-Installer gibt
Das MAME-Projekt liefert auf seiner Release-Seite fertige Programmdateien nur für Windows. Für Linux gibt es offiziell den Quellcode, nicht das fertige Binary. Der Grund ist die Vielfalt der Distributionen: Ein einzelnes Kompilat läuft nicht überall gleich, deshalb übernehmen die Distributionen selbst das Bauen und Verteilen.
Der Emulator unter Linux basiert auf der SDL-Bibliothek, weshalb er lange als SDLMAME bekannt war. Heute ist das kein getrenntes Projekt mehr, sondern derselbe Quellcode, nur für den SDL-Unterbau gebaut. Die ausführbare Datei heißt schlicht mame, ohne .exe und ohne die Endung 64, die du vielleicht von Windows kennst. Ein grafisches Setup wie unter Windows gibt es nicht, du startest mame von der Kommandozeile oder aus einem Menüeintrag, und die interne Spieleauswahl ist dieselbe wie überall.
Kurz gesagt: Du installierst kein Programm im klassischen Sinn, du besorgst dir eine gebaute mame-Datei, egal ob aus dem Paketmanager, per Flatpak oder selbst kompiliert.
Der schnellste Weg: das Paket deiner Distribution
Fast jede große Distribution hat MAME im Repository. Damit bekommst du mit einem Befehl eine lauffähige Version, um die sich die Paketpflege kümmert:
- Debian und Ubuntu:
sudo apt install mame - Fedora:
sudo dnf install mame(das Paket kommt aus RPM Fusion, das du vorher aktiviert haben musst) - Arch und Manjaro:
sudo pacman -S mame - openSUSE:
sudo zypper install mame
Nach der Installation liegt mame im Systempfad, du startest es einfach mit dem Befehl mame in einem Terminal. Manche Distributionen legen zusätzlich einen Menüeintrag an.
Ein wichtiger Haken, den du kennen musst: Die Repository-Version hinkt der aktuellen MAME oft mehrere Ausgaben hinterher. Das ist relevant, weil ROM-Sets versionsgebunden sind. Ein Set, das für eine neuere MAME gedacht ist, wirft in einer älteren Version die Meldung über fehlende Dateien, und umgekehrt. Wenn du also gezielt aktuelle ROM-Sets nutzt, prüf mit mame -version, welche Ausgabe dein Paket mitbringt, und gleiche sie mit deinen Sets ab. Passt beides nicht zusammen, ist der Paketweg der falsche, dann nimm Flatpak oder den Eigenbau.
Flatpak: eine aktuelle MAME ohne Kompilieren
Flatpak ist der beste Kompromiss, wenn du eine frische Version willst, aber weder auf das Repository warten noch selbst bauen möchtest. Das Projekt pflegt eine offizielle Flatpak-Ausgabe auf Flathub. Mit eingerichtetem Flatpak und Flathub-Remote installierst du sie so:
flatpak install flathub org.mamedev.MAME
Gestartet wird die Anwendung mit flatpak run org.mamedev.MAME. Über denselben Aufruf hängst du auch Kommandozeilenoptionen an, zum Beispiel flatpak run org.mamedev.MAME -createconfig, um eine Konfigurationsdatei zu erzeugen.
Der einzige Stolperstein ist die Sandbox. Eine Flatpak-Anwendung sieht standardmäßig nur ihr eigenes Datenverzeichnis unter ~/.var/app/org.mamedev.MAME/. Deine ROMs an einem beliebigen anderen Ort, etwa unter ~/Spiele/roms, erreicht sie erst, wenn du ihr diesen Ordner freigibst. Das erledigst du bequem mit dem grafischen Werkzeug Flatseal oder auf der Kommandozeile:
flatpak override --user --filesystem=~/Spiele/roms org.mamedev.MAME
Danach trägst du diesen Pfad noch als rompath in die Konfiguration ein, dazu weiter unten mehr. Legst du deine ROMs dagegen direkt in das Datenverzeichnis der App, brauchst du diese Freigabe nicht.
Selbst kompilieren, wenn du die neueste Version brauchst
Willst du wirklich die tagesaktuelle MAME oder eine bestimmte Ausgabe passend zu deinen ROM-Sets, baust du sie aus dem Quellcode. Das ist unter Linux gut dokumentiert, kostet aber Zeit und Plattenplatz. Rechne mit mehreren Gigabyte für den Quellbaum und je nach Rechner mit einer halben bis mehreren Stunden Bauzeit.
Zuerst die Abhängigkeiten. Auf Debian und Ubuntu brauchst du unter anderem den Compiler und die SDL-Entwicklungspakete:
sudo apt install git build-essential python3 \
libsdl2-dev libsdl2-ttf-dev libfontconfig-dev libpulse-dev
Für den internen Qt-Debugger kommen die Qt-Entwicklungspakete dazu, die sind aber optional. Danach holst du den Quellcode und baust:
git clone https://github.com/mamedev/mame.git
cd mame
make -j$(nproc)
-j$(nproc) nutzt alle Prozessorkerne parallel, das verkürzt die Bauzeit deutlich. Mit make TOOLS=1 baust du zusätzlich die Hilfsprogramme wie chdman mit. Nach dem erfolgreichen Durchlauf liegt die fertige Datei ./mame direkt im Quellordner. Du kannst sie dort belassen und von dort starten oder an einen festen Ort verschieben. Die genauen Schritte je Distribution beschreibt die offizielle Kompilieranleitung.
Ordnerstruktur und mame.ini unter Linux
Hier liegt der größte Unterschied zu Windows. Unter Windows lebt alles in einem Ordner wie C:\mame. Unter Linux sucht MAME seine Konfiguration standardmäßig zuerst in einem versteckten Ordner in deinem Benutzerverzeichnis. Der voreingestellte INI-Pfad lautet $HOME/.mame;.;ini, MAME schaut also der Reihe nach in ~/.mame, dann im aktuellen Verzeichnis, dann im Unterordner ini.
Das gibt dir eine saubere Aufteilung. Leg dir das Konfigurationsverzeichnis an und erzeuge dort die Grundkonfiguration:
mkdir -p ~/.mame
cd ~/.mame
mame -createconfig
mame -createconfig schreibt die mame.ini in das aktuelle Verzeichnis, in diesem Fall also nach ~/.mame/mame.ini. Diese Datei enthält exakt die Optionsnamen deiner Version, verlass dich deshalb auf sie und nicht auf abgetippte Anleitungen aus dem Netz. Den ROM-Ordner legst du dir passend dazu an, etwa ~/.mame/roms, und trägst ihn in der mame.ini bei der Option rompath ein. Wie ROM-Pfad, BIOS-Dateien und CHD-Images zusammenspielen, erklärt der Guide zu rompath, BIOS und CHD, und die restlichen Optionen der Konfigurationsdatei behandelt der Guide zu mame.ini einstellen.
Ein angenehmer Nebeneffekt gegenüber Windows: Das leidige Rechteproblem entfällt weitgehend. Weil die Konfiguration in deinem eigenen Benutzerverzeichnis liegt und nicht unter einem systemweiten Programmordner, darf MAME dort ohne Sonderrechte schreiben. Die unter Windows üblichen Warnungen des SmartScreen-Filters gibt es unter Linux ohnehin nicht. Achte nur darauf, das Konfigurationsverzeichnis nicht in einen synchronisierten Cloud-Ordner zu legen, sonst kollidieren die Schreibzugriffe auf cfg und nvram.
Grafik, Vollbild und Controller unter Linux
Weil der Emulator auf SDL aufbaut, läuft die Bildausgabe sowohl unter X11 als auch unter Wayland. Der moderne BGFX-Renderer funktioniert plattformübergreifend, du stellst ihn wie überall über die Option video bgfx in der mame.ini ein, inklusive CRT-Shadern. Details dazu stehen im Guide zu CRT-Shadern und Scanlines. Sollte es unter Wayland zu Rucklern oder Problemen im Vollbild kommen, hilft oft, SDL vorübergehend auf X11 zu zwingen, indem du MAME mit gesetzter Variable SDL_VIDEODRIVER=x11 startest. Ob MAME im Fenster oder Vollbild startet, steuerst du wie überall über die Option window.
Beim Controller nimmt dir SDL die meiste Arbeit ab. Gängige USB-Gamepads und die typischen Zero-Delay-Encoder aus dem Arcade-Stick-Selbstbau meldet der Kernel als Eingabegerät, und MAME erkennt sie über SDL automatisch, ganz ohne Zusatztreiber. Auf modernen Distributionen sind die Rechte auf die Geräte unter /dev/input per udev bereits richtig gesetzt, du musst also normalerweise nichts anpassen. Die eigentliche Tastenbelegung legst du danach wie auf jeder Plattform im internen Tab-Menü fest, entweder global oder pro Spiel. Wie dieses Menü funktioniert, zeigt der Guide zum Tab-Menü und den Eingaben.
Wenn dein erstes Spiel läuft, unterscheidet sich der Alltag mit MAME unter Linux kaum noch von dem unter Windows. Die interne Oberfläche, das Tab-Menü, die mame.ini und die ROM-Logik sind identisch, nur der Weg zur fertigen mame-Datei und der Ort der Konfiguration sind andere.
Belege und weiterführende Quellen: die offizielle MAME-Dokumentation zu Ersteinrichtung und Pfaden, die Kompilieranleitung sowie die MAME-Seite auf Flathub.
mame.app ist unabhängig und erhält für Empfehlungen kein Geld. Angaben zum Recht sind eine allgemeine Einordnung, keine Rechtsberatung. Software und Rechtslage können sich ändern.
Passende Guides
- MAME-Grundlagen
KI rompath, BIOS und CHD in MAME verstehen rompath, BIOS und CHD einfach erklärt: Warum eine mame chd datei neben das ZIP gehört, wozu BIOS-ROMs und Samples dienen und wohin die Ordner müssen. - MAME-Grundlagen
KI mame.ini richtig einstellen und optimieren So kannst du die mame.ini einstellen ohne dich zu verzetteln: nur Pfade, Video und Eingabe anfassen, Pro-Spiel-INIs nutzen und Fehler zurücksetzen. - MAME-Grundlagen
KI MAME unter Windows installieren und einrichten MAME unter Windows installieren: offiziellen Build entpacken, ROM-Pfad setzen und das erste Spiel über die interne Auswahl starten, ganz ohne Kompilieren.