1
0
mirror of synced 2024-11-14 18:38:05 +01:00

Naomi FFB changes

This commit is contained in:
Boomslangnz 2023-03-04 21:25:09 +13:00
parent 311dc55bc2
commit 95b2485260

View File

@ -3648,61 +3648,88 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
std::string ffs = std::to_string(newstateFFB); std::string ffs = std::to_string(newstateFFB);
helpers->log((char*)ffs.c_str()); helpers->log((char*)ffs.c_str());
if (newstateFFB != 0xD0)
stateFFB = newstateFFB; stateFFB = newstateFFB;
if (oldstateFFB != stateFFB) if (oldstateFFB != stateFFB)
{ {
if (stateFFB > 0xAF && stateFFB < 0xC0) if ((stateFFB > 0xB0 && stateFFB < 0xC0) || stateFFB == 0x9F)
{ {
SineEffectState = stateFFB; SineEffectState = stateFFB;
Effect1 = true; Effect1 = true;
} }
} }
if (stateFFB > 0x09 && stateFFB < 0x20) if (stateFFB > 0x10 && stateFFB < 0x20)
{ {
double percentForce = (stateFFB - 9) / 16.0; double percentForce = (stateFFB - 10) / 15.0;
triggers->Springi(percentForce); triggers->Springi(percentForce);
} }
if (stateFFB > 0x1F && stateFFB < 0x30) if (stateFFB > 0x20 && stateFFB < 0x30)
{ {
double percentForce = (stateFFB - 31) / 16.0; double percentForce = (stateFFB - 32) / 15.0;
triggers->Friction(percentForce); triggers->Friction(percentForce);
} }
if (stateFFB > 0x2F && stateFFB < 0x40) if (stateFFB > 0x30 && stateFFB < 0x40)
{ {
double percentForce = (stateFFB - 47) / 16.0; double percentForce = (stateFFB - 48) / 15.0;
triggers->Rumble(percentForce, percentForce, 100); triggers->Rumble(percentForce, percentForce, 100);
triggers->Sine(40, 0, percentForce); triggers->Sine(40, 0, percentForce);
} }
if (stateFFB > 0x3F && stateFFB < 0x50) if (stateFFB > 0x40 && stateFFB < 0x50)
{ {
double percentForce = (stateFFB - 63) / 16.0; double percentForce = (stateFFB - 64) / 15.0;
triggers->Friction(percentForce);
percentForce = percentForce * 2.0;
if (percentForce > 1.0)
percentForce = 1.0;
triggers->Springi(percentForce);
} }
if (stateFFB > 0x4F && stateFFB < 0x60) if (stateFFB > 0x50 && stateFFB < 0x60)
{ {
double percentForce = (stateFFB - 79) / 16.0; double percentForce = (stateFFB - 80) / 15.0;
double percentLength = 100; double percentLength = 100;
triggers->Rumble(percentForce, 0, percentLength); triggers->Rumble(percentForce, 0, percentLength);
triggers->Constant(constants->DIRECTION_FROM_LEFT, percentForce); triggers->Constant(constants->DIRECTION_FROM_LEFT, percentForce);
} }
else if (stateFFB > 0x5F && stateFFB < 0x70)
if (stateFFB > 0x60 && stateFFB < 0x70)
{ {
if (stateFFB != 0x6A && stateFFB != 0x6B) // Annoying turn of wheel start of races?? if (oldstateFFB != stateFFB)
{ {
double percentForce = (stateFFB - 95) / 16.0; if (stateFFB != 0x6A)
{
double percentForce = (stateFFB - 96) / 15.0;
double percentLength = 100; double percentLength = 100;
triggers->Rumble(0, percentForce, percentLength); triggers->Rumble(0, percentForce, percentLength);
triggers->Constant(constants->DIRECTION_FROM_RIGHT, percentForce); triggers->Constant(constants->DIRECTION_FROM_RIGHT, percentForce);
} }
} }
if (stateFFB == 0x9F || stateFFB == 0xE2 || stateFFB == 0xE3) if (stateFFB != 0x6A)
{
double percentForce = (stateFFB - 96) / 15.0;
double percentLength = 100;
triggers->Rumble(0, percentForce, percentLength);
triggers->Constant(constants->DIRECTION_FROM_RIGHT, percentForce);
}
}
if (stateFFB > 0x80 && stateFFB < 0x90)
{
double percentForce = (stateFFB - 128) / 15.0;
double percentLength = 100;
triggers->Rumble(0, percentForce, percentLength);
triggers->Constant(constants->DIRECTION_FROM_RIGHT, percentForce);
}
if (stateFFB == 0x9F)
{ {
double percentForce = 0.4; double percentForce = 0.4;
double percentLength = 100; double percentLength = 100;
@ -3710,7 +3737,15 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
triggers->Constant(constants->DIRECTION_FROM_LEFT, percentForce); triggers->Constant(constants->DIRECTION_FROM_LEFT, percentForce);
} }
if (stateFFB == 0xBF || stateFFB == 0xEA || stateFFB == 0xEB) if (stateFFB > 0xA0 && stateFFB < 0xB0)
{
double percentForce = (stateFFB - 160) / 15.0;
double percentLength = 100;
triggers->Rumble(percentForce, 0, percentLength);
triggers->Constant(constants->DIRECTION_FROM_LEFT, percentForce);
}
if (stateFFB == 0xBF)
{ {
double percentForce = 0.4; double percentForce = 0.4;
double percentLength = 100; double percentLength = 100;
@ -3718,6 +3753,30 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
triggers->Constant(constants->DIRECTION_FROM_RIGHT, percentForce); triggers->Constant(constants->DIRECTION_FROM_RIGHT, percentForce);
} }
if (stateFFB > 0xD0 && stateFFB < 0xE0)
{
double percentForce = (stateFFB - 208) / 15.0;
double percentLength = 100;
triggers->Rumble(percentForce, 0, percentLength);
triggers->Constant(constants->DIRECTION_FROM_LEFT, percentForce);
}
if (stateFFB > 0xE0 && stateFFB < 0xE9)
{
double percentForce = (stateFFB - 224) / 8.0;
double percentLength = 100;
triggers->Rumble(percentForce, 0, percentLength);
triggers->Constant(constants->DIRECTION_FROM_LEFT, percentForce);
}
if (stateFFB > 0xE8 && stateFFB < 0xD0)
{
double percentForce = (stateFFB - 232) / 8.0;
double percentLength = 100;
triggers->Rumble(percentForce, 0, percentLength);
triggers->Constant(constants->DIRECTION_FROM_RIGHT, percentForce);
}
if (Effect1) if (Effect1)
{ {
++EffectCount; ++EffectCount;
@ -3728,10 +3787,19 @@ void MAMESupermodel::FFBLoop(EffectConstants* constants, Helpers* helpers, Effec
EffectCount = 0; EffectCount = 0;
} }
double percentForce = (SineEffectState - 143) / 16.0; double percentForce = (SineEffectState - 176) / 15.0;
triggers->Rumble(percentForce, percentForce, 100); triggers->Rumble(percentForce, percentForce, 100);
triggers->Sine(60, 0, percentForce); triggers->Sine(60, 0, percentForce);
} }
if (stateFFB == 0xC0)
{
triggers->Rumble(0, 0, 100);
triggers->Sine(60, 0, 0);
triggers->Friction(0);
triggers->Constant(constants->DIRECTION_FROM_RIGHT, 0);
triggers->Constant(constants->DIRECTION_FROM_LEFT, 0);
}
oldstateFFB = stateFFB; oldstateFFB = stateFFB;
} }
} }