Come eseguire giochi e software x86 pesanti su processori Arm e RISC-V
Immagina di aver acquistato un nuovo single-board computer Arm o un potente server RISC-V, aver installato Linux, e... aver incontrato un muro. Il tuo gioco Steam preferito, il software proprietario per il lavoro, o il buon vecchio Wine semplicemente si rifiutano di funzionare. Sono compilati per x86_64, ma tu hai un'architettura completamente diversa. Di solito in questi casi le persone consigliano QEMU, ma giocare attraverso di esso è tutta un'altra esperienza: il ritardo è così grave che preferireste semplicemente spegnerlo.
Il progetto box64 risolve questo problema in modo elegante. Non è solo un emulatore, ma un layer che può "alimentare" le librerie native del tuo sistema all'applicazione emulata.

Cosa rende speciale questo emulatore
La maggior parte degli emulatori cerca di tradurre fedelmente ogni istruzione CPU. È affidabile ma molto lento. Lo sviluppatore di box64 (conosciuto come ptitSeb) ha adottato un approccio diverso.
Quando un programma x86_64 chiama una funzione di sistema — per esempio, vuole renderizzare grafica attraverso OpenGL o allocare memoria attraverso libc — box64 non emula questa chiamata all'interno di un ambiente virtuale. Invece, reindirizza la chiamata direttamente alle librerie native del tuo dispositivo (Arm64 o RISC-V).
Di conseguenza, i calcoli pesanti ricadono sulle spalle dell'hardware "native", e solo la logica dell'applicazione viene emulata. Questo fornisce un boost di velocità colossale. Secondo i benchmark dell'autore, la combinazione con un ricompilatore dinamico (DynaRec) funziona 5–10 volte più velocemente di un normale interprete.
Cosa puoi eseguire
La lista di compatibilità del progetto è enorme. Prima di tutto, è rivolta ai giocatori e a chi usa software specializzato.
- Giochi Steam. Sì, puoi eseguire giochi su un Raspberry Pi 4 o 5 che non sono mai stati portati su Arm.
- Wine e Proton. Questo apre la strada all'esecuzione di applicazioni Windows. Se hai sia box64 che il suo "fratello minore" box86 (per programmi a 32 bit), puoi far funzionare quasi qualsiasi software.
- Giochi Unity. C'è una sfumatura qui: spesso richiedono un OpenGL recente. Su alcune schede, devi usare variabili d'ambiente per "ingannare" il driver e far funzionare il gioco.
È interessante notare che il progetto supporta persino architetture specifiche come LoongArch. È chiaro che la community aiuta attivamente con l'hardware: la lista dei ringraziamenti include Adlink, Pine64 e persino i team di sviluppo di Deepin.
Come funziona in pratica
Usare lo strumento è sorprendentemente semplice. Se hai già compilato il progetto (le istruzioni nel repository sono dettagliate, anche se richiedono l'installazione di un sacco di dipendenze), l'esecuzione appare così:
box64 ./my_x86_64_program
Se hai bisogno di eseguire un intero script di installazione (per esempio da GOG) che controlla l'architettura tramite uname -m, puoi farlo così:
box64 script.sh
All'interno, box64 falsificherà la risposta del sistema, e lo script penserà di essere in esecuzione su un normale processore x86.
Per chi non vuole digitare il comando ogni volta, c'è box64-bash — una shell familiare dove tutti gli eseguibili vengono automaticamente intercettati dall'emulatore.
Sfumature e insidie
Non aspettarti che tutto funzioni "out of the box" con frame rate perfetti.
Prima di tutto, la cache. Alla prima esecuzione, box64 genera codice ottimizzato e lo salva in ~/.cache/box64. Questo velocizza le esecuzioni successive, ma può "mangiare" fino a 2 GB di spazio su disco. Se lo spazio è limitato, dovrai limitare questo comportamento attraverso la configurazione.
Seconda cosa, la grafica. Su Raspberry Pi, spesso devi impostare workaround come:
MESA_GL_VERSION_OVERRIDE=3.2 BOX64_DYNAREC_STRONGMEM=1 box64 ./game
Questo è necessario per evitare blocchi dovuti alle differenze nel modo in cui x86 e Arm gestiscono la memoria.
Terza cosa, le applicazioni a 32 bit. Box64 funziona solo con binari a 64 bit. Se hai bisogno di eseguire un gioco vecchio, dovrai installare box86. Il lavoro su box32 è attualmente in corso, ma l'autore onestamente afferma che il progetto è ancora sperimentale.
Vale la pena provare
Se sei uno sviluppatore che vuole passare a un laptop Linux Arm, o un appassionato con una scheda RISC-V — sicuramente sì. È il progetto più attivo e performante nella sua nicchia.
Box64 non cerca di sostituire la virtualizzazione completa, semplicemente ti dà la possibilità di usare software familiare dove non dovrebbe esistere. Il progetto è scritto in C, molto compatto e flessibile nella configurazione.
Certo, la documentazione è sparsa in file diversi in vari posti, e dovrai scavare nei manuali per configurare Wine, ma il risultato vale la pena. Quando software pensato per desktop potenti viene eseguito su una piccola scheda che costa poche decine di dollari, sembra un po' di magia.
Puoi controllare il codice sorgente e le istruzioni di build nel repository ufficiale ptitSeb/box64. Ci sono anche link alle liste di compatibilità dei giochi che vengono aggiornate quasi quotidianamente.
Progetti correlati