Software Sprite/Tile Umrisse ausblenden

OP #4582353
Hallo,

Ich versuche eine einfache Grafikkarte bzw. Grafikadapter zu entwerfen.
Es sollen 288x216 Pixel im Bildpuffer sein, dieser soll am Adress- und 
Datenbus hängen.


Ich habe nun die Wahl zwischen verschiedenen Farbräumen:

5Rx5Gx5B plus Transparenzbit:
Das wäre ideal da 32k Farben und leichte Umriss-Ausblendung in Hardware: 
einfach das 16. Bit mit dem /WR-Signal logisch verknüpfen.

3Rx3Gx2B :
Das wäre auch ausreichend und würde viel CPU-Ressourcen sparen.
Leider fehlt da jetzt das Transparenz-Bit.


Hat jemand eine Idee oder einen Link wie man das Problem mit den 
Sprite/Tile-Umrissen beim Zeichnen in den Bildpuffer lösen könnte ?
Die softwaremäßige Lösung mit Auslesen des Puffers und von der CPU 
irgendwie logisch bitweise maskieren klingt irgendwie zu rechenintensiv 
...
Ich dachte auch schon an einen 2Rx3Gx2B-Farbraum damit das 8. Bit 
freibleibt aber ich weiss nicht wie die Farbpalette dazu aussieht.
H-G S. schrieb:
> 3Rx3Gx2B :
> Das wäre auch ausreichend und würde viel CPU-Ressourcen sparen.
> Leider fehlt da jetzt das Transparenz-Bit.

Definiere Farbe 0 als Transparenz-Farbe bei den Sprites.

Oder gib den Sprites einen Attribut, womit sich pro Srite die 
Transparenz-Farbe definiert werden lässt; diese Farbe kann dann im 
Sprite zwar nicht benutzt werden, aber kein Sprite wird wohl alle 256 
Farben benutzen wollen, oder?
OP
Hmm ... 0x0x0 ist aber scheinbar das einzige gute Schwarz im 3x3x2 
Farbraum. Aber auf dieses Magenta/Giftlila könnte ich verzichten bzw. 
einen Ton davon.

Da bleibt nur noch das Problem die Kombination mittels Logik-Chip am 
Schreiben in den Bildpuffer zu hindern. Es müssen schliesslich alle 8 
Bit beachtet werden.
Die Dekodierung darf den Schreibvorgang der CPU nicht behindern. Ich 
meine es wären 50nS gewesen die so ein XA-S3 braucht für einen 
Schreibzyklus, bin aber nicht ganz sicher da ich noch das User Manual 
wälzen muss.

Edit:
Es scheint die volle lila Farbe ist 111x000x11 ... das müsste man so 
dekodieren dass ein /WR verhindert wird.
OP
Das klingt nach zuviel Aufwand, wie dicker PLD oder Dual-Port-RAM etc.

Ich möchte den Grafikadapter einfach halten, also nur Latches, 
(Adress-)Zähler und einen Controller der die Sync-Signale für den 
RBG-PAL-Wandler erzeugt und den Zähler startet/anhält.
Eventuell noch eine Löschfunktion auch mit dem Controller und Zähler.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.