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