From 998c4042c2f94fc7446279953e2079a6fed283a3 Mon Sep 17 00:00:00 2001 From: Matthew Parlane Date: Wed, 3 Jul 2013 23:01:52 +1200 Subject: [PATCH] Add ability to dump Balance Board data to local udp port. This probably won't work on Mac... --- Source/Core/Core/Src/ConfigManager.cpp | 1 + Source/Core/Core/Src/CoreParameter.cpp | 3 ++- Source/Core/Core/Src/CoreParameter.h | 1 + Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp | 13 +++++++++++++ 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/Source/Core/Core/Src/ConfigManager.cpp b/Source/Core/Core/Src/ConfigManager.cpp index ffca141b46..6c0decaebc 100644 --- a/Source/Core/Core/Src/ConfigManager.cpp +++ b/Source/Core/Core/Src/ConfigManager.cpp @@ -409,6 +409,7 @@ void SConfig::LoadSettings() ini.Get("Core", "RunCompareClient", &m_LocalCoreStartupParameter.bRunCompareClient, false); ini.Get("Core", "MMU", &m_LocalCoreStartupParameter.bMMU, false); ini.Get("Core", "TLBHack", &m_LocalCoreStartupParameter.iTLBHack, 0); + ini.Get("Core", "BBDumpPort", &m_LocalCoreStartupParameter.iBBDumpPort, -1); ini.Get("Core", "VBeam", &m_LocalCoreStartupParameter.bVBeamSpeedHack, false); ini.Get("Core", "SyncGPU", &m_LocalCoreStartupParameter.bSyncGPU, false); ini.Get("Core", "FastDiscSpeed", &m_LocalCoreStartupParameter.bFastDiscSpeed, false); diff --git a/Source/Core/Core/Src/CoreParameter.cpp b/Source/Core/Core/Src/CoreParameter.cpp index e05816cb64..93b622b8de 100644 --- a/Source/Core/Core/Src/CoreParameter.cpp +++ b/Source/Core/Core/Src/CoreParameter.cpp @@ -36,7 +36,7 @@ SCoreStartupParameter::SCoreStartupParameter() bMergeBlocks(false), bEnableMemcardSaving(true), bDPL2Decoder(false), iLatency(14), bRunCompareServer(false), bRunCompareClient(false), - bMMU(false), bDCBZOFF(false), iTLBHack(0), bVBeamSpeedHack(false), + bMMU(false), bDCBZOFF(false), iTLBHack(0), iBBDumpPort(0), bVBeamSpeedHack(false), bSyncGPU(false), bFastDiscSpeed(false), SelectedLanguage(0), bWii(false), bConfirmStop(false), bHideCursor(false), @@ -65,6 +65,7 @@ void SCoreStartupParameter::LoadDefaults() bMMU = false; bDCBZOFF = false; iTLBHack = 0; + iBBDumpPort = -1; bVBeamSpeedHack = false; bSyncGPU = false; bFastDiscSpeed = false; diff --git a/Source/Core/Core/Src/CoreParameter.h b/Source/Core/Core/Src/CoreParameter.h index 679fb0d425..322fd105f3 100644 --- a/Source/Core/Core/Src/CoreParameter.h +++ b/Source/Core/Core/Src/CoreParameter.h @@ -122,6 +122,7 @@ struct SCoreStartupParameter bool bMMU; bool bDCBZOFF; int iTLBHack; + int iBBDumpPort; bool bVBeamSpeedHack; bool bSyncGPU; bool bFastDiscSpeed; diff --git a/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp b/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp index 587d718abe..f518cebf7f 100644 --- a/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp +++ b/Source/Core/Core/Src/HW/WiimoteReal/WiimoteReal.cpp @@ -12,6 +12,8 @@ #include "Timer.h" #include "Host.h" #include "ConfigManager.h" +#include "SFML/Network.hpp" + #include "WiimoteReal.h" @@ -210,6 +212,12 @@ bool Wiimote::Read() if (result > 0 && m_channel > 0) { + if (Core::g_CoreStartupParameter.iBBDumpPort > 0 && index == WIIMOTE_BALANCE_BOARD) + { + static sf::SocketUDP Socket; + Socket.Send((char*)rpt.data(), rpt.size(), sf::IPAddress::LocalHost, Core::g_CoreStartupParameter.iBBDumpPort); + } + // Add it to queue rpt.resize(result); m_read_reports.Push(std::move(rpt)); @@ -234,6 +242,11 @@ bool Wiimote::Write() if (!is_speaker_data || m_last_audio_report.GetTimeDifference() > 5) { + if (Core::g_CoreStartupParameter.iBBDumpPort > 0 && index == WIIMOTE_BALANCE_BOARD) + { + static sf::SocketUDP Socket; + Socket.Send((char*)rpt.data(), rpt.size(), sf::IPAddress::LocalHost, Core::g_CoreStartupParameter.iBBDumpPort); + } IOWrite(rpt.data(), rpt.size()); if (is_speaker_data)