diff --git a/Config/FFBPlugin.ini b/Config/FFBPlugin.ini
index 33a8b77..2afdbfc 100644
--- a/Config/FFBPlugin.ini
+++ b/Config/FFBPlugin.ini
@@ -460,7 +460,25 @@ Power10RumbleLength=100
GameId=19
FeedbackLength=80
-[Mario Kart Arcade GP DX v100]
+[Mario Kart Arcade GP DX USA Real]
+GameId=70
+FeedbackLength=80
+EnableDamper=0
+DamperStrength=100
+
+[Mario Kart Arcade GP DX v110 Real]
+GameId=69
+FeedbackLength=80
+EnableDamper=0
+DamperStrength=100
+
+[Mario Kart Arcade GP DX v118 Real]
+GameId=68
+FeedbackLength=80
+EnableDamper=0
+DamperStrength=100
+
+[Mario Kart Arcade GP DX v100 Custom]
GameId=11
DefaultCentering=25
FeedbackLength=80
@@ -969,7 +987,7 @@ Button8Device2Rumble=99
Button9Device2Rumble=99
Button10Device2Rumble=99
-[Mario Kart Arcade GP DX v110]
+[Mario Kart Arcade GP DX v110 Custom]
GameId=20
DefaultCentering=-1
FeedbackLength=80
@@ -1010,7 +1028,7 @@ BridgeRumble=1
BridgeRumbleStrength=40
HideCursor=0
-[Mario Kart Arcade GP DX USA]
+[Mario Kart Arcade GP DX USA Custom]
GameId=51
DefaultCentering=-1
FeedbackLength=80
diff --git a/DInput8Wrapper.aps b/DInput8Wrapper.aps
index 4412d8c..e693e89 100644
Binary files a/DInput8Wrapper.aps and b/DInput8Wrapper.aps differ
diff --git a/DInput8Wrapper.rc b/DInput8Wrapper.rc
index 8288f63..a9a8cad 100644
Binary files a/DInput8Wrapper.rc and b/DInput8Wrapper.rc differ
diff --git a/Dinput8Wrapper.vcxproj b/Dinput8Wrapper.vcxproj
index 78c7c03..1b80d9a 100644
--- a/Dinput8Wrapper.vcxproj
+++ b/Dinput8Wrapper.vcxproj
@@ -42,13 +42,16 @@
-
+
+
+
+
-
+
@@ -103,7 +106,10 @@
-
+
+
+
+
@@ -127,7 +133,7 @@
-
+
@@ -146,7 +152,7 @@
-
+
@@ -170,7 +176,7 @@
-
+
diff --git a/Dinput8Wrapper.vcxproj.filters b/Dinput8Wrapper.vcxproj.filters
index 06e4af9..bb7111b 100644
--- a/Dinput8Wrapper.vcxproj.filters
+++ b/Dinput8Wrapper.vcxproj.filters
@@ -48,7 +48,7 @@
Game Files
-
+
Game Files
@@ -72,7 +72,7 @@
Game Files
-
+
Game Files
@@ -131,7 +131,7 @@
-
+
@@ -152,6 +152,9 @@
+
+
+
@@ -190,7 +193,7 @@
Common Header Files
-
+
Game Files
@@ -215,7 +218,7 @@
Game Files
-
+
Game Files
@@ -314,7 +317,7 @@
Common Header Files
-
+
Common Header Files
@@ -371,6 +374,15 @@
Common Header Files
+
+ Common Header Files
+
+
+ Common Header Files
+
+
+ Common Header Files
+
diff --git a/DllMain.cpp b/DllMain.cpp
index c9f1ff9..dda5422 100644
--- a/DllMain.cpp
+++ b/DllMain.cpp
@@ -57,9 +57,12 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include "Game Files/InitialD6.h"
#include "Game Files/InitialD7.h"
#include "Game Files/InitialD8.h"
-#include "Game Files/MarioKartGPDX.h"
-#include "Game Files/MarioKartGPDX1.10.h"
-#include "Game Files/MarioKartGPDXUSA.h"
+#include "Game Files/MarioKartGPDXCustom.h"
+#include "Game Files/MarioKartGPDX1.10Custom.h"
+#include "Game Files/MarioKartGPDX1.10Real.h"
+#include "Game Files/MarioKartGPDX1.18Real.h"
+#include "Game Files/MarioKartGPDXUSACustom.h"
+#include "Game Files/MarioKartGPDXUSAReal.h"
#include "Game Files/MAMESupermodel.h"
#include "Game Files/OutRun2Fake.h"
#include "Game Files/OutRun2Real.h"
@@ -993,7 +996,7 @@ const int FORD_RACING = 7;
const int INITIAL_D_6 = 8;
const int WMMT_5 = 9;
const int GRID_ = 10;
-const int MARIO_KART_GPDX = 11;
+const int MARIO_KART_GPDX_CUSTOM = 11;
const int OUTRUN_2Fake = 12;
const int BG4_JP = 13;
const int MACH_STORM = 14;
@@ -1002,7 +1005,7 @@ const int INITIAL_D_4 = 16;
const int INITIAL_D_7 = 17;
const int INITIAL_D_8 = 18;
const int POKKEN_TOURNAMENT = 19;
-const int MARIO_KART_GPDX_110 = 20;
+const int MARIO_KART_GPDX_110_CUSTOM = 20;
const int Sonic_Sega_AllStars_Racing = 21;
const int MAME_ = 22;
const int INITIAL_D_5 = 23;
@@ -1031,7 +1034,7 @@ const int R_Tuned = 46;
const int SEGA_RALLY_3_Other = 47;
const int INITIAL_D_0_211 = 49;
const int SWDC_2018 = 50;
-const int MARIO_KART_GPDX_USA = 51;
+const int MARIO_KART_GPDX_USA_CUSTOM = 51;
const int WMMT_6 = 52;
const int WMMT_6_R = 53;
const int SRG = 54;
@@ -1048,6 +1051,9 @@ const int GAELCO_TUNING_RACE = 64;
const int TOKYO_COP = 65;
const int RING_RIDERS = 66;
const int INITIAL_D_0_230 = 67;
+const int MARIO_KART_GPDX_118_REAL = 68;
+const int MARIO_KART_GPDX_110_REAL = 69;
+const int MARIO_KART_GPDX_USA_REAL = 70;
HINSTANCE Get_hInstance()
{
@@ -2429,8 +2435,8 @@ DWORD WINAPI FFBLoop(LPVOID lpParam)
case WMMT_5DXPlus:
game = new WMMT5DXPlus;
break;
- case MARIO_KART_GPDX:
- game = new MarioKartGPDX100;
+ case MARIO_KART_GPDX_CUSTOM:
+ game = new MarioKartGPDX100Custom;
break;
case OUTRUN_2Fake:
game = new OutRun2Fake;
@@ -2450,11 +2456,11 @@ DWORD WINAPI FFBLoop(LPVOID lpParam)
case RAMBO_:
game = new Rambo;
break;
- case MARIO_KART_GPDX_110:
- game = new MarioKartGPDX110;
+ case MARIO_KART_GPDX_110_CUSTOM:
+ game = new MarioKartGPDX110Custom;
break;
- case MARIO_KART_GPDX_USA:
- game = new MarioKartGPDXUSA;
+ case MARIO_KART_GPDX_USA_CUSTOM:
+ game = new MarioKartGPDXUSACustom;
break;
case Sonic_Sega_AllStars_Racing:
game = new SonicSegaAllStarsRacing;
@@ -2540,6 +2546,15 @@ DWORD WINAPI FFBLoop(LPVOID lpParam)
case RING_RIDERS:
game = new RingRiders;
break;
+ case MARIO_KART_GPDX_118_REAL:
+ game = new MarioKartGPDX118Real;
+ break;
+ case MARIO_KART_GPDX_110_REAL:
+ game = new MarioKartGPDX110Real;
+ break;
+ case MARIO_KART_GPDX_USA_REAL:
+ game = new MarioKartGPDXUSAReal;
+ break;
case TEST_GAME_CONST:
case TEST_GAME_FRICTION:
case TEST_GAME_SINE:
diff --git a/Game Files/MarioKartGPDX1.10.cpp b/Game Files/MarioKartGPDX1.10Custom.cpp
similarity index 98%
rename from Game Files/MarioKartGPDX1.10.cpp
rename to Game Files/MarioKartGPDX1.10Custom.cpp
index c7ee06e..dac882d 100644
--- a/Game Files/MarioKartGPDX1.10.cpp
+++ b/Game Files/MarioKartGPDX1.10Custom.cpp
@@ -12,7 +12,7 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
*/
#include
-#include "MarioKartGPDX1.10.h"
+#include "MarioKartGPDX1.10Custom.h"
extern int EnableDamper;
extern int DamperStrength;
@@ -52,7 +52,7 @@ static int RoughTrackRumbleStrength = GetPrivateProfileInt(TEXT("Settings"), TEX
static int BridgeRumble = GetPrivateProfileInt(TEXT("Settings"), TEXT("BridgeRumble"), 0, settingsFilename);
static int BridgeRumbleStrength = GetPrivateProfileInt(TEXT("Settings"), TEXT("BridgeRumbleStrength"), 0, settingsFilename);
-void MarioKartGPDX110::FFBLoop(EffectConstants *constants, Helpers *helpers, EffectTriggers* triggers) {
+void MarioKartGPDX110Custom::FFBLoop(EffectConstants *constants, Helpers *helpers, EffectTriggers* triggers) {
INT_PTR ff1 = helpers->ReadIntPtr(0xA46974, /* isRelativeOffset */ true); //shake
INT_PTR ff2 = helpers->ReadIntPtr(0x00A416E4,/* isRelativeOffset */ true);
diff --git a/Game Files/MarioKartGPDXUSA.h b/Game Files/MarioKartGPDX1.10Custom.h
similarity index 94%
rename from Game Files/MarioKartGPDXUSA.h
rename to Game Files/MarioKartGPDX1.10Custom.h
index badd5e6..f2882ad 100644
--- a/Game Files/MarioKartGPDXUSA.h
+++ b/Game Files/MarioKartGPDX1.10Custom.h
@@ -13,7 +13,7 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#pragma once
#include "../Common Files/Game.h"
-class MarioKartGPDXUSA : public Game {
+class MarioKartGPDX110Custom : public Game {
public:
void FFBLoop(EffectConstants *constants, Helpers *helpers, EffectTriggers* triggers);
diff --git a/Game Files/MarioKartGPDX1.10Real.cpp b/Game Files/MarioKartGPDX1.10Real.cpp
new file mode 100644
index 0000000..c5783dc
--- /dev/null
+++ b/Game Files/MarioKartGPDX1.10Real.cpp
@@ -0,0 +1,43 @@
+/*This file is part of FFB Arcade Plugin.
+FFB Arcade Plugin 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 3 of the License, or
+(at your option) any later version.
+FFB Arcade Plugin 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 FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
+*/
+
+#include
+#include "MarioKartGPDX1.10Real.h"
+
+extern int EnableDamper;
+extern int DamperStrength;
+
+void MarioKartGPDX110Real::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers* triggers) {
+
+ if (EnableDamper)
+ triggers->Damper(DamperStrength / 100.0);
+
+ DWORD Base = helpers->ReadInt32(0xA2FE20, true);
+ DWORD BaseOff0 = helpers->ReadInt32(Base + 0x08, false);
+ float FFB = helpers->ReadFloat32(BaseOff0 + 0xA44, false);
+
+ if (FFB > 0)
+ {
+ double percentForce = FFB;
+ double percentLength = 100;
+ triggers->Rumble(percentForce, 0, percentLength);
+ triggers->Constant(constants->DIRECTION_FROM_LEFT, percentForce);
+ }
+ else if (FFB < 0)
+ {
+ double percentForce = -FFB;
+ double percentLength = 100;
+ triggers->Rumble(0, percentForce, percentLength);
+ triggers->Constant(constants->DIRECTION_FROM_RIGHT, percentForce);
+ }
+}
\ No newline at end of file
diff --git a/Game Files/MarioKartGPDX1.10Real.h b/Game Files/MarioKartGPDX1.10Real.h
new file mode 100644
index 0000000..254ad04
--- /dev/null
+++ b/Game Files/MarioKartGPDX1.10Real.h
@@ -0,0 +1,20 @@
+/*This file is part of FFB Arcade Plugin.
+FFB Arcade Plugin 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 3 of the License, or
+(at your option) any later version.
+FFB Arcade Plugin 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 FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+#include "../Common Files/Game.h"
+class MarioKartGPDX110Real : public Game {
+
+public:
+ void FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers* triggers);
+};
diff --git a/Game Files/MarioKartGPDX1.18Real.cpp b/Game Files/MarioKartGPDX1.18Real.cpp
new file mode 100644
index 0000000..79ef602
--- /dev/null
+++ b/Game Files/MarioKartGPDX1.18Real.cpp
@@ -0,0 +1,43 @@
+/*This file is part of FFB Arcade Plugin.
+FFB Arcade Plugin 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 3 of the License, or
+(at your option) any later version.
+FFB Arcade Plugin 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 FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
+*/
+
+#include
+#include "MarioKartGPDX1.18Real.h"
+
+extern int EnableDamper;
+extern int DamperStrength;
+
+void MarioKartGPDX118Real::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers* triggers) {
+
+ if (EnableDamper)
+ triggers->Damper(DamperStrength / 100.0);
+
+ DWORD Base = helpers->ReadInt32(0xAAEEA0, true);
+ DWORD BaseOff0 = helpers->ReadInt32(Base + 0x08, false);
+ float FFB = helpers->ReadFloat32(BaseOff0 + 0xBC8, false);
+
+ if (FFB > 0)
+ {
+ double percentForce = FFB;
+ double percentLength = 100;
+ triggers->Rumble(percentForce, 0, percentLength);
+ triggers->Constant(constants->DIRECTION_FROM_LEFT, percentForce);
+ }
+ else if (FFB < 0)
+ {
+ double percentForce = -FFB;
+ double percentLength = 100;
+ triggers->Rumble(0, percentForce, percentLength);
+ triggers->Constant(constants->DIRECTION_FROM_RIGHT, percentForce);
+ }
+}
\ No newline at end of file
diff --git a/Game Files/MarioKartGPDX1.18Real.h b/Game Files/MarioKartGPDX1.18Real.h
new file mode 100644
index 0000000..453d7fb
--- /dev/null
+++ b/Game Files/MarioKartGPDX1.18Real.h
@@ -0,0 +1,20 @@
+/*This file is part of FFB Arcade Plugin.
+FFB Arcade Plugin 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 3 of the License, or
+(at your option) any later version.
+FFB Arcade Plugin 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 FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+#include "../Common Files/Game.h"
+class MarioKartGPDX118Real : public Game {
+
+public:
+ void FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers* triggers);
+};
diff --git a/Game Files/MarioKartGPDX.cpp b/Game Files/MarioKartGPDXCustom.cpp
similarity index 96%
rename from Game Files/MarioKartGPDX.cpp
rename to Game Files/MarioKartGPDXCustom.cpp
index e51e495..9e07d55 100644
--- a/Game Files/MarioKartGPDX.cpp
+++ b/Game Files/MarioKartGPDXCustom.cpp
@@ -12,12 +12,12 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
*/
#include
-#include "MarioKartGPDX.h"
+#include "MarioKartGPDXCustom.h"
extern int EnableDamper;
extern int DamperStrength;
-void MarioKartGPDX100::FFBLoop(EffectConstants *constants, Helpers *helpers, EffectTriggers* triggers) {
+void MarioKartGPDX100Custom::FFBLoop(EffectConstants *constants, Helpers *helpers, EffectTriggers* triggers) {
helpers->log("in MKDX Ffbloop");
int ff1 = helpers->ReadInt32(0x564C5F, /* isRelativeOffset */ true); //shake
diff --git a/Game Files/MarioKartGPDX.h b/Game Files/MarioKartGPDXCustom.h
similarity index 94%
rename from Game Files/MarioKartGPDX.h
rename to Game Files/MarioKartGPDXCustom.h
index 2a0e60f..8e61bce 100644
--- a/Game Files/MarioKartGPDX.h
+++ b/Game Files/MarioKartGPDXCustom.h
@@ -13,7 +13,7 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#pragma once
#include "../Common Files/Game.h"
-class MarioKartGPDX100 : public Game {
+class MarioKartGPDX100Custom : public Game {
public:
void FFBLoop(EffectConstants *constants, Helpers *helpers, EffectTriggers* triggers);
diff --git a/Game Files/MarioKartGPDXUSA.cpp b/Game Files/MarioKartGPDXUSACustom.cpp
similarity index 98%
rename from Game Files/MarioKartGPDXUSA.cpp
rename to Game Files/MarioKartGPDXUSACustom.cpp
index c1c8688..e150e23 100644
--- a/Game Files/MarioKartGPDXUSA.cpp
+++ b/Game Files/MarioKartGPDXUSACustom.cpp
@@ -12,12 +12,12 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
*/
#include
-#include "MarioKartGPDXUSA.h"
+#include "MarioKartGPDXUSACustom.h"
extern int EnableDamper;
extern int DamperStrength;
-void MarioKartGPDXUSA::FFBLoop(EffectConstants *constants, Helpers *helpers, EffectTriggers* triggers) {
+void MarioKartGPDXUSACustom::FFBLoop(EffectConstants *constants, Helpers *helpers, EffectTriggers* triggers) {
wchar_t *settingsFilename = TEXT(".\\FFBPlugin.ini");
int ConstantEffectForSteering = GetPrivateProfileInt(TEXT("Settings"), TEXT("ConstantEffectForSteering"), 0, settingsFilename);
diff --git a/Game Files/MarioKartGPDX1.10.h b/Game Files/MarioKartGPDXUSACustom.h
similarity index 94%
rename from Game Files/MarioKartGPDX1.10.h
rename to Game Files/MarioKartGPDXUSACustom.h
index cf48747..4228308 100644
--- a/Game Files/MarioKartGPDX1.10.h
+++ b/Game Files/MarioKartGPDXUSACustom.h
@@ -13,7 +13,7 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#pragma once
#include "../Common Files/Game.h"
-class MarioKartGPDX110 : public Game {
+class MarioKartGPDXUSACustom : public Game {
public:
void FFBLoop(EffectConstants *constants, Helpers *helpers, EffectTriggers* triggers);
diff --git a/Game Files/MarioKartGPDXUSAReal.cpp b/Game Files/MarioKartGPDXUSAReal.cpp
new file mode 100644
index 0000000..f2b76a9
--- /dev/null
+++ b/Game Files/MarioKartGPDXUSAReal.cpp
@@ -0,0 +1,43 @@
+/*This file is part of FFB Arcade Plugin.
+FFB Arcade Plugin 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 3 of the License, or
+(at your option) any later version.
+FFB Arcade Plugin 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 FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
+*/
+
+#include
+#include "MarioKartGPDXUSAReal.h"
+
+extern int EnableDamper;
+extern int DamperStrength;
+
+void MarioKartGPDXUSAReal::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers* triggers) {
+
+ if (EnableDamper)
+ triggers->Damper(DamperStrength / 100.0);
+
+ DWORD Base = helpers->ReadInt32(0xB47B48, true);
+ DWORD BaseOff0 = helpers->ReadInt32(Base + 0x08, false);
+ float FFB = helpers->ReadFloat32(BaseOff0 + 0x2FC, false);
+
+ if (FFB > 0)
+ {
+ double percentForce = FFB;
+ double percentLength = 100;
+ triggers->Rumble(percentForce, 0, percentLength);
+ triggers->Constant(constants->DIRECTION_FROM_LEFT, percentForce);
+ }
+ else if (FFB < 0)
+ {
+ double percentForce = -FFB;
+ double percentLength = 100;
+ triggers->Rumble(0, percentForce, percentLength);
+ triggers->Constant(constants->DIRECTION_FROM_RIGHT, percentForce);
+ }
+}
\ No newline at end of file
diff --git a/Game Files/MarioKartGPDXUSAReal.h b/Game Files/MarioKartGPDXUSAReal.h
new file mode 100644
index 0000000..a681496
--- /dev/null
+++ b/Game Files/MarioKartGPDXUSAReal.h
@@ -0,0 +1,20 @@
+/*This file is part of FFB Arcade Plugin.
+FFB Arcade Plugin 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 3 of the License, or
+(at your option) any later version.
+FFB Arcade Plugin 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 FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+#include "../Common Files/Game.h"
+class MarioKartGPDXUSAReal : public Game {
+
+public:
+ void FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers* triggers);
+};
diff --git a/Version.txt b/Version.txt
index f263714..54fb842 100644
--- a/Version.txt
+++ b/Version.txt
@@ -1 +1 @@
-v2.0.0.27
\ No newline at end of file
+v2.0.0.28
\ No newline at end of file