+ Répondre à la discussion Actualité déjà publiée
  1. #1
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    23 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : mai 2008
    Messages : 23 283
    Points : 165 230
    Points
    165 230
    Billets dans le blog
    26

    Par défaut Programmer un émulateur : simuler des instructions

    Bonjour à tous,

    Voici le quatrième tutoriel de la série sur la programmation d'un émulateur !
    Ce quatrième chapitre porte sur l'implémentation des instructions du Chip 8 dans le code. Pour cela, il faudra analyser l'opcode et agir sur la mémoire de manière adéquate.

    N'hésitez pas à surveiller le sommaire qui sera mis à jour au fur et à mesure.

    Bonne lecture.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  2. #2
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    août 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : août 2013
    Messages : 2
    Points : 2
    Points
    2

    Par défaut

    Bonjour et merci pour ce tuto très intéressant !

    Je rencontre un petit problème par contre... Dans le main je définis bien une boucle infinie pour effectuer la mise à jour de l'affichage, mais dès que j'appelle cette boucle mon code n'affiche plus la fenêtre...
    J'ai fait plusieurs test et le printf que j'ajoute dans la fonction update s'affiche correctement toute les 16 ms. D'où peut venir ce problème ?

    Merci d'avance et bonne continuation !

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    23 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : mai 2008
    Messages : 23 283
    Points : 165 230
    Points
    165 230
    Billets dans le blog
    26

    Par défaut

    Vous ne faites pas l'affichage ? Ou vous avez oubliez le SDL_Flip().
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    août 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : août 2013
    Messages : 2
    Points : 2
    Points
    2

    Par défaut

    Bonjour,

    J'ai finalement résolu mon problème en remplaçant le code du main par le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    int main(int argc, char *argv[])
    {
        initialiserSDL();
        initialiserEcran();
        initialiserPixel();
     
        Uint8 continuer = 1;
        do
        {
            updateEcran();
            SDL_Delay(FPS);
     
            SDL_PollEvent(&event);
     
            switch(event.type)
            {
                case SDL_QUIT:
                    continuer = 0;
                    break;
                case SDL_KEYDOWN:
                    continuer = 0;
                    break;
                default:
                    break;
            }
        } while (continuer == 1);
     
        return EXIT_SUCCESS;
    }
    Rien ne s'affichait en utilisant une deuxième boucle infinie, j'ai donc combiné les 2 et remplacé la fonction WaitEvent qui est bloquante par PollEvent qui ne l'est pas. J'ai vérifié en faisant clignoter l'écran et ça fonctionne bien, j'espère que ça ne posera pas de problème pour la suite.

    Merci pour votre réponse !

Discussions similaires

  1. Programmer un émulateur : exemples avec quelques instructions
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 11
    Dernier message: 01/06/2017, 22h17
  2. Simuler des clics dans un programme tiers
    Par bledfeet dans le forum Débuter
    Réponses: 1
    Dernier message: 02/06/2011, 13h43
  3. Réponses: 7
    Dernier message: 16/09/2009, 15h36
  4. Temps d'exécution des instructions FPU
    Par ubi dans le forum Assembleur
    Réponses: 2
    Dernier message: 24/10/2003, 18h39
  5. Mesurer le temps des instructions
    Par luckylucke dans le forum Assembleur
    Réponses: 9
    Dernier message: 03/09/2003, 21h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo