From 32c74c6481b0e7b5da4195ae0a844b15ba2a23b3 Mon Sep 17 00:00:00 2001 From: Shawn Hoffman Date: Sat, 21 Nov 2009 10:25:27 +0000 Subject: [PATCH] cleanup wii usb keyboard a little - really needs to use inputcommon or something... git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4597 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/Core/Core.vcproj | 12 +- Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp | 1 + .../WII_IPC_HLE_Device_Usb_Kbd_apple.h | 24 --- .../WII_IPC_HLE_Device_Usb_Kbd_linux.h | 25 --- .../Core/Src/IPC_HLE/WII_IPC_HLE_Device_usb.h | 56 ----- ...win32.h => WII_IPC_HLE_Device_usb_kbd.cpp} | 167 ++++++++++++++- .../Src/IPC_HLE/WII_IPC_HLE_Device_usb_kbd.h | 63 ++++++ .../Core/Src/IPC_HLE/WII_IPC_HLE_Usb_Kbd.cpp | 196 ------------------ Source/Core/Core/Src/SConscript | 2 +- 9 files changed, 233 insertions(+), 313 deletions(-) delete mode 100644 Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_Usb_Kbd_apple.h delete mode 100644 Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_Usb_Kbd_linux.h rename Source/Core/Core/Src/IPC_HLE/{WII_IPC_HLE_Device_Usb_Kbd_win32.h => WII_IPC_HLE_Device_usb_kbd.cpp} (55%) create mode 100644 Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_usb_kbd.h delete mode 100644 Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Usb_Kbd.cpp diff --git a/Source/Core/Core/Core.vcproj b/Source/Core/Core/Core.vcproj index 368304870d..25a74714c0 100644 --- a/Source/Core/Core/Core.vcproj +++ b/Source/Core/Core/Core.vcproj @@ -2095,19 +2095,11 @@ Name="Keyboard" > - - - - diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp index d68d4a3b00..cee65f414f 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE.cpp @@ -55,6 +55,7 @@ #include "WII_IPC_HLE_Device_net.h" #include "WII_IPC_HLE_Device_es.h" #include "WII_IPC_HLE_Device_usb.h" +#include "WII_IPC_HLE_Device_usb_kbd.h" #include "WII_IPC_HLE_Device_sdio_slot0.h" #include "FileUtil.h" // For Copy diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_Usb_Kbd_apple.h b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_Usb_Kbd_apple.h deleted file mode 100644 index d8957d48e5..0000000000 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_Usb_Kbd_apple.h +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (C) 2003 Dolphin Project. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, version 2.0. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License 2.0 for more details. - -// A copy of the GPL 2.0 should have been included with the program. -// If not, see http://www.gnu.org/licenses/ - -// Official SVN repository and contact information can be found at -// http://code.google.com/p/dolphin-emu/ - -u8 CWII_IPC_HLE_Device_usb_kbd::m_KeyCodesQWERTY[256] = { -//Add support for apple keycodes -}; - -u8 CWII_IPC_HLE_Device_usb_kbd::m_KeyCodesAZERTY[256] = { -//Add support for apple keycodes -}; diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_Usb_Kbd_linux.h b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_Usb_Kbd_linux.h deleted file mode 100644 index e5d7adc8e7..0000000000 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_Usb_Kbd_linux.h +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (C) 2003 Dolphin Project. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, version 2.0. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License 2.0 for more details. - -// A copy of the GPL 2.0 should have been included with the program. -// If not, see http://www.gnu.org/licenses/ - -// Official SVN repository and contact information can be found at -// http://code.google.com/p/dolphin-emu/ - -u8 CWII_IPC_HLE_Device_usb_kbd::m_KeyCodesQWERTY[256] = { -//Add support for Linux keycodes -}; - -u8 CWII_IPC_HLE_Device_usb_kbd::m_KeyCodesAZERTY[256] = { -//Add support for Linux keycodes -}; - diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_usb.h b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_usb.h index 05770d4497..e98ec47e9e 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_usb.h +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_usb.h @@ -235,61 +235,5 @@ public: // virtual u32 Update(); }; -class CWII_IPC_HLE_Device_usb_kbd : public IWII_IPC_HLE_Device -{ -public: - - CWII_IPC_HLE_Device_usb_kbd(u32 _DeviceID, const std::string& _rDeviceName); - - virtual ~CWII_IPC_HLE_Device_usb_kbd(); - - virtual bool Open(u32 _CommandAddress, u32 _Mode); - - virtual bool IOCtl(u32 _CommandAddress); - - virtual u32 Update(); - -private: - - static u8 m_KeyCodesQWERTY[256]; - static u8 m_KeyCodesAZERTY[256]; - - enum - { - KBD_LAYOUT_QWERTY = 0, - KBD_LAYOUT_AZERTY - }; - - int m_KeyboardLayout; - - enum - { - MSG_KBD_CONNECT = 0, - MSG_KBD_DISCONNECT, - MSG_EVENT - }; - - // This struct is designed to be directly writeable to memory - // without any translation - struct SMessageData - { - u32 dwMessage; - u32 dwUnk1; - u8 bModifiers; - u8 bUnk2; - u8 bPressedKeys[6]; - }; - - std::queue m_MessageQueue; - - bool m_OldKeyBuffer[256]; - u8 m_OldModifiers; - - virtual bool IsKeyPressed(int _Key); - - virtual void PushMessage(u32 _Message, u8 _Modifiers, u8 * _PressedKeys); - virtual void WriteMessage(u32 _Address, SMessageData _Message); -}; - #endif diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_Usb_Kbd_win32.h b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_usb_kbd.cpp similarity index 55% rename from Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_Usb_Kbd_win32.h rename to Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_usb_kbd.cpp index 06b8f02619..fffe1e4910 100644 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_Usb_Kbd_win32.h +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_usb_kbd.cpp @@ -15,6 +15,152 @@ // Official SVN repository and contact information can be found at // http://code.google.com/p/dolphin-emu/ +#include "../Core.h" // Local core functions +#include "WII_IPC_HLE_Device_usb.h" +#include "WII_IPC_HLE_Device_usb_kbd.h" + + +CWII_IPC_HLE_Device_usb_kbd::CWII_IPC_HLE_Device_usb_kbd(u32 _DeviceID, const std::string& _rDeviceName) +: IWII_IPC_HLE_Device(_DeviceID, _rDeviceName) +{} + +CWII_IPC_HLE_Device_usb_kbd::~CWII_IPC_HLE_Device_usb_kbd() +{} + +bool CWII_IPC_HLE_Device_usb_kbd::Open(u32 _CommandAddress, u32 _Mode) +{ + Memory::Write_U32(GetDeviceID(), _CommandAddress+4); + + IniFile ini; + ini.Load(CONFIG_FILE); + ini.Get("USB Keyboard", "Layout", &m_KeyboardLayout, KBD_LAYOUT_QWERTY); + + for(int i = 0; i < 256; i++) + m_OldKeyBuffer[i] = false; + m_OldModifiers = 0x00; + + m_MessageQueue.push(SMessageData(MSG_KBD_CONNECT, 0, NULL)); + + return true; +} + +bool CWII_IPC_HLE_Device_usb_kbd::Write(u32 _CommandAddress) +{ + WARN_LOG(WII_IPC_STM, "Ignoring write to CWII_IPC_HLE_Device_usb_kbd"); + DumpCommands(_CommandAddress, 10, LogTypes::WII_IPC_STM, LogTypes::LDEBUG); + return true; +} + +bool CWII_IPC_HLE_Device_usb_kbd::IOCtl(u32 _CommandAddress) +{ + u32 Parameter = Memory::Read_U32(_CommandAddress + 0x0C); + u32 BufferIn = Memory::Read_U32(_CommandAddress + 0x10); + u32 BufferInSize = Memory::Read_U32(_CommandAddress + 0x14); + u32 BufferOut = Memory::Read_U32(_CommandAddress + 0x18); + u32 BufferOutSize = Memory::Read_U32(_CommandAddress + 0x1C); + + if (!m_MessageQueue.empty()) + { + *(SMessageData*)Memory::GetPointer(BufferOut) = m_MessageQueue.front(); + m_MessageQueue.pop(); + } + + Memory::Write_U32(0, _CommandAddress + 0x4); + return true; +} + +bool CWII_IPC_HLE_Device_usb_kbd::IsKeyPressed(int _Key) +{ +#ifdef _WIN32 + if (GetAsyncKeyState(_Key) & 0x8000) + return true; + else + return false; +#else + // TODO: do it for non-Windows platforms + return false; +#endif +} + +u32 CWII_IPC_HLE_Device_usb_kbd::Update() +{ + u8 Modifiers = 0x00; + u8 PressedKeys[6] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + bool GotEvent = false; + int num_pressed_keys = 0; + for (int i = 0; i < 256; i++) + { + bool KeyPressedNow = IsKeyPressed(i); + bool KeyPressedBefore = m_OldKeyBuffer[i]; + u8 KeyCode = 0; + + if (KeyPressedNow ^ KeyPressedBefore) + { + if (KeyPressedNow) + { + switch (m_KeyboardLayout) + { + case KBD_LAYOUT_QWERTY: + KeyCode = m_KeyCodesQWERTY[i]; + break; + + case KBD_LAYOUT_AZERTY: + KeyCode = m_KeyCodesAZERTY[i]; + break; + } + + if (KeyCode == 0x00) + continue; + + PressedKeys[num_pressed_keys] = KeyCode; + + num_pressed_keys++; + if (num_pressed_keys == 6) + break; + } + + GotEvent = true; + } + + m_OldKeyBuffer[i] = KeyPressedNow; + } + +#ifdef _WIN32 + if (GetAsyncKeyState(VK_LCONTROL) & 0x8000) + Modifiers |= 0x01; + if (GetAsyncKeyState(VK_LSHIFT) & 0x8000) + Modifiers |= 0x02; + if (GetAsyncKeyState(VK_MENU) & 0x8000) + Modifiers |= 0x04; + if (GetAsyncKeyState(VK_LWIN) & 0x8000) + Modifiers |= 0x08; + if (GetAsyncKeyState(VK_RCONTROL) & 0x8000) + Modifiers |= 0x10; + if (GetAsyncKeyState(VK_RSHIFT) & 0x8000) + Modifiers |= 0x20; + if (GetAsyncKeyState(VK_MENU) & 0x8000) // TODO: VK_MENU is for ALT, not for ALT GR (ALT GR seems to work though...) + Modifiers |= 0x40; + if (GetAsyncKeyState(VK_RWIN) & 0x8000) + Modifiers |= 0x80; +#else + // TODO: modifiers for non-Windows platforms +#endif + + if (Modifiers ^ m_OldModifiers) + { + GotEvent = true; + m_OldModifiers = Modifiers; + } + + if (GotEvent) + m_MessageQueue.push(SMessageData(MSG_EVENT, Modifiers, PressedKeys)); + + return 0; +} + + +// Crazy ugly +#ifdef _WIN32 u8 CWII_IPC_HLE_Device_usb_kbd::m_KeyCodesQWERTY[256] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -189,4 +335,23 @@ u8 CWII_IPC_HLE_Device_usb_kbd::m_KeyCodesAZERTY[256] = { 0x38, // '!' 0x00, // Nothing interesting past this point. -}; \ No newline at end of file +}; +#elif defined __linux__ +// TODO Add support for Linux keycodes +u8 CWII_IPC_HLE_Device_usb_kbd::m_KeyCodesQWERTY[256] = { + 0 +}; + +u8 m_KeyCodesAZERTY[256] = { + 0 +}; +#elif defined __APPLE__ +// TODO Add support for Apple keycodes +u8 CWII_IPC_HLE_Device_usb_kbd::m_KeyCodesQWERTY[256] = { + 0 +}; + +u8 CWII_IPC_HLE_Device_usb_kbd::m_KeyCodesAZERTY[256] = { + 0 +}; +#endif diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_usb_kbd.h b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_usb_kbd.h new file mode 100644 index 0000000000..445c494cfd --- /dev/null +++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_usb_kbd.h @@ -0,0 +1,63 @@ +#ifndef _WII_IPC_HLE_DEVICE_USB_KBD_H_ +#define _WII_IPC_HLE_DEVICE_USB_KBD_H_ + +class CWII_IPC_HLE_Device_usb_kbd : public IWII_IPC_HLE_Device +{ +public: + CWII_IPC_HLE_Device_usb_kbd(u32 _DeviceID, const std::string& _rDeviceName); + virtual ~CWII_IPC_HLE_Device_usb_kbd(); + + virtual bool Open(u32 _CommandAddress, u32 _Mode); + virtual bool Write(u32 _CommandAddress); + virtual bool IOCtl(u32 _CommandAddress); + virtual u32 Update(); + +private: + enum + { + MSG_KBD_CONNECT = 0, + MSG_KBD_DISCONNECT, + MSG_EVENT + }; + + #pragma pack(push, 1) + struct SMessageData + { + u32 MsgType; + u32 Unk1; + u8 Modifiers; + u8 Unk2; + u8 PressedKeys[6]; + + SMessageData(u32 _MsgType, u8 _Modifiers, u8 *_PressedKeys) { + MsgType = Common::swap32(_MsgType); + Unk1 = 0; // swapped + Modifiers = _Modifiers; + Unk2 = 0; + + if (_PressedKeys) // Doesn't need to be in a specific order + memcpy(PressedKeys, _PressedKeys, sizeof(PressedKeys)); + else + memset(PressedKeys, 0, sizeof(PressedKeys)); + } + }; + #pragma pack(pop) + std::queue m_MessageQueue; + + bool m_OldKeyBuffer[256]; + u8 m_OldModifiers; + + virtual bool IsKeyPressed(int _Key); + + // This stuff should probably die + enum + { + KBD_LAYOUT_QWERTY = 0, + KBD_LAYOUT_AZERTY + }; + int m_KeyboardLayout; + static u8 m_KeyCodesQWERTY[256]; + static u8 m_KeyCodesAZERTY[256]; +}; + +#endif // _WII_IPC_HLE_DEVICE_USB_KBD_H_ diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Usb_Kbd.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Usb_Kbd.cpp deleted file mode 100644 index a39a5f4a18..0000000000 --- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Usb_Kbd.cpp +++ /dev/null @@ -1,196 +0,0 @@ -// Copyright (C) 2003 Dolphin Project. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, version 2.0. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License 2.0 for more details. - -// A copy of the GPL 2.0 should have been included with the program. -// If not, see http://www.gnu.org/licenses/ - -// Official SVN repository and contact information can be found at -// http://code.google.com/p/dolphin-emu/ - -#include "../Core.h" // Local core functions -#include "WII_IPC_HLE_Device_usb.h" - -#ifdef _WIN32 -#include "WII_IPC_HLE_Device_Usb_Kbd_win32.h" -#endif -#ifdef __linux__ -#include "WII_IPC_HLE_Device_Usb_Kbd_linux.h" -#endif -#ifdef __APPLE__ -#include "WII_IPC_HLE_Device_Usb_Kbd_apple.h" -#endif - - - -CWII_IPC_HLE_Device_usb_kbd::CWII_IPC_HLE_Device_usb_kbd(u32 _DeviceID, const std::string& _rDeviceName) -: IWII_IPC_HLE_Device(_DeviceID, _rDeviceName) -{ -} - -CWII_IPC_HLE_Device_usb_kbd::~CWII_IPC_HLE_Device_usb_kbd() -{} - -bool CWII_IPC_HLE_Device_usb_kbd::Open(u32 _CommandAddress, u32 _Mode) -{ - Memory::Write_U32(GetDeviceID(), _CommandAddress+4); - - IniFile ini; - ini.Load(CONFIG_FILE); - ini.Get("USB Keyboard", "Layout", &m_KeyboardLayout, KBD_LAYOUT_QWERTY); - - for(int i = 0; i < 256; i++) - m_OldKeyBuffer[i] = false; - m_OldModifiers = 0x00; - - PushMessage(MSG_KBD_CONNECT, 0x00, NULL); - - return true; -} - -bool CWII_IPC_HLE_Device_usb_kbd::IOCtl(u32 _CommandAddress) -{ - u32 Parameter = Memory::Read_U32(_CommandAddress +0x0C); - u32 BufferIn = Memory::Read_U32(_CommandAddress + 0x10); - u32 BufferInSize = Memory::Read_U32(_CommandAddress + 0x14); - u32 BufferOut = Memory::Read_U32(_CommandAddress + 0x18); - u32 BufferOutSize = Memory::Read_U32(_CommandAddress + 0x1C); - - if (!m_MessageQueue.empty()) - { - WriteMessage(BufferOut, m_MessageQueue.front()); - m_MessageQueue.pop(); - } - - Memory::Write_U32(0, _CommandAddress + 0x4); - return true; -} - -bool CWII_IPC_HLE_Device_usb_kbd::IsKeyPressed(int _Key) -{ -#ifdef _WIN32 - if (GetAsyncKeyState(_Key) & 0x8000) - return true; - else - return false; -#else - // TODO: do it for non-Windows platforms - return false; -#endif -} - -u32 CWII_IPC_HLE_Device_usb_kbd::Update() -{ - u8 Modifiers = 0x00; - u8 PressedKeys[6] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - bool GotEvent = false; - int num_pressed_keys = 0; - for (int i = 0; i < 256; i++) - { - bool KeyPressedNow = IsKeyPressed(i); - bool KeyPressedBefore = m_OldKeyBuffer[i]; - u8 KeyCode = 0; - - if (KeyPressedNow ^ KeyPressedBefore) - { - if (KeyPressedNow) - { - switch (m_KeyboardLayout) - { - case KBD_LAYOUT_QWERTY: - KeyCode = m_KeyCodesQWERTY[i]; - break; - - case KBD_LAYOUT_AZERTY: - KeyCode = m_KeyCodesAZERTY[i]; - break; - } - - if (KeyCode == 0x00) - continue; - - PressedKeys[num_pressed_keys] = KeyCode; - - num_pressed_keys++; - if (num_pressed_keys == 6) - break; - } - - GotEvent = true; - } - - m_OldKeyBuffer[i] = KeyPressedNow; - } - -#ifdef _WIN32 - if (GetAsyncKeyState(VK_LCONTROL) & 0x8000) - Modifiers |= 0x01; - if (GetAsyncKeyState(VK_LSHIFT) & 0x8000) - Modifiers |= 0x02; - if (GetAsyncKeyState(VK_MENU) & 0x8000) - Modifiers |= 0x04; - if (GetAsyncKeyState(VK_LWIN) & 0x8000) - Modifiers |= 0x08; - if (GetAsyncKeyState(VK_RCONTROL) & 0x8000) - Modifiers |= 0x10; - if (GetAsyncKeyState(VK_RSHIFT) & 0x8000) - Modifiers |= 0x20; - if (GetAsyncKeyState(VK_MENU) & 0x8000) // TODO: VK_MENU is for ALT, not for ALT GR (ALT GR seems to work though...) - Modifiers |= 0x40; - if (GetAsyncKeyState(VK_RWIN) & 0x8000) - Modifiers |= 0x80; -#else - // TODO: modifiers for non-Windows platforms -#endif - - if (Modifiers ^ m_OldModifiers) - { - GotEvent = true; - m_OldModifiers = Modifiers; - } - - if (GotEvent) - PushMessage(MSG_EVENT, Modifiers, PressedKeys); - - return 0; -} - -void CWII_IPC_HLE_Device_usb_kbd::PushMessage(u32 _Message, u8 _Modifiers, u8 * _PressedKeys) -{ - SMessageData MsgData; - - MsgData.dwMessage = _Message; - MsgData.dwUnk1 = 0; - MsgData.bModifiers = _Modifiers; - MsgData.bUnk2 = 0; - - if (_PressedKeys) - memcpy(MsgData.bPressedKeys, _PressedKeys, sizeof(MsgData.bPressedKeys)); - else - memset(MsgData.bPressedKeys, 0, sizeof(MsgData.bPressedKeys)); - - m_MessageQueue.push(MsgData); -} - -void CWII_IPC_HLE_Device_usb_kbd::WriteMessage(u32 _Address, SMessageData _Message) -{ - // TODO: the MessageData struct could be written directly in memory, - // instead of writing each member separately - Memory::Write_U32(_Message.dwMessage, _Address); - Memory::Write_U32(_Message.dwUnk1, _Address + 0x4); - Memory::Write_U8(_Message.bModifiers, _Address + 0x8); - Memory::Write_U8(_Message.bUnk2, _Address + 0x9); - Memory::Write_U8(_Message.bPressedKeys[0], _Address + 0xA); - Memory::Write_U8(_Message.bPressedKeys[1], _Address + 0xB); - Memory::Write_U8(_Message.bPressedKeys[2], _Address + 0xC); - Memory::Write_U8(_Message.bPressedKeys[3], _Address + 0xD); - Memory::Write_U8(_Message.bPressedKeys[4], _Address + 0xE); - Memory::Write_U8(_Message.bPressedKeys[5], _Address + 0xF); -} diff --git a/Source/Core/Core/Src/SConscript b/Source/Core/Core/Src/SConscript index 3ddbdcb604..c3b03c6e9f 100644 --- a/Source/Core/Core/Src/SConscript +++ b/Source/Core/Core/Src/SConscript @@ -68,7 +68,7 @@ files = ["ActionReplay.cpp", "IPC_HLE/WII_IPC_HLE_Device_net.cpp", "IPC_HLE/WII_IPC_HLE_WiiMote.cpp", "IPC_HLE/WII_IPC_HLE_Device_usb.cpp", - "IPC_HLE/WII_IPC_HLE_Usb_Kbd.cpp", + "IPC_HLE/WII_IPC_HLE_Device_usb_kbd.cpp", "IPC_HLE/WiiMote_HID_Attr.cpp", "PowerPC/PowerPC.cpp", "PowerPC/PPCAnalyst.cpp",