atarionline.pl Podwójne buforowanie / display listy - 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: CommentAuthorVagant
    • CommentTime11 Jun 2023 zmieniony
     
    Hejka,

    Mam takie proste pytanie. Próbuję przenieść swój kod animujący obracający się obiekt 3D na Atari XE i wszystko fajnie tylko mam mały problem z buforowaniem ekranów. Z tego co przeczytałem to mogę to osiągnąć malując na jednym ekranie, uruchomić display listę do tego ekranu, namalować kolejną klatkę na innym ekranie i uruchomić drugą display listę jak skończę malowanie (podmienić display listy) i tak w pętli. Kod nie mesli się w 1 VBL więc nie korzystam z przerwania.
    Czy to wystarczy? Czy przy przełączaniu display listy powinienem czekać na VBL? Jeśli tak to jak skuteczne to zrobić?
    Mogę sprawdzać czy zmieniła się wartość pod adresem 20 ale to mi nie rozwiązuje sprawy.
    Piszę w MADS.

    No dobra, działa - nie wiem jak usunąć tylko wpis :)
    • 2: CommentAuthortebe
    • CommentTime11 Jun 2023
     
    jak uniknąć dwubuforowania?

    ->link<-
    • 3: CommentAuthortebe
    • CommentTime11 Jun 2023
     
    bez udziału OS-a i komórki $14 (VCOUNT = $D40B)

    bit VCOUNT
    bmi *-3
    bit VCOUNT
    bpl *-3

    ;---------------------------

    z udziałem OS-a

    lda:cmp:req 20
    • 4: CommentAuthorVagant
    • CommentTime11 Jun 2023
     
    Super, dzięki. Teraz zrobiłem opcja 2 i działa ok. Ten opis zaraz doczytam.
    W sumie szybciej ten sam kod na 65xe niż c64 :)
    • 5:
       
      CommentAuthorpirx
    • CommentTime11 Jun 2023 zmieniony
     
    jeśli masz włączony system (a masz jak widać), to najlepiej użyć
    DLPTRS EQU $0230

    To jest systemowy cień adresu display list, który jest czytany przez system na przerwaniu VBL.

    Czyli rysujesz sobie co tam Ci potrzeba, jak narysowane to update'ujesz DLPTRS i mozesz juz cos obliczasz do nowego screena a dl ci sie samo przelaczy na vbl.

    na nastepnym levelu to raczej modyfikujesz adres ekranu w dl, zeby nie trzymac kilku podobnych kopii dl.

    warto uzyc jakiejs listy systemowych labelek, np. ->link<-
    w komodzie bardzo mi przeszkadza, ze chyba nie ma bardzo dobrze ustalonej listy nazw ekwatów systemowych :]
    • 6: CommentAuthorVagant
    • CommentTime11 Jun 2023
     
    Wielkie dzięki za pomoc! Bardzo przydatne informacje.
    • 7:
       
      CommentAuthorjhusak
    • CommentTime11 Jun 2023 zmieniony
     
    Doublebuffering to moc! Amaurote i Draconus tego używają, przez co sprity nie mrygają. A LN2 nie, więc postaci rysują się po wyświetleniu obrazka.
    • 8: CommentAuthorAdam
    • CommentTime12 Jun 2023
     

    jhusak:

    A mnie w komodzie drażni ten "kernal"

    Mnie na Atari drażni "kernaw". Ale to chyba nie ten wątek ;)