melonDS

melonDS-emuGPL-3.0活跃维护

用 C++ 写的高精度 NDS/DSi 模拟器,兼容性和运行速度都不错,想在电脑上玩任天堂 DS 游戏可以试试。

DS emulator, sorta

1.1发布于 2025-11-18 10:14 UTC5,198star +15 / 7 天937fork同步于 2026-11-10 11:36 UTC

怎么上手

由 README 提炼,执行前请确认
参见 BUILD.md 获取构建说明
硬件要求按 README 说明

README 未说明具体硬件要求,仅提到 OpenGL 渲染;构建平台覆盖 Windows、Ubuntu、macOS 与 BSD。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

melonDS 是一个追求正确与速度的任天堂 DS 模拟器,让你在电脑上跑 DS 游戏

用 C++ 写的高精度 NDS/DSi 模拟器,兼容性和运行速度都不错,想在电脑上玩任天堂 DS 游戏可以试试。

核心能力

  • 支持固件启动与直接启动两种方式
  • 可读取 DS、DS Lite、iQue DS 的 BIOS 与固件转储
  • 兼容 DSi/3DS 导出的 DS BIOS 转储
  • 提供 OpenGL 渲染(README 列为待改进项)
  • 跨平台构建,覆盖 Windows、Ubuntu、macOS、BSD

容易踩的坑

固件启动需要自备原版 DS 或 DS Lite 的 BIOS 与固件转储,仓库不附带;从 DSi 或 3DS 导出的 DS 模式固件不含 bootcode,只能用于直接启动游戏;DSi 模式下的 DSi BIOS 转储不兼容,README 对此也语焉不详。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本1.1
  1. 1.1最新正式版2025-11-18 · 2025-11-18 10:14 UTC
    • 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)
  2. 1.02025-07-08 · 2025-07-08 22:50 UTC
    查看更新说明
    • 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)
  3. 1.0rc1.0 RC2024-11-21 · 2024-11-21 00:38 UTC
    查看更新说明
    • 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
  4. 0.9.52022-11-03 · 2022-11-03 22:06 UTC
    查看更新说明
    • remove incorrect color profile from PNG icons (Nadia)
    • DLDI fixes for the Smash demo (Arisotura)
    • fix gaps in I/O handling (Arisotura)
    • fix invalid savemem commands, fixes Dementium (Arisotura)
    • FreeBIOS: add VRAM-compatible LZ77 decompress function, fixes Yoshi's Island (Arisotura)
    • default firmware: in DSi mode, emulate DWM-W015 wifi board instead of DWM-W024 (Arisotura)
    • default firmware: save WFC settings to separate file (Arisotura)
    • disable firmware overrides UI when firmware override isn't checked (Nadia)
    • 2D: more accurate fade/blending (Arisotura)
    • DSi: add support for GXFIFO NDMA (Arisotura)
    • DSi: add mainRAM mirror at 0x0C000000 (Arisotura)
    • add 3DS 5:3 aspect ratio, refactor aspect ratio code (Nadia)
    • OpenGL: fix 16x resolution on macOS (Nadia)
    • fix triggers being recognized as negative analog stick values during mapping (Nadia)
    • fix joystick mapping buttons on macOS (Nadia)
    • DSi: preliminary implementation of SNDEXCNT (Generic)
    • DSi: fix SD inserted/removed IRQ bits (Generic)
    • DSi: implement 8/16bit access to AES registers (Generic)
    • DSi: fix SCFG_MC cart-inserted bit (Generic)
    • JIT: invalidate blocks in ARM7 VRAM/WRAM when it is remapped (Generic)
    • fix ROM banner reading when the ROM has no banner (Rayyan, Arisotura)
    • fix UTF16 ROM title handling in the ROM info dialog (Rayyan)
    • wifi: improvements to wifi emulation (Arisotura)
    • wifi: shared-memory based sync/comm mechanism for local wifi (Arisotura)
    • proper support for multiple melonDS instances for multiplayer (Arisotura)
    • DSi: actual, proper camera support (Arisotura)
    • DSi: fix DSP enough that it will actually work (Arisotura)
    • fix OpenGL context handling (Stenzek, Generic, Nadia)
    • force-align all memory accesses (instead of just CPU memory accesses) (Arisotura)
    • better CLI parameter handling (patataofcourse)
    • fix bugs in DSi direct boot (Arisotura)
  5. 0.9.42022-03-09 · 2022-03-09 20:21 UTC
    查看更新说明
    • Redesign of the Input dialog (Rayyan)
    • Use DraStic open-source DS BIOS replacement (Swordfish90, asiekierka)
    • Generate non-bootable firmware replacement (Swordfish90, asiekierka, others)
    • Support for syncing DLDI/DSi SD image to a folder (Arisotura)
    • ARM9 PU (code/data abort) support in interpreter mode (Arisotura)
    • Fix ADPCM decoding bug resulting in potential crackling (Arisotura)
    • Block sound DMA from reading the ARM7 BIOS (Arisotura)
    • Smarter SDL initialization (andrigamerita, Nadia, Arisotura)
    • Properly center the main window on macOS (Nadia)
    • Don't try to render if the emulator is inactive (Nadia)
    • Fix potential issues with DSi title importing (Nadia, Epicpkmn11)
    • Custom path support (Arisotura)
    • Fix nifi socket init on BSD and macOS (Nadia)
    • Add support for zero addresses in AR codes 3xxxxxxx to Axxxxxxx (Arisotura)
    • Lower window refresh rate if running too fast (RSDuck)
    • Wifi power-saving support (RSDuck)
    • Allow swap-screen hotkey to swap between displaying only top screen and only bottom screen (ZackWeinstein)
    • Add RAM search dialog (2jun0)
    • Add power management dialog for setting battery parameters (Rayyan)

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    The goal is to do things right and fast, akin to blargSNES (but hopefully better). But also to, you know, have a fun challenge :)

    How to use

    Firmware boot (not direct boot) requires a BIOS/firmware dump from an original DS or DS Lite. DS firmwares dumped from a DSi or 3DS aren't bootable and only contain configuration data, thus they are only suitable when booting games directly.

    Possible firmware sizes

    • 128KB: DSi/3DS DS-mode firmware (reduced size due to lacking bootcode)
    • 256KB: regular DS firmware
    • 512KB: iQue DS firmware

    DS BIOS dumps from a DSi or 3DS can be used with no compatibility issues. DSi BIOS dumps (in DSi mode) are not compatible. Or maybe they are. I don't know.

    As for the rest, the interface should be pretty straightforward. If you have a question, don't hesitate to ask, though!

    How to build

    See BUILD.md for build instructions.

    TODO LIST

    • better DSi emulation
    • better OpenGL rendering
    • netplay
    • the impossible quest of pixel-perfect 3D graphics
    • support for rendering screens to separate windows
    • emulating some fancy addons
    • other non-core shit (debugger, graphics viewers, etc)

    TODO LIST FOR LATER (low priority)

    • big-endian compatibility (Wii, etc)
    • LCD refresh time (used by some games for blending effects)
    • any feature you can eventually ask for that isn't outright stupid

    Credits

    • Martin for GBAtek, a good piece of documentation
    • Cydrak for the extra 3D GPU research
    • limittox for the icon
    • All of you comrades who have been testing melonDS, reporting issues, suggesting shit, etc

    Licenses

    GNU GPLv3 Image

    melonDS is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

    External

    • Images used in the Input Config Dialog - see src/frontend/qt_sdl/InputConfig/resources/LICENSE.md