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?
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.