Forum: Mikrocontroller und Digitale Elektronik Software Sprite/Tile Umrisse ausblenden


von H-G S. (haenschen)


Lesenswert?

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.

von Eric B. (beric)


Lesenswert?

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?

von H-G S. (haenschen)


Lesenswert?

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.

: Bearbeitet durch User
von Eric B. (beric)


Lesenswert?

Warum eine feste Farbe? Mach's konfigurierbar!
Alternative wäre noch die Sprites eine eigene Palette zu verpassen: 63 
Farben wählbar im 332-RGB-Farbraum, und Palette-Index 0 ist Transparent.

von H-G S. (haenschen)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.