XMAME/XMESS DOKUMENTATION: Xmame häufig gestellte Fragen
Weiter Zurück Inhalt

3. XMame häufig gestellte Fragen (FAQ)

3.1 Was ist Mame?

Mame ist ein Emulator für die Arcade-Maschinen aus den Spielhallen. Nicola Salmoria begann 1997 mit Mame. Es entstandaus einer ganzen Reihe Emulatoren, die für jeweils nur ein Spiel geschrieben worden waren. Diese Einzelemulatoren wurdenkombiniert zu einem "Multispiele Emulator". Dies ist dieaktuelle Form von Mame, kein Projekt eines Einzelnen, sondernes arbeiten über 100 Personen daran.

Mame wurde geschaffen von Nicola Salmoria.

Siehe auch das offizielle Mame Readme (readme.mame)

3.2 Was ist Mess?

Mess ist, wie Mame, ein Emulator für virtuelle Maschinen. Im Unterschied zu Mame emuliert Mess Computer und Konsolen.

Sieh auch das offizielle Mess Readme (readme.mess)

3.3 Was sind XMame/XMess?

Xmame/Xmess sind die Unix/X11-Portierungen des Mame- undMessprojektes. Somit sind Mame/Mess verfügbar auf*ix-Maschinen, die XWindows X11R6 unterstützen(ebenfalls SVGAlib/ggi/XF86-DGA/OpenGL/SDL).

Die erste Mame-Konvertierung stammt von Allard Van Der Bas,Dick the Ridder, Juan Antonio Marmnez und Hans de Goede..

XMame/XMess wird zur Zeit gepflegt von Lawrence Gold.

3.4 Was sind die Unterschiede zwischen Mame/Mess and XMame/XMess?

Keine wesentlichen.

Xmame/Xmess basieren auf dem Sourcecode von Mame/Mess.Aus technischen Gründen, die den Rahmen dieses Dokumentssprengen würden, kann der Mame/Mess-Sourcecode nicht unterUnix übersetzt werden.Deshalb existiert das Xmame/Xmess-Projekt. Jedes mal, wennMame/Mess upgedatet wird, wird das Coding unter Unix getestet(und gepatched, falls dies nötig ist). Somit sind dieXmame-/Xmess-Releases immer auf dem selben Stand, wie dieOriginale.

Es existieren keinerlei Pläne für eine unabhängigeEntwicklung von Xmame/Xmess.

3.5 Welche Hardware und welche Betriebssysteme werden unterstützt ?

XMame läuft auf Low-End und auf High-End CPU's, benutzt aligned Integer-Zugriff wenn nötig und ist auchcompatibel mit 64-bit CPU's. Die aktuelle Liste der unterstützten CPU's im Makefile ist:

  • i386 + gnu-asm
  • i386 no asm
  • Alpha
  • ia64 (merced)
  • m68k
  • generic risc (PowerPC, Sparc, HPPA, IBM)
  • generic risc, lsb-first (RISC (Ultrix Maschinen))
  • mips (generic risc + SGI compiler bug workarounds)

Das Hinzufügen von Unterstützung anderer CPU's (falls nötig) sollte einfach sein.

Die folgenden Unix-Plattformen werden im Speziellen unterstützt:

  • Linux
  • FreeBSD
  • NetBSD
  • Solaris (SunOS)
  • OpenStep (nur noasm auf  i386)
  • IRIX mit Sound bei Verwendung des dmedia Paketes oder des neuen al Paketes (Sound funktionert derzeit noch nicht)
  • AIX (Sound funktioniert derzeit nicht)
  • generic Unix, kein Sound

Der Eintrag "generic unix" sollte für jedes Standard Unixfunktionieren, aber kein Sound, da derzeit kein einziger Standard für Sound unter Unix existiert.

Auf allen Plattformen wird nun zlib benötigt, weil die DOS-Versiondies nun auch benutzt. Wenn Du die zlib nicht hast, dann kannst Dudie mitgelieferte benutzen. Es müssen nur die betreffenden Zeilenim Makefile auskommentiert werden.

Die folgenden Anzeigearten werden unterstützt, wobei X11 alsEinzige auf allen Plattformen läuft, ausser OpenStep, wo nur die OpenStep Bitmaps funktionieren:

  • X11 (X-Window System)
  • SVGAlib
  • GGI (Generic Graphics Interface)
  • OpenGL mit X11 für die Eingabe
  • Glide mit X11 für die Eingabe (3DFX)
  • Glide mit SVGAlib für die Eingabe (3DFX)
  • OpenStep Bitmaps
  • SDL (Simple Direct Medialayer)

Die folgenden Kombinationen aus Architektur/BS/Anzeige werden derzeit aktiv unterstützt. Bitte an den jeweilsZuständigen Mailen, wenn Probleme mit einer bestimmtenKombination aus Architektur/BS/Anzeige beim Übersetztenoder anderen Problemen auftreten. Eine Mail an Lawrence gold@aros.net bei allgemeinen Problemen (z.B. X11).

* Dies wird bei der Benutzung des Eintrages "generic unix" im Makefile unterstützt und bietet keinen Sound.

Wir suchen immer nach Leuten, die neue Kombinationen ausArchitektur/BS/Anzeigeart testen und auch aufkommende Fragendazu beantworten können. Dies kostet nicht viel Zeit undkann anderen Leute enorm weiterhelfen. Wenn Du Interesse hast,dann eine Mail an Lawrence gold@aros.net.

3.6 Mein Betriebssystem wird unterstützt, aber XMame/XMess bringen Fehler und brechen ab. Warum ?

Xmame/Xmess sollten laufen in einem 8bpp Pseudo-Farben-Display und in einem 16, 24 oder 32bpp True Color Display.Wenn der X-Server keine dieser "Displays" unterstützt, dannwird Xmame/Xmess auch nicht funktionieren.

Um herauszufinden, was der X-Server unterstützt, kann mandas Tool xdpyinfo benutzen. Mehr Info auf der Manpagevon xdpyinfo.

3.7 Wozu brauche ich die Dateien xmamerc/xmessrc ?

Ein Aufruf von Xmame/Xmess kann so aussehen:

    xmame pacman -sound -nojoy -frameskip 2 -heightscale 3 \   
        -widthscale 2

Meist wird man die gleiche Einstellung für jedes Spielnutzen.Xmame/Xmess liest diese Datei für dieGrundeinstellungen der Parameter, die gesetzt werden können.Auf diese Weise müssen nur die Parameter beim Aufrufangegeben werden, die überschrieben werden sollen. 

Ein anderer Grund für xmamerc/xmessrc ist die Umbelegungvon Tasten. Einige Unix-Tastaturen weichen stark vonPC-Tastaturen ab. Um dies abzufangen, kann man inxmamerc/xmessrc Tasten belegen/umbelegen, die aufUnix-Tastaturen nicht vorhanden sind.

3.8 Was ist die Syntax in den Dateien xmamerc/xmessrc ?

Die Syntax ist recht einfach:

   "Schlüsselwort Wert"

Siehe auch in xmamerc.dist für die meisten derSchlüsselwörter. Fast alle Kommandozeilen-Optionenkönnen als Schlüsselwörter (ohne das -) benutzt werden,benutze einfach den Wert 0 oder 1 für Kommandozeilen-Optionen, die als Gegenstück die verneinende Option (-no[option]) haben.Üblicherweise beginnen Kommentarzeilen mit einem "#".

Du kannst natürlich eine Konfigurationsdatei erstellen mit allen Einstellungen. Eine Vorlage kann erzeugt werden mit

   xmame -showconfig > ~/.xmame/xmamerc

3.9 Wo müssen roms, images, samples, highscores, configfiles, usw. hin?

Roms/Samples

Xmame/Xmess suchen in einem durch ":" getrennten Pfadnach Roms/Samples/Artwork. 

Der Defaultpfad ist XMAMEROOT und wirdwährend des Compilierens gesetzt im Makefile. 

Dieser Pfadkann durch einen beliebigen Pfad in xmamerc/xmessrc überschrieben werden. Dies kann wiederum durch die Kommandozeilen-Option -rompath überschrieben werden.

Xmame/Xmess durchsuchen jedes Verzeichnis in dieser Pfadangabenach Roms/Samples auf folgende Weise:

    <dir>/spielname.zip              (enthält Dateiname.ext)
    <dir>/spielname/dateiname.ext
    <dir>/spielname/dateiname.ext.gz (enthält Dateiname.ext)
    <dir>/spielname/dateiname.zip    (enthält Dateiname.ext)

Ein Beispiel: es wird nach der Datei rom0001.1 gesucht, dieein Teil des Spiels Pacman ist. Xmame/Xmess suchen in jedemVerzeichnis des Suchpfades nach:

    <dir>/pacman.zip               (enthält rom0001.1)
    <dir>/pacman/rom0001.1
    <dir>/pacman/rom0001.1.gz      (enthält rom0001.1)
    <dir>/pacman/rom0001.zip       (enthält rom0001.1)

Bemerkung: Wenn Deine NeoGeo-Spiele die Datei neogeo.rom nicht finden,dann kopiere es in ein Verzeichnis namens neogeo im Suchpfad nach Romsoder packe es in die Datei neogeo.zip im Suchpfad nach Roms.

Lesen/Schreiben von Disketten-Images

Diese Sektion betrifft nur XMess, dass das Lesen/Schreiben auf Disketten-Images unterstützt und dabei versucht das Image zum Lesen/Schreiben zu öffnen.

XMess sucht zuerst nach den Images mit dem Namen, der in der Kommandozeile eingegeben wurde:

    <path>/image.ext

Dabei ist path der Pfad zu dem Image. Auf diesem Weg können auch absolute und relative Dateinamen benutzt werden von der Kommandozeile aus, die nicht im Suchpfad nach Images sind.

Dann sucht XMess jedes Verzeichnis im Suchpfad für roms/samples auf folgende Art und Weise:

    <dir>/image.ext

Bemerkung: beim Lesen/Schreiben von Images darf das Image nicht gepackt sein.

Rom Cartridges/Read Only Disketten Images

XMess beginnt die Suche nach Cartridges/Disketten vom aktuellen Verzeichnis aus folgendermaßen:

    <path>/image.ext
    <path>/image.ext.gz            (enthält image.ext)
    <path>/image.zip               (enthält image.ext)

Dabei ist path der Pfad zu dem Image. Auf diesem Weg können auch absolute und relative Dateinamen benutzt werden von der Kommandozeile aus, die nicht im Suchpfad sind.

Dann durchsucht XMess jedes Verzeichnis im Suchpfad für Cartridges/Images auf folgende Art und Weise:

    <dir>/image.ext
    <dir>/image.ext.gz             (enthält image.ext)
    <dir>/image.zip                (enthält image.ext)


Abschließend sucht XMess im Rompfad wie oben beschrieben mit dem Systemtyp nach dem Spielenamen.

Beispiel: Wir wollen mario.nes spielen mit der NES Emulation von XMess. Wir würden dann eintippen: "xmess nes mario.nes". XMess beginnt die Suche im aktuellen Verzeichnis nach

    mario.nes
    mario.nes.gz                   (enthält mario.nes)
    mario.zip                      (enthält mario.nes)

Danach sucht Xmess in jedem Verzeichnis Deines Rompfades nach

    <dir>/mario.nes
    <dir>/mario.nes.gz             (enthält mario.nes)
    <dir>/mario.zip                (enthält mario.nes)

Abschließend sucht XMess in jedem Verzeichnis Deines Rompfades nach

    <dir>/nes.zip                  (enthält mario.nes)
    <dir>/nes/mario.nes
    <dir>/nes/mario.nes.gz         (enthält mario.nes)
    <dir>/nes/mario.zip            (enthält mario.nes)

Da XMess zuerst im aktuellen Verzeichnis nach Cartridges/Disketten sucht, kann auch eine Cartridge/Diskette angegeben werden, die nicht im Rompfad ist. Beispielsweise:

    "xmess nes ../mario.nes"

XMess sucht nach

    ../mario.nes
    ../mario.nes.gz                (enthält mario.nes)
    ../mario.zip                   (enthält mario.nes)

und wird ebenfalls den gesamten Rompfad wie oben beschrieben nach ../mario.nes als Dateiname durchsuchen. Aber das ist nicht sonderlich hilfreich.

Artwork

XMame/XMess durchsuchen jedes Verzeichnis im Rompfad nach Artwork auf folgende Art und Weise:

    <dir>/artwork.png
    <dir>/artwork.png.gz           (enthält artwork.png)
    <dir>/artwork.zip              (enthält artwork.png)

Dann suchen XMame/XMess im Rompfad wie bei Roms/Samples.

Beispiel: Wir wollen foo spielen, dass bar.png nutzt. XMame/XMess beginnen die Suche in jedem Verzeichnis des Rompfades nach

    <dir>/bar.png
    <dir>/bar.png.gz               (enthält bar.png)
    <dir>/bar.zip                  (enthält bar.png)

Danach suchen XMame/XMess in jedem Verzeichnis des Rompfades nach

    <dir>/foo.zip                  (enthält bar.png)
    <dir>/foo/bar.png
    <dir>/foo/bar.png.gz           (enthält bar.png)
    <dir>/foo/bar.zip              (enthält bar.png)

XMame Configuration

Xmame sucht nach den folgenden Konfigurationsdateien und wertet jede,die gefunden wird, aus. Somit kann eine später ausgewerteteKonfigurationsdatei die Optionen einer früher gelesenen überschreiben:

    XMAMEROOT/xmamerc
    XMAMEROOT/xmame-DISPLAY_METHODrc
    ${HOME}/.xmame/xmamerc
    ${HOME}/.xmame/xmame-DISPLAY_METHODrc
    ${HOME}/.xmame/rc/<gamename>rc

XMAMEROOT wird während des Übersetzens gesetzt, siehe Makefile.

ANZEIGE_METHODE (DISPLAY_METHOD), für die XMame übersetzt wurde, dies kann sein: x11, svgalib, ggi, xgl, xfx, svgafx, openstep oder SDL.

Für XMess natürlich einfach XMame durch XMess ersetzen ;-)

Spiele Configuration

Die Dateien zur Spiele-Konfiguration werden benutzerabhängigabgelegt in:

    ${HOME}/.xmame/cfg/<game>.cfg resp
    ${HOME}/.xmess/cfg/<game>.cfg

Game Status

Die Dateien zum Spielestatus werden userabhängig abgelegt in:

    ${HOME}/.xmame/sta/<game>.sta resp
    ${HOME}/.xmess/sta/<game>.sta

NVram

NVram Dateien werden benutzerabhängig gespeichert unter:

    ${HOME}/.xmame/nvram/<game>.nv resp
    ${HOME}/.xmess/nvram/<game>.nv

Memory Cards

Memory Cards werden benutzerabhängig gespeichert in

    ${HOME}/.xmame/mem/<filename>.mem resp
    ${HOME}/.xmess/mem/<filename>.mem

Wobei <filename> durch den Spieletreiber vorgegeben ist.

Screenshots

Screenshots können erzeugt werden durch Drücken von F12 und werdenim PNG-Format im aktuellen Arbeitsverzeichnis gespeichert (cwd), alsodas Verzeichnis, von dem aus XMame/XMess aufgerufen wurde.

Dies kann abgeändert werden durch den Eintrag screenshotdir inxmamerc/xmessrc.

Dies kann wiederum abgeändert werden durch die Kommandozeilen-Option -screenshotdir

Die Bilder werden gespeichert als:

    <screenshotdir>/<game>xxxx.png
    Dabei ist xxxx eine Zahl.

Highscores

Die Highscores werden gespeichert in XMAMEROOT, definiertim Makefile beim Compilieren. Dieses Spooldirectorykann überschrieben werden durch den Eintrag in xmamerc bzw.xmessrc. Dieser Eintrag kann wiederum überschrieben werdendurch die Kommandozeilen-Option -spooldir.

Somit einfach die Berechtigung des Spoolverzeichnissessetzen auf

    drwxrwsr-x root games <spooldir>

mittels chown.Dann noch ein setgid xmame/xmess auf game und schon  funktioniert es. (Bei Verständnisproblemen die Manpagevon chown und setgid lesen !!!!)

Man kann auch die Group-ID bei xmame/xmess mittelschgrp game xmame.x11 (für die X11-Version) setzen.Dies funktioniert aber NICHT bei der SVGAlib und  XF86-DGA Version. Diese benötigen suid root !! Verbesserungsvorschläge willkommen.

Für diese Versionen einfach ${HOME}/.xmame oder${HOME}/.xmess als spooldir in xmamerc/xmessrc angeben.

Anmerkung: Damit Hiscores funktionieren, muss XMame natürlichdie Datei hiscore.dat finden können.


hiscore.dat

Wenn Du die Hiscores nutzen willst, dann muss XMame die Dateihiscore.dat laden können, um an die Informationen heranzukommen.

Der Standard ist hierbei XMAMEROOT/hiscore.dat . XMAMEROOT wirdwährend des Compilieren gesetzt, siehe hierzu im Makefile.Dies kann neu gesetzt werden durch den Eintrag hiscorefile in derDatei xmamerc, falls vorhanden. Dies kann natürlich auch wiederneu gesetzt werden durch die Kommandozeilen-Option -hiscorefile beim Start von XMame.

Die Datei hiscore.dat ist verfügbar auf der Mame-Homepage: http://www.mame.net


cheat.dat

Wenn Cheats benutzt werden sollen, dann muß Mame die Datei cheat.dat laden, um die Informationen zu haben.

Voreingestellt ist XMAMEROOT/cheat.dat . XMAMEROOT wird während des Compilierens gesetzt, siehe Makefile.Diese Einstellung kann überschrieben werden durch denEintrag cheatfile in xmamerc, wenn vorhanden. Wiederrumkann dies ersetzt werden durch die Kommandozeilen-Option -cheatfile.

Die Datei cheat.dat ist verfügbar auf der Mame-Homepage: http://www.mame.net


history.dat

Wenn Du einige nette Hintergrundinformationen zu den Spielenwillst, dann muß xmame die Datei history.dat laden. 

Voreingestellt ist XMAMEROOT/history.dat . XMAMEROOT wirdwährend des Übersetzens gesetzt, siehe hierzu im Makefile.Dies kann überschrieben werden durch den Eintrag historyfilein der xmamerc. Dieses kann wiederrum überschrieben werden durchden Schalter -historyfile beim Aufruf von Xmame.

Die Datei history.dat ist verfügbar auf der Mame-Homepage: http://www.mame.net


Aufzeichnen der Eingaben (Input Logs)

Aufzeichnungen von den Eingaben werden unter dem Dateinamengespeichert, der hinter den Schaltern -record / -playback angegeben wird, immer relativ zum aktuellen Pfad.

XMame/XMess findet immer noch nicht Dateien / Highscores werden nicht gespeichert

"xmame/xmess -showconfig | more" eintippen und prüfen, obder angezeigte Pfad zu den Roms und der Pfad zum spooldir korrekt ist und ob dort auch die Berechtigung zum Lesen und Schreiben vorhanden ist.Andererseits noch einmal xmamerc/xmessrc prüfen. 
Und nicht vergessen, xmess durchsucht auch das aktuelleVerzeichnis.

3.10 Wie starte ich XMame/XMess ?

Um XMame zu starten:

    xmame [Optionen] <gamename> [weitere Optionen]

Für XMess:

    xmess [Optionen] <systemname> [weitere Optionen] \
    <disk/romimage(s)> [weitere Optionen]

Alle Optionen sind sozusagen optional ;-))


Xmame/Xmess unterstützt die meisten Kommandozeilenoptionen der MSDOS-Version(näheres siehe in readme.mame / readme.mess) und natürlich ein paar eigene. Tippe xmame -help | more für die komplette Liste ein.

Bei Xmess benötigen einige Systeme nicht disk/romimage,die meisten jedoch schon.

3.11 Was sind die Kommandozeilen Parameter für XMame/XMess?

Für eine Liste der verfügbaren Parameter einfach

    /usr/games/xmame -help | more

eintippen(falls xmame in /usr/games zu finden ist)

Xmame/Xmess unterstützt die meisten Parameter derMSDOS-Version und natürlich ein paar eigene.

In der Datei readme.mame / readme.mess ist mehr über dieParameter nachzulesen.

3.12 Welche Tasten benutzen XMame/XMess use?

Xmame/Xmess benutzen die selben Tasten wie die DOS-Version: die folgenden Tasten funktionieren in allen Emulatoren:

    `  oder ~    Einstieg in das OnScreen Display für Lautstärkeänderungen, 
                 Helligkeitsregelung, ...
    Tab          Einstieg ins Configurationsmenü. Tab oder ESC drücken, um zurück 
                 zur Emulation zu gelangen
    P            Pause
    F3           Reset
    F4           Zeigt die Spielegrafik an. Mit den Cursor Tasten können die Farben 
                 geändert werden. 
                 F4 oder Esc um zurück zu kommen.
    F8           Frame Skip reduzieren (Bilder auslassen)
    F9           Frame Skip erhöhen
    F10          Throttle an oder aus
    F10 + shift  Idle Sleeping an oder aus
    F11          Anzeige der Frames an oder aus
    F11 + shift  Profiler Anzeige an oder aus
    F12          Bildschirminhalt speichern (snapshot)
    ESC          Emulator verlassen.

XMame hat zwei verschiedene Algorithmen für auto frameskipping,diese können mit der Option -frameskipper ausgewählt werden,und mit folgenden Tatenkombinationen:

    Tastenkombination:     Wirkung:
    STRG-Links + Einfügen  Standard DOS Frameskipper
    STRG-Linux + POS1      Frameskipper William Barath

Die Anzeigeskalierung von XMame kann im laufenden Betrieb mit folgenden Tastenkombinationen geändert werden:

    Tastenkombination:     Ergebnis:
    SHIFT-Links + Einfg    Breite erhöhen
    SHIFT-Links + Entf     Breite verringern
    SHIFT-Links + Pos1     Höhe vergrößern
    SHIFT-Links + Ende     Höhe verringern
    SHIFT-Links + Bild auf Anzeige vergrößern
    SHIFT-Links + Bild ab  Anzeige verkleinern

Unter X11 kann XMame zwischen verschiedenen Anzeigemodiwährend "des laufenden Betriebes" wechseln:

    Tastenkombination:     Bringt Dich zu:
    ALT-Links + Einfg      Normales Fenster
    ALT-Links + Pos1       DGA Fullscreen Modus

Unter SDL kann XMame zwischen den verschienden Modi zur Laufzeit wechseln:

    Tastenkombination:     Ergebnis:
    ALT-Links + Return     Schaltet zwischen Fenster- und Fullscreenmodus um

Unter X11 in einem Fenster kann man nun auch die Mausaktivieren, um sie zum Spielen benutzen zu können.Drücke dazu Alt-Links und Bild-Ab um die Maus zu aktivierenund drücke die Tastenkombination nochmals, um die Mauswieder zu deaktivieren.

3.13 Warum haben manche Spiele keinen Sound ?

  • Zuerst einmal prüfen, ob Soundunterstützung überhaupt funktioniert.
  • Prüfen, ob das gewünschte Spiel überhaupt Soundunterstützung bietet. Nicht alle Spiele haben derzeit Sound.
  • Bei Xmame einen Blick in gameslist.mame werfen. Wird Sound für das Spiel emuliert ?
  • Bei Xmess einen Blick in readme.mess werfen, ob für das System Sound überhaupt emuliert wird.
  • Prüfen, ob Xmame/Xmess auf dem verwendeten System überhaupt Soundunterstützung bietet. Siehe dazu weiter oben in den FAQ's.

3.14 Meine Soundausgabe ist verzögert / ist abgehackt. / Was bewirkt -bufsize?

Mit dem Parameter -bufsize (als Kommandozeilen-Option) oderals Schlüsselwort in der Konfigurationdatei (xmamerc) kannman die Anzahl Frames von Audio zum Buffer angeben. DieGrundeinstellung ist 2 frames.

Dieser Wert sollte bei Jedem passen, aber wenn immer nochProbleme auftreten, dann weiterlesen.

Wenn die Buffergröße zu klein ist, dann wird der Buffer gezwungen, sich zwischen den Frames zu Leeren, was dann zuverzögerter Soundausgabe oder zu abgehacktem Sound führen kann. In diesem Fall kann das Erhöhen des Wertes der Buffergröße auf beispielsweise 2.5 helfen.

Wenn jedoch die Buffergröße zu gross ist, dann werden soviele Audiodaten gepuffert, dass die Soundausgabe verzögertklingt. Z.B. ist das Einwerfen einer Münze erst nach 0.5Sekunden zu Hören, nachdem die Taste "Insert Coin" gedrücktwurde. In diesem Fall verringere den Werte bei der Buffergröße auf beispielsweise 1.5.

Bitte lasst mich wissen, wenn ein Ändern dieser Werte notwendig ist, weil es geplant ist diesen Parameter in einer zukünftigenVersion von XMame wieder zu entfernen.

3.15 Warum funktioniert ein Spiel nicht ?

  • Sind die richtigen Roms vorhanden oder treten beim Starten Prüfsummenfehler auf ?
  • Xmame Version 0.34 und höher benötigt PROM-Dateien, die nicht in den ROM-Files enthalten sind vor der Version 0.34. Siehe auch die nächste Frage  über PROMs.
  • Bei Xmame in der Datei gamelist.mame nachsehen, ob das Spiel überhaupt spielbar ist. Wenn ein Spiel in der Liste enthalten ist bedeutet es nicht automatisch, daß es schon spielbar ist.
  • Bei Xmess in der Datei readme.mess nachsehen. Vielleicht wird das System noch nicht komplett emuliert.
  • Einige Spiele benötigen Soundunterstützung. Wenn bei Deinem Unix-System keine Soundunterstützung vorhanden ist oder Xmame/Xmess dafür keine Soundunterstützung bietet, dann den Parameter -fakesound benutzen.
 

3.16 Was sind PROMs?

PROMs enthalten spezielle Informationen für Spiele. Diesewaren in Mame-Versionen < 0.34 in Mame selbst enthalten.Diese Informationen wurden wieder aus Mame entfernt und sindin den neueren Versionen der ROM-Files, die so etwasbenötigen, schon enthalten.

Wenn Du Deine vorhandenen ROMs nutzen willst, dann können die PROMs in einer einzigen Datei gefunden werden unter: 

http://mame.retrogames.com/

3.17 Warum sind XMame/XMess so langsam ?

Xmame/Xmess ist ein übersetztes C-Programm, dass Hardwareemuliert. Software, die Hardware emuliert, ist nun mal nichtso schnell. Hier sind nun einige Tipps für höhere Geschwindigkeit:

  • den Parameter -frameskip benutzen
  • während des Spieles F8 drücken, um die Framerate zu erhöhen
  • throttle abschalten durch den Parameter -nothrottle oder durch drücken von F10 während Xmame/Xmess schon läuft.
  • wenn Xmame/Xmess läuft, dann F11 drücken um die aktuelle Geschwindigkeit von Xmame/Xmess zu prüfen.Wenn niemals 100% auftauchen, dann muß wohl ein schnellererComputer her.

Du kannst natürlich auch versuchen, XMame/XMess mit mehr optimiertenEinstellungen neu zu übersetzen. Die folgenden Ratschläge könnennicht funktionieren oder können auf einigen Maschinen oder einigenInstallationen nicht möglich sein. Natürlich kann, in den Fällen woes funktioniert, eine merklich bessere Performance bei XMame/XMess eintreten.

Um diese "Verbesserungen" einsetzen zu können, muss nur die DateiMakefile editiert werden. Diese Datei ist bei XMame mit dabei.Anschließend muss der Sourcecode neu übersetzt werden. Wenn derSourdecode zum zweiten mal übersetzt wird, dann muss nach demEditieren von makefile.unix

    make clean
    make
    make install

ausgeführt werden, um die neuen Einstellungen zu aktivieren.

SPEEDUP # 1 - Compilieren mit Inline

Versuche beim Übersetzen inline zu aktivieren und entferne/füge den Kommentar bei diesen beiden Zeilen hinzu:

    # IL    = '-DINLINE=static inline'
    IL     = -DINLINE=static

SPEEDUP # 2 - Direct Graphics Access (DGA)

Für einen gehörigen "Schub" versuche DGA zu aktivieren und entferneden Kommentar bei folgender Zeile

    DGA = 1

Starte dann XMame als Benutzer root und drücke "CursorLinks-ALT-EINFG"  um in den DGA-Modus zu wechseln. Dies sollte um Einiges schneller sein und benötigt/nutzt nicht xsync ;-)

Um in den Fenstermodus zurückzukommen ohne das Spiel zu verlassen drücke ALT-Links + Einfg.

Der Vorteil von DGA ist, dass es Direct Grafics Access ist und somitdirekt in den Framebuffer schreibt (Denke an DircetX und GDI unter  Windows). So sollte es einen Tick schneller sein, unabhängig davon, obDu einen wirklichen guten beschleunigten X-Server hast, was genausoschnell sein könnte. Drücke F11 um die aktuelle Framerate anzuzeigen,obwohl es meist schwer festzustellen ist (meist nur wahrnehmbar), essollte doch eine kleine Geschwindigkeitserhöhung vorhanden sein.

Nebenbei schaltet DGA automatisch in den richtigen Modus entferntjeglichen "Müll" der Fenstermanager, aber das kann auch ohne DGAerreicht werden (es wird ein solches Feature möglicherweise spätergeben, weil es ganz leicht Fullscreen erlaubt, ohne dass man dazuroot sein muss).

Füge den Modus 320x240 hinzu, der eine nette Fullscreen-Anzeige beim Scaling scale = 1 möglich macht ;-)

Nicht vergessen, dass noch die Mode-Lines in der Section "Display"bei "Screen" Deiner X-Config Datei gesetzt werden müssen um im DGA-Modus bildschirmfüllend darzustellen. XMame sucht sich den bestenModus heraus, den es finden kann. Du wirst also eine Zeile wie 

    Modes  "1024x768" "800x600" "640x480" "320x240" "256x224"

haben, denn jedes Spiel, das in eine 320x240-Auflösung passtkann in dieser Auflösung dargestellt werden, usw. Nicht vergessen,dass die X-Config Datei mehrere Stellen mit dem Namen "Screen" habenkann. Die Modi müssen dann natürlich bei der Stelle editiert werden,die der X-Server beim Start benutzt. Es ist natürlich nicht ganz soeinfach, da man X auch noch mitteilen muss, welche Monitoreinstellungenfür diese Auflösungen benötigt werden. Dies geschieht in den Modeline-Einträgen im Bereich "Monitor" der X-Config Datei.

Siehe auch in /contrib/tools/modelines für einen Satz verückter Modi, speziell für XMame in DGA. Sie sollten auf jedem beliebigen Multisync Monitor funktionieren, aber benutze sie NICHT auf einem alten Festfrequenz Monitor (gut, wenn Du es nicht lassen kannst es trotzdem zu versuchen, ich werden NICHT für einen neuen Monitor zahlen) 

SPEEDUP # 3 - NASM

Du kannst auch versuchen, nasm zu installieren und XMame/XMess mitASM-Core zu übersetzen, dies hilft auch ein wenig.
(Bemerkung für SuSE-Besitzer: das Paket nasm-09x befindet sich in der Serie d)

3.18 Ich habe eine Dual Prozessor Maschine. Wie kann ich davon profitieren ?

Eigentlich wenig. XMame ist eine Portierung von DOS und ist nur designed für Single-Thread. Ein klein wenig schneller könnte XMame auf einer SMP-Maschine schon laufen, weil XMame dann länger eine CPU für sich hat. Aber das passiert mit allen CPU-intensiven Programmen. Und alles was man einstellt, dass eine Applikation mehr CPU-Zeit bekommt (höhere Priorität, killen unnötiger Prozesse, ...) funktioniert auch bei XMame.

Nun könnte man an dieser Stelle denken, "Sicherlich könnte man einen Thread haben für die Emulation und einen anderen zur Beschleunigung der grafischen Ausgabe". Ja, aber da sind einige ernsthafte Einschränkungen zu beachten. Die erste ist die Synchronisation zwischen den Threads, die aber benötigt wird damit alles reibungslos läuft. Wenn das nicht glatt läuft, dann frisst der Overhead jeglichen Vorteil wieder auf. Ausserdem muss das Ganze als portables Thread Interface implementiert werden. Das bedeutet POSIX Threads. Es ist somit erheblicher Aufwand für fast keinen Effekt. Aber wenn Du der Meinung bist, sowas zu implementieren, dann sind Patches dazu in der XMame Mailingliste natürlich herzlich willkommen ... ;-)

 

3.19 Warum funktionieren bei meinem Joystick die diagonalen Bewegenungen nicht richtig ? (nur Intel x86 System)

Xmame/Xmess benutzt automatische Kalibrierung. Aber man kann spezielle Programme zum Kalibrieren benutzen. (jscal - beimJoystick-Module dabei - funktioniert ausgezeichnet ...)

Anmerkung: Ab Kernel 2.4.x braucht man jscal 2.0.0. Dies findet man auf http://www.suse.cz.

3.20 Wie kann ich die XinputExtensions für auf X11 basierende Joysticks in Xfree86 aktivieren ?

Die XF86Config muß editiert werden, um die XInput-Sektion zuaktivieren. Näheres bietet die Manpage von XF86Config.

3.21 Wie lese ich eine Manual Page ?

Echt einfach. Um beispielsweise die Manpage von XF86Config zu lesen, einfach man XF86Config eintippen. ;)

3.22 Warum bekomme ich "get gz_open symbol not found" beim Übersetzen ?

XMame/XMess-Versionen neuer als 0.35 benutzen zlib für einigePackroutinen. Leider haben viele Linux Distributionen eineveraltete Version von zlib installiert unter/usr/X11R6/lib/libz.a und die neue Version installiert unter/usr/lib/libz.a. Wenn dies bei Dir der Fall ist, dann kannproblemlos die Version unter /usr/X11R6/lib/libz.a gelöschtwerden. Wenn Du Dir da nicht sicher bist, verschiebe einfach/usr/X11R6/lib/libz.a an eine andere Stelle.

Löschen oder nur Verschieben von /usr/X11R6/lib/libz.a solltedieses Problem beheben.

Sieh auch: FAQ: Warum bekomme ich "get zlib.h not found" ?

3.23 Warum bekomme ich "get zlib.h not found" ?

XMame/XMess-Versionen neuer als 0.35 benutzen zlib für einigePackroutinen.

Zlib ist Standard auf den meisten Unix-Systemen. Für Leute, die sich nicht mit zlib herumärgern wolle, oder keine veraltete Versionhaben wollen, ist nun bei XMame/XMess eine abgespeckte Version vonzlib mit dabei. Entferne die Kommentare bei der betreffendenStelle im Makefile um dies zu benutzen.

3.24 Wenn ich xmame.x11 starte, passiert nichts --- kein Fenster geht auf oder irgendwas anderes. Hilfe !

Läuft bei Dir eine aktuelle Version von KDE, z.B. 2.1.1 ? Im KDE Fenstermanager ist vermutlich ein Fehler, der bei einigen X11-Anwendungen verhindert, dass deren Hauptfenster aufgeht. Du kannst entweder die SDL-Version von XMame nehmen, oder folgenden Workaround probieren, der bei etlichen Leuten funktioniert hat:

xmame.x11 -rid `xwininfo -root | grep xwininfo: | awk '{print $4}'`

Update: Es wurde uns mitgeteilt, dass seit KDE 2.2b1 dieser Fehler nicht mehr auftritt.

3.25 Wo bekomme ich die neueste Version von XMame/XMess her ?

Auf der Xmame/Xmess-Homepage ist immer die aktuellsteVersion verfügbar. 

Adresse: http://x.mame.net

Auf meiner Homepage ist ebenfalls der Sourcecodeverfügbar (Ausweichadresse, falls x.mame.net überlastetist). 

Adresse: http://www.bingo-ev.de/~rh474

3.26 Wohin kann ich Korrekturen, Fehlermeldungen, Anmerkungen, Geld :-) hinschicken ?

Siehe Mail in diesem Dokument.

3.27 Was kann ich tun, wenn meine Frage immer noch nicht beantwortet ist ?

Bitte prüfe die offiziellen Readme's von Mame und Mess. Vielleicht ist Deine Frage dort schon beantwortet:

Wenn das auch nicht weiterhilft, dann stelle doch Deine Frage in der Mailing Liste oder schicke eine Mail an den XMame/XMess Koordinator. Siehe dazu unter 
Mail für mehr Information.


Weiter Zurück Inhalt