atarionline.pl
atarionline.pl Atari
Login:
Hasło:
Zapamiętaj mnie
Translate to RSS RSS
Dodatkowe kolory duszków z 2021-02-25 20:46 (17)
Środowisko prasowe z nowymi "Bajtkami" z 2021-02-24 12:22 (13)
"Albert" poprawiony z 2021-02-22 09:39 (54)
Światowa premiera "Uprchlý vekslák" z 2021-02-21 13:20 (14)
Czy nowa edycja "Bajtka" jest coś warta? z 2021-02-19 09:51 (14)
Światowa premiera "Alberta" z 2021-02-14 15:33 (138)
"Rainer" uwolniony! z 2021-02-13 21:30 (8)
Jeszcze nowszy "Recoil" z 2021-02-06 08:01 (5)
Niezwykła historia pewnej kasety z 2021-01-25 12:03 (27)
Nowe, pojemniejsze RAM-Carty z 2021-01-24 10:27 (20)
"mouSTer" czyli myszka ST z 2021-01-23 15:32 (27)
Wybieramy najlepsze dema na Falcon030 z 2021-01-16 18:35 (22)
Ponownie "Środowiska prasowe" z 2021-01-12 17:10 (5)
Spowiedź autora #2 - Tbxx z 2021-01-08 18:52 (8)
New Year's Disc 2021 z 2021-01-01 23:57 (6)
Sylwester z AOL-em z 2020-12-31 14:31 (11)
Wesołych Świąt! z 2020-12-24 01:22 (22)
Anonimowa Ankieta Atarowców z 2020-12-22 00:14 (30)
Świąteczny prezent: "Adam Is Me" z 2020-12-17 21:09 (29)
Demodulacja 2020 z 2020-12-13 13:27 (14)
«« nowszestarsze »»

Pomocnik/Helper
Gry/Games

Katalog gier

Opisy gier
Stranded opisał Kaz (11)
Gunslinger opisał Dracon (5)
Space 1999 opisał Kaz (4)
Pięć Gówien Eepcha opisał Kaz (10)
Mózgprocesor opisał Kaz (31)
Bruce Lee opisał Kaz (29)
Amaurote opisał Kaz (28)
Jax Stardo In Starblade opisał Kaz (13)
The Dallas Quest opisał Kaz (4)
Hacker opisał Kaz (12)
«« nowszestarsze »»

Wewnętrzne/Internals



   Nowinki tworzone dzięki CuteNews
Dodatkowe kolory duszków
Program Multicolor Sprites autorstwa Kski, to taki drobny, pomocniczy programik napisany w języku Java, który może się bardzo przydać programistom i grafikom Atari. Był wykorzystany również przy produkcji "Alberta". Co robi? Zanim to wyjaśnię, trochę wstępu.



Na Atari duszki mogą nie tylko mieć własny kolor, ustawiany w odpowiednich rejestrach duszków, o czym wie każdy, ale również uzyskać dodatkowe kolory w wyniku nakładania koloru jednego duszka z kolorem innego duszka (lub nałożenia koloru duszka na kolor grafiki). Realizuje się tę magię przez włączenie w mocarnym rejestrze PRIOR/GPRIOR bitu odpowiadającego za graczy wielokolorowych. Nie jest to zbyt często wykorzystawaną właściwością w grach i demach, ponieważ początkujący mają problem ze zrozumieniem jak to działa i jakie kolory można uzyskać, a bardziej zaawansowani unikają utrudniania i spowalniania sobie pracy, bo uzyskiwane kolory zależą od kilku czynników, które trzeba wziąć pod uwagę.

Zacznijmy od najprostszego przykładu. Jeżeli na ekranie nałożymy na siebie duszka 0 i 1, to w miejscu nałożenia pikseli obu duszków, powstanie dodatkowy kolor. Kolor ten wyliczany jest poprzez działanie funkcji bitowego OR, stąd potocznie nazywa się to "OR-owaniem koloru". Uwaga! Ta nazwa może być trochę myląca. Może sugerować, że OR-owana jest wartość składowych koloru, a to nieprawda. OR-owany jest indeksu koloru czyli jego pozycja w palecie! A więc pamiętajmy, że zmienia się numer koloru, a nie składowe koloru. Technicznie realizuje to układ GTIA, który wylicza nowy kolor w palecie swoją wewnętrzną funkcją.

W przykładzie powyżej nowe kolory uzyskamy po nałożeniu na siebie duszków 0 i 1. Ale można uzyskać nowy kolor również po nałożeniu na siebie drugiej pary - duszka 2 i 3. Te dwie pary duszków pozwalają uzyskać nowe kolory. Inne kombinacje, na przykład nałożenie duszka 0 i 3 albo 1 i 2 nie dadzą żadnego nowego koloru. Wyjaśnię, że terminem "duszek" określam tu zarówno gracza (ang. player), jak i pocisk (ang. missile), czyli nazwy występujące w terminologii firmy Atari (stąd "grafika graczy i pocisków", co jest kalką ang. Player/Missile Graphics, PMG). Gdy więc piszę o duszku, to piszę zarówno o graczach, jak i pociskach. Tutaj zadziała każda kombinacja gracza i pocisku 0 z graczem i pociskiem 1. Tak samo każda kombinacja gracza i pocisku 2 z graczem i pociskiem 3.


rys. 1. Tak z jednego duszka można wycisnąć 3 kolory w linii (a z dwóch duszków 6 kolorów w linii). Tutaj kolory nie są ułożone w linii, ale to przykład, zależy jak sobie ułożymy piksele w duszkach.

Ponadto jest możliwe, po włączeniu priorytetu 0 dla grafiki PMG, aby duszek 0 i 1 dawały nowe kolory po nałożeniu na dwa kolory grafiki (kolory w rejestrach COLPF0 i COLPF1), a duszek 2 i 3 dawały nowe kolory w interferencji z grafiką z rejestrów COLPF2 i COLPF3. Co więcej, można nałożyć tak uzyskany kolor, pochodzący ze zmieszania duszków 0 i 1 (lub duszków 2 i 3), na kolory grafiki - i uzyskać jeszcze inne kolory, bo w wyniku podwójnego OR-wania!


rys. 2. Tak z pary duszków można wycisnąć 9 kolorów w linii (a z dwóch par duszków 18 kolorów w linii).


rys. 3. Po doliczeniu 5 kolorów grafiki mamy 23 kolory!

Maksymalnie możemy więc na ekranie dysponować 23 kolorami, bez specjalnych sztuczek, wykorzystując jedynie standardowe możliwości komputera (o czym Mono pisał tutaj):

  • kolor grafiki COLBAK
  • kolor duszka 0
  • kolor duszka 1
  • kolor nałożonego duszka 0 i 1

  • kolor grafiki COLPF0
  • kolor duszka 0 nałożony na grafikę COLPF0
  • kolor duszka 1 nałożony na grafikę COLPF0
  • kolor nałożonego duszka 0 i 1 nałożony na grafikę COLPF0

  • kolor grafiki COLPF1
  • kolor duszka 0 nałożony na grafikę COLPF1
  • kolor duszka 1 nałożony na grafikę COLPF1
  • kolor nałożonego duszka 0 i 1 nałożony na grafikę COLPF1

  • kolor duszka 2
  • kolor duszka 3
  • kolor nałożonego duszka 2 i 3

  • kolor grafiki COLPF2
  • kolor duszka 2 nałożony na grafikę COLPF2
  • kolor duszka 3 nałożony na grafikę COLPF2
  • kolor nałożonego duszka 2 i 3 nałożony na grafikę COLPF2

  • kolor grafiki COLPF3
  • kolor duszka 2 nałożony na grafikę COLPF3
  • kolor duszka 3 nałożony na grafikę COLPF3
  • kolor nałożonego duszka 2 i 3 nałożony na grafikę COLPF3

    Od takiej listy może rozboleć głowa, ale ona pokazuje, co możemy OR-ować, a nie jaki efekt uzyskamy z samego OR-owania. Wyliczenie, jaki kolor uzyskamy przez OR-owanie, możemy oczywiście przeprowadzić "ręcznie". Z tym, że jest to żmudna robota, no i potem trzeba jeszcze "ręcznie" sprawdzić wynik czyli ustawić i wyświetlić odpowiednie kolory we własnym programie, żeby zobaczyć efekt. I tu dochodzimy do początkowego pytania - do czego służy ten program "Multicolor sprites"? Do tego, by nie wyliczać tego wszystkiego na piechotę. Mamy tu podgląd efektu mieszania wybranego koloru od razu z wszystkimi pozostałymi stu dwudziestoma siedmioma kolorami.

    Po uruchomieniu programu widzimy trzy obszary: po lewej wyświetlana jest paleta 128 kolorów, dostępna we wszystkich trybach graficznych i tekstowych Atari (przypomnę, że paletą 256 kolorów dysponujemy tylko w jednym trybie, GR.9). Każdy kolor ma tu swoją stałą pozycję i wartość, podaną szesnastkowo. Wystarczy kliknąć którykolwiek kolor po lewej, by wybrany kolor pojawił się w środkowej części. A po prawej będziemy widzieli efekt mieszania tego koloru z innymi. Pierwsza kolumna to dany kolor z palety, z którym będziemy mieszać nasz wybrany kolor, a druga kolumna to efekt tego mieszania. Wygląda to skomplikowanie, ale jest banalnie proste w używaniu. Dzięki temu możemy od razu zobaczyć, które składowe nam się przydadzą do mieszania kolorów duszków i jaki efekt mieszania uzyskamy.



    Program pokazuje kolory dla pojedynczego OR-owania, a nie podwójnego, które daje dodatkowe 4 kolory, ale w razie potrzeby można sobie i z tym poradzić. Wystarczy zrobić OR w dwóch krokach. Na przykład w pierwszym kroku ze zmieszania koloru o numerze $5A z kolorem o numerze $6E uzyskujemy z-OR-owany kolor $7E. Teraz wybieramy ten kolor $7E z panelu po lewej i odczytujemy wynik drugiego OR-owania z panelu po prawej.



    Na moją prośbę autor dodał jeszcze możliwość załadowania palety w formacie ACT, znanym z emulatorów. To przydatna funkcja. Raz, że palety w systemach kolorów PAL, NTSC i SECAM są odmienne, dwa, że nawet w ramach jednego systemu kolorów powstały różne przybliżenia palety prawdziwego Atari (znam ich kilkanaście dla samego PAL). Bywa też, że koderzy i graficy upierają się przy jakiejś konkretnej, swojej ulubionej palecie, więc program daje im możliwość jej wczytania i używania.



    Warto też dodać, że ponieważ paleta PAL czy NTSC różnią się wartościami kolorów palety, to mimo, że OR-owanie jest identyczne dla obu systemów, to uzyskujemy inny efekt. Planując nakładanie kolorów w swoich duszkach warto pamiętać o tych różnicach, żeby nie być zaskoczonym, że gra wykorzystująca mieszanie duszków lub duszków z tłem inaczej wygląda kolorystycznie po uruchomieniu na NTSC, a inaczej na PAL. Na przykład kolory brązowe w PAL wyświetlą nam się jako zielone w NTSC... Można się przekonać o tym porównując na przykład paletę laoo.act (PAL) z larry.act (NTSC):



    Program multicolor sprites.jar do ściągnięcia stąd. Za pomoc przy opracowaniu artka dziękuję koledze Mono, który przygotował obrazek z nakładaniem się kolorów. Do dyskusji na ten arcyciekawy temat kolorów odsyłam do wspomnianego wątku kolegi Mono.

    2021-02-25 20:46 by Kaz
    komentarzy: 17
  • Kaz @2021-02-25 20:57:34
    Ufff... zmęczyło mnie pisanie tego artka. Ale mam nadzieję, że przyda się jakimś programistom i grafikom, którzy tworzą gry. Mono, z tego co wiem, też ma taką nadzieję!
    mgr_inz_rafal @2021-02-25 21:04:05
    Przyda się, przyda!
    Świetna robota, Kski!
    Pecet @2021-02-25 22:19:17
    Prosto i rzeczowo, czyli tak jak powinno być. Dzięki
    Mq @2021-02-25 23:50:44
    Bardzo dobrze wyjaśnione dla początkujących jak działają kolory w Atari. Programik w java przydatny, na pewno ułatwi sporo. Ja dotychczas radziłem sobie tak, że miałem obrazek z paletą i numerkami, po prostu patrzyłem jaki chcę uzyskać kolor i dobierałem takie, żeby się orowały do niego. Ja to robię akurat w głowie dość szybko i już:-)
    sun @2021-02-26 00:22:20
    @Mq:Jak mawiał mój nauczyciel od mechaniki: "podziwiam jasność umysłu!" :)
    laoo/ng @2021-02-26 09:05:38
    Użyłem nałożenia dwóch kolorów dostając zmiksowany w TimePilocie - tam samolot gracza ma więcej kolorów i akurat tak się szczęśliwie złożyło że ten zmiksowany udało się uzyskać dokładnie taki jak w oryginale.
    Tiger @2021-02-26 10:26:22
    muszę to nakładnie zrozumieć wreszcie, thx
    tebe @2021-02-26 10:39:21
    w sumie to nie wiedziałem że ORA + ORA można jeszcze zrobić 8)
    kski @2021-02-26 10:39:44
    Cieszę się że banalny programik stworzony wyłącznie z myślą o nakładaniu duszków był pretekstem do napisania tak rzeczowego artykułu.
    Mq @2021-02-26 16:38:56
    @sun, to jest mega proste, trzeba tylko operować w głowie bitami, a nie liczbami szesnastkowymi, wystarczy sobie wyobrazić jak "wygląda" bitowo dana cyfra szesnastkowa. Oczywiście nie muszę chyba tłumaczyć dlaczego ludzie uznający system dziesiętny za naturalny nie będą tutaj mieli racji bytu:-)
    @tebe, ja też nie wiedziałem że można orować jeszcze dalej, ale z drugiej strony zwykle oprócz koloru operujemy równolegle jeszcze jasnością, więc po pierwszym orowaniu chcąc mieć kontrastowe barwy zwykle już jesteśmy w okolicach tak jasnych, że dalsze orowanie niczego już nie wniesie. Na Atari jeżeli będziemy operować samą barwą, a jasnością nie, to obraz będzie np. na czarnobiałych monitorach jednolity i nie zobaczymy w ogóle nic. Na kolorowych, to już zależnie od jakości coś tam kolorowego zobaczymy, może nawet fajnego, ale w wielu przypadkach kolory będą nam się zlewały, rozmazywały, nie uzyskamy żadnych konturów stosując barwy jednakowej lub zbliżonej jasności. W dzisiejszych czasach pewnie można sobie wyobrazić taką kolorowość stosując emulatory, nowoczesne monitory itp. W "epoce" na ówczesnych monitorach i telewizorach było by to takie sobie.
    Bartodziej O. @2021-02-26 23:00:49
    Kski idolem mym i kropka. No dobra dodam że Albert mnie powalił - właściwie wszystkim.
    brawurowa jazda samochodem czinkłoczento @2021-02-27 03:45:38
    no no ;) wole komodore ;)
    tdc @2021-03-06 14:09:40
    Dzięki za przydatny program i fajny artykuł, który z pewnością wielu osobom się przyda;)
    Pengo @2021-03-09 16:30:20
    Ktoś tam szuka kontaktu z grupą Pengo. To pecetowa grupa która działała na początku millenium.Na Demozoo są ze 3 ich dema. A kontakt z Dżinsem chyba najszybciej przez linkedina jak ktoś tam ma konto.
    https pl linkedin com/in/tomaszrozynski
    Mq @2021-03-09 20:36:05
    Pobawiłem się trochę w wolnej chwili tym programikiem w javie. Kurde, jednak odszczekuję częściowo to, że w głowie wszystko idzie zrobić. Tzn. idzie i ja tak robiłem kilka razy, ale z tym programikiem widząc wszystkie kolory na raz widzi się sporo dodatkowych kombinacji na które by się nie wpadło być może. Super sprawa jednak mieć taką pomoc pod ręką, będę używał:)
    Kaz @2021-03-09 22:25:20
    Mq - cieszy :)
    brawurowa jazda samochodem czinkłoczento @2021-04-14 16:24:59
    kiedy nowy artykul czy nie mata o czym pisac?
    nickname
    e-mail / website (opcjonalnie)
    Aktualne tematy
    Atari 800xl SECAM kabel 6 Din (8)
    ostatni: 14-04-2021 15:53, RiverRaid
    Prawdziwa walka Atari kontra Comm... (110)
    ostatni: 14-04-2021 14:36, Cyprian
    Zasilanie 8-bitowca z usb (15)
    ostatni: 14-04-2021 14:21, itguyinaction
    Zewnętrzne rozszerzenie ram , 512... (190)
    ostatni: 14-04-2021 13:58, zaxon
    Atari800 dla Raspberry Pi (79)
    ostatni: 13-04-2021 23:57, grzybson
    SID i POKEY (532)
    ostatni: 13-04-2021 22:51, Cyprian
    Atari 800xl wyjscie monitorowe, c... (9)
    ostatni: 13-04-2021 22:26, ZuluGula
    Moje materiały wideo z grami na A... (67)
    ostatni: 13-04-2021 21:01, nowy80
    SDrive Micro ;) (288)
    ostatni: 13-04-2021 20:42, CharlieChaplin
    Wasze retro kąciki i sprzęt (26)
    ostatni: 13-04-2021 18:00, Belzebub
    Queen / Jet Set Willy Muzyka (17)
    ostatni: 13-04-2021 17:21, jhusak
    Zamienię gry Atari 5200 na XL/XE (5)
    ostatni: 13-04-2021 07:55, urborg
    Mobilny czytnik czasopism z Inter... (2)
    ostatni: 12-04-2021 19:45, jhusak
    XC11 magnetofon nie dziala :( (4)
    ostatni: 12-04-2021 14:51, mikesk8
    SortViz - wizualizacja algorytmów... (13)
    ostatni: 12-04-2021 09:22, Peri Noid

    Kategorie Forum Atarum

    Użytkowników: 2311
    Ostatnio zarejestrowany: skwarek
    Postów ostatniej doby: 76

    Spotkania i zloty / Meetings & Parties

    Najbliższe imprezy
    link do naszych spotkań online, zapraszamy do odwiedzenia kanału zoom również przez kod QR:

    KWAS

    Kalendarz AOL


    Społeczność/Community


    Rozmawiali
    Lech Bąk i "Świat Młodych" i Kaz (26)
    Michał "Mike" Jaskuła i Kaz (6)
    F#READY i Dracon (22)
    Daniel „Arctus” Kowalski i Dracon (25)
    KATOD i TDC (13)
    Mariusz Wojcieszek i "Adam" (16)
    Romuald Bacza i Ramos (16)
    Śledzenie Amentesa i Larek (9)
    Leszek Łuciów i Charlie Cherry (17)
    TO JUŻ ZA TOBĄ: rozmowa z Bobem Pape i cpt. Misumaru Tenchi (39)
    Rob Jaeger i Emu (53)
    Jacek "Tabu" Grad i Dracon (0)
    Alexander "Koma" Schön i Kaz (0)
    Maciej Ślifirczyk i Charlie Cherry (0)
    Jarek "Odyniec1" Wyszyński i Kaz (0)
    Marek Bojarski i Kaz (0)
    Olgierd Niemyjski i Ramos (0)
    Wolfgang Burger i Grey (0)
    Mariusz "Ramos" Rozwadowski i Xeen (0)
    Wywiad z Wojciechem Zientarą i Xeen (0)
    «« nowszestarsze »»

    Stragan
    Nowe, pojemniejsze RAM-Carty oferuje Kaz (20)
    "mouSTer" czyli myszka ST oferuje Kaz (27)
    Atari USBJoy Adapter oferuje Jakub Husak (0)
    Programy: Kolony 2106 oferuje Kaz (6)
    Sprzęt: rozszerzenia oferuje Lotharek (21)
    Gadżety: naklejki, pocztówki oferuje Sikor (11)
    Sprzęt: cartridge RAM-CART oferuje Zenon (7)
    Miejsce na drobne ogłoszenia kupna/sprzedaży oferuje Kaz (54)
    Sprzęt: interfejs SIO2IDE oferuje Piguła (0)
    Sprzęt: interfejs SIO2SD oferuje Piguła (29)

    Użytki/Utils
    Sprzęt/Hardware

    Wynalazki
    Atari i Bluetooth napisał Kaz (33)
    SIO2PC-USB napisał Larek (45)
    Nowe SIO2SD napisał Larek (0)
    SIO2SD w CA12 napisał Urborg (12)
    Ratowanie ATMEL-ów napisał Yoohaas (12)
    Projektowanie cartów napisał Zenon (12)
    Joystick do Atari napisał Larek (54)
    Tygrys Turbo napisał Kaz (9)
    Testowałem "Simple Stereo" napisał Zaxon (3)
    Rozszerzenie 1MB napisał Asal (20)
    Joystick trzyprzyciskowy napisał Sikor (18)
    Moje MyIDE oraz SIO2PC na USB napisał Zaxon (16)
    Jak wykonać płytkę drukowaną? napisał Zaxon (26)
    Rozszerzenie 576kB napisał Asal (36)
    Soczyste kolory napisał scalak (29)
    XEGS Box napisał Zaxon (13)
    Atari w różnych rolach napisał Różyk (8)
    SIO2IDE w pudełku napisał Kaz (5)
    Atari steruje tokarką napisał Kaz (15)
    DarkMouse napisał Kaz (7)
    «« nowszestarsze »»