Skip to content
Permalink
Browse files
Merge pull request #6388 from leoetlino/merge
Consolidate ec_wii functions into IOSC
  • Loading branch information
leoetlino committed Mar 2, 2018
2 parents 96e4e01 + f9445bb commit a436c61
Show file tree
Hide file tree
Showing 11 changed files with 214 additions and 370 deletions.
@@ -7,7 +7,6 @@ set(SRCS
Core.cpp
CoreTiming.cpp
DSPEmulator.cpp
ec_wii.cpp
GeckoCodeConfig.cpp
GeckoCode.cpp
HotkeyManager.cpp
@@ -92,7 +92,6 @@
<ClCompile Include="DSP\Jit\DSPJitRegCache.cpp" />
<ClCompile Include="DSP\Jit\DSPJitUtil.cpp" />
<ClCompile Include="DSP\LabelMap.cpp" />
<ClCompile Include="ec_wii.cpp" />
<ClCompile Include="FifoPlayer\FifoAnalyzer.cpp" />
<ClCompile Include="FifoPlayer\FifoDataFile.cpp" />
<ClCompile Include="FifoPlayer\FifoPlaybackAnalyzer.cpp" />
@@ -343,7 +342,6 @@
<ClInclude Include="DSP\Jit\DSPEmitter.h" />
<ClInclude Include="DSP\Jit\DSPJitRegCache.h" />
<ClInclude Include="DSP\LabelMap.h" />
<ClInclude Include="ec_wii.h" />
<ClInclude Include="FifoPlayer\FifoAnalyzer.h" />
<ClInclude Include="FifoPlayer\FifoDataFile.h" />
<ClInclude Include="FifoPlayer\FifoPlaybackAnalyzer.h" />
@@ -169,7 +169,6 @@
<ClCompile Include="ConfigManager.cpp" />
<ClCompile Include="Core.cpp" />
<ClCompile Include="CoreTiming.cpp" />
<ClCompile Include="ec_wii.cpp" />
<ClCompile Include="HotkeyManager.cpp" />
<ClCompile Include="MemTools.cpp" />
<ClCompile Include="Movie.cpp" />
@@ -895,7 +894,6 @@
<ClInclude Include="ConfigManager.h" />
<ClInclude Include="Core.h" />
<ClInclude Include="CoreTiming.h" />
<ClInclude Include="ec_wii.h" />
<ClInclude Include="Host.h" />
<ClInclude Include="HotkeyManager.h" />
<ClInclude Include="MemTools.h" />
@@ -27,7 +27,6 @@
#include "Core/IOS/ES/Formats.h"
#include "Core/IOS/IOSC.h"
#include "Core/IOS/VersionInfo.h"
#include "Core/ec_wii.h"

namespace IOS
{
@@ -218,9 +217,7 @@ bool ES::LaunchTitle(u64 title_id, bool skip_reload)

NOTICE_LOG(IOS_ES, "Launching title %016" PRIx64 "...", title_id);

u32 device_id;
if (title_id == Titles::SHOP &&
(GetDeviceId(&device_id) != IPC_SUCCESS || device_id == DEFAULT_WII_DEVICE_ID))
if (title_id == Titles::SHOP && m_ios.GetIOSC().IsUsingDefaultId())
{
ERROR_LOG(IOS_ES, "Refusing to launch the shop channel with default device credentials");
CriticalAlertT("You cannot use the Wii Shop Channel without using your own device credentials."
@@ -10,7 +10,6 @@
#include "Common/Logging/Log.h"
#include "Core/HW/Memmap.h"
#include "Core/IOS/ES/Formats.h"
#include "Core/ec_wii.h"

namespace IOS
{
@@ -20,8 +19,7 @@ namespace Device
{
ReturnCode ES::GetDeviceId(u32* device_id) const
{
const EcWii& ec = EcWii::GetInstance();
*device_id = ec.GetNGID();
*device_id = m_ios.GetIOSC().GetDeviceId();
INFO_LOG(IOS_ES, "GetDeviceId: %08X", *device_id);
return IPC_SUCCESS;
}
@@ -92,10 +90,9 @@ IPCCommandResult ES::GetDeviceCertificate(const IOCtlVRequest& request)
return GetDefaultReply(ES_EINVAL);

INFO_LOG(IOS_ES, "IOCTL_ES_GETDEVICECERT");
u8* destination = Memory::GetPointer(request.io_vectors[0].address);

const EcWii& ec = EcWii::GetInstance();
MakeNGCert(destination, ec.GetNGID(), ec.GetNGKeyID(), ec.GetNGPriv(), ec.GetNGSig());
const auto cert = m_ios.GetIOSC().GetDeviceCertificate();
Memory::CopyToEmu(request.io_vectors[0].address, cert.data(), cert.size());
return GetDefaultReply(IPC_SUCCESS);
}

@@ -113,10 +110,7 @@ IPCCommandResult ES::Sign(const IOCtlVRequest& request)
if (!m_title_context.active)
return GetDefaultReply(ES_EINVAL);

const EcWii& ec = EcWii::GetInstance();
MakeAPSigAndCert(sig_out, ap_cert_out, m_title_context.tmd.GetTitleId(), data, data_size,
ec.GetNGPriv(), ec.GetNGID());

m_ios.GetIOSC().Sign(sig_out, ap_cert_out, m_title_context.tmd.GetTitleId(), data, data_size);
return GetDefaultReply(IPC_SUCCESS);
}
} // namespace Device
@@ -21,7 +21,6 @@
#include "Core/CommonTitles.h"
#include "Core/HW/Memmap.h"
#include "Core/IOS/ES/Formats.h"
#include "Core/ec_wii.h"

namespace IOS
{
@@ -63,7 +62,7 @@ ReturnCode ES::ImportTicket(const std::vector<u8>& ticket_bytes, const std::vect
return ES_EINVAL;

const u32 ticket_device_id = ticket.GetDeviceId();
const u32 device_id = EcWii::GetInstance().GetNGID();
const u32 device_id = m_ios.GetIOSC().GetDeviceId();
if (type == TicketImportType::PossiblyPersonalised && ticket_device_id != 0)
{
if (device_id != ticket_device_id)

0 comments on commit a436c61

Please sign in to comment.