1
0
mirror of synced 2025-01-19 23:52:45 +01:00

Merge pull request #9 from adamgp/master

FFB Strength adjustments all tested, minor tweaks to allow for flexibility
This commit is contained in:
Boomslangnz 2020-07-18 15:19:01 +12:00 committed by GitHub
commit 8c934944d4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 402 additions and 56 deletions

View File

@ -52,6 +52,8 @@ ResetFFBStrength=
; Step is the amount to adjust when increasing or decreasing per button where FFB strength is represented on ; Step is the amount to adjust when increasing or decreasing per button where FFB strength is represented on
; a scale of 0-100. ; a scale of 0-100.
StepFFBStrength=5 StepFFBStrength=5
; Set to 1 if you want FFB strength adjustments to persist between loads, else 0.
EnableFFBStrengthPersistence=0
; Set to 1 if you want FFB strength adjustments text to speech over speaker ; Set to 1 if you want FFB strength adjustments text to speech over speaker
EnableFFBStrengthTextToSpeech=0 EnableFFBStrengthTextToSpeech=0

View File

@ -9,9 +9,46 @@ extern int configAlternativeMaxForceLeft;
extern int configAlternativeMinForceRight; extern int configAlternativeMinForceRight;
extern int configAlternativeMaxForceRight; extern int configAlternativeMaxForceRight;
extern char* romname; extern char* romname;
extern char* romnameM2;
extern char* romnameDemul;
extern LPCSTR CustomAlternativeMaxForceLeft; extern LPCSTR CustomAlternativeMaxForceLeft;
extern LPCSTR CustomAlternativeMaxForceRight; extern LPCSTR CustomAlternativeMaxForceRight;
extern LPCSTR CustomMaxForce; extern LPCSTR CustomMaxForce;
extern int EnableFFBStrengthPersistence;
int defaultMaxForce;
int defaultAlternativeMaxForceLeft;
int defaultAlternativeMaxForceRight;
//Demul Emulator Games
static std::string Nascar("Nascar");
static std::string InitialDArcadeStage("Initial D Arcade Stage");
static std::string SmashingDrive("Smashing Drive");
static std::string MaximumSpeed("Maximum Speed");
static std::string FasterThanSpeed("Faster Than Speed");
static std::string ATVTrack("ATV Track");
//M2 Emulator Games
static std::string SegaRallyChampionship("Sega Rally Championship");
static std::string SegaRallyChampionshipRevB("Sega Rally Championship (Rev B)");
static std::string SegaRallyProDrivin("Sega Rally Pro Drivin'");
static std::string DaytonaUSA("Daytona USA");
static std::string DaytonaUSA93Edition("Daytona USA '93 Edition");
static std::string DaytonaUSASaturnAds("Daytona USA (Saturn Ads)");
static std::string DaytonaUSASpecialEdition("Daytona USA Special Edition");
static std::string DaytonaUSATurbo("Daytona USA Turbo");
static std::string DaytonaUSATurboRevA("Daytona USA Turbo (Rev A)");
static std::string DaytonaUSAGTX2004("Daytona USA: GTX 2004");
static std::string DaytonaUSAToTheMaxx("Daytona USA: To The Maxx");
static std::string Indianapolis500RevADeluxe("Indianapolis 500 (Rev A, Deluxe)");
static std::string Indianapolis500RevATwinNewerrev("Indianapolis 500 (Rev A, Twin, Newer rev)");
static std::string Indianapolis500RevATwinOlderrev("Indianapolis 500 (Rev A, Twin, Older rev)");
static std::string OverRev("Over Rev");
static std::string OverRevModel2B("Over Rev (Model 2B)");
static std::string SuperGT24h("Super GT 24h");
static std::string SegaTouringCarChampionship("Sega Touring Car Championship");
static std::string SegaTouringCarChampionshipRevA("Sega Touring Car Championship (Rev A)");
static std::string SegaTouringCarChampionshipRevB("Sega Touring Car Championship (Rev B)");
//Supermodel Emulator Games //Supermodel Emulator Games
static std::string dayto2pe("dayto2pe"); static std::string dayto2pe("dayto2pe");
@ -204,34 +241,46 @@ static std::string victlapw("victlapw");
void DefaultConfigValues() void DefaultConfigValues()
{ {
if (configGameId == 1) if (EnableFFBStrengthPersistence == 1)
{ {
configMinForce = 0; if (configGameId == 1)
configMaxForce = 90;
configAlternativeMinForceLeft = 0;
configAlternativeMaxForceLeft = -90;
configAlternativeMinForceRight = 0;
configAlternativeMaxForceRight = 90;
}
else if ((configGameId == 2) || (configGameId == 3) || (configGameId == 29))
{
configMinForce = 0;
configMaxForce = 75;
configAlternativeMinForceLeft = 0;
configAlternativeMaxForceLeft = -75;
configAlternativeMinForceRight = 0;
configAlternativeMaxForceRight = 75;
}
else if (configGameId == 22)
{
if (romname == superchs || romname == superchsj || romname == superchsp || romname == superchsu)
{ {
configMinForce = 0; configMinForce = 0;
configMaxForce = 80; configMaxForce = 90;
configAlternativeMinForceLeft = 0; configAlternativeMinForceLeft = 0;
configAlternativeMaxForceLeft = -80; configAlternativeMaxForceLeft = -90;
configAlternativeMinForceRight = 0; configAlternativeMinForceRight = 0;
configAlternativeMaxForceRight = 80; configAlternativeMaxForceRight = 90;
}
else if ((configGameId == 2) || (configGameId == 3) || (configGameId == 29))
{
configMinForce = 0;
configMaxForce = 75;
configAlternativeMinForceLeft = 0;
configAlternativeMaxForceLeft = -75;
configAlternativeMinForceRight = 0;
configAlternativeMaxForceRight = 75;
}
else if (configGameId == 22)
{
if (romname == superchs || romname == superchsj || romname == superchsp || romname == superchsu)
{
configMinForce = 0;
configMaxForce = 80;
configAlternativeMinForceLeft = 0;
configAlternativeMaxForceLeft = -80;
configAlternativeMinForceRight = 0;
configAlternativeMaxForceRight = 80;
}
else
{
configMinForce = 0;
configMaxForce = 100;
configAlternativeMinForceLeft = 0;
configAlternativeMaxForceLeft = -100;
configAlternativeMinForceRight = 0;
configAlternativeMaxForceRight = 100;
}
} }
else else
{ {
@ -245,17 +294,18 @@ void DefaultConfigValues()
} }
else else
{ {
configMinForce = 0; configMaxForce = defaultMaxForce;
configMaxForce = 100; configAlternativeMaxForceLeft = defaultAlternativeMaxForceLeft;
configAlternativeMinForceLeft = 0; configAlternativeMaxForceRight = defaultAlternativeMaxForceRight;
configAlternativeMaxForceLeft = -100;
configAlternativeMinForceRight = 0;
configAlternativeMaxForceRight = 100;
} }
} }
void CustomFFBStrengthSetup() void CustomFFBStrengthSetup()
{ {
defaultMaxForce = configMaxForce;
defaultAlternativeMaxForceLeft = configAlternativeMaxForceLeft;
defaultAlternativeMaxForceRight = configAlternativeMaxForceRight;
if (configGameId == 34) if (configGameId == 34)
{ {
if (romname == dayto2pe || romname == daytona2) if (romname == dayto2pe || romname == daytona2)
@ -706,6 +756,166 @@ void CustomFFBStrengthSetup()
} }
} }
} }
else if (configGameId == 25)
{
if (romnameM2 == DaytonaUSA || romnameM2 == DaytonaUSA93Edition || romnameM2 == DaytonaUSASaturnAds || romnameM2 == DaytonaUSASpecialEdition || romnameM2 == DaytonaUSATurbo || romnameM2 == DaytonaUSATurboRevA || romnameM2 == DaytonaUSAGTX2004 || romnameM2 == DaytonaUSAToTheMaxx)
{
if (AlternativeFFB == 1)
{
CustomAlternativeMaxForceLeft = "AlternativeMaxForceLeftDaytona";
CustomAlternativeMaxForceRight = "AlternativeMaxForceRightDaytona";
}
else
{
CustomMaxForce = "MaxForceDaytona";
}
}
if (romnameM2 == SegaRallyChampionship || romnameM2 == SegaRallyChampionshipRevB || romnameM2 == SegaRallyProDrivin)
{
if (AlternativeFFB == 1)
{
CustomAlternativeMaxForceLeft = "AlternativeMaxForceLeftSRally";
CustomAlternativeMaxForceRight = "AlternativeMaxForceRightSRally";
}
else
{
CustomMaxForce = "MaxForceSRally";
}
}
if (romnameM2 == Indianapolis500RevADeluxe || romnameM2 == Indianapolis500RevATwinNewerrev || romnameM2 == Indianapolis500RevATwinOlderrev)
{
if (AlternativeFFB == 1)
{
CustomAlternativeMaxForceLeft = "AlternativeMaxForceLeftIndy500";
CustomAlternativeMaxForceRight = "AlternativeMaxForceRightIndy500";
}
else
{
CustomMaxForce = "MaxForceIndy500";
}
}
if (romnameM2 == SegaTouringCarChampionship || romnameM2 == SegaTouringCarChampionshipRevA || romnameM2 == SegaTouringCarChampionshipRevB)
{
if (AlternativeFFB == 1)
{
CustomAlternativeMaxForceLeft = "AlternativeMaxForceLeftSTCC";
CustomAlternativeMaxForceRight = "AlternativeMaxForceRightSTCC";
}
else
{
CustomMaxForce = "MaxForceSTCC";
}
}
if (romnameM2 == OverRev || romnameM2 == OverRevModel2B)
{
if (AlternativeFFB == 1)
{
CustomAlternativeMaxForceLeft = "AlternativeMaxForceLeftOverRev";
CustomAlternativeMaxForceRight = "AlternativeMaxForceRightOverRev";
}
else
{
CustomMaxForce = "MaxForceOverRev";
}
}
if (romnameM2 == SuperGT24h)
{
if (AlternativeFFB == 1)
{
CustomAlternativeMaxForceLeft = "AlternativeMaxForceLeftSuperGT";
CustomAlternativeMaxForceRight = "AlternativeMaxForceRightSuperGT";
}
else
{
CustomMaxForce = "MaxForceSuperGT";
}
}
}
else if (configGameId == 26)
{
if (romnameDemul == Nascar)
{
if (AlternativeFFB == 1)
{
CustomAlternativeMaxForceLeft = "AlternativeMaxForceLeftNascarRacing";
CustomAlternativeMaxForceRight = "AlternativeMaxForceRightNascarRacing";
}
else
{
CustomMaxForce = "MaxForceNascarRacing";
}
}
if (romnameDemul == InitialDArcadeStage)
{
if (AlternativeFFB == 1)
{
CustomAlternativeMaxForceLeft = "AlternativeMaxForceLeftInitialDDemul";
CustomAlternativeMaxForceRight = "AlternativeMaxForceRightInitialDDemul";
}
else
{
CustomMaxForce = "MaxForceInitialDDemul";
}
}
if (romnameDemul == SmashingDrive)
{
if (AlternativeFFB == 1)
{
CustomAlternativeMaxForceLeft = "AlternativeMaxForceLeftSmashingDrive";
CustomAlternativeMaxForceRight = "AlternativeMaxForceRightSmashingDrive";
}
else
{
CustomMaxForce = "MaxForceSmashingDrive";
}
}
if (romnameDemul == MaximumSpeed)
{
if (AlternativeFFB == 1)
{
CustomAlternativeMaxForceLeft = "AlternativeMaxForceLeftMaximumSpeed";
CustomAlternativeMaxForceRight = "AlternativeMaxForceRightMaximumSpeed";
}
else
{
CustomMaxForce = "MaxForceMaximumSpeed";
}
}
if (romnameDemul == FasterThanSpeed)
{
if (AlternativeFFB == 1)
{
CustomAlternativeMaxForceLeft = "AlternativeMaxForceLeftFasterSpeed";
CustomAlternativeMaxForceRight = "AlternativeMaxForceRightFasterSpeed";
}
else
{
CustomMaxForce = "MaxForceFasterSpeed";
}
}
if (romnameDemul == ATVTrack)
{
if (AlternativeFFB == 1)
{
CustomAlternativeMaxForceLeft = "AlternativeMaxForceLeftATVTrack";
CustomAlternativeMaxForceRight = "AlternativeMaxForceRightATVTrack";
}
else
{
CustomMaxForce = "MaxForceATVTrack";
}
}
}
else else
{ {
if (AlternativeFFB == 1) if (AlternativeFFB == 1)

View File

@ -929,6 +929,7 @@ int IncreaseFFBStrength = GetPrivateProfileInt(TEXT("Settings"), TEXT("IncreaseF
int DecreaseFFBStrength = GetPrivateProfileInt(TEXT("Settings"), TEXT("DecreaseFFBStrength"), NULL, settingsFilename); int DecreaseFFBStrength = GetPrivateProfileInt(TEXT("Settings"), TEXT("DecreaseFFBStrength"), NULL, settingsFilename);
int ResetFFBStrength = GetPrivateProfileInt(TEXT("Settings"), TEXT("ResetFFBStrength"), NULL, settingsFilename); int ResetFFBStrength = GetPrivateProfileInt(TEXT("Settings"), TEXT("ResetFFBStrength"), NULL, settingsFilename);
int StepFFBStrength = GetPrivateProfileInt(TEXT("Settings"), TEXT("StepFFBStrength"), 5, settingsFilename); int StepFFBStrength = GetPrivateProfileInt(TEXT("Settings"), TEXT("StepFFBStrength"), 5, settingsFilename);
int EnableFFBStrengthPersistence = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableFFBStrengthPersistence"), 0, settingsFilename);
int EnableFFBStrengthTextToSpeech = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableFFBStrengthTextToSpeech"), 0, settingsFilename); int EnableFFBStrengthTextToSpeech = GetPrivateProfileInt(TEXT("Settings"), TEXT("EnableFFBStrengthTextToSpeech"), 0, settingsFilename);
extern void DefaultConfigValues(); extern void DefaultConfigValues();
@ -1948,14 +1949,17 @@ int WorkaroundToFixRumble(void* ptr)
void WritePersistentMaxForce() void WritePersistentMaxForce()
{ {
if (AlternativeFFB == 1) if (EnableFFBStrengthPersistence == 1)
{ {
WritePrivateProfileStringA("Settings", CustomAlternativeMaxForceLeft, (char*)(std::to_string(configAlternativeMaxForceLeft)).c_str(), ".\\FFBPlugin.ini"); if (AlternativeFFB == 1)
WritePrivateProfileStringA("Settings", CustomAlternativeMaxForceRight, (char*)(std::to_string(configAlternativeMaxForceRight)).c_str(), ".\\FFBPlugin.ini"); {
} WritePrivateProfileStringA("Settings", CustomAlternativeMaxForceLeft, (char*)(std::to_string(configAlternativeMaxForceLeft)).c_str(), ".\\FFBPlugin.ini");
else WritePrivateProfileStringA("Settings", CustomAlternativeMaxForceRight, (char*)(std::to_string(configAlternativeMaxForceRight)).c_str(), ".\\FFBPlugin.ini");
{ }
WritePrivateProfileStringA("Settings", CustomMaxForce, (char*)(std::to_string(configMaxForce)).c_str(), ".\\FFBPlugin.ini"); else
{
WritePrivateProfileStringA("Settings", CustomMaxForce, (char*)(std::to_string(configMaxForce)).c_str(), ".\\FFBPlugin.ini");
}
} }
} }

View File

@ -22,6 +22,14 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include "../Common Files/CRCCheck.h" #include "../Common Files/CRCCheck.h"
#include "../Common Files/SignatureScanning.h" #include "../Common Files/SignatureScanning.h"
//Demul Emulator Games
std::string Nascar("Nascar");
std::string InitialDArcadeStage("Initial D Arcade Stage");
std::string SmashingDrive("Smashing Drive");
std::string MaximumSpeed("Maximum Speed");
std::string FasterThanSpeed("Faster Than Speed");
std::string ATVTrack("ATV Track");
extern void NascarInputsEnabled(Helpers* helpers); extern void NascarInputsEnabled(Helpers* helpers);
extern void InitialDInputsEnabled(Helpers* helpers); extern void InitialDInputsEnabled(Helpers* helpers);
extern void SmashingDriveInputsEnabled(Helpers* helpers); extern void SmashingDriveInputsEnabled(Helpers* helpers);
@ -164,6 +172,8 @@ static INT_PTR FFBAddress;
static int ffnascar = 0; static int ffnascar = 0;
static int fffaster = 0; static int fffaster = 0;
char* romnameDemul;
int nascar(int ffnas) { int nascar(int ffnas) {
switch (ffnas) { switch (ffnas) {
@ -686,6 +696,8 @@ void Demul::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
NascarRunning = true; NascarRunning = true;
WindowSearch = true; WindowSearch = true;
sprintf(romnameDemul, "%s", Nascar);
} }
if (!EnumWindows(FindWindowBySubstr, (LPARAM)substring2)) if (!EnumWindows(FindWindowBySubstr, (LPARAM)substring2))
@ -703,6 +715,8 @@ void Demul::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
InitialDRunning = true; InitialDRunning = true;
WindowSearch = true; WindowSearch = true;
sprintf(romnameDemul, "%s", InitialDArcadeStage);
} }
if (!EnumWindows(FindWindowBySubstr, (LPARAM)substring3)) if (!EnumWindows(FindWindowBySubstr, (LPARAM)substring3))
@ -720,6 +734,8 @@ void Demul::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
SmashingDriveRunning = true; SmashingDriveRunning = true;
WindowSearch = true; WindowSearch = true;
sprintf(romnameDemul, "%s", SmashingDrive);
} }
if (!EnumWindows(FindWindowBySubstr, (LPARAM)substring4)) if (!EnumWindows(FindWindowBySubstr, (LPARAM)substring4))
@ -737,6 +753,8 @@ void Demul::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
MaximumSpeedRunning = true; MaximumSpeedRunning = true;
WindowSearch = true; WindowSearch = true;
sprintf(romnameDemul, "%s", MaximumSpeed);
} }
if (!EnumWindows(FindWindowBySubstr, (LPARAM)substring5)) if (!EnumWindows(FindWindowBySubstr, (LPARAM)substring5))
@ -754,6 +772,8 @@ void Demul::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
FasterThanSpeedRunning = true; FasterThanSpeedRunning = true;
WindowSearch = true; WindowSearch = true;
sprintf(romnameDemul, "%s", FasterThanSpeed);
} }
if (!EnumWindows(FindWindowBySubstr, (LPARAM)substring6)) if (!EnumWindows(FindWindowBySubstr, (LPARAM)substring6))
@ -771,6 +791,8 @@ void Demul::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
ATVTrackRunning = true; ATVTrackRunning = true;
WindowSearch = true; WindowSearch = true;
sprintf(romnameDemul, "%s", ATVTrack);
} }
} }
} }

View File

@ -17,6 +17,28 @@ along with FFB Arcade Plugin.If not, see < https://www.gnu.org/licenses/>.
#include "math.h" #include "math.h"
#include "SDL.h" #include "SDL.h"
//M2 Emulator Games
std::string SegaRallyChampionship("Sega Rally Championship");
std::string SegaRallyChampionshipRevB("Sega Rally Championship (Rev B)");
std::string SegaRallyProDrivin("Sega Rally Pro Drivin'");
std::string DaytonaUSA("Daytona USA");
std::string DaytonaUSA93Edition("Daytona USA '93 Edition");
std::string DaytonaUSASaturnAds("Daytona USA (Saturn Ads)");
std::string DaytonaUSASpecialEdition("Daytona USA Special Edition");
std::string DaytonaUSATurbo("Daytona USA Turbo");
std::string DaytonaUSATurboRevA("Daytona USA Turbo (Rev A)");
std::string DaytonaUSAGTX2004("Daytona USA: GTX 2004");
std::string DaytonaUSAToTheMaxx("Daytona USA: To The Maxx");
std::string Indianapolis500RevADeluxe("Indianapolis 500 (Rev A, Deluxe)");
std::string Indianapolis500RevATwinNewerrev("Indianapolis 500 (Rev A, Twin, Newer rev)");
std::string Indianapolis500RevATwinOlderrev("Indianapolis 500 (Rev A, Twin, Older rev)");
std::string OverRev("Over Rev");
std::string OverRevModel2B("Over Rev (Model 2B)");
std::string SuperGT24h("Super GT 24h");
std::string SegaTouringCarChampionship("Sega Touring Car Championship");
std::string SegaTouringCarChampionshipRevA("Sega Touring Car Championship (Rev A)");
std::string SegaTouringCarChampionshipRevB("Sega Touring Car Championship (Rev B)");
//Config Settings //Config Settings
extern wchar_t* settingsFilename; extern wchar_t* settingsFilename;
extern int DeviceGUID; extern int DeviceGUID;
@ -140,28 +162,114 @@ static bool Hook(void * toHook, void * ourFunct, int len) {
static DWORD jmpBackAddy; static DWORD jmpBackAddy;
char* romnameM2;
void M2Emulator::FFBLoop(EffectConstants * constants, Helpers * helpers, EffectTriggers * triggers) { void M2Emulator::FFBLoop(EffectConstants * constants, Helpers * helpers, EffectTriggers * triggers) {
HWND hWnd1 = FindWindowA(0, ("Sega Rally Championship")); HWND hWnd1 = FindWindowA(0, SegaRallyChampionship.c_str());
HWND hWnd2 = FindWindowA(0, ("Daytona USA")); HWND hWnd2 = FindWindowA(0, DaytonaUSA.c_str());
HWND hWnd3 = FindWindowA(0, ("Indianapolis 500 (Rev A, Deluxe)")); HWND hWnd3 = FindWindowA(0, Indianapolis500RevADeluxe.c_str());
HWND hWnd4 = FindWindowA(0, ("Sega Touring Car Championship (Rev A)")); HWND hWnd4 = FindWindowA(0, SegaTouringCarChampionshipRevA.c_str());
HWND hWnd5 = FindWindowA(0, ("Over Rev")); HWND hWnd5 = FindWindowA(0, OverRev.c_str());
HWND hWnd6 = FindWindowA(0, ("Super GT 24h")); HWND hWnd6 = FindWindowA(0, SuperGT24h.c_str());
HWND hWnd7 = FindWindowA(0, ("Daytona USA '93 Edition")); HWND hWnd7 = FindWindowA(0, DaytonaUSA93Edition.c_str());
HWND hWnd8 = FindWindowA(0, ("Daytona USA (Saturn Ads)")); HWND hWnd8 = FindWindowA(0, DaytonaUSASaturnAds.c_str());
HWND hWnd9 = FindWindowA(0, ("Daytona USA Special Edition")); HWND hWnd9 = FindWindowA(0, DaytonaUSASpecialEdition.c_str());
HWND hWnd10 = FindWindowA(0, ("Daytona USA Turbo")); HWND hWnd10 = FindWindowA(0, DaytonaUSATurbo.c_str());
HWND hWnd11 = FindWindowA(0, ("Daytona USA Turbo (Rev A)")); HWND hWnd11 = FindWindowA(0, DaytonaUSATurboRevA.c_str());
HWND hWnd12 = FindWindowA(0, ("Daytona USA: GTX 2004")); HWND hWnd12 = FindWindowA(0, DaytonaUSAGTX2004.c_str());
HWND hWnd13 = FindWindowA(0, ("Daytona USA: To The Maxx")); HWND hWnd13 = FindWindowA(0, DaytonaUSAToTheMaxx.c_str());
HWND hWnd14 = FindWindowA(0, ("Sega Rally Championship (Rev B)")); HWND hWnd14 = FindWindowA(0, SegaRallyChampionshipRevB.c_str());
HWND hWnd15 = FindWindowA(0, ("Sega Rally Pro Drivin'")); HWND hWnd15 = FindWindowA(0, SegaRallyProDrivin.c_str());
HWND hWnd16 = FindWindowA(0, ("Indianapolis 500 (Rev A, Twin, Newer rev)")); HWND hWnd16 = FindWindowA(0, Indianapolis500RevATwinNewerrev.c_str());
HWND hWnd17 = FindWindowA(0, ("Indianapolis 500 (Rev A, Twin, Older rev)")); HWND hWnd17 = FindWindowA(0, Indianapolis500RevATwinOlderrev.c_str());
HWND hWnd18 = FindWindowA(0, ("Sega Touring Car Championship")); HWND hWnd18 = FindWindowA(0, SegaTouringCarChampionship.c_str());
HWND hWnd19 = FindWindowA(0, ("Sega Touring Car Championship (Rev B)")); HWND hWnd19 = FindWindowA(0, SegaTouringCarChampionshipRevB.c_str());
HWND hWnd20 = FindWindowA(0, ("Over Rev (Model 2B)")); HWND hWnd20 = FindWindowA(0, OverRevModel2B.c_str());
romnameM2 = new char[256];
// TODO: would be better to dump all the game names in an array and loop instead with a single hWnd
if (hWnd1 > NULL)
{
sprintf(romnameM2, "%s", SegaRallyChampionship);
}
else if(hWnd2 > NULL)
{
sprintf(romnameM2, "%s", DaytonaUSA);
}
else if (hWnd3 > NULL)
{
sprintf(romnameM2, "%s", Indianapolis500RevADeluxe);
}
else if (hWnd4 > NULL)
{
sprintf(romnameM2, "%s", SegaTouringCarChampionshipRevA);
}
else if (hWnd5 > NULL)
{
sprintf(romnameM2, "%s", OverRev);
}
else if (hWnd6 > NULL)
{
sprintf(romnameM2, "%s", SuperGT24h);
}
else if (hWnd7 > NULL)
{
sprintf(romnameM2, "%s", DaytonaUSA93Edition);
}
else if (hWnd8 > NULL)
{
sprintf(romnameM2, "%s", DaytonaUSASaturnAds);
}
else if (hWnd9 > NULL)
{
sprintf(romnameM2, "%s", DaytonaUSASpecialEdition);
}
else if (hWnd10 > NULL)
{
sprintf(romnameM2, "%s", DaytonaUSATurbo);
}
else if (hWnd11 > NULL)
{
sprintf(romnameM2, "%s", DaytonaUSATurboRevA);
}
else if (hWnd12 > NULL)
{
sprintf(romnameM2, "%s", DaytonaUSAGTX2004);
}
else if (hWnd13 > NULL)
{
sprintf(romnameM2, "%s", DaytonaUSAToTheMaxx);
}
else if (hWnd14 > NULL)
{
sprintf(romnameM2, "%s", SegaRallyChampionshipRevB);
}
else if (hWnd15 > NULL)
{
sprintf(romnameM2, "%s", SegaRallyProDrivin);
}
else if (hWnd16 > NULL)
{
sprintf(romnameM2, "%s", Indianapolis500RevATwinNewerrev);
}
else if (hWnd17 > NULL)
{
sprintf(romnameM2, "%s", Indianapolis500RevATwinOlderrev);
}
else if (hWnd18 > NULL)
{
sprintf(romnameM2, "%s", SegaTouringCarChampionship);
}
else if (hWnd19 > NULL)
{
sprintf(romnameM2, "%s", SegaTouringCarChampionshipRevB);
}
else if (hWnd20 > NULL)
{
sprintf(romnameM2, "%s", OverRevModel2B);
}
if (EnableForceSpringEffect == 1) if (EnableForceSpringEffect == 1)
{ {