# Grixel - Retro Tools

>To aplikacja do tworzenia bitmapowych struktur do wykorzystania w programowaniu komputerów Atari 8bit.
Program zakłada iż użytkownik wie co robi więc nie waliduje ustawień niemających sensu.
Możemy tworzyć struktury jednoekranowe lub większe. Szerokość zawsze będzie dostosowana do wielokrotności bajtu danych.
Możemy tworzyć w HiRes lub LoRes z pojedyńczą lub podwójną wysokością piksela w liniach wyświetlania.
Program pozwala na podkolorowywanie za pomocą systemu duszków (tylko duszków, pociski nie są uwzględnione narazie) Atari.
Możliwa jest zmiana koloru dowolnego rejestru za pośrednictwem przerwania DLI. DLI obsługuje dodatkowo zmianę szerokości duszków.
Program obsługuje wiele projektów na raz.

---
##### # Projekt
>Projekt możemy utworzyć/załadować z menu lub paska wyboru:
![](Assets/Image/pl-PL/grixel_1.png)
`Nazwa projektu` jest informacyjna, aby się użytkownik nie pogubił.
`System TV` określa z jakiej palety kolorów będziemy korzystać.
`Tryb Pikseli` determinuje tryb dla Antica.
`Szerokość` dla HiRes to wielokrotność 8, a dla LoRes to wielokrotność 4.
`Wysokość` jest "dowolna".

---
##### # Edytor

>1. Lewa cześć, wybór, paleta i narzędzia:
![](Assets/Image/pl-PL/grixel_2.png)
`Wybór` to wskaźniki mówiące jaki rejestr jest przypisany do klawiszy myszy.
`Paleta` to rejestry którymi rysujemy na obrazie. Kliknięcie przyciskiem myszy przypisuje rejestr do odpowiedniego pola `Wybór`. Dwuklik wchodzi w wybór koloru który będzie przypisany do rejestru jako startowy kolor (od najwyższej linii obrazu). Rejestry BG (tło), PF1, PF2 odpowiadaja danym graficznym a PM0, PM1, PM2 i PM3 to duszki. PM01 to kolor wynikowy z nałożenia duszka PM0 i PM1 i analogicznie PM23 z duszka PM2 i PM3. Zmiana koloru duszka zawsze jest w parze. Małe przyciski 1, 2 i 4 pod konkretnym duszkiem oznaczają dla niego startową szerokość.
`Narzędzia` to zestaw narzędzi wspomagającej rysowanie:
 => Ołówek, rysowanie pikselem, możemy zwiększać grubość ołowka i kształt.
 => Linia, rysowanie linii, rozpoczynamy wciskając przycisk myszy a kończymy uwalniając go. Możemy zwiekszać grubość linii i kształt zakończeń.
 => Wypełnienie, wypełniamy obszar (nie kolor tylko rejestr) wybierając wzór. Biały kolor na wzorze odpowiada LPM a czarny PPM.
 => Kształt, rysujemy jeden z trzech kształtów kwadrat, koło lub elipsę. Możemy wybrać trzy warianty, sama ramka (to kolor LPM), same wypełnienie (LPM) lub ramka z wypełnieniem(LPM, PPM).
 => Tekst, możemy wstawić tekst z pola treść, wybrać mu dowolną czcionkę systemową i wielkość. Kolor zostanie wybrany w zależności od użytego przycisku kolor. Trzymają przycisk możemy ustawic pozycję którą zatwierdzamy uwalniając przycisk.
 => Zaznaczenie, Możemy je przesuwać i kopiować. Zatwierdzamy kliknięciem poza obszar zaznaczania lub wciskając "Enter".

---
##### # Okno wyboru koloru
> 1. Pojedyńczy kolor.
![](Assets/Image/pl-PL/grixel_3.png)
Tu wybieramy jeden kolor, wskazuje go wskaźnik w dolnym lewym rogu okna. Wyboru dokonujemy za pośrednictwem lewego przycisku myszy. 
>2. Kolor duszków.
![](Assets/Image/pl-PL/grixel_4.png)
Tu wybieramy kolory dla duszka 0, 1 lub 2,3. 0 lub 2 wybieramy lewym przyciskiem myszy a 1 lub 3 prawym. Kolor MIX jest aktualizowany na bierząco.

---
##### # Warstwy
>Program obsługuje warstwy.
![](Assets/Image/pl-PL/grixel_5.png)
Rysujemy na aktywnej warstwie. Możemy je dodawać, usuwać, przenosić i scalać.
Można użyć warstwy referencyjnej. Będzie ona widoczna jako tło obrazu. Jest umiejscowiona w dolnej części panelu warstw. Jej widoczność można przełączać spacją.

---
##### # Paski kontroli obrazu
>![](Assets/Image/pl-PL/grixel_6.png)
1. Pasek DLI pokazuje zmiany koloru dla zaznaczonego rejestru w LPM. Aby dokonać zmiany koloru należy kliknąć lewym przyciskiem myszy na ten pasek w odpowiednim dla nas miejscu. Zostanie wywołane okno zmiany koloru. Od góry pierwszy kolor wynika z ustawień startowych po lewej stronie okna na obiekcie "Paleta". 
Jeśli chcemy zmienić zakres koloru, przesunąć jego początek na inną linię, to należy umieścić kursor na pasku w tym zakresie i użyć kółka skrolowania na myszce. Dotyczy to wyłącznie początków zakresów.
Jeśli chcemy usunąć zakres zmiany koloru to należy na nim kliknąć środkowym przyciskiem myszy.
Jeśli chcemy zmienić kolor zakresu to klikamy prawym przyciskiem myszy na ten zakres.
2. Pasek szerokości pokazuje szerokość pary złączonych rejestrów duszków czyli PM0 i PM1 lub PM2 i PM3. Oczywiście tylko w tedy gdy jeden znich jest zaznaczony do LPM. Pasek zbudowany jest w taki sposób iż dla jednego rejestru ma trzy pionowe linie, pierwsza zielona oznacza że w tej linii obrazu duszek będzie miał pojedyńczą szerokość, druga żółta oznacza podwójną szerokość i trzecia czerwona poczwórną szerokość. Aby zmienić szerokość klikamu na ten pasek dla odpowiedniego rejestru a szerokość będzie się cyklicznie zmieniała w sekwencji 1,2,4,1,2... itd. Tu należy pamiętać iż zmiana wpływa na całą pozostałą wysokość od linii w którą klikamy.
3. Pasek walidacji. Rysując rejestrami duszków musimy trzymać się sztywno zasad które sterują wyświetlaniem duszków na Atari. Jeśli je naruszymy to w danej linii gdzie występuje błąd na obrazie zostanie narysowana pozioma linia w kolorach czerwony i/lub żółtym. Linia ta ma 4 piksele szerokości dla każdego rejestru duszków po jednym. Jeśli piksel ma kolor czerwony to w tej linii ten rejestr ma przekroczone zasady. Można taką linię zaznaczyć klikając w ten pasek aby łatwiej było znaleźć problem.

---
##### # Zasady dla duszków
1. Przy szerokości pojedyńczej szerokość duszka to 8 pikseli LoRes. Czyli skrajne piksele dla danego rejestru duszków nie mogą być od siebie oddalone dalej niż 8 pikseli w jednej linii obrazu. W każdej kolejnej linii obrazu zasada jest oczywiście taka sama ale miejsce użycia może być inne. Zostanie dodany przy eksporcie odpowiedni kod do przerwań DLI.
2. Przy podwójnej szerokości piksel duszka ma szerokość 2 pikseli LoRes. Rysując musisz to uwzględnić gdyż pojedyńczy piksel zawsze wygeneruje błąd. Czyli tu również mamy 8 pikseli duszka ale mają podwójną szerokość więc na obrazie możesz zamalować 16 pikseli LoRes.
3. Przy poczwórnej szerokości piksel duszka to 4 piksele LoRes i możesz zamalować 32 piksele LoRes. Musisz tylko pamiętać o spojności piksela duszka.
4. Odrobinę inaczej jest HiRes tam bowiem piksele danych są mniejsze niż piksel duszka. Rysowanie zwykłym rejestrem jest małym pikselem HiRes ale duszka standardowym LoRes. Reszta zasad pozostaje bez zmian.

---
##### # HiRes
>W odróżnieniu od LoRes gdzie rysujemy wszystkimi zwykłymi rejestrami w HiRes rysujemy tylko PF1 (tylko odcień) i PF2 (kolor i odcień). Wybór koloru dla obu rejestrów ustawia kolor w obu rejestrach. Natomiast jasność musimy wybrać indywidualnie. 

---
##### # Export
>Jeśli obraz mieści się na jednym ekranie Atari export będzie zawierał pełny kod do uruchomienia i wyświetlenie obrazka. W innym przypadku wygeneruje suche dane.

