37Fermer39
deephLe 05/02/2013 à 12:25
Cool smile

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 tongue

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 tsss

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 sad).

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 smile

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) smile