melonDS

Émulateur v1.0 RC

melonDS est un émulateur dédié à la Nintendo DS, conçu pour offrir une exécution rapide et précise. Développé en architecture universelle, il fonctionne sur macOS Intel et Apple Silicon, garantissant une compatibilité étendue avec les configurations récentes.

L’émulateur met en avant un noyau quasi complet (CPU, vidéo, audio) et des fonctionnalités avancées comme un JIT recompiler, un rendu OpenGL avec mise à l’échelle 3D, ou encore la prise en charge des savestates. Il supporte également les périphériques comme le micro, le joystick, et les modes d’affichage personnalisables (rotation, positionnement). En cours de développement, des fonctionnalités comme le Wi-Fi (multi-joueur local et connectivité en ligne) ou l’émulation partielle de la DSi sont envisagées.

Dernière mise à jour :

Plateformes

Architecture

Mac OS X - macOS Mac OS X - macOS Intel x86 Intel x86 Apple Silicon Apple Silicon 64 bits 64 bits

Téléchargement et liens

Historique des versions

v1.1
  • Nouveautés majeures pour la compatibilité et les performances :

    • Ajout de l'émulation complète du DSP (Digital Signal Processor) pour la DSi, incluant le HLE (High-Level Emulation), le traitement audio et l'entrée micro, ce qui améliore significativement les jeux compatibles.
    • Intégration d’un système d’entrée thread-safe, corrigeant les crashes aléatoires en multijoueur.
    • Amélioration de la qualité audio avec un resampling haute résolution via blip-buf et réduction du buffer frontal à 512 échantillons pour une meilleure synchronisation.
    • Optimisation du rendu 3D : correction des undefined behaviors dans le rendu logiciel (interpolation linéaire + Z-buffer) et ajout de lus opcodes de traitement de données pour l’AR (ARM RISC-V-like).
    • Support pour l’import de cheats depuis usrcheat.dat avec une interface utilisateur améliorée.
  • Corrections critiques :

    • Fix d’un crash lors de l’accès à une carte SD/MMC non connectée (port inutilisé).
    • Correction d’un bug dans le système de sauvegarde pour Legacy of Ys – Books I and II.
    • Résolution d’un problème de lecture incorrecte dans le stub GDB (paquet vCont).
    • Stabilisation du SPU (Sound Processing Unit) avec une variable non initialisée corrigée, évitant des plantages potentiels.
    • Correction de bugs mineurs dans l’exécution Thumb (BLX immediate) et du comportement du registre CAM_MCNT (caméra).
  • Améliorations spécifiques à macOS (absentes dans ce changelog) : Aucune mention.

Changelog complet
* 3D: use 32-bit division in software renderer (Arisotura) * fix 8-bit NO$GBA debug register writes (FrankHB) * fix save type for Legacy of Ys - Books I and II (CasualPokePlayer) * ROM info dialog: make DS banner more accurate (Rayyan) * DSi: add DSP HLE, DSP audio, mic input (Arisotura, CasualPokePlayer) * make input system thread-safe (fixes random multiplayer crash) (Arisotura) * CI: various vcpkg improvements (Nadia) * JIT/x64: ensure writable code memory after alloc (Rayyan) * JIT: add support for PaX MPROTECT on NetBSD (Rayyan) * JIT: handle W^X codemem in fault handler (Rayyan) * SD/MMC: fix crash when accessing port with no device connected (Arisotura) * gdb stub: fix reading wrong code for vCont packet (jonko0493) * CI: add OpenBSD CI (Izder456) * DLDI: fix log2(size) in driver header (Arisotura) * camera: fix CAM_MCNT reset behavior (Arisotura) * CI: add x64 FreeBSD and NetBSD CI (Rayyan) * audio: add high-quality resampling with blip-buf (Nadia) * 3D: fix UB in software renderer when drawing polygons with linear interpolation and Z-buffering (Arisotura) * AR: add extra D400000x data processing opcodes (Arisotura) * Qt6: use new way to access the native display/window on X11/Wayland (Nadia) * nix: update inputs and add dev shell Qt wrapper workaround (Nadia) * DSi: add support for the main RAM size register, with hack to work around loader crash (Arisotura) * AR: add support for importing cheats from usrcheat.dat, improve UI (Arisotura) * fix UI glitchiness under Wayland when OpenGL is used (Arisotura, thanks PCSX2 team) * fix minor Thumb BLX immediate bugs (Jakly) * update xxHash to 0.8.3 (JordanTheToaster) * reduce frontend audio buffer size to 512, fix audio sync (Nadia) * fix bug that could randomly break audio output (Arisotura) * compute renderer: implement tile size scaling to alleviate glitches at high resolutions (FireNX70) * SPU: fix uninitialized variable causing potential crash (Nadia) * add support for building melonDS on Windows without MinGW (Nadia) * JIT: add OpenBSD compatibility (Izder456)
v1.0
  • Améliorations matérielles majeures :

    • Ajout du support pour le solar sensor (capteur solaire) sans nécessiter de ROM Boktai.
    • Intégration complète du Tad key pour le chiffrement AES, améliorant la compatibilité des jeux.
    • Support des périphériques Motion Pak et Guitar Grip en slot-2.
  • Corrections critiques :

    • Correction des problèmes de latence audio via un buffer unique, réduisant les artefacts.
    • Fix des lectures PDATA du DSP et des IRQ NDMA en mode répétition infinie, stabilisant les jeux dépendants.
    • Résolution des bugs de transparence 3D et des lectures GBA GPIO (évitait des plantages).
  • Stabilité et compatibilité :

    • Correction des framelimiters et des problèmes audio à des FPS < 60.
    • Gestion des firmwares multi-joueur depuis des fichiers spécifiques à chaque instance.
    • Prise en charge des timings VRAM 32-bit pour la DSi (bit SCFG_EXT9), améliorant les jeux compatibles.
  • UI et corrections techniques :

    • Suppression des problèmes OpenGL multi-fenêtres et ajout d’un système de distinction entre fenêtres.
    • Précision accrue des timings caméra et du FIFO, réduisant les artefacts visuels.
    • Correction des paramètres audio (mic) non appliqués après fermeture de la fenêtre de configuration.
Changelog complet
* build system and CI fixes (Nadia) * DSi title manager: fix handling of title strings (Rayyan) * fix gdbstub not activating until the console is reset (ZNixian) * improve audio when not running at 60FPS (Jakly) * fix a lot of warnings (Nadia) * fix framelimiter bugs (Jakly) * add support for solar sensor without using Boktai ROM (Jesse) * set SDL_HINT_APP_NAME (redbluegreenhat) * fix undefined behavior when indexing into ARCode::Code (Jesse) * DLDI: add support for unaligned I/O in melonDLDI driver (Arisotura) * audio settings: fix mic settings not applying when closing the dialog (Arisotura, Nadia) * multiplayer: load firmware from correct instance-specific file (Arisotura) * 3D: small fix to translucency flag assignment (Jakly) * AES: load Tad key (edo9300) * slot-2: add support for Motion Pak and Guitar Grip (asie) * DSP: fix PDATA reads (Arisotura) * slot-2: don't return 0 when attempting to read from the GBA GPIO address (edo9300) * camera: always trigger DMA when reaching the end of a frame (Arisotura) * NDMA: fix IRQ in infinite repeat mode (Arisotura) * camera: fix resolution selection code (Arisotura) * UI: fix OpenGL issues with multiple windows (Arisotura) * UI: add a way to tell windows apart (Arisotura) * camera: make timings and FIFO more accurate (Arisotura) * DSi: add support for 32-bit bus VRAM timings (SCFG_EXT9 bit13) (Arisotura) * sound: use single buffer, improves audio latency (Sparronator9999) * fix "full bios boot" not being set properly on initial DSi class creation (Jakly)
v1.0rc
  • Nouveautés majeures :

    • Ajout d’un système de configuration entièrement refactorisé pour une gestion plus flexible des paramètres.
    • Support natif pour plusieurs fenêtres simultanées (multifenêtrage) et connexions LAN (multi-local).
    • Intégration d’un système de présets de taux de rafraîchissement (framerate target) pour un contrôle précis du rendu.
    • Rendeur OpenGL amélioré : ajout d’un compute shader et correction des artefacts liés au W-buffering (Z undefined).
  • Corrections critiques :

    • Résolution des problèmes d’incompatibilité avec FreeBIOS (communication DS/GBA bloquée).
    • Correction des registres de débogage NO$GBA (inaccuracies fixes).
    • Détection des ROMs DSiWare désormais fiable.
    • Suppression du bruit parasite (blow noise) sur l’entrée micro.
  • Améliorations techniques :

    • Thread-safety renforcée du frontend pour une meilleure stabilité multi-tâche.
    • Support de multi-instances dans un même processus (architecture core refactorisée).
    • Précision accrue du rendeur 3D logiciel (corrections de rendu sur plusieurs titres).
    • Interpolation audio Gaussian (SNES) pour une meilleure qualité sonore.
  • Spécifique macOS :

    • Builds officiels pour Apple Silicon (M1/M2/M3) et architecture x86_64 (pas de mention de macOS minimum ou correctifs Mac spécifiques dans ce changelog).
Changelog complet
* add splashscreen (Arisotura) * add About dialog (Nadia) * emulation fixes for calico (fincs) * make the frontend mostly thread-safe * refactor core to support multiple instances in one process * OpenGL renderer: avoid undefined Z when using W-buffering (Generic) * improve microphone input (Arisotura) * add support for multiple windows (Arisotura) * new configuration system (Arisotura) * add OpenGL compute shader renderer (Generic) * implement framerate target presets (Jakly) * fix microphone blow noise input (Generic) * add LAN support (Arisotura) * add Nix flake (Nadia) * attempts at improving local multiplayer connections (Arisotura) * many accuracy improvements to the software 3D renderer (Jakly) * fix inaccuracy with NO$GBA debug registers (pants64DS) * OpenGL renderer: add support for changing BG0HOFS midframe (Arisotura) * fix zstd ROM loading issues (Nadia) * audio: add Gaussian (SNES) interpolation (Nadia) * fix DSiWare detection (JesseTG) * add support for R4 Revolution/M3 Simply carts (asiekierka) * fix DS/GBA comm not working when using FreeBIOS (Nadia) * probably more

Captures d'écran

Super Mario 64 DS dans melonDS