What's new

melonDS 0.1

Mega-Mario

Emulator Developer
There's a new DS emulator in the town, and it's finally seeing its first public release!


melonDS is part of a second wave of DS emulators. There are a few other emulator projects that are part of it, which you might have already heard of. Either way, check them out!

Why start this project? Mostly for the sake of the challenge, but also because I believe the DS emulation scene needs some fresh air. The NO$GBA author is working hard to reverse-engineer, document and emulate the DSi, but aside from that, there isn't a lot of progress regarding the DS, and I feel that there are still things to be done.

So, without further ado, let's relive 2007! :p


melonDS4_1.png
melonDS4_2.png
melonDS4_3.png

melonDS3_1.png
melonDS3_2.png
melonDS3_3.png



melonDS 0.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


melonDS 0.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


melonDS 0.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


Features

* complete 2D graphics
* 3D graphics (software renderer) with all features except antialiasing
* input: keyboard and joystick, touchscreen
* backup memory
* booting from the BIOS
* resizable video output window, preserving aspect ratio of individual screens

How to use

melonDS requires BIOS/firmware dumps from a DS.

The files must be placed in the same directory as the melonDS executable, as follows:

* bios7.bin -- ARM7 BIOS, 16KB
* bios9.bin -- ARM9 BIOS, 4KB
* firmware.bin -- firmware, 256KB or 512KB

Note: the DS-mode firmware in the 3DS isn't bootable. It only contains the bare minimum required to run DS games. Be sure to enable direct game boot when using a firmware dump from a 3DS.

Settings

Emulation: settings related to emulation. For now it lets you enable direct game boot (directly runs the game instead of going through the firmware).

There's also a wifi-related setting (which only ended up there because I'm lazy and I need to redo the UI). You should try toggling it if you have trouble getting multiplayer working.

Input: allows you to configure keyboard and joystick input. You can change a mapping by clicking the corresponding entry, then pressing a keyboard key or joystick button. For now, joystick input uses the first joystick available if multiple joysticks are plugged.

If your game fails to save

Check the size of the savefile. melonDS can, in some circumstances, misdetect the save memory type.

Save memory type detection is done only when no existing savefile is present.

If you provide an existing savefile with the correct size, melonDS will use the correct save memory type and saving should work properly.


Downloads

* 0.4, Windows 64-bit
* 0.4, Linux 64-bit
* 0.3, Windows 64-bit
* 0.3, Linux 64-bit
* 0.2, Windows 64-bit
* 0.2, Linux 64-bit
* 0.1, Windows 64-bit
* 0.1, Linux 64-bit


If you feel generous

melonDS Patreon


Check out the melonDS site for more.


Have fun! :D
 
Last edited:

LyonHrt

Dcemu.co.uk guy
Nicely done, didn't see this earlier when I posted the news, been following the progress for a while, impressed how quickly you've got this far, I'll post some tests once I've got around to sitting down to play around with it.
 
OP
Mega-Mario

Mega-Mario

Emulator Developer
Sure, but could someone check the spam protection settings? I thought a while ago that getting the 'emu dev' rank would allow me to post links without being considered a potential russian kitchen spammer, but apparently that's not the case. The first post would be nicer with proper links and screenshots.
 
OP
Mega-Mario

Mega-Mario

Emulator Developer
apparently now I can... weird.

anyway the changes are:

• 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


so I updated the first post.

except one of the screenshots is broken because there's a kindergarten filter breaking the URL.

regardless, thank you :)
 
Last edited:

spotanjo3

Moderator
Moderator
apparently now I can... weird.

anyway the changes are:

• 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


so I updated the first post.

except one of the screenshots is broken because there's a kindergarten filter breaking the URL.

regardless, thank you :)

Keep up the good work. Keep update with us on this page. Cheers.
 

Top