Actualité
daedaluskz0

Un gain de vitesse inattendu pour Daedalus

par
Source: magixien

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:


lik-Sang

Pour acheter moins cher:

PSP-GEN ERAT


lik-Sang

PSP-GENERATION


Mots-clés

Commenter 14 commentaires

geonaldo
merci de la petite note a la fin, je me demandais justement combien de FPS il fallait pour que le jeu tourne a vitesse normal.
on voit donc ici qu'on en est plus tres loin du tout.
excellent travail et merci à PeterM.

PS: sur N64 les jeux tournent à 25 FPS où plus?
Signaler Citer
Nerao
-underground- a écrit:merci de la petite note a la fin, je me demandais justement combien de FPS il fallait pour que le jeu tourne a vitesse normal.
on voit donc ici qu'on en est plus tres loin du tout.
excellent travail et merci à PeterM.

PS: sur N64 les jeux tournent à 25 FPS où plus?


Cela depend des endroit dans les jeux mais sinon oui il me semble que le jeux vont a un minimum de 25 fps car c'est a partir de cette limite que on a une bonne fluidité et une bonne vitesse.
Signaler Citer
gign
25 FPS je pense...Pas besoin de plus pour que le jeux soit fluide

Les films tournent bien a 24, qq fps (7 je croit) donc l'emulateur n'est

plus tres loin de la bonne vitesse.Encore un petit effort lol

Merci pour cet exellent travail en tout cas

PS: Apres une petite recherche , les 1er films avaient 16 fps et

aujourd'hui ils sont en 24 fps voila :wink: Je ne m'était (presque) pas

trompé
Signaler Citer
Nerao
gign a écrit:25 FPS je pense...Pas besoin de plus pour que le jeux soit fluide

Les films tournent bien a 24, qq fps (7 je croit) donc l'emulateur n'est

plus tres loin de la bonne vitesse.Encore un petit effort lol

Merci pour cet exellent travail en tout cas


j'vais peut etre dire une betise mais il me semble que 24 images par seconde c'est le maximum que l'oeil humain peut "comprendre".
Signaler Citer
Hiwyx
Nerao a écrit:
gign a écrit:25 FPS je pense...Pas besoin de plus pour que le jeux soit fluide

Les films tournent bien a 24, qq fps (7 je croit) donc l'emulateur n'est

plus tres loin de la bonne vitesse.Encore un petit effort lol

Merci pour cet exellent travail en tout cas


j'vais peut etre dire une betise mais il me semble que 24 images par seconde c'est le maximum que l'oeil humain peut "comprendre".


tout à fait l'oeil ne peut voir que 24 images par seconde, au delà c'est du luxe, mais certaines scène font déscendre en flêche ce chiffre, c'est pour ça que l'on essaie de monter plus haut.
Signaler Citer
EaGle59
tout à fait l'oeil ne peut voir que 24 images par seconde que l'on essaie de monter plus haut.


Pas tout à fait, voici un article pour mieux comprendre:
-http://www.nofrag.com/2003/nov/24/8629/

a+
Signaler Citer
Avatar de l’utilisateur
Timale-Kun
Une version non-officiel de Tinnus est sortie il ya peu, on mentionne quecette version serai plus rapide, et qu'il y est moins de variations en ce qui la concerne. genre tant de fps ici, et pas la même chose à un autre endroit^^
Signaler Citer
Tractor
J'espère au moins que StrmnNrmn a été mis au courant.

Il y a pas grand chose de plus frustrant que de se faire voler "Sa" release par un copieur en herbe. Par le passé, j'ai vu des développements s'arrêter pour moins que ça.
Signaler Citer