plugin.program.iagl icon indicating copy to clipboard operation
plugin.program.iagl copied to clipboard

[WIP] Native Netplay

Open zach-morris opened this issue 5 years ago • 8 comments

I've started coding some new functionality in IAGL for native netplay. Netplay only currently works with external retroarch since that functionality is not baked into Retroplayer (yet).

Here's what it currently does:

  • Once a game is launched with netplay, it's listed both in the libretro netplay lobby and some game info is auto posted to a discord channel
  • Gets all the games currently being hosted in the libretro netplay lobby and cross compares the game with the discord channel
  • This allows the addon to know exactly which game to launch automagically

For games not launched from IAGL, you can still play the game via netplay but the game has to be launched with a context menu>Copy netplay info, go to game>Launch with copied netplay info. The trick with this is that the game has to be the exact same one otherwise it wont work.

Opening this issue to ask what other 'features' would be worthwhile for a netplay system (aside from Retroplayer directly supporting it)

zach-morris avatar Apr 08 '20 01:04 zach-morris

Going to start over with this, to get Netplay working in IAGL for v3.

Overall idea:

  • List item to browse netplay lobby
  • Have some metadata (shared via discord) to identify which IAGL players there are and what game they're playing (the biggest hurdle is that for netplay to work, both players have to be using the exact same files, so there needs to be a reliable method to verify that)
  • Have options in the skin to start a game via netplay
  • Have a separate tab in the addon settings for setting up netplay optinos (username, IPs, etc)

zach-morris avatar Feb 28 '21 19:02 zach-morris

Beta version supporting netplay available here.

zach-morris avatar Mar 04 '21 22:03 zach-morris

I am definitely interested in helping you test this out. What can I do to help?

Clutz450 avatar May 16 '21 05:05 Clutz450

Netplay functionality is merged in the latest version of IAGL, so give it a try!

zach-morris avatar May 16 '21 15:05 zach-morris

Finally got a chance to try this out. This is the error I am getting when I try to start a netplay session as host. https://ibb.co/W3Z5ftS Any ideas? Also, do you have a Discord? Thanks.

-Clutz450

Clutz450 avatar Jun 13 '21 21:06 Clutz450

Most peoples firewalls are setup in a way that everyone would have to open. RetroArch's official server relay works great.

--host --appendconfig=netplay_use_mitm_server = "true" --appendconfig= "nyc"

?????

8-erl avatar Apr 04 '22 16:04 8-erl

Also i think unless i am mistaken there may be a bug in the first netplay launch if i am not mistaken it is due to the game not being on the Retroarch content history playlist. (defaults to Retroarch install folder content_history.lpl but it is not a config it is in JSON format I doubt thjere is a fix for this unless it automatically formats the JSON. Shrugs

"items": [ { "path": "\N64\WWF No Mercy (USA) (Rev A).n64", "label": "", "core_path": "Retroarch\cores\parallel_n64_libretro.dll", "core_name": "Nintendo - Nintendo 64 (ParaLLEl N64)", "crc32": "", "db_name": "" } ] }

8-erl avatar Apr 04 '22 16:04 8-erl

Also i think unless i am mistaken there may be a bug in the first netplay launch if i am not mistaken it is due to the game not being on the Retroarch content history playlist. (defaults to Retroarch install folder content_history.lpl but it is not a config it is in JSON format I doubt thjere is a fix for this unless it automatically formats the JSON. Shrugs

"items": [ { "path": "\N64\WWF No Mercy (USA) (Rev A).n64", "label": "", "core_path": "Retroarch\cores\parallel_n64_libretro.dll", "core_name": "Nintendo - Nintendo 64 (ParaLLEl N64)", "crc32": "", "db_name": "" } ] }

What kind of error are you getting if it's not in the content history?

zach-morris avatar Apr 05 '22 02:04 zach-morris