Compare commits

...

8 Commits

Author SHA1 Message Date
SuuperW
72fc1bc02d Update all configurations for DesHawk to build a DLL. 2019-09-30 11:58:57 -05:00
SuuperW
44c2a8c243 bug fix 2019-09-30 11:38:24 -05:00
SuuperW
5d5879bd26 VideoBuffer 2019-09-30 11:36:27 -05:00
SuuperW
7c75595b95 ResetFrameCounters 2019-09-30 11:24:31 -05:00
SuuperW
6f2a83cad9 FrameAdvance and SetInput 2019-09-30 11:19:52 -05:00
SuuperW
e34c8fd52c Add ability to load a ROM from a byte array instead of a file. 2019-09-30 11:15:42 -05:00
SuuperW
d0b31758fc Begin making DesHawkAPI 2019-09-30 10:36:48 -05:00
SuuperW
271a3ca9c6 Create "DesHawk" project by copying DeSmuME project and reconfiguring to build as a DLL. 2019-09-30 09:38:47 -05:00
7 changed files with 1133 additions and 122 deletions

View File

@@ -401,21 +401,8 @@ void GameInfo::populate()
}*/
}
bool GameInfo::loadROM(std::string fname, u32 type)
bool GameInfo::loadROM(u32 type)
{
//printf("ROM %s\n", CommonSettings.loadToMemory?"loaded to RAM":"stream from disk");
closeROM();
char *noext = strdup(fname.c_str());
reader = ROMReaderInit(&noext); free(noext);
fROM = reader->Init(fname.c_str());
if (!fROM) return false;
headerOffset = (type == ROM_DSGBA)?DSGBA_LOADER_SIZE:0;
romsize = reader->Size(fROM) - headerOffset;
reader->Seek(fROM, headerOffset, SEEK_SET);
bool res = (reader->Read(fROM, &header, sizeof(header)) == sizeof(header));
if (res)
@@ -426,10 +413,10 @@ bool GameInfo::loadROM(std::string fname, u32 type)
const size_t offset;
const size_t bytes;
};
static const FieldSwap fieldSwaps[] = {
{ offsetof(NDS_header,makerCode), 2},
{ offsetof(NDS_header,ARM9src), 4},
{ offsetof(NDS_header,ARM9exe), 4},
{ offsetof(NDS_header,ARM9cpy), 4},
@@ -449,35 +436,35 @@ bool GameInfo::loadROM(std::string fname, u32 type)
{ offsetof(NDS_header,normalCmd), 4},
{ offsetof(NDS_header,Key1Cmd), 4},
{ offsetof(NDS_header,IconOff), 4},
{ offsetof(NDS_header,CRC16), 2},
{ offsetof(NDS_header,ROMtimeout), 2},
{ offsetof(NDS_header,ARM9autoload), 4},
{ offsetof(NDS_header,ARM7autoload), 4},
{ offsetof(NDS_header,endROMoffset), 4},
{ offsetof(NDS_header,HeaderSize), 4},
{ offsetof(NDS_header, ARM9module), 4},
{ offsetof(NDS_header, ARM7module), 4},
{ offsetof(NDS_header,logoCRC16), 2},
{ offsetof(NDS_header,headerCRC16), 2},
};
for(size_t i = 0; i < ARRAY_SIZE(fieldSwaps); i++)
for (size_t i = 0; i < ARRAY_SIZE(fieldSwaps); i++)
{
const u8 *fieldAddr = (u8 *)&header + fieldSwaps[i].offset;
switch(fieldSwaps[i].bytes)
switch (fieldSwaps[i].bytes)
{
case 2:
*(u16 *)fieldAddr = LE_TO_LOCAL_16(*(u16 *)fieldAddr);
break;
case 4:
*(u32 *)fieldAddr = LE_TO_LOCAL_32(*(u32 *)fieldAddr);
break;
case 2:
*(u16 *)fieldAddr = LE_TO_LOCAL_16(*(u16 *)fieldAddr);
break;
case 4:
*(u32 *)fieldAddr = LE_TO_LOCAL_32(*(u32 *)fieldAddr);
break;
}
}
#endif
@@ -486,10 +473,10 @@ bool GameInfo::loadROM(std::string fname, u32 type)
if (cardSize < romsize)
{
msgbox->warn("The ROM header is invalid.\nThe device size has been increased to allow for the provided file size.\n");
for (u32 i = header.cardSize; i < 0xF; i++)
{
if (((128 * 1024) << i) >= romsize)
if (((128 * 1024) << i) >= romsize)
{
header.cardSize = i;
cardSize = (128 * 1024) << i;
@@ -497,13 +484,13 @@ bool GameInfo::loadROM(std::string fname, u32 type)
}
}
}
mask = (cardSize - 1);
mask |= (mask >>1);
mask |= (mask >>2);
mask |= (mask >>4);
mask |= (mask >>8);
mask |= (mask >>16);
mask |= (mask >> 1);
mask |= (mask >> 2);
mask |= (mask >> 4);
mask |= (mask >> 8);
mask |= (mask >> 16);
if (type == ROM_NDS)
{
@@ -511,40 +498,15 @@ bool GameInfo::loadROM(std::string fname, u32 type)
reader->Read(fROM, &secureArea[0], 0x4000);
}
//for now, we have to do this, because the DLDI patching requires it
bool loadToMemory = CommonSettings.loadToMemory;
if(isHomebrew())
loadToMemory = true;
//convert to an in-memory reader around a pre-read buffer if that's what's requested
if (loadToMemory)
{
reader->Seek(fROM, headerOffset, SEEK_SET);
romdataForReader = new u8[romsize];
if (reader->Read(fROM, romdataForReader, romsize) != romsize)
{
delete [] romdataForReader; romdataForReader = NULL;
romsize = 0;
return false;
}
reader->DeInit(fROM);
fROM = NULL;
reader = MemROMReaderRead_TrueInit(romdataForReader, romsize);
fROM = reader->Init(NULL);
}
if(hasRomBanner())
if (hasRomBanner())
{
reader->Seek(fROM, header.IconOff, SEEK_SET);
reader->Read(fROM, &banner, sizeof(RomBanner));
banner.version = LE_TO_LOCAL_16(banner.version);
banner.crc16 = LE_TO_LOCAL_16(banner.crc16);
for(size_t i = 0; i < ARRAY_SIZE(banner.palette); i++)
for (size_t i = 0; i < ARRAY_SIZE(banner.palette); i++)
{
banner.palette[i] = LE_TO_LOCAL_16(banner.palette[i]);
}
@@ -555,11 +517,11 @@ bool GameInfo::loadROM(std::string fname, u32 type)
{
reader->Seek(fROM, header.IconOff + headerOffset, SEEK_SET);
reader->Read(fROM, &banner, sizeof(RomBanner));
banner.version = LE_TO_LOCAL_16(banner.version);
banner.crc16 = LE_TO_LOCAL_16(banner.crc16);
for(size_t i = 0; i < ARRAY_SIZE(banner.palette); i++)
for (size_t i = 0; i < ARRAY_SIZE(banner.palette); i++)
{
banner.palette[i] = LE_TO_LOCAL_16(banner.palette[i]);
}
@@ -571,6 +533,65 @@ bool GameInfo::loadROM(std::string fname, u32 type)
romsize = 0;
reader->DeInit(fROM); fROM = NULL;
return false;
}
bool GameInfo::loadROM(std::string fname, u32 type)
{
//printf("ROM %s\n", CommonSettings.loadToMemory?"loaded to RAM":"stream from disk");
closeROM();
char *noext = strdup(fname.c_str());
reader = ROMReaderInit(&noext); free(noext);
fROM = reader->Init(fname.c_str());
if (!fROM) return false;
headerOffset = (type == ROM_DSGBA) ? DSGBA_LOADER_SIZE : 0;
romsize = reader->Size(fROM) - headerOffset;
reader->Seek(fROM, headerOffset, SEEK_SET);
//for now, we have to do this, because the DLDI patching requires it
bool loadToMemory = CommonSettings.loadToMemory;
if (isHomebrew())
loadToMemory = true;
//convert to an in-memory reader around a pre-read buffer if that's what's requested
if (loadToMemory)
{
reader->Seek(fROM, headerOffset, SEEK_SET);
romdataForReader = new u8[romsize];
if (reader->Read(fROM, romdataForReader, romsize) != romsize)
{
delete[] romdataForReader; romdataForReader = NULL;
romsize = 0;
return false;
}
reader->DeInit(fROM);
fROM = NULL;
reader = MemROMReaderRead_TrueInit(romdataForReader, romsize);
fROM = reader->Init(NULL);
}
return loadROM(type);
}
bool GameInfo::loadROM(u8* file, s32 fileSize)
{
closeROM();
// create memory stream
romdataForReader = new u8[fileSize];
memcpy(romdataForReader, file, fileSize);
reader = MemROMReaderRead_TrueInit(romdataForReader, fileSize);
fROM = reader->Init(NULL);
headerOffset = 0;
romsize = reader->Size(fROM) - headerOffset;
reader->Seek(fROM, headerOffset, SEEK_SET);
return loadROM(ROM_NDS);
}
void GameInfo::closeROM()
@@ -667,49 +688,21 @@ struct LastRom {
std::string filename, physicalName, logicalFilename;
} lastRom;
int NDS_LoadROM(const char *filename, const char *physicalName, const char *logicalFilename)
void LoadGameInfo()
{
lastRom.filename = filename;
lastRom.physicalName = physicalName ? physicalName : "";
lastRom.logicalFilename = logicalFilename ? logicalFilename : "";
int ret;
char buf[MAX_PATH];
if (filename == NULL)
return -1;
ret = rom_init_path(filename, physicalName, logicalFilename);
if (ret < 1)
return ret;
if (cheatSearch)
cheatSearch->close();
FCEUI_StopMovie();
if (!gameInfo.ValidateHeader())
{
ret = -1;
return ret;
}
gameInfo.populate();
//run crc over the whole buffer (chunk at a time, to avoid coding a streaming crc
gameInfo.reader->Seek(gameInfo.fROM, 0, SEEK_SET);
gameInfo.crc = 0;
bool first = true;
for(;;) {
for (;;) {
u8 buf[4096];
int read = gameInfo.reader->Read(gameInfo.fROM,buf,4096);
if(read == 0) break;
if(first && read >= 512)
gameInfo.crcForCheatsDb = ~crc32(0, buf, 512);
first = false;
int read = gameInfo.reader->Read(gameInfo.fROM, buf, 4096);
if (read == 0) break;
gameInfo.crc = crc32(gameInfo.crc, buf, read);
}
gameInfo.chipID = 0xC2; // The Manufacturer ID is defined by JEDEC (C2h = Macronix)
gameInfo.chipID = 0xC2; // The Manufacturer ID is defined by JEDEC (C2h = Macronix)
if (!gameInfo.isHomebrew())
{
gameInfo.chipID |= ((((128 << gameInfo.header.cardSize) / 1024) - 1) << 8); // Chip size in megabytes minus 1
@@ -740,8 +733,45 @@ int NDS_LoadROM(const char *filename, const char *physicalName, const char *logi
if (gameInfo.isDSiEnhanced()) INFO("ROM DSi Enhanced\n");
}
const char *makerName = Database::MakerNameForMakerCode(gameInfo.header.makerCode,true);
INFO("ROM developer: %s\n", ((gameInfo.header.makerCode == 0) && gameInfo.isHomebrew())?"Homebrew":makerName);
const char *makerName = Database::MakerNameForMakerCode(gameInfo.header.makerCode, true);
INFO("ROM developer: %s\n", ((gameInfo.header.makerCode == 0) && gameInfo.isHomebrew()) ? "Homebrew" : makerName);
//for homebrew, try auto-patching DLDI. should be benign if there is no DLDI or if it fails
if (gameInfo.isHomebrew())
{
//note: gameInfo.romdataForReader is safe here because we made sure to load the rom into memory for isHomebrew
if (slot1_GetCurrentType() == NDS_SLOT1_R4)
DLDI::tryPatch((void*)gameInfo.romdataForReader, gameInfo.romsize, 1);
else if (slot2_GetCurrentType() == NDS_SLOT2_CFLASH)
DLDI::tryPatch((void*)gameInfo.romdataForReader, gameInfo.romsize, 0);
}
}
int NDS_LoadROM(const char *filename, const char *physicalName, const char *logicalFilename)
{
lastRom.filename = filename;
lastRom.physicalName = physicalName ? physicalName : "";
lastRom.logicalFilename = logicalFilename ? logicalFilename : "";
int ret;
char buf[MAX_PATH];
if (filename == NULL)
return -1;
ret = rom_init_path(filename, physicalName, logicalFilename);
if (ret < 1)
return ret;
if (cheatSearch)
cheatSearch->close();
FCEUI_StopMovie();
if (!gameInfo.ValidateHeader())
{
ret = -1;
return ret;
}
LoadGameInfo();
buf[0] = gameInfo.header.gameCode[0];
buf[1] = gameInfo.header.gameCode[1];
@@ -769,16 +799,6 @@ int NDS_LoadROM(const char *filename, const char *physicalName, const char *logi
}
printf("\n");
//for homebrew, try auto-patching DLDI. should be benign if there is no DLDI or if it fails
if(gameInfo.isHomebrew())
{
//note: gameInfo.romdataForReader is safe here because we made sure to load the rom into memory for isHomebrew
if (slot1_GetCurrentType() == NDS_SLOT1_R4)
DLDI::tryPatch((void*)gameInfo.romdataForReader, gameInfo.romsize, 1);
else if (slot2_GetCurrentType() == NDS_SLOT2_CFLASH)
DLDI::tryPatch((void*)gameInfo.romdataForReader, gameInfo.romsize, 0);
}
if (cheats != NULL)
{
memset(buf, 0, MAX_PATH);
@@ -792,6 +812,20 @@ int NDS_LoadROM(const char *filename, const char *physicalName, const char *logi
return ret;
}
int NDS_LoadROM(u8* file, int fileSize)
{
gameInfo.loadROM(file, fileSize);
gameInfo.romType = ROM_NDS;
if (!gameInfo.ValidateHeader())
return -1;
// I'm not sure all this is necessary/wanted here.
LoadGameInfo();
NDS_Reset();
return 1;
}
void NDS_FreeROM(void)
{

View File

@@ -373,6 +373,8 @@ struct GameInfo
bool IsCode(const char* code) const;
bool loadROM(std::string fname, u32 type = ROM_NDS);
bool loadROM(u8* file, s32 fileSize);
bool loadROM(u32 type);
void closeROM();
u32 readROM(u32 pos);
bool ValidateHeader();
@@ -465,6 +467,7 @@ void NDS_suspendProcessingInput(bool suspend);
int NDS_LoadROM(const char *filename, const char* physicalFilename=0, const char* logicalFilename=0);
int NDS_LoadROM(u8* file, int fileSize);
void NDS_FreeROM(void);
void NDS_Reset();

View File

@@ -1,9 +1,11 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.24720.0
# Visual Studio 15
VisualStudioVersion = 15.0.28307.539
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DeSmuME", "DeSmuME.vcxproj", "{9F5F72A1-D3A5-4918-B460-E076B16D10A9}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DesHawk", "DeSmuME.vcxproj", "{9F5F72A1-D3A5-4918-B460-E076B16D10A9}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DeSmuME", "DesHawk.vcxproj", "{3350F0F2-408E-4DBC-A4F5-D4A7DA5E693F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -33,8 +35,27 @@ Global
{9F5F72A1-D3A5-4918-B460-E076B16D10A9}.Release|x64.Build.0 = Release|x64
{9F5F72A1-D3A5-4918-B460-E076B16D10A9}.Release|x86.ActiveCfg = Release|Win32
{9F5F72A1-D3A5-4918-B460-E076B16D10A9}.Release|x86.Build.0 = Release|Win32
{3350F0F2-408E-4DBC-A4F5-D4A7DA5E693F}.Debug|x64.ActiveCfg = Debug|x64
{3350F0F2-408E-4DBC-A4F5-D4A7DA5E693F}.Debug|x64.Build.0 = Debug|x64
{3350F0F2-408E-4DBC-A4F5-D4A7DA5E693F}.Debug|x86.ActiveCfg = Debug|Win32
{3350F0F2-408E-4DBC-A4F5-D4A7DA5E693F}.Debug|x86.Build.0 = Debug|Win32
{3350F0F2-408E-4DBC-A4F5-D4A7DA5E693F}.Dev+|x64.ActiveCfg = Dev+|x64
{3350F0F2-408E-4DBC-A4F5-D4A7DA5E693F}.Dev+|x64.Build.0 = Dev+|x64
{3350F0F2-408E-4DBC-A4F5-D4A7DA5E693F}.Dev+|x86.ActiveCfg = Dev+|Win32
{3350F0F2-408E-4DBC-A4F5-D4A7DA5E693F}.Dev+|x86.Build.0 = Dev+|Win32
{3350F0F2-408E-4DBC-A4F5-D4A7DA5E693F}.Release Fastbuild|x64.ActiveCfg = Release Fastbuild|x64
{3350F0F2-408E-4DBC-A4F5-D4A7DA5E693F}.Release Fastbuild|x64.Build.0 = Release Fastbuild|x64
{3350F0F2-408E-4DBC-A4F5-D4A7DA5E693F}.Release Fastbuild|x86.ActiveCfg = Release Fastbuild|Win32
{3350F0F2-408E-4DBC-A4F5-D4A7DA5E693F}.Release Fastbuild|x86.Build.0 = Release Fastbuild|Win32
{3350F0F2-408E-4DBC-A4F5-D4A7DA5E693F}.Release|x64.ActiveCfg = Release|x64
{3350F0F2-408E-4DBC-A4F5-D4A7DA5E693F}.Release|x64.Build.0 = Release|x64
{3350F0F2-408E-4DBC-A4F5-D4A7DA5E693F}.Release|x86.ActiveCfg = Release|Win32
{3350F0F2-408E-4DBC-A4F5-D4A7DA5E693F}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {09F8EE85-303A-49FE-ABD5-A445F623DDC8}
EndGlobalSection
EndGlobal

View File

@@ -35,7 +35,7 @@
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>DeSmuME</ProjectName>
<ProjectName>DesHawk</ProjectName>
<ProjectGuid>{9F5F72A1-D3A5-4918-B460-E076B16D10A9}</ProjectGuid>
<RootNamespace>DeSmuME</RootNamespace>
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
@@ -44,7 +44,7 @@
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(VisualStudioVersion)' != '16.0'" Label="TargetPlatform">
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>7.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<!-- desmume customization: set PlatformToolset to an uptodate choice for vs2015 and leave it to the default vs2010 toolset for vs2010 -->
@@ -58,6 +58,18 @@
<PropertyGroup Condition="'$(VisualStudioVersion)' == '14.0'" Label="Configuration">
<PlatformToolset>v140_xp</PlatformToolset>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ConfigurationType>DynamicLibrary</ConfigurationType>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Dev+|x64'">
<ConfigurationType>DynamicLibrary</ConfigurationType>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ConfigurationType>DynamicLibrary</ConfigurationType>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release Fastbuild|x64'">
<ConfigurationType>DynamicLibrary</ConfigurationType>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
@@ -67,6 +79,22 @@
<Import Project="desmume.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetExt>.dll</TargetExt>
<IntDir>$(SolutionDir).obj\DesHawk\$(NDS_VisualStudioName)-$(Platform)-$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Dev+|x64'">
<TargetExt>.dll</TargetExt>
<IntDir>$(SolutionDir).obj\DesHawk\$(NDS_VisualStudioName)-$(Platform)-$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<IntDir>$(SolutionDir).obj\DesHawk\$(NDS_VisualStudioName)-$(Platform)-$(Configuration)\</IntDir>
<TargetExt>.dll</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Fastbuild|x64'">
<IntDir>$(SolutionDir).obj\DesHawk\$(NDS_VisualStudioName)-$(Platform)-$(Configuration)\</IntDir>
<TargetExt>.dll</TargetExt>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Link>
<LargeAddressAware>true</LargeAddressAware>
@@ -87,6 +115,26 @@
<LargeAddressAware>true</LargeAddressAware>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Link>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Dev+|x64'">
<Link>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Link>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Fastbuild|x64'">
<Link>
<OutputFile>$(OutDir)$(TargetName)$(TargetExt)</OutputFile>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\addons\slot1comp_mc.cpp" />
<ClCompile Include="..\..\addons\slot1comp_protocol.cpp" />
@@ -294,6 +342,7 @@
<ClCompile Include="console.cpp" />
<ClCompile Include="CWindow.cpp" />
<ClCompile Include="ddraw.cpp" />
<ClCompile Include="DesHawkAPI.cpp" />
<ClCompile Include="display.cpp" />
<ClCompile Include="FEX_Interface.cpp" />
<ClCompile Include="File_Extractor\7z_C\7zAlloc.c" />

View File

@@ -930,6 +930,7 @@
<ClCompile Include="display.cpp">
<Filter>frontend\Windows</Filter>
</ClCompile>
<ClCompile Include="DesHawkAPI.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\utils\guid.h">

View File

@@ -0,0 +1,797 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" InitialTargets="UNDUPOBJ" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Dev+|Win32">
<Configuration>Dev+</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Dev+|x64">
<Configuration>Dev+</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release Fastbuild|Win32">
<Configuration>Release Fastbuild</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release Fastbuild|x64">
<Configuration>Release Fastbuild</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectName>DeSmuME</ProjectName>
<ProjectGuid>{3350F0F2-408E-4DBC-A4F5-D4A7DA5E693F}</ProjectGuid>
<RootNamespace>DeSmuME</RootNamespace>
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
</PropertyGroup>
<PropertyGroup Condition="'$(VisualStudioVersion)' == '16.0'" Label="TargetPlatform">
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(VisualStudioVersion)' != '16.0'" Label="TargetPlatform">
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<!-- desmume customization: set PlatformToolset to an uptodate choice for vs2015 and leave it to the default vs2010 toolset for vs2010 -->
<!-- NOTE: the location of this hack is important or else we break resource editing, intellisense, and ctrl+f7 in vs2010 either; or it doesnt work for vs2015. weird. -->
<PropertyGroup Condition="'$(VisualStudioVersion)' == '16.0'" Label="Configuration">
<PlatformToolset>v142</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(VisualStudioVersion)' == '15.0'" Label="Configuration">
<PlatformToolset>v141_xp</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(VisualStudioVersion)' == '14.0'" Label="Configuration">
<PlatformToolset>v140_xp</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="ExtensionSettings">
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.props" />
<Import Project="desmume.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Link>
<LargeAddressAware>true</LargeAddressAware>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Dev+|Win32'">
<Link>
<LargeAddressAware>true</LargeAddressAware>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Fastbuild|Win32'">
<Link>
<LargeAddressAware>true</LargeAddressAware>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Link>
<LargeAddressAware>true</LargeAddressAware>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\addons\slot1comp_mc.cpp" />
<ClCompile Include="..\..\addons\slot1comp_protocol.cpp" />
<ClCompile Include="..\..\addons\slot1comp_rom.cpp" />
<ClCompile Include="..\..\addons\slot1_retail_auto.cpp" />
<ClCompile Include="..\..\addons\slot1_retail_mcrom.cpp" />
<ClCompile Include="..\..\addons\slot1_retail_mcrom_debug.cpp" />
<ClCompile Include="..\..\addons\slot2_auto.cpp" />
<ClCompile Include="..\..\addons\slot2_passme.cpp" />
<ClCompile Include="..\..\addons\slot2_piano.cpp" />
<ClCompile Include="..\..\addons\slot1_none.cpp" />
<ClCompile Include="..\..\addons\slot1_r4.cpp" />
<ClCompile Include="..\..\addons\slot1_retail_nand.cpp" />
<ClCompile Include="..\..\addons\slot2_mpcf.cpp" />
<ClCompile Include="..\..\addons\slot2_paddle.cpp" />
<ClCompile Include="..\..\arm_instructions.cpp" />
<ClCompile Include="..\..\armcpu.cpp" />
<ClCompile Include="..\..\arm_jit.cpp" />
<ClCompile Include="..\..\bios.cpp" />
<ClCompile Include="..\..\cheatSystem.cpp" />
<ClCompile Include="..\..\commandline.cpp" />
<ClCompile Include="..\..\common.cpp" />
<ClCompile Include="..\..\cp15.cpp" />
<ClCompile Include="..\..\Database.cpp" />
<ClCompile Include="..\..\debug.cpp" />
<ClCompile Include="..\..\driver.cpp" />
<ClCompile Include="..\..\emufile.cpp" />
<ClCompile Include="..\..\encrypt.cpp" />
<ClCompile Include="..\..\FIFO.cpp" />
<ClCompile Include="..\..\filter\2xsai.cpp" />
<ClCompile Include="..\..\filter\bilinear.cpp" />
<ClCompile Include="..\..\filter\deposterize.cpp" />
<ClCompile Include="..\..\filter\epx.cpp" />
<ClCompile Include="..\..\filter\hq2x.cpp" />
<ClCompile Include="..\..\filter\hq4x.cpp" />
<ClCompile Include="..\..\filter\lq2x.cpp" />
<ClCompile Include="..\..\filter\scanline.cpp" />
<ClCompile Include="..\..\filter\xbrz.cpp" />
<ClCompile Include="..\..\firmware.cpp" />
<ClCompile Include="..\..\frontend\modules\ImageOut.cpp" />
<ClCompile Include="..\..\gfx3d.cpp" />
<ClCompile Include="..\..\GPU.cpp" />
<ClCompile Include="..\..\libretro-common\compat\compat_fnmatch.c" />
<ClCompile Include="..\..\libretro-common\compat\compat_getopt.c" />
<ClCompile Include="..\..\libretro-common\compat\compat_posix_string.c" />
<ClCompile Include="..\..\libretro-common\compat\compat_snprintf.c" />
<ClCompile Include="..\..\libretro-common\compat\compat_strcasestr.c" />
<ClCompile Include="..\..\libretro-common\compat\compat_strl.c" />
<ClCompile Include="..\..\libretro-common\encodings\encoding_utf.c" />
<ClCompile Include="..\..\libretro-common\features\features_cpu.c" />
<ClCompile Include="..\..\libretro-common\file\archive_file.c" />
<ClCompile Include="..\..\libretro-common\file\archive_file_zlib.c" />
<ClCompile Include="..\..\libretro-common\file\file_path.c" />
<ClCompile Include="..\..\libretro-common\file\nbio\nbio_stdio.c" />
<ClCompile Include="..\..\libretro-common\file\retro_dirent.c" />
<ClCompile Include="..\..\libretro-common\file\retro_stat.c" />
<ClCompile Include="..\..\libretro-common\formats\bmp\rbmp_encode.c" />
<ClCompile Include="..\..\libretro-common\formats\png\rpng.c" />
<ClCompile Include="..\..\libretro-common\formats\png\rpng_encode.c" />
<ClCompile Include="..\..\libretro-common\hash\rhash.c" />
<ClCompile Include="..\..\libretro-common\lists\dir_list.c" />
<ClCompile Include="..\..\libretro-common\lists\file_list.c" />
<ClCompile Include="..\..\libretro-common\lists\string_list.c" />
<ClCompile Include="..\..\libretro-common\rthreads\rsemaphore.c" />
<ClCompile Include="..\..\libretro-common\rthreads\rthreads.c" />
<ClCompile Include="..\..\libretro-common\streams\file_stream.c" />
<ClCompile Include="..\..\libretro-common\streams\memory_stream.c" />
<ClCompile Include="..\..\lua-engine.cpp" />
<ClCompile Include="..\..\matrix.cpp" />
<ClCompile Include="..\..\mc.cpp" />
<ClCompile Include="..\..\MMU.cpp" />
<ClCompile Include="..\..\movie.cpp" />
<ClCompile Include="..\..\NDSSystem.cpp" />
<ClCompile Include="..\..\OGLRender.cpp" />
<ClCompile Include="..\..\OGLRender_3_2.cpp" />
<ClCompile Include="..\..\path.cpp" />
<ClCompile Include="..\..\rasterize.cpp" />
<ClCompile Include="..\..\readwrite.cpp" />
<ClCompile Include="..\..\render3D.cpp" />
<ClCompile Include="..\..\ROMReader.cpp" />
<ClCompile Include="..\..\rtc.cpp" />
<ClCompile Include="..\..\saves.cpp" />
<ClCompile Include="..\..\slot1.cpp" />
<ClCompile Include="..\..\slot2.cpp" />
<ClCompile Include="..\..\SPU.cpp" />
<ClCompile Include="..\..\texcache.cpp" />
<ClCompile Include="..\..\thumb_instructions.cpp" />
<ClCompile Include="..\..\utils\advanscene.cpp" />
<ClCompile Include="..\..\utils\AsmJit\core\assembler.cpp" />
<ClCompile Include="..\..\utils\AsmJit\core\assert.cpp" />
<ClCompile Include="..\..\utils\AsmJit\core\buffer.cpp" />
<ClCompile Include="..\..\utils\AsmJit\core\compiler.cpp" />
<ClCompile Include="..\..\utils\AsmJit\core\compilercontext.cpp" />
<ClCompile Include="..\..\utils\AsmJit\core\compilerfunc.cpp" />
<ClCompile Include="..\..\utils\AsmJit\core\compileritem.cpp" />
<ClCompile Include="..\..\utils\AsmJit\core\context.cpp" />
<ClCompile Include="..\..\utils\AsmJit\core\cpuinfo.cpp" />
<ClCompile Include="..\..\utils\AsmJit\core\defs.cpp" />
<ClCompile Include="..\..\utils\AsmJit\core\func.cpp" />
<ClCompile Include="..\..\utils\AsmJit\core\logger.cpp" />
<ClCompile Include="..\..\utils\AsmJit\core\memorymanager.cpp" />
<ClCompile Include="..\..\utils\AsmJit\core\memorymarker.cpp" />
<ClCompile Include="..\..\utils\AsmJit\core\operand.cpp" />
<ClCompile Include="..\..\utils\AsmJit\core\stringbuilder.cpp" />
<ClCompile Include="..\..\utils\AsmJit\core\stringutil.cpp" />
<ClCompile Include="..\..\utils\AsmJit\core\virtualmemory.cpp" />
<ClCompile Include="..\..\utils\AsmJit\core\zonememory.cpp" />
<ClCompile Include="..\..\utils\AsmJit\x86\x86assembler.cpp" />
<ClCompile Include="..\..\utils\AsmJit\x86\x86compiler.cpp" />
<ClCompile Include="..\..\utils\AsmJit\x86\x86compilercontext.cpp" />
<ClCompile Include="..\..\utils\AsmJit\x86\x86compilerfunc.cpp" />
<ClCompile Include="..\..\utils\AsmJit\x86\x86compileritem.cpp" />
<ClCompile Include="..\..\utils\AsmJit\x86\x86cpuinfo.cpp" />
<ClCompile Include="..\..\utils\AsmJit\x86\x86defs.cpp" />
<ClCompile Include="..\..\utils\AsmJit\x86\x86func.cpp" />
<ClCompile Include="..\..\utils\AsmJit\x86\x86operand.cpp" />
<ClCompile Include="..\..\utils\AsmJit\x86\x86util.cpp" />
<ClCompile Include="..\..\utils\colorspacehandler\colorspacehandler.cpp" />
<ClCompile Include="..\..\utils\colorspacehandler\colorspacehandler_AltiVec.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Dev+|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Fastbuild|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Dev+|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Fastbuild|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\utils\colorspacehandler\colorspacehandler_AVX2.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Dev+|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Fastbuild|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Dev+|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Fastbuild|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\utils\colorspacehandler\colorspacehandler_SSE2.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Dev+|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Fastbuild|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Dev+|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Fastbuild|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\utils\datetime.cpp" />
<ClCompile Include="..\..\utils\dlditool.cpp" />
<ClCompile Include="..\..\utils\emufat.cpp" />
<ClCompile Include="..\..\utils\fsnitro.cpp" />
<ClCompile Include="..\..\utils\libfat\cache.cpp" />
<ClCompile Include="..\..\utils\libfat\directory.cpp" />
<ClCompile Include="..\..\utils\libfat\disc.cpp" />
<ClCompile Include="..\..\utils\libfat\fatdir.cpp" />
<ClCompile Include="..\..\utils\libfat\fatfile.cpp" />
<ClCompile Include="..\..\utils\libfat\filetime.cpp" />
<ClCompile Include="..\..\utils\libfat\file_allocation_table.cpp" />
<ClCompile Include="..\..\utils\libfat\libfat.cpp" />
<ClCompile Include="..\..\utils\libfat\libfat_public_api.cpp" />
<ClCompile Include="..\..\utils\libfat\lock.cpp" />
<ClCompile Include="..\..\utils\libfat\partition.cpp" />
<ClCompile Include="..\..\utils\tinyxml\tinystr.cpp" />
<ClCompile Include="..\..\utils\tinyxml\tinyxml.cpp" />
<ClCompile Include="..\..\utils\tinyxml\tinyxmlerror.cpp" />
<ClCompile Include="..\..\utils\tinyxml\tinyxmlparser.cpp" />
<ClCompile Include="..\..\utils\vfat.cpp" />
<ClCompile Include="..\..\version.cpp" />
<ClCompile Include="..\..\wifi.cpp" />
<ClCompile Include="..\..\addons\slot2_expMemory.cpp" />
<ClCompile Include="..\..\addons\slot2_gbagame.cpp" />
<ClCompile Include="..\..\addons\slot2_guitarGrip.cpp" />
<ClCompile Include="..\..\addons\slot2_none.cpp" />
<ClCompile Include="..\..\addons\slot2_rumblepak.cpp" />
<ClCompile Include="..\..\gdbstub\gdbstub.cpp" />
<ClCompile Include="..\..\utils\guid.cpp" />
<ClCompile Include="..\..\utils\task.cpp" />
<ClCompile Include="..\..\utils\xstring.cpp" />
<ClCompile Include="..\..\utils\decrypt\crc.cpp" />
<ClCompile Include="..\..\utils\decrypt\decrypt.cpp" />
<ClCompile Include="..\..\utils\decrypt\header.cpp" />
<ClCompile Include="..\..\metaspu\metaspu.cpp" />
<ClCompile Include="..\..\metaspu\SndOut.cpp" />
<ClCompile Include="..\..\metaspu\Timestretcher.cpp" />
<ClCompile Include="..\..\metaspu\win32\ConfigSoundtouch.cpp" />
<ClCompile Include="..\..\metaspu\SoundTouch\3dnow_win.cpp" />
<ClCompile Include="..\..\metaspu\SoundTouch\AAFilter.cpp" />
<ClCompile Include="..\..\metaspu\SoundTouch\cpu_detect_x86_win.cpp" />
<ClCompile Include="..\..\metaspu\SoundTouch\FIFOSampleBuffer.cpp" />
<ClCompile Include="..\..\metaspu\SoundTouch\FIRFilter.cpp" />
<ClCompile Include="..\..\metaspu\SoundTouch\mmx_optimized.cpp" />
<ClCompile Include="..\..\metaspu\SoundTouch\RateTransposer.cpp" />
<ClCompile Include="..\..\metaspu\SoundTouch\SoundTouch.cpp" />
<ClCompile Include="..\..\metaspu\SoundTouch\sse_optimized.cpp" />
<ClCompile Include="..\..\metaspu\SoundTouch\TDStretch.cpp" />
<ClCompile Include="..\..\metaspu\SoundTouch\WavFile.cpp" />
<ClCompile Include="..\modules\Disassembler.cpp" />
<ClCompile Include="..\modules\osd\agg\aggdraw.cpp" />
<ClCompile Include="..\modules\osd\agg\agg_osd.cpp" />
<ClCompile Include="AboutBox.cpp" />
<ClCompile Include="aviout.cpp" />
<ClCompile Include="cheatsWin.cpp" />
<ClCompile Include="colorctrl.cpp" />
<ClCompile Include="console.cpp" />
<ClCompile Include="CWindow.cpp" />
<ClCompile Include="ddraw.cpp" />
<ClCompile Include="display.cpp" />
<ClCompile Include="FEX_Interface.cpp" />
<ClCompile Include="File_Extractor\7z_C\7zAlloc.c" />
<ClCompile Include="File_Extractor\7z_C\7zBuf.c" />
<ClCompile Include="File_Extractor\7z_C\7zBuf2.c" />
<ClCompile Include="File_Extractor\7z_C\7zCrc.c" />
<ClCompile Include="File_Extractor\7z_C\7zCrcOpt.c" />
<ClCompile Include="File_Extractor\7z_C\7zDec.c" />
<ClCompile Include="File_Extractor\7z_C\7zDecode.c" />
<ClCompile Include="File_Extractor\7z_C\7zExtract.c" />
<ClCompile Include="File_Extractor\7z_C\7zFile.c" />
<ClCompile Include="File_Extractor\7z_C\7zIn.c" />
<ClCompile Include="File_Extractor\7z_C\7zStream.c" />
<ClCompile Include="File_Extractor\7z_C\Alloc.c" />
<ClCompile Include="File_Extractor\7z_C\Bcj2.c" />
<ClCompile Include="File_Extractor\7z_C\Bra.c" />
<ClCompile Include="File_Extractor\7z_C\Bra86.c" />
<ClCompile Include="File_Extractor\7z_C\BraIA64.c" />
<ClCompile Include="File_Extractor\7z_C\CpuArch.c" />
<ClCompile Include="File_Extractor\7z_C\Delta.c" />
<ClCompile Include="File_Extractor\7z_C\LzFind.c" />
<ClCompile Include="File_Extractor\7z_C\LzFindMt.c" />
<ClCompile Include="File_Extractor\7z_C\Lzma2Dec.c" />
<ClCompile Include="File_Extractor\7z_C\Lzma2Enc.c" />
<ClCompile Include="File_Extractor\7z_C\Lzma86Dec.c" />
<ClCompile Include="File_Extractor\7z_C\Lzma86Enc.c" />
<ClCompile Include="File_Extractor\7z_C\LzmaDec.c" />
<ClCompile Include="File_Extractor\7z_C\LzmaEnc.c" />
<ClCompile Include="File_Extractor\7z_C\LzmaLib.c" />
<ClCompile Include="File_Extractor\7z_C\MtCoder.c" />
<ClCompile Include="File_Extractor\7z_C\Ppmd7.c" />
<ClCompile Include="File_Extractor\7z_C\Ppmd7Dec.c" />
<ClCompile Include="File_Extractor\7z_C\Ppmd7Enc.c" />
<ClCompile Include="File_Extractor\7z_C\win32\Threads.c" />
<ClCompile Include="File_Extractor\fex\Binary_Extractor.cpp" />
<ClCompile Include="File_Extractor\fex\blargg_common.cpp" />
<ClCompile Include="File_Extractor\fex\blargg_errors.cpp" />
<ClCompile Include="File_Extractor\fex\Data_Reader.cpp" />
<ClCompile Include="File_Extractor\fex\fex.cpp" />
<ClCompile Include="File_Extractor\fex\File_Extractor.cpp" />
<ClCompile Include="File_Extractor\fex\Gzip_Extractor.cpp" />
<ClCompile Include="File_Extractor\fex\Gzip_Reader.cpp" />
<ClCompile Include="File_Extractor\fex\Rar_Extractor.cpp" />
<ClCompile Include="File_Extractor\fex\Zip7_Extractor.cpp" />
<ClCompile Include="File_Extractor\fex\Zip_Extractor.cpp" />
<ClCompile Include="File_Extractor\fex\Zlib_Inflater.cpp" />
<ClCompile Include="File_Extractor\unrar\archive.cpp" />
<ClCompile Include="File_Extractor\unrar\arcread.cpp" />
<ClCompile Include="File_Extractor\unrar\blake2s.cpp" />
<ClCompile Include="File_Extractor\unrar\blake2sp.cpp" />
<ClCompile Include="File_Extractor\unrar\blake2s_sse.cpp" />
<ClCompile Include="File_Extractor\unrar\coder.cpp" />
<ClCompile Include="File_Extractor\unrar\crc.cpp" />
<ClCompile Include="File_Extractor\unrar\encname.cpp" />
<ClCompile Include="File_Extractor\unrar\extract.cpp" />
<ClCompile Include="File_Extractor\unrar\getbits.cpp" />
<ClCompile Include="File_Extractor\unrar\hash.cpp" />
<ClCompile Include="File_Extractor\unrar\headers.cpp" />
<ClCompile Include="File_Extractor\unrar\model.cpp" />
<ClCompile Include="File_Extractor\unrar\pathfn.cpp" />
<ClCompile Include="File_Extractor\unrar\rarvm.cpp" />
<ClCompile Include="File_Extractor\unrar\rarvmtbl.cpp" />
<ClCompile Include="File_Extractor\unrar\rawread.cpp" />
<ClCompile Include="File_Extractor\unrar\secpassword.cpp" />
<ClCompile Include="File_Extractor\unrar\strfn.cpp" />
<ClCompile Include="File_Extractor\unrar\suballoc.cpp" />
<ClCompile Include="File_Extractor\unrar\timefn.cpp" />
<ClCompile Include="File_Extractor\unrar\unicode.cpp" />
<ClCompile Include="File_Extractor\unrar\unpack.cpp" />
<ClCompile Include="File_Extractor\unrar\unpack15.cpp" />
<ClCompile Include="File_Extractor\unrar\unpack20.cpp" />
<ClCompile Include="File_Extractor\unrar\unpack30.cpp" />
<ClCompile Include="File_Extractor\unrar\unpack50.cpp" />
<ClCompile Include="File_Extractor\unrar\unpack50frag.cpp" />
<ClCompile Include="File_Extractor\unrar\unpackinline.cpp" />
<ClCompile Include="File_Extractor\unrar\unrar.cpp" />
<ClCompile Include="File_Extractor\unrar\unrar_misc.cpp" />
<ClCompile Include="File_Extractor\unrar\unrar_open.cpp" />
<ClCompile Include="FirmConfig.cpp" />
<ClCompile Include="fsnitroView.cpp" />
<ClCompile Include="gbaslot_config.cpp" />
<ClCompile Include="hotkey.cpp" />
<ClCompile Include="importSave.cpp" />
<ClCompile Include="inputdx.cpp" />
<ClCompile Include="luaconsole.cpp" />
<ClCompile Include="main.cpp" />
<ClCompile Include="mic-win.cpp" />
<ClCompile Include="ogl.cpp" />
<ClCompile Include="ogl_display.cpp" />
<ClCompile Include="OpenArchive.cpp" />
<ClCompile Include="pathsettings.cpp" />
<ClCompile Include="recentroms.cpp" />
<ClCompile Include="replay.cpp" />
<ClCompile Include="snddx.cpp" />
<ClCompile Include="slot1_config.cpp" />
<ClCompile Include="sndxa2.cpp" />
<ClCompile Include="throttle.cpp" />
<ClCompile Include="winutil.cpp" />
<ClCompile Include="disView.cpp" />
<ClCompile Include="ginfo.cpp" />
<ClCompile Include="IORegView.cpp" />
<ClCompile Include="lightView.cpp" />
<ClCompile Include="mapView.cpp" />
<ClCompile Include="matrixView.cpp" />
<ClCompile Include="memView.cpp" />
<ClCompile Include="oamView.cpp" />
<ClCompile Include="palView.cpp" />
<ClCompile Include="ram_search.cpp" />
<ClCompile Include="ramwatch.cpp" />
<ClCompile Include="soundView.cpp" />
<ClCompile Include="tileView.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\addons\slot1comp_mc.h" />
<ClInclude Include="..\..\addons\slot1comp_protocol.h" />
<ClInclude Include="..\..\addons\slot1comp_rom.h" />
<ClInclude Include="..\..\Database.h" />
<ClInclude Include="..\..\filter\filter.h" />
<ClInclude Include="..\..\filter\xbrz.h" />
<ClInclude Include="..\..\gdbstub.h" />
<ClInclude Include="..\..\libretro-common\include\compat\getopt.h" />
<ClInclude Include="..\..\libretro-common\include\compat\msvc.h" />
<ClInclude Include="..\..\libretro-common\include\encodings\utf.h" />
<ClInclude Include="..\..\libretro-common\include\features\features_cpu.h" />
<ClInclude Include="..\..\libretro-common\include\formats\image.h" />
<ClInclude Include="..\..\libretro-common\include\formats\rbmp.h" />
<ClInclude Include="..\..\libretro-common\include\formats\rpng.h" />
<ClInclude Include="..\..\libretro-common\include\libretro.h" />
<ClInclude Include="..\..\libretro-common\include\rthreads\rthreads.h" />
<ClInclude Include="..\..\metaspu\SoundTouch\FIRFilter.h" />
<ClInclude Include="..\..\types.h" />
<ClInclude Include="..\..\utils\bits.h" />
<ClInclude Include="..\..\utils\colorspacehandler\colorspacehandler_AltiVec.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Dev+|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Fastbuild|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Dev+|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Fastbuild|x64'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="..\..\utils\colorspacehandler\colorspacehandler_AVX2.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Dev+|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Fastbuild|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Dev+|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Fastbuild|x64'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="..\..\utils\colorspacehandler\colorspacehandler_SSE2.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Dev+|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Fastbuild|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Dev+|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release Fastbuild|x64'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="..\..\version.h" />
<ClInclude Include="..\..\armcpu.h" />
<ClInclude Include="..\..\arm_jit.h" />
<ClInclude Include="..\..\bios.h" />
<ClInclude Include="..\..\cheatSystem.h" />
<ClInclude Include="..\..\commandline.h" />
<ClInclude Include="..\..\common.h" />
<ClInclude Include="..\..\cp15.h" />
<ClInclude Include="..\..\debug.h" />
<ClInclude Include="..\..\driver.h" />
<ClInclude Include="..\..\emufile.h" />
<ClInclude Include="..\..\encrypt.h" />
<ClInclude Include="..\..\FIFO.h" />
<ClInclude Include="..\..\firmware.h" />
<ClInclude Include="..\..\frontend\modules\ImageOut.h" />
<ClInclude Include="..\..\gfx3d.h" />
<ClInclude Include="..\..\GPU.h" />
<ClInclude Include="..\..\instructions.h" />
<ClInclude Include="..\..\instruction_attributes.h" />
<ClInclude Include="..\..\libretro-common\include\boolean.h" />
<ClInclude Include="..\..\libretro-common\include\retro_inline.h" />
<ClInclude Include="..\..\libretro-common\include\retro_miscellaneous.h" />
<ClInclude Include="..\..\lua-engine.h" />
<ClInclude Include="..\..\matrix.h" />
<ClInclude Include="..\..\mc.h" />
<ClInclude Include="..\..\mem.h" />
<ClInclude Include="..\..\mic.h" />
<ClInclude Include="..\..\MMU.h" />
<ClInclude Include="..\..\MMU_timing.h" />
<ClInclude Include="..\modules\osd\agg\agg2d.h" />
<ClInclude Include="..\modules\osd\agg\aggdraw.h" />
<ClInclude Include="..\modules\osd\agg\agg_osd.h" />
<ClInclude Include="..\..\movie.h" />
<ClInclude Include="..\..\NDSSystem.h" />
<ClInclude Include="..\..\OGLRender.h" />
<ClInclude Include="..\..\OGLRender_3_2.h" />
<ClInclude Include="..\..\path.h" />
<ClInclude Include="..\..\rasterize.h" />
<ClInclude Include="..\..\readwrite.h" />
<ClInclude Include="..\..\registers.h" />
<ClInclude Include="..\..\render3D.h" />
<ClInclude Include="..\..\ROMReader.h" />
<ClInclude Include="..\..\rtc.h" />
<ClInclude Include="..\..\saves.h" />
<ClInclude Include="..\..\slot1.h" />
<ClInclude Include="..\..\slot2.h" />
<ClInclude Include="..\..\SPU.h" />
<ClInclude Include="..\..\texcache.h" />
<ClInclude Include="..\..\utils\advanscene.h" />
<ClInclude Include="..\..\utils\AsmJit\asmjit.h" />
<ClInclude Include="..\..\utils\AsmJit\config.h" />
<ClInclude Include="..\..\utils\AsmJit\core.h" />
<ClInclude Include="..\..\utils\AsmJit\core\apibegin.h" />
<ClInclude Include="..\..\utils\AsmJit\core\apiend.h" />
<ClInclude Include="..\..\utils\AsmJit\core\assembler.h" />
<ClInclude Include="..\..\utils\AsmJit\core\assert.h" />
<ClInclude Include="..\..\utils\AsmJit\core\buffer.h" />
<ClInclude Include="..\..\utils\AsmJit\core\build.h" />
<ClInclude Include="..\..\utils\AsmJit\core\compiler.h" />
<ClInclude Include="..\..\utils\AsmJit\core\compilercontext.h" />
<ClInclude Include="..\..\utils\AsmJit\core\compilerfunc.h" />
<ClInclude Include="..\..\utils\AsmJit\core\compileritem.h" />
<ClInclude Include="..\..\utils\AsmJit\core\context.h" />
<ClInclude Include="..\..\utils\AsmJit\core\cpuinfo.h" />
<ClInclude Include="..\..\utils\AsmJit\core\defs.h" />
<ClInclude Include="..\..\utils\AsmJit\core\func.h" />
<ClInclude Include="..\..\utils\AsmJit\core\intutil.h" />
<ClInclude Include="..\..\utils\AsmJit\core\lock.h" />
<ClInclude Include="..\..\utils\AsmJit\core\logger.h" />
<ClInclude Include="..\..\utils\AsmJit\core\memorymanager.h" />
<ClInclude Include="..\..\utils\AsmJit\core\memorymarker.h" />
<ClInclude Include="..\..\utils\AsmJit\core\operand.h" />
<ClInclude Include="..\..\utils\AsmJit\core\podvector.h" />
<ClInclude Include="..\..\utils\AsmJit\core\stringbuilder.h" />
<ClInclude Include="..\..\utils\AsmJit\core\stringutil.h" />
<ClInclude Include="..\..\utils\AsmJit\core\virtualmemory.h" />
<ClInclude Include="..\..\utils\AsmJit\core\zonememory.h" />
<ClInclude Include="..\..\utils\AsmJit\x86.h" />
<ClInclude Include="..\..\utils\AsmJit\x86\x86assembler.h" />
<ClInclude Include="..\..\utils\AsmJit\x86\x86compiler.h" />
<ClInclude Include="..\..\utils\AsmJit\x86\x86compilercontext.h" />
<ClInclude Include="..\..\utils\AsmJit\x86\x86compilerfunc.h" />
<ClInclude Include="..\..\utils\AsmJit\x86\x86compileritem.h" />
<ClInclude Include="..\..\utils\AsmJit\x86\x86cpuinfo.h" />
<ClInclude Include="..\..\utils\AsmJit\x86\x86defs.h" />
<ClInclude Include="..\..\utils\AsmJit\x86\x86func.h" />
<ClInclude Include="..\..\utils\AsmJit\x86\x86operand.h" />
<ClInclude Include="..\..\utils\AsmJit\x86\x86util.h" />
<ClInclude Include="..\..\utils\colorspacehandler\colorspacehandler.h" />
<ClInclude Include="..\..\utils\datetime.h" />
<ClInclude Include="..\..\utils\emufat.h" />
<ClInclude Include="..\..\utils\emufat_types.h" />
<ClInclude Include="..\..\utils\fsnitro.h" />
<ClInclude Include="..\..\utils\libfat\bit_ops.h" />
<ClInclude Include="..\..\utils\libfat\cache.h" />
<ClInclude Include="..\..\utils\libfat\common.h" />
<ClInclude Include="..\..\utils\libfat\directory.h" />
<ClInclude Include="..\..\utils\libfat\disc.h" />
<ClInclude Include="..\..\utils\libfat\disc_io.h" />
<ClInclude Include="..\..\utils\libfat\fat.h" />
<ClInclude Include="..\..\utils\libfat\fatdir.h" />
<ClInclude Include="..\..\utils\libfat\fatfile.h" />
<ClInclude Include="..\..\utils\libfat\filetime.h" />
<ClInclude Include="..\..\utils\libfat\file_allocation_table.h" />
<ClInclude Include="..\..\utils\libfat\libfat_pc.h" />
<ClInclude Include="..\..\utils\libfat\libfat_public_api.h" />
<ClInclude Include="..\..\utils\libfat\lock.h" />
<ClInclude Include="..\..\utils\libfat\mem_allocate.h" />
<ClInclude Include="..\..\utils\libfat\partition.h" />
<ClInclude Include="..\..\utils\tinyxml\tinystr.h" />
<ClInclude Include="..\..\utils\tinyxml\tinyxml.h" />
<ClInclude Include="..\..\utils\vfat.h" />
<ClInclude Include="..\modules\Disassembler.h" />
<ClInclude Include="..\..\wifi.h" />
<ClInclude Include="..\..\utils\guid.h" />
<ClInclude Include="..\..\utils\task.h" />
<ClInclude Include="..\..\utils\decrypt\crc.h" />
<ClInclude Include="..\..\utils\decrypt\decrypt.h" />
<ClInclude Include="..\..\utils\decrypt\header.h" />
<ClInclude Include="..\..\metaspu\metaspu.h" />
<ClInclude Include="..\..\metaspu\SndOut.h" />
<ClInclude Include="..\..\metaspu\win32\Dialogs.h" />
<ClInclude Include="..\..\metaspu\SoundTouch\AAFilter.h" />
<ClInclude Include="..\..\metaspu\SoundTouch\BPMDetect.h" />
<ClInclude Include="..\..\metaspu\SoundTouch\cpu_detect.h" />
<ClInclude Include="..\..\metaspu\SoundTouch\FIFOSampleBuffer.h" />
<ClInclude Include="..\..\metaspu\SoundTouch\FIFOSamplePipe.h" />
<ClInclude Include="..\..\metaspu\SoundTouch\RateTransposer.h" />
<ClInclude Include="..\..\metaspu\SoundTouch\SoundTouch.h" />
<ClInclude Include="..\..\metaspu\SoundTouch\STTypes.h" />
<ClInclude Include="..\..\metaspu\SoundTouch\TDStretch.h" />
<ClInclude Include="..\..\metaspu\SoundTouch\WavFile.h" />
<ClInclude Include="AboutBox.h" />
<ClInclude Include="aviout.h" />
<ClInclude Include="cheatsWin.h" />
<ClInclude Include="colorctrl.h" />
<ClInclude Include="console.h" />
<ClInclude Include="CWindow.h" />
<ClInclude Include="ddraw.h" />
<ClInclude Include="display.h" />
<ClInclude Include="FEX_Interface.h" />
<ClInclude Include="File_Extractor\7z_C\7z.h" />
<ClInclude Include="File_Extractor\7z_C\7zAlloc.h" />
<ClInclude Include="File_Extractor\7z_C\7zBuf.h" />
<ClInclude Include="File_Extractor\7z_C\7zCrc.h" />
<ClInclude Include="File_Extractor\7z_C\7zDecode.h" />
<ClInclude Include="File_Extractor\7z_C\7zExtract.h" />
<ClInclude Include="File_Extractor\7z_C\7zFile.h" />
<ClInclude Include="File_Extractor\7z_C\7zIn.h" />
<ClInclude Include="File_Extractor\7z_C\7zTypes.h" />
<ClInclude Include="File_Extractor\7z_C\7zVersion.h" />
<ClInclude Include="File_Extractor\7z_C\Alloc.h" />
<ClInclude Include="File_Extractor\7z_C\Bcj2.h" />
<ClInclude Include="File_Extractor\7z_C\Bra.h" />
<ClInclude Include="File_Extractor\7z_C\CpuArch.h" />
<ClInclude Include="File_Extractor\7z_C\Delta.h" />
<ClInclude Include="File_Extractor\7z_C\LzFind.h" />
<ClInclude Include="File_Extractor\7z_C\LzFindMt.h" />
<ClInclude Include="File_Extractor\7z_C\LzHash.h" />
<ClInclude Include="File_Extractor\7z_C\Lzma2Dec.h" />
<ClInclude Include="File_Extractor\7z_C\Lzma2Enc.h" />
<ClInclude Include="File_Extractor\7z_C\Lzma86.h" />
<ClInclude Include="File_Extractor\7z_C\LzmaDec.h" />
<ClInclude Include="File_Extractor\7z_C\LzmaEnc.h" />
<ClInclude Include="File_Extractor\7z_C\LzmaLib.h" />
<ClInclude Include="File_Extractor\7z_C\LzmaTypes.h" />
<ClInclude Include="File_Extractor\7z_C\MtCoder.h" />
<ClInclude Include="File_Extractor\7z_C\Ppmd.h" />
<ClInclude Include="File_Extractor\7z_C\Ppmd7.h" />
<ClInclude Include="File_Extractor\7z_C\RotateDefs.h" />
<ClInclude Include="File_Extractor\7z_C\Threads.h" />
<ClInclude Include="File_Extractor\7z_C\Types.h" />
<ClInclude Include="File_Extractor\7z_C\win32\Threads.h" />
<ClInclude Include="File_Extractor\fex\Binary_Extractor.h" />
<ClInclude Include="File_Extractor\fex\blargg_common.h" />
<ClInclude Include="File_Extractor\fex\blargg_config.h" />
<ClInclude Include="File_Extractor\fex\blargg_endian.h" />
<ClInclude Include="File_Extractor\fex\blargg_errors.h" />
<ClInclude Include="File_Extractor\fex\blargg_source.h" />
<ClInclude Include="File_Extractor\fex\Data_Reader.h" />
<ClInclude Include="File_Extractor\fex\fex.h" />
<ClInclude Include="File_Extractor\fex\File_Extractor.h" />
<ClInclude Include="File_Extractor\fex\Gzip_Extractor.h" />
<ClInclude Include="File_Extractor\fex\Gzip_Reader.h" />
<ClInclude Include="File_Extractor\fex\Rar_Extractor.h" />
<ClInclude Include="File_Extractor\fex\Zip7_Extractor.h" />
<ClInclude Include="File_Extractor\fex\Zip_Extractor.h" />
<ClInclude Include="File_Extractor\fex\Zlib_Inflater.h" />
<ClInclude Include="File_Extractor\unrar\archive.hpp" />
<ClInclude Include="File_Extractor\unrar\array.hpp" />
<ClInclude Include="File_Extractor\unrar\blake2s.hpp" />
<ClInclude Include="File_Extractor\unrar\coder.hpp" />
<ClInclude Include="File_Extractor\unrar\compress.hpp" />
<ClInclude Include="File_Extractor\unrar\encname.hpp" />
<ClInclude Include="File_Extractor\unrar\getbits.hpp" />
<ClInclude Include="File_Extractor\unrar\hash.hpp" />
<ClInclude Include="File_Extractor\unrar\headers.hpp" />
<ClInclude Include="File_Extractor\unrar\headers5.hpp" />
<ClInclude Include="File_Extractor\unrar\model.hpp" />
<ClInclude Include="File_Extractor\unrar\rar.hpp" />
<ClInclude Include="File_Extractor\unrar\rarvm.hpp" />
<ClInclude Include="File_Extractor\unrar\rawread.hpp" />
<ClInclude Include="File_Extractor\unrar\strfn.hpp" />
<ClInclude Include="File_Extractor\unrar\suballoc.hpp" />
<ClInclude Include="File_Extractor\unrar\timefn.hpp" />
<ClInclude Include="File_Extractor\unrar\unicode.hpp" />
<ClInclude Include="File_Extractor\unrar\unpack.hpp" />
<ClInclude Include="File_Extractor\unrar\unrar.h" />
<ClInclude Include="FirmConfig.h" />
<ClInclude Include="fsnitroView.h" />
<ClInclude Include="gbaslot_config.h" />
<ClInclude Include="hotkey.h" />
<ClInclude Include="importSave.h" />
<ClInclude Include="inputdx.h" />
<ClInclude Include="main.h" />
<ClInclude Include="ogl_display.h" />
<ClInclude Include="OpenArchive.h" />
<ClInclude Include="pathsettings.h" />
<ClInclude Include="recentroms.h" />
<ClInclude Include="replay.h" />
<ClInclude Include="resource.h" />
<ClInclude Include="snddx.h" />
<ClInclude Include="slot1_config.h" />
<ClInclude Include="sndxa2.h" />
<ClInclude Include="throttle.h" />
<ClInclude Include="winpcap.h" />
<ClInclude Include="winutil.h" />
<ClInclude Include="disView.h" />
<ClInclude Include="ginfo.h" />
<ClInclude Include="IORegView.h" />
<ClInclude Include="lightView.h" />
<ClInclude Include="mapView.h" />
<ClInclude Include="matrixView.h" />
<ClInclude Include="memView.h" />
<ClInclude Include="oamView.h" />
<ClInclude Include="palView.h" />
<ClInclude Include="ram_search.h" />
<ClInclude Include="ramwatch.h" />
<ClInclude Include="soundView.h" />
<ClInclude Include="tileView.h" />
</ItemGroup>
<ItemGroup>
<None Include="..\instruction_tabdef.inc" />
<None Include="..\modules\osd\agg\agg2d.inl" />
<None Include="..\thumb_tabdef.inc" />
<None Include="..\..\utils\AsmJit\COPYING.txt" />
<None Include="bitmap1.bmp" />
<None Include="bitmaps\FileBinary.ico" />
<None Include="bitmaps\FolderClosed.ico" />
<None Include="bitmaps\FolderOpen.ico" />
<None Include="bitmaps\IDB_FRAMEADVANCE.bmp" />
<None Include="bitmaps\IDB_OPEN.bmp" />
<None Include="bitmaps\IDB_PAUSE.bmp" />
<None Include="bitmaps\IDB_PLAY.bmp" />
<None Include="bitmaps\IDB_RESET.bmp" />
<None Include="bitmaps\IDB_ROTATECCW.bmp" />
<None Include="bitmaps\IDB_ROTATECW.bmp" />
<None Include="bitmaps\IDB_STOP.bmp" />
<None Include="DeSmuME.ico" />
<CustomBuild Include="directx\directx.7z">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">call un7z_and_touch.bat directx\directx.7z .libs\directx*
</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">7z.exe;un7z_and_touch.bat;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.libs\directx.tag;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">call un7z_and_touch.bat directx\directx.7z .libs\directx*
</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">7z.exe;un7z_and_touch.bat;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.libs\directx.tag;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Dev+|Win32'">call un7z_and_touch.bat directx\directx.7z .libs\directx*
</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Dev+|Win32'">7z.exe;un7z_and_touch.bat;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Dev+|Win32'">.libs\directx.tag;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">call un7z_and_touch.bat directx\directx.7z .libs\directx*
</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Release Fastbuild|Win32'">call un7z_and_touch.bat directx\directx.7z .libs\directx*
</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">7z.exe;un7z_and_touch.bat;%(AdditionalInputs)</AdditionalInputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release Fastbuild|Win32'">7z.exe;un7z_and_touch.bat;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.libs\directx.tag;%(Outputs)</Outputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release Fastbuild|Win32'">.libs\directx.tag;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">call un7z_and_touch.bat directx\directx.7z .libs\directx*
</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Release Fastbuild|x64'">call un7z_and_touch.bat directx\directx.7z .libs\directx*
</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">7z.exe;un7z_and_touch.bat;%(AdditionalInputs)</AdditionalInputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release Fastbuild|x64'">7z.exe;un7z_and_touch.bat;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.libs\directx.tag;%(Outputs)</Outputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release Fastbuild|x64'">.libs\directx.tag;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="lua\lua.7z">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">call un7z_and_touch.bat lua\lua.7z .libs\win32\lua* .libs\x64\lua* .libs\lua.tag</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">7z.exe;un7z_and_touch.bat</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.libs\lua.tag;</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">call un7z_and_touch.bat lua\lua.7z .libs\win32\lua* .libs\x64\lua* .libs\lua.tag</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">7z.exe;un7z_and_touch.bat</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.libs\lua.tag;</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Dev+|Win32'">call un7z_and_touch.bat lua\lua.7z .libs\win32\lua* .libs\x64\lua* .libs\lua.tag</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Dev+|Win32'">7z.exe;un7z_and_touch.bat</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Dev+|Win32'">.libs\lua.tag;</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">call un7z_and_touch.bat lua\lua.7z .libs\win32\lua* .libs\x64\lua* .libs\lua.tag</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Release Fastbuild|Win32'">call un7z_and_touch.bat lua\lua.7z .libs\win32\lua* .libs\x64\lua* .libs\lua.tag</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">7z.exe;un7z_and_touch.bat</AdditionalInputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release Fastbuild|Win32'">7z.exe;un7z_and_touch.bat</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.libs\lua.tag;</Outputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release Fastbuild|Win32'">.libs\lua.tag;</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">call un7z_and_touch.bat lua\lua.7z .libs\win32\lua* .libs\x64\lua* .libs\lua.tag</Command>
<Command Condition="'$(Configuration)|$(Platform)'=='Release Fastbuild|x64'">call un7z_and_touch.bat lua\lua.7z .libs\win32\lua* .libs\x64\lua* .libs\lua.tag</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">7z.exe;un7z_and_touch.bat</AdditionalInputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release Fastbuild|x64'">7z.exe;un7z_and_touch.bat</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.libs\lua.tag;</Outputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release Fastbuild|x64'">.libs\lua.tag;</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Dev+|x64'">call un7z_and_touch.bat lua\lua.7z .libs\win32\lua* .libs\x64\lua* .libs\lua.tag</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Dev+|x64'">.libs\lua.tag;</Outputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Dev+|x64'">7z.exe;un7z_and_touch.bat</AdditionalInputs>
</CustomBuild>
<None Include="File_Extractor\7z_C\7zC.txt" />
<None Include="File_Extractor\7z_C\changes.txt" />
<None Include="File_Extractor\7z_C\lzma.txt" />
<None Include="File_Extractor\7z_C\readme.txt" />
<None Include="File_Extractor\unrar\acknow.txt" />
<None Include="File_Extractor\unrar\changes.txt" />
<None Include="File_Extractor\unrar\license.txt" />
<None Include="File_Extractor\unrar\readme.txt" />
<None Include="File_Extractor\unrar\technote.txt" />
<None Include="File_Extractor\unrar\whatsnew.txt" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="resources.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.targets" />
</ImportGroup>
<ProjectExtensions>
<VisualStudio>
<UserProperties RESOURCE_FILE="resources.rc" />
</VisualStudio>
</ProjectExtensions>
</Project>

View File

@@ -0,0 +1,106 @@
/*
Copyright (C) 2006 Theo Berkau
Copyright (C) 2006-2019 DeSmuME team
This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This file is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with the this software. If not, see <http://www.gnu.org/licenses/>.
*/
#define DLL extern "C" __declspec(dllexport)
// TOOD: The "main" files (and others) should probably be excluded from this project and the relevant code copied/refactored.
#include "main.h"
// emulator core
#include "NDSSystem.h"
#include "SPU.h"
#include "slot1.h"
#include "slot2.h"
#include "movie.h"
DLL void Init_NDS()
{
InitializeCriticalSection(&win_execute_sync);
CommonSettings.num_cores = 1; // is this necessary?
Desmume_InitOnce();
NDS_Init();
paused = FALSE; // is this necessary?
execute = TRUE;
SPU_Pause(0);
CommonSettings.use_jit = true;
CommonSettings.jit_max_block_size = 100;
slot1_Init();
slot2_Init();
slot2_Change(NDS_SLOT2_NONE);
cur3DCore = GPU3D_SWRAST;
GPU->Change3DRendererByID(GPU3D_SWRAST);
// sound
EnterCriticalSection(&win_execute_sync);
int spu_ret = SPU_ChangeSoundCore(SNDCORE_DUMMY, DESMUME_SAMPLE_RATE * 8 / 60);
LeaveCriticalSection(&win_execute_sync);
SPU_SetVolume(100);
}
DLL void DeInit_NDS()
{
NDS_DeInit();
}
DLL int GetFrameCount()
{
return currFrameCounter;
}
DLL void ResetFrameCounters()
{
currFrameCounter = 0;
}
DLL bool LoadROM(u8* file, int fileSize)
{
return (NDS_LoadROM(file, fileSize) > 0);
}
DLL void SetInput(u16 buttons, u8 touchX, u8 touchY)
{
NDS_setPad(buttons & 0x0002, buttons & 0x0001, buttons & 0x0008, buttons & 0x0004,
buttons & 0x0800, buttons & 0x0400, buttons & 0x0020, buttons & 0x0010,
buttons & 0x0080, buttons & 0x0040, buttons & 0x0100, buttons & 0x0200,
buttons & 0x1000, buttons & 0x2000);
if (buttons & 0x4000)
NDS_setTouchPos(touchX, touchY);
else
NDS_releaseTouch();
}
DLL void FrameAdvance()
{
NDS_beginProcessingInput();
NDS_endProcessingInput();
NDS_exec<false>();
SPU_Emulate_user();
}
u16* VideoBuffer16bit()
{
return (u16*)GPU->GetDisplayInfo().masterNativeBuffer;
}
DLL void VideoBuffer32bit(s32* dst)
{
u16* v = VideoBuffer16bit();
ColorspaceConvertBuffer555To8888Opaque<true, false>(v, (u32*)dst, 256 * 192 * 2);
}