// TOM'S HARDWARE ITALIA — HARDWARE & GADGET
Super Mario 64 gira su ARM con ReactOS: ecco come ci riesce
Lo sviluppatore Ahmed Arif ha fatto avviare Super Mario 64 in versione x64 su un processore ARM attraverso un fork di ReactOS. La dimostrazione mette alla prova due componenti complementari: un motore che traduce le istruzioni del processore e un'infrastruttura che permette al codice tradotto di interagire con le librerie native del sistema operativo.
La traduzione delle istruzioni è affidata a FEX, l'emulatore finanziato da Valve. Sul versante Windows, il suo compito riguarda il codice destinato alla CPU: la gestione delle chiamate di sistema spetta invece a Wine oppure all'interfaccia binaria del sistema ospitante, detta ABI. Tradurre le istruzioni x64 risolve quindi una parte del lavoro; per eseguire il programma occorre anche collegarlo ai servizi offerti dall'ambiente in cui gira.
A occuparsi di questo collegamento è ARM64EC, la tecnologia introdotta da Microsoft per Windows 11 su ARM. Il principio consiste nel compilare le librerie del sistema per ARM64 mantenendo un'interfaccia utilizzabile dal codice x64 tradotto. Uno stesso programma può così combinare porzioni native e porzioni emulate: il passaggio attraverso l'emulatore viene riservato al codice che ne ha bisogno, con l'obiettivo di ridurre il lavoro di traduzione e migliorare la velocità.
Arif ha realizzato il proprio runtime ibrido all'interno di ntdll, implementando il caricamento delle immagini eseguibili, i raccordi necessari per chiamare funzioni native dal codice x64 e lo stack unwinding, ossia la risalita dello stack delle chiamate. Sono i meccanismi che permettono alle due modalità di esecuzione di comunicare. Il lavoro porta questa infrastruttura nel fork di ReactOS dopo le implementazioni presenti in Windows e, dalla versione 10, in Wine.
Per verificare il comportamento del runtime, lo sviluppatore esegue lo stesso binario nel proprio sistema e su un'installazione reale di Windows 11 ARM64, confrontando i risultati. Il riferimento è quindi il comportamento del software nell'ambiente Microsoft: usare un eseguibile identico consente di controllare come i due sistemi gestiscono il medesimo programma durante le prove.
Super Mario 64 continua così a essere protagonista di esperimenti su piattaforme insolite, dalla demo homebrew ispirata al gioco e testata sul 3DO originale a questa prova di interoperabilità tra architetture. Per ReactOS, il passaggio arriva a pochi mesi dalle difficoltà incontrate nell'avvio di Half-Life, spostando la sperimentazione anche sull'esecuzione di un gioco x64 in ambiente ARM.
Il codice si trova esclusivamente in un ramo del fork personale di Arif e non è stato integrato nel repository ufficiale; non è disponibile un pacchetto pronto da scaricare. Lo sviluppatore descrive il fork come ancora più sperimentale di ReactOS, già classificato come software alpha, destinandone le prove a macchine virtuali, schede di sviluppo o computer privi di dati sensibili.
Aggiungi Tom's Hardware alle tue fonti preferite su Google