Core: Pass Netplay SRAM through boot process.

This removes the Netplay classes touching emulated hardware structures before emulation even starts.
This commit is contained in:
Admiral H. Curtiss
2022-09-13 04:44:59 +02:00
parent 9963637463
commit 0a517ebdbd
12 changed files with 37 additions and 56 deletions

View File

@ -432,10 +432,6 @@ void NetPlayClient::OnData(sf::Packet& packet)
OnDesyncDetected(packet);
break;
case MessageID::SyncGCSRAM:
OnSyncGCSRAM(packet);
break;
case MessageID::SyncSaveData:
OnSyncSaveData(packet);
break;
@ -893,6 +889,9 @@ void NetPlayClient::OnStartGame(sf::Packet& packet)
packet >> m_net_settings.use_fma;
packet >> m_net_settings.hide_remote_gbas;
for (size_t i = 0; i < sizeof(m_net_settings.sram); ++i)
packet >> m_net_settings.sram[i];
m_net_settings.is_hosting = m_local_player->IsHost();
}
@ -960,20 +959,6 @@ void NetPlayClient::OnDesyncDetected(sf::Packet& packet)
m_dialog->OnDesync(frame, player);
}
void NetPlayClient::OnSyncGCSRAM(sf::Packet& packet)
{
const size_t sram_settings_len = sizeof(g_SRAM) - offsetof(Sram, settings);
u8 sram[sram_settings_len];
for (u8& cell : sram)
packet >> cell;
{
std::lock_guard lkg(m_crit.game);
memcpy(&g_SRAM.settings, sram, sram_settings_len);
g_SRAM_netplay_initialized = true;
}
}
void NetPlayClient::OnSyncSaveData(sf::Packet& packet)
{
SyncSaveDataID sub_id;