
Vous n'êtes pas identifié.
Pages: 1
Bon g edite ce post et supprime cette routine buggee a mort...
Hors ligne
les adresses sont dans le style nasm
genre [es:di+bx]
il faudra peut etre les mettre au style tasm pour turbo c:
genre es:[di+bx]
si il y a des problemes n'hesitez pas a le demander
Hors ligne
donne un exemple de sprite stp car je vois pas trop
Hors ligne
Et puis, c'est pour le mode CB c ça? Bon je vais tester[/code]
Hors ligne
t'as oublié un ", dl" dans la version C!
Sinon débug ça! J'arrive pas à afficher!
Hors ligne
mmmmmmmmmmmmmm....
pfou c trop complique...
bon je vais essayer de faire rapidos un tuto avec des images et ce que je peux faire chez ma famille d'accueil(sejour linguistique), parce que si il y a des bugs c que g que 30 minutes par jour sur internet (meme si je peux aller tant que je veux sur l'ordi) pour pas bloquer leur telephone, et ke g pas que graph100.com a aller voir...
mais bon g reussi download cdk et "g100 2eme ed." alors je v essayer...
attendez deux jours et vous aurez votre super tutorial avec des sources OK ???
merci...
Hors ligne
pour les images, predns BMP2C de moi car tu peut convertyir de sbmp en mode inline enfin bon voila, quoi sinon c pa pour la concurence mais g aussi fait une routine, tu peut t'en inspirer :
void sprite16(int x,int y, int nb){ //Merci a whyp pour la routine D3
int i;asm { mov bx,x
mov si,y
shl si,4
mov cl,bl
shr bl,3
and cl,7
add si,bx }
for(i=0;i<16;i++){
_BX=sprite16db[nb][0][15-i]; asm {
mov ch,cl // Sauve cl
mov dx,bx // Copie le sprite en 2
shl dh,cl // ! On deplace le sprite pour corespondre
shl dl,cl // ! (1er et 3eme byte)
mov al,8 // )
sub al,cl // ) Calcule du deplacement
mov cl,al // ) (2nd et 4eme byte)
shr bh,cl // ! On deplace le sprite pour correspondre
shr bl,cl // ! (2nd et 4eme byte)
mov al,bl // ) on fait le byte du milieu avec le 32eme et le 3eme byte
or al,dh // )
or es:[si],dl // On copie le 1er byte
inc si // On recule
or es:[si],al // On copie le byte du milieu
inc si // On recule
or es:[si],bh // On copie le 3eme byte
sub si,2
mov cl,ch } // On recupere CL
_BX=sprite16db[nb][1][15-i];
asm { // Pareil sauf certains points
mov ax,es // )
add ax,0x80 // ) On passe sur la 3eme couche
mov es,ax // )
mov ch,cl // Sauve cl
mov dx,bx // Copie le sprite en 2
shl dh,cl // ! On deplace le sprite pour corespondre
shl dl,cl // !
mov al,8 // )
sub al,cl // ) Calcule du deplacement
mov cl,al // ) (2nd et 4eme byte)
shr bh,cl // ! On deplace le sprite pour correspondre
shr bl,cl // ! (2nd et 4eme byte)
mov al,bl // ) on fait le byte du milieu avec le 32eme et le 3eme byte
or al,dh // )
or es:[si],dl // On copie le 1er byte
inc si // On recule
or es:[si],al // On copie le byte du milieu
inc si // On recule
or es:[si],bh // On copie le 3eme byte
mov cl,ch // On recupere CL
mov ax,es // )
sub ax,0x80 // ) On retourne a la 1ere couche
mov es,ax // )
add si,14 }}} // ! On passe a la ligne suivante
Voila toute debugée
Hors ligne
Je viens de m'apercevoir ke g fait une enorme faute...
Je ne suis pas du tout d'accord avec cet horrible melange de c et d'asm.
Libre a chacun de l'utiliser mais le fait d'utiliser du C comme ca avec l'asm ralentit beaucoup la routine, surtout avec le tableau et la boucle for
bon mes nerfs sont calmes je continue mon tuto, g deja ecris une grosse partie pour expliquer pourquoi il faut pas utiliser le C, avec du code sorti du compilateur comme exemple...
bon je l'enverrai dimanche soir heure locale... (lundi matin chez vous)
Hors ligne
yea merci mastermage!
Sinon SUperNa a fini de débug ses routines, et je vais aller les modif pour enlever la boucle avec for, ce sera mieux donc
Hors ligne
Ben voila, pour les nerf de mastermage, Une routine, efficace, rapide, facile et toute en ASM
Pas un brin de C !!
Voila, amusez-vous bien !!!
void sprite16(int x,int y, int nb){ //Merci a whyp pour la routine D3
asm { mov bx,x
mov si,y
shl si,4
mov cl,bl
shr bl,3
and cl,7
add si,bx
add si,240
mov ch,0 }
debut:
asm { mov di,offset sprite16db
mov ax,nb
shl ax,6
xor bx,bx
mov bl,ch
shl bx,1
add di,ax
add di,bx
mov dx,ds:[di]
add di,32
mov ax,ds:[di]
xor bx,bx
mov bl,dh
shl dx,cl
shl bx,cl
or es:[si],dx
add si,2
or es:[si],bh
add si,0x800
xor bx,bx
mov bl,ah
shl ax,cl
shl bx,cl
or es:[si],bh
sub si,2
or es:[si],ax
sub si,0x800
sub si,16
inc ch
cmp ch,16
jb debut }}Voila, pour info, je l'ai faite sans la tester sur la caltos, seulement avec un prog qui me sors un tab en fichier csp que je convertit en bmp et voila
Donc mastermage,plus d'excuses pour ne pas debugger !!
Hors ligne
Pour superna: g deja envoye mon tuto a casiomax, il le mettra surement sur son site web, et j'y ai mis des trucs pour 8pixels et 16 pixels, gere tout les modes video, masques, niveaux de gris, etc...
bon ce post sert plus a rien pour casiomax et si vous voulez le tuto demandez lui
Hors ligne
je sais mastermage, je met juste cette fonction car casioM@x s'en sert pour son jeu et donc je veut que tout le monde en profite, voila, c'est tout
Sinon j'ai vu le tuto, voilou
Hors ligne
J'ai sorti une nouvelle version corrigee y avait plein de fautes
http://www.mastermage3000.fr.st
Hors ligne
Pages: 1