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 news en cliquant ici
source : http://strmnnrmn.blogspot.com/
Pour commander chez Lik Sang, cliquez ci-dessous:
PSP-GEN ERAT
PSP-GENERATION