Homebrew WIP melonDS for Switch

Schnida

Well-Known Member
Member
Joined
May 12, 2010
Messages
113
Trophies
1
XP
824
Country
Swaziland
I noticed a small bug. Overclocking doesn't seem to persist through docked / undocked switching. This can be avoided by using sys-clk instead of the built in OC option though
 

catlover007

Developer
Developer
Joined
Oct 23, 2015
Messages
720
Trophies
1
XP
3,923
Country
Germany
I noticed a small bug. Overclocking doesn't seem to persist through docked / undocked switching. This can be avoided by using sys-clk instead of the built in OC option though
are you using the latest version? I thought I fixed that bug (are you using the build linked in my signature).

The libretro core will be updated as well?
probably yes, haven't talked to Mats in a while, though it won't be hard for them to pull in the new changes.


More on a general note, after first announcing I quit, I kept working on melonDS (partly just out of habit and because I wanted to have something to play Tetris right now:lol:), saying I would release a final version. At this point some things changed or became to clear to me, so here's a little write up.

There are some features brewing in the main melonDS repository already for quite some which finally come together for a new official version. That is the JIT (which already was included for obvious reasons in my switch port since the beginning), DSi support and just recently improvements to indirect mode wifi. In contrast to direct mode wifi, which requires pcap (i.e. a very low level and sometimes error prone interface) which is not available on switch, with the new indirect mode utilising libslirp wifi emulation on switch wouldn't be hard. Over the past couple days the JIT and DSi were made compatible, though aarch64 linux, which is supported by the master branch still doesn't work.

So what to expect next? First a release a version with all of those features, fixes and optimisations I've meant to release already months ago. Last time I was just not in the mood of writing release notes, but by now I've already started working on something new I want to include with this release. Besides I need to finally make a new thread, as this list (https://gbatemp.net/threads/top-5-emulators-for-the-nintendo-switch.569315/) painfully showed, many people don't know the newer work on this emulator. There're have been some changes to make frontend code bases less dirty and reduce redundancies, which I hopefully take as an opportunity to then clean up my messy fork. This will probably also be the beginning of the new UI for standalone.

In regards to optimisation, the elephant in the room is (especially in comparison to the the optimisations to the JIT, GPU2D and the geometry engine have received, and those planned) the threaded software rasteriser, which has been completely spared. I've been juggling with several ideas on how to make it faster, while retaining it's accuracy and I think it's definitely archievable (in the worst case, we'll find a way to run it on two cores). Although DSi support added a few complexities, I hope their impact on performance isn't measurable (except that in DSi mode the DS's cpu is clocked at a higher speed, but that shouldn't effect DS mode).

As a bottom line let's hope for the stars to align and me to start moving.
 

Schnida

Well-Known Member
Member
Joined
May 12, 2010
Messages
113
Trophies
1
XP
824
Country
Swaziland
are you using the latest version? I thought I fixed that bug (are you using the build linked in my signature).
Yes I am. I might be wrong but could it be that you fixed the bug about overclock not persisting after putting the switch into sleep mode? Because that's definitely not a problem now anymore.
 

catlover007

Developer
Developer
Joined
Oct 23, 2015
Messages
720
Trophies
1
XP
3,923
Country
Germany
Yes I am. I might be wrong but could it be that you fixed the bug about overclock not persisting after putting the switch into sleep mode? Because that's definitely not a problem now anymore.
that's certainly weird, I remember testing it sucessfully and I haven't touched that code since the last release. Though memory could as well be faulty on this, as I don't use docked mode much.
 

Schnida

Well-Known Member
Member
Joined
May 12, 2010
Messages
113
Trophies
1
XP
824
Country
Swaziland
Maybe someone could double check it because it might be a problem just on my end. I did a fresh install and managed to reproduce it though.
 

Billy Acuña

Well-Known Member
Member
Joined
Oct 10, 2015
Messages
3,126
Trophies
1
Age
31
XP
3,701
Country
Mexico
are you using the latest version? I thought I fixed that bug (are you using the build linked in my signature).


probably yes, haven't talked to Mats in a while, though it won't be hard for them to pull in the new changes.


More on a general note, after first announcing I quit, I kept working on melonDS (partly just out of habit and because I wanted to have something to play Tetris right now:lol:), saying I would release a final version. At this point some things changed or became to clear to me, so here's a little write up.

There are some features brewing in the main melonDS repository already for quite some which finally come together for a new official version. That is the JIT (which already was included for obvious reasons in my switch port since the beginning), DSi support and just recently improvements to indirect mode wifi. In contrast to direct mode wifi, which requires pcap (i.e. a very low level and sometimes error prone interface) which is not available on switch, with the new indirect mode utilising libslirp wifi emulation on switch wouldn't be hard. Over the past couple days the JIT and DSi were made compatible, though aarch64 linux, which is supported by the master branch still doesn't work.

So what to expect next? First a release a version with all of those features, fixes and optimisations I've meant to release already months ago. Last time I was just not in the mood of writing release notes, but by now I've already started working on something new I want to include with this release. Besides I need to finally make a new thread, as this list (https://gbatemp.net/threads/top-5-emulators-for-the-nintendo-switch.569315/) painfully showed, many people don't know the newer work on this emulator. There're have been some changes to make frontend code bases less dirty and reduce redundancies, which I hopefully take as an opportunity to then clean up my messy fork. This will probably also be the beginning of the new UI for standalone.

In regards to optimisation, the elephant in the room is (especially in comparison to the the optimisations to the JIT, GPU2D and the geometry engine have received, and those planned) the threaded software rasteriser, which has been completely spared. I've been juggling with several ideas on how to make it faster, while retaining it's accuracy and I think it's definitely archievable (in the worst case, we'll find a way to run it on two cores). Although DSi support added a few complexities, I hope their impact on performance isn't measurable (except that in DSi mode the DS's cpu is clocked at a higher speed, but that shouldn't effect DS mode).

As a bottom line let's hope for the stars to align and me to start moving.
Epic! Thanks for the feedback, cannot wait for the first official melonDS release with all of those goodies :D
 

ShadowOne333

QVID PRO QVO
Editorial Team
Joined
Jan 17, 2013
Messages
12,195
Trophies
2
XP
33,803
Country
Mexico
are you using the latest version? I thought I fixed that bug (are you using the build linked in my signature).


probably yes, haven't talked to Mats in a while, though it won't be hard for them to pull in the new changes.


More on a general note, after first announcing I quit, I kept working on melonDS (partly just out of habit and because I wanted to have something to play Tetris right now:lol:), saying I would release a final version. At this point some things changed or became to clear to me, so here's a little write up.

There are some features brewing in the main melonDS repository already for quite some which finally come together for a new official version. That is the JIT (which already was included for obvious reasons in my switch port since the beginning), DSi support and just recently improvements to indirect mode wifi. In contrast to direct mode wifi, which requires pcap (i.e. a very low level and sometimes error prone interface) which is not available on switch, with the new indirect mode utilising libslirp wifi emulation on switch wouldn't be hard. Over the past couple days the JIT and DSi were made compatible, though aarch64 linux, which is supported by the master branch still doesn't work.

So what to expect next? First a release a version with all of those features, fixes and optimisations I've meant to release already months ago. Last time I was just not in the mood of writing release notes, but by now I've already started working on something new I want to include with this release. Besides I need to finally make a new thread, as this list (https://gbatemp.net/threads/top-5-emulators-for-the-nintendo-switch.569315/) painfully showed, many people don't know the newer work on this emulator. There're have been some changes to make frontend code bases less dirty and reduce redundancies, which I hopefully take as an opportunity to then clean up my messy fork. This will probably also be the beginning of the new UI for standalone.

In regards to optimisation, the elephant in the room is (especially in comparison to the the optimisations to the JIT, GPU2D and the geometry engine have received, and those planned) the threaded software rasteriser, which has been completely spared. I've been juggling with several ideas on how to make it faster, while retaining it's accuracy and I think it's definitely archievable (in the worst case, we'll find a way to run it on two cores). Although DSi support added a few complexities, I hope their impact on performance isn't measurable (except that in DSi mode the DS's cpu is clocked at a higher speed, but that shouldn't effect DS mode).

As a bottom line let's hope for the stars to align and me to start moving.

Incredible news!
Glad to know you are still alive and kicking some melonDS JIT ass :D
Can't wait for the official release as well (which I assume will be upstreamed to libretro, right? :P)

Also, the DSi means just support for DSi enhanced games, correct?
Not DSiWare support? (I really want to replay Four Swords Anniversary xD)
 
  • Like
Reactions: sorabora and ploggy

catlover007

Developer
Developer
Joined
Oct 23, 2015
Messages
720
Trophies
1
XP
3,923
Country
Germany
Also, the DSi means just support for DSi enhanced games, correct?
Not DSiWare support? (I really want to replay Four Swords Anniversary xD)
it means both. DSi support isn't perfect yet (many things such as the camera or the DSP are currently not emulated). Though the the DSi menu boots and Flipnote studio as well.
 

Billy Acuña

Well-Known Member
Member
Joined
Oct 10, 2015
Messages
3,126
Trophies
1
Age
31
XP
3,701
Country
Mexico
it means both. DSi support isn't perfect yet (many things such as the camera or the DSP are currently not emulated). Though the the DSi menu boots and Flipnote studio as well.
With the official release that means we will have switch updates from upstream (like mGBA and others)?
 

catlover007

Developer
Developer
Joined
Oct 23, 2015
Messages
720
Trophies
1
XP
3,923
Country
Germany
In the other hand, do you have a threaded OpenGL in mind (similar to mupen's, flycast's and Citra's)? I think it would be worth for some games which don't have any CPU overheat.
No more 3D upscaling than ....

the DS's is a very quirky and nonstandard piece of hardware. Using the native drawing capabilities of a modern GPU will always fall short in some games (and I'm not even talking about less popular games "no one cares about"). melonDS's OpenGL renderer still lacks one hack or another which could make some games work which currently don't, but there are absolute limits to how far this can go.

For this reason I prefer optimising the software renderer, which if everything goes right makes almost all games playable. Also for standalone I moved on from OpenGL to deko3d because it's less bloat and it didn't have that mysterious slowdown OGL while only drawing the GUI had. Porting the GL renderer to deko3d wouldn't be so hard, as it's pretty lightweight and doesn't compile any shaders at runtime, but that's a story for another time.

There's the "hidden third path": running the software renderer via compute shaders on the gpu. Idk whether the switch's gpu is powerful enough for this, especially considering that some OGL extensions aren't available which could make the shader code faster (small integers).

Forgot that i have on N3DSXL im gonna dump the file and try it on citra
citra won't emulate it, as it only supports the 3DS hardware, the DS/i hw is completely unsupported
 

BulletExodus

Member
Newcomer
Joined
Jul 13, 2018
Messages
19
Trophies
0
Age
30
XP
159
Country
United States
Just want to say thanks so much for the hard work you've done so far. I felt like I should make this known. For some reason the emulator won't play FMVs contained in games like Final Fantasy Crystal Chronicles - Echoes of Time or Ring of Fates. It stays frozen on a black screen whenever a FMV is going to play, but the actual gameplay is flawless.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    Xdqwerty @ Xdqwerty: @AncientBoi, don't worry atleast that video is a parody +1