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 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
     
    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
     
    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 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
     
    ś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
     
    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
     
    a GTIA upgrade Psychola potrafi zapisywac jeszcze szybciej ... co 2 cykle koloru - juz nawet duchow nie trzeba uzywac:

    ->link<-
    • 8: CommentAuthorkski
    • CommentTime21 Sep 2019
     
    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
     
    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 zmieniony
     
    Widziałem, fajne wykorzystanie multiplikacji.
    • 11: CommentAuthortebe
    • CommentTime21 Sep 2019
     
    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
     
    byla gdzies demonstracja sprzetowego wypelniania kolorem ducha (rotujacy trojkat) ale nie moge teraz znalezc :/
    • 13: CommentAuthortebe
    • CommentTime21 Sep 2019
     
    Avery Lee stworzył ten przykład
    • 14: CommentAuthoremkay
    • CommentTime21 Sep 2019 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 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 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
     
    Odkąd zapiszesz, odtąd będzie już na wieczność :)
    • 18: CommentAuthortebe
    • CommentTime29 Apr 2022
     
    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
     
    Przepraszam za wprowadzenie w błąd, jakoś nie dotarło do mnie że chodzi o eliminację badlines.
    • 20: CommentAuthorkski
    • CommentTime29 Apr 2022 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
     
    ok, dzięki za rozjaśnienie tematu