Verehrte Gäste, in unserer Reihe "Zwei Stühle - ein Rechner" ist es mir endlich gelungen, "Jet of AVENA" als heutigen Gesprächspartner an die Tastatur zu bitten. Richtig, auf vielfachen Wunsch gibt es endlich mal wieder etwas aus der Scene-Trickkiste, für die assemblerwütige Leserschaft.
Und darum habe ich heute auch nur ein kurzes Gastspiel und möchte alle modemlosen Falcon-Besitzer auf ein interessantes Sharewarelabel aufmerksam machen. Es geht um Falcon HiColor Games". Wen es schon immer ärgerte, daß es auf dem VCS 2600 schönere Games als auf dem Falcon gibt, dem kann jetzt geholfen werden. PAC-Man ist wieder da! Am Gameplay hat sich nichts verändert, nur, daß der runde Herr in satter Zitronenfarbe mit zeitgemäßem True-Color-Outfit, niedlichen (gerenderten) Sprites und coolen Samples auf dem Falcon Pillen mampft. Klaro, daß Ihr ihm dabei mit Joypad, Stick oder Tastatur beisteht. Nun gab es bestimmt schon seit frühesten ST-Zei-ten etliche Adaptionen dieses Klassikers, aber immer hatten sie irgendeinen Haken. Mal war die Grafik schlecht, mal nervte die Sound-Kulisse. PAC-Them" von HiColor Games" aber ist eine runde Sache, es überzeugt in der Aufmachung und zeigt sich auch in technischer Hinsicht gut und mit Liebe zum Detail umgesetzt. Da mir das gefiel, kontaktete ich gleich mal den Programmierer und erfuhr, daß Benutzer, die die Shareware-Gebühr (20,- DM) entrichten, als Belohnung noch GANYMED" bekommen. Hinter diesem Titel versteckt sich ein Astero-ids"-Verschnitt, der ebenfalls mit original Gameplay, cooler Grafik und knackigem Sound aufwartet.
Noch interessanter ist aber SPICE", ein noch in der Mache" befindlicher Defender-Clone. Das schnell geschickte Preview (Danke!) begeisterte mich schon durch softiges Scrolling und schöne Grafik. Also, wer jetzt neugieriggeworden ist, kann sich ja einfach mal an folgende Adresse wenden:
Martin Steen
Gabelsberger Str. 24
38118 Braunschweig
Meiner Meinung nach ist das endlich mal Shareware, die dem Falcon gerecht wird und vielleicht ja auch ein nettes Weihnachtsgeschenk für Falco-nesen. Alle, die Pac-Them" schon aus Mailboxen haben, sollten sich bequemen und den Zwanni" rüberwachsen lassen, denn mangelnde Resonanz motiviert niemanden.
Gut, natürlich verabschiede ich mich nicht, ohne alle, die auch '96 vor einem Gerät mit dem ATARI-Logo sitzen werden., meines Beistandes zu versichern und (schon traditionell) besonders Silli und Gwen zuzuwinken. ... das war A.-t- für dieses Jahr, frohes Fest"
Da jedem bekannt sein sollte, daß man auf dem Falcon, wenn man einen RGB-Monitor (oder einen Fernseher) angeschlossen hat, Bit 0 in Register $ffff82C3 setzen kann, um den sogenannten Double-Scan-Modus (100-Zeilen-Modus) einzuschalten, möchte ich diesen Trick" hier auch nicht weiter erläutern. Solche Hardware-Tricks wurden ja schon zur Genüge vorgetragen, wie z.B. der Cinemascope-Effekt oder ähnliches. Deshalb möchte ich heute einen schnellen Kreisalgorithmus vorstellen, der, in Assembler programmiert, wirklich eine erstaunliche Geschwindigkeit aufweist. Dieser Algorithmus ist unter dem Namen Bresenham-Kreisalgorithmus bekannt. Da ein Kreis symmetrisch ist, braucht nur ein Achtel des Kreises berechnet zu werden, das durch verändern der Vorzeichen und durch Austauschen der x-und y-Werte gespiegelt werden kann. Die Grundidee des Algorithmus ist die Kreisgleichung:
x2 + f - r2
Wenn y eine Funktion von x ist und r ein konstanter Wert für den Radius, dann bekommt man eine Gleichung in der eine Wurzel zu ziehen ist:
y=V(7^j.
Das ist eine sehr rechenzeitintensive Angelegenheit und sollte deshalb auch vermieden werden. Genau das hat Bresenham gemacht. Er hat das Wurzelziehen vermieden. Das eigentliche Prinzip des Algorithmus ist folgendes: Am Anfang wird x=0 und y=r gesetzt, wobei r ja der Radius ist. Ist die Bedingung:
x2+y2-r2l >= Ix2+(y-l)s-r'l
erfüllt, darf y um l vermindert werden, sonst nicht. Nach dieser Bedingungsabfrage werden die Pixel gesetzt, zu x 1 addiert und geprüft ob schon ein Achtel des Kreises berechnet wurde. Sollte das nicht der Fall sein, muß wieder zur Bedingungsabfrage gesprungen, und die ganze Prozedur von vorne durchlaufen werden. Sollte aber ein Achtel des Kreises erreicht worden sein, läßt sich das leicht prüfen, denn dann ist x>=y.
Wenn man den Algorithmus noch verfeinert, erhält man ein Programm, , das ganz ohne Multiplikation aus-* kommt. Das Assembler-Programm zeigt, wie's geht.
Viel Spaß damit, Jet ot'AVENA