atarionline.pl Badlines + multiplikacja w poziomie - 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: CommentAuthorkski
      • CommentTime20 Sep 2019 08:09 zmieniony
       
      Pozwolę sobie założyć nowy wątek dla potomnych (tzn. tych początkujących w temacie jak ja) bo temat ciekawy.
      Mam nadzieję na koniec może zakończony załączeniem jakiegoś działającego kodu źródłowego.

      Wiedza przekazana przez Tebe na pytanie o pierwszą linię każdego wiersza w trybie znakowym 4:

      kski to są badlines, ANTIC w pierwszej linii wiersza dokonuje dekodowania znaków, można to zablokować

      G2F -> Special -> Mode -> GED+ -> disable badlines

      jaka jest tego cena? ANTIC poprzez zapisy do VSCROLL zostaje zablokowany na odczycie pierwszego wiersza DisplayList, wszystkie linie obrazu będą generowane na tej podstawie

      czyli jeśli inwers znaków został ustawiony w bajcie 30 naszego głównego pierwszego wiersza to na całej wysokości ekranu, w każdym wierszu będzie tam ustawiony inwers, bez możliwości jego selektywnego przełączania

      w każdym wierszu będą te same kody znaków, bez możliwości ich zmiany, jedyny dostęp do nich będzie poprzez modyfikację generatora znaków, czyli co wiersz zmieniamy zestaw znaków (max 30 dla 30 wierszy) i modyfikujemy jego konkretną lokację

      kosztowne, ale możliwe do realizacji :)
      • 2: CommentAuthorkski
      • CommentTime20 Sep 2019 08:09
       
      Ok wyłączyłem badlines, tryb 4, zmieniam kolor tła w linii w dli:
      ...
      STA WSYNC

      NOP

      STX COLOR
      STY COLOR
      STX COLOR
      STY COLOR
      STX COLOR
      STY COLOR
      STX COLOR
      STY COLOR
      STX COLOR
      STY COLOR
      STX COLOR
      STY COLOR

      STA WSYNC
      ...

      przy czym w pierwszej linii każdego wiersza jest na początku STA VSCROL z wartościami naprzemiennie 12/4.
      Działa, pytanie o cykle.
      Między kolejnymi STA WSYNCH mam 12 STX/STY (będzie 13 jak wyrzucę STA WSYNCH ale to niewiele zmieni), przy czym ostatnie 6 wykonują się już w czasie tworzenia obrazu jak na załączonym screenshocie.
      Czy to jest max co się da, czyli ewentualna multiplikacja spritów czy kolorów może się opierać o (tylko) taką ilość dostępnych cykli = (6przed+6podczas wyświetlania)*4? Wszystkie pozostałe cykle są zajęte przez dma / antica / odświeżanie pamięci?
      • 3: CommentAuthorkski
      • CommentTime20 Sep 2019 08:09
       
      Jeszcze obrazek z dma (shift-F8) z altirry

      Tzn. pytanie jest czy to już stacja, czy jest jeszcze jakiś kolejny trick o którym nie wiem.
      • 4: CommentAuthorVidol
      • CommentTime21 Sep 2019 07:09 zmieniony
       
      to juz raczej kres mozliwosci atarki. Przy rozmnazaniu duchow jest jeszcze jeden problem. Jak chcesz rozmnozyc duchy z tym samym wzorem to wyglada to mniej wiecej tak jak z kolorami. Gorzej jak chcesz miec rozne ksztalty wtedy oprocz zmiany pozycji trzeba dodatkowo wpisywac wzor ducha, o kolorach nie wspominajac :)
      W zalaczniku plik g2f z 8 zmianami, kolor zielony to invers.
      • 5: CommentAuthortebe
      • CommentTime21 Sep 2019 08:09
       
      ściślej, kres możliwości CPU6502 1.79 MHz

      Rapidus potrafi pokryć całą szerokość ekranu duchami pojedyńczej szerokości
      • 6: CommentAuthorkski
      • CommentTime21 Sep 2019 08:09
       
      Dzięki to chciałem wiedzieć.
      Czyli zastosowania mocno ograniczone. Pamiętając o kosztach, można użyć do zmultiplikowania 1-2 spritów, lub do zmiany kolorów jak w g2f.
      • 7: CommentAuthorxxl
      • CommentTime21 Sep 2019 09:09
       
      a GTIA upgrade Psychola potrafi zapisywac jeszcze szybciej ... co 2 cykle koloru - juz nawet duchow nie trzeba uzywac:

      ->link<-
      • 8: CommentAuthorkski
      • CommentTime21 Sep 2019 09:09
       
      Oczywiście nie żebym zarzucał temat. Jako że wszyscy narzekają na nadmiar gier i brak demek technologicznych pewnie jakieś zrobię. Ale później są inne priorytety.
      • 9: CommentAuthorVidol
      • CommentTime21 Sep 2019 11:09
       
      Praktyczne wykorzystanie rozmnazania duchow mozna znalezc w grze Nibbly, gdzie na planszy rozmnozone duchy podkolorowuja grafike. Dodatkowo dolny panel tez zrobiony jest z rozmnozonych duchow.
      ->link<-
      • 10: CommentAuthorkski
      • CommentTime21 Sep 2019 11:09 zmieniony
       
      Widziałem, fajne wykorzystanie multiplikacji.
      • 11: CommentAuthortebe
      • CommentTime21 Sep 2019 12:09
       
      jest jeszcze do wykorzystania możliwość rozszerzenia ducha/pocisku na całą szerokość ekranu, w sensie podając pozycję poziomą HPOS wyznaczamy zakres pokrycia 'od lewej krawędzi ekranu ... HPOS'
      • 12: CommentAuthorxxl
      • CommentTime21 Sep 2019 12:09
       
      byla gdzies demonstracja sprzetowego wypelniania kolorem ducha (rotujacy trojkat) ale nie moge teraz znalezc :/
      • 13: CommentAuthortebe
      • CommentTime21 Sep 2019 12:09
       
      Avery Lee stworzył ten przykład
      • 14: CommentAuthoremkay
      • CommentTime21 Sep 2019 12:09 zmieniony
       
      The demo with the rotating triangle. This is really a step into the right direction.
      Using the PMg for big colored fields and allow some details using the Background.

      You know: You could do rotating stars (objects) with up to 17 colors by using GPIOR 0 without even one DLI. Placing player 2 and 3 to fixed positions, and do some animation that is stored in the character set.


      The rule is just to use "708" or "709" as the main background color, to give details over the Player 2 and 3.

      Players 0 and 1 still need their final shape, but can mix with any other colors.


      If you also think about it for any game:
      Imagine how it works , if people do a small "Kernel" , based on a DLI that is at the height of the main Sprite. Doubling Player. Where the main sprite is vertically not crossing, the screen just could be colored by just placing the PMg .
      • 15: CommentAuthorkski
      • CommentTime21 Sep 2019 13:09 zmieniony
       
      Strange but after looking to Shanti game demo a few minutes ago I was thinking about exactly the same idea.

      Edit: Or similar...
      • 16:
         
        CommentAuthorCyprian
      • CommentTime29 Apr 2022 10:04 zmieniony
       

      kski:

      ANTIC poprzez zapisy do VSCROLL zostaje zablokowany na odczycie pierwszego wiersza DisplayList, wszystkie linie obrazu będą generowane na tej podstawie


      czy wystarczy jeden zapis do VSCROLL na ramkę czy trzeba powtarzać to w każdym wierszu?
      • 17: CommentAuthormono
      • CommentTime29 Apr 2022 11:04
       
      Odkąd zapiszesz, odtąd będzie już na wieczność :)
      • 18: CommentAuthortebe
      • CommentTime29 Apr 2022 12:04
       
      należy powtarzać, G2F może wygenerować gotowy kod dla trybu GED+ (w zakładce Special należy zaznaczyć wyłączenie badlines)
      • 19: CommentAuthormono
      • CommentTime29 Apr 2022 12:04
       
      Przepraszam za wprowadzenie w błąd, jakoś nie dotarło do mnie że chodzi o eliminację badlines.
      • 20: CommentAuthorkski
      • CommentTime29 Apr 2022 12:04 zmieniony
       
      Przy czym w każdym wierszu inna wartość do VSCROL jak napisałem w poście #2. O ile pamiętam chodzi o to żeby licznik linii wiersza który zlicza do VSCROL (i jest 4-bitowy) nigdy do niego nie doliczył i antic wyświetlał cały czas ten sam wiersz.
      Jak licznik linii dojdzie do VSCROL wiersz się kończy. Tak można też uzyskać wiersze innej wysokości.
      Jeśli pomieszałem proszę śmiało prostować.
      • 21:
         
        CommentAuthorCyprian
      • CommentTime29 Apr 2022 13:04
       
      ok, dzięki za rozjaśnienie tematu