Die neueste Version diese Treibers kann bei http://glmame.linuxgames.com gefunden werden.
Um FXMame zum Laufen zu bekommen muss folgendes vorhanden sein:
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".
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 ....).
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.
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.
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 --------------------------
Mike Oliphant
(oliphant@ling.ed.ac.uk)
http://glmame.linuxgames.com
Die neueste Version dieses Treibers kann unter http://www.jausoft.com/glmame.html gefunden werden.
Für GLMame ist folgendes notwendig:
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"
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.
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.
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
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 !!
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 -------------------------
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