J'ai mis du temps à vous parler de ces deux accessoires Antank pour la Switch 2. Ça fait quelques semaines que je décale ce test, surtout parce que je ne voyais pas bien ce que j'allais raconter sur une batterie externe et un support pour Switch, car je ne comprenais en fait pas du tout le concept. Puis j'ai ouvert les boîtes, j'ai testé le truc, et bah en fait c'est top.
Pour faire simple, la batterie B5 se fixe au dos de la console avec un système magnétique et elle tient super bien. J'avais assez peu d'attentes sur ce produit, mais la fixation est vraiment stable et la batterie fait très bien son boulot en déplacement ou sur des longs trajets.
Il y a une coque très fine à installer sur la console, puis on vient y aimanter la batterie et brancher le petit câble USB-C fourni. Tout est regroupé derrière la Switch, ce qui évite d'avoir une batterie à poser quelque part pendant qu'on joue, avec un câble qui part de la console pour aller jusqu'à elle.
La B5 a une capacité annoncée de 10 000 mAh, avec une recharge filaire jusqu'à 30 W, et elle pèse 213 grammes. Vous ajoutez donc ce poids à celui de la console, mais ça n'est pas du tout gênant en fait, surtout, pour un accessoire qui coûte actuellement 55,99 euros sur Amazon.fr. Notez que la batterie est aussi MagSafe pour votre iPhone potentiel, si besoin, et elle le chargera donc sans fil.
Elle fonctionne aussi avec les premières Switch et les Switch OLED grâce à l'autre clip fourni, mais pas avec la Switch Lite.
J'ai aussi utilisé le support SW2 Hub proposé aussi par la marque en complément, et je le trouve moins indispensable que la batterie. Il permet de poser la console sur un socle pliable dont on règle l'inclinaison, avec une sortie HDMI pour la TV. Le truc permet surtout de laisser la fixation au dos de la Switch quand on passe du jeu portable au téléviseur. Vu que je ne joue jamais branché à la TV, ça ne m'est pas utile, mais si vous avez un usage mixte, c'est nickel.
C'est bien pratique en tout cas. Cette partie qui reste sur la console est fine et légère, et elle ne pose aucun problème au quotidien.
Le hub ajoute deux ports USB-A et deux USB-C, ainsi qu'une prise Ethernet pour le réseau filaire. Il est affiché à 53,95 euros sur la boutique française d'Antank, séparément de la batterie.
Voilà, donc c'est carrément validé si vous manquez un peu de jus dans votre Switch ou Switch 2.
L'équipe derrière
suyu
, l'émulateur Nintendo Switch né des cendres de
yuzu
, a publié le début septembre une dernière version de son logiciel, puis a fermé le
dépôt
sur un ultime commit intitulé "FINAL". Et cette version d'adieu embarque un truc que j'ai trouvé intéressant. C'est un mode baptisé Recompiler, qui change totalement la façon dont le code du jeu est "traduit".
D'habitude, un émulateur traduit les instructions ARM de la console en instructions x86 au fur et à mesure que le jeu tourne. C'est ce qu'on appelle un JIT. Alors que là, le mode Recompiler fait le boulot à l'avance en prenant le code ARM64 du jeu et en le convertissant en code C.
Le
code de suyu
ne cache pas d'où vient l'idée, puisqu'il se décrit lui-même comme un moteur produisant du C portable "à la manière de N64Recomp". Grâce à cette technique de recompilation, en bout de la chaîne, vous obtenez un vrai binaire .exe sous Windows, ELF sous Linux, ou Mach-O sous macOS.
Faut savoir qu'un jeu entier, ça fait des millions de blocs de code (oui, des millions !), et réunis dans un seul fichier C, ça pèserait des centaines de mégaoctets. Soit de quoi occuper un compilateur durant des heures avec beaucoup de mémoire consommée et éventuellement un abandon par K-O technique ^^... Alors qu'en le recompilant, on peut profiter de perfs natives sans éclater la machine.
Maintenant la réalité c'est que le programme obtenu grâce à cette recompilation, ne se débrouille pas tout seul. Le JIT n'a pas vraiment disparu, mais se construit à la demande, dès que l'exécution tombe sur une adresse que l'analyse statique n'avait pas repérée (un appel indirect, typiquement). Sans ce filet de sécurité, le jeu se figerait sur un écran noir. Je vois bien comment ça marche parce que c'est ce que j'ai exploré avec mon outil de recompilation Kompote.
Et ensuite, le jeu recompilé continue de passer par la couche d'émulation de suyu pour ses services système et son GPU. Bref, on est encore loin du jeu Switch qui tournerait tout seul sur votre PC, mais je n'ai aucun doute sur le fait que ça arrivera bientôt.
Notez que les binaires téléchargeables datent tous du 4 septembre, alors que les derniers correctifs ont été committés les 12 et 13. Il faudra donc compiler le code pour profiter de cette dernière version.
Quant à savoir pourquoi le projet s'arrête maintenant, l'équipe n'en dit pas un mot mais je sais juste qu'un
avis DMCA de Nintendo
avait déjà emporté son dépôt principal en juillet 2024, et qu'un
nouvel avis du 17 août dernier
avait fait tomber d'un coup 307 dépôts dont l'adresse contenait le mot suyu.
Mais rassurez-vous, ça ne veut pas dire que l'émulation Switch s'arrête pour autant puisqu'un
fork
a repris le code dans la foulée et enchaîne déjà les versions.
Et
Eden
, le projet dont suyu descend directement, continue tranquillement sa route sur son propre serveur, loin de GitHub, avec une version publiée en juin et un dépôt encore actif à la mi-septembre. C'est donc là qu'il faut regarder si vous cherchez un émulateur Switch encore suivi.
Source : le dépôt archivé de suyu et l'article de
Wccftech
Vous avez une carte Radeon dans le PC, et un logiciel boosté à l'IA qui refuse de se lancer ailleurs que sur de la NVIDIA ? Roooh c'est dommage ! Cet outil vous réclame probablement CUDA en dur et malheureusement, personne n'ira faire une version fonctionnelle pour votre carte AMD.
Alors on fait quoi ? On se roule en boule et on chiale ? Bah non, on installe
CUDA-for-AMD-Windows
comme des guerrier(e)s et on avance dans la vie !
Ce projet est assez unique puisqu'il n'écrit pas une seule ligne de traduction CUDA. En réalité c'est un jeu de scripts PowerShell qui monte la pile à votre place avec
ZLUDA
d'un côté, qui fait le travail de traduction depuis des années, et le
HIP SDK d'AMD
de l'autre, qui fournit les bibliothèques de calcul.
Car c'est justement ce qui manquait sous Windows. Le pilote Adrenalin vous donne le runtime, mais pour le reste de ROCm, demmerdez-vous entre un SDK officiel en retard et des compilations nocturnes buggées... Breeeeef.
Du coup, ce script d'installation fait ce tri pour vous. Il repère votre carte et son architecture gfx, vérifie que le pilote AMD et le HIP SDK sont là, télécharge une version précise de ZLUDA et, si votre programme en a besoin, LibTorch. Il compare les empreintes SHA-256 des archives, et finit en lançant le contrôle de ZLUDA sur votre machine. Une fois les prérequis AMD en place, ça tient ensuite en trois lignes :
git clone https://github.com/Speedstu/CUDA-for-AMD-Windows.git
cd CUDA-for-AMD-Windows
powershell -ExecutionPolicy Bypass -File .\scripts\install.ps1
Prévoyez quand même de la place car ce bon vieux LibTorch pèse 2,66 Go à lui seul. Notez quand même qu'un -SkipLibTorch vous en dispensera si votre logiciel ne s'en sert pas. Après ça, vous lancez votre exécutable avec run-zluda.ps1, qui pose les DLL de compatibilité à côté de lui, met les bibliothèques HIP sur le PATH et passe la main à zluda.exe.
cuBLAS, cuBLASLt, cuSPARSE et cuFFT, sont donc bien redirigés vers rocBLAS, hipBLASLt et rocSPARSE, mais pas cuDNN...
En effet, le HIP SDK Windows stable ne fournit pas la pile IA complète de ROCm, celle qu'on a sous Linux, et les contrôles cuDNN de ZLUDA se plantent sans un backend compatible MIOpen. Donc si le logiciel que vous voulez lancer tape lourdement dans les convolutions, faudra vous arrêter là. NCCL, TensorRT ou une extension CUDA maison peuvent échouer aussi...
Bref, l'auteur ne promet rien de magique ni d'universel mais ça se tente quand même selon ce que vous voulez lancer.
Ajoutez à ça qu'une seule carte est validée, la Radeon RX 9060 XT, et qu'une seule appli est réellement passée de bout en bout. On est donc sur de l'hyper expérimental
Voilà, avant de vous lancer là-dedans, regardez si vous en avez vraiment besoin car AMD a fini par apporter un support officiel de PyTorch et du HIP SDK à Windows, avec les composants ROCm 7.2.1. Sa
matrice de compatibilité
indique que côté grand public, la RX 9060 XT justement, mais aussi les RX 9070, la RX 7900 XTX et la RX 7700 sont supportés. Si votre besoin c'est donc PyTorch, moi je prendrais cette route-là à votre place car elle est native.
À récupérer sur GitHub si vous avez un logiciel qui refuse de démarrer à cause de CUDA.
OpenDisplay
est un outil open source qui vous permet d'avoir un affichage déportée de macOS sur n'importe lequel de vos appareil Apple dont vous ne faites rien. Et ce n'est pas une recopie basique de votre bureau, mais bien un écran que macOS affichera dans ses réglages d'affichage, et sur lequel vous pourrez faire glisser vos fenêtres comme sur n'importe quel écran externe.
Alors oui, je saiiiis, Sidecar fait déjà ça, et gratuitement en plus, mais Apple s'est arrêté à l'iPad et les deux appareils (votre iPad + votre ordi) doivent être connectés avec le même compte Apple. Du coup, votre iPhone ou un vieux Mac qui ne sert plus, n'ont jamais été invité à la fête, et les appareils Apple de votre conjoint.e encore moins.
Pour faire fonctionner ça, une seconde application, OpenDisplay Receiver, s'installe dessus et le transforme ainsi en écran. Elle ne réclame que macOS 12 Monterey, ce qui permet à des Macs sortis à partir de 2015 environ de rester dans le game. Le Mac qui envoie l'image, lui, devra être sous macOS 14 minimum.
Côté installation, l'application iPhone et iPad est sur l'App Store, totalement gratuite, à partir d'iOS 16.4. Votre Mac principal, lui, récupère de son côté un DMG signé et notarisé par Apple (ça veut dire que ça s'ouvre au double-clic sans que Gatekeeper vienne râler et ça c'est cool).
Ensuite vous branchez le matos, et comme OpenDisplay passe par usbmuxd qui est un service déjà présent dans votre macOS, il n'y a pas d'outil tiers et pas de tunnel à monter, ça se connecte tout seul. Attention quand même au câble, car il doit transporter des données. Cela veut dire qu'un câble lambda de charge seule ne fonctionnera pas. Et une fois l'écran en place, l'appareil deviendra tactile pour le Mac, donc, vous pourrez faire défiler Korben.info avec vos deux doigts, like a boss !
Par contre, si vous souhaitez utiliser la connexion via le Wi-Fi, sachez qu'il y a un petit bug au niveau du curseur de la souris. Donc, en attendant que ce soit résolu, je vous invite vraiment à passer par le câble. Niveau sécurité, il y a un petit truc à savoir aussi : le flux vidéo qui circule sur le Wi-Fi se fait sans chiffrement.
Alors normalement, chez vous, ça ne devrait pas poser de problème, mais sur un réseau partagé ou public, je vous invite vraiment à brancher le câble USB. Parce que sinon, ça veut dire que n'importe qui pourrait récupérer votre flux d'écran en passant par la même borne Wi-Fi que vous. Un transport chiffré avec appairage des appareils est prévu, il n'est pas encore là.
Dernière chose à savoir avant de vous lancer : l'application Mac s'appuie sur CGVirtualDisplay, une API privée de CoreGraphics, la même que celle de
DeskPad dont je vous avais parlé
. C'est pour ça qu'elle n'est pas distribuée sur l'App Store, et malheureusement, une mise à jour de macOS peut très bien la casser.
Voilà, si vous avez un iPhone qui prend la poussière ou un vieux MacBook / iMac au fond d'un placard, c'est à tester !
Jusqu'à présent, personne ne l'avait remarqué, mais sur l'écran d'installation de Windows 11 Home, celui qui vous réclame un compte Microsoft avant de vous laisser aller plus loin, il y a un tout petit lien "Learn more" planqué au milieu d'un paragraphe. Personne ne clique jamais dessus mais
Bob Pony, lui, l'a fait
et magie-magie, Windows l'a propulsé directement sur la création d'un compte local.
Sur la page qui s'ouvre, on vous demande alors le nom de celui qui va utiliser cet ordi, puis derrière, c'est un mot de passe, trois questions de sécurité, et hop vous voilà sur le bureau avec votre compte local ! C'est top non ? Plus besoin de vous prendre la tête avec une invite de commandes, ou des clés de base de registre !
Plusieurs sites ont fait le test, moi je n'ai pas encore eu le temps, mais apparemment ça fonctionne très bien sur la version Home de Windows 11 mais je ne sais pas pour la version Pro.
Faut dire que ça fait un an que Microsoft ferme les autres portes du compte local. La clé de registre BypassNRO, puis la commande ms-cxh:localonlydont je vous parlais l'automne dernier
, ont été rebouchées les unes après les autres dans les préversions, avec à chaque fois la même explication foireuse : Ces bidouilles laissaient soi-disant des gens sortir du process d'installation avec une machine qui n'était pas entièrement configurée. Sauf que ce lien qui mène exactement au même compte local, lui, bah visiblement il a échappé à Microsoft... lol.
Un truc à savoir quand même avant de choisir le compte local, et
c'est Microsoft qui le dit
: le chiffrement de l'appareil ne s'activera pas tout seul. Quand vous ouvrez la session avec un compte Microsoft, il boote et la clé de récupération va se loger dans ce compte alors qu'avec un compte local, il reste inactif. Ça peut bien sûr se régler en allant dans les Paramètres, Confidentialité et sécurité, Chiffrement de l'appareil, mais faut y penser avant le jour où votre portable partira sous le bras de quelqu'un d'autre pendant que vous tapez votre meilleure sieste dans le TGV...
Alors maintenant, combien de temps tiendra cette astuce ?
Aucune idée, mais on espère tous que Microsoft laissera ça tranquille. Et si le lien a disparu quand vous lirez ces lignes, sachez qu'il reste des chemins qui passent par le média d'installation notamment via
Rufus, que je vous ai déjà présenté
. Suffit de cocher une case et hop, ça vous fera une clé USB qui ne réclamera aucun compte.
Voilà, si vous avez une machine à installer ce week-end, c'est donc le bon moment de tester cette astuce !
Ce matin,
lors de mon live sur Twitch
, je présentais un petit peu les nouveautés que j'avais mises en place sur mon site, et parmi elles, les kits IA.
Et je me suis dit que c'était un peu con parce que je ne vous en ai pas parlé publiquement. Donc on va régler ça ici, maintenant, tout de suite !
Vous le savez, je suis toujours à la recherche d'idées un peu sympas, d'innovations, de trucs un peu cool à faire sur mon site. Et comme il m'arrive souvent de faire des tutoriels pour vous expliquer comment installer telle ou telle saloperie sous Linux, sur un Docker, sur un Windows, etc., je me suis dit qu'en plus du tutoriel, ce que je pouvais vous proposer, c'était des petits fichiers zip qui embarquaient tout le savoir de mon tuto.
Des kits avec une vraie expérience derrière, afin que votre agent IA puisse installer le même outil que moi en autonomie complète. Voici donc le genre d'encadré que vous pourrez retrouver dans certains de mes articles :
Comme ça, au lieu de suivre le tuto et de taper vous-même les lignes de commande, vous donnez mon zip et le prompt qui va bien fourni avec à votre agent, qui peut être Claude Code, ChatGPT, Codex ou encore des choses open source et locales, comme par exemple une combinaison de Qwen 3.7 avec OpenCode. Et ensuite, celui-ci se débrouille sur votre machine pour faire tourner l'outil qui vous fait envie.
Maintenant, pour produire ces kits IA, je ne fais pas ça n'importe comment : ça repose sur de vraies installations réalisées de A à Z, ça repose aussi sur la doc officielle du projet, ce qui permet comme ça, d'anticiper les problèmes que vous pourriez avoir sur votre machine. Comme ça, l'agent sait ce qu'il a à faire, si jamais il rencontre un petit blocage parce que vous avez un souci de permission ou qu'une version de Python n'est pas la même, etc. Et cela peu importe l'OS.
Et comme dans le kit, ce sont essentiellement des fichiers Markdown accompagnés de scripts Python, Shell, PowerShell, etc, vous pouvez évidemment tout relire, tout vérifier...etc.
Voilà, si ça vous intéresse, vous pouvez retrouver
l'ensemble des kits IA ici
. Il n'y en a pas encore beaucoup, mais à chaque fois que je ferai un tuto, j'en ferai un.
Quand on déménage, il y a ce moment bizarre où la maison est encore à vous mais où vous n'y êtes plus. L'alarme doit continuer de tourner, les caméras aussi, sauf que la ligne Internet, elle, s'en va avec le reste. Et c'est exactement ce petit souci que ce routeur est venu arranger chez moi.
Le
Deco BE25-5G
(lien affilié) est un routeur mesh Wi-Fi 7 avec un modem cellulaire dans le ventre. Je l'ai posé dans mon ancienne maison, branché sur un onduleur, avec une carte SIM dedans... et c'est tout. Comme ça j'ai pas eu besoin de garder mon abonnement fibre ouvert pendant des mois pour trois caméras et ma centrale d'alarme.
La nano SIM Bouygues engagée sous le boîtier, numéro de série et QR code masqués
Pour la mise en route, y'a rien à raconter, et c'est un compliment. On glisse la nano SIM dans la fente sous l'appareil, on lance l'app Deco, on suit le process d'install et c'est plié. Et si vous avez déjà des Deco, c'est encore plus rapide puisque celui-ci se marie très bien avec tous les modèles de la gamme.
Du coup, j'ai ressorti certains de
mes vieux Deco
pour les mettre en satellite et pousser le signal jusqu'au fond du terrain, là où une caméra ne captait pas grand-chose. Ça a très bien fonctionné !
Le dos de l'emballage, avec le détail des ports et du tiroir nano SIM
Côté connectique, on y trouve deux ports 2,5 Gbps et un port 1 Gbps qui basculent entre WAN et LAN tout seuls, plus un port USB dont je n'ai rien fait mais sur lequel j'aurais pu brancher une clé ou un disque pour avoir un peu de stockage partagé. Ensuite, dedans, on trouve pas moins de 8 antennes 5G/4G/3G et trois antennes Wi-Fi. Hé oui, tout ça rentre dans le cylindre blanc de 118 × 118 × 198 mm et ne consomme que 25 W au maximum.
Le constructeur, lui, annonce 4,67 Gbit/s en descendant côté cellulaire, et 2 882 Mbit/s sur le 5 GHz plus 688 Mbit/s sur le 2,4 GHz côté Wi-Fi. Alors comme d'habitude, ces chiffres-là sont des plafonds de classe de modem et personne ne les verra jamais sur son écran. Mais ce que j'ai constaté, moi, c'est que ça a tenu durant tout mon déménagement, que les vidéos en live des caméras étaient clean et que je n'ai donc pas eu besoin d'y retourner en urgence.
TP-Link annonce quand même une connexion combinée, sans fil + filaire en même temps pour mutualiser la 5G et la fibre chez vous... sauf que la fonction n'est pas encore prise en charge par la version actuelle du firmware, donc faudra attendre encore un peu.
Le boîtier a aussi deux prises d'antenne externe à l'arrière, du coup si votre maison est dans un creux et que la 5G y arrive à peine, vous pourrez lui adjoindre des antennes en plus ! Ils ont vraiment pensé à tout !
Un mot encore pour ceux qui voudraient monter le même bricolage de surveillance alarme + caméra en remote. Derrière une SIM mobile, vous n'avez pas d'adresse IP publique, donc oubliez la redirection de port vers un enregistreur local. Mes caméras passaient donc par le cloud de leur constructeur et c'est pour ça que ça a fonctionné. Surveillez aussi votre forfait, parce que des caméras qui poussent de la vidéo en continu, ça peut avaler des gigas bien plus vite qu'on ne croit.
Reste le prix... 399,99 €
sur la boutique officielle
(lien affilié), en promotion donc (le prix d'origine étant de 429,99 €). C'est cher pour un routeur, c'est vrai mais nettement moins que
le BE65-5G que j'avais testé
, et si vous avez une maison à garder connectée parce que la fibre ne passe pas ou parce que vous n'en aviez pas spécialement besoin, c'est un super boîtier avec les dernières techno Wi-Fi, des tas de paramètres super cools (contrôle parental, QoS, portail captif, VPN local...etc) sur lequel tous les appareils de la maison pourront se connecter en totale transparence.
Si vous avez déjà voulu essayer une distrib sans toucher à votre machine, vous connaissez la corvée... Faut dénicher la bonne ISO (32/64 bits, ARM...etc), créer la VM, et passer 20 minutes dans des réglages pour que ce soit joli ou qu'on puisse y faire du copier coller dans l'hôte et l'invité.
Boxes
, l'application de virtualisation du projet GNOME, vous permet d'éviter tout ça et c'est top si vous aimez économiser un peu de jus de cervelle. Vous choisissez le système dans une liste, et il va chercher l'image et l'installe tout seul en VM pendant que vous faites autre chose, par exemple venir
sur Twitch regarder mon live
.
La liste couvre Debian, Fedora, Ubuntu, OpenSUSE, CentOS Stream, Red Hat Enterprise Linux et Windows. Pour son fonctionnement Boxes s'appuie sur du solide avec qemu-kvm, libvirt-glib et spice-gtk, donc le code de votre système invité s'exécute directement sur le processeur de l'hôte via KVM, pour obtenir ce que la doc de GNOME appelle des "performances proches du natif".
Une fois la VM créée, vous lui fixez la quantité de mémoire et le stockage qu'elle a le droit de prendre sur votre système, histoire qu'elle ne vous freeze pas la machine. Et bien sûr, vous pouvez prendre des instantanés pour la ramener à un état antérieur, ce qui est la fonction qu'on utilise tout le temps, si comme moi vous aimez casser volontairement vos OS avec des bidouilles alternatives des enfers.
Le reste, c'est du confort : vous branchez une clé USB sur votre machine et vous la redirigez dans la VM, le presse-papiers est partagé entre les deux, et vous déposez un fichier depuis votre gestionnaire de fichiers dans la fenêtre de Boxes pour l'envoyer à l'invité.
L'affichage des VMs dans Boxes se redimensionne tout seul quand vous changez la taille de la fenêtre, et il y a même de l'accélération 3D pour certains des systèmes supportés.
Après, cette "simplicité" se paye puisque des choses comme la config des adaptateurs réseau ou la mise à jour du matériel virtuel,
n'est pas visible dans l'interface
. Et comme le Flatpak embarque toute la pile de virtualisation dans son propre conteneur, vous n'irez pas rattraper ça en douce dans les fichiers. Donc si vraiment vous avez besoin de mettre les mains dans le cambouis au niveau de ces réglages-là, prenez plutôt virt-manager dès le départ, c'est fait pour.
Son auteur, Felipe Borges a d'ailleurs réécrit entièrement l'application en GTK4 et
partage ses résultats depuis août
. Cette version-là installe dorénavant Windows 11 sans le moindre contournement manuel, en configurant Secure Boot et un TPM virtuel automatiquement. C'était la fonction la plus réclamée sur la version classique et elle ajoute aussi un périphérique VSOCK, qui permet de se connecter directement en SSH sur les VM en systemd 256 ou plus récent.
Attention quand même, ça reste une bêta destinée aux tests et pas à la production, et son auteur conseille de sauvegarder les données de vos VM avant d'y aller. Il précise aussi qu'il travaille là-dessus sur son temps libre, en plus de maintenir GNOME Settings et de son job à temps plein chez Red Hat ! Encore un hyperactif !! lol. Donc soyez patient si vous ouvrez un ticket de support.
Pour ce qui est disponible aujourd'hui, Boxes ne tourne que sur Linux, la version stable est la 50.0 sortie depuis mars 2026, et ça se télécharge via Flathub comme ceci :
flatpak install flathub org.gnome.Boxes
Dernier truc à savoir, Felipe, le mainteneur, a proposé de
retirer Boxes du cœur de GNOME
pour en faire une application indépendante, et le retrait est programmé pour GNOME 52 en mars 2027. Flathub deviendra alors le seul canal officiellement supporté, et le nom perdra son "GNOME" pour devenir simplement Boxes. L'identifiant Flatpak ne bougeant pas, les installations existantes continueront de se mettre à jour sans rien casser.
Et si vous voulez comparer avec une autre solution similaire, je vous avais déjà parlé de
QuickEmu pour monter des VM
sans y passer l'après-midi, mais Boxes, lui, joue sur le terrain du tout à la souris, et ça j'imagine que ça vous plait plus !
Si vous avez une petite console rétro portable qui traîne, du genre une Miyoo Mini, une TrimUI Brick, une
Anbernic RG35XX
, vous avez sans doute remarqué que l'interface livrée avec fait le job mais sans plus. Ça tombe bien, spruceOS est là pour ça ! Et malgré son nom, ce n'est pas vraiment un système d'exploitation. En réalité, il s'agit d'un frontend codé en Python qui vient se poser sur une base système déjà existante. Le code est public, sous une licence Creative Commons donc pour les plus capitalistes d'entre vous, ça veut dire pas d'usage commercial sans permission écrite de l'équipe.
Sur les Miyoo et les TrimUI, la base en question est le système d'origine de la console, celui du fabricant. Sur les Anbernic à puce H700 et sur la Powkiddy RGB30, il faut d'abord installer une base tierce sur la première carte mémoire, genre BaseOS pour les Anbernic, dArkMoss pour la Powkiddy. La carte spruce, elle, ira dans le second emplacement, le TF2, et elle restera librement échangeable d'un appareil supporté à l'autre. Rien de dramatique donc, mais ça fait une étape de plus et une carte en plus.
Ce que vous y gagnez si vous installez spruceOS, c'est surtout du confort au quotidien. Vous maintenez le bouton HOME pendant trois secondes et le Game Switcher vous laisse sauter d'un état de sauvegarde à l'autre sans quitter votre partie. Quand vous éteignez la console en plein jeu, elle sauvegarde même toute seule son état et vous remet exactement là où vous en êtiez au rallumage. Et si votre console a le Wi-Fi, vous ne repassez plus par le PC pour l'habiller puisque l'outil Theme Garden pioche dans plus de quatre-vingts thèmes communautaires dispo en ligne, le Game Nursery télécharge des portages gratuits / homebrew, et un scraper récupère même les jaquettes des jeux depuis la base libretro.
Le menu principal de spruceOS, avec les quatre icônes du thème SPRUCE par défaut
Ce qu'il vous faut avant de commencer
Il vous faut une carte microSD neuve, d'une vraie marque, achetée chez un revendeur sérieux ainsi qu'un bon lecteur de cartes. Et bien sûr un ordinateur sous Windows, macOS ou Linux avec une connexion Internet.
Et surtout, n'utilisez pas la carte livrée avec la console. C'est pas moi qui le dit mais le wiki du projet qui est catégorique là-dessus, en majuscules dans le texte : "DO NOT USE THAT STOCK SD CARD!", parce qu'elle est mauvaise, que les jeux dessus sont mauvais et que les BIOS le sont aussi. Donc gardez-la dans un tiroir, elle vous servira pour revenir en arrière en cas de foirage.
L'installation en un clic
L'équipe a sorti un installeur tout-en-un, qu'elle présente comme entièrement open source, disponible pour Windows, Linux et macOS. Il formate la carte, télécharge la version que vous choisissez et l'installe, en une seule opération. Une seule précaution, et le projet la signale lui-même : vérifiez bien que le lecteur que vous désignez est votre carte, parce que l'installeur écrit sur celui que vous lui montrez. C'est le chemin recommandé, et c'est aussi lui qui règle le cas des Anbernic et de la Powkiddy : BaseOS et dArkMoss ont chacun leur onglet dans l'application et se téléchargent puis s'installent automatiquement, sans que vous ayez à aller chercher une image ailleurs.
Un détail qui coince sur Mac, et qui n'est écrit nulle part ailleurs que dans le dépôt : macOS interdit aux applications d'écrire sur un disque amovible sans permission explicite, et l'installeur passe par le Terminal. Il faut donc aller dans Réglages Système, Confidentialité et sécurité, Accès complet au disque, ajouter Terminal, puis quitter et rouvrir le Terminal. Ce dernier point compte, la permission ne s'applique pas à une session déjà ouverte.
Sur Mac, Terminal doit figurer dans Accès complet au disque pour que l'installeur puisse écrire sur la carte (
Source
)
L'installation à la main
Si vous préférez faire ça vous-même, il vous faut un utilitaire de formatage et 7zip. Vous formatez la carte en FAT32, avec Rufus sous Windows ou l'Utilitaire de disque sous macOS en choisissant MS-DOS (FAT32). Vous récupérez l'archive spruce.vX.X.X.7z sur la page des versions du dépôt, vous l'extrayez sur votre ordinateur, puis vous copiez le contenu extrait sur la carte. Vous éjectez proprement, vous insérez la carte dans la console et vous allumez.
Et là, attention au piège, puisque le paquet contient un dossier caché nommé .tmp_update, et sans lui spruce ne fonctionnera tout simplement pas. Donc affichez les fichiers cachés avant de les copier : sur Mac c'est Commande + Majuscule + point, et sur Ubuntu le dossier est masqué par défaut lui aussi. Sur Mac, pensez aussi à nettoyer les fichiers .dot parasites avant d'éjecter la carte. Un utilitaire comme
CleanEject
fait ça très bien.
Vos jeux et vos BIOS
Les ROMs se rangent ensuite dans un dossier Roms, avec un sous-dossier par machine. La plupart des noms sont évidents, mais certains noms piègent tout le monde comme SFC ou FC. Hé oui, les jeux Super Nintendo vont dans SFC, pour Super Famicom, et pas SNES ; les jeux NES vont dans FC, pour Famicom, et pas NES. Les vidéos et la musique, elles, vont toujours dans MEDIA.
Les BIOS se posent dans un dossier BIOS à la racine de la carte, mais il faut les placer dans le sous-dossier qui va bien par machine et pas tout balancer en vrac. Le BIOS de la Dreamcast veut son sous-dossier, certains sont obligatoires pour que la machine tourne, d'autres pas. Donc je vous invite à vous renseigner en fonction de la machine que vous voulez émuler. Et comme d'hab, le BIOS de la NeoGeo ne va pas dans BIOS mais avec les jeux.
BIOS/dc/dc_boot.bin Dreamcast, obligatoire
BIOS/gba_bios.bin Game Boy Advance, facultatif
Roms/NEOGEO/neogeo.zip NeoGeo, obligatoire, et pas dans BIOS
Et évidemment, le projet ne fournit ni ROMs commerciales ni BIOS et ne vous dira pas où les trouver, donc c'est à vous de voir avec vos propres cartouches et vos propres disques.
Si l'écran reste noir
Maintenant, si c'est tout noir au lancement, vérifiez que le dossier .tmp_update est bien présent sur la carte. Remettez-la dans l'ordinateur, réaffichez les fichiers cachés, et regardez : si vous avez copié sans avoir activé l'affichage, il n'y est pas. L'autre suspect, c'est la carte elle-même. C'est peut-être parce que vous avez acheté une no-name de merde.
Le moment où vous ne pourrez plus revenir en arrière
Tant que vous ne touchez qu'à la carte, vous ne risquez rien de définitif. Sur la famille Anbernic RG35XX, les guides de référence le disent tous : ces firmwares vivent entièrement sur la microSD, et donc on peut passer de l'un à l'autre sans modification permanente de l'appareil. Ailleurs le principe est le même, et pour retrouver votre console en version d'usine il suffit donc de remettre la carte d'origine.
Sauf qu'il y a UNE exception !! spruce embarque un Firmware Updater qui apparaît tout seul dans vos applications si votre console tourne sur un firmware ancien. Celui-là n'écrit pas sur la carte mais dans la mémoire interne de la machine, et le wiki prévient sans détour : "Failure to follow the firmware updating instructions can lead to a bricked device.". En gros si vous le lancez pour faire la mise à jour du firmware, ça peut bricker votre console, donc pensez bien à la brancher sur le courant avant la mise à jour. Le projet documente d'ailleurs deux procédures de débriquage, dont une qui demande carrément d'ouvrir la Miyoo Flip et de débrancher sa batterie, ce qui vous dit assez bien à quel point on a quitté le terrain du réversible...
Et si spruceOS ne vous convient pas, vous ne serez pas coincé pour autant car sur ce même matériel,
le guide de référence de Retro Game Corps
recommande aussi
Knulli
pour son interface EmulationStation, ou encore
muOS
pour la performance d'émulation la plus avancée, à condition que le bricolage de configs customs ne vous rebute pas. Après voilà, chaque "OS" a sa carte et vous changez d'avis quand vous voulez.
Vous savez ce que c'est une caméra thermique ? Oui, probablement, mais au cas où, c'est un appareil qui affiche les écarts de température sous forme de couleurs, pour chercher un défaut d'isolation autour d'une fenêtre par exemple ou repérer un composant qui chauffe trop. Avec la Thermal Master P3, cette image apparaît sur votre téléphone, grâce à un petit module branché à sa prise USB-C.
Il faut d'abord installer l'application du fabricant, puis connecter la caméra à un smartphone Android ou à un iPhone compatible. L'adaptateur Lightning est dans la boîte pour les anciens iPhone, et l'alimentation passe par le téléphone : la P3 n'a aucune batterie à recharger avant de s'en servir. C'est franchement pratique.
Son boîtier en métal mesure environ six centimètres de long, avec un étui de protection pour le rangement. J'aime bien la présence d'une rallonge USB-C de 50 cm dans le paquet, parce qu'on peut tourner la caméra vers un coin difficile d'accès tout en gardant le téléphone dans une position confortable.
La bague dorée autour de l'objectif règle la netteté. Vous la tournez jusqu'à distinguer correctement ce que vous regardez, avec la possibilité d'approcher la caméra très près de n'importe quel appareil, pour observer ses petits composants. C'est clairement intuitif, même si vous n'avez jamais utilisé ce genre de truc avant.
Le capteur de 256 x 192 pixels fournit 25 images par seconde. L'image permet de localiser les zones chaudes sans trop de difficulté, et vous pouvez afficher la température d'un point ou rechercher les valeurs les plus chaudes et les plus froides dans une zone sélectionnée.
Il y a aussi un mode X3 qui agrandit l'image à 512 x 384 pixels par traitement logiciel, sans augmenter la résolution du capteur, et peut ralentir l'affichage selon le téléphone utilisé. C'est moins indispensable mais ça peut dépanner.
La plage de mesure annoncée s'étend de -20 à 600 °C, mais attention, la caméra mesure la température des surfaces, elle ne voit pas à travers les murs.
Une zone froide est donc une bonne piste pour rechercher un problème d'isolation, mais il faut comprendre son origine avant de décider de travaux, en comparant les différentes zones du logement plutôt qu'en interprétant une seule image.
En ce moment le produit est à
299 euros sur Amazon
, contre 349 euros en général, si vous avez déjà considéré de vous équiper, c'est le bon moment.
C'est par ici
.
Un univers dystopique contrôlé par un gouvernement totalitaire. Des robots, drones et caméras de surveillance qui épient les faits et gestes de la population. Heureusement il ne s'agit pas du futur de notre société (quoi que ?) mais de celui du jeu
ANTRO
que je voulais vous présenter.
Parce qu'au-delà de l'univers plutôt cool à la Blade Runner, c'est un petit jeu au gameplay plutôt original et super fun. Basiquement, c'est un jeu de plate-forme type "runner", dans lequel il faut courir et éviter les obstacles. L'originalité vient du fait que 1) l'univers et les décors sont bien travaillés avec pas mal de choses qui se passent en arrière plan, 2) les mouvements sont calés sur la musique.
C'est fluide et c'est juste trèèès satisfaisant. :D Les musiques en question sont vraiment cools, et taillées sur mesure pour les différents niveaux (ou alors c'est l'inverse ?). L'histoire n'est pas révolutionnaire mais on s'attache à notre petit livreur / graffeur. Ajoutez à cela un peu d'exploration avec notamment quelques secrets bien planqués, quelques mini-jeux et énigmes, et vous devriez passer, comme moi, un bon moment.
Sachez tout de même que ce moment est de courte durée : comptez environ 1h20 pour faire l'aventure de bout en bout. Ce n'est pas un défaut en soi mais il vaut mieux le savoir en avance. 😅 Je vous conseille donc de l'attraper quand il sera en promo, car le prix initial de 15€ me semble un peu exagéré.
Tomb Raider tourne désormais sur une carte de développement équipée d'un ESP32-P4, un microcontrôleur destiné à piloter des appareils électroniques. Le développeur Alejandro Villegas Alonso, connu sous le pseudo alexkid77, y a adapté OpenLara, le moteur libre qui permet de faire fonctionner le premier jeu avec ses données d'origine.
Pas d'émulateur PlayStation ici. Le programme ne cherche pas à reproduire le fonctionnement complet de la console : il exécute une version du moteur adaptée à cette puce, avec le calcul des images assuré par le processeur. Le travail porte donc sur le jeu lui-même et sur son utilisation des ressources disponibles.
La carte retenue s'appelle ESP32-P4-Function-EV-Board. La configuration documentée dispose de deux cœurs à 400 MHz, de 16 Mo de mémoire flash pour stocker le programme et de 32 Mo de mémoire de travail externe. Il faudra ce matériel ou un sérieux travail d'adaptation, pas simplement ressortir n'importe quel ESP32 oublié dans un tiroir.
L'image est calculée en 320 x 240 pixels, puis agrandie pour remplir un écran de 1 024 x 600 pixels. Cette seconde opération utilise le PPA, l'accélérateur de traitement des pixels intégré à la puce, ce qui évite de demander au moteur de dessiner toute la scène dans la définition de l'écran.
Le dépôt annonce 30 images par seconde. Le résultat est assez réjouissant pour une carte qui n'a pas été conçue comme une console de salon.
L'adaptation prend aussi en charge le son, les sauvegardes sur carte microSD et un compteur d'images par seconde que l'on peut afficher avec F12. Un clavier USB est nécessaire pour jouer : les flèches servent aux déplacements, et la barre d'espace permet de sauter.
Pour préparer la carte, le développeur indique d'utiliser ESP-IDF, l'environnement de développement d'Espressif, en version 5.4 ou plus récente. Il faut compiler le projet, puis transférer le programme sur le microcontrôleur. Du coup, ce téléchargement vise surtout ceux qui aiment déjà bricoler du matériel.
Les fichiers du jeu doivent être ajoutés séparément dans un dossier data sur la microSD. OpenLara fournit le moteur, pas les niveaux et les images du Tomb Raider commercial, et le portage ne fonctionne pas sans ces données. La documentation précise aussi que les sauvegardes et le cache sont écrits sur cette carte.
Perso j'aime bien ces projets qui donnent un nouveau terrain de jeu aux vieux moteurs.
Apple Configurator est un outil gratuit qu'Apple fournit aux écoles et aux entreprises pour préparer des iPhone par paquets de cent. Si ça vous dit quelque chose, c'est parce que c'est aussi l'outil que j'ai utilisé pour mon
tuto sur le pair locking
. Mais cela ne veut pas dire que vous ne pouvez pas l'utiliser pour votre propre plaisir ! En effet, rien n'empêche de le lancer sur le vôtre, et ce qu'il vous permet alors de faire est plutôt radical : faire disparaître l'App Store de l'écran d'accueil.
Vous branchez l'iPhone sur un Mac en USB, vous le passez en mode supervisé, puis vous vous fabriquez un profil de configuration que vous lui poussez. Cela permet par exemple de limiter la présence de certaines app pour ainsi transformer votre téléphone en dumbphone. Ça permet donc de lutter contre vos démons de la perte de temps que sont par exemple les réseaux sociaux.
La case à décocher dans Configurator s'appelle "Autoriser l'installation d'apps à l'aide de l'App Store". Une fois que c'est fait et que le profil est déployé sur le téléphone, l'icône de l'App Store n'apparaît plus sur l'écran d'accueil, et l'utilisateur ne peut plus installer ni mettre à jour ses apps (snif).
Les trois sous-cases de l'installation d'apps, toutes marquées "appareils supervisés"
Ensuite, reste à empêcher le propriétaire du téléphone (c'est-à-dire vous) de retirer ce profil 5 minutes plus tard. Ça se règle dans l'onglet Général du profil, avec un menu qui contrôle quand celui-ci peut être supprimé, et que vous basculez sur "Jamais".
Sauf que Jamais ne veut pas vraiment dire jamais. En effet, Apple documente lui-même la sortie de secours... Pour virer ce profil, il faut effacer l'intégralité du contenu et des réglages, ce qui arrête la supervision, et le profil s'en va avec. Ce n'est donc pas une vraie prison, mais plutôt une grosse friction, et son prix c'est le contenu entier de votre téléphone.
Les apps déjà installées, elles, ne bougeront pas d'un pixel. Elles gardent leurs notifications et leur compte connecté, parce que la restriction n'efface rien du tout... Elle vous retire seulement la possibilité d'en réinstaller une. Le ménage se fait donc avant, pas après. Et avant même ça, il y a un péage puisque la supervision ne s'active que sur un iPhone neuf ou entièrement effacé, avant que l'assistant de réglages n'apparaisse pour la première fois.
La première étape consiste donc à vider votre téléphone, sauvegarde comprise. Ensuite, tant que le profil tient, plus une seule app ne se met à jour, correctifs de sécurité compris. Et une app supprimée par mégarde (votre appli bancaire, votre générateur de codes à deux facteurs) ne reviendra pas avant que vous soyez rentré rebrancher le Mac. Ça peut être problématique en voyage, donc je vous conseille aussi de décocher la case "Autoriser la suppression d'apps (appareils supervisés)" pour justement empêcher aussi la désinstallation des apps.
L'idée de mettre en place un profil comme ceci nous vient de Stepan Parunashvili, qui raconte
sur son site
être passé de 4 à 2 heures d'écran par jour en deux mois. Sa bidouille ne s'arrête d'ailleurs pas à l'App Store, puisqu'il y ajoute aussi un filtre de contenu réglé sur les sites autorisés uniquement, sans quoi les services dont on vient de retirer les applications resteraient accessibles par le web.
Si ça vous chauffe de mettre ça en place pour gagner du temps de vie, comptez deux heures d'installation environ, une remise à zéro complète de votre smartphone, et deux bonnes semaines avant que votre liste d'apps soit la bonne.
Maintenant, si ça vous semble disproportionné, ça l'est un peu.
Dumb Phone
, que je vous présentais en janvier, vise le même résultat avec les API de temps d'écran et sans rien effacer... mais il se désactive aussi super facilement.
Bref, c'est la méthode brutale, pour ceux que les méthodes douces n'aident pas.
Un développeur espagnol, Emilio Cano Pérez, vient de publier le SDK de son CanoFlash, un petit boîtier monté sur un XIAO ESP32-S3 qui se branche sur le port Link d'une Game Boy Advance. Cela ne nécessite aucune modification de la console, ni de fer à souder (cool !), et une fois branché, ça permet à la console de récupérer la connexion Wi-Fi qu'elle n'a jamais eue !
Alors comment ça fonctionne ? Hé bien le truc démarre en mode Multiboot et pousse sa propre application dans la RAM de la console. Ensuite c'est lui qui se coltine la gestion de tout le réseau, pendant que la GBA se contente d'échanger avec lui des paquets de taille fixe. En clair, un jeu n'a pas à connaître l'existence du Wi-Fi. Il parle juste au boîtier à travers le SDK dispo sur GitHub, qui lui apporte le matchmaking public, les salons privés et des parties jusqu'à huit joueurs.
Sauf qu'avant de sortir votre Game Boy du tiroir, il faut lire
la FAQ du créateur
parce qu'il y écrit que le jeu en ligne fonctionnera uniquement dans les jeux qui intègrent son SDK, et qu'il ne transforme pas automatiquement le multijoueur Link des jeux existants en multijoueur Internet. Roooh, c'est dommage quand même. Ça veut donc dire que votre cartouche collante de Pokémon Rubis ne fonctionnera pas via le Wi-Fi... Pour jouer, il vous faudra donc des homebrews compilés avec le kit, plus un boîtier et une console par joueur.
Maintenant, si c'est vraiment vos vieilles cartouches que vous voulez faire jouer à distance, l'appareil qui fait ça, c'est le
GB-Link USB dont je vous ai parlé en juin
. Lui se fait passer pour un câble Link, se relie en USB-C à un ordinateur ou à un smartphone Android, et un client web différent parle le protocole de chaque jeu : les échanges Pokémon des trois premières générations, les parties d'Advance Wars. Dans le même genre,
ChisLink
est un projet à monter soi-même dont le relais transporte les paquets des jeux compatibles avec l'adaptateur sans fil de Nintendo.
Cette limite du CanoFlash n'est d'ailleurs pas une bizarrerie de conception, parce que l'adaptateur sans fil sorti par Nintendo en 2004, c'était exactement pareil. Il était fonctionnel avec seulement à 46 jeux compatibles, tous sortis entre 2004 et 2006. Ça ne remplaçait pas non plus le câble Link.
Du coup, le CanoFlash, son vrai métier, c'est surtout de vous permettre de parcourir vos homebrews et vos sauvegardes personnelles via Wi-Fi, de flasher le jeu de votre choix sur votre cartouche réinscriptible et de synchroniser les sauvegardes, le tout sans PC.
Par contre, cette cartouche réinscriptible compatible dont je vous parle, à base de S29GL256, elle est indispensable et elle n'est ni incluse ni vendue dans la campagne Kickstarter CanoFlash. Même chose pour la batterie, même si le boîtier accepte de tourner sur USB-C. Donc comptez le prix de la cartouche en plus avant de vous emballer, et sachez aussi que la campagne Kickstarter n'est toujours pas lancée à l'heure où j'écris ces lignes.
Le
SDK, lui, est déjà là
, et il se compile sans avoir le moindre boîtier sous la main. Bref, de quoi préparer votre jeu tranquillement en attendant que le matériel existe...
L'équipe Next-gen Kaldi de Xiaomi a sorti OmniVoice, un modèle de synthèse vocale qui parle 646 langues et qui est capable de "recopier" une voix à partir d'un extrait de huit secondes minimum. Et tout ça en local et gratuitement !
Le français y est d'ailleurs la cinquième langue du corpus d'entraînement, avec 23 675 heures d'audio de référence sur les 581 000 qu'ils ont avalées. Autant dire que le modèle a entendu du français toute sa vie, et ça s'entend au résultat.
Voilà donc comment cloner votre propre voix, du début à la fin. Comptez 3,3 Go de poids que la première génération ira chercher toute seule, donc prévoyez une connexion pour ce coup-là, et quelques minutes de manipulation une fois qu'ils sont sur votre disque.
Installer OmniVoice
Pour cela, il vous faut Python 3.10 à 3.13 (PyTorch 2.8 n'existe pas encore pour 3.14, vous vous prendriez un "No matching distribution found"), et un environnement isolé (sinon vous allez casser autre chose). Sur Mac, les deux lignes suivantes suffiront puisque le modèle utilise le GPU intégré via MPS :
Sur Linux et Windows, ça devra se faire avec une carte NVIDIA (sous Windows, l'environnement s'active avec omnivoice-env\Scripts\activate) sauf que PyTorch doit venir de l'index CUDA, donc remplacez la deuxième ligne par celle-ci :
Notez que sans carte graphique du tout, ça marche quand même. J'ai rejoué la même installation dans un conteneur Linux en processeur seul, elle passe sans rien changer... mais il m'a fallu cinq fois la durée de l'audio en temps de calcul.
Une fois installé, pour savoir que c'est en place, tapez omnivoice-infer --help et là, la liste des options doit s'afficher, sans la moindre erreur d'import. Le num2words de la troisième ligne, lui, ne sert qu'au chemin Python dont je parle plus bas, alors gardez-le sous le coude.
Les 8 secondes qui font tout
C'est l'étape que tout le monde bâcle et c'est pourtant celle qui est décisive pour avoir un bon résultat. Le projet recommande entre 3 et 10 secondes, pas plus car au-delà, ça ralentit le calcul et ça dégrade le clonage. Prenez donc un passage où vous parlez sans blanc, sans "euh", sans musique derrière, et découpez-le proprement comme ceci avec
ffmpeg
(ou autre logiciel de votre choix) :
La qualité de cet extrait est très importante donc si vous enregistrez votre voix, mettez bien le micro près de la bouche, dans une pièce sans écho, et évitez les
MP3 récupéré à partir de YouTube
.
Écrivez ensuite dans un fichier ce que dit exactement l'extrait, mot pour mot. Vous pouvez sauter cette étape (le modèle transcrit alors tout seul avec Whisper), sauf qu'il téléchargera 1,6 Go de plus pour ça et qu'il se plante parfois sur un nom propre, ce qui abîme le clonage.
C'est le moment de générer !
Avant de taper quoi que ce soit, relisez bien votre texte et réécrivez les chiffres en toutes lettres. La ligne de commande n'a aucune option de normalisation, donc "2345" sortira n'importe comment alors que "deux mille trois cent quarante-cinq" se lit tout seul. C'est du côté Python que la normalisation se fait, avec normalize_text=True, la langue passée en language="fr" et le num2words de tout à l'heure... sans la langue, votre texte français part chez le normaliseur anglais qui réclamera même une lib sans version précompilée pour les Mac Apple Silicon.
Voici la commande complète :
omnivoice-infer --model k2-fsa/OmniVoice \
--text "Bonjour, ceci est un test de clonage de voix en français réalisé avec OmniVoice." \
--ref_audio moi.wav --ref_text "$(cat moi.txt)" \
--language fr --num_step 32 --output ma-voix.wav
Vous devez voir passer un "Saved to ma-voix.wav" au bout de quelques secondes. Sur mon M4 Max, j'ai compté 4 à 6 secondes de calcul pour 5,4 secondes d'audio, et moitié moins avec --num_step 16 au prix d'un peu de netteté. Au passage, le facteur 40 fois plus rapide que le temps réel qu'annonce le projet sur son site, ça a été mesuré sur un H100 avec des noyaux d'accélération maison, et pas sur un ordi de bureau...
Si la ligne de commande vous rebute, vous pouvez aussi passer par la commande : omnivoice-demo --ip 127.0.0.1 --port 8001 qui permet de faire la même chose mais dans le navigateur, avec le bouton d'import pour l'extrait et un menu déroulant pour la langue. Pensez juste à lancer export GRADIO_ANALYTICS_ENABLED=False avant, parce que l'interface web appelle les serveurs de Gradio au démarrage et qu'on n'a pas envie de leur filer nos data à ceux-là.
L'audio, lui, ne bouge pas de votre machine.
L'extrait de référence de 8 secondes chargé à gauche, la langue calée sur French, et la sortie de 5 secondes à droite une fois le clonage terminé.
Et si vous voulez vraiment débrancher la machine du réseau, faites-le dans le bon ordre, sinon la commande de génération part chercher les poids et se vautre sur un httpx.ConnectError suivi d'un LocalEntryNotFoundError. Récupérez donc le modèle d'abord, dans un dossier bien à vous :
Ensuite vous coupez tout et vous passez ce dossier à --model à la place du nom du dépôt. Ça marche même sur une machine qui n'a jamais vu Internet, il suffit d'y copier le dossier. Et si vous préférez garder le cache par défaut, un export HF_HUB_OFFLINE=1 fait la même chose. J'ai rejoué la génération avec toutes les sorties réseau refusées par le système, le fichier sort quand même en 8 secondes... donc non, votre voix ne part chez personne.
Maintenant, une fois que c'est fait, écoutez le fichier avant d'en faire quoi que ce soit, parce que le modèle avale parfois des morceaux de phrase. Sur mes 24 générations de la même phrase, 5 ont perdu ou déformé un mot. C'était presque toujours le premier ou le dernier... et ce n'est pas une surprise, c'est un bug connu de l'outil. Faut donc relancer parfois plusieurs fois pour avoir un résultat OK.
Dernier truc pour ceux qui passeront par Python : la voix se sauvegarde une fois pour toutes. model.create_voice_clone_prompt() puis .save("ma_voix.pt") produisent un fichier minuscule que les sessions suivantes rechargeront sans repasser par l'extrait ni par la transcription. Regénérez alors une phrase avec, et comparez à l'oreille : si c'est bien la même voix, vous pouvez ranger le WAV de référence.
Voici l'extrait que j'ai généré avec ma voix. Ces 6 secondes d'audio ont pris 14 secondes à la génération sur mon Mac Studio :
Le kit à coller dans votre agent
Si vous faites faire le boulot par Claude Code, Codex ou n'importe quel agent IA, voilà le brief à lui donner tel quel. J'y ai mis les pièges qui m'ont coûté un peu de temps :
Ce que vous avez le droit d'en faire
Alors le code d'OmniVoice est bien sous licence Apache 2.0, mais les poids du modèle, eux, sont sous CC-BY-NC à cause du corpus qui a servi à les entraîner. Cela veut dire que tout usage commercial est interdit. Donc si vous avez prévu un projet afin de gagner de l'argent, regardez plutôt du côté de
Chatterbox
, qui est sous licence MIT, qui parle également français et qui "tatoue" même ses sorties (vu que maintenant c'est obligatoire avec la loi IA).
Pour l'usage perso, en revanche, rien ne vous arrête, et le règlement européen sur l'IA exclut explicitement de son champ l'activité personnelle non professionnelle.
Ce qui est cool avec Omnivoice, c'est que ce clonage de votre voix se fait à 100% en local et c'est bien tout l'intérêt de la manœuvre ! Et si l'idée c'est plutôt de faire lire vos ebooks par la machine, je vous invite à jeter un œil à
MLX-Audio
côté Mac.
Auberon López vient de publier sur son blog un bouton qui freeze complètement les Mac à partir d'un simple clic dans un navigateur. Il a baptisé ça le Deathray (le rayon de la mort quoi...) et c'est un
shader WebGPU
diffusé via une page web des plus ordinaires, qu'il suffit d'ouvrir d'un simple clic sur un lien.
Ce qui arrive ensuite change d'une fois sur l'autre : Vous aurez le doit à la roue multicolore, ou la souris qui se fige, ou encore parfois des saletés magenta sur une partie de l'écran. Le reste de l'ordinateur, lui, va très bien et vous pouvez vous y connecter en SSH depuis une autre machine sans souci. C'est juste l'affichage qui ne répond plus, et il ne reviendra pas sauf si vous rebootez.
Le fait est que macOS surveille également son WindowServer, le processus qui dessine tout ce que vous voyez. S'il ne répond plus pendant deux minutes, le chien de garde déclenche un kernel panic et la machine redémarre ensuite toute seule. Mais vous pouvez aussi appuyer sur le bouton d'alimentation si vous êtes pressé, mais en croisant les doigts pour que votre navigateur ne rouvre pas l'onglet au redémarrage...
Le truc
tient dans un seul fichier
HTML, et histoire de vous expliquer un peu plus, un compute shader part dans une boucle écrite sans incrément, donc elle ne se termine jamais, et recopie indéfiniment le même vecteur en mémoire. À côté, le vertex shader qui dessine l'image lit alors cette même zone, et comme le premier ne lâche jamais la main, le second ne peut pas avancer d'un pouce.
Sauf que l'embouteillage ne reste pas cantonné au navigateur. Tous les processus qui veulent le GPU se retrouvent alors à patienter derrière, WindowServer compris, d'où l'écran figé. López dit avoir reproduit la chose dans Chrome, Firefox et Safari, sur des MacBook à puce M tournant sous macOS Tahoe. Après sur les autres systèmes testés, l'onglet rame un bon coup, puis tout rentre dans l'ordre dès qu'on ferme la page.
Mais alors pourquoi eux et pas les autres OS comme Windows ?
Hé bien parce que Windows embarque un mécanisme appelé
TDR
, qui repère qu'une carte graphique met plus longtemps que prévu à répondre et qui la réinitialise pour éviter que tout le système se bloque. Deux secondes par défaut, et le shader qui déconne se fait éjecter.
Alors que sur Apple Silicon, c'est un coprocesseur maison, l'ASC, qui pilote le GPU avec un firmware Apple et qui s'occupe de tout : énergie, ordonnancement des commandes, préemption des tâches.
Asahi Lina
, qui a retourné la puce M1 pour
écrire un pilote Linux
, a d'ailleurs relevé que si ce firmware plante, il n'y a qu'un moyen de s'en sortir. La seule solution c'est de redémarrer complètement la machine.
López a signalé le problème à Apple Security fin juillet. Apple a reproduit le bug, annoncé un correctif et donné un calendrier (confidentiel, donc on ne le connaîtra pas). Puis le 26 août, revirement complet d'Apple qui explique ne voir "aucune implication de sécurité dans ce rapport", lequel n'entraînera donc aucun changement dans ses produits. Le dossier est ensuite parti vers une autre équipe pour d'éventuelles "considérations d'amélioration".
En 2023 pourtant,
Ron Masas d'Imperva
avait déjà fait planter des Mac, des iPhone et des iPad avec un shader, en WebGL cette fois. Apple avait alors sorti le
CVE-2023-40441
, noté 6,5 sur 10, et l'avait bouché en renforçant la validation des entrées pour mieux repérer les boucles folles.
Seulement voilà, sa boucle à lui était énorme mais finie, donc détectable, alors que celle du Deathray tourne pour toujours. Et une boucle infinie, la repérer à coup sûr, c'est
le problème de l'arrêt
... donc personne ne sait faire.
López l'écrit d'ailleurs sur son site, les chercheurs en sécurité avec qui la question a été discutée donnent plutôt raison à Apple. Pour la firme, le résultat n'est qu'un plantage, un gel ou une perte de données récupérable, et ça ne constitue pas un réel problème de sécurité. Et sur le principe, ça se défend. Sauf que dans la vraie vie, si vous avez oublié de sauvegarder vos fichiers et que vous cliquez sur ce lien, vous l'avez dans l'os (et pas dans le "MacOS"... roh roh roh).
Donc non, il n'y a rien à installer pour empêcher ça et rien à attendre de Cupertino pour le moment. Voilà, sachez juste que n'importe quel couillon qui aura lu cet article pourra vous envoyer un petit lien par mail, façon rickroll des enfers, ce qui aura pour effet de freezer et faire redémarrer votre Mac.
Vous voulez vérifier un truc dans une vieille version de Python, du genre celle de 2017, histoire de voir si le bug que vous traquez vient de là. Normalement ça veut dire chercher une image Docker ou un vieux binaire de python, pour faire vos tests. Mais avec trynix, vous cliquez un lien et hop, vous avez un shell avec votre outil.
Ce site est signé Farid Zakaria, qui bricole autour de Nix depuis des années et appelle ça son "magnum opus". En gros, une machine Linux x86_64 démarre dans votre onglet, avec le paquet demandé déjà accessible dans le PATH. Rien à installer et pas de compte à se créer, ça marche direct dans le browser.
J'ai essayé ce matin avec
python3 en version 3.6.2
. Le navigateur va chercher les chemins du store, vérifie leurs signatures, et au bout d'une trentaine de secondes le prompt s'affiche. Je tape alors python3 --version, il me répond Python 3.6.2, avec la glibc 2.25 et l'OpenSSL 1.0.2l de l'époque livré avec. Et voilà comment je me retrouve avec un Python de 2017 dans un Chrome de 2026, sans rien toucher à ma machine.
Le terminal de la machine virtuelle, dans l'onglet : Python 3.6.2 répond, et les seize chemins du store sont vérifiés juste au-dessus.
Et ce ne sont pas trois démos préparées à l'avance puisque l'index recense les 310 000 et quelques versions que nixpkgs a livrées en treize ans. Toutes ne démarrent pas, attention, il n'y en a que 274 729 avec un binaire x86_64 dans le cache, et le reste est non libre, cassé, ou hors du lot.
Ce qui rend la chose possible, c'est en fait une simple ligne d'en-tête HTTP. Le cache binaire de Nix sert un access-control-allow-origin: *, donc votre navigateur a le droit d'aller y piocher tout seul. Et le plus drôle, c'est que Zakaria avait lui-même réclamé cet en-tête en 2021, pour un tout autre projet. Et 5 ans plus tard, il s'en sert pour démarrer des machines virtuelles... Qui aurait pu prédire comme dirait l'autre !
Pour l'émulation, après il n'a rien réinventé. Il a tout simplement repris prend
qemu-wasm
, le QEMU compilé en WebAssembly de ktock, et la machine virtuelle ne boote même pas vraiment, mais reprend un instantané figé à l'avance. En tout cas, c'est bien pensé et très pratique.
Du Linux dans un navigateur, je vous avais d'ailleurs déjà montré ça ici avec
cette machine virtuelle x86
. Sauf que ces trucs-là chargent une image figée à l'avance, alors qu'ici, on choisit vraiment son contenu en 1 clic.
Niveau vitesse, le projet annonce un lancement en 3 secondes, mais c'est le temps d'obtenir le shell quand tout est déjà dans le cache du navigateur. Chez moi, lors de mes tests, au premier passage, il a fallu 30 secondes, puis 7,5 secondes au suivant. Et une fois dedans ça reste poussif, parce que chaque binaire est traduit du x86 vers le WebAssembly à son premier lancement, ce qui peut faire monter le chargement à deux minutes sur les gros binaires.
Et il y a aussi un plafond puisque tout doit tenir dans la mémoire de l'onglet, soit environ 1,5 Go. Et c'est une console série, donc vous ne pourrez rien lancer de graphique, pas de fenêtre, pas de souris... Bref, que les outils en ligne de commande et rien d'autre ! Mais bon, vous êtes de vrais barbus qui n'ont peur de rien à part du déo, donc je ne suis pas inquiet ^^.
Ce qui est vraiment cool avec Trynix surtout, c'est
l'action GitHub que son dev a sortie
dans la foulée. Si votre intégration continue pousse déjà ses compilations dans un cache, un bot colle un lien sous la pull request et le relecteur lance le code au lieu de le lire. Comme ça, fini le clone, la compilation et le "*ça marche chez moi pourtant *" invérifiable. Même topo pour faire essayer un truc à quelqu'un qui n'a ni Nix ni Docker... Suffit de lui envoyer le lien.
Un petit point sécu quand même que je tiens à vous signaler : L'URL transporte à la fois les caches supplémentaires et les clés qui les valident, du coup la signature vous prouve bien que le binaire vient du cache annoncé... mais pas qu'il vient de quelqu'un de fiable. En effet, cliquer sur un lien trynix inconnu, ça revient à lancer le programme d'un inconnu, et même si ça se passe dans la sandbox de l'onglet du navigateur (ce qui limite les dégâts), c'est quand même mieux d'en avoir conscience !
Bref, voilà encore un chouette projet sous licence MIT et si ça vous chauffe, ça se passe sur
trynix.dev
.
Restic
chiffre bien vos sauvegardes, rclone sait parler à 70 services de stockage, mais connecter les deux ensemble demande d'écrire des scripts et surtout de les surveiller. Eh bien bonne nouvelle, Pluton est l'interface web qui fait ce travail à votre place.
Vous y décrivez un plan de sauvegarde via un formulaire, avec une source, une destination, une fréquence, une politique de rétention, et Pluton fabrique les commandes restic derrière. Les sauvegardes restent ainsi incrémentielles et chiffrées avant l'envoi. La destination peut être un disque local, un bucket S3, un Backblaze B2 ou un Google Drive, et le même plan peut se répliquer vers plusieurs stockages pour respecter la fameuse règle 3-2-1.
L'installer
Je vous ai préparé un petit kit IA pour ceux qui ne jurent que par leur agent :
Un dossier, deux fichiers, et c'est parti. Le docker-compose.yml d'abord, dans lequel vous montez ce que vous voulez sauvegarder en lecture seule et le dossier qui recevra les sauvegardes en écriture. Si vous êtes sur Mac, lisez l'avertissement plus bas avant de monter quoi que ce soit, car ce montage-là m'a joué un tour :
Par contre, attention à cette ENCRYPTION_KEY, c'est le point à ne pas rater. Le compose officiel la documente comme la clé de chiffrement des snapshots restic et rclone, et c'est bien ça. Il s'agit du mot de passe de vos dépôts, c'est la même clé pour tous vos plans. Et donc la perdre, c'est perdre vos sauvegardes, et la changer rendra illisible tout ce qui a déjà été écrit. Bref, copiez-la dans votre gestionnaire de mots de passe avant d'aller plus loin, parce que le jour où vous en aurez besoin, personne ne pourra vous la redonner.
Puis faites un :
docker compose up -d
L'interface répond alors sur le port 5173 et vous demande directement les identifiants du .env. Pas d'assistant de première configuration, pas de compte à créer... en fait quand les variables sont bien configurées, Pluton s'installe tout seul au démarrage. Chez moi, entre le up -d et l'écran de connexion, il s'est donc passé moins d'une minute.
Créer le premier plan de backup
Le bouton "+ New" de l'interface ouvre un assistant en quatre écrans. Vous nommez le plan, vous gardez la stratégie "Incremental Backup" (les trois autres sont grisées, elles appartiennent à l'offre Pro), vous pointez /mnt/documents comme source et /mnt/backups comme destination, puis vous réglez la fréquence et la rétention. Le dernier écran laisse le chiffrement et la compression activés et propose de lancer la sauvegarde tout de suite, ce que j'ai fait.
Chez moi, trois fichiers de test de quelques octets sont partis en quelques secondes. Et c'est là qu'il faut regarder la bonne chose pour vérifier que ça fonctionne... Non, c'est pas la pastille verte, mais plutôt le nombre de fichiers et leur taille.
Le plan Documents juste après sa première sauvegarde.
En fait, si je vous dis ça, c'est parce que sur mon Mac, avec Docker Desktop, restic n'arrivait pas à lire les dossiers montés depuis l'hôte, et sort en erreur d'entrée/sortie sur chaque fichier. Et pourtant, Pluton affichait quand même la sauvegarde en vert avec le statut "Complete". Les colonnes disaient bien 0 fichier et 0 octet, mais le statut, lui, semblait correct... Donc si vous êtes sur Mac, prenez plutôt l'installeur de bureau, qui existe aussi pour Windows et Linux, et dans tous les cas vérifiez que les chiffres sont OK après votre première sauvegarde.
Vérifier et répéter une restauration
Votre dossier de destination contient maintenant un config, un data/, un index/, un keys/ et un snapshots/, tous illisibles en clair. C'est un dépôt restic standard, et ça se vérifie sans Pluton, avec le binaire embarqué dans le conteneur :
Vous obtenez la liste de vos snapshots avec leur taille, et avec une mauvaise clé, restic répondra "wrong password or no key found" et s'arrêtera là. Faites les deux essais car ça prouve en une fois que le chiffrement travaille, et que vos données restent récupérables même si Pluton disparaît demain.
Le menu d'une sauvegarde propose ensuite "Browse", qui ouvre le snapshot comme un explorateur de fichiers, avec la taille de chacun et un bouton pour le télécharger ou le restaurer seul.
Le contenu du snapshot, fichier par fichier, avec le téléchargement et la restauration à droite de chaque ligne
Et le "Restore" lancera un assistant qui vaut le détour puisqu'il sait restaurer vers un chemin différent de l'original. Il vous laisse choisir quoi faire des fichiers déjà présents, et surtout il génère un aperçu en dry run (à blanc quoi...) avant de toucher au disque. J'ai restauré mes trois fichiers vers un dossier séparé, puis comparé avec les originaux, et c'était identique. Faites-le une fois, tranquillement, pendant que vous n'en avez pas besoin.
Voilà, tout ça, c'est la version gratuite, pour la machine où elle tourne. Maintenant, si vous voulez piloter les sauvegardes de plusieurs machines depuis la même interface, ça passera par l'offre Pro à 59 dollars par an. Si vous voulez comparer avec un autre truc, sachez aussi que
Zerobyte
joue dans la même cour.
Le développeur Mayuki Sawatari vient de publier
ReProgman
, un clone du Program Manager de Windows 3.1.
Ça ne vous dit rien ? C'est parce que vous êtes des bébés !
En fait, progman.exe, c'est ce truc qui servait d'interface principale à Windows avant que le menu Démarrer ne débarque avec Windows 95. Et aujourd'hui, grâce au taf de Sawatari, ça tourne aussi bien sur Windows 11 que sur macOS.
Pour ceux qui ont commencé l'informatique après 1995, faut savoir qu'avant ça, on n'avait pas de bureau, pas de barre des tâches, mais juste une grande fenêtre grise remplie de sous-fenêtres, et dans chaque sous-fenêtre y'avait des icônes de programmes alignées sur une grille. Vous double-cliquiez sur l'une d'elles, le programme se lançait, et voilà, vous aviez fait le tour de Windows !
Le groupe Main ouvert sur Windows 11, et la rangée de groupes réduits en bas de la fenêtre
Regardez bien les icônes sur cette capture : Docker, Edge et Claude rangés dans une ambiance de 1992...
Car ReProgman ne se contente pas de reproduire la déco. Au premier lancement, il scanne votre menu Démarrer (ou vos dossiers Applications si vous êtes sur Mac), transforme chaque dossier en groupe et range le tout dans son propre fichier Groups.ini. Après ça, il n'y retourne plus tout seul, et ce que vous déplacez, renommez ou supprimez dedans ne redescend jamais vers vos vrais raccourcis. Un menu permet quand même de relancer l'import à la main, et il n'ajoute alors que ce qui manque.
Du coup, vous récupérez les gestes de l'époque pour de vrai. Vous attrapez une icône, vous la lâchez dans une autre fenêtre et elle déménage, avec Ctrl enfoncé elle se copie, le menu Window vous range tout ça en cascade ou en mosaïque, et les fenêtres réduites redeviennent des icônes alignées en bas de la fenêtre principale. Même la boîte de dialogue de sortie a été refaite, à ceci près qu'elle annonce la fin de votre session ReProgman et non celle de Windows.
Maintenant, d'où ça sort comme délire ?
Hé bien, l'auteur raconte, dans un message relayé par Tom's Hardware, qu'il a simplement demandé à Claude de lui fabriquer ce clone, et que la première version obtenue en une heure était déjà plutôt correcte, même s'il a ensuite fallu rattraper les imperfections.
Ce qui est intéressant, c'est que dans son dépôt git, on trouve un document de spécification de plusieurs centaines de lignes qui décrit l'interface au pixel près, relevée sur des captures 640x480 du Windows original. Le cadre d'une fenêtre y fait 1 pixel noir, 2 pixels gris et encore 1 pixel noir, et la petite barre du menu système mesure 13 pixels sur la fenêtre principale contre 7 sur une fenêtre enfant. C'est d'ailleurs comme ça qu'on les distinguait à l'époque.... Fallait avoir l'oeil !
Si vous voulez l'essayer, ça se présente sous la forme d'un binaire autonome. Par contre sur Mac, la version distribuée n'est pas notarisée, il faudra donc lui passer un xattr -cr ReProgman.app ou utiliser
Sentinel
avant qu'elle accepte de démarrer. Ah et le code est sous licence MIT.
Le périmètre annoncé par le projet est d'ailleurs plus étroit qu'il en a l'air, puisque c'est Windows 11 en x64 et en Arm, et macOS uniquement sur Apple Silicon. Donc si vous êtes resté sur Windows 10 parce que vous aimez le risque ou sur un Mac Intel parce que vous aimez prendre votre temps, il n'y a rien pour vous amuser... Il faudra alors retourner du côté de
ce musée de vieux systèmes d'exploitation
que je vous avais montré, qui lui passe par l'émulation.
Après, je pense pas que vous y ferez votre vie mais ça vous donnera environ 30 secondes de nostalgie avant de refermer la fenêtre. C'est déjà ça de pris...