Vous n'êtes pas identifié.
Voila on connait assez bien le page flipping en mode C3 pour faire facilement du double buffering
(pour ceux qui aiment pas l'anglais ou qui ont un trou de mémoire je copie l'explication que 2072 a redonnée tantôt:
le page flipping ça consiste simplement à ne pas copier le contenue de l'écran dans un autre buffer, c'est à dire que tu changes juste l'addresse de la mémoire vidéo.
Le page flipping est impossible sur g100 lorsqu'on utilise printf par exemple car on ne peu pas redireger la sortie vidéo vers un autre buffer...
Mais puisque les fontes perso se sont généralisées maintenant ça ne pose plus de problème. Il suffit de faire des fonctions graphiques qui écrivent vers une addresse vidéo qu'on peut choisir.
Le principe est simple: pendant que tu écris dans un buffer tu montre l'autre une fois que t'as terminé d'écrire tu "flip"les buffer : tu montres celui dans lequel tu écrivais et tu écris dans celui que tu montrais...
); mais en mode DB, comment fait-on pour désigner quelles sont les pages que les interruptions video vont utiliser pour raffraichir l'écran?
Hors ligne
bah soit tu modif l'int 53 par un movevideo maison !! (cf ma routine d'effaçage d'écran faite sur la base des routines de tonton1664) Soit bin tu fais un movevideo manuellement, à la xth
Hors ligne
Lol comme d'hab j'ai posé la question avant de faire mes tests... :oops:
J'ai essayé sur sonic d'inverser l'écran et les buffers, donc de dessiner dans l'"écran" (segment 0x1A20) et d'afficher dans les buffers (0x1A60 et 0x1AE0 dans sonic), et ca marche impec
il suffit de faire un setpage(1) avec la vieille fonction de Libthium:
void setpage(short page){ asm{ mov ax,page shl ax,6 add ax,0x1A20 xor dx,dx shl ax,1 rcl dx,1 shl ax,1 rcl dx,1 shl ax,1 rcl dx,1 shl ax,1 rcl dx,1 out 0x05,ax mov al,dl out 0x07,al } }
Donc en gros ca fonctionne exactement comme pour le C3... C génial ça, ca supprime la nécessité de copier les 2 buffers d'une page à l'autre à chaque frame... lol je sens que j'ai de l'opti à faire moi :mrgreen:
Hors ligne
"bah soit tu modif l'int 53 par un movevideo maison !! (cf ma routine d'effaçage d'écran faite sur la base des routines de tonton1664) Soit bin tu fais un movevideo manuellement, à la xth "
ta fumé koi toi, lol utilisé l' int53 ça sert strictement a rien, faut avoir fini de dessiner avant mdr
Hors ligne
Bon j'ai essayé d'adapter ca pour sonic... Et ca clignote à mort
je sais pas si c moi qui ai laissé une connerie qq part (mais j'ai passé du temps a vérifier pourtant), mais c pas comme qd on dessine directement sur l'écran ou on peut voir les différents éléments apparaitre l'un apres l'autre; je pense plutot que la calto fait un "flash" a chaque fois qu'on change la page, qq soit le contenu des buffers et ce qui à l'écran à ce moment...
Enfin je suis pas sur, parce qu'alors en tte logique je devrais voir tout l'écran "flasher" entierement, or je vois l'arrière-plan en transparence à certains endroits et ca c pas normal. Mais bon je n'ai pas vu de gain énorme au niveau de la vitesse, je laisse donc ca sur le coté en attendant que d'autres se penchent sur cette technique :P
Hors ligne
t'as dû te planter qq part, essaye en aveugle avec TOUCHE, tu te mets en DB et tu vas dans le menu F.
Hors ligne
oui je viens d'essayer avec touche en aveugle et ça ne clignote pas du tout...
Hors ligne
Bon ben je reprendrai ca une autre fois alors...
Hors ligne
si tu la mis sur interruption c'est normal alors lol
sinon... il me semble que un programme utilise cette technique mais me souvient plus de son nom...
Hors ligne