Un gain de vitesse inattendu pour Daedalus
Il y a quatre jours StrmnNrmn postait une WIP fort importante sur son blog: il a trouvé un moyen de booster son émulateur et pas qu'un peu, mon neveu ! Nous en avions parlé dans le forum 'news en attente mais pas encore en 'officiel'. Chose réparée avec l'aide de zer et Nerao.
StrmnNrmn compte nous gratifier en avance d'une R8 pour son port de Daedalus sur PSP. Pour rappel, Daedalus est actuellement l'émulateur N64 le plus rapide pour PSP.
Depuis que StrmnNrmn c'est lancé dans le partage de Daedalus sur PSP, il n'a jamais cessé de l'améliorer en sortant plusieurs versions régulièrement.
La dernière en date, la R8, proposera une avancée significative dans les performances générales de l'émulateur. Après s'être documenté sur les forum, StrmnNrmn a réalisé qu'il pouvait grandement améliorer la vitesse de son émulateur de manière très simple. Il lui a suffit de remplacer une seule ligne (pour les experts, il a remplacé ceCtrlReadBufferPositive par sceCtrlPeekBufferPositive) pour constater un gain de vitesse non négligeable. Cette simple idée lui a été inspirée par PeterM qui à posté cette idée dans les forums de ps2dev.
Jugez plutôt (constats fait par StrmnNrmn) :
Mario tourne autour de 15fps dans la plupart des lieux et autour de 20fps dans les intérieurs ! (il ateind plus de 35fps dans le menu principal et près de 30 dans certaines scène.)
Zelda tourne autour de 8fps en jeu, et jusqu'à 20fps dans certains endrois.
Le logo 'nintendo' du démarrage tourne à plus de 90fps Very Happy
Le logo 'MarioKart' tourne maintenant à 30fps, et le menu principal (avec le drapeau) tourne à 15fps. En jeu, on constate un confortable 12fps.
Starfox tourne à 15fps - l'intro à 25-30fps.
Quest64 tourne à 20fps.
Voici donc une très importante avancée de cet émulateur, imprévue à l'origine, qui fait dire à StrmnNrmn qu'il vas sortir la R8 de Deadalus plus tôt que ce qui était prévus à l'origine. Courage StrmnNrmn, tu n'est vraiment plus très loin de l'émulateur parfaitement jouable !
Traduction, par Nerao, de la News originale postée le 16/08/2006 sur le blog de l'auteur:
Une des plus grandes récompenses dans la programmation est le fait de découvrir une amélioration ou une optimisation inattendue par accident. Vous pouvez passer des semaines soigneusement à travailler le code de votre homebrew et vous rendre compte qu'il existe une erreur flagrante que vous n'aviez jamais repéré. Un changement rapide et votre application est soudainement plus rapide.
Dans mon travail quotidien, je compte fortement sur des programmes de mise au point pour découvrir les problèmes de mon code, dans le fonctionnement de la Xbox, Microsoft ont fourni quelques excellents outils d'analyse d'exécution. De nos jours je tends à employer AQtime.
Sans ce genre d'outils, il est beaucoup plus dur de découvrir les erreurs pour la PSP. Au cours des derniers mois, j'ai utilisé toute sortes de profilers mais il y a une grande marge d'erreur, c'est pourquoi l'optimisation inattendue n'a été trouvée que maintenant.
Il y a deux jours j'était sur les forum de ps2dev lorsque j'ai trouvé ce post : http://forums.ps2dev.org/viewtopic.php?t=6372&sid=1bffe0ddbc238fc87170a01ce5b40810. Je regardais rapidement les messages, quand je suis tombé sur ce commentaire de Soatome :
PeterM wrote:
but one waits for the vblank
...and that's sceCtrlReadBufferPositive (which you're using)
you should use sceCtrlPeekBufferPositive instead.
Traduction française:
PeterM a écrit :
mais on attend le vblank
… et sceCtrlReadBufferPositive (que vous employez) vous devriez le remplacer par sceCtrlPeekBufferPositive.
Et voici le résultat:
Mario marche maintenant à 15fps* dans la plupart des endroits, et autour de 20fps à l'intérieur. (il atteint 35fps dans le menu principal, et de près de 30 dans quelques scènes).
Zelda fonctionne à environ 8fps dans le jeu, et jusqu'à 20fps dans certains endroits. Le logo de « nintendo » au début fonctionne à 90fps.
Le logo Nintendo de MarioKart fonctionne maintenant à 30fps, et le menu principal fonctionne à un 15fps. Dans le jeu c'est un 12fps confortable.
Starfox fonctionne à environ 15fps - l'introduction fonctionne à 25-30fps.
Quest64 à 20fps.
Puisque ce changement apporte une si grande amélioration, je vais essayer d'obtenir une autre amélioration car je n'aime pas mettre des mises à jour trop souvent. Il y a d'autres optimisations que je veux obtenir, et qui pourraient être prêtes ce week-end ou la semaine prochaine. Les nouveaux dispositifs que j'avais projetés pour cette mise à jour devront attendre jusqu'à R9.
*fps: les fps sont le nombre d'images affichées par seconde, un jeu n64 est à vitesse normale a partir de 25fps.
Commentez cette newsen cliquant ici
source : http://strmnnrmn.blogspot.com/
Pour commander chez Lik Sang, cliquez ci-dessous:
PSP-GEN ERAT
PSP-GENERATION