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