[NDS] melonDS x64 0.4

[0] @ Niedziela, 16 Lipca 2017 22:06CET

Nowy projekt i nowe nadzieje - być może melonDS, którego autor StapleButter (lolSnes, blargSNES) kiedyś pokona hegemonie w DeSmuMe i No$GBA w emulacji Nintendo DS. Jak na pierwszą wersję publiczną emulator całkiem sporo potrafi, a pozbawiony wodotrysków chodzi całkiem szybko. Siermiężne GUI i niezbędne posiadanie biosu Nintendo DS to jedyne zgrzyty na początek, za to prężnie rozwijająca się emulacja WiFi to na osłodę, bo DesMuMe i jego moduł WiFi to pieśń przeszłości (z całkiem sporym fochem w teamie emulatora).
Warto zerknąć na stronę domową - dużo dodatkowych informacji i ciekawostek z etapów pracy nad emulatorem.


melonDS 0.4 07-16-17

  • 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
NOWSZY [NDS] melonDS x64 0.9.5 05/11/2022

melonDS Revision 9514efe 0.9.5 05/11/2022

  • 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)


NOWSZY [NDS] melonDS x64 0.9.4 08/03/2022

melonDS Revision 9514efe 0.9.4 08/03/2022

  • Most notably, in DS mode, melonDS no longer requires you to obtain BIOS/firmware files...
  • However, for now, DSi mode still requires you to provide BIOS/firmware/NAND dumps. We are studying ways to get around this requirement, but it's going to take us some work.
  • There is also a new dialog for firmware settings, which allows you to override the firmware settings with your own.
  • DLDI support has also been upgraded: it is now possible to have melonDS generate a SD image for DLDI on its own, and it is also possible to have said SD image synced to a folder on your computer. This means that you can place files in that folder and they will show up in the emulated DLDI SD card, and conversely, any changes made to the emulated SD card will be reflected to the folder on your hard drive....
  • Support for ARM9 PU exceptions in interpreter mode has been added. For commercial games, this doesn't mean a lot, other than making certain crashes work like on hardware. But this may definitely come in handy for homebrew developers, as that means exception handlers will work as they should.
  • We have added a much requested feature: custom paths for saves, savestates and cheat files....
  • In the same vein, the File menu has been revamped to hopefully make the process of loading ROMs more intuitive. This post already talks about it in detail...
  • Generic has been working on properly supporting wifi power saving. This is probably not perfect yet, but it should fix the weird issues you can encounter in Pokémon games when communications are enabled.
  • We also have some new fun features: Github user 2jun0 made a RAM search dialog, which may come in handy to those who want to make cheat codes.


  • 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)
NOWSZY [NDS] melonDS x64 0.9.1 25/12/20

melonDS 0.9 04/09/2019

  • 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
NOWSZY [NDS] melonDS x64 0.9 04/09/20
Boot DSI
Cave Story Nicalis (Nicalis, Inc., Nov 29, 2010)

melonDS 0.9 04/09/2019

JIT recompiler

  • Brought to you by Generic (aka RSDuck), the new JIT recompiler enables melonDS to run much faster, and quite often reach fullspeed even when emulating DSi titles! There are a few settings you can try out to get the most out of this JIT. While it has been heavily tested and worked on, it's still imperfect.

  DSi emulation

  • This is the other flagship feature of this release: melonDS now emulates the DSi!
  • You will need a NAND and firmware dump from your DSi, as well as augmented BIOS dumps (such as those that NO$GBA requires). I intend to release a BIOS dumper to make this easier.
  • Note that this is still experimental. For one, direct boot will not work under DSi mode. Not everything is running yet, either, but we're getting there. melonDS does not yet emulate some hardware like the DSi cameras (but on the other hand, emulates DSi wifi).
  • melonDS has a small hack to bypass the region check. However, DSiware titles can't be run standalone yet, they will need to be installed to the NAND.

New Qt UI

  • This means we get to do more without needing to work around the limitations that libui had. For the end user, this also means a bigger binary, but on the other hand, on Windows, all the dependencies are linked statically, so melonDS does not come with external DLLs anymore.
  • The new interface adds features that were long requested: for example, you can open the emu settings dialog to point melonDS at your desired BIOS/firmware/etc files, without needing to move/rename them around.


  • This is another popular request, and here it is. melonDS lets you enter Action Replay codes to mess with your games in whatever ways you want.


  • melonDS now supports letting homebrew access files and directories on a SD card image. Note that for now, you will need to provide an image file, melonDS does not yet build such images on the fly like DeSmuME can do.
  • Similarly, you can also use a SD card image to emulate the console's SD card in DSi mode.

 ... and the rest!

  • As usual, there are plenty of little improvements with this melonDS release, that are too many to list here, but you may discover them on your own! Or find them in the changelog (which we are still busy compiling - it's a big release).
NOWSZY [NDSi] melonDSI x64 beta I

melonDSI beta 1 15/10/2019

  • Anyway, here we go: we present you melonDSi, in unfinished beta glory. The JIT beta will follow, but I first want to ensure Generic is comfortable with it.
    The end goal will be to merge this with regular melonDS once it's in a better state, but, for now, we're providing it for the curious folks.

How to use melonDSi

BE SURE TO READ THIS BEFORE USING MELONDSI. You are using a beta release, provided with zero polishing and with a debug console. I expect that you know what you are doing to atleast some extent.

melonDSi will require several files to be dumped from a DSi. It's a bit messy right now, but we hope to come up with more user-friendly solutions in the future.

So, if you have a DSi, you might want to install unlaunch on it.

A quick rundown of the files melonDSi requires:

  • bios9.bin / bios7.bin: DS-mode BIOS images. Those are the same as the ones from a DS. They shouldn't be required to get DSi software running, but melonDSi will refuse to start if they aren't present.
  • bios9i.bin / bios7i.bin: DSi-mode BIOS images. Those can be dumped from your DSi using the good ol' dsbf_dump.nds.
  • firmware.bin: SPI FLASH image. See above. dsbf_dump.bin yields a 'FWxxxxxx.bin' file which you need to rename. It should be 128K.
  • dsikeys.bin: AES keys at boot time, dumpable using dsidumper.
  • initmem9.bin / initmem7.bin: Boot-time contents of ARM9 ITCM and ARM7 WRAM, containing several other useful keys. See above.
  • nand.bin: DSi NAND image, ideally dumped with fwTool. This should be dumped from the same console as dsikeys.bin and initmem9/7.bin.


  • Make sure that your DSi-mode ARM7 BIOS is good. Open bios7i.bin in a hex editor. Ensure that the first 32 bytes are the following:
    06 00 00 EA 06 00 00 EA 1F 00 00 EA 04 00 00 EA
    03 00 00 EA FE FF FF EA 13 00 00 EA 00 00 00 EA
  • Make sure that your NAND dump has the 'nocash footer' at the end. Open it in a hex editor and check that it has the string 'DSi eMMC CID/CPU' at offset 0xF000000. This is the beginning of the 64-byte 'nocash footer', which holds the eMMC CID and console ID.

Ideally make sure that direct boot is disabled.

Using melonDSi

  • As with regular melonDS, System->Run will boot the firmware, which should land you into the DSi menu if you did everything right.
  • You will need to recalibrate the touchscreen through the system settings app to have it work correctly.
  • melonDSi can boot some DSi-mode apps, but they currently don't work that well.

Booting games

  • melonDSi is able to boot DS-mode games from the DSi menu. They currently run with the DS-mode BIOSes and backwards-compatible touchscreen mode, but at the 133MHz clock speed and with 16MB of RAM.
  • DSi-enhanced games do not boot yet
  • Direct boot is likely to break things as it hasn't been updated yet.

Other issues

  • Do not attempt using savestates, they can and will go wrong.
  • melonDSi is based on melonDS 0.8.1, so it will have the bugs present in that version.
NOWSZY [NDS] melonDS x64 0.8.3 04/09/19
Go West! A Lucky Luke Adventure (2007, Bomico)

melonDS 0.8.3 Revision e8f4735 04/09/2019

  • 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)
NOWSZY [NDS] melonDS x64 0.8.2 25/06/19
Giana Sister DS (2009, Spellbound Entertainment AG)

melonDS 0.8.2 Jun 25th 2019


  • 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

Author's comment

melonDS 0.8.2 is out! This is not so revolutionary, but we're fixing a few issues.
Namely, there have been some fixes to the OpenGL renderer. If you were one of those for whom it did not work, we hope that now it will work. There are still issues with it, but we will eventually find them and fix them all.
I also undid a quick hack I did in 0.8.1 to try fixing texture alignment problems, that in the end caused more issues than it fixed. This problem will need a cleverer solution. It basically stems from the fact that the DS rasterizer works differently from OpenGL: it has no subpixel precision, and calculates color/texcoord for exact pixel positions, where OpenGL calculates them for a position that is +(0.5,0.5) inside the pixel.
I also hope to improve the GL renderer some more. In mind are: texture cache, texture upscaling/filtering, applying filtering to the 2D layer, doing something for dual-screen 3D...
We fixed a bug with the 'map joystick button and axis' feature of 0.8.1, where, if you mapped an axis control alone, it would also map 'button 1' alongside it.
melonDS now explicitly disables VSync when using OpenGL, atleast under Windows.
We also fixed a bunch of issues, potential crashes, etc...
... and changed kMaxIterationCycles from 16 to 64. That constant controls how many maximum cycles the ARM9 can run before control is given to the ARM7 and other system components. This change might affect accuracy negatively (it is worth noting that melonDS has several provisions for on-demand sync, bypassing kMaxIterationCycles) but has been found to give a small speed boost.

NOWSZY [NDS] melonDS x64 0.8.1 12/06/19

melonDS 0.8.1 Jun 12th 2019


  • 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

Author's comment

Input upgrade
The input code has been reworked to be more pleasant to deal with, especially with regards to adding hotkeys. It is now possible to map keys with modifiers, like Ctrl+Z or Shift+R or even combinations like Ctrl+Alt+Q. It is worth noting that during mapping, you should use left-hand Ctrl/Alt/Shift keys for these mappings(...)
I have also been upgrading joystick support. You can now choose which joystick to use, and can map axes to buttons/hotkeys.
I also added support for multiple hat controls.

This new, optional feature shows some short, temporary status messages onscreen. For example, when loading or saving savestates, pausing, resuming...

New hotkeys
You might remember that some early melonDS versions had a secret hardcoded fast-forward hotkey. This seems to have appeared in version 0.3, but eventually disappeared with the UI revamp in version 0.5.
Well, now, with Ace4896's contribution, this feature is back with a proper hotkey mapping. There is also a 'toggle' hotkey that enables or disables the framerate limiter.
I also added hotkeys for pausing and resetting emulation.

OpenGL fixes
Several of the crashes and rendering errors that appeared in 0.8, stemming from the new OpenGL support, have been fixed in this version.
I also added a little hack to support line triangles in OpenGL, and a preliminary implementation of edge marking, which you can see demonstrated in one of the screenshots above.
There's also a bunch of little fixes and optimizations, as usual.


NOWSZY [NDS] melonDS x64 0.8 1/06/19 Fix
Ninja Gaiden: Dragon Sword (2008, Team Ninja)

melonDS 0.8 July 1st 2019, by Arisotura

  • ...We just pushed a hotfix release. This should fix broken 3D rendering with OpenGL, namely for AMD/Intel GPU users.

melonDS 0.8 May 31st 2019, by Arisotura

It's been awaited for so long, and finally, by popular request, here it is: melonDS 0.8, with OpenGL renderer and upscaling!

The OpenGL renderer

This renderer is an attempt at targeting a sweet spot of, say, 90% compatibility while being fast. If you have read the previous posts about the DS GPU and how quirky that thing is compared to your average GPU, you guess that perfect rendering with OpenGL isn't going to be possible, but we can do our best. The current renderer supports most of the DS GPU features, but not all of them. There is room for improvement, but certain features will just not be implemented.


The OpenGL renderer is enabled by default, but you can go to the video settings dialog to configure it. Namely, this renderer supports increasing the internal resolution to up to 8x the native resolution. Note that changing the internal resolution does not change the window size, you will need to take care of that. However, changes from the video settings dialog apply instantly, so you can compare the various settings and select the one you like best.

Take note that the 0.8 release is a bit of an experiment. Basically, we tested it before release to ensure the OpenGL renderer will work, but we can't cover every setup that exists, so it is likely that there will be issues arising either from crummy programming on our part, or from crummy OpenGL drivers. So, if you have any issue with this, let us know!


  • 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


NOWSZY [NDS] melonDS x64 0.7.4

melonDS 0.7.4 Mar 26

  • 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)

Authors comments @Project:

This release is hardly going to be revolutionary though, but I had to get it out before starting work on the hardware renderer.
The highlight of this release is the upgrade to the online wifi feature. Two main points there:

  1. Under direct mode, you can finally choose which network adapter will be used by libpcap. The wifi settings dialog also shows their MAC and IP as to help you ensure you're picking the right adapter.
  2. Indirect mode, which, as mentioned before, works without libpcap and on any connection. However, it's in alpha stages and it's a gross hack in general, so you can feel free to try it out, but don't expect miracles.

As usual, direct mode requires libpcap and an ethernet connection, and that you run melonDS with admin/superuser privileges.
Other than that, there are a few little fixes to the SDL audio code. melonDS now only emits sound when running something, so it shouldn't emit obnoxious noises when starting anymore. Also, it no longer crashes if you use WAV microphone input with a file that has multiple channels.

wstecz16/07/2017 22:06
Dodatkowe informacje
... bez komentarza
Ostatnio dodane pliki
Newsy Linkownia Emulatory na PC Wideoteka Screenshoty Bajtek Reduks Ready.Run

© Try2emu 1999 - 2024 | Krzysztof 'Faust' Karkosza Kontakt Polityka Prywatności OWU