Czy to jest wykonalne? 
Bo spotkalem sie z roznymi opiniami. Chodzi mi o to czy HPOSP0 (pozycja pozioma Player0 - $D000) jest odczytywany przez GTIA raz na linie (przy DLI) czy czesciej? A moze to jest cien a jest jakis rejestr sprzetowy odczytywany na biezaco, jak w przypadku rejestrow odpowiedzialnych za kolory ducha?
Zrobilem eksperyment. Duch ma postac dwoch "buziek" - jednej pod drugą. 
Napisalem w Atalanie najprostszą mozliwą petle zmieniająca pozycje ducha z 90 na 100 i odwrotnie tak czesto jak sie da.
W asemblerze, po lekkich recznych korektach kod wyglada tak:
pozycja equ 130
player__x equ 53248
_lbl7:
;### int.atl(97)    if pozycja = 100 then pozycja = 50
   lda #100
   cmp pozycja
   jne _lbl5
   lda #50
   sta pozycja
;### int.atl(98)    else pozycja = 90
   jmp _lbl6
_lbl5:
   lda #90
   sta pozycja
_lbl6:
;### int.atl(99)    player(0).x = pozycja
   sta player__x
_lbl3:
   jmp _lbl7Zalaczam XEX i screen.
Sprawdzalem pod emulatorem robiac "stopklatke" i ani razu nie zaobserwowalem zeby ktorakolwiek z linii ducha byla narysowana podwojnie w pozycji 90 i 100 jednoczesnie. 
Wynikaloby z tego ze multiplikacja przez zmiane rejestru HPOSP0 nie jest mozliwa.
Kod jest na tyle krotki ze moim zdaniem powinien wykonac sie z powodzeniem kilka razy w ciagu jednej linii (byc moze zreszta tak sie dzieje i dlatego przeplot nie jest dokladny tylko nieraz rysuja sie dwie kolejne linie w jednej pozycji bo pozycja zmienia sie z 90 na 100 i znow na 90 zanim rejestr zostanie odczytany).
Dziwi mnie troche zachowanie emulatora Atari (Atari800Win 4.0 beta 7). Odpalcie i poczekajcie okolo 10 sekund - mruganie duszkow nagle zwalnia do jednego przeskoku co pare sekund. O_o Ale to chyba jakis blad emulatora po prostu...






