Mehr als 4 Farben pro Zeile...


Mehr als 4 Farben pro Zeile...

von mp-one » Fr 6. Jul 2007, 07:55
Hallo Leute,

beim Ansehen des Titelbildes des Spiels "Scorpions" auf der ABBUC Magazin Disk 88 hab ich mich doch gefragt, wie dort mehr als 4 Farben pro Zeile erzeugt werden können. Dass man per DLI die Farbregister einmal pro Zeile umschalten kann, ist mir schon klar. Aber geht das auch noch mal mitten in der Zeile? Wisst Ihr, wie sowas gemacht wird?

Gruß,

Michael

von cas » Fr 6. Jul 2007, 08:24
Player Missle so über Teile des Bildes legen, das die Bereiche anders eingefärbt werden. 4 Farben pro Zeile + 4 Player+Missle gibt schon 8 Farben pro Zeile.

Die Programmierung ist aber ohne Hilfsmittel wie das Graf2Font Programm sehr aufwendig.

Ciao

Carsten

von atarixle » Fr 6. Jul 2007, 10:53
Genaugenommen kann man mit G2F sogar 9 Farben pro Zeile erzeugen, da G2F im Textmodus der Grafikstufe 12 arbeitet.

von mp-one » Fr 6. Jul 2007, 13:12
cas hat geschrieben:Player Missle so über Teile des Bildes legen, das die Bereiche anders eingefärbt werden. 4 Farben pro Zeile + 4 Player+Missle gibt schon 8 Farben pro Zeile.

Die Programmierung ist aber ohne Hilfsmittel wie das Graf2Font Programm sehr aufwendig.

Ciao

Carsten


Ok, da kann ich mir in etwa vorstellen, wie das geht. Aber es klingt auch nach viel Tüftelei.

Gab es nicht auch mal den Versuch, durch Weglassen des STA WSYNC bei einem DLI einen Farbwechsel mitten in einer Zeile durchzuführen? Da müsste man dann aber wohl ein sehr sehr genaues Timing haben, um das gezielt und ohne Flackern hinzubekommen...

Gruß, Michael

von Schmutzpuppe » Fr 6. Jul 2007, 22:05
Ich habe sowas mal für die Highscore Tabelle eines (noch nicht veröffentlichten) Spiels gemacht.
Gerade den WSYNC habe ich aber zum Sync gebraucht.
Mit einem Mix aus PM und bekommt man schon einige Farben pro Zeile hin.
Ich muss noch mal den Code raussuchen und kann ihn dann posten.
Sehr simpel im Grunde.

von pps » Fr 6. Jul 2007, 23:50
Das mit dem Timing läßt sich schon realisieren. In G2F kann man z.B. auch die Farbregister mitten in der Zeile verändern.

Grob gesagt muß man dazu eine Programmschleife erstellen, in der man seine Befehle ausführt und sich dann immer wieder selbst aufruft.
Man braucht keinen DLI dafür, da die Routine selbst für alles zuständig ist.

Wenn man nachrechnet, wieviel Zeit z.B. ein LDA #6 STA $d016 benötigt, weiß man genau wo auf dem BS man gerade ist und kann so exakt umschalten. Für die Zeilensync kann man wie gewohnt das STA WSYNC nutzen.

Das Ganze ist im Prinzip ähnlich der Programmierung, die man für das 2600 benötigt, da es ja keinen DLI besitzt.

Ein schönes Beispiel für das mehrmalige Ändern innerhalb einer Zeile hat es damals schon auf der Unity Demo gegeben, die vom ABBUC & Sti. Pokey herausgebr8 wurde. Die polnische Gruppe Our5oft machte einen Beitrag mit einem Screen mit GR.8, GTIA mit 16 Helligkeiten & Gr.15 in einer Zeile.

Dabei wird ein Fehler in der GTIA ausgenutzt. Wenn man innerhalb einer Zeile mit Gr.8 nach GTIA umschaltet und dann wieder zurück nach Gr.8, erhält man statt Gr.8 Gr.15.

Hat zwar nichts hiermit zu tun, aber wenn man einen Interlaced Mode erstellt, wo man zunächst GTIA mit 16 Helligkeiten und dann GTIA mit 16 Farben darstellt, erhält man ein horizontal doppelt so fein aufgelöstes Bild, da auch hier ein Fehler in der GTIA ist. Das Bild wird nämlich bei beiden Modes um einen Gr.8 Punkt verschoben. Als Resultat gibt es im Interlace ein höher aufgelöstes Bild.

Auch hier gibt es schöne Beispiele. Besonders schön finde ich da die Blume in der NUMEN Demo, dort gibt es in diesem Modus sogar noch Animation. Auch das Einstein Bild in Numen ist recht anschaulich. Weiterhin ist dieser Modus auch in einer Demo von HARD zu finden, die ihn auch entdeckt haben - soweit ich weiß.

von CharlieChaplin » Sa 7. Jul 2007, 19:43
Hmm,
soweit ich weiss beruht der GTIA-Bug (HIP, RIP, TIP) auf Gr. 10 und nicht Gr. 9 oder 11. Problem: Bei Gr. 10 gibt es nur 9 Farben, was die "seltsamen" Farben bei RIP und z.T. auch bei TIP erklärt...

Hätte man den Bug bei Gr. 9 oder 11 dann könnte man 256 Farben in 160x238 darstellen, was natürlich viel schöner wäre - geht aber leider nicht. Deshalb die komischen Verbindungen von Gr. 9 +10 greyscales (oder eine Farbe in 30 Helligkeiten, kurz: HIP, wobei es sich zumeist um Graustufen handelt), Gr. 9 +10 color (RIP) und Gr. 9 + 10 +11 color (TIP mit niedrigerer Auflösung halt)... -Andreas Koch.

von mp-one » Mo 9. Jul 2007, 13:52
pps hat geschrieben:Wenn man nachrechnet, wieviel Zeit z.B. ein LDA #6 STA $d016 benötigt, weiß man genau wo auf dem BS man gerade ist und kann so exakt umschalten. Für die Zeilensync kann man wie gewohnt das STA WSYNC nutzen.


Ah ja, das ist interessant. Und um das hin und her Flackern zu vermeiden, braucht man dann doch das STA WSYNC. Ansonsten kriegt man es nicht ganz sauber hin, oder? Ich habe das seinerzeit mal ohne WSYNC probiert und die "zuckende" Spalte dann "elegant" mit einem Player überdeckt. War natürlich gegen das Obige ne Primitivlösung...

M.

von pps » Mo 9. Jul 2007, 19:13
Hmm, mit einem Player überdecken ist nicht wirklich primitiv, eher macht man sich damit die Sache recht kompliziert.

Aber wenn man wirklich synchron sein will, kommt man um das wsync m.E. nicht herum.