Interlejs TGI by Kaz 2009-11-11 11:17:32

Kolega Gonzo od lat próbuje różnych ciekawostek na Atari. Dotychczas upodobał sobie testowanie programu Graph2Font, dzięki czemu mogliśmy na przykład zobaczyć, że obrazki z 17 kolorami w linii są jak najbardziej możliwe. Gonzo jako pierwszy prezentował też obrazki G2F z grającą jednocześnie muzyką (temat nie podjęty przez grafików, a szkoda, bo muzycy są dość aktywni i graficy mogli swoje dziełka ilustrować utworami muzycznymi albo muzycy prezentować swoje prace z efektownymi logosami), jako pierwszy próbował swych sił w animacjach wykonywanych w programie G2F, co skutkowało modyfikacjami programu dokonanymi przez autora "Graph2Font".

Teraz inny temat przyciągnął uwagę Gonzo: interlejs. I od razu mamy tego skutki - tryb graficzny, który autor nazwał sobie TGI. Ale oddajmy głos Gonzowi:

"Jest to mieszanka trybu GR8 i GR10, a więc hi-resu i trybu 9-kolorowego GTIA. Rozdzielczość 320 na 200 pikseli w 18 kolorach. Podstawowy piksel 4x1, w obrębie pixela 4x1 mamy do dyspozycji piksele 1x1 o dwóch jasnościach. TGI służy mi głównie po to, żeby wyświetlać hi-res w kolorze, ale okazuje się, że poprzez drobne modyfikacje kodu, bardzo łatwo można uzyskać inne mieszanki."



Wykonanie obrazka w tym trybie nie jest łatwe, ale dzięki dostarczonym przez Gonzo poradom i skryptom przynajmniej możliwe. Załóżmy, że narysowaliśmy obrazek na pececie i chcemy go przekonwertować na tryb TGI. Procedura wygląda następująco:

1. Musimy uzyskać dwie warstwy, z których składać się będzie obrazek TGI. Obie najłatwiej uzyskamy z tego samego rysunku czy zdjęcia.

2. Najpierw pozyskujemy warstwę kolorową - obrazek w trybie GTIA (GR10, 9 kolorów w jednym odcieniu). Redukujemy pecetowski obrazek do 9 kolorów oraz rozdzielczości 80x200 pikseli. "Do konwersji obrazka na format GR10 użyłem programu XnViev. Powiedzmy, że paleta to: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15. Redukcja polega na zamianie kolorów: 9 10 11 12 13 14 15 na któryś z pozostałych (najlepiej najbardziej zbliżonych do siebie). Następnie należy w palecie kolorów niestandardowych zdefiniować paletę 9 odcieni szarości. I ostatni krok - kolory z palety obrazka należy pozamieniać na kolory z palety kolorów niestandardowych w kolejności od najciemniejszego do najjaśniejszego. Ważne jest to, żeby kolory 0 i 8 były o podobnej jasności, bo to kolory ramki - 0 dla GR10, 8 - dla GR8. W tym celu przed redukcją należy zamienić kolor 8 z jakimś innym (takim, który ma jasność najbardziej zbliżoną do koloru 0)" Dodam od siebie, że inny program, IrfanView pozwala od razu konwertować do 9 kolorów, ale też trzeba zadbać samemu o ich odpowiednią kolejność w palecie.



3. "Taki obrazek zapisujemy w jednym z popularnych pecetowskich formatów, a rozpoznawanych przez "Graph2Font" (BMP, GIF, PNG, JPG), wczytujemy do "G2F" (parametry: screen - 40 bytes, pixel 4x1), a potem zapisujemy go sobie jako MIC czyli standardową grafikę Atari (patrz katalog "GR10" w załączonym przykładzie). Przy okazji można wykasować 80-tą kolumnę ze względu na to, że GR10 przesuwa obraz w prawo."

4. "Kolory trzeba trzeba dobrać ręcznie - w pliku mic.asm pod komentarzem ;--- first line of screen initialization ładowane są rejestry kolorów, trzeba podać odpowiednie wartości. Rejestr Colbak trzeba załadować kolorem $00, jest to kolor ramki u góry i na dole obrazka. Kolor Colbak używany w obrębie obrazka ustawia się w pierwszej instrukcji przerwania dli1 i dli2."

5. "Jeśli mamy już stworzony plik MIC i dobrane kolory to trzeba odpalić plik bat.bat i skompilować obrazek - wynikiem powinien był ładny obrazek w trybie GR10 (mic.xex). Plik mic.mic można skopiować do katalogu 1pic_interlace i skompilować."



6. "Otrzymamy efekt w postaci obrazka TGI nie jest powalający, ale hi-res jest już widoczny. Żeby było naprawdę ładnie to niestety trzeba stworzyć dwa nowe pliki mic1.mic i mic2.mic. W tym celu potrzebny jest mic.mic (ten, który już został utworzony), oraz dowolna konwersja obrazka żródłowego do formatu 320x200. Pozostaje tylko:
Po skompilowaniu (w katagu 2pics_interlace) otrzymujemy pełne TGI."


Jeszcze kilka wyjaśnień na temat zawartości Gonzowej paczuszki z przykładowymi skryptami i grafikami:

Gonzo napisał też: "Robię właśnie taki mały pakiecik do konwersji grafik, być może uda się zrobić z tego program na Atarkę. Powstaje coś w rodzaju małego edytorka GTIA, który pozwalałby na zmianę kolorów (klawisze 0-9), jasności (klawisz A), trybów graficznych (shift - 9, 10,11) i trybów programowych - interlace, komiks (spacja). Ponieważ ładowane będą dwa obrazki, to będzie można też przełączać tryb wyświetlania obrazka - (S) single pic, (T) two pics. Edycji przerwań DLI w celu zmiany kolorów czy rozdzielczości dla każdej linii raczej nie będzie, bo to przekracza moje możliwości, ale jeżeli ktoś będzie chciał to zawsze może to sam sobie dorobić w asemblerze.

W tej chwili mam dwa moduły, w których można wyświetlić na razie jeden obrazek w trybie komiksowym (przeplot1 - kolory w liniach nieparzystych, przeplot2 - kolory w liniach parzystych). Wystarczy skonwertować obrazek do rozdzielczości 80x200 w 9 kolorach. Później trzeba wczytać to do G2F, zamienić wiersze na hi-res i wygenerować plik o nazwie mic.mic. Plik trzeba wrzucić do katalogu przeplot1/2, a póżniej odpalić bat'a. I mamy xex'a. Kolory można zmieniać w pliku mic.asm. Tryb interlace działa, ale jeszcze nie tak, jakbym chciał. Jeśli chodzi o kod, to Tebe mi pomaga i mam nadzieję, że zniesie mnie jeszcze trochę :)."




Na koniec jeszcze o wspomnianym mieszaniu innych trybów: "TGI w bardzo prosty sposób potrafi wyświetlić prawie dowolny miks trybów graficznych! Trzeba tylko dokonać drobnych zman w pliku mic.asm i odpowiednio przygotować dwa obrazki mic1.mic i mic2.mic, chociaż wystarczy też jeden mic.mic, ale wtedy efekt nie będzie pełny. Tak na szybko zrobiłem coś w rodzaju HIP'a tylko, że w kolorze - do interlace'u użyłem jednego obrazka skonwertowanego do 8 kolorów. Powstał obrazek w rozdzielczości 160x200 w 64 kolorach (8 jasności x 8 kolorów - i dokładnie tyle użytych kolorów pokazuje XnView!). Możliwości tego trybu to 16 jasności z trybu GR9 i 9 kolorów z trybu GR10 (16x9=144kolorów!). TGI to jest raczej pewna koncepcja tworzenia różnych trybów interlace, a nie tylko zwykłe połączenie GR8 i GR10."

Paczuszka z eksperymentami Gonzo tutaj.
Kaz 2009-11-11 11:22:37

Acha, do ogladania eksperymentow Gonza nalezy korzystac z oryginalnego sprzetu. Emulator to naprawde nie to samo :).

macgyver 2009-11-11 12:31:05

kiedyś ktoś próbował interlace-ować gr.8 i gr.15 - czy mimo wszystko wykorzystanie gr.10 to jednak nie ciut duża pikseloza szczególnie w połączeniu ze szczegółowym gr.8?

Kaz 2009-11-11 12:55:20

Mnie najbardziej intryguje obrazek, ktory w nowince jest na koncu - Fernandez. Mozna fajnie komponowac elementy w GR8 i z kolorowa grafika. Chodzi mi pewien rysunek po glowie, ale i tak mam jeszcze pare rzeczy do narysowania roznym ludziom.

A ze nie wszystkie efekty zachwycaja to zrozumiale. Taka to juz rola eksperymentow, ze nie maja zachwycac, tylko badac nowe tereny. Bez takich poszukiwan nie da sie trafic na cos wartosciowego, czy po prostu dowiedziec sie czegos czy tez sprawdzic, czy cos ma sens.

irwin 2009-11-11 12:55:28

@Kaz temat dodawania muzyczki do obrazka czy na odwrót jest rozpowszechniony na scenie C64. Tam czasami są tacy co i malują i komponują świetnie. Tylko że u nas w ogóle raczej ciężko z czymkolwiek ;)

@Gonzo wykonałeś kawał świetnej roboty. Mimo iż to niezbyt lubiany przeze mnie interlace (żeby to tak łagodnie ująć ;) to naprawdę dobrze słyszeć że się w Atarowskiej grafice coś dzieje. Bo mimo iż 30 lat od stworzenia tych układów mija to nadal jeszcze sporo ich możliwości pozostało nie tyle do odkrycia ale do odostępnienia ich w sposób bardziej user friendly. Gratulacje.

Co się zaś tyczy Tebe - hmm no cóż z tego co czytam tu i na Atariage to widzę że to jakaś maszyna bo ma czas dla wszystkich. Sam ostatnio mu zawracałem głowę, mimo iż wykonał taki kawał roboty to teraz widze że w międzyczasie pomagał też innym a i pewnie sam robił własne projekty.

sa 2009-11-11 13:30:05

TeBe nie jest człowiekiem.

mono 2009-11-11 14:23:08

@sa: Identyccznie Philip Dick wyrażał się o Stanisławie Lemie :D

@gonzo: Bardzo ciekawy efekt. To chyba jedyny sposób uzyskania trybu gtia po lewej i hiresu po prawej w jednej linii. Szkoda tylko, że to interlace :( A próbowałeś dokładać sprajty zarówno w ekranie gtia, jak i w hires? Efekt mógłby być jeszcze lepszy, bo w hiresie sprajty podkolorowywałyby tło i znaki, a w gtia można by układać sprajta w połowie piksela gtia uzyskując lepszą rozdzielczość. Może wtedy różnice między gtia i hires nie byłyby takie rażące?
Twoje eksperymenty są bardzo ciekawe.

Kaz 2009-11-11 14:34:48

Mono - przy okazji moze i Ty odkryjesz czesc swoich kart w zakresie podkolorowywania grafiki? :). Tez jestes autorem ciekawych pomyslow i programow... ktore pozostaja nieznane szerokim rzeszom ludzi spragnionych nowych eksperymentow :).

mono 2009-11-11 18:37:40

A nie takie one znowu ciekawe :) Ale można by mceng'a doprowadzić do używalności i faktycznie udostępnić. Niewielka rzecz, ale może się komuś przydać.