Fixes for the other few Netplay initialization points

This commit is contained in:
Gregor Richards 2016-09-30 14:36:23 -04:00
parent 0d661ef6a2
commit 3fa3fe0fcd

View File

@ -557,6 +557,23 @@ static bool netplay_get_cmd(netplay_t *netplay)
{
uint32_t frame;
/* Make sure we're ready for it */
if (netplay->quirks & NETPLAY_QUIRK_INITIALIZATION)
{
if (!netplay->is_replay)
{
netplay->is_replay = true;
netplay->replay_ptr = netplay->self_ptr;
netplay->replay_frame_count = netplay->self_frame_count;
netplay_wait_and_init_serialization(netplay);
netplay->is_replay = false;
}
else
{
netplay_wait_and_init_serialization(netplay);
}
}
/* There is a subtlty in whether the load comes before or after the
* current frame:
*
@ -1222,6 +1239,13 @@ bool netplay_pre_frame(netplay_t *netplay)
if (netplay->local_paused)
netplay_frontend_paused(netplay, false);
if (netplay->quirks & NETPLAY_QUIRK_INITIALIZATION)
{
/* Are we ready now? */
if (!(core_serialization_quirks() & RETRO_SERIALIZATION_QUIRK_INITIALIZING) || netplay->self_frame_count > 60)
netplay_init_serialization(netplay);
}
if (!netplay->net_cbs->pre_frame(netplay))
return false;