Bonjour à tous. Je fais une news aujourd'hui pour vous présenter l'homebrew que j'ai publié. Il permet de mettre à jour le cfw facilement via le pack de notre chère Linkynimes ! L'homebrew est open source donc vous pouvez le modifier à votre guise.
Comment l'implémenter pour mon pack ?
Pour ce faire il n'y a rien de compliqué. Vous devez cloner le repo github et vous rendre dans includes/download.h et modifier les deux petits define ci dessous avec vos deux liens. Un pour l'app et l'autre pour le pack
#define APP_URL "https://github.com/PoloNX/AtmoPackUpdater/releases/latest/download/AtmoPackUpdater.nro" #define CFW_URL "https://github.com/THZoria/AtmoPack-Vanilla/releases/latest/download/AtmoPack-Vanilla_Latest.zip"
Ensuite il faut rebuild le projet comme expliqué dans mon readme et le tour est joue!
L'homebrew fonctionne pour le pack de linkynimes comme dis plus haut qui est un très bon pack donc si vous êtes un utilisateur lambda je ne vous conseil pas de faire cette manipulation.
Téléchargement : AtmoPackUpdater v0.0.1
La partie du zip est lente car je fais en sorte d’éviter les corruptions. Je pourrai ma faire plus rapide mais ça risque d’être risqué. Cet homebrew est adapté au pack de linkynimes qui fait 29Mb.Plutôt utile mais, l'ayant testé avec notre pack il est trop lent pour des gros packs, la copie sur la SD a duré près de 15 minutes et c'était sur une SD de bonne qualité.
J'ai aussi remarqué des fautes de frappes dans certains "printf" de "main.c".
Et puisque j'y suis petite question codage comme je ne maîtrise pas du tout le C++ et encore moins la Libnx, comment modifier la partie "unzip.c" pour qu'elle ignore le premier répertoire du zip, par exemple si on souhaite utiliser un zip du genre "https://github.com/T.../heads/main.zip (je sais que ce zip ne contient pas le pack mais bon c'est pour donner un exemple de zip avec lequel je souhaite travailler)?
Six minutes quand même, du coup peut-être que mon estimation du temps était trop petite mais il est clair que c'était assez long, trop long à notre sens mais peut-être qu'en optimisant un peu le truc ensuite on pourrait raccourcir le temps (augmenter la taille du buffer peut-être).
C'est déjà plus rapide que AIO Switch Updaters ou le dl est rapide mais le dezippage mais une plombe avec une mise à jour qui prend 30 minutes...La partie du zip est lente car je fais en sorte d’éviter les corruptions. Je pourrai ma faire plus rapide mais ça risque d’être risqué. Cet homebrew est adapté au pack de linkynimes qui fait 29Mb. Et pour modifier ça c’est rien de compliqué. Comme tu vois dans mon unzip.c j’ai un else if qui vérifie si le fichier est package3 (sécurité de atmo) tu copie tout ce if et tu mets à la place de ce fichier une condition qui vérifie que le DEBUT commence par ton répertoire. Si tu préfère envoi moi un message privé je le ferai à ta place.Plutôt utile mais, l'ayant testé avec notre pack il est trop lent pour des gros packs, la copie sur la SD a duré près de 15 minutes et c'était sur une SD de bonne qualité.J'ai aussi remarqué des fautes de frappes dans certains "printf" de "main.c".Et puisque j'y suis petite question codage comme je ne maîtrise pas du tout le C++ et encore moins la Libnx, comment modifier la partie "unzip.c" pour qu'elle ignore le premier répertoire du zip, par exemple si on souhaite utiliser un zip du genre "https://github.com/T.../heads/main.zip (je sais que ce zip ne contient pas le pack mais bon c'est pour donner un exemple de zip avec lequel je souhaite travailler)?
Je n’utilise pas la même bibliothèque que lui. Il utilise zipper et moi minizipC'est déjà plus rapide que AIO Switch Updaters ou le dl est rapide mais le dezippage mais une plombe avec une mise à jour qui prend 30 minutes...La partie du zip est lente car je fais en sorte d’éviter les corruptions. Je pourrai ma faire plus rapide mais ça risque d’être risqué. Cet homebrew est adapté au pack de linkynimes qui fait 29Mb. Et pour modifier ça c’est rien de compliqué. Comme tu vois dans mon unzip.c j’ai un else if qui vérifie si le fichier est package3 (sécurité de atmo) tu copie tout ce if et tu mets à la place de ce fichier une condition qui vérifie que le DEBUT commence par ton répertoire. Si tu préfère envoi moi un message privé je le ferai à ta place.Plutôt utile mais, l'ayant testé avec notre pack il est trop lent pour des gros packs, la copie sur la SD a duré près de 15 minutes et c'était sur une SD de bonne qualité.J'ai aussi remarqué des fautes de frappes dans certains "printf" de "main.c".Et puisque j'y suis petite question codage comme je ne maîtrise pas du tout le C++ et encore moins la Libnx, comment modifier la partie "unzip.c" pour qu'elle ignore le premier répertoire du zip, par exemple si on souhaite utiliser un zip du genre "https://github.com/T.../heads/main.zip (je sais que ce zip ne contient pas le pack mais bon c'est pour donner un exemple de zip avec lequel je souhaite travailler)?
Ouai clairement, je viens de faire le test avec AIO_switch_updater et effectivement c'est pas plus rapide, de mon côté les tests se valent.
Tu as raison, si ta technique limite la corruption de données alors vaut mieux ne pas toucher.
Pour mon souci je ne suis pas certain qu'on se soit compris donc je préfère clarifier pour être certain. Pour faire les tests j'ai créé un repo Github de test donc l'URL de téléchargement est "https://github.com/s.../heads/main.zip". Le téléchargement fonctionne mais se que je souhaite ensuite c'est qu'il ne prenne pas en compte le répertoire "test-main" se trouvant dans le zip (pour çà un simple strcmp dans une condition ajoutée sur le nom du répertoire fait l'affaire pour qu'il ne soit pas créé) et qu'il extrait le contenu de ce seul répertoire se trouvant à la racine de l'archive sur la SD donc à la fin je dois me retrouver avec le fichier "readme.md" à la racine de la SD et c'est là que je coince, j'ai l'impression que si je ne cré pas le premier répertoire alors la suite ne fonctionne plus car ce premier répertoire n'existe pas. Après oui je ne suis pas contre une aide sur ce point si tu le veux bien, tu peux m'envoyer le unzip.c modifié en MP sans souci.
Envoi moi ton pack de test car moi ça me donne une erreur 404. Ça risque d’être difficile de travailler dessus sans pouvoir visualiserOuai clairement, je viens de faire le test avec AIO_switch_updater et effectivement c'est pas plus rapide, de mon côté les tests se valent.
Tu as raison, si ta technique limite la corruption de données alors vaut mieux ne pas toucher.
Pour mon souci je ne suis pas certain qu'on se soit compris donc je préfère clarifier pour être certain. Pour faire les tests j'ai créé un repo Github de test donc l'URL de téléchargement est "https://github.com/s...eads/main.zip". Le téléchargement fonctionne mais se que je souhaite ensuite c'est qu'il ne prenne pas en compte le répertoire "test-main" se trouvant dans le zip (pour çà un simple strcmp dans une condition ajoutée sur le nom du répertoire fait l'affaire pour qu'il ne soit pas créé) et qu'il extrait le contenu de ce seul répertoire se trouvant à la racine de l'archive sur la SD donc à la fin je dois me retrouver avec le fichier "readme.md" à la racine de la SD et c'est là que je coince, j'ai l'impression que si je ne cré pas le premier répertoire alors la suite ne fonctionne plus car ce premier répertoire n'existe pas. Après oui je ne suis pas contre une aide sur ce point si tu le veux bien, tu peux m'envoyer le unzip.c modifié en MP sans souci.
Je viens de modifier le lien dans mon message précédent, effectivement le parser du bb code a fait n'importe quoi comme j'ai rien indiqué de spécial. J'ai également mis à jour le repository de test pour y ajouter des répertoires et sous-répertoires pour voir si tout fonctionne bien. Merci pour ton aide.
Je regarde ça dans la journéeJe viens de modifier le lien dans mon message précédent, effectivement le parser du bb code a fait n'importe quoi comme j'ai rien indiqué de spécial. J'ai également mis à jour le repository de test pour y ajouter des répertoires et sous-répertoires pour voir si tout fonctionne bien. Merci pour ton aide.
Bon déjà dans un premier temps quand tu mets des espaces dans un dossier ça pars mal. Les dossier ne sont je pense pas supporté et c'est logique. C'est pour ça je pense que ça n'a pas fonctionné pour toiOuai clairement, je viens de faire le test avec AIO_switch_updater et effectivement c'est pas plus rapide, de mon côté les tests se valent.Tu as raison, si ta technique limite la corruption de données alors vaut mieux ne pas toucher.Pour mon souci je ne suis pas certain qu'on se soit compris donc je préfère clarifier pour être certain. Pour faire les tests j'ai créé un repo Github de test donc l'URL de téléchargement est "https://github.com/s.../heads/main.zip". Le téléchargement fonctionne mais se que je souhaite ensuite c'est qu'il ne prenne pas en compte le répertoire "test-main" se trouvant dans le zip (pour çà un simple strcmp dans une condition ajoutée sur le nom du répertoire fait l'affaire pour qu'il ne soit pas créé) et qu'il extrait le contenu de ce seul répertoire se trouvant à la racine de l'archive sur la SD donc à la fin je dois me retrouver avec le fichier "readme.md" à la racine de la SD et c'est là que je coince, j'ai l'impression que si je ne cré pas le premier répertoire alors la suite ne fonctionne plus car ce premier répertoire n'existe pas. Après oui je ne suis pas contre une aide sur ce point si tu le veux bien, tu peux m'envoyer le unzip.c modifié en MP sans souci.
Bon OK je voulais aussi voir avec un dossier contenant un espace si ça fonctionnait mais effectivement déjà vaudrait mieux que ça fonctionne sans, je l'ai supprimé.
Dis moi ce que tu veux ne pas extraire. Le test 2 contient un espace encore une foisBon OK je voulais aussi voir avec un dossier contenant un espace si ça fonctionnait mais effectivement déjà vaudrait mieux que ça fonctionne sans, je l'ai supprimé.
Bon j'ai finalement réussi à faire se que je veux (le C++ c'est pas simple de m'y remettre vraiment), maintenant va falloir que je réadapte à ta nouvelle version mais en tous cas j'aime bien et j'ai encore quelques idées d'améliorations pour l'adapter à notre pack.
Bonne nouvelle alors. J'ai pas changé grand chose tu peux regarder le git (Et juste c'est du C pas du C++ je voulais changer sinon j'aurai utilisé des strings )Bon j'ai finalement réussi à faire se que je veux (le C++ c'est pas simple de m'y remettre vraiment), maintenant va falloir que je réadapte à ta nouvelle version mais en tous cas j'aime bien et j'ai encore quelques idées d'améliorations pour l'adapter à notre pack.
Bonne nouvelle alors. J'ai pas changé grand chose tu peux regarder le git (Et juste c'est du C pas du C++ je voulais changer sinon j'aurai utilisé des strings )
Oui j'ai vu, la modif a été faite. J'ai publier çà sur Github, ainsi tu pourras voir comment je m'y suis pris. En gros on configure une variable dans "sources/unzip.c" qui indique le premier sub-folder où se trouve la racine du projet puis le programme gère tout comme il faut; si la variable est laissée vide alors ça se comporte comme ton programme original, je tenais aussi à pouvoir revenir à ce comportement très facilement. C'est sûrement pas la plus belle façon de faire mais déjà j'y suis arrivé, c'est un petit miracle en soi...
Petite question Shadow / NightWolf ce serais possible / intéressent comme pour la plupart de tes projets d'ouvrir un poste sur le forum en rapport au AtmoPack-Vanilla ? Pour évité que je me retrouve encore a 50 MP et que je le vois pas pendant 6 mois mdr
Sans souci, tu peux ouvrir un sujet sur le forum comme je l'ai fait pour mon Ultimate-Switch-Hack-Script, rien ne t'en empêche et c'est vrai que ça simplifie les choses pour centraliser les choses.
Oui j'ai vu, la modif a été faite. J'ai publier çà sur Github, ainsi tu pourras voir comment je m'y suis pris. En gros on configure une variable dans "sources/unzip.c" qui indique le premier sub-folder où se trouve la racine du projet puis le programme gère tout comme il faut; si la variable est laissée vide alors ça se comporte comme ton programme original, je tenais aussi à pouvoir revenir à ce comportement très facilement. C'est sûrement pas la plus belle façon de faire mais déjà j'y suis arrivé, c'est un petit miracle en soi...
Sans souci, tu peux ouvrir un sujet sur le forum comme je l'ai fait pour mon Ultimate-Switch-Hack-Script, rien ne t'en empêche et c'est vrai que ça simplifie les choses pour centraliser les choses.
Du coup vous pouvez retrouvé les dernières information sur le sujet que je vient de créer mais également s'entraidé pour faire fonctionné ce dernier
Bonsoir , ou peut on suivre la suite de la discutions svp , j'ai check le forums mais pas vu , peut-être je n'ai pas était au bon endroit
Merci , je pensais que vous aviez ouvert un fil de discussions diffèrent pour la continuité de ce que vous aviez écrit plus hautBonsoir , ou peut on suivre la suite de la discutions svp , j'ai check le forums mais pas vu , peut-être je n'ai pas était au bon endroit
ça peut être pas mal . Par contre, faut que je regarde si ça écrase ma config de Hekate ou pas, parce que j'ai ajouté des entrées ( Sysnand stock, Emunand Atmo, Sysnand Atmo ) . le pack de base n'a qu'atmo classique
ça peut être pas mal . Par contre, faut que je regarde si ça écrase ma config de Hekate ou pas, parce que j'ai ajouté des entrées ( Sysnand stock, Emunand Atmo, Sysnand Atmo ) . le pack de base n'a qu'atmo classique