1
0
mirror of synced 2024-11-23 22:40:57 +01:00

new game support

This commit is contained in:
Boomslangnz 2024-07-20 10:33:49 +12:00
parent 9865e6f77e
commit ca465525b0
13 changed files with 146 additions and 25 deletions

View File

@ -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..

View File

@ -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.

View File

@ -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" />

View File

@ -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" />

View File

@ -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:

View File

@ -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
View 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
View 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);
};

View File

@ -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);
}

View File

@ -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

View File

@ -1 +1 @@
v2.0.0.38
v2.0.0.39