atarionline.pl
atarionline.pl Atari
Login:
Hasło:
Zapamiętaj mnie
Translate to RSS RSS
Premiera książki w Empiku z 2020-12-12 20:24 (10)
Nowa płyta Gadesa i stRinga oraz konkurs! z 2020-12-09 17:53 (14)
Gramy w "Dungeon Master" z 2020-12-06 16:10 (18)
Spowiedź autora #2 z 2020-12-01 19:22 (4)
U nas wszystko gra! MegaLoMania #7 z 2020-11-29 14:36 (4)
Dzisiaj "Środowisko prasowe" #12 z 2020-11-25 16:37 (0)
Historia reklamy w grach komputerowych z 2020-11-21 18:25 (20)
Gramy z autorem w "Last Squadron" z 2020-11-19 11:38 (19)
Ponownie "Środowisko prasowe" z 2020-11-15 20:41 (19)
Jak zrobić cover muzyki z Atari? z 2020-11-07 00:58 (42)
Gra "LiteRally" z 2020-10-24 00:08 (106)
Środa z prasą (cz.7) z 2020-10-12 08:43 (12)
Nowy "Atari Font Creator" z 2020-10-09 17:18 (13)
Nowa książka o Atari z 2020-10-01 08:23 (24)
"Atari Fan" po angielsku już jest! z 2020-09-23 07:15 (11)
Nowy RECOIL, jego historia i język Ć z 2020-09-10 20:26 (11)
Środa z prasą (cz.3) z 2020-08-31 22:44 (9)
Narzędzie do tworzenia scrolli z 2020-08-29 19:31 (9)
Żużelek dla czterech graczy z 2020-08-23 09:36 (38)
Kartridż Sparta DOS X z 2020-08-22 08:29 (4)
«« nowszestarsze »»

Pomocnik/Helper
Gry/Games

Katalog gier

Opisy gier
Submarine Commander opisał Kaz (8)
Frogs opisał Xeen (0)
Choplifter! opisał Urborg (0)
Joust opisał Urborg (16)
Commando opisał Urborg (35)
Mario Bros opisał Urborg (13)
Xenophobe opisał Urborg (34)
Robbo Forever opisał tbxx (16)
Kolony 2106 opisał tbxx (0)
Archon II: Adept opisał Urborg/TDC (9)
Spitfire Ace/Hellcat Ace opisał Farscape (8)
Wyspa opisał Kaz (9)
Archon opisał Urborg/TDC (16)
The Last Starfighter opisał TDC (30)
Dwie Wieże opisał Muffy (18)
Basil The Great Mouse Detective opisał Charlie Cherry (123)
Inny Świat opisał Charlie Cherry (17)
Inspektor opisał Charlie Cherry (19)
Grand Prix Simulator opisał Charlie Cherry (16)
Rescue On Fractalus opisał Kaz (18)
«« 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: 19
  • 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?
    mata @2021-04-15 10:26:24
    nowy artykuł na temat brawurowej jazdy samochodem czinkłoczento, niebawem. tak,że czekaj synku.
    la be'she @2021-04-17 05:02:30
    brawurowa jazda samochodem czinkłoczento @2021-04-14 - nie niecierpliw się, wkrótce...
    nickname
    e-mail / website (opcjonalnie)
    Aktualne tematy
    Atari 130xe pomocy (5)
    ostatni: 17-04-2021 17:09, Peri Noid
    Zasilanie 8-bitowca z usb (29)
    ostatni: 17-04-2021 16:44, ZuluGula
    KRET (1)
    ostatni: 17-04-2021 15:34, pebe
    Prawdziwa walka Atari kontra Comm... (153)
    ostatni: 17-04-2021 15:17, crrn
    Atari800 dla Raspberry Pi (97)
    ostatni: 17-04-2021 14:43, Sim_Piko
    C64 one-liner (23)
    ostatni: 17-04-2021 13:33, gorgh
    ŁO-patologiczny strumień z kuchni... (2)
    ostatni: 16-04-2021 23:26, jhusak
    Zewnętrzne rozszerzenie ram , 512... (216)
    ostatni: 16-04-2021 23:04, Peri Noid
    Atari 800xl SECAM kabel 6 Din (22)
    ostatni: 16-04-2021 22:11, RiverRaid
    #FujiNet - karta sieciowa SIO dla... (622)
    ostatni: 16-04-2021 19:10, GekoPL
    Sprzedam kasety Atari (6)
    ostatni: 16-04-2021 17:48, ccwrc
    Ciekawostki (4917)
    ostatni: 16-04-2021 16:12, pirx
    FujiNet - Dostępność (25)
    ostatni: 16-04-2021 16:11, zaxon
    Wasze retro kąciki i sprzęt (30)
    ostatni: 16-04-2021 14:42, Cyprian
    Who had the black box Neptune 156... (3)
    ostatni: 15-04-2021 18:31, pirx

    Kategorie Forum Atarum

    Użytkowników: 2314
    Ostatnio zarejestrowany: KB777
    Postów ostatniej doby: 38

    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 (28)
    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 »»