parent
65af9c2df5
commit
822cf3d289
|
@ -19,7 +19,7 @@ libdesmume_a_SOURCES = \
|
|||
common.cpp common.h \
|
||||
debug.cpp debug.h \
|
||||
Disassembler.cpp Disassembler.h \
|
||||
emufile.h emufile.cpp emufile_types.h FIFO.cpp FIFO.h \
|
||||
emufile.h emufile.cpp emufile_types.h encrypt.h encrypt.cpp FIFO.cpp FIFO.h \
|
||||
firmware.cpp firmware.h GPU.cpp GPU.h \
|
||||
fs.h \
|
||||
GPU_osd.h \
|
||||
|
|
|
@ -0,0 +1,111 @@
|
|||
/*
|
||||
Copyright (C) 2009-2013 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/>.
|
||||
*/
|
||||
|
||||
#include "encrypt.h"
|
||||
#include "MMU.h"
|
||||
|
||||
//================================================================================== KEY1
|
||||
#define bswap32(val) (((val & 0x000000FF) << 24) | ((val & 0x0000FF00) << 8) | ((val & 0x00FF0000) >> 8) | ((val & 0xFF000000) >> 24))
|
||||
#define DWNUM(i) ((i) >> 2)
|
||||
|
||||
void _KEY1::init(u32 idcode, u8 level, u8 modulo)
|
||||
{
|
||||
memcpy(keyBuf, keyBufPtr, 0x1048);
|
||||
keyCode[0] = idcode;
|
||||
keyCode[1] = idcode >> 1;
|
||||
keyCode[2] = idcode << 1;
|
||||
if (level >= 1) // first apply (always)
|
||||
applyKeycode(modulo);
|
||||
if (level >= 2) // second apply (optional)
|
||||
applyKeycode(modulo);
|
||||
keyCode[1] <<= 1;
|
||||
keyCode[2] >>= 1;
|
||||
if (level >= 3) // third apply (optional)
|
||||
applyKeycode(modulo);
|
||||
|
||||
printf("keycode1: %08X%08X%08X\n", keyCode[2], keyCode[1], keyCode[0]);
|
||||
}
|
||||
|
||||
void _KEY1::applyKeycode(u8 modulo)
|
||||
{
|
||||
encrypt(&keyCode[1]);
|
||||
encrypt(&keyCode[0]);
|
||||
|
||||
u32 scratch[2] = {0};
|
||||
|
||||
for (u32 i = 0; i <= 0x44; i += 4) // xor with reversed byte-order (bswap)
|
||||
keyBuf[DWNUM(i)] ^= bswap32(keyCode[DWNUM(i % modulo)]);
|
||||
|
||||
for (u32 i = 0; i <= 0x1040; i += 8)
|
||||
{
|
||||
encrypt(scratch); // encrypt S (64bit) by keybuf
|
||||
keyBuf[DWNUM(i)] = scratch[1]; // write S to keybuf (first upper 32bit)
|
||||
keyBuf[DWNUM(i+4)] = scratch[0]; // write S to keybuf (then lower 32bit)
|
||||
}
|
||||
}
|
||||
|
||||
void _KEY1::decrypt(u32 *ptr)
|
||||
{
|
||||
u32 y = ptr[0];
|
||||
u32 x = ptr[1];
|
||||
|
||||
for (u32 i = 0x11; i >= 0x02; i--)
|
||||
{
|
||||
u32 z = keyBuf[i] ^ x;
|
||||
x = keyBuf[DWNUM(0x048 + (((z >> 24) & 0xFF) << 2))];
|
||||
x = keyBuf[DWNUM(0x448 + (((z >> 16) & 0xFF) << 2))] + x;
|
||||
x = keyBuf[DWNUM(0x848 + (((z >> 8) & 0xFF) << 2))] ^ x;
|
||||
x = keyBuf[DWNUM(0xC48 + (((z >> 0) & 0xFF) << 2))] + x;
|
||||
x = y ^ x;
|
||||
y = z;
|
||||
}
|
||||
ptr[0] = x ^ keyBuf[DWNUM(0x04)];
|
||||
ptr[1] = y ^ keyBuf[DWNUM(0x00)];
|
||||
}
|
||||
|
||||
void _KEY1::encrypt(u32 *ptr)
|
||||
{
|
||||
u32 y = ptr[0];
|
||||
u32 x = ptr[1];
|
||||
|
||||
for (u32 i = 0x00; i <= 0x0F; i++)
|
||||
{
|
||||
u32 z = keyBuf[i] ^ x;
|
||||
x = keyBuf[DWNUM(0x048 + (((z >> 24) & 0xFF) << 2))];
|
||||
x = keyBuf[DWNUM(0x448 + (((z >> 16) & 0xFF) << 2))] + x;
|
||||
x = keyBuf[DWNUM(0x848 + (((z >> 8) & 0xFF) << 2))] ^ x;
|
||||
x = keyBuf[DWNUM(0xC48 + (((z >> 0) & 0xFF) << 2))] + x;
|
||||
x = y ^ x;
|
||||
y = z;
|
||||
}
|
||||
|
||||
ptr[0] = x ^ keyBuf[DWNUM(0x40)];
|
||||
ptr[1] = y ^ keyBuf[DWNUM(0x44)];
|
||||
}
|
||||
#undef DWNUM
|
||||
#undef bswap32
|
||||
|
||||
//================================================================================== KEY2
|
||||
void _KEY2::applySeed(u8 PROCNUM)
|
||||
{
|
||||
u64 tmp = (MMU_read8(PROCNUM, REG_ENCSEED0H) & 0xFF);
|
||||
seed0 = MMU_read32(PROCNUM, REG_ENCSEED0L) | (tmp << 32);
|
||||
tmp = (MMU_read8(PROCNUM, REG_ENCSEED1H) & 0xFF);
|
||||
seed1 = MMU_read32(PROCNUM, REG_ENCSEED1L) | (tmp << 32);
|
||||
printf("ARM%c: set KEY2 seed0 to %010llX\n", PROCNUM?'7':'9', seed0);
|
||||
printf("ARM%c: set KEY2 seed1 to %010llX\n", PROCNUM?'7':'9', seed1);
|
||||
}
|
|
@ -0,0 +1,64 @@
|
|||
/*
|
||||
Copyright (C) 2009-2013 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/>.
|
||||
*/
|
||||
|
||||
#ifndef _ENCRYPT_H_
|
||||
#define _ENCRYPT_H_
|
||||
#include "types.h"
|
||||
|
||||
struct _KEY1
|
||||
{
|
||||
_KEY1(u8 *keyBufPtr)
|
||||
{
|
||||
if (keyBuf) delete keyBuf;
|
||||
keyBuf = new u32 [0x1048 / sizeof(u32)];
|
||||
memset(keyBuf, 0x00, 0x1048);
|
||||
memset(&keyCode[0], 0, sizeof(keyCode));
|
||||
this->keyBufPtr = keyBufPtr;
|
||||
}
|
||||
|
||||
~_KEY1()
|
||||
{
|
||||
if (keyBuf)
|
||||
{
|
||||
delete keyBuf;
|
||||
keyBuf = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
u32 *keyBuf;
|
||||
u32 keyCode[3];
|
||||
u8 *keyBufPtr;
|
||||
|
||||
void init(u32 idcode, u8 level, u8 modulo);
|
||||
void applyKeycode(u8 modulo);
|
||||
void decrypt(u32 *ptr);
|
||||
void encrypt(u32 *ptr);
|
||||
};
|
||||
|
||||
struct _KEY2
|
||||
{
|
||||
_KEY2() : seed0(0x58C56DE0E8U),
|
||||
seed1(0x5C879B9B05U)
|
||||
{}
|
||||
|
||||
u64 seed0;
|
||||
u64 seed1;
|
||||
|
||||
void applySeed(u8 PROCNUM);
|
||||
};
|
||||
|
||||
#endif
|
|
@ -18,101 +18,9 @@
|
|||
#include "firmware.h"
|
||||
#include "NDSSystem.h"
|
||||
#include "path.h"
|
||||
#include "encrypt.h"
|
||||
|
||||
#define DWNUM(i) ((i) >> 2)
|
||||
|
||||
bool CFIRMWARE::getKeyBuf()
|
||||
{
|
||||
FILE *file = fopen(CommonSettings.ARM7BIOS, "rb");
|
||||
if (!file) return false;
|
||||
|
||||
fseek(file, 0x30, SEEK_SET);
|
||||
size_t res = fread(keyBuf, 4, 0x412, file);
|
||||
fclose(file);
|
||||
return (res == 0x412);
|
||||
}
|
||||
|
||||
void CFIRMWARE::crypt64BitUp(u32 *ptr)
|
||||
{
|
||||
u32 Y = ptr[0];
|
||||
u32 X = ptr[1];
|
||||
|
||||
for(u32 i = 0x00; i <= 0x0F; i++)
|
||||
{
|
||||
u32 Z = (keyBuf[i] ^ X);
|
||||
X = keyBuf[DWNUM(0x048 + (((Z >> 24) & 0xFF) << 2))];
|
||||
X = (keyBuf[DWNUM(0x448 + (((Z >> 16) & 0xFF) << 2))] + X);
|
||||
X = (keyBuf[DWNUM(0x848 + (((Z >> 8) & 0xFF) << 2))] ^ X);
|
||||
X = (keyBuf[DWNUM(0xC48 + ((Z & 0xFF) << 2))] + X);
|
||||
X = (Y ^ X);
|
||||
Y = Z;
|
||||
}
|
||||
|
||||
ptr[0] = (X ^ keyBuf[DWNUM(0x40)]);
|
||||
ptr[1] = (Y ^ keyBuf[DWNUM(0x44)]);
|
||||
}
|
||||
|
||||
void CFIRMWARE::crypt64BitDown(u32 *ptr)
|
||||
{
|
||||
u32 Y = ptr[0];
|
||||
u32 X = ptr[1];
|
||||
|
||||
for(u32 i = 0x11; i >= 0x02; i--)
|
||||
{
|
||||
u32 Z = (keyBuf[i] ^ X);
|
||||
X = keyBuf[DWNUM(0x048 + (((Z >> 24) & 0xFF) << 2))];
|
||||
X = (keyBuf[DWNUM(0x448 + (((Z >> 16) & 0xFF) << 2))] + X);
|
||||
X = (keyBuf[DWNUM(0x848 + (((Z >> 8) & 0xFF) << 2))] ^ X);
|
||||
X = (keyBuf[DWNUM(0xC48 + ((Z & 0xFF) << 2))] + X);
|
||||
X = (Y ^ X);
|
||||
Y = Z;
|
||||
}
|
||||
|
||||
ptr[0] = (X ^ keyBuf[DWNUM(0x04)]);
|
||||
ptr[1] = (Y ^ keyBuf[DWNUM(0x00)]);
|
||||
}
|
||||
|
||||
#define bswap32(val) (((val & 0x000000FF) << 24) | ((val & 0x0000FF00) << 8) | ((val & 0x00FF0000) >> 8) | ((val & 0xFF000000) >> 24))
|
||||
void CFIRMWARE::applyKeycode(u32 modulo)
|
||||
{
|
||||
crypt64BitUp(&keyCode[1]);
|
||||
crypt64BitUp(&keyCode[0]);
|
||||
|
||||
u32 scratch[2] = {0x00000000, 0x00000000};
|
||||
|
||||
for(u32 i = 0; i <= 0x44; i += 4)
|
||||
{
|
||||
keyBuf[DWNUM(i)] = (keyBuf[DWNUM(i)] ^ bswap32(keyCode[DWNUM(i % modulo)]));
|
||||
}
|
||||
|
||||
for(u32 i = 0; i <= 0x1040; i += 8)
|
||||
{
|
||||
crypt64BitUp(scratch);
|
||||
keyBuf[DWNUM(i)] = scratch[1];
|
||||
keyBuf[DWNUM(i+4)] = scratch[0];
|
||||
}
|
||||
}
|
||||
#undef bswap32
|
||||
|
||||
bool CFIRMWARE::initKeycode(u32 idCode, int level, u32 modulo)
|
||||
{
|
||||
if(getKeyBuf() == FALSE)
|
||||
return FALSE;
|
||||
|
||||
keyCode[0] = idCode;
|
||||
keyCode[1] = (idCode >> 1);
|
||||
keyCode[2] = (idCode << 1);
|
||||
|
||||
if(level >= 1) applyKeycode(modulo);
|
||||
if(level >= 2) applyKeycode(modulo);
|
||||
|
||||
keyCode[1] <<= 1;
|
||||
keyCode[2] >>= 1;
|
||||
|
||||
if(level >= 3) applyKeycode(modulo);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
static _KEY1 enc(&MMU.ARM7_BIOS[0x0030]);
|
||||
|
||||
u16 CFIRMWARE::getBootCodeCRC16()
|
||||
{
|
||||
|
@ -164,7 +72,7 @@ u32 CFIRMWARE::decrypt(const u8 *in, u8* &out)
|
|||
u16 data = 0;
|
||||
|
||||
memcpy(curBlock, in, 8);
|
||||
crypt64BitDown(curBlock);
|
||||
enc.decrypt(curBlock);
|
||||
blockSize = (curBlock[0] >> 8);
|
||||
|
||||
if (blockSize == 0) return (0);
|
||||
|
@ -181,7 +89,7 @@ u32 CFIRMWARE::decrypt(const u8 *in, u8* &out)
|
|||
if((xIn % 8) == 0)
|
||||
{
|
||||
memcpy(curBlock, in + xIn, 8);
|
||||
crypt64BitDown(curBlock);
|
||||
enc.decrypt(curBlock);
|
||||
}
|
||||
|
||||
for(i = 0; i < 8; i++)
|
||||
|
@ -193,14 +101,14 @@ u32 CFIRMWARE::decrypt(const u8 *in, u8* &out)
|
|||
if((xIn % 8) == 0)
|
||||
{
|
||||
memcpy(curBlock, in + xIn, 8);
|
||||
crypt64BitDown(curBlock);
|
||||
enc.decrypt(curBlock);
|
||||
}
|
||||
data |= T1ReadByte((u8*)curBlock, (xIn % 8));
|
||||
xIn++;
|
||||
if((xIn % 8) == 0)
|
||||
{
|
||||
memcpy(curBlock, in + xIn, 8);
|
||||
crypt64BitDown(curBlock);
|
||||
enc.decrypt(curBlock);
|
||||
}
|
||||
|
||||
len = (data >> 12) + 3;
|
||||
|
@ -225,7 +133,7 @@ u32 CFIRMWARE::decrypt(const u8 *in, u8* &out)
|
|||
if((xIn % 8) == 0)
|
||||
{
|
||||
memcpy(curBlock, in + xIn, 8);
|
||||
crypt64BitDown(curBlock);
|
||||
enc.decrypt(curBlock);
|
||||
}
|
||||
|
||||
xLen--;
|
||||
|
@ -383,6 +291,15 @@ bool CFIRMWARE::load()
|
|||
return false;
|
||||
}
|
||||
|
||||
#ifdef _NEW_BOOT
|
||||
if (CommonSettings.BootFromFirmware)
|
||||
{
|
||||
memcpy(MMU.fw.data, data, size);
|
||||
MMU.fw.size = size;
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
shift1 = ((header.shift_amounts >> 0) & 0x07);
|
||||
shift2 = ((header.shift_amounts >> 3) & 0x07);
|
||||
shift3 = ((header.shift_amounts >> 6) & 0x07);
|
||||
|
@ -400,15 +317,10 @@ bool CFIRMWARE::load()
|
|||
ARM9bootAddr = part1ram;
|
||||
ARM7bootAddr = part2ram;
|
||||
|
||||
if(initKeycode(header.fw_identifier, 1, 0xC) == FALSE)
|
||||
{
|
||||
delete [] data;
|
||||
fclose(fp);
|
||||
return false;
|
||||
}
|
||||
enc.init(header.fw_identifier, 1, 0xC);
|
||||
|
||||
#if 0
|
||||
crypt64BitDown((u32*)&data[0x18]);
|
||||
enc.applyKeycode((u32*)&data[0x18]);
|
||||
#else
|
||||
// fix touch coords
|
||||
data[0x18] = 0x00;
|
||||
|
@ -422,12 +334,7 @@ bool CFIRMWARE::load()
|
|||
data[0x1F] = 0x00;
|
||||
#endif
|
||||
|
||||
if(initKeycode(header.fw_identifier, 2, 0xC) == FALSE)
|
||||
{
|
||||
delete [] data;
|
||||
fclose(fp);
|
||||
return false;
|
||||
}
|
||||
enc.init(header.fw_identifier, 2, 0xC);
|
||||
|
||||
size9 = decrypt(data + part1addr, tmp_data9);
|
||||
if (!tmp_data9)
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
|
||||
// the count of bytes copied from the firmware into memory
|
||||
#define NDS_FW_USER_SETTINGS_MEM_BYTE_COUNT 0x70
|
||||
|
||||
#define FW_CONFIG_FILE_EXT "dfc"
|
||||
|
||||
class CFIRMWARE
|
||||
|
@ -31,14 +30,6 @@ private:
|
|||
u8 *tmp_data7;
|
||||
u32 size9, size7;
|
||||
|
||||
u32 keyBuf[0x412];
|
||||
u32 keyCode[3];
|
||||
|
||||
bool getKeyBuf();
|
||||
void crypt64BitUp(u32 *ptr);
|
||||
void crypt64BitDown(u32 *ptr);
|
||||
void applyKeycode(u32 modulo);
|
||||
bool initKeycode(u32 idCode, int level, u32 modulo);
|
||||
u16 getBootCodeCRC16();
|
||||
u32 decrypt(const u8 *in, u8* &out);
|
||||
u32 decompress(const u8 *in, u8* &out);
|
||||
|
|
|
@ -2608,6 +2608,14 @@
|
|||
RelativePath="..\emufile.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\encrypt.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\encrypt.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\FIFO.cpp"
|
||||
>
|
||||
|
|
|
@ -730,6 +730,14 @@
|
|||
RelativePath="..\emufile.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\encrypt.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\encrypt.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\fat.h"
|
||||
>
|
||||
|
|
|
@ -394,6 +394,7 @@
|
|||
<ClCompile Include="..\Disassembler.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" />
|
||||
|
@ -660,6 +661,7 @@
|
|||
<ClInclude Include="..\driver.h" />
|
||||
<ClInclude Include="..\emufat_types.h" />
|
||||
<ClInclude Include="..\emufile.h" />
|
||||
<ClInclude Include="..\encrypt.h" />
|
||||
<ClInclude Include="..\fat.h" />
|
||||
<ClInclude Include="..\FIFO.h" />
|
||||
<ClInclude Include="..\filter\filter.h" />
|
||||
|
|
|
@ -780,6 +780,9 @@
|
|||
<ClCompile Include="sndxa2.cpp">
|
||||
<Filter>Windows</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\encrypt.cpp">
|
||||
<Filter>Core</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\addons.h">
|
||||
|
@ -1506,6 +1509,9 @@
|
|||
<ClInclude Include="sndxa2.h">
|
||||
<Filter>Windows</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\encrypt.h">
|
||||
<Filter>Core</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\instruction_tabdef.inc">
|
||||
|
|
|
@ -405,6 +405,7 @@
|
|||
<ClCompile Include="..\Disassembler.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" />
|
||||
|
@ -671,6 +672,7 @@
|
|||
<ClInclude Include="..\driver.h" />
|
||||
<ClInclude Include="..\emufat_types.h" />
|
||||
<ClInclude Include="..\emufile.h" />
|
||||
<ClInclude Include="..\encrypt.h" />
|
||||
<ClInclude Include="..\fat.h" />
|
||||
<ClInclude Include="..\FIFO.h" />
|
||||
<ClInclude Include="..\filter\filter.h" />
|
||||
|
|
|
@ -768,6 +768,13 @@
|
|||
<ClCompile Include="sndxa2.cpp">
|
||||
<Filter>Windows</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="File_Extractor\7z_C\7zDecode.c" />
|
||||
<ClCompile Include="File_Extractor\7z_C\7zExtract.c" />
|
||||
<ClCompile Include="File_Extractor\7z_C\7zHeader.c" />
|
||||
<ClCompile Include="File_Extractor\7z_C\7zItem.c" />
|
||||
<ClCompile Include="..\encrypt.cpp">
|
||||
<Filter>Core</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\addons.h">
|
||||
|
@ -1295,6 +1302,78 @@
|
|||
<ClInclude Include="sndxa2.h">
|
||||
<Filter>Windows</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\emufat_types.h" />
|
||||
<ClInclude Include="..\utils\emufat_types.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\7zHeader.h" />
|
||||
<ClInclude Include="File_Extractor\7z_C\7zIn.h" />
|
||||
<ClInclude Include="File_Extractor\7z_C\7zItem.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\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\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\headers.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\suballoc.hpp" />
|
||||
<ClInclude Include="File_Extractor\unrar\unicode.hpp" />
|
||||
<ClInclude Include="File_Extractor\unrar\unpack.hpp" />
|
||||
<ClInclude Include="File_Extractor\unrar\unrar.h" />
|
||||
<ClInclude Include="filter\hq2x.h" />
|
||||
<ClInclude Include="filter\interp.h" />
|
||||
<ClInclude Include="filter\lq2x.h" />
|
||||
<ClInclude Include="..\encrypt.h">
|
||||
<Filter>Core</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\instruction_tabdef.inc">
|
||||
|
@ -1306,27 +1385,18 @@
|
|||
<None Include="..\filter\hq4x.dat">
|
||||
<Filter>Core\filter</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Text Include="..\utils\AsmJit\COPYING.txt">
|
||||
<Filter>Core\utils\AsmJit</Filter>
|
||||
</Text>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Image Include="bitmap1.bmp">
|
||||
<Filter>Windows\resources</Filter>
|
||||
</Image>
|
||||
<Image Include="DeSmuME.ico">
|
||||
<Filter>Windows\resources</Filter>
|
||||
</Image>
|
||||
<Image Include="bitmaps\IDB_FRAMEADVANCE.bmp" />
|
||||
<Image Include="bitmaps\IDB_OPEN.bmp" />
|
||||
<Image Include="bitmaps\IDB_PAUSE.bmp" />
|
||||
<Image Include="bitmaps\IDB_PLAY.bmp" />
|
||||
<Image Include="bitmaps\IDB_RESET.bmp" />
|
||||
<Image Include="bitmaps\IDB_ROTATECCW.bmp" />
|
||||
<Image Include="bitmaps\IDB_ROTATECW.bmp" />
|
||||
<Image Include="bitmaps\IDB_STOP.bmp" />
|
||||
<None Include="..\utils\AsmJit\COPYING.txt" />
|
||||
<None Include="bitmap1.bmp" />
|
||||
<None Include="DeSmuME.ico" />
|
||||
<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\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">
|
||||
|
@ -1340,9 +1410,6 @@
|
|||
<CustomBuild Include="glib-2.20.1\glib-2.20.1.7z">
|
||||
<Filter>Windows\libs</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="libelf_libdwarf\libelf_libdwarf.7z">
|
||||
<Filter>Windows\libs</Filter>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="lua\lua.7z">
|
||||
<Filter>Windows\libs</Filter>
|
||||
</CustomBuild>
|
||||
|
|
Loading…
Reference in New Issue