diff --git a/HGInstaller64/HGInstaller64.vcxproj b/HGInstaller64/HGInstaller64.vcxproj
index a5056cc..4cbe537 100644
--- a/HGInstaller64/HGInstaller64.vcxproj
+++ b/HGInstaller64/HGInstaller64.vcxproj
@@ -23,32 +23,32 @@
{0F49720F-1BB0-4ECC-A255-3474201F8FC8}
Win32Proj
HGInstaller64
- 10.0.16299.0
+ 10.0
Application
true
- v141
+ v142
Unicode
Application
false
- v141
+ v142
true
Unicode
Application
true
- v141
+ v142
Unicode
Application
false
- v141
+ v142
true
Unicode
diff --git a/README.md b/README.md
index 928c719..2cd06a2 100644
--- a/README.md
+++ b/README.md
@@ -5,3 +5,5 @@ irFFB can feed the 360 Hz steering column torque data recently made available in
It can also drive a 'Jetseat' and fans if you have them.
There's more detail in the wiki..
+
+**Please Note** I no longer use this myself and as you can see I haven't updated it since 2022. I've archived the repo. You may be interested in checking out [Marvin's Awesome iRacing App](https://github.com/mherbold/MarvinsAIRARefactored) which is what I've been using recently. Else, iRacing FFB has improved a lot since irFFB was a thing.....
diff --git a/irFFB.sln b/irFFB.sln
index efcf0c1..fc65b8e 100644
--- a/irFFB.sln
+++ b/irFFB.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.26430.6
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.29709.97
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "irFFB", "irFFB\irFFB.vcxproj", "{8BC973E0-815D-4BA3-A461-E09201F29869}"
EndProject
@@ -22,7 +22,8 @@ Global
{8BC973E0-815D-4BA3-A461-E09201F29869}.Debug|x64.Build.0 = Debug|x64
{8BC973E0-815D-4BA3-A461-E09201F29869}.Debug|x86.ActiveCfg = Debug|Win32
{8BC973E0-815D-4BA3-A461-E09201F29869}.Debug|x86.Build.0 = Debug|Win32
- {8BC973E0-815D-4BA3-A461-E09201F29869}.Release|Win32.ActiveCfg = Release|x64
+ {8BC973E0-815D-4BA3-A461-E09201F29869}.Release|Win32.ActiveCfg = Release|Win32
+ {8BC973E0-815D-4BA3-A461-E09201F29869}.Release|Win32.Build.0 = Release|Win32
{8BC973E0-815D-4BA3-A461-E09201F29869}.Release|x64.ActiveCfg = Release|x64
{8BC973E0-815D-4BA3-A461-E09201F29869}.Release|x64.Build.0 = Release|x64
{8BC973E0-815D-4BA3-A461-E09201F29869}.Release|x86.ActiveCfg = Release|Win32
@@ -34,11 +35,9 @@ Global
{0F49720F-1BB0-4ECC-A255-3474201F8FC8}.Debug|x86.ActiveCfg = Debug|x64
{0F49720F-1BB0-4ECC-A255-3474201F8FC8}.Debug|x86.Build.0 = Debug|x64
{0F49720F-1BB0-4ECC-A255-3474201F8FC8}.Release|Win32.ActiveCfg = Release|Win32
- {0F49720F-1BB0-4ECC-A255-3474201F8FC8}.Release|Win32.Build.0 = Release|Win32
{0F49720F-1BB0-4ECC-A255-3474201F8FC8}.Release|x64.ActiveCfg = Release|x64
{0F49720F-1BB0-4ECC-A255-3474201F8FC8}.Release|x64.Build.0 = Release|x64
{0F49720F-1BB0-4ECC-A255-3474201F8FC8}.Release|x86.ActiveCfg = Release|x64
- {0F49720F-1BB0-4ECC-A255-3474201F8FC8}.Release|x86.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/irFFB/Resource.h b/irFFB/Resource.h
index 59085ea..3e62833 100644
Binary files a/irFFB/Resource.h and b/irFFB/Resource.h differ
diff --git a/irFFB/irFFB.cpp b/irFFB/irFFB.cpp
index d0b3768..0f28f8f 100644
--- a/irFFB/irFFB.cpp
+++ b/irFFB/irFFB.cpp
@@ -74,16 +74,65 @@ float firc12[] = {
char car[MAX_CAR_NAME];
understeerCoefs usteerCoefs[] = {
+ { "astonmartin dbr9", 46.0f, 78.0f },
+ { "amvantagegt4", 40.0f, 70.0f },
+ { "audi90gto", 40.0f, 70.0f },
+ { "audir18", 38.0f, 110.0f },
+ { "audirs3lms", 40.0f, 70.0f },
{ "audir8gt3", 52.0f, 78.0f },
- { "ferrari488gt3", 46.0f, 54.0f },
- { "ferrari488gte", 44.0f, 46.0f },
- { "formularenault20", 34.5f, 96.0f },
+ { "bmwm8gte", 46.0f, 78.0f },
+ { "bmwm4gt4", 40.0f, 70.0f },
+ { "bmwz4gt3", 54.0f, 80.0f },
+ { "bmwm4gt3", 37.5f, 82.0f },
+ { "c6r", 40.5f, 82.0f },
+ { "c8rvettegte", 48.0f, 78.0f },
+ { "dallaraf3", 38.0f, 102.0f },
+ { "dallarair18", 44.0f, 110.0f },
+ { "dallarap217", 44.0f, 110.0f },
+ { "ferrari488gt3", 52.0f, 78.0f },
+ { "ferrarievogt3", 54.0f, 80.0f },
+ { "ferrari488gte", 44.0f, 82.0f },
+ { "fordgt gt3", 52.0f, 78.0f },
+ { "formulair04", 40.0f, 100.0f },
+ { "formulamazda", 34.5f, 96.0f },
+ { "formularenault20", 38.5f, 100.0f },
+ { "formularenault35", 44.0f, 110.0f },
+ { "formulavee", 23.0f, 68.0f },
+ { "fr500s", 40.0f, 70.0f },
+ { "hondacivictyper", 40.0f, 70.0f },
+ { "hpdarx01c", 44.0f, 110.0f },
+ { "hyundaielantracn7", 40.0f, 70.0f },
+ { "hyundaivelostern", 40.0f, 70.0f },
+ { "indypropm18", 34.5f, 100.0f },
+ { "lamborghinievogt3", 52.0f, 78.0f },
+ { "lotus49", 23.8f, 70.0f },
{ "lotus79", 27.8f, 104.0f },
+ { "mclaren570sgt4", 40.0f, 70.0f },
+ { "mclarenmp4", 52.0f, 78.0f },
+ { "mclarenmp430", 38.0f, 110.0f },
{ "mercedesamggt3", 37.5f, 82.0f },
+ { "mercedesamgevogt3", 40.5f, 84.0f },
+ { "mercedesamggt4", 40.0f, 70.0f },
+ { "mercedesw12", 48.0f, 120.0f },
{ "mx5 mx52016", 36.0f, 96.0f },
+ { "nissangtpzxt", 44.0f, 110.0f },
+ { "porsche718gt4", 40.0f, 70.0f },
{ "porsche911cup", 46.0f, 88.0f },
+ { "porsche992cup", 48.0f, 90.0f },
+ { "porsche911rgt3", 52.0f, 80.0f },
+ { "porsche919", 38.0f, 110.0f },
{ "porsche991rsr", 42.0f, 72.0f },
- { "rt2000", 25.0f, 86.0f }
+ { "radical sr8", 40.0f, 100.0f },
+ { "radicalsr10", 44.0f, 110.0f },
+ { "rt2000", 25.0f, 86.0f },
+ { "rufrt12r track", 46.0f, 88.0f },
+ { "specracer", 25.0f, 86.0f },
+ { "stockcarbrasil corolla", 40.0f, 70.0f },
+ { "stockcarbrasil cruze", 40.0f, 70.0f },
+ { "usf2000usf17", 34.5f, 96.0f },
+ { "v8supercars fordmustanggt", 52.0f, 78.0f },
+ { "v8supercars holden2019", 52.0f, 78.0f },
+ { "williamsfw31", 38.0f, 110.0f }
};
int force = 0;
@@ -2160,7 +2209,7 @@ inline void setFFB(int mag) {
bool initVJD() {
- WORD verDll, verDrv;
+ WORD verDrv;
int maxVjDev;
VjdStat vjdStatus = VJD_STAT_UNKN;
@@ -2168,12 +2217,8 @@ bool initVJD() {
text(L"vJoy not enabled!");
return false;
}
- else if (!DriverMatch(&verDll, &verDrv)) {
- text(L"vJoy driver version %04x != required version %04x!", verDrv, verDll);
- return false;
- }
else
- text(L"vJoy driver version %04x init OK", verDrv);
+ text(L"vJoy driver version %04x init OK", &verDrv);
vjDev = 1;
@@ -2262,4 +2307,4 @@ void releaseAll() {
irsdk_shutdown();
-}
\ No newline at end of file
+}
diff --git a/irFFB/irFFB.rc b/irFFB/irFFB.rc
index b73d761..4963372 100644
Binary files a/irFFB/irFFB.rc and b/irFFB/irFFB.rc differ
diff --git a/irFFB/irFFB.vcxproj b/irFFB/irFFB.vcxproj
index be4cce4..58e9451 100644
--- a/irFFB/irFFB.vcxproj
+++ b/irFFB/irFFB.vcxproj
@@ -22,32 +22,32 @@
{8BC973E0-815D-4BA3-A461-E09201F29869}
Win32Proj
irFFB
- 10.0.15063.0
+ 10.0
Application
true
- v141
+ v142
Unicode
Application
false
- v141
+ v142
true
Unicode
Application
true
- v141
+ v142
Unicode
Application
false
- v141
+ v142
true
Unicode
diff --git a/irFFB/resource.h b/irFFB/resource.h
index 59085ea..3e62833 100644
Binary files a/irFFB/resource.h and b/irFFB/resource.h differ
diff --git a/irFFB/settings.cpp b/irFFB/settings.cpp
index 6a8e472..122289e 100644
--- a/irFFB/settings.cpp
+++ b/irFFB/settings.cpp
@@ -455,6 +455,8 @@ void Settings::writeGenericSettings() {
setRegSetting(key, L"maxForce", maxForce);
setRegSetting(key, L"minForce", getMinForceSetting());
setRegSetting(key, L"use360ForDirect", use360ForDirect);
+ setRegSetting(key, L"understeerFactor", understeerFactor);
+ setRegSetting(key, L"understeerOffset", understeerOffset);
RegCloseKey(key);
@@ -684,4 +686,4 @@ void Settings::writeWithNewline(std::ofstream &file, char *buf) {
int len = strlen(buf);
buf[len] = '\n';
file.write(buf, len + 1);
-}
\ No newline at end of file
+}
diff --git a/irFFB/vJoyInterface.cpp b/irFFB/vJoyInterface.cpp
index cdf955d..128f870 100644
--- a/irFFB/vJoyInterface.cpp
+++ b/irFFB/vJoyInterface.cpp
@@ -352,10 +352,10 @@ extern "C" {
return version;
}
- VJOYINTERFACE_API BOOL __cdecl DriverMatch(WORD * DllVer, WORD * DrvVer)
+ VJOYINTERFACE_API BOOL __cdecl DriverMinVersion(WORD * DllVer, WORD * DrvVer)
/*
Compare the version of this DLL to the driver's
- Return TRUE if identical, otherwise return FALSE
+ Return TRUE if >= DLL, otherwise return FALSE
If DllVer a valid pointer - sets the version of this DLL file (e.g. 0x0205)
If DrvVer a valid pointer - sets the version of driver (e.g. 0x0205)
*/
diff --git a/irFFB/vjoyinterface.h b/irFFB/vjoyinterface.h
index b708ea5..8705080 100644
--- a/irFFB/vjoyinterface.h
+++ b/irFFB/vjoyinterface.h
@@ -258,7 +258,7 @@ extern "C" {
///// General driver data
VJOYINTERFACE_API SHORT __cdecl GetvJoyVersion(void);
VJOYINTERFACE_API BOOL __cdecl vJoyEnabled(void);
- VJOYINTERFACE_API BOOL __cdecl DriverMatch(WORD * DllVer, WORD * DrvVer);
+ VJOYINTERFACE_API BOOL __cdecl DriverMinVersion(WORD * DllVer, WORD * DrvVer);
VJOYINTERFACE_API BOOL __cdecl vJoyFfbCap(BOOL * Supported); // Is this version of vJoy capable of FFB?
VJOYINTERFACE_API BOOL __cdecl GetvJoyMaxDevices(int * n); // What is the maximum possible number of vJoy devices
VJOYINTERFACE_API BOOL __cdecl GetNumberExistingVJD(int * n); // What is the number of vJoy devices currently enabled