Aktualności: C64 Power - online od stycznia 2000 !

Autor Wątek: Jak zrobić pionowy scroll z podzielonym ekranem?  (Przeczytany 3201 razy)

0 użytkowników i 3 Gości przegląda ten wątek.

Offline Zbych

  • Level 3
  • ***
  • Wiadomości: 210
Jak zrobić pionowy scroll z podzielonym ekranem?
« dnia: 19 Kwietnia 2017, 14:39 »
Chodzi mi o o taki układ ekranu gdzie powiedzmy pierwsze 20 wierszy jest scrollowanych (w pionie) a pozostałe poniżej są nieruchome, taki typowy układ ekranu gry. Niebardzo wiem jak przysłonić tą dolną część obszaru scrolowanego żeby nie było widać rysowanych znaków. Jedyne co mi przyszło do głowy do zrobienie cienkiego paska ze sprajtów którym zasłoniłbym ten obszar, ale może jest jakiś inny trick?
« Ostatnia zmiana: 19 Kwietnia 2017, 14:46 wysłana przez Zbych »



Offline Raf

  • Master of disaster
  • Administrator
  • Level 7
  • **********
  • Wiadomości: 7333
  • Wolność, własność, sprawiedliwość
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #1 dnia: 19 Kwietnia 2017, 15:07 »
a nie wystarczy, ze dociagniesz do "rownych" pixeli, czyli co 8 linii?
"Cokolwiek powiesz albo napiszesz, znajdzie się ktoś, kto słyszy lub czyta coś zupełnie innego i jeszcze bezczelnie wmawia Ci to"

Offline Zbych

  • Level 3
  • ***
  • Wiadomości: 210
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #2 dnia: 19 Kwietnia 2017, 15:13 »
Może źle się wyraziłem, chodziło mi o 20 wierszy ekranu znakowego, czyli mamy 20 wierszy znakowych na scroll poruszający się w górę lub dół i kilka wierszy niżej np. na wyświetlenie wyniku liczby żyć itp. Nie wiem jak przysłonić tą granicę gdzie kończy się obszar ruchomy a zaczyna obszar statyczny tak żeby nie było widać uzupełniania grafiki gdy scroll jedzie w górę.

Offline Zbych

  • Level 3
  • ***
  • Wiadomości: 210
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #3 dnia: 19 Kwietnia 2017, 15:24 »
Chyba mam drugi pomysł poza przysłoną ze sprajtów, tylko jest to bardziej pamięciochłonny i nie wiem jak to się będzie zachowywać... ale mogę zmienić na granicy obszarów czcionkę na pustą i wtedy nie będzie widać rysowanych znaków bo będą puste :) no tylko że zje to całe 2kb pamięci i chyba trudno mi to będzie docyklować. Da się w połowie wysokości wyświetlanego wiersza znaków zmienić czcionkę?

Offline Raf

  • Master of disaster
  • Administrator
  • Level 7
  • **********
  • Wiadomości: 7333
  • Wolność, własność, sprawiedliwość
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #4 dnia: 19 Kwietnia 2017, 15:26 »
nie do konca rozumiem w czym problem niestety ;) moze jakis screenshot?
"Cokolwiek powiesz albo napiszesz, znajdzie się ktoś, kto słyszy lub czyta coś zupełnie innego i jeszcze bezczelnie wmawia Ci to"

Offline Zbych

  • Level 3
  • ***
  • Wiadomości: 210
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #5 dnia: 19 Kwietnia 2017, 15:46 »
Tak by to miało wyglądać

Offline Zbych

  • Level 3
  • ***
  • Wiadomości: 210
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #6 dnia: 19 Kwietnia 2017, 16:08 »
Teraz jak nad tym myślę to chyba wystarczy dodać w części nieruchomej pusty wiersz znaków tak żeby nie było widać że tam są różne kolory na granicy, tylko coś nie mogę sobie poradzić z docyklowaniem tego w momencie gdy badline występuje tuż przed granicą obszarów.

Offline Raf

  • Master of disaster
  • Administrator
  • Level 7
  • **********
  • Wiadomości: 7333
  • Wolność, własność, sprawiedliwość
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #7 dnia: 19 Kwietnia 2017, 16:32 »
mozesz sobie w kodzie zrodlowym do kombi-nacja obcykac jak zrobilem cos podobnego
"Cokolwiek powiesz albo napiszesz, znajdzie się ktoś, kto słyszy lub czyta coś zupełnie innego i jeszcze bezczelnie wmawia Ci to"

Offline Buddha

  • Level 4
  • ****
  • Wiadomości: 341
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #8 dnia: 19 Kwietnia 2017, 20:12 »
mozesz sobie w kodzie zrodlowym do kombi-nacja obcykac jak zrobilem cos podobnego

ooo Raf widzę małe "luki" w kodowaniu na C64 :D ...ale ja ma to samo, więc muszę co jakiś czas coś kodować na C64, bo po prostu zapominam, a to chyba przez kodowanie na PC :/

Zbych jeśli chodzi o płynne przesuwanie w pionie to na pewno musisz zostawić pustą linię pomiędzy tymi dwoma obszarami. Przesuwasz np. osiem punktów po jednym do góry poprzez $d011 i $d012, przy ósmym punkcie wracasz znowu do punktu zero oraz dalej jak w zwykłym scrollu poziomym tzn. kopiujesz całość do góry co 8 pikseli i wklejasz następną linijkę na samym dole przesuwanego obszaru, a w dół to na odwrót, o ile o to chodzi, a może V-12 coś powie więcej ? :)
« Ostatnia zmiana: 19 Kwietnia 2017, 20:14 wysłana przez Buddha »

Offline Zbych

  • Level 3
  • ***
  • Wiadomości: 210
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #9 dnia: 19 Kwietnia 2017, 21:34 »
Już sobie poradziłem, stwierdziłem że scroll o 1 pixel na ramkę będzie za wolny więc dałem co 2 i problem z krótką liniią rastra blisko granicy obszarów rozwiązał się sam. Teraz zastanawiam się nad inną rzeczą - o ile przesuwanie znaków mogę zrobić na podwójnym buforze (zamieniając adresy pamięci ekranu w $D018) to czy nie będzie widać jakiegoś migotania jak będę scrolował pamięć koloru. Muszę chyba po prostu napisać i przetestować.
Zacząłem pisać programik testowy z myślą że obejdzie się bez podwójnego buforowania ale jak doszło scrolowanie koloru okazało się że nie da rady i muszę przerobić na podwójny bufor ekranu.

Offline Raf

  • Master of disaster
  • Administrator
  • Level 7
  • **********
  • Wiadomości: 7333
  • Wolność, własność, sprawiedliwość
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #10 dnia: 20 Kwietnia 2017, 07:56 »
mozesz sobie w kodzie zrodlowym do kombi-nacja obcykac jak zrobilem cos podobnego

ooo Raf widzę małe "luki" w kodowaniu na C64 :D ...ale ja ma to samo, więc muszę co jakiś czas coś kodować na C64, bo po prostu zapominam, a to chyba przez kodowanie na PC :/
Przynosze wedke a nie rybe ;)
Sa tez gry, w ktorych ten problem zostal rozwiazany, chocby boulder dash w 1984 ;D
"Cokolwiek powiesz albo napiszesz, znajdzie się ktoś, kto słyszy lub czyta coś zupełnie innego i jeszcze bezczelnie wmawia Ci to"

Offline Skull

  • Level 6
  • ******
  • Wiadomości: 2034
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #11 dnia: 20 Kwietnia 2017, 08:50 »
to czy nie będzie widać jakiegoś migotania jak będę scrolował pamięć koloru.

nie będzie. Ten scroll to jakieś "napisy końcowe"? Można też w jednej linii "zgasić kolory" czyli np. zinwertować fonty, i gasić przez d021 (czy nawet zrobić fade'ing)- można też zakryć linię przez "wrong mode" d011 (bit 6)- który wyświetla tylko czarny.

Offline Zbych

  • Level 3
  • ***
  • Wiadomości: 210
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #12 dnia: 20 Kwietnia 2017, 09:44 »
Sa tez gry, w ktorych ten problem zostal rozwiazany, chocby boulder dash w 1984 ;D
Też myślałem o Boulder..., ale akurat w tam nie są używane sprajty więc nie było by problemu żeby je wykorzystać do wyświetlania wyniku i zasłonięcia górnych wierszy, dlatego nie sprawdzałem jak tam jest to zrobione.

nie będzie. Ten scroll to jakieś "napisy końcowe"? Można też w jednej linii "zgasić kolory" czyli np. zinwertować fonty, i gasić przez d021 (czy nawet zrobić fade'ing)- można też zakryć linię przez "wrong mode" d011 (bit 6)- który wyświetla tylko czarny.
Zastanawiam się nad napisaniem na C64 pewnej gierki w którą niedawno grałem na Androidzie, do tego potrzebny jest typowy 4-kierunkowy scroll. Nie wiem czy coś z tego wyjdzie ale na razie moim celem jest zrobienie takiego scrolla z kafelków 2x2 znaki.
Właśnie chyba o takie coś mi chodziło jak ten trick D011. Co prawda pokazały mi się 1 pixelowe artefakty w linii rastra w której zapaliłem bit 6 ale jeszcze dokładnie tego nie testowałem, w każdym razie takie info może mi się przydać, dzięki.

Offline Buddha

  • Level 4
  • ****
  • Wiadomości: 341
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #13 dnia: 20 Kwietnia 2017, 19:28 »
Zbych'u spróbuj jeszcze z tym kodem źródłowym. W spakowanym zip'ie jest też wykonalny prg (P00) jako example . Przykładowe kopiowanie, o którym napisałeś. Poruszasz się joystickiem :)

Offline Zbych

  • Level 3
  • ***
  • Wiadomości: 210
Re: Jak zrobić pionowy scroll z podzielonym ekranem?
« Odpowiedź #14 dnia: 30 Kwietnia 2017, 21:45 »
Dziś miałem chwile czasu żeby sobie pokodzić i mam problem/pytanie:

podczas przesuwania ekranu w pionie dolna część która powinna być statyczna (zapodaje tam stałą wartość do przesuwu do $D011) przeskakuje o jeden wiersz w górę i zastanawiam się czy da się tego uniknąć za pomocą jakiegoś tricku lub odpowiedniego docyklowania czy to taka "uroda" VICa i muszę ten przeskok kompensować przepisując zawartość części statycznej o jeden wiersz w dół (a potem znowu w górę)?

Widać to na załączonym programiku. Nie wykonuje on pełnego scrolla  tylko modyfikuje przesunięcie ekranu o 2 piksele przy zmianie kierunku joya. Czarny pasek zrobiłem tym trickiem "wrong mode".

Wydaje mi się że gdybym umieścił statyczną część u góry ekranu to nie było by tego problemu i być może tak właśnie zrobię ale chciałbym wpierw wiedzieć czy moje przypuszczenia na temat VICa są prawidłowe i nie da się tak podzielić ekranu bez przepisywania statycznej części o jeden wiersz w górę lub dół w zależności od tego co w jakiej pozycji jest górna część scrolowana.