Custom Firmware Atmosphère 0.7.4

La Team ReSwitched continue le développement de son fameux Custom Firmware « Atmosphère », qui est, rappelons-le, la base de tout hack, peu importe votre outil préféré (ReiNX, RajNX, etc.). Les changements de la précédente version étaient si anecdotiques qu’elle en était tout à fait dispensable, mais cette fois-ci, il y a du lourd à se mettre sous la dent, quand bien même ça touche principalement le moteur interne. Pour l’utilisateur lambda, ce qui se passe sous le capot ne l’intéresse pas forcément, mais ça améliore très sensiblement les performances (démarrage et comportement) et ça, on en redemande !

Au menu du jour, nous avons donc en entrée un module libstratosphere entièrement réécrit et isolé du reste de la bande pour assurer un gain de performance, de précision et de stabilité notable, tout en autorisant son incrustation aisée dans les projets amateurs. En plat de résistance, une extension du loader actuel améliore les redirections de contenus (laissant augurer de bien belles choses pour les hacks de jeux de type : traductions, modifications, améliorations, etc.). En dessert, le module fs.mitm a subi une petite cure de jouvence sur les fonctions de mise en cache et de redirections RomFS. Saupoudrez le tout de corrections de bugs divers et variés, et vous obtenez un millésime 0.7.4 très sympathique !

Modifications / Corrections :

  • libstratosphere a été complètement repensé/réécrit, isolé et séparé dans son propre sous-module.
    • Même si ça reste un changement invisible pour l’utilisateur, ce remaniement est plus rapide (amélioration à la fois du temps de démarrage et des performances), plus précis (la plupart des structures IPC internes sont désormais compatibles au bug près avec les implémentations de Nintendo), et significativement plus stable (cela corrige un certain nombre de bugs présents dans l’ancienne librairie).
    • L’API remaniée est significativement plus propre et facile à utiliser pour écrire des modules système, ce qui devrait améliorer/accélérer le développement de stratosphère.
    • Les développeurs qui cherchent à écrire leurs propres modules système pour la Switch peuvent désormais facilement intégrer libstratosphere en tant que sous-module dans leurs projets.
  • Le Loader a été etendu pour ajouter une manière générique de rediriger du contenu (ExternalContentSources), grâce à @misson20000 :
    • Une nouvelle commande a été ajoutée à ldr:shel, utilisant un TID pour rediriger et renvoyer l’identifiant de session.
    • Quand le nouveau TID est chargé, le Loader va demander l’identifiant comme s’il était un IFileSystem.
      • Ceci autorise aux clients de définir de manière générique leur propre système de fichiers, pour remplacer le contenu par celui contenu dans le loader.
  • fs.mitm a été optimisé pour améliorer ses performances et sa stabilité :
    • La redirection RomFS intervient désormais uniquement si du contenu doit être redirigé, même si le titre a été mitm’é ailleurs.
    • Un cache du stockage de données actif est désormais maintenu, le cas échéant, pour l’ensemble des ID des titres lancés.Ainsi, si deux processus tentent d’ouvrir la même archive, fs.mitm ne va dupliquer aucun de ses travaux.
    • Les metadonnées RomFS sont désormais mises en cache sur la SD à la compilation au lieu d’être en permanence en mémoire — ceci réduit grandement l’empreinte mémoire et autorise fs.mitm à rediriger plus de titres simultanément qu’auparavant.
  • Un certain nombre de bugs ont été corrigés, incluant :
    • Une fuite de ressources a été colmatée lors de la création du processus. Cela corrige des plantages qui pouvaient survenir quand un grand nombre de jeux (>32) avaient été lancés depuis le dernier redémarrage.
    • fs.mitm ne provoque plus d’erreur en recevant un buffer de taille nulle. Cela corrige les plantages dans certains jeux, notamment The Messenger.
    • La sémantique serveur multi-tâche ne devrait plus provoquer de freeze dans certains circonstances. Cela corrige les plantages dans certains jeux, notamment NES Classics.
    • PM ne donne des permissions d’accès FS qu’aux KIPs actifs. Cela corrige un potentiel plantage quand de nouveaux processus sont incapables d’être enregistrés avec FS.
  • make dist inclut désormais la branche dans le nom de l’archive zip générée.
  • Amélioration de la stabilité du système pour perfectionner l’expérience utilisateur.

 

 Atmosphère 0.7.4 / fusee-primary.bin (0.7.0)

 Sujet officiel / GitHub

Laisser un commentaire