diff --git a/Source/Core/Core/PowerPC/JitArm32/Jit.cpp b/Source/Core/Core/PowerPC/JitArm32/Jit.cpp index addce29faa..7ec6cf3381 100644 --- a/Source/Core/Core/PowerPC/JitArm32/Jit.cpp +++ b/Source/Core/Core/PowerPC/JitArm32/Jit.cpp @@ -40,6 +40,13 @@ void JitArm::Init() code_block.m_fpa = &js.fpa; analyzer.SetOption(PPCAnalyst::PPCAnalyzer::OPTION_CONDITIONAL_CONTINUE); InitBackpatch(); + + // Disable all loadstores + // Ever since the MMU has been optimized for x86, loadstores on ARMv7 have been knackered + // XXX: Investigate exactly why these are broken + SConfig::GetInstance().m_LocalCoreStartupParameter.bJITLoadStoreOff = true; + SConfig::GetInstance().m_LocalCoreStartupParameter.bJITLoadStoreFloatingOff = true; + SConfig::GetInstance().m_LocalCoreStartupParameter.bJITLoadStorePairedOff= true; } void JitArm::ClearCache() diff --git a/Source/Core/DolphinWX/MainNoGUI.cpp b/Source/Core/DolphinWX/MainNoGUI.cpp index ca028a69fe..9186742d46 100644 --- a/Source/Core/DolphinWX/MainNoGUI.cpp +++ b/Source/Core/DolphinWX/MainNoGUI.cpp @@ -19,6 +19,8 @@ #include "Core/Host.h" #include "Core/State.h" #include "Core/HW/Wiimote.h" +#include "Core/IPC_HLE/WII_IPC_HLE_Device_usb.h" +#include "Core/IPC_HLE/WII_IPC_HLE_WiiMote.h" #include "Core/PowerPC/PowerPC.h" #include "UICommon/UICommon.h" @@ -95,7 +97,16 @@ bool Host_RendererIsFullscreen() return rendererIsFullscreen; } -void Host_ConnectWiimote(int wm_idx, bool connect) {} +void Host_ConnectWiimote(int wm_idx, bool connect) +{ + if (Core::IsRunning() && SConfig::GetInstance().m_LocalCoreStartupParameter.bWii) + { + bool was_unpaused = Core::PauseAndLock(true); + GetUsbPointer()->AccessWiiMote(wm_idx | 0x100)->Activate(connect); + Host_UpdateMainFrame(); + Core::PauseAndLock(false, was_unpaused); + } +} void Host_SetWiiMoteConnectionState(int _State) {} diff --git a/Source/Core/VideoBackends/OGL/FramebufferManager.cpp b/Source/Core/VideoBackends/OGL/FramebufferManager.cpp index 839f91ad39..2bd7bbcb85 100644 --- a/Source/Core/VideoBackends/OGL/FramebufferManager.cpp +++ b/Source/Core/VideoBackends/OGL/FramebufferManager.cpp @@ -6,6 +6,7 @@ #include "Core/HW/Memmap.h" #include "VideoBackends/OGL/FramebufferManager.h" +#include "VideoBackends/OGL/GLInterfaceBase.h" #include "VideoBackends/OGL/Render.h" #include "VideoBackends/OGL/SamplerCache.h" #include "VideoBackends/OGL/TextureConverter.h" @@ -357,7 +358,8 @@ FramebufferManager::FramebufferManager(int targetWidth, int targetHeight, int ms glEnableVertexAttribArray(SHADER_COLOR0_ATTRIB); glVertexAttribPointer(SHADER_COLOR0_ATTRIB, 4, GL_UNSIGNED_BYTE, 1, sizeof(EfbPokeData), (void*)offsetof(EfbPokeData, data)); - glEnable(GL_PROGRAM_POINT_SIZE); + if (GLInterface->GetMode() == GLInterfaceMode::MODE_OPENGL) + glEnable(GL_PROGRAM_POINT_SIZE); } FramebufferManager::~FramebufferManager()