The path to success
You might have seen that pic I posted on Twitter a while back:

[path settings dialog in the making]

This is what I'm currently working on. It's been a popular request for a while: customizable paths for things like save files, savestates, ... As of now, melonDS takes the easy route and dumps these files alongside the current ROM, but not everybody wants that.

And, well, implementing this whole thing raises a bunch of issues. This is also why it can be difficult for me to get things done: I will try to envision the scope of the task at hand, then begin seeing related things that need to be done, more or less drifting away from the original task, and at the end I have too many ideas and I don't know where to start.

This is one of these occurences. I had tried to make plans of what I wanted for the custom paths feature, but, surprise, the actual implementation is going to be different. The state of the melonDS codebase doesn't help, either, sometimes. I mean, it certainly could be worse, but some parts could definitely use a refactor.

ROM loading is a prime example. When I first built the melonDS core, it was pretty simple, and all it had to do was load a ROM from a given file, load the associated save file, and start emulating. So the original NDSCart::LoadROM() function did just that.

Of course, as melonDS evolved, other concerns arose.

For example, archive support was added. In this case, the ROM isn't accessible as a regular file, instead we get a memory buffer with the ROM's contents. So this means a second NDSCart::LoadROM() function was added, that loads a ROM from a memory buffer. A tad redundant.

Another fun thing is DSi support. On the DS, you can't hotswap cartridges, because there's no hardware support for it, so we didn't have to account for this possibility. However, things are different with the DSi: for example, you can insert and eject carts while in the DSi menu and it detects that. So it's something we need to take in account too. And as of now, melonDS has no provision for ejecting the current cart, nor for loading a new cart without resetting emulation.

And other fun assorted details. Basically, the ROM loading system is due for some refactoring, and I'm working on it. Then, once all this is sorted out, I guess I can actually implement custom paths.

The melonDS team wishes you a merry Christmas and a happy new year and all!
keisui says:
Dec 22nd 2021
merry christmas ! always excited to hear what the melonds team has been working on
Bob says:
Dec 22nd 2021
Another little thing, when you open gba rom for slot2 special features in some games (which is not obvious feature beause no ui), it goes to recent rom list.
Ciel says:
Dec 23rd 2021
Fantastic to see, thank you for the update! Merry Christmas and Happy New Year!
Buddy says:
Dec 23rd 2021
I'm hoping everyone in the MelonDS team has a stable and enjoyable Christmas season!
Arisotura says:
Dec 23rd 2021
I plan on changing the way loading GBA ROMs is done, anyway. the current way is a) a mess code-wise and b) not intuitive at all.
Alex says:
Dec 24th 2021
Hi! Merry christmas to the team. :-D
Guys, can we have an option to limit the FPS when doing fast forward? My game gets to 700-1000 FPS and it bugs a lot, I cannot do anything when I press my key for fast forward, so I want to limit the FPS to 300 but only when doing fast forward.
Amethyst says:
Dec 25th 2021
This emulator is the best when it comes to DS. I wish you all a mary christmas and a happy new year. Can't wait for more updates.
You guys are awesome!
AsPika says:
Dec 26th 2021
Finally! Path locations dialog box! Just likes Desmume dit it! Anyway.... merry Christmas and Happy New Year 2022 to everyone! 🎄🎉🎆
goliv04053 says:
Dec 26th 2021
Awesome. Merry Christmas and Happy New Year to all.
branchus says:
Dec 27th 2021
Merry Christmas and Happy New Year!!
Yentimbang says:
Dec 30th 2021
Thank u for this wonderful emutor marry christmas god bless keep up the good work i hope your family is in good health advance happy new year
Alex says:
Dec 31st 2021
Update from my last comment: Hi guys, I just noticed that I can "fix" the limitless FPS when doing Fast forward just activating the Video settings -> OpenGL Display (please notice that I use mostly my CPU for all my things because it is so powerful, and my GPU is outdated and probably about to die, so I use the option Software on 3D Renderer).

I just made some tests doing fast forward with OpenGL (28% CPU and 59% GPU), then Software with OpenGL Display (23% CPU and 33% GPU) and then Software without the OpenGL Display and surprisingly my new setup of Software + OpenGL Display uses the less resources of my CPU (21%) AND GPU (24%), so that's a win for me. Doing Software without OpenGL Display is the only combination when my Fast forward just bugs the game because it goes beyond 900FPS. I have activated the "Limit framerate" option all the time.

Now I'm very happy, but I would still like a limit FPS option for Fast forward, because some people may not have the same luck as me.
LInuxnoob says:
Jan 4th 2022
I think you people should mention you have an official flatpak on the downloads page. I really like the emu and got a bit intimidated by dling from source as oppposed to using a flatpak . REgards
Post a comment