Skip to content

Conversation

fizzlepicklepop
Copy link
Contributor

@fizzlepicklepop fizzlepicklepop commented Oct 10, 2025

Allows players to join in-progress netplay rooms while setting their pad type to "none" so they can join and leave without affecting the in-progress game. If the game isn't running the original behavior of auto assigning a GC pad to new entrants isn't changed.

This is mainly just for chat, so people can enter public rooms and ask to join. The host can stop the emulation to pick them up into the game after assigning them a pad.

Dolphin.Netplay.Jip.mp4

allows players to join in-progress netplay rooms while setting their pad to none. If the game isn't running the original behavior of auto assigning a GC pad to new entrants isn't changed.
if (m_start_pending)
return ConnectionError::GameRunning;

if (m_is_running && !Config::Get(Config::NETPLAY_INDEX_PASSWORD).empty())
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the rationale for requiring the room be without a password?

Other than that, this looks fine to me.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're right, I guess I didn't think of the use case of wanting to join a friend's passworded in-progress session. All of line 451 and the resulting error message could be removed without issue.

Copy link
Member

@jordan-woyak jordan-woyak Oct 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please squash the commits and remove mention of the fixup in the commit message though. ;)

Please also put NetPlay: at the start of the commit message.

removed m_is_running check and empty password check

AssignNewUserAPad(new_player);
if (!m_is_running)
AssignNewUserAPad(new_player);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On second look of the existing NetPlay code, I don't think this is really enough to properly let a player join without them being part of the game session.

The main issue I see right now is that the odd player is still going to receive all the pad data reports, with NetPlayClient::OnPadData causing forever growing buffers.

There may be other problems too. The NetPlay code has become hard to maintain and it wasn't really designed to do what you are are trying to do here.

I have plans to rewrite the whole thing at some point.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants