diff --git a/Source/Core/Core/CMakeLists.txt b/Source/Core/Core/CMakeLists.txt
index 5474083132..bf8d86494e 100644
--- a/Source/Core/Core/CMakeLists.txt
+++ b/Source/Core/Core/CMakeLists.txt
@@ -10,7 +10,6 @@ set(SRCS Src/ActionReplay.cpp
Src/GeckoCodeConfig.cpp
Src/GeckoCode.cpp
Src/Movie.cpp
- Src/NetPlay.cpp
Src/NetPlayClient.cpp
Src/NetPlayServer.cpp
Src/PatchEngine.cpp
diff --git a/Source/Core/Core/Core.vcxproj b/Source/Core/Core/Core.vcxproj
index 53000b2cc9..964a6927e0 100644
--- a/Source/Core/Core/Core.vcxproj
+++ b/Source/Core/Core/Core.vcxproj
@@ -1,4 +1,4 @@
-
+
@@ -334,7 +334,6 @@
-
@@ -540,7 +539,6 @@
-
@@ -599,4 +597,4 @@
-
\ No newline at end of file
+
diff --git a/Source/Core/Core/Core.vcxproj.filters b/Source/Core/Core/Core.vcxproj.filters
index 75c592a685..f82b0d8832 100644
--- a/Source/Core/Core/Core.vcxproj.filters
+++ b/Source/Core/Core/Core.vcxproj.filters
@@ -1,4 +1,4 @@
-
+
@@ -529,9 +529,6 @@
HW %28Flipper/Hollywood%29\Wiimote
-
- NetPlay
-
NetPlay
@@ -1014,9 +1011,6 @@
PowerPC
-
- NetPlay
-
FifoPlayer
@@ -1177,9 +1171,6 @@
{1c21a3e1-b791-4a23-b0d5-ed2b2c34007f}
-
- {231ceb02-1122-402a-87a8-094a9ed768c2}
-
{ca7d56f7-4e84-4d15-9aea-7ae6fa7d6586}
@@ -1187,4 +1178,4 @@
{3e9e6e83-c1bf-45f9-aeff-231f98f60d29}
-
\ No newline at end of file
+
diff --git a/Source/Core/Core/Src/BootManager.cpp b/Source/Core/Core/Src/BootManager.cpp
index c9a8568205..c4bf6d485a 100644
--- a/Source/Core/Core/Src/BootManager.cpp
+++ b/Source/Core/Core/Src/BootManager.cpp
@@ -34,7 +34,7 @@
#include "Host.h"
#include "VideoBackendBase.h"
#include "Movie.h"
-#include "NetPlay.h"
+#include "NetPlayClient.h"
namespace BootManager
{
@@ -138,7 +138,7 @@ bool BootCore(const std::string& _rFilename)
}
}
- if (NetPlay::GetNetPlayPtr())
+ if (NetPlay::IsNetPlayRunning())
{
StartUp.bDSPHLE = g_NetPlaySettings.m_DSPHLE;
StartUp.bEnableMemcardSaving = g_NetPlaySettings.m_WriteToMemcard;
diff --git a/Source/Core/Core/Src/HW/SI.cpp b/Source/Core/Core/Src/HW/SI.cpp
index 85c84f92dd..ebd839a8bf 100644
--- a/Source/Core/Core/Src/HW/SI.cpp
+++ b/Source/Core/Core/Src/HW/SI.cpp
@@ -7,7 +7,7 @@
#include "../ConfigManager.h"
#include "../CoreTiming.h"
#include "../Movie.h"
-#include "../NetPlay.h"
+#include "../NetPlayClient.h"
#include "SystemTimers.h"
#include "ProcessorInterface.h"
@@ -262,7 +262,7 @@ void Init()
if (Movie::IsRecordingInput() || Movie::IsPlayingInput())
AddDevice(Movie::IsUsingPad(i) ? (Movie::IsUsingBongo(i) ? SIDEVICE_GC_TARUKONGA : SIDEVICE_GC_CONTROLLER) : SIDEVICE_NONE, i);
- else if (NetPlay::GetNetPlayPtr())
+ else if (NetPlay::IsNetPlayRunning())
AddDevice((SIDevices) g_NetPlaySettings.m_Controllers[i], i);
else
AddDevice(SConfig::GetInstance().m_SIDevice[i], i);
@@ -644,7 +644,7 @@ void RunSIBuffer()
int GetTicksToNextSIPoll()
{
// Poll for input at regular intervals (once per frame) when playing or recording a movie
- if (Movie::IsPlayingInput() || Movie::IsRecordingInput() || NetPlay::GetNetPlayPtr())
+ if (Movie::IsPlayingInput() || Movie::IsRecordingInput() || NetPlay::IsNetPlayRunning())
{
return SystemTimers::GetTicksPerSecond() / VideoInterface::TargetRefreshRate;
}
diff --git a/Source/Core/Core/Src/NetPlay.cpp b/Source/Core/Core/Src/NetPlay.cpp
deleted file mode 100644
index 45d1689abe..0000000000
--- a/Source/Core/Core/Src/NetPlay.cpp
+++ /dev/null
@@ -1,401 +0,0 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2
-// Refer to the license.txt file included.
-
-#include "NetPlay.h"
-
-// for wiimote
-#include "IPC_HLE/WII_IPC_HLE_Device_usb.h"
-#include "IPC_HLE/WII_IPC_HLE_WiiMote.h"
-// for gcpad
-#include "HW/SI_DeviceGCController.h"
-#include "HW/SI_DeviceGCSteeringWheel.h"
-#include "HW/SI_DeviceDanceMat.h"
-// for gctime
-#include "HW/EXI_DeviceIPL.h"
-// for wiimote/ OSD messages
-#include "Core.h"
-#include "ConfigManager.h"
-
-std::mutex crit_netplay_ptr;
-static NetPlay* netplay_ptr = NULL;
-NetSettings g_NetPlaySettings;
-
-#define RPT_SIZE_HACK (1 << 16)
-
-// called from ---GUI--- thread
-NetPlay::NetPlay(NetPlayUI* dialog)
- : m_dialog(dialog), m_is_running(false), m_do_loop(true)
-{
- m_target_buffer_size = 20;
- ClearBuffers();
-}
-
-void NetPlay_Enable(NetPlay* const np)
-{
- std::lock_guard lk(crit_netplay_ptr);
- netplay_ptr = np;
-}
-
-void NetPlay_Disable()
-{
- std::lock_guard lk(crit_netplay_ptr);
- netplay_ptr = NULL;
-}
-
-// called from ---GUI--- thread
-NetPlay::~NetPlay()
-{
- std::lock_guard lk(crit_netplay_ptr);
- netplay_ptr = NULL;
-
- // not perfect
- if (m_is_running)
- StopGame();
-}
-
-NetPlay::Player::Player()
-{
- memset(pad_map, -1, sizeof(pad_map));
-}
-
-// called from ---GUI--- thread
-std::string NetPlay::Player::ToString() const
-{
- std::ostringstream ss;
- ss << name << '[' << (char)(pid+'0') << "] : " << revision << " |";
- for (unsigned int i=0; i<4; ++i)
- ss << (pad_map[i]>=0 ? (char)(pad_map[i]+'1') : '-');
- ss << '|';
- return ss.str();
-}
-
-NetPad::NetPad()
-{
- nHi = 0x00808080;
- nLo = 0x80800000;
-}
-
-NetPad::NetPad(const SPADStatus* const pad_status)
-{
- nHi = (u32)((u8)pad_status->stickY);
- nHi |= (u32)((u8)pad_status->stickX << 8);
- nHi |= (u32)((u16)pad_status->button << 16);
- nHi |= 0x00800000;
- nLo = (u8)pad_status->triggerRight;
- nLo |= (u32)((u8)pad_status->triggerLeft << 8);
- nLo |= (u32)((u8)pad_status->substickY << 16);
- nLo |= (u32)((u8)pad_status->substickX << 24);
-}
-
-// called from ---NETPLAY--- thread
-void NetPlay::ClearBuffers()
-{
- // clear pad buffers, Clear method isn't thread safe
- for (unsigned int i=0; i<4; ++i)
- {
- while (m_pad_buffer[i].Size())
- m_pad_buffer[i].Pop();
-
- while (m_wiimote_buffer[i].Size())
- m_wiimote_buffer[i].Pop();
-
- m_wiimote_input[i].clear();
- }
-}
-
-// called from ---CPU--- thread
-bool NetPlay::GetNetPads(const u8 pad_nb, const SPADStatus* const pad_status, NetPad* const netvalues)
-{
- {
- std::lock_guard lkp(m_crit.players);
-
- // in game mapping for this local pad
- unsigned int in_game_num = m_local_player->pad_map[pad_nb];
-
- // does this local pad map in game?
- if (in_game_num < 4)
- {
- NetPad np(pad_status);
-
- // adjust the buffer either up or down
- // inserting multiple padstates or dropping states
- while (m_pad_buffer[in_game_num].Size() <= m_target_buffer_size)
- {
- // add to buffer
- m_pad_buffer[in_game_num].Push(np);
-
- // send
- SendPadState(pad_nb, np);
- }
- }
-
- } // unlock players
-
- //Common::Timer bufftimer;
- //bufftimer.Start();
-
- // get padstate from buffer and send to game
- while (!m_pad_buffer[pad_nb].Pop(*netvalues))
- {
- // wait for receiving thread to push some data
- Common::SleepCurrentThread(1);
-
- if (false == m_is_running)
- return false;
-
- // TODO: check the time of bufftimer here,
- // if it gets pretty high, ask the user if they want to disconnect
-
- }
-
- //u64 hangtime = bufftimer.GetTimeElapsed();
- //if (hangtime > 10)
- //{
- // std::ostringstream ss;
- // ss << "Pad " << (int)pad_nb << ": Had to wait " << hangtime << "ms for pad data. (increase pad Buffer maybe)";
- // Core::DisplayMessage(ss.str(), 1000);
- //}
-
- return true;
-}
-
-// called from ---CPU--- thread
-void NetPlay::WiimoteInput(int _number, u16 _channelID, const void* _pData, u32 _Size)
-{
- //// in game mapping for this local wiimote
- unsigned int in_game_num = m_local_player->pad_map[_number]; // just using gc pad_map for now
-
- // does this local pad map in game?
- if (in_game_num < 4)
- {
- m_wiimote_input[_number].resize(m_wiimote_input[_number].size() + 1);
- m_wiimote_input[_number].back().assign((char*)_pData, (char*)_pData + _Size);
- m_wiimote_input[_number].back().channel = _channelID;
- }
-}
-
-// called from ---CPU--- thread
-void NetPlay::WiimoteUpdate(int _number)
-{
- {
- std::lock_guard lkp(m_crit.players);
-
- // in game mapping for this local wiimote
- unsigned int in_game_num = m_local_player->pad_map[_number]; // just using gc pad_map for now
-
- // does this local pad map in game?
- if (in_game_num < 4)
- {
- m_wiimote_buffer[in_game_num].Push(m_wiimote_input[_number]);
-
- // TODO: send it
-
- m_wiimote_input[_number].clear();
- }
-
- } // unlock players
-
- if (0 == m_wiimote_buffer[_number].Size())
- {
- //PanicAlert("PANIC");
- return;
- }
-
- NetWiimote nw;
- m_wiimote_buffer[_number].Pop(nw);
-
- NetWiimote::const_iterator
- i = nw.begin(), e = nw.end();
- for ( ; i!=e; ++i)
- Core::Callback_WiimoteInterruptChannel(_number, i->channel, &(*i)[0], (u32)i->size() + RPT_SIZE_HACK);
-}
-
-// called from ---GUI--- thread
-bool NetPlay::StartGame(const std::string &path)
-{
- if (m_is_running)
- {
- PanicAlertT("Game is already running!");
- return false;
- }
-
- m_dialog->AppendChat(" -- STARTING GAME -- ");
-
- m_is_running = true;
- NetPlay_Enable(this);
-
- ClearBuffers();
-
- // boot game
- m_dialog->BootGame(path);
-
- // temporary
- NetWiimote nw;
- for (unsigned int i = 0; i<4; ++i)
- for (unsigned int f = 0; f<2; ++f)
- m_wiimote_buffer[i].Push(nw);
-
- return true;
-}
-
-// called from ---GUI--- thread and ---NETPLAY--- thread (client side)
-bool NetPlay::StopGame()
-{
- std::lock_guard lkg(m_crit.game);
-
- if (false == m_is_running)
- {
- PanicAlertT("Game isn't running!");
- return false;
- }
-
- m_dialog->AppendChat(" -- STOPPING GAME -- ");
-
- m_is_running = false;
- NetPlay_Disable();
-
- // stop game
- m_dialog->StopGame();
-
- return true;
-}
-
-void NetPlay::SetMemcardWriteEnabled(bool enabled)
-{
- std::lock_guard lkg(m_crit.game);
- g_NetPlaySettings.m_WriteToMemcard = enabled;
-}
-
-// called from ---CPU--- thread
-u8 NetPlay::GetPadNum(u8 numPAD)
-{
- // TODO: i don't like that this loop is running everytime there is rumble
- unsigned int i = 0;
- for (; i<4; ++i)
- if (numPAD == m_local_player->pad_map[i])
- break;
-
- return i;
-}
-
-void NetPlay::GetNetSettings()
-{
- SConfig &instance = SConfig::GetInstance();
- g_NetPlaySettings.m_DSPHLE = instance.m_LocalCoreStartupParameter.bDSPHLE;
- g_NetPlaySettings.m_DSPEnableJIT = instance.m_EnableJIT;
-
- for (unsigned int i = 0; i < 4; ++i)
- g_NetPlaySettings.m_Controllers[i] = SConfig::GetInstance().m_SIDevice[i];
-}
-
-// stuff hacked into dolphin
-
-// called from ---CPU--- thread
-// Actual Core function which is called on every frame
-bool CSIDevice_GCController::NetPlay_GetInput(u8 numPAD, SPADStatus PadStatus, u32 *PADStatus)
-{
- std::lock_guard lk(crit_netplay_ptr);
-
- if (netplay_ptr)
- return netplay_ptr->GetNetPads(numPAD, &PadStatus, (NetPad*)PADStatus);
- else
- return false;
-}
-
-bool CSIDevice_GCSteeringWheel::NetPlay_GetInput(u8 numPAD, SPADStatus PadStatus, u32 *PADStatus)
-{
- return CSIDevice_GCController::NetPlay_GetInput(numPAD, PadStatus, PADStatus);
-}
-
-bool CSIDevice_DanceMat::NetPlay_GetInput(u8 numPAD, SPADStatus PadStatus, u32 *PADStatus)
-{
- return CSIDevice_GCController::NetPlay_GetInput(numPAD, PadStatus, PADStatus);
-}
-
-// called from ---CPU--- thread
-// so all players' games get the same time
-u32 CEXIIPL::NetPlay_GetGCTime()
-{
- std::lock_guard lk(crit_netplay_ptr);
-
- if (netplay_ptr)
- return 1272737767; // watev
- else
- return 0;
-}
-
-// called from ---CPU--- thread
-// return the local pad num that should rumble given a ingame pad num
-u8 CSIDevice_GCController::NetPlay_GetPadNum(u8 numPAD)
-{
- std::lock_guard lk(crit_netplay_ptr);
-
- if (netplay_ptr)
- return netplay_ptr->GetPadNum(numPAD);
- else
- return numPAD;
-}
-
-u8 CSIDevice_GCSteeringWheel::NetPlay_GetPadNum(u8 numPAD)
-{
- return CSIDevice_GCController::NetPlay_GetPadNum(numPAD);
-}
-
-u8 CSIDevice_DanceMat::NetPlay_GetPadNum(u8 numPAD)
-{
- return CSIDevice_GCController::NetPlay_GetPadNum(numPAD);
-}
-
-// called from ---CPU--- thread
-// wiimote update / used for frame counting
-//void CWII_IPC_HLE_Device_usb_oh1_57e_305::NetPlay_WiimoteUpdate(int _number)
-void CWII_IPC_HLE_Device_usb_oh1_57e_305::NetPlay_WiimoteUpdate(int)
-{
- //CritLocker crit(crit_netplay_ptr);
-
- //if (netplay_ptr)
- // netplay_ptr->WiimoteUpdate(_number);
-}
-
-// called from ---CPU--- thread
-//
-int CWII_IPC_HLE_WiiMote::NetPlay_GetWiimoteNum(int _number)
-{
- //CritLocker crit(crit_netplay_ptr);
-
- //if (netplay_ptr)
- // return netplay_ptr->GetPadNum(_number); // just using gcpad mapping for now
- //else
- return _number;
-}
-
-// called from ---CPU--- thread
-// intercept wiimote input callback
-//bool CWII_IPC_HLE_WiiMote::NetPlay_WiimoteInput(int _number, u16 _channelID, const void* _pData, u32& _Size)
-bool CWII_IPC_HLE_WiiMote::NetPlay_WiimoteInput(int, u16, const void*, u32&)
-{
- std::lock_guard lk(crit_netplay_ptr);
-
- if (netplay_ptr)
- //{
- // if (_Size >= RPT_SIZE_HACK)
- // {
- // _Size -= RPT_SIZE_HACK;
- // return false;
- // }
- // else
- // {
- // netplay_ptr->WiimoteInput(_number, _channelID, _pData, _Size);
- // // don't use this packet
- return true;
- // }
- //}
- else
- return false;
-}
-
-NetPlay* NetPlay::GetNetPlayPtr()
-{
- return netplay_ptr;
-}
diff --git a/Source/Core/Core/Src/NetPlay.h b/Source/Core/Core/Src/NetPlay.h
deleted file mode 100644
index 222fb680cf..0000000000
--- a/Source/Core/Core/Src/NetPlay.h
+++ /dev/null
@@ -1,275 +0,0 @@
-// Copyright 2013 Dolphin Emulator Project
-// Licensed under GPLv2
-// Refer to the license.txt file included.
-
-#ifndef _NETPLAY_H
-#define _NETPLAY_H
-
-#include "Common.h"
-#include "CommonTypes.h"
-#include "Thread.h"
-#include "Timer.h"
-
-#include
-
-#include "GCPadStatus.h"
-
-#include
-#include