GAMOPAT
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

[SGDK] Màj de sprites

2 participants

Aller en bas

[SGDK] Màj de sprites Empty [SGDK] Màj de sprites

Message par Tryphon Jeu 24 Mai 2018 - 17:28

J'ai un léger problème de mise jour de sprites hardware avec mon code : j'ai l'impression qu'il y a une frame de décalage entre la mise jour des tiles et celle des sprites.

Je n'utilise pas le SpriteEngine, juste les VDPSprites.

Si je déroule ma boucle principale (et que je vire tous les mécanismes de flags), ça donne ça :

Code:
VDP_setSpriteFull(...);
VDP_loadTileData(..., DMA);
VDP_updateSprites(..., TRUE);
VDP_waitVBlank();

Il semble que les tiles soient chargées une frame avant la maj de la SpriteTable.

Je précise qu'il n'y a, a priori, aucune VInt ratée (d'après Gens-r57shell qui affiche un compteur de frames ratées).

Que fais-je faux ? Est-ce que j'interprèterais mal les flags DMA et TRUE ?
Tryphon
Tryphon
Docteur *
Docteur *

Masculin Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

[SGDK] Màj de sprites Empty Re: [SGDK] Màj de sprites

Message par Tryphon Jeu 24 Mai 2018 - 22:19

C'est bon !

En effet, j'ai confondu DMA et DMA_QUEUE pour le VDP_loadTileData. DMA doit exécuter immédiatement le VDP_loadTileData alors que DMA_QUEUE doit le mettre en cache et l'exécuter au VBlank.
Tryphon
Tryphon
Docteur *
Docteur *

Masculin Nombre de messages : 26166
Age : 47
Localisation : Un peu plus à l'Ouest
Date d'inscription : 23/07/2016

Revenir en haut Aller en bas

[SGDK] Màj de sprites Empty Re: [SGDK] Màj de sprites

Message par Stef Jeu 24 Mai 2018 - 23:11

Je vois seulement ton message, oui c'est bien ça, le DMA queue envoie à la prochaine V-Int (VBlank) :)
Stef
Stef
Interne
Interne

Masculin Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 04/04/2007

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum