melonDS

Gaming ToolsGPL-3.0

melonDS release notes.

Latest 1.1 · by melonDSWritten in C++Websitemelonds-emu/melondsRSS

Changelog

What changed from 0 to 1

1.1

Latest
Added 8
  • Add DSP HLE, DSP audio, and mic input for DSi
  • Add support for PaX MPROTECT on NetBSD in JIT
  • Add high-quality resampling with blip-buf for audio
  • Add extra D400000x data processing opcodes for AR
  • Add support for importing cheats from usrcheat.dat and improve AR UI
  • Add support for building melonDS on Windows without MinGW
  • Add OpenBSD compatibility in JIT
  • Add support for main RAM size register in DSi with hack to work around loader crash
Changed 6
  • Use 32-bit division in 3D software renderer
  • Make DS banner more accurate in ROM info dialog
  • Use new way to access native display/window on X11/Wayland in Qt6
  • Update xxHash to 0.8.3
  • Reduce frontend audio buffer size to 512 and fix audio sync
  • Implement tile size scaling in compute renderer to alleviate glitches at high resolutions
Fixed 14
  • Fix 8-bit NO$GBA debug register writes
  • Fix save type for Legacy of Ys - Books I and II
  • Make input system thread-safe to fix random multiplayer crash
  • Ensure writable code memory after allocation in JIT/x64
  • Handle W^X codemem in fault handler in JIT
  • Fix crash when accessing SD/MMC port with no device connected

From melonDS

  • 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)
View originalPermalink
How 1.1 went

1.0

Added 5
  • add support for solar sensor without using Boktai ROM
  • DLDI: add support for unaligned I/O in melonDLDI driver
  • AES: load Tad key
  • slot-2: add support for Motion Pak and Guitar Grip
  • DSi: add support for 32-bit bus VRAM timings (SCFG_EXT9 bit13)
Changed 3
  • improve audio when not running at 60FPS
  • camera: make timings and FIFO more accurate
  • sound: use single buffer, improves audio latency
Fixed 13
  • DSi title manager: fix handling of title strings
  • fix gdbstub not activating until the console is reset
  • fix framelimiter bugs
  • fix undefined behavior when indexing into ARCode::Code
  • audio settings: fix mic settings not applying when closing the dialog
  • multiplayer: load firmware from correct instance-specific file

From melonDS

  • 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)
View originalPermalink
How 1.0 went
1.0rcPre-release

1.0 RC

Added 9
  • Splashscreen
  • About dialog
  • Support for multiple windows
  • OpenGL compute shader renderer
  • LAN support
  • Nix flake
Changed 7
  • Make the frontend mostly thread-safe
  • Refactor core to support multiple instances in one process
  • Improve microphone input
  • Implement new configuration system
  • Improve local multiplayer connections
  • Improve accuracy of the software 3D renderer
  • OpenGL renderer: add support for changing BG0HOFS midframe
Fixed 7
  • Emulation fixes for calico
  • OpenGL renderer: avoid undefined Z when using W-buffering
  • Microphone blow noise input
  • Inaccuracy with NO$GBA debug registers
  • Zstd ROM loading issues
  • DSiWare detection
  • DS/GBA comm not working when using FreeBIOS

From melonDS

  • 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
View originalPermalink
How 1.0rc went

0.9.5

Added 9
  • Add VRAM-compatible LZ77 decompress function to FreeBIOS, fixing Yoshi's Island
  • Add support for GXFIFO NDMA on DSi
  • Add mainRAM mirror at 0x0C000000 on DSi
  • Add 3DS 5:3 aspect ratio and refactor aspect ratio code
  • Add preliminary implementation of SNDEXCNT on DSi
  • Implement 8/16bit access to AES registers on DSi
Changed 6
  • In DSi mode, emulate DWM-W015 wifi board instead of DWM-W024 in default firmware
  • Save WFC settings to separate file in default firmware
  • Improve 2D fade and blending accuracy
  • Improve wifi emulation
  • Force-align all memory accesses instead of just CPU memory accesses
  • Improve CLI parameter handling
Fixed 16
  • Remove incorrect color profile from PNG icons
  • Fix DLDI for the Smash demo
  • Fix gaps in I/O handling
  • Fix invalid savemem commands that caused issues in Dementium
  • Disable firmware overrides UI when firmware override is not checked
  • Fix 16x resolution on macOS with OpenGL

From melonDS

  • 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)
View originalPermalink
How 0.9.5 went

0.9.4

Added 8
  • Use DraStic open-source DS BIOS replacement
  • Generate non-bootable firmware replacement
  • Support for syncing DLDI/DSi SD image to a folder
  • ARM9 PU (code/data abort) support in interpreter mode
  • Custom path support
  • Add support for zero addresses in AR codes 3xxxxxxx to Axxxxxxx
  • Add RAM search dialog
  • Add power management dialog for setting battery parameters
Changed 5
  • Redesign of the Input dialog
  • Smarter SDL initialization
  • Lower window refresh rate if running too fast
  • Wifi power-saving support
  • Allow swap-screen hotkey to swap between displaying only top screen and only bottom screen
Fixed 6
  • Fix ADPCM decoding bug resulting in potential crackling
  • Block sound DMA from reading the ARM7 BIOS
  • Properly center the main window on macOS
  • Don't try to render if the emulator is inactive
  • Fix potential issues with DSi title importing
  • Fix nifi socket init on BSD and macOS

From melonDS

  • 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)
View originalPermalink
How 0.9.4 went

0.9.3

Added 9
  • Frontend: handle tablet and touch events
  • Implement NO$GBA debug registers
  • Add frame step hotkey
  • Add DSP code
  • Save window state
  • Add ROM info dialog
Changed 6
  • Fill most gaps in ROMList
  • GBACart: simulate open-bus decay roughly
  • JIT optimisations and fixes
  • More accurate NWRAM implementation
  • Only open microphone if necessary
  • Patch touchscreen calibration data in DSi mode
Fixed 5
  • Fix macOS right modifier detection
  • Fix touchscreen code in non-hybrid layout mode
  • Make Setup Cheats option reappear on macOS
  • Fix undo load savestate loading
  • Fix pause when inactive

From melonDS

  • 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)
View originalPermalink
How 0.9.3 went

0.9.2

Added 6
  • proper Mac builds
  • recent-files menu
  • support for loading files from archives
  • hotkey for swapping screens
  • support for NAND save memory
  • new screen modes
Changed 4
  • optimize single-param GX commands
  • improve performance of save-memory writeback
  • rework GPU2D for easier integration of full GL rendering
  • rework NDSCart and GBACart to make it easier to implement new cart types
Fixed 6
  • JIT on ARM Macs
  • JIT bugs
  • wifi bugs
  • various 3D/GL bugs
  • OpenGL scaling on hiDPI displays
  • bugs in DSi I2C and SD/MMC interfaces

From melonDS

  • 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
View originalPermalink
How 0.9.2 went

0.9.1

Added 3
  • add fullscreen hotkey
  • add ability to run unlaunch'd DSi NANDs
  • add preliminary camera support with fixed stripe pattern
Changed 4
  • SPU: small optimization to the mixer
  • better framerate limiter
  • GPU: emulate separate scroll register for 3D layer scrolling
  • some corrections to the ROM savetype list
Fixed 3
  • fix some gaps in the IO handlers
  • fix potential bugs with tight timers
  • fix several JIT issues
Removed 1
  • remove hardcoded F11-debug key

From melonDS

  • 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
View originalPermalink
How 0.9.1 went

0.9

Added 6
  • merge in experimental DSi support
  • GBA slot and solar sensor support
  • add support for AR cheat codes
  • add JIT recompiler
  • new Qt UI
  • add basic DLDI
Changed 10
  • 2D: delay palette lookup for sprites
  • CP15: only update PU regions when actually needed
  • 3D: change clipping to be closer to hardware
  • 3D: implement DISP_1DOT_DEPTH
  • 3D: more accurate viewport transform
  • SPU: only start channels when they can actually run
Fixed 10
  • 2D: some attempts at fixing mosaic
  • 2D: fix sprite Y-flip
  • 3D/GL: fix transparency bugs
  • fix libpcap bug (i404788)
  • fix handling of ROMs with encrypted secure area
  • 3D/GL: cleaner polygon generation code
Security 1
  • add warning against hacked firmwares

From melonDS

  • 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<4
  • 3D/GL: cleaner polygon generation code
  • 3D/GL: add attempt at reducing warping on quads/etc
  • 3D: add missing variables to savestates
  • wifi: avoid potential out-of-bounds writes with invalid RX buffer setups
  • 3D/GL: fix issues with framebuffer handling
  • make MAC randomization optional
  • make software renderer the default
  • add basic DLDI
View originalPermalink
How 0.9 went

0.8.3

Added 2
  • Add new FPS limiter with audio sync and vsync support for OpenGL
  • Add warning message if romlist.bin is not found
Changed 2
  • Support forcedblank+masterbrightness in 2D rendering
  • Fill gaps in 2D implementation including mode6 on sub GPU, mode7, and prohibited modes/sizes for OBJ and largeBG
Fixed 4
  • Fix ARM 'shift by register' operands
  • Fix input bugs when using Ctrl/Alt/Shift keys for buttons
  • Fix possible crashes when exiting
  • Fix division edge case
Removed 1
  • Remove glBindImageTexture() call that requires GL 4.2

From melonDS

  • 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)
View originalPermalink
How 0.8.3 went
View all

Discussion

If you publish melonDS, you can claim this product by proving you administer its repository.