Portierung

Aus C64-Wiki
(Weitergeleitet von Konvertierung)
Zur Navigation springenZur Suche springen
Eine Animation aus der C64-Version von Bomb Jack.

Als Portierung (engl. port) wird die Übertragung von Software von einem System einer bestimmten Laufzeitumgebung und Plattform zu einem anderen System bezeichnet, wobei im Wesentlichen die Funktion erhalten bleibt. Gleichbedeutend werden auch die Begriffe Konvertierung, Adaptierung oder Umsetzung für Software-Migrationen[1] verwendet.
Auch spricht man oft einfach von einer Version für eine bestimmte Plattform, wie beispielsweise C64-Version oder Amiga-Version. Damit ist also nicht eine bestimmte Versionsnummer gemeint, sondern das gleiche Programm nur in einer an die jeweilige Plattform angepassten Variante.


Umsetzung[Bearbeiten | Quelltext bearbeiten]

Wenn sich beide Systeme stark unterscheiden, wie beispielsweise bei sehr verschiedenen Konstruktionen von Prozessoren, bzw. Grafik- oder Sound-Chips, dann ist eine komplette Neuprogrammierung mitunter sinnvoller. Diesen Aufwand kann man mit einer Abstraktionsschicht (wie einer Engine oder der SDL - Simple DirectMedia Layer) umgehen oder zumindest minimieren. Mit solchen teils speziellen Entwicklungsumgebungen, wie zum Beispiel dem Arcade Game Designer (AGD)[2] [3], wird einem die Portierung erleichtert oder überhaupt erst möglich gemacht, auch wenn den Randbedingungen für die Zielsysteme enge Grenzen gesetzt sind.

Um beispielsweise eine möglichste exakte Portierung (im Rahmen der Hardwaremöglichkeiten hinsichtlich Grafik und Sound) zu erreichen, kann auch bei Anpassung an eine andere CPU auch schrittweise vorgegangen werden. Dabei wird im extremsten Fall manuell jede einzelne Maschinencode-Instruktion oder Gruppe von Instruktionen in ein Äquivalent der Zielarchitektur umcodiert. Bereits an den Übergängen oder dann später über das Ganze können auch noch weitere Optimierungen erfolgen. Hier bleibt die Umsetzung weitgehend 1:1 und lediglich Grafik und Sound muss heraus gelöst und unter Umständen massiv angepasst werden (z.B. Hardware-Sprites durch Bitmap-Shapes ersetzen oder umgekehrt). Als Beispiel sei hier etwa die Portierung des Arcade-Klassikers Pac Man von einer Z80-Plattform auf ein 6809-basierendes System CoCo 3 erwähnt.[4]

Es gibt auch verschiedene Programmierer-Tools zur automatischen Portierung von Programmteilen und Daten, wie beispielsweise Grafiken oder Computermusik.

Portierungen vom ZX Spectrum sind am C64 aufgrund der markanten HiRes-Grafiken meist auf den ersten Blick als solche erkennbar.


Konvertierungen für den C64[Bearbeiten | Quelltext bearbeiten]

Bekannte Spiele-Portierungen für den C64 sind zum Beispiel:


Screenshot-Vergleich

Ein Screenshot-Vergleich des Arcade-Spiels Dragon's Lair zeigt die Unterschiede von 4 verschiedenen Portierungen auf. Zu sehen sind (von links nach rechts) die C64-, CPC-, Spectrum- und Colecovision-Version. Das Arcade-Original spielte Trickfilmsequenzen von einer Laserdisc ab:

C64 Version. Amstrad CPC. ZX Spectrum. Konsole Colecovision Adam.


Konvertierungen von C64-Software auf andere Systeme[Bearbeiten | Quelltext bearbeiten]

Die Anwendung GEOS erschien zuerst am C64, ebenso wie die Spiele Giana Sisters, Turrican, International Karate + und Sim City zuerst auf diesem System entwickelt wurden. Die Programme wurden dann auch für verschiedene andere Systeme portiert. Bei Sim City haben die zahlreichen Konvertierungen und deren Nachfolger einen deutlich höheren Bekanntheitsgrad erreicht, als das C64-Original.


Quellen[Bearbeiten | Quelltext bearbeiten]