Wer sich mit dem Highwire-Code auf Grundlage des Ataquariums 01/2002 beschäftigt hat, wird wohl schon gemerkt haben, das sich dort einiges getan hat. Tatsächlich gibt es inzwischen mehr Aktivität rund um Highwire und ständig werden Routinen umbenannt, verschoben oder ganz herausgenommen. Derzeit in der Testphase ist die Einbindung von GIFs.
Rodolphe Czuba hielt unterdessen den Prototypen der CT060 und fragte sich: "80 MHz oder 100 MHz , das ist die Frage. Ob es einem edlen Ingenieur anständiger ist, sich dem geschmolzenen Silizium zu unterwerfen, oder seinem Brodeln entgegen zu stehen, und durch ein herzhaftes Pusten es auf einmal zu besänftigen?" Aber wie es das Schicksal in jeder Tragödie so will, hat es Rodolphe nicht geschafft und die CT060 läuft nun mit 66 MHz. Ob sie bei einer Stückzahl von 120 Stück große Auswirkungen auf den Atari-Markt haben wird, sei dahingestellt.
Natürlich lagen auch die Mannen des xtos nicht auf ihrer faulen Haut und erteilten mit königlichem Segen dem Platinenlayout die Freigabe. Das Layout liegt schön coloriert auf der Webseite und natürlich folgte fünf Minuten später ein Anruf von Czuba Tech bei Motorola, "Ob der Coldfire gewandet sei in feinstem Cyan?" Nein, antworte Motorola und Czuba frohlockte. Ein dreifaches "Ha!" entkam seinem Mund und es dünkte ihm, das dahinter ein arglistiges Täuschungsmanöver stecken mußte: eine cyanfarbene CPU! Wo doch jeder weiß, das Prozessoren schwarz oder grau sind!
Genug des Schabernacks, denn dafür ist nächsten Monat noch genug Zeit. Die Aufmerksamkeit möchte ich diesmal auf eine neue Library lenken: SDL. Patrice Mandin hat die Library und ein erstes Spiel dafür auf den Atari portiert. Dieses Spiel ist natürlich das Spiel, das so ähnlich heißt wie die Lautäußerung eines Frosches und dessen Namen wir nicht nennen dürfen, da sonst von einer berühmt-berüchtigten Bundesprüfstelle ein lebenslanges Junk-Food-Verbot ausgesprochen wird, um sich mal eines alten Programmiererklischees zu bedienen.
SDL ist salopp formuliert das für den 2D-Bereich, was Open-GL für 3D ist.
Nimmt man einmal ein Open Source-Projekt (z.B. den Commodore-Emulator VICE), so sind diese meistens für GnuC geschrieben und damit auf vielen Plattformen kompilierbar. Startbar ist das Produkt jedoch in den meisten Fällen nicht, da auch in als plattformunabhängig geltenden Produkten die Hardware angesteuert werden muß - was nützt auch ein C64-Emulator ohne Grafik, Sound und Tastatur/Joysticks? In diesem kleinen Teil muß also für jede Plattform eine Anpassung vorgenommen werden. Da lag doch die Idee nahe, den ganzen plattformabhängigen Teil einer Library anzuvertrauen. Wenn die Library erst einmal auf ein System portiert wurde, ist der Aufwand für die Portierung des entsprechenden Programms noch geringer. Diese Library heißt SDL (Simple Directmedia Library) und liegt in der Version 1.2.3 für MiNT vor. Dies ist auch die aktuellste SDL-Version.
SDL wird von Spielen, Demos und Anwendungen, größtenteils aus dem Multimedia-Bereich, genutzt.
Mit SDL kann ein Video-Modus in einer beliebigen Farbtiefe eingestellt werden (ab 8 Bit). Da nicht jeder Modus von der Hardware unterstützt wird, findet auf Wunsch eine Konvertierung statt. Oberflächen mit Transparenz können erstellt werden, womit die Gestaltung von Software-Sprites vereinfacht wird. Kopieroperationen (Blits), werden automatisch in das Zielformat konvertierung und - wenn möglich - von der Hardware beschleunigt. Die Library unterstützt das BMP-Format zum Laden von Grafiken. Ein Beispiel dafür aus der Einführung in SDL [1] gibt es in Listing 1. Die (notwendige) Initialisierung ist in den Beispiel nicht enthalten. Für andere Bildformate sind Libraries erhältlich, die auf SDL basieren. Damit werden dann auch GIF, JPEG und PNG-Bilder unterstützt.
Um Ereignisse abzufragen, bietet SDL Routinen für die Auswertung von Maus-, Tastatur- und Joystick-Eingaben. Einzelne Ereignisse können ermöglicht oder verhindert werden und die Ereignis-Schlange ist Thread-sicher. Bei den Tastaturereignissen wird sogar Unicode unterstützt. Die Ereignisverwaltung erinnert etwas an die Ereignisverarbeitung auf dem Atari, auch wenn die Ereignisse andere Namen tragen (Listing 2).
Weiterhin enthält SDL Routinen zum Abspielen von Sound (8/16 Bit), Timerroutinen und verschiedene Funktionen für jeden Zweck (u.a. für Threads).
Natürlich bedeutet das Vorhandensein von SDL für den Atari nicht automatisch, das alle SDL-basierenden Programme einfach auf den ST umzusetzen wären. Natürlich kann das Programm noch andere Libraries benötigen oder bestimmte Betriebssystemfunktionen ansprechen. Eine Atari-Version könnte z.B. GEM-Fenster und Dialogboxen nutzen und wäre dann auch nicht direkt umsetzbar.
Nicht direkt ein Problem der Umsetzbarkeit ist die Geschwindigkeit des Computers. Die meisten SDL-basierenden Programme werden für schnellere Computer geschrieben und auch der böse Ego-Shooter den jeder kennt, benötigt einen leistungsfähigen Rechner. Hier sind also die Rechner ab 060 oder Coldfire gefragt, aber das ist grundsätzlich nichts schlechtes. Vor kurzem wurde z.B. ein VCS2600-Emulator (Stella) für den Atari mit MiNT und dem X11-Server veröffentlicht. Dieser nutzt zwar nicht die SDL, benötigt aber schon einen 060 für volle Geschwindigkeit. Umgekehrt läßt sich aber auch nicht hochrechnen, welchen Computer wohl ein Coldfire emulieren könnte.
Eine Liste von Anwendungen, Spielen, Demos und Libraries, die SDL nutzen, liegt auf der SDL-Homepage. Nicht alle dieser Projekte sind Open Source, denn in der Liste finden sich auch Spiele wie Civilization, Heroes of Might and Magic III, Myth II, Sim City 3000 und Unreal Tournament. Diese Spiele werden von Loki Games kommerziell für Linux vertrieben. Es gibt allerdings auch genügend "freie" Programme, die einen guten Eindruck machen. Grafisch gut gelungen und bereits für Linux, BeOS und Windows verfügbar, ist Tower Toppler, das vielen bestimmt noch als "Nebulus" bekannt ist.
Ebenfalls drollig ist das Jump'n'Run "Jump'n Bump": Hasen liefern sich mit Ketchup eine Schlacht.
An Emulatoren gibt es eine große Auswahl, von alten 8-Bit-Konsolen bis zur Playstation. Besonderer Beliebtheit erfreut sich der Intellivision-Emulator "Bliss", der perfekt diesen VCS-Konkurrenten nachahmt.
Mit SDL ist eine weitere sehr wichtige Library auf den Atari portiert. Gerade im Hinblick auf zukünftige TOS-Clones wie der ACP könnte diese Library die Basis für einige Portierungen auf die Coldfire-CPU sein.
[1] http://libsdl.org
[2] http://www.multimania.com/pmandin/