melonDS v0.8.2 Released

melonDS v0.8.2 Released


Hydr8gon has officially released a new version melonDS which is a work in progress very accurate Nintendo DS emulator for your homebrew enabled Nintendo Switch hybrid video gaming console. melonDS has been recently been updated to include the texture enhancement and up-scaling that the main branch recently added allowing you to play your Nintendo DS games in high resolution on your Switch!

Hydr8gon hadn't officially updated his repository for a while now and skipped v0.8.0 - v0.8.1, but the changes to both of those are included in this release.

What's New?

v0.8.2

-Updated to melonDS 0.8.2 (see below)
-Added OpenGL renderer (experimental and kinda broken)
-Removed screen filtering option (incompatible with new OpenGL display)

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

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

Changes to melonDS v0.8.0

* 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
Screenshots




Description

melonDS is a work in progress very accurate Nintendo DS emulator for your homebrew enabled Nintendo Switch hybrid video gaming console. melonDS allows you to enjoy your collection of Nintendo DS games on your modern video gaming console. melonDS requires you to dump the BIOS from your original Nintendo DS or Nintendo DS Lite console to use.

Instructions

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.

Credits

Martin for GBAtek, a good piece of documentation
Cydrak for the extra 3D GPU research
All of you comrades who have been testing melonDS, reporting issues, suggesting shit, etc

Changelog

v0.8.2

-Updated to melonDS 0.8.2 (see below)
-Added OpenGL renderer (experimental and kinda broken)
-Removed screen filtering option (incompatible with new OpenGL display)

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

v0.8.1

* Well I posted this on Discord a few days ago so I might as well post it here too. I don't want y'all thinking the project is dead or anything! Here's a build of melonDS 0.8.1 with hardware renderer and upscaling. Unfortunately the polygon issue is still present, so I won't be making it an official release just yet. I have a potential lead on the problem but I've been a bit of a mess lately and haven't had a chance to properly look into it. Everything else works though, and you can always stay on the software renderer if you need to (though screen filtering had to be removed due to the new display method).

v0.7.4 (release 2)

-Fixed crappy audio in docked mode
-Improved the UI font
-Added new UI selector, styled like the one from the Switch UI
-Added complete UI touch control, including scrolling and button presses when touching the labels in the corner
-Added support for mapping multiple controls to a single button, as well as clearing mappings
-Added a frameskip setting
-Fixed overclock setting on Switch system 8.0.0

Because of the changes to the config system, you should delete your melonDS.ini file before using this version to avoid issues!

v0.7.4

-Updated to melonDS 0.7.4
-Added continuous menu scrolling on input hold
-Improved audio quality in docked mode
-Overclocking now persists across docked/undocked switching
-Added ROM and folder icons for the file browser
-Added input and hotkey remapping

v0.7.3

-Updated to melonDS 0.7.3
-Only initialize microphone when it's selected as the input device (if microphone causes crashes for you, turning it off should fix it)
-Fix save state on the pause menu

v0.7.2

-Updated to melonDS 0.7.2
-Removed temporary timing hack
-Optimized menus
-File browser now remembers the last folder you launched a ROM from
-Added option to adjust audio volume
-Added microphone input (if you have a headset with a microphone connected) or white noise input

v0.7.1

The biggest change here is that the core timings were entirely renovated to try being closer to the hardware.

First of all, after several days of gruelling testing and guesswork, we were finally able to understand the GX timings, and emulate them properly for the first time. But, as we weren't gonna stop there, we also renovated the timings for DMA and memory accesses, so that both of them are closer to their hardware counterparts. DMA and ARM7 should be pretty close to perfection now, ARM9 less so but it's still more realistic.

We have also been fixing the emulator's main loop, so that the ARM9, ARM7 and system clocks shouldn't desync anymore.

All of this, with a few added optimizations, fixes a whole bunch of issues, from things flickering to audio crackling to games outright going haywire (hi RaymanDS). Your games are now running better than ever!

... or not. That's also the point of the 0.7.1 release, I want to hear about any issues caused by the timing renovation, so we can get them fixed for the epic 0.8.

We already have one such issue, all of this is causing sprite flickering in Pokémon Platinum. Quick attempts at fixing this went nowhere, so we will have to investigate this proper.


There's also a number of misc fixes. For example, the 3D glitches that showed up in Mario Kart DS were fixed, but there's already a lengthy post about this.

There's a small fix to 2D windows, nothing really noteworthy, just fixes a game that was setting up backwards windows.

The input system no longer requires a dpad to be mapped to directional keys for joystick axes to work.

The code that looks for local files (melonDS.ini, BIOS, firmware...) was modified to explicitly check the directory melonDS is in, if that is not the same as the working directory. So in these cases it will no longer fail to find its files. Also, if melonDS.ini is absent, the preferred directory for creating it is the directory melonDS is in.

And, finally, we finally got rid of the old savemem type autodetect code. Considering its complexity and the amount of failures, it was a trainwreck. So instead, now, melonDS will pull that information from the provided ROM database (romlist.bin).

Edit- If your game is still failing to save: you might have an old failed save file lying around, try deleting it. When a save file is present, melonDS determines the savemem type from the file size, so if a file is present with a wrong size, you will have to delete it.

v0.5.2

-Fixed crash when pressing R with no savestate
-The emulator now has time to finish up before exiting, ensuring savestates don't get corrupted

v0.5.1

-Fixed crappy sound output

Notes:
If sound is still crackly the game probably isn't running full speed!

v0.5

-Added Switch CPU overclocking; default off (1020 MHz), max 1785 MHz
-Added framerate cap to prevent games that now reach full speed from going too fast
-Somewhat fixed crappy audio (no longer choppy at full speed, but still crackles)
Links & Downloads
https://github.com/Hydr8gon/melonDS/releases/tag/0.7.4-2

Post a Comment

0 Comments