mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2025-07-25 07:10:00 -06:00
attempt 2 at keeping mirror clients from lagging too far behind
This commit is contained in:
@ -672,8 +672,8 @@ void ProcessMirrorHost()
|
|||||||
|
|
||||||
case ENET_EVENT_TYPE_RECEIVE:
|
case ENET_EVENT_TYPE_RECEIVE:
|
||||||
{
|
{
|
||||||
if (event.packet->dataLength != 1) break;
|
if (event.packet->dataLength != 4) break;
|
||||||
u8* data = (u8*)event.packet->data;
|
/*u8* data = (u8*)event.packet->data;
|
||||||
|
|
||||||
if (data[0])
|
if (data[0])
|
||||||
{
|
{
|
||||||
@ -685,6 +685,29 @@ void ProcessMirrorHost()
|
|||||||
event.peer->data = (void*)0;
|
event.peer->data = (void*)0;
|
||||||
block = false;
|
block = false;
|
||||||
|
|
||||||
|
for (int i = 0; i < MirrorHost->peerCount; i++)
|
||||||
|
{
|
||||||
|
ENetPeer* peer = &(MirrorHost->peers[i]);
|
||||||
|
if (peer->state != ENET_PEER_STATE_CONNECTED) continue;
|
||||||
|
if (peer->data != (void*)0)
|
||||||
|
{
|
||||||
|
block = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
u32 clientframes = *(u32*)event.packet->data;
|
||||||
|
|
||||||
|
if (clientframes > (NDS::NumFrames + 4))
|
||||||
|
{
|
||||||
|
event.peer->data = (void*)1;
|
||||||
|
block = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
event.peer->data = (void*)0;
|
||||||
|
block = false;
|
||||||
|
|
||||||
for (int i = 0; i < MirrorHost->peerCount; i++)
|
for (int i = 0; i < MirrorHost->peerCount; i++)
|
||||||
{
|
{
|
||||||
ENetPeer* peer = &(MirrorHost->peers[i]);
|
ENetPeer* peer = &(MirrorHost->peers[i]);
|
||||||
@ -739,7 +762,7 @@ void ProcessMirrorClient()
|
|||||||
memcpy(&frame, data, sizeof(InputFrame));
|
memcpy(&frame, data, sizeof(InputFrame));
|
||||||
InputQueue.push(frame);
|
InputQueue.push(frame);
|
||||||
|
|
||||||
bool lag = (InputQueue.size() > 4*2);
|
/*bool lag = (InputQueue.size() > 4*2);
|
||||||
if (lag != Lag)
|
if (lag != Lag)
|
||||||
{
|
{
|
||||||
// let the mirror host know they are running too fast for us
|
// let the mirror host know they are running too fast for us
|
||||||
@ -749,6 +772,10 @@ printf("mirror client lag notify: %d\n", lag);
|
|||||||
enet_peer_send(event.peer, 0, pkt);
|
enet_peer_send(event.peer, 0, pkt);
|
||||||
|
|
||||||
Lag = lag;
|
Lag = lag;
|
||||||
|
}*/
|
||||||
|
{
|
||||||
|
ENetPacket* pkt = enet_packet_create(&NDS::NumFrames, 4, ENET_PACKET_FLAG_RELIABLE);
|
||||||
|
enet_peer_send(event.peer, 0, pkt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user