Hi,hier das Howto:
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 (verwendet
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.orgnach, 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 */