melonHLE, facts and ideas
So first of all, I'm done with the mold problem and its consequences, meaning that my apartment finally looks like an actual apartment and I can exhale a big sigh of relief.

I continued my work on melonHLE, taking it to a point where it may be something serious. The compatibility rate seemed good, even though some games don't run because some auxiliary services aren't completely implemented. I've had some fun reverse-engineering the sound engines and implementing them, with decent results.

So I did a quick performance comparison:



The tests were done on my laptop Crepe (Core i7-5500U, 2.4GHz). Numbers are an average measure of frames per second.

melonHLE shows to be faster, but it's not mindblowing either. However, keep in mind that this is largely a quick and dirty experiment. There are some simple ways to make melonHLE faster, one of which is increasing the maximum CPU time slice (kMaxIterationCycles). The current value of 64 is chosen to keep the ARM9 and ARM7 somewhat in sync, but obviously, in melonHLE we don't need to keep the ARM7 in sync. A much bigger kMaxIterationCycles value increases performance to some extent and has no downsides.

Regardless, melonHLE may prove a viable option for lower-end platforms. In the end, it might be integrated into melonDS as an option, though it needs more work and testing.


Now, you may ask, how does any of this relate to the netplay saga?

This joins the general idea of optimizing melonDS for lower-end platforms. For example, Generic is trying to optimize melonDS for the Switch, and more particularly trying to optimize the whole 3D graphics pipeline. Full 3D games are more demanding, so this is a worthy optimization target.

Optimizing melonDS will also benefit local multiplayer and netplay, seeing as these require running multiple melonDS instances at the same time. I want to make it accessible to a broad audience and not just those with the absolute bestest computers, especially in these troubled times of chip shortages and such.

Which brings me to another point: HLE wifi. So far, I haven't done any work towards it, but I'm tempted to give it a try. The wifi service may be high-level enough to be emulated separately from melonDS's current wifi implementation, and with less complexity and more lax synchronization, but the only way to know is to give it a try. If it works out, it might make local multiplayer possible with lower performance requirements.


Stay tuned!
melonJYC says:
Jun 17th 2023
I want auto-frameskip to be supported be melonDS. It would be cool.
Chase says:
Jun 19th 2023
HI! I love the emulator and you put in such hard work! Also do you know why in kirby Squeak Squad levels tend to glitch out and sprites become garbled?
PhantomWolf says:
Jun 20th 2023
Well thanks for providing the emulator in general i do love to have found it to have working multiplayer the most really through..
i had only one issue with the fact i could not find a way to have the 2 instance Audios on separate devices... would be a nice addition to have as an option. If you'd even read this that is. Anyways thanks a lot for allowing me to have working multiplayer either way i hope it'll be great in a 1.0 release ^^
melonJYC says:
Jun 23rd 2023
Also I want to be able to communicate local multiplayer between melonDS and Official DS. It would be cool.
Danhylian02 says:
Jun 24th 2023
Hello, I have a little detail on the emulator, every time I press the fast foward button, the screen go black for a second, any solution?:(
asl97 says:
Jun 27th 2023
for a moment, I thought HLE performed worse because the order of legend is reversed compare to the chart xD
Dice says:
Dec 14th 2023
Hi there! I just got MelonDS and everything works except for the controls...
I have a MacOS, and I downloaded the MacOS version of MelonDS. My friends(on windows and linux respectively) have a task bar at the top and can access the controls menu. However, I can't access this. I don't have a task bar at the top of my screen, and the only thing that works is left clicking with my mouse.
How can I edit the keybinds?
Post a comment
Name:
DO NOT TOUCH