mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-26 15:55:31 +01:00
Re-increase max ACL queue size to 100. Better than possibly dropping a packet.
Reduced IPC update freq some. Removed some other nonsense.
This commit is contained in:
parent
286392af9d
commit
5c08df00b2
@ -251,7 +251,7 @@ void Init()
|
|||||||
// Now the 1500 is (was) a pure assumption
|
// Now the 1500 is (was) a pure assumption
|
||||||
// We need to figure out the real frequency though
|
// We need to figure out the real frequency though
|
||||||
|
|
||||||
const int freq = 8000;
|
const int freq = 5000;
|
||||||
const int fields = SConfig::GetInstance().m_LocalCoreStartupParameter.
|
const int fields = SConfig::GetInstance().m_LocalCoreStartupParameter.
|
||||||
bVBeam ? 2 : 1;
|
bVBeam ? 2 : 1;
|
||||||
IPC_HLE_PERIOD = GetTicksPerSecond() / (freq * fields);
|
IPC_HLE_PERIOD = GetTicksPerSecond() / (freq * fields);
|
||||||
|
@ -546,9 +546,12 @@ void EnqReply(u32 _Address, int cycles_in_future)
|
|||||||
// Takes care of routing ipc <-> ipc HLE
|
// Takes care of routing ipc <-> ipc HLE
|
||||||
void Update()
|
void Update()
|
||||||
{
|
{
|
||||||
|
if (!WII_IPCInterface::IsReady())
|
||||||
|
return;
|
||||||
|
|
||||||
UpdateDevices();
|
UpdateDevices();
|
||||||
|
|
||||||
if (WII_IPCInterface::IsReady() && request_queue.size())
|
if (request_queue.size())
|
||||||
{
|
{
|
||||||
WII_IPCInterface::GenerateAck(request_queue.front());
|
WII_IPCInterface::GenerateAck(request_queue.front());
|
||||||
INFO_LOG(WII_IPC_HLE, "||-- Acknowledge IPC Request @ 0x%08x", request_queue.front());
|
INFO_LOG(WII_IPC_HLE, "||-- Acknowledge IPC Request @ 0x%08x", request_queue.front());
|
||||||
@ -561,8 +564,7 @@ void Update()
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// Avoiding a "Reply" and "Ack" on the same interrupt allowed Rhythm Heaven Fever's "Remix 1" to work.
|
if (reply_queue.size())
|
||||||
if (WII_IPCInterface::IsReady() && reply_queue.size())
|
|
||||||
{
|
{
|
||||||
WII_IPCInterface::GenerateReply(reply_queue.front());
|
WII_IPCInterface::GenerateReply(reply_queue.front());
|
||||||
INFO_LOG(WII_IPC_HLE, "<<-- Reply to IPC Request @ 0x%08x", reply_queue.front());
|
INFO_LOG(WII_IPC_HLE, "<<-- Reply to IPC Request @ 0x%08x", reply_queue.front());
|
||||||
|
@ -509,14 +509,10 @@ u32 CWII_IPC_HLE_Device_usb_oh1_57e_305::Update()
|
|||||||
|
|
||||||
void CWII_IPC_HLE_Device_usb_oh1_57e_305::ACLPool::Store(const u8* data, const u16 size, const u16 conn_handle)
|
void CWII_IPC_HLE_Device_usb_oh1_57e_305::ACLPool::Store(const u8* data, const u16 size, const u16 conn_handle)
|
||||||
{
|
{
|
||||||
if (m_queue.size() >= 10)
|
if (m_queue.size() >= 100)
|
||||||
{
|
{
|
||||||
// Many simultaneous exchanges of ACL packets tend to cause the
|
// Many simultaneous exchanges of ACL packets tend to cause the queue to fill up.
|
||||||
// queue to fill up. Typically, this occurs when
|
ERROR_LOG(WII_IPC_WIIMOTE, "ACL queue size reached 100 - current packet will be dropped!");
|
||||||
// many emulated Wiimotes are requesting connections at once.
|
|
||||||
// See issue 4608 for more info.
|
|
||||||
ERROR_LOG(WII_IPC_WIIMOTE, "ACL queue size reached 10 - current packet will be "
|
|
||||||
"dropped! (Hopefully you never see this.)");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user