Fixed Issue 1697, this also makes usb_kbd enabled again.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4646 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
0f0c77c299
commit
6a5a90b9db
|
@ -470,26 +470,18 @@ void Update()
|
|||
|
||||
void UpdateDevices()
|
||||
{
|
||||
// This is called frequently so better make this route simple
|
||||
// currently we only have one device: USB that needs update and its ID is fixed to IPC_FIRST_HARDWARE_ID
|
||||
// So let's skip the query and call it directly, which will speed up a lot
|
||||
//
|
||||
IWII_IPC_HLE_Device* pDevice = g_DeviceMap[IPC_FIRST_HARDWARE_ID];
|
||||
if (pDevice->IsOpened())
|
||||
pDevice->Update();
|
||||
/*
|
||||
// check if a device must be updated
|
||||
TDeviceMap::const_iterator itr = g_DeviceMap.begin();
|
||||
|
||||
while(itr != g_DeviceMap.end())
|
||||
while(itr != g_DeviceMap.find(IPC_FIRST_FILEIO_ID))
|
||||
{
|
||||
if (itr->second->IsOpened())
|
||||
{
|
||||
if (itr->second->Update())
|
||||
{
|
||||
break;
|
||||
}
|
||||
++itr;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -76,7 +76,6 @@ bool CWII_IPC_HLE_Device_sdio_slot0::Close(u32 _CommandAddress, bool _bForce)
|
|||
fclose(m_Card);
|
||||
m_Card = NULL;
|
||||
}
|
||||
m_Status = CARD_INSERTED;
|
||||
m_BlockLength = 0;
|
||||
m_BusWidth = 0;
|
||||
|
||||
|
@ -167,7 +166,7 @@ bool CWII_IPC_HLE_Device_sdio_slot0::IOCtl(u32 _CommandAddress)
|
|||
|
||||
case IOCTL_GETSTATUS:
|
||||
INFO_LOG(WII_IPC_SD, "IOCTL_GETSTATUS. Replying that SD card is %s%s",
|
||||
(m_Status & CARD_INSERTED) ? "inserted" : "",
|
||||
(m_Status & CARD_INSERTED) ? "inserted" : "not exitsting",
|
||||
(m_Status & CARD_INITIALIZED) ? " and initialized" : "");
|
||||
Memory::Write_U32(m_Status, BufferOut);
|
||||
break;
|
||||
|
@ -407,9 +406,12 @@ u32 CWII_IPC_HLE_Device_sdio_slot0::ExecuteCommand(u32 _BufferIn, u32 _BufferInS
|
|||
DEBUG_LOG(WII_IPC_SD, "SDHC_CAPABILITIES");
|
||||
// SDHC 1.0 supports only 10-63 MHz.
|
||||
// So of course we reply 63MHz :)
|
||||
u8 mhz_units = 1 << 7;
|
||||
u16 freq = 63 << 8;
|
||||
u32 caps = freq | mhz_units;
|
||||
u32 freq = (63 << 8) + (1 << 7) + 63;
|
||||
// Only support 3.3V
|
||||
u32 voltage = 1 << 24;
|
||||
// High Speed support
|
||||
u32 speed = 1 << 21;
|
||||
u32 caps = freq | voltage | speed;
|
||||
Memory::Write_U32(caps, _BufferOut);
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -70,6 +70,7 @@ private:
|
|||
// Status
|
||||
enum
|
||||
{
|
||||
CARD_NOT_EXIST = 0,
|
||||
CARD_INSERTED = 1,
|
||||
CARD_INITIALIZED = 0x10000,
|
||||
};
|
||||
|
|
|
@ -472,10 +472,10 @@ u32 CWII_IPC_HLE_Device_usb_oh1_57e_305::Update()
|
|||
// or CPU will disconnect WiiMote automatically
|
||||
// but don't send too many or it will jam the bus and cost extra CPU time
|
||||
//
|
||||
if (m_HCIBuffer.m_address && !WII_IPCInterface::GetAddress() && m_WiiMotes[0].IsConnected())
|
||||
if (m_HCIBuffer.m_address && m_WiiMotes[0].IsConnected())
|
||||
{
|
||||
m_FreqDividerSync++;
|
||||
if ((m_PacketCount > 0) || (m_FreqDividerSync > 30)) // Feel free to tweak it
|
||||
if ((m_PacketCount > 0) || (m_FreqDividerSync > 60)) // Feel free to tweak it
|
||||
{
|
||||
m_FreqDividerSync = 0;
|
||||
SendEventNumberOfCompletedPackets(m_WiiMotes[0].GetConnectionHandle(), m_PacketCount);
|
||||
|
@ -490,7 +490,7 @@ u32 CWII_IPC_HLE_Device_usb_oh1_57e_305::Update()
|
|||
// Besides, decreasing its reporting frequency also brings us great FPS boost
|
||||
// Now I am making it running at 1/100 frequency of IPC which is already fast enough for human input
|
||||
//
|
||||
if (m_ACLBuffer.m_address && !WII_IPCInterface::GetAddress() && !m_LastCmd && m_WiiMotes[0].IsLinked())
|
||||
if (m_ACLBuffer.m_address && !m_LastCmd && m_WiiMotes[0].IsLinked())
|
||||
{
|
||||
m_FreqDividerMote++;
|
||||
if(m_FreqDividerMote > 99) // Feel free to tweak it
|
||||
|
|
|
@ -46,7 +46,7 @@ bool CWII_IPC_HLE_Device_usb_kbd::Open(u32 _CommandAddress, u32 _Mode)
|
|||
|
||||
bool CWII_IPC_HLE_Device_usb_kbd::Close(u32 _CommandAddress, bool _bForce)
|
||||
{
|
||||
INFO_LOG(WII_IPC_NET, "USB_KBD: Close");
|
||||
INFO_LOG(WII_IPC_STM, "CWII_IPC_HLE_Device_usb_kbd: Close");
|
||||
if (!_bForce)
|
||||
Memory::Write_U32(0, _CommandAddress + 4);
|
||||
m_Active = false;
|
||||
|
|
Loading…
Reference in New Issue