DevNews

Box64 0.4.4 active son cache de code par défaut

Sur cette page
  1. Le cache est actif désormais
  2. Un configurateur, dans un projet qui n'en avait jamais eu
  3. Les backends, et le travail de précision en dessous
  4. Sources et pour aller plus loin

Box64 exécute des binaires Linux x86_64 sur des machines qui ne sont pas x86_64, et c'est ainsi qu'une bonne part des logiciels atteint encore les portables ARM64, les postes LoongArch et les cartes RISC-V. La version 0.4.4, sortie le deux août, change deux réglages par défaut que la plupart des utilisateurs appliquaient déjà à la main. DynaCache, qui écrit sur disque le code natif traduit pour qu'un second lancement ne refasse pas le travail, est désormais actif d'origine avec un plafond de deux gigaoctets. L'option de recompilation BOX64_DYNAREC_CALLRET passe à 2 par défaut, un gain général sur tous les backends. S'y ajoute un configurateur graphique, terrain nouveau pour ce projet.

The short answer

Box64 0.4.4 est sortie le deux août 2026. DynaCache, qui stocke sur disque le code natif généré pour que les lancements suivants sautent l'étape de traduction, est désormais actif par défaut et compressé avec un plafond de deux gigaoctets. BOX64_DYNAREC_CALLRET passe à 2 par défaut, un gain général sur tous les backends. Un nouveau box64-configurator en Python gère graphiquement les profils par application, en anglais et en chinois, avec un greffon KDE optionnel. LoongArch gagne des opcodes plus rapides et une optimisation zero upper, RISC-V un support AVX élargi et une meilleure détection des extensions, et les progrès sur x87, le drapeau TF et les signaux étendent la compatibilité avec les jeux protégés.

2 Gole nouveau plafond par défaut du cache DynaCache
3architectures hôtes : ARM64, RISC-V, LoongArch
2 aoûtla date de sortie de la 0.4.4
Carte réponse : Box64 0.4.4, sortie le 2 août 2026, active DynaCache par défaut avec un plafond compressé de 2 Go, passe BOX64_DYNAREC_CALLRET à 2, et ajoute un box64-configurator en Python pour les profils par application sur ARM64, RISC-V et LoongArch.
Box64 0.4.4, publiée le deux août 2026. Source : le blog du projet Box86 et Box64. PNG

Les projets d'émulation accumulent les options plus vite que les bons réglages par défaut. Box64 en était un exemple remarquable : une longue liste de variables de réglage, une communauté qui s'échangeait des profils pour chaque jeu, et un cache de recompilation excellent mais désactivé. La version 0.4.4 consacre l'essentiel de son effort à combler cet écart.

Le cache est actif désormais

Box64 traduit les instructions x86_64 en code natif pendant que le programme tourne. La traduction est rapide, mais répétée à chaque lancement elle devient la raison pour laquelle un programme paraît lent à démarrer sur ARM64 alors qu'il s'ouvre instantanément sur un portable classique.

DynaCache écrit ce code généré sur disque pour que le second lancement le réutilise. En 0.4.4 il est actif par défaut, le code stocké est compressé, et le cache est plafonné à deux gigaoctets afin de ne pas croître sans limite sur un appareil où le stockage est souvent la ressource rare. Le premier lancement ne change pas. Tous les suivants démarrent plus vite, ce qui, pour les gros jeux, fait la différence entre une attente de compilation et un simple démarrage.

L'autre réglage à noter est BOX64_DYNAREC_CALLRET, désormais à 2, présenté comme un gain général valable sur tous les backends. Si vous transportez des profils affinés à la main depuis une version antérieure, c'est le bon moment pour retirer les réglages que vous appliquiez manuellement. Deux des plus utiles sont maintenant les valeurs par défaut, et un profil qui fige d'anciennes valeurs vous freinera plutôt qu'il ne vous aidera.

Figure terminal montrant un premier lancement d'un binaire x86_64 sous box64 où le recompilateur construit le code natif, un second lancement qui réutilise le cache DynaCache et démarre plus vite, et la nouvelle commande box64-configurator ouvrant l'éditeur graphique de profils.
Le premier lancement traduit, le second réutilise. Le cache est plafonné à deux gigaoctets. PNG

Un configurateur, dans un projet qui n'en avait jamais eu

Le second changement est plus culturel que technique. box64-configurator est une application Python qui édite les profils par programme dans une fenêtre, plutôt que par des variables d'environnement exportées avant le lancement ou un fichier de configuration modifié à la main.

Cela compte parce que la surface de réglage de Box64 est réellement vaste et réellement propre à chaque application. Les valeurs qui font tenir un jeu sont mauvaises pour un autre, d'où la circulation d'extraits de profils sur les forums depuis des années. Déplacer ce savoir dans un outil livré par le projet le rend découvrable au lieu de le laisser tribal. L'outil existe en anglais et en chinois, et un greffon KDE optionnel l'intègre au gestionnaire de fichiers, ce qui permet de régler le profil d'un jeu depuis son menu contextuel.

Pour un projet dont les utilisateurs ont toujours été à l'aise en ligne de commande, c'est un élargissement délibéré du public. Les portables ARM64 et les postes LoongArch ne sont plus seulement entre les mains de gens qui apprécient la documentation d'un recompilateur dynamique.

Les backends, et le travail de précision en dessous

Le backend LoongArch a reçu la passe d'optimisation la plus lourde : des opcodes plus rapides et une optimisation zero upper qui élimine des remises à zéro de registres inutiles. Cette seconde amélioration est de celles qui rapportent discrètement, car le motif qu'elle supprime se déclenche en permanence dans le code traduit plutôt que dans une seule fonction chaude.

RISC-V gagne un support AVX élargi et une meilleure détection des extensions réellement présentes sur l'hôte. La détection d'extensions compte davantage sur RISC-V qu'ailleurs, puisque ce qu'une carte supporte varie énormément et qu'une erreur d'appréciation conduit soit à un plantage, soit à de la performance laissée de côté.

Sous ces deux chantiers, la version améliore la gestion du calcul flottant x87, celle du drapeau TF employé par les débogueurs, et le traitement des signaux. Ces trois points ressemblent à de l'entretien courant, et ce sont eux qui expliquent que les notes de compatibilité mentionnent les enveloppes de gestion des droits numériques, avec des titres Capcom et Sony cités. Ces couches sollicitent volontairement les recoins étranges du jeu d'instructions, et le travail de précision s'y voit donc en premier.

Si vous utilisez déjà Box64, la mise à jour vaut le détour rien que pour les réglages par défaut. Si vous teniez un tableau de variables d'environnement par jeu, ouvrez le configurateur et supprimez en la moitié.

Sources et pour aller plus loin

Questions fréquentes

Qu'est ce que DynaCache et pourquoi son activation par défaut compte t elle ?

Box64 est un recompilateur dynamique : il traduit les instructions x86_64 en code natif ARM64, RISC-V ou LoongArch pendant l'exécution du programme. Cette traduction est rapide mais pas gratuite, et par défaut elle était jetée à la fin du processus, si bien que chaque lancement repayait la facture. DynaCache enregistre le code généré sur disque, compressé, pour que tout ce qui sert une deuxième fois démarre beaucoup plus vite. L'option existait déjà depuis un moment. Ce qui change en 0.4.4, c'est qu'elle est active sauf désactivation explicite, avec un plafond de deux gigaoctets qui empêche le cache de grossir sans limite. Concrètement, le premier lancement d'un programme reste identique et tous les suivants démarrent nettement plus vite.

Qu'est ce que box64-configurator ?

Une interface graphique, écrite en Python, pour les réglages par application qui imposaient jusqu'ici de modifier une configuration à la main ou d'exporter des variables d'environnement avant chaque lancement. Box64 comporte un grand nombre de boutons de réglage, et les bonnes valeurs diffèrent d'un programme à l'autre, ce qui explique que la communauté s'échange des extraits de profils depuis des années. Le configurateur gère ces profils directement. Il est livré en anglais et en chinois, avec un greffon KDE optionnel qui l'expose depuis le gestionnaire de fichiers, pour régler le profil d'un jeu depuis son menu contextuel plutôt qu'en se rappelant des noms de variables.

Qu'est ce qui change précisément pour RISC-V et LoongArch ?

Le backend LoongArch a reçu la plus grosse part du travail : des opcodes plus rapides sur l'ensemble et une optimisation dite zero upper qui supprime des remises à zéro de registres inutiles, le type de changement qui se cumule car il se déclenche en permanence dans le code traduit. RISC-V gagne un support AVX élargi et une meilleure détection des extensions réellement présentes sur le processeur, un point qui compte sur cette plateforme où la disponibilité des extensions varie énormément d'une carte à l'autre. Les deux profitent aussi du nouveau défaut BOX64_DYNAREC_CALLRET à 2, décrit comme un gain général sur tous les backends, dont les utilisateurs ARM64 bénéficient également.

La version 0.4.4 améliore t elle la compatibilité des jeux ?

Oui, surtout par la précision d'émulation plutôt que par des correctifs titre par titre. La version améliore la gestion du calcul flottant x87, celle du drapeau TF utilisé par les débogueurs, et le traitement des signaux, et elle étend spécifiquement la compatibilité avec les jeux protégés par des mécanismes de gestion des droits numériques, des titres Capcom et Sony étant cités. Ces enveloppes de protection sont difficiles pour un émulateur précisément parce qu'elles s'appuient sur les recoins inconfortables du jeu d'instructions et sur des comportements qu'un compilateur normal n'émet jamais, si bien que le travail de précision sur x87 et les signaux se voit d'abord sur ces titres.

Quelle place occupe Box64 face à une machine virtuelle ou un conteneur ?

Il résout un autre problème. Un conteneur partage votre noyau et votre architecture, donc une image de conteneur x86_64 ne tournera pas sur ARM64 sans émulation en dessous. Une machine virtuelle vous donne un autre noyau, mais pas un autre jeu d'instructions, sauf à faire de l'émulation système complète avec le coût de performance que cela suppose. Box64 fait de l'émulation en espace utilisateur du binaire lui même : le processus tourne sous votre noyau, utilise vos bibliothèques natives quand il le peut grâce à son mécanisme de bibliothèques encapsulées, et seul le code x86_64 est traduit. C'est pourquoi c'est en général la voie la plus rapide pour exécuter une application x86_64 sur une machine qui ne l'est pas, et pourquoi il se marie naturellement avec Wine pour les logiciels Windows sur ARM64.