Satanée compatibilité !

 

    

    Un cours billet ce soir, écrit d'une main tant que mon chat me prends mon bras gauche pour son hamac !
Petit jeu, devinez pourquoi j'ai choisi cette couverture de film ?

Une idée ?

Et bien, dans ce film, on apprends que la réponse à tous les mystères de l'univers c'est 42 ! Or le CPC 464 vient de fêter ses 42 ans ! Et c'est de ce dernier dont je voulais parler !

    Quand j'ai lancé le projet Felgon, je voulais que le jeu fonctionne certes sur disquettes, mais qu'il fonctionne quand même sur un 464 équipé d'un lecteur. Je me suis donc astreint à ne pas utiliser d'instructions propres au Basic 1.1. J'ai aussi fait le choix de ne pas utiliser les 64k supplémentaires du 6128. Donc j'espérais avec ça, obtenir un jeu directement compatible sur le CPC 464 !

        Mais quelle ne fut pas ma déception, quand au moment de tester celà, je constate que le jeu plante dès le premier écran. J'audite alors mon code, et je constate qu'effectivement, il y avait un passage dans mon code, qui était dirons nous, d'une logique scabreuse ! C'était même à se demander comment ça avait pu fonctionner correctement sur le Basic 1.1 ! Qu'à cela ne tienne, je corrige, je lance le jeu sur 6128, le jeu fonctionne bien. Je le lance sur 464, et là, quelque chose ne tourne pas rond. Le jeu rame beaucoup plus que sur 6128 ! Je teste avec toutes les peines du monde, et pire que tout, bien plus tard dans le jeu, j'obtiens un message d'erreur incompréhensible ! Une variable contenant normalement le nom du fichier à charger, contenait une valeur totalement incohérente. J'ai essayé différentes optimisations qui n'avaient pas été nécessaires sur CPC 6128. Mais rien n'y fait, le jeu rame toujours autant, et il plante au même endroit ! 

        Je n'ai plus vraiment de pistes pour le moment, le fichier de données chargée à ce moment là, n'est pas très gros, mais le suivant l'est. Il est possible que ça vienne de là pour le message d'erreur. Par contre ça n'explique pas les lenteurs. J'ai fait des benchs sur les instructions que j'utilise le plus dans le moteur et j'ai pu constater que l'une d'elles fre("") que j'utilise pour nettoyer la mémoire régulièrement, est 10% plus lente sur 464. Mais ces 10% ou les 7% sur une autre instruction n'explique pas cette différence de performances ! J'ai la nette impression que la gestion de la pile d'appel est nettement meilleure sur CPC 6128, mais ça non plus, ça ne devrait pas expliquer la différence ! 

        Bref, ce CPC de 42 ans, conserve encore des mystères !



        

Commentaires

Posts les plus consultés de ce blog

Vive la diversité !

Back to Basic !