Spiele für C-64 schreiben

Hallo Leute,

ich hab mal ne Frage: wie wurden früher eigentlich die klassischen Spiele für den C-64 programmiert, doch wohl nicht unter BASIC. Aber daß sich die Leute mit Maschinencode zufrieden gaben, kann ich mir auch nicht vorstellen (wenn doch, müsste es zumindest Hilfen gegeben haben, in welcher Form?). Also, wie wurde früher mit’m bzw.für den C-64 entwickelt.

Grüssle,
Markus

Hallo.

Damals gab es schon genug Programmiersprachen mit unterschiedlichen Prioritäten, z.B. Fortran, Pascal, Basic, Assembler… Natürlich mit IDE’s und Compilern, die aus heutiger Sicht aus der Steinzeit stammen, aber ihren Zweck erfüllt haben. Hier ein Code Beispiel:" . C055 AD 02 C0 LDA $C002" (Assembler) oder " FF 3E 6B 13 43 f5 10" (Maschinensprache). Codes in Maschinensprache liefen eben überall (nicht jeder hatte den xyz-Compiler für C64 daheim rumliegen), deswegen war im C64er Magazin auch fast nur Listings wie gezeigt vorhanden.

Herrliche Zeiten :smile:

HTH
mfg M.L.

Hallo Markus

Damals gab es schon genug Programmiersprachen mit
unterschiedlichen Prioritäten, z.B. Fortran, Pascal, Basic,
Assembler…

O.k. also wurde Gianna Sisters in Pascal geschrieben?
Welche Compiler gabs denn da? (ich google gleich, aber nur für den fall, daß man da nix findet).

danke & Grüssle,
Markus

Hochsprachen waren dort leider nicht ganz so verbreitet, wie es heute der Fall ist. Es gab tatsächlich einige Compiler für Hochsprachen, wie z.B. Oxford Pascal, Forth usw. aber die ‚richtigen‘ Sachen wurden tatsächlich in Maschinensprache verfasst. Es gab da auch schon einige Makro Assembler, die das Leben etwas vereinfacht haben.

Aber wenn du heute etwas entwickeln willst, kannst du auch mal einen Blick auf
http://www.cc65.org/

werfen.

/dirk

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

danke!

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

die klassischen C64 Spiele - wie Uridium,FortApocalypse,BoulderDash,
Olympic-Games etcpp wurden ausnahmslos in Assembler geschrieben!
Für den Einsatz von Hochsprachen sind die Spiele zu rechenintensiv.
Rasterstrahl-Timing (zB für Ruckelfreies Scrollen)
geht in einer Hochsprache überhaupt nicht etc.pp auch ist die Abfrage
der Kollisionsregister bei vielen Spielfiguren viel zu
rechenintensiv.

Dann kamen 16 Bit-Rechner wie Amiga und AtariST ! Und selbst hier
wurden Ballerspiele noch in Assembler entwickelt…

(–:

O.

Stern nehm ich gern *g*

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi,

auf C64 wurde ausnahmslos in Assembler entwickelt.

In Assembler zu schreiben heisst nicht nur mit LDA und CMP und
soonem Zeug zu hantieren. Selbstverständlich gabs schon Makro
assembler, in denen man oft benutzte Routinen wie in Hochsprachen
üblich mit Funktionsaufrufen benutzen kann. Das heisst z.B. sowas
wie MOVESPRITETO X,Y ist dann natürlich einfacher zu schreiben
und auch übersichtlicher. Man konnte natürlich auch auf komplette
LIBS von solchen Routinen zurückgreifen und somit nahezu in einer
Hochsprache programmieren.

Es gab natürlich ein grosses Problem. der geringe Speicher.
Das heisst wenn Programme ziemlich gross waren mit Daten etc.
war kein Platz mehr für den Assembler im Speicher, somit brauchte
man eine entsprechende Speichererweiterung. Da allerdings die MMU
des C64 nur 64K addressieren kann, musste das RAM recht kompliziert
mit Pageflipping verwaltet werden, was ein vernünftiges Entwickeln
erschwert hat. Andererseits hiess ein Absturz des Programms meistens
Rebooten, Assembler neu laden usw. alles sehr zeitaufwendig.

Deshalb benutzten die meisten Firmen externe Entwicklungsumgebungen.
Das heisst der Assembler lief komplett auf einem zweiten C64 oder
C128, dort wurde das Programm geschrieben und assembliert, dann
über ein Userportkabel zum C64 geschickt. Am C64 lief nur ein kleines
Programm in der Zeropage, was die Daten empfangen hat und dann das
Programm gestartet hat. Dieses wurde dann einfach im Falle eines
Absturzes wieder geladen, was sehr schnell ging.

Als die ersten PCs verfügbar waren gab es dort auch sogenannte
Cross-Assembler. Das heisst der Assembler lief am PC und erzeugte
C64 Code, der dann ebenfalls über Kabel direkt zum C64 geschickt
wurde.

Nach dem gleichen Prinzip werden übrigens auch Konsolenspiele
programmiert wie für den Gameboy, Playstation usw. Wobei Gameboy
in Assembler und Playstation, Nintendo Cube usw. in C programmiert
werden.

hoffe gehelft zu haben

Alex

wenn Du Lust hast drucke ich Dir mal das Office Paket
als HEX-Listing mit Prüfsummen aus… viel Spass beim
Eintippen :wink:

Alex

Danke!
jetzt kann ich endlich beruhigt googlen!
Gruß,
Markus