libretro / mame2003-plus-libretro

Updated 2018 version of MAME (0.78) for libretro. with added game support plus many fixes and improvements
Other
191 stars 109 forks source link

todo: test RetroArch netplay between two different control layouts #445

Open markwkidd opened 5 years ago

markwkidd commented 5 years ago

Are there any netplayers out there? It would be useful to confirm whether netplay works as expected when the players have different control layouts selected (eg one player uses 6-Button and the other uses Gamepad, etc)

ghost commented 5 years ago

@markwkidd abstraction on abstraction doesnt need to be difficult

https://github.com/grant2258/mame2003-plus-libretro/blob/439ac137c7aa7f6429b409c124fa5dd2266429f1/src/inptport.c#L1617-L1768

mahoneyt944 commented 4 years ago

Looking at what grant linked. Do we need to add more player support now for netplay? In #875 we added xmen6p and xmen6pu which supports 6 players. I think netplay only covers 4? What's the status between dual inputs?

markwkidd commented 3 years ago

@mahoneyt944 is there another issue already going where we could talk about trouble and limitations with netplay?

For one thing, I was wondering if anyone has written up a standard way to reproduce the problems (e.g. use a certain romset, then connect to matchmaking netplay server, etc)

mahoneyt944 commented 3 years ago

Pretty much any game. You'll get "port failed mapping" or something along those lines. I think I tested baluba. My guess is that under quick menu controls , the analog is never set properly so it crashes out.

markwkidd commented 3 years ago

Ah ok straightforward enough.

It has been ages since I set up netplay, and I had trouble actually playing with someone else, but this sounds even less functional than then. Thanks.

markwkidd commented 3 years ago

@mahoneyt944 maybe the PR is the better place to discuss this, but I had been assuming that "port" in the context of this error meant virtual input port, but it looks more like a network connectivity error: https://github.com/libretro/RetroArch/blob/93174dcd19da168615e91fe26cfb57e8aeb9a049/intl/msg_hash_us.h#L10385

I do get the port error here but I don't have a setup that is proven to work with netplay while using another core than this one.

markwkidd commented 3 years ago

This is the only function in RetroArch that uses the MSG_UPNP_FAILED error message: https://github.com/libretro/RetroArch/blob/0e4aa4633574321200847a86fd256475ed8d8119/network/netplay/netplay_io.c#L2004-L2046

It's called netplay_announce_nat_traversal, so I wouldn't think it's erroring because of issues with our input api implementation.

mahoneyt944 commented 3 years ago

I'm not very knowledgeable on netplay, I don't use it. On my testings though, which maybe completely wrong.... I was able to get a game to populate on the netplay page but the inputs didn't work. It was a very hit or miss experience. I was never able to get true functionality from it. http://lobby.libretro.com

You can frequently see people using this core with a range commits, typically old ones.

Typically : MAME 2003-Plus 25c5a8b4de Right now I see : 6c6f072

markwkidd commented 3 years ago

Note to self: there is a specification for RetroArch netplay here: https://docs.libretro.com/development/retroarch/netplay/

mahoneyt944 commented 2 years ago

I was able to get netplay to connect with pacman using a fire stick tv (player 2) and Android phone(host).

Some notes: it appears that player 2 connects to the host as the player 2 controller port, which follows the hosts pacman.cfg (at least on the hosts screen) for the mapping.

Player 2 screen seems to follow its own mapping pacman.cfg

Video loses sync because of these things where you can die on one screen and not the other. It seems like player 2 should really be piggy backing on the hosts screen instead of generating it's own.

Controls get pretty complicated especially in a game like this where player 2 uses player 1 controls. So the mapping is problematic