diff --git a/Source/Core/Core/CMakeLists.txt b/Source/Core/Core/CMakeLists.txt index 788269a729..ab0eff73f3 100644 --- a/Source/Core/Core/CMakeLists.txt +++ b/Source/Core/Core/CMakeLists.txt @@ -97,6 +97,8 @@ set(SRCS ActionReplay.cpp HW/EXI_DeviceIPL.cpp HW/EXI_DeviceMemoryCard.cpp HW/EXI_DeviceMic.cpp + HW/GCKeyboard.cpp + HW/GCKeyboardEmu.cpp HW/GCMemcard.cpp HW/GCMemcardDirectory.cpp HW/GCMemcardRaw.cpp @@ -116,6 +118,7 @@ set(SRCS ActionReplay.cpp HW/SI_DeviceGBA.cpp HW/SI_DeviceGCController.cpp HW/SI_DeviceGCSteeringWheel.cpp + HW/SI_DeviceKeyboard.cpp HW/Sram.cpp HW/StreamADPCM.cpp HW/SystemTimers.cpp diff --git a/Source/Core/Core/Core.cpp b/Source/Core/Core/Core.cpp index 4756659b36..9d5c2db2b2 100644 --- a/Source/Core/Core/Core.cpp +++ b/Source/Core/Core/Core.cpp @@ -39,6 +39,7 @@ #include "Core/HW/CPU.h" #include "Core/HW/DSP.h" #include "Core/HW/EXI.h" +#include "Core/HW/GCKeyboard.h" #include "Core/HW/GCPad.h" #include "Core/HW/GPFifo.h" #include "Core/HW/HW.h" @@ -360,7 +361,14 @@ void EmuThread() return; } - Pad::Initialize(s_window_handle); + for (unsigned int port_num = 0; port_num < 4; port_num++) + { + if (SConfig::GetInstance().m_SIDevice[port_num] == SIDEVICE_GC_KEYBOARD) + Keyboard::Initialize(s_window_handle); + else + Pad::Initialize(s_window_handle); + } + // Load and Init Wiimotes - only if we are booting in Wii mode if (core_parameter.bWii) { @@ -475,7 +483,13 @@ void EmuThread() INFO_LOG(CONSOLE, "%s", StopMessage(false, "Shutting down HW").c_str()); HW::Shutdown(); INFO_LOG(CONSOLE, "%s", StopMessage(false, "HW shutdown").c_str()); - Pad::Shutdown(); + for (unsigned int port_num = 0; port_num < 4; port_num++) + { + if (SConfig::GetInstance().m_SIDevice[port_num] == SIDEVICE_GC_KEYBOARD) + Keyboard::Shutdown(); + else + Pad::Shutdown(); + } Wiimote::Shutdown(); g_video_backend->Shutdown(); AudioCommon::ShutdownSoundStream(); diff --git a/Source/Core/Core/Core.vcxproj b/Source/Core/Core/Core.vcxproj index ae775bcc5a..bf34fbabbe 100644 --- a/Source/Core/Core/Core.vcxproj +++ b/Source/Core/Core/Core.vcxproj @@ -128,6 +128,8 @@ + + @@ -147,6 +149,7 @@ +