Actualité
deadalus

[WIP] Daedalus R11: StrmnNrmn nous donne des nouvelles.

par
Source: regen

StrmnNrmn viens de mettre à jour son blog concernant Daedalus R11. Nous vous proposons une traduction intégrale de ce que StrmnNrmn a publié.

StrmnNrmn a donc dit, sur son Blog:

"Wow, ça faisait longtemps que je voulais fournir cette mise à jour. J'ai passé du bon temps en Espagne, et après être revenu, j'ai passé de bonne soirée sur Crackdown (jeu Xbox360). Cela m'a fait du bien de faire une petite pause pendant quelques jours.

Depuis, j'ai travaillé sur les diverses fonctions que j'avais promis pour la R11.

J'ai parlé un peu au sujet de la mise en tampons de textures, étant le coupable principal pour avaler la mémoire pendant l'émulation. Quand j'ai commencé à profiler ceci en détail, je me suis rendu compte qu'un des plus mauvais point pour la consommation de mémoire était le support des texture miroir de 4 ou de 8 bits sur la palette de textures. Il y avait réellement deux problèmes principaux qui aggravaient le problème.

Premièrement, je n'avais jamais pris en main une palette de texture directement dans Daedalus. Je veux dire, au lieu de convertir une palette de texture de la n64 sur une palette de texture sur la PSP, je l'ai convertit vers des textures 32-bit RGBA. Ce qui veux dire que sur la n64, 64x64 pixels avec une palette de texture de 4-bit prendra 2KiB. En convertissant vers des textures 32-bit RGBA, ça prendra 16KiB - la mémoire est utilisé 8 fois plus.

La deuxième soucis qui compliquait le problème était que la PSP ne supporte pas des textures miroirs. Afin de supporter cette fonction, j'ai du manuellement reproduire et faire la texture miroir. Ceci signifie qu'une texture 64x64 miroir le long des axes S et T sur le n64 deviendra une texture 128x128 sur la PSP.

 



Le problème principal que j'ai rencontré dû au manque de mémoire était à cause d'une lourde utilisation des palettes de texture miroir 4-bit dans certains jeux. Une palette de texture 64x64 4-bit qui prend 2KiB sur la n64 consommerait un énorme 64KiB sur la PSP - 32 fois l'augmentation ! Le problème était que certains jeux employaient des douzaines de telles textures dans une simple liste d'affichage, et la mémoire disponible était rapidement épuisée.

Ainsi, les couples de semaines où je travaillais à récrire les textures de Daedalus, était pour le support des palettes de texture 4-bit et de 8 bits directement. Ceci a pris beaucoup plus du temps que je pensais, en raison du nombre d'endroits dans le code qui doivent communiquer avec les données de texture directement. J'ai également passé une semaine en essayant de dépister deux bugs horribles (dont tous les deux se sont avérés être des erreurs de logique de ma part).

L'autre bonne nouvelle à propos de mon travail est que non seulement le support des palettes de texture économisait beaucoup de mémoire, mais également un petit bénéfice était visible au niveau des performances. Produire moins de données de texture signifie généralement un peu moins de travail pour le CPU (la mémoire cache est moins utilisée), ainsi convertir des palettes de texture se fait maintenant un peu plus rapidement. Les palettes de textures sont également beaucoup plus efficaces au rendu (la plupart du temps étant donné qu'ils consomment moins de bande passante du bus et peuvent faire une meilleure utilisation de la cache des textures de la PSP.)

L'autre grand gros morceau du travail est d'améliorer la manière dont je manipule les préférences pour chaque ROM. Un des grands problèmes avec l'installation actuelle de Daedalus est que le principal daedalus.ini se compose de détails à la rom spécifique (comme le nom de la rom, type de sauvegarde, commentaires, etc..) et des préférences définies par l'utilisateur (telle que la synchro de vitesse, désactiver le dynarec etc..). Ceci signifie que je ne peux pas mettre une nouvelle version de daedalus.ini sans éliminer les préférences locales des utilisateurs.

Ce que j'ai fait maintenant est de couper daedalus.ini en deux fichier : roms.ini contiendra les détails spécifique à chaque roms, et une version mise à jour sera distribuée avec chaque version de Daedalus à partir de maintenant. Si je sais que le dynarec empeche à certaine ROM de se lancer, je peux ajouter une correction pour ceci dans roms.ini, et chacun pourra en profiter dans la prochaine sortie. Un autre bon exemple est le SaveType ; chaque version de Super Mario 64 emploie 4k EEPROM, et ainsi une fois que ceci est configuré dans roms.ini, elle devrait ne jamais avoir besoin d'être modifié.

L'autre fichier que j'ai créé s'appelle preferences.ini. Ce fichier n'ira pas avec Daedalus - l'émulateur le créera la première fois que vous changez des paramètres en jouant à une rom, et les mettra à jour avec les changements que vous ferez dans le futur. Ceci signifie que quand vous copiez une version "fraiche" de Daedalus sur votre Memory Stick, la nouvelle version prendra votre fichier existant de preferences.ini et ainsi se rappellera de tous vos paramètres.

Les paramètres que Daedalus pourra garder en mémoire pour chaque rom sont :

Vérification des mises à jour des textures

Frameskip

Limiter les Framerates

Recompilation dynamique (utilisé pour remplacer les paramètres dans roms.ini si vous avez un soucis avec le dynarec)

Audio

Ajuster la Fréquence

Contrôleur

Dans les prochains mois, encore plus d'options seront configurables

Les autres paramètres qui seront stocké dans preferences.ini (que je n'ai pas codé) sont toute les options depuis la page "Paramètres Globaux" - comme la taille du viewport, montrer les zones mortes, choisir d'afficher le framerate ou non, etc...

Donc R11 s'annonce plutôt bien, même si cela prend un peu plus de temps que je ne l'avais prévu. J'ai encore quelques points sur lesquels travailler, mais j'essayerais de vous tenir au courant des avancées pour la prochaine version.

-StrmnNrmn "



Tout ceci s'annonce vraiment bien, comptez sur nous pour vous tenir au courant !
 

Source : http://strmnnrmn.blogspot.com/

Traduction par PSPgen
Reproduction autorisée uniquement avec citation de PSPgen et lien actif vers cet article.

 

Retrouvez les précédents articles récents sur ce sujet :
À quoi s'attendre pour Deadalus R11 ?
DAEDALUS R10 traduit en français
Daedalus R10 est là !



Commentez cette news en cliquant ICI

Mots-clés

Commenter 72 commentaires

Avatar de l’utilisateur
Tom Vivares
je pense que l'on va atteindre le fullspeed sans configurer le framskip!!
tres bon boulo, il devrai prendre plus de vacance pour ns sortir des truc comme sa tout le temps
merci pour la trad
Signaler Citer
Avatar de l’utilisateur
Tom Vivares
J'adore la phrase à la fin:
Traduction par PSPgen
Reproduction autorisée uniquement avec citation de PSPgen et lien actif vers cet article.

Surtout quand on voit que c'est une traduction automatique... Faudrait peut-être mettre le nom du moteur de traduction, ça éviterai de l'utiliser pour publier cette news sur d'autres sites.
Signaler Citer
Avatar de l’utilisateur
Eric de Brocart
Oli_s Wrote:J'adore la phrase à la fin:
Traduction par PSPgen
Reproduction autorisée uniquement avec citation de PSPgen et lien actif vers cet article.

Surtout quand on voit que c'est une traduction automatique... Faudrait peut-être mettre le nom du moteur de traduction, ça éviterai de l'utiliser pour publier cette news sur d'autres sites.


Zorro est de retour....
Signaler Citer
Tristyl
ah je suis impatient de voir ce quel va donner cette nouvelle version....

Oli_s Wrote:Surtout quand on voit que c'est une traduction automatique... Faudrait peut-être mettre le nom du moteur de traduction, ça éviterai de l'utiliser pour publier cette news sur d'autres sites.


Un moteur de traduction n'est pas capables de traduire aussi bien que pspgen ne l'a traduit, essaye donc avec google traducteur tu vera la difference...
Signaler Citer
Avatar de l’utilisateur
Tom Vivares
magiXien Wrote:
Oli_s Wrote:J'adore la phrase à la fin:
Traduction par PSPgen
Reproduction autorisée uniquement avec citation de PSPgen et lien actif vers cet article.

Surtout quand on voit que c'est une traduction automatique... Faudrait peut-être mettre le nom du moteur de traduction, ça éviterai de l'utiliser pour publier cette news sur d'autres sites.


Zorro est de retour....


bien dit et paf lol
Signaler Citer