Weiter Zurück Inhalt

4. Kommentare und Anmerkungen zu speziellen Anzeigearten

4.1 FXMame, 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 sicherstellen, 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 GLMame, ein OPENGL Treiber für XMame

Die neueste Version dieses Treibers kann unter http://www.jausoft.com/glmame.html 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]fullscreen         Starten im Vollbildmodus
			    (default: abgeschaltet)
    -[no]gldblbuffer        Doppeltes Puffern ein-/ausschalten
                            (default: aktiviert)

    -gltexture_size <int>   die maximale Breite und Höhe eines Texturensegments                            
			    erzwingen (default: autosize)

    -[no]glforceblitmode /  Bitter in Echtfarben-Modi 15/32bpp erzwingen
    -[no]glblit             (default: aktiviert)

    -[no]glext78 /          die Benutzung der GL extension number 78 erzwingen,
    -[no]glext              falls vorhanden (paletted texture)
                            (default: aktiviert)
    -[no]glbilinear /       bilineares Filtern ein-/ausschalten
    -[no]glbilin            (default: aktiviert)

    -[no]gldrawbitmap /     zeichnen der Bitmap ein-/ausschalten;  
    -[no]glbitmap           z.B. in Vektorspielen abschalten zur Geschwindigkeitserhöhung
                            (default: aktiviert)

    -[no]glcolormod         Farbmodulation (Intensität, Gamma) ein-/ausschalten
    -[no]glcmod             (default: aktiviert)
                            
    -glbeam <float>         die Lichtstärke für Vektorspiele setzen
                            (default: 1.0)

    -[no]glalphablending /  Alpha-Blendung ein-/ausschalten, falls vorhanden
    -[no]glalpha            (default: aktiviert)

    -[no]glantialias /      Antialiasing ein-/ausschalten
    -[no]glaa               (default: aktiviert)

    -gllibname /            die OpenGL-Bibliothek angeben, die dynamisch geladen werden soll
    -gllib <string>         (default: libGL.so)

    -glulibname /           die GLU-Bibliothek angeben, die dynamisch geladen werden soll
    -glulib <string>        (default: libGLU.so)

    -[no]cabview            im Cabinet Anzeigemodus starten/nicht starten
                            (default: nicht in diesem modus starten)

    -cabinet <cabname>      welches Cabinet Modell soll genutzt werden ?
                            (default: glmamejau)
 
   -glres <string>          Spiele immer skalieren auf <Xres>x<Yres>, 
                            Seitenverhältnis beibehalten. 
                            Dieses überschreibt die Scale-Option. 
	 		    Dieses z.B. für Voodoo1 Grafikkarten nutzen
                            mit: "-glres 640x480"

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

Bitte beachten, dass  um die fps in Vector Spielen anzeigen zu können, die Spielebitmap über die Vectoranzeige gelegt werden muss. Das Zeichnen der Bitmap geht bei einigen low-end hardwarebeschleunigten OpenGL-Implementationen voll auf die CPU. Man wird also leider bemerken, dass das Spiel beim überlagern der Bitmap langsamer wird.

Da das Überlagen der Bitmap der Standard ist, kann man es an-/ausschalten mit "STRG_ALT-O" oder beim Starten abschalten mit der Kommandozeilenoption "-noglbitmap".

Ein Problem von Vector Spielen und dem Cabinet Modus hängt mit einigen Vector Punkten zusammen, dei nicht innerhalb der Bildschirmkoordinaten liegen. Man wird einige Vectoren ausserhalb der Mame Cabinet Anzeige feststellen.

*** 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.1

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 (points, 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.

    pointsize <s>

Ändert die aktuelle Punktgröße auf die entsprechenden Wert (bestimmt durch eine Gleitkommazahl zwischen 0.0 und z.B. 20.0). Anmerkung: Das Statement kann nicht zwischen begin und end verwendet werden.

    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 (teilweise) kommentierte Datei glmamejau 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 (siehe unten) !

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.

Q: Welche Grafikkarten funktionieren mit xmame.xgl ?

A: Derzeit haben wir folgende Erkenntnisse (Stand: 13.07.2001)

Alle oben angegebenen Treiber funktionieren mit der Option "-bpp 16" und/oder "-noglext78". Es sieht also danach aus, dass ein Fehler in der OpenGL Implementation verursacht, dass diese Treiber/Hardware Kombinationen nur mit den angegebenen Kommandozeilenoptionen funktionieren. Der Fehler könnte in diesen OpenGL-Funktionen liegen:

Eine derzeit schnelle und spassige Treiber/Hardware Kombination ist:


Q: Wenn ich xmame.xgl starte, dann funktioniert gar nichts mehr.

A: Lies die oben genannten Erkenntnisse ... und versuche

 

Aktuelle Einschränkungen/Bugs

Zukünftige Neuerungen 

Lizenz

Der Code von GLMmame basiert auf  Mike Oliphant's GLMame Code Version 0.6.

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

Seit GLMame Version 0.7 wurde der Code verändert und start verbessert von Sven Goethel -- keine Änderung der Lizenz !!


Version History (im englischen Original)

v0.83 -- March 29th, 2001 ---------------------------


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

Seit GLMame Version 0.7: Sven Goethel (sgoethel@jausoft.com) http://www.jausoft.com/glmame.html

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


Weiter Zurück Inhalt