diff --git a/Source/Core/Core/Core.vcproj b/Source/Core/Core/Core.vcproj
index 9c19514f97..8045d073db 100644
--- a/Source/Core/Core/Core.vcproj
+++ b/Source/Core/Core/Core.vcproj
@@ -1118,6 +1118,10 @@
RelativePath=".\Src\IPC_HLE\WII_IPC_HLE_WiiMote.h"
>
+
+
data);
break;
+ case WM_REQUEST_STATUS:
+ WmRequestStatus((wm_request_status*)sr->data);
+ break;
+ case WM_IR_PIXEL_CLOCK:
+ case WM_IR_LOGIC:
+ LOG(WIIMOTE, " IR Enable 0x%02x 0x%02x", sr->channel, sr->data[0]);
+ break;
+ case WM_WRITE_DATA:
+ WmWriteData((wm_write_data*)sr->data);
+ break;
+ case WM_DATA_REPORTING:
+ WmDataReporting((wm_data_reporting*)sr->data);
+ break;
default:
PanicAlert("HidOutputReport: Unknown channel 0x%02x", sr->channel);
@@ -381,6 +394,15 @@ void CWII_IPC_HLE_WiiMote::WmLeds(wm_leds* leds) {
LOG(WIIMOTE, " Set LEDs");
LOG(WIIMOTE, " Leds: %x", leds->leds);
LOG(WIIMOTE, " Rumble: %x", leds->rumble);
+
+ m_Leds = leds->leds;
+}
+
+void CWII_IPC_HLE_WiiMote::WmDataReporting(wm_data_reporting* dr) {
+ LOG(WIIMOTE, " Set Data reporting mode");
+ LOG(WIIMOTE, " Continuous: %x", dr->continuous);
+ LOG(WIIMOTE, " Rumble: %x", dr->rumble);
+ LOG(WIIMOTE, " Mode: 0x%02x", dr->mode);
}
void CWII_IPC_HLE_WiiMote::WmReadData(wm_read_data* rd) {
@@ -395,24 +417,107 @@ void CWII_IPC_HLE_WiiMote::WmReadData(wm_read_data* rd) {
if(size <= 16 && rd->space == 0) {
SendReadDataReply(m_Eeprom, address, (u8)size);
} else {
- //TODO: return input reports, fragmented and padded on 16 bytes of data.
PanicAlert("WmReadData: unimplemented parameters!");
}
}
+void CWII_IPC_HLE_WiiMote::WmWriteData(wm_write_data* wd) {
+ u32 address = convert24bit(wd->address);
+ LOG(WIIMOTE, " Write data");
+ LOG(WIIMOTE, " Address space: %x", wd->space);
+ LOG(WIIMOTE, " Address: 0x%06x", address);
+ LOG(WIIMOTE, " Size: 0x%02x", wd->size);
+ LOG(WIIMOTE, " Rumble: %x", wd->rumble);
+
+ if(wd->size <= 16 && wd->space == WM_SPACE_EEPROM)
+ {
+ if(address + wd->size > WIIMOTE_EEPROM_SIZE) {
+ PanicAlert("WmWriteData: address + size out of bounds!");
+ return;
+ }
+ memcpy(m_Eeprom + address, wd->data, wd->size);
+ SendWriteDataReply();
+ }
+ else if(wd->size <= 16 && (wd->space == WM_SPACE_REGS1 || wd->space == WM_SPACE_REGS2))
+ {
+ u8* block;
+ u32 blockSize;
+ switch((address >> 16) & 0xFE) {
+ case 0xA2:
+ block = m_RegSpeaker;
+ blockSize = WIIMOTE_REG_SPEAKER_SIZE;
+ break;
+ case 0xA4:
+ block = m_RegExt;
+ blockSize = WIIMOTE_REG_EXT_SIZE;
+ break;
+ case 0xB0:
+ block = m_RegIr;
+ blockSize = WIIMOTE_REG_IR_SIZE;
+ break;
+ default:
+ PanicAlert("WmWriteData: bad register block!");
+ return;
+ }
+ address &= 0xFFFF;
+ if(address + wd->size > blockSize) {
+ PanicAlert("WmWriteData: address + size out of bounds!");
+ return;
+ }
+ memcpy(block + address, wd->data, wd->size);
+ SendWriteDataReply();
+ } else {
+ PanicAlert("WmWriteData: unimplemented parameters!");
+ }
+}
+
+void CWII_IPC_HLE_WiiMote::SendWriteDataReply() {
+ u8 DataFrame[1024];
+ u32 Offset = WriteWmReport(DataFrame, WM_WRITE_DATA_REPLY);
+
+ LOG(WIIMOTE, " SendWriteDataReply()");
+
+ SendL2capData(HID_INPUT_SCID, DataFrame, Offset);
+}
+
+int CWII_IPC_HLE_WiiMote::WriteWmReport(u8* dst, u8 channel) {
+ u32 Offset = 0;
+ hid_packet* pHidHeader = (hid_packet*)(dst + Offset);
+ Offset += sizeof(hid_packet);
+ pHidHeader->type = HID_TYPE_DATA;
+ pHidHeader->param = HID_PARAM_INPUT;
+
+ wm_report* pReport = (wm_report*)(dst + Offset);
+ Offset += sizeof(wm_report);
+ pReport->channel = channel;
+ return Offset;
+}
+
+void CWII_IPC_HLE_WiiMote::WmRequestStatus(wm_request_status* rs) {
+ LOG(WIIMOTE, " Request Status");
+ LOG(WIIMOTE, " Rumble: %x", rs->rumble);
+
+ //SendStatusReport();
+ u8 DataFrame[1024];
+ u32 Offset = WriteWmReport(DataFrame, WM_STATUS_REPORT);
+
+ wm_status_report* pStatus = (wm_status_report*)(DataFrame + Offset);
+ Offset += sizeof(wm_status_report);
+ memset(pStatus, 0, sizeof(wm_status_report));
+ pStatus->leds = m_Leds;
+ pStatus->battery = 100; //arbitrary number
+
+ LOG(WIIMOTE, " SendStatusReport()");
+ LOG(WIIMOTE, " Flags: 0x%02x", pStatus->padding1[2]);
+ LOG(WIIMOTE, " Battery: %d", pStatus->battery);
+
+ SendL2capData(HID_INPUT_SCID, DataFrame, Offset);
+}
+
void CWII_IPC_HLE_WiiMote::SendReadDataReply(void* _Base, u16 _Address, u8 _Size)
{
u8 DataFrame[1024];
- u32 Offset = 0;
-
- hid_packet* pHidHeader = (hid_packet*)(DataFrame + Offset);
- Offset += sizeof(hid_packet);
- pHidHeader->type = HID_TYPE_DATA;
- pHidHeader->param = HID_PARAM_INPUT;
-
- wm_report* pReport = (wm_report*)(DataFrame + Offset);
- Offset += sizeof(wm_report);
- pReport->channel = WM_READ_DATA_REPLY;
+ u32 Offset = WriteWmReport(DataFrame, WM_READ_DATA_REPLY);
_dbg_assert_(WIIMOTE, _Size <= 16);
@@ -420,12 +525,19 @@ void CWII_IPC_HLE_WiiMote::SendReadDataReply(void* _Base, u16 _Address, u8 _Size
Offset += sizeof(wm_read_data_reply);
pReply->buttons = 0;
pReply->error = 0;
- pReply->size = _Size;
+ pReply->size = _Size - 1;
pReply->address = Common::swap16(_Address);
memcpy(pReply->data, _Base, _Size);
if(_Size < 16) {
memset(pReply->data + _Size, 0, 16 - _Size);
}
+
+ LOG(WIIMOTE, " SendReadDataReply()");
+ LOG(WIIMOTE, " Buttons: 0x%04x", pReply->buttons);
+ LOG(WIIMOTE, " Error: 0x%x", pReply->error);
+ LOG(WIIMOTE, " Size: 0x%x", pReply->size);
+ LOG(WIIMOTE, " Address: 0x%04x", pReply->address);
+
SendL2capData(HID_INPUT_SCID, DataFrame, Offset);
}
diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_WiiMote.h b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_WiiMote.h
index 5f8f05f853..f3b0687149 100644
--- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_WiiMote.h
+++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_WiiMote.h
@@ -21,11 +21,17 @@
#include "WII_IPC_HLE_Device_usb.h"
#define WIIMOTE_EEPROM_SIZE (16*1024)
+#define WIIMOTE_REG_SPEAKER_SIZE 10
+#define WIIMOTE_REG_EXT_SIZE 0x100
+#define WIIMOTE_REG_IR_SIZE 0x34
class CWII_IPC_HLE_Device_usb_oh1_57e_305;
struct wm_report;
struct wm_leds;
struct wm_read_data;
+struct wm_request_status;
+struct wm_write_data;
+struct wm_data_reporting;
class CWII_IPC_HLE_WiiMote
{
@@ -63,10 +69,16 @@ private:
u8 m_Eeprom[WIIMOTE_EEPROM_SIZE];
+ u8 m_RegSpeaker[WIIMOTE_REG_SPEAKER_SIZE];
+ u8 m_RegExt[WIIMOTE_REG_EXT_SIZE];
+ u8 m_RegIr[WIIMOTE_REG_IR_SIZE];
+
std::string m_Name;
CWII_IPC_HLE_Device_usb_oh1_57e_305* m_pHost;
+ u8 m_Leds;
+
struct SChannel
{
@@ -95,11 +107,17 @@ private:
void HidOutputReport(wm_report* sr);
void WmLeds(wm_leds* leds);
- void WmReadData(wm_read_data* leds);
+ void WmReadData(wm_read_data* rd);
+ void WmWriteData(wm_write_data* wd);
+ void WmRequestStatus(wm_request_status* rs);
+ void WmDataReporting(wm_data_reporting* dr);
void SendConnectionRequest(u16 scid, u16 psm);
void SendConfigurationRequest(u16 scid);
void SendReadDataReply(void* _Base, u16 _Address, u8 _Size);
+ void SendWriteDataReply();
+
+ int WriteWmReport(u8* dst, u8 channel);
void CommandConnectionReq(u8 _Ident, u8* _pData, u32 _Size);
void CommandCofigurationReq(u8 _Ident, u8* _pData, u32 _Size);
diff --git a/Source/Core/Core/Src/IPC_HLE/wiimote_hid.h b/Source/Core/Core/Src/IPC_HLE/wiimote_hid.h
index 9f8d910a55..e5557d1afc 100644
--- a/Source/Core/Core/Src/IPC_HLE/wiimote_hid.h
+++ b/Source/Core/Core/Src/IPC_HLE/wiimote_hid.h
@@ -40,6 +40,47 @@ struct wm_leds {
u8 leds : 4;
};
+#define WM_DATA_REPORTING 0x12
+struct wm_data_reporting {
+ u8 rumble : 1;
+ u8 continuous : 1;
+ u8 : 6;
+ u8 mode;
+};
+
+#define WM_IR_PIXEL_CLOCK 0x13
+#define WM_IR_LOGIC 0x1A
+
+#define WM_REQUEST_STATUS 0x15
+struct wm_request_status {
+ u8 rumble : 1;
+ u8 : 7;
+};
+
+#define WM_STATUS_REPORT 0x20
+struct wm_status_report {
+ u8 padding1[2];
+ u8 unknown : 1;
+ u8 extension : 1;
+ u8 speaker : 1;
+ u8 ir : 1;
+ u8 leds : 4;
+ u8 padding2[2];
+ u8 battery;
+};
+
+#define WM_WRITE_DATA 0x16
+struct wm_write_data {
+ u8 rumble : 1;
+ u8 space : 2; //see WM_SPACE_*
+ u8 : 5;
+ u8 address[3];
+ u8 size;
+ u8 data[16];
+};
+
+#define WM_WRITE_DATA_REPLY 0x22 //empty, afaik
+
#define WM_READ_DATA 0x17
struct wm_read_data {
u8 rumble : 1;
diff --git a/Source/Core/Core/Src/State.cpp b/Source/Core/Core/Src/State.cpp
index 163de419f5..25dbec2cc4 100644
--- a/Source/Core/Core/Src/State.cpp
+++ b/Source/Core/Core/Src/State.cpp
@@ -91,7 +91,7 @@ void SaveStateCallback(u64 userdata, int cyclesLate)
u8 *ptr = 0;
PointerWrap p(&ptr, PointerWrap::MODE_MEASURE);
DoState(p);
- u64 sz = (u64)ptr;
+ size_t sz = (size_t)ptr;
u8 *buffer = new u8[sz];
ptr = buffer;
p.SetMode(PointerWrap::MODE_WRITE);
diff --git a/Source/Dolphin.sln b/Source/Dolphin.sln
index ae6de896bd..54239d4022 100644
--- a/Source/Dolphin.sln
+++ b/Source/Dolphin.sln
@@ -3,16 +3,16 @@ Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Core", "Core\Core\Core.vcproj", "{F0B874CB-4476-4199-9315-8343D05AE684}"
ProjectSection(ProjectDependencies) = postProject
- {29C2ABC1-ADA5-42CD-A5FC-96022D52A510} = {29C2ABC1-ADA5-42CD-A5FC-96022D52A510}
- {C573CAF7-EE6A-458E-8049-16C0BF34C2E9} = {C573CAF7-EE6A-458E-8049-16C0BF34C2E9}
{B7F1A9FB-BEA8-416E-9460-AE35A6A5165C} = {B7F1A9FB-BEA8-416E-9460-AE35A6A5165C}
+ {C573CAF7-EE6A-458E-8049-16C0BF34C2E9} = {C573CAF7-EE6A-458E-8049-16C0BF34C2E9}
+ {29C2ABC1-ADA5-42CD-A5FC-96022D52A510} = {29C2ABC1-ADA5-42CD-A5FC-96022D52A510}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Plugin_VideoDX9", "Plugins\Plugin_VideoDX9\Plugin_VideoDX9.vcproj", "{636FAD5F-02D1-4E9A-BE67-FB8EA99B9A18}"
ProjectSection(ProjectDependencies) = postProject
- {3E03C179-8251-46E4-81F4-466F114BAC63} = {3E03C179-8251-46E4-81F4-466F114BAC63}
- {E5D1F0C0-AA07-4841-A4EB-4CF4DAA6B0FA} = {E5D1F0C0-AA07-4841-A4EB-4CF4DAA6B0FA}
{C573CAF7-EE6A-458E-8049-16C0BF34C2E9} = {C573CAF7-EE6A-458E-8049-16C0BF34C2E9}
+ {E5D1F0C0-AA07-4841-A4EB-4CF4DAA6B0FA} = {E5D1F0C0-AA07-4841-A4EB-4CF4DAA6B0FA}
+ {3E03C179-8251-46E4-81F4-466F114BAC63} = {3E03C179-8251-46E4-81F4-466F114BAC63}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Plugin_PadSimple", "Plugins\Plugin_PadSimple\Plugin_PadSimple.vcproj", "{9A183B48-ECC2-4121-876A-9B3793686073}"
@@ -33,10 +33,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DiscIO", "Core\DiscIO\DiscI
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Plugin_VideoOGL", "Plugins\Plugin_VideoOGL\Plugin_VideoOGL.vcproj", "{CFDCEE0E-FA45-4F72-9FCC-0B88F5A75160}"
ProjectSection(ProjectDependencies) = postProject
- {48AD7E0A-25B1-4974-A1E3-03F8C438D34F} = {48AD7E0A-25B1-4974-A1E3-03F8C438D34F}
- {0318BA30-EF48-441A-9E10-DC85EFAE39F0} = {0318BA30-EF48-441A-9E10-DC85EFAE39F0}
- {E5D1F0C0-AA07-4841-A4EB-4CF4DAA6B0FA} = {E5D1F0C0-AA07-4841-A4EB-4CF4DAA6B0FA}
{C573CAF7-EE6A-458E-8049-16C0BF34C2E9} = {C573CAF7-EE6A-458E-8049-16C0BF34C2E9}
+ {E5D1F0C0-AA07-4841-A4EB-4CF4DAA6B0FA} = {E5D1F0C0-AA07-4841-A4EB-4CF4DAA6B0FA}
+ {0318BA30-EF48-441A-9E10-DC85EFAE39F0} = {0318BA30-EF48-441A-9E10-DC85EFAE39F0}
+ {48AD7E0A-25B1-4974-A1E3-03F8C438D34F} = {48AD7E0A-25B1-4974-A1E3-03F8C438D34F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Common", "Core\Common\Common.vcproj", "{C573CAF7-EE6A-458E-8049-16C0BF34C2E9}"
@@ -44,13 +44,14 @@ EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DolphinWX", "Core\DolphinWX\DolphinWX.vcproj", "{A72606EF-C5C1-4954-90AD-F0F93A8D97D9}"
ProjectSection(ProjectDependencies) = postProject
{48AD7E0A-25B1-4974-A1E3-03F8C438D34F} = {48AD7E0A-25B1-4974-A1E3-03F8C438D34F}
- {0318BA30-EF48-441A-9E10-DC85EFAE39F0} = {0318BA30-EF48-441A-9E10-DC85EFAE39F0}
- {3E03C179-8251-46E4-81F4-466F114BAC63} = {3E03C179-8251-46E4-81F4-466F114BAC63}
- {29C2ABC1-ADA5-42CD-A5FC-96022D52A510} = {29C2ABC1-ADA5-42CD-A5FC-96022D52A510}
- {4D3CD4C5-412B-4B49-9B1B-A68A2A129C77} = {4D3CD4C5-412B-4B49-9B1B-A68A2A129C77}
- {F0B874CB-4476-4199-9315-8343D05AE684} = {F0B874CB-4476-4199-9315-8343D05AE684}
- {C573CAF7-EE6A-458E-8049-16C0BF34C2E9} = {C573CAF7-EE6A-458E-8049-16C0BF34C2E9}
+ {33546D62-7F34-4EA6-A88E-D538B36E16BF} = {33546D62-7F34-4EA6-A88E-D538B36E16BF}
{B7F1A9FB-BEA8-416E-9460-AE35A6A5165C} = {B7F1A9FB-BEA8-416E-9460-AE35A6A5165C}
+ {C573CAF7-EE6A-458E-8049-16C0BF34C2E9} = {C573CAF7-EE6A-458E-8049-16C0BF34C2E9}
+ {F0B874CB-4476-4199-9315-8343D05AE684} = {F0B874CB-4476-4199-9315-8343D05AE684}
+ {4D3CD4C5-412B-4B49-9B1B-A68A2A129C77} = {4D3CD4C5-412B-4B49-9B1B-A68A2A129C77}
+ {29C2ABC1-ADA5-42CD-A5FC-96022D52A510} = {29C2ABC1-ADA5-42CD-A5FC-96022D52A510}
+ {3E03C179-8251-46E4-81F4-466F114BAC63} = {3E03C179-8251-46E4-81F4-466F114BAC63}
+ {0318BA30-EF48-441A-9E10-DC85EFAE39F0} = {0318BA30-EF48-441A-9E10-DC85EFAE39F0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxBase28", "..\Externals\wxWidgets\build\msw\wx_base.vcproj", "{48AD7E0A-25B1-4974-A1E3-03F8C438D34F}"
@@ -59,11 +60,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxCore28", "..\Externals\wx
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DebuggerWX", "Core\DebuggerWX\DebuggerWX.vcproj", "{4D3CD4C5-412B-4B49-9B1B-A68A2A129C77}"
ProjectSection(ProjectDependencies) = postProject
- {48AD7E0A-25B1-4974-A1E3-03F8C438D34F} = {48AD7E0A-25B1-4974-A1E3-03F8C438D34F}
- {0318BA30-EF48-441A-9E10-DC85EFAE39F0} = {0318BA30-EF48-441A-9E10-DC85EFAE39F0}
- {29C2ABC1-ADA5-42CD-A5FC-96022D52A510} = {29C2ABC1-ADA5-42CD-A5FC-96022D52A510}
- {F0B874CB-4476-4199-9315-8343D05AE684} = {F0B874CB-4476-4199-9315-8343D05AE684}
{C573CAF7-EE6A-458E-8049-16C0BF34C2E9} = {C573CAF7-EE6A-458E-8049-16C0BF34C2E9}
+ {F0B874CB-4476-4199-9315-8343D05AE684} = {F0B874CB-4476-4199-9315-8343D05AE684}
+ {29C2ABC1-ADA5-42CD-A5FC-96022D52A510} = {29C2ABC1-ADA5-42CD-A5FC-96022D52A510}
+ {0318BA30-EF48-441A-9E10-DC85EFAE39F0} = {0318BA30-EF48-441A-9E10-DC85EFAE39F0}
+ {48AD7E0A-25B1-4974-A1E3-03F8C438D34F} = {48AD7E0A-25B1-4974-A1E3-03F8C438D34F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VideoCommon", "Core\VideoCommon\VideoCommon.vcproj", "{E5D1F0C0-AA07-4841-A4EB-4CF4DAA6B0FA}"
@@ -75,9 +76,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Plugin_PadDX9", "Plugins\Pl
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Plugin_nJoy_SDL", "Plugins\Plugin_nJoy_SDL\Plugin_nJoy_SDL.vcproj", "{521498BE-6089-4780-8223-E67C22F4E068}"
ProjectSection(ProjectDependencies) = postProject
- {48AD7E0A-25B1-4974-A1E3-03F8C438D34F} = {48AD7E0A-25B1-4974-A1E3-03F8C438D34F}
- {0318BA30-EF48-441A-9E10-DC85EFAE39F0} = {0318BA30-EF48-441A-9E10-DC85EFAE39F0}
{C573CAF7-EE6A-458E-8049-16C0BF34C2E9} = {C573CAF7-EE6A-458E-8049-16C0BF34C2E9}
+ {0318BA30-EF48-441A-9E10-DC85EFAE39F0} = {0318BA30-EF48-441A-9E10-DC85EFAE39F0}
+ {48AD7E0A-25B1-4974-A1E3-03F8C438D34F} = {48AD7E0A-25B1-4974-A1E3-03F8C438D34F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Plugin_DSP_HLE", "Plugins\Plugin_DSP_HLE\Plugin_DSP_HLE.vcproj", "{D6E56527-BBB9-4EAD-A6EC-49D4BF6AFCD8}"
@@ -99,16 +100,13 @@ Global
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{F0B874CB-4476-4199-9315-8343D05AE684}.Debug|Win32.ActiveCfg = Debug|Win32
{F0B874CB-4476-4199-9315-8343D05AE684}.Debug|Win32.Build.0 = Debug|Win32
- {F0B874CB-4476-4199-9315-8343D05AE684}.Debug|x64.ActiveCfg = Debug|x64
- {F0B874CB-4476-4199-9315-8343D05AE684}.Debug|x64.Build.0 = Debug|x64
+ {F0B874CB-4476-4199-9315-8343D05AE684}.Debug|x64.ActiveCfg = Debug|Win32
{F0B874CB-4476-4199-9315-8343D05AE684}.DebugFast|Win32.ActiveCfg = DebugFast|Win32
{F0B874CB-4476-4199-9315-8343D05AE684}.DebugFast|Win32.Build.0 = DebugFast|Win32
- {F0B874CB-4476-4199-9315-8343D05AE684}.DebugFast|x64.ActiveCfg = DebugFast|x64
- {F0B874CB-4476-4199-9315-8343D05AE684}.DebugFast|x64.Build.0 = DebugFast|x64
+ {F0B874CB-4476-4199-9315-8343D05AE684}.DebugFast|x64.ActiveCfg = DebugFast|Win32
{F0B874CB-4476-4199-9315-8343D05AE684}.Release|Win32.ActiveCfg = Release|Win32
{F0B874CB-4476-4199-9315-8343D05AE684}.Release|Win32.Build.0 = Release|Win32
- {F0B874CB-4476-4199-9315-8343D05AE684}.Release|x64.ActiveCfg = Release|x64
- {F0B874CB-4476-4199-9315-8343D05AE684}.Release|x64.Build.0 = Release|x64
+ {F0B874CB-4476-4199-9315-8343D05AE684}.Release|x64.ActiveCfg = Release|Win32
{636FAD5F-02D1-4E9A-BE67-FB8EA99B9A18}.Debug|Win32.ActiveCfg = Debug|Win32
{636FAD5F-02D1-4E9A-BE67-FB8EA99B9A18}.Debug|Win32.Build.0 = Debug|Win32
{636FAD5F-02D1-4E9A-BE67-FB8EA99B9A18}.Debug|x64.ActiveCfg = Debug|x64
@@ -207,16 +205,13 @@ Global
{C573CAF7-EE6A-458E-8049-16C0BF34C2E9}.Release|x64.Build.0 = Release|x64
{A72606EF-C5C1-4954-90AD-F0F93A8D97D9}.Debug|Win32.ActiveCfg = Debug|Win32
{A72606EF-C5C1-4954-90AD-F0F93A8D97D9}.Debug|Win32.Build.0 = Debug|Win32
- {A72606EF-C5C1-4954-90AD-F0F93A8D97D9}.Debug|x64.ActiveCfg = Debug|x64
- {A72606EF-C5C1-4954-90AD-F0F93A8D97D9}.Debug|x64.Build.0 = Debug|x64
+ {A72606EF-C5C1-4954-90AD-F0F93A8D97D9}.Debug|x64.ActiveCfg = Debug|Win32
{A72606EF-C5C1-4954-90AD-F0F93A8D97D9}.DebugFast|Win32.ActiveCfg = DebugFast|Win32
{A72606EF-C5C1-4954-90AD-F0F93A8D97D9}.DebugFast|Win32.Build.0 = DebugFast|Win32
- {A72606EF-C5C1-4954-90AD-F0F93A8D97D9}.DebugFast|x64.ActiveCfg = DebugFast|x64
- {A72606EF-C5C1-4954-90AD-F0F93A8D97D9}.DebugFast|x64.Build.0 = DebugFast|x64
+ {A72606EF-C5C1-4954-90AD-F0F93A8D97D9}.DebugFast|x64.ActiveCfg = DebugFast|Win32
{A72606EF-C5C1-4954-90AD-F0F93A8D97D9}.Release|Win32.ActiveCfg = Release|Win32
{A72606EF-C5C1-4954-90AD-F0F93A8D97D9}.Release|Win32.Build.0 = Release|Win32
- {A72606EF-C5C1-4954-90AD-F0F93A8D97D9}.Release|x64.ActiveCfg = Release|x64
- {A72606EF-C5C1-4954-90AD-F0F93A8D97D9}.Release|x64.Build.0 = Release|x64
+ {A72606EF-C5C1-4954-90AD-F0F93A8D97D9}.Release|x64.ActiveCfg = Release|Win32
{48AD7E0A-25B1-4974-A1E3-03F8C438D34F}.Debug|Win32.ActiveCfg = Debug|Win32
{48AD7E0A-25B1-4974-A1E3-03F8C438D34F}.Debug|Win32.Build.0 = Debug|Win32
{48AD7E0A-25B1-4974-A1E3-03F8C438D34F}.Debug|x64.ActiveCfg = Debug|x64