mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-11-15 05:47:56 -07:00
Merge pull request #3797 from phire/casually_delete_some_code
Fix netplay desync when using wii-u adapter.
This commit is contained in:
commit
3df4b09a94
@ -32,86 +32,6 @@ GCPadStatus CSIDevice_GCAdapter::GetPadStatus()
|
|||||||
return PadStatus;
|
return PadStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
int CSIDevice_GCAdapter::RunBuffer(u8* _pBuffer, int _iLength)
|
|
||||||
{
|
|
||||||
// For debug logging only
|
|
||||||
ISIDevice::RunBuffer(_pBuffer, _iLength);
|
|
||||||
|
|
||||||
// Read the command
|
|
||||||
EBufferCommands command = static_cast<EBufferCommands>(_pBuffer[3]);
|
|
||||||
|
|
||||||
const u8 numPAD = NetPlay_InGamePadToLocalPad(ISIDevice::m_iDeviceNumber);
|
|
||||||
if (numPAD < 4)
|
|
||||||
{
|
|
||||||
if (!GCAdapter::DeviceConnected(numPAD))
|
|
||||||
{
|
|
||||||
reinterpret_cast<u32*>(_pBuffer)[0] = SI_NONE;
|
|
||||||
return 4;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Handle it
|
|
||||||
switch (command)
|
|
||||||
{
|
|
||||||
case CMD_RESET:
|
|
||||||
case CMD_ID:
|
|
||||||
*(u32*)&_pBuffer[0] = SI_GC_CONTROLLER;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case CMD_DIRECT:
|
|
||||||
{
|
|
||||||
INFO_LOG(SERIALINTERFACE, "PAD - Direct (Length: %d)", _iLength);
|
|
||||||
u32 high, low;
|
|
||||||
GetData(high, low);
|
|
||||||
for (int i = 0; i < (_iLength - 1) / 2; i++)
|
|
||||||
{
|
|
||||||
_pBuffer[i + 0] = (high >> (i * 8)) & 0xff;
|
|
||||||
_pBuffer[i + 4] = (low >> (i * 8)) & 0xff;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case CMD_ORIGIN:
|
|
||||||
{
|
|
||||||
INFO_LOG(SERIALINTERFACE, "PAD - Get Origin");
|
|
||||||
|
|
||||||
Calibrate();
|
|
||||||
|
|
||||||
u8* pCalibration = reinterpret_cast<u8*>(&m_Origin);
|
|
||||||
for (int i = 0; i < (int)sizeof(SOrigin); i++)
|
|
||||||
{
|
|
||||||
_pBuffer[i ^ 3] = *pCalibration++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
// Recalibrate (FiRES: i am not 100 percent sure about this)
|
|
||||||
case CMD_RECALIBRATE:
|
|
||||||
{
|
|
||||||
INFO_LOG(SERIALINTERFACE, "PAD - Recalibrate");
|
|
||||||
|
|
||||||
Calibrate();
|
|
||||||
|
|
||||||
u8* pCalibration = reinterpret_cast<u8*>(&m_Origin);
|
|
||||||
for (int i = 0; i < (int)sizeof(SOrigin); i++)
|
|
||||||
{
|
|
||||||
_pBuffer[i ^ 3] = *pCalibration++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
// DEFAULT
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
ERROR_LOG(SERIALINTERFACE, "Unknown SI command (0x%x)", command);
|
|
||||||
PanicAlert("SI: Unknown command (0x%x)", command);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return _iLength;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CSIDevice_GCAdapter::SendCommand(u32 _Cmd, u8 _Poll)
|
void CSIDevice_GCAdapter::SendCommand(u32 _Cmd, u8 _Poll)
|
||||||
{
|
{
|
||||||
UCommand command(_Cmd);
|
UCommand command(_Cmd);
|
||||||
|
@ -14,6 +14,5 @@ public:
|
|||||||
CSIDevice_GCAdapter(SIDevices device, int _iDeviceNumber);
|
CSIDevice_GCAdapter(SIDevices device, int _iDeviceNumber);
|
||||||
|
|
||||||
GCPadStatus GetPadStatus() override;
|
GCPadStatus GetPadStatus() override;
|
||||||
int RunBuffer(u8* _pBuffer, int _iLength) override;
|
|
||||||
void SendCommand(u32 _Cmd, u8 _Poll) override;
|
void SendCommand(u32 _Cmd, u8 _Poll) override;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user