Weiter Zurück Inhalt

4. Kommentare und Anmerkungen zu speziellen Anzeigearten

4.1 FX-Mame, ein Glide Treiber für XMame

Die neueste Version diese Treibers kann bei http://glmame.linuxgames.com gefunden werden.

Voraussetzungen

Um FXMame zum Laufen zu bekommen muss folgendes vorhanden sein:

Übersetzen und Installieren

FXMame kommt in zwei "Geschmacksrichtungen": xfx unf svgafx. Die xfx-Version läuft unter X11. Es nutzt ein X-Fenster für die Eingabe. Die svgafx-Vesion kann von der Konsole aus gestartet werden und nutzt die SVGAlib zur Eingabe. Beide nutzen die 3Dfx-Hardware zum Rendern.

Um FXMame zu installieren folge der allgemeinen Anleitung von XMame. Um den Glide Treiber zuzuweisen, ändere folgendes im Makefile:

Die ausführbaren Dateien von FXMame heissen "xmame.xfx" und "xmame.svgafx".

Starten

FXMame startet mit den selben Parametern und nutzt die selben Tastaturkommandos wie xmame.x11.

Einige neue Tastaturkommandos wurden für den Glidetreiber hinzugefügt:

Der Glide Treiber fügt auch einige Kommandozeilen Optionen hinzu:

    -fxgama <Wert> Wert der 3Dfx Gamma Korrekur

Bitte beachten, dass ich, um die fps in Vector Spielen anzeigen zu können, die Spielebitmap über die Vectoranzeige legen musste. Dies geschah, weil ich die Bitmap in Vector Spielen umgehen musste. Das Zeichnen der Bitmap belastet die CPU enorm, deshalb bricht die Geschwindigkeit der Spiele beim Anzeigen der fps ein. (Ich weiss, nicht gerade ideal, aber wenn Du die Framerate rausfinden willst ....).

Allgemeine Fragen (FAQ)

Q: Wenn ich FXMame starte bekomme ich einen Core Dump.

A: Bitte sichterstellen, dass FXame als root gestartet wird. Root-Rechte werden für den Zugriff auf 3Dfx-Hardware benötigt.

Q: Wenn ich xmame.xfx starte, dann hängt das Spiel beim Initialisieren.

A: Läuft gerade KDE ? Manchmal funktioniert dann die Tastatur unter KDE nicht. Wenn Du dieses Problem hast, dann wechsle den Fenstermanager oder benutze stattdessen xmame.svgafx.

Aktuelle Einschränkungen/Bugs

Zukünftige Neuerungen 

Lizenz

Der Code von FXMame steht unter dem Copyright (1998) von Mike Oliphant. Es kann benutzt und weitergegeben werden unter den selben Bedingungen wie in der MAME Lizenz beschrieben.

Version History (im englischen Original)

v0.5 -- December 11th, 1998 ---------------------------

v0.4 -- October 30th, 1998 --------------------------

v0.3 -- October 29th, 1998 --------------------------

v0.2 -- October 28th, 1998 --------------------------

v0.1 -- October 27th, 1998 --------------------------

Author

Mike Oliphant (oliphant@ling.ed.ac.uk) http://glmame.linuxgames.com

4.2 GL-Mame, ein OPENGL Treiber für XMame

Die neueste Version dieses Treibers kann unter http://glmame.linuxgames.com gefunden werden.

Voraussetzungen

Für GLMame ist folgendes notwendig: 

Übersetzen und Installieren

Die allgemeinen Anweisungen zur Installation von XMame beachten. Um den OpenGL Treiber zu verwenden muss folgendes im Makefile geändert werden:

Die ausführbare Datei von GLMame heisst "xmame.xgl"

Starten

xmame.xgl startet mit den selben Parametern und nutzt die selben Tastaturkommandos wie xmame.x11.

Das Programm startet im Cabinet-Modus. Weil es auch nett und recht "cool" ist, willst Du sicher von nun an im Fullscreen-Modus spielen.

Einige neue Tastaturkommandos wurden für den OpenGL-Treiber hinzugefügt:

Der OpenGL-Treiber bringt auch einige Kommandozeilen-Optionen hinzu:

    -[no]dblbuffer          Abschalten/Einschalten double buffering
    -cabview                Im Cabinet-Modus starten
    -nocabview              Im Fullscreen-Modus starten
    -cabinet <cabname>      das Cabinet-Modell <cabname> benutzen
    -fxgama <value>         Wert der 3Dfx Gamma-Korrektur

Zwei Cabinet-Modelle werden mitgeliefert. Der Standard, "glmame", sieht aus wie ein Standard Arcade Cabinet. Das andere, "trans", ist mit einem transparenten Spiele-Bildschirm, durch den man durchschauen kann.

Bitte beachten, dass ich, um die fps in Vector Spielen anzeigen zu können, die Spielebitmap über die Vectoranzeige legen musste. Dies geschah, weil ich die Bitmap in Vector Spielen umgehen musste. Das Zeichnen der Bitmap belastet die CPU enorm, deshalb bricht die Geschwindigkeit der Spiele beim Anzeigen der fps ein. (Ich weiss, nicht gerade ideal, aber wenn Du die Framerate rausfinden willst ....). Dieser Overlay hat im Cabinet-Modus etliche Fehler, ich weiss noch nicht warum.

*** WICHTIG ! ***

Wenn Du Problem mit GLMame hast, oder es recht langsam ist, dann lese den Abschnitt "Allgemeine Fragen". Viele der Fragen, die mich per Mail erreichen, sind damit schon beantwortet.

Cabinet Modelle

Die Information des Cabinet-Modells ist im Verzeichnis "cab" abgelegt, defniert in der Variable ROMPATH im Makefile. Pfadangaben, die in xmamerc oder mit der Umgebungsvariablen "rompath" gesetzt sind, werden derzeit nicht unterstützt. Jedes Cabinet-Modell hat sein eigenes Unterverzeichnis. GLMame versucht zuerst jedes, vom Benutzer angegebene Modell, zu laden (mit der Kommandozeilen-Option -cabinet) oder ein passendes Modell zum benutzten Spielnamen. Wenn dies fehlschlägt, dann wird das allgemeine "glmame"-Modell herangezogen.


Das Verzeichnis eines Cabinet-Modells muss eine Geometrie-Datei enthalten <modelname>.cab und .jpg Dateien für die Texturen auf dem Modell. Das Format der .cab Datei ist recht einfach zu begreifen, wenn man in der Programmierung mit OpenGL zu tun hatte. Es sieht wie eine Liste mit Anweisungen zur Anzeige unter OpenGL aus. Das Format ist folgendermaßen:

    cabv1.0

Dieser Header muss die ersten 7 Stellen der Datei sein.

    #<text>

Kommentare beginnen mit einem '#'

    begin <type>

Anfang eines Geometrie Objektes, und zwar eines der folgenden (polygon, quads, quad_strip, screen). Jedes Statement "begin" muss mit einem entsprechenden "end" Statement geschlossen werden. Ein "polygon" gibt an, dass ein vertex pro, nun .... vertex benutzt wird. "quads" sind vierseitige polygone, jedes definiert durch vier Vertexe angeordnet um das Polygon. Ein "quad_strip" ist eine Reihe von vierseitigen Polygonen. Jedes teilt sich eine Ecke mit einem anderen Polygon davor und danach im "strip".  Ein "screen" ist ein "quad", dass den derzeit gültigen Bereich im 3D Raum beschreibt, in dem das Spiel angezeigt wird. Nur einer von diesen sollte definiert sein. Für mehr Informationen siehe Beschreibungen zu OpenGL Geometry an.

    end

Beendet das Geometry Objekt, dass mit "begin" angefangen hat.

    color4 <r> <g> <b>

Ändert die aktuelle Farbe zu dem angegebenen RGB-Wert (definiert durch Gleitkommazahlen zwischen 0 und 1).

    color4 <r> <g> <b> <a>

Ändert die aktuelle Farbe zu dem angegebenen RGBA-Wert (definiert durch Gleitkommazahlen zwischen 0 und 1).

    shading <type>

Setzt den "shading" Type. Verfügbare Typen sind "smooth" (blendet Farben von einem vertex zum nächsten über) oder "flat" (macht dies nicht).

    vertex <x> <y> <z>

Definiert ein vertex des aktuellen Geometrie Objektes als einen im Punkt im 3D-Raum.

    numtex <num>

Definiert die Anzahl verschiedener Texturen die geladen werden. Diese Angabe muss jeglicher "loadtex" Anweisung vorangehen.

    loadtex <num> <width> <height> <filename>

Lädt Texture Nummer <num> aus einer .jpg Datei <filename>. Die .jpg-Datei MUSS <width> bei <height> Pixeln sein und beide Angaben <width> und <height> müssen ein Vielfaches von 2 sein (und muss mit den Hardwareanforderungen jeder 3D-Karte, mit der der Cabinet-Modus funktionieren soll, übereinstimmen --- 256x256 für 3Dfx).

    texcoord <xcoord> <ycoord>

Setzt die Texturkoordinaten des nächsten vertex. Dies definiert, wo in 2D-Texture Raum die vertex liegt.

    enable texture

Aktiviert texture mapping (unter Benutzung der aktuell ausgwählten Textur).

    disable texture

Schaltet das texture mapping ab.

    settex <num>

Wählt die Texture <num> als nächste aus. Die Texture muss vorab geladen sein unter Benutzung von "loadtex".

    camerapan <num>

Startet die Definition der camera pan gefolgt von einer Anzahl <num> von Kamera Positionen. Nach der transision Definiton muss die Sequence pan durch eine "end" Anweisung abgeschlossen werden.

    goto <lx> <ly> <lz> <px> <py> <pz> <nx> <ny> <nz>

Positoniert / reorientiert die Kamera. Die Argumente sind die selben wie beim OpenGL Komando "gluLookAt()".  Die Kamera ist bei Punkt <lx,ly,lz> positioniert, zeigt den Vektor <px,py,pz> entlang, mit "up" normal (die Richtung die oben ist für die Kamera) <nx,ny,nz>.

    moveto <lx> <ly> <lz> <px> <py> <pz> <nx> <ny> <nz> <frames>

Bewegt die Kamera zu einer neuen Position (angegeben im Befehl "goto"). Das Versetzen geschieht über <frames> Frames.

Alle Anweisungen müssen jeweils in einer neuen Zeile stehen. Benutze die kommentierte GLMame Cabinet-Datei (oder etwas ähnliches) als ein Beispiel um anzufangen.

Allgemeine Fragen (FAQ)

Q: Ich bekomme nur ein paar Frames pro Sekunde. Das ist mist ! Warum nur ?

A1: Du lässt wahrscheinlich Mesa im Softwaremodus laufen. Du solltes die Datei "README.3Dfx" in Deinem Mesa-Paket durchlesen. Möglicherweise muss die Anweisung "setenv MESA_GLX_FX fullscreen" ausgeführt werden.

A2: Du brauchst eine Grafikkarte mit  3D-Beschleunigung. Kauf Dir eine !

Q: Wenn ich xmame.xgl starte, dann macht es nur einen Core-Dump. Das macht weniger Spass als 3D Pacman zu spielen. Und nun ?

A1: Wenn Du eine 3Dfx-Karte hast, dass muss xmame.xgl als root ausgeführt werden. Es sind Root-Rechte nötig, um auf die 3Dfx-Hardware zuzugreifen

A2: Wenn Du Mesa nutzt, dann musst Du auf Version 3.0 upgraden.

Q: Wenn ich xmame.xgl starte dann hängt das Spiel beim Initialisieren.

A: Läuft gerade KDE ? Manchmal funktioniert dann die Tastatur unter KDE nicht. Wenn Du dieses Problem hast, dann wechsle den Fenstermanager.

Aktuelle Einschränkungen/Bugs

Zukünftige Neuerungen 

Lizenz

Der Code von FXMame steht unter dem Copyright (1998) von Mike Oliphant. Es kann benutzt und weitergegeben werden unter den selben Bedingungen wie in der MAME Lizenz beschrieben.

Version History (im englischen Original)

v0.6 -- December 14th, 1998 ---------------------------

v0.5 -- October 30th, 1998 --------------------------

v0.4 -- October 21st, 1998 --------------------------

v0.3 -- October 12th, 1998 --------------------------

v0.2 -- October 6th, 1998 -------------------------

v0.1 -- October 5th, 1998 -------------------------

Author

Mike Oliphant (oliphant@ling.ed.ac.uk) http://glmame.linuxgames.com


Weiter Zurück Inhalt