1
0
mirror of synced 2024-11-27 16:10:52 +01:00

Add optional damper effect to all wheel games

This commit is contained in:
Aaron M 2021-02-20 21:34:03 +13:00
parent dd007445e0
commit 573b74546f
43 changed files with 670 additions and 50 deletions

View File

@ -76,6 +76,8 @@ ShowButtonNumbersForSetup=0
ChangeGearsViaPlugin=0
EscapeKeyExitViaPlugin=0
MenuMovementViaPlugin=0
EnableDamper=0
DamperStrength=100
Gear1=99
Gear2=99
Gear3=99
@ -93,6 +95,8 @@ AlternativeMaxForceLeft=-75
AlternativeMinForceRight=0
AlternativeMaxForceRight=75
DefaultCentering=15
EnableDamper=0
DamperStrength=100
[Chase HQ 2]
GameId=3
@ -103,6 +107,8 @@ AlternativeMaxForceLeft=-75
AlternativeMinForceRight=0
AlternativeMaxForceRight=75
DefaultCentering=15
EnableDamper=0
DamperStrength=100
[GRID]
GameId=10
@ -110,6 +116,8 @@ FeedbackLength=80
SpringStrength=65
GearChangeStrength=50
GearChangeLength=80
EnableDamper=0
DamperStrength=100
[Afterburner Climax]
GameId=15
@ -120,6 +128,8 @@ Rumble2Length=200
[Storm Racer G]
GameId=48
EnableDamper=0
DamperStrength=100
[HOTD4]
GameId=4
@ -172,43 +182,61 @@ HowtoRumbleHealthEffect=0
[Dirty Drivin']
GameId=42
FeedbackLength=500
EnableDamper=0
DamperStrength=100
[H2Overdrive]
GameId=43
FeedbackLength=500
EnableDamper=0
DamperStrength=100
[Winter X Games SnoCross]
GameId=44
FeedbackLength=500
EnableDamper=0
DamperStrength=100
[Batman]
GameId=45
FeedbackLength=500
EnableDamper=0
DamperStrength=100
[R-Tuned]
GameId=46
SpringStrength=100
FeedbackLength=500
EnableDamper=0
DamperStrength=100
[Sega Racing Classic]
GameId=5
FeedbackLength=500
PowerMode=0
EnableDamper=0
DamperStrength=100
[Sega Rally 3]
GameId=6
FeedbackLength=500
DefaultCentering=15
EnableDamper=0
DamperStrength=100
[Sega Rally 3 Other]
GameId=47
FeedbackLength=500
DefaultCentering=15
EnableDamper=0
DamperStrength=100
[KODrive]
GameId=39
PowerMode=0
FeedbackLength=500
EnableDamper=0
DamperStrength=100
[Initial D Zero v131]
GameId=32
@ -218,6 +246,8 @@ IDZMode=0
EnableForceSpringEffect=0
ForceSpringStrength=70
EscapeKeyExitViaPlugin=0
EnableDamper=0
DamperStrength=100
[Initial D Zero v211]
GameId=49
@ -227,51 +257,71 @@ IDZMode=0
EnableForceSpringEffect=0
ForceSpringStrength=70
EscapeKeyExitViaPlugin=0
EnableDamper=0
DamperStrength=100
[Initial D 4]
GameId=16
FeedbackLength=5000
PowerMode=0
EnableDamper=0
DamperStrength=100
[Initial D 4 Japan]
GameId=24
FeedbackLength=5000
PowerMode=0
EnableDamper=0
DamperStrength=100
[Initial D 5]
GameId=23
FeedbackLength=5000
PowerMode=0
EnableDamper=0
DamperStrength=100
[Initial D 6]
GameId=8
FeedbackLength=5000
PowerMode=0
EnableDamper=0
DamperStrength=100
[Initial D 7]
GameId=17
FeedbackLength=5000
PowerMode=0
EnableDamper=0
DamperStrength=100
[Initial D 8]
GameId=18
FeedbackLength=5000
PowerMode=0
EnableDamper=0
DamperStrength=100
[Sega World Drivers Championship 2018]
GameId=50
FeedbackLength=80
PowerMode=0
EscapeKeyExitViaPlugin=0
EnableDamper=0
DamperStrength=100
[Ford Racing]
GameId=7
FeedbackLength=600
DefaultCentering=20
EnableDamper=0
DamperStrength=100
[Ford Racing Other]
GameId=38
FeedbackLength=600
EnableDamper=0
DamperStrength=100
[Machstorm]
GameId=14
@ -304,11 +354,15 @@ FeedbackLength=80
GameId=11
DefaultCentering=25
FeedbackLength=80
EnableDamper=0
DamperStrength=100
[Battle Gear 4 Tuned]
GameId=13
DefaultCentering=25
FeedbackLength=500
EnableDamper=0
DamperStrength=100
[Transformers]
GameId=40
@ -375,6 +429,8 @@ DefaultCentering=-1
PowerMode=0
ShowButtonNumbersForSetup=0
ChangeGearsViaPlugin=0
EnableDamper=0
DamperStrength=100
Gear1=99
Gear2=99
Gear3=99
@ -388,6 +444,8 @@ FeedbackLength=80
SpringStrength=50
ShowButtonNumbersForSetup=0
ChangeGearsViaPlugin=0
EnableDamper=0
DamperStrength=100
Gear1=99
Gear2=99
Gear3=99
@ -417,6 +475,8 @@ EnableForceFinish=0
EnableForceTimeUp=0
ForceFinishButton=99
ForceTimeUpButton=99
EnableDamper=0
DamperStrength=100
[WMMT6]
GameId=52
@ -434,6 +494,8 @@ GearChangeStrength=20
GearChangeDelay=250
GearChangeLength=200
LimitBetweenHighSpeedVibrationsAndTiresSlip=75
EnableDamper=0
DamperStrength=100
[WMMT6R]
GameId=53
@ -451,15 +513,21 @@ GearChangeStrength=20
GearChangeDelay=250
GearChangeLength=200
LimitBetweenHighSpeedVibrationsAndTiresSlip=75
EnableDamper=0
DamperStrength=100
[Sonic & Sega All Stars Racing]
GameId=21
FeedbackLength=500
EnableDamper=1
DamperStrength=100
[GTI Club Supermini Festa]
GameId=27
FeedbackLength=500
PowerMode=0
EnableDamper=0
DamperStrength=100
[Road Fighters 3D]
GameId=29
@ -470,6 +538,8 @@ AlternativeMaxForceLeft=-75
AlternativeMinForceRight=0
AlternativeMaxForceRight=75
FeedbackLength=500
EnableDamper=1
DamperStrength=100
CabinetID=1
Only2D=0
HackToSkipMenuError=1
@ -584,6 +654,8 @@ Button10Device2Rumble=99
GameId=20
DefaultCentering=-1
FeedbackLength=80
EnableDamper=0
DamperStrength=100
ConstantEffectForSteering=1
ConstantEffectForSteeringStrength=128
WeaponRumble=1
@ -623,6 +695,8 @@ HideCursor=0
GameId=51
DefaultCentering=-1
FeedbackLength=80
EnableDamper=0
DamperStrength=100
ConstantEffectForSteering=1
ConstantEffectForSteeringStrength=128
WeaponRumble=1
@ -719,6 +793,8 @@ Gear3Device2=99
Gear4Device2=99
PowerModeInitialDDemul=0
FeedbackLengthInitialDDemul=5000
EnableDamperInitialDDemul=0
DamperStrengthInitialDDemul=100
MinForceInitialDDemul=0
MaxForceInitialDDemul=100
AlternativeMinForceLeftInitialDDemul=0
@ -729,6 +805,8 @@ EnableForceSpringEffectInitialDDemul=0
ForceSpringStrengthInitialDDemul=80
PowerModeNascarRacing=0
FeedbackLengthNascarRacing=500
EnableDamperNascarRacing=0
DamperStrengthNascarRacing=100
MinForceNascarRacing=0
MaxForceNascarRacing=100
AlternativeMinForceLeftNascarRacing=0
@ -739,6 +817,8 @@ EnableForceSpringEffectNascarRacing=0
ForceSpringStrengthNascarRacing=80
PowerModeSmashingDrive=0
FeedbackLengthSmashingDrive=500
EnableDamperSmashingDrive=0
DamperStrengthSmashingDrive=100
MinForceSmashingDrive=0
MaxForceSmashingDrive=100
AlternativeMinForceLeftSmashingDrive=0
@ -749,6 +829,8 @@ EnableForceSpringEffectSmashingDrive=0
ForceSpringStrengthSmashingDrive=80
PowerModeMaximumSpeed=0
FeedbackLengthMaximumSpeed=500
EnableDamperMaximumSpeed=0
DamperStrengthMaximumSpeed=100
MinForceMaximumSpeed=0
MaxForceMaximumSpeed=100
AlternativeMinForceLeftMaximumSpeed=0
@ -759,6 +841,8 @@ EnableForceSpringEffectMaximumSpeed=0
ForceSpringStrengthMaximumSpeed=80
PowerModeFasterSpeed=0
FeedbackLengthFasterSpeed=500
EnableDamperFasterSpeed=0
DamperStrengthFasterSpeed=100
MinForceFasterSpeed=0
MaxForceFasterSpeed=100
AlternativeMinForceLeftFasterSpeed=0
@ -769,6 +853,8 @@ EnableForceSpringEffectFasterSpeed=0
ForceSpringStrengthFasterSpeed=80
PowerModeATVTrack=0
FeedbackLengthATVTrack=500
EnableDamperATVTrack=0
DamperStrengthATVTrack=100
MinForceATVTrack=0
MaxForceATVTrack=100
AlternativeMinForceLeftATVTrack=0
@ -784,6 +870,8 @@ DaytonaAIMultiplayerHack=0
DaytonaForcePanoramicAttract=0
EnableOutputs=0
FeedbackLengthDaytona=500
EnableDamperDaytona=0
DamperStrengthDaytona=100
PowerModeDaytona=0
EnableForceSpringEffectDaytona=0
ForceSpringStrengthDaytona=80
@ -794,6 +882,8 @@ AlternativeMaxForceLeftDaytona=-100
AlternativeMinForceRightDaytona=0
AlternativeMaxForceRightDaytona=100
FeedbackLengthSRally=500
EnableDamperSRally=0
DamperStrengthSRally=100
PowerModeSRally=0
EnableForceSpringEffectSRally=0
ForceSpringStrengthSRally=80
@ -804,6 +894,8 @@ AlternativeMaxForceLeftSRally=-100
AlternativeMinForceRightSRally=0
AlternativeMaxForceRightSRally=100
FeedbackLengthIndy500=500
EnableDamperIndy500=0
DamperStrengthIndy500=100
PowerModeIndy500=0
EnableForceSpringEffectIndy500=0
ForceSpringStrengthIndy500=80
@ -814,6 +906,8 @@ AlternativeMaxForceLeftIndy500=-100
AlternativeMinForceRightIndy500=0
AlternativeMaxForceRightIndy500=100
FeedbackLengthSTCC=500
EnableDamperSTCC=0
DamperStrengthSTCC=100
PowerModeSTCC=0
EnableForceSpringEffectSTCC=0
ForceSpringStrengthSTCC=80
@ -824,6 +918,8 @@ AlternativeMaxForceLeftSTCC=-100
AlternativeMinForceRightSTCC=0
AlternativeMaxForceRightSTCC=100
FeedbackLengthOverRev=500
EnableDamperOverRev=0
DamperStrengthOverRev=100
PowerModeOverRev=0
EnableForceSpringEffectOverRev=0
ForceSpringStrengthOverRev=80
@ -834,6 +930,8 @@ AlternativeMaxForceLeftOverRev=-100
AlternativeMinForceRightOverRev=0
AlternativeMaxForceRightOverRev=100
FeedbackLengthSuperGT=500
EnableDamperSuperGT=0
DamperStrengthSuperGT=100
PowerModeSuperGT=0
EnableForceSpringEffectSuperGT=0
ForceSpringStrengthSuperGT=80
@ -846,6 +944,8 @@ AlternativeMaxForceRightSuperGT=100
[Supermodel 32bit Outputs]
GameId=34
EnableDamperDaytona2=0
DamperStrengthDaytona2=100
FeedbackLengthDaytona2=500
PowerModeDaytona2=0
MinForceDaytona2=0
@ -854,6 +954,8 @@ AlternativeMinForceLeftDaytona2=0
AlternativeMaxForceLeftDaytona2=-100
AlternativeMinForceRightDaytona2=0
AlternativeMaxForceRightDaytona2=100
EnableDamperScud=0
DamperStrengthScud=100
FeedbackLengthScud=500
PowerModeScud=0
MinForceScud=0
@ -862,6 +964,8 @@ AlternativeMinForceLeftScud=0
AlternativeMaxForceLeftScud=-100
AlternativeMinForceRightScud=0
AlternativeMaxForceRightScud=100
EnableDamperLeMans=0
DamperStrengthLeMans=100
FeedbackLengthLeMans=500
PowerModeLeMans=0
MinForceLeMans=0
@ -870,6 +974,8 @@ AlternativeMinForceLeftLeMans=0
AlternativeMaxForceLeftLeMans=-100
AlternativeMinForceRightLeMans=0
AlternativeMaxForceRightLeMans=100
EnableDamperDirtDevils=0
DamperStrengthDirtDevils=100
FeedbackLengthDirtDevils=500
PowerModeDirtDevils=0
EnableForceSpringEffectDirtDevils=0
@ -880,6 +986,8 @@ AlternativeMinForceLeftDirtDevils=0
AlternativeMaxForceLeftDirtDevils=-100
AlternativeMinForceRightDirtDevils=0
AlternativeMaxForceRightDirtDevils=100
EnableDamperSRally2=0
DamperStrengthSRally2=100
FeedbackLengthSRally2=500
PowerModeSRally2=0
EnableForceSpringEffectSRally2=0
@ -890,6 +998,8 @@ AlternativeMinForceLeftSRally2=0
AlternativeMaxForceLeftSRally2=-100
AlternativeMinForceRightSRally2=0
AlternativeMaxForceRightSRally2=100
EnableDamperECA=0
DamperStrengthECA=100
FeedbackLengthECA=500
PowerModeECA=0
EnableForceSpringEffectECA=0
@ -903,6 +1013,8 @@ AlternativeMaxForceRightECA=100
[Supermodel 64bit Outputs]
GameId=34
EnableDamperDaytona2=0
DamperStrengthDaytona2=100
FeedbackLengthDaytona2=500
PowerModeDaytona2=0
MinForceDaytona2=0
@ -911,6 +1023,8 @@ AlternativeMinForceLeftDaytona2=0
AlternativeMaxForceLeftDaytona2=-100
AlternativeMinForceRightDaytona2=0
AlternativeMaxForceRightDaytona2=100
EnableDamperScud=0
DamperStrengthScud=100
FeedbackLengthScud=500
PowerModeScud=0
MinForceScud=0
@ -919,6 +1033,8 @@ AlternativeMinForceLeftScud=0
AlternativeMaxForceLeftScud=-100
AlternativeMinForceRightScud=0
AlternativeMaxForceRightScud=100
EnableDamperLeMans=0
DamperStrengthLeMans=100
FeedbackLengthLeMans=500
PowerModeLeMans=0
MinForceLeMans=0
@ -927,6 +1043,8 @@ AlternativeMinForceLeftLeMans=0
AlternativeMaxForceLeftLeMans=-100
AlternativeMinForceRightLeMans=0
AlternativeMaxForceRightLeMans=100
EnableDamperDirtDevils=0
DamperStrengthDirtDevils=100
FeedbackLengthDirtDevils=500
PowerModeDirtDevils=0
EnableForceSpringEffectDirtDevils=0
@ -937,6 +1055,8 @@ AlternativeMinForceLeftDirtDevils=0
AlternativeMaxForceLeftDirtDevils=-100
AlternativeMinForceRightDirtDevils=0
AlternativeMaxForceRightDirtDevils=100
EnableDamperSRally2=0
DamperStrengthSRally2=100
FeedbackLengthSRally2=500
PowerModeSRally2=0
EnableForceSpringEffectSRally2=0
@ -947,6 +1067,8 @@ AlternativeMinForceLeftSRally2=0
AlternativeMaxForceLeftSRally2=-100
AlternativeMinForceRightSRally2=0
AlternativeMaxForceRightSRally2=100
EnableDamperECA=0
DamperStrengthECA=100
FeedbackLengthECA=500
PowerModeECA=0
EnableForceSpringEffectECA=0
@ -972,6 +1094,8 @@ EnableRumbleDevice3=1
ReverseRumbleDevice3=0
AlternativeFFBDevice3=0
FeedbackLengthVirtuaRacing=500
EnableDamperVirtuaRacing=0
DamperStrengthVirtuaRacing=100
MinForceVirtuaRacing=0
MaxForceVirtuaRacing=100
AlternativeMinForceLeftVirtuaRacing=0
@ -982,6 +1106,8 @@ EnableForceSpringEffectVirtuaRacing=0
ForceSpringStrengthVirtuaRacing=80
PowerModeSFRush=0
FeedbackLengthSFRush=500
EnableDamperSFRush=0
DamperStrengthSFRush=100
MinForceSFRush=0
MaxForceSFRush=100
AlternativeMinForceLeftSFRush=0
@ -992,6 +1118,8 @@ EnableForceSpringEffectSFRush=0
ForceSpringStrengthSFRush=80
PowerModeSFRushRock=0
FeedbackLengthSFRushRock=500
EnableDamperSFRushRock=0
DamperStrengthSFRushRock=100
MinForceSFRushRock=0
MaxForceSFRushRock=100
AlternativeMinForceLeftSFRushRock=0
@ -1002,6 +1130,8 @@ EnableForceSpringEffectSFRushRock=0
ForceSpringStrengthSFRushRock=80
PowerModeCrusnWld=0
FeedbackLengthCrusnWld=500
EnableDamperCrusnWld=0
DamperStrengthCrusnWld=100
MinForceCrusnWld=0
MaxForceCrusnWld=100
AlternativeMinForceLeftCrusnWld=0
@ -1011,6 +1141,8 @@ AlternativeMaxForceRightCrusnWld=100
EnableForceSpringEffectCrusnWld=0
PowerModeCrusnUSA=0
ForceSpringStrengthCrusnWld=80
EnableDamperCrusnWld=0
DamperStrengthCrusnWld=100
FeedbackLengthCrusnUSA=500
MinForceCrusnUSA=0
MaxForceCrusnUSA=100
@ -1022,6 +1154,8 @@ EnableForceSpringEffectCrusnUSA=0
ForceSpringStrengthCrusnUSA=80
PowerModeOffRoadC=0
FeedbackLengthOffRoadC=500
EnableDamperOffRoadC=0
DamperStrengthOffRoadC=100
MinForceOffRoadC=0
MaxForceOffRoadC=100
AlternativeMinForceLeftOffRoadC=0
@ -1032,6 +1166,8 @@ EnableForceSpringEffectOffRoadC=0
ForceSpringStrengthOffRoadC=80
PowerModeCalSpeed=0
FeedbackLengthCalSpeed=500
EnableDamperCalSpeed=0
DamperStrengthCalSpeed=100
MinForceCalSpeed=0
MaxForceCalSpeed=100
AlternativeMinForceLeftCalSpeed=0
@ -1042,6 +1178,8 @@ EnableForceSpringEffectCalSpeed=0
ForceSpringStrengthCalSpeed=80
PowerModeSFRush2049=0
FeedbackLengthSFRush2049=500
EnableDamperSFRush2049=0
DamperStrengthSFRush2049=100
MinForceSFRush2049=0
MaxForceSFRush2049=100
AlternativeMinForceLeftSFRush2049=0
@ -1052,6 +1190,8 @@ EnableForceSpringEffectSFRush2049=0
ForceSpringStrengthSFRush2049=80
PowerModeHardD=0
FeedbackLengthHardD=500
EnableDamperHardD=0
DamperStrengthHardD=100
MinForceHardD=0
MaxForceHardD=100
AlternativeMinForceLeftHardD=0
@ -1302,6 +1442,8 @@ RumbleStrengthLeftMotorF1GpStar2=100
RumbleStrengthRightMotorF1GpStar2=100
EnableForceSpringEffectF1GpStar2=0
ForceSpringStrengthF1GpStar2=80
EnableDamperHyperDrive=0
DamperStrengthHyperDrive=100
MinForceHyperDrive=0
MaxForceHyperDrive=100
AlternativeMinForceLeftHyperDrive=0
@ -1312,6 +1454,8 @@ RumbleStrengthLeftMotorHyperDrive=100
RumbleStrengthRightMotorHyperDrive=100
EnableForceSpringEffectHyperDrive=0
ForceSpringStrengthHyperDrive=80
EnableDamperVaporTrx=0
DamperStrengthVaporTrx=100
MinForceVaporTrx=0
MaxForceVaporTrx=100
AlternativeMinForceLeftVaporTrx=0
@ -1322,6 +1466,8 @@ RumbleStrengthLeftMotorVaporTrx=100
RumbleStrengthRightMotorVaporTrx=100
EnableForceSpringEffectVaporTrx=0
ForceSpringStrengthVaporTrx=80
EnableDamperRaveRacer=0
DamperStrengthRaveRacer=100
PowerModeRaveRacer=0
FeedbackLengthRaveRacer=500
MinForceRaveRacer=0
@ -1332,6 +1478,8 @@ AlternativeMinForceRightRaveRacer=0
AlternativeMaxForceRightRaveRacer=100
EnableForceSpringEffectRaveRacer=0
ForceSpringStrengthRaveRacer=80
EnableDamperDaytona=0
DamperStrengthDaytona=100
PowerModeDaytona=0
FeedbackLengthDaytona=500
MinForceDaytona=0
@ -1342,6 +1490,8 @@ AlternativeMinForceRightDaytona=0
AlternativeMaxForceRightDaytona=100
EnableForceSpringEffectDaytona=0
ForceSpringStrengthDaytona=80
EnableDamperSRally=0
DamperStrengthSRally=100
PowerModeSRally=0
FeedbackLengthSRally=500
MinForceSRally=0
@ -1352,6 +1502,8 @@ AlternativeMinForceRightSRally=0
AlternativeMaxForceRightSRally=100
EnableForceSpringEffectSRally=0
ForceSpringStrengthSRally=80
EnableDamperIndy500=0
DamperStrengthIndy500=100
PowerModeIndy500=0
FeedbackLengthIndy500=500
MinForceIndy500=0
@ -1362,6 +1514,8 @@ AlternativeMinForceRightIndy500=0
AlternativeMaxForceRightIndy500=100
EnableForceSpringEffectIndy500=0
ForceSpringStrengthIndy500=80
EnableDamperSuperGT=0
DamperStrengthSuperGT=100
PowerModeSuperGT=0
FeedbackLengthSuperGT=500
MinForceSuperGT=0
@ -1372,6 +1526,8 @@ AlternativeMinForceRightSuperGT=0
AlternativeMaxForceRightSuperGT=100
EnableForceSpringEffectSuperGT=0
ForceSpringStrengthSuperGT=80
EnableDamperSuperChase=0
DamperStrengthSuperChase=100
PowerModeSuperChase=0
FeedbackLengthSuperChase=500
MinForceSuperChase=0
@ -1382,6 +1538,8 @@ AlternativeMinForceRightSuperChase=0
AlternativeMaxForceRightSuperChase=80
EnableForceSpringEffectSuperChase=0
ForceSpringStrengthSuperChase=80
EnableDamperDirtDash=0
DamperStrengthDirtDash=100
PowerModeDirtDash=0
FeedbackLengthDirtDash=500
MinForceDirtDash=0
@ -1393,6 +1551,8 @@ AlternativeMaxForceRightDirtDash=100
EnableForceSpringEffectDirtDash=0
ForceSpringStrengthDirtDash=80
FFBDivideDirtDash=1913
EnableDamperAceDriverVictory=0
DamperStrengthAceDriverVictory=100
PowerModeAceDriverVictory=0
FeedbackLengthAceDriverVictory=500
MinForceAceDriverVictory=0
@ -1404,6 +1564,8 @@ AlternativeMaxForceRightAceDriverVictory=100
EnableForceSpringEffectAceDriverVictory=0
ForceSpringStrengthAceDriverVictory=80
FFBDivideAceDriverVictory=643
EnableDamperAceDriver=0
DamperStrengthAceDriver=100
PowerModeAceDriver=0
FeedbackLengthAceDriver=500
MinForceAceDriver=0
@ -1430,6 +1592,8 @@ EnableRumbleDevice3=1
ReverseRumbleDevice3=0
AlternativeFFBDevice3=0
FeedbackLengthVirtuaRacing=500
EnableDamperVirtuaRacing=0
DamperStrengthVirtuaRacing=100
MinForceVirtuaRacing=0
MaxForceVirtuaRacing=100
AlternativeMinForceLeftVirtuaRacing=0
@ -1440,6 +1604,8 @@ EnableForceSpringEffectVirtuaRacing=0
ForceSpringStrengthVirtuaRacing=80
PowerModeSFRush=0
FeedbackLengthSFRush=500
EnableDamperSFRush=0
DamperStrengthSFRush=100
MinForceSFRush=0
MaxForceSFRush=100
AlternativeMinForceLeftSFRush=0
@ -1450,6 +1616,8 @@ EnableForceSpringEffectSFRush=0
ForceSpringStrengthSFRush=80
PowerModeSFRushRock=0
FeedbackLengthSFRushRock=500
EnableDamperSFRushRock=0
DamperStrengthSFRushRock=100
MinForceSFRushRock=0
MaxForceSFRushRock=100
AlternativeMinForceLeftSFRushRock=0
@ -1460,6 +1628,8 @@ EnableForceSpringEffectSFRushRock=0
ForceSpringStrengthSFRushRock=80
PowerModeCrusnWld=0
FeedbackLengthCrusnWld=500
EnableDamperCrusnWld=0
DamperStrengthCrusnWld=100
MinForceCrusnWld=0
MaxForceCrusnWld=100
AlternativeMinForceLeftCrusnWld=0
@ -1469,6 +1639,8 @@ AlternativeMaxForceRightCrusnWld=100
EnableForceSpringEffectCrusnWld=0
PowerModeCrusnUSA=0
ForceSpringStrengthCrusnWld=80
EnableDamperCrusnWld=0
DamperStrengthCrusnWld=100
FeedbackLengthCrusnUSA=500
MinForceCrusnUSA=0
MaxForceCrusnUSA=100
@ -1480,6 +1652,8 @@ EnableForceSpringEffectCrusnUSA=0
ForceSpringStrengthCrusnUSA=80
PowerModeOffRoadC=0
FeedbackLengthOffRoadC=500
EnableDamperOffRoadC=0
DamperStrengthOffRoadC=100
MinForceOffRoadC=0
MaxForceOffRoadC=100
AlternativeMinForceLeftOffRoadC=0
@ -1490,6 +1664,8 @@ EnableForceSpringEffectOffRoadC=0
ForceSpringStrengthOffRoadC=80
PowerModeCalSpeed=0
FeedbackLengthCalSpeed=500
EnableDamperCalSpeed=0
DamperStrengthCalSpeed=100
MinForceCalSpeed=0
MaxForceCalSpeed=100
AlternativeMinForceLeftCalSpeed=0
@ -1500,6 +1676,8 @@ EnableForceSpringEffectCalSpeed=0
ForceSpringStrengthCalSpeed=80
PowerModeSFRush2049=0
FeedbackLengthSFRush2049=500
EnableDamperSFRush2049=0
DamperStrengthSFRush2049=100
MinForceSFRush2049=0
MaxForceSFRush2049=100
AlternativeMinForceLeftSFRush2049=0
@ -1510,6 +1688,8 @@ EnableForceSpringEffectSFRush2049=0
ForceSpringStrengthSFRush2049=80
PowerModeHardD=0
FeedbackLengthHardD=500
EnableDamperHardD=0
DamperStrengthHardD=100
MinForceHardD=0
MaxForceHardD=100
AlternativeMinForceLeftHardD=0
@ -1760,6 +1940,8 @@ RumbleStrengthLeftMotorF1GpStar2=100
RumbleStrengthRightMotorF1GpStar2=100
EnableForceSpringEffectF1GpStar2=0
ForceSpringStrengthF1GpStar2=80
EnableDamperHyperDrive=0
DamperStrengthHyperDrive=100
MinForceHyperDrive=0
MaxForceHyperDrive=100
AlternativeMinForceLeftHyperDrive=0
@ -1770,6 +1952,8 @@ RumbleStrengthLeftMotorHyperDrive=100
RumbleStrengthRightMotorHyperDrive=100
EnableForceSpringEffectHyperDrive=0
ForceSpringStrengthHyperDrive=80
EnableDamperVaporTrx=0
DamperStrengthVaporTrx=100
MinForceVaporTrx=0
MaxForceVaporTrx=100
AlternativeMinForceLeftVaporTrx=0
@ -1780,6 +1964,8 @@ RumbleStrengthLeftMotorVaporTrx=100
RumbleStrengthRightMotorVaporTrx=100
EnableForceSpringEffectVaporTrx=0
ForceSpringStrengthVaporTrx=80
EnableDamperRaveRacer=0
DamperStrengthRaveRacer=100
PowerModeRaveRacer=0
FeedbackLengthRaveRacer=500
MinForceRaveRacer=0
@ -1790,6 +1976,8 @@ AlternativeMinForceRightRaveRacer=0
AlternativeMaxForceRightRaveRacer=100
EnableForceSpringEffectRaveRacer=0
ForceSpringStrengthRaveRacer=80
EnableDamperDaytona=0
DamperStrengthDaytona=100
PowerModeDaytona=0
FeedbackLengthDaytona=500
MinForceDaytona=0
@ -1800,6 +1988,8 @@ AlternativeMinForceRightDaytona=0
AlternativeMaxForceRightDaytona=100
EnableForceSpringEffectDaytona=0
ForceSpringStrengthDaytona=80
EnableDamperSRally=0
DamperStrengthSRally=100
PowerModeSRally=0
FeedbackLengthSRally=500
MinForceSRally=0
@ -1810,6 +2000,8 @@ AlternativeMinForceRightSRally=0
AlternativeMaxForceRightSRally=100
EnableForceSpringEffectSRally=0
ForceSpringStrengthSRally=80
EnableDamperIndy500=0
DamperStrengthIndy500=100
PowerModeIndy500=0
FeedbackLengthIndy500=500
MinForceIndy500=0
@ -1820,6 +2012,8 @@ AlternativeMinForceRightIndy500=0
AlternativeMaxForceRightIndy500=100
EnableForceSpringEffectIndy500=0
ForceSpringStrengthIndy500=80
EnableDamperSuperGT=0
DamperStrengthSuperGT=100
PowerModeSuperGT=0
FeedbackLengthSuperGT=500
MinForceSuperGT=0
@ -1830,6 +2024,8 @@ AlternativeMinForceRightSuperGT=0
AlternativeMaxForceRightSuperGT=100
EnableForceSpringEffectSuperGT=0
ForceSpringStrengthSuperGT=80
EnableDamperSuperChase=0
DamperStrengthSuperChase=100
PowerModeSuperChase=0
FeedbackLengthSuperChase=500
MinForceSuperChase=0
@ -1840,6 +2036,8 @@ AlternativeMinForceRightSuperChase=0
AlternativeMaxForceRightSuperChase=80
EnableForceSpringEffectSuperChase=0
ForceSpringStrengthSuperChase=80
EnableDamperDirtDash=0
DamperStrengthDirtDash=100
PowerModeDirtDash=0
FeedbackLengthDirtDash=500
MinForceDirtDash=0
@ -1851,6 +2049,8 @@ AlternativeMaxForceRightDirtDash=100
EnableForceSpringEffectDirtDash=0
ForceSpringStrengthDirtDash=80
FFBDivideDirtDash=1913
EnableDamperAceDriverVictory=0
DamperStrengthAceDriverVictory=100
PowerModeAceDriverVictory=0
FeedbackLengthAceDriverVictory=500
MinForceAceDriverVictory=0
@ -1862,6 +2062,8 @@ AlternativeMaxForceRightAceDriverVictory=100
EnableForceSpringEffectAceDriverVictory=0
ForceSpringStrengthAceDriverVictory=80
FFBDivideAceDriverVictory=643
EnableDamperAceDriver=0
DamperStrengthAceDriver=100
PowerModeAceDriver=0
FeedbackLengthAceDriver=500
MinForceAceDriver=0
@ -1873,25 +2075,3 @@ AlternativeMaxForceRightAceDriver=100
EnableForceSpringEffectAceDriver=0
ForceSpringStrengthAceDriver=80
FFBDivideAceDriver=643
; ***********************************************************************************************************************************
; ************************************************* Test cases are established below ************************************************
; ***********************************************************************************************************************************
;
;[_Test_Const]
;GameId=-1
;
;[_Test_Sine]
;GameId=-2
;
;[_Test_Friction]
;GameId=-3
;
;[_Test_Spring]
;GameId=-4
;
;[_Test_Heavy]
;GameId=-5
;
;[_Test_Loose]
;GameId=-6

View File

@ -893,6 +893,8 @@ int PowerMode = GetPrivateProfileInt(TEXT("Settings"), TEXT("PowerMode"), 0, set
int EnableRumble = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableRumble"), 0, settingsFilename);
int EnableRumbleTriggers = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableRumbleTriggers"), 0, settingsFilename);
int ReverseRumble = GetPrivateProfileInt(TEXT("Settings"), TEXT("ReverseRumble"), 0, settingsFilename);
int EnableDamper = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamper"), 0, settingsFilename);
int DamperStrength = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrength"), 100, settingsFilename);
wchar_t* deviceGUIDString = new wchar_t[256];
int DeviceGUID = GetPrivateProfileString(TEXT("Settings"), TEXT("DeviceGUID"), NULL, deviceGUIDString, 256, settingsFilename);
int configFeedbackLength = GetPrivateProfileInt(TEXT("Settings"), TEXT("FeedbackLength"), 120, settingsFilename);
@ -959,6 +961,7 @@ const int TEST_GAME_SPRING = -4;
const int TEST_GAME_HEAVY = -5;
const int TEST_GAME_LOOSE = -6;
const int TEST_GAME_RUMBLE = -7;
const int TEST_GAME_RUMBLE_TRIGGER = -8;
const int DAYTONA_3 = 1;
const int WACKY_RACES = 2;
@ -1254,6 +1257,7 @@ void TriggerConstantEffect(int direction, double strength)
}
tempEffect.constant.level = level;
//hlp.log((char*)(std::to_string(level)).c_str());
SDL_HapticUpdateEffect(haptic, effects.effect_constant_id, &tempEffect);
SDL_HapticRunEffect(haptic, effects.effect_constant_id, 1);
@ -1384,6 +1388,7 @@ void TriggerDamperEffect(double strength)
SHORT maxForce = (SHORT)(configMaxForce / 100.0 * 32767.0);
SHORT range = maxForce - minForce;
SHORT coeff = (SHORT)(strength * range + minForce);
if (coeff < 0)
{
coeff = 32767;
@ -1391,8 +1396,8 @@ void TriggerDamperEffect(double strength)
tempEffect.condition.left_coeff[0] = (short)(coeff);
tempEffect.condition.right_coeff[0] = (short)(coeff);
tempEffect.condition.left_sat[0] = (short)(coeff) * 10;
tempEffect.condition.right_sat[0] = (short)(coeff) * 10;
tempEffect.condition.left_sat[0] = (DWORD)(coeff) * 2;
tempEffect.condition.right_sat[0] = (DWORD)(coeff) * 2;
SDL_HapticUpdateEffect(haptic, effects.effect_damper_id, &tempEffect);
SDL_HapticRunEffect(haptic, effects.effect_damper_id, 1);

View File

@ -14,6 +14,8 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include <string>
#include "BG4JP.h"
static int SpeedStrength;
extern int EnableDamper;
extern int DamperStrength;
void BG4JP::FFBLoop(EffectConstants *constants, Helpers *helpers, EffectTriggers* triggers) {
int ff = helpers->ReadInt32(0x42EBB0, /* isRelativeOffset */ true);
@ -64,6 +66,11 @@ void BG4JP::FFBLoop(EffectConstants *constants, Helpers *helpers, EffectTriggers
std::string ffs = std::to_string(ff);
helpers->log((char *)ffs.c_str());
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
if ((2000000 < ff) && (ff < 4000000))
{
double percentForce = SpeedStrength / 100.0;

View File

@ -13,6 +13,8 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include <string>
#include "Batman.h"
extern int EnableDamper;
extern int DamperStrength;
void Batman::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers* triggers) {
@ -22,6 +24,11 @@ void Batman::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTrigger
std::string ffs = std::to_string(ff);
helpers->log((char*)ffs.c_str());
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
if (ff > 0)
{
double percentForce = ff / 1.2;

View File

@ -13,7 +13,8 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include <string>
#include "ChaseHQ2.h"
extern int EnableDamper;
extern int DamperStrength;
static bool removecel = false;
static wchar_t* settingsFilename = TEXT(".\\FFBPlugin.ini");
static int RemoveCelShadedFilter = GetPrivateProfileInt(TEXT("Settings"), TEXT("RemoveCelShadedFilter"), 0, settingsFilename);
@ -115,6 +116,11 @@ void ChaseHQ2::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTrigg
helpers->WriteByte(0x130CB30, 0x00, true); // Remove Cel Shaded Filter
}
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
helpers->log("got value: ");
std::string ffs = std::to_string(ff);
helpers->log((char*)ffs.c_str());

View File

@ -19,6 +19,8 @@ static bool keybdleft = false;
static bool keybdright = false;
static bool keybdup = false;
static bool init = false;
extern int EnableDamper;
extern int DamperStrength;
static EffectTriggers *myTriggers;
static EffectConstants *myConstants;
static Helpers *myHelpers;
@ -190,6 +192,11 @@ void Daytona3::FFBLoop(EffectConstants *constants, Helpers *helpers, EffectTrigg
}
}
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
if (ff > 15)
{
double percentForce = (31 - ff) / 15.0;

View File

@ -91,6 +91,8 @@ extern int configAlternativeMaxForceRight;
extern int EnableForceSpringEffect;
extern int ForceSpringStrength;
extern int AutoCloseWindowError;
extern int EnableDamper;
extern int DamperStrength;
static int InputDeviceWheelEnable = GetPrivateProfileInt(TEXT("Settings"), TEXT("InputDeviceWheelEnable"), 0, settingsFilename);
@ -104,6 +106,8 @@ static int PowerModeInitialDDemul = GetPrivateProfileInt(TEXT("Settings"), TEXT(
static int configFeedbackLengthInitialDDemul = GetPrivateProfileInt(TEXT("Settings"), TEXT("FeedbackLengthInitialDDemul"), 120, settingsFilename);
static int EnableForceSpringEffectInitialDDemul = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectInitialDDemul"), 0, settingsFilename);
static int ForceSpringStrengthInitialDDemul = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthInitialDDemul"), 0, settingsFilename);
static int EnableDamperInitialDDemul = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperInitialDDemul"), 0, settingsFilename);
static int DamperStrengthInitialDDemul = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthInitialDDemul"), 100, settingsFilename);
static int configMinForceNascarRacing = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceNascarRacing"), 0, settingsFilename);
static int configMaxForceNascarRacing = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceNascarRacing"), 100, settingsFilename);
@ -115,6 +119,8 @@ static int PowerModeNascarRacing = GetPrivateProfileInt(TEXT("Settings"), TEXT("
static int configFeedbackLengthNascarRacing = GetPrivateProfileInt(TEXT("Settings"), TEXT("FeedbackLengthNascarRacing"), 120, settingsFilename);
static int EnableForceSpringEffectNascarRacing = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectNascarRacing"), 0, settingsFilename);
static int ForceSpringStrengthNascarRacing = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthNascarRacing"), 0, settingsFilename);
static int EnableDamperNascarRacing = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperNascarRacing"), 0, settingsFilename);
static int DamperStrengthNascarRacing = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthNascarRacing"), 100, settingsFilename);
static int configMinForceSmashingDrive = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceSmashingDrive"), 0, settingsFilename);
static int configMaxForceSmashingDrive = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceSmashingDrive"), 100, settingsFilename);
@ -126,6 +132,8 @@ static int PowerModeSmashingDrive = GetPrivateProfileInt(TEXT("Settings"), TEXT(
static int configFeedbackLengthSmashingDrive = GetPrivateProfileInt(TEXT("Settings"), TEXT("FeedbackLengthSmashingDrive"), 120, settingsFilename);
static int EnableForceSpringEffectSmashingDrive = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectSmashingDrive"), 0, settingsFilename);
static int ForceSpringStrengthSmashingDrive = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthSmashingDrive"), 0, settingsFilename);
static int EnableDamperSmashingDrive = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperSmashingDrive"), 0, settingsFilename);
static int DamperStrengthSmashingDrive = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthSmashingDrive"), 100, settingsFilename);
static int configMinForceMaximumSpeed = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceMaximumSpeed"), 0, settingsFilename);
static int configMaxForceMaximumSpeed = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceMaximumSpeed"), 100, settingsFilename);
@ -137,6 +145,8 @@ static int PowerModeMaximumSpeed = GetPrivateProfileInt(TEXT("Settings"), TEXT("
static int configFeedbackLengthMaximumSpeed = GetPrivateProfileInt(TEXT("Settings"), TEXT("FeedbackLengthMaximumSpeed"), 120, settingsFilename);
static int EnableForceSpringEffectMaximumSpeed = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectMaximumSpeed"), 0, settingsFilename);
static int ForceSpringStrengthMaximumSpeed = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthMaximumSpeed"), 0, settingsFilename);
static int EnableDamperMaximumSpeed = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperMaximumSpeed"), 0, settingsFilename);
static int DamperStrengthMaximumSpeed = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthMaximumSpeed"), 100, settingsFilename);
static int configMinForceFasterSpeed = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceFasterSpeed"), 0, settingsFilename);
static int configMaxForceFasterSpeed = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceFasterSpeed"), 100, settingsFilename);
@ -148,6 +158,8 @@ static int PowerModeFasterSpeed = GetPrivateProfileInt(TEXT("Settings"), TEXT("P
static int configFeedbackLengthFasterSpeed = GetPrivateProfileInt(TEXT("Settings"), TEXT("FeedbackLengthFasterSpeed"), 120, settingsFilename);
static int EnableForceSpringEffectFasterSpeed = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectFasterSpeed"), 0, settingsFilename);
static int ForceSpringStrengthFasterSpeed = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthFasterSpeed"), 0, settingsFilename);
static int EnableDamperFasterSpeed = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperFasterSpeed"), 0, settingsFilename);
static int DamperStrengthFasterSpeed = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthFasterSpeed"), 100, settingsFilename);
static int configMinForceATVTrack = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceATVTrack"), 0, settingsFilename);
static int configMaxForceATVTrack = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceATVTrack"), 100, settingsFilename);
@ -159,6 +171,8 @@ static int PowerModeATVTrack = GetPrivateProfileInt(TEXT("Settings"), TEXT("Powe
static int configFeedbackLengthATVTrack = GetPrivateProfileInt(TEXT("Settings"), TEXT("FeedbackLengthATVTrack"), 120, settingsFilename);
static int EnableForceSpringEffectATVTrack = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectATVTrack"), 0, settingsFilename);
static int ForceSpringStrengthATVTrack = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthATVTrack"), 0, settingsFilename);
static int EnableDamperATVTrack = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperATVTrack"), 0, settingsFilename);
static int DamperStrengthATVTrack = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthATVTrack"), 100, settingsFilename);
static bool NascarRunning = false;
static bool InitialDRunning = false;
@ -697,6 +711,8 @@ void Demul::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
PowerMode = PowerModeNascarRacing;
EnableForceSpringEffect = EnableForceSpringEffectNascarRacing;
ForceSpringStrength = ForceSpringStrengthNascarRacing;
EnableDamper = EnableDamperNascarRacing;
DamperStrength = DamperStrengthNascarRacing;
romnameDemul = "Nascar";
@ -717,6 +733,8 @@ void Demul::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
PowerMode = PowerModeInitialDDemul;
EnableForceSpringEffect = EnableForceSpringEffectInitialDDemul;
ForceSpringStrength = ForceSpringStrengthInitialDDemul;
EnableDamper = EnableDamperInitialDDemul;
DamperStrength = DamperStrengthInitialDDemul;
romnameDemul = "Initial D Arcade Stage";
@ -737,6 +755,8 @@ void Demul::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
PowerMode = PowerModeSmashingDrive;
EnableForceSpringEffect = EnableForceSpringEffectSmashingDrive;
ForceSpringStrength = ForceSpringStrengthSmashingDrive;
EnableDamper = EnableDamperSmashingDrive;
DamperStrength = DamperStrengthSmashingDrive;
romnameDemul = "Smashing Drive";
@ -757,6 +777,8 @@ void Demul::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
PowerMode = PowerModeMaximumSpeed;
EnableForceSpringEffect = EnableForceSpringEffectMaximumSpeed;
ForceSpringStrength = ForceSpringStrengthMaximumSpeed;
EnableDamper = EnableDamperMaximumSpeed;
DamperStrength = DamperStrengthMaximumSpeed;
romnameDemul = "Maximum Speed";
@ -777,6 +799,8 @@ void Demul::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
PowerMode = PowerModeFasterSpeed;
EnableForceSpringEffect = EnableForceSpringEffectFasterSpeed;
ForceSpringStrength = ForceSpringStrengthFasterSpeed;
EnableDamper = EnableDamperFasterSpeed;
DamperStrength = DamperStrengthFasterSpeed;
romnameDemul = "Faster Than Speed";
@ -797,6 +821,8 @@ void Demul::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
PowerMode = PowerModeATVTrack;
EnableForceSpringEffect = EnableForceSpringEffectATVTrack;
ForceSpringStrength = ForceSpringStrengthATVTrack;
EnableDamper = EnableDamperATVTrack;
DamperStrength = DamperStrengthATVTrack;
romnameDemul = "ATV Track";

View File

@ -13,6 +13,8 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include <string>
#include "DirtyDrivin.h"
extern int EnableDamper;
extern int DamperStrength;
void DirtyDrivin::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers* triggers) {
@ -29,6 +31,11 @@ void DirtyDrivin::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTr
//triggers->Spring(percentForce);
//}
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
if (ff > 0)
{
double percentForce = ff;

View File

@ -13,6 +13,8 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include <string>
#include "FordRacing.h"
extern int EnableDamper;
extern int DamperStrength;
void FordRacing::FFBLoop(EffectConstants *constants, Helpers *helpers, EffectTriggers* triggers) {
helpers->log("in FR Ffbloop");
@ -20,6 +22,11 @@ void FordRacing::FFBLoop(EffectConstants *constants, Helpers *helpers, EffectTri
std::string ffs = std::to_string(ff);
helpers->log((char *)ffs.c_str());
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
if (ff < -65505 && ff > -65515)
{
helpers->log("moving wheel left");

View File

@ -16,6 +16,8 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
static EffectTriggers *myTriggers;
static EffectConstants *myConstants;
static Helpers *myHelpers;
extern int EnableDamper;
extern int DamperStrength;
static bool init = false;
@ -82,6 +84,11 @@ void FordRacingOther::FFBLoop(EffectConstants *constants, Helpers *helpers, Effe
}
}
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
myTriggers = triggers;
myConstants = constants;
myHelpers = helpers;

View File

@ -18,6 +18,8 @@ static EffectTriggers* myTriggers;
static EffectConstants* myConstants;
static Helpers* myHelpers;
static bool gearshift = false;
extern int EnableDamper;
extern int DamperStrength;
static wchar_t* settingsFilename = TEXT(".\\FFBPlugin.ini");
static int SpringStrength = GetPrivateProfileInt(TEXT("Settings"), TEXT("SpringStrength"), 0, settingsFilename);
@ -53,6 +55,11 @@ void GRID::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers*
triggers->Springi(SpringStrength / 100.0);
}
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
if ((oldgear != newgear) && (speedo > 0))
{
gearshift = true;

View File

@ -14,6 +14,8 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include <string>
#include "GTIClub3.h"
#include "math.h"
extern int EnableDamper;
extern int DamperStrength;
void GTIClub3::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers* triggers) {
@ -25,6 +27,11 @@ void GTIClub3::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTrigg
std::string ffs = std::to_string(ff2);
helpers->log((char*)ffs.c_str());
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
if ((ff1 > 0x00)& (ff1 < 0x40)& (menu == 0))
{
double percentForce = (ff1) / 63.0;

View File

@ -13,6 +13,8 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include <string>
#include "H2Overdrive.h"
extern int EnableDamper;
extern int DamperStrength;
void H2Overdrive::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers* triggers) {
@ -23,6 +25,11 @@ void H2Overdrive::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTr
std::string ffs = std::to_string(ff);
helpers->log((char*)ffs.c_str());
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
if (ffstiffness > 0)
{
double percentForce = ffstiffness / 1.25;

View File

@ -15,6 +15,9 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include "InitialD0v131.h"
#include "math.h"
extern int EnableDamper;
extern int DamperStrength;
static UINT8 ff;
static UINT8 oldff;
static UINT8 newff;
@ -35,6 +38,11 @@ void InitialD0::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTrig
ExitProcess(0);
}
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
if (IDZMode == 0)
{
ff = helpers->ReadByte(0x168317F, true);

View File

@ -22,6 +22,9 @@ static UINT8 ff1;
static UINT8 ff2;
static UINT8 ff3;
extern int EnableDamper;
extern int DamperStrength;
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);
@ -35,6 +38,11 @@ void InitialD0v211::FFBLoop(EffectConstants* constants, Helpers* helpers, Effect
ExitProcess(0);
}
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
if (IDZMode == 0)
{
ff = helpers->ReadByte(0x18A720F, true);

View File

@ -15,6 +15,9 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include "InitialD4.h"
#include "math.h"
extern int EnableDamper;
extern int DamperStrength;
void InitialD4::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers* triggers) {
UINT8 ff = helpers->ReadByte(0x089AE89A, /* isRelativeOffset */ false);
@ -24,6 +27,11 @@ void InitialD4::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTrig
std::string ffs = std::to_string(ff);
helpers->log((char*)ffs.c_str());
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
if (ff2 == 0x86)
{
triggers->Spring(0.8);

View File

@ -15,6 +15,9 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include "InitialD4Japan.h"
#include "math.h"
extern int EnableDamper;
extern int DamperStrength;
void InitialD4Japan::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers* triggers) {
UINT8 ff = helpers->ReadByte(0x0898985A, /* isRelativeOffset */ false);
@ -24,6 +27,11 @@ void InitialD4Japan::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
std::string ffs = std::to_string(ff);
helpers->log((char*)ffs.c_str());
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
if (ff2 == 0x86)
{
triggers->Spring(0.8);

View File

@ -15,6 +15,9 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include "InitialD5.h"
#include "math.h"
extern int EnableDamper;
extern int DamperStrength;
void InitialD5::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers* triggers) {
UINT8 ff = helpers->ReadByte(0x08CB6122, /* isRelativeOffset */ false);
@ -24,6 +27,11 @@ void InitialD5::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTrig
std::string ffs = std::to_string(ff);
helpers->log((char*)ffs.c_str());
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
if (ff2 == 0x86)
{
triggers->Spring(0.8);

View File

@ -14,6 +14,9 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include <string>
#include "InitialD6.h"
extern int EnableDamper;
extern int DamperStrength;
static int carscollide(int ffcollide) {
switch (ffcollide) {
case 0x50F05:
@ -134,6 +137,11 @@ void InitialD6::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTrig
ffcarcollision = carscollide(ff);
ffrubbingwalls = rubbingwalls(ff);
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
if (ff == 0x60000)
{
triggers->Spring(0.8);

View File

@ -14,6 +14,9 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include <string>
#include "InitialD7.h"
extern int EnableDamper;
extern int DamperStrength;
static int carscollide(int ffcollide) {
switch (ffcollide) {
case 0x50F05:
@ -134,6 +137,11 @@ void InitialD7::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTrig
ffcarcollision = carscollide(ff);
ffrubbingwalls = rubbingwalls(ff);
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
if (ff == 0x60000)
{
triggers->Spring(0.8);

View File

@ -14,6 +14,9 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include <string>
#include "InitialD8.h"
extern int EnableDamper;
extern int DamperStrength;
static int carscollide(int ffcollide) {
switch (ffcollide) {
case 0x50F05:
@ -134,6 +137,11 @@ void InitialD8::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTrig
ffcarcollision = carscollide(ff);
ffrubbingwalls = rubbingwalls(ff);
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
if (ff == 0x60000)
{
triggers->Spring(0.8);

View File

@ -14,6 +14,9 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include <string>
#include "KODrive.h"
extern int EnableDamper;
extern int DamperStrength;
void KODrive::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers* triggers) {
UINT8 ff = helpers->ReadByte(0x00B261F6, /* isRelativeOffset */ false);
UINT8 ff1 = helpers->ReadByte(0x00B261F5, /* isRelativeOffset */ false);
@ -21,6 +24,11 @@ void KODrive::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTrigge
std::string ffs = std::to_string(ff);
helpers->log((char*)ffs.c_str());
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
if ((ff == 10) & (ff1 == 30))
{
double percentForce = 0.4;

View File

@ -56,6 +56,8 @@ extern int configAlternativeMinForceRight;
extern int configAlternativeMaxForceRight;
extern int EnableForceSpringEffect;
extern int ForceSpringStrength;
extern int EnableDamper;
extern int DamperStrength;
static int DaytonaAIMultiplayerHack = GetPrivateProfileInt(TEXT("Settings"), TEXT("DaytonaAIMultiplayerHack"), 0, settingsFilename);
static int DaytonaForcePanoramicAttract = GetPrivateProfileInt(TEXT("Settings"), TEXT("DaytonaForcePanoramicAttract"), 0, settingsFilename);
@ -71,6 +73,8 @@ static int configFeedbackLengthDaytona = GetPrivateProfileInt(TEXT("Settings"),
static int PowerModeDaytona = GetPrivateProfileInt(TEXT("Settings"), TEXT("PowerModeDaytona"), 0, settingsFilename);
static int EnableForceSpringEffectDaytona = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectDaytona"), 0, settingsFilename);
static int ForceSpringStrengthDaytona = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthDaytona"), 0, settingsFilename);
static int EnableDamperDaytona = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperDaytona"), 0, settingsFilename);
static int DamperStrengthDaytona = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthDaytona"), 100, settingsFilename);
static int configMinForceSRally = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceSRally"), 0, settingsFilename);
static int configMaxForceSRally = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceSRally"), 100, settingsFilename);
@ -82,6 +86,8 @@ static int configFeedbackLengthSRally = GetPrivateProfileInt(TEXT("Settings"), T
static int PowerModeSRally = GetPrivateProfileInt(TEXT("Settings"), TEXT("PowerModeSRally"), 0, settingsFilename);
static int EnableForceSpringEffectSRally = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectSRally"), 0, settingsFilename);
static int ForceSpringStrengthSRally = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthSRally"), 0, settingsFilename);
static int EnableDamperSRally = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperSRally"), 0, settingsFilename);
static int DamperStrengthSRally = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthSRally"), 100, settingsFilename);
static int configMinForceIndy500 = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceIndy500"), 0, settingsFilename);
static int configMaxForceIndy500 = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceIndy500"), 100, settingsFilename);
@ -93,6 +99,8 @@ static int configFeedbackLengthIndy500 = GetPrivateProfileInt(TEXT("Settings"),
static int PowerModeIndy500 = GetPrivateProfileInt(TEXT("Settings"), TEXT("PowerModeIndy500"), 0, settingsFilename);
static int EnableForceSpringEffectIndy500 = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectIndy500"), 0, settingsFilename);
static int ForceSpringStrengthIndy500 = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthIndy500"), 0, settingsFilename);
static int EnableDamperIndy500 = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperIndy500"), 0, settingsFilename);
static int DamperStrengthIndy500 = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthIndy500"), 100, settingsFilename);
static int configMinForceSTCC = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceSTCC"), 0, settingsFilename);
static int configMaxForceSTCC = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceSTCC"), 100, settingsFilename);
@ -104,6 +112,8 @@ static int configFeedbackLengthSTCC = GetPrivateProfileInt(TEXT("Settings"), TEX
static int PowerModeSTCC = GetPrivateProfileInt(TEXT("Settings"), TEXT("PowerModeSTCC"), 0, settingsFilename);
static int EnableForceSpringEffectSTCC = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectSTCC"), 0, settingsFilename);
static int ForceSpringStrengthSTCC = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthSTCC"), 0, settingsFilename);
static int EnableDamperSTCC = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperSTCC"), 0, settingsFilename);
static int DamperStrengthSTCC = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthSTCC"), 100, settingsFilename);
static int configMinForceOverRev = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceOverRev"), 0, settingsFilename);
static int configMaxForceOverRev = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceOverRev"), 100, settingsFilename);
@ -115,6 +125,8 @@ static int configFeedbackLengthOverRev = GetPrivateProfileInt(TEXT("Settings"),
static int PowerModeOverRev = GetPrivateProfileInt(TEXT("Settings"), TEXT("PowerModeOverRev"), 0, settingsFilename);
static int EnableForceSpringEffectOverRev = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectOverRev"), 0, settingsFilename);
static int ForceSpringStrengthOverRev = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthOverRev"), 0, settingsFilename);
static int EnableDamperOverRev = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperOverRev"), 0, settingsFilename);
static int DamperStrengthOverRev = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthOverRev"), 100, settingsFilename);
static int configMinForceSuperGT = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceSuperGT"), 0, settingsFilename);
static int configMaxForceSuperGT = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceSuperGT"), 100, settingsFilename);
@ -126,6 +138,8 @@ static int configFeedbackLengthSuperGT = GetPrivateProfileInt(TEXT("Settings"),
static int PowerModeSuperGT = GetPrivateProfileInt(TEXT("Settings"), TEXT("PowerModeSuperGT"), 0, settingsFilename);
static int EnableForceSpringEffectSuperGT = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectSuperGT"), 0, settingsFilename);
static int ForceSpringStrengthSuperGT = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthSuperGT"), 0, settingsFilename);
static int EnableDamperSuperGT = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperSuperGT"), 0, settingsFilename);
static int DamperStrengthSuperGT = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthSuperGT"), 100, settingsFilename);
static bool init = false;
static bool CustomStrengthInit = false;
@ -275,6 +289,11 @@ void M2Emulator::FFBLoop(EffectConstants * constants, Helpers * helpers, EffectT
triggers->Springi(ForceSpringStrength / 100.0);
}
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
if (!outputinit)
{
if (EnableOutputs == 1)
@ -372,6 +391,8 @@ void M2Emulator::FFBLoop(EffectConstants * constants, Helpers * helpers, EffectT
PowerMode = PowerModeSRally;
EnableForceSpringEffect = EnableForceSpringEffectSRally;
ForceSpringStrength = ForceSpringStrengthSRally;
EnableDamper = EnableDamperSRally;
DamperStrength = DamperStrengthSRally;
}
UINT8 ff1 = helpers->ReadByte(0x174CF4, /* isRelativeOffset*/ true); //SegaRallyChampionship
@ -412,6 +433,8 @@ void M2Emulator::FFBLoop(EffectConstants * constants, Helpers * helpers, EffectT
PowerMode = PowerModeDaytona;
EnableForceSpringEffect = EnableForceSpringEffectDaytona;
ForceSpringStrength = ForceSpringStrengthDaytona;
EnableDamper = EnableDamperDaytona;
DamperStrength = DamperStrengthDaytona;
}
if (DaytonaForcePanoramicAttract == 1)
@ -997,6 +1020,8 @@ void M2Emulator::FFBLoop(EffectConstants * constants, Helpers * helpers, EffectT
PowerMode = PowerModeIndy500;
EnableForceSpringEffect = EnableForceSpringEffectIndy500;
ForceSpringStrength = ForceSpringStrengthIndy500;
EnableDamper = EnableDamperIndy500;
DamperStrength = DamperStrengthIndy500;
}
ff = helpers->ReadByte(0x17285B, /* isRelativeOffset*/ true); //Indy500
@ -1017,6 +1042,8 @@ void M2Emulator::FFBLoop(EffectConstants * constants, Helpers * helpers, EffectT
PowerMode = PowerModeSTCC;
EnableForceSpringEffect = EnableForceSpringEffectSTCC;
ForceSpringStrength = ForceSpringStrengthSTCC;
EnableDamper = EnableDamperSTCC;
DamperStrength = DamperStrengthSTCC;
}
ff = helpers->ReadByte(0x17285B, /* isRelativeOffset*/ true); //Sega Touring Car Championship
@ -1037,6 +1064,8 @@ void M2Emulator::FFBLoop(EffectConstants * constants, Helpers * helpers, EffectT
PowerMode = PowerModeOverRev;
EnableForceSpringEffect = EnableForceSpringEffectOverRev;
ForceSpringStrength = ForceSpringStrengthOverRev;
EnableDamper = EnableDamperOverRev;
DamperStrength = DamperStrengthOverRev;
}
ff = helpers->ReadByte(0x17285B, /* isRelativeOffset*/ true); //OverRev
@ -1057,6 +1086,8 @@ void M2Emulator::FFBLoop(EffectConstants * constants, Helpers * helpers, EffectT
PowerMode = PowerModeSuperGT;
EnableForceSpringEffect = EnableForceSpringEffectSuperGT;
ForceSpringStrength = ForceSpringStrengthSuperGT;
EnableDamper = EnableDamperSuperGT;
DamperStrength = DamperStrengthSuperGT;
}
ff = helpers->ReadByte(0x17285B, /* isRelativeOffset*/ true); //Super GT 24h

View File

@ -317,6 +317,8 @@ extern int RumbleStrengthLeftMotor;
extern int RumbleStrengthRightMotor;
extern int EnableForceSpringEffect;
extern int ForceSpringStrength;
extern int EnableDamper;
extern int DamperStrength;
static int configMinForceDaytona2 = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceDaytona2"), 0, settingsFilename);
static int configMaxForceDaytona2 = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceDaytona2"), 100, settingsFilename);
@ -326,6 +328,8 @@ static int configAlternativeMinForceRightDaytona2 = GetPrivateProfileInt(TEXT("S
static int configAlternativeMaxForceRightDaytona2 = GetPrivateProfileInt(TEXT("Settings"), TEXT("AlternativeMaxForceRightDaytona2"), 100, settingsFilename);
static int configFeedbackLengthDaytona2 = GetPrivateProfileInt(TEXT("Settings"), TEXT("FeedbackLengthDaytona2"), 120, settingsFilename);
static int PowerModeDaytona2 = GetPrivateProfileInt(TEXT("Settings"), TEXT("PowerModeDaytona2"), 0, settingsFilename);
static int EnableDamperDaytona2 = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperDaytona2"), 0, settingsFilename);
static int DamperStrengthDaytona2 = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthDaytona2"), 100, settingsFilename);
static int configMinForceScud = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceScud"), 0, settingsFilename);
static int configMaxForceScud = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceScud"), 100, settingsFilename);
@ -335,6 +339,8 @@ static int configAlternativeMinForceRightScud = GetPrivateProfileInt(TEXT("Setti
static int configAlternativeMaxForceRightScud = GetPrivateProfileInt(TEXT("Settings"), TEXT("AlternativeMaxForceRightScud"), 100, settingsFilename);
static int configFeedbackLengthScud = GetPrivateProfileInt(TEXT("Settings"), TEXT("FeedbackLengthScud"), 120, settingsFilename);
static int PowerModeScud = GetPrivateProfileInt(TEXT("Settings"), TEXT("PowerModeScud"), 0, settingsFilename);
static int EnableDamperScud = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperScud"), 0, settingsFilename);
static int DamperStrengthScud = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthScud"), 100, settingsFilename);
static int configMinForceLeMans = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceLeMans"), 0, settingsFilename);
static int configMaxForceLeMans = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceLeMans"), 100, settingsFilename);
@ -344,6 +350,8 @@ static int configAlternativeMinForceRightLeMans = GetPrivateProfileInt(TEXT("Set
static int configAlternativeMaxForceRightLeMans = GetPrivateProfileInt(TEXT("Settings"), TEXT("AlternativeMaxForceRightLeMans"), 100, settingsFilename);
static int configFeedbackLengthLeMans = GetPrivateProfileInt(TEXT("Settings"), TEXT("FeedbackLengthLeMans"), 120, settingsFilename);
static int PowerModeLeMans = GetPrivateProfileInt(TEXT("Settings"), TEXT("PowerModeLeMans"), 0, settingsFilename);
static int EnableDamperLeMans = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperLeMans"), 0, settingsFilename);
static int DamperStrengthLeMans = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthLeMans"), 100, settingsFilename);
static int configMinForceDirtDevils = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceDirtDevils"), 0, settingsFilename);
static int configMaxForceDirtDevils = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceDirtDevils"), 100, settingsFilename);
@ -355,6 +363,8 @@ static int configFeedbackLengthDirtDevils = GetPrivateProfileInt(TEXT("Settings"
static int PowerModeDirtDevils = GetPrivateProfileInt(TEXT("Settings"), TEXT("PowerModeDirtDevils"), 0, settingsFilename);
static int EnableForceSpringEffectDirtDevils = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectDirtDevils"), 0, settingsFilename);
static int ForceSpringStrengthDirtDevils = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthDirtDevils"), 0, settingsFilename);
static int EnableDamperDirtDevils = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperDirtDevils"), 0, settingsFilename);
static int DamperStrengthDirtDevils = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthDirtDevils"), 100, settingsFilename);
static int configMinForceSRally2 = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceSRally2"), 0, settingsFilename);
static int configMaxForceSRally2 = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceSRally2"), 100, settingsFilename);
@ -366,6 +376,8 @@ static int configFeedbackLengthSRally2 = GetPrivateProfileInt(TEXT("Settings"),
static int PowerModeSRally2 = GetPrivateProfileInt(TEXT("Settings"), TEXT("PowerModeSRally2"), 0, settingsFilename);
static int EnableForceSpringEffectSRally2 = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectSRally2"), 0, settingsFilename);
static int ForceSpringStrengthSRally2 = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthSRally2"), 0, settingsFilename);
static int EnableDamperSRally2 = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperSRally2"), 0, settingsFilename);
static int DamperStrengthSRally2 = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthSRally2"), 100, settingsFilename);
static int configMinForceECA = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceECA"), 0, settingsFilename);
static int configMaxForceECA = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceECA"), 100, settingsFilename);
@ -377,6 +389,8 @@ static int configFeedbackLengthECA = GetPrivateProfileInt(TEXT("Settings"), TEXT
static int PowerModeECA = GetPrivateProfileInt(TEXT("Settings"), TEXT("PowerModeECA"), 0, settingsFilename);
static int EnableForceSpringEffectECA = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectECA"), 0, settingsFilename);
static int ForceSpringStrengthECA = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthECA"), 0, settingsFilename);
static int EnableDamperECA = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperECA"), 0, settingsFilename);
static int DamperStrengthECA = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthECA"), 100, settingsFilename);
static int configMinForceVirtuaRacing = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceVirtuaRacing"), 0, settingsFilename);
static int configMaxForceVirtuaRacing = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceVirtuaRacing"), 100, settingsFilename);
@ -387,6 +401,8 @@ static int configAlternativeMaxForceRightVirtuaRacing = GetPrivateProfileInt(TEX
static int configFeedbackLengthVirtuaRacing = GetPrivateProfileInt(TEXT("Settings"), TEXT("FeedbackLengthVirtuaRacing"), 120, settingsFilename);
static int EnableForceSpringEffectVirtuaRacing = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectVirtuaRacing"), 0, settingsFilename);
static int ForceSpringStrengthVirtuaRacing = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthVirtuaRacing"), 0, settingsFilename);
static int EnableDamperVirtuaRacing = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperVirtuaRacing"), 0, settingsFilename);
static int DamperStrengthVirtuaRacing = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthVirtuaRacing"), 100, settingsFilename);
static int configMinForceSFRush = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceSFRush"), 0, settingsFilename);
static int configMaxForceSFRush = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceSFRush"), 100, settingsFilename);
@ -398,6 +414,8 @@ static int configFeedbackLengthSFRush = GetPrivateProfileInt(TEXT("Settings"), T
static int PowerModeSFRush = GetPrivateProfileInt(TEXT("Settings"), TEXT("PowerModeSFRush"), 0, settingsFilename);
static int EnableForceSpringEffectSFRush = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectSFRush"), 0, settingsFilename);
static int ForceSpringStrengthSFRush = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthSFRush"), 0, settingsFilename);
static int EnableDamperSFRush = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperSFRush"), 0, settingsFilename);
static int DamperStrengthSFRush = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthSFRush"), 100, settingsFilename);
static int configMinForceSFRushRock = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceSFRushRock"), 0, settingsFilename);
static int configMaxForceSFRushRock = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceSFRushRock"), 100, settingsFilename);
@ -409,6 +427,8 @@ static int configFeedbackLengthSFRushRock = GetPrivateProfileInt(TEXT("Settings"
static int PowerModeSFRushRock = GetPrivateProfileInt(TEXT("Settings"), TEXT("PowerModeSFRushRock"), 0, settingsFilename);
static int EnableForceSpringEffectSFRushRock = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectSFRushRock"), 0, settingsFilename);
static int ForceSpringStrengthSFRushRock = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthSFRushRock"), 0, settingsFilename);
static int EnableDamperSFRushRock = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperSFRushRock"), 0, settingsFilename);
static int DamperStrengthSFRushRock = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthSFRushRock"), 100, settingsFilename);
static int configMinForceCrusnWld = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceCrusnWld"), 0, settingsFilename);
static int configMaxForceCrusnWld = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceCrusnWld"), 100, settingsFilename);
@ -420,6 +440,8 @@ static int configFeedbackLengthCrusnWld = GetPrivateProfileInt(TEXT("Settings"),
static int PowerModeCrusnWld = GetPrivateProfileInt(TEXT("Settings"), TEXT("PowerModeCrusnWld"), 0, settingsFilename);
static int EnableForceSpringEffectCrusnWld = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectCrusnWld"), 0, settingsFilename);
static int ForceSpringStrengthCrusnWld = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthCrusnWld"), 0, settingsFilename);
static int EnableDamperCrusnWld = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperCrusnWld"), 0, settingsFilename);
static int DamperStrengthCrusnWld = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthCrusnWld"), 100, settingsFilename);
static int configMinForceOffRoadC = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceOffRoadC"), 0, settingsFilename);
static int configMaxForceOffRoadC = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceOffRoadC"), 100, settingsFilename);
@ -431,6 +453,8 @@ static int configFeedbackLengthOffRoadC = GetPrivateProfileInt(TEXT("Settings"),
static int PowerModeOffRoadC = GetPrivateProfileInt(TEXT("Settings"), TEXT("PowerModeOffRoadC"), 0, settingsFilename);
static int EnableForceSpringEffectOffRoadC = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectOffRoadC"), 0, settingsFilename);
static int ForceSpringStrengthOffRoadC = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthOffRoadC"), 0, settingsFilename);
static int EnableDamperOffRoadC = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperOffRoadC"), 0, settingsFilename);
static int DamperStrengthOffRoadC = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthOffRoadC"), 100, settingsFilename);
static int configMinForceCrusnUSA = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceCrusnUSA"), 0, settingsFilename);
static int configMaxForceCrusnUSA = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceCrusnUSA"), 100, settingsFilename);
@ -442,6 +466,8 @@ static int configFeedbackLengthCrusnUSA = GetPrivateProfileInt(TEXT("Settings"),
static int PowerModeCrusnUSA = GetPrivateProfileInt(TEXT("Settings"), TEXT("PowerModeCrusnUSA"), 0, settingsFilename);
static int EnableForceSpringEffectCrusnUSA = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectCrusnUSA"), 0, settingsFilename);
static int ForceSpringStrengthCrusnUSA = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthCrusnUSA"), 0, settingsFilename);
static int EnableDamperCrusnUSA = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperCrusnUSA"), 0, settingsFilename);
static int DamperStrengthCrusnUSA = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthCrusnUSA"), 100, settingsFilename);
static int configMinForceCalSpeed = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceCalSpeed"), 0, settingsFilename);
static int configMaxForceCalSpeed = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceCalSpeed"), 100, settingsFilename);
@ -453,6 +479,8 @@ static int configFeedbackLengthCalSpeed = GetPrivateProfileInt(TEXT("Settings"),
static int PowerModeCalSpeed = GetPrivateProfileInt(TEXT("Settings"), TEXT("PowerModeCalSpeed"), 0, settingsFilename);
static int EnableForceSpringEffectCalSpeed = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectCalSpeed"), 0, settingsFilename);
static int ForceSpringStrengthCalSpeed = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthCalSpeed"), 0, settingsFilename);
static int EnableDamperCalSpeed = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperCalSpeed"), 0, settingsFilename);
static int DamperStrengthCalSpeed = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthCalSpeed"), 100, settingsFilename);
static int configMinForceSFRush2049 = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceSFRush2049"), 0, settingsFilename);
static int configMaxForceSFRush2049 = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceSFRush2049"), 100, settingsFilename);
@ -464,6 +492,8 @@ static int configFeedbackLengthSFRush2049 = GetPrivateProfileInt(TEXT("Settings"
static int PowerModeSFRush2049 = GetPrivateProfileInt(TEXT("Settings"), TEXT("PowerModeSFRush2049"), 0, settingsFilename);
static int EnableForceSpringEffectSFRush2049 = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectSFRush2049"), 0, settingsFilename);
static int ForceSpringStrengthSFRush2049 = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthSFRush2049"), 0, settingsFilename);
static int EnableDamperSFRush2049 = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperSFRush2049"), 0, settingsFilename);
static int DamperStrengthSFRush2049 = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthSFRush2049"), 100, settingsFilename);
static int configMinForceHardD = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceHardD"), 0, settingsFilename);
static int configMaxForceHardD = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceHardD"), 100, settingsFilename);
@ -475,6 +505,8 @@ static int configFeedbackLengthHardD = GetPrivateProfileInt(TEXT("Settings"), TE
static int PowerModeHardD = GetPrivateProfileInt(TEXT("Settings"), TEXT("PowerModeHardD"), 0, settingsFilename);
static int EnableForceSpringEffectHardD = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectHardD"), 0, settingsFilename);
static int ForceSpringStrengthHardD = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthHardD"), 0, settingsFilename);
static int EnableDamperHardD = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperHardD"), 0, settingsFilename);
static int DamperStrengthHardD = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthHardD"), 100, settingsFilename);
static int configMinForceRevX = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceRevX"), 0, settingsFilename);
static int configMaxForceRevX = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceRevX"), 100, settingsFilename);
@ -754,6 +786,8 @@ static int configAlternativeMaxForceRightHyperDrive = GetPrivateProfileInt(TEXT(
static int configFeedbackLengthHyperDrive = GetPrivateProfileInt(TEXT("Settings"), TEXT("FeedbackLengthHyperDrive"), 120, settingsFilename);
static int EnableForceSpringEffectHyperDrive = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectHyperDrive"), 0, settingsFilename);
static int ForceSpringStrengthHyperDrive = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthHyperDrive"), 0, settingsFilename);
static int EnableDamperHyperDrive = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperHyperDrive"), 0, settingsFilename);
static int DamperStrengthHyperDrive = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthHyperDrive"), 100, settingsFilename);
static int configMinForceVaporTrx = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceVaporTrx"), 0, settingsFilename);
static int configMaxForceVaporTrx = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceVaporTrx"), 100, settingsFilename);
@ -764,6 +798,8 @@ static int configAlternativeMaxForceRightVaporTrx = GetPrivateProfileInt(TEXT("S
static int configFeedbackLengthVaporTrx = GetPrivateProfileInt(TEXT("Settings"), TEXT("FeedbackLengthVaporTrx"), 120, settingsFilename);
static int EnableForceSpringEffectVaporTrx = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectVaporTrx"), 0, settingsFilename);
static int ForceSpringStrengthVaporTrx = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthVaporTrx"), 0, settingsFilename);
static int EnableDamperVaporTrx = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperVaporTrx"), 0, settingsFilename);
static int DamperStrengthVaporTrx = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthVaporTrx"), 100, settingsFilename);
static int configMinForceRaveRacer = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceRaveRacer"), 0, settingsFilename);
static int configMaxForceRaveRacer = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceRaveRacer"), 100, settingsFilename);
@ -775,6 +811,8 @@ static int PowerModeRaveRacer = GetPrivateProfileInt(TEXT("Settings"), TEXT("Pow
static int configFeedbackLengthRaveRacer = GetPrivateProfileInt(TEXT("Settings"), TEXT("FeedbackLengthRaveRacer"), 120, settingsFilename);
static int EnableForceSpringEffectRaveRacer = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectRaveRacer"), 0, settingsFilename);
static int ForceSpringStrengthRaveRacer = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthRaveRacer"), 0, settingsFilename);
static int EnableDamperRaveRacer= GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperRaveRacer"), 0, settingsFilename);
static int DamperStrengthRaveRacer = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthRaveRacer"), 100, settingsFilename);
static int configMinForceDaytonaMAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceDaytona"), 0, settingsFilename);
static int configMaxForceDaytonaMAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceDaytona"), 100, settingsFilename);
@ -786,6 +824,8 @@ static int PowerModeDaytonaMAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("P
static int configFeedbackLengthDaytonaMAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("FeedbackLengthDaytona"), 120, settingsFilename);
static int EnableForceSpringEffectDaytonaMAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectDaytona"), 0, settingsFilename);
static int ForceSpringStrengthDaytonaMAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthDaytona"), 0, settingsFilename);
static int EnableDamperDaytonaMAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperDaytona"), 0, settingsFilename);
static int DamperStrengthDaytonaMAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthDaytona"), 100, settingsFilename);
static int configMinForceSRallyMAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceSRally"), 0, settingsFilename);
static int configMaxForceSRallyMAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceSRally"), 100, settingsFilename);
@ -797,6 +837,8 @@ static int PowerModeSRallyMAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("Po
static int configFeedbackLengthSRallyMAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("FeedbackLengthSRally"), 120, settingsFilename);
static int EnableForceSpringEffectSRallyMAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectSRally"), 0, settingsFilename);
static int ForceSpringStrengthSRallyMAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthSRally"), 0, settingsFilename);
static int EnableDamperSRallyMAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperSRally"), 0, settingsFilename);
static int DamperStrengthSRallyMAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthSRally"), 100, settingsFilename);
static int configMinForceIndy500MAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceIndy500"), 0, settingsFilename);
static int configMaxForceIndy500MAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceIndy500"), 100, settingsFilename);
@ -808,6 +850,8 @@ static int PowerModeIndy500MAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("P
static int configFeedbackLengthIndy500MAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("FeedbackLengthIndy500"), 120, settingsFilename);
static int EnableForceSpringEffectIndy500MAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectIndy500"), 0, settingsFilename);
static int ForceSpringStrengthIndy500MAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthIndy500"), 0, settingsFilename);
static int EnableDamperIndy500MAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperIndy500"), 0, settingsFilename);
static int DamperStrengthIndy500MAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthIndy500"), 100, settingsFilename);
static int configMinForceSuperGTMAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceSuperGT"), 0, settingsFilename);
static int configMaxForceSuperGTMAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceSuperGT"), 100, settingsFilename);
@ -819,6 +863,8 @@ static int PowerModeSuperGTMAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("P
static int configFeedbackLengthSuperGTMAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("FeedbackLengthSuperGT"), 120, settingsFilename);
static int EnableForceSpringEffectSuperGTMAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectSuperGT"), 0, settingsFilename);
static int ForceSpringStrengthSuperGTMAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthSuperGT"), 0, settingsFilename);
static int EnableDamperSuperGTMAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperSuperGT"), 0, settingsFilename);
static int DamperStrengthSuperGTMAME = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthSuperGT"), 100, settingsFilename);
static int configMinForceSuperChase = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceSuperChase"), 0, settingsFilename);
static int configMaxForceSuperChase = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceSuperChase"), 100, settingsFilename);
@ -830,6 +876,8 @@ static int PowerModeSuperChase = GetPrivateProfileInt(TEXT("Settings"), TEXT("Po
static int configFeedbackLengthSuperChase = GetPrivateProfileInt(TEXT("Settings"), TEXT("FeedbackLengthSuperChase"), 120, settingsFilename);
static int EnableForceSpringEffectSuperChase = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectSuperChase"), 0, settingsFilename);
static int ForceSpringStrengthSuperChase = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthSuperChase"), 0, settingsFilename);
static int EnableDamperSuperChase = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperSuperChase"), 0, settingsFilename);
static int DamperStrengthSuperChase = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthSuperChase"), 100, settingsFilename);
static int configMinForceDirtDash = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceDirtDash"), 0, settingsFilename);
static int configMaxForceDirtDash = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceDirtDash"), 100, settingsFilename);
@ -842,6 +890,8 @@ static int configFeedbackLengthDirtDash = GetPrivateProfileInt(TEXT("Settings"),
static int EnableForceSpringEffectDirtDash = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectDirtDash"), 0, settingsFilename);
static int ForceSpringStrengthDirtDash = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthDirtDash"), 0, settingsFilename);
static int FFBDivideDirtDash = GetPrivateProfileInt(TEXT("Settings"), TEXT("FFBDivideDirtDash"), 0, settingsFilename);
static int EnableDamperDirtDash = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperDirtDash"), 0, settingsFilename);
static int DamperStrengthDirtDash = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthDirtDash"), 100, settingsFilename);
static int configMinForceAceDriverVictory= GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceAceDriverVictory"), 0, settingsFilename);
static int configMaxForceAceDriverVictory = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceAceDriverVictory"), 100, settingsFilename);
@ -854,6 +904,8 @@ static int configFeedbackLengthAceDriverVictory = GetPrivateProfileInt(TEXT("Set
static int EnableForceSpringEffectAceDriverVictory = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectAceDriverVictory"), 0, settingsFilename);
static int ForceSpringStrengthAceDriverVictory = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthAceDriverVictory"), 0, settingsFilename);
static int FFBDivideAceDriverVictory = GetPrivateProfileInt(TEXT("Settings"), TEXT("FFBDivideAceDriverVictory"), 0, settingsFilename);
static int EnableDamperAceDriverVictory = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperAceDriverVictory"), 0, settingsFilename);
static int DamperStrengthAceDriverVictory = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthAceDriverVictory"), 100, settingsFilename);
static int configMinForceAceDriver = GetPrivateProfileInt(TEXT("Settings"), TEXT("MinForceAceDriver"), 0, settingsFilename);
static int configMaxForceAceDriver = GetPrivateProfileInt(TEXT("Settings"), TEXT("MaxForceAceDriver"), 100, settingsFilename);
@ -866,6 +918,8 @@ static int configFeedbackLengthAceDriver = GetPrivateProfileInt(TEXT("Settings")
static int EnableForceSpringEffectAceDriver = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableForceSpringEffectAceDriver"), 0, settingsFilename);
static int ForceSpringStrengthAceDriver = GetPrivateProfileInt(TEXT("Settings"), TEXT("ForceSpringStrengthAceDriver"), 0, settingsFilename);
static int FFBDivideAceDriver = GetPrivateProfileInt(TEXT("Settings"), TEXT("FFBDivideAceDriver"), 0, settingsFilename);
static int EnableDamperAceDriver = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableDamperAceDriver"), 0, settingsFilename);
static int DamperStrengthAceDriver = GetPrivateProfileInt(TEXT("Settings"), TEXT("DamperStrengthAceDriver"), 100, settingsFilename);
static bool init = false;
static bool initSpring = false;
@ -1668,6 +1722,8 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
configAlternativeMaxForceRight = configAlternativeMaxForceRightDaytona2;
configFeedbackLength = configFeedbackLengthDaytona2;
PowerMode = PowerModeDaytona2;
EnableDamper = EnableDamperDaytona2;
DamperStrength = DamperStrengthDaytona2;
RunningFFB = "Daytona2Active";
}
@ -1682,6 +1738,8 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
configAlternativeMaxForceRight = configAlternativeMaxForceRightScud;
configFeedbackLength = configFeedbackLengthScud;
PowerMode = PowerModeScud;
EnableDamper = EnableDamperScud;
DamperStrength = DamperStrengthScud;
RunningFFB = "Daytona2Active";
}
@ -1696,6 +1754,8 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
configAlternativeMaxForceRight = configAlternativeMaxForceRightLeMans;
configFeedbackLength = configFeedbackLengthLeMans;
PowerMode = PowerModeLeMans;
EnableDamper = EnableDamperLeMans;
DamperStrength = DamperStrengthLeMans;
RunningFFB = "Daytona2Active";
}
@ -1712,6 +1772,8 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
PowerMode = PowerModeDirtDevils;
EnableForceSpringEffect = EnableForceSpringEffectDirtDevils;
ForceSpringStrength = ForceSpringStrengthDirtDevils;
EnableDamper = EnableDamperDirtDevils;
DamperStrength = DamperStrengthDirtDevils;
RunningFFB = "DirtDevilsActive";
}
@ -1728,6 +1790,8 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
PowerMode = PowerModeSRally2;
EnableForceSpringEffect = EnableForceSpringEffectSRally2;
ForceSpringStrength = ForceSpringStrengthSRally2;
EnableDamper = EnableDamperSRally2;
DamperStrength = DamperStrengthSRally2;
RunningFFB = "Srally2Active";
}
@ -1744,6 +1808,8 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
PowerMode = PowerModeECA;
EnableForceSpringEffect = EnableForceSpringEffectECA;
ForceSpringStrength = ForceSpringStrengthECA;
EnableDamper = EnableDamperECA;
DamperStrength = DamperStrengthECA;
RunningFFB = "Srally2Active";
}
@ -1759,6 +1825,8 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
configFeedbackLength = configFeedbackLengthVirtuaRacing;
EnableForceSpringEffect = EnableForceSpringEffectVirtuaRacing;
ForceSpringStrength = ForceSpringStrengthVirtuaRacing;
EnableDamper = EnableDamperVirtuaRacing;
DamperStrength = DamperStrengthVirtuaRacing;
RunningFFB = "VirtuaRacingActive";
}
@ -1775,6 +1843,8 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
PowerMode = PowerModeSFRush;
EnableForceSpringEffect = EnableForceSpringEffectSFRush;
ForceSpringStrength = ForceSpringStrengthSFRush;
EnableDamper = EnableDamperSFRush;
DamperStrength = DamperStrengthSFRush;
RunningFFB = "RacingFullValueActive2";
}
@ -1791,6 +1861,8 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
PowerMode = PowerModeSFRushRock;
EnableForceSpringEffect = EnableForceSpringEffectSFRushRock;
ForceSpringStrength = ForceSpringStrengthSFRushRock;
EnableDamper = EnableDamperSFRushRock;
DamperStrength = DamperStrengthSFRushRock;
RunningFFB = "RacingFullValueActive2";
}
@ -1807,6 +1879,8 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
PowerMode = PowerModeCrusnWld;
EnableForceSpringEffect = EnableForceSpringEffectCrusnWld;
ForceSpringStrength = ForceSpringStrengthCrusnWld;
EnableDamper = EnableDamperCrusnWld;
DamperStrength = DamperStrengthCrusnWld;
RunningFFB = "RacingFullValueActive2";
}
@ -1823,6 +1897,8 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
PowerMode = PowerModeSuperChase;
EnableForceSpringEffect = EnableForceSpringEffectSuperChase;
ForceSpringStrength = ForceSpringStrengthSuperChase;
EnableDamper = EnableDamperSuperChase;
DamperStrength = DamperStrengthSuperChase;
RunningFFB = "SuperChaseActive";
}
@ -1839,6 +1915,8 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
PowerMode = PowerModeOffRoadC;
EnableForceSpringEffect = EnableForceSpringEffectOffRoadC;
ForceSpringStrength = ForceSpringStrengthOffRoadC;
EnableDamper = EnableDamperOffRoadC;
DamperStrength = DamperStrengthOffRoadC;
RunningFFB = "RacingFullValueActive2";
}
@ -1855,6 +1933,8 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
PowerMode = PowerModeCrusnUSA;
EnableForceSpringEffect = EnableForceSpringEffectCrusnUSA;
ForceSpringStrength = ForceSpringStrengthCrusnUSA;
EnableDamper = EnableDamperCrusnUSA;
DamperStrength = DamperStrengthCrusnUSA;
RunningFFB = "RacingFullValueActive2";
}
@ -1871,6 +1951,8 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
PowerMode = PowerModeCalSpeed;
EnableForceSpringEffect = EnableForceSpringEffectCalSpeed;
ForceSpringStrength = ForceSpringStrengthCalSpeed;
EnableDamper = EnableDamperCalSpeed;
DamperStrength = DamperStrengthCalSpeed;
RunningFFB = "RacingFullValueActive1";
}
@ -1887,6 +1969,8 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
PowerMode = PowerModeSFRush2049;
EnableForceSpringEffect = EnableForceSpringEffectSFRush2049;
ForceSpringStrength = ForceSpringStrengthSFRush2049;
EnableDamper = EnableDamperSFRush2049;
DamperStrength = DamperStrengthSFRush2049;
RunningFFB = "RacingFullValueActive1";
}
@ -1907,6 +1991,8 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
PowerMode = PowerModeHardD;
EnableForceSpringEffect = EnableForceSpringEffectHardD;
ForceSpringStrength = ForceSpringStrengthHardD;
EnableDamper = EnableDamperHardD;
DamperStrength = DamperStrengthHardD;
RunningFFB = "HardDrivinActive";
}
@ -2326,6 +2412,8 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
configFeedbackLength = configFeedbackLengthHyperDrive;
EnableForceSpringEffect = EnableForceSpringEffectHyperDrive;
ForceSpringStrength = ForceSpringStrengthHyperDrive;
EnableDamper = EnableDamperHyperDrive;
DamperStrength = DamperStrengthHyperDrive;
RunningFFB = "RacingFullValueActive1";
}
@ -2341,6 +2429,8 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
configFeedbackLength = configFeedbackLengthVaporTrx;
EnableForceSpringEffect = EnableForceSpringEffectVaporTrx;
ForceSpringStrength = ForceSpringStrengthVaporTrx;
EnableDamper = EnableDamperVaporTrx;
DamperStrength = DamperStrengthVaporTrx;
RunningFFB = "RacingFullValueActive1";
}
@ -2357,6 +2447,8 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
PowerMode = PowerModeRaveRacer;
EnableForceSpringEffect = EnableForceSpringEffectRaveRacer;
ForceSpringStrength = ForceSpringStrengthRaveRacer;
EnableDamper = EnableDamperRaveRacer;
DamperStrength = DamperStrengthRaveRacer;
RunningFFB = "RaveRacerActive";
}
@ -2373,6 +2465,8 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
PowerMode = PowerModeDaytonaMAME;
EnableForceSpringEffect = EnableForceSpringEffectDaytonaMAME;
ForceSpringStrength = ForceSpringStrengthDaytonaMAME;
EnableDamper = EnableDamperDaytonaMAME;
DamperStrength = DamperStrengthDaytonaMAME;
RunningFFB = "M2PatternActive";
}
@ -2389,6 +2483,8 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
PowerMode = PowerModeIndy500MAME;
EnableForceSpringEffect = EnableForceSpringEffectIndy500MAME;
ForceSpringStrength = ForceSpringStrengthIndy500MAME;
EnableDamper = EnableDamperIndy500MAME;
DamperStrength = DamperStrengthIndy500MAME;
RunningFFB = "M2PatternActive";
}
@ -2405,6 +2501,8 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
PowerMode = PowerModeSuperGTMAME;
EnableForceSpringEffect = EnableForceSpringEffectSuperGTMAME;
ForceSpringStrength = ForceSpringStrengthSuperGTMAME;
EnableDamper = EnableDamperSuperGTMAME;
DamperStrength = DamperStrengthSuperGTMAME;
RunningFFB = "M2PatternActive";
}
@ -2421,6 +2519,8 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
PowerMode = PowerModeSRallyMAME;
EnableForceSpringEffect = EnableForceSpringEffectSRallyMAME;
ForceSpringStrength = ForceSpringStrengthSRallyMAME;
EnableDamper = EnableDamperSRallyMAME;
DamperStrength = DamperStrengthSRallyMAME;
RunningFFB = "SrallyActive";
}
@ -2438,6 +2538,8 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
EnableForceSpringEffect = EnableForceSpringEffectDirtDash;
ForceSpringStrength = ForceSpringStrengthDirtDash;
Divide = FFBDivideDirtDash * 1.0;
EnableDamper = EnableDamperDirtDash;
DamperStrength = DamperStrengthDirtDash;
RunningFFB = "NamcoFFBActive";
}
@ -2455,6 +2557,8 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
EnableForceSpringEffect = EnableForceSpringEffectAceDriverVictory;
ForceSpringStrength = ForceSpringStrengthAceDriverVictory;
Divide = FFBDivideAceDriverVictory * 1.0;
EnableDamper = EnableDamperAceDriverVictory;
DamperStrength = DamperStrengthAceDriverVictory;
RunningFFB = "NamcoFFBActive";
}
@ -2472,6 +2576,8 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
EnableForceSpringEffect = EnableForceSpringEffectAceDriver;
ForceSpringStrength = ForceSpringStrengthAceDriver;
Divide = FFBDivideAceDriver * 1.0;
EnableDamper = EnableDamperAceDriver;
DamperStrength = DamperStrengthAceDriver;
RunningFFB = "NamcoFFBActive";
}
@ -2524,6 +2630,11 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
if (RomGameName)
{
if (RunningFFB > 0 && EnableDamper)
{
triggers->Damper(DamperStrength / 100.0);
}
if (RunningFFB == Daytona2Active) //Daytona 2,Scud Race & LeMans
{
ForceSpringEffect = false;

View File

@ -14,6 +14,9 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include <string>
#include "MarioKartGPDX.h"
extern int EnableDamper;
extern int DamperStrength;
void MarioKartGPDX100::FFBLoop(EffectConstants *constants, Helpers *helpers, EffectTriggers* triggers) {
helpers->log("in MKDX Ffbloop");
@ -32,6 +35,10 @@ void MarioKartGPDX100::FFBLoop(EffectConstants *constants, Helpers *helpers, Eff
std::string ffs = std::to_string(ff1);
helpers->log((char *)ffs.c_str()); helpers->log("got value: ");
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
// Large Shake when hitting walls, other karts or getting hit by items
if ((4194308 == ff1) & (ff10 == 1))

View File

@ -14,6 +14,9 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include <string>
#include "MarioKartGPDX1.10.h"
extern int EnableDamper;
extern int DamperStrength;
static wchar_t* settingsFilename = TEXT(".\\FFBPlugin.ini");
static int ConstantEffectForSteering = GetPrivateProfileInt(TEXT("Settings"), TEXT("ConstantEffectForSteering"), 0, settingsFilename);
static int ConstantEffectForSteeringStrength = GetPrivateProfileInt(TEXT("Settings"), TEXT("ConstantEffectForSteeringStrength"), 0, settingsFilename);
@ -79,6 +82,11 @@ void MarioKartGPDX110::FFBLoop(EffectConstants *constants, Helpers *helpers, Eff
std::string ffs = std::to_string(ff1);
helpers->log((char *)ffs.c_str()); helpers->log("got value: ");
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
if ((ConstantEffectForSteering == 1) && (ff11 == 1))
{
if ((Wheel >= 0) & (Wheel < 128))

View File

@ -14,6 +14,9 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include <string>
#include "MarioKartGPDXUSA.h"
extern int EnableDamper;
extern int DamperStrength;
void MarioKartGPDXUSA::FFBLoop(EffectConstants *constants, Helpers *helpers, EffectTriggers* triggers) {
wchar_t *settingsFilename = TEXT(".\\FFBPlugin.ini");
@ -77,6 +80,11 @@ void MarioKartGPDXUSA::FFBLoop(EffectConstants *constants, Helpers *helpers, Eff
int static oldhitground = 0;
int newhitground = ff5;
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
if ((ConstantEffectForSteering == 1) && (ff11 == 1))
{
if ((Wheel >= 0) & (Wheel < 128))

View File

@ -19,6 +19,8 @@ static EffectTriggers *myTriggers;
static EffectConstants *myConstants;
static Helpers *myHelpers;
extern SDL_Event e;
extern int EnableDamper;
extern int DamperStrength;
static bool init = false;
static wchar_t *settingsFilename = TEXT(".\\FFBPlugin.ini");
static int ShowButtonNumbersForSetup = GetPrivateProfileInt(TEXT("Settings"), TEXT("ShowButtonNumbersForSetup"), 0, settingsFilename);
@ -96,6 +98,11 @@ static int ThreadLoop()
SpeedStrength = 0;
}
if (EnableDamper == 1)
{
myTriggers->Damper(DamperStrength / 100.0);
}
if (ff8 == 1)
{
if ((ff6 >= 0x00) & (ff6 < 0x7F))

View File

@ -19,6 +19,8 @@ static EffectTriggers *myTriggers;
static EffectConstants *myConstants;
static Helpers *myHelpers;
extern SDL_Event e;
extern int EnableDamper;
extern int DamperStrength;
static bool init = false;
static int SpeedStrength;
static wchar_t *settingsFilename = TEXT(".\\FFBPlugin.ini");
@ -138,6 +140,11 @@ static int ThreadLoop()
SpeedStrength = 0;
}
if (EnableDamper == 1)
{
myTriggers->Damper(DamperStrength / 100.0);
}
if ((oldgear != newgear) && (ff8 == 1) && (ffspeed >= 0.1))
{
double percentForce = 0.1;

View File

@ -13,6 +13,9 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include <string>
#include "R-Tuned.h"
extern int EnableDamper;
extern int DamperStrength;
static wchar_t* settingsFilename = TEXT(".\\FFBPlugin.ini");
static int SpringStrength = GetPrivateProfileInt(TEXT("Settings"), TEXT("SpringStrength"), 0, settingsFilename);
@ -26,6 +29,11 @@ void RTuned::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTrigger
std::string ffs = std::to_string(BoostEffect);
helpers->log((char*)ffs.c_str());
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
UINT8 LetsEnableFFB = helpers->ReadByte(0x8519C58, /* isRelativeOffset */ false);
if (LetsEnableFFB == 0x01)

View File

@ -23,6 +23,8 @@ extern HINSTANCE gl_hlibavs;
extern int joystick_index1;
extern int joystick_index2;
extern SDL_Joystick* GameController2;
extern int EnableDamper;
extern int DamperStrength;
static bool avoiderror = true;
static bool testbuttonA;
static bool servicebuttonA;
@ -211,6 +213,12 @@ static int ThreadLoop()
{
myHelpers->WriteFloat32((INT_PTR)gl_hjgtDll + 0x954394, 0, false);
}
if (EnableDamper == 1)
{
myTriggers->Damper(DamperStrength / 100.0);
}
if ((ff3 != 0x00) && (ff4 != 0x00))
{
if ((ff2 > 0x00)& (ff2 < 0x40))

View File

@ -14,6 +14,9 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include <string>
#include "SWDC2018.h"
extern int EnableDamper;
extern int DamperStrength;
static wchar_t* settingsFilename = TEXT(".\\FFBPlugin.ini");
static int EscapeKeyExitViaPlugin = GetPrivateProfileInt(TEXT("Settings"), TEXT("EscapeKeyExitViaPlugin"), 0, settingsFilename);
@ -28,6 +31,11 @@ void SWDC::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers*
UINT8 ff2 = helpers->ReadByte(0x8E5CCF5, true);
UINT8 ff3 = helpers->ReadByte(0x8E5CCF6, true);
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
if (ff1 == 80)
{
triggers->Spring(1.0);

View File

@ -14,12 +14,20 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include <string>
#include "SegaRacingClassic.h"
extern int EnableDamper;
extern int DamperStrength;
void SegaRacingClassic::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers* triggers) {
UINT8 ff = helpers->ReadByte(0x834C19, /* isRelativeOffset */ false);
helpers->log("got value: ");
std::string ffs = std::to_string(ff);
helpers->log((char*)ffs.c_str());
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
if ((ff > 0xD7) && (ff < 0xE0))
{
//Clutch

View File

@ -14,12 +14,20 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include <string>
#include "SegaRally3.h"
extern int EnableDamper;
extern int DamperStrength;
void SegaRally3::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers* triggers) {
helpers->log("in SR3 Ffbloop");
const int ff = GetTeknoParrotFFB();
std::string ffs = std::to_string(ff);
helpers->log((char*)ffs.c_str());
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
if (ff > 15)
{
helpers->log("moving wheel right");

View File

@ -1,13 +1,21 @@
#include <string>
#include "SegaRally3Other.h"
static EffectTriggers* myTriggers;
static EffectConstants* myConstants;
static Helpers* myHelpers;
extern int EnableDamper;
extern int DamperStrength;
static bool init = false;
static int __stdcall Out32(DWORD device, DWORD data)
{
if (EnableDamper == 1)
{
myTriggers->Damper(DamperStrength / 100.0);
}
if (data > 15)
{
double percentForce = (31 - data) / 15.0;

View File

@ -14,6 +14,9 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include <string>
#include "SnoCross.h"
extern int EnableDamper;
extern int DamperStrength;
void SnoCross::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers* triggers) {
float ff = helpers->ReadFloat32(0x99AB6C, false);
@ -24,6 +27,11 @@ void SnoCross::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTrigg
std::string ffs = std::to_string(ff);
helpers->log((char*)ffs.c_str());
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
if (oldff != newff)
{
if (ff > 0)

View File

@ -11,32 +11,32 @@ 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 "SonicSegaAllStarsRacing.h"
void SonicSegaAllStarsRacing::FFBLoop(EffectConstants *constants, Helpers *helpers, EffectTriggers* triggers) {
INT_PTR FFBEnable = helpers->ReadByte(0x5CD858, /* isRelativeOffset*/ true);
INT_PTR FFB = helpers->ReadByte(0x5CD864, /* isRelativeOffset*/ true);
extern int EnableDamper;
extern int DamperStrength;
void SonicSegaAllStarsRacing::FFBLoop(EffectConstants *constants, Helpers *helpers, EffectTriggers* triggers) {
INT_PTR FFBEnable = helpers->ReadByte(0x5CD858, true);
INT_PTR FFB = helpers->ReadByte(0x5CD864, true);
{
//Enable FFB
helpers->WriteByte(0x5CD858, 0x03, true);
}
if (EnableDamper == 1)
{
//Trigger friction to stop any oscillation
double percentForce = 0.2;
triggers->Friction(percentForce);
triggers->Damper(DamperStrength / 100.0);
}
if ((FFB > 0) & (FFB < 19))
if ((FFB > 0) && (FFB < 19))
{
helpers->log("moving wheel right");
double percentForce = (FFB) / 18.0;
helpers->log("moving wheel left");
double percentForce = FFB / 18.0;
double percentLength = 100;
triggers->Rumble(0, percentForce, percentLength);
triggers->Constant(constants->DIRECTION_FROM_RIGHT, percentForce);
}
else if ((FFB > 237) & (FFB < 256))
else if ((FFB > 237) && (FFB < 256))
{
helpers->log("moving wheel right");
double percentForce = (256 - FFB) / 18.0;

View File

@ -1,8 +1,11 @@
#include <string>
#include "StormRacerG.h"
static EffectTriggers* myTriggers;
static EffectConstants* myConstants;
static Helpers* myHelpers;
extern int EnableDamper;
extern int DamperStrength;
static bool init = false;
@ -58,6 +61,11 @@ void StormRacerG::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTr
if (Enable == 0x01)
{
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
if (speedo < 0)
{
speedo = -speedo;

View File

@ -17,13 +17,6 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
wchar_t *settingsFN = TEXT(".\\FFBPlugin.ini");
//GameId test values:
//const int TEST_GAME_CONST = -1;
//const int TEST_GAME_SINE = -2;
//const int TEST_GAME_FRICTION = -3;
//const int TEST_GAME_SPRING = -4;
//const int TEST_GAME_HEAVY = -5;
//const int TEST_GAME_LOOSE = -6;
int configGameIdEffect = GetPrivateProfileInt(TEXT("Settings"), TEXT("GameId"), 1, settingsFN);
void TestGame::FFBLoop(EffectConstants *constants, Helpers *helpers, EffectTriggers* triggers) {
@ -52,5 +45,8 @@ void TestGame::FFBLoop(EffectConstants *constants, Helpers *helpers, EffectTrigg
case -7:
triggers->Rumble(1.0, 1.0, SDL_HAPTIC_INFINITY);
break;
case -8:
triggers->RumbleTriggers(1.0, 1.0, SDL_HAPTIC_INFINITY);
break;
}
}

View File

@ -15,6 +15,8 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include "WMMT5.h"
#include "SDL.h"
extern int EnableDamper;
extern int DamperStrength;
static EffectTriggers* myTriggers;
static EffectConstants* myConstants;
static Helpers* myHelpers;
@ -158,6 +160,11 @@ void WMMT5::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
+ " | speed: " + std::to_string(speed);
helpers->log((char*)msg.c_str());
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
double percentForce;
if (0.001 > spring && !gameFfbStarted)
{

View File

@ -15,6 +15,8 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include "WMMT6.h"
#include "SDL.h"
extern int EnableDamper;
extern int DamperStrength;
static EffectTriggers* myTriggers;
static EffectConstants* myConstants;
static Helpers* myHelpers;
@ -158,6 +160,11 @@ void WMMT6::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
+ " | speed: " + std::to_string(speed);
helpers->log((char*)msg.c_str());
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
double percentForce;
if (0.001 > spring && !gameFfbStarted)
{

View File

@ -15,6 +15,8 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include "WMMT6R.h"
#include "SDL.h"
extern int EnableDamper;
extern int DamperStrength;
static EffectTriggers* myTriggers;
static EffectConstants* myConstants;
static Helpers* myHelpers;
@ -158,6 +160,11 @@ void WMMT6R::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTrigger
+ " | speed: " + std::to_string(speed);
helpers->log((char*)msg.c_str());
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
double percentForce;
if (0.001 > spring && !gameFfbStarted)
{

View File

@ -14,6 +14,9 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include <string>
#include "WackyRaces.h"
extern int EnableDamper;
extern int DamperStrength;
int ttx2wr(int ffRaw) {
switch (ffRaw) {
// moving left, from weakest to strongest (30 => 16).
@ -103,6 +106,11 @@ void WackyRaces::FFBLoop(EffectConstants *constants, Helpers *helpers, EffectTri
//std::string ffs = std::to_string(ff);
//helpers->log((char *)ffs.c_str());
if (EnableDamper == 1)
{
triggers->Damper(DamperStrength / 100.0);
}
if (ff > 15)
{
helpers->log("moving wheel left");