1

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...

2

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

3

Bober napisał/a:

jeden cykl procesora (to o ile dobrze pamietam) jeden pixel w gr.15.

Dwa.

4

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

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

5 Ostatnio edytowany przez maw (2009-06-11 19:29:52)

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...

___
Press play on tape...

6 Ostatnio edytowany przez Marek Konopka (2009-06-11 19:38:10)

maw napisał/a:

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.

maw napisał/a:

//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ę.

7

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-

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

8

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

___
Press play on tape...

9

chcesz program rastra stworzyc zmieniający jeden rejestr koloru? można

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

10

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)

11

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

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

12

tebe napisał/a:

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.