Home Emulatori Lazuli: Il nuovo emulatore GameCube scritto in Rust che fa girare Super...

Lazuli: Il nuovo emulatore GameCube scritto in Rust che fa girare Super Mario Sunshine

203
2

Se da una parte ci sono emulatori per Dreamcast come Redream, Flycast e Demul, dall’altra per il Nintendo GameCube, accanto a Dolphin, fa il suo debutto Lazuli, un nuovo emulatore che in poche ore ha catturato l’attenzione della community internazionale.

Il progetto è interamente scritto in Rust e nasce dal lavoro di un solo sviluppatore, vxpm, che negli ultimi sei mesi ha costruito da zero una base tecnica già sorprendentemente solida.

Lazuli non si propone di detronizzare Dolphin, che da anni rappresenta lo standard assoluto per l’emulazione GameCube e Wii, ma si inserisce come progetto sperimentale, orientato alla ricerca e alla modernizzazione dell’architettura emulativa.

È un work in progress dichiarato, eppure è già in grado di avviare e rendere giocabili titoli iconici come Super Mario Sunshine, The Legend of Zelda: The Wind Waker e Luigi’s Mansion con una resa grafica più che dignitosa.

Il cuore dell’emulatore è costruito quasi interamente in Rust, scelta che garantisce maggiore sicurezza nella gestione della memoria e una struttura moderna e modulare.

La CPU PowerPC viene gestita tramite un JIT basato su Cranelift, mentre il rendering si appoggia a wgpu, assicurando compatibilità cross-platform con Vulkan, Metal e DirectX 12.

Il DSP è attualmente implementato in modalità LLE tramite interprete, rappresentando ancora uno dei principali limiti prestazionali, ma è già previsto un JIT dedicato per migliorare ulteriormente le performance.

Uno degli aspetti più interessanti è la presenza di un debugger integrato completo di disassembly, registri, call stack e statistiche in tempo reale.

Non si tratta quindi solo di un emulatore pensato per giocare, ma anche di uno strumento tecnico che può rivelarsi prezioso per sviluppatori e appassionati di reverse engineering.

Nel video dimostrativo diffuso da Senhor Linguica si vede Mario muoversi fluidamente in Super Mario Sunshine, con effetti d’acqua e ambientazioni urbane riprodotte senza glitch evidenti, un risultato notevole considerando lo stato ancora embrionale del progetto.

Lazuli supporta file .iso e .rvz, consente l’avvio tramite IPL in modalità HLE senza richiedere obbligatoriamente la ROM originale del BIOS e può essere compilato su Linux, Windows e macOS.

L’audio viene gestito tramite cpal, anche se sono stati segnalati alcuni problemi con l’ADPCM in determinati giochi. L’input riconosce automaticamente i gamepad, affiancati dal supporto tastiera, mentre la rimappatura avanzata non è ancora disponibile.

Stato del progetto

  • Lazuli è ancora un progetto sperimentale, ma è già in grado di avviare diversi giochi commerciali e numerosi homebrew.
  • Giochi testati frequentemente e giocabili con grafica discreta:
    • Super Mario Sunshine
    • Luigi’s Mansion
    • The Legend of Zelda: The Wind Waker
    • Crash Bandicoot: The Wrath of Cortex
    • WarioWare, Inc.: Mega Party Game$!
  • Non sono gli unici titoli funzionanti: altri giochi potrebbero avviarsi correttamente, ma molti non sono ancora stati testati.

Caratteristiche tecniche attuali

  • Compilatore JIT PowerPC basato su Cranelift.
  • Compilatore JIT per vertex parser basato su Cranelift.
  • Interprete DSP in modalità LLE.
  • Backend di rendering basato su wgpu.
  • Backend audio basato su cpal.
  • Generatore/compilatore di shader basato su wesl.
  • IPL HLE per avviare i giochi senza ROM IPL.
  • Interfaccia grafica semplice dedicata al debugging.

Prestazioni complessivamente discrete. Il principale collo di bottiglia è l’interprete DSP LLE. È previsto un JIT per il DSP, ma solo dopo la correzione dei bug attuali (audio funzionante in alcuni giochi, completamente compromesso in altri, soprattutto con ADPCM).

Utilizzo

  • Avvio di un gioco (supporto .iso e .rvz):
    • lazuli --rom path/to/gamecube/game.iso
  • Non è necessaria una ROM IPL (BIOS), poiché l’avvio viene gestito in HLE.
  • Alcuni giochi potrebbero richiedere l’IPL per il font integrato.
  • Per specificare un’IPL:
    • lazuli --ipl path/to/ipl.bin --rom path/to/gamecube/game.iso
  • Per usare l’IPL in modalità LLE (saltando l’HLE):
    • Aggiungere il parametro --ipl-lle
    • Permette l’accesso al menu di sistema prima dell’avvio del gioco.
  • Per altre opzioni CLI utilizzare --help.

Input

  • Supporto per gamepad e tastiera.
  • Il gamepad viene impostato automaticamente come input principale quando rilevato.
  • Le mappature non sono ancora personalizzabili.

Mappatura tastiera

  • Analogico sinistro: W A S D.
  • Analogico destro (C): H J K L.
  • Tasti A / B: B / N.
  • Tasti X / Y: C / V.
  • Z: R.
  • Start: Barra spaziatrice.
  • D-Pad: Frecce direzionali.
  • Grilletto sinistro: Q / T.
  • Grilletto destro: E / Y.

Debugging

  • Possibilità di impostare breakpoint.
  • Monitoraggio variabili in memoria.
  • Analisi dello stack delle chiamate.
  • Apertura delle finestre tramite il pulsante “View” nella barra superiore.

FAQ

  • Perché usarlo al posto di Dolphin?
    Al momento non c’è motivo: Dolphin è molto più maturo ed è consigliato per giocare.
  • È una riscrittura di Dolphin in Rust?
    No, è un progetto sviluppato completamente da zero, senza riutilizzo di codice Dolphin.
  • Supporta la Wii?
    Non ancora. È un obiettivo a lungo termine, ma al momento non esiste infrastruttura dedicata.
  • Cos’è Hemisphere?
    Era il nome precedente del progetto, poi rinominato in Lazuli.

Download: Lazuli Nightly

Alcune parti di questo articolo sono state generate con l’aiuto dell’intelligenza artificiale.

🔥 Prodotti in promozione e articoli più venduti: Informatica

Vedi altri prodotti Informatica

Questo articolo contiene link affiliati a Amazon. Se acquisti tramite questi link, potrei guadagnare una commissione senza costi aggiuntivi per te.

Ultimo aggiornamento 2026-03-12 / Link di affiliazione / Immagini da Amazon Product Advertising API