AccueilAccueil  -> Le site MSF  GalerieGalerie  RechercherRechercher  S'enregistrerS'enregistrer  ConnexionConnexion  ContactContact  

Partagez | 
 

 SMS_waitForVBlank() du devkitsms

Aller en bas 
AuteurMessage
Monos
Sonic (Sonic)
Sonic (Sonic)
avatar

Score : 106
Date d'inscription : 02/01/2018

MessageSujet: SMS_waitForVBlank() du devkitsms   Sam 6 Oct - 6:01

Plop, je ne sais pas trop ou placer la question qui peut intéressée d'autre gens mais je m'adresse particulièrement au personne qui programme en C sur la master system avec le devkitsms !

La question peu paraître contre mais a qu'elle moment on fout le SMS_waitForVBlank() ?

Dans ma boucle de jeu j'ai l'habitude de faire ce genre truc !

Code:
While(1)
{
  // (Tous ce qui se rapporte au calcule);
  SMS_waitForVBlank();
  // Affichage des graphismes;

}

Je ne sais pas si c'est la bonne idée !
Revenir en haut Aller en bas
ichigobankai
Alex Kidd (Alex Kidd)
Alex Kidd (Alex Kidd)
avatar

Score : 6575
Date d'inscription : 26/08/2009
Age : 39
Localisation : Near Angers ^^

MessageSujet: Re: SMS_waitForVBlank() du devkitsms   Sam 6 Oct - 8:52

c'est exactement comme ca (enfin de base ^^)

Dans la partie calcul, tout sauf les ecritures au VDP
-vblank-
ecritures dans le vdp

MAIS on peut aussi ecrire dans le VDP pendant la partie active de l'affichage, c'est juste un probleme de timing (et que c'est bcp plus lent == prend plus de temps)

En chose essentiel, c'est surtout qu'il faut connaître si ta charge pendant l'affichage actif ne dégueule pas sur le vblank et si la charge du vblank ne dépasse pas pendant l'affichage actif, car cela va avoir pour effet de ralentir le programme ou faire apparaitre des glitchs/corruptions graphiques.

Avec Vingazole on a notre propre lib SMS (full asm), mais le principe du devkit est similaire.

Tu peux ajouter ca dans ton code :

void set_border_color(unsigned char color){
__asm
      ld      hl,#2
      add     hl,sp
      ld      a,(hl)
      or      #0xF0
      out     (#0xBF),a
      ld      a,#0x87
      out     (#0xBF),a
      ret
__endasm;
}

ensuite en debut de code, tu mets
set_border_color(numero de couleur de la palette2);
//avant le vblank (cad apres ta derniere routine)
set_border_color(autre numero de couleur de la palette2);
/juste après le vblank
set_border_color(autre numero de couleur de la palette2);
//juste apres la derniere routine de ton code qui est dans le vblank
set_border_color(autre numero de couleur de la palette2);

Juste faire attention, ca ne prend en compte QUE les couleurs de la palette 2 (celle des sprites)

Tu peux aussi mettre
#define DEBUG 1 //a placer en haut du code

#ifdef DEBUG
#define BORDER(x) (set_border_color(x));
#else
#define BORDER(x)
#endif

pour appeler juste indiquer
BORDER(numero de couleur pal2)

pour que ce soit plus facile a activer/virer à la compilation (juste a masquer la ligne debug pour inhiber)

Cela te donnera quelque chose comme ca,
uniquement visible sous Emulicious et sur le vrai hard.


Dans ma capture, je sais que le "jaune" est ce qu'il me reste en temps d'affichage actif et le vert la taille des données dans le vblank (le temps de vblank max étant tout ce qui au dessus et au dessous du jeu; donc en l'état je n'en utilise que 50%)

Edit. Je ne l'ai pas indiqué mais dans ta boucle (pour un système à 60hz)
- 1 vblank = 60fps
- 2 vblank consécutifs = 30 fps
- 3 vblank consécutifs = 20 fps
...etc.
Revenir en haut Aller en bas
Monos
Sonic (Sonic)
Sonic (Sonic)
avatar

Score : 106
Date d'inscription : 02/01/2018

MessageSujet: Re: SMS_waitForVBlank() du devkitsms   Sam 6 Oct - 12:04

Merci ichigo, je vais tester ça. Upsilendre avait parlé de cette technique de couleur.
Revenir en haut Aller en bas
DrRotule
Admin
Admin
avatar

Score : 25786
Date d'inscription : 11/06/2009
Age : 38
Localisation : Lille

MessageSujet: Re: SMS_waitForVBlank() du devkitsms   Dim 7 Oct - 0:14

Ç est le meilleur titre de topic de l histoire du forum
Revenir en haut Aller en bas
http://www.mastersystem-france.com
ichigobankai
Alex Kidd (Alex Kidd)
Alex Kidd (Alex Kidd)
avatar

Score : 6575
Date d'inscription : 26/08/2009
Age : 39
Localisation : Near Angers ^^

MessageSujet: Re: SMS_waitForVBlank() du devkitsms   Dim 7 Oct - 7:37



Laughing
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: SMS_waitForVBlank() du devkitsms   

Revenir en haut Aller en bas
 
SMS_waitForVBlank() du devkitsms
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Master System France :: Communauté :: Questions-réponses-
Sauter vers: