RetroDECK icon indicating copy to clipboard operation
RetroDECK copied to clipboard

Netplay

Open XargonWan opened this issue 1 year ago • 1 comments

Add the Netplay function system wide.

The netplay function should allow the user to:

  • [ ] set an username
  • [ ] list the public rooms
  • [ ] join a public room
  • [ ] join a private room by requesting the password
  • [ ] host a public room
  • [ ] stop a room sharing

Emulators that support this function:

  • RetroArch
  • CITRA
  • DOLPHIN
  • PPSSPP
  • RPCS3 (RPCN)
  • RYUJINX (requires LDN)
  • WIIU (via Pretendo)
  • 3DS (via Pretendo)
  • CEMU (via Pretendo)
  • Xbox (via Insigna)

How this can possibly work?

We could add a new "fake" system named like Netplay on ES-DE that will have only three entries:

  • Join room
  • Create room
  • Settings

The theme of this system can follow this rough idea: image

Join room

This will popup a tool that will list all the rooms opened with the Create room tool, each entry will show:

  • Room name
  • Username
  • Game name
  • A lock icon if it's private
  • Running RetroDECK version (if it doesn't match with yours the text might be red indicating that it might lead to incompatibilities and a warning will pop up once joining)

Once the room is selected the users should manually open the desired game (afaik there is no way to tell ES-DE to open it directly).

Create room

This will popup a tool that allow the user to:

  • Set a room name
  • Set the game name (this can be tricky, how can we list them? maybe this can be grabbed automatically like Discord does?)
  • Add a password (if set the room will be private) a default password can be specified in the option but if it's not marked as private it will be ignored.

Settings

This will call the Configurator with an argument that will show the Netplay options such as:

  • Username
  • Default password
  • Warn for version mismatch (toggle)

Once a room is joined or created, the tool is injecting the needed data inside the emulators configs such as:

  • room IP address
  • netplay toggle on
  • username
  • password

XargonWan avatar Jan 03 '24 08:01 XargonWan

We should try to set the Default port for all emulators to 55435 if possible. It was what RetroArch uses and then the users only needs to portforward one or as little ports as possible.

UPDATE Looks like you can't from the interface at least for some emulators.

Default port list:

RPCS3

3658 Don't looks like you can change the port and don't offer a selfhosted solution. You need to create an account in a fake PSN network.

RetroArch

55435 Can change port and have public lobbies.

Citra and Yuzu

24872 Can change port on lobby creation and have public lobbies.

5000 - Selfhosted lobby server Also have the option of selfhosting a lobby server, default port can be changed.

Dolphin

2626 Can set the port, have public lobby servers and you can also selfhost.

PPSSPP

27312 Default ADHoc server port.

Main problem is that EACH GAME could use a different port, so you will need to look into what ports the games are using and open for them as well.

So here we need to provide some defaults and not change the port offset. Then we could in theory have a tiny wiki article or a database of all portforwards for PPSSPP for RetroDECK.

Lazorne avatar Jan 03 '24 09:01 Lazorne