message d'erreur lcdc.c : cycle x+1 is bigger than next cycle (x)

message d'erreur lcdc.c : cycle x+1 is bigger than next cycle (x)

by Niels Marco Lachat -
Number of replies: 3

Bonjour,

Serait-il possible d'avoir une explication par rapport au message d'erreur (titre du post) ? Je ne suis pas sûr de comprendre ce que ça veut dire dans le contexte de l'appel à lcdc_cycle.

Notre émulateur semble fonctionner partiellement (flappyboy est parfaitement jouable) mais sur le jeu tennis de Nintendo, le jeu se lance puis au bout d'un moment (après avoir commencé une partie), le jeu se fige et on a l'erreur :

lcdc.c:172:lcdc_cycle(): cycle 38701404 is bigger than next cycle (38701403)

L'erreur n'est pas toujours sur le même cycle, mais finit toujours par arriver.

Il y a également des bugs graphiques sur ce jeu (personnages à tête coupée par moments), mais je suis pas sûr que ce soit lié à la première erreur.

Merci d'avance

In reply to Niels Marco Lachat

Re: message d'erreur lcdc.c : cycle x+1 is bigger than next cycle (x)

by Jean-Cédric Chappelier -

cela signifie que le LCDC n'a pas vu passer le prochain cycle qu'il attendait : son next->cycle est à X et là on lui dit qu'on est déjà au cycle Y : si Y > X alors le LCDC est perdu car il attendait de voir passer le cycle X.

Ceci dit le cas Y = X + 1 est un cas très particulier, peut être lié au fait que vous commencez vos cycles à 0 au lieu de 1 ( cf. p.ex. https://moodlearchive.epfl.ch/2019-2020/mod/forum/discuss.php?d=37622#p77846)

In reply to Jean-Cédric Chappelier

Re: message d'erreur lcdc.c : cycle x+1 is bigger than next cycle (x)

by Niels Marco Lachat -

D'accord, merci pour l'explication.

Cependant, après plus de recherche, il s'est avéré que l'erreur est causée par le fait qu'à un moment donné (quand on perd un point dans le jeu Tennis), la taille des lignes d'image diffère, ce qui fait que bit_vector ne peut pas effectuer des opérations sur ces lignes. Et comme nous n'avons aucun moyen de savoir comment les fonctions de image.c sont appelées (gdb ne peut pas break comme la librairie n'as pas les informations de debug), est-ce que vous auriez une idée de ce qui peut causer ce bug?

Je joins les messages de debug que nous obtenons.

In reply to Niels Marco Lachat

Re: message d'erreur lcdc.c : cycle x+1 is bigger than next cycle (x)

by Jean-Cédric Chappelier -

aucune idée, non ; et pas le temps de regarder (je n'ai jamais testé Tenis, par ailleurs)