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

Autor Wątek: Przerwania i ...  (Przeczytany 305 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Supermario_

  • Gość
Przerwania i ...
« dnia: 08 Stycznia 2006, 12:57 »
Witam. Mam pare pytan, oto one: (po wrowadzeniu krotkim)
Krotkie wprowadzenie w istote problemu
Otoz popelnilem niewielka procedure na przerwaniach ktora operuje duchem. co ramke sprawdza stan joya2 i w zaleznosci od wychylenia przesuwa go tak jak chce itp. proste. niestety zdziwilem sie ze to dziala tak wolno. spodziewalem sie ze bedzie dzialac szybciej. procedura jest wywolywana w #$11 lini rastra tylko raz na ramke. zajmuje niewiele czasu i w zasadzie mozna by ja przyspieszyc (kilka razy na ramke) ale i tak vic w ciagu ramki zmieni raz tylko polorzenie ducha. zatem
-czy jest mozliwosc przyspieszenia wyswietlania owego ducha czesciej? (w ramach tej samej ramki)
-czy jezeli przelacze w adresie $DC0E bit nr.7 (1-50Hz:0-60Hz), czyli go zgasze to Caly komputer bedzie chodzil szybciej bez jakichkolwiek skutkow ubocznych?
 
Prosze o udzielenie konkretnych i wyczerpujacych odpowiedzi za co bede bardzo wdzieczny.
 
Z partyjnym



Offline Data

  • Level 3
  • ***
  • Wiadomości: 137
Przerwania i ...
« Odpowiedź #1 dnia: 10 Stycznia 2006, 00:08 »
No coz, cos chyba pokreciles, bo procedura powinna dzialac szybciej niz ":tak wolno": .  
Jesli jest dobrze napisana, a predkosc Cie nie zadowala, to ja znam przynajmenij 2 sposoby:
1. Jesli odczytujesz co ramke stan portu Joy`a to mozesz przesuwac Sprajta o wiecej niz 1 pixel - proste
2. Mozesz przeprogramowac tak zegar, aby wywolywal przerwanie wiecej razy niz 50/s. Sorki ,ale w tym momencie nie pamietam adresu Zerknij do mapy pamieci.

recces_

  • Gość
Przerwania i ...
« Odpowiedź #2 dnia: 26 Stycznia 2006, 23:33 »
-czy jest mozliwosc przyspieszenia wyswietlania owego ducha czesciej? (w ramach tej samej ramki)  
 
jesli przesowasz w poziomie to nie -Vic co 8 linie pobiera dane do wyswietlenia znakow i w zaleznosci od pozycji sprita dlasza jego czesc -tu nic nie zrobisz
-czy jezeli przelacze w adresie $DC0E bit nr.7 (1-50Hz:0-60Hz), czyli go zgasze to Caly komputer bedzie chodzil szybciej bez jakichkolwiek skutkow ubocznych?  
 
jak polaczysz to z DC0D  i konczeniu przerwan na $EA8A  (jesli dobrze pamietam|)
jedynym sensownym rozwiazaniem jest zrobienie procedury przesowajacej o 1px i liczacej czas przesowania,jesli bedzie on wiekszy niz >:sekunda to zwiekszanie polozenia sprayta o 2 px pozniej 4..itd     jak odpale wreszcie swoja commode to podesle ci stosowna procedurke (chyba ze w zamian za dyski zobowiazesz sie do przezucenia zawartosci na PC ...)
 
------/jak zawsze zloscliwy---/