L’emulatore open-source melonDS, noto per l’accuratezza e le prestazioni superiori rispetto a DeSmuME, ha ricevuto l’aggiornamento alla versione 1.1, introducendo miglioramenti importanti soprattutto per il supporto DSi.

La novità più rilevante vede l’implementazione del DSP HLE, che corregge i pesanti rallentamenti presenti in alcuni titoli DSi. Grazie alla collaborazione con CasualPokePlayer sono state analizzate le principali classi di microcodici DSP, permettendo di replicarne il funzionamento in modo leggero e senza impatto sulle prestazioni.
La funzione è attiva di default e garantisce un notevole incremento di fluidità, pur prevedendo il fallback in LLE quando necessario.
L’aggiornamento introduce anche il supporto al microfono DSi, colmando una delle ultime lacune rispetto all’emulazione DS tradizionale. Rivisto inoltre il modo in cui l’emulatore gestisce l’ingresso microfonico, che ora si attiva solo quando richiesto, migliorando l’uso con dispositivi Bluetooth.
Un altro passo avanti riguarda la qualità audio: il passaggio al nuovo hardware audio DSi aveva introdotto problemi legati al resampling, ma Nadia ha sostituito il vecchio sistema con un resampler blip-buf di alta qualità.
L’audio ora viene prodotto a 48 kHz, una frequenza standard molto più adatta ai frontend moderni.
La gestione dei cheat ha ricevuto un’ampia revisione, con la possibilità di importare database come usrcheat.dat e la presenza di un’interfaccia editor più flessibile.
Le strutture originali dei database vengono preservate, sono supportate descrizioni e categorie evolute, e il formato .mch è stato aggiornato pur mantenendo la retro-compatibilità in lettura.
Sul fronte grafico, il renderer basato su compute shader non dovrebbe più presentare glitch alle alte risoluzioni grazie al sistema di scaling delle tile integrato tramite una pull request di FireNX70.
Corretto inoltre un fastidioso problema con OpenGL su Wayland, grazie alle indicazioni del team PCSX2, eliminando glitch e comportamenti strani con finestre e scaling.
Per la prima volta l’emulatore include un sistema di CI per FreeBSD, OpenBSD e NetBSD, permettendo la distribuzione di build dedicate. Sono stati corretti diversi bug critici, tra cui crash casuali con più istanze aperte e problemi audio difficili da riprodurre, individuati grazie a una build speciale fornita da Nadia.
Alcune instabilità legate al JIT sono state risolte, ma è stato identificato un bug che causa crash sui Mac x86, motivo per cui il JIT è stato temporaneamente disabilitato su quella piattaforma.
Gli sviluppatori guardano già al futuro: la cattura ad alta risoluzione arriverà con la versione 1.2, insieme a esperimenti su nuove funzionalità come RTCom, netplay e una possibile revisione dell’interfaccia.
C’è anche l’intenzione di rinnovare il sito per rendere più semplice trovare contenuti e rendere più chiara la versione corrente dell’emulatore.
Caratteristiche
- Core quasi completo (CPU, video, audio, ecc..).
- Ricompilatore JIT per un’emulazione veloce.
- Renderer OpenGL, upscaling 3D.
- RTC, microfono, chiusura/apertura del coperchio.
- Supporto joystick.
- Savestate.
- Modalità di visualizzazione con varie opzioni di posizione, dimensione e rotazione.
- (In sviluppo) Wifi: multiplayer locale, connettività online.
- (In sviluppo) Emulazione DSi.
- Supporto DLDI.
- (In sviluppo) Componenti aggiuntivi per lo slot GBA.
- …e molto altro in programma!
Come utilizzare
L’avvio tramite firmware (non l’avvio diretto) richiede un dump del BIOS/firmware da un DS o DS Lite originale. I firmware DS estratti da un DSi o 3DS non sono avviabili, poiché contengono solo dati di configurazione e sono adatti solo per l’avvio diretto dei giochi.
Dimensioni possibili del firmware
- 128 KB: firmware in modalità DS di DSi/3DS (dimensione ridotta a causa della mancanza del bootcode).
- 256 KB: firmware DS standard.
- 512 KB: firmware iQue DS.
I dump del BIOS DS da un DSi o 3DS possono essere utilizzati senza problemi di compatibilità. I dump del BIOS DSi (in modalità DSi) non sono compatibili (o forse sì, non lo so).
MelonDSi Roadmap
Immediato
AES
- Implementare la cifratura CCM (richiede casi di test).
- Implementare le funzioni aggiuntive del CCM (dimensione del MAC, MAC ottenuto da registro o da FIFO, gestione delle lunghezze extra), anch’esse con test dedicati.
- Verificare se una lunghezza zero genera un IRQ.
- Misurare e implementare i ritardi previsti dalle varie operazioni.
SD/MMC
- Eliminare l’attuale implementazione e riscriverla rispettando gli standard di qualità di melonDS (analisi hardware, misurazione dei ritardi, ecc..).
- Caso di test: Salvataggio in Flipnote Studio.
Fotocamera
- Implementare uno stub di base della fotocamera per consentire l’avvio dei software che la usano
Generale
- Rendere l’emulatore più facile da usare.
- Unificare questo ramo con la versione standard di melonDS (una sorta di aggiornamento alla “0.8.3-DSi”).
Changelog
-
- 3D: Utilizza divisione a 32 bit nel renderer software (Arisotura).
- Corrette scritture a 8 bit nei registri di debug NO$GBA (FrankHB).
- Corretto il tipo di salvataggio per Legacy of Ys – Books I and II (CasualPokePlayer).
- Finestra informazioni ROM: rendere lo banner DS più accurato (Rayyan).
- DSi: Aggiunta DSP HLE, audio DSP, input microfono (Arisotura, CasualPokePlayer).
- Reso il sistema di input thread-safe (risolve crash casuali in multiplayer) (Arisotura).
- CI: Varie migliorie a vcpkg (Nadia).
- JIT/x64: Garantita memoria codice scrivibile dopo l’allocazione (Rayyan).
- JIT: Aggiunto supporto per PaX MPROTECT su NetBSD (Rayyan).
- JIT: Gestione corretta della memoria codice W^X nel gestore dei fault (Rayyan).
- SD/MMC: Corretto crash quando si accede a una porta senza dispositivo collegato (Arisotura).
- gdb stub: Corretto la lettura di codice errato per il pacchetto vCont (jonko0493).
- CI: Aggiunta integrazione OpenBSD (Izder456).
- DLDI: Corretto log2(size) nell’header del driver (Arisotura).
- Fotocamera: Corretto il comportamento di reset di CAM_MCNT (Arisotura).
- CI: Aggiunti build x64 per FreeBSD e NetBSD (Rayyan).
- Audio: Aggiunto resampling di alta qualità con blip-buf (Nadia).
- 3D: Corretto UB nel renderer software quando si disegnano poligoni con interpolazione lineare e Z-buffering (Arisotura).
- AR: Aggiunti opcode extra D400000x per l’elaborazione dati (Arisotura).
- Qt6: Utilizza il nuovo metodo per accedere al display/finestra nativa su X11/Wayland (Nadia).
- nix: Aggiornati gli input e aggiunto workaround wrapper Qt per dev shell (Nadia).
- DSi: Aggiunto supporto per il registro della dimensione della RAM principale, con hack per evitare crash del loader (Arisotura).
- AR: Supporto per importare cheat da usrcheat.dat e miglioramento dell’interfaccia (Arisotura).
- Corretto il glitch della UI su Wayland quando si usa OpenGL (Arisotura, grazie al team PCSX2).
- Correzione di piccoli bug Thumb BLX immediate (Jakly).
- Aggiornato xxHash alla versione 0.8.3 (JordanTheToaster).
- Ridotto il buffer audio del frontend a 512 e corretta la sincronizzazione audio (Nadia).
- Corretto un bug che poteva interrompere casualmente l’output audio (Arisotura).
- Compute renderer: Implementato lo scaling delle dimensioni delle tile per ridurre glitch ad alte risoluzioni (FireNX70).
- SPU: Corretta variabile non inizializzata che poteva causare crash (Nadia).
- Aggiunto supporto per compilare melonDS su Windows senza MinGW (Nadia).
- JIT: Aggiunta compatibilità OpenBSD (Izder456).
Download: MelonDS v1.1 (Windows aarch64) (x86_64)
Download: MelonDS v1.1 (AppImage aarch64) (AppImage x86_64) (ubuntu aarch64) (ubuntu x86_64)
Download: MelonDS v1.1 (netbsd) (openbsd) (freebsd)
Download: MelonDS v1.1 (MacOS)
Download: Source code MelonDS v1.1
Fonte: melonds.kuribo64.net
![[Scena Switch] Rilasciato Amiigo v2.4.1](https://www.biteyourconsole.net/wp-content/uploads/Amiigo1-1-238x178.jpg)


![[Scena Switch] Rilasciato Amiigo v2.4.1](https://www.biteyourconsole.net/wp-content/uploads/Amiigo1-1-100x75.jpg)




![[Scena Switch] Rilasciato Flycast Switch v2.1](https://www.biteyourconsole.net/wp-content/uploads/FlycastSwitch-100x75.jpg)