CYBORG HELLGATE – DIE VERSIONEN, TECHNISCH BETRACHTET
Cyborg Hellgate ist ein Bullet-Hell-Shooter im Defender-Stil: ein scrollender Planet, ein Scanner, Humanoide zum Retten und eine große Auswahl an Gegnern – Lander, Mutanten, Baiter, Bomber, Pods, Swarmer, Fireflinger, Dunderheads, Yellowbelly-Goldfische, Fudd und Big Dud – dazu MECHRAs Power-Ups, der HELLGATE-Warp, Ghosto, Guard, HIT-Ketten und gigantische Mechs.
Jede Version ist in NTC BASIC geschrieben und in nativen Threaded-Code kompiliert, wobei die geschwindigkeitskritischen Teile in Z80 oder 68000 umgesetzt sind. Die Spiellogik basiert bei allen Versionen auf demselben BASIC; was sich unterscheidet, ist die Art und Weise, wie die jeweilige Maschine das Bild aufbaut.
GLEICHZEITIG AUF DEM BILDSCHIRM (DIE LIMITS DES SPIELS, IDENTISCH IN JEDER VERSION)
- Gegner: bis zu 16 gleichzeitig (4 neben den Mechs in einem Boss-Level).
- Humanoide: 8.
- Riesen-Mechs: bis zu 5, jeweils 64 x 48 (12 Sprites auf dem Next).
- Explosionen: 6. Pickups (P, großes P, Edelsteine): 6.
- Das Schiff.
- Feindliche Projektile: bis zu 52.
- Laserschüsse: bis zu 22 (16 Lasersalven auf dem Mega Drive, jede Salve ein bis drei Strahlen).
- Das macht bis zu ca. 110 bewegte Objekte gleichzeitig – die Sterne noch gar nicht mitgerechnet.
ZX SPECTRUM NEXT (DAS ORIGINAL)
- 28 MHz Z80N, 50 Bilder pro Sekunde.
- Layer 2 für den Boden, der Copper für das Scrolling, die Tilemap für das Panel und die Texte.
- Hardware-Sprites für alles, was sich bewegt. Die Riesen-Mechs sind 64 x 48 groß und bestehen aus 12 Sprites: Es wird nur die linke Hälfte gespeichert, die rechte Hälfte nutzt dieselben Sprites gespiegelt.
- Projektile und Laser werden in Z80 bewegt, geprüft und gezeichnet: 52 gegnerische Geschosse und 22 Laserschüsse als Hardware-Sprites.
- Die Sprite- und Schriftdaten liegen in den NEX-Bänken 45–47 außerhalb des Programmspeichers.
- Auf dem Bildschirm: 128 Hardware-Sprites – Slots 0–53 für das Schiff, Gegner, Humanoide, Explosionen, Pickups und Mechs; 54–127 für die 52 Geschosse und 22 Schüsse – sowie 60 Sterne auf Layer 2.
- Sprachausgabe-Build (CYBHELLV): 25 Vocoder-Sprachzeilen mit 13,6 kHz, die per Next-DMA direkt an den DAC übertragen werden, sodass der Z80 dafür kaum Ressourcen benötigt. Erfordert einen Next mit 1 MB.
SEGA MEGA DRIVE / GENESIS
- 68000 mit 7,6 MHz, H40 (320 x 224), NTSC 60 Hz oder PAL 50 Hz.
- Alles, was in jedem Frame für jedes Objekt anfällt, läuft über den 68000: der Tick für alle 14 Gegnertypen und die Humanoiden, die Pickups, das Pad, das Schiff und der Bildausschnitt, die 52 feindlichen Schüsse und 16 Lasersalven, die Spritetabelle, der Scanner und die Landschaftsspalten. Das BASIC bestimmt, was erscheint, wie viele Punkte ein Abschuss bringt und die Texte.
- Plane B: die Sterne – gescrollt mit einem Viertel der Geschwindigkeit des Bodens (der Next-Parallaxe-Effekt) – und der Scanner. Plane A: die Texte, das Panel und der Boden. Alles, was sich bewegt, ist ein Hardware-Sprite. Die Spritetabelle, der Scanner und neue Landschaftsspalten werden per DMA während des vertikalen Austastintervalls (Vertical Blank) an den VDP übertragen.
- Das Spiel taktet sowohl unter NTSC als auch unter PAL mit den 50 Ticks pro Sekunde des Next (1.500 Ticks in 1.800 NTSC-Frames, 1.500 in 1.500 PAL-Frames); das Scrolling läuft auch bei 60 Hz flüssig.
- Auf dem Bildschirm: Das Mega Drive stellt 80 Hardware-Sprites dar, maximal 20 pro Zeile (der Next: 128), aufgeteilt auf das Schiff, die 16 Gegner, 8 Humanoiden, Mechs, Explosionen, Pickups, 52 feindliche Geschosse und 16 Lasersalven; Zeilenüberläufe traten in weniger als 1 % der getesteten Frames auf. Die Sterne sind Tiles auf Plane B und verbrauchen daher keine Sprites.
- Soundeffekte über den PSG, wobei jede AY-Periode konvertiert wird. Sprachausgabe-Build (CYBHELLV): die Vocoder-Sprachausgabe des Next über den DAC des YM2612 mittels eines Z80-Players, der während des DMA-Transfers den Bus des 68000 nicht blockiert.
- 74 KB ROM, 612 KB mit Sprachausgabe.
- 3- und 6-Button-Pads.
- Fünf Schwierigkeitsgrade (Links / Rechts auf dem Titelbildschirm): EASY ein Bonus alle 10.000 Punkte, MEDIUM alle 50.000, HARD alle 100.000, VERY HARD alle 100.000 ohne Extraleben, INSANE wie gehabt, aber mit nur einem Schiff zu Beginn.
- Per Bot auf Genesis Plus GX bis über Welle 25 hinaus durchgespielt.
AMSTRAD CPC (VOLLVERSION)
- 4 MHz Z80, Modus 0, doppelt gepufferte Bildschirme bei #C000 und #0000. Keine Sprite-Hardware: alles läuft über Software.
- Kompilierte Sprites: Jedes Sprite ist eine Z80-Routine, die ihre Bytes direkt in den Bildschirmspeicher schreibt – in normaler und gespiegelter Fassung. 118 Muster, ca. 49 KB Code, ausgelagert in das Zusatz-RAM des 6128; der Rest des Programms liegt in Bank 7.
- Löschlisten: Es werden nur die tatsächlich gezeichneten Bytes wieder geschwärzt. Der Boden und die Sterne verwalten eigene Listen.
- Frame-Takt über einen IM-2-Interrupt basierend auf den 300 Hz des Gate-Arrays, mit einer 257-Byte-Vektortabelle, damit es auch auf erweiterten Systemen funktioniert, auf denen der Bus nicht #FF liest.
- Auf dem Bildschirm: 57 Software-Sprite-Slots (Schiff, Gegner, Humanoide, Explosionen, Pickups und die 12 Segmente eines Mechs), bis zu 52 feindliche Projektile und 22 Laserschüsse als kleine Blobs mit eigenen Löschlisten sowie 24 Sterne.
- Fest an jeden zweiten Frame gekoppelt: 25 fps im Echtzeit-Tempo des Next bei verdoppelter Schrittweite. Stark beanspruchte Wellen laufen mit 16–19 fps.
- Erfordert 128 KB (einen 6128 oder einen 464 / 664 mit 64-KB-Erweiterung).
AMSTRAD CPC LITE
Dieselbe Engine, für flüssiges Spielen optimiert:
- Gepunkteter Boden: jede 8. Weltspalte, fest an die Spielwelt gekoppelt beim Scrollen.
- Keine Sterne und kein Scanner.
- Das Panel wird nur eingeblendet, solange TAB gedrückt gehalten wird. Die violette Linie bleibt sichtbar, damit man erkennt, wie hoch die Lander steigen.
- Unmaskierte kompilierte Sprites (Rand-Bytes werden direkt geschrieben): Der Sprite-Code schrumpft auf 27,6 KB in zwei Bänken.
- Die Weiterschaltung der Sprite-Zeilen erfolgt via pop bc / add hl, bc über Tabellen pro Zeile statt durch Addieren und Prüfen in jeder Zeile.
- Inaktive Aliens: Alles, was weiter als 240 Welt-Pixel vom Sichtfeld entfernt ist, stoppt vollständig (samt Timern), bis man in die Nähe fliegt. Da der Scanner fehlt, bemerkt man es nicht. Tragende Lander, fallende Humanoide, Verfolger und die Mechs bleiben immer aktiv.
- Keine Dunderheads: Sie bewegen sich zu schnell, als dass der CPC sie flüssig darstellen könnte.
- Auf dem Bildschirm: Dieselben 57 Sprite-Slots, 52 Projektile und 22 Laserschüsse wie in der Vollversion, keine Sterne – und dank des Inaktivitätsmodus bewegen sich nur die Aliens nahe am Sichtfeld.
- Meist 25 fps, vereinzelte Einbrüche in extrem hektischen Wellen. 128 KB.
AMSTRAD CPC + V9990 (AMSDAP MIT EINER MSX GFX9000 ODER VIDEO9000 ODER EINER POWERGRAPH)
- Der CPC übernimmt die Spiellogik; der V9990 übernimmt das Zeichnen im P1-Modus: zwei hardware-gescrollte Tile-Ebenen und 125 Hardware-Sprites (16 x 16, 16 Farben).
- Boden und Sterne auf einer Ebene, das Panel und der Scanner auf der anderen. Alle Sprites laufen über Hardware; die Mechs nutzen gespeicherte, gespiegelte Kopien, da P1 keine automatische Spiegelung beherrscht.
- Auf dem Bildschirm: Die 125 Hardware-Sprites des V9990 (16 pro Zeile) stellen die 57 Objekt-Slots des Spiels plus die Geschosse und Laserschüsse dar (bis zu 52 und 22) sowie 60 Sterne auf der Hintergrundebene.
- Mehr als 16 Sprites pro Zeile: Die Reihenfolge der Geschosse kehrt sich in jedem Frame um, sodass sie flackern statt komplett zu verschwinden.
- Ein Frame Vorsprung: Ein fertig berechneter Frame wird zwischengespeichert und erst beim nächsten Frame des V9990 dargestellt, sodass ein schneller Frame Zeit für einen langsameren überbrücken kann. Der Preis dafür ist ein Frame (40 ms) Eingabeverzögerung.
- Die rechenintensivsten BASIC-Teile wurden in Z80 ausgelagert: Steuerung, Taktung, Punktestand, die Bordwaffen der Mechs.
- 25 fps in den Wellen 1–2 und den Boss-Levels; die Bullet-Hell von Welle 7 lief in 93 % der Frames absolut im Timing.
- Kleiner als die reine CPC-Version (66 KB gegenüber 87 KB): Sprites liegen als 4-Bit-Daten im Speicher der Steckkarte und nicht als kompilierter Code vor. Erfordert 128 KB und die Karte an Adresse &FF60.
MSX2 + V9990 (GFX9000, VIDEO9000, POWERGRAPH)
- Nahezu derselbe Code wie die Version für CPC + V9990: Der V9990-Treiber ist identisch; lediglich Tastatur-, Joystick-, Sound- und Speichercode weichen ab.
- Zwei Builds aus einem Quellcode: eine MSX-DOS 2- / Nextor-.COM-Datei mit zwei Datendateien (geladen in Memory-Mapper-Pages, ähnlich wie der CPC seine Speicherbänke belegt) und ein 128-KB-ASCII16-MegaROM, das mit dem freien C-BIOS läuft.
- Sound über den PSG (derselbe AY-Chip wie im CPC), Tonhöhen angepasst an den MSX-Takt von 1,79 MHz.
- Auf dem Bildschirm: identisch zur Version CPC + V9990 – 57 Objekt-Slots, 52 Geschosse, 22 Laserschüsse, 60 Sterne.
- Der V9990 läuft grundsätzlich mit 50 Hz, weshalb das Spiel sowohl auf 50-Hz- als auch auf 60-Hz-MSX-Rechnern mit der gleichen Geschwindigkeit läuft.
- Nahe an der Performance von CPC + V9990: Welle 1 in 99 % der Frames im Soll, Welle 7 in 83 %.
TESTING
- CPC-Versionen in Caprice32; CPC + V9990 in 1984 (dem CPC-Emulator mit Unterstützung für PowerGraph V9990); das MSX-ROM in openMSX mit GFX9000-Erweiterung; das Mega Drive in Genesis Plus GX.
- Sämtliche Versionen wurden zusätzlich per Bot über verschiedene Angriffswellen, Riesen-Mech-Levels und bis zum Game Over in NTCs eigenen Timing-Testumgebungen durchgetestet.
- Alle Zahlen stammen aus Emulatoren und Testumgebungen, nicht von echter Originalhardware.
- blueMSX bietet keine V9990-Unterstützung: Für die MSX-Version bitte openMSX oder WebMSX nutzen.
(c) 2026 Cyborg Unicorn Pty Ltd