HLE, wifi, netplay: recent developments and ideas
So yeah, I have been pretty silent lately, sorry about it. Been tired, a bit of a depression burst, medication adjustment and stuff, but overall I'm doing well. I've been taking some vacation time, so this helps a lot, too. I've mostly been chilling, bathing, toasting under the Summer sun, pretty standard vacation stuff.

However I've also been able to do some melonDS-related work.

I started implementing wifi in melonHLE. So far, I got to the point that there's some data exchange going on, but the connection isn't working due to a timing problem -- I need to rework when I send data frames and how to keep all the melonDS instances in sync.

It's too early to tell, but if I can get it working, it may be a good base for local multiplayer and netplay on lower-end platforms, as I said before. On one hand, the way wifi works at a high level seems to provide enough leeway that I could get away with somewhat lax sync, and thus better performance. On the other hand, I don't have it working yet.

The current implementation is also a bit of a pile of hacks. I will need to clean it up and implement a bunch of the more minor details. I'm also not very confident that the compatibility rate will be on par with the tried and true LLE approach, but the only way to find out is to try out.

There are still several more general issues that limit melonHLE's general compatibility. While testing some other games, I found out that there are atleast 3 different versions of the sound module, more recent games (like Picross 3D) have a different power management module, and there are games that get stuck due to missing functionality. And that's without even getting into DSi stuff. Ideally, I'd want to index all the ARM7 binary versions out there to have a better idea how viable melonHLE may be.

Regardless, this work will likely prove useful for future melonDS/Dolphin interop. As you may already know, some Wii games are able to connect to a DS to provide extra features. This connection uses the same protocol as DS local multiplayer. On the Wii, the functionality is exposed through an API similar to what DS games use at a high level. Dolphin, being HLE, deals with high-level service calls, while regular LLE melonDS has to emulate the wifi hardware and deal with the 802.11 protocol in all their complexity. So obviously some work will be needed on Dolphin's side in order to make it communicate with melonDS.

Also, while I was brainstorming how to efficiently synchronize melonDS instances in HLE wifi, I had an idea for LLE wifi. I will need to try it out, but if it works, it may drastically loosen up the synchronization requirements for local multiplayer (although the gain will likely depend on how many players are connected).

If any of this pans out, we might be able to bring back the ability to do local multiplayer over LAN (I mean, without using the netplay system). I don't know how well it would work in practice -- I remind you that the current IPC comm layer has a bunch of extra smarts to avoid causing lag by unwarranted blocking, and I'm not confident these can be reliably replicated over the network.

Stay tuned!
keisui says:
Jul 14th 2023
exciting stuff , great workπŸ‘
Cultrupt says:
Jul 14th 2023
I did not expect to hear anything about MelonDS/Dolphin connectivity. I am really excited for what is coming. Wish you the best!
ThiccFurLizzy says:
Jul 14th 2023
I wonder just how many revisions of the ARMv7 binary there are, since Dolphin doesn't seem to use many microCode versions for it's HLE Audio (I can count at least 2 for officially licensed games)
Minessota Klei says:
Jul 14th 2023
Thanks for all the effort and work, but rest well on your vacation, enjoy the summer sun!

The emulator is already amazing, it works very well, I'm playing "All Kamen Rider - Rider Generation 2", very cool (^o^)//
JimsyFlimsy says:
Jul 14th 2023
Good to hear you're doing better. You're a talented person and we're all here for you.
Christopher says:
Jul 15th 2023
Good hear like.
Trunks/ says:
Jul 15th 2023
I'm glad to hear you are doing well! I went through a rough patch adjusting medication myself a few months ago, but I think it was well worth it. Working with WiFi in HLE for the DS has got to be some of the most daunting stuff in emulation. You are doing some seriously awesome and ground breaking stuff. I'm sure the Dolphin devs are interested in wifi connection as well. Best of luck to you and your team.
^.^ says:
Jul 17th 2023
The return of IP socket based local multiplayer sound exciting!
^.^ says:
Jul 17th 2023
Also please take care of your mental health first πŸ™πŸ™πŸ™
Marco says:
Jul 17th 2023
Hey! I hope you are doing great! Thank you for doing this, you really are AWESOME! Take really good care of yourself first!
F0110wTh3App13 says:
Jul 21st 2023
Hey! Great to hear that you're doing well! I unexpectedly came across this website and it seems quite fascinating!

Wishing you all the best for this venture!
Arisotura says:
Jul 21st 2023
Thank y'all :)
Post a comment