commodore.gen.tr'da fazla c64 coderı olmadığı için onlara demo hakkında fikir vermek açısından aşağıdaki mesajı gönderdim. buraya da yolluyorum. mesajdaki 1,2,3 sırasıyla 9 sprite, 50 pixel genişletilmiş sprite ve 2 ekran koala + FLI sallama olayıdır.
------------------------------------------
şu ana kadar yapılan yorumlar+kişisel incelemem sonucunda vardığım sonuçlar.
1) 9 sprite'daki sağ borderda çıkan 9. sprite aslında bir alt satırda gösterilmesi gereken sprite'ın birkaç cycle geriden üst satırdan itibaren gösterilmeye başlamasıyla elde edilmiş diye tahmin ediliyor bazı CSDB userlarınca. Kısacası 9. sprite istenilen herhangi bir pozisyona değil, yalnızca sağ borderda belirli bir pozisyona konulabiliyor. Pozisyon olayına katılıyorum ama diğer "alt satırda olması gereken" lafından emin değilim. Aslında görünen o ki yalnızca $d010 switch edilerek 256 byte yana kaydırılarak trick gerçekleştirilmiş. Aslında kodu görünce şaşırdım. ınanılmaz derecede basit gözüküyor. Tek kıllandığım Crossbow'un yem atmak için eklediğini düşündüğüm $d03c, $d03d adresleri. Bu adresler DTV'de bir anlam ifade ediyor ancak c64'de "unused" olarak dökümante edilmişler. Ya dökümanlar yanlış, ya da Crossbow kafa karıştırmak için bu adresleri kullanmış. Tekrarlı satırlardan bir parça 9. sprite'ı göstermek için;
lda #$00
sta $d03c
lda #$00
sta $d03d
lda #$01
sta $d027
lda #$6f
sta $d000
lda #$c1
sta $d010
lda #$00
dec $d016
sta $d021
sty $d016
lda #$c0
sta $d010
lda #$3f
sta $d000
lda #$0a
sta $d027
2) X koordinatında 50 pixellik sprite elde etmek için ise gerçekten çok yaratıcı bir fikir kullanmış Crossbow. Spriteları hires/multicolor olarak belirli bölgelerde değiştiriyor ve bu arada spritelar bir yerde yana shift ediyorlar. Bu sayede de 50 pixele çıkıyor spritelar. Kod içersinde peş peşe tekrar eden şöyle bir parça var.
ldx #$10
stx $d018
lda #$01
sta $d01c
lda $52
sta $d01c
lda $50
sta $d01c
lda $50
sta $d01c
lda $50
sta $d01c
stx $d021
bu kod parçası 50 pixel olayını gerçekleştiren kod parçası
3) Bu trick beni çok etkilemediği için incelemedim. Çünkü line crunching çok bilindik bir olay. Buradaki asıl olay olan FLI graiğin sol 3 kolon bugını fixleme olayı da anladığım kadarıyla FLI showerda birkaç akıllıca değişiklikle bunu becermiş. Ama çok detay girmedim.