Cool

Mais je ne sais pas pourquoi ça bug sur VTI et WabbitEmu (d'ailleurs sur ton screen certains pixels s'allument au hasard, non ?), je vais regarder ça

Autrement j'ai mis à jour ion.inc :
#ifdef TI83
#define bcall(romcall) call romcall\ di
#define bcallz(romcall) call z,romcall\ di
#define bcallnz(romcall) call nz,romcall\ di
#define bcallc(romcall) call c,romcall\ di
#define bcallnc(romcall) call nc,romcall\ di
#endif
#ifdef TI83P
#define bcall(romcall) rst 28h\ .dw romcall\ di
#define bcallz(romcall) jr nz,$+5 \ rst 28h \ .dw romcall\ di
#define bcallnz(romcall) jr z,$+5 \ rst 28h \ .dw romcall\ di
#define bcallc(romcall) jr nc,$+5 \ rst 28h \ .dw romcall\ di
#define bcallnc(romcall) jr c,$+5 \ rst 28h \ .dw romcall\ di
#endif
Parce que je veux être tranquille avec les interruptions quand je testerai le link mais aussi parce que certaines routines utilisent les registres "shadow" (dont la tienne pour le rectangle, mais je compte les utiliser aussi plus tard). Par contre ça m'a rajouté 90 octets

Donc je me demande s'il ne vaudrait mieux pas que je liste les rom calls qui rallument effectivement les interruptions...
Autrement j'ai mis à jour engine.inc mais l'animation du personnage bug, du coup j'ai modifié quelques trucs :draw_map:
call gbaRestoreMap
player_direction = $+1
ld hl,0 ;contient l'adresse du sprite selon la direction du joueur
ld a,(walk_anim)
sla a ;a*8
add a,a ;a*2
ld d,b ;b est à 0 après gbaRestoreMap
ld e,a
add hl,de
ld bc,(player_y)
ld de,$0108
call gbaClipSprite
call gbaDrawMaskSprite
jp ionFastCopy
inc_walk_count:
walk_count = $+1
ld a,0
inc a
ld (walk_count),a
cp walk_frequency
ret nz
xor a
ld (walk_count),a
walk_anim = $+1
ld a,0
inc a
cp 3
ret z
ld (walk_anim),a
ret
Mais ça ne marche toujours plus (la multiplication par 16 devrait fonctionner pourtant
).Ah et sinon la routine "battle_menu_valid_second_line" doit être placée avant "battle_menu_run", sinon ça bug (j'avais oublié de la replacer).
edit : bon maintenant ça marche avec 4 'add a,a' à la place de 'sla a \ add a,a', et le saut des "falaises" aussi... Je vais faire l'animation gauche/droite aussi
edit2 : voilà :
event_down_cliff:
ld hl,(player_direction)
ld de,player_down
ld bc,walk_down_no_collision
ld (event_jump_cliff_direction),bc
jr event_jump_cliff
event_right_cliff:
ld hl,(player_direction)
ld de,(player_right) ; l'adresse est relative au sexe du joueur
ld bc,walk_right_no_collision
ld (event_jump_cliff_direction),bc
jr event_jump_cliff
event_left_cliff:
ld hl,(player_direction)
ld de,(player_left) ; idem
ld bc,walk_left_no_collision
ld (event_jump_cliff_direction),bc
event_jump_cliff:
call cp_hl_de
ret nz
ld hl,player_y
dec (hl)
dec (hl)
dec (hl)
push hl
event_jump_cliff_direction = $+1
ld hl,0
call jp_hl
pop hl
inc (hl)
push hl
ld hl,(event_jump_cliff_direction)
call jp_hl
pop hl
inc (hl)
inc (hl)
ret
edit3 : bon bah Contra tu m'a convaincu, j'ai créé un compte google code :
http://code.google.com/p/pokemon-monochrome/Ceux qui veulent contribuer au projet (en modifiant le code source), je peux vous ajouter comme membre (chickendude > c'est déjà fait normalement)
