Wie Doom auf Super Nintendo kam

Bild

Dieser Artikel ist eine Übersetzung des Kapitels des Game Engine Black Book: DOOM , einer detaillierten Analyse der internen Struktur eines der einflussreichsten ID-Software-Spiele. In diesem Kapitel wird der komplexe Prozess der Portierung von DOOM auf Super Nintendo und die Schlüsselrolle des Star Fox- Entwicklers Argonaut Games beschrieben.

Das Buch wurde vom Autor und Programmierer Fabien Sanglar geschrieben und kann jetzt in Papierform und in digitaler Form erworben werden .

Das Super Nintendo Entertainment System wurde 1990 in Japan veröffentlicht und erschien im nächsten Jahr in den USA und in Europa.

Sie wurde ein 16-Bit-Nachkomme des 8-Bit-NES. In Japan war Super Famicom (FAMIly COMputer) sofort erfolgreich, und die gesamte anfängliche Charge von 300.000 Geräten war innerhalb weniger Stunden ausverkauft. Die Aufregung war so groß, dass die Regierung Nintendo um die Zukunft bat, ihre Konsolen am Wochenende freizugeben, um Unruhen zu vermeiden.

Um eine qualitativ hochwertige Spielekonsole zu gewährleisten, hat Nintendo ein rücksichtsloses Steuerungssystem entwickelt. Die Verlage hatten das Recht, nur fünf Spiele pro Jahr zu veröffentlichen. Damit diese Regel gilt, behält sich Nintendo das Recht vor, Patronen nur für sich selbst herzustellen. Verlage mussten sie bei Nintendo kaufen. Damit jeder die Regeln einhalten kann (und auch Spiele vor dem Kopieren schützt), hat die SNES-Konsole vor dem Start des Spiels überprüft, ob ein CIC-Chip vorhanden ist. Es war ein mächtiger Abwehrmechanismus, der erst gegen Ende des SNES-Lebens geknackt werden konnte.

In den neun Lebensjahren der Konsole wurden 721 Spiele veröffentlicht, darunter Hits wie Super Mario World , Zelda III ( Die Legende von Zelda: Eine Verbindung zur Vergangenheit ), Mario Kart , F-Zero , Super Metroid und Donkey Kong Land . Im Laufe der Zeit wurden fast 50 Millionen Konsolen verkauft, sodass SNES sowohl hinsichtlich des Verkaufsvolumens als auch des Spielekatalogs als eine der beliebtesten Konsolen in der Geschichte gilt.

Technisch überlegenes SNES lag im Bereich der 2D-Grafik. Sein 16-Bit-65C816-Prozessor mit einer Frequenz von 3,58 MHz verfügte über 128 KB RAM. Er steuerte eine PPU (Picture Processing Unit) mit 64 KB RAM, die große Sprites handhabte und bis zu 256 Farben mit einer Auflösung von 256 x 240 unterstützen konnte. Das Soundsystem der Konsole bestand aus einer leistungsstarken Kombination aus einem 8-Bit-Sony SPC700-Prozessor und einem 16-Bit-Digitalsignalprozessor mit 64 KB dediziertem RAM.

Trotz der beeindruckenden Engine zur Verarbeitung zweidimensionaler Sprites und insbesondere der Mode 7-Funktion fehlte der Maschine die Kraft für rechenintensive Operationen wie 3D-Computing. Nintendo erkannte klar, dass 3D die nächste wichtige Phase bei der Entwicklung von Spielen sein würde, konnte es jedoch nicht implementieren. Durch den Willen des Schicksals fand eine kleine britische Firma eine Lösung für dieses Problem.

Argonautenspiele


1982 entwickelte Jez San im Alleingang Spiele, die ausschließlich für die Computer C64, Atari ST und Amiga entwickelt wurden. Er brauchte eine Firma, um seine Kreationen zu verkaufen. Als er die Ähnlichkeiten zwischen seinem Namen (J. San) und Jason (Jason) aus dem Mythos der Argonauten sah, nannte er es Argonaut Games plc.

Das Unternehmen blieb nicht lange ein Ein-Personen-Ensemble. Bis 1990 hatte er talentierte Leute im Londoner Büro des Unternehmens versammelt und interessierte sich für die tragbare Nintendo Game Boy-Konsole, die 1989 veröffentlicht wurde. Dem Team gelang es, zwei scheinbar fast unmögliche Leistungen zu erbringen: Sie erstellten eine Drahtmodell-3D-Engine und knackten die CIC-Verteidigung, um sie auf Game Boy zu installieren.

„Das Nintendo-Logo wurde oben auf dem Bildschirm angezeigt, und als es die Mitte erreichte, überprüfte der Bootloader, ob sich das Logo an der richtigen Stelle befand.

Das Spiel wurde nur gestartet, wenn sich dieses Wort an der richtigen Stelle im ROM befand. Wenn jemand ein Spiel ohne die Erlaubnis von Nintendo erstellen wollte, musste er das Wort Nintendo ohne Lizenzierung verwenden. Daher könnte Nintendo eine Markenklage einreichen. Wir fanden heraus, dass es sich nur um einen Widerstand und einen Kondensator handelte - Teile, die etwa einen Cent kosten - und fanden heraus, wie man den Schutz täuscht. Das System las das Wort Nintendo zweimal - zuerst, um es während des Startvorgangs auf dem Bildschirm anzuzeigen, ein zweites Mal - um die Richtigkeit zu überprüfen, bevor das Spiel von der Kassette aus gestartet wird. Und es war ein fataler Fehler - als die Konsole das Wort Nintendo zum ersten Mal las, wurde Argonaut zurückgegeben, sodass es oben auf dem Bildschirm angezeigt wurde. Im zweiten Test haben wir den Widerstand und den Kondensator mit Strom versorgt, sodass Nintendo das richtige Wort war und das Spiel ohne Probleme geladen wurde “- Jez San, aus einem Interview mit Eurogamer aus dem Jahr 2014.

Auf der CES '90 hat es seine Demo-Engine vom Nintendo-Stand bis zum Büro des Unternehmens in Kyoto geschafft. Jez wusste damals nichts davon, aber er wählte die perfekte Zeit. In diesem Moment arbeitete Nintendo in Japan an Spielen für Super Famicom, die zum Zeitpunkt der Veröffentlichung der Konsole ihre technologische Überlegenheit zeigen sollten. Super Mario World steckte noch in den Kinderschuhen, aber der Flugsimulator Pilotwings war bereits ein etwas komplizierteres Spiel.

Um das Relief in Pilotwings zu simulieren, wurde der Modus 7 des PPU-Geräts (der affine Transformationen wie Drehen, Skalieren und Schneiden des Bildes in Teile ausführen kann) sowie der HDMA-Modus verwendet. Das Flugzeug selbst blieb jedoch weiterhin die übliche zweidimensionale handgezeichnete Sprite. Dies störte den Produzenten des Spiels, Shigeru Miyamoto, weil er nicht zuließ, dass sich die Kamera reibungslos um das Flugzeug drehte (die in Stücke zerbrochenen Sprites waren ungleichmäßig).

Zu dieser Zeit arbeitete Nintendo nicht gern mit Drittunternehmen zusammen, noch mehr mit Ausländern. Diesmal machten sie jedoch eine Ausnahme und luden Jeza mit Dylan Cuthbert, der an der 3D-Engine arbeitete, in ihre Zentrale in Kyoto ein.

Junge Leute (Jesu war 23 Jahre alt, Dylan war 18 Jahre alt) trafen sich mit allen Nintendo-Vizepräsidenten: Miyamoto, Gumpei Yokoi, Takehiro Izushi, Yasuhiro Minagawa und Genio Takeda. Ihnen wurde alles gezeigt, vom geheimen SNES bis zum geheimen Mario und Pilotwings . Sie wurden dann gefragt, ob es möglich sei, Ebenen als echte polygonale Objekte zu rendern.

„Ich habe ihnen gesagt, dass dies das Beste ist, was sie erreichen können, es sei denn, ich kann die Geräte so gestalten, dass SNES in 3D besser wird. Überraschenderweise sagten sie "Ja", obwohl ich noch nie zuvor Ausrüstung gemacht hatte, und gaben mir eine Million Dollar zum Verkauf. " - jes san

Jez versprach ihnen mutig eine "zehnfache" Steigerung der Produktivität, weshalb Nintendo den Vorschlag, spezielle Ausrüstung für das Spiel zu entwickeln, gerne akzeptierte. Pilotwings müssen mit Sprite-Flugzeugen freigegeben werden, um Super Famicom zu fangen, aber der Chip, später Super FX genannt, wird für ein anderes Nintendo-Projekt verwendet.

Es wurde Star Fox genannt .

Sternfuchs


Gemäß der Vereinbarung hatte Nintendo das Recht auf alle Entscheidungen über das Spieldesign und finanzierte Argonaut Games für die Produktion nicht nur der Ausrüstung, sondern auch einer 3D-Engine für das Spiel. Jez-san begann sofort, ihm bekannte britische Spezialisten einzustellen.

Um die Ausrüstung zu entwickeln, unterzeichnete er eine Vereinbarung mit Flare Technology (denselben Leuten, die den Atari Jaguar entworfen haben). Das Projekt von Ben Cheese, Rob Macaulay und James Hakeville erhielt den Codenamen Mathematical Argonaut Rotation I / O oder MARIO. Infolgedessen erwies sich das von ihnen erstellte Gerät als so leistungsstark, dass sie Super NES scherzhaft als "nur eine Box für die Installation unseres Chips" bezeichneten. Da es unmöglich war, die Konsole zu aktualisieren, wurde der Chip in jede neue Spielekassette eingelötet, was den Verkaufspreis erheblich erhöhte.

„Wir haben den Super FX-Chip so entwickelt, dass niemand vor uns die Ausrüstung entworfen hat. Zuerst haben wir die Software und unsere eigenen Anweisungen zur Optimierung der Software erstellt. Niemand hat das getan! Anstatt einen 3D-Chip zu erstellen, haben wir im Wesentlichen einen RISC-Mikroprozessor mit vollem Funktionsumfang entwickelt, der über mathematische Funktionen und Pixel-Rendering-Funktionen verfügt, während der Rest von der Software erledigt wird. Es war die weltweit erste Videoverarbeitungseinheit (Graphics Processing Unit), und wir haben Patente, die dies belegen. “- Jez Sun.

Karl Graham und Pete Warns arbeiteten im Londoner Büro des Unternehmens am Motor, während Dylan Cuthbert, Christer Wombell und Giles Goddard (und später Colin Reed) in Nintendos Büro in Kyoto zogen und eng mit dem Miyamoto-Team zusammenarbeiteten.

Das Projekt war von kommerziellem und technologischem Erfolg gekrönt. Star Fox wurde am 21. Februar 1993 veröffentlicht und vier Millionen Mal verkauft.

Die weitere Geschichte der Beziehung zwischen den beiden Unternehmen ist traurig. Die Fortsetzung des Megahits Star Fox 2 wurde von den Argonauten fertiggestellt und war 1996 für die Veröffentlichung bereit. Nintendo unterbrach das Projekt jedoch abrupt, da er befürchtete, dass es sich auf die Veröffentlichung von Nintendo 64 auswirken könnte. Argonaut gefiel dies nicht und die Beziehung zu Nintendo verschlechterte sich. Später lockte Nintendo Goddard und Wombella zu sich. Dylan Cuthbert konnte sich ihnen ebenfalls anschließen, wurde jedoch durch die Klausel der Vereinbarung über das Wettbewerbsverbot daran gehindert. Er verließ Argonaut und machte sich bei Sony an die Arbeit an der PlayStation.

Die "Scheidung" der beiden Unternehmen endete, als Nintendo Argonaut nicht erlaubte, Yoshis Charakter in dem Plattformspiel zu verwenden, das das Unternehmen auf PS1 veröffentlichen wollte. Infolgedessen ersetzten sie Yoshi durch ein Krokodil und nannten das Spiel Croc: Legend of the Gobbos . Nintendo veröffentlichte später den Mario 64 , dessen Mechanik Croc verdächtig ähnelte ... und gewann sogar den Markt für etwa ein Jahr.


Der MARIO-Chip hatte ein einfaches Design, das auf einem 16-Bit-RISC-Prozessor mit einer Frequenz von 10,74 MHz und einem 512-Byte-i-Cache basierte. Er hatte seine eigenen Anweisungen, die für mathematische Berechnungen optimiert waren, und seinen eigenen Bildpuffer, der für die Platzierung von Pixeln optimiert war. Seine Aufgabe war es, in einen Bildspeicher zu rendern, dessen Daten regelmäßig mit DMA in den SNES-RAM übertragen wurden. Es konnte bis zu 76.458 Polygone pro Sekunde rendern, was Star Fox mit etwa 15 fps lieferte.

Nachdem andere Studios den phänomenalen Erfolg von Star Fox miterlebt hatten, interessierten sie sich für seine Technologien. Eine neue Version des Chips namens GSU wurde veröffentlicht, die mit einer Frequenz von 21,4 MHz arbeiten kann. Die GSU der ersten Generation wurde in vier Spielen eingesetzt: Dirt Racer , Dirt Trax FX , Stunt Race FX und Vortex .

Die zweite Generation (GSU-2) hatte denselben Prozessor mit einer Frequenz von 21,4 MHz und zusätzliche Kontakte, die an den Bus gelötet waren, um die Größe des unterstützten ROM und des Rahmenpuffers zu erhöhen. Es wurde in drei Spielen verwendet: DOOM , Super Mario World 2: Yoshi's Island und Winter Gold .

Wenn Sie die DOOM-Kassette öffnen, werden alle oben genannten Komponenten angezeigt:

[1] 16-Bit-GSU-2, [2] 512-KB-Bildspeicher, in den GSU geschrieben wurde, [3] 2-MByte-ROM, in dem Code und Ressourcen gespeichert waren, [4] ein Modul aus sechs Invertern und [5] ] CIC-Chip zum Kopierschutz.

„Das zehnfache Produktivitätswachstum war für mich eine reine Übertreibung. Wir wussten nicht, ob dies tatsächlich möglich war. Aber das erlaubte uns zu übertreiben und gleichzeitig Versprechen zu übertreffen. Anstatt die 3D-Leistung um das Zehnfache zu steigern, haben wir sie tatsächlich um das 40-fache erhöht. In einigen Bereichen wie dem mathematischen 3D-Computing war das Wachstum sogar hundertfach. Der Chip konnte nicht nur 3D-Berechnungen durchführen und mit Vektorgrafiken arbeiten, sondern auch die Rotation und Skalierung von Sprites ermöglichen. Diese Funktion wurde von Nintendos eigenen Spielen, beispielsweise Super Mario World 2: Yoshi's Island, dringend benötigt. “ - jes san

Eine interessante Tatsache: Einige Fans haben es geschafft, alle Spiele (721 Namen) aus dem SNES-Katalog zu sammeln. Typischerweise kann eine DOOM- Patrone von weitem gesehen werden. Nur drei Spiele durften in einem nicht standardmäßigen grauen Fall veröffentlicht werden. Zwei waren rot - DOOM und Maximum Carnage , und Killer Instinct war schwarz.



Untergang auf Super Nintendo


DOOM auf SNES entstand dank des Genies und der Entschlossenheit einer Person: Randy Linden. Er liebte dieses Spiel und beschloss, es auf die beliebte Konsole zu portieren, damit mehr Spieler es genießen konnten. Randy hatte weder Zugriff auf den Quellcode noch auf die Ressourcen der Spielversionen für den PC oder die Konsole. Er musste von vorne anfangen.

Für Ressourcen könnte er die von Matthew Fell geschriebene „inoffizielle Doom- Spezifikation“ verwenden. Es wurde detailliert die Struktur von .wad-Dateien beschrieben. Sprites, Texturen, Musik, Soundeffekte und Karten, die Randy aus DOOM.WAD extrahiert hat. Mit dem Motor war die Geschichte völlig anders.

DOOM war ein wirklich revolutionäres Spiel, und ich wollte, dass Leute ohne PC es spielen. DOOM auf SNES war eine weitere Programmierleistung, die erreicht werden konnte.

Ich habe das Projekt selbst gestartet und einen voll funktionsfähigen Prototyp erstellt, dessen Demo in Sculptured Software gezeigt wurde. Eine Gruppe von Mitarbeitern von Sculptured half mir, das Spiel fertigzustellen, damit es pünktlich zu den Feiertagen veröffentlicht werden konnte.

Der Entwicklungsprozess war aus vielen Gründen kompliziert, vor allem weil es zu diesem Zeitpunkt keine Entwicklungssysteme für den SuperFX-Chip gab. Bevor ich das Spiel selbst startete, schrieb ich einen kompletten Satz von Tools - Assembler, Linker, Debugger.

Das Hardware-Entwicklungskit bestand aus einer gehackten Star Fox- Kassette (weil sie einen SuperFX-Chip hatte) und einem Paar modifizierter Gamecontroller, die an beide SNES-Anschlüsse und an den Amiga-Parallelport angeschlossen waren. Um den Code herunterzuladen, Haltepunkte zu setzen, den Speicher beim Übertragen von Daten zwischen den beiden Geräten zu untersuchen, wurde ein serielles Protokoll verwendet.

Ich würde mir wünschen, dass das Spiel mehr Level hat, aber leider hat das Spiel das umfangreichste verfügbare ROM belegt und es fast vollständig belegt. Ich erinnere mich vage, dass nur etwa 16 Bytes frei waren, das heißt, es war kein Platz mehr übrig! Es gelang mir jedoch, die Unterstützung für Super Scope, Maus und XBand-Modem aufzunehmen! Ja, du könntest sogar mit jemandem online spielen! "- Randy Linden in einem Interview für Gaming Reinvented

In dieser Version ist es bemerkenswert, wie Randy unter Berücksichtigung der Fähigkeiten und Einschränkungen der Port-Engine "Abstriche machen" musste.


In Abbildung 6.8 ist zu sehen, dass trotz nur 600 Kibibyte RAM der blaue Boden erhalten geblieben ist (wenn auch von derselben Farbe). Beachten Sie, dass sich die Geometrie nicht geändert hat (es muss äußerst schwierig gewesen sein, dies zu erreichen, da Randy weder DoomED noch Doombsp hatte), und auf E1M1 wurden alle Schritte vom Original beibehalten.

Die Reality-Engine, wie Randy sie nannte, konnte mit der Geometrie von Karten von einem PC aus arbeiten, hatte jedoch höchstwahrscheinlich Probleme mit der Geschwindigkeit beim Füllen und Abtasten von Texturen, da die Texturen von Decke und Boden vollständig fehlen.


Der Screenshot oben zeigt, dass das Fenster nicht im Vollbildmodus angezeigt wird. Dieses Problem betraf nicht nur DOOM - Star Fox , Star Fox 2 und alle Spiele mit Super FX, sondern musste den Arbeitsbereich verkleinern. Dies war höchstwahrscheinlich auf die begrenzte SNES-Übertragungsrate zurückzuführen, die keine DMA-Übertragung für das Vollbild-Rendering ermöglichte.

Von 256 x 224 Pixel der „nativen“ Auflösung der Konsole konnten nur 216 x 176 gezeichnet werden, und nur 216 x 144 wurden für 3D verwendet (eine Statusleiste wurde in 32 Zeilen gezeichnet). Die vertikalen Linien wurden dupliziert, dh die Reality Engine konnte mit einer Auflösung von nur 108 x 144 rendern. Und selbst bei einer so niedrigen Auflösung betrug die durchschnittliche Bildrate 10 FPS, was ein großer Erfolg war. Die "niedrige" Bildrate hielt die Spieler nicht davon ab, DOOM zu spielen . Laut Randy Linden haben sich die Patronen sehr gut verkauft.


Die Liste der Funktionen, die für wertvolles RAM gespendet wurden, enthielt die Sprite-Auflösung, die erheblich reduziert werden musste. Manchmal war es sogar schwierig, sie zu zerlegen (im Gegensatz zu der Waffe des Spielers, die in höherer Auflösung gerendert wurde). Ich musste alle Posen der Feinde entfernen, mit Ausnahme der Sprites, die den Spieler ansahen, Monsterkämpfe miteinander loswerden, Geräusche verbreiten (Monster wurden nur durch Sichtkontakt geweckt), die meisten Soundeffekte ausschalten (alle Monster klangen wie Kobolde).

Interessante Tatsache: Nintendo hat die Verwendung von Blut in Spielen auf SNES zunächst verboten. Zum Zeitpunkt der Veröffentlichung von DOOM war ein ESRB-Bewertungsverfahren vor Ort. Angesichts der Menge an Blut und Fleischstücken ist es nicht verwunderlich, dass DOOM auf SNES eine Bewertung von M ("ab 17 Jahren") erhielt.

Der vollständige Text von Game Engine Black Book: DOOM ist auf der Website von Fabien Sanglar verfügbar.

Source: https://habr.com/ru/post/de455429/


All Articles