Artykuły

    DGF

    Artykuł ten objaśnia jakie efekty oraz tryby graficzne można uzyskać przy odpowiednio rozgrzanych układach graficznych GTIA i ANTIC. Pozwala również zrozumieć jak unikać takich efektów gdy nie są pożądane a dochodzi do (samoczynnego) rozgrzania układów. Opisane efekty i tryby związane są z opóźnieniami wewnętrznych funkcji układu GTIA o jeden tzw. cykl koloru. Opis zawiera również ciekawe informacje dla osób próbujących odtworzyć schemat wewnętrzny układu GTIA.

    Słownik terminów używanych dalej w tekście.

    Terminy znane:

    PRIOR – rejestr sterujÄ…cy ukÅ‚adu GTIA o adresie $D01B. SÅ‚uży do wyboru trybu GTIA oraz okreÅ›lenia priorytetów sprite’ów.

    GTIACTL – alternatywna nazwa rejestru PRIOR, używana przez mnie w kodzie programów.

    GTIA9 (wÅ‚aÅ›ciwie GTIA1) – tryb GTIA o rozdzielczoÅ›ci poziomej 80, pozwalajÄ…cy wyÅ›wietlić 16 jasnoÅ›ci jednego koloru (hue), uzyskiwany przez zapis $40 (OR <priority>) do rejestru GTIACTL lub przez polecenie GR.9 w Basicu.

    GTIA10 (wÅ‚aÅ›ciwie GTIA2) – tryb GTIA o rozdzielczoÅ›ci poziomej 80, pozwalajÄ…cy wyÅ›wietlić 9 niezależnych kolorów, uzyskiwany przez zapis $80 (OR <priority>) do rejestru GTIACTL lub przez polecenie GR.10 w Basicu.

    GTIA11 (wÅ‚aÅ›ciwie GTIA3) – tryb GTIA o rozdzielczoÅ›ci poziomej 80, pozwalajÄ…cy wyÅ›wietlić 16 kolorów (hue) w jednej wspólnej jasnoÅ›ci, uzyskiwany przez zapis $C0 (OR <priority>) do rejestru GTIACTL lub przez polecenie GR.11 w Basicu.

    GTIAX – dowolny z trzech trybów GTIA.

    NORMAL (wÅ‚aÅ›ciwie GTIA0) – nazwa trybu ukÅ‚adu GTIA dla zwykÅ‚ych trybów graficznych, tzn. nie-GTIA – tryb uzyskiwany przez zapis $00 (OR <priority>) do rejestru GTIACTL.

    PMG – grafika graczy i pocisków (Player Missile Graphics) – nazwa dla sprite’ów w Atari.

    Pole gry (playfield) – grafika obejmujÄ…ca kolory 0-3 (COLPF0-COLPF3) ale nie kolor tÅ‚a COLBAK.

    Cykl CPU – cykl zegara ø2 1.77MHz (1.79MHz w NTSC) taktujÄ…cego CPU.

    Cykl koloru – cykl zegara Osc 3.54MHz (3.579MHz w NTSC) równoważny jednemu pikselowi w rozdzielczoÅ›ci poziomej 160. Stanowi poÅ‚owÄ™ cyklu CPU. Numeracja cykli koloru jest zgodna z pozycjami poziomymi obiektów PMG. PeÅ‚na linia obrazu skÅ‚ada siÄ™ z 228 cykli koloru (114 cykli CPU).

    Piksel lores – piksel w rozdzielczoÅ›ci poziomej 160 równoważny jednemu cyklowi koloru.

    Piksel hires – piksel w rozdzielczoÅ›ci poziomej 320 równoważny poÅ‚owie piksela lores i poÅ‚owie cyklu koloru.

    HBLANK – niewidoczna część linii obrazu obejmujÄ…ca cykle koloru 222-227 oraz 0-33 (cykle CPU 111-113 oraz 0-16), Å‚Ä…cznie 40 cykli koloru (20 cykli CPU). W trakcie HBLANK nie dziaÅ‚a wykrywanie kolizji obiektów PMG.

    ACTIVE DISPLAY – widoczna część linii obrazu obejmujÄ…ca cykle koloru 34-221 (cykle CPU 17-110), Å‚Ä…cznie 188 cykli koloru (94 cykle CPU).

    VBLANK – czas wygaszania pionowego obejmujÄ…cy wygaszone linie obrazu 248-311 w PAL/SECAM, 248-261 w NTSC oraz 0-7 w każdym z systemów. Zawiera w sobie czas VSYNC. W trakcie VBLANK nie dziaÅ‚a wykrywanie kolizji obiektów PMG.

    VSYNC – czas synchronizacji pionowej obejmujÄ…cy 3 peÅ‚ne linie 275-277 w PAL/SECAM, 255-257 w NTSC.

    Terminy nowe (ukute przeze mnie):

    DGM – Delayed Gtia Mode – efekt przesuniÄ™cia (opóźnienia) zawartoÅ›ci linii obrazu w trybach GTIAX o pół piksela (1 cykl koloru) w prawo.

    DPS – Delayed Pmg and hSync – efekt przesuniÄ™cia (opóźnienia) grafiki graczy i pocisków PMG oraz impulsu synchronizacji poziomej o 1 cykl koloru. W wyniku przesuniÄ™cia hsync efekt na ekranie jest taki, że grafika jest przesuniÄ™ta w lewo a PMG pozostajÄ… na normalnej pozycji.

    DPS2 – Delayed Pmg and hSync in every second (2) line – efekt bÄ™dÄ…cy szczególnym przypadkiem zastosowania DPS co drugÄ… liniÄ™ i dajÄ…cy przesuniÄ™cie o jeden piksel hires w lewo od pozycji normalnej.

    DGF – Delayed Gtia Functions – nazwa zjawiska opóźnienia funkcji ukÅ‚adu GTIA obejmujÄ…ca efekty DGM i DPS.

    DG9 – Delayed Gtia mode 9 – tryb powstaÅ‚y przez zastosowanie efektu DGM w trybie GTIA9.

    DG10 – Delayed Gtia mode 10 – tryb powstaÅ‚y przez zastosowanie efektu DGM w trybie GTIA10.

    DG11 – Delayed Gtiamode 11 – tryb powstaÅ‚y przez zastosowanie efektu DGM w trybie GTIA11.

    Efekty DGF.

    Jak napisałem we wstępie opis ten dotyczy efektów opóźnienia o jeden cykl koloru funkcji układu GTIA a tym samym przesunięcia treści linii obrazu o jeden piksel lores. Efekty te można użyć do podwojenia rozdzielczości trybów GTIA (80 pikseli) o ile zastosujemy interlace poziomy czyli naprzemienne wyświetlanie dwóch półobrazów gdzie dana linia obrazu w jednej klatce nie jest przesunięta a w drugiej jest przesunięta o jeden piksel lores. Dodatkowym efektem jest w takim wypadku poszerzenie palety kolorów obrazu ze względu na mieszanie się połówek nakładających się pikseli obu półobrazów. Zasada jest ta sama co w trybie HIP. Tu jednak możliwe jest mieszanie linii w GTIA9 z przesuniętą o piksel lores linią w GTIA9. W HIP następuje mieszanie linii w GTIA9 z linią w GTIA10, która jest stale przesunięta względem GTIA9 o piksel lores. Okazało się również, że istnieje możliwość podwojenia rozdzielczości trybów standardowych lores (160 pikseli) na tej samej zasadzie to jest poprzez naprzemienne wyświetlanie dwóch półobrazów gdzie dana linia obrazu w jednej klatce nie jest przesunięta a w drugiej jest przesunięta o jeden piksel hires. Przesunięcie o piksel hires uzyskuje się w inny, bardziej skomplikowany sposób niż przesunięcie o piksel lores. Będzie to opisane w dalszej części tekstu.

    IstniejÄ… dwa różne sposoby na uzyskanie przesuniÄ™cia treÅ›ci linii w trybie GTIAX o jeden piksel lores – efekt DGM i DPS. Istnieje możliwość wyÅ›wietlenia każdego z nich samodzielnie bÄ…dź obu naraz. Oba efekty należą do jednej kategorii, którÄ… nazwaÅ‚em DGF.

    Warunkiem koniecznym do wystÄ…pienia DGF jest odpowiednie rozgrzanie ukÅ‚adów graficznych GTIA i ANTIC. Nie jest znana dokÅ‚adna temperatura jakÄ… muszÄ… osiÄ…gnąć ukÅ‚ady natomiast z grubsza wiadomo ile czasu zajmuje dochodzenie do stabilnych efektów DGF w różnych temperaturach otoczenia. Temperatury te sÄ… różne pomiÄ™dzy różnymi egzemplarzami Atari a caÅ‚kowity czas dochodzenia danego egzemplarza do DGF w tej samej temperaturze też siÄ™ zmienia. DziÄ™ki przeprowadzonym badaniom ustaliÅ‚em, że w temperaturze otoczenia 25°C czas dochodzenia do stabilnego DGF w minutach waha siÄ™ pomiÄ™dzy 150 a 250 natomiast w 29°C pomiÄ™dzy 30 a 40. Czas ten można skrócić nawet do 3 minut podgrzewajÄ…c Atari przy pomocy suszarki do wÅ‚osów. Ponadto aby utrzymać stabilny DGF na dÅ‚ugie godziny temperatura otoczenia musi mieć minimalnie 25°C.

    Stabilność DPS może wymagać wyższej temperatury niż stabilność DGM. Stabilność DGF oznacza stabilność zarówno DGM jak i DPS. Jest prawdopodobne, że są takie egzemplarze Atari gdzie występuje jedynie DGM a DPS jest nieosiągalne.

    Okazuje się, że są takie egzemplarze Atari, gdzie DGF nie występuje w ogóle czyli nie występuje ani DPS ani DGM. Osobiście posiadam jeden taki egzemplarz. Jest to Atari 130XE wyprodukowane w 1990 roku, posiadające płytę z 4-ma kośćmi RAM oraz układ GTIA z uszkodzonymi trybami GTIA. Nie mam pewności czy odporność na DGF ma związek z uszkodzonymi trybami GTIA.

    DGM.

    Efekt DGM polega na tym, że piksele trybów GTIAX sÄ… przesuniÄ™te w prawo o pół piksela (lub jeden piksel lores). GTIA Å‚Ä…czy w jeden piksel rozdzielczoÅ›ci 80 dwa 2-bitowe sÅ‚owa z linii AN1 i AN0 o jeden cykl koloru za późno, liczÄ…c wzglÄ™dem strumienia danych podawanych przez ANTIC na linie AN2-AN0. Inaczej mówiÄ…c Å‚Ä…czy w jeden piksel dwa mÅ‚odsze bity pierwszego piksela z dwoma starszymi bitami drugiego piksela. Dwa mÅ‚odsze bity pierwszego piksela stajÄ… siÄ™ wiÄ™c starszymi bitami „opóźnionego” piksela a dwa starsze bity drugiego piksela – mÅ‚odszymi bitami „opóźnionego”. Tak wiÄ™c dane przygotowane do wyÅ›wietlenia w trybach GTIAX bÄ™dÄ… wyÅ›wietlane zupeÅ‚nie niepoprawnie gdy uaktywnimy efekt DGM. Można to skorygować na dwa sposoby. Pierwszy to przesunąć (opóźnić) dane podawane przez ANTIC o jeden piksel lores ustawiajÄ…c wÅ‚aÅ›ciwie rejestr HSCROL i adres danych w Display List oraz uaktywniajÄ…c przesuw poziomy w Display List w liniach, gdzie wÅ‚Ä…czony jest DGM. Drugi sposób to zmienić dane obrazka w pamiÄ™ci tak by byÅ‚y poprawne dla DGM.

    Efekt DGM może być włączony w dowolnej linii ekranu niezależnie od tego, czy jest włączony w innych liniach. W szczególności DGM może być włączony co drugą linię. Pozwala to na przykład na uzyskanie trybu podobnego do HIP ale tylko przy użyciu GTIA9.

    Efekt DGM odkryÅ‚ w roku 1994 niejaki Bryan – czÅ‚onek spoÅ‚ecznoÅ›ci AtariAge.

    O odkryciu wspomina tu:

    W pozycji 3 zaÅ‚Ä…czone sÄ… 2 przykÅ‚ady wykorzystania DGM (dokÅ‚adnie DG9) oraz screenshoty przed i po rozgrzaniu ukÅ‚adów graficznych. Bryan nazwaÅ‚ swój tryb VZI – VertiZontal Interlacing. Tryb jest bardzo zbliżony do HIP. W jednej klatce obrazu opóźnione o jeden cykl koloru sÄ… wszystkie linie parzyste, w drugiej wszystkie nieparzyste. Jako metodÄ™ korekcji danych niepoprawnie Å‚Ä…czonych pikseli Bryan zastosowaÅ‚ przesuw poziomy przy użyciu HSCROL.

    PrzykÅ‚ady Bryan’a aktywujÄ… zarówno DGM jak i DPS a dokÅ‚adnie DPS2 (patrz akapit „ZależnoÅ›ci miÄ™dzy efektami DGF”). Efekt DPS2 powoduje widoczne na ekranie ugiÄ™cie obrazu (i przesuniÄ™cie o jeden piksel hires w lewo!) ale na screenshotach Bryan’a nie jest to widoczne. Oznacza to, że w maszynie Bryan’a DPS byÅ‚ nieosiÄ…galny bÄ…dź temperatura byÅ‚a zbyt niska, aby DPS siÄ™ uaktywniÅ‚.

    W przykÅ‚adach Bryana efekt DGM wÅ‚Ä…czany jest przy pomocy trybu GTIA9, co na niektórych maszynach znacznie skraca czas wystÄ™powania efektu ze wzglÄ™du na wyższy próg temperaturowy (patrz akapit „WpÅ‚yw sposobów wÅ‚Ä…czania efektów DGF na ich stabilność”).

    Obraz w trybie VZI Bryana. U góry widoczne ugięcie.

    Większa dolna część obrazu przesunięta o jeden piksel hires w lewo.

    Obraz w trybie VZI Bryana.

    DPS.

    Efekt DPS polega na tym, że GTIA wykonuje swoje funkcje to jest nakładanie obiektów PMG oraz generację impulsu synchronizacji poziomej hsync o jeden cykl koloru później niż normalnie, licząc względem strumienia danych podawanych przez ANTIC na linie AN2-AN0.W wyniku przesunięcia hsync efekt na ekranie jest taki, że grafika jest przesunięta w lewo a PMG pozostają na normalnej pozycji.

    Efekt przesuniÄ™cia grafiki w wyniku opóźnienia hsync nie jest natychmiastowy. Mija okoÅ‚o 5 linii ekranu od momentu uaktywnienia opóźnienia do ustabilizowania siÄ™ przesuniÄ™cia. W tych 5-ciu liniach widoczne jest „ugiÄ™cie” obrazu czyli pÅ‚ynne przejÅ›cie pomiÄ™dzy normalnÄ… a przesuniÄ™tÄ… o jeden piksel lores grafikÄ… czyli inaczej mówiÄ…c pomiÄ™dzy normalnÄ… i przesuniÄ™tÄ… pozycjÄ… impulsu hsync. Jest to cecha urzÄ…dzeÅ„ wyÅ›wietlajÄ…cych. ZaobserwowaÅ‚em taki efekt na kilku telewizorach, monitorze C= 1084S, karcie AV capture, konwerterze AV-VGA oraz rzutniku i sÄ…dzÄ™, że ta cecha jest wspólna dla wszystkich urzÄ…dzeÅ„ wyÅ›wietlajÄ…cych zgodnych z systemami PAL/NTSC/SECAM. Cecha ta powoduje, że nie można uzyskać przesuniÄ™cia w dowolnej linii niezależnie od sÄ…siednich. Należy wiÄ™c stosować przesuniÄ™cie dla caÅ‚ego ekranu bÄ…dź dla wieloliniowych bloków a każdy z nich poprzedzić i zakoÅ„czyć przynajmniej 6-cioma pustymi liniami w celu ukrycia „ugiÄ™tych” fragmentów obrazu.

    Z efektem DPS związany jest pewien problem. W pierwszej linii ekranu bez DPS następującej po bloku linii z włączonym DPS nie działa DMA obiektów PMG. Problem musi być związany z powrotem układu GTIA z opóźnionego do normalnego timingu. Prawdopodobnie GTIA gubi aktywne zbocze sygnału HALT, które inicjuje odczyt serii danych PMG z magistrali danych.

    Efekt DPS występuje niezależnie od trybu układu GTIA to jest NORMAL lub GTIAX a w przypadku NORMAL także niezależnie od trybu określonego przez ANTIC to jest lores lub hires.

    Efekt DPS odkryłem w roku 2009.

    DPS2.

    Jeżeli DPS zastosujemy w co drugiej linii ekranu to wspomniana cecha urządzeń wyświetlających do wygładzania przejścia pomiędzy normalną i przesuniętą pozycją impulsu hsync spowoduje uśrednienie przesunięcia grafiki we wszystkich liniach w pozycji, która jest przesunięta dokładnie o pół piksela lores (czyli jeden piksel hires) w lewo od pozycji normalnej. Ten efekt jest szczególnym przypadkiem efektu DPS. Nazwałem go DPS2. Jest on podstawą dla trybu graficznego DGI, który zaprezentowałem w demie KNIGHT. Należy pamiętać, że w liniach, w których zastosowany jest DPS (czyli w co drugiej linii), obiekty PMG są przesunięte o jeden piksel lores w prawo względem zadanej pozycji podczas gdy w pozostałych liniach PMG są usytuowanie normalnie. To komplikuje trochę ich użycie do podkolorowania obrazu. Ponadto dochodzi problem z wspomnianym brakiem DMA obiektów PMG, który w DPS2 występuje w co drugiej linii i utrudnia użycie PMG jeszcze bardziej. Podsumowując, problem z przesuniętymi obiektami PMG występuje w liniach z włączonym DPS a problem z brakiem DMA PMG w liniach z wyłączonym DPS, czyli oba problemy występują na przemian w kolejnych liniach. Problem z brakiem DMA można obchodzić poprzez zapisywanie danych do rejestrów kształtów PMG przy pomocy CPU. Jednak to redukuje czas dostępny na inne zmiany. Przy pracy nad demem KNIGHT okazało się, że często udaje się wykorzystać ten sam bajt kształtu w więcej niż jednej linii (pomimo przesunięć o piksel co drugą linię), dzięki czemu brak DMA nie jest tak uciążliwy, ale to oczywiście zależy od konkretnego obrazka. Ogólnie opracowanie programu rastra używającego DPS2 jest bardzo trudne.

    Jak włączać efekty DGF.

    Z punktu widzenia programisty efekty DGF włącza się w następujący sposób.

    Efekt DGM w danej linii obrazu uzyskujemy poprzez przeÅ‚Ä…czenie z NORMAL na GTIAX w obszarze ACTIVE DISPLAY (cykle CPU 17-110). Warunkiem koniecznym jest aby przeÅ‚Ä…czenie nastÄ…piÅ‚o nie wczeÅ›niej niż w cyklu 17. Tak wiÄ™c zwiÄ…zany z wÅ‚Ä…czeniem GTIAX zapis rejestru PRIOR ($D01B) może nastÄ…pić najwczeÅ›niej w cyklu CPU 16. W tym wypadku zmiana wpÅ‚ywa na ukÅ‚ad GTIA od cyklu 17. Nie ma znaczenia w jakim trybie dziaÅ‚a ukÅ‚ad GTIA w trakcie HBLANK. Znaczenie ma tylko pierwsze przeÅ‚Ä…czenie z NORMAL na GTIAX a kolejne nie. WystÄ…pienie HBLANK wyÅ‚Ä…cza DGM. Oznacza to konieczność uaktywniania DGM w każdej linii gdzie ma być widoczny.

    Efekt DPS uzyskujemy wÅ‚aÅ›ciwie tak samo, z tym że bÄ™dzie on widoczny dopiero w nastÄ™pnej linii ekranu. Dodatkowym warunkiem koniecznym dla DPS jest, aby GTIAX byÅ‚ aktywny w momencie rozpoczÄ™cia HBLANK (tego HBLANK poprzedzajÄ…cego liniÄ™, w której widoczny bÄ™dzie efekt a wiÄ™c tego wystÄ™pujÄ…cego już po wÅ‚Ä…czeniu DGM). Warunek ten jest speÅ‚niony gdy GTIAX jest aktywny w cyklu CPU o numerze 110 (cykle koloru 220 i 221). PrzeÅ‚Ä…czenie z NORMAL na GTIAX może wiÄ™c nastÄ…pić najpóźniej w cyklu 109. Metoda wÅ‚Ä…czania DPS ze wzglÄ™du na dodatkowy warunek jest szczególnym przypadkiem metody wÅ‚Ä…czania DGM.

    Wpływ sposobów włączania efektów DGF na ich stabilność.

    Opisane sposoby włączania działają w warunkach pełnej stabilności zjawiska DGF. W sytuacji, gdy stabilność DGF jest osiągnięta w znacznym stopniu ale nie jest pełna, uzyskanie stabilnych efektów DGM i DPS też jest możliwe. Uzyskanie DGM wymaga wtedy większej niż jeden liczby cykli CPU w trybie NORMAL przed przełączeniem na GTIAX (największa stabilność przy 2-3 cyklach) natomiast uzyskanie DPS wymaga większej niż jeden liczby cykli CPU w trybie GTIAX przed cyklem 110 oraz jak najmniejszej (najlepiej zero) liczby takich cykli po cyklu 110. Stosując się do tych zasad można uzyskać stabilne efekty DGF przy trochę niższych temperaturach niż wymagane do pełnej stabilności DGF oraz utrzymać te efekty przez dłuższy czas. Inaczej mówiąc, w ten sposób można obniżyć próg temperaturowy dla aktywności efektów DGF.

    Ma znaczenie, przy pomocy którego trybu GTIA a wÅ‚aÅ›ciwie jakiej wartoÅ›ci zapisywanej do PRIOR wÅ‚Ä…czamy DGM. WÅ‚Ä…czenie oznacza tu pierwsze przeÅ‚Ä…czenie z NORMAL na GTIAX w obszarze ACTIVE DISPLAY. Uaktywnienie oznacza, że efekt jest rzeczywiÅ›cie widoczny. SÄ… takie ukÅ‚ady GTIA, dla których wÅ‚Ä…czanie DGM przy pomocy GTIA10 czyli wartoÅ›ci $80 OR <priority>, jest znacznie korzystniejsze, ponieważ uaktywnienie siÄ™ DGM nastÄ™puje wtedy w znacznie niższej temperaturze niż przy użyciu innej wartoÅ›ci. Aktywność efektu utrzymuje siÄ™ również znacznie dÅ‚użej, na przykÅ‚ad kilka godzin w temperaturze otoczenia 22°C. Z kolei aktywność efektu DGM wÅ‚Ä…czanego przy pomocy GTIA9 czyli wartoÅ›ci $40 OR <priority> ma wyższy próg temperaturowy i nastÄ™puje znacznie później oraz zanika znacznie wczeÅ›niej. Może trwać na przykÅ‚ad tylko kilkanaÅ›cie minut w temperaturze otoczenia 22°C. Aktywność efektu DGM wÅ‚Ä…czanego przy pomocy GTIA11 czyli wartoÅ›ci $C0 OR <priority> ma najwyższy próg temperaturowy. Dlatego najlepiej wÅ‚Ä…czać DGM przy pomocy GTIA10 a potem ewentualnie przeÅ‚Ä…czać na inny tryb GTIA w zależnoÅ›ci, który z trybów DG9, DG10 czy DG11 chcemy wyÅ›wietlić. IstniejÄ… też takie ukÅ‚ady GTIA, dla których próg temperaturowy aktywnoÅ›ci efektu DGM jest niezależny od tego czy do rejestru PRIOR wpisujemy wartość $40 OR <priority> czy $80 OR <priority>.

    Podsumowując, w celu włączenia DGF (DGM lub DPS) zalecane jest używanie trybu GTIA10 czyli wartości $80 OR <priority>. Zaraz potem można zmienić tryb jeżeli pożądany jest inny niż GTIA10.

    Pisząc programy wykorzystujące efekty DGF należy zakładać osiągnięcie przez GTIA pełnej stabilności DGF. Jeżeli kiedykolwiek emulatory będą emulować efekty DGF to powinny robić to tak jakby osiągnięta była pełna stabilność DGF. Pełna stabilność oznacza, że włączenie danego efektu DGF powoduje jego natychmiastowe uaktywnienie i widoczność na ekranie.

    Jak wykrywać aktywność efektów DGF i określać ich stabilność.

    Efekt DPS wymaga z reguły wyższej temperatury układu GTIA niż efekt DGM. Wykrycie stabilnego DPS jest równoznaczne ze stwierdzeniem stabilnego DGM. Wykrywanie DPS realizuje się z użyciem mechanizmu wykrywania kolizji PMG z grafiką obrazu. Wykorzystuje się fakt, że przy aktywnym DPS obiekty PMG są przesunięte o jeden piksel lores w prawo względem swej normalnej pozycji wobec grafiki obrazu.

    Jeżeli w programie wykorzystujemy tylko efekty DGM to bardziej sensowne jest wykrywanie stabilnoÅ›ci tylko tego efektu ze wzglÄ™du na niższy próg temperaturowy niż dla DPS. Wykrywanie DGM jest możliwe dziÄ™ki mechanizmowi wykrywania kolizji pomiÄ™dzy obiektami Missile a grafikÄ… w trybie GTIA10. Wykorzystuje siÄ™ fakt, że przy aktywnym DGM granice pikseli rozdzielczoÅ›ci 80 sÄ… przesuniÄ™te o jeden piksel lores a ich wartoÅ›ci sÄ… inne niż w przypadku, gdy przesuniÄ™cia nie ma (patrz akapit „DGM”).

    Stopień stabilności efektu DGF określa się jako stosunek ilości linii ekranu, w których DGF okazał się aktywny do ilości linii, w których DGF był włączony. Ilość badanych linii powinna być oczywiście jak największa. Ponadto całkowita stabilność może być stwierdzona dopiero wtedy, gdy jest ona maksymalna dla kilkudziesięciu kolejnych klatek obrazu.

    NapisaÅ‚em trzy krótkie programy sÅ‚użące do wykrywania peÅ‚nej stabilnoÅ›ci efektów DGF. Program o nazwie DPSCHECK wykrywa stabilność efektu DPS wÅ‚Ä…czanego przy pomocy GTIA10, program DGMCHECK – stabilność efektu DGM wÅ‚Ä…czanego przy pomocy GTIA10 a program DGMG9CHK –  stabilność efektu DGM wÅ‚Ä…czanego przy pomocy GTIA9. Programy nie posiadajÄ… bloku RUNAD a ich przeznaczeniem jest doklejanie na poczÄ…tku plików .xex bÄ™dÄ…cych programami wyÅ›wietlajÄ…cymi grafiki w trybach korzystajÄ…cych z odpowiednich efektów DGF.

    W górnej części ekranu włączony efekt DGM, w dolnej DGM+DPS. Brak aktywności efektów.

    Widoczna aktywność efektów. Stabilność efektu DPS w dolnej części ekranu wynosi 35%.

    Stabilność efektu DPS w dolnej części ekranu wynosi 92%.

    Zależności między efektami DGF.

    Choć efekty DGM i DPS włącza się praktycznie w ten sam sposób to jest możliwe uzyskanie każdego z nich oddzielnie. Można też oczywiście uzyskać oba naraz. Wszystko zależy od momentów, w których następują zmiany rejestru PRIOR.

    W celu włączenia samodzielnego efektu DGM należy przełączyć z NORMAL na GTIAX w cyklu 16 lub później, byle przed rozpoczęciem wyświetlania grafiki oraz przełączyć z GTIAX na NORMAL w cyklu 109 lub wcześniej, byle po zakończeniu wyświetlania grafiki.

    W celu włączenia samodzielnego efektu DPS należy przełączyć z NORMAL na GTIAX w cyklu 109 lub wcześniej, byle po zakończeniu wyświetlania grafiki oraz przełączyć z GTIAX na NORMAL w cyklu 110 lub później, byle przed cyklem 109 następnej linii.

    W celu włączenia obu efektów jednocześnie należy przełączyć z NORMAL na GTIAX w cyklu 16 lub później, byle przed rozpoczęciem wyświetlania grafiki oraz przełączyć z GTIAX na NORMAL w cyklu 110 lub później, na przykład tuż przed kolejnym przełączeniem na GTIAX.

    Jak rozgrzewać GTIA.

    W trakcie rozgrzewania układu GTIA musi być włączony efekt DPS. Najlepiej aby był włączony w jak największej liczbie linii ekranu. Rozgrzewanie GTIA bez włączonego DPS jest nieskuteczne. Po takim nieskutecznym rozgrzewaniu a następnie włączeniu DPS lub DGM nadal potrzebne jest rozgrzewanie aby oba efekty DGF uzyskały widoczność i stabilność, choć wtedy potrzeba mniej czasu.

    W trakcie rozgrzewania włączanie DPS powinno odbywać się przy użyciu trybu GTIA10 lub GTIA9. Rozgrzewanie przy użyciu GTIA11 jest nieskuteczne. Jeżeli użyjemy GTIA9 to dla niektórych układów GTIA będzie wymagana wyższa temperatura niż przy użyciu GTIA10. Zalecane jest używanie trybu GTIA10 przy rozgrzewaniu GTIA.

    Ciekawe obserwacje i próby wyjaśnienia jak powstają efekty DGF.

    Temperatura.

    Przede wszystkim należy zauważyć, że ze wzrostem temperatury ukÅ‚adów scalonych wiąże siÄ™ wzrost czasów propagacji sygnałów. To oznacza, że w warunkach rozgrzania ukÅ‚adu pewne sygnaÅ‚y mogÄ… być opóźnione. Takie opóźnienie jest z pewnoÅ›ciÄ… przyczynÄ… powstawania efektów DGF. Opóźnienie dokÅ‚adnie o jeden piksel lores czyli jeden cykl koloru oznacza, że jakiÅ› przerzutnik (bÄ…dź przerzutniki) wewnÄ…trz GTIA przechowujÄ…cy stan ukÅ‚adu i taktowany zegarem koloru 3.58MHz zatrzaskuje swój stan później o caÅ‚y cykl, czyli „gubi” jedno aktywne zbocze sygnaÅ‚u zegarowego. Takie „gubienie” nastÄ™puje raz na liniÄ™ ekranu. Nie jest możliwe peÅ‚ne wyjaÅ›nienie przyczyn powstawania DGF bez szczegółowej znajomoÅ›ci schematu wewnÄ™trznego ukÅ‚adu GTIA.

    O synchronizacji GTIA z ANTIC’iem oraz jej wpÅ‚ywie na DPS.

    KiedyÅ› w trakcie eksperymentów z tzw. bugiem ANTICa w linii 240, synchronizacjÄ… pionowÄ… i poziomÄ… zauważyÅ‚em, że możliwy jest wpÅ‚yw na synchronizacjÄ™ poziomÄ… w liniach wygaszonych (VBLANK) skutkujÄ…cy przeróżnymi „ugiÄ™ciami” obrazu, natomiast nie jest możliwy wpÅ‚yw na synchronizacjÄ™ poziomÄ… w 240 liniach normalnych (o ile nie jest aktywny DGF). W tych liniach obraz jest zawsze w prawidÅ‚owym poÅ‚ożeniu. Wniosek z tej obserwacji jest taki, że GTIA synchronizuje siÄ™ z ANTIC-iem w każdej z 240 normalnych linii oraz nie synchronizuje siÄ™ w liniach wygaszonych. Wiadomo, że synchronizacja nastÄ™puje, gdy ANTIC podaje na szynÄ™ AN2-AN0 sygnaÅ‚ HBLANK czyli wartość binarnÄ… 010 (lub 011 jeÅ›li w nastÄ™pnej linii ma być hires). Z podanego wczeÅ›niej wniosku wynika, że ANTIC nie podaje sygnaÅ‚u HBLANK w liniach wygaszonych (VBLANK) albo, co bardziej prawdopodobne, ANTIC podaje sygnaÅ‚ HBLANK ciÄ…gle przez caÅ‚y czas trwania VBLANK (z wyjÄ…tkiem trzech linii gdzie podaje sygnaÅ‚ VSYNC) a GTIA synchronizuje siÄ™ z ANTIC-iem tylko przy przejÅ›ciu z ACTIVE DISPLAY do HBLANK. Za tÄ… drugÄ… opcjÄ… przemawia fakt, że puste linie normalne różniÄ… siÄ™ od linii wygaszonych tym, że w wygaszonych nie mamy wpÅ‚ywu na ich kolor. Musi być wiÄ™c różnica miÄ™dzy sygnaÅ‚em podawanym przez ANTIC w jednych i drugich liniach. JedynÄ… możliwoÅ›ciÄ… jest, że w pustych liniach normalnych jest to sygnaÅ‚ BACKGROUND (binarnie 000) a w wygaszonych sygnaÅ‚ HBLANK.

    Fakt, że w standardowych warunkach GTIA wyświetla obraz poprawny pod względem synchronizacji poziomej we wszystkich liniach ekranu (w tym w liniach wygaszonych) oznacza, że GTIA posiada wewnętrzny licznik, który zlicza cykle koloru i pozwala we właściwym momencie wygenerować impuls synchronizacji poziomej niezależnie od tego, czy ANTIC podaje sygnał HBLANK czy nie. Licznik taki jest z pewnością synchronizowany z sygnałem HBLANK, gdy ten jest podawany przez ANTIC (w 240 liniach normalnych).

    WyglÄ…da na to, że przyczynÄ… powstawania efektu DPS jest spóźnione o jeden cykl koloru docieranie sygnaÅ‚u HBLANK z ANTICa do GTIA i synchronizowanie siÄ™ wewnÄ™trznego licznika cykli koloru GTIA z tak opóźnionym sygnaÅ‚em. Innym możliwym wytÅ‚umaczeniem jest, że GTIA „gubi” przejÅ›cie od ACTIVE DISPLAY do HBLANK ponieważ jest w trybie GTIAX i być może oczekuje takiego przejÅ›cia co drugi cykl koloru i wskutek tego nie synchronizuje siÄ™ oraz że opóźnienie o jeden cykl koloru zwiÄ…zane z DGM powoduje również opóźnienie wewnÄ™trznego licznika cykli koloru a co za tym idzie opóźnienie impulsu synchronizacji poziomej.

    Zauważyłem, że jeżeli DPS jest włączony przed końcem ostatniej 240-stej normalnej linii ekranu i skutkuje przesunięciem PMG i impulsu synchronizacji poziomej w linii następnej to przesunięcie to utrzymuje się przez wszystkie linie wygaszone (VBLANK) aż do pierwszej (z 240 normalnych) linii u góry ekranu. Dopiero tu DPS przestaje być skuteczny o ile nie zostanie włączony tuż przed rozpoczęciem pierwszej linii normalnej i następnych. Ta obserwacja potwierdza, że GTIA nie synchronizuje się z ANTIC-iem w trakcie wyświetlania linii wygaszonych (VBLANK) oraz że ma wewnętrzny licznik cykli koloru.

    Efekt DPS włączony tylko w dolnej części ekranu. Powrót obrazu z przesuniętej do normalnej pozycji następuje dopiero na początku następnej klatki obrazu czyli na samej górze ekranu. Przesunięcie utrzymuje się przez cały czas trwania VBLANK mimo, że program nie wykonuje przełączeń rejestru PRIOR włączających efekt DPS w tym czasie.

    Czy ANTIC wpływa na efekty DGF?

    W czasie stabilizowania siÄ™ efekty DGF pojawiajÄ… siÄ™ i znikajÄ… losowo w poszczególnych liniach ekranu. Widoczne jest to jako przesuwanie siÄ™ zawartoÅ›ci linii o piksel w prawo lub w lewo. Nazwijmy to pulsowaniem. W przypadku efektu DPS dochodzi jeszcze uginanie siÄ™ obrazu w sÄ…siedztwie linii z uaktywnionym takim efektem. W pewnych momentach pulsowanie danej linii wyglÄ…da na zupeÅ‚nie niezależne od pozostaÅ‚ych ale w innych momentach można zauważyć powtarzajÄ…ce siÄ™ caÅ‚e grupy linii, które pulsujÄ… wedÅ‚ug takiego samego wzoru. UkÅ‚ad GTIA nie potrafi rozróżniać linii. Nie zawiera licznika linii i nie wie, którÄ… liniÄ™ ekranu aktualnie przetwarza. Polega tylko na sygnaÅ‚ach podawanych przez ANTIC na szynÄ™ AN2-AN0. Wydaje siÄ™, że gdyby jedynie ukÅ‚ad GTIA byÅ‚ odpowiedzialny za wprowadzanie opóźnieÅ„, które skutkujÄ… efektami DGF, to te efekty pojawiaÅ‚yby siÄ™ i znikaÅ‚y jednoczeÅ›nie we wszystkich liniach ekranu. Tak jednak nie jest i ten fakt wskazuje na to, że ANTIC jest współodpowiedzialny za powstawanie opóźnieÅ„. UdaÅ‚o mi siÄ™ zaobserwować ciekawy przypadek, który wydaje siÄ™ tego dowodzić. Zanim go jednak opiszÄ™, muszÄ™ dokonać krótkiego wprowadzenia. Badania przeprowadzaÅ‚em w taki sposób, że dzieliÅ‚em ekran na dwie części, po 100 linii w trybie $0E ANTIC’a każda, przedzielone kilkunastoma liniami. W obu częściach w każdej linii wÅ‚Ä…czony byÅ‚ efekt DPS. W obu częściach wÅ‚Ä…czony byÅ‚ ekran rozszerzony (wide field), który pobiera 48 bajtów na liniÄ™ w trybie $0E. W Display LiÅ›cie instrukcja LMS (czyli ustawiajÄ…ca poczÄ…tkowy adres danych obrazu) wystÄ™powaÅ‚a tylko w pierwszej ze stu linii każdego bloku. Ilość danych potrzebna dla 100-u linii to 100*48=4800, czyli wiÄ™cej niż 4kB. Jak wiadomo, wewnÄ™trzny rejestr ANTIC’a wskazujÄ…cy dane do pobrania jest inkrementowany automatycznie tylko w obrÄ™bie 4kB (inkrementacji podlegajÄ… tylko bity 11-0) co oznacza, że rejestr wskazujÄ…cy skÅ‚ada siÄ™ z 12-bitowego licznika oraz 4-bitowego rejestru zwykÅ‚ego przechowujÄ…cego niezmienne najstarsze 4 bity adresu podanego w instrukcji LMS. Licznik 12-bitowy po dojÅ›ciu do najwyższej wartoÅ›ci $FFF przekrÄ™ca siÄ™, czyli zaczyna liczyć od 0. Tak wiÄ™c jeżeli 100-u liniowy blok danych obrazu zaczynaÅ‚by siÄ™ na granicy 4-kilobajtowego bloku pamiÄ™ci, np. od adresu $5000 to musiaÅ‚oby nastÄ™pować jedno przekrÄ™cenie siÄ™ licznika (w linii o numerze (4096 div 48) = 85). A teraz wracam do obserwacji. UdaÅ‚o mi siÄ™ zaobserwować przypadek, gdzie w opisanych powyżej warunkach (jednakowych w każdej linii 100-liniowego bloku) efekt DPS uaktywniaÅ‚ siÄ™ dokÅ‚adnie w jednej linii w obu 100-liniowych blokach. Po wnikliwym dochodzeniu ustaliÅ‚em, że w obu przypadkach jest to linia nastÄ™pujÄ…ca bezpoÅ›rednio po linii, w której dochodzi do przekrÄ™cenia siÄ™ wewnÄ™trznego 12-bitowego licznika ANTICA’a wskazujÄ…cego dane obrazu (przypomnÄ™ jeszcze, że DPS jest widoczny w linii nastÄ™pujÄ…cej po wÅ‚Ä…czeniu go). Efekt ten wystÄ™powaÅ‚ jako pierwszy zauważalny w caÅ‚ym procesie uaktywniania siÄ™ DPS/DGF. Później efekt pojawiaÅ‚ siÄ™ sukcesywnie w coraz wiÄ™kszej iloÅ›ci linii. PodsumowujÄ…c, jedyny czynnik, jaki mógÅ‚ spowodować, że DPS wystÄ…piÅ‚ tylko w jednej ze 100-u linii, to inne opóźnienie (czas propagacji) sygnaÅ‚u podanego przez ANTIC na szynÄ™ AN2-AN0 w przypadku przekrÄ™cenia siÄ™ wewnÄ™trznego licznika niż opóźnienie w przypadku, gdy takie przekrÄ™cenie nie wystÄ™puje. Ta obserwacja upewnia mnie w przekonaniu, że ANTIC jest współodpowiedzialny za powstawanie efektów DGF.

    Dwa rodzaje HBLANK.

    Teraz jeszcze obserwacja, która nie ma związku z DGF ale może być ciekawa dla osób próbujących odtworzyć schemat wewnętrzny układu GTIA. Jak wspomniałem wcześniej, w trakcie wygaszania poziomego ANTIC podaje na szynę AN2-AN0 sygnał HBLANK czyli wartość binarną 010 jeśli w następnej linii ma być lores lub 011 jeśli w następnej linii ma być hires. Ma to miejsce w cyklach CPU 111-113 (koniec linii) oraz 0-16 (początek następnej linii). ANTIC pobiera instrukcję z DisplayList w cyklu 1 i wtedy dowiaduje się jaki będzie tryb w następnej linii. Odpowiednią wartość sygnału HBLANK wystawia więc na szynę AN2-AN0 dopiero w cyklu 2. Sądzę, że w cyklach 111-113 oraz 0-1 na szynę AN2-AN0 ANTIC podaje wartość sygnału HBLANK taką, jak dla poprzedniej linii a w cyklach 2-16 wartość właściwą dla bieżącej linii. Obie wartości będą różne, jeżeli następuje zmiana trybu z hires na lores bądź odwrotnie oraz takie same jeżeli zmiana trybu nie następuje. Sądzę, że GTIA wybiera tryb pracy tzn. hires lub lores na podstawie wartości sygnału HBLANK w ostatnim cyklu koloru należącym do okresu HBLANK. Natomiast dla GTIA nie ma znaczenia, który z tych sygnałów jest podawany przez ANTIC, aby wygenerować sygnały (poziomy) wygaszania poziomego i synchronizacji poziomej.

    Tryby wykorzystujÄ…ce DGF.

    WykorzystujÄ…c efekty DGF można uzyskać kilka nowych trybów graficznych na maÅ‚ym Atari. WiÄ™kszość z nich jest trybami interlace’owymi, gdzie jeden z dwóch półobrazów jest poziomo przesuniÄ™ty o pół piksela w danej rozdzielczoÅ›ci wzglÄ™dem drugiego. DziÄ™ki temu uzyskujemy podwojenie rozdzielczoÅ›ci poziomej oraz zwiÄ™kszenie liczby dostÄ™pnych kolorów bÄ…dź odcieni w wyniku mieszania siÄ™ nakÅ‚adajÄ…cych siÄ™ połówek pikseli z obu półobrazów.

    DGI– Delayed Gtia hires Interlace – tryb, który zademonstrowaÅ‚em w demie KNIGHT. Charakteryzuje siÄ™ rozdzielczoÅ›ciÄ… poziomÄ… 320 pikseli (hires) przy standardowej szerokoÅ›ci pola. Powstaje przez naprzemienne wyÅ›wietlanie dwóch półobrazów w rozdzielczoÅ›ci poziomej 160 (lores), czyli w trybie ANTIC’a $0E lub $04 opcjonalnie podkolorowanych przy pomocy obiektów PMG. W jednym z półobrazów zastosowany jest efekt DPS2 dajÄ…cy przesuniÄ™cie o jeden piksel hires w lewo od pozycji normalnej.

    DGI – ujÄ™cie pierwsze (to jeszcze z wersji na WAP-NIAK party z gotyckim fontem)

    DGI – ujÄ™cie drugie

    Półobraz przesunięty w lewo o piksel hires.

    Półobraz nieprzesunięty.

    DGX– Delayed Gtia cross(X) interlace – tryb bÄ™dÄ…cy kombinacjÄ… DGI i zwykÅ‚ego pionowego interlace’u telewizyjnego (opracowanego dla Atari przez Rybagsa). W tym trybie linie półobrazów nie nakÅ‚adajÄ… siÄ™, lecz wystÄ™pujÄ… naprzemian a rozdzielczość pionowa jest podwojona. Widzimy piksele lores uÅ‚ożone jak cegÅ‚y w murze, czyli w jednej linii nieprzesuniÄ™te, w nastÄ™pnej przesuniÄ™te o poÅ‚owÄ™ dÅ‚ugoÅ›ci, w nastÄ™pnej znów nieprzesuniÄ™te itd. Tryb DGX zostaÅ‚ również zademonstrowany w demie KNIGHT. Wykorzystana grafika nie byÅ‚a jednak tworzona z myÅ›lÄ… o takim sposobie wyÅ›wietlania wiÄ™c użycie DGX nie powoduje tu poprawy jakoÅ›ci.

    D9I– Delayed gtia9 Interlace – tryb charakteryzujÄ…cy siÄ™ rozdzielczoÅ›ciÄ… poziomÄ… 160 pikseli przy standardowej szerokoÅ›ci pola. Powstaje przez naprzemienne wyÅ›wietlanie dwóch półobrazów w trybie GTIA9 czyli w rozdzielczoÅ›ci poziomej 80. W jednym z półobrazów zastosowany jest efekt DPS dajÄ…cy przesuniÄ™cie o jeden piksel lores w lewo od pozycji normalnej.

    D10I– Delayed gtia10 Interlace – tryb charakteryzujÄ…cy siÄ™ rozdzielczoÅ›ciÄ… poziomÄ… 160 pikseli przy standardowej szerokoÅ›ci pola. Powstaje przez naprzemienne wyÅ›wietlanie dwóch półobrazów w trybie GTIA10 czyli w rozdzielczoÅ›ci poziomej 80. W jednym z półobrazów zastosowany jest efekt DPS dajÄ…cy przesuniÄ™cie o jeden piksel lores w lewo od pozycji normalnej.

    D9X– Delayed gtia9 cross(X) mode – tryb nieinterlace’owy polegajÄ…cy na tym, że wszystkie linie sÄ… wyÅ›wietlane w trybie GTIA9 a co druga jest przesuniÄ™ta o pół piksela w prawo dziÄ™ki zastosowaniu efektu DGM (DG9). Piksele rozdzielczoÅ›ci poziomej 80 sÄ… uÅ‚ożone jak cegÅ‚y w murze, czyli w jednej linii nieprzesuniÄ™te, w nastÄ™pnej przesuniÄ™te o poÅ‚owÄ™ dÅ‚ugoÅ›ci, w nastÄ™pnej znów nieprzesuniÄ™te itd.

    D10X– Delayed gtia10 cross(X) mode – tryb nieinterlace’owy polegajÄ…cy na tym, że wszystkie linie sÄ… wyÅ›wietlane w trybie GTIA10 a co druga jest przesuniÄ™ta o pół piksela w prawo dziÄ™ki zastosowaniu efektu DGM (DG10). Piksele rozdzielczoÅ›ci poziomej 80 sÄ… uÅ‚ożone jak cegÅ‚y w murze.

    D9XI– Delayed gtia9 cross(X) Interlace – tryb charakteryzujÄ…cy siÄ™ rozdzielczoÅ›ciÄ… poziomÄ… 160 pikseli przy standardowej szerokoÅ›ci pola. Powstaje przez naprzemienne wyÅ›wietlanie dwóch półobrazów w trybie D9X, gdzie w jednym półobrazie linie parzyste sÄ… nieprzesuniÄ™te a nieparzyste przesuniÄ™te o pół piksela w prawo a w drugim półobrazie linie parzyste sÄ… przesuniÄ™te o pół piksela w prawo a nieparzyste sÄ… nieprzesuniÄ™te. Tryb ten jest bardzo zbliżony do trybu HIP lecz tu we wszystkich liniach wystÄ™puje tryb GTIA9. Jest to taki sam tryb jak VZI – VertiZontal Interlacing opracowany w 1994 roku przez Bryana.

    D10XI– Delayed gtia10 cross(X) Interlace – tryb charakteryzujÄ…cy siÄ™ rozdzielczoÅ›ciÄ… poziomÄ… 160 pikseli przy standardowej szerokoÅ›ci pola. Powstaje przez naprzemienne wyÅ›wietlanie dwóch półobrazów w trybie D10X na podobnej zasadzie jak tryb D9XI.

    Programy.

    DGF INIT (DGFINIT.XEX) – program, który inicjuje efekty DGF przy rosnÄ…cej temperaturze ukÅ‚adów GTIA i ANTIC wedÅ‚ug podanego wyżej opisu. Program mierzy również stabilność (dostÄ™pność) efektów DGF i podaje jÄ… w procentach. Efekty DGF wÅ‚Ä…cza przy pomocy zalecanego GTIA10 i wyniki pomiarów dotyczÄ… efektów wÅ‚Ä…czanych tÄ… wÅ‚aÅ›nie metodÄ…. Efekty wÅ‚Ä…czane przy pomocy np. GTIA9 mogÄ… wciąż być niedostÄ™pne gdy program pokazuje 100%-owÄ… stabilność. Do wykrywania aktywnoÅ›ci DGF w danej linii program używa mechanizmu wykrywania kolizji obiektów PMG z grafikÄ… obrazu. W chwili gdy efekty DGF osiÄ…gnÄ… 100%-owÄ… stabilność wÅ‚Ä…cza siÄ™ dźwiÄ™kowy sygnaÅ‚ alarmowy oraz wyÅ›wietlony zostaje caÅ‚kowity czas dochodzenia do stabilnoÅ›ci. SygnaÅ‚ trwa okoÅ‚o 1 minuty i może być wyÅ‚Ä…czony wczeÅ›niej przez naciÅ›niÄ™cie dowolnego klawisza. NaciÅ›niÄ™cie B powoduje wyÅ›wietlenie grafiki tÅ‚a używanej przez program przy inicjowaniu DGF i pozwala na obserwacjÄ™ zachowania siÄ™ (pulsowania) poszczególnych linii ekranu w trakcie procesu stabilizacji DGF. NaciÅ›niÄ™cie Esc powoduje wyjÅ›cie do DOSa.

    Program DGF INIT w akcji. Stabilność efektów DGF (DPS i DGM) osiągnęła 25%.

    Stabilność 100% osiągnięta po 6-ciu minutach i 47-miu sekundach.

    Po naciśnięciu B można oglądać wyginanie się obrazu w trakcie osiągania stabilizacji efektów DGF.

    DPS CHECK (DPSCHECK.XEX) – program, który sprawdza, czy efekt DPS (wÅ‚Ä…czany przy pomocy zalecanego GTIA10) jest stabilny (dostÄ™pny) w 100%. Program nie posiada bloku RUNAD a jego przeznaczeniem jest doklejanie na poczÄ…tku plików .xex bÄ™dÄ…cych programami wyÅ›wietlajÄ…cymi grafiki w trybach korzystajÄ…cych z DPS. Jeżeli program wykryje, że DPS nie jest stabilny (dostÄ™pny) w 100% to wyÅ›wietli stosowny komunikat oraz natychmiast wróci do DOSa zapobiegajÄ…c dalszemu Å‚adowaniu siÄ™ i uruchomieniu programu głównego.

    DGM CHECK (DGMCHECK.XEX) – program, który sprawdza, czy efekt DGM (wÅ‚Ä…czany przy pomocy zalecanego GTIA10) jest stabilny (dostÄ™pny) w 100%. Podobnie jak DPS CHECK program nie posiada bloku RUNAD a jego przeznaczeniem jest doklejanie na poczÄ…tku plików .xex bÄ™dÄ…cych programami wyÅ›wietlajÄ…cymi grafiki w trybach korzystajÄ…cych z DGM.

    DGM G9 CHECK (DGMG9CHK.XEX) – program, który sprawdza, czy efekt DGM (wÅ‚Ä…czany przy pomocy GTIA9) jest stabilny (dostÄ™pny) w 100%. Podobnie jak DPS CHECK program nie posiada bloku RUNAD a jego przeznaczeniem jest doklejanie na poczÄ…tku plików .xex bÄ™dÄ…cych programami wyÅ›wietlajÄ…cymi grafiki w trybach korzystajÄ…cych z DGM.

    DGF DEMO – demo efektów DPS i DGM zastosowanych w trybach GTIA9 i GTIA10. NaciÅ›niÄ™cie spacji ujawnia ukryte ugiÄ™te części obrazu. NaciÅ›niÄ™cie Esc powoduje wyjÅ›cie do DOSa. Polecam przejrzenie kodu źródÅ‚owego tego programu. W folderze Src\dgfmode znajdujÄ… siÄ™ oddzielne pliki źródÅ‚owe dla efektów DPS, DG9 i DG10 oraz ich kombinacji.

    DGF DEMO – efekty nieaktywne.

    DGF DEMO – efekty aktywne.

    DGF DEMO – widoczne ugiÄ™te części obrazu.

    KNIGHT – demo trybów DGI i DGX wykorzystujÄ…ce grafikÄ™ „Knight” autorstwa Tomasza „Levi” Lewandowskiego stworzonÄ… dla C64 w trybie Interlaced FLI. Pozwala również wyÅ›wietlić samodzielnie oba półobrazy. Program wykrywa brak peÅ‚nej stabilnoÅ›ci DGF i jeżeli taka sytuacja nastÄ…pi blokuje możliwość wyÅ›wietlania trybów DGI i DGX a także półobrazu z efektem DPS2, który wyÅ›wietlaÅ‚by siÄ™ nieprawidÅ‚owo ze wzglÄ™du na różnice w poziomych pozycjach obiektów PMG w co drugiej linii. NaciÅ›niÄ™cie 1 powoduje wyÅ›wietlenie tylko półobrazu przesuniÄ™tego o piksel hires w lewo czyli tego z efektem DPS2, naciÅ›niÄ™cie 2 – tylko półobrazu bez przesuniÄ™cia, 3 – peÅ‚nego obrazu w trybie DGI, 4 i 5 – dwóch wariantów obrazu w trybie DGX (400i), które różniÄ… siÄ™ tym, który z półobrazów jest wyÅ›wietlany wyżej a który niżej. NaciÅ›niÄ™cie spacji zatrzymuje pÅ‚ynÄ…cy napis. Esc powoduje wyjÅ›cie do DOSa.

    CACTUVZI i FARMVZI – programy wyÅ›wietlajÄ…ce obrazki w trybie VZI (D9XI) opracowane przez Bryana. W programach tych do wÅ‚Ä…czania efektu DGM używany jest tryb GTIA9, przez co na niektórych maszynach efekt bÄ™dzie dość krótkotrwaÅ‚y (patrz akapit „WpÅ‚yw sposobów wÅ‚Ä…czania efektów DGF na ich stabilność”). Do programów tych można dokleić na poczÄ…tku program DGMG9CHK.XEX w celu dodania mechanizmu wykrywania peÅ‚nej stabilnoÅ›ci efektu DGM.

    Wszystkie wymienione programy mojego autorstwa potrzebują nie więcej niż 48kB pamięci RAM i nie korzystają z pamięci RAM pod OS ROM, dzięki czemu mogą działać również na Atari 800. Programy działają zarówno na maszynach PAL jak i NTSC.

    Ciekawe screenshoty.

    Poniżej zamieszczam kilka spośród licznych screenshotów zrobionych podczas prac nad DGF.

    To już koniec.

    Opisane efekty DGF oraz powstaÅ‚e z ich użyciem tryby graficzne nie mogÄ… znaleźć poważnych zastosowaÅ„ ze wzglÄ™du na ograniczonÄ… dostÄ™pność (dÅ‚ugi czas oczekiwania na samoistne rozgrzanie siÄ™ ukÅ‚adów graficznych, konieczność rozgrzewania tych ukÅ‚adów, niewystÄ™powanie efektów DGF w niektórych egzemplarzach Atari). Uważam jednak, że warto byÅ‚o zbadać i opisać zjawisko DGF, po prostu po to, żeby je poznać i wyjaÅ›nić jednÄ… z bardziej skrywanych tajemnic Atari. Ponadto oglÄ…danie trybu DGI – hiresu z mnóstwem kolorów na standardowym Atari przyniosÅ‚o mi ogromnÄ… radość i choćby tylko dla tego trybu warto byÅ‚o takie badania przeprowadzić.

    Tym, którzy chcieliby zobaczyć opisane efekty a obawiajÄ… siÄ™ tak drastycznych metod podgrzewania Atari jak przy użyciu suszarki, polecam wÅ‚Ä…czać komputer w upalne letnie dni. Komputer samoczynnie rozgrzeje siÄ™ do wymaganej temperatury w okoÅ‚o 30 minut. OczywiÅ›cie przy wÅ‚Ä…czonym programie DGF INIT. W chÅ‚odniejszych porach roku proponujÄ™ ustawić Atari w pobliżu kaloryfera a jeÅ›li ktoÅ› dysponuje wÅ‚asnym CO to również zaaplikować przysÅ‚owiowe „wiÄ™cej wÄ™gla”.

    Download

    Komentarze gości atari.area

    Momencik, uaktualniam...  

    Nie jesteś zalogowany. Tylko zarejestrowani i zalogowani użytkownicy mog± dodawać komentarze.

Lotharek.pl
Retronics
Silly Venture
Last Party 2025
Lost Party 2025

Szukaj

Wyszukiwarka przeszukuje zasoby atari.area, atariki oraz forum.

Twoliner

Momencik, uaktualniam...  .

Pamiętaj, żeby linki do Twolinera dodawać wyłącznie po skróceniu za pomocą serwisu tiny.pl. Jeśli coś Ciebie ominęło - skorzystaj z archiwum.

Network

konto

Nie jesteś zalogowany. Zaloguj się lub załóż konto

forum

Artykuły

Wywiady

Allegro

Jako, że Allegro.pl jest bardzo często odwiedzanym serwisem przez Atarowców, umiejscowiłem poniżej wyszukiwarkę produktów związanych z naszym kochanym Atari. Chcesz coś kupić - wystarczy wpisać w okienko poniżej.


Wystarczy wpisac czego szukamy i po chwili znajdujemy sie juz na Allegro.pl.