Les changements d'Atmosphere 0.13.0
exosphère, la réimplémentation du moniteur sécurisé d'atmosphère, a été complètement réécrite. exosphère a été le premier composant écrit pour le projet au début de 2018. Il est écrit en C, et dans un style très différent du reste du code d'atmosphère. Cela a rendu la base de code difficile à maintenir au fil du temps. exosphère a également été écrit pour se conformer à des contraintes et des hypothèses qui ne s'appliquent tout simplement plus lorsque le cfw n'est pas lancé depuis le navigateur web, et lorsque le warmboothax est possible. Au-delà de ces problèmes, exosphère a utilisé tout l'espace disponible, sauf 1KB sur les 64KB. Cela a posé un problème pour plusieurs raisons : Chaque nouvelle mise à jour du système nécessite un espace supplémentaire pour le support (pour ajouter de nouvelles clés et refléter les divers changements) ; le support 10.0.0 a utilisé 3 des 4KB qu'il nous restait. atmosphère voudra avoir un support logiciel pour le matériel mariko, et il n'est pas possible de le faire tenir dans 1 Ko. La réécriture d'exosphère (dont le nom de code était exosphère2 pendant le développement) résout ces problèmes. La nouvelle base de code est du C++20 écrit dans le style d'atmosphère. Cela résout le problème de la maintenabilité et devrait faciliter la compréhension du fonctionnement du moniteur sécurisé pour ceux qui souhaitent utiliser le code comme implémentation de référence. De plus, la nouvelle implémentation utilise actuellement ~59,5 des 64KB disponibles. Plusieurs modifications potentielles du code sont prévues, qui peuvent permettre d'économiser/accéder à ~2-3 Ko supplémentaires si nécessaire. Contrairement à la première base de code, la nouvelle exosphère a en fait déjà de l'espace alloué pour les futures clés/etc. Il est actuellement prévu que l'espace réservé ne sera jamais nécessaire. La mise en oeuvre précédente a choisi de ne pas se servir d'un certain nombre de fonctions de surveillance sécurisée "non importantes" en raison de problèmes d'espace. Le nouveau code dispose d'une marge de manoeuvre suffisante pour pouvoir les mettre utiliser sans soucis. Enfin, les bases du support de Mariko ont été posée, il n'y a que quelques changements mineurs nécessaires pour que la nouvelle implémentation de moniteur sécurisé fonctionne à la fois sur le matériel Erista et Mariko. Veuillez noter : exosphère n'est qu'un des nombreux composants, et beaucoup d'autres ont besoin de changements pour pouvoir fonctionner sur le matériel Mariko. Le support logiciel pour l'exécution sur le matériel Mariko avec puce TX est prévu pour l'été 2020, mais il faut également noter que ce n'est pas une date limite. Veuillez noter que le nouveau binaire exosphère n'est pas compatible avec l'ancien. Les utilisateurs qui démarrent en utilisant hekate doivent passer à la version 5.3.0 de hekate avant d'exécuter la version 0.13.0 (ou démarrer le fusee-primary via hekate). L'api d'atmosphère pour le firmware cible a été modifié. Toutes les versions de systèmes mineurs/micro sont maintenant reconnues, au lieu des seules versions majeures. Cela était nécessaire pour prendre en charge la version 5.1.0 du firmware, qui a apporté des modifications de rupture à certaines API de l'IPC qui ont entraîné l'abandon de la version 0.12.0 d'Atmosphère. Veuillez noter qu'il s'agit (inévitablement) d'un changement de rupture. Les modules système utilisant les atmosphères devront être mis à jour pour comprendre quelle version de firmware ils utilisent. emummc a été mis à jour pour inclure les nouveaux changements. emummc utilise maintenant un pilote SDMMC mis à jour/amélioré/plus rapide.
Téléchargement : Atmosphere v0.13.0
Emulation fixes: ARM: Fix timing on Thumb shift instructions GB: Fix GBC game registers after skipping BIOS GB MBC: Support 4MB MBC30 ROMs (fixes #1713) GB Video: Fix BGPS value after skipping BIOS (fixes #1717) GBA: Add missing RTC overrides for Legendz games GBA BIOS: Reset renderer when RegisterRamReset called (fixes #1756) GBA SIO: Fix Multiplayer busy bit GBA SIO: Fix double-unloading active driver GBA Timers: Fix deserializing count-up timers GBA Video: Fix mosaic objects drawing past the end (fixes #1702) GBA Video: Fix disabling OBJWIN in GL renderer (fixes #1759) GBA Video: Add missing parts of 256-color mode 0 mosaic (fixes #1701) GBA Video: Fix double-size OBJ wrapping in GL renderer (fixes #1712) GBA Video: Simplify sprite cycle counting (fixes #1279) GBA Video: Fix sprite/backdrop blending regression Other fixes: 3DS: Fix framelimiter on newer citro3d (fixes #1771) ARM: Fix disassembling of several S-type instructions (fixes #1778) ARM Debugger: Clear low bit on breakpoint addresses (fixes #1764) CMake: Always use devkitPro toolchain when applicable (fixes #1755) Core: Fix ELF loading regression (fixes #1669) Core: Fix crash modifying hash table entry (fixes #1673) GB Video: Fix some cases where SGB border doesn’t draw to multi-buffers GBA: Reject incorrectly sized BIOSes GBA: Break infinite loop for 0-frame mVLs (fixes #1723) Qt: Fix OpenGL 2.1 support (fixes #1678) Qt: Fix unmapping zipped ROM (fixes #1777) Misc: 3DS: Clean up legacy initialization (fixes #1768) GBA Serialize: Only flunk BIOS check if official BIOS was expected Qt: Disable Replace ROM option when no game loaded Qt: Defer texture updates until frame is drawn (fixes #1590) Qt: Set icon for Discord Rich Presence Qt: Show a warning when save file can’t be opened
Téléchargement : mGBA v0.8.2