Gamoover

Besoin de contacter un admin pour une proposition, une suggestion ou discuter d'un probleme ?
C'est ici : High_Cobra, AsPiC ou Pich

Mame progammation : gestion de credits C++

Démarré par Dr_Lagaffe, Mercredi 21 Septembre 2011, 09:50:15 AM

argonlefou

Salut,
En effet, je n'avais pas testé le programme à répétition et il y a un bug de ce genre.

En faisant quelques tests (malheureusement pas sous MAME car j'ai supprimé le MAME recompilé DirectInput), le soucis vient de la boucle "for {}" dans laquelle les répétitions sont envoyées.

Si je fais 1 ou deux itérations, ça semble fonctionner à l'infini
Avec 3 itérations, le caractère de base apparait en plus des 3 itérations et après 11 fois = bug
Avec 4 itérations, le caractère de base apparait en plus des 4 itérations et après 6 fois = bug
Avec 5 itérations, idem au dessus
Etc...

Maintenant si je supprime les deux temporisations de 50ms (System.Threading.Thread.Sleep(50)) au sein de la boucle, ça fonctionne ad vitam quelque soit le nombre d'itérations (1,2,6,10,20, etc..)

Le soucis vient donc de cette temporisation (dont la valeur je l'avoue a été choisie purement au hazard) rajoutée car sinon MAME chez moi ne captait pas toutes les touches envoyées (trop rapide pour lui ?)
Passé un certain nombre d'itération, il doit y avoir un conflit avec un temps total temporisé trop important (et le SupressKeyPress à l'air de ne pas être pris en compte, la fonction n'a pas le temps de se finir)

Je dirais donc qu'il "suffit" de faire des tests propres à ta machine afin de réduire au maximum cette temporisation, tout en laissant suffisemment de temps à MAME de capter toute la séquence (peut-être que 5 ou 10ms suffisent, je n'avais pas testé).
Bien entendu, plus tu enverras de touches à la suite et plus la tempo devra être basse.

Dr_Lagaffe

Jolie analyse ca me semble logique.
Je testerai ca !
Merci ! <:)
Je sers la science et c'est ma joie