News of the refactor: almost there!
Basically what it says on the tin. I am working on the last big part of this refactor: the network interfaces. You might already know melonDS employs two different network interfaces: one for local multiplayer (between multiple melonDS instances) and one for outer network, which lets melonDS connect to external servers (like WFC) through libslirp or PCap.

These need to be adapted to the refactor, too.

Adapting the local multiplayer interface wasn't that hard. What I did was simply change the shared memory buffer to a regular memory buffer guarded by a mutex, and change the interprocess semaphores to regular semaphores. This makes the code simpler and easier to deal with.

From a performance perspective, I haven't observed a huge improvement from this change, atleast under Linux. However, the gains will be apparent when we will be reimplementing netplay: managing multiple emulator instances is going to be a whole lot easier and more reliable when they are all contained within the same process.

Then I moved on to the outer network interfaces. I had a bit of a debate as to whether to make them instance-specific. Because it could make sense to have them be shared across instances: these instances could be networked together rather than being isolated. It's a bit of a hypothetical scenario, but I like the possibility.

It requires, among other things, sharing around data frames. So this is what I'm working on: designing a packet queue system that can broadcast packets across all emulator instances in a reliable and efficient way.

Once I've tackled the network part of melonDS, the refactor will be mostly done. There will be a few bugs and misc things to iron out, and we will be good to finally merge it.

There will still be a lot of stuff to fix and rework, but we will atleast be in a somewhat workable state.
kikilxve says:
Jun 10th 2024
Yay! This Is great news! I can't wait for a release! Hope it gets released soon! Have a good one!
lucaspltn says:
Jun 11th 2024
All this work has been conducted across just two months...that's wild!

Netplay...I'm imagining being able to do Entralink Missions and join Union Rooms in Pokémon games, over the Internet 🤯 Exciting stuff is happening with melonDS!
LEGO_Vince says:
Jun 11th 2024
Yes! You're almost there! This is awesome!
EC says:
Jun 11th 2024
can u at leat give a time where could be finished? Nice work btw!
Arisotura says:
Jun 11th 2024
we're aiming at releasing 1.0 by November at most
^.^ says:
Jun 11th 2024
Wooo, sounds awesome!
keisui says:
Jun 11th 2024
ken says:
Jun 12th 2024
Is there any plans to add retroachievements support in the future?
me :3 says:
Jun 13th 2024
u da goat arisotura don't forget that
KR says:
Jun 13th 2024
Woo! Exciting news!
AsPika says:
Jun 14th 2024
"I am so excited!" - Mario 😁
Post a comment