Fix issues with Demul
This commit is contained in:
parent
70f70aac8f
commit
f85bab0f45
448
DllMain.cpp
448
DllMain.cpp
@ -854,6 +854,8 @@ EffectConstants effectConst;
|
||||
Helpers hlp;
|
||||
EffectTriggers t;
|
||||
|
||||
bool CustomStrength = false;
|
||||
bool WaitForGame = false;
|
||||
bool keepRunning = true;
|
||||
float wheel = 0.0f;
|
||||
|
||||
@ -1955,201 +1957,249 @@ void WritePersistentMaxForce()
|
||||
}
|
||||
}
|
||||
|
||||
DWORD WINAPI AdjustFFBStrengthLoop(LPVOID lpParam)
|
||||
static int StrengthLoopWaitEvent()
|
||||
{
|
||||
Sleep(3000);
|
||||
CustomFFBStrengthSetup();
|
||||
if (!WaitForGame)
|
||||
{
|
||||
if (configGameId != 26)
|
||||
{
|
||||
Sleep(4000);
|
||||
WaitForGame = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!CustomStrength)
|
||||
{
|
||||
CustomFFBStrengthSetup();
|
||||
CustomStrength = true;
|
||||
}
|
||||
|
||||
while (SDL_WaitEvent(&e) != 0)
|
||||
{
|
||||
if (e.type == SDL_JOYBUTTONDOWN)
|
||||
{
|
||||
if (e.jbutton.which == joystick_index1)
|
||||
{
|
||||
if (e.jbutton.button == IncreaseFFBStrength)
|
||||
{
|
||||
if (AlternativeFFB == 1)
|
||||
{
|
||||
if ((configAlternativeMaxForceRight >= 0) && (configAlternativeMaxForceRight < 100))
|
||||
{
|
||||
configAlternativeMaxForceRight += StepFFBStrength;
|
||||
configAlternativeMaxForceRight = max(0, min(100, configAlternativeMaxForceRight));
|
||||
}
|
||||
if ((configAlternativeMaxForceLeft <= 0) && (configAlternativeMaxForceLeft > -100))
|
||||
{
|
||||
configAlternativeMaxForceLeft -= StepFFBStrength;
|
||||
configAlternativeMaxForceLeft = max(-100, min(0, configAlternativeMaxForceLeft));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((configMaxForce >= 0) && (configMaxForce < 100))
|
||||
{
|
||||
configMaxForce += StepFFBStrength;
|
||||
configMaxForce = max(0, min(100, configMaxForce));
|
||||
}
|
||||
}
|
||||
WritePersistentMaxForce();
|
||||
}
|
||||
|
||||
if (e.jbutton.button == DecreaseFFBStrength)
|
||||
{
|
||||
if (AlternativeFFB == 1)
|
||||
{
|
||||
if ((configAlternativeMaxForceRight > 0) && (configAlternativeMaxForceRight <= 100))
|
||||
{
|
||||
configAlternativeMaxForceRight -= StepFFBStrength;
|
||||
configAlternativeMaxForceRight = max(0, min(100, configAlternativeMaxForceRight));
|
||||
}
|
||||
if ((configAlternativeMaxForceLeft < 0) && (configAlternativeMaxForceLeft >= -100))
|
||||
{
|
||||
configAlternativeMaxForceLeft += StepFFBStrength;
|
||||
configAlternativeMaxForceLeft = max(-100, min(0, configAlternativeMaxForceLeft));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((configMaxForce > 0) && (configMaxForce <= 100))
|
||||
{
|
||||
configMaxForce -= StepFFBStrength;
|
||||
configMaxForce = max(0, min(100, configMaxForce));
|
||||
}
|
||||
}
|
||||
WritePersistentMaxForce();
|
||||
}
|
||||
|
||||
if (e.jbutton.button == ResetFFBStrength)
|
||||
{
|
||||
DefaultConfigValues();
|
||||
WritePersistentMaxForce();
|
||||
}
|
||||
|
||||
if (EnableFFBStrengthTextToSpeech == 1)
|
||||
{
|
||||
if ((e.jbutton.button == IncreaseFFBStrength) || (e.jbutton.button == DecreaseFFBStrength) || (e.jbutton.button == ResetFFBStrength))
|
||||
{
|
||||
if (AlternativeFFB == 1)
|
||||
{
|
||||
sprintf(FFBStrength1, "Max Force: %d", configAlternativeMaxForceRight);
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(FFBStrength1, "Max Force: %d", configMaxForce);
|
||||
}
|
||||
|
||||
hr = ::CoInitialize(nullptr);
|
||||
hr = cpVoice.CoCreateInstance(CLSID_SpVoice);
|
||||
mbstowcs(FFBStrength2, FFBStrength1, strlen(FFBStrength1) + 1);
|
||||
LPWSTR ptr = FFBStrength2;
|
||||
|
||||
if (SUCCEEDED(hr))
|
||||
{
|
||||
hr = cpVoice->SetRate(3);
|
||||
hr = cpVoice->SetOutput(NULL, TRUE);
|
||||
hr = cpVoice->Speak(ptr, SPF_PURGEBEFORESPEAK, NULL);
|
||||
::CoUninitialize();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int StrengthLoopNoWaitEvent()
|
||||
{
|
||||
if (!WaitForGame)
|
||||
{
|
||||
if (configGameId != 26)
|
||||
{
|
||||
Sleep(4000);
|
||||
WaitForGame = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!CustomStrength)
|
||||
{
|
||||
CustomFFBStrengthSetup();
|
||||
CustomStrength = true;
|
||||
}
|
||||
|
||||
if (e.type == SDL_JOYBUTTONDOWN)
|
||||
{
|
||||
if (e.jbutton.which == joystick_index1)
|
||||
{
|
||||
if (e.jbutton.button == IncreaseFFBStrength)
|
||||
{
|
||||
if (AlternativeFFB == 1)
|
||||
{
|
||||
if ((configAlternativeMaxForceRight >= 0) && (configAlternativeMaxForceRight < 100))
|
||||
{
|
||||
configAlternativeMaxForceRight += StepFFBStrength;
|
||||
configAlternativeMaxForceRight = max(0, min(100, configAlternativeMaxForceRight));
|
||||
}
|
||||
if ((configAlternativeMaxForceLeft <= 0) && (configAlternativeMaxForceLeft > -100))
|
||||
{
|
||||
configAlternativeMaxForceLeft -= StepFFBStrength;
|
||||
configAlternativeMaxForceLeft = max(-100, min(0, configAlternativeMaxForceLeft));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((configMaxForce >= 0) && (configMaxForce < 100))
|
||||
{
|
||||
configMaxForce += StepFFBStrength;
|
||||
configMaxForce = max(0, min(100, configMaxForce));
|
||||
}
|
||||
}
|
||||
WritePersistentMaxForce();
|
||||
}
|
||||
|
||||
if (e.jbutton.button == DecreaseFFBStrength)
|
||||
{
|
||||
if (AlternativeFFB == 1)
|
||||
{
|
||||
if ((configAlternativeMaxForceRight > 0) && (configAlternativeMaxForceRight <= 100))
|
||||
{
|
||||
configAlternativeMaxForceRight -= StepFFBStrength;
|
||||
configAlternativeMaxForceRight = max(0, min(100, configAlternativeMaxForceRight));
|
||||
}
|
||||
if ((configAlternativeMaxForceLeft < 0) && (configAlternativeMaxForceLeft >= -100))
|
||||
{
|
||||
configAlternativeMaxForceLeft += StepFFBStrength;
|
||||
configAlternativeMaxForceLeft = max(-100, min(0, configAlternativeMaxForceLeft));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((configMaxForce > 0) && (configMaxForce <= 100))
|
||||
{
|
||||
configMaxForce -= StepFFBStrength;
|
||||
configMaxForce = max(0, min(100, configMaxForce));
|
||||
}
|
||||
}
|
||||
WritePersistentMaxForce();
|
||||
}
|
||||
|
||||
if (e.jbutton.button == ResetFFBStrength)
|
||||
{
|
||||
DefaultConfigValues();
|
||||
WritePersistentMaxForce();
|
||||
}
|
||||
|
||||
if (EnableFFBStrengthTextToSpeech == 1)
|
||||
{
|
||||
if ((e.jbutton.button == IncreaseFFBStrength) || (e.jbutton.button == DecreaseFFBStrength) || (e.jbutton.button == ResetFFBStrength))
|
||||
{
|
||||
if (AlternativeFFB == 1)
|
||||
{
|
||||
sprintf(FFBStrength1, "Max Force: %d", configAlternativeMaxForceRight);
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(FFBStrength1, "Max Force: %d", configMaxForce);
|
||||
}
|
||||
|
||||
hr = ::CoInitialize(nullptr);
|
||||
hr = cpVoice.CoCreateInstance(CLSID_SpVoice);
|
||||
mbstowcs(FFBStrength2, FFBStrength1, strlen(FFBStrength1) + 1);
|
||||
LPWSTR ptr = FFBStrength2;
|
||||
|
||||
if (SUCCEEDED(hr))
|
||||
{
|
||||
hr = cpVoice->SetRate(3);
|
||||
hr = cpVoice->SetOutput(NULL, TRUE);
|
||||
hr = cpVoice->Speak(ptr, SPF_PURGEBEFORESPEAK, NULL);
|
||||
::CoUninitialize();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
DWORD WINAPI AdjustFFBStrengthLoopWaitEvent(LPVOID lpParam)
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
if ((InputDeviceWheelEnable != 1) && (configGameId == 1) || (configGameId == 9) || (configGameId == 12) || (configGameId == 28) || (configGameId == 29) || (configGameId == 35)) while (SDL_WaitEvent(&e) != 0)
|
||||
{
|
||||
if (e.type == SDL_JOYBUTTONDOWN)
|
||||
{
|
||||
if (e.jbutton.which == joystick_index1)
|
||||
{
|
||||
if (e.jbutton.button == IncreaseFFBStrength)
|
||||
{
|
||||
if (AlternativeFFB == 1)
|
||||
{
|
||||
if ((configAlternativeMaxForceRight >= 0) && (configAlternativeMaxForceRight < 100))
|
||||
{
|
||||
configAlternativeMaxForceRight += StepFFBStrength;
|
||||
configAlternativeMaxForceRight = max(0, min(100, configAlternativeMaxForceRight));
|
||||
}
|
||||
if ((configAlternativeMaxForceLeft <= 0) && (configAlternativeMaxForceLeft > -100))
|
||||
{
|
||||
configAlternativeMaxForceLeft -= StepFFBStrength;
|
||||
configAlternativeMaxForceLeft = max(-100, min(0, configAlternativeMaxForceLeft));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((configMaxForce >= 0) && (configMaxForce < 100))
|
||||
{
|
||||
configMaxForce += StepFFBStrength;
|
||||
configMaxForce = max(0, min(100, configMaxForce));
|
||||
}
|
||||
}
|
||||
WritePersistentMaxForce();
|
||||
}
|
||||
StrengthLoopWaitEvent();
|
||||
Sleep(16);
|
||||
}
|
||||
}
|
||||
|
||||
if (e.jbutton.button == DecreaseFFBStrength)
|
||||
{
|
||||
if (AlternativeFFB == 1)
|
||||
{
|
||||
if ((configAlternativeMaxForceRight > 0) && (configAlternativeMaxForceRight <= 100))
|
||||
{
|
||||
configAlternativeMaxForceRight -= StepFFBStrength;
|
||||
configAlternativeMaxForceRight = max(0, min(100, configAlternativeMaxForceRight));
|
||||
}
|
||||
if ((configAlternativeMaxForceLeft < 0) && (configAlternativeMaxForceLeft >= -100))
|
||||
{
|
||||
configAlternativeMaxForceLeft += StepFFBStrength;
|
||||
configAlternativeMaxForceLeft = max(-100, min(0, configAlternativeMaxForceLeft));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((configMaxForce > 0) && (configMaxForce <= 100))
|
||||
{
|
||||
configMaxForce -= StepFFBStrength;
|
||||
configMaxForce = max(0, min(100, configMaxForce));
|
||||
}
|
||||
}
|
||||
WritePersistentMaxForce();
|
||||
}
|
||||
|
||||
if (e.jbutton.button == ResetFFBStrength)
|
||||
{
|
||||
DefaultConfigValues();
|
||||
WritePersistentMaxForce();
|
||||
}
|
||||
|
||||
if (EnableFFBStrengthTextToSpeech == 1)
|
||||
{
|
||||
if ((e.jbutton.button == IncreaseFFBStrength) || (e.jbutton.button == DecreaseFFBStrength) || (e.jbutton.button == ResetFFBStrength))
|
||||
{
|
||||
if (AlternativeFFB == 1)
|
||||
{
|
||||
sprintf(FFBStrength1, "Max Force: %d", configAlternativeMaxForceRight);
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(FFBStrength1, "Max Force: %d", configMaxForce);
|
||||
}
|
||||
|
||||
hr = ::CoInitialize(nullptr);
|
||||
hr = cpVoice.CoCreateInstance(CLSID_SpVoice);
|
||||
mbstowcs(FFBStrength2, FFBStrength1, strlen(FFBStrength1) + 1);
|
||||
LPWSTR ptr = FFBStrength2;
|
||||
|
||||
if (SUCCEEDED(hr))
|
||||
{
|
||||
hr = cpVoice->SetRate(3);
|
||||
hr = cpVoice->SetOutput(NULL, TRUE);
|
||||
hr = cpVoice->Speak(ptr, SPF_PURGEBEFORESPEAK, NULL);
|
||||
::CoUninitialize();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (e.type == SDL_JOYBUTTONDOWN)
|
||||
{
|
||||
if (e.jbutton.which == joystick_index1)
|
||||
{
|
||||
if (e.jbutton.button == IncreaseFFBStrength)
|
||||
{
|
||||
if (AlternativeFFB == 1)
|
||||
{
|
||||
if ((configAlternativeMaxForceRight >= 0) && (configAlternativeMaxForceRight < 100))
|
||||
{
|
||||
configAlternativeMaxForceRight += StepFFBStrength;
|
||||
configAlternativeMaxForceRight = max(0, min(100, configAlternativeMaxForceRight));
|
||||
}
|
||||
if ((configAlternativeMaxForceLeft <= 0) && (configAlternativeMaxForceLeft > -100))
|
||||
{
|
||||
configAlternativeMaxForceLeft -= StepFFBStrength;
|
||||
configAlternativeMaxForceLeft = max(-100, min(0, configAlternativeMaxForceLeft));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((configMaxForce >= 0) && (configMaxForce < 100))
|
||||
{
|
||||
configMaxForce += StepFFBStrength;
|
||||
configMaxForce = max(0, min(100, configMaxForce));
|
||||
}
|
||||
}
|
||||
WritePersistentMaxForce();
|
||||
}
|
||||
|
||||
if (e.jbutton.button == DecreaseFFBStrength)
|
||||
{
|
||||
if (AlternativeFFB == 1)
|
||||
{
|
||||
if ((configAlternativeMaxForceRight > 0) && (configAlternativeMaxForceRight <= 100))
|
||||
{
|
||||
configAlternativeMaxForceRight -= StepFFBStrength;
|
||||
configAlternativeMaxForceRight = max(0, min(100, configAlternativeMaxForceRight));
|
||||
}
|
||||
if ((configAlternativeMaxForceLeft < 0) && (configAlternativeMaxForceLeft >= -100))
|
||||
{
|
||||
configAlternativeMaxForceLeft += StepFFBStrength;
|
||||
configAlternativeMaxForceLeft = max(-100, min(0, configAlternativeMaxForceLeft));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((configMaxForce > 0) && (configMaxForce <= 100))
|
||||
{
|
||||
configMaxForce -= StepFFBStrength;
|
||||
configMaxForce = max(0, min(100, configMaxForce));
|
||||
}
|
||||
}
|
||||
WritePersistentMaxForce();
|
||||
}
|
||||
|
||||
if (e.jbutton.button == ResetFFBStrength)
|
||||
{
|
||||
DefaultConfigValues();
|
||||
WritePersistentMaxForce();
|
||||
}
|
||||
|
||||
if (EnableFFBStrengthTextToSpeech == 1)
|
||||
{
|
||||
if ((e.jbutton.button == IncreaseFFBStrength) || (e.jbutton.button == DecreaseFFBStrength) || (e.jbutton.button == ResetFFBStrength))
|
||||
{
|
||||
if (AlternativeFFB == 1)
|
||||
{
|
||||
sprintf(FFBStrength1, "Max Force: %d", configAlternativeMaxForceRight);
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(FFBStrength1, "Max Force: %d", configMaxForce);
|
||||
}
|
||||
|
||||
hr = ::CoInitialize(nullptr);
|
||||
hr = cpVoice.CoCreateInstance(CLSID_SpVoice);
|
||||
mbstowcs(FFBStrength2, FFBStrength1, strlen(FFBStrength1) + 1);
|
||||
LPWSTR ptr = FFBStrength2;
|
||||
|
||||
if (SUCCEEDED(hr))
|
||||
{
|
||||
hr = cpVoice->SetRate(3);
|
||||
hr = cpVoice->SetOutput(NULL, TRUE);
|
||||
hr = cpVoice->Speak(ptr, SPF_PURGEBEFORESPEAK, NULL);
|
||||
::CoUninitialize();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
DWORD WINAPI AdjustFFBStrengthLoopNoWaitEvent(LPVOID lpParam)
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
StrengthLoopNoWaitEvent();
|
||||
Sleep(16);
|
||||
}
|
||||
}
|
||||
@ -2169,7 +2219,7 @@ DWORD WINAPI FFBLoop(LPVOID lpParam)
|
||||
{
|
||||
if ((EnableFFBStrengthDynamicAdjustment != 1) && (InputDeviceWheelEnable != 1))
|
||||
{
|
||||
if ((configGameId != 1) && (configGameId != 9) && (configGameId != 12) && (configGameId != 26) && (configGameId != 28) && (configGameId != 29) && (configGameId != 30) && (configGameId != 31) && (configGameId != 35))
|
||||
if ((configGameId != 1) && (configGameId != 9) && (configGameId != 12) && (configGameId != 28) && (configGameId != 29) && (configGameId != 35))
|
||||
{
|
||||
// Workaround for SDL_JoystickRumble rumble not stopping issue
|
||||
SDL_CreateThread(WorkaroundToFixRumble, "WorkaroundToFixRumble", (void*)NULL);
|
||||
@ -2372,7 +2422,21 @@ DWORD WINAPI FFBLoop(LPVOID lpParam)
|
||||
|
||||
if (EnableFFBStrengthDynamicAdjustment == 1)
|
||||
{
|
||||
CreateThread(NULL, 0, AdjustFFBStrengthLoop, NULL, 0, NULL);
|
||||
if ((configGameId != 1) && (configGameId != 9) && (configGameId != 12) && (configGameId != 28) && (configGameId != 29) && (configGameId != 35))
|
||||
{
|
||||
CreateThread(NULL, 0, AdjustFFBStrengthLoopWaitEvent, NULL, 0, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((configGameId == 26) && (InputDeviceWheelEnable != 1))
|
||||
{
|
||||
CreateThread(NULL, 0, AdjustFFBStrengthLoopWaitEvent, NULL, 0, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
CreateThread(NULL, 0, AdjustFFBStrengthLoopNoWaitEvent, NULL, 0, NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
hlp.log("Entering Game's FFBLoop loop");
|
||||
|
@ -45,6 +45,7 @@ static HINSTANCE gl_padDemul;
|
||||
extern int joystick_index1;
|
||||
extern int joystick_index2;
|
||||
extern SDL_Joystick* GameController2;
|
||||
extern bool WaitForGame;
|
||||
static bool testbuttonA;
|
||||
static bool servicebuttonA;
|
||||
static bool startbuttonA;
|
||||
@ -693,6 +694,7 @@ void Demul::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
|
||||
|
||||
romnameDemul = "Nascar";
|
||||
|
||||
WaitForGame = true;
|
||||
NascarRunning = true;
|
||||
WindowSearch = true;
|
||||
}
|
||||
@ -712,6 +714,7 @@ void Demul::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
|
||||
|
||||
romnameDemul = "Initial D Arcade Stage";
|
||||
|
||||
WaitForGame = true;
|
||||
InitialDRunning = true;
|
||||
WindowSearch = true;
|
||||
}
|
||||
@ -731,6 +734,7 @@ void Demul::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
|
||||
|
||||
romnameDemul = "Smashing Drive";
|
||||
|
||||
WaitForGame = true;
|
||||
SmashingDriveRunning = true;
|
||||
WindowSearch = true;
|
||||
}
|
||||
@ -750,6 +754,7 @@ void Demul::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
|
||||
|
||||
romnameDemul = "Maximum Speed";
|
||||
|
||||
WaitForGame = true;
|
||||
MaximumSpeedRunning = true;
|
||||
WindowSearch = true;
|
||||
}
|
||||
@ -769,6 +774,7 @@ void Demul::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
|
||||
|
||||
romnameDemul = "Faster Than Speed";
|
||||
|
||||
WaitForGame = true;
|
||||
FasterThanSpeedRunning = true;
|
||||
WindowSearch = true;
|
||||
}
|
||||
@ -788,6 +794,7 @@ void Demul::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
|
||||
|
||||
romnameDemul = "ATV Track";
|
||||
|
||||
WaitForGame = true;
|
||||
ATVTrackRunning = true;
|
||||
WindowSearch = true;
|
||||
}
|
||||
@ -798,6 +805,7 @@ void Demul::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
|
||||
{
|
||||
if (!FFBGameInit)
|
||||
{
|
||||
Sleep(5000);
|
||||
aAddy2 = PatternScan("\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x50\x72\x6F\x64\x75\x63\x65\x64\x20\x42\x79\x20", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
|
||||
FFBAddress = (int)aAddy2 - 0x2F0;
|
||||
CreateThread(NULL, 0, NascarRunningLoop, NULL, 0, NULL);
|
||||
@ -853,7 +861,7 @@ void Demul::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
|
||||
{
|
||||
if (!InputFind)
|
||||
{
|
||||
aAddy = PatternScan("\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00", "xxxxxxxxxxxxxxxxxxxxxxxxxxxx");
|
||||
aAddy = PatternScan("\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\xFF\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x20", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
|
||||
UINT8 CheckaAddy = helpers->ReadByte((int)aAddy - 0x2A0, false);
|
||||
if (CheckaAddy == 0x01)
|
||||
{
|
||||
@ -876,6 +884,7 @@ void Demul::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
|
||||
{
|
||||
if (!FFBGameInit)
|
||||
{
|
||||
Sleep(5000);
|
||||
aAddy2 = PatternScan("\xC0\xF3\x51\x00\x60\x9A\x2C\x01", "xxxxxxxx");
|
||||
|
||||
UINT8 CheckAddy = helpers->ReadByte((int)aAddy2 - 0x0E, false);
|
||||
@ -911,6 +920,7 @@ void Demul::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
|
||||
{
|
||||
if (!FFBGameInit)
|
||||
{
|
||||
Sleep(10000);
|
||||
aAddy2 = PatternScan("\x48\x03\x00\x00\xE0\x01\x00\x00\x2C\x01\x00\x00\xB4\x00\x00\x00\x00\x00\x00\x00\x20\xFE\xFF\xFF", "xxxxxxxxxxxxxxxxxxxxxxxx");
|
||||
|
||||
UINT8 CheckAddy = helpers->ReadByte((int)aAddy2 + 0x21, false);
|
||||
@ -949,6 +959,7 @@ void Demul::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
|
||||
{
|
||||
if (!FFBGameInit)
|
||||
{
|
||||
Sleep(10000);
|
||||
aAddy2 = PatternScan("\x01\x00\x10\x00\x00\x00\x00\x00\x00\x2F\x76", "xxxxxxxxxxx");
|
||||
|
||||
UINT8 CheckAddy = helpers->ReadByte((int)aAddy2 + 0x0E, false);
|
||||
@ -987,6 +998,7 @@ void Demul::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
|
||||
{
|
||||
if (!FFBGameInit)
|
||||
{
|
||||
Sleep(15000);
|
||||
aAddy2 = PatternScan("\x49\x55\x4C\x00\x00\x00\x05", "xxxxxxx");
|
||||
UINT8 CheckAddy = helpers->ReadByte((int)aAddy2 - 0x04, false);
|
||||
if (CheckAddy == 0x1E)
|
||||
|
Loading…
x
Reference in New Issue
Block a user