0 Utenti e 1 Visitatore stanno visualizzando questo topic.
;----------------------------------------------------------------; visualizzare un multisprite (editor di Poacher); iAN CooG/HokutoForce;----------------------------------------------------------------; Quel che sappiamo e' il formato dei dati:;; sprite datas: ¦color datas:; ¦; $3e00-$3e3e - spr#1 ¦ $3e3f - spr#1; $3e40-$3e7e - spr#2 ¦ $3e7f - spr#2; $3e80-$3ebe - spr#3 ¦ $3ebf - spr#3; $3ec0-$3efe - spr#4 ¦ $3eff - spr#4; $3f00-$3f3e - spr#5 ¦ $3f3f - spr#5; $3f40-$3f7e - spr#6 ¦ $3f7f - spr#6; $3f80-$3fbe - spr#7 ¦ $3fbf - spr#7; $3fc0-$3ffe - spr#8 ¦ $3fff - spr#8;; da cui si deduce che sono dati contigui e che; il 64esimo byte di ogni sprite contiene il colore; praticamente come in Spritepad;---------------------------------------------------------------- *=$0801 word eop word 7102 byte $9e,"2061",0eop word 0;----------------------------------------------------------------;schermo uniforme lda #$0e sta $d020 sta $d021 jsr $e544;attiva tutti gli sprites lda #$ff sta $D015 sta $D017;y-expand sta $D01d;x-expand;disposizione 4x2 ldy #0 sty $D010 lda #$50 sta $fbsetp2 lda $fb sta $d000,y sta $d008,y clc adc #$30 sta $fb lda #$6e sta $d001,y lda #$b4 sta $d009,y iny iny cpy #$08 bne setp2;setta i puntatori e i colori ldy #$07setptr lda sprptrs,y sta $07f8,y lda colorslo,y sta pat+1 lda colorshi,y sta pat+2pat lda $ffff sta $D027,y dey bpl setptr;attendi pressione spaziok1 lda $dc01 and #$10 bne k1;raggruppa gli sprites in un punto centrale ldx #$5fdec2 ldy #$0fdec1 lda $d000,y cmp #150 beq next bcs decit;se minore incrementa, se maggiore decrementa adc #1 byte $2cdecit sbc #1 sta $d000,ynext dey bpl dec1;attendi un frame dopo aver spostato 8 sprites lda $d012 bpl *-3 lda $d012 bmi *-3 dex bne dec2;esci pulendo il keybuffer e cursore nero lda #$00 sta $c6 jmp $e536;----------------------------------------------------------------sprptrs byte [spritedata+$0000]/$40 byte [spritedata+$0040]/$40 byte [spritedata+$0080]/$40 byte [spritedata+$00c0]/$40 byte [spritedata+$0100]/$40 byte [spritedata+$0140]/$40 byte [spritedata+$0180]/$40 byte [spritedata+$01c0]/$40colorslo byte <[spritedata+$003f] byte <[spritedata+$007f] byte <[spritedata+$00bf] byte <[spritedata+$00ff] byte <[spritedata+$013f] byte <[spritedata+$017f] byte <[spritedata+$01bf] byte <[spritedata+$01ff]colorshi byte >[spritedata+$003f] byte >[spritedata+$007f] byte >[spritedata+$00bf] byte >[spritedata+$00ff] byte >[spritedata+$013f] byte >[spritedata+$017f] byte >[spritedata+$01bf] byte >[spritedata+$01ff]eoc;----------------------------------------------------------------;allinea i dati al prossimo multiplo di 64 *=[[eoc/$40]+1]*$40spritedata incprg cepsanta.prg