atarionline.pl gęstszy ANTIC 5 (GR.13) - Forum Atarum

    Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

    • :
    • :

    Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

      • 1: CommentAuthormono
      • CommentTime22 Dec 2020 18:12 zmieniony
       
      Korzystając z artykułu @0xF opowiadającego o tym jak uzyskać tryb 9++ zrobiłem eksperymentalny tryb ++ wykorzystujący tryb 5 ANTIC-a.

      Zalety:
      1. Rozmiar znaku 4x4 piksele multicolor.
      2. 5 kolorów na znak - jak to w tekstowym trybie multicolor.
      3. Pamięć ekranu 40x24=960 bajtów.
      4. Większa granulacja (w pionie) przy manipulowaniu mapą kolorów (7. bit kodu znaku).
      5. 2x128 znaków 4x4 w generatorze znaków o rozmiarze 1K.
      6. Więcej cykli dla CPU niż w trybie 4 ANTIC-a bo dane obrazu pobierane są co drugą linię skanningową - @0xF wyjaśnił niżej, że niestety jest to nieprawda.
      7. Definicja jednego znaku 4x4 składa się z 4 bajtów.
      8. Kwadratowy piksel w trybie ekranowym 160x96.
      9. DLI co 4 linie trybu (8 linii skanningowych).

      Wady:
      1. Przerwanie DLI co 16 linii skanningowych przestawiające VSCROL.
      2. Badlines co 8 linii skanningowych - jak w trybie 4 ANTIC-a.

      Tryb wykorzystuje sztuczkę Foxa z manipulacją rejestrem VSCROL pozwalając na uzyskanie pamięci ekranu 40x24 znaki 4x4.
      Nic nie stoi na przeszkodzie idąc za ciosem uzyskać tryb 4x2 z pamięcią ekranu 40x48=1920 lub 4x1 z pamięcią ekranu 40x96=3840 bajtów pozwalający na jeszcze gęstsze manipulacje inwersem.

      Generator znaków ma rozmiar 1KB przy czym każdy "znak" dzieli się na dwie połówki - górną (pierwsze 4 bajty) używaną dla znaków w wierszach parzystych i dolną (drugie 4 bajty) używaną w wierszach nieparzystych.

      Można tego trybu użyć do skrolingów w pionie i poziomie (konieczność ustawiania odpowiedniej wartości VSCROL w pierwszym i ostatnim przerwaniu DLI - pozostałe bez zmian).

      Być może taki tryb przyda się komuś do gry albo dema.

      W załączniku kod i wyniki.
      • 2:
         
        CommentAuthorKaz
      • CommentTime22 Dec 2020 18:12
       
      Łooo... świetne! Dzięki Mono.
      • 3: CommentAuthor0xF
      • CommentTime22 Dec 2020 20:12
       
      Brzmi jak tryb 4 z dwoma fontami i połową rozdzielczości pionowej. Oszczędzamy na pamięci fontów. Czasowo DMA jak w trybie 4.
      • 4: CommentAuthortebe
      • CommentTime22 Dec 2020 20:12
       
      żądam konkretnego przykładu wykorzystania !
      • 5: CommentAuthormono
      • CommentTime22 Dec 2020 22:12 zmieniony
       
      @0xF: W większości masz rację - to taki tryb 4 z mniejszą rozdzielczością pionową, DMA pamięci ekranu jest jak w trybie 4, ale DMA pamięci znaków 2x rzadsze więc więcej czasu zostanie dla CPU.
      Font 4x4 też daje większe pole manewru, bo pikseli w znaku jest mniej więc więcej znaków może być reużywalne.
      Ponieważ wiersze parzyste używają górnej połówki znaku w foncie, a nieparzyste dolnej połówki, to w 1KB (czyli w standardowym foncie dla trybu 5) mieści się 256 znaków - ograniczenia co do używania są jak w trybie Avalonowym.
      Dodatkowo sprajty mogą używać dwuliniowej rozdzielczości więc zajmują 2x mniej pamięci, a przy nakładaniu sprajtów z priorytetem 0 w wierszu można mieć 23 kolory.
      Przy sprajtach softwareowych mamy 2x mniej danych na znak do zapisania (4 zamiast 8).

      @TeBe: I pewnie byś chciał zaraz całe demo :) Wysil wyobraźnię! Dema to ja nie umiem.

      Edit: To w zasadzie jest kontynuacja tego wątku: ->link<-
      • 6: CommentAuthortebe
      • CommentTime22 Dec 2020 23:12
       
      albo pokażesz praktyczne zastosowanie albo będzie to tylko ciekawostka

      ->link<-
      • 7: CommentAuthor0xF
      • CommentTime22 Dec 2020 23:12
       
      DMA pamięci znaków 2x rzadsze więc więcej czasu zostanie dla CPU.

      Nieprawda. Mimo niższej rozdzielczości ANTIC pobiera dane z fontów w każdej skanlinii. Podobnie w drugim "wysokim" trybie znakowym, czyli 7 (GR. 2 a nie GR. 7).
      Dzieje się tak dlatego, że ANTIC ma tylko 48 bajtów pamięci wewnętrznej, w której przetrzymuje dane z pamięci obrazu pobrane w badlinii (tutaj: kody znaków). Nie ma więc już gdzie zmieścić danych z fontu do powtórzenia w następnej linii.
      • 8: CommentAuthoremkay
      • CommentTime22 Dec 2020 23:12 zmieniony
       
      Mode 5 is a very good choice for a lot of games to solve.
      The RAM usage is half of the single scanline modes. Also some CPU cycles were saved by "halving" the character line DMA reads.
      Also the Displaylist is getting smaller, you could do a lot FX when changing th DL settings.
      But!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

      It looks not really impressive to people, if you use the double scanline mode just at 192 to 200 scanlines.

      Double scanline modes NEED to be used at the full height of the screen.
      240 vs. 200 means in double scanline modes 120 to 100 image lines.
      Well... it MAKES THE difference. And it is still not too hungry for available resources, if you keep the broader features in mind that were given using ANTIC for visual FX.

      But, coders had to use that features to make the lower resolution impressive, if you understand.

      People still were thinking TOO much in "still images" not in the "game animation".
      Good animation at 4x4 mode is easily topping a hires screen without any animation there...

      Mode 5 offers a clean 2x2 mode.
      • 9: CommentAuthormono
      • CommentTime23 Dec 2020 00:12 zmieniony
       

      mono:

      DMA pamięci znaków 2x rzadsze więc więcej czasu zostanie dla CPU.

      0xF:

      Nieprawda. Mimo niższej rozdzielczości ANTIC pobiera dane z fontów w każdej skanlinii. Podobnie w drugim "wysokim" trybie znakowym, czyli 7 (GR. 2 a nie GR. 7).
      Dzieje się tak dlatego, że ANTIC ma tylko 48 bajtów pamięci wewnętrznej, w której przetrzymuje dane z pamięci obrazu pobrane w badlinii (tutaj: kody znaków). Nie ma więc już gdzie zmieścić danych z fontu do powtórzenia w następnej linii.

      Rozumiem. Czyli wydajnościowe korzyści z dwukrotnie mniejszej rozdzielczości pionowej są tylko w trybach graficznych. Dzięki Fox.

      emkay:

      The RAM usage is half of the single scanline modes.

      Not in this mode - number of rows is the same as in standard ANTIC 4 mode - 24. Thanks to this you can use inverted characters every 4 lines of mode, not every 8 like in standard ANTIC 5.

      emkay:

      Also some CPU cycles were saved by "halving" the character line DMA reads.

      Not exactly - 0xF explained that line cache is not used in textmodes and character shapes are taken every scanline.

      emkay:

      Also the Displaylist is getting smaller, you could do a lot FX when changing th DL settings.

      Display list has the same length as in ANTIC 4 here.

      emkay:

      But!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

      It looks not really impressive to people, if you use the double scanline mode just at 192 to 200 scanlines.

      Double scanline modes NEED to be used at the full height of the screen.
      240 vs. 200 means in double scanline modes 120 to 100 image lines.

      I prefer to use 224 scanlines at most (8 empty lines at the top and 8 at the bottom of screen) for the sake of problems with NTSC TVs. It's not well if player doesn't see a part of status line or game area.

      emkay:

      Well... it MAKES THE difference. And it is still not too hungry for available resources, if you keep the broader features in mind that were given using ANTIC for visual FX.

      But, coders had to use that features to make the lower resolution impressive, if you understand.

      Agree.

      emkay:

      People still were thinking TOO much in "still images" not in the "game animation".

      Agree.

      emkay:

      Good animation at 4x4 mode is easily topping a hires screen without any animation there...

      Mode 5 offers a clean 2x2 mode.

      I'm not sure what do you mean - could you explain it more?
      • 10: CommentAuthoremkay
      • CommentTime23 Dec 2020 07:12 zmieniony
       
      @mono
      I don't understand you quotes.

      1. Antic 5 uses half of memory .
      Mode 4 - 960 Bytes
      Mode 5 - 480 Bytes
      The need of splitting character sets with DLIs to give every position on the screen a dedicated character is also the half.
      Which tremendously saves a lot of memory usage.
      The Displaylist is also rather small then (about 16 bytes). So you can store more of different displaylist settings.
      And so on.


      2. Yes I know that the character modes don't take advantage of the ANTIC built in buffer.
      Due to the lower count of character mode lines, there is also the half of DMA read on the first line of the character mode.
      • 11: CommentAuthoremkay
      • CommentTime23 Dec 2020 07:12
       
      The 2x2 mode in Mode 5 is given by hardware. No need to handle any correction on rotating "3d" objects.
      Square Pixel simply look better than the stretched 2x1 single scanline color mode look.
      The odd stuff is where coders deny to use those modes, because it looks more blocky.
      But there is still the PMg available. I'd still prefer to use the PMg as some additional "parallax" low detail background, but it is also possible to create more details on screens with a lower resolution.
      • 12: CommentAuthoremkay
      • CommentTime23 Dec 2020 07:12
       
      @mono

      Now I see ;)
      You're changing the height of the mode using the scroll register.
      This means of course higher RAM usage.
      But still there is the double scanline thing keeping the RAM size half of a comparable single scanline mode.
      • 13: CommentAuthormono
      • CommentTime23 Dec 2020 15:12
       
      @emkay: Indeed. Idea behind this mode is that I'd like to have mode with square pixels (like in ANTIC5) and 24 rows (as in ANTIC4) to make me able to use inverse color as freely as I can do this in ANTIC4 mode and more flexible than I can do this in standard ANTIC5.

      Ah, I got at last what you mean saying 2x2 mode :) It's size of pixel - 2x2 hires pixels per one mode pixel.
      • 14:
         
        CommentAuthorDracon
      • CommentTime23 Dec 2020 21:12
       
      Allright... shall we see any practial demo of this? Could be interesting and fun to see an example of something new. :)
      • 15: CommentAuthortebe
      • CommentTime23 Dec 2020 23:12
       
      nie będzie żadnych przykładów
      • 16: CommentAuthormono
      • CommentTime24 Dec 2020 03:12 zmieniony
       
      @tebe: Szantaż moralny :) Cierpliwości, a nuż ktoś znajdzie ładne zastosowanie :) Może byś sam zrobił jakieś demo w tym trybie? :D Gorąco zachęcam.
      • 17:
         
        CommentAuthortdc
      • CommentTime24 Dec 2020 08:12
       
      Super pomysł, Mono rozgrzewasz nasze szare komórki;)
      • 18: CommentAuthormono
      • CommentTime24 Dec 2020 20:12 zmieniony
       
      Nieco przykładów. Ale też trzeba się przypatrzyć :)

      Na całym ekranie użyty jest jeden charset (final). W tabelce niżej przedstawiona jest ilość wykorzystanych znaków 4x4 w wierszach parzystych (upper) i nieparzystych (lower).
      game           draconus  zybex  blinky
      upper charset 55 29 63
      lower charset 65 35 68
      final charset 65 35 68

      Kolor inwersu jest celowo niebieski aby stymulować wyobraźnię.

      Edit: Zlogosowałem sobie screeny, bo jak wiadomo wszystkie te gry używają trybu graficznego GR.7 (ANTIC D).
      • 19:
         
        CommentAuthorKaz
      • CommentTime25 Dec 2020 16:12
       
      Teraz Tebe napisze grę w tym trybie, a Dracon narysuje grafikę ;)
      • 20:
         
        CommentAuthorDracon
      • CommentTime26 Dec 2020 01:12
       
      ... a KAZ dokończy obrazki do "HIs Dark Majesty" aby dzieło było wreszcie kompletne. ;)
      • 21:
         
        CommentAuthorKaz
      • CommentTime26 Dec 2020 08:12 zmieniony
       
      Ale Kaz ciągle nie czeka, żeby inni zrobili, sam nic nie robiąc, a Dracon tak :D
      • 22:
         
        CommentAuthorDracon
      • CommentTime27 Dec 2020 23:12
       
      Tzn. ? Kiedy finał zmagań z HDM-em? ;)

      Co do mnie to już się narobiłem i nic nie muszę udowadniać. :)
      Robię sobie, ale już raczej bez 8-bitowych ograniczeń...
      • 23:
         
        CommentAuthortdc
      • CommentTime28 Dec 2020 08:12
       
      Oooo stary! Powinieneś tu dostać bana;)))
      • 24:
         
        CommentAuthortdc
      • CommentTime28 Dec 2020 08:12 zmieniony
       
      Ps. Czy osoby się tutaj udzielające muszą coś komuś udowadniać? Szczerze w to wątpię!

      Po prostu kochamy Atari;)
      ...a że przy okazji coś się nagłośni, czy tez wyjaśni, ułatwi programowanie, omówi jakieś nowe tryby graficzne (patrz Mono) to przecież to jest właśnie miłość do Atari;)
      Taka kreatywna miłość - jak dla mnie genialnie!;)
      • 25:
         
        CommentAuthorKaz
      • CommentTime28 Dec 2020 23:12
       
      Dracon - nie zmieniaj tematu z trybu 5++ na jakąś grę, bo to nie o tym wątek. Jak chcesz znowu zadać te same pytania o HDM, które już zadawałeś, to odsyłam do odpowiedniego wątku.

      Oczywiście, że nie musisz nic udowodniać... Ale możesz! Na przykład, udowodnić, że nie tylko domagasz się pracy od innych... Bo inni też nie muszą niczego udowadniać, bo też się już narobili.