Introducing LDN2 - Now Featuring LAN Mode Interconnectivity with Switch Consoles!

Introducing LDN2 - Now Featuring LAN Mode Interconnectivity with Switch Consoles!

Update (2021-05-24): There's no better time to release a new Ryujinx LDN build than right now! Newly infused with POWER, LDN2.3 benefits from all updates to master that occurred since the previous LDN release. See the changelog for a full list of master updates since LDN2.2 (which was at parity with master 1.0.6819LDN2.3 now at parity with 1.0.6894) Get the new build here! Changes since LDN2.2:

- LDN2.3 is up-to-date as of master 1.0.6894
- POWER update significantly increases performance in most scenarios.
  - Mario Kart 8 Deluxe is more likely to stay connected for those who are now able to maintain 60FPS during a race.
- Miria (SDL2 input re-implementation) includes native support for nearly all controllers including motion controls.
- Custom User Profiles are now used for your multiplayer username. As such, the Username field has been removed from the multiplayer menu tab.

The following PR was added into LDN2.3:
- Add support for HLE macros and accelerate MultiDrawElementsIndirectCount.
- Performance tweaks for Pokemon Sword & Shield and Monster Hunter Rise are included.

Update (2021-04-07): We're happy to announce that Ryujinx's internet multiplayer enabled build has been updated and is now at version LDN2.2! Sporting all of the recent advancements contained in the master build, we also added in a couple of unmerged PRs to help our Monster Hunter Rise fans (and anyone who likes to play with FPS/resolution mods but doesn't want to lose the benefit of PPTC). Enjoy! See the changelog for a full list of master updates since LDN2.1 (which was at parity with master 1.0.6373LDN2.2 now at parity with 1.0.6819). Notably, this new build benefits from some big changes to master that occurred since the previous LDN release. Get the new build here! Changes since LDN2.1:

- LDN2.2 is up-to-date as of master 1.0.6819
- Graphical fixes for Mario Kart 8 Deluxe.
- Texture swap fixes on Monster Hunter Generations Ultimate.
- Stability improvements in Super Smash Bros. Ultimate.
- Missing menu text fixed in Splatoon 2.
- Logic bug fixed in Super Bomberman R.
- Color accuracy improvements on Mario Kart 8 Deluxe, Splatoon 2, and others.

The following PRs were added into LDN2.2:
- Add support for HLE macros and accelerate MultiDrawElementsIndirectCount.
- PPTC meets ExeFS Patching.
- Performance tweaks for Pokemon Sword & Shield and Monster Hunter Rise are included.

Update (2021-01-21): For all you Ryujinx LDN/local wireless fans, this update is for you! LDN2.1 is here, complete with all of the updates included in the current master build (1.0.6373), and a dash of secret sauce for the Monster Hunter Rise Demo. Get the new build here!

Changes since LDN2:

- LDN2.1 is up-to-date as of master 1.0.6373.
- LAN Mode no longer crashes on Linux.
- Fixed a crash when disposing the IUserLocalCommunicationService in some situations.
- Fixed a problem when the Options > Settings window is opened.
- LDN now has its own config file named LDNConfig.json. This ensures no conflicts with master config files for users going back and forth between master & LDN.
- We threw in some extra magic to make sure Monster Hunter Rise Demo is running its best.

Original Post:
Earlier this year, our LDN special preview build enabled emulated local wireless functionality for the first time in Switch emulation. Now we are pleased to bring you the next iteration of this work-in-progress: LDN2, a culmination of several months' worth of feature updates, bugfixes, and performance enhancements, along with some crucial LDN-specific improvements to increase compatibility. Additionally, this special preview build now features emulation of Switch's LAN Mode which enables connections between Ryujinx and your Switch console in games designed to support it!

One of the pitfalls that became immediately noticeable in the first release of LDN was the lack of a disk shader cache. This caused slow gameplay, frequent disconnects, and a generally poor user experience due to this game mode's heavy reliance on (approximately, depending on the game) synchronous operations across hosts & clients. If the emulator was frequently pausing to compile shaders, this meant it could not keep up with the demands necessary to maintain a working network connection. Last month disk shader cache support was finally brought to the emulator, providing stutter-free gameplay to the masses at last and opening the door for the next step in Switch emulation's network multiplayer experience. Connection stability and overall gameplay should be substantially improved in LDN2!

LAN Mode (your Switch does not need to be hacked!):

LAN mode allows Ryujinx to connect to other devices on your local network (and occasionally, the internet). In supported games, you can use LAN instead of Local Wireless to connect to others via your access point, rather than connecting directly to their device. This enables Ryujinx to communicate and play with real Switch devices on the same network! It's important to note that only a small handful games support this, so LDN is still our main route forward, and we hope to explore ways of forming an LDN network with real switches too.

This comes with a few caveats. When the switch believes there is a network connection, it may call additional services that are not yet supported by Ryujinx. It also enables connection to the internet, though Nintendo DNS servers are blacklisted as you might do on a hacked switch, to sidestep any troubles you might encounter by a game trying to connect to their services. Since LAN mode does not perform any authentication to nor does it use any of the Nintendo Switch Online services, you can rest assured that your Switch is safe while you trade Pokemon!

Don't forget to enable LAN mode! The setting can be found in Ryujinx in Options > Settings > Multiplayer tab. Check the box marked "Enable LAN Connectivity" to turn on the feature.

Changelog:

  • All changes made to master (until now): Shader cache, range tracking, performance improvements, compatibility, and more...
  • LAN Mode can now be enabled from the emulator settings. This will let you connect to a real Nintendo Switch in select games. See http://www.lan-play.com/games for a list of compatible games, and instructions on how to enable LAN mode in your games.
  • The emulator can now recover when the host disconnects, rather than crashing. The remaining clients will establish a new network amongst themselves, and the game may continue (Mario Kart 8 Deluxe, Splatoon 2, Puyo Puyo Tetris, more... depends on game state).
    • This is using the "Private" connect and access point methods.
  • Passphrases are fixed.
  • Added the "Reject" method (Mario Kart 8 Deluxe v1.0.0, occasionally Animal Crossing and Super Smash Bros. Ultimate)
  • Fixed a bug where the user needed to sudo to connect with a Linux client.
  • Fixed many issues where IUserLocalCommunication services, and contained resources were not disposed correctly, causing connections to stay alive longer than necessary (Pokémon Sword/Shield, Monster Hunter Generation Ultimate and other games).
  • Fixed a bug where the automatic inactivity disconnect could kill an active network connection (Pokémon Sword/Shield).
  • Advertise Data can now be updated on demand (Pokémon Sword/Shield).
  • Error reporting is greatly improved.
  • Website https://ldn.ryujinx.org/ and API now shows the game version. No more guessing!
  • Various minor improvements to LDN, BSD and Nifm services.
  • Implement lazy flush-on-read for Buffers (SSBO/Copy) (https://github.com/Ryujinx/Ryujinx/pull/1790) is merged.

As always, we'd like to express our sincere gratitude to all contributors to the project; we couldn't do it without you! If you have enjoyed using Ryujinx and are looking for ways to help us further our development goals, please consider supporting us on Patreon.

If you haven't already, join our thriving Discord community! We need your help in testing this build and identifying issues that need to be fixed. Happy Holidays, stay safe & healthy, and we hope to see you all testing out this new special preview release!

Download the LDN2 build, absolutely free, at our Patreon LDN2 announcement page. Note: LDN1 connections will no longer work, sorry! You must upgrade if you want to keep using this functionality!