Sie sind auf Seite 1von 14

Liesmich zum GLIDE3-zu-OpenGL-Wrapper Version 1.

4e (c) 2010 by Sven Labusch

Aufbau:
1. Vorwort
2. "Lieferumfang"
3. Anforderungen
4. Installation/Deinstallation
5. Dateibeschreibungen
6. Hinweise/technische Aspekte
7. Versions-�nderungen
8. H�ufig gestellte Fragen
9. Sonstiges

1. Vorwort

Erstmal hallo allerseits!


um es kurz zu fassen: mich hat die Leistung, die Diablo2 unter Direct3D an den Tag
legt genervt.
Da Diablo2 mit der Glide-Schnittstelle eine bessere Figur macht, war es f�r mich
naheliegend, irgendwie zu versuchen, dass das Spiel auch auf meinem Rechner mit
Glide laufen kann. Dabei gab es zwei Probleme:
1. Glide-Treiber gibt es nur f�r Voodoo-Karten. Diablo2 braucht Voodoo-Karten ab
dem Typ Voodoo-Rush, dummerweise hat mein Rechner aber 'ne Geforce2MX.
2. Glide-Wrapper gibt es viele, aber leider habe ich keinen finden k�nnen, der f�r
mich zufriedenstellend mit Diablo2 l�uft.
Nachdem auch der Patch 1.10 keine Besserung mit sich brachte, beschloss ich mich
selbst daran zu setzen. Das Ergebnis ist dieser Wrapper, bei dem ich nochmal extra
betonen m�chte:
Dieser Glide-Wrapper ist explizit f�r das Spiel Diablo2 programmiert, es ist davon
auszugehen, dass er mit anderen Programmen NICHT l�uft, oder zumindest keine
korrekte Anzeige liefert.

Nachtrag:
Dies ist die Version 1.4e von dem Wrapper.
Und ein Dankesch�n an "Seltsamuel", "Shabazza", "Luzi", "mindphlux",
"UnserenToten", "ChaosEnergy", "acesulfam", "Seltsamuel" und dem Staff aus dem
inDiablo.de-Forum, welche mir geholfen haben.

2. "Lieferumfang"

4 Dateien:

glide-liesmich.txt 34366 Byte


glide-readme.txt 29535 Byte
glide-init.exe 134144 Byte
glide3x.dll 138752 Byte

3. Anforderungen

Ben�tigt (="damit er �berhaupt funktioniert"):


- OpenGL-konforme Grafikkarte
- ansonsten gleiche Anforderungen wie das Spiel selbst
Empfohlen (="damit man auch was von hat"):
- OpenGL1.3-konforme Grafikkarte
- Grafikkarte ab dem Kaliber einer Geforce256 mit 32MB Grafikspeicher
- mind. 256MB Hauptspeicher
NICHT empfohlen (=weil's damit u.U. schlechter l�uft als vorher):
- jedwede Art von Grafikkarte mit shared-memory-Architektur
kann man nat�rlich trotzdem versuchen, aber eine Verbesserung halte ich f�r
unwahrscheinlich

4. Installation/Deinstallation

Es gibt 2 M�glichkeiten zur Installation:


1. Die Datei "glide3x.dll" in das Windows-Systemverzeichnis (z.B.
"c:\windows\system") kopieren
2. Die Datei "glide3x.dll" in das Spiele-Verzeichnis (z.B. "c:\spiele\diablo2")
kopieren

Da Dieser Wrapper ausschliesslich f�r Diablo2 programmiert ist, empfehle ich den
2.Weg
Sind die Dateien kopiert, muss im Anschluss noch der Vid-Test von Diablo2
ausgef�hrt und Glide ausgew�hlt werden.

F�r die Deinstallation empfehle ich folgende Vorgehensweise:


1. Die glide-init.exe starten und dort unter "Std/Export" den Punkt "+Registry-
Eintr�ge l�schen" anw�hlen.
2. Die Wrapper-Dateien l�schen
3. Im Vid-Test von Diablo2 den Grafikmodus wechseln.

5.Dateibeschreibungen

glide-liesmich.txt:
Das ist die Datei die sie gerade lesen.

glide-readme.txt:
Wie die glide-liesmich.txt, nur auf englisch.

glide3x.dll:
Das ist der eigentliche Wrapper.
Sollte der Wrapper von sich aus einen Fehler bemerken, so wird eine Datei Namens
"gl32ogl.err" erstellt, in welcher der Fehler beschrieben wird.

glide-init.exe:
Hiermit k�nnen einige Einstellungen am Wrapper ver�ndert werden. Das Programm ist
dabei in mehrere Bereiche aufgeteilt:
Links ist das Hauptmenu,
in der Mitte k�nnen die eigentlichen Parameter eingestellt werden,
Rechts ist ein Info-Screen, der evtl. Hilfen zu den Parameter-Einstellungen geben
kann
und Unten wird der Inhalt der glide-liesmich.txt(bzw. glide-readme.txt) angezeigt.
�nderungen an den Einstellungen werden in der Registry gespeichert.

Im Hauptmenu gibt es folgende Wahlm�glichkeiten:

OpenGL-Infos
Einstellungen
Renderer
Wrapper-Anzeige
Extensions
Std/Export
Test
Deutsch/English
Beenden

Die Parameter-Einstellungsm�glichkeiten sind abh�ngig davon, welches Menu man im


Hauptmenu gew�hlt hat:

OpenGL-Infos:

Hier kann nichts direkt eingestellt werden. Dieses Menu dient dazu, vom OpenGL-
Treiber Informationen einzuholen, wieviel Grafikspeicher installiert ist, wie gro�
die Texturen maximal sein d�rfen und welche Extensions �berhaupt unterst�tzt
werden,...
Diese Informationen m�ssen bei Bedarf manuell eingeholt werden, indem man auf
"OpenGL-Infos einholen" klickt.
Es ist m�glich, dass nach Einholen der Infos der OpenGL-Treiber auf dem Rechner
evtl. nachfolgende Testl�ufe nicht richtig durchf�hrt, in dem Fall bitte das
Programm erst beenden, bevor ein erneuter Testlauf gestartet wird.

Einstellungen:

Hier k�nnen generelle Haupteinstellungen vorgenommen werden:

Fenstermodus:
Wenn aktiviert wird das Spiel im Fenstermodus dargestellt ansonsten im
Vollbildmodus (unabh�ngig davon, ob bei der Spiel-Verkn�pfung der Parameter "-w"
vorhanden ist, oder nicht). Nichts desto trotz: ich empfehle den Start-Parameter "-
w" bei der Spiel-Verkn�pfung anzuf�gen, wenn man im Fenstermodus spielen will, um
ein Umherspringen des Mauszeigers bei Inventar-�ffnen/Schliessen zu vermeiden.

Maus begrenzen:
Es wird verhindert, dass die Maus das Spiel-Fenster verl�sst.

festes Seitenverh�ltnis:
Wenn aktiviert, wird bei skaliertem Fenster bzw. bei Desktopaufl�sung das Bild
4/3-Seitenverh�ltnis gerendert. Eventuell zus�tzlicher Platz im Fenster/auf dem
Bildschirm wird mit schwarzen Balken aufgef�llt.

vertikale Synchronisation(VSYNC):
Wenn aktiviert, wird der Bildwechsel vom Spiel mit dem Bildwechsel vom Monitor
gleichgeschaltet. Die Framerate von dem Spiel kann dann dadurch nicht h�her werden,
als die Bildwiederholfrequenz vom Monitor, was auch vern�nftig ist:
wenn der Monitor z.B. nur 100 Bilder pro Sekunde darstellen kann, warum sollte das
Spiel dann z.B. 150 Bilder pro Sekunde berechnen? 50 davon landen dann doch
ungesehen im "M�ll".
Naja, man k�nnte sehen, wieviel Reserven der Computer noch hat, aber ansonsten.....

FPS-Limit:
Hier kann angegeben werden, welche Framerate der Wrapper maximal liefern soll. Ist
eigentlich nur n�tig, wenn VSYNC nicht funktioniert, man aber trotzdem Grafikkarte
und Prozessor schonen m�chte.

feste Gr��e:
Hier kann angegeben werden, ob das Spiele-Fenster auf eine ganz bestimmte Gr��e
gezogen werden soll. Wenn hier eine bestimmte Gr��e angegeben ist und der
Fesntermodus deaktivert ist, wird der Rest des Bildschirms schwarz dargestellt.

Fenster extras:
Wenn aktiviert, wird das Spiel-Fenster um die M�glichkeit erweitert, in der Gr��e
ge�ndert zu werden. Der Fensterinhalt wird dann dementsprechend vergr��ert oder
verkleinert, was allerdings die Grafikqualit�t nicht wirklich verbessert.

Zentriert: (nur im Fenstermodus)


Wenn aktiviert und im Fenstermodus gerendert wird, wird das Fenster automatisch
auf dem Bildschirm zentriert.

Position merken: (nur im Fenstermodus)


Wenn aktiviert, merkt sich der wrapper die Position des fensters, sodass es nach
Programm-Neustart wieder dort erscheint, wo es vorher war.

Bildwiederholfrequenz: (nur im Vollbildmodus)


Wenn das Spiel im Vollbildmodus gerendert wird, kann hier eingestellt werden, mit
welcher Bildwiederholrate der Monitor betrieben werden soll. Welche Einstell-
M�glichkeiten zur Verf�gung stehen h�ngt dabei ganz vom Betriebssystem,
Grafikkarte, Monitor usw. ab.

Desktopaufl�sung: (nur im Vollbildmodus)


Wenn aktiviert und das Spiel im Vollbildmodus Dargestellt wird, wird an der
Bildschirm aufl�sung nichts ver�ndert: das Spiel rendert also in der
Desktopaufl�sung. Eingef�gt habe ich diese Funktion, da mir schon einige TFT-
Bildschirme vor die Nase gekommen sind, welche die Aufl�sung 800x600 nicht
zufriedenstellend darstellen konnten. Wie auch f�r "Fenster extras" gilt: die
Bildqualit�t wird dadurch im Normalfall nicht verbessert.

Renderer:

Hier werden Einstellungen vorgenommen, die die Render-Engine vom Wrapper selbst
betreffen:

Textur-Speicher:
Hier kann eingestellt werden, wieviel zur Verf�gung stehender Textur-Speicher an
das Spiel gemeldet werden soll. Es ist zu beachten, keinen zu gro�en Wert
einzustellen, da sonst der Grafikkarten-Treiber mit dem unn�tigen Auslagern von
texturen Besch�ftigt wird. Einige Treiber kommen damit sogar �berhaupt nicht klar,
und es kommt zu Textur-Fehlern (z.B. schwarze Bereiche in der Landschaft).
Welcher Wert jetzt nun aber der Optimale Wert ist, ist ganz von dem Rechner, den
Einstellungen und auch den Treibern abh�ngig. Wurden OpenGL-Infos eingeholt wird
unter Parameter-Infos eine Sch�tzung abgegeben, welcher Wert wohl gut sein k�nnte,
allerdings ist dieser Wert gro�z�gig nach Unten hin abgesch�tzt, sodass ein
testweises h�hersetzen durchaus noch eine Verbesserung der Leistung bewirken kann.

Puffer-Textur-Gr��e:
Hier wird eingestellt, wie Gro� die Puffer-Texturen des Wrappers sein sollen. Je
kleiner die Puffer-Texturen, desto mehr Spiel-Texturen passen auf die Grafikkarte,
allerdings: je gr��er die Puffer-Texturen, desto mehr Spiel-Texturen passen
gleichzeitig in eine Puffer-Textur.
welches der Beste Wert ist, h�ngt von der gr��e des Textur-Speichers auf der
Grafikkarte ab. Aber pauschal w�rde ich mal sagen, das 1024x1024 ein brauchbarere
Wert ist.

32 Bit Rendern:
Wenn aktiviert und im Vollbildmodus gerendert wird, wird der Monitor auf 32 Bit
Farbtiefe gestellt und der Wrapper rendert mit 32 Bit genauigkeit statt der
Ansonsten 16 Bit.
Ob nun 16 oder 32 Bit besser sind, h�ngt von der Grafikkarte ab, neuere
Grafikkarten kommen besser mit 32 Bit zurecht, �ltere mit 16.

Textur f�r Videos:


Wenn aktiviert, werden Videos nicht direkt auf dem Bildschirm dargestellt, sondern
�ber eine Textur. Bei einigen Grafikkarten-Treibern funktioniert das auch
tats�chlich schneller.

Bilinearer Filter:
Wenn aktiviert , rendert der Wrapper erst in eine Textur und von dort dann auf den
Bildschirm. Dieser Zwischenschritt reduziert zwar die Framerate, sorgt bei Desktop-
Aufl�sung aber f�r eine bessere Grafik.

Supersampling:
Wenn aktiviert und "WGL_ARB_render_texture" ebenfalls aktiviert, wird das Bild
erst in vierfacher Aufl�sung gerendert und danach auf die richtige Gr��e gestutzt.
Reduziert die Framerate zwar noch einmal, gibt dem Bild aber ein wenig mehr an
Sch�rfe.

Shader-Gamma:
Wenn aktiviert , wird die Gamma/Kontrast-Einstellung von dem Spiel �ber Shader
realisiert. Reduziert wiederrum die Framerate, hat aber auch Vorteile: Screenshots
sind gammakorrekt und im Fenstermodus wirkt sich die Gamma-Einstellung nur auf das
Fenster aus.

kein Gamma:
Wenn aktiviert, l�sst der Wrapper die Gamma-Einstellung in Ruhe.

Desktopgestaltung erhalten:
Wenn aktiviert, l�sst der Wrapper die Einstellung der Desktopgestaltung so wie sie
ist. Ansonsten wird sie deaktiviert, solange das Spiel l�uft.

Wrapper-Anzeige:

Hier k�nnen Einstellungen vorgenommen werden, die die Darstellung von


Statusinformationen im Spiel betreffen:

Infos anzeigen:
Hier wird ausgew�hlt in welcher Ecke des Bildschirms die Informationen gezeigt
werden sollen.

Framerate:
Wenn aktiviert, zeigt der Wrapper die Framerate mit an, welche sek�ndlich
aktualisiert wird. Da der Wrapper die Framerate unabh�ngig vom Spiel ermittelt ist
eine eventuelle Abweichung von der Frameraten-Anzeige des Spiels selbst nicht
ungew�hnlich.

Uhr:
Wenn ausgew�hlt, wird die Uhrzeit mit angegeben (im entsprechenden Stil). Die
Uhrzeit-Angabe entspricht dabei dem Wert, der sonst auch in der Taskleiste
angezeigt wird.

Texturmasse:
Wenn aktiviert, gibt der Wrapper auch an, wieviel Textur-Speicher f�r die Puffer-
Texturen gerade ben�tigt werden. Dieser Wert sollte stets unterhalb dessen bleiben,
was die Grafikkarte auch wirklich an Textur-Speicher besitzt. Wandert der Wert doch
mal zu hoch, so empfehle ich, den simulierten Textur-Speicher zu verringern.
Reihenfolge:
Ein Klick auf diesen Button ver�ndert die Reihenfolge, in der die Daten auf dem
Bildschitm dargestellt werden (was ist Unten, was Oben,...). Rechts bei den
Parameter-Infos wird angezeigt, wie das dann in etwa sp�ter aussieht. Wenn nur zwei
Werte dargestellt werden sollen, muss man evtl. mehrfach klicken.

Extensions:

Hier kann eingestellt werden, welche Extensions vom Wrapper benutzt werden sollen.
Normalerweise braucht man hier nichts deaktivieren, es sei denn der OpenGL-Treiber
macht Probleme, oder man will explizit was austesten....

GL_EXT_vertex_array:
Wenn aktiviert und unterst�tzt, werden Vertex-Daten nicht umst�ndlich St�ck f�r
St�ck an den OpenGL-Treiber �bergeben, sondern zuerst "gesammelt" und dann in einem
Rutsch �bertragen.

GL_ATI_fragment_shader:
GL_ARB_fragment_program:
GL_EXT_paletted_texture:
Wenn eine dieser Extensions aktiviert ist und vom OpenGL-Treiber unterst�tzt wird,
kann der Wrapper die 8-Bit-Texturen vom Spiel direkt verwenden. Ansonsten m�ssen
sie in 16-Bit-Texturen konvertiert werden, was Zeit und Platz braucht.
Wenn mehrere dieser Extensions aktiviert sind, bekommt die EXT-Variante eine h�here
Gewichtung, als die ARB-Variante, welche wiederrum h�her gewichtet wird als die
ATI-Variante.

GL_EXT_shared_texture_palette:
Wenn der Wrapper die 8-Bit-Texturen des Spiels mittels GL_EXT_paletted_texture
realisiert, kann hiermit eingestellt werden, ob alle Puffertexturen eine gemeinsame
Palette benutzen sollen, oder ob jede ihre eigene bekommt (welche am Ende dann doch
immer denselben Inhalt haben).

GL_EXT_packed_pixels:
Wenn der Wrapper die 8-Bit-Texturen des Spiels �ber 16-Bit-Texturen simulieren
muss, kann mit dieser Extension das Nachladen von Texturen beschleunigt werden.

GL_EXT_texture_env_combine:
Wenn der Wrapper die 8-Bit-Texturen des Spiels nicht mit Shadern realisiert, kann
hiermit eine korrekte Berechnung einiger Transparenz-Effekte erzielt werden.
Allerdings ist die sonstige Abweichung nur minimal.

WGL_EXT_swap_control:
Wenn aktiviert und vom Treiber unterst�tzt, kann hier das manuelle Einstellen von
der vertikalen Synchronisation erm�glicht werden.

WGL_ARB_render_texture:
Wenn aktiviert und von OpenGL unterst�tzt, rendert der Wrapper erst in eine Textur
und von dort dann auf den Bildschirm. Dieser Zwischenschritt reduziert zwar die
Framerate, sorgt bei Desktop-Aufl�sung bzw. verg��ertem oder verkleinertem Fenster
f�r eine bessere Grafik.

Std/Export:

In diesem Menu k�nnen die Standardwere wiederhergestellt werden. Au�erdem k�nnen


die Einstellungen in eine TXT-Datei exportiert werden.

Standardwerte wiederherstellen:
Stellt einfach nur alle Werte wieder auf Standard.
+Registry-Eintr�ge entfernen:
Zus�tzlich werden die Eintr�ge, die f�r den Wrapper in der Registry vorgenommen
wurden, gel�scht.

Exportiere Einstellungen:
�ffnet ein Dialogfenster zum speichern in eine Datei. Die Einstellungen werden
dann in eine TXT-Datei exportiert.

Test:

Dies ist eigentlich kein Menu, sondern es startet einen Testlauf, mit dem der
Wrapper auf funktionalit�t gepr�ft werden kann, ohne dass man gleich das Spiel
starten muss. Der Test sollte nach M�glichkeit eine Framerate �ber 50 FPS erzielen,
was aber auch nicht so schwer sein d�rfte....

Deutsch/English

Hier kann ausgew�hlt werden, in welcher Sprache der Wrapper (bzw. das Frontend)
laufen sollen.

Beenden:

Beendet das Programm

6.Hinweise/technische Aspekte

hmm ja, wo soll ich anfangen? ja genau, ich fange mal damit an, was den Wrapper vom
Direct3D-Modus von Diablo2 unterscheidet:

1. Der Direct3D-Modus von Diablo2 erstellt wesentlich weniger Puffer-Texturen, als


der Glide-Modus, wodurch h�ufiger nachgeladen werden muss.

2. Der Wrapper benutzt OpenGL, der Direct3D-Modus DirectX6


Das Manko ist hierbei, dass DirectX6 keine 8-Bit-Paletten-Texturen unterst�tzt und
Diablo2 daher 16-Bit-Texturen benutzen muss.

3. Desweiteren ist bei DirectX die Textur-Verwaltung anders als bei OpenGL und
Glide:
Der Verwaltungsoverhead bei DirectX ist immens im Vergleich zu OpenGL oder Glide.
OpenGL und Glide haben also bei dynamisch zu ladenden Texturen einen Vorteil, und
hier liegt der Hund begraben: bei den Texturmassen, die Diablo2 hat, m�ssen fast
alle Texturen dynamisch verwaltet werden. Und an dieser Stelle versagt Direct3D:
das dynamische Laden von Texturen dauert eine ganze Ewigkeit (bei OpenGL nur 'ne
Halbe)

Um diese Probleme zu umgehen muss der Wrapper u.A. mehr Texturen erstellen, als in
Glide gerade ben�tigt werden: bei 16Mb simuliertem Textur-Speicher kann der Wrapper
durchaus 24MB Texturen in OpenGL erstellen, h�ngt aber auch von den Einstellungen
ab.

Fairerweise m�chte ich aber erw�hnen, dass man den Programmierern bei Blizzard
keine voreiligen Vorw�rfe machen darf:
dreht man einfach mal die Zeit zur�ck und schaut sich den Stand der Technik an, wie
er war, als das Spiel programmiert wurde, so war man vor das Problem gestellt, dass
man mit den wenigen Ressourcen, die die damalige Hardware bereitstellte, haushalten
musste. So gesehen holt die Direct3D-Engine von Diablo2 tats�chlich nahezu fast
alles aus DirectX6 raus, was rauszuholen ist. Nur ist das halt nicht viel, bzw. die
Technik hat sich soweit weiterentwickelt, dass man doch wieder mehr draus machen
k�nnte. Nur m�sste man die Direct3D-Engine neu schreiben.....oder auf OpenGL
wechseln........ oder die Grafikkarten-Hersteller liefern echte Glide-Treiber f�r
ihre Grafikkarten (DAS w�re optimal, dann k�nnte man auch auf den Wrapper
verzichten, aber ob sie sich jemals diese M�he machen werden?)

Aber zur�ck zum Wrapper


selbiger nutzt wie schon erw�hnt OpenGL und stellt hier auch Anspr�che:
Es werden folgende Extensions f�r die korrekte Darstellung ben�tigt:
GL_EXT_texture_env_combine
GL_EXT_bgra
folgende Extensions sind vorteilhaft:
GL_EXT_vertex_array
GL_ATI_fragment_shader
GL_ARB_fragment_program
GL_EXT_paletted_texture
GL_EXT_shared_texture_palette
GL_EXT_packed_pixels
WGL_ARB_render_texture

Darum sollte der OpenGL-Treiber der Grafikkarte mindestens die OpenGL1.3-


Spezifikation erf�llen.

werden obendrein noch die Extensions GL_EXT_paletted_texture,


GL_ATI_fragment_shader und/oder GL_ARB_fragment_program unterst�tzt, so werden
(wenn aktiviert) 8Bit-Texturen verwendet, was das Nachladen von Texturen
signifikant beschleunigt.

Da der Wrapper OpenGL benutzt, existiert hier auch der 60Hz-Bug, wenn als
Betriebssystem Windows2000 oder WindowsXP installiert ist und die
Bildwiederholfrequenz nicht manuell eingestellt wurde. L�sungen zu diesem Bug gibt
es im Internet zuhauf: einfach in eine Suchmaschine eintippen oder mal bei den
Internet-Seiten einiger PC-Zeitschriften reinsehen,
oder eben im Einrichtungsfrontend von dem Wrapper eine bestimmte
Bildwiederholfrequenz vorgeben.

7.Versions�nderungen:

Version 1.4e:
in der glide3x.dll
kleinere Bugs bzgl. Mausbegrenzen und Taskwechsel behoben
Ber�cksichtigung eingebaut, dass D2 das Fenster u.U. nicht mehr minimiert, wenn das
Spiel nicht mehr im Vordergrund l�uft.
feste Gr��e von 1280x1024 auf 1280x960 korrigiert
in der glide-init.exe
die Einstellungen k�nnen nun in eine TXT-Datei exportiert werden

Version 1.4d:
in der glide3x.dll:
Frameraten-Begrenzung eingebaut.
Feste Fenster-Gr��e eingebaut.
der Wrapper merkt sich bei Bedarf die Fenster-Position.
32-Bit ist nun standard
GL_EXT_vertex_array ist nun per Standard deaktiviert.
32MB simulierter Grafikspeicher ist nun standard
in der glide-init.exe:
der Grafikkarten-Texturspeicher-Durchsatz wird nun auch in einem Diagramm
dargestellt. Anhand dieses Diagramms kann der Wrapper darauf eingestellt werden,
von einem bestimmten Grafikkarten-Speicher auszugehen.

Version 1.4c:
in der glide3x.dll:
Bug behoben, GL_EXT_vertex_array betreffend. Diese Extension sollte nun auch mit
neueren Grafikkarten-Treibern funktionieren.
Breitbild-Anpassung separat einstellbar gemacht.
kleinere Bugs bzgl. der Status-Anzeige behoben.
Workaround f�r den "Gidbinn-Bug" eingef�gt
in der glide-init.exe:
der Grafikkarten-Textur-Speicher wird nun mittels OpenGL ermittelt
die Angabe f�r den Textur-Speicher wird auf maximal 256MB begrenzt
der Testlauf wurde dahingehend gefixt, dass er nun auch auf echten 3dfx-Karten
l�uft

Version 1.4b
in der glide3x.dll:
Bug behoben, der auftrat, wenn Maus begrenzen aktiviert war und man ingame via ALT-
ENTER von Fenstermodus auf Desktopaufl�sung gewechselt hatte
render to texture aufgesplittet in WGL_ARB_render_texture und bilinearer Filter
in der glide-init.exe:
Fehler berichtigt

Version 1.4a
in der glide3x.dll:
bei Desktopaufl�sung wird das Seitenverh�ltnis in der Aufl�sung ber�cksichtigt.
bei den Shader-Texturen die Paletten-Textur modifiziert.
kleinere Fehler berichtigt.
in der glide-init.exe:
Fehler berichtigt

Version 1.4
in der glide3x.dll:
die Textur-Verwaltung komplett neu geschrieben: Die Texturen werden jetzt
effizienter verwaltet.
8-Bit-Texturen k�nnen jetzt auch mit Shadern realisiert werden. Das Nachladen geht
dadurch schneller vonstatten, als wenn auf 16-Bit-Texturen zur�ckgegriffen werden
m�sste.
VSYNC kann jetzt vom Wrapper manuell eingestellt werden.
"DirectX f�r Videos" entfernt.
in der glide-init.exe:
Fsaa/Multisampling entfernt : nutzlos bei D2
feste Gama-Tabelle entfernt
Render to texture hinzugef�gt
Supersampling hinzugef�gt
Shader-Gamma hinzugef�gt
kein Gamma hinzugef�gt
das Frontend komplett neu geschrieben.
Einstellungen werden jetzt in der Registry gespeichert.
OpenGL-Informationen k�nnen eingeholt werden, worauf auch kleinere Hilfestellungen
gegeben werden k�nnen.
Das Frontend kann den Inhalt der Readme-Dateien darstellen.
Ferner wurde auch ein Testlauf eingef�gt, mit dem der Wrapper auf Funktionalit�t
gepr�ft werden kann, ohne dass man das Spiel starten muss.
desweiteren: Dateinamen geringf�gig ge�ndert

Version 1.3c
in der glide3x.dll:
der Wrapper rendert jetzt immer in ein eigenes Fenster, welches direkt �ber dem von
dem Spiel dargestellt wird. Dadurch ist es �berhaupt erst m�glich,
Multisampling/FSAA zu verwenden, bzw. die Fenstergr��e anpassbar zu machen. Als
kleinen Vorteil erh�lt der Wrapper auch die M�glichkeit direkt zu erkennen, ob sich
das Spiel minimiert hat, wodurch der Parameter "weicher Aufl�sungswechsel" nicht
mehr n�tig ist.
DirectX wird jetzt nur noch f�r Videos verwendet, wenn �berhaupt.
An der Render-Engine selbst hat sich aber nichts ver�ndert.
in der gl32oglinit.exe:
"weicher Aufl�sungswechsel" entfernt
"DirectX zum Einrichten" umbenannt in "DirectX f�r Videos"
"Textur f�r Videos" hinzugef�gt
Einstellm�glichkeit f�r die Bildwiederholfrequenz hinzugef�gt
"Fenster extras" hinzugef�gt
"Desktopaufl�sung" hinzugef�gt
Einstellm�glichkeit f�r Multisampling/FSAA hinzugef�gt
in den "readme"s:
faq hinzugef�gt
desweiteren: Dateinamen geringf�gig ge�ndert

Version 1.3b
in der glide3x.dll
�nderungen an den Combiner-Modi vorgenommen. Das Problem mit den Textur-Umrandungen
ist damit erledigt. Auch wird jetzt schneller zwischen den Combiner-Modi
gewechselt.
Wenn GL_EXT_vertex_array vom Grafikkarten-Treiber nicht unterst�tzt wird, greift
der Wrapper auf eigene Konstrukte zur�ck. Der Wrapper l�uft dann auch auf diesen
Rechnern, wenn auch nicht ganz so schnell. Ferner sind auch die Extensions
GL_EXT_texture_env_combine und GL_EXT_bgra nicht mehr zwingend notwendig,
allerdings wird es zu Grafikfehlern kommen, wenn diese nicht vom Grafikkarten-
Treiber zur Verf�gung gestellt werden.
�nderungen an den Wrapper-Einstellungen werden jetzt auch on-the-fly �bernommen:
das Spiel minimieren, �nderungen vornehmen, Spiel wieder in den Vordergrund
bringen, fertig.
in der gl32oglinit.exe:
Frontend ver�ndert
Schalter f�r Info-Anzeige Reihenfolge hinzugef�gt
Schalter f�r Sprachen-Wechsel hinzugef�gt
desweiteren gibt es jetzt eine deutsche "liesmich.txt" und eine englische
"readme.txt"

Version 1.3a
in der glide3x.dll
kleine �nderungen an den Combiner-Modi vorgenommen. Kompatibilit�tsprobleme sollten
jetzt seltener auftreten.
in der gl32oglinit.exe
Schalter hinzugef�gt:
Uhr
zentriert
DirectX zum Einrichten
feste Gamma-Tabelle
Maus begrenzen

Version 1.3
in der glide3x.dll
Vertex-Arrays werden verwendet und auch vorrausgesetzt. Der Prozessor wird dadurch
beim Rendern der Bodentexturen weniger stark belastet. Der Wrapper kann angewiesen
werden, beim Aufl�sungswechsel nicht vorher auf die Desktop-Aufl�sung zu wechseln.
Der wechsel selbst geht dadurch schneller von statten, daf�r wird beim Wechsel der
Anwendung allerdings die Aufl�sung auch nicht zur�ckgesetzt.
in der gl32oglinit.exe:
Schalter f�r weichen Aufl�sungswechsel hinzugef�gt.
Schreibfehler berichtigt.

Version 1.2
in der glide3x.dll :
Wrapperinterne Texturverwaltung modifiziert. Der Prozessor wird dadurch weniger
stark beansprucht, daf�r werden aber noch mehr Texturen erstellt.
Neben der Framerate kann aber auch angezeigt werden, wieviel an Texturen durch den
Wrapper tats�chlich erstellt werden.
in der gl32oglinit.exe:
Schalter f�r zus�tzliche Stats hinzugef�gt.
Den Bereich f�r den Textur-Speicher auf 8-108MB heraufgesetzt.

Version 1.1
in der glide3x.dll :
Die an Diablo2 gemeldete Textur-Speicher-Konfiguration ge�ndert. Das Spiel
verwaltet die Texturen dadurch effizienter.
Das Aktualisieren von 16-Bit-Texturen ge�ndert.
in der gl32oglinit.exe:
den Schalter 8-Bit-Texturen in die drei Schalter GL_EXT_palettized_textures,
GL_EXT_shared_texture_palette und GL_EXT_packed_pixels aufgespalten.
Den Standard-Wert f�r den simulierten Textur-Speicher auf 16MB angehoben.
Den Bereich f�r den Textur-Speicher auf 8-64MB gesetzt.

8.H�ufig gestellte Fragen

Seit Erscheinen des Wrappers wurde schon die eine oder andere Frage an mich
herangetragen. An dieser Stelle m�chte ich die wichtigsten schonmal im Vorraus
abhandeln.

1. Wenn ich den Wrapper unter Diablo2 benutze ist die Framerate miserabel (irgendwo
bei 1FPS) und evtl. sogar in Fehlfarben.

Der Wrapper benutzt OpenGL und ist daher darauf angewiesen, dass der Computer auch
mit korrekt laufenden OpenGL-Treibern eingerichtet ist. Warum jetzt kein korrekter
OpenGL-Treiber vorliegt kann von Fall zu Fall unterschiedlich sein.
Mir sind bisher nur folgende L�sungsm�glichkeiten bekannt:
- Grafikkarten-Treiber neu installieren
- bei vorhandensein mehrerer Grafikkarten oder Monitore: Sekund�r-Anschl�sse
deaktivieren

Ferner gibt es f�r einige �ltere Grafikkarten �berhaupt keine OpenGL-Treiber, in


dem Fall hilft dann nur der komplette Austausch der Grafikkarte.

2. der Wrapper l�uft, D2 liefert auch ein korrektes Bild, aber die Framerate ist
nicht besser, als vorher.

generell steht der Wrapper vor einem Problem: aus Sicht des Gesamt-Systems (also
des kompletten Rechners an sich) stellt der Wrapper nur eine zus�tzliche Belastung
dar. Um jetzt die Framerate nicht schlechter zu machen, als sie vorher war, bewirkt
der Wrapper (im �bertragenen Sinn) , dass die Last st�rker von der Grafikkarte, als
vom Prozessor abgearbeitet wird. Wenn jetzt aber nun in einem Rechner gerade die
Grafikkarte der Grund f�r die schlechte Framerate ist (z.B. ein 3GHz-System mit ner
Riva128), dann ist das nicht verwunderlich, dass die Framerate MIT dem Wrapper
schlechter ist, als ohne. In solch einem Fall ist da der Vergleich mit dem DDraw-
Mode von D2 eher angebracht.
L�sungsm�glichkeit:
Hardware-Ebene:
- Herausfinden, welches das schw�chste Bauteil im Rechner ist, und um/aufr�sten:
ein 3GHz Prozessor und GF FX5900 sind nutzlos, wenn in dem Rechner nur 64MB Ram
eingebaut sind (nur so als Beispiel).
Software-Ebene:
- neue/andere Treiber installieren. F�r mehrere Bauteile (zum Beispiel die
Grafikkarte) gibt es mehr als nur einen Treiber, und nicht immer ist der Neueste
auch der Beste....
- Hintergrund-Programme k�nnen ebenso die Leistung des Rechners reduzieren, von
Viren,W�rmern,Trojanern usw. mal ganz zu schweigen.
- wenn das Spiel �ber den "-w"-Parameter im Fenstermodus betrieben wird muss auch
der "-3dfx"-Parameter in der Verkn�pfung eingetragen sein: D2 benutzt sonst weder
Glide noch Direct3D

3. ich spiele im SP und die Framerate will partout nicht �ber 25FPS gehen, egal
welcher Grafikmodus!

Das ist im SP normal, und von Blizzard auch beabsichtigt.


Wenn man seine lokalen Helden auch mit maximalen FPS spielen k�nnen will, muss man
wohl oder �bel ein Multiplayer-Game erstellen, wobei es dann allerdings egal ist,
ob es ein TCP/IP oder open/closed bnet-game ist.

4. ich spiele im Multiplayer, aber mit dem Wrapper geht die Framerate nicht �ber
60FPS.

Aller wahrscheinlichkeit nach ist der Monitor auf 60Hz gestellt. Entweder kann der
Monitor tats�chlich nicht mehr, oder es handelt sich hier um den "60Hz-Bug",
welcher unter Windows NT/2K/XP vorkommt.
Einige Grafikkarten-Treiber liefern von sich aus eine M�glichkeit, den Bug zu
umgehen, in anderen F�llen kommt man aber nicht umhin, einen "Refreshrate-fix" zu
installieren.

5. die Framerate ist zwar nicht bei 60FPS aber daf�r konstant bei (z.B.) 90FPS. Bei
Anderen l�uft das Spiel aber auf wesentlich schlechteren Rechnern mit wesentlich
besserer Framerate (z.B.200FPS).

normalerweise wird die Framerate durch den Grafikkarten-Treiber bei der


Monitorfrequenz gecapt. Was auch nicht unlogisch ist: wenn der Monitor nur 90
Bilder pro Sekunde darstellen kann, warum sollte der Rechner dann 200 pro Sekunde
berechnen (110 davon wandern doch ungesehen in den M�ll)? Au�er zum Angeben hat das
den Vorteil, dass man an dieser hohen Framerate sehen kann, wieviel "Luft" der
Rechner noch hat, also wieviel zus�tzliche Belastung der Rechner noch aush�lt,
bevor es sichtbare Einbu�en (=Ruckeln) gibt.
dieses Begrenzen der Framerate kann man meistens in den Grafik-Optionen der
Grafikkarte ein-/ausstellen und tr�gt den Namen "VSYNC" (Abk�rzung f�r "Vertikale
SYNChronisation").

6. manchmal ist die Grafik so dunkel.

Der Wrapper hat es nicht geschafft, die Gamma-Einstellung vorzunehmen.


mir bisher bekannte L�sungsm�glichkeiten:
- im Spiel Gamma und Kontrast nachstellen
- feststellen, ob ein Hintergrund-Programm gelegentlich auf den Bildschirm zugreift
(oder zumindest zugreifen m�chte) und diese/s deaktivieren.
- evtl. Grafikkarten-Treiber neu installieren
- im Grafikarten-Treiber nachschauen, ob dort eine Helligkeits-Steuerung vorgegeben
werden kann.
- wenn vom Treiber unterst�tzt: shader-gamma im Frontend aktivieren

7. ich habe auch einige Mods zu dem Game installiert, l�uft der Wrapper auch damit?

Prim�r habe ich den Wrapper f�r die Original-Fassung von dem Spiel programmiert.
Ferner habe ich auch nicht die Zeit und Mu�e alle Mods zu dem Spiel auf
Vert�glichkeit hin zu testen. Das muss man dann schon selbst ausprobieren. Generell
kann ich dazu nur sagen:
eigentlich sollte der Wrapper mit jedem Mod klarkommen, oder anders ausgedr�ckt:
die Mods sollten mit Wrapper nicht mehr Probleme machen, als ohne.
Bisher habe ich den Wrapper nur in Kombination mit dem ChaosEmpire-Mod und Snej
getestet, und konnte da bisher keine Fehler feststellen, auch wurde mir bisher noch
kein Problem mit der Vertr�glichkeit von "offizieller Seite" berichtet.
ich habe zwar auch den D2-Accelerator angetestet (und hier ebenfalls keine Fehler
feststellen k�nnen), allerdings wurde schon mehrfach von Problemen mit dem Mod an
sich berichtet.

8. ich habe den Wrapper jetzt installiert, l�uft auch gut, aber kann man da nicht
noch mehr rausholen?

besser geht's eigentlich immer, irgendwie;-)


wenn der Wrapper noch auf der Standard-Einstellung l�uft, kann man auf jeden Fall
noch was mit dem "Textur-Speicher" rausholen.
welche Einstellung hier jetzt nun optimal ist, wird wohl von Rechner zu Rechner
unterschiedlich sein, ich sehe hier folgende Faustformel als gute N�herung an:
Bei Grafikkarten, die die 8-Bit-Texturen unterst�tzen k�nnen (z.B. alle Geforces
und Radeons ab 8500):
Textur-Speicher = echter Grafikkarten-Speicher / 4 * 3
bei allen anderen Grafikkarten:
Textur-Speicher = echter Grafikkarten-Speicher / 8 * 3

9. Ich spiele mit dem Wrapper im Fenstermodus, aber jedes mal, wenn ich das
Inventar �ffne springt die Maus an die falsche Stelle.

Das Problem basiert darauf, dass die Glide-Engine von dem Spiel eigentlich gar
nicht f�r den Fensterbetrieb vorgesehen ist.
Das Problem kann aber gl�cklicherweise umgangen werden, indem man in der Spiel-
Verkn�pfung die Start-Parameter -w und -3dfx anf�gt. so dass da z.B.
"c:\spiele\Diablo II\Diablo II.exe" -w -3dfx
steht.

10. Vista, Wenn ich den Wrapper starte kommt nur ein schwarzes Bild/Fenster und
oben Links vom Monitor werden nur Zeichen langsam durchlaufen.

Bitte erstmal vergewissern, ob bei Vista die Aero-Glass-Oberfl�che aktiv ist. Wenn
ja, dann bitte testweise deaktivieren.
Der Wrapper nutzt die OpenGL-Schnittstelle. Unter Vista steht die echte OpenGL-
Schnittstelle nicht zur Verf�gung, wenn Aero-Glass aktiviert ist.
In der Start-Verkn�pfung von Diablo2 l�sst sich aber einstellen, dass bei
Programmstart Aero-Glass automatisch deaktiviert, und bei Verlassen des Programms
auch wieder automatisch aktiviert wird: dazu bitte in den Eigenschaften der D2-
Startverkn�pfung im Karteireiter 'Kompatibilit�t' bei dem K�stchen
'Desktopgestaltung deaktivieren' den Haken setzen.
Der Wrapper kann auch selber Aero-glass tempor�r deaktivieren. Daf�r unter renderer
den Haken bei "Desktopgestaltung erhalten" entfernen.

9.Sonstiges
Dieser Wrapper ist Freeware und darf somit frei kopiert und weitergegeben werden,
solange die Dateien selbst unver�ndert und beieinander bleiben.
Bei der Programmierung habe ich mein h�chstes Augenmerk auf die Stabilit�t
gerichtet, nichtsdestotrotz kann ich keinerlei Garantie daf�r geben, dass der
Wrapper auf jedem System einwandfrei l�uft. Zu umfangreich sind die M�glichkeiten,
die daf�r sorgen k�nnen, dass der Wrapper denn doch �rger ausl�st.

Aber immerhin, auf den Rechnern, auf denen ich den Wrapper bisher eingesetzt habe,
ist der Performance-Gewinn gegen�ber dem Direct3D-Mode doch recht ansehnlich.
bye
Sven Labusch