|
Changelog 5.0.1 :
FTP : Nouveautés - Corrigé : le serveur FTP bénéficie d'une nouvelle implémentation. L'ancien noyau a été supprimé et remplacé par le dernier code source issu du ftpd de mtheall, qui a été adapté pour s'intégrer correctement à Checkpoint. - Corrigé : les transferts sur 3DS sont environ 4 fois plus rapides en envoi et 2 fois plus rapides en téléchargement. Le goulot d’étranglement était dû aux appels de sockets synchrones qui bloquaient le thread de transfert ; la console effectue désormais simultanément les opérations sur le disque et sur le réseau, au lieu d’alterner entre les deux. - Vous remarquerez que l’interface utilisateur est un peu moins réactive sur la 3DS lorsque des transferts FTP sont en cours : ceci est tout à fait normal. - Corrigé : le serveur Switch n’épuise plus les tampons de sockets du système lors d’un téléchargement de dossier, ce qui l’empêchait d’accepter de nouvelles connexions de données jusqu’à l’expiration du délai. - Corrigé : la désactivation du FTP dans les paramètres ferme désormais le socket d’écoute et met fin aux sessions, au lieu de laisser le port ouvert.
Scripting : Nouveautés - Ajout : « browser », un explorateur de fichiers pour la carte SD et pour l'archive de sauvegardes en cours d'un titre. - Il prend en charge les opérations suivantes : copier, déplacer, renommer, supprimer, créer des dossiers, lire les propriétés, compresser et décompresser, un élément à la fois ou par lots. - C'est un moyen pratique d'accéder à une sauvegarde sans passer par un PC : extraire un fichier d'une archive vers la carte, y replacer un fichier modifié, ou déplacer un dossier entre deux titres. - Ajout : extdata (3DS), pour créer l'archive extdata qu'un titre n'a jamais générée (#576). - Ce script résout un problème lié à l’utilisation d’extdata par des mods pour un titre qui n’en crée jamais. Le script permet de créer artificiellement une nouvelle archive extdata pour ce titre. - Il inspecte également tout identifiant extdata, y compris ceux créés par un mod sous un identifiant que Checkpoint ne dérive pas de l’identifiant du titre, et supprime une archive lorsque vous le souhaitez. - Ajout : nouveaux appels API, tous documentés dans scripts/README.md. sav_mkdir, sav_rmdir et sav_rename : les scripts peuvent désormais modeler la structure des dossiers à l’intérieur d’une archive de sauvegarde, et non plus se contenter de lire et d’écrire des fichiers dans celle-ci. sav_open_extdata, pour ouvrir une archive extdata par titre à l’aide de son identifiant brut. extdata_default_id, extdata_create et extdata_delete (3DS ; elles renvoient -1 sur Switch). extdata_create refuse de modifier une archive qui existe déjà, de sorte qu’un identifiant mal saisi ne peut pas effacer une sauvegarde. - Corrigé : le catalogue de titres 3DS transmis aux scripts contient désormais également les titres qui apparaissent uniquement dans la liste Extdata. - Corrigé : strdup alloue de la mémoire sur le même tas à portée d’exécution que malloc ; ainsi, free() la libère et une exécution interrompue la récupère.
Transfert sans fil : Nouveautés - Ajout : un code PIN de réception fixe, dans Paramètres > Réseau (3DS) / Connectivité (Switch). - Par défaut, le code PIN reste aléatoire à chaque réception. Un code PIN 1 et une commande chlink send --pin 1234 intégrée à un script continuent de fonctionner à chaque exécution, ce qui permet d’effectuer des transferts par lots sans surveillance depuis le PC. - Corrigé : échec de la commande `chlink send` avec le message « Le destinataire a rejeté le code PIN (403) : jeton non valide » (#561). Go normalise les noms d’en-têtes avant de les écrire, ce qui fait que la recherche sensible à la casse de la console ne trouvait jamais l’en-tête du jeton et rejetait chaque transfert. - Corrigé : une sauvegarde reçue d’un expéditeur qui n’identifie aucun titre installé n’est plus placée dans un dossier « Titre inconnu » (#572). Elle est placée dans le dossier du titre dont vous avez ouvert la liste de sauvegardes à partir de laquelle vous avez effectué la réception, c’est-à-dire celui que vous avez sélectionné. - Corrigé : le récepteur n’enregistre plus une connexion en cours comme une erreur et n’inonde plus le journal pendant un transfert.
3DS : Nouveautés - Corrigé : une restauration qui ne respecte pas la limite de chemin d'accès de la console est refusée avant toute suppression. Auparavant, le programme effaçait d'abord l'archive de sauvegarde avant de s'arrêter, dans le cas d'un dossier de sauvegarde que le système de fichiers n'aurait jamais accepté. Les répertoires racines de copie ainsi que toutes les entrées qu'ils contiennent sont désormais vérifiés dès le départ, et le message indique le chemin d'accès non valide. - Corrigé : les fichiers laissés par un système d’exploitation de bureau à côté de votre sauvegarde n’empêchent plus la restauration (#577). macOS stocke les attributs étendus d’un fichier dans un fichier ._ sidecar à côté de celui-ci sur FAT/exFAT, et crée un fichier .DS_Store dans chaque dossier ouvert par le Finder ; une restauration tombait sur l’un d’entre eux après avoir déjà effacé la sauvegarde côté console. Ces fichiers, ainsi que leurs équivalents laissés par Windows, sont désormais filtrés hors de la copie. - Corrigé : les cartouches dont la sauvegarde réside dans la mémoire NAND intégrée sont désormais identifiées (#553, WarioWare: D.I.Y. et autres). Elles ne disposent pas de puce de sauvegarde SPI ; par conséquent, la sonde signalait une capacité erronée et sauvegardait tout ce que le bus renvoyait. Checkpoint indique désormais de quelle cartouche il s’agit et pointe vers GodMode9i en mode DS, au lieu d’afficher une erreur d’archive de sauvegarde. - Corrigé : la fenêtre modale de progression n'apparaît plus figée lorsqu'une restauration efface la destination (#559). L'effacement d'une archive extdata contenant des milliers de fichiers constitue désormais une étape de progression à part entière, et les libellés des étapes (Sauvegarde, Restauration, Effacement, Envoi...) sont traduits. - Corrigé : les boutons ne sont plus inactifs pendant le chargement de la liste des titres (#565). Il était possible de sauvegarder ou de restaurer un titre que l'on ne voyait pas encore, alors que la sélection était sur le point de changer. - Ajouté : le chinois simplifié est désormais sélectionnable dans les Paramètres (#566, merci @dragonflylee). La traduction était incluse dans la version 5.0.0, mais la liste des langues de la 3DS ne la proposait pas. - Ajout : les consoles New 3DS font désormais également tourner leurs cœurs d’application à 804 MHz. Cette modification n’a aucun effet sur les Old 3DS et 2DS. - Améliorations générales de la stabilité du système afin d’optimiser l’expérience utilisateur.
Switch : Nouveautés - Corrigé : la restauration d'une sauvegarde contenant des dizaines de milliers de petits fichiers ne se bloque plus vers la fin. - L'espace dédié aux données de sauvegarde est étendu lorsque la sauvegarde nécessite plus d'espace qu'elle n'en dispose. - Les fichiers sont préalloués au lieu d'être agrandis bloc par bloc, et l'espace libre est vérifié par rapport à l'espace requis (arrondi au cluster le plus proche) après l'effacement ; ainsi, la restauration est refusée d'emblée au lieu de s'interrompre à 95 %. - La copie est prise en compte lors de l'analyse préalable : une restauration qui signale un succès mais qui a déplacé moins de fichiers que la sauvegarde n'en contient est désormais signalée comme l'échec qu'elle est. - L'espace de la partition de sauvegarde est consigné à chaque étape, ce qui permet de diagnostiquer à partir du journal une restauration qui échoue malgré tout. - Corrigé : la vérification de la restauration est environ deux fois plus rapide. Le CRC de chaque fichier est calculé à partir des octets déjà présents dans le tampon de copie ; ainsi, lors de la passe de vérification, seuls les fichiers validés sont relus, et non les deux côtés. - Corrigé : la console ne se met plus en veille au milieu d’une sauvegarde, d’une restauration ou d’un transfert (#574). La mise en veille suspendait le processus en cours de copie, sur le système de fichiers de sauvegarde, avec un journal à moitié validé. Seule la mise en veille automatique est désactivée : l’écran s’assombrit toujours selon son délai d’inactivité habituel. - Ajout : l’anneau de sélection et la grille s’animent désormais entre les vignettes au lieu de sauter, et s’alignent lorsque ce qui se trouve en dessous change (un filtre de type de sauvegarde différent, un compte différent). - Corrigé : la progression et les libellés d’étape fonctionnent de la même manière que sur la 3DS (#559). - Améliorations générales de la stabilité du système pour optimiser l’expérience utilisateur.
Traductions - Ajout : traduction en russe (merci à @Waleri228) - Les langues actuellement prises en charge sont l'anglais, l'italien, le français, l'allemand, le portugais, l'espagnol, le néerlandais, le japonais, le chinois simplifié et le russe. Si vous êtes locuteur natif et que vous pensez que la formulation ou la présentation du texte dans l'interface utilisateur peut être améliorée, veuillez envoyer une pull request ou ouvrir un ticket sur ce dépôt.
Changelog 5.0.1 :
La version 4.0.0 de Checkpoint a été la plus importante mise à jour que l'application ait jamais connue. La version 5.0.0 redéfinit l'essence même de l'application.
Checkpoint est désormais une infrastructure de gestion des sauvegardes : toutes les opérations qu'elle peut effectuer sur une sauvegarde sont également accessibles via des scripts que vous écrivez vous-même et que vous placez sur la carte SD, ce qui permet à votre console d'effectuer des actions qui n'ont jamais été intégrées dans aucune version de Checkpoint. Le gestionnaire de triches fait son retour parmi ces scripts, tout comme la synchronisation des sauvegardes dans le cloud, vers Google Drive ou vers n’importe quel serveur WebDAV que vous exploitez déjà.
Profitez-en bien !
Scripts : Nouveautés - Ajout : un moteur de scripts. Checkpoint exécute des scripts C, interprétés sur la console. Un script est un simple fichier .c situé sur la carte SD : pas besoin de compilateur, de recompilation ni de reflasage. - Les scripts se trouvent dans sdmc:/<3ds|switch>/Checkpoint/scripts/universal pour être proposés pour tous les titres, ou dans scripts/<identifiant du titre> pour n’être proposés que pour ce titre-là. - Ajout : un nouveau menu « Scripts », accessible avec la touche SELECT sur 3DS et la touche Moins sur Switch. - Les scripts disposent d’une API native via #include <checkpoint.h>, leur permettant d’accéder aux mêmes fonctions que celles utilisées par l’application elle-même : le catalogue des titres, les archives de sauvegarde (y compris les données extdata 3DS et les données extdata partagées) pour lire, écrire, supprimer, lister et valider des fichiers, les E/S de la carte SD, la compression et la décompression de fichiers ZIP, les requêtes HTTP et les téléchargements de fichiers en continu, l’analyse JSON, ainsi que les boîtes de dialogue de l’interface utilisateur générées par Checkpoint lui-même. - Ajout : une interface utilisateur en mode console pour les scripts. Un script en cours d’exécution occupe l’écran : sa sortie s’affiche dans un volet de journalisation défilable, tandis que ses messages, confirmations, sélecteurs, claviers et barres de progression imbriquées s’affichent sur l’autre écran de la 3DS, ou sur une carte superposée à la transcription sur la Switch. - Ajout : annulation des scripts. Maintenir la touche B enfoncée permet d’interrompre n’importe quel script, même s’il est bloqué dans une boucle infinie, sans redémarrer la console. - Ajout : une API de chiffrement, permettant aux scripts de stocker des informations confidentielles telles que des jetons et des mots de passe sur la carte SD, chiffrées à l’aide d’une clé liée à la console et, en option, d’une phrase de passe de votre choix. - Les scripts ont également accès à la bibliothèque standard C de picoc : stdio, stdlib, string, unistd, ctype, math et time. - Ajout : documentation complète sur les scripts, dans scripts/README.md : la référence de l’API, les limites de l’interpréteur, des exemples d’utilisation et une liste de contrôle destinée aux auteurs de scripts, qu’ils soient humains ou IA. scripts/examples/example.c est une visite guidée interactive de l’API, avec une entrée de menu par domaine. tools/scriptlint.sh vérifie la syntaxe de vos scripts sur votre PC avant que vous ne les copiez sur la carte SD. - Correction : les exceptions levées pendant l'exécution d'un script sont interceptées et signalées, au lieu de provoquer l'arrêt aléatoire de l'application.
Scripts intégrés - Ajout : sharkive, et avec lui, le gestionnaire de codes de triche fait son retour. - Il télécharge la dernière base de données Sharkive, vous permet de sélectionner des codes de triche par titre et génère les fichiers de triche attendus par Luma3DS (3DS) et Atmosphere (Switch). - Comme il s’agit désormais d’un script, la base de données de codes suit Sharkive au lieu d’attendre une nouvelle version de Checkpoint. Cela résout l’un des problèmes de maintenance qui avait entraîné la suppression de cette fonctionnalité dans la version 4.0.0. - Remarque : si vous n’êtes pas satisfait des codes distribués par Sharkive, vous pouvez signaler des problèmes et proposer des correctifs directement sur le dépôt, ou contribuer en écrivant un script qui télécharge les codes depuis un autre fournisseur. Checkpoint est très ouvert aux contributions. - Ajout : googledrive, pour synchroniser vos sauvegardes sur votre propre Google Drive. - La connexion s'effectue via le processus d'authentification de Google : la console affiche un code, que vous saisissez sur votre téléphone ou votre PC. - Synchronisez tout, un seul titre ou une seule sauvegarde. Chaque sauvegarde est téléchargée sous forme de fichier zip, et les sauvegardes déjà téléchargées sont ignorées. - Vos identifiants sont protégés par la nouvelle API de chiffrement ; ils ne sont donc jamais stockés en clair sur la carte SD. Les instructions de configuration se trouvent dans le fichier scripts/googledrive.md. - Ajout : WebDAV, pour synchroniser ces mêmes sauvegardes vers n'importe quel serveur WebDAV que vous utilisez déjà : Nextcloud, ownCloud, Synology, Apache mod_dav, rclone serve webdav, ainsi que la plupart des applications NAS de « cloud personnel ». - Vous pouvez télécharger tous les fichiers, un seul fichier ou une sauvegarde complète, en ignorant ce qui se trouve déjà sur le serveur. Il est également possible de récupérer une sauvegarde sur la console, où la fonction de restauration habituelle de Checkpoint prend le relais. - Les identifiants sont protégés par l’API de chiffrement, comme sur Drive. La configuration, avec l’URL de base adaptée à chaque serveur courant, se trouve dans scripts/webdav.md ; le fichier tools/webdav-testserver.py vous fournit un serveur temporaire sur votre PC pour tester l’ensemble du processus dans les deux sens avant toute utilisation. - Ajout : playcoins, pour définir les Play Coins (3DS) de la console. - Remarque : la fonctionnalité de gestion des Play Coins est désormais disponible uniquement via les scripts.
3DS : Nouveautés - Ajout : un menu superposé permettant d’accéder aux Paramètres et aux scripts. - Correction : les sauvegardes de la Console virtuelle GBA peuvent désormais être transférées d’une console à l’autre (#557). Auparavant, une sauvegarde correspondait à l’intégralité du conteneur côté console, signé pour la console qui l’avait créée ; par conséquent, sa restauration sur une autre console échouait, ou bien indiquait un succès tout en laissant intacte la sauvegarde propre au jeu. - Une sauvegarde correspond désormais au fichier de sauvegarde nu, le même fichier .sav de 512 octets à 128 Ko qu’un émulateur ou GodMode9 lit, et la restauration le réécrit dans le conteneur et le resigne pour la console effectuant la restauration. - Les sauvegardes effectuées par des versions plus anciennes de Checkpoint peuvent toujours être restaurées. - Corrigé : Checkpoint fonctionne désormais sur les émulateurs. La vérification Rosalina hb:ldr est ignorée lorsqu’un émulateur est détecté, au lieu de refuser le démarrage. - Corrigé : les boîtes de dialogue modales mesurent et disposent désormais correctement leur texte, de sorte que les textes plus longs et les chaînes traduites ne sont plus tronqués. - Corrigé : une corruption de mémoire dans la fonction de rappel de la superposition de choix. - Améliorations générales de la stabilité du système pour optimiser l’expérience utilisateur.
Switch : Nouveautés - Ajout : une rubrique « Scripts » dans la barre latérale, ainsi qu’un menu contextuel permettant d’accéder aux « Paramètres » et aux « Scripts ». - Correction : l’application ne se bloque plus lorsque le sélecteur de compte est ouvert alors que le calcul de la taille des sauvegardes est encore en cours. Le processus de calcul de la taille est désormais mis en pause tant que l’applet est active. - Correction : les noms de sauvegardes n'étaient plus tronqués dans la liste des sauvegardes. - Correction : les boîtes de dialogue modales mesurent et affichent désormais correctement leur texte ; ainsi, les textes plus longs et les chaînes traduites ne sont plus coupés. - Correction : les threads sont correctement fermés lorsque l'application est forcée de se fermer. - Correction : les exceptions non gérées sont consignées avec beaucoup plus de détails, ce qui permet de diagnostiquer les plantages à partir du journal. - Améliorations générales de la stabilité du système pour optimiser l'expérience utilisateur.
chlink : Nouveautés - Corrigé : une sauvegarde transmise sous forme de fichier unique au lieu d’un fichier zip (une sauvegarde de cartouche DS, une sauvegarde GBA VC) arrivait avec le point supprimé de son nom (00000001 sav), et il était alors impossible de la restaurer. Le destinataire conserve désormais l’extension, tant sur les consoles que dans chlink. - Les sauvegardes déjà reçues avec un nom corrompu ne sont pas perdues : un dossier de sauvegarde brut contenant un seul fichier est restauré, quel que soit le nom de ce fichier. - Ajout : le récepteur enregistre chaque fichier stocké avec sa taille et sa destination, et indique jusqu’où il a progressé.
Traductions - Ajout : traduction en chinois simplifié (merci à @JeanPhoenixWong) - Les langues actuellement prises en charge sont l'anglais, l'italien, le français, l'allemand, le portugais, l'espagnol, le néerlandais, le japonais et le chinois simplifié. - Si vous êtes locuteur natif et que vous pensez que la formulation ou la présentation du texte dans l'interface utilisateur peut être améliorée, veuillez envoyer une pull request ou ouvrir un ticket sur ce dépôt.
|
Veuillez vous connecter ou vous créer un compte pour commenter cet article !
Il n'y a aucun commentaire pour le moment.