This commit is contained in:
Vamsi Krishna 2022-09-11 01:55:24 +05:30 committed by GitHub
parent 2589da39cf
commit 0da42a19e7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
37 changed files with 213 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 806 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 602 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 814 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 854 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5 MiB

View file

@ -0,0 +1,213 @@
+++
date = "2022-09-11T01:40:00+05:30"
title = "New Feature Release - Local Wireless Multiplayer"
author = "CaptV0rt3x"
forum = 622491
+++
Hey there, yuz-ers!
The MOST awaited feature of yuzu, Local Wireless Multiplayer (LDN), is finally here!
So what are you waiting for?
Time to grab your friends and jump right in!
<!--more-->
## What is this?
The Nintendo Switch console supports various multiplayer options.
Among these, the following options are useful when you want to play multiplayer with other Switch consoles.
{{< imgs "./multi.png| Table indicating yuzu's supported Switch multiplayer modes" >}}
{{< imgs
"./Switch_Conn.png| Graphic demonstrating the key differences between the three wireless modes"
>}}
<article class="message has-text-weight-semibold"><div class="message-body"><p>
The Switch's HorizonOS uses the LDN service for all Local Wireless communication. <br>
This is why Local Wireless Multiplayer can also be referred to as LDN Multiplayer.
</p></div></article>
Thanks to the incredible efforts of our developers [FearlessTobi](https://github.com/FearlessTobi) and [german77](https://github.com/german77), Local Wireless Multiplayer in yuzu is no longer a dream!
Special thanks to [spacemeowx2](https://github.com/spacemeowx2/) and [all the contributors](https://github.com/spacemeowx2/ldn_mitm/graphs/contributors) of the [ldn_mitm](https://github.com/spacemeowx2/ldn_mitm) project.
Without their extensive reverse-engineering of the `LDN` service, and the gracious [license exemption](https://github.com/spacemeowx2/ldn_mitm#licensing) for yuzu, this would not have been possible.
<br>
<article class="message"><div class="message-header">
<p>⚠️ Attention</p>
</div>
<div class="message-body"><p style="color:white;">
<b>Currently, Local Wireless Multiplayer (LDN) is only supported between instances of yuzu.<br>
Multiplayer between yuzu and a real Switch or between yuzu and other emulators is not supported!</b>
</p></div></article>
## Where can you get it?
The Local Wireless Multiplayer feature is now available in the latest version of the Early Access release.
We will be working to polish this feature and make this available to the Mainline builds soon.
<article class="message has-text-weight-semibold"><div class="message-body"><p>
If you're using the yuzu installer, you'll automatically be updated to the latest build.<br>
If you're <b>not</b> using the yuzu installer, please download it from our <a href= https://yuzu-emu.org/downloads/>Download</a> page. <br>
<br>
We highly recommend using our installer to always stay up to date on both Mainline and Early Access builds.
</p></div></article>
## Local Wireless (LDN) Multiplayer
yuzu's Local Wireless multiplayer (LDN) differs a little bit when compared to the Nintendo Switch.
The Switch console uses the `LDN` service to scan for other Switch consoles using Wi-Fi and connects all players.
Here, one player would act as the `host` and all others would connect to it.
yuzu, on the other hand, employs virtual rooms to allow players to create and join game lobbies within said rooms.
Since this emulates the Switch's ability to do local wireless multiplayer, it does NOT rely on Nintendos servers and does NOT require a Nintendo Account.
While on a real Switch, youd be limited to the people in your immediate vicinity, yuzu boasts a complex server/client infrastructure that forwards a games wireless communication across the internet.
In order to connect with other players, players simply need to join the same room within yuzus Public Room Browser.
But, before opening the Public Room Browser, you will have to first configure your network interface in yuzu.
You can find this setting under `System -> Network` and you need to select your internet connection from the drop-down as shown below.
{{< imgs "./network_interface.png| yuzu's Network Interface configuration" >}}
Out of the box, we provide you with an assortment of public rooms hosted across the world by yuzu.
Creating and joining rooms is extremely easy in yuzu and can be done in just a few clicks.
{{< imgs "./room_browser.png| yuzu's Public Room Browser" >}}
If youre a [Verified User](https://community.citra-emu.org/signup), you can create your very own public room for people to join.
These public rooms can be seen by anyone using the Public Room Browser, but you can also password protect them to restrict users' access.
Verified Users will have their forum nickname and profile picture populated in the chatroom.
<br>
<article class="message"><div class="message-header">
<p>⚠️ Reminder</p></div>
<div class="message-body"><p style="color:#eed202;">
<b>When hosting a room, remember to port forward or your friends wont be able to connect!</b>
</p></div></article>
If you prefer not to sign up for our platform, you arent out of luck!
Unverified Users still have the ability to create unlisted rooms, directly connect to unlisted rooms, and can join any yuzu hosted room.
Do note that Verified Users will have their privileges revoked for violating any yuzu policies while in the room chatroom.
Please respect the `Preferred Game` listed in publicly hosted rooms, as even unrelated games will add to the bandwidth load.
{{< imgs "./room_chat.png| Public Room chat and moderation features" >}}
<article class="message has-text-weight-semibold"><div class="message-body"><p>
You can use these rooms for LAN mode games as well — instead of ZeroTier or Hamachi.</b>
</p></div></article>
Please visit [our multiplayer guide](https://yuzu-emu.org/help/feature/multiplayer/) for further help with Hosting, Port Forwarding, Authentication, and Moderation of your publicly hosted rooms.
## Development
FearlessTobi began development by leveraging the existing virtual rooms infrastructure from [Citra](https://citra-emu.org).
Due to code similarities between yuzu and Citra, this tried-and-tested infrastructure easily became the foundation of this feature.
Now that the virtual rooms were taken care of, Tobi moved onto the `LDN` service and its protocols.
Using the research and code from the [ldn_mitm](https://github.com/spacemeowx2/ldn_mitm) project, he implemented the necessary changes for yuzu instances to communicate with each other over these virtual rooms.
During this process, Tobi put an extra emphasis on ensuring no personal data, such as IP addresses, was leaked to the other room members.
As the feature slowly matured, Tobi began utilizing yuzu's internal team of testers to verify the feature across several titles for compatibility and performance validation.
With the multiple testing iterations, various bugs and glitches were found.
german77 relied on his own reverse-engineering and hardware tests to debug these issues, which then made it easy for the team to fix these various problems.
He also made several UI fixes to improve its usability and brought the codebase up to yuzu standards.
## Compatibility
Please note that as this is the initial release of the feature, some games may have some limitations.
We hope to slowly fix these over the course of the next few months.
yuzu's Local Wireless Multiplayer was tested by our team of Testers and Support staff across a small set of popular titles. Their compatibility findings are as follows:
{{< imgs "./compat.png| List of yuzu-tested multiplayer titles" >}}
## Screenshots
{{< single-title-imgs
"Animal Crossing: New Horizons"
"./acnh1.jpg"
"./acnh2.png"
>}}
{{< single-title-imgs
"Splatoon 2"
"./splatoon2_1.png"
"./splatoon2_3.png"
"./splatoon2_2.png"
>}}
{{< single-title-imgs
"Mario Kart 8 Deluxe"
"./mk8d_1.png"
"./mk8d_2.png"
>}}
{{< single-title-imgs
"Pokémon Legends: Arceus"
"./arceustrade1.png"
"./arceustrade2.png"
"./arceustrade3.png"
>}}
{{< single-title-imgs
"Luigi's Mansion 3"
"./lm3_1.png"
"./lm3_2.png"
>}}
{{< single-title-imgs
"Super Mario Smash Bros. Ultimate"
"./ssbu_ldn_2.png"
"./ssbu_ldn_3.png"
"./ssbu_ldn_1.png"
>}}
{{< imgs
"./PLG_1.png|"
"./PLG_2.png|"
>}}
{{< single-title-imgs
"Pokémon Let's Go: Pikachu/Eevee"
"./PLG_3.png"
"./PLG_4.png"
>}}
{{< imgs
"./bdsp_1.png|"
"./bdsp_2.png|"
>}}
{{< single-title-imgs
"Pokémon Brilliant Diamond/Shining Pearl"
"./bdsp_3.png"
"./bdsp_4.png"
>}}
{{< single-title-imgs
"Diablo III : Eternal Collection"
"./Diablo3_LDN_1.png"
"./Diablo3_LDN_2.png"
>}}
{{< imgs
"./cowabunga.png| Teenage Mutant Ninja Turtles: The Cowabunga Collection"
"./monster_hunter_ultimate.png| Monster Hunter Generations Ultimate"
"./kirby_dream_buffet.png| Kirby's Dream Buffet"
>}}
## Fin
As with any new update, we've tested the feature internally, but our efforts can't compare to the community as a whole.
We could have easily missed an edge case or some weird bug or issue among the vast collection of games with Local Wireless.
Test any and all games! Poke, prod, and play! Please break this release if you can! With your help, we can make yuzu the best it can be.
Please reach out to us on our [Discord](https://discord.gg/u77vRWY) and report any bugs you find, so that we can quickly address them.
That's all we have for now, until next time! Happy emulating! <br><br>
{{< article-end >}}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB