medien. reise. technik.
Tobias Maasland Logo
Meinen RSS-Feed abonnieren
Jetzt ganz doll neu!

dosbox 3dfx Games mit OpenGL auf Linux

– You’ve ever wondered how to get good ol’ 3dfx games working in dosbox on your Linux machine? Find the english tutorial after this paragraph! –

Ha! Und es ist doch möglich! Nach ein paar Tagen forschen funktionieren nun alte 3dfx-Games auf meiner eee 900 Kiste mit eeebuntu Standard 2.0. Wie genau ist das möglich? Ich werd’ versuchen, es möglichst genau zu erklären. Im Folgenden findet ihr eine Anleitung, um 3dfx-Games in dosbox unter Linux zocken zu können!

English

– Here you are for the english version –

This entry is made for beginners and everyone else

To play those old gems like Tomb Raider or Descent 2 in 3dfx you need a modified version of dosbox. Modifying dosbox is not too hard and I try to be as clearly as possible.

First of all, I take no responsibility for the health of your system. Use this tutorial at your own risk! You have been warned.

You have to be sudo/root for parts of this tutorial. And also, of course, you need an acclerated graphics card. To make sure that you’re system is ready to roll check with the command glxinfo | grep rendering. If it says direct rendering: Yes then you’re off to go! If it says No, please find out first how to install accleration on your system.

If you ever run into trouble because a command is not to be found, just check if you can get it by apt-get. E.g. sudo apt-get install patch

Oh, and it looks longer than it actually takes!

  1. Get build tools
    sudo apt-get install libsdl1.2-dev libsdl-sound1.2-dev libsdl-net1.2-dev libpcap-dev build-essential cvs
  2. Get current OpenGLide version
    cvs -d:pserver:anonymous@openglide.cvs.sourceforge.net:/cvsroot/openglide login

    (When asked for a password, just press Enter)

    cvs -z3 -d:pserver:anonymous@openglide.cvs.sourceforge.net:/cvsroot/openglide co -P openglide

    sudo apt-get install autoconf libtool

    cd openglide

    ./bootstrap

    ./configure
    make
    sudo make install

    If you have a problem with make (an error in gbanner.cpp) open the file, search for include <glide.h> and replace it with include <sdk2_glide.h>. Now enter make clean and then make.

  3. Get dosbox version
    Since the patch is available for the 0.73 version, you just have to download the dosbox source file for that version. Here is the link:

    http://sourceforge.net/project/downloading.php?group_id=52551&filename=dosbox-0.73.tar.gz&a=58875563

  4. Get patch out of forum
    Go to the Vogon forums and download both files. Put the patch one folder higher than the dosbox folder. Make sure your dosbox folder is called dosbox.

  5. Apply patch
    cat dosbox_glide.diff | patch -p0

    This should run through without any problems. If not, make sure you have the right cvs version (from the exactly date) and you are one folder level higher than the dosbox folder.

  6. Compile dosbox
    Change into the dosbox folder.

    ./autogen.sh

    ./configure CPPFLAGS=”-I /usr/local/include/openglide/”

    make

    sudo make install

    Now you have a glide enabled dosbox version on your Linux machine, installed and ready to use! But before we really start off, there are a few settings which have to be checked first.

  7. Start dosbox
    It is important that you use the OpenGLide library libglide2x.so and not the one provided from the system. To do that, you have to execute the following line first before starting dosbox.

    export LD_LIBRARY_PATH=/usr/local/lib

    dosbox

    It is also possible to put both commands into one line if you would like to make a start menu entry.

    LD_LIBRARY_PATH=/usr/local/lib dosbox

    You have to use this every time, otherwise the OpenGLide libraries cannot be found.

  8. Write configure file
    In dosbox, use the command

    CONFIG -WRITECONFIG dosbox.conf

    to write the config file. There is now a dosbox.conf in your current folder. Only if you start dosbox out of this folder you get the configuration. If you want to have this configuration enabled always, copy the file to ~/.dosboxrc

  9. Check Glide is enabled
    Exit dosbox and check in dosbox.conf if in the section [glide] it says glide=true

  10. Install glide2x.ovl
    Now you have to extract the glide2x.ovl file into the game folder and into the folder where you will start dosbox. Make sure (!) that you rename the file to lowercase with rn Glide2x.ovl glide2x.ovl, otherwise the wrapper cannot find the file!

  11. Start dosbox again
    Start dosbox again (don’t forget the LD_LIBRARY_PATH command if you are in a new shell)

  12. Start the game!
    Change into your favorite game folder, make sure you are starting the 3dfx version and enjoy!

FAQ

1 Q It says “Can’t find or access Banshee/V3 board”
1 A Your system supports Voodoo cards natively. This means that you have a libglide2x.so in your /usr/lib folder. Make sure you do export LD_LIBRARY_PATH=/usr/local/lib before running dosbox so dosbox knows where to look.

2 Q The patching of dosbox doesn’t work – some hooks or so
2 A Make sure you check out the version with the date provided – copy the command is the easiest choice.

And that’s all for now! I hope you enjoy playing those classics and using dosbox as an alternative to Glidos. Anyway, dosbox patched seemed to be the only way to run 3dfx DOS games on Linux. And it may be the only way, but at least there is a way! Oh, for more support to dosbox do not hesitate to go to the Vogons forums.

Updated:

20.06.2009 – Changed to dosbox 0.73

Alte Games ganz neu

Games sind für mich immer wieder ein Thema. Und wenn man eh gerade in Vancouver auf Wohnung und Job wartet – da kann man doch nochmal versuchen, was mit Linux im Allgemeinen und mit dem eee 900 im Speziellen so möglich ist.

Alte Kracher

Natürlich kann man es völlig vergessen, die neuen Games von heutzutage – ihr wisst schon, sehen klasse aus und sind völlig langweilig – auf der kleinen Kiste zu installieren. Was bietet sich also an?

  • Konsole – Jupp, SNES, Gameboy und Konsorten waren allesamt mal mein. Da hat man ein paar Klassiker gespielt! Super Mario Kart oder Street Fighter II. Die Games sind zahlreich im Netz vorhanden und solange man das Cartrige besitzt, ist alles im grünen Bereich mit runterladen. Ich hab’ mir zu diesen Konsolen aber nicht sonderlich viel angeschaut…
  • MAME – Schließlich wurden auch die alten Spielhallenklassiker wie Paperboy, Raiden oder Ghouls ‘n Ghosts irgendwo mal gezockt. Mit dem Emulator MAME ist es möglich, dieses Spielhallenflair bei sich zuhause aufleben zu lassen. Hier ein Einblick in die Welt von MAME. Doch Vorsicht: MAME legt Wert auf korrekte Emulation, nicht auf Geschwindigkeit und gutes Aussehen. Klassische Racing-Games können aktuelle Rechner also schon gut ins Schwitzen bringen! Da ich aber keine Arcade-Maschinen mein Eigen nenne, nützen mir die ganzen ROM-Seiten nix. Wer übrigens House of the Dead zocken möchte, braucht Nebula Model 2 als Emulator und nicht MAME. Das könnte ganz witzig werden: Die Wiimote per Bluetooth an den Rechner anschließen und dann wie im Original Zombies dahinraffen. Leider nur unter Windows.
  • Flipper – Unglaublich viele Flipper wurden originalgetreu umgesetzt. Alles, was man braucht, ist Visual Pinball und VPinMAME, um original Tische bei sich auf dem Rechner zu spielen. Weiteres in den VPForums. Nur Windows, und damit für mich aus dem Spiel. Für Flipperinteressierte gibts hier ne Liste mit weiteren Spielmöglichkeiten.
  • DOS – Ja, richtig gelesen. DOS. Der erste Teil von Tomb Raider fällt mir da ein. Oder Bleifuß 2 (englischer Titel: Screamer 2), Bleifuß Fun (engl.: Ignition), Theme Hospital oder Carmageddon. Hmm. DAS klang interessant. Ist es irgendwie möglich, alte DOS-Games unter Linux vernünftig zum Laufen zu bekommen?

Starthilfe
Dazu fiel mir ein alter Begriff ein: Abandonware. So manche alte Software ist heutzutage ohne Publisher oder Rechteinhaber und somit royalty-free, kostenlos, aus dem Netz ladbar.

Auch hier gibt es wieder zuhauf Webseiten, die diese alten Perlen zum Download anbieten. Ich habe nicht wirklich eine beste Seite gefunden, sondern immer wieder Herrn Google gefragt. Und einiges gefunden.

Wunderbar, aber und nun? Wohin mit all dieser Software, womit starten und ausführen?

DOSmania

Dazu gibt es einen klasse Emulator, der unter Windows wie unter Linux funktioniert: dosbox. Was hab’ ich gelacht, als ich dieses alte Benutzerinterface auf meinem eee 900 eeebuntu sah. Verrückt.

Und tatsächlich: Die Demo von Tomb Raider I lief auf anhieb. Völlig irre: Ich kann es auf dem eee 900 nur auf niedrigster Auflösung spielen, aber das zumindest weitestgehend flüssig. Aber hey – es läuft. Dieses uralte DOS-Spiel. Unter dosbox. In Linux.

Geschützte Welten

Dann gab es ja noch den DOS4GW Protected Mode Wrapper. Dieser war dazu da, um Applikationen den Zugriff auf HiMEM-Bereiche zu gestatten – das waren die Gegenden über 640k. Wie es der Zufall will, gibt es eine bessere Version. Es gibt anscheinend verschiedene Versionen dieses Wrappers, und eine der Enterprise-Versionen wurde freigegeben – die musste man früher für viel Geld erstehen. Das Programm heißt DOS32A und kann ganz einfach ausgetauscht werden. Somit kann man selbst diese Komponente ein wenig tunen. Kann jedoch durchaus sein, das das Programm mit DOS32A abstürzt und mit DOS4GW läuft. Das ist dann wohl so.

Und dann packte es mich richtig. Gab es nicht einen 3dfx-Patch für Tomb Raider? Jo. Ob ich das wohl irgendwie aktivieren kann? Was ist mit anderen Games, ob 3dfx oder nicht?

Handarbeit

Eines war sicher: Im Internet gibt es Fans für alles mögliche. So hatten Fans hochauflösende Grafiken erstellt, die man für Tomb Raider, Carmageddon oder Descent II herunterladen und nutzen konnte. Möglich macht all das Glidos. Glidos ist ein Glide-Wrapper für DOS-Games. Der Wrapper verarbeitet die 3dfx-Befehle in Glide-Befehle. Ein weiterer Wrapper kann nun diese Befehle aufgreifen und nach OpenGL oder DirectX umwandeln. Das Game selber bekommt davon gar nix mit. Glidos selber ist kostenlos, zeigt jedoch ein drehendes Logo ingame an. Für 10 US-Dollar bekommt man die Anleitung zugestellt, wie sich dieses Logo entfernen lässt.

Der einzige Fallstrick war nur, dass Glidos mit nicht wine (korrekt, eine Windows-Emulation) lief. Und leider ist die 3dfx-Version von Tomb Raider nicht konform – einige Code-Teile greifen hartverdrahtet auf Voodoo-Hardware zu. Richtig, so hießen die alten Grafikkarten der ersten Beschleuniger-Version, lang bevor Dualcore-Hyperthread-Ionenangetriebene-Turbinengekühlte Krassgrafikkarten Einzug in unsere Rechner hielten. Dies trifft unter anderem auch auf Carmageddon und Descent II zu. Somit lässt sich, auch mit anderen Wrappern, leider keine Umleitung erzielen. Zumindest unter Linux. Schade.

Es gibt noch andere Wrapper, so zum Beispiel den dgVoodoo-Wrapper. Schade nur, dass dosbox Glide-Aufrufe nirgendwohin weiterleitet. Es gibt zwar unoffizielle Builds, aber all das scheint seit langem nicht mehr aktiv zu sein. Die Emulation von 3dfx mit Windows-Programmen funktioniert problemlos, wenngleich auch recht langsam.

Ich habe mal drei Grafiken erstellt, die die Zusammenhänge der Wrapper hoffentlich etwas verständlicher machen:

Um 3dfx-Games für DOS zu spielen, braucht es also ein Programm wie Glidos. Oder eine neu compilierte dosbox-Version. 3dfx-Games für Windows haben eine Vielzahl an Wrappern, unter anderem dgVoodoo, OpenGLide, zeckensack’s Glide Wrapper und viele mehr. Unter Linux wird das ganze schwierig, da Glidos nicht funktioniert. Mit einer selber compilierten dosbox-Version mit Glide-Support ist es jedoch möglich – auch wenn ich nicht weiß, wo sich diese Patches befinden.

Der eee 900 ist verhältnismäßig stark und wenn einem nicht viel an Knallergrafik gelegen ist, kann man sich betagte Games auch so reinziehen. Na, und von Abandonware mal abgesehen – es gibt auch so noch genügend Games für Linux, Windows und BeOS. Aber dazu in einem anderen Eintrag mehr.