SDL und Atari - ein Anleitung um Spiele und andere Software zu portieren
Was ist SDL?
SDL ist die Abkkk?rzung fff?r Simple Direct Media Layer. Das Ganze ist eine sog. Library, die am ehesten mit DirectX von Microsoft zu vergleichen ist. Sie ist quasi die Schnittstelle zwischen der Soft- und der Hardware. Will heissen wenn der Programmierer sein Programm mit SDL entwickelt, kann dieses theoretisch auf jedes andere SDL-ff hige System portiert werden, indem man es einfach nur kompiliert. Die hardwarespezifischen Dinge ?bernimmt SDL dann (Ansteuerung von Monitor, Abfrage der Tastatur, etc.). Soweit die Theorie, in der Praxis treten manchmal einige Probleme auf, gerade wenn man elitt re und exotische Hardware wie den Atari verwendet. Aber es geht oft einfacher als man denkt und selbst ich, als (noch) Nicht-C++ Programmierer habe schon mehrere Spiele erfolgreich auf den Atari portiert. Was brauche ich, um einen Port zu machen? - einen Atari auf dem MiNT ll uft (theoretisch langt ein 68000er, besser aber ab Falcon und TT aufww rts), ein PC mit Aranym tut's auch! - SDL - wchar.h (ist am Ende des Textes zu finden. Einfach kopieren, in neuen Text einfff?gen und unter /usr/include als wchar.h abspeichern - die Source eines SDL Spiels (z.B. toppler.sourceforge.net) Los geht's: Als erstes installiert man EasyMiNT (kann man unter http://atari.st-katharina-apotheke.de herunterladen). Wichtig hierbei ist, dass man NUR(!!!) basic, standard, net und devel installiert. (evtl. kann man X11 noch installieren, das habe ich aber nicht getestet). Unbeding von lib die Finger lassen, da es mindestens eine library enthh lt die das Portieren von SDL Spielen fast unmm glich macht. Auf jeden Fall fff?r Anff nger! Ich ww re daran fast verzweifelt! Hat mich zwei Wochen gekostet, bis jemand (mikro ) darauf gekommen ist! WW hlt bitte Xaaes staren, ohne login aus. Anders geht es zwar auch, aber wer mit der bash startet, kennt sich damit vermutlich sowieso aus... Hat man das hinter sich und das System auf seine WWW?nsche eingestellt (verwende t man Xaaes muss man bis auf die Laufwerk nichts verr ndern), kann es schon fast losgehen ;-) Bei der Verwendung von Myaes (mein LieblingsAES zur Zeit), muss man unbedingt die Variable (export PATH) zu c:/tmp mit # auskommentieren, da sonst auch das kompilieren nicht klappt. Fragt mich nicht warum, hab ich auch nach ein paar Tagen erst rausgefunden. Ohne ll uft es jedenfalls prima! Okay, als nn chstes besorgt man sich SDL. Das kann man unter http://pmandin.atari.org beziehen. Getestet habe ich alles mit SDL-devel-1.2.13. Wenn es ne neuere Version gibt, ist es wahrscheinlich kein Problem diese zu verwende. Zuguterletzt geht man auf http://sparemint.atari.org und saugt sich lib-ldg.rpm. Die Dateien heissen nicht genau so wie ich schreibe (bin zu faul zum tippen), aber man findet sie leicht, wenn man sich de Packages alphabetisch sortieren ll sst. Die heruntergeladenene Dateien speichert man nun (am einfachsten) im obersten verzeichnis seiner ext2 Partition (die wonach Easymint bei der Installation gefragt hat). In meinem Fall ist das j:/ . Die folgenden Hinweise beziehen sich auf meinen Fall. ndert bei euch einfach das j in euren Partitions- buchstaben um! Okay, aber jetzt geht's ans Eingemachte: das heruntergeladene Zeugs will schliesslich auch installiert werden: Als erstes startet man die "Bash". Das geht indem man toswin2 starte und dann unter Datei "Shell starten" ausww hlt. Danch ffnet sich ein Fenster mit der Eingabeaufforderung und man befindet sich im sog. root Verzeichnis. Zum Installieren der Pakete gibt man zunn chst "cd /" ein. Dann tippt man erst "rpm -i lib-ldg.rpm" und dann "tar xzf SDL-devel-xxx.tar.gz" ein. Beachtet, dass ihr nattt?rlich den exakten Dateinamen eingeben mmm?sst und auch die Gross- und Kleinschreibung beachtet! Zuguterletzt noch die Datei wchar.h nach j:/usr/include/ kopieren (einfach ?ber den Desktop) Danach ist das System fertig eingerichtet und ihr kk nnt mit dem Portieren loslegen! (SDL_mixer und die anderen SDL Teile, die von einigen Programmen benutzt werden installiert ihr analog, wird aber nur benn tigt, wenn man Sound haben will... auf Patrices Seite ist auch beschrieben, welche rpms man dafff?r dann noch braucht) Das Installieren einer Source: Okay, schnappen wir uns nun ein Spiel, welches wir fff?r den Atari kompilieren wollen: Nehmen wir zum Beispiel o.g. toppler.tar.gz Die Datei herunterladen und auf j:/ abspeichern. In die Bash gehen. Wichtig, dass man nun im "root" Verzeichnis ist. Also ggf. mit cd /root dahinein wechseln. Nun gibt man "tar xzf /j/toppler.tar.gz" ein. Ist der Entpackvorgang fertig, wechselt man mit "cd toppler" in das Verzeichnis. Ist man sich wegen des Namens nicht sicher, kann man mit "dir" nachsehen, oder man ffnet das root Verzeichnis mit dem Desktop. Anschliee end gibt man noch "./configure" ein... dann laufen viele viele Tests ab, dann "make" und wenn man will noch "make install". Letzteres installiert toppler systemweit, so dass man es aus jedem Verzeichnis aufrufen kann... ob das sinnvoll ist, oder nicht, kann jeder selbst entscheiden... Starten tut man toppler nun mit "toppler" oder "./toppler". Letzteres ist der Fall, wenn man nur "make" eingegeben hat. ACHTUNG: Bei Toppler gibt es eine Besonderheit, BEVOR man "make" eingibt, muss man noch mit einem Texteditor (am Besten QED) zwei Dateien in dem Verzeichnis ndern: und zwar "decl.h" und "decl.cc" In diesen muss man am Ende //#ifdef WIN32 .. //#endif so abb ndern (die // waren vorher nicht da). Dies ist nur bei Toppler so. Xrick (Rick Dangerous) kann man beispielsweise ohne jeglich nderung kompilieren. So genug der bung nun auf ans Werk! Sucht ?ber Google nach "Sdl game open source", oder seht unter www.libsdl.org nach, ladet fleissig Sourcen herunter und tippt ./configure und make bis die Finger bluten ;-) Es dauert manchmal recht lange, bis man ein passendes Spiel findet, was "out of the box" ll uft, aber es geht, GANZ OHNE PROGRAMMIERKENNTNISSE! Lest euch vorher auch mal die INSTALL Anleitungen durch, oft muss man auch nur make eintippen, oder wie bei xrick ./config (Xrick hat leider auf dem Falcon nen Graphikbug, unter Aranym geht es... komisch...). Lasst euch nicht unterkriegen und portiert was das Zeug hh lt! Viel Spass! Euer Christian PS: Zum Starten der Programme unter TOS einfach das Verzeichnis auf eine Atari Partition kopieren und z.B. xrick in xrick.ttp umbenennen. MM glicherweise gehen einige Sachen unter single TOS nicht, weil lange Dateinamen benn tigt werden... Habt ihr Fragen, oder fertige Ports: meldet euch unter atari-falcon<at>gmx<punkt >net Hier die wchar.h: #ifndef _WCHAR_H #define _WCHAR_H /* Get size_t, wchar_t, wint_t and NULL from <stddef.h>. */ #define __need_size_t #define __need_wchar_t #define __need_NULL #define __need_wint_t #include <stddef.h> #endif /* _WCHAR_H */