Als ich dieses literarische Meisterwerk aus Kindertagen wieder gefunden hatte, gab‘s nur eines: Aus Rache, dass ich dies einmal lesen mußte, habe ich die Story „vergamet“: Herausgekommen ist natürlich ein Space-Invaders-Versuch. Und weil ich bisher immer im Monochrome-Mode gegurkt habe, war diesmal CGA in den klassischen Farben schwarz-magenta-türkis-weiß dran.„Auf dem Multivision-Sichtschirm des Raumkampfschiffes „Space-Eagle“ kam die „Basis Imperial“ ins Bild. Sehr klein und noch weit entfernt.
„Space-Eagle“-Commander Alain Slyton sah zu seinem Co-Piloten Fred Kerber hinüber. „Alles in Ordnung, Major?“
Fred Kerber nickte: “Bin froh, daß wir endlich wieder unsere Raumbasis vor der Nase haben. War eine furchtbare Raumpatrouille diesmal!“
Disclaimer:
1. Falsches Sub-Forum? Wahrscheinlich, aber irgendwie mußte ich bei dem Untertitel „Projekte“ immer an Softwareprojekte denken...
2. Story? - Geklaut! Und nicht mal gut! Wer aufmerksam das Buch liest, wird schnell feststellen, dass der weitere Handlungsablauf von mir vollkommen frei erfunden ist: Ich bin nicht (noch einmal) über die Lektüre des Titels und des ersten zitierten Absatzes hinausgekommen!
3. Grafiken? - Geklaut, zumindest der 8x8 Font (angeblich free). Und für die Flügelanimationen hatte ich Vorlagen, die ich quasi nur durchgepaust habe. Leider dürften diese Animationsvorlagen auch nur gerippt sein. Mit ein Grund, warum ich den Projektversuch hiermit vorzeitig für beendet erkläre.
4. Musik? - Auch nur geklaut, und zwar von ZATZEN. Und diesmal mit freundlicher Genehmigung! Danke!
5. Code? - Vergurkt: Unter einem 486sx25, besser 486sx33 mit zackig schneller VGA (ET4000-Kategorie) geht nicht viel!
6. DosBox? - Leider Nein. Der Videomode (s.u.) funktioniert leider nicht unter DosBox. Es wird eine echte VGA benötigt.
Wer trotz dieser Widrigkeiten sich die Mühe macht, und das Teil vom (wieder einmal javascript verseuchten) filehoster runterlädt, kriegt schon jetzt eine dickes Danke von mir!
ACHTUNG: Läuft nicht unter DosBox!
http://uploading.com/6emd65m8/FEDOS096-ZIP
[v0.96, 31.3.2013]
Noch ein paar Einzelheiten:
- Der Grafikmode ist der originale CGA Mode $05. Allerdings benutze ich die vollen 32 kb, die die VGA für diesen 4-Farb-Modus zur Verfügung stellt ($B8000-$Bffff). Das geht aber auf der originalen CGA nicht, da diese nur 16 kb hatte und bei Überlauf (=Adressen > 16kb) einen sogenannten WrapAround erzeugte. Diese Verhalten ahmt DosBox exakt nach, auch wenn als Grafikkarte VGA eingestellt ist. Ich kann daher unter DosBox nicht die zweite Bildschirmseite anzeigen. Damit ist das Ganze unter DosBox nicht lauffähig. Als ich das bemerkt hatte, war es leider schon zu spät. Ich habe mich dann entschieden auch weitere VGA - Register zu nutzen: Auch wenn der Video-Mode ein nach wie vor echter 4-Farb-Modus ist, ist das ganze also von vorne bis hinten jetzt VGA-only!
- Musik: Die 4-channel-Mods sind Erstlingswerke von Zatzen, die er als 14-Jähriger erstellt hat. Ich kann neidlos sagen, dass Zatzen schon damals, was das Komponieren betrifft, wesentlich weiter war, als ich es z.B. nach Jahren der Hobby-Programmierung in Sachen Codeerstellung heute bin.
Wer von Zatzen‘s Musik noch nicht so überzeugt ist, sollte bedenken, dass die Mods von meinem komplett eigenen Player abgespielt werden und die Abspielqualität damit denkbar niedrigst ist. Ich empfehle daher Zatzen‘s Musik mit einem besseren Mod-Player (z.B. Inertia Player) abzuspielen oder sich auf Zatzen‘s Seite (http://www.zatzen.net) umzugucken. Da kann man auch seine neusten Sachen Probehören und sehen, welche Entwicklung er in den dazwischen liegenden knapp 20 Jahren gemacht hat. (PS: mein denkbar schlechtester modplayer liegt dem Archiv auch bei, "mp.exe")
- Der Code ist erwartungsgemäß der Schwachpunkt bei dem Ganzen: Obwohl ich wie immer alles, was ich über‘s Programmieren weiß, hineingesteckt habe, benötigt dieser CGA-Versuch einen 486sx25 im Minimum (besser wohl 486sx33). Und schon ein 486sx25 ist heftig schnell. 16-bit Datenzugriffe (ungecached) erledigt er nach meinen Tests doppelt so schnell wie ein 386sx16. Code führt er bis zu 7x so schnell aus, wie der 386sx16!
Der Code selbst besteht aus 9.800 Zeilen, nahezu alles ist pures Turbo Pascal. Lediglich die Vermix-Routine vom ModPlayer besteht komplett aus ein paar hundert ASM-Zeilen.
Neben dem Ärgernis, dass das Teil nicht unter DosBox läuft, gibt es noch ein paar Probleme:
Manche Boards haben einen Real Time Clock - Bug. Eine fehlerhafte Programmierung meinerseits schließe ich ausnahmsweise einmal aus. Der Real Time Clock-Bug hat zur Folge, dass der Rechner irgendwann „einfriert“. Tritt dieser Fall ein und passiert das Ganze nicht, wenn man im Config-Menü Timing per Timer einstellt, dann hat das Board so einen Bug (Betroffen sind meiner bisherigen Erfahrung 486er/Pentium-boards mit Award oder Phoenix - Bios).
Daneben gibt‘s noch VGAs mit verschiedenen Pel-Panning-Bugs. Einen davon kann man im Config - Menü beheben lassen. Andere leider nicht.
Auch die Soundblasters können einen Bug haben: Obwohl ich die DSP-Abfrage wie aus dem Creative-Lehrbuch mache, mag das eine ältere Aztech Soundkarte manchmal nicht. Sie hängt sich manchmal einfach auf, wenn ich dem DSP mitteile, dass ich seine Version wissen will. Deswegen kann man im Menü die DSP-Version fix einstellen und zwar auf DSP 1.x für alte SB 1.0/1.5-Karten und DSP 2.x für alles besser oder gleich der Soundblaster 2.0.
Wenn sich jemand die Mühe machen sollte, das Teil herunter zu laden und auszuprobieren, würde ich mich sehr über die Info freuen, wo es gehakt hat. Grundsätzlich interessiert mich da CPU, BIOS-Hersteller, Grafikkarte; Auch wenn ich keine 1.0-Version dieses Mini-Games machen werde, wäre diese Info für mich sehr interessant, weil ich mich ggf. entscheiden muß, ob ich zukünftig das Timing überhaupt nicht mehr über RTC machen werde und ob ich weiter Zeit in die 4-Farb-Modi investieren werde. Oder gleich auf die 16 Farbmodi gehe!
Danke!
Edit (2.12.12): Config-Menü überarbeitet; Mods am Anfag geladen;
Edit (31.3.13): Config-Menü-Bug behoben