Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement 2D, 3D et Jeux Discussion :

Programmer un émulateur : simuler des instructions


Sujet :

Développement 2D, 3D et Jeux

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

    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
    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

    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
    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 !

###raw>template_hook.ano_emploi###