diff --git a/.gitignore b/.gitignore
index e7b443e8a..c2458f3ab 100644
--- a/.gitignore
+++ b/.gitignore
@@ -32,5 +32,20 @@ Thumbs.db
/Plugin/RSP/pdb
/Plugin/RSP/RSP 1.7.dll
/Plugin/RSP/RSP_d 1.7.dll
+/Plugin64/GFX/lib
+/Plugin64/GFX/map
+/Plugin64/GFX/pdb
+/Plugin64/GFX/PJ64Glide64.dll
+/Plugin64/GFX/PJ64Glide64_d.dll
+/Plugin64/Input/lib
+/Plugin64/Input/map
+/Plugin64/Input/pdb
+/Plugin64/Input/PJ64_NRage.dll
+/Plugin64/Input/PJ64_NRage_d.dll
+/Plugin64/RSP/lib
+/Plugin64/RSP/map
+/Plugin64/RSP/pdb
+/Plugin64/RSP/RSP 1.7.dll
+/Plugin64/RSP/RSP_d 1.7.dll
/Source/3rd Party/wx/lib/vc_lib/mswu/wx/msw/rcdefs.h
/Source/3rd Party/wx/lib/vc_lib/mswud/wx/msw/rcdefs.h
diff --git a/Bin/Debug64/Config/Project64.cfg b/Bin/Debug64/Config/Project64.cfg
new file mode 100644
index 000000000..de2c5dfbc
--- /dev/null
+++ b/Bin/Debug64/Config/Project64.cfg
@@ -0,0 +1,2 @@
+[default]
+ConfigFile=..\..\Config\Project64.cfg
diff --git a/Bin/Release64/Config/Project64.cfg b/Bin/Release64/Config/Project64.cfg
new file mode 100644
index 000000000..de2c5dfbc
--- /dev/null
+++ b/Bin/Release64/Config/Project64.cfg
@@ -0,0 +1,2 @@
+[default]
+ConfigFile=..\..\Config\Project64.cfg
diff --git a/Config/Project64.cfg.development b/Config/Project64.cfg.development
index 93d84e3d9..171c11f11 100644
--- a/Config/Project64.cfg.development
+++ b/Config/Project64.cfg.development
@@ -18,6 +18,7 @@ Instant Save=..\..\Save\
Instant Save - Use Selected=1
Lang=..\..\Lang
Plugin=..\..\Plugin\
+Plugin64=..\..\Plugin64\
Plugin - Use Selected=1
Save=..\..\Save\
Save - Use Selected=1
diff --git a/Project64.vs2013.sln b/Project64.vs2013.sln
index 445a5fe47..ba8d91a01 100644
--- a/Project64.vs2013.sln
+++ b/Project64.vs2013.sln
@@ -60,7 +60,8 @@ Global
{B4A4B994-9111-42B1-93C2-6F1CA8BC4421}.Debug|x64.Build.0 = Debug|x64
{B4A4B994-9111-42B1-93C2-6F1CA8BC4421}.Release|Win32.ActiveCfg = Release|Win32
{B4A4B994-9111-42B1-93C2-6F1CA8BC4421}.Release|Win32.Build.0 = Release|Win32
- {B4A4B994-9111-42B1-93C2-6F1CA8BC4421}.Release|x64.ActiveCfg = Release|Win32
+ {B4A4B994-9111-42B1-93C2-6F1CA8BC4421}.Release|x64.ActiveCfg = Release|x64
+ {B4A4B994-9111-42B1-93C2-6F1CA8BC4421}.Release|x64.Build.0 = Release|x64
{7E534C8E-1ACE-4A88-8807-39A11ED4DA18}.Debug|Win32.ActiveCfg = Debug|Win32
{7E534C8E-1ACE-4A88-8807-39A11ED4DA18}.Debug|Win32.Build.0 = Debug|Win32
{7E534C8E-1ACE-4A88-8807-39A11ED4DA18}.Debug|x64.ActiveCfg = Debug|x64
@@ -71,13 +72,15 @@ Global
{7E534C8E-1ACE-4A88-8807-39A11ED4DA18}.Release|x64.Build.0 = Release|x64
{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}.Debug|Win32.ActiveCfg = Debug|Win32
{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}.Debug|Win32.Build.0 = Debug|Win32
- {A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}.Debug|x64.ActiveCfg = Debug|Win32
+ {A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}.Debug|x64.ActiveCfg = Debug|x64
+ {A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}.Debug|x64.Build.0 = Debug|x64
{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}.Release|Win32.ActiveCfg = Release|Win32
{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}.Release|Win32.Build.0 = Release|Win32
{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}.Release|x64.ActiveCfg = Release|Win32
{8B9961B1-88D9-4EA3-A752-507A00DD9F3D}.Debug|Win32.ActiveCfg = Debug|Win32
{8B9961B1-88D9-4EA3-A752-507A00DD9F3D}.Debug|Win32.Build.0 = Debug|Win32
- {8B9961B1-88D9-4EA3-A752-507A00DD9F3D}.Debug|x64.ActiveCfg = Debug|Win32
+ {8B9961B1-88D9-4EA3-A752-507A00DD9F3D}.Debug|x64.ActiveCfg = Debug|x64
+ {8B9961B1-88D9-4EA3-A752-507A00DD9F3D}.Debug|x64.Build.0 = Debug|x64
{8B9961B1-88D9-4EA3-A752-507A00DD9F3D}.Release|Win32.ActiveCfg = Release|Win32
{8B9961B1-88D9-4EA3-A752-507A00DD9F3D}.Release|Win32.Build.0 = Release|Win32
{8B9961B1-88D9-4EA3-A752-507A00DD9F3D}.Release|x64.ActiveCfg = Release|Win32
@@ -87,7 +90,8 @@ Global
{3326E128-33AF-422C-BB7C-67CC6B915610}.Debug|x64.Build.0 = Debug|x64
{3326E128-33AF-422C-BB7C-67CC6B915610}.Release|Win32.ActiveCfg = Release|Win32
{3326E128-33AF-422C-BB7C-67CC6B915610}.Release|Win32.Build.0 = Release|Win32
- {3326E128-33AF-422C-BB7C-67CC6B915610}.Release|x64.ActiveCfg = Release|Win32
+ {3326E128-33AF-422C-BB7C-67CC6B915610}.Release|x64.ActiveCfg = Release|x64
+ {3326E128-33AF-422C-BB7C-67CC6B915610}.Release|x64.Build.0 = Release|x64
{4BC6906B-213E-40D7-9FC7-1A93E228393D}.Debug|Win32.ActiveCfg = Debug|Win32
{4BC6906B-213E-40D7-9FC7-1A93E228393D}.Debug|Win32.Build.0 = Debug|Win32
{4BC6906B-213E-40D7-9FC7-1A93E228393D}.Debug|x64.ActiveCfg = Debug|Win32
@@ -100,7 +104,8 @@ Global
{731BD205-2826-4631-B7AF-117658E88DBC}.Debug|x64.Build.0 = Debug|x64
{731BD205-2826-4631-B7AF-117658E88DBC}.Release|Win32.ActiveCfg = Release|Win32
{731BD205-2826-4631-B7AF-117658E88DBC}.Release|Win32.Build.0 = Release|Win32
- {731BD205-2826-4631-B7AF-117658E88DBC}.Release|x64.ActiveCfg = Release|Win32
+ {731BD205-2826-4631-B7AF-117658E88DBC}.Release|x64.ActiveCfg = Release|x64
+ {731BD205-2826-4631-B7AF-117658E88DBC}.Release|x64.Build.0 = Release|x64
{360A34F3-3172-4B09-8BC9-B3FBEE677863}.Debug|Win32.ActiveCfg = Debug|Win32
{360A34F3-3172-4B09-8BC9-B3FBEE677863}.Debug|x64.ActiveCfg = Debug|Win32
{360A34F3-3172-4B09-8BC9-B3FBEE677863}.Release|Win32.ActiveCfg = Release|Win32
@@ -156,7 +161,8 @@ Global
{2DADDAA5-0F57-46ED-A974-747908DDC7F3}.Release|x64.ActiveCfg = Release|Win32
{FD617E80-9E40-4138-85DA-B94633972E6A}.Debug|Win32.ActiveCfg = Debug|Win32
{FD617E80-9E40-4138-85DA-B94633972E6A}.Debug|Win32.Build.0 = Debug|Win32
- {FD617E80-9E40-4138-85DA-B94633972E6A}.Debug|x64.ActiveCfg = Debug|Win32
+ {FD617E80-9E40-4138-85DA-B94633972E6A}.Debug|x64.ActiveCfg = Debug|x64
+ {FD617E80-9E40-4138-85DA-B94633972E6A}.Debug|x64.Build.0 = Debug|x64
{FD617E80-9E40-4138-85DA-B94633972E6A}.Release|Win32.ActiveCfg = Release|Win32
{FD617E80-9E40-4138-85DA-B94633972E6A}.Release|Win32.Build.0 = Release|Win32
{FD617E80-9E40-4138-85DA-B94633972E6A}.Release|x64.ActiveCfg = Release|Win32
diff --git a/Source/3rd Party/directx/lib64/dinput8.lib b/Source/3rd Party/directx/lib64/dinput8.lib
new file mode 100644
index 000000000..fcd91e148
Binary files /dev/null and b/Source/3rd Party/directx/lib64/dinput8.lib differ
diff --git a/Source/3rd Party/directx/lib64/dxguid.lib b/Source/3rd Party/directx/lib64/dxguid.lib
new file mode 100644
index 000000000..f3994f9c4
Binary files /dev/null and b/Source/3rd Party/directx/lib64/dxguid.lib differ
diff --git a/Source/Project64/Multilanguage/Language Class.cpp b/Source/Project64/Multilanguage/Language Class.cpp
index 85df4fc3f..cfd1be356 100644
--- a/Source/Project64/Multilanguage/Language Class.cpp
+++ b/Source/Project64/Multilanguage/Language Class.cpp
@@ -796,11 +796,7 @@ LRESULT CALLBACK LangSelectProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
{
lResult = HTCAPTION;
}
-#ifdef _M_IX86
- SetWindowLong(hDlg, DWL_MSGRESULT, lResult);
-#else
- g_Notify->BreakPoint(__FILEW__,__LINE__);
-#endif
+ SetWindowLong(hDlg, DWLP_MSGRESULT, lResult);
return TRUE;
}
break;
diff --git a/Source/Project64/Plugins/Plugin List.cpp b/Source/Project64/Plugins/Plugin List.cpp
index 366744c01..3b4654ccd 100644
--- a/Source/Project64/Plugins/Plugin List.cpp
+++ b/Source/Project64/Plugins/Plugin List.cpp
@@ -69,13 +69,15 @@ void CPluginList::AddPluginFromDir ( CPath Dir)
hLib = NULL;
}
- UINT LastErrorMode = SetErrorMode( SEM_FAILCRITICALERRORS );
+ //UINT LastErrorMode = SetErrorMode( SEM_FAILCRITICALERRORS );
WriteTraceF(TraceDebug,__FUNCTION__ ": loading %s",(LPCSTR)Dir);
- hLib = LoadLibrary(Dir);
- SetErrorMode(LastErrorMode);
+ hLib = LoadLibrary(Dir);
+ //SetErrorMode(LastErrorMode);
if (hLib == NULL)
{
+ DWORD LoadError = GetLastError();
+ WriteTraceF(TraceDebug, __FUNCTION__ ": failed to loadi %s (error: %d)", (LPCSTR)Dir, LoadError);
continue;
}
diff --git a/Source/Project64/Project64.vcxproj b/Source/Project64/Project64.vcxproj
index 6f22febea..a032f0e8d 100644
--- a/Source/Project64/Project64.vcxproj
+++ b/Source/Project64/Project64.vcxproj
@@ -312,10 +312,6 @@
{b4a4b994-9111-42b1-93c2-6f1ca8bc4421}
false
-
- {a4d13408-a794-4199-8fc7-4a9a32505005}
- false
-
diff --git a/Source/Project64/Settings/Settings Class.cpp b/Source/Project64/Settings/Settings Class.cpp
index 023a0df36..513a7a3f9 100644
--- a/Source/Project64/Settings/Settings Class.cpp
+++ b/Source/Project64/Settings/Settings Class.cpp
@@ -248,11 +248,18 @@ void CSettings::AddHowToHandleSetting ()
AddHandler(Directory_GameUseSelected, new CSettingTypeApplication("Directory","Game - Use Selected",false));
AddHandler(Directory_Plugin, new CSettingTypeSelectedDirectory("Dir:Plugin",Directory_PluginInitial,Directory_PluginSelected,Directory_PluginUseSelected));
- AddHandler(Directory_PluginInitial, new CSettingTypeRelativePath("Plugin",""));
+#ifdef _M_IX86
+ AddHandler(Directory_PluginInitial, new CSettingTypeRelativePath("Plugin", ""));
AddHandler(Directory_PluginSelected, new CSettingTypeApplicationPath("Directory","Plugin",Directory_PluginInitial));
AddHandler(Directory_PluginUseSelected, new CSettingTypeApplication("Directory","Plugin - Use Selected",false));
AddHandler(Directory_PluginSync, new CSettingTypeRelativePath("SyncPlugin",""));
-
+#else
+ AddHandler(Directory_PluginInitial, new CSettingTypeRelativePath("Plugin64", ""));
+ AddHandler(Directory_PluginSelected, new CSettingTypeApplicationPath("Directory", "Plugin64", Directory_PluginInitial));
+ AddHandler(Directory_PluginUseSelected, new CSettingTypeApplication("Directory", "Plugin - Use Selected", false));
+ AddHandler(Directory_PluginSync, new CSettingTypeRelativePath("SyncPlugin64", ""));
+#endif
+
AddHandler(Directory_SnapShot, new CSettingTypeSelectedDirectory("Dir:Snapshot",Directory_SnapShotInitial,Directory_SnapShotSelected,Directory_SnapShotUseSelected));
AddHandler(Directory_SnapShotInitial, new CSettingTypeRelativePath("Screenshots",""));
AddHandler(Directory_SnapShotSelected, new CSettingTypeApplicationPath("Directory","Snap Shot",Directory_SnapShotInitial));
diff --git a/Source/Project64/User Interface/Gui Class.cpp b/Source/Project64/User Interface/Gui Class.cpp
index 03c1e7710..dd50c3b83 100644
--- a/Source/Project64/User Interface/Gui Class.cpp
+++ b/Source/Project64/User Interface/Gui Class.cpp
@@ -1139,14 +1139,8 @@ DWORD CALLBACK AboutBoxProc (HWND hWnd, DWORD uMsg, DWORD wParam, DWORD lParam)
{
lResult = HTCAPTION;
}
-#ifdef _M_IX86
- SetWindowLong(hWnd, DWL_MSGRESULT, lResult);
-#else
- g_Notify->BreakPoint(__FILEW__,__LINE__);
-#endif
-
+ SetWindowLong(hWnd, DWLP_MSGRESULT, lResult);
return TRUE;
-
}
break;
case WM_CTLCOLORSTATIC:
diff --git a/Source/RSP/Main.cpp b/Source/RSP/Main.cpp
index 943778a04..874394503 100644
--- a/Source/RSP/Main.cpp
+++ b/Source/RSP/Main.cpp
@@ -98,12 +98,12 @@ const char * AboutMsg ( void )
/************ Functions ***********/
DWORD AsciiToHex (char * HexValue)
{
- DWORD Count, Finish, Value = 0;
+ DWORD Value = 0;
- Finish = strlen(HexValue);
+ size_t Finish = strlen(HexValue);
if (Finish > 8 ) { Finish = 8; }
- for (Count = 0; Count < Finish; Count++)
+ for (size_t Count = 0; Count < Finish; Count++)
{
Value = (Value << 4);
switch( HexValue[Count] )
@@ -273,6 +273,7 @@ void DetectCpuSpecs(void)
DWORD AMD_Features = 0;
__try {
+#ifdef _M_IX86
_asm {
/* Intel features */
mov eax, 1
@@ -284,7 +285,15 @@ void DetectCpuSpecs(void)
cpuid
or [AMD_Features], edx
}
- } __except ( EXCEPTION_EXECUTE_HANDLER) {
+#else
+ int cpuInfo[4];
+ __cpuid(cpuInfo, 1);
+ Intel_Features = cpuInfo[3];
+ __cpuid(cpuInfo, 0x80000001);
+ AMD_Features = cpuInfo[3];
+#endif
+ }
+ __except (EXCEPTION_EXECUTE_HANDLER) {
AMD_Features = Intel_Features = 0;
}
@@ -411,7 +420,7 @@ void ProcessMenuItem(int ID)
}
break;
case ID_COMPILER:
- DialogBox(hinstDLL, "RSPCOMPILER", HWND_DESKTOP, CompilerDlgProc);
+ DialogBox(hinstDLL, "RSPCOMPILER", HWND_DESKTOP, (DLGPROC)CompilerDlgProc);
break;
case ID_BREAKONSTARTOFTASK:
{
@@ -768,5 +777,5 @@ __declspec(dllexport) void PluginLoaded (void)
void UseUnregisteredSetting (int /*SettingID*/)
{
- _asm int 3
+ DebugBreak();
}
diff --git a/Source/RSP/Profiling.cpp b/Source/RSP/Profiling.cpp
index 3e15f4198..95891554b 100644
--- a/Source/RSP/Profiling.cpp
+++ b/Source/RSP/Profiling.cpp
@@ -59,6 +59,7 @@ public:
DWORD OldTimerAddr = StopTimer();
m_CurrentTimerAddr = Address;
+#ifdef _M_IX86
DWORD HiValue, LoValue;
_asm {
pushad
@@ -69,14 +70,17 @@ public:
}
m_StartTimeHi = HiValue;
m_StartTimeLo = LoValue;
+#else
+ DebugBreak();
+#endif
return OldTimerAddr;
}
DWORD StopTimer ( void )
- {
- DWORD HiValue, LoValue;
-
+ {
if (m_CurrentTimerAddr == Timer_None) { return m_CurrentTimerAddr; }
+#ifdef _M_IX86
+ DWORD HiValue, LoValue;
_asm {
pushad
rdtsc
@@ -85,10 +89,10 @@ public:
popad
}
- __int64 StopTime = ((unsigned __int64)HiValue << 32) + (unsigned __int64)LoValue;
+ __int64 StopTime = ((unsigned __int64)HiValue << 32) + (unsigned __int64)LoValue;
__int64 StartTime = ((unsigned __int64)m_StartTimeHi << 32) + (unsigned __int64)m_StartTimeLo;
__int64 TimeTaken = StopTime - StartTime;
-
+
PROFILE_ENRTY Entry = m_Entries.find(m_CurrentTimerAddr);
if (Entry != m_Entries.end())
{
@@ -96,8 +100,11 @@ public:
}
else
{
- m_Entries.insert(PROFILE_ENRTIES::value_type(m_CurrentTimerAddr,TimeTaken));
+ m_Entries.insert(PROFILE_ENRTIES::value_type(m_CurrentTimerAddr, TimeTaken));
}
+#else
+ DebugBreak();
+#endif
DWORD OldTimerAddr = m_CurrentTimerAddr;
m_CurrentTimerAddr = Timer_None;
diff --git a/Source/RSP/RSP Command.c b/Source/RSP/RSP Command.c
index ff6bcb2d0..f362d256e 100644
--- a/Source/RSP/RSP Command.c
+++ b/Source/RSP/RSP Command.c
@@ -661,7 +661,7 @@ void RSP_Commands_Setup ( HWND hDlg )
SendMessage(hList,LB_SETITEMHEIGHT, (WPARAM)0,(LPARAM)MAKELPARAM(14, 0));
}
- sprintf(Location,"%03X",*PrgCount);
+ sprintf(Location, "%03X", PrgCount ? *PrgCount : 0);
hAddress = CreateWindowEx(0,"EDIT",Location, WS_CHILD | ES_UPPERCASE | WS_VISIBLE |
WS_BORDER | WS_TABSTOP,375,17,36,18, hDlg,(HMENU)IDC_ADDRESS,hinstDLL, NULL );
if (hAddress)
diff --git a/Source/RSP/RSP Register.c b/Source/RSP/RSP Register.c
index d93cdf756..387705b82 100644
--- a/Source/RSP/RSP Register.c
+++ b/Source/RSP/RSP Register.c
@@ -401,7 +401,7 @@ LRESULT CALLBACK RSP_Registers_Proc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM
HideRSP_RegisterPanel (CurrentPanel);
item.mask = TCIF_PARAM;
TabCtrl_GetItem( hTab, TabCtrl_GetCurSel( hTab ), &item );
- CurrentPanel = item.lParam;
+ CurrentPanel = (int)item.lParam;
InvalidateRect( hStatic, NULL, FALSE );
UpdateRSPRegistersScreen();
ShowRSP_RegisterPanel ( CurrentPanel );
@@ -513,7 +513,11 @@ void SetupRSP_RegistersMain (HWND hDlg) {
SetupRSP_Vect2Panel ( hDlg );
hStatic = CreateWindowEx(0,"STATIC","", WS_CHILD|WS_VISIBLE, 5,6,616,290,hDlg,0,hinstDLL,NULL );
- RefreshProc = (FARPROC)SetWindowLong( hStatic,GWL_WNDPROC,(long)RefreshRSP_RegProc);
+#ifdef _M_IX86
+ RefreshProc = (FARPROC)SetWindowLong(hStatic, GWL_WNDPROC, (long)RefreshRSP_RegProc);
+#else
+ DebugBreak();
+#endif
UpdateRSPRegistersScreen ();
ShowRSP_RegisterPanel ( GeneralPurpose );
diff --git a/Source/RSP/RSP.vcxproj b/Source/RSP/RSP.vcxproj
index 58706df18..7e53afb01 100644
--- a/Source/RSP/RSP.vcxproj
+++ b/Source/RSP/RSP.vcxproj
@@ -5,10 +5,18 @@
Debug
Win32
+
+ Debug
+ x64
+
Release
Win32
+
+ Release
+ x64
+
{A7ED562C-63F3-4B7E-B6B3-2CF7848752E1}
@@ -25,7 +33,9 @@
+
+
<_ProjectFileVersion>12.0.21005.1
@@ -33,7 +43,8 @@
RSP 1.7
RSP_d 1.7
- $(SolutionDir)Plugin\RSP\
+ RSP_d 1.7
+ $(SolutionDir)Plugin64\RSP\
diff --git a/Source/RSP/Recompiler CPU.c b/Source/RSP/Recompiler CPU.c
index cbe636de6..d537fa689 100644
--- a/Source/RSP/Recompiler CPU.c
+++ b/Source/RSP/Recompiler CPU.c
@@ -933,11 +933,15 @@ DWORD RunRecompilerCPU ( DWORD Cycles ) {
StartTimer(*PrgCount);
}
+#ifdef _M_IX86
_asm {
pushad
call Block
popad
}
+#else
+ DebugBreak();
+#endif
if (Profiling && IndvidualBlock) {
StopTimer();
}
@@ -948,7 +952,11 @@ DWORD RunRecompilerCPU ( DWORD Cycles ) {
}
if (IsMmxEnabled == TRUE) {
+#ifdef _M_IX86
_asm emms
+#else
+ DebugBreak();
+#endif
}
return Cycles;
}
diff --git a/Source/Settings/Settings.vcxproj b/Source/Settings/Settings.vcxproj
index bbccf9443..3c0782484 100644
--- a/Source/Settings/Settings.vcxproj
+++ b/Source/Settings/Settings.vcxproj
@@ -5,10 +5,18 @@
Debug
Win32
+
+ Debug
+ x64
+
Release
Win32
+
+ Release
+ x64
+
{8B9961B1-88D9-4EA3-A752-507A00DD9F3D}
@@ -25,7 +33,9 @@
+
+
<_ProjectFileVersion>12.0.21005.1
diff --git a/Source/nragev20/DirectInput.cpp b/Source/nragev20/DirectInput.cpp
index 006f2218b..2e960c798 100644
--- a/Source/nragev20/DirectInput.cpp
+++ b/Source/nragev20/DirectInput.cpp
@@ -22,6 +22,7 @@
*/
+#include
#include "commonIncludes.h"
#include
#include "NRagePluginV2.h"
@@ -29,6 +30,7 @@
#include "DirectInput.h"
#include "XInputController.h"
#include
+#include
// ProtoTypes //
HRESULT AcquireDevice( LPDIRECTINPUTDEVICE8 lpDirectInputDevice );
diff --git a/Source/nragev20/Interface.cpp b/Source/nragev20/Interface.cpp
index 88073aabf..c7f9eaf02 100644
--- a/Source/nragev20/Interface.cpp
+++ b/Source/nragev20/Interface.cpp
@@ -183,10 +183,10 @@ BOOL CALLBACK MainDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
case TAB_CONTROLLER2:
case TAB_CONTROLLER3:
case TAB_CONTROLLER4:
- hTabControl = CreateDialog( g_hResourceDLL, MAKEINTRESOURCE( IDD_CONTROLLER ), hDlg, ControllerTabProc );
+ hTabControl = CreateDialog(g_hResourceDLL, MAKEINTRESOURCE(IDD_CONTROLLER), hDlg, (DLGPROC)ControllerTabProc);
break;
case TAB_SHORTCUTS:
- hTabControl = CreateDialog( g_hResourceDLL, MAKEINTRESOURCE( IDD_SHORTCUT ), hDlg, ShortcutsTabProc );
+ hTabControl = CreateDialog(g_hResourceDLL, MAKEINTRESOURCE(IDD_SHORTCUT), hDlg, (DLGPROC)ShortcutsTabProc);
break;
default:
hTabControl = NULL;
@@ -420,18 +420,18 @@ BOOL CALLBACK ControllerTabProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
{
case TAB_CONTROLS:
if( pcController->fXInput) // added to show the xinput controller config tab --tecnicors
- hTabControl = CreateDialog ( g_hResourceDLL, MAKEINTRESOURCE( IDD_XCONTROLS ), hDlg, XControlsTabProc );
+ hTabControl = CreateDialog(g_hResourceDLL, MAKEINTRESOURCE(IDD_XCONTROLS), hDlg, (DLGPROC)XControlsTabProc);
else
- hTabControl = CreateDialog( g_hResourceDLL, MAKEINTRESOURCE( IDD_CONTROLS ), hDlg, ControlsTabProc );
+ hTabControl = CreateDialog(g_hResourceDLL, MAKEINTRESOURCE(IDD_CONTROLS), hDlg, (DLGPROC)ControlsTabProc);
break;
case TAB_DEVICES:
- hTabControl = CreateDialog( g_hResourceDLL, MAKEINTRESOURCE( IDD_DEVICES ), hDlg, DevicesTabProc );
+ hTabControl = CreateDialog(g_hResourceDLL, MAKEINTRESOURCE(IDD_DEVICES), hDlg, (DLGPROC)DevicesTabProc);
break;
case TAB_MODIFIERS:
- hTabControl = CreateDialog( g_hResourceDLL, MAKEINTRESOURCE( IDD_MODIFIER ), hDlg, ModifierTabProc );
+ hTabControl = CreateDialog(g_hResourceDLL, MAKEINTRESOURCE(IDD_MODIFIER), hDlg, (DLGPROC)ModifierTabProc);
break;
case TAB_PAK:
- hTabControl = CreateDialog( g_hResourceDLL, MAKEINTRESOURCE( IDD_CONTROLLERPAK ), hDlg, ControllerPakTabProc );
+ hTabControl = CreateDialog(g_hResourceDLL, MAKEINTRESOURCE(IDD_CONTROLLERPAK), hDlg, (DLGPROC)ControllerPakTabProc);
break;
default:
hTabControl = NULL;
@@ -528,9 +528,9 @@ BOOL CALLBACK ControllerTabProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
if( hTabControl )
DestroyWindow( hTabControl );
if( pcController->fXInput )
- hTabControl = CreateDialog ( g_hResourceDLL, MAKEINTRESOURCE( IDD_XCONTROLS ), hDlg, XControlsTabProc );
+ hTabControl = CreateDialog(g_hResourceDLL, MAKEINTRESOURCE(IDD_XCONTROLS), hDlg, (DLGPROC)XControlsTabProc);
else
- hTabControl = CreateDialog( g_hResourceDLL, MAKEINTRESOURCE( IDD_CONTROLS ), hDlg, ControlsTabProc );
+ hTabControl = CreateDialog(g_hResourceDLL, MAKEINTRESOURCE(IDD_CONTROLS), hDlg, (DLGPROC)ControlsTabProc);
{
hDlgItem = GetDlgItem( hDlg, IDC_CONTROLLERTAB );
@@ -566,9 +566,9 @@ BOOL CALLBACK ControllerTabProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPa
DestroyWindow( hTabControl );
if( pcController->fXInput )
- hTabControl = CreateDialog ( g_hResourceDLL, MAKEINTRESOURCE( IDD_XCONTROLS ), hDlg, XControlsTabProc );
+ hTabControl = CreateDialog(g_hResourceDLL, MAKEINTRESOURCE(IDD_XCONTROLS), hDlg, (DLGPROC)XControlsTabProc);
else
- hTabControl = CreateDialog( g_hResourceDLL, MAKEINTRESOURCE( IDD_CONTROLS ), hDlg, ControlsTabProc );
+ hTabControl = CreateDialog(g_hResourceDLL, MAKEINTRESOURCE(IDD_CONTROLS), hDlg, (DLGPROC)ControlsTabProc);
{
hDlgItem = GetDlgItem( hDlg, IDC_CONTROLLERTAB );
@@ -1775,13 +1775,13 @@ BOOL CALLBACK ModifierTabProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPara
switch( bByte )
{
case MDT_MOVE:
- hModProperties = CreateDialog( g_hResourceDLL, MAKEINTRESOURCE( IDD_MOD_MOVE ), hDlg, MoveModifierDialog );
+ hModProperties = CreateDialog(g_hResourceDLL, MAKEINTRESOURCE(IDD_MOD_MOVE), hDlg, (DLGPROC)MoveModifierDialog);
break;
case MDT_MACRO:
- hModProperties = CreateDialog( g_hResourceDLL, MAKEINTRESOURCE( IDD_MOD_MACRO ), hDlg, MacroModifierDialog );
+ hModProperties = CreateDialog(g_hResourceDLL, MAKEINTRESOURCE(IDD_MOD_MACRO), hDlg, (DLGPROC)MacroModifierDialog);
break;
case MDT_CONFIG:
- hModProperties = CreateDialog( g_hResourceDLL, MAKEINTRESOURCE( IDD_MOD_CONFIG ), hDlg, ConfigModifierDialog );
+ hModProperties = CreateDialog(g_hResourceDLL, MAKEINTRESOURCE(IDD_MOD_CONFIG), hDlg, (DLGPROC)ConfigModifierDialog);
break;
case MDT_NONE:
default:
@@ -1953,23 +1953,23 @@ BOOL CALLBACK ControllerPakTabProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM
switch( bByte )
{
case PAK_MEM:
- hPakWindow = CreateDialog( g_hResourceDLL, MAKEINTRESOURCE( IDD_PAK_MEMPAK ), hDlg, MemPakProc );
+ hPakWindow = CreateDialog(g_hResourceDLL, MAKEINTRESOURCE(IDD_PAK_MEMPAK), hDlg, (DLGPROC)MemPakProc);
break;
case PAK_RUMBLE:
- hPakWindow = CreateDialog( g_hResourceDLL, MAKEINTRESOURCE( IDD_PAK_RUMBLE ), hDlg, RumblePakProc );
+ hPakWindow = CreateDialog(g_hResourceDLL, MAKEINTRESOURCE(IDD_PAK_RUMBLE), hDlg, (DLGPROC)RumblePakProc);
break;
case PAK_TRANSFER:
- hPakWindow = CreateDialog( g_hResourceDLL, MAKEINTRESOURCE( IDD_PAK_TRANSFER ), hDlg, TransferPakProc );
+ hPakWindow = CreateDialog(g_hResourceDLL, MAKEINTRESOURCE(IDD_PAK_TRANSFER), hDlg, (DLGPROC)TransferPakProc);
break;
case PAK_ADAPTOID:
- hPakWindow = CreateDialog( g_hResourceDLL, MAKEINTRESOURCE( IDD_PAK_ADAPTOID ), hDlg, PakProc );
+ hPakWindow = CreateDialog(g_hResourceDLL, MAKEINTRESOURCE(IDD_PAK_ADAPTOID), hDlg, (DLGPROC)PakProc);
break;
case PAK_VOICE:
case PAK_NONRAW:
case PAK_NONE:
default:
- hPakWindow = CreateDialog( g_hResourceDLL, MAKEINTRESOURCE( IDD_PAK_TEXT ), hDlg, PakProc );
+ hPakWindow = CreateDialog(g_hResourceDLL, MAKEINTRESOURCE(IDD_PAK_TEXT), hDlg, (DLGPROC)PakProc);
}
if( hPakWindow )
@@ -2123,7 +2123,7 @@ BOOL CALLBACK MemPakProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam )
}
return TRUE;
case IDC_CHGDIR:
- if( DialogBox( g_hResourceDLL, MAKEINTRESOURCE( IDD_FOLDERS ), hDlg, FoldersDialogProc ) == TRUE )
+ if (DialogBox(g_hResourceDLL, MAKEINTRESOURCE(IDD_FOLDERS), hDlg, (DLGPROC)FoldersDialogProc) == TRUE)
MemPakProc( hDlg, WM_USER_UPDATE, 0, 0 );
return TRUE;
@@ -2751,7 +2751,7 @@ BOOL CALLBACK TransferPakProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPara
return TRUE;
case IDC_CHGDIR:
- if( DialogBox( g_hResourceDLL, MAKEINTRESOURCE( IDD_FOLDERS ), hDlg, FoldersDialogProc ) == TRUE )
+ if (DialogBox(g_hResourceDLL, MAKEINTRESOURCE(IDD_FOLDERS), hDlg, (DLGPROC)FoldersDialogProc) == TRUE)
TransferPakProc( hDlg, WM_USER_UPDATE, 0, 0 );
return TRUE;
diff --git a/Source/nragev20/NRagePluginV2.cpp b/Source/nragev20/NRagePluginV2.cpp
index 2b75bf9d1..193a68385 100644
--- a/Source/nragev20/NRagePluginV2.cpp
+++ b/Source/nragev20/NRagePluginV2.cpp
@@ -243,7 +243,7 @@ EXPORT void CALL DllConfig ( HWND hParent )
}
LeaveCriticalSection( &g_critical );
- int iOK = DialogBox( g_hResourceDLL, MAKEINTRESOURCE( IDD_MAINCFGDIALOG ), hParent, MainDlgProc );
+ int iOK = DialogBox(g_hResourceDLL, MAKEINTRESOURCE(IDD_MAINCFGDIALOG), hParent, (DLGPROC)MainDlgProc);
// If we go into the dialog box, and the user navigates to the Rumble window, our FF device can get unacquired.
// So let's reinit them now if we're running, just to be safe --rabid
diff --git a/Source/nragev20/NRage_Input_V2.vcxproj b/Source/nragev20/NRage_Input_V2.vcxproj
index f2e19019b..3b61ceb4e 100644
--- a/Source/nragev20/NRage_Input_V2.vcxproj
+++ b/Source/nragev20/NRage_Input_V2.vcxproj
@@ -5,10 +5,18 @@
Debug
Win32
+
+ Debug
+ x64
+
Release
Win32
+
+ Release
+ x64
+
{FD617E80-9E40-4138-85DA-B94633972E6A}
@@ -25,15 +33,15 @@
-
+
<_ProjectFileVersion>12.0.21005.1
PJ64_NRage
- PJ64_NRage_d
- $(SolutionDir)Plugin\Input\
+ PJ64_NRage_d
+ $(SolutionDir)Plugin64\Input\
@@ -44,12 +52,13 @@
xinput.lib;dinput8.lib;dxguid.lib;Comctl32.lib;%(AdditionalDependencies)
$(Root)Source\3rd Party\directx\lib;%(AdditionalLibraryDirectories)
+ $(Root)Source\3rd Party\directx\lib64;%(AdditionalLibraryDirectories)
false
- true
+ true