melonDS
MelonDS est un émulateur de Nintendo DS qui se veut assez rapide. Son binaire est universel (Intel/Apple Silicon).
Dernière mise à jour :
Plateformes
Architecture
Mac OS X - macOS
Apple Silicon
64 bits
Téléchargement et liens
- Télécharger melonDS
- Site officiel
- Code source
-
brew install --cask melonds
Historique des versions
v1.1
* 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
* 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
* 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
v0.9.5
* 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)
v0.9.4
* 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)
v0.9.3
* Fix macOS right modifier detection (Nadia)
* Fill most gaps in ROMList (Arisotura)
* Fix touchscreen code in non-hybrid layout mode (Arisotura)
* GBACart: simulate open-bus decay roughly (Arisotura)
* Frontend: handle tablet and touch events (Generic aka RSDuck)
* Implement NO$GBA debug registers (BlueTheDuck)
* Make Setup Cheats option reappear on macOS (Nadia)
* Add frame step hotkey (Yukitty, additional fixes by Gal20)
* Add DSP code (PoroCYon, purringChaos)
* Save window state (Arisotura)
* JIT optimisations and fixes (Generic aka RSDuck)
* Add ROM info dialog (Rayyan)
* Allow using DSi footer within NAND images (MightyMax)
* More accurate NWRAM implementation (MightyMax)
* Only open microphone if necessary (Arisotura)
* Fix undo load savestate loading (Generic aka RSDuck)
* Fix pause when inactive (Generic aka RSDuck)
* Add audio interpolation (Arisotura)
* Add SOUNDBIAS and optional 10bit audio (Nadia)
* Patch touchscreen calibration data in DSi mode (Arisotura)
* Add DSi title manager (Arisotura)
* Fix threaded rasteriser deadlock when VCount is moved (Generic aka RSDuck)
* Add preliminary DSi-mode direct boot (MightyMax, Arisotura)
* More accurate DMA timings (Arisotura)
v0.9.2
* fix JIT on ARM Macs
* add proper Mac builds
* GX: optimize single-param commands
* add recent-files menu (abcdjdj)
* add support for loading files from archives
* fix JIT bugs
* fix wifi bugs
* improve performance of save-memory writeback
* add hotkey for swapping screens
* 3D/GL: attempt fixing various bugs
* fix OpenGL scaling on hiDPI displays
* rework GPU2D for easier integration of full GL rendering
* rework NDSCart and GBACart to make it easier to implement new cart types
* add support for NAND save memory (WarioWare DIY, Jam with the Band)
* fix bugs in DSi I2C and SD/MMC interfaces
* new screen modes
v0.9.1
* add fullscreen hotkey
* remove hardcoded F11-debug key (oops)
* fix some gaps in the IO handlers
* add ability to run unlaunch'd DSi NANDs
* add preliminary camera support (feeds fixed stripe pattern)
* fix potential bugs with tight timers (fixes ZXDS)
* SPU: small optimization to the mixer
* better framerate limiter
* fix several JIT issues
* GPU: lay bases for EVIL PLANS
* GPU: emulate separate scroll register for 3D layer scrolling
* some corrections to the ROM savetype list
* a bunch of misc fixes, as usual
v0.9
* merge in experimental DSi support
* 2D: delay palette lookup for sprites
* 2D: some attempts at fixing mosaic
* CP15: only update PU regions when actually needed
* 2D: fix sprite Y-flip
* 3D/GL: fix transparency bugs
* add warning against hacked firmwares
* fix libpcap bug (i404788)
* better file handling code (Nadia)
* GBA slot and solar sensor support (rzumer)
* add support for AR cheat codes
* fix handling of ROMs with encrypted secure area
* 3D: change clipping to be closer to hardware
* 3D: implement DISP_1DOT_DEPTH
* 3D: more accurate viewport transform
* build fixes (Nadia)
* add JIT recompiler (RSDuck)
* new Qt UI
* SPU: only start channels when they can actually run
* 2D: allow writes to DISPCNT/masterbright/capture/dispFIFO regardless of POWCNT
* SPU: don't process channels with len
v0.8.3
* fix ARM 'shift by register' operands (fixes Mario Party DS 'Stick and Spin' minigame)
* remove glBindImageTexture() (not needed and requires GL 4.2)
* fix input bugs when using Ctrl/Alt/Shift keys for buttons
* fix possible crashes when exiting (again. heh)
* 2D: support forcedblank+masterbrightness
* 2D: fill gaps in implementation (mode6 on sub GPU, mode7, 'prohibited' modes/sizes for OBJ and largeBG)
* build fixes
* fix division edge case (xperia64)
* new FPS limiter, audio sync, vsync for OpenGL
* add warning message if romlist.bin is not found (Zettymaster)
v0.1
First release.
v0.2
* preliminary sound
* various compatibility improvements and fixes
* various little speedups too
* cart transfer delays emulated
* RTC uses system time
* wifi stub -- games requiring wifi functionality shouldn't hang anymore
* 2D: windows
* 2D: various fixes to display capture
* 3D: toon/highlight shading, shadows, polygonID
* 3D: box test, pos test, vec test
v0.3
* set POSTFLG when booting games directly, fixes Pokémon games and likely others
* fix bug with cart DMA, booting a game from the firmware should be stable now
* better emulation of cart transfer delays
* better save type heuristics
* support for writing to VCount
* 2D: fix display capture blending modes
* 2D: implement X-flip for bitmap sprites (oops)
* 3D: fix mode3 (vertex) texcoord generation (Eledees no longer looks like your TV decoder broke)
* 3D: fix Z-buffering
* 3D: attempt at fixing culling, works better
* 3D: latch all rendering-related registers upon VBlank
* 3D: delay rendering start a bit, for games that run late
* 3D: optional threaded renderer
* 3D: change renderer to work per-scanline; accurate stencil buffer
* 3D: fix alpha calculation when alphablending is disabled via DISP3DCNT
* 3D: fog and edge marking
* wifi: more functionality emulated, attempt at sending/receiving data
* misc bugfixes and optimizations
* better framerate limiter
v0.4
* implement access modes for certain IO registers that were unhandled
* actually implement RCNT instead of hardcoding it
* wifi: emulation of multiplayer cmd/reply/ack transfers
* wifi: more accurate RFSTATUS/RFPINS
* wifi: some games can go into multiplayer now (Pictochat, NSMB, Pokémon known working)
* improved savemem detect heuristic
* implement firmware write, fix SPI bugs
* accurate emulation of 'main memory display FIFO'
* 2D: fix render/capture order
* 2D: implement mode6 large BG
* 2D: fix bitmap BG sizes
* 2D: fix rotscaled bitmap sprites
* 3D: fix missing term in MatrixTranslate
* 3D: fix toon highlight mode
* 3D: fix boxtest bug
* 3D: accurate viewport transform
* 3D: polygon Y-sorting
* 3D: more accurate interpolation, still not perfect
* 3D: more accurate Z and W transforms, fix some cases of Z-fighting
* 3D: separate polygonID attributes for opaque and translucent pixels
* 3D: start documenting and implementing depth test edge cases
* emulate delays for SPI transfers and div/sqrt
* misc bugfixes/additions as usual
v0.5
* new UI, more stable, less windows all over the place
* wxWidgets ditched, lost some weight
* 2D: allow reading BLDALPHA
* GPU: fix potential issues with VCount write
* implement 8bit accesses to some registers
* 2D: mosaic (not quite right for rotscaled sprites)
* 3D: fix culling
* allow 128KB firmwares from DSi/3DS
* 3D: more accurate fog
* 3D: more accurate polygon edges (but not perfect)
* 3D: antialiasing
* 3D: misc optimizations
v0.6b
* fix screen option menu init
* add icon
* add resampler with small tolerance to prevent sound clicks/pops at fullspeed
v0.6
* don't fail completely if SDL haptic init fails (bentley)
* fail gracefully when ROM loading fails
* support Unicode filenames under Windows
* FPS counter is back (sorry!)
* allow Windows file picker to navigate through shortcuts (instead of trying to load the shortcut as a ROM)
* screen layout/sizing/scaling modes, screen gap, rotation
* toggle for screen linear filtering
* add support for 8bit GXSTAT accesses
* reset IE/IF properly
* fix sound capture/playback for things like surround
v0.7
* fix possible crashes when exiting
* wifi: add basic access point melonAP (very beta)
* fix SMULWx/SMLAWx opcodes, fixes Sims 2 music
* add support for loading BIOS/firmware files and config file from AppData or ~/.config/melonds or from the executable directory (hcorion)
* add 32-bit IPCSYNC reads/writes (Dirbaio)
* add savestates
* 3D: (hopefully) fix bug in shadow/AA interaction (visible in the MKDS character select preview, bottom border of the platform thing)
v0.7.1
* fix glitched lines in 3D
* fix backwards windows
* more accurate GX timings
* more accurate DMA and memory timings
* check for config/etc files in melonDS's directory explicitly
* allow joystick axis events even when no dpad buttons are mapped
* detect savemem type from database instead of huge messy fucky code
v0.7.2
* microphone input (physical mic, noise, wav)
* nocash-style console printing
* send console output to cmd under Windows
* corrections to romlist.bin
* 2D: fix blending for semitransp sprites and 3D layer when windows are used (bypasses window 'color effect enable' check)
* 3D: fix 'equal' depth test margin in Z-buffering mode, fixes Puzzlers World 2
* SPU: add support for channel repeat mode 3 (behaves same as 1)
* SPU: always clear channel buffers, even when running ch0-7 in mode 3 (fixes American Girl - Kit Mystery Challenge!)
* libui/windows: cache ideal size for uiButton. fixes lag in input config dialog
* close/open lid, sleep mode
* hotkey system
* audio settings dialog, with volume slider and microphone settings
* libui/gtk: remember last directory in which a ROM was opened
* libui/gtk: attempts at fixing input config dialog crashes
* framerate limiter toggle (abcdjdj)
* add Linux libpcap library names (dogtopus)
* betterer readme (Aqueminivan)
* GX: set busy flag immediately when putting things in the FIFO, fixing possible race condition
* GX: revise timing for SWAP_BUFFERS command
* add flatpak manifest (cpba)
v0.7.3
* fix STRD_POST (fixes Just Sing - Vol 2 music)
* add support for POWCNT1 (fixes Imagine - Teacher)
* 2D: fix fade effects to semitransp sprites and 3D layer (fixes Devil Survivor)
* 3D: truncate W to 24 bits before viewport transform. do not render polygons with any W=0.
* attempt at fixing hiDPI under Windows
* fix input config dialog crashes under Linux
* add support for hotplugging joysticks
* make 'savefile relocation when using savestates' disabled by default
* remember whether main window is maximized
* add menu for setting main window to an integer size
* init save memory to 0xFF instead of 0x00
* romlist.bin: index games by serial rather than CRC. updated romlist.
* add support for 128K EEPROM (Pokémon Mystery Dungeon - Explorers of Sky)
* make nocashprint also work in ARM mode
* GX: always latch rendering engine registers, even when not flushing
* GX: fix polygon timings when polygon is rejected by culling/clipping
* rewrite main emu loop to use absolute timestamps
v0.7.4
* fix potential spurious sounds when starting melonDS
* fix crash when using microphone with a WAV that has multiple channels
* small optimizations and tweaks
* wifi: add wifi settings dialog, with libpcap adapter list
* wifi: first version of indirect (non-libpcap) mode
* move most of the config settings to a platform-specific array (really just making it easier to port melonDS)
v0.8
* fix CP15 init during direct boot
* do not apply delays to cart transfers when the WR bit is set
* misc fixes
* OpenGL renderer and upscaling
v0.8.1
* fix potential issue generating the config file path under Linux
* fix 3D/2D blending bugs under OpenGL
* fix potential crash under the software renderer when display capture is used
* basic, optional OSD system
* add support for setting key mappings to none
* add fast-forward and pause/reset hotkeys
* fix crash when closing an input config dialog during the joystick mapping process
* fix bugs when changing video settings with no game loaded
* faster IRQ checks
* faster VRAM reads
* 3D/OpenGL: preliminary edge marking
* 3D/OpenGL: fix fog alpha
* 2D: render sprites one scanline in advance (iCarly - Groovy Foodie)
* 3D/software: fix rendering of line polygons
* 3D/OpenGL: add proper-ish support for line polygons
* support multiple joysticks
* add support for mapping keys with modifiers
* add support for mapping joystick axes alongside buttons, remove hardcoded axis 0/1 mapping
* overall better input/hotkey code
v0.8.2
* fix GL renderer not working at all on certain setups (RSDuck)
* add 32bit writes to certain IO ports (fixes some freezes)
* OpenGL: disable vsync under Windows
* fix bug when mapping a joystick axis but no button
* set kMaxIterationCycles to 64 (old value 16)
* fix potential crash when pressing Escape with menus opened
* OpenGL: remove shitty hack
* OpenGL: better lines
* fix potential crash when closing emu
Captures d'écran