Home Emulatori Oboromi: Presentato il primo emulatore della console Nintendo Switch 2 in sviluppo...

Oboromi: Presentato il primo emulatore della console Nintendo Switch 2 in sviluppo con focus su correttezza e modularità

1591
0

Il primo emulatore della console Nintendo Switch 2 prende il nome di Oboromi ed è stato scritto interamente in Rust, progettato come progetto modulare incentrato sulla correttezza, chiarezza e tracciabilità del codice più che sulle prestazioni, che al momento non rappresentano una vera e propria priorità.

Attualmente l’emulatore include un nucleo CPU funzionante, un’unità di gestione della memoria (MMU) dotata di un sistema base di paginazione e un sottosistema di memoria personalizzato, ma non è ancora in grado di eseguire giochi commerciali o firmware ufficiali, essendo concepito come proof-of-concept.

Il progetto utilizza Dynarmic come backend JIT per la traduzione delle istruzioni AArch64, con una versione modificata ad hoc per integrarsi perfettamente con il componente DynarmicCPU di oboromi.

Sono state implementate anche funzionalità avanzate di gestione della memoria, come la traduzione da indirizzi virtuali a fisici, supporto per paginazione a 4 KiB, TLB con 64 voci, gestione degli errori di pagina e accesso controllato.

Queste funzionalità, pur essendo già presenti nel codice, non sono ancora attive e verranno integrate nelle versioni future.

Allo stesso modo, il sottosistema di memoria supporta la registrazione delle regioni, l’accesso con controllo dei limiti, e operazioni di lettura e scrittura a 32 e 64 bit, includendo il supporto per l’endianness.

Per verificare il corretto funzionamento, oboromi include un framework di test integrato a livello di istruzioni che permette di testare operazioni fondamentali come NOP, ADD, SUB, MOV, branching e RET.

I risultati dei test possono essere visualizzati sia in una GUI basata su egui, inclusa di default, sia direttamente nel terminale. La GUI fornisce anche un visualizzatore parziale della memoria, un pulsante per eseguire manualmente i test e un output in tempo reale dei risultati.

Eventuali fallimenti dei test possono derivare da modifiche recenti al codice o da configurazioni particolari del sistema, ma il framework è progettato per offrire risultati affidabili in condizioni standard.

Per eseguire oboromi, è sufficiente clonare la repository da GitHub, includendo i sottomoduli, ed eseguire il comando cargo run. Il progetto è open source, aperto a contributi, fork, segnalazioni di issue e pull request, ed è rilasciato sotto Mozilla Public License 2.0.

Da sottolineare che Oboromi non è affiliato a Nintendo e non contiene firmware o ROM protette da copyright. Considerata la rigorosa politica di Nintendo nella protezione della propria proprietà intellettuale, la casa di Kyoto potrebbe monitorare attentamente lo sviluppo del progetto tramite i propri legali.

Oboromi rappresenta comunque un’interessante iniziativa nel panorama degli emulatori, soprattutto per chi è interessato alla correttezza e alla chiarezza del codice piuttosto che alla pura performance.

Fonte: x.com