Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[NetPlay] Make the Memory Card A/B setting sync across netplay.
Fixes issue 6575.
  • Loading branch information
JMC47 authored and RachelBryk committed Sep 3, 2013
1 parent 70cfe96 commit e110f10
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 1 deletion.
7 changes: 7 additions & 0 deletions Source/Core/Core/Src/BootManager.cpp
Expand Up @@ -46,6 +46,7 @@ struct ConfigCache
bool valid, bCPUThread, bSkipIdle, bEnableFPRF, bMMU, bDCBZOFF, m_EnableJIT, bDSPThread,
bVBeamSpeedHack, bSyncGPU, bFastDiscSpeed, bMergeBlocks, bDSPHLE, bHLE_BS2;
int iTLBHack, iCPUCore;
TEXIDevices m_EXIDevice[2];
std::string strBackend;
};
static ConfigCache config_cache;
Expand Down Expand Up @@ -94,6 +95,8 @@ bool BootCore(const std::string& _rFilename)
config_cache.bHLE_BS2 = StartUp.bHLE_BS2;
config_cache.m_EnableJIT = SConfig::GetInstance().m_EnableJIT;
config_cache.bDSPThread = StartUp.bDSPThread;
config_cache.m_EXIDevice[0] = SConfig::GetInstance().m_EXIDevice[0];
config_cache.m_EXIDevice[1] = SConfig::GetInstance().m_EXIDevice[1];

// General settings
game_ini.Get("Core", "CPUThread", &StartUp.bCPUThread, StartUp.bCPUThread);
Expand Down Expand Up @@ -144,6 +147,8 @@ bool BootCore(const std::string& _rFilename)
StartUp.bDSPHLE = g_NetPlaySettings.m_DSPHLE;
StartUp.bEnableMemcardSaving = g_NetPlaySettings.m_WriteToMemcard;
SConfig::GetInstance().m_EnableJIT = g_NetPlaySettings.m_DSPEnableJIT;
SConfig::GetInstance().m_EXIDevice[0] = g_NetPlaySettings.m_EXIDevice[0];
SConfig::GetInstance().m_EXIDevice[1] = g_NetPlaySettings.m_EXIDevice[1];
}

// Run the game
Expand Down Expand Up @@ -184,6 +189,8 @@ void Stop()
VideoBackend::ActivateBackend(StartUp.m_strVideoBackend);
StartUp.bHLE_BS2 = config_cache.bHLE_BS2;
SConfig::GetInstance().m_EnableJIT = config_cache.m_EnableJIT;
SConfig::GetInstance().m_EXIDevice[0] = config_cache.m_EXIDevice[0];
SConfig::GetInstance().m_EXIDevice[1] = config_cache.m_EXIDevice[1];
}
}

Expand Down
5 changes: 5 additions & 0 deletions Source/Core/Core/Src/NetPlayClient.cpp
Expand Up @@ -237,6 +237,11 @@ unsigned int NetPlayClient::OnData(sf::Packet& packet)
packet >> g_NetPlaySettings.m_DSPEnableJIT;
packet >> g_NetPlaySettings.m_DSPHLE;
packet >> g_NetPlaySettings.m_WriteToMemcard;
int tmp;
packet >> tmp;
g_NetPlaySettings.m_EXIDevice[0] = (TEXIDevices) tmp;
packet >> tmp;
g_NetPlaySettings.m_EXIDevice[1] = (TEXIDevices) tmp;
}

m_dialog->OnMsgStartGame();
Expand Down
4 changes: 3 additions & 1 deletion Source/Core/Core/Src/NetPlayProto.h
Expand Up @@ -7,13 +7,15 @@

#include "Common.h"
#include "CommonTypes.h"
#include "HW/EXI_Device.h"

struct NetSettings
{
bool m_CPUthread;
bool m_DSPHLE;
bool m_DSPEnableJIT;
bool m_WriteToMemcard;
TEXIDevices m_EXIDevice[2];
};

struct Rpt : public std::vector<u8>
Expand All @@ -23,7 +25,7 @@ struct Rpt : public std::vector<u8>

typedef std::vector<Rpt> NetWiimote;

#define NETPLAY_VERSION "Dolphin NetPlay 2013-08-31"
#define NETPLAY_VERSION "Dolphin NetPlay 2013-09-03"

// messages
enum
Expand Down
2 changes: 2 additions & 0 deletions Source/Core/Core/Src/NetPlayServer.cpp
Expand Up @@ -455,6 +455,8 @@ bool NetPlayServer::StartGame(const std::string &path)
spac << m_settings.m_DSPEnableJIT;
spac << m_settings.m_DSPHLE;
spac << m_settings.m_WriteToMemcard;
spac << m_settings.m_EXIDevice[0];
spac << m_settings.m_EXIDevice[1];

std::lock_guard<std::recursive_mutex> lkp(m_crit.players);
std::lock_guard<std::recursive_mutex> lks(m_crit.send);
Expand Down
2 changes: 2 additions & 0 deletions Source/Core/DolphinWX/Src/NetWindow.cpp
Expand Up @@ -408,6 +408,8 @@ void NetPlayDiag::GetNetSettings(NetSettings &settings)
settings.m_DSPHLE = instance.m_LocalCoreStartupParameter.bDSPHLE;
settings.m_DSPEnableJIT = instance.m_EnableJIT;
settings.m_WriteToMemcard = m_memcard_write->GetValue();
settings.m_EXIDevice[0] = instance.m_EXIDevice[0];
settings.m_EXIDevice[1] = instance.m_EXIDevice[1];
}

std::string NetPlayDiag::FindGame()
Expand Down

0 comments on commit e110f10

Please sign in to comment.