[Switch] - Création et fonctionnement de l'emunand sous Atmosphere

 

Introduction

Cette page va servir à centraliser le maximum d'infos sur le fonctionnement de l'emunand d'Atmosphere apparu avec la version 0.9.0 de celui-ci (utilisé via Fusee ou via Hekate). Note: L'emunand via fichiers est légèrement plus lente que l'emunand via partition. Pour l'emunand via fichiers en FAT32, la SD doit être formatée avec des clusters de 32K. Note 2: Pour redimensionner la partition USER et avoir pas mal d'infos intéressante sur l'emunand via partition plus particulièrement, voir ce sujet dans lequel les choses sont plutôt bien résumées.

0: Prés-requis:

On doit disposer d'un dump complet de la nand contenant donc les fichiers "BOOT0", "BOOT1" et "rawnand.bin" (ce dernier peut être splitté en plusieurs parties, d'ailleurs ceci est plutôt conseillé pour éviter des soucis de compatibilité entre le FAT32 et l'EXFAT, le fichier peut donc être au minimum splitté en 8 parties). Dans l'Ultimate Switch Hack Script, une fonction de la Nand Toolbox permet de splitter un dump de nand non splitté assez simplement. Pour savoir comment récupérer ces fichiers, vous pouvez consulter ce tuto qui utilise Hekate ou ce tuto qui utilise NXNandManager (dump possible sans nécessiter ni SD ni Hekate si console non patchée, sinon juste une SD avec Hekate dessus suffira). Note: Avec la méthode de création de l'emunand via Hekate ou avec NXNandManager ou avec l'Ultimate-Switch-Hack-Script et sa Nand Toolbox il est maintenant très simple de gérer l'emunand via fichiers ou via partition sans trop avoir à se prendre la tête avec les configurations manuelles, ceci dit il reste intéressant de savoir comment cela fonctionne dans certains cas particuliers (transfert de l'emunand d'une SD à une autre par exemple).

1: Méthodes pour Fusee Primary:

1.1: Emunand via fichiers:

Une fois les fichiers nécessaires acquis, créer un dossier sur la SD, préférablement en lui donnant un nom sans espace ni caractères spéciaux. Par contre, ce dossier peut aussi se trouver dans des sous-dossiers mais encore une fois, éviter les espaces et caractères spéciaux dans les noms. Pour l'exemple, on va dire que le dossier sera "emummc/8.0.1". Une fois le dossier créé, créer un dossier "eMMC" (sans les guillemets et bien respecter les majuscules et minuscules) et y mettre les fichiers du dump à l'intérieur de celui-ci. Le dossier "eMMC" créé devra donc au moins contenir le fichier "boot0", "boot1" et "00", si le dump de la rawnand n'est pas splitté, il faudra tout de même le nommer "00" et si le dump est splitté, la suite des fichiers devra être nommé "01", "02", etc... Une fois cela mis en place, il faut appliquer l'attribut d'archive au dossier "eMMC", pour se faire on peut faire un clique droit sur le dossier et cocher la case "archive" puis cliquer sur "OK" ou alors on peut aussi utiliser la commande "attrib +a chemin_du_dossier" pour ceux qui préfèrent la ligne de commandes. Notez que ceci n'est pas obligatoire car Atmosphere semble s'en occuper lui-même si cela n'est pas fait. Enfin, il ne reste plus qu'à configurer le fichier "emummc/emummc.ini" avec les valeurs adéquat, voir la suite pour plus d'infos sur la structure de ce fichier.

1.2: Emunand via partitions:

1.2.1: Création via Linux (recommandé):

Merci à @Linkynimes et à @Thetoto de Logic-sunrise pour les infos. Partitioner la carte sd en 2 partition, la première c'est la principale en fat32/exfat, la seconde de 29828 MO (Faut bien cet ordre sinon ça ne boot pas... Il faut également des partitions principales et pas des partitions logiques. Pour configurer la SD correctement, Gparted fera parfaitement le travail. Ensuite on assemble tout les fichiers du dump de la nand dans un seul fichier: cat BOOT0 BOOT1 rawnand.bin > emunand.bin Ou si on a une rawnand en plusieurs parties: cat BOOT0 BOOT1 rawnand.bin.* > emunand.bin Ensuite on copie le fichier créé grâce à dd sur la partition physique dédiée à l'emunand sur la SD, /dev/sdXN étant la partition de 32 go: dd bs=4M if=emunand.bin of=/dev/sdXN status=progress && sync Récupérer le secteur de début de la bonne partition avec fdisk, le convertir en hexadécimal. Moi j'ai çà : sudo fdisk -l Résultat de la commande:
Périphérique   Amorçage    Début       Fin Secteurs Taille Id Type /dev/mmcblk0p1              2048  55009279 55007232  26,2G  b W95 FAT32 /dev/mmcblk0p2          55042048 122241023 67198976    32G  b W95 FAT32
Ma partition de 32GO c'est /dev/mmcblk0p2, le début c'est 55042048 -> en hex -> 0x347E000. Enfin, faire le emummc/emummc.ini , un exemple avec le strict minimum:
[emummc] enabled = 1 sector = 0x347E000 ; (ce qu'on a récup avec fdisk)

1.2.2: Création via Windows:

En suivant ce petit tuto, vous formaterez votre carte SD en supprimant tout ce qui y est enregistré. Assurez-vous de sauvegarder le contenu de votre carte SD au préalable. Formater le mauvais lecteur (lecteur PC) gâchera énormément les choses. Assurez-vous que vous savez quel lecteur est votre carte SD! Connectez votre carte SD à votre PC. Appuyez sur WIN + R et tapez diskmgmt.msc puis cliquez sur OK. Localisez votre carte SD et supprimez toutes les partitions de ce disque (il ne devrait s'agir que d'une partition). Faites un clic droit sur la carte SD et sélectionnez "Nouveau volume simple". Cliquez sur Suivant jusqu'à ce que vous puissiez définir la taille du volume. Prenez le nombre suggéré et soustrayez 29828. utilisez le nombre obtenu comme taille pour le volume et créez-le. Vous vous retrouverez avec une partition au début et un espace non alloué à la fin. Cliquez avec le bouton droit de la souris sur l'espace non alloué et sélectionnez "Nouveau volume simple". Cliquez sur Suivant, laissez la taille suggérée, puis, sélectionnez "Ne pas formater ce volume", puis terminez. Nous avons maintenant nos 2 partitions, mais nous avons toujours besoin de formater notre première partition en FAT32 en utilisant guiformat. Faites un clic droit sur le fichier guiformat et sélectionnez Démarrer en tant qu'administrateur. Sous "Lecteur", sélectionnez la première partition que vous venez de créer (utilisez la lettre du lecteur pour formater le bon lecteur), sélectionnez la taille d'allocation 32768, cochez le formatage rapide et appuyez sur Démarrer. Enfin, il est possible d'installer Msys 2.0 et de le lancer pour pouvoir suivre les instructions de la partie 1.2.1, c'est de loin la méthode la plus simple à faire.

2: Méthode via Hekate:[/h2]

2.1: Emunand via fichiers:

Voir cette excellent tuto qui couvre l'ensemble de la méthode avec également la façon de lancer les exploits et comment mettre à jour l'emunand via ChoiDuJourNX, merci à @giga300. On a aussi ce tuto, ça couvre une bonne partie des choses.

2.2: Emunand via partitions:

Merci à @Linkynimes de Logic-sunrise pour les infos. En suivant ce petit tuto, vous formaterez votre carte SD en supprimant tout ce qui y est enregistré. Assurez-vous de sauvegarder le contenu de votre carte SD au préalable. Formater le mauvais lecteur (lecteur PC) gâchera énormément les choses. Assurez-vous que vous savez quel lecteur est votre carte SD! Connectez votre carte SD à votre PC. Appuyez sur WIN + R et tapez diskmgmt.msc puis cliquez sur OK. Localisez votre carte SD et supprimez toutes les partitions de ce disque (il ne devrait s'agir que d'une partition). Faites un clic droit sur la carte SD et sélectionnez "Nouveau volume simple". Cliquez sur Suivant jusqu'à ce que vous puissiez définir la taille du volume. Prenez le nombre suggéré et soustrayez 29828. utilisez le nombre obtenu comme taille pour le volume et créez-le. Vous vous retrouverez avec une partition au début et un espace non alloué à la fin. Cliquez avec le bouton droit de la souris sur l'espace non alloué et sélectionnez "Nouveau volume simple". Cliquez sur Suivant, laissez la taille suggérée, puis, sélectionnez "Ne pas formater ce volume", puis terminez. Nous avons maintenant nos 2 partitions, mais nous avons toujours besoin de formater notre première partition en FAT32 en utilisant guiformat. Faites un clic droit sur le fichier guiformat et sélectionnez Démarrer en tant qu'administrateur. Sous "Lecteur", sélectionnez la première partition que vous venez de créer (utilisez la lettre du lecteur pour formater le bon lecteur), sélectionnez la taille d'allocation 32768, cochez le formatage rapide et appuyez sur Démarrer. Placez tous vos fichiers atmosphere / hekate / NYX sur la première partition, car cette partition sera votre carte SD classique. La seconde partition deviendra votre emuMMC. Enfin, démarrez Hekate 5.0 / NYX, sélectionnez emuMMC> Créer emuMMC> Partition SD> Continuer.

3: Le fichier "emummc/emummc.ini":

Note: Si Hekate est utilisé pour créer/manipuler l'emunand normalement il ne sera pas nécessaire d'éditer le fichier de configuration manuellement, Hekate se charge de le faire. Ce fichier est un simple fichier texte qui peut être édité via le bloc-notes ou tout autre éditeur de texte, pour le créer simplement on peut se rendre dans le dossier "emummc" de la SD, faire un clique droit dans un espace ne contenant pas de fichier, dérouler le menu "nouveau" puis choisir "document texte". Attention tout de même car si l'option "masquer les extentions des fichiers dont le type est connu" de Windows est activée (se qui est le cas par défaut), le fichier n'aura pas le bon nom et donc ne sera pas détecté, veuillez donc désactiver cette option (une recherche sur internet devrait suffire à trouver comment faire cela). En ligne de commandes sinon, on peut créer simplement le fichier en tapant la ligne "copy nul lettre_de_la_sd:\emummc\emummc.ini" (ne pas copier les guillemets). Voici la structure de base du fichier:
[emummc] enabled = id = sector = path = nintendo_path =
Maintenant, décortiquons ligne par ligne: [emummc]: Rien à dire de particulier, c'est juste l'indication de la section concernant la configuration de l'emunand.   enabled =: Ici, on défini si l'emunand est à activer ou non, 0 signifie que l'emunand est désactivée et 1 signifie que l'emunand est activée.   id =: Cette ligne sert à définir l'ID Hexadécimal de l'emunand (la valeur commence donc toujours par 0x), par exemple la ligne pourrait être, sans les guillemets, "id = 0x09AF" (quatre caractères max pour l'ID sont pris en compte).   sector =: Cette ligne sert à définir le secteur démarrant la partition contenant l'emunand si le choix de l'utilisation de ce type d'emunand a été fait. Cette valeur est également une valeur Hexadécimal et doit donc toujours commencer par 0x. Si l'utilisation d'une emunand via fichiers a été préférée, cette ligne doit ne pas figurer dans le fichier de configuration si tel est le cas ou bien elle peut commencer par un ";" (sans les guillemets), signifiant que la ligne est un commentaire et donc ne sera pas prise en compte ou alors il faut mettre la valeur "0x0" sans les guillemets.   path =: Cette ligne définie le chemin du dossier contenant le dossier "eMMC" qui lui-même contient les différentes parties du dump de la nand servant à démarrer l'Emunand, par exemple la valeur pourrait être, toujours sans les guillemets, "path = emummc/8.0.1". Si le choix d'une emunand via partition a été fait, cette ligne doit ne pas figurée dans le fichier de configuration ou doit être commentée avec un ";" (sans les guillemets).   nintendo_path =: Cette ligne sert à définir le dossier "nintendo" utilisé par l'emunand, par défaut ce dossier sera "emummc/Nintendo_XXXX" (XXXX sera remplacé par l'ID de l'emunand) mais il est aussi possible de définir le chemin que l'on souhaite, par exemple "emutendo".

4: Aller plus loin:

On a un tuto pour redimensionner la partition "USER" pour un dump utilisé pour l'emunand sur cette page. Il est aussi possible d'avoir une emunand via partition compatible avec SX OS et Atmosphere en même temps, pour cela il faut créer l'emunand via partition avec SX OS (même pas besoin de la licence pour cela) puis, dans le fichier "emummc\emummc.ini" régler la valeur "enabled" sur "1", la valeur "sector" sur "0x2" et la valeur "nintendo_path" sur "emutendo". Voilà, une emunand via partition réglée simplement, sans prise de tête et compatible avec SX OS et Atmosphere, le meilleur des deux mondes est à vous (bien-sûre il faudra acheter la licence SX OS pour booter l'emunand via ce CFW). Note: Une méthode alternative pour faire cette emunand compatible SX OS/Atmosphere est de créer l'emunand via partition via SX OS puis d'utiliser Hekate, aller dans "EmuMMc" puis utiliser l'option "migrate emummc" et se sera fait, merci à @Ochidoris de Logic-sunrise pour le partage de cette méthode. Pour info voici le contenu du fichier "emummc\emummc.ini" à avoir pour la dual emunand:
[emummc] enabled = 1 sector = 0x2 nintendo_path = emutendo
Voilà, si on le souhaite on peut rajouter le "id" mais il n'est pas obligatoire. Pour migrer une emunand via fichiers créée avec SXOS se n'est pas très difficile non plus, c'est juste du déplacement et renommage de fichiers et la configuration du fichier "emummc\emummc.ini" à faire en conséquence. Par contre il n'est pas possible de faire un dual boot comme pour l'emunand via partition de SXOS, ceci dit avec NXNandManager on peut convertir l'emunand via fichiers en emunand via partition (sauvegarder la SD sur le PC avant cela puisque cela formatera totalement la SD puis remettre son contenu une fois le traitement terminé, par contre ne pas remettre le dossier "sxos\emunand" puisqu'il ne servira plus) L'emunand via fichiers de SXOS se trouve dans le dossier "sxos\emunand" et elle comprend un fichier "boot0.bin", "boot1.bin" qui sont les partitions BOOT0 et BOOT1 de la nand et les fichiers "full.00.bin" à "full.07.bin" qui sont la partie RAWNAND de la nand. Le plus simple pour faire la migration de celle-ci est de renommer "boot0.bin" en "BOOT0", "boot1.bin" en "BOOT1" et pour les fichiers "full.XX.bin" il suffit de ne garder que la partie "XX" donc par exemple le fichier "full.00.bin" est à renommer "00". Une fois cela fait il faut créer un dossier "EMMC" dans le dossier "sxos\emunand" puis déplacer les fichiers dans ce dossier. Enfin plus qu'à régler le fichier "emummc\emummc.ini" ainsi:
enabled = 1 path = sxos/emunand nintendo_path = emutendo
Voilà, si on le souhaite on peut rajouter le "id" mais il n'est pas obligatoire.