# Grixel - Retro Tools

>Це програма для створення растрових структур для використання в програмуванні на 8-бітних комп'ютерах Atari.
Програма передбачає, що користувач розуміє, що він робить, тому вона не перевіряє налаштування на відсутність здорового глузду.
Ми можемо створювати структури одного екрана або більше. Ширина завжди налаштовуватиметься так, щоб бути кратною байту даних.
Ми можемо творити в HiRes або LoRes з одинарною чи подвійною висотою пікселів у лініях відображення.
Програма дозволяє додавати кольори за допомогою системи спрайтів Atari (тільки гравці, снаряди поки не включені).
Можна змінювати колір будь-якого регістра через переривання DLI. Крім того, DLI підтримує зміну ширини спрайтів.
Програма підтримує декілька проектів одночасно.

---

##### # Проект
>
>Проект можна створити/завантажити з меню або панелі вибору:
![](Assets/Image/uk-UA/grixel_1.png)
`Назва проекту` несе інформаційний характер, щоб користувач не загубився.
`Система ТБ` визначає, яку колірну палітру ми будемо використовувати.
`Режим пікселя` визначає режим для Antic.
`Ширина` для HiRes дорівнює кратному 8, а для LoRes - кратному 4.
`Висота` є "довільною".

---

##### # Редактор

>1. Ліва частина, вибір, палітра та інструменти:
![](Assets/Image/uk-UA/grixel_2.png)
`Вибір` - це індикатори, які вказують, який регістр закріплено за кнопками миші.
`Палітра` містить регістри, за допомогою яких ми малюємо на зображенні. Клік мишею закріплює регістр до відповідного поля `Вибір`. Подвійний клік відкриває вибір кольору, який буде закріплено за регістром як початковий колір (починаючи з верхнього рядка зображення). Регістри BG (фон), PF1, PF2 відповідають графічним даним, тоді як PM0, PM1, PM2 і PM3 є спрайтами. PM01 - це результативний колір від накладення PM0 та PM1, аналогічно PM23 від PM2 та PM3. Зміна кольору спрайту завжди відбувається попарно. Маленькі кнопки 1, 2 і 4 під певним спрайтом позначають його початкову ширину.
`Інструменти` - це набір інструментів, що полегшують малювання:
 => Олівець, малювання пікселями, ми можемо збільшувати товщину та форму пензля.
 => Лінія, малювання ліній, ми починаємо з натискання кнопки миші, а закінчуємо її відпусканням. Ми можемо збільшувати товщину лінії та форму її кінців.
 => Заливка, ми заповнюємо область (не кольором, а регістром), обравши певний візерунок. Білий колір на візерунку відповідає лівій кнопці миші (ЛКМ), а чорний - правій (ПКМ).
 => Фігура, ми малюємо одну з трьох фігур: квадрат, коло або еліпс. Ми можемо обрати три варіанти: лише рамка (колір ЛКМ), лише заливка (ЛКМ) або рамка з заливкою (ЛКМ, ПКМ).
 => Текст, ми можемо вставляти текст із поля вмісту, обирати будь-який системний шрифт та розмір. Колір буде обрано в залежності від натиснутої кнопки кольору. Утримуючи кнопку, ми можемо змінювати позицію та закріпити її відпусканням.
 => Виділення, ми можемо його пересувати та копіювати. Підтверджуємо кліком поза областю виділення або клавішею "Enter".

---

##### # Вікно вибору кольору
>
> 1. Одинарний колір.
![](Assets/Image/uk-UA/grixel_3.png)
Тут ми обираємо одинарний колір, який відображається маркером в нижньому лівому кутку вікна. Вибір здійснюється за допомогою лівої кнопки миші.
> 2. Колір спрайтів.
![](Assets/Image/uk-UA/grixel_4.png)
Тут ми обираємо кольори для спрайта 0, 1 або 2,3. 0 чи 2 обираємо лівою кнопкою миші, а 1 чи 3 - правою. Колір MIX (змішаний) оновлюється в реальному часі.

---

##### # Шари
>
>Програма підтримує шари.
![](Assets/Image/uk-UA/grixel_5.png)
Ми малюємо на активному шарі. Ми можемо їх додавати, видаляти, переміщати і складати/об'єднувати.
Можна використовувати референсний шар. Він буде видимий як тло зображення. Знаходиться в нижній частині панелі шарів. Його видимість можна перемикати пробілом.

---

##### # Панелі контролю зображення
>
>![](Assets/Image/uk-UA/grixel_6.png)

1. Панель DLI відображає зміни кольору для обраного регістра в ЛКМ. Щоб змінити колір, наведіть курсор і натисніть лівою кнопкою миші на цю панель в потрібному місці. Відкриється вікно вибору кольору. Починаючи згори, перший колір походить від початкових налаштувань ліворуч у вікні на об'єкті "Палітра".
Якщо ми хочемо змінити діапазон кольору, або перенести його початок на інший рядок, наведіть курсор на цю панель у межах потрібного діапазону та використовуйте коліщатко миші. Це стосується виключно початків відповідних діапазонів.
Щоб скасувати область для певного розподілу кольору, натисніть середню кнопку миші по даному маркерові.
Щоб змінити колір зазначеного діапазону - натиснути праву кнопку миші в цій зоні.
2. Панель ширини показує ширину для пари поєднаних регістрів спрайтів, а саме PM0/PM1 або PM2/PM3 при обиранні за посередництвом ЛКМ. Панель має по 3-и вертикальні відокремлені лінії до одного з тих реєстрів: Зелена показує нормалізований відступ в одну базу від ширини; Жовта свідчить про його дублювання; Червона лінія відбиває чотирикратне масштабне помноження у товщині. Ширина буде циклічно обертатися в форматі 1,2,4,1,2..., якщо натиснути відповідне поле. Ця подія модифікуватиме ширину для всього іншого графічного залишку нижче цієї лінії по сторінці.
3. Панель перевірки (валідації). Під час малювання регістрами спрайтів, ми повинні суворо дотримуватись правил, що керують відображенням на Atari. У разі порушення, в зоні лінії намальованого зображення замість результату світитиметься горизонтальна жовто-червона риска (товщиною 4 пікселі, для кожного реєстру окремо). Червоний відтінок відсилатиме до вини зазначеного регістру на тій стадії дефекту. З урахуванням виділення та кліку по лінії цього рядка, Ви знайдете осередок неполадки легше.

---

##### # Правила для спрайтів

1. При базовій ширині, максимальна товщина спрайту дорівнює 8 пікселям LoRes. Таким чином від країв одного активного об'єкта не зможе бути відступу понад 8 пікселів на рядок до цієї самої референції. У всіх наступних рядках дотримуються тих самих правил відступу. При успішній відмальовці ці відомості трансформуються та інтегруються до переривань системи DLI на виході у файли експорту.
2. Подвійна ширина генерує товщину об'єкта рівну 2-вом розмірам від звичайного пікселя LoRes в ширину, займаючи під 16 ділянок для площини (важливо - тут одиночний натиск олівцем спровокує попереджувальну помилку).
3. У кратності чотириразового помноження ширина спричинить заповнення розміру площі аж до 32 LoRes одиниць, з аналогічним використанням розтягнень (потрібно пам'ятати про структуру спрайтового пікселя).
4. Трохи інакше у системі HiRes - завдяки дрібнішим елементам малюнок виглядає різкіше, але при використання тих же спрайтів їх піксель успадковує крупний масштаб стандартної норми LoRes. Відповідно всі обмеження тут і впливають рівно на цю розкладку.

---

##### # HiRes
>
>На відміну від стандарту LoRes де ми послуговуємося залученням усіх існуючих регістрів, тут доступ лишається винятково для можливостей від тіней PF1, та кольору із тінями від PF2 (примітка - загальний вибір кольору позначиться одразу одночасно і на першому та на другому, однак дозвіл змінити світловіддачу в тінях регулюється особисто).

---

##### # Експорт
>
>Якщо графічне заповнення вміщується на стандартний єдиний екран, у файл експорту додаватиметься цілковито весь програмний запуск разом із виводом зібраного образу. Для розширеніших випадків ви генеруватимете інформацію як сухі сирі дані для вашого проекту.
