├── .gitignore ├── README.md ├── Ra2Game ├── CURSOR104.cur ├── ICON160.ico ├── ICON161.ico ├── ICON162.ico ├── ICON93.ico ├── Ra2Game.cpp ├── Ra2Game.def ├── Ra2Game.h ├── Ra2Game.rc ├── Ra2Game.vcxproj ├── Ra2Game.vcxproj.filters ├── Ra2Game_DirectDraw.cpp ├── Ra2Game_Resource.cpp ├── Ra2Game_Window.cpp └── resource.h ├── Red Alert 2.sln ├── Red Alert 2 ├── Red Alert 2.vcxproj └── Red Alert 2.vcxproj.filters └── binary └── game.exe /.gitignore: -------------------------------------------------------------------------------- 1 | # Prerequisites 2 | *.d 3 | 4 | # Compiled Object files 5 | *.slo 6 | *.lo 7 | *.o 8 | *.obj 9 | 10 | # Precompiled Headers 11 | *.gch 12 | *.pch 13 | 14 | # Compiled Dynamic libraries 15 | *.so 16 | *.dylib 17 | *.dll 18 | 19 | # Fortran module files 20 | *.mod 21 | *.smod 22 | 23 | # Compiled Static libraries 24 | *.lai 25 | *.la 26 | *.a 27 | *.lib 28 | 29 | # Executables 30 | *.out 31 | *.app 32 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # RedAlert2 2 | Red Alert 2 Reverse Engineering 3 | 4 | based on westwood's CNC RA2 v1.006(Time stamp:2001-06-07) 5 | 6 | ..* add 1080p screen resolution to option. -------------------------------------------------------------------------------- /Ra2Game/CURSOR104.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwxbug/RedAlert2/badce915fa1f96cf1682674ecdbae8215fbb7fcb/Ra2Game/CURSOR104.cur -------------------------------------------------------------------------------- /Ra2Game/ICON160.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwxbug/RedAlert2/badce915fa1f96cf1682674ecdbae8215fbb7fcb/Ra2Game/ICON160.ico -------------------------------------------------------------------------------- /Ra2Game/ICON161.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwxbug/RedAlert2/badce915fa1f96cf1682674ecdbae8215fbb7fcb/Ra2Game/ICON161.ico -------------------------------------------------------------------------------- /Ra2Game/ICON162.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwxbug/RedAlert2/badce915fa1f96cf1682674ecdbae8215fbb7fcb/Ra2Game/ICON162.ico -------------------------------------------------------------------------------- /Ra2Game/ICON93.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwxbug/RedAlert2/badce915fa1f96cf1682674ecdbae8215fbb7fcb/Ra2Game/ICON93.ico -------------------------------------------------------------------------------- /Ra2Game/Ra2Game.cpp: -------------------------------------------------------------------------------- 1 | #include "Ra2Game.h" 2 | 3 | HMODULE hDLLModule; 4 | BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) 5 | { 6 | switch (ul_reason_for_call) 7 | { 8 | case DLL_PROCESS_ATTACH: 9 | hDLLModule = hModule; 10 | break; 11 | case DLL_PROCESS_DETACH: 12 | break; 13 | } 14 | return TRUE; 15 | } -------------------------------------------------------------------------------- /Ra2Game/Ra2Game.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | extern HMODULE hDLLModule; 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | extern LPDIRECTDRAW2* g_lpdd; 19 | extern LPBYTE g_c_force_in_window_mode; 20 | extern HWND* g_lp_hmain_Wnd; 21 | extern HWND g_hmain_Wnd; 22 | extern HIMC* g_lp_imm_Context; 23 | extern int* g_lp_winmain_ncmdshow; 24 | 25 | extern LPDWORD g_n_display_width; 26 | extern LPDWORD g_n_display_height; 27 | extern LPDWORD g_n_display_bpp; -------------------------------------------------------------------------------- /Ra2Game/Ra2Game.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwxbug/RedAlert2/badce915fa1f96cf1682674ecdbae8215fbb7fcb/Ra2Game/Ra2Game.rc -------------------------------------------------------------------------------- /Ra2Game/Ra2Game.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | 15.0 23 | {41A917D8-840B-46C3-937F-5D54A9A451A3} 24 | Win32Proj 25 | Ra2Game 26 | 10.0.17134.0 27 | 28 | 29 | 30 | DynamicLibrary 31 | true 32 | v141 33 | Unicode 34 | 35 | 36 | DynamicLibrary 37 | false 38 | v141 39 | true 40 | Unicode 41 | 42 | 43 | DynamicLibrary 44 | true 45 | v141 46 | Unicode 47 | 48 | 49 | DynamicLibrary 50 | false 51 | v141 52 | true 53 | Unicode 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | true 75 | 76 | 77 | true 78 | 79 | 80 | false 81 | 82 | 83 | false 84 | 85 | 86 | 87 | Level3 88 | Disabled 89 | WIN32;_DEBUG;RA2GAME_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) 90 | true 91 | 92 | 93 | true 94 | Windows 95 | Ra2Game.def 96 | 97 | 98 | 99 | 100 | Level3 101 | Disabled 102 | _DEBUG;RA2GAME_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) 103 | true 104 | 105 | 106 | true 107 | Windows 108 | Ra2Game.def 109 | 110 | 111 | 112 | 113 | Level3 114 | MaxSpeed 115 | true 116 | true 117 | WIN32;NDEBUG;RA2GAME_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) 118 | true 119 | 120 | 121 | true 122 | true 123 | true 124 | Windows 125 | Ra2Game.def 126 | 127 | 128 | 129 | 130 | Level3 131 | MaxSpeed 132 | true 133 | true 134 | NDEBUG;RA2GAME_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) 135 | true 136 | 137 | 138 | true 139 | true 140 | true 141 | Windows 142 | Ra2Game.def 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | -------------------------------------------------------------------------------- /Ra2Game/Ra2Game.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;ipp;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | 源文件 20 | 21 | 22 | 源文件 23 | 24 | 25 | 源文件 26 | 27 | 28 | 源文件 29 | 30 | 31 | 32 | 33 | 源文件 34 | 35 | 36 | 头文件 37 | 38 | 39 | 40 | 41 | 源文件 42 | 43 | 44 | 资源文件 45 | 46 | 47 | 48 | 49 | 资源文件 50 | 51 | 52 | 53 | 54 | 资源文件 55 | 56 | 57 | 资源文件 58 | 59 | 60 | 资源文件 61 | 62 | 63 | 资源文件 64 | 65 | 66 | -------------------------------------------------------------------------------- /Ra2Game/Ra2Game_DirectDraw.cpp: -------------------------------------------------------------------------------- 1 | #include "Ra2Game.h" 2 | 3 | 4 | LPDIRECTDRAW2* g_lpdd = (LPDIRECTDRAW2*)0x8523CC; 5 | LPDWORD g_n_display_width = (LPDWORD)0x8523E0; 6 | LPDWORD g_n_display_height = (LPDWORD)0x8523E4; 7 | LPDWORD g_n_display_bpp = (LPDWORD)0x8523E8; 8 | 9 | 10 | #pragma comment(lib,"ddraw.lib") 11 | 12 | HRESULT sub_00495970_DirectDrawPrep_00() 13 | { 14 | HRESULT result; 15 | HRESULT result_ddraw_create; 16 | wchar_t sz_message_text[MAX_PATH]; 17 | LPDIRECTDRAW2 lpDD = *g_lpdd; 18 | result = (HRESULT)lpDD; 19 | if (!lpDD) 20 | { 21 | result_ddraw_create = DirectDrawCreate(0, (LPDIRECTDRAW*)&lpDD, 0); 22 | if (result_ddraw_create) 23 | { 24 | swprintf(sz_message_text, L"DDRAW.DLL Error code = %08X", result_ddraw_create); 25 | MessageBoxW(g_hmain_Wnd, sz_message_text, L"Direct X", 0x30u); 26 | } 27 | else 28 | { 29 | *g_lpdd = lpDD; 30 | if (*g_c_force_in_window_mode) 31 | result = lpDD->SetCooperativeLevel(g_hmain_Wnd, DDSCL_NORMAL); 32 | else 33 | result = lpDD->SetCooperativeLevel(g_hmain_Wnd, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN); 34 | if (result) 35 | { 36 | swprintf(sz_message_text, L"DDRAW.DLL Error code = %08X", result); 37 | result = MessageBoxW(g_hmain_Wnd, sz_message_text, L"Direct X", 0x30u); 38 | } 39 | } 40 | } 41 | return result; 42 | } 43 | 44 | 45 | 46 | unsigned int sub_00495AD0_DirectDrawCheckVRAM() 47 | { 48 | bool b_ddraw_created; // bl 49 | HRESULT result_ddraw_create; // eax 50 | unsigned int result; // esi 51 | unsigned int v4; // esi 52 | int result_release; // eax 53 | _DDSURFACEDESC v7 = { 0 }; 54 | 55 | 56 | wchar_t sz_message_text[MAX_PATH]; // [esp+78h] [ebp-18Ch] 57 | DDCAPS_DX3 dx3_caps; // [esp+C8h] [ebp-13Ch] 58 | 59 | LPDIRECTDRAW2 lpDD = *g_lpdd; 60 | b_ddraw_created = 0; 61 | if (!lpDD) 62 | { 63 | result_ddraw_create = DirectDrawCreate(0, (LPDIRECTDRAW*)&lpDD, 0); 64 | if (result_ddraw_create) 65 | { 66 | swprintf(sz_message_text, L"DDRAW.DLL Error code = %08X", result_ddraw_create); 67 | MessageBoxW(g_hmain_Wnd, sz_message_text, L"Direct X", 0x30u); 68 | lpDD = 0; 69 | } 70 | else 71 | { 72 | b_ddraw_created = 1; 73 | } 74 | } 75 | result = 0; 76 | if (lpDD) 77 | { 78 | dx3_caps.dwSize = 316; 79 | if (!lpDD->GetCaps((LPDDCAPS)&dx3_caps, 0)) 80 | { 81 | v4 = dx3_caps.dwVidMemTotal; 82 | v7.dwSize = 108; 83 | if (!lpDD->GetDisplayMode((LPDDSURFACEDESC)&v7)) 84 | { 85 | v4 += v7.dwHeight * v7.dwWidth * (v7.ddpfPixelFormat.dwRGBBitCount >> 3); 86 | } 87 | result = (v4 + 0x20000) & 0xFFF00000; 88 | } 89 | } 90 | if (b_ddraw_created && lpDD) 91 | { 92 | result_release = lpDD->Release(); 93 | if (result_release) 94 | { 95 | swprintf(sz_message_text, L"DDRAW.DLL Error code = %08X", result_release); 96 | MessageBoxW(g_hmain_Wnd, sz_message_text, L"Direct X", 0x30u); 97 | } 98 | lpDD = 0; 99 | } 100 | return result; 101 | } 102 | 103 | 104 | typedef int(*psub_4957E0)(); 105 | psub_4957E0 sub_4957E0 = (psub_4957E0)0x4957E0; 106 | 107 | bool __fastcall sub_00495C90_DirectDrawPrep_01(int a1, DWORD n_display_width, DWORD n_display_height, DWORD n_display_bpp) 108 | { 109 | HRESULT result_ddraw_create; // eax 110 | bool result; // al 111 | int result_SetCooperativeLevel; // eax 112 | HRESULT result_create_palette; // eax 113 | wchar_t sz_message_text[MAX_PATH]; // [esp+24h] [ebp-50h] 114 | 115 | LPDIRECTDRAW2 lpDD = *g_lpdd; 116 | 117 | if (!lpDD) 118 | { 119 | result_ddraw_create = DirectDrawCreate(0, (LPDIRECTDRAW*)&lpDD, 0); 120 | if (result_ddraw_create) 121 | { 122 | swprintf(sz_message_text, L"DDRAW.DLL Error code = %08X", result_ddraw_create); 123 | MessageBoxW(g_hmain_Wnd, sz_message_text, L"Direct X", MB_ICONEXCLAMATION); 124 | } 125 | else 126 | { 127 | *g_lpdd = lpDD; 128 | if (*g_c_force_in_window_mode) 129 | result_SetCooperativeLevel = lpDD->SetCooperativeLevel(g_hmain_Wnd, 8); 130 | else 131 | result_SetCooperativeLevel = lpDD->SetCooperativeLevel(g_hmain_Wnd, 17); 132 | if (result_SetCooperativeLevel) 133 | { 134 | swprintf(sz_message_text, L"DDRAW.DLL Error code = %08X", result_SetCooperativeLevel); 135 | MessageBoxW(g_hmain_Wnd, sz_message_text, L"Direct X", MB_ICONEXCLAMATION); 136 | } 137 | } 138 | } 139 | // if (*g_c_force_in_window_mode) 140 | // a4 = 32; 141 | 142 | if (lpDD->SetDisplayMode(n_display_width, n_display_height, n_display_bpp, 0, 0)) 143 | { 144 | MessageBoxW(g_hmain_Wnd, L"Error In Change Display Mode", 0, MB_ICONEXCLAMATION); 145 | result = 0; 146 | } 147 | else 148 | { 149 | *g_n_display_width = n_display_width; 150 | *g_n_display_height = n_display_height; 151 | *g_n_display_bpp = n_display_bpp; 152 | LPPALETTEENTRY lpDDColorArray = (LPPALETTEENTRY)0x851FCC; 153 | LPDIRECTDRAWPALETTE* lplpDDPalette = (LPDIRECTDRAWPALETTE*)0x851FC8; 154 | if (n_display_bpp == 8 155 | && ( 156 | (result_create_palette = lpDD->CreatePalette(68, 157 | (LPPALETTEENTRY)lpDDColorArray, 158 | (LPDIRECTDRAWPALETTE *)lplpDDPalette, 159 | 0)) != 0)) 160 | { 161 | swprintf(sz_message_text, L"DDRAW.DLL Error code = %08X", result_create_palette); 162 | MessageBoxW(g_hmain_Wnd, sz_message_text, L"Direct X", MB_ICONEXCLAMATION); 163 | result = 0; 164 | } 165 | else 166 | { 167 | sub_4957E0(); 168 | result = 1; 169 | } 170 | } 171 | return result; 172 | } -------------------------------------------------------------------------------- /Ra2Game/Ra2Game_Resource.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwxbug/RedAlert2/badce915fa1f96cf1682674ecdbae8215fbb7fcb/Ra2Game/Ra2Game_Resource.cpp -------------------------------------------------------------------------------- /Ra2Game/Ra2Game_Window.cpp: -------------------------------------------------------------------------------- 1 | #include "Ra2Game.h" 2 | 3 | LPCSTR g_WindowName = "Red Alert 2"; 4 | 5 | WNDPROC sub_7375A0 = (WNDPROC)0x7375A0; 6 | LPBYTE g_c_force_in_window_mode = (LPBYTE)0x851CB0; 7 | HWND* g_lp_hmain_Wnd =(HWND*)0xb263d8; 8 | HWND g_hmain_Wnd = NULL; 9 | HIMC* g_lp_imm_Context = (HIMC*)0xB263E4; 10 | int* g_lp_winmain_ncmdshow = (int*)0xB263CC; 11 | 12 | #pragma comment(lib,"Imm32.lib") 13 | #pragma comment(lib,"Comctl32.lib") 14 | 15 | 16 | HCURSOR __fastcall sub_00737BD0_create_main_windows(HINSTANCE hInstance, int n_show, int n_width, int n_height) 17 | { 18 | DWORD v6; // ST2C_4 19 | BOOL v7; // ST28_4 20 | DWORD v8; // eax 21 | int n_screen_height; 22 | int n_screen_width; 23 | HCURSOR v11; // eax 24 | struct tagRECT rc; // [esp+18h] [ebp-38h] 25 | WNDCLASSA WndClass; // [esp+28h] [ebp-28h] 26 | 27 | 28 | InitCommonControls(); 29 | HICON dword_B263D4 = LoadIconA(hInstance, (LPCSTR)0x5D); 30 | HCURSOR dword_B263D0 = LoadCursorA(hInstance, (LPCSTR)0x68); 31 | WndClass.style = 3; 32 | WndClass.lpfnWndProc = (WNDPROC)sub_7375A0; 33 | WndClass.cbClsExtra = 0; 34 | WndClass.cbWndExtra = 0; 35 | WndClass.hInstance = hInstance; 36 | WndClass.hIcon = dword_B263D4; 37 | WndClass.hCursor = dword_B263D0; 38 | WndClass.hbrBackground = 0; 39 | WndClass.lpszMenuName = 0; 40 | WndClass.lpszClassName = g_WindowName; 41 | RegisterClassA(&WndClass); 42 | // *g_c_force_in_window_mode = 1; 43 | if (*g_c_force_in_window_mode) 44 | { 45 | g_hmain_Wnd = CreateWindowExA(0, g_WindowName, g_WindowName, WS_OVERLAPPED | WS_MINIMIZEBOX | WS_CLIPCHILDREN | WS_SYSMENU | WS_CAPTION, 0, 0, 0, 0, 0, 0, hInstance, 0); 46 | *g_lp_hmain_Wnd = g_hmain_Wnd; 47 | SetRect(&rc, 0, 0, n_width, n_height); 48 | v6 = GetWindowLongA(g_hmain_Wnd, -20); 49 | v7 = GetMenu(g_hmain_Wnd) != 0; 50 | v8 = GetWindowLongA(g_hmain_Wnd, -16); 51 | AdjustWindowRectEx(&rc, v8, v7, v6); 52 | MoveWindow(g_hmain_Wnd, 0, 0, rc.right - rc.left, rc.bottom - rc.top, 1); 53 | } 54 | else 55 | { 56 | n_screen_height = GetSystemMetrics(1); 57 | n_screen_width = GetSystemMetrics(0); 58 | //1080P? 59 | // n_screen_height = 1080; 60 | // n_screen_width = 1920; 61 | g_hmain_Wnd = CreateWindowExA(WS_EX_TOPMOST, g_WindowName, g_WindowName, WS_POPUP | WS_CLIPCHILDREN, 0, 0, n_screen_width, n_screen_height, 0, 0, hInstance, 0); 62 | // g_hmain_Wnd = CreateWindowExA(WS_EX_TOPMOST, g_WindowName, g_WindowName, WS_OVERLAPPED | WS_MINIMIZEBOX | WS_CLIPCHILDREN | WS_SYSMENU | WS_CAPTION, 0, 0, n_screen_width, n_screen_height, 0, 0, h_module_Instance, 0); 63 | 64 | *g_lp_hmain_Wnd = g_hmain_Wnd; 65 | } 66 | *g_lp_imm_Context = ImmGetContext(g_hmain_Wnd); 67 | ShowWindow(g_hmain_Wnd, SW_SHOWNORMAL); 68 | *g_lp_winmain_ncmdshow = n_show; 69 | UpdateWindow(g_hmain_Wnd); 70 | SetFocus(g_hmain_Wnd); 71 | // ALT+CONTROL+SHIFT+M key 72 | RegisterHotKey(g_hmain_Wnd, 1, MOD_ALT | MOD_CONTROL | MOD_SHIFT, 77u); 73 | v11 = LoadCursorA(hInstance, (LPCSTR)0x68); 74 | return SetCursor(v11); 75 | } -------------------------------------------------------------------------------- /Ra2Game/resource.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwxbug/RedAlert2/badce915fa1f96cf1682674ecdbae8215fbb7fcb/Ra2Game/resource.h -------------------------------------------------------------------------------- /Red Alert 2.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.27703.2000 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Red Alert 2", "Red Alert 2\Red Alert 2.vcxproj", "{9DEA887A-BD45-40AF-8B8C-7C488A8023D5}" 7 | EndProject 8 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Ra2Game", "Ra2Game\Ra2Game.vcxproj", "{41A917D8-840B-46C3-937F-5D54A9A451A3}" 9 | EndProject 10 | Global 11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 12 | Debug|x64 = Debug|x64 13 | Debug|x86 = Debug|x86 14 | Release|x64 = Release|x64 15 | Release|x86 = Release|x86 16 | EndGlobalSection 17 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 18 | {9DEA887A-BD45-40AF-8B8C-7C488A8023D5}.Debug|x64.ActiveCfg = Debug|x64 19 | {9DEA887A-BD45-40AF-8B8C-7C488A8023D5}.Debug|x64.Build.0 = Debug|x64 20 | {9DEA887A-BD45-40AF-8B8C-7C488A8023D5}.Debug|x86.ActiveCfg = Debug|Win32 21 | {9DEA887A-BD45-40AF-8B8C-7C488A8023D5}.Debug|x86.Build.0 = Debug|Win32 22 | {9DEA887A-BD45-40AF-8B8C-7C488A8023D5}.Release|x64.ActiveCfg = Release|x64 23 | {9DEA887A-BD45-40AF-8B8C-7C488A8023D5}.Release|x64.Build.0 = Release|x64 24 | {9DEA887A-BD45-40AF-8B8C-7C488A8023D5}.Release|x86.ActiveCfg = Release|Win32 25 | {9DEA887A-BD45-40AF-8B8C-7C488A8023D5}.Release|x86.Build.0 = Release|Win32 26 | {41A917D8-840B-46C3-937F-5D54A9A451A3}.Debug|x64.ActiveCfg = Debug|x64 27 | {41A917D8-840B-46C3-937F-5D54A9A451A3}.Debug|x64.Build.0 = Debug|x64 28 | {41A917D8-840B-46C3-937F-5D54A9A451A3}.Debug|x86.ActiveCfg = Debug|Win32 29 | {41A917D8-840B-46C3-937F-5D54A9A451A3}.Debug|x86.Build.0 = Debug|Win32 30 | {41A917D8-840B-46C3-937F-5D54A9A451A3}.Release|x64.ActiveCfg = Release|x64 31 | {41A917D8-840B-46C3-937F-5D54A9A451A3}.Release|x64.Build.0 = Release|x64 32 | {41A917D8-840B-46C3-937F-5D54A9A451A3}.Release|x86.ActiveCfg = Release|Win32 33 | {41A917D8-840B-46C3-937F-5D54A9A451A3}.Release|x86.Build.0 = Release|Win32 34 | EndGlobalSection 35 | GlobalSection(SolutionProperties) = preSolution 36 | HideSolutionNode = FALSE 37 | EndGlobalSection 38 | GlobalSection(ExtensibilityGlobals) = postSolution 39 | SolutionGuid = {B88556FC-AFAB-4260-B8AF-25E7DA44E160} 40 | EndGlobalSection 41 | EndGlobal 42 | -------------------------------------------------------------------------------- /Red Alert 2/Red Alert 2.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | 15.0 23 | {9DEA887A-BD45-40AF-8B8C-7C488A8023D5} 24 | Win32Proj 25 | RedAlert2 26 | 10.0.17134.0 27 | 28 | 29 | 30 | DynamicLibrary 31 | true 32 | v141 33 | Unicode 34 | 35 | 36 | DynamicLibrary 37 | false 38 | v141 39 | true 40 | Unicode 41 | 42 | 43 | DynamicLibrary 44 | true 45 | v141 46 | Unicode 47 | 48 | 49 | DynamicLibrary 50 | false 51 | v141 52 | true 53 | Unicode 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | true 75 | 76 | 77 | true 78 | 79 | 80 | false 81 | 82 | 83 | false 84 | 85 | 86 | 87 | Level3 88 | Disabled 89 | WIN32;_DEBUG;REDALERT2_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) 90 | true 91 | 92 | 93 | true 94 | Windows 95 | 96 | 97 | 98 | 99 | Level3 100 | Disabled 101 | _DEBUG;REDALERT2_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) 102 | true 103 | 104 | 105 | true 106 | Windows 107 | 108 | 109 | 110 | 111 | Level3 112 | MaxSpeed 113 | true 114 | true 115 | WIN32;NDEBUG;REDALERT2_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) 116 | true 117 | 118 | 119 | true 120 | true 121 | true 122 | Windows 123 | 124 | 125 | 126 | 127 | Level3 128 | MaxSpeed 129 | true 130 | true 131 | NDEBUG;REDALERT2_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) 132 | true 133 | 134 | 135 | true 136 | true 137 | true 138 | Windows 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | -------------------------------------------------------------------------------- /Red Alert 2/Red Alert 2.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;ipp;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | -------------------------------------------------------------------------------- /binary/game.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xwxbug/RedAlert2/badce915fa1f96cf1682674ecdbae8215fbb7fcb/binary/game.exe --------------------------------------------------------------------------------