MelonDS Switch

From GameBrew
Revision as of 05:38, 29 March 2023 by HydeWing (talk | contribs) (Created page with "{{#seo: |title=Switch Homebrew Emulators (Handheld) - GameBrew |title_mode=append |image=melondsswitch.png |image_alt=MelonDS }} {{Infobox Switch Homebrews |title=MelonDS |image=melondsswitch.png |description=DS emulator, sorta |author=RSDuck |lastupdated=2021/07/17 |type=Handheld |version=release6fix1 |license=GPL-3.0 |download=https://dlhb.gamebrew.org/switchhomebrews/melondsswitch.7z |website=https://gbatemp.net/threads/melonds-for-switch-continuation.570021/ |source=...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
MelonDS
File:Melondsswitch.png
General
AuthorRSDuck
TypeHandheld
Versionrelease6fix1
LicenseGPL-3.0
Last Updated2021/07/17
Links
Download
Website
Source

MelonDS is a Nintendo DS emulator primarily developed by Arisotura, who is also known as @StapleButter. The emulator was initially ported to the Switch by @Hydr8gon. The current port and various optimizations have been implemented by RSDuck. The emulator's performance is highly dependent on a game's utilization of the DS's 3D hardware. Many games can achieve full speed without overclocking.

How to use

melonDS requires BIOS/firmware copies from a DS. Files required:

  • bios7.bin, 16KB: ARM7 BIOS
  • bios9.bin, 4KB: ARM9 BIOS
  • firmware.bin, 128/256/512KB: firmware

Firmware boot requires a 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!

Media

How To Fully Play Nintendo DS Games on a Nintendo Switch (A Complete Guide) - (Lil_Kunall)

Screenshots

https://dlhb.gamebrew.org/switchhomebrews/melondsswitch-01.pnga https://dlhb.gamebrew.org/switchhomebrews/melondsswitch-02.pnga https://dlhb.gamebrew.org/switchhomebrews/melondsswitch-03.pnga https://dlhb.gamebrew.org/switchhomebrews/melondsswitch-04.pnga

TODO LIST

  • DSi emulation
  • the impossible quest of pixel-perfect 3D graphics
  • improve libui and the emulator UI
  • support for rendering screens to separate windows
  • emulating some fancy addons
  • other non-core shit (debugger, graphics viewers, cheat crapo, etc)

TODO LIST FOR LATER

  • better wifi
  • maybe emulate flashcarts or other fancy hardware
  • 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

Changelog

Release 6, fix 1

  • Just a few bug fixes (the pendulum on the title screen in Chrono Trigger, several things in Mortal Kombat and a freeze in Pokemon Platinum, likely also in Diamond/Perl).

Release 6

  • This release is a big one, because we finally hit fullspeed in most games including 3d ones! This is all thanks to the new 2D and 3D renderers which run on your Switch's GPU (which previously was only used for the GUI and putting the video output onto the screen) instead of CPU.
  • The 3D renderer doesn't use the builtin triangle drawing functionality melonDS's OpenGL renderer does, thus it doesn't have issues like it (https://github.com/Arisotura/melonDS/issues?q=is:open+is:issue+label:OpenGL). Instead it's basically the good old software rasteriser but translated to run on GPUs thus ideally it should have the same pretty amazing compability.
  • Both the new 2D and the new 3D renderer are implemented using deko3D for minimal CPU usage compared to OpenGL, though I want to port both of them back to OpenGL for desktop melonDS. In the future there's the possibility for some enhancements like high resolution rendering with less issues than the OpenGL renderer currently has (I'm sure yet whether Switch can handle this, so don't get your hopes too high on this).

Release 5, fix 1

  • Bug fixes, also the overclocking option was readded.

Release 5

  • It's been a long while since the last release, but we're finally here! It has a completely new GUI, DSi support and of course a bunch of bug fixes and smaller additions. Since a lot of work went into the GUI there aren't many new optimisations in this release, but this will change for the next one! The controls have been changed, pausing is now done by pressing ZL and ZR at the same time.

Release 4

  • I wanted to make this release already multiple months ago, though always something came into my way, whether it was some feature I wanted to finish or later me loosing seeing it as pointless when a Drastic port will happen sooner or later. Thus a lot of smaller things have been accumulating:
  • Fast memory emulation by mirroring virtual memory so that it has the same layout as on the DS. This also should resolve all previous issues with Literal Optimisations
  • Start at making geometry submission faster
  • The GUI is now rendered using deko3d instead of OpenGL (using mesa). Deko3d not only has less overhead, but this also reduced the binary size significantly. Special thanks go to fincs and where we're at it also to the the other devkitpro and libnx people like yellows8 and Wintermute!
  • Misc improvements to the GUI (the rom directory isn't hardcoded anymore, a melony color scheme, ...)
  • Better screen layout options
  • Alternative ways to give touchscreen inputs, including my (unironically besides using the real touchscreen) favourite mode: motion control. See the FAQ for more info
  • This isn't really that noteworthy, but in 30 FPS games every second (3D) frame is now skipped automatically
  • A bunch of fixes, optimisations and features I can't remember because I'm too unorganised
  • As I've already described in the old thread, sooner or later DSi and wifi support will be added to this port (the first was recently merged into master, the latter is thanks to the improved indirect wifi mode now possible on switch as well). Optimizations to make 3D rendering faster are together with a new GUI on my list as well, but one step at at time.

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

External links

Advertising: