Du bist nicht angemeldet.

henrikf

Pixelor-Team

Beiträge: 6 828

Wohnort: Bad Aibling / Bayern

Beruf: Software-Entwickler

  • Private Nachricht senden

73

30.10.2015, 13:20

MiST & Atari-8-Bit-Core
Das wird jetzt fast ein wenig atarilastig, deswegen setze ich mal diese Überschrift. :)

[...] Beispielsweise zeigt die Turrican-Demos (oder vielmehr Proof-of-Concept oder Engine-Demo) wieder ein anderes Bild. [...]

Ich bin ja nun nicht in der Atari-Szene aktiv (ganz bewusst nicht, manchmal ist das echt *brrr*), deswegen kannte ich die Demo nicht. Aber ich bin doch so fit auf der Kiste, dass ich dazu noch etwas sagen kann. Das ist höchstwahrscheinlich der HighRes-Modus auf dem Atari (vermutlich »Antic Mode 0«). In diesem Modus gibt es nur zwei Farbe, bzw. eigentlich nur eine Farbe mit zwei Weißabstufungen. Der wird eigentlich als Text-Modus verwendet, aber zum Beispiel auch das erste Ultima verwendet diesen Grafikmodus zur Darstellung der Grafik. Jetzt kommt's: Diese Farben, die Du dort siehst, kommen eigentlich durch Unzulänglichkeiten der Video-Modulation zustande. Wenn man beim Atari im HighRes-Modus horizontal eine hellen, einen dunklen und wieder einen hellen Punkt nebeneinander setzt, dann ist die entstehende Frequenz schon im Bereich der Modulationsfrequenz. Dadurch entstehen aber wieder Farbabstufungen, und zwar je nachdem, in welcher Reihenfolge man die Punkte setzt. Richtig ausnutzen kann man das aber eigentlich nur bei NTSC (dort gibt dass dann purpurne und hellblaue Farben). Bei PAL ist der Effekt schwächer, erinnert aber an das, was man da in dem Video sieht. ;)

[...] Allerdings gibt es hier den Trick, dass der Zeichensatz nur 7 Bit für die Auswahl des darzustellenden Zeichens verwendet. Mit dem achten Bit kann man noch einmal eine Farbe umschalten. Dadurch bekommt man 5 Farben auf den Bildschirm. Allerdings ist diese Farbe für alle Zeichen auf dem Bildschirm gleich.
Wird hierdurch die Auswahl auf 128 Zeichen beeschränkt?

Ganz genau. Einer der vielen Einschränkungen des Atari.


Es gibt beim Atari-Computer dann noch den sogenannten »Display List Interrupt«, mit dem man abhängig von der vertikalen Position auf dem Bildschirm alles mögliche verbiegen kann (was die Hardware eben so hergibt). Und natürlich kann man auch die Farben verändern. Deswegen schaffen es einige Spiele viele Farben auf den Bildschirm zu zaubern. Aber eben nur vertikal, weil diese per DLI umgeschaltet werden.
Ist das wirklich eine Liste? Das klingt ja dann nach einem einfacheren Handling im Vergleich zu den Rasterzeilen-Interrupts. Aber um das beurteilen zu können, müsste ich mich mit der Atari-Hardware befassen.

Das ist eine wirkliche echte richtige Liste, die sogar Sprungbefehle enthält. Nur ist die erst einmal nicht für den Interrupt da, sondern um pro Bildschirmzeile zu bestimmen, welcher Grafikmodus jetzt dargestellt werden soll. Also in etwas wie:

Schwarz [8 Scanlines]
40 Zeichen Textmodus [8 Scanlines] (ANTIC 0)
40 Zeichen Textmodus [8 Scanlines] (ANTIC 0)
40 Zeichen Textmodus [8 Scanlines] (ANTIC 0)
40 Zeichen Farbtextmodus [8 Scanlines] (ANTIC 4)
usw.


Und außerdem kann bei jedem dieser Befehle sagen, dass dieser einen Interrupt auslösen soll, wenn der ANTIC den entsprechenden Befehl abarbeitet. Damit kann wieder abhängig von der vertikalen Position auf dem Bildschirm - eben indem man den passenden Befehl in der Liste wählt - irgend etwas zeitgesteuert unternehmen. Ziemlich geile Sache. :)
--== Island2Live / Henrik Fisch==--
Homepage: http://www.island2live.com/ deviantART: http://island2live.deviantart.com/
Spielt gerade: Yonder: The Cloud Catcher Chronicles

DustyBits

Pixelor-Team

Beiträge: 1 756

Wohnort: 68030 Motorola

Beruf: Elektroniker

  • Private Nachricht senden

74

30.10.2015, 15:11

Ob daraus die Idee für den Copper entstanden ist ? :-) (Jay Miner Atari->AMIGA)

henrikf

Pixelor-Team

Beiträge: 6 828

Wohnort: Bad Aibling / Bayern

Beruf: Software-Entwickler

  • Private Nachricht senden

75

30.10.2015, 16:38

Ich gehe zu 100% davon aus. Wenn man sich ansieht, wie der ANTIC die »Display List« abarbeitet, und wenn man sich dann ansieht, was der COPPER im Amiga macht ... das ist schon sehr sehr ähnlich. Und: Der COPPER ist vor allem DEUTLICH universeller als die Display List ... also eine Weiterentwicklung. Kam ja auch später heraus. Der Jay Miner war schon echt richtig ein Cooler. :)
--== Island2Live / Henrik Fisch==--
Homepage: http://www.island2live.com/ deviantART: http://island2live.deviantart.com/
Spielt gerade: Yonder: The Cloud Catcher Chronicles

  • »djberningo« ist der Autor dieses Themas

Beiträge: 814

Wohnort: Ingolstadt

Beruf: Senior Software Engineer

  • Private Nachricht senden

76

31.10.2015, 10:45

Schwarz [8 Scanlines]
40 Zeichen Textmodus [8 Scanlines] (ANTIC 0)
40 Zeichen Textmodus [8 Scanlines] (ANTIC 0)
40 Zeichen Textmodus [8 Scanlines] (ANTIC 0)
40 Zeichen Farbtextmodus [8 Scanlines] (ANTIC 4)
usw.
Konnte man immer nur alle 8 Scanlines etwas beim Atari XL ändern?

Mit der Amiga-Hardware habe ich mich nicht mehr so eingehend befasst wie beim C64, auf dem ich mittels Maschinensprache auf seine Register zugegriffen habe. Auf den Amiga kamen nur noch C und E für kleinere Anwendungsprogramme zum Einsatz. Für die ersten Gehversuche in Sachen Spieleprogrammierung auf dem Amiga habe ich ein etwas mit AMOS und BlitzBasic gemacht. Aber ich verlor irgendwie das Interesse, Spiele zu programmieren. Deswegen kenne ich den Copper (leider) überhaupt nicht.

henrikf

Pixelor-Team

Beiträge: 6 828

Wohnort: Bad Aibling / Bayern

Beruf: Software-Entwickler

  • Private Nachricht senden

77

31.10.2015, 11:07

Schwarz [8 Scanlines]
40 Zeichen Textmodus [8 Scanlines] (ANTIC 0)
40 Zeichen Textmodus [8 Scanlines] (ANTIC 0)
40 Zeichen Textmodus [8 Scanlines] (ANTIC 0)
40 Zeichen Farbtextmodus [8 Scanlines] (ANTIC 4)
usw.
Konnte man immer nur alle 8 Scanlines etwas beim Atari XL ändern?

Nein. Der Befehlssatz des ANTIC gibt vor, für wie viele Scanlines ein Befehl gilt. Zum Beispiel gibt es doppelt so hohe Zeichensatz-Modi, die dann 16 Scanlines in Anspruch nehmen. Benötigt man nun einen Interrupt bereits in der 8 Scanline, dann setzt man den Interrupt auf den Befehl vorher - Interrupts werden immer am ENDE eines ANTIC-Befehls ausgelöst - wartet dann 8 Scanlines - mit Hilfe des Registers WSYNC, welches den Prozessor für den Rest einer Scanline anhält - und schon hat man's! :)
--== Island2Live / Henrik Fisch==--
Homepage: http://www.island2live.com/ deviantART: http://island2live.deviantart.com/
Spielt gerade: Yonder: The Cloud Catcher Chronicles