Witam, mam pytanie - jak często (ile razy na linię) podczas kreślenia linii mogę zmienić zawartość rejestru tła ?
Czy dam radę pobierać wartość tego koloru z innej komórki pamięci (z tablicy wartości) ?
Press play on tape...
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
TURGEN 9.3.0 Kolejna wersja multiplatformowego narzędzia do zarządzania obrazami taśm.
SV 2024 WE - program imprezy Już za tydzień odbędzie się zimowa edycja Silly Venture
Nowa obudowa dla 800XL - zostało 36 dni Niewiele ponad miesiąc do końca kampanii.
Zmarł twórca języka BASIC Zmarł Thomas E. Kurtz twórca języka BASIC
Zmiana serwera atari.area Serwis przeszedł właśnie ważną aktualizację infrastruktury
atari.area forum » Programowanie - 8 bit » Ilość zmian jednego rejestru koloru na jedną linię ?
Strony 1
Zaloguj się lub zarejestruj by napisać odpowiedź
Witam, mam pytanie - jak często (ile razy na linię) podczas kreślenia linii mogę zmienić zawartość rejestru tła ?
Czy dam radę pobierać wartość tego koloru z innej komórki pamięci (z tablicy wartości) ?
mozesz zmieniac ile tylko razy dasz.
minimalna roznica to 6 cykli (przy ich liczbie wiekszej od 3),
lda #kolor1
sta $d01a
lda #kolor2
sta $d01a
itd...
lub 4 cykle (jesli zmian jest maksymalnie 3).
lda #kolor1
ldx #kolor2
ldy #kolor3
sta $d01a
stx $d01a
sty $d01a
jeden cykl procesora (to o ile dobrze pamietam) jeden pixel w gr.15.
mozesz pobierac te wartosci z tablicy, ale wtedy odleglosc miedzy zmianami rosnie (10 cykli):
lda tablica,x
sta $d01a
inx
jeden cykl procesora (to o ile dobrze pamietam) jeden pixel w gr.15.
Dwa.
jeśli użyć programu rastra to 10 zmian, każda w innym miejscu ekranu, jeśli bez programu rastra, tylko DLI to 6 zmian (obraz wąski), 4 zmiany (obraz normalny), 3 zmiany (obraz szeroki)
wszystko to jest w G2F, opcja CHECK, wartość dla LIMIT
Dzięki za odpowiedzi - jeżeli dobrze rozumiem, jeżeli podepnę się pod przerwanie VBL i rozpocznę od zmiany koloru $D01A, to mogę co 16 pixeli zmieniać kolor tła, czyli teoretycznie 3200 razy ???
//EDIT: chodzi mi o to, czy mogę użyć w miarę sensownego podkolorowania fontów, a na dodatek mieć jeszcze czas na obsługę sprite'ów...
Dzięki za odpowiedzi - jeżeli dobrze rozumiem, jeżeli podepnę się pod przerwanie VBL i rozpocznę od zmiany koloru $D01A, to mogę co 16 pixeli zmieniać kolor tła, czyli teoretycznie 3200 razy ???
Lepiej takie rzeczy robić na DLI, a nie na VBL. Z tego co pamiętam VBL ma ograniczenie na długość wykonywania i wcale nie jest to limit związany z częstotliwością odświeżania ekranu tylko krótszy. Po tym czasie następuje bum. Zmiany możesz wykonywać nawet co 12 pikseli GR 15.
//EDIT: chodzi mi o to, czy mogę użyć w miarę sensownego podkolorowania fontów, a na dodatek mieć jeszcze czas na obsługę sprite'ów...
Sprite'y dodatkowo kradną cykle CPU w każdej lini, bodajże po cyklu/sprite. Nie pamiętam dokładnie w którym miejscu to zachodzi, ale weź to również pod uwagę.
VBL działa poza ramką obrazu, albo i na niej, ale do granicy ok. 20000 cykli CPU
zmiany jakie dokonasz nie będą stałej wartości, z lewej strony ekranu będą szerokie, by kurczyć się w kierunku prawej strony ekranu
można te zmiany obejrzeć pod G2F, wybierając tryb GED+ lub GED-
no to już widzę, że to za wysokie progi jak dla słabeusza jak ja
Tebe, czy da się w G2F uzyskać obrazek operujący tylko na 1 kolorze ? żeby potem tylko z gotowej procedury skorzystać :D
chcesz program rastra stworzyc zmieniający jeden rejestr koloru? można
Czy któryś z emulatorów poprawnie odtwarza zmiany koloru w linii?
Mój testowy programik daje taki sam rezultat w Atari800Win i Atari++, ale w Altirra kolory są przesunięte.
Zakładam, że Altirra ma najlepszą emulację, ale czy możecie to potwierdzić?
(programik jakby co załączę jutro, nie zgrałem go z kompa, na którym pisałem)
ilmenit, Twoj program zmian DLI jest daleki od ideału, więc nie dziw się że są przesunięcia linii
Ty rejestry ładujesz przed STA WSYNC, a powinieneś po, inaczej tracisz czas
Altirra jest pewniejsza niż Atari800Win, wszystkie limity zmian i sposób zapisu rejestrów jest w kodzie generowanym przez G2F, chcesz odkrywać Amerykę od nowa, to najlepiej na prawdziwym sprzęcie, bo pod emulatorami to będzie rzeczywiście Ameryka
ilmenit, Twoj program zmian DLI jest daleki od ideału, więc nie dziw się że są przesunięcia linii
Ty rejestry ładujesz przed STA WSYNC, a powinieneś po, inaczej tracisz czas
Rejestry ładuję po STA WSYNC. Ameryki na nowo odkrywać nie chcę, ale to, co dla Ciebie jest oczywiste, dla mnie jeszcze czeka na naukę :)
Kombinuję z dodaniem do Quantizatora jak najlepszego podziału linii dla zmian rejestru koloru, ale z moich aktualnych prób wynika, że każdy emulator pokazuje to ciut inaczej.
A czy każda Atarka pokazuje to identycznie i mam zagwarantowaną pozycję plamki w stosunku do cykli procesora?
Nie obejdzie się bez prawdziwej Atarki, ale wygoda używania Altirry do debugowania jest bez porównania większa.
Strony 1
Zaloguj się lub zarejestruj by napisać odpowiedź
atari.area forum » Programowanie - 8 bit » Ilość zmian jednego rejestru koloru na jedną linię ?
Wygenerowano w 0.017 sekund, wykonano 62 zapytań