26

Odp: sprite multipleksing

mono napisał/a:

Dely - pamiętaj, że ce64 ma mapę kolorów i nie potrzbuje jej emulować za pomocą sprajtów.

Ale temat jest o duchach, a nie o mapie kolorów :P

Kaz napisał/a:

Poza tym, jak ktos Ci juz pisal - jest roznica miedzy pikselami 2x1 a 8x1.

Taaak? Nie zauważyłem wyobraź sobie.

Kaz napisał/a:

Wolalbym miec te pierwsze niz te drugie.

Każdy by wolał, ale rozwiązanie techniczne przyjęto takie, a nie inne.

Czy możecie wyjaśnić, Stirlitz, dlaczego wasz służbowy adres stirlitz@rsha.gov.de ma aliasa justas@gru.su?
Nie czytam PM. Proszę używać e-mail.

Odp: sprite multipleksing

dely napisał/a:

Taaak? Nie zauważyłem wyobraź sobie.

Zauwazylem, ze nie zauwazyles. Inaczej bys nie pisal rzeczy oczywistych.

Kaz/Rohar
Prowadzę stronę dla obłąkanych: http://atari.online.pl/

28

Odp: sprite multipleksing

Proszę uprzejmie nie robić ze mnie idioty.

Czy możecie wyjaśnić, Stirlitz, dlaczego wasz służbowy adres stirlitz@rsha.gov.de ma aliasa justas@gru.su?
Nie czytam PM. Proszę używać e-mail.

Odp: sprite multipleksing

dely napisał/a:

Proszę uprzejmie nie robić ze mnie idioty.

Jakby Ci to powiedziec - nie mam na to wplywu.

MM: Punkt 8 regulaminu.

Kaz/Rohar
Prowadzę stronę dla obłąkanych: http://atari.online.pl/

30

Odp: sprite multipleksing

z moich exp. wynika ,ze przy DLI wywolywanym nie od poczatku ale od srodka ekranu mozna powielic duszka nawet 6 krotnie(bez zmiany ksztaltu i zadnych innych operacji), badz 3 krotnie przy zmianie ksztaltu wszystkich trzech i koloru w przypadku 2( 2 duchy w DLI i 1 w petli programu)

31

Odp: sprite multipleksing

To jest już zupełnie wystarczające! Gorgoth, byłbyś w stanie coś takiego napisać tak, aby dało się połączyć z programem w basicu ? Pod kątem tego zagadnienia ?

___
Press play on tape...

32

Odp: sprite multipleksing

sprobuje cos jutro podrzucic

33

Odp: sprite multipleksing

a wiec:

 org $8000

 lda $100
 sta lp1+2
 lda $101
 sta pos1+1
 lda $102
 sta pam+2
 lda $103
 sta pos2+1
 lda $104
 sta pam2+2
 lda $105
 sta pos3
 lda $106
 sta kol1
 ldx $107     kolor 2.
 lda $d40b
 bne *-3
 ldy #0

lp1  lda $c000,y   strona pamieci z danymi dla ducha 1.1
     sta $d00d
pos1 lda #$50   $30-50 pozycja 1.1
     sta $d000
pam  lda $a500,y  strona pamieci z danymi dla ducha 1.2
     sta $d00d
pos2 lda #$94     $6c-94 pozycja 1.2
     sta $d000
kol1 lda #$83      kolor 1.
     sta $d012
pam2 lda $a400,y   strona z danymi dla ducha 1.3
     sta $d00d
pos3 lda #$ac    $ab-bc   pozycja 1.3
     sta $d000
     sta $d40a
     stx $d012
     iny
     bit $d40b
     bvc lp1
    jmp ($108)

w komorce 256 ($100) nalezy podac adres danych dla sprite`a 1.1

258 - sprite`a 1.2
260 -sprite`a  1.3
257- pozycja 1.1
259 pozycja 1.2
261- pozycja 1.3
262- kolor 1.
263- kolor 2.
264,5- mlodszy i starszy adres glownej procedury programu.
glowna procedura programu musi sie konczyc skokiem pod $8000, z tamtad program spowrotem powraca do adresu wskazanego w komorkach 264, 265.
Zarzucam kod maszynowy,sorki,ze w hexach,a nie w dzisietnych ale nie mialem jakos pomyslu jak to szybko przerobic:

ad 00 01 8d 36 80 ad 01 01 8d
 3b 80 ad 02 01 8d 41 80 ad 03 01 8d 46 80 ad 04
 01 8d 51 80 ad 05 01 8d 55 80 ad 06 01 8d 4a 80
 ae 07 01 ad 0b d4 d0 fb a0 00 b9 00 c0 8d 0d d0
 a9 50 8d 00 d0 b9 00 a5 8d 0d d0 a9 94 8d 00 d0
 a9 83 8d 12 d0 b9 00 a4 8d 0d d0 a9 ac 8d 00 d0
 8d 0a d4 8e 12 d0 c8 2c 0b d4 50 ce 6c 08 01
 A oto adresy do zmiany ustawien sprajtow w DLI:
komorka: 32822($8036) -numer strony pamieci sprajta 1.1
32827($803b) -pozycja sprajta 1.1 40 do 80($10-$50)
32833($8041)- numer strony pamieci sprajta 1.2
32838($8046)- pozycja sprajta 1.2 od 108 do 148($6c-$94)
32849($8051)- numer strony pamieci sprajta 1.3
32853($8055)- pozycja sprajta 1.3 od 171 do 204($ab-$cc)
32842($804a)- kolor 1
rejestr x-kolor 2
Programik wykonuje sie do polowy ramki, zeby reszta programu w Basicu miala czas, zeby sie wyrobic;
eby duszki pojawialy sie na calym ekranie a nie na polowie-$50 zamieniamy na $90

na dysku programik pokazujacy zakresy w jakich mozna umiescic duszki oraz kod w assemblerze z petla.

34

Odp: sprite multipleksing

dzięki Gorgoth, zobaczę, jak mi się to uda użyć :)

//EDIT: no i sprawę multiplexingu mamy z głowy, bo co więcej dodać ? :)

Ostatnio edytowany przez maw (2008-06-27 18:19:14)

___
Press play on tape...

35

Odp: sprite multipleksing

mala poprawka :

 
lda $105    trza zamienic na lda $105
 sta pos3                            sta pos3+1
 lda $106                            lda $106
 sta kol1                             sta kol1+1

a tu nowe hexy

36

Odp: sprite multipleksing

ok, jest relokowalna, tak ? pod kątem basica należy jeszcze zdjąć adres powrotu ze stosu, tak ? lub samemu dopisać przed tym procedurkę wrzucającą go pod 264, 265 ? ale to w sumie bez sensu, jak go będziemy mieli pod ręką na stosie...

//EDIT czy wystarczy też:

pla
pla
;
;procedura
;
rts

?

Ostatnio edytowany przez maw (2008-06-28 12:40:24)

___
Press play on tape...

37

Odp: sprite multipleksing

nie jest niestety relokowalna, ale jak procka jest wywolywana w ten sposob, to starczy skasowac jmp ($108) [6c 08 01] i wstawic rts [kodu nie pomne , w kawiarence jestem], dodatkowo jesli ci by bardziej pasowalo,1 czesc progu (do polecenia lda $d40b) nie jest konieczna, mozesz ja skasowac a dane wpisywac besposrednio w komorki na stronie $80.