8-Bit-Nirvana Startseite  
?PROGRAM CODE TOO TRIVIAL ERROR IN 35520
[ Home | Index | Werbung | Forum | Flohmarkt | Gästebuch | Links | Info ]

8-Bit-Forum

"Re: Grafik-Adressierung" von Ullrich von Bassewitz
(11.4.2000, 20:20)

(Dieser Artikel wurde 1517 mal seit dem 16.10.2001, 22:56 aufgerufen)

Bezugsnachricht: Re: Grafik-Adressierung (Sascha Hoogen)
Antworten: Re: Grafik-Adressierung (Sascha Hoogen)

[ Antwort schreiben | Übersicht | Thema ]

Sascha Hoogen schrieb am 11.4.2000, 16:50:54:
> Vertikal ist beim C64 auch kein Problem, kann man lockerstens per Interrupt
> erledigen (wie auch andere schöne Sachen, z.B. Trillionen von Sprites durch
> Multiplexing). :)
>
> Horizontal müßte ich mir direkt mal überlegen, sollte aber auch möglich sein.

Ich fuerchte fastgar, dass der Atari diesen Wettbewerb wirklich gewinnen, oder zumindest nicht verlieren wuerde.

Wie ich in meinem letzten Artikel schon sagte ist die Adressierung von einzelnen Punkten im Grafikmodus des C64 wirklich recht kompliziert. Horizontale und vertikale Linien sind noch nicht mal so problematisch, weil das Setup, das fuer jeden Punkt notwendig ist dabei zum grossen Teil gleich bleibt, kritisch sind schraege Linien, wie sie z.B. massig in irgendwelche Vektorgraphiken vorkommen (Elite ist das Beispiel, das ich aus verstaendlichen Gruenden immer nehme, aber das gibt´s ja nicht fuer die Ataris:-)

Um mal kurz die notwendigen Berechnungen fuer einen Punkt X/Y im Modus 320*200 durchzugehen:

Die Bitmaske berechnet sich aus 0x80 >> (X & 0x07)

Das laesst sich mit Hilfe einer Tabelle noch in den Griff kriegen. Komplizierter wird´s beim Offset fuer das Byte, in dem das Bit gesetzt werden soll. Dieser berechnet sich aus

(Y >> 3)*320 + (Y & 0x07) + (X & 0xFFF8) + VIDEORAM_BASE

Das sieht nicht nur kompliziert aus, sondern ist auch tatsaechlich kompliziert - und entsprechend langsam, wenn man das fuer jeden Punkt einer Linie machen muss. Selbst mit recht grossen Hilfstabellen kann man nur einen Teil der Komplexitaet rausnehmen (speziell die Multiplikation im ersten Term bietet sich da an). Die Komplexitaet kommt aus der Adressierung als Zeichensatz: Die Pixel 7 und 8 in einer Zeile liegen nicht in zwei benachbarten Bytes, sondern 8 Bytes auseinander.

Die Frage die bisher keiner beantwortet hat ist natuerlich, ob die Ataris das besser machen. Ich weiss, dass der ANTIC sich programmieren laesst (mit Display Lists), das alleine hat aber noch nichts mit einer schnellen Grafik zu tun.

Steve Judd (einer der besten Grafikprogrammierer die ich kenne, mit einem absolut genialen mathematischen Background) hat ein kleines Vergleichspapier zu Atari und C64 geschrieben (http://www.ffd2.com/fridge/atari.compare), darin sind die Features der beiden Rechner ganz gut beschrieben (zumindest ich verstehe, was gemeint ist). Die Frage der Einzelpunkt-Adressierung im Grafikmodus wird da aber auch nicht geklaert.

Wobei man natuerlich auch sehen muss, dass die Geschwindigkeit der Adressierung von einzelnen Punkten im Grafik-Modus nur fuer eine ganz spezielle Klasse von Programmen tatsaechlich relevant ist. Gerade die von Dir genannte Moeglichkeit, den Zeichensatz umzudefinieren und als Quasi-Grafik zu verwenden wird von vielen Programmen auf dem C64 benutzt und beschleunigt diese enorm.

Gruss

Uz

.

CONT 2: CONT 1:
Lesezeichen für diesen Beitrag: del.icio.us del.icio.us Bei Mister Wong speichern Mister Wong Seite bei LinkARENA speichern LinkARENA Digg it Digg Slashdot it Slashdot StumbleUpon StumbleUpon


Antwort schreiben

Hier kannst Du auf die angezeigte Nachricht antworten. Beachte bitte die folgenden Punkte:
  • Dieses Forum befasst sich ausschließlich mit 8-Bit-Computern und Videospielen, Artikel zu anderen Themen sind off-topic und unerwünscht (für Computer mit mehr als 8 Bit gibt es hier aber auch ein eigenes Forum). Wenn der Vorschreiber schon vom Thema abweicht und Du unbedingt antworten möchtest, dann schreibe ihm lieber per e-mail.
  • Schreibe bitte so, dass sich niemand beleidigt oder angegriffen fühlt, auch wenn der Vorschreiber sich bereits im Ton vergriffen haben sollte. Solche Sachen löst man eh besser privat per e-mail.
  • Im Eingabefeld wird der komplette Text zitiert. Kürze die Zitate bitte so weit wie möglich, damit unnötiger Ballast vermieden wird. Hinweise zu richtigem und falschem Quoting findest Du hier: learn.to/quote.
Name:
E-mail:
Betreff:
Antwort:
Klicke bitte das Feld links an, falls Du Antworten auf diese Nachricht auch per E-mail bekommen möchtest.


       

Achtung: "SPAMFALLE" heißt nicht ohne Grund so, keinesfalls benutzen!



Mozilla Sidebar Opera Sidebar RSS 0.91 Newsfeed RSS 2.0 Newsfeed Add to Google Add to MyYahoo Spam Poison
Mozilla Sidebar Opera Sidebar RSS 0.91 Feed RSS 2.0 Feed Add to Google My Yahoo! Spam Poison

[ Index | Werbung | Forum | Flohmarkt | Gästebuch | Links | Info | Impressum/Datenschutz | News | Credits | Webmasters | Seitenanfang ]