Kolejny odcinek opowieści
Bobby Clarka o jego eksperymentach
z trybami graficznymi i ich mieszaniem. Każdy z poprzednich jego
artków na AtariOnline.pl traktował o jednym trybie graficznym:
-
Super IRG
-
Super IRG 2
-
Super 0
-
DIN
Warto się z nimi zapoznać przed przeczytaniem dzisiejszego odcinka
o trybie GRAPHICS 0.9. Warto też pamiętać, że Bobby pracuje na
komputerach NTSC, które w zakresie omawianych w artykule kolorów i
artefaktów mogą się nieco różnić od komputerów PAL.
Robert "Synthpopalooza" Clark napisał:
GRAPHICS 0 + GTIA
Ostatnio przedstawiłem serię artykułów o nowych, programowych
trybach graficznych Atari. Dodatkowe kolory generuje się w nich
przez przełączanie dwóch zestawów znaków przechowywanych w pamięci
RAM. Cała moja praca nad nowymi trybami oparta jest na koncepcji
Billa Kendricka i jego trybu Super IRG, który wykorzystał do
stworzenia w 1998 roku gry „Gem Drop”. Podstawą pomysłu zwiększenia
liczby kolorów na ekranie jest tam użycie trybów ANTIC 4/5
(GRAPHICS 12/13) i przełączanie się co przerwanie VBI między dwoma
zestawami znaków za pomocą rejestru w komórce 756. Zastosowałem tą
technikę do innych standardowych trybach graficznych i uzyskałem
osiemnaście dodatkowych trybów znakowych. Obecnie tworzę edytor
fontów, który pozwoli projektować fonty dla tych dziewiętnastu
trybów.
Poprzednio opisywałem i podawałem przykłady trybu Super IRG, Super
IRG 2, Super 0 oraz DIN. Tym razem przedstawię pięć nowych
znakowych trybów programowych, w których używa się znacznika GTIA
(komórka 623), aby włączyć GTIA w trybie znakowym.
GRAFIKA GTIA
W 1982 roku Atari wprowadziło nowy chip GTIA do swoich maszynek,
najpierw do Atari 1200XL. Chip pozwalał uzyskać trzy nowe tryby
graficzne, które zostały dodane do systemu operacyjnego:
- GRAPHICS 9 – 16 odcieni jednego koloru
- GRAPHICS 10 – 9 kolorów, paleta w rejestrach 704-712
- GRAPHICS 11 – 15 kolorów w jednym odcieniu plus tło
Wszystkie te tryby mają rozdzielczość 80x192 i wspaniale
rozszerzają możliwości graficzne Atari. Dzięki GTIA zyskaliśmy też
podwojoną paletę Atari – do 256 kolorów.
Warto zauważyć, że tryby GTIA mogą być kontrolowane przez rejestr
PRIOR (623), który używany jest również do grafiki PMG. Wartości
tego rejestru kontrolują zachowanie układu GTIA:
POKE 623, 64 ustawia ekran w tryb GRAPHICS 9 (jeden kolor w wielu
odcieniach)
POKE 623, 128 ustawia ekran w tryb GRAPHICS 10 (paleta kolorów)
POKE 623, 192 ustawia ekran w tryb GRAPHICS 11 (wiele kolorów w
jednym odcieniu)
Możliwe jest również ustawienie znacznika GTIA w trybie GRAPHICS 0
(i innych trybach tekstowych), co daje interesujące efekty. Do
celów niniejszego artykułu wykorzystamy właśnie GTIA ustawione w
trybie GRAPHICS 0. Da nam to dostęp do trzech sprzętowych trybów
graficznych bazujących na GR.0, ale z grafiką w stylu GTIA. Te trzy
tryby tworzą podstawy wszystkich programowych trybów graficznych
GTIA, o których będę pisał w artykule.
W dalszej części tekstu, gdy będę miał na myśli tryb GRAPHICS 0 z
grafiką ustawioną w tryb GRAPHICS 9, będę posługiwał się nazwą
GRAPHICS 0.9, a gdy będę używał sformułowania GRAPHICS 0.11 będzie
to oznaczało GRAPHICS 0 z ustawionym trybem GTIA GRAPHICS 11.
UŻYWANIE GTIA W TRYBIE GRAPHICS 0
W poprzednim artykule widzieliśmy, że kiedy projektujemy znaki dla
trybów ANTIC 4/ANTIC 5 to używamy siatki o rozmiarach 4 na 8
pikseli i czterech kolorów na znak. Projektowanie znaków w trybach
GTIA wygląda inaczej niż w ANTIC 4/5, każdy znak ma siatkę 2 na 8
pikseli. Każdy piksel w siatce tworzony jest z 4 bitów (nibble).
Jest 16 możliwych kombinacji nibble, które mogą tworzyć między 9 a
16 kolorów na piksel, zależnie od wybranego sprzętowego trybu GTIA.
Opiszę szczegóły tych trzech sprzętowych trybów, bo będzie to potem
przydatne w kontekście nowych trybów GTIA z przełączanymi
znakami.
GRAPHICS 0.9
Ten tryb zasadniczo wyświetla odcienie jednego koloru. Kolor można
ustawić przez zaPOKEowanie wartością 16 lub jej wielokrotnością
rejestru 712 lub przez użycie komendy SETCOLOR 4,KOLOR,0 gdzie
KOLOR ma wartość między 0 a 15. Poniżej ilustracja pokazująca
siatkę przykładowego znaku w GRAPHICS 0.9 oraz paleta tego trybu i
wyjaśnienie, jakim kolorom odpowiadają poszczególne kombinacje
nibbli.


Wartość 0 daje naciemniejszy odcień, 15 najjaśniejszy. Ponadto,
kiedy znak jest w inwersji, także kombinacja bitów jest odwrocona,
0001 staje się kolorem 15 (najjaśniejszym odcieniem), a 1111 staje
się kolorem 0 (tłem).
Możliwe jest zaprojektowanie liter w tym trybie, ale aby były
czytelne należałoby użyć dwóch znaków na jedną literę. Dobrą
praktyką byłoby tu użycie małych i dużych znaków danej litery do
zrobienia liter oraz zestawu cyfr 0-9 i odpowiednich znaków
uzyskiwanych przez klawisz SHIFT do zrobienia cyfr. Przykład:
Zaprojektowałem przykładowy zestaw czcionek dla trybu GRAPHICS 0.9
i program, który je wyświetla. Program GTIA09.BAS zapisze fonty na
dysk, Program GR09DEMO.BAS załaduje je do pamięci, ustawi ekran w
tryb GRAPHICS 0.9 i wyświetli przykładową grafikę.
Dyskietka ze wspomnianymi wyżej programami
tutaj.
Ciąg dalszy nastąpi...