new game support
This commit is contained in:
parent
9865e6f77e
commit
ca465525b0
@ -8,6 +8,8 @@ xcopy ".\Release.x64\dinput8.dll" ".\Release.Win32\Initial D Zero v211" /Y
|
||||
xcopy ".\Release.x64\SDL2.dll" ".\Release.Win32\Initial D Zero v211" /Y
|
||||
xcopy ".\Release.x64\dinput8.dll" ".\Release.Win32\Initial D Zero v230" /Y
|
||||
xcopy ".\Release.x64\SDL2.dll" ".\Release.Win32\Initial D Zero v230" /Y
|
||||
xcopy ".\Release.x64\dinput8.dll" ".\Release.Win32\Initial D The Arcade v231" /Y
|
||||
xcopy ".\Release.x64\SDL2.dll" ".\Release.Win32\Initial D The Arcade v231" /Y
|
||||
xcopy ".\Release.x64\dinput8.dll" ".\Release.Win32\Sega World Drivers Championship 2018" /Y
|
||||
xcopy ".\Release.x64\SDL2.dll" ".\Release.Win32\Sega World Drivers Championship 2018" /Y
|
||||
xcopy ".\Release.x64\dinput8.dll" ".\Release.Win32\MAME 64bit Outputs" /Y
|
||||
@ -84,18 +86,12 @@ cd..
|
||||
cd Dirty Drivin'
|
||||
rename dinput8.dll d3d9.dll
|
||||
cd..
|
||||
cd FnF
|
||||
rename dinput8.dll dinput8.dll
|
||||
cd..
|
||||
cd FnFDrift
|
||||
rename dinput8.dll dinput8.dll
|
||||
cd..
|
||||
cd FnFSuperCars
|
||||
rename dinput8.dll dinput8.dll
|
||||
cd..
|
||||
cd H2Overdrive
|
||||
rename dinput8.dll d3d9.dll
|
||||
cd..
|
||||
cd Hummer Extreme
|
||||
rename dinput8.dll winmm.dll
|
||||
cd..
|
||||
cd HOTD4
|
||||
rename dinput8.dll opengl32.dll
|
||||
cd..
|
||||
|
@ -348,21 +348,21 @@ DefaultCentering=15
|
||||
EnableDamper=0
|
||||
DamperStrength=100
|
||||
|
||||
[FnF]
|
||||
[FNF]
|
||||
GameId=77
|
||||
FeedbackLength=500
|
||||
DefaultCentering=15
|
||||
EnableDamper=0
|
||||
DamperStrength=100
|
||||
|
||||
[FNFDrift]
|
||||
[FNF Drift]
|
||||
GameId=78
|
||||
FeedbackLength=500
|
||||
DefaultCentering=15
|
||||
EnableDamper=0
|
||||
DamperStrength=100
|
||||
|
||||
[FNFSuperCars]
|
||||
[FNF SuperCars]
|
||||
GameId=79
|
||||
FeedbackLength=500
|
||||
DefaultCentering=15
|
||||
@ -431,6 +431,17 @@ EnableOutputs=0
|
||||
DoubleSine=0
|
||||
DoubleConstant=0
|
||||
|
||||
[Initial D The Arcade v231]
|
||||
GameId=82
|
||||
FeedbackLength=80
|
||||
PowerMode=0
|
||||
EnableForceSpringEffect=0
|
||||
ForceSpringStrength=70
|
||||
EnableDamper=0
|
||||
DamperStrength=100
|
||||
DoubleSine=0
|
||||
DoubleConstant=0
|
||||
|
||||
[Initial D 4]
|
||||
GameId=16
|
||||
FeedbackLength=5000
|
||||
|
Binary file not shown.
Binary file not shown.
@ -43,6 +43,8 @@
|
||||
<ClInclude Include="Game Files\GRIDReal.h" />
|
||||
<ClInclude Include="Game Files\H2Overdrive.h" />
|
||||
<ClInclude Include="Game Files\HOTD4.h" />
|
||||
<ClInclude Include="Game Files\HummerExtreme.h" />
|
||||
<ClInclude Include="Game Files\IDTAv231.h" />
|
||||
<ClInclude Include="Game Files\InitialD0v131.h" />
|
||||
<ClInclude Include="Game Files\InitialD0v211.h" />
|
||||
<ClInclude Include="Game Files\InitialD0v230.h" />
|
||||
@ -113,6 +115,8 @@
|
||||
<ClCompile Include="Game Files\GRIDReal.cpp" />
|
||||
<ClCompile Include="Game Files\H2Overdrive.cpp" />
|
||||
<ClCompile Include="Game Files\HOTD4.cpp" />
|
||||
<ClCompile Include="Game Files\HummerExtreme.cpp" />
|
||||
<ClCompile Include="Game Files\IDTAv231.cpp" />
|
||||
<ClCompile Include="Game Files\InitialD0v131.cpp" />
|
||||
<ClCompile Include="Game Files\DemulInitialDInputs.cpp" />
|
||||
<ClCompile Include="Game Files\InitialD0v211.cpp" />
|
||||
|
@ -165,6 +165,8 @@
|
||||
<ClCompile Include="Game Files\FnFDrift.cpp" />
|
||||
<ClCompile Include="Game Files\FnFSuperCars.cpp" />
|
||||
<ClCompile Include="Game Files\SegaRaceTV.cpp" />
|
||||
<ClCompile Include="Game Files\IDTAv231.cpp" />
|
||||
<ClCompile Include="Game Files\HummerExtreme.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="Game Files\Daytona3.h">
|
||||
@ -423,6 +425,12 @@
|
||||
<ClInclude Include="Game Files\SegaRaceTV.h">
|
||||
<Filter>Common Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Game Files\IDTAv231.h">
|
||||
<Filter>Common Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Game Files\HummerExtreme.h">
|
||||
<Filter>Common Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<MASM Include="DLLWrapper.asm" />
|
||||
|
@ -63,6 +63,7 @@ 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/IDTAv231.h"
|
||||
#include "Game Files/MarioKartGPDXCustom.h"
|
||||
#include "Game Files/MarioKartGPDX1.10Custom.h"
|
||||
#include "Game Files/MarioKartGPDX1.10Real.h"
|
||||
@ -1080,6 +1081,7 @@ const int FNF_DRIFT = 78;
|
||||
const int FNF_SUPERCARS = 79;
|
||||
const int SEGA_RACE_TV = 80;
|
||||
const int HUMMER_EXTREME = 81;
|
||||
const int INITIAL_D_THEARCADE_V231 = 82;
|
||||
|
||||
HINSTANCE Get_hInstance()
|
||||
{
|
||||
@ -2625,6 +2627,9 @@ DWORD WINAPI FFBLoop(LPVOID lpParam)
|
||||
case HUMMER_EXTREME:
|
||||
game = new HummerExtreme;
|
||||
break;
|
||||
case INITIAL_D_THEARCADE_V231:
|
||||
game = new InitialDTA231;
|
||||
break;
|
||||
case TEST_GAME_CONST:
|
||||
case TEST_GAME_FRICTION:
|
||||
case TEST_GAME_SINE:
|
||||
|
@ -92,8 +92,6 @@ void CruisnBlast::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTr
|
||||
//enable wheel found
|
||||
//myHelpers->WriteByte(0x8bab744, 1, false);
|
||||
|
||||
OutputDebugStringA("CruisnBlast FFB Loop");
|
||||
|
||||
MH_Initialize();
|
||||
MH_CreateHook((LPVOID)(0x8151b50), Wheel_SetHook, (LPVOID*)&Wheel_SetHookOrig);
|
||||
//remove wheel check for WHEEL_SET function
|
||||
|
74
Game Files/IDTAv231.cpp
Normal file
74
Game Files/IDTAv231.cpp
Normal file
@ -0,0 +1,74 @@
|
||||
/*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 <string>
|
||||
#include "IDTAv231.h"
|
||||
#include "math.h"
|
||||
|
||||
extern int EnableDamper;
|
||||
extern int DamperStrength;
|
||||
|
||||
static bool outputinit;
|
||||
|
||||
static wchar_t* settingsFilename = TEXT(".\\FFBPlugin.ini");
|
||||
static int EnableForceSpringEffect = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffect"), 0, settingsFilename);
|
||||
static int ForceSpringStrength = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrength"), 0, settingsFilename);
|
||||
|
||||
void InitialDTA231::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers* triggers) {
|
||||
|
||||
if (EnableDamper)
|
||||
triggers->Damper(DamperStrength / 100.0);
|
||||
|
||||
DWORD FFB = helpers->ReadInt32(0x3D35838, true);
|
||||
|
||||
BYTE* ffb = reinterpret_cast<BYTE*>(&FFB);
|
||||
|
||||
if (ffb[0] == 0x80 && ffb[2] == 0x01)
|
||||
{
|
||||
triggers->Spring(1.0);
|
||||
}
|
||||
|
||||
if (ffb[0] == 0x85 && ffb[1] > 0x00 && ffb[2] > 0x00)
|
||||
{
|
||||
double percentForce = ffb[2] / 127.0;
|
||||
double Period = ffb[1] / 127.0 * 120.0;
|
||||
double percentLength = 100;
|
||||
triggers->Rumble(percentForce, percentForce, percentLength);
|
||||
triggers->Sine(static_cast<int>(Period), 0, percentForce);
|
||||
}
|
||||
|
||||
if (ffb[0] == 0x86 && ffb[2] > 0x00)
|
||||
{
|
||||
double percentForce = ffb[2] / 127.0;
|
||||
double percentLength = 100;
|
||||
triggers->Spring(percentForce);
|
||||
}
|
||||
|
||||
if (ffb[0] == 0x84 && ffb[2] > 0x00)
|
||||
{
|
||||
if (ffb[1] == 0x00)
|
||||
{
|
||||
double percentForce = (128 - ffb[2]) / 127.0;
|
||||
double percentLength = 100;
|
||||
triggers->Rumble(percentForce, 0, percentLength);
|
||||
triggers->Constant(constants->DIRECTION_FROM_LEFT, percentForce);
|
||||
}
|
||||
else if (ffb[1] == 0x01)
|
||||
{
|
||||
double percentForce = (ffb[2] / 127.0);
|
||||
double percentLength = 100;
|
||||
triggers->Rumble(0, percentForce, percentLength);
|
||||
triggers->Constant(constants->DIRECTION_FROM_RIGHT, percentForce);
|
||||
}
|
||||
}
|
||||
}
|
20
Game Files/IDTAv231.h
Normal file
20
Game Files/IDTAv231.h
Normal file
@ -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 InitialDTA231 : public Game {
|
||||
public:
|
||||
void FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers* triggers);
|
||||
};
|
@ -25,7 +25,6 @@ extern int ForceSpringStrength;
|
||||
void SegaRaceTV::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers* triggers) {
|
||||
if (!init)
|
||||
{
|
||||
OutputDebugStringA("SegaRaceTV::FFBLoop");
|
||||
//enable IO calls
|
||||
helpers->WriteIntPtr(0x8b3fe90, 0x1, true);
|
||||
init = true;
|
||||
@ -42,9 +41,9 @@ void SegaRaceTV::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTri
|
||||
{
|
||||
double percentForce = ((128.0 - ff) / 127.0);
|
||||
|
||||
std::ostringstream ss;
|
||||
ss << "LEFT: " << percentForce << " FF: " << ff;
|
||||
OutputDebugStringA(ss.str().c_str());
|
||||
//std::ostringstream ss;
|
||||
//ss << "LEFT: " << percentForce << " FF: " << ff;
|
||||
//OutputDebugStringA(ss.str().c_str());
|
||||
|
||||
|
||||
|
||||
@ -54,9 +53,9 @@ void SegaRaceTV::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTri
|
||||
else if (ff > 128)
|
||||
{
|
||||
double percentForce = ((ff - 128.0) / 127.0);
|
||||
std::ostringstream ss;
|
||||
ss << "RIGHT: " << percentForce << " FF: " << ff;
|
||||
OutputDebugStringA(ss.str().c_str());
|
||||
//std::ostringstream ss;
|
||||
//ss << "RIGHT: " << percentForce << " FF: " << ff;
|
||||
//OutputDebugStringA(ss.str().c_str());
|
||||
triggers->Rumble(percentForce, 0, 100.0);
|
||||
triggers->Constant(constants->DIRECTION_FROM_RIGHT, percentForce);
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
***FFB Arcade Plugin***
|
||||
|
||||
Brought to you by Boomslangnz, Ducon2016, Spazzy, Adam_, jpb & pinkimo.
|
||||
Brought to you by Boomslangnz, MightyMike, Ducon2016, Spazzy, Adam_, jpb & pinkimo.
|
||||
|
||||
This is a plugin to provide Force Feedback and Rumble to various arcade games.
|
||||
|
||||
@ -95,8 +95,8 @@ MAME:
|
||||
-California Speed
|
||||
-Chase Bombers
|
||||
-Cisco Heat
|
||||
-Crusn'USA
|
||||
-Crusn' World
|
||||
-Cruisn'USA
|
||||
-Cruisn' World
|
||||
-Daytona USA
|
||||
-F-1 Grand Prix Star
|
||||
-F-1 Grand Prix Star II
|
||||
@ -195,17 +195,22 @@ TEKNOPARROT:
|
||||
-Batman (2013)
|
||||
-Battle Gear 4 Tuned (Japan version v2.07)
|
||||
-ChaseHQ 2
|
||||
-Cruisn' Blast
|
||||
-Daytona Championship USA
|
||||
-Daytona Championship USA New Season Edition
|
||||
-Dead Heat
|
||||
-Dead Heat Riders
|
||||
-Dirty Drivin
|
||||
-Ford Racing
|
||||
-FNF
|
||||
-FNF Drift
|
||||
-FNF Supercars
|
||||
-Gaelco Tuning Race
|
||||
-Golden Gun
|
||||
-GRID
|
||||
-GTI Club Supermini Festa
|
||||
-House of the dead 4
|
||||
-Hummer Extreme
|
||||
-Initial D Arcade Stage 4
|
||||
-Initial D Arcade Stage 4 Japan
|
||||
-Initial D Arcade Stage 5
|
||||
@ -213,6 +218,7 @@ TEKNOPARROT:
|
||||
-Initial D Arcade Stage 7
|
||||
-Initial D Arcade Stage 8
|
||||
-Initial D Arcade Stage Zero
|
||||
-Initial D Arcade The Arcade v2.31
|
||||
-KO Drive
|
||||
-Let's Go Island
|
||||
-Let's Go Island 3D
|
||||
|
@ -1 +1 @@
|
||||
v2.0.0.38
|
||||
v2.0.0.39
|
Loading…
Reference in New Issue
Block a user