EDIT: il manque les fichiers dans gfxs(y'a que les bmp,et sur GIT aussi) et snginit.c
// wait key released
while ( (tchpad & (sp_FIRE|sp_START)) != 0) { joyfunc(); vsync(1);
Normalement tu n'as pas à te soucier si le joueur a lâché le bouton, tu as la variable joytrg pour ça,contrairement à joy .
#define fade_out fade_palette_out( BG_PAL0, 4, SPR_PAL0, 2 , 1 ) , astucieux, mais chui pas certain que ça marche à tout les coup
EDIT2: j'ai réussi a compiler, mais la rom ne semble plus être la même que celle que tu m'as envoyée, j'ai une musique d'intro, et au lieu de passer de l'écran mojon twin à la vache, j'ai l'écran uwol press bouton.
EDIT3: je confirme c'est bien le redefine de fonctions qui merde .
J'ai supprimer le define fade_out,et utilisé cette fonction:
Code : Tout sélectionner
void fade_palette_out( unsigned int _bg_pal_deb, unsigned char _nb_bg_pals, unsigned int _spr_pal_deb, unsigned char _nb_spr_pals , unsigned char _speed )
{
bg_pal_deb = _bg_pal_deb;
nb_bg_pals = _nb_bg_pals;
spr_pal_deb = _spr_pal_deb;
nb_spr_pals = _nb_spr_pals;
speed = _speed;
#asm
lda #7
sta _fin_fade
.start_fade:
lda _nb_spr_pals
and #%0000_1111
sta _nb_spr_pals
lda _bg_pal_deb
sta $402 ; // Séléction de la palette dans le VCE
sta <__ax
lda _bg_pal_deb + 1
sta $403
sta <__ax + 1
lda _speed
jsr wait_vsync
; // Si nb_bg_pals = 0 on passe à celles des sprites
lda _nb_bg_pals
beq .init_spr_fade_pals
sta <__cl
.init_fade:
clx
.palette_fade:
ldy $404
tya ; // Récupère la composante BLEU 1
and #%0000_0111
beq .pas_dec_blue
dec A
.pas_dec_blue:
sta <__bl
tya
and #%0011_1000 ; // Récupère la composante ROUGE 1
beq .pas_dec_red
sec
sbc #8
.pas_dec_red:
sta <__bh
lda $405 ; // Lecture du bit 9 dans le VCE
lsr A ; // Mise du bit 9 dans la carry
tya
and #%1100_0000 ; // Récupère la composante VERTE 1
ror A ; // Récupération du bit 9 dans REG A
beq .end_fade
sec
sbc #32
asl A ; // Remise du bit 9 dans la carry
.end_fade: ; // Dans REG A on a déjà la val de _g
rol _pals + 1 , X ; // Récupération du bit 9 dans la palette provisoire
; // On reforme la couleur avec les 3 vals RVB
ora <__bl
ora <__bh
sta _pals , X
inx
inx
; // On teste si fin de palette X = 32
cpx #32
bne .palette_fade ; // 85 cycles max par boucle .
; // On met en place la palette courante
stw <__ax , $402 ; // Séléction de la palette dans le VCE
tia _pals , $404 , 32 ; // Copie la palette courante dans le VCE
addw #16 , <__ax
dec <__cl
bne .init_fade
.init_spr_fade_pals:
; // Gestion du fade des palettes des sprites
lda _nb_spr_pals
beq .pas_fade_spr_pals
bmi .pas_fade_spr_pals
sta <__cl
ora #128
sta _nb_spr_pals
lda _spr_pal_deb
sta $402 ; // Séléction de la palette dans le VCE
sta <__ax
lda _spr_pal_deb + 1
sta $403
sta <__ax + 1
jmp .init_fade ; // On relance le fade des pals des sprites
.pas_fade_spr_pals:
dec _fin_fade
lbne .start_fade
#endasm
}
fade_palette_out( BG_PAL0, 1, SPR_PAL0, 0 , 1 );
Tout est niquel du coup

