Skip to content

Test multiplayer LAN #271

@albanox9

Description

@albanox9

What version of melonDS DS are you using?

1.20

Does the problem happen in standalone melonDS?

I don't know.

What happened?

Summary

I have successfully tested local wireless multiplayer using the melonDS-DS core in RetroArch (v1.21) on Android between two smartphones. The game used was New Super Mario Bros. DS (EUR), specifically the multiplayer minigames.

However, when attempting to add a third player (running RetroArch on a PC), the emulator freezes or becomes unresponsive. This makes 3-player local wireless play impossible in the current state of the melonDS-DS core (v1.20).


Test Environment

Devices Used:

  • Device 1 (host + hotspot): Samsung Galaxy S23+ – Android 14
  • Device 2 (client): Samsung Galaxy A52 – Android 14
  • Device 3 (failing client): PC running RetroArch 1.21 (Windows 10)

RetroArch Version (all): 1.21
melonDS-DS Core Version (all): 1.20
Game Tested: New Super Mario Bros. DS (EUR)
BIOS/firmware: Real DS BIOS and firmware used across all devices

Network Setup:

  • The Galaxy S23+ created a hotspot (mobile data enabled).
  • Both the A52 and the PC connected to that hotspot.
  • All three RetroArch instances used the same core and ROM.

Core Settings:

  • Use external BIOS: ON
  • Boot from firmware: ON
  • Enable WiFi: ON (if applicable)

Behavior with 2 Players (S23+ and A52)

  • The host creates a local wireless room inside the minigames menu.
  • The second Android device detects and joins the session successfully.
  • Gameplay is smooth and stable with no latency or desync.
  • Notably, using a mobile hotspot (with mobile data ON) gives significantly more stable performance than standard WiFi.

Problem with 3 Players (adding PC client)

  • When the PC attempts to join the same session:
    • RetroArch freezes immediately upon detection or connection attempt.
    • Occasionally, it also causes the other clients to freeze.
    • The emulator must be force-closed; no recovery is possible.
  • No error logs or crash messages appear.

This suggests a hard-coded limitation or lack of handling for a third simultaneous WiFi client in the melonDS-DS core.


Expected Behavior

Ideally, the core should:

  • Support 3+ players in local multiplayer, as the original DS hardware did, or
  • At least reject additional clients gracefully without crashing any instance.

Suggestion

Please consider:

  • Clarifying in the documentation that 2-player multiplayer is the current max supported,
  • Adding protections to prevent full emulator crashes when a third device joins,
  • Exploring future support for 3+ clients if technically feasible within the libretro core.

Additional Notes

We’re aware the standalone melonDS emulator on PC allows experimental LAN multiplayer with 3+ devices using manual IP setup. If similar logic can be implemented in the libretro core, it would allow RetroArch users to emulate a full DS wireless experience.

Thanks for the hard work — having two-player DS wireless working on Android is already a fantastic feature!

What should've happened instead?

The core should have handled a third WiFi peer gracefully, either by supporting the connection or by rejecting it cleanly without causing the emulator to become unresponsive

Which platforms do you see the problem on?

  • Windows
  • macOS
  • Linux
  • Android
  • iOS
  • tvOS
  • Other (specify below)

Which versions of the OS?

Android 15

Which libretro frontend are you using?

1.21

Terms

  • I agree to follow the code of conduct.
  • I understand that melonDS DS is not developed or maintained by the authors of melonDS.
  • I understand that this form is for reporting bugs, not for requesting help.
  • I understand that the author develops this core in his spare time, and that he is under no obligation to respond to this bug report.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions