Widzę że twój pierwszy obrazek jest przygotowany do trybu gtia 320x192 (4x1 czyli realnie 80x192) w kolorach Atari. Jednak Gtia ma trzy tryby: 64,80,96x192 w 16 ODCIENIACH jednego koloru 64,80,96x192 w 16 kolorach ale o JEDNAKOWEJ jasności oraz 64,80,96x192 w 9 kolorach Dlatego tak się kaszani gdyż używasz w nim trybu w 16 kolorach ale o jednakowej jasności. A ponieważ na twoim obrazku jest i czarny i praktycznie biały to nie da się ich umieścić na jednej jasności. Twój obrazek potrzebuje więc tego ostatniego trybu. Tak więc po pierwsze najpierw - jak już przygotowujesz obrazek - przekonwertuj go do 9 colorów:
A potem... hmm nie wiem jakiego programu używałeś ale wystarczy że podasz oznaczenia kolorów i powinno być ok. Graph2Font nie pozwala używać tego trzeciego trybu, gdyż każdy obrazek w 4x1 ładuje domyślnie jako taki który ma odcienie jednego koloru. W sume takie są częsciej spotykane ale i tak powinna być opcja wyboru. Jednak myślę że da się to zrobić w taki sposób: - Załaduj ten powższy obrazek do G2F, będzie w odcieniach szarości. - zapisz go jako *.asm (niestety ja nie mogę tego zrobić - gdyż mam problemy z zapisem plików w G2f i Ais i jako że asm nie da się do g2f wczytać tako też i zapisać nie można. Ale u Ciebie napewo da się.) - zobacz wtedy na nagłówek takiego pliku asm, powinno być oznaczenie trybu $d01b (może być np tak: lda #$04 sta $d01b oraz oznaczenie poszczególnych kolorów. Zmień lda na 08$ a rejestry kolorów dodaj/powpisuj dane kierując się oznaczeniami w palecie jaką masz w g2foncie. (rejestry kolorów od 704-712) Potem mads i obrazek gotowy. Pewnie coś namieszałem, ale jakby co to Tebe sprowadzi mnie na ziemie i wyjaśni ;)
No, nie mówiłem, Tebe jak zawsze stoi na straży ;)
przy okazji zamieszczony w moim poście png został właśnie przekonwertowany do 9 kolorów i to w wymaganej palecie 128 kolorów.
a przy okazji dwa - może jeśli to jest jakiś obrazek tytułowy - to lepiej zamiast 80x192 w 9 kolorach użyć 168x240 w 5 + podkolorowanie duszkami albo 160x240 w 4 + podkolorowanie duszkami i zmiany rastra (ten niebieski z boku idealnie nadaje się do pożniejszej zmiany rastra) Wyglądałoby by to o wiele ładniej, nie tylko z uwagi na pixel 2x1 ale także możliwość resize źródła do trochę większego formatu (o 25% - 192 vs 240) choć oczywiście jest przy tym więcej roboty.
Dzięki za wyjaśnienia. Właściwie to chodziło mi o takie przekonwertowanie obrazka, żeby można było go wyświetlić w trybie 11, ale rzeczywiście, bez możliwości zmiany jasności kolorów, nie każdy obrazek się do tego nadaje. W zasadzie tryb 10 też jest dosyć ciekawy, a obrazków w tym trybie jakoś do tej pory nie widziałem (nie licząc interlace'ów). Fernandez po przeniesieniu do gr 10 (irwin - świetnie udało ci się zredukować kolory) wygląda całkiem całkiem, i to bez PM i zmian kolorów. xex ->link<-
Tebe - co znaczy "inna wariacja"? Spotkales sie z takim przypadkiem, ze CIN ma mieszanke GR15 z GR10 albo GR9?
Akurat tak sie zlozylo, ze dzisiaj opisywalem format CIN ->link<- i nigdzie nie znalazlem wzmianki ani przykladow mieszania w CIN GR15 z czyms innym niz GR11. Co wiecej, GR15 nadaje tam jasnosc kolorom, wiec gdyby mieszac z GR9, ktory tez ma tylko odcienie to nie powstalby zaden kolorowy tryb...
@Tebe: Kierując się informacjami z opisu formatu CIN jak Kaz właśnie napisał (dzięki! bardzo dobra idea na przybliżenie formatów graficznnych) to co Gonzo przedstawił, to nie jest CIN. Gdyż drugi obrazek to nie gr15 a zwykły hires. I rzeczywiście ciekawie to wygląda gdyż pixle 1x1 dodały obrazkowi detali. Więc myślę że nadal aktualne jest pytanie Gonzo: "dało by się zrobić taki tryb?"
napisałem o innych wariacjach, które są potencjalnie możliwe jeśli zastosować idee działania CIN-a (nie spotkałem ich w działaniu), jeszcze inną wariacją dla której Vidol coś już popełnił jest mieszanie GR15 z GR8 (obrazek tytułowy do gry XXL-a)
pozatym idea podbarwiania 4 pixli GR8, 1 pixlem GR10 jest mało optymalna, w załączniku na szybko przeróbka CIN-a na mieszanie GR8 z GR11
1. Nawiazujac do obrazka "Fernandez" napisales Irwin, ze "zamieszczony w moim poście png został właśnie przekonwertowany do 9 kolorów i to w wymaganej palecie 128 kolorów." Dlaczego 128 kolorow, skoro tryby GTIA maja 256-kolorowa palete?
2. Uwaga Mikera jest sluszna - ten obrazek slabo wyglada w trybach GTIA, poniewaz napakowany jest szczegolami i po konwersji przypomina raczej hi-res: gwaltowne zmiany jasnosci sasiadujacych pikseli. Idealne obrazki do GR9 i podobnych powinny miec duze, lagodnie cieniowane powierzchnie.
3. Tebe, o jaka gre xxl-a chodzi? Przyjrzalbym sie.
4. Idea trybu TIN (Tebe's Interlace) jest interesujaca. Jak rozumiem, mieszanie GR8 (2 kolory) z GR11 (16 kolorow) daje nam w obrebie jednego piksela GR11 (4x1) 4 piksele hi-res o dwoch z 8 dostepnych w hi-res jasnosciach - bo chyba tak trzeba by to rozwiazac, ze hi-res sluzy do ustalania jasnosci pikseli? Wiec efektem bedzie mniejsza kontrastowosc obrazka niz w CIN, za to mozliwe bedzie pokazanie wiekszej ilosci szczegolow. Dokladnie tak, jak widac to w pliku xex, ktory udostepnil Tebe.
To moze w takim razie inne rozwiazanie - zamiast uzywac hi-res do (slabego) regulowania odcienia piksela dwoma stanami jasnosci proponuje wykorzystac te 4 piksele do podcieniowania - w ten sposob bedziemy mieli 4 razy 2 odcienie = 8 jasnosci (teoretycznie). Mozna oczywiscie wykorzystac tylko po 2 piksele z kazdych 4, wtedy osiagniemy 2 x 2 odcienie - 4 jasnosci. W obu przypadkach tracimy poziom szczegolowosci hi-resu, ale zyskujemy 8 lub 4 jasnosci. Mozna by rzec, ze to taki rownowaznik mieszania GR9 i GR11 albo GR15 i GR11. Poniekad tak, ale jednak cos innego. Poniewaz gdyby moc edytowac wartswe hi-resowa to w wielu miejscach, tam gdzie nie jest wymagane zachowanie odcieni, mozna by zachowac poziom szczegolowosci hi-resu. No nic, to tylko taka dywagacja.
Gdyż w Graphics 10 dostępnych jest 9 kolorów z palety 128 kolorów, przynajmniej tako rzecze w Antic, Wikipedi, Atariki i innych miejscach. Przykład tu: ->link<- A dlaczego tak jest to już nie do mnie pytanie,za cienki bolek ze mnie.
Zresztą przy tego typu obrazku w sumie to nie ma znaczenia czy 128 czy 256 czy 4096 ;) kolorów gdy można użyć jedynie 9 i to z pixlami kaflami. Spróbuj przekonwerterować go z paletą 256 kolorów a zobaczysz że praktycznie będzie dokładnie to samo.
Właściwie to muszę stwierdzić, że wiem,że nic niewiem :) bo tak:
- Po tym jak tdc stwierdził, że obrazka nr 3 na A8 nie da się zrobić poczułem się trochę niepewnie ;), ale akurat wtedy tebe wymyślił TIN...
- Zrzut z ekranu emulatora obrazka TIN wygląda tak:
Podobnie jest w przypadku innych trybów interlace, a chodzi mi o to, że w jednej linii są i kolory i hires. Taki sposób wyświetlania grafiki to jest właściwość emulatora? Przecież to jest niemożliwe, a może jednak jest :)
- W zasadzie to tryby interlace nie są chyba trybami graficznymi tylko mixami, bo nie wystarczy sam program ANTIC'a, i potrzebne są dodatkowe procedury.
- Interlace miga, ale nie koniecznie (co zawsze podkreśla Kaz), i to jest prawda :) Np. u mnie po podkręceniu emulatora do 120% obrazek tebego w ogóle nie miga i pomijając ograniczenia użytych trybów wygląda całkiem nieźle (tebe - co miałeś na myśli "idea podbarwiania 4 pixli GR8, 1 pixlem GR10 jest mało optymalna"?)
Kaz - jeśli chodzi o możliwość użycia hires w obrazku z interlacem, to wszystko to co napisałeś jest jak najbardziej możliwe i zależy tylko od tego jak się skonwertuje obrazek, a jeśli chodzi o paletę kolorów, to w obrębie piksela (TIN - 4x1) mamy 16 kolorów w 2 jasnościach, to razem 32 :)
Well, mixing Gr.8 with Gr. 11 already exists... take a look at Raphael Espino`s "JPEG Colour Converter" (CPEG), there he has used such a mode. Alas, he has only a save routine for Gr. 15 mixed with Gr. 11 (CIN mode), there is no save routine for Gr. 8 mixed with Gr.11 you can only view this mode - which looks awful in most cases, since you have 16 colours with two luminances. I already tested Gr. 8 with Gr. 11 with many pics and the output was always awful (at least in this program)...
Besides, I have another question or better two: - is Gr. 10 only displaying 9 colours or could you also use luminances (9 grey tones, 9 red tones, 9 blue tones) ?!?
- is HIP or the GTIA bug/shifting only working with Gr. 10 combined with Gr. 9 ?!? Or would it also work with Gr. 10 combined with Gr. 11 ?!?
Well, I already thought about a mode in the past, similar to RIP, but instead of Gr. 9 + Gr. 10, where Gr. 9 has the lum. and Gr. 10 has the colours (and no PC program can display 9 colours) - one would use Gr. 10 for the lum (only 8 lum to make conversions easier, so lum 1 and 9 are the same) and Gr. 11 for the colours (16 colours). If the GTIA bug still works in the combination of Gr. 10 and Gr. 11 and if Gr. 10 can also display lum, then we could have 160x240 pixels with 128 colours easily... but I am not sure if it is possible...
Gonzo, jezeli chcesz przeprowadzac ocene interlaceu to nic nie zastapi Ci prawdziwego Atari. Hi-res na telewizorze czy monitorze RGB nie wyglada dokladnie tak, jak w emulatorze. Obraz nie jest tak czysty, piksele nie sa tak wyrazne. Tak samo kolory moga byc znacznie bardziej przygaszone niz paleta w emulatorze. To taka uwaga na wstepie. A podkrecanie emulatora do 120% to raczej nie jest metoda do testow - prawdziwego obrazu na TC nie podkrecisz do 120% :).
Druga sprawa - tryby interlace to tak zwane programowe tryby graficzne, Dracon w innym watku zapodal link do Wiki: ->link<- . W kazdym przypadku to pozeracze czasu procesora - mniej lub bardziej. Taki CIN czy MPC zzeraja duzo.
Trzecia sprawa - "idea podbarwiania 4 pixli GR8, 1 pixlem GR10 jest mało optymalna". Wydaje mi sie, ze chodzi o to, ze trudniej wyliczyc prawidlowe wartosci dla nietypowej ilosci 9 kolorow. Jak mawiaja informatycy 16 to jest okragla liczba :)
Czwarta sprawa - tak, 16 kolorow w 2 jasnosciach czyli w efekcie dosc "plaski obraz", jak w Tebowym zalaczniku. Oczywiscie nie przecze, ze moze to wygladac ciekawie. Ale wypadaloby sprawdzic na prawdziwym sprzecie, nie emulatorze.
Coś mi się zdaje, że ostatnio chyba trochę się zapędziłem, ale... "Przecież to jest niemożliwe, a może jednak jest :)" - niby bez sensu, ale jak wyjaśnić to co widać w pierwszej linii? Na ramce z prawej strony są piksele hires w czterech kolorach. A w drugiej linii (w miejscu gdzie jest ciemny niebieski) widać piksel hires. Obrazek jest w GR.8, a w dli zmieniałem sobie tryby gtia i rejestry kolorów, nie nakładałem tu żadnych PM ani zmian w rastrach. xex ->link<-
Artefakty (z hires) podobno inaczej wygladaja w systemie PAL i NTSC, tak ze moze lepiej z nimi nie "zadzierac" jesli chcesz aby Twoj program wygladal tak samo na calym swiecie. :P
A tryby 10 czy 11 nawet ciekawe (z opisu w ksiazce Zientary :]) ale w praktyce maja swoje minusy - niska rozdzielczosc czy sprawy limitu kolorow/odcieni. Ktorys z w/w trybow nadal sie do "silnika 3D" w NUMENIE. :)
Mozna probowac tworzyc cos (obrazki) w takich trybach, znam jednak tylko jeden taki program na /|\ - "RAMbrandt". :)
Dracon - o artifact'ach wspomniałem dlatego, że na tym obrazku dzieje się coś bardo dziwnego. Ważna jest tylko pierwsza i druga linia - wygląda na to, że jest tam Gr.8 podkolorowany przez Gr.11, a na ramce pojawiły się pisele hires w czterech kolorach. Być może wyjaśnienie jest banalne, ale z czymś takim nigdy się nie spotkałem jak do tej pory.
Kaz, chyba masz rację z tym bug'iem, myślałem, że to jakiś błąd w GTIA :(
To co widać na obrazku, to moje próby połączenia gr8 z gr10, wygląda dosyć obiecująco, pomimo, że zmniejszenie migotania powoduje, że obrazek robi się bardziej płaski. To co miga z lewej i prawej strony (poza właściwym obrazkiem) wytnie się za pomocą PM. Efekt pionowych pasków zniknie po nałożeniu dwóch obrazków, bo na razie jest jeden. Migotanie myślę, że można jeszcze zmniejszyć poprzez bardziej odpowiedni dobór kolorów. Można też wprowadzić linię koloru, tak jak jest w TIP'ie. Są jeszcze jakieś inne sposoby na zmniejszenie migotania?
Prawie jestem zadowolony, ale trochę jeszcze zostało do zrobienia. Obraz trochę miga, ale chyba nie aż tak bardzo jak można by się spodziewać, właściwie to tylko w tych miejscach gdzie jest jasny żółty, reszta jest do przyjęcia. Napis IMAGE wygląda jak żywcem wyjęty z maszyny arcade :) Pozatym doszły niezamierzone dodatkowe kolory w rastrach z prawej strony (szarości)- wchodzą tam przerwania dli i nie wiem czy da się to jakoś naprawić, ale w sumie to nawet może być. Obrazek jest przygotowany pod wyświetlanie dwóch grafik (co zresztą widać po objętości), ale przygotowanie tych grafik jest dosyć upierdliwe - trzeba wymieszać 200 linii, jest jakiś program, który to potrafi? Ręcznie też można, ale ...
Tebe - wiesz może skąd się to bierze, że w Twoim obrazku jak się wstrzyma emulator to w liniach gdze jes hi-res są też i kolory a w moim nie? Co robię nie tak?
wszystko co robię jest oparte o G2F, a przerwanie dla uzyskania linii GR8 wygląda tak (jest jeszcze drugie - przywraca GR10, tzn odtwarza kolory i tryb GTIA):
dli2 lda #$08 sta color1 lda #$04 sta color2 lda #$04 sta wsync ;line=24 sta gtictl DLINEW dli3 przerwania dli są w każdej linii, przełączają tryby GTIA i ustawiają kolory
dodatkowo żeby zmieszać linie wsadziłem taką prockę w nmi:
proc lda switch cmp#$01 beq gr8 lda #$01 sta switch lda #$cf sta ant+3 lda #$0f sta ant+33 lda >fnt sta ant+5 lda <fnt sta ant+4 jmp rtsa gr8 lda #$00 sta switch lda #$4f sta ant+3 lda #$8f sta ant+33 lda >fnt sta ant+5 lda <fnt sta ant+4
zmiany rejestrów możesz dokonywać po WSYNC a nie przed
WSYNC synchronizuje sie z końcem linii, jeśli tego nie zrobisz to będziesz dokonywał zmian rejestrów w sposób "chaotyczny", powstanie zwariowany program zmian rastra, pewnie w ten sposób powstał ten niby "bug" emulatora
Graphics 10-11 does produce the same pixel shift. I have done some experimenting, only using it (and other GTIA shifts) in a text mode. That is, taking graphics 0 and changing GTIA from 10 to 11 (or 9 to 10, or 9 to 11) each cycle. Here is a link:
In this case, I have used a display list interrupt, along with a change in CHBAS (756) as in Bill Kendrick's Super IRG, and a change in COLBK (712) to keep the display running properly. This could also be done using VBI as well.
Wow, looks incredible. Sounds good too :), especially this statement: "I am working on a font editor which will edit fonts for these modes and other ones (including SuperIRG and the CIN 12/12.11 mode)."
Question: it will work on Atari or PC? And let me copy your text and pictures about gfx modes you plan to handle:
"I've made a bit of further progress, and can now demonstrate 4 interlace modes, along with the necessary code to use from BASIC. I've actually written these programs in Turbobasic, but you should be able to use these in BASIC with few modifications. The accompanying screenshots are pallette tests showing all the colors available. The flicker on these modes is generated using a Display list interrupt.
Mode 1: Super 0.10 This is an interlaced GRAPHICS 0.10 (mode 0 with GTIA set to 10) which allows for a 2x8 character grid and 45 possible colours. It is modelled on the Super-IRG mode (Gemdrop) in that only the character set gets changed every screen redraw.
Mode 2: HIP 0 This is the character mode equivalent of the HIP mode, interlacing GRAPHICS 0.9 with 0.10 every scan, and utilizing a bug in the GTIA chip which shifts the mode 10 pixels one color clock right. This gives you a simulated 4x8 character grid. This mode displays 144 possible colours. In this case, we have a 0.10 pallette interlacing with the 0.9 monochrome. It's advisable to keep COLBK set to 0 so that the mode 9 shades display properly
Mode 3: CIP 0 (Color Interlaced Picture) This mode is same as above except this time you get a mode 10 pallette interlaced on the mode 11 colors. In this mode, it's best to set COLBK to 4 so that the mode 11 colors display properly.
Mode 4: APAC 0 This is the textmode version of APAC. You get a 2x8 character grid which can display any of the 256 colors. The screen flips three registers every scan: Character set, GTIA (9 and 11), and COLBK between 0 and 4 to ensure proper display."
This will be an Atari program ... it will edit in Super IRG, plus the GTIA modes, and also a mode called Super 0 ... two graphics 0 screens interchanged with a change in 709 enabling 8x8 grid with 4 colors (same hue) per pixel, and one called CIN, which is Graphics 12 interchanged with Graphics 12.11
I've got a beta version up now, except no saving yet. It will edit a font in APAC, and the pallette select function works as well. Please download this and beta-test this for me. :) the included font files need to be on H:
Żarło, żarło i zdechło. Jestem trochę w... bo w najmniej oczekiwanym momencie przestały wchodzić przerwania dli, a obrazki w tym trybie mogą być naprawdę dobre. To co widać poniżej to mała namiastka.
->link<- Dociągnąłem na siłę te przerwania, ale poginęły kolory
->link<- Mam nadzieję, że być może da się coś jeszcze z tym zrobić.
Gonzo: no, fajne eksperymenty. Ale nie wiem, czy w ostatniej wersji obrazka jednej linii za dużo nie wyświetlasz. Na real atarce mam obraz "gibnięty", zupełnie tak jak przy "przegięciu" DL-ki.
Miker - to możliwe, bo eksperymentuję sobie na emulu, i właśnie z przerwaniami dli. Na razie to tylko takie małe eksperymenty, mam jeszcze kilka innych pomysłów :)
Gonzo - ladny eksperymencik. Kilka gier korzystajacych z trybu GTIA bylo, na przyklad "Elekra Glide" i "Cygnus X1":
PS. Jezeli chodzi o tryb TIN (skoro juz uzylismy takiej terminologii) to ja widze dla niego jeszcze inne zastosowanie, niekoniecznie miks hi-resu z GTIA (podkladanie w tym samym miejscu). Uwazam, ze mozna by tez zrobic tak, ze czesc obrazka jest w hi-res, a czesc w GTIA. Byloby to cos takiego jak obrazek w trojtrybie, ale bez jego ograniczen. Mam pomysl na obrazek, ale nie ma do tego narzedzia (no i na razie czasu, ale to minie). Rozumiem, ze Ty sam sobie programujesz ten tryb w asemblerze, tak?
Tryb z którym walczy Gonzo i inne podobne miksowania trybów były wykorzystanie w moim oprogramowaniu do Video Interface firmy Mirage :) Miker powinien coś pamiętać :)
jednak skończyło się na niczym. Jeżeli ktoś z was ma VIDEO interface niekoniecznie sprawny, proszę niech zrobi jego fotkę jego środka. Będę mógł uruchomić ten co mam i pokazać zrzuty w trybach podobnych do tego z stworzył Gonzo (np. 9+8).
Hmm, a mi przyszło do głowy co innego... Może się mylę, ale prosto modyfikując DL-kę możemy także uzyskać ciekawy efekt... Z braku czasu szybki test (bez poprawy licznika obrazu, więc przepraszam za przesunięcie) - grafika wyświetlona poprzez podmianę co drugą linię trybu GR15 (antic $E) na GR8 (antic $F).