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

Autor Wątek: Sprite w górnej ramce - problem  (Przeczytany 6002 razy)

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

Offline BagoZonde

  • Level 6
  • ******
  • Wiadomości: 1056
    • http://www.commocore.com
Sprite w górnej ramce - problem
« dnia: 11 Października 2011, 11:39 »
Witam! Otworzyłem sobie górną i dolną ramkę, do górnej wrzuciłem sprite'a. U góry wyświetla się elegancko. Niestety część tego sprite'a widoczna jest w dolnej części wyłączonej ramki. Problem występuje gdy pozycja Y sprite'a jest mniejsza od 31. Włączenie i wyłączenie ramki realizuję w rasterliniach $f8 i $00 na zmianę wyłączając i włączając 3-ci bit w $d011. Próbowałem w rasterlinii $f8 wyłączyć po prostu sprite'a i włączyć go z powrotem gdy ekran rysowany jest od góry - ale bez powodzenia - nadal kawałek sprite'a widoczny jest na dole (np: dla pozycji Y=30 widoczny jest 1 piksel sprite'a od góry, a dla pozycji Y=29 widoczne są 2 piksele itd.).

Co to może być? Wygląda na jakąś prawidłowość ;).



Offline uka

  • Level 3
  • ***
  • Wiadomości: 101
Sprite w górnej ramce - problem
« Odpowiedź #1 dnia: 11 Października 2011, 23:12 »
W nieodpowiednim momencie wyłączasz/włączasz sprajta. Nie wiem jak wygląda twoja procka, ale ja kiedyś się zapomniałem i włączałem przy nie tej co trzeba było zerowej wartości $d012 (nie sprawdzałem najstarszego bitu raster w $d011 i zamiast zerowej linii miałem 256) Jak widać górny fragment sprajta to za późno wyłączasz jak dolny za wcześnie włączasz.

Offline BagoZonde

  • Level 6
  • ******
  • Wiadomości: 1056
    • http://www.commocore.com
Sprite w górnej ramce - problem
« Odpowiedź #2 dnia: 12 Października 2011, 01:13 »
No przecież! Bułka z masłem, rzeczywiście za późno wyłączałem. Dzięki za cynk uka!!

Offline Skull

  • Level 6
  • ******
  • Wiadomości: 2034
Sprite w górnej ramce - problem
« Odpowiedź #3 dnia: 15 Października 2011, 19:48 »
Znów za późno odczytuję temat
można też "zwyczajnie "gdzies go przenieść (np. na tą chwile ustawić go w d010, przy okazji bedziesz widzial czy robisz to za późno), zmienić kolor na tła, pusty kształt, zasłonić itd.

Prawda jest też taka, że jak wyświetli się pierwsza linia sprite, to nawet jak go w niej zaraz wyłączysz to pozostałe liniie spritea jeszcze i tak się wyswietlą - dopiero po nich jest on wyłączony.

Offline BagoZonde

  • Level 6
  • ******
  • Wiadomości: 1056
    • http://www.commocore.com
Sprite w górnej ramce - problem
« Odpowiedź #4 dnia: 15 Października 2011, 21:36 »
Tak, dzięki inc/dec $d020 odmierzam sobie ile coś zajmuje czasu w ramce, właśnie walczę z algorytmem kopiowania bitmapy, żeby robić płynne animacje nie-sprite'owe bo sprite'y i muza chodzą w tym czasie elegancko. Bez kopiowania koloru się mieści, ale już jak tej bitmapce multicolorowej dokoptuję kolor to wyskakuje za ramkę. Oczywiście jadę unrolled głównie i automodyfikacją ale jeden loopik się też niestety trafił. Próbowałem też z frameskipping, sobie testuję możliwości c64 i swoich przy okazji ;). Teoretycznie można by swapować jednego sprite'a na ramkę i tak "obsługiwać" np: 32. Dziś właśnie próbowałem coś takiego zrobić z "wyłapywaniem" sprite'ów, ale jednak własne rozwiązanie (bardzo oszczędne ale jednak z pętelką) nie sprawdziło się, sprite'y nie zdążyły się switchować w wąskim gardle. Dopiero po chwili dotarło do mnie, że chciałem zrobić multiplexer 32 :D a z tym co prezentuję na tym etapie to powinienem tekstówkami się zająć :D. Sporo jest możliwości, samemu drążę tematy, nie to, że wyważam otwarte drzwi, po prostu próbuję i przy okazji nabieram ogłady z hexami, ze skokami beq *+x cykli itd. \"\". Pracuję nad mini grą, która ma poprzedzić mniej wymagającego technicznie (ale zawsze) Meonlawela. Chciałem z nią zdążyć na RGCD puszczając w wersji 16k ale mam szanse 50/50 \"\".

Viva Commodore!

Offline V-12/Tropyx

  • Level 7
  • *******
  • Wiadomości: 2765
  • 0ldsk00l 4ever!
    • http://www.riversedge.pl/
Sprite w górnej ramce - problem
« Odpowiedź #5 dnia: 15 Października 2011, 23:13 »
Jeżeli bitmapa zajmuje cały ekran, to nie musisz nic kopiować, wystarczy przełączać banki.
http://www.riversedge.pl/ - zapraszam na nową stronę: recenzje, relacje, strefa C64.

Serwis Commodore 64/1541 - naprawa/diagnoza.
Zawsze aktualne!

Offline BagoZonde

  • Level 6
  • ******
  • Wiadomości: 1056
    • http://www.commocore.com
Sprite w górnej ramce - problem
« Odpowiedź #6 dnia: 15 Października 2011, 23:16 »
V-12/Tropyx
Pardon, chodziło mi o blok, dokładnie 6x5 kwadratów w trybie multicolor (nie wiem jak się to podaje w tym formacie, czy nibble robi za jeden piksel czy za dwa) ale wygospodarowałem sobie sporo wolnych cykli więc dam radę ;).

Offline V-12/Tropyx

  • Level 7
  • *******
  • Wiadomości: 2765
  • 0ldsk00l 4ever!
    • http://www.riversedge.pl/
Sprite w górnej ramce - problem
« Odpowiedź #7 dnia: 15 Października 2011, 23:40 »
No to faktycznie jest z tym trochę zabawy. Może spróbuj adresowanie pośrednie na stronie zerowej. 6x5 to nie jest aż taki duży obszar do przenoszenia.
http://www.riversedge.pl/ - zapraszam na nową stronę: recenzje, relacje, strefa C64.

Serwis Commodore 64/1541 - naprawa/diagnoza.
Zawsze aktualne!

Offline BagoZonde

  • Level 6
  • ******
  • Wiadomości: 1056
    • http://www.commocore.com
Sprite w górnej ramce - problem
« Odpowiedź #8 dnia: 15 Października 2011, 23:49 »
V-12/Tropyx
Zerowa na bank, spróbuję jeszcze frameskipping zastosować - w jednej ramce bitmapkę a w drugiej colormem i videomem - z tym, że musi to być całkowicie niezauważalne przez oko ludzkie ;). Jeżeli PAL i jeżeli 50 klatek na sekundę, to w około 16-stu powinno spokojnie wystarczyć, ale zauważyłem, że to jakoś inaczej działa, muszę z tym poeksperymentować, jeszcze nie wiem co mogę z tego wycisnąć.

Offline Skull

  • Level 6
  • ******
  • Wiadomości: 2034
Sprite w górnej ramce - problem
« Odpowiedź #9 dnia: 16 Października 2011, 07:52 »
BagoZonde
\"\", muszę przyznać że tworzysz juz pewien folklor pisarsko-programistyczny na tym forum. Z zaciekawieniem wypatruje kolejnych postów i z zacięciem je czytam, choć nie zawsze mogę zrozumieć co piszesz. Jeśli chodzi o liczbę słów zapożyczanych z jezyków obcych (tu angielski) jesteś niekwestionowanym liderem statystyki - prawie co drugie słowo w twoich postach, jest właśnie tego typu.

Moze spróbuj stworzyć te swoje animacje na generatorze znaków (Charset, Chargenerator)

A wogóle to polecam jednak zagłębić się w literaturę z lat 90-tych, bo jest w niej dużo artykułów i kursów o sprawach które cały czas mozolnie odkrywasz (C&A, Kebab, 64plus4).

Offline BagoZonde

  • Level 6
  • ******
  • Wiadomości: 1056
    • http://www.commocore.com
Sprite w górnej ramce - problem
« Odpowiedź #10 dnia: 16 Października 2011, 11:15 »
Skull
Haha, wcale nie dziwi mnie fakt skąd takie zapożyczenia, skoro przez większość czasu przebywam na CSDB, codebase64 i czytam zagraniczną literaturę. Zresztą jednak po polsku jest mniej tego, na zagramanicznych więcej rzeczy znalazłem do tej pory. Ale Kebaba rzeczywiście nie przeglądałem jeszcze (!!). Angielski jest uniwersalnym językiem ;) a jak mam napisać frameskipping: przeskakiwanie/omijanie klatek? Jeżeli będzie Cię to mniej raziło, to przestawię się na poprawną polszczyznę choć ucierpi na tym mój folklor pisarsko-programistyczny \"\".

Co do animacji to mogę wrzucać charseta na bitmapę multicolor? Myślałem, że w trybie bitmap multicolor jest to niemożliwe bo to w końcu bitmapa (#$3b do $d011, #$18 do $d016 no i bank: #$3a do $d018).

Offline Kisiel

  • Level 7
  • *******
  • Wiadomości: 11447
  • Number 7 in all users competition...
    • http://wiki.projekt64.filety.pl/doku.php
Sprite w górnej ramce - problem
« Odpowiedź #11 dnia: 16 Października 2011, 14:53 »
ja wymiękam \"\" Skull pokaż twardość.
idz wyprostowany wśród tych co idą na kolanach

...w przypadku checi zakupu UK1541,GA,MA,T8500,T7501 prosze o kontakt na Facebooku, haslo: UK1541....

Offline V-12/Tropyx

  • Level 7
  • *******
  • Wiadomości: 2765
  • 0ldsk00l 4ever!
    • http://www.riversedge.pl/
Sprite w górnej ramce - problem
« Odpowiedź #12 dnia: 16 Października 2011, 17:33 »
BagoZonde:
Co do animacji to mogę wrzucać charseta na bitmapę multicolor?

Wrzucać możesz, ale będziesz miał kaszanę \"\" jak jestesś w trybie graficznym no to nie możesz wyświetlać fontów :D
http://www.riversedge.pl/ - zapraszam na nową stronę: recenzje, relacje, strefa C64.

Serwis Commodore 64/1541 - naprawa/diagnoza.
Zawsze aktualne!

Offline Kisiel

  • Level 7
  • *******
  • Wiadomości: 11447
  • Number 7 in all users competition...
    • http://wiki.projekt64.filety.pl/doku.php
Sprite w górnej ramce - problem
« Odpowiedź #13 dnia: 16 Października 2011, 19:18 »
obczaj konwertery do znaków.
idz wyprostowany wśród tych co idą na kolanach

...w przypadku checi zakupu UK1541,GA,MA,T8500,T7501 prosze o kontakt na Facebooku, haslo: UK1541....

Offline BagoZonde

  • Level 6
  • ******
  • Wiadomości: 1056
    • http://www.commocore.com
Sprite w górnej ramce - problem
« Odpowiedź #14 dnia: 16 Października 2011, 21:46 »
Kisiel
No konwersją znaków sam się bawiłem ale w trybie bitmapy charsetów nie zobaczę przecież.