Le développeur Zephyron continue de faire progresser le développement de Citron, l'émulateur Switch fonctionnant sous Windows, Android ou Linux.
La mise à jour 0.6 qu'il vient de dévoiler apporte des améliorations significatives au coeur d'émulation, en mettant l'accent sur l'optimisation Android, la gestion de la mémoire et le multijoueur. Cette mise à jour améliore considérablement la stabilité et les performances, tout en corrigeant les principaux problèmes de la version précédente.
Changements de cette version 0.6
Optimisation Android
- Refonte du système de construction des builds
- Mise à jour de Kotlin, Java, Gradle et NDK vers les dernières versions
- Optimisation de l'exécution du code natif ARM
- Amélioration des performances matérielles avec la mise à jour de BASE_CLOCK_RATE
- Meilleure compatibilité avec divers appareils Android
Gestion de la mémoire
- Amélioration de l'implémentation TLB
- Mise en place d'un système de cache TLB logiciel
- Ajout d'une gestion appropriée des erreurs dans l'exécution de code natif
- Amélioration des performances et de la stabilité d'accès à la mémoire
- Meilleure récupération d'erreurs dans les scénarios d'accès à la mémoire invité
Fonctionnalités multijoueur
- Implémentation initiale
- Ajout d'un support multijoueur de base sur Android (en développement)
- Mise en place d'un accès modérateur pour le propriétaire de la salle
- Selon les testeurs bêta et moi-même, les performances multijoueurs sont excellentes
- Fondation posée pour des fonctionnalités réseau étendues
- Améliorations du système de construction
Optimisation des performances
- Ajout du support de l'optimisation guidée par profil (PGO)
- Mise en œuvre d'optimisations spécifiques à la plateforme pour le compilateur
- Mise à jour des dépendances externes vers les dernières versions
- Amélioration des options de configuration de la construction
Améliorations techniques
- Graphismes et rendu
- Améliorations Vulkan
- Robustesse accrue de l'allocation mémoire avec une meilleure gestion de l'OOM (Out Of Memory)
- Support amélioré de l'alignement mémoire spécifique aux fournisseurs
- Mise en place d'une récupération mémoire pour les situations de faible mémoire
- Simplification de la gestion de l'alignement mémoire pour différents fournisseurs
Compilation des shaders
- Améliorations de l'étape de géométrie
- Implémentation de la recherche du nombre de sommets pour l'étape de géométrie
- Gestion appropriée des topologies d'entrée pour tous les backends de shaders
- Correction des étapes TessellationControl et TessellationEval
- Documentation du code améliorée pour une meilleure maintenabilité
Services système
- Améliorations de la sécurité
- Rendre le firmware obligatoire pour le lancement des titres
- Amélioration des procédures de validation du firmware
- Suppression de la fonctionnalité de génération automatique de clés pour une meilleure sécurité
- Amélioration du système de gestion des clés (les clés ne sont stockées qu'en mémoire)
- Conformité légale
Modifications de la documentation
- Suppression des références au guide de démarrage rapide pour répondre aux préoccupations légales
- Remplacement des popups d'erreur de chargement de ROM par des avertissements neutres
- Réduction de la responsabilité légale en évitant le contenu instructif spécifique
- Orientation des utilisateurs vers les ressources communautaires pour obtenir de l'aide
Compatibilité et performances :
Améliorations de la stabilité
- Prévention des crashes
- Désactivation de la présentation asynchrone en raison de problèmes de stabilité
- Gestion élégante des cas limites d'accès à la mémoire
- Ajout d'une journalisation de débogage complète pour les erreurs mémoire
- Plusieurs modifications problématiques annulées pour garantir la stabilité
Améliorations spécifiques à Android
- Compatibilité des appareils
- Ajout d'AnTuTu au système de vérification de licence
- Meilleur support pour les appareils avec GPU Adreno
- Implémentation TLB améliorée pour les appareils ARM
- Optimisation de l'utilisation de la mémoire pour les plateformes mobiles
- Paramètres par défaut
Améliorations de l'utilisabilité
- Activation par défaut de l'auto-stub pour les fonctions non implémentées
- Messages d'erreur améliorés pour le firmware manquant
- Processus de validation améliorés pour les exigences système
- Meilleur guidage de l'utilisateur pour les composants requis
Notes d'installation
- Une installation propre est recommandée pour des performances optimales
- Le firmware est désormais obligatoire pour le lancement des titres (non optionnel)
- Les fichiers de clés autogénérés ne sont plus créés
- Les utilisateurs Android doivent mettre à jour vers la dernière version pour les fonctionnalités multijoueurs
- Les données de sauvegarde précédentes restent compatibles