1
0
mirror of synced 2025-02-20 20:20:59 +01:00

Add insert card code for ID Demul games

This commit is contained in:
Aaron M 2020-08-02 23:26:50 +12:00
parent 8129c9241b
commit 10fa123dbc
3 changed files with 212 additions and 0 deletions

View File

@ -595,6 +595,7 @@ StartButton=99
ShiftUp=99
ShiftDown=99
EmergencyStop=99
InsertRemoveCard=99
Gear1=99
Gear2=99
Gear3=99
@ -617,6 +618,7 @@ StartButtonDevice2=99
ShiftUpDevice2=99
ShiftDownDevice2=99
EmergencyStopDevice2=99
InsertRemoveCardDevice2=99
Gear1Device2=99
Gear2Device2=99
Gear3Device2=99

View File

@ -66,6 +66,8 @@ INT_PTR StartViewAddress;
INT_PTR ShiftUpDownAddress;
INT_PTR ServiceTestAddress;
INT_PTR CoinAddress;
INT_PTR CardAddress;
INT_PTR CardAddress2;
static HWND hWnd;
@ -608,6 +610,8 @@ void Demul::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
helpers->WriteNop((INT_PTR)gl_padDemul + 0x26FEC, 3, false);
helpers->WriteNop((INT_PTR)gl_padDemul + 0x270A3, 3, false);
helpers->WriteNop((INT_PTR)gl_padDemul + 0x26FE1, 3, false);
helpers->WriteNop((INT_PTR)gl_padDemul + 0x27048, 4, false);
helpers->WriteNop((INT_PTR)gl_padDemul + 0x2703A, 4, false);
}
if (Demul111117)
@ -621,6 +625,8 @@ void Demul::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
helpers->WriteNop((INT_PTR)gl_padDemul + 0x26BC2, 3, false);
helpers->WriteNop((INT_PTR)gl_padDemul + 0x26BBA, 3, false);
helpers->WriteNop((INT_PTR)gl_padDemul + 0x26BE3, 3, false);
helpers->WriteNop((INT_PTR)gl_padDemul + 0x26C1E, 4, false);
helpers->WriteNop((INT_PTR)gl_padDemul + 0x26C10, 4, false);
}
if (NascarRunning)
@ -872,6 +878,8 @@ void Demul::FFBLoop(EffectConstants* constants, Helpers* helpers, EffectTriggers
ShiftUpDownAddress = (int)aAddy - 0xDA;
ServiceTestAddress = (int)aAddy - 0x246;
CoinAddress = (int)aAddy - 0x19E;
CardAddress = (int)aAddy + 0x3E;
CardAddress2 = (int)aAddy + 0x22;
NOPinit = true;
InputFind = true;
}

View File

@ -13,6 +13,8 @@ static bool viewbuttonA;
static bool shiftupA;
static bool shiftdownA;
static bool coinA;
static bool cardA;
static bool cardB;
static bool Inputsinit = false;
static bool InputFind = false;
extern SDL_Event e;
@ -24,6 +26,8 @@ extern INT_PTR StartViewAddress;
extern INT_PTR ShiftUpDownAddress;
extern INT_PTR ServiceTestAddress;
extern INT_PTR CoinAddress;
extern INT_PTR CardAddress;
extern INT_PTR CardAddress2;
extern wchar_t* settingsFilename;
static int InputDeviceWheelEnable = GetPrivateProfileInt(TEXT("Settings"), TEXT("InputDeviceWheelEnable"), 0, settingsFilename);
@ -44,6 +48,7 @@ static int ViewButton = GetPrivateProfileInt(TEXT("Settings"), TEXT("ViewButton"
static int StartButton = GetPrivateProfileInt(TEXT("Settings"), TEXT("StartButton"), 0, settingsFilename);
static int ShiftUp = GetPrivateProfileInt(TEXT("Settings"), TEXT("ShiftUp"), 0, settingsFilename);
static int ShiftDown = GetPrivateProfileInt(TEXT("Settings"), TEXT("ShiftDown"), 0, settingsFilename);
static int InsertRemoveCard = GetPrivateProfileInt(TEXT("Settings"), TEXT("InsertRemoveCard"), 0, settingsFilename);
static int ExitButtonDevice2 = GetPrivateProfileInt(TEXT("Settings"), TEXT("ExitButtonDevice2"), 0, settingsFilename);
static int TestButtonDevice2 = GetPrivateProfileInt(TEXT("Settings"), TEXT("TestButtonDevice2"), 0, settingsFilename);
static int ServiceButtonDevice2 = GetPrivateProfileInt(TEXT("Settings"), TEXT("ServiceButtonDevice2"), 0, settingsFilename);
@ -52,6 +57,7 @@ static int ViewButtonDevice2 = GetPrivateProfileInt(TEXT("Settings"), TEXT("View
static int StartButtonDevice2 = GetPrivateProfileInt(TEXT("Settings"), TEXT("StartButtonDevice2"), 0, settingsFilename);
static int ShiftUpDevice2 = GetPrivateProfileInt(TEXT("Settings"), TEXT("ShiftUpDevice2"), 0, settingsFilename);
static int ShiftDownDevice2 = GetPrivateProfileInt(TEXT("Settings"), TEXT("ShiftDownDevice2"), 0, settingsFilename);
static int InsertRemoveCardDevice2 = GetPrivateProfileInt(TEXT("Settings"), TEXT("InsertRemoveCardDevice2"), 0, settingsFilename);
void InitialDInputsEnabled(Helpers* helpers)
{
@ -113,6 +119,7 @@ void InitialDInputsEnabled(Helpers* helpers)
std::string start("StartButton");
std::string sftup("ShiftUp");
std::string sftdown("ShiftDown");
std::string card("InsertRemoveCard");
std::string exit2("ExitButtonDevice2");
std::string test2("TestButtonDevice2");
std::string service2("ServiceButtonDevice2");
@ -121,6 +128,7 @@ void InitialDInputsEnabled(Helpers* helpers)
std::string start2("StartButtonDevice2");
std::string sftup2("ShiftUpDevice2");
std::string sftdown2("ShiftDownDevice2");
std::string card2("InsertRemoveCardDevice2");
std::string dpdup(DpadUpChar);
std::string dpddown(DpadDownChar);
std::string dpdleft(DpadLeftChar);
@ -138,6 +146,8 @@ void InitialDInputsEnabled(Helpers* helpers)
UINT8 startviewread = helpers->ReadByte(StartViewAddress, false);
UINT8 shiftupdownread = helpers->ReadByte(ShiftUpDownAddress, false);
UINT8 coinread = helpers->ReadByte(CoinAddress, false);
UINT8 cardread = helpers->ReadByte(CardAddress, false);
UINT8 cardread2 = helpers->ReadByte(CardAddress2, false);
UINT8 servicetestread = helpers->ReadByte(ServiceTestAddress, false);
while (SDL_WaitEvent(&e) != 0)
@ -352,6 +362,10 @@ void InitialDInputsEnabled(Helpers* helpers)
helpers->WriteByte(ShiftUpDownAddress, shiftupdownread -= 0x10, false);
shiftdownA = false;
}
if (coinA)
{
coinA = false;
}
}
else if (e.jhat.which == joystick_index2)
{
@ -385,6 +399,10 @@ void InitialDInputsEnabled(Helpers* helpers)
helpers->WriteByte(ShiftUpDownAddress, shiftupdownread -= 0x10, false);
shiftdownA = false;
}
if (coinA)
{
coinA = false;
}
}
}
if (e.jhat.value == SDL_HAT_UP)
@ -409,6 +427,23 @@ void InitialDInputsEnabled(Helpers* helpers)
{
helpers->WriteByte(CoinAddress, ++coinread, false);
}
if (dpdup.compare(card) == 0)
{
if (!cardA)
{
if (cardread == 0x00)
{
helpers->WriteByte(CardAddress, cardread += 0x03, false);
helpers->WriteByte(CardAddress2, cardread2 += 0x01, false);
}
else
{
helpers->WriteByte(CardAddress, cardread -= 0x03, false);
helpers->WriteByte(CardAddress2, cardread2 -= 0x01, false);
}
cardA = true;
}
}
if (dpdup.compare(view) == 0)
{
helpers->WriteByte(StartViewAddress, startviewread += 0x10, false);
@ -450,6 +485,23 @@ void InitialDInputsEnabled(Helpers* helpers)
{
helpers->WriteByte(CoinAddress, ++coinread, false);
}
if (dpdup2.compare(card2) == 0)
{
if (!cardA)
{
if (cardread == 0x00)
{
helpers->WriteByte(CardAddress, cardread += 0x03, false);
helpers->WriteByte(CardAddress2, cardread2 += 0x01, false);
}
else
{
helpers->WriteByte(CardAddress, cardread -= 0x03, false);
helpers->WriteByte(CardAddress2, cardread2 -= 0x01, false);
}
cardA = true;
}
}
if (dpdup2.compare(view2) == 0)
{
helpers->WriteByte(StartViewAddress, startviewread += 0x10, false);
@ -494,6 +546,23 @@ void InitialDInputsEnabled(Helpers* helpers)
{
helpers->WriteByte(CoinAddress, ++coinread, false);
}
if (dpddown.compare(card) == 0)
{
if (!cardA)
{
if (cardread == 0x00)
{
helpers->WriteByte(CardAddress, cardread += 0x03, false);
helpers->WriteByte(CardAddress2, cardread2 += 0x01, false);
}
else
{
helpers->WriteByte(CardAddress, cardread -= 0x03, false);
helpers->WriteByte(CardAddress2, cardread2 -= 0x01, false);
}
cardA = true;
}
}
if (dpddown.compare(view) == 0)
{
helpers->WriteByte(StartViewAddress, startviewread += 0x10, false);
@ -535,6 +604,23 @@ void InitialDInputsEnabled(Helpers* helpers)
{
helpers->WriteByte(CoinAddress, ++coinread, false);
}
if (dpddown2.compare(card2) == 0)
{
if (!cardA)
{
if (cardread == 0x00)
{
helpers->WriteByte(CardAddress, cardread += 0x03, false);
helpers->WriteByte(CardAddress2, cardread2 += 0x01, false);
}
else
{
helpers->WriteByte(CardAddress, cardread -= 0x03, false);
helpers->WriteByte(CardAddress2, cardread2 -= 0x01, false);
}
cardA = true;
}
}
if (dpddown2.compare(view2) == 0)
{
helpers->WriteByte(StartViewAddress, startviewread += 0x10, false);
@ -579,6 +665,23 @@ void InitialDInputsEnabled(Helpers* helpers)
{
helpers->WriteByte(CoinAddress, ++coinread, false);
}
if (dpdleft.compare(card) == 0)
{
if (!cardA)
{
if (cardread == 0x00)
{
helpers->WriteByte(CardAddress, cardread += 0x03, false);
helpers->WriteByte(CardAddress2, cardread2 += 0x01, false);
}
else
{
helpers->WriteByte(CardAddress, cardread -= 0x03, false);
helpers->WriteByte(CardAddress2, cardread2 -= 0x01, false);
}
cardA = true;
}
}
if (dpdleft.compare(view) == 0)
{
helpers->WriteByte(StartViewAddress, startviewread += 0x10, false);
@ -620,6 +723,23 @@ void InitialDInputsEnabled(Helpers* helpers)
{
helpers->WriteByte(CoinAddress, ++coinread, false);
}
if (dpdleft2.compare(card2) == 0)
{
if (!cardA)
{
if (cardread == 0x00)
{
helpers->WriteByte(CardAddress, cardread += 0x03, false);
helpers->WriteByte(CardAddress2, cardread2 += 0x01, false);
}
else
{
helpers->WriteByte(CardAddress, cardread -= 0x03, false);
helpers->WriteByte(CardAddress2, cardread2 -= 0x01, false);
}
cardA = true;
}
}
if (dpdleft2.compare(view2) == 0)
{
helpers->WriteByte(StartViewAddress, startviewread += 0x10, false);
@ -664,6 +784,23 @@ void InitialDInputsEnabled(Helpers* helpers)
{
helpers->WriteByte(CoinAddress, ++coinread, false);
}
if (dpdright.compare(card) == 0)
{
if (!cardA)
{
if (cardread == 0x00)
{
helpers->WriteByte(CardAddress, cardread += 0x03, false);
helpers->WriteByte(CardAddress2, cardread2 += 0x01, false);
}
else
{
helpers->WriteByte(CardAddress, cardread -= 0x03, false);
helpers->WriteByte(CardAddress2, cardread2 -= 0x01, false);
}
cardA = true;
}
}
if (dpdright.compare(view) == 0)
{
helpers->WriteByte(StartViewAddress, startviewread += 0x10, false);
@ -705,6 +842,23 @@ void InitialDInputsEnabled(Helpers* helpers)
{
helpers->WriteByte(CoinAddress, ++coinread, false);
}
if (dpdright2.compare(card2) == 0)
{
if (!cardA)
{
if (cardread == 0x00)
{
helpers->WriteByte(CardAddress, cardread += 0x03, false);
helpers->WriteByte(CardAddress2, cardread2 += 0x01, false);
}
else
{
helpers->WriteByte(CardAddress, cardread -= 0x03, false);
helpers->WriteByte(CardAddress2, cardread2 -= 0x01, false);
}
cardA = true;
}
}
if (dpdright2.compare(view2) == 0)
{
helpers->WriteByte(StartViewAddress, startviewread += 0x10, false);
@ -749,6 +903,23 @@ void InitialDInputsEnabled(Helpers* helpers)
{
helpers->WriteByte(CoinAddress, ++coinread, false);
}
if (e.jbutton.button == InsertRemoveCard)
{
if (!cardB)
{
if (cardread == 0x00)
{
helpers->WriteByte(CardAddress, cardread += 0x03, false);
helpers->WriteByte(CardAddress2, cardread2 += 0x01, false);
}
else
{
helpers->WriteByte(CardAddress, cardread -= 0x03, false);
helpers->WriteByte(CardAddress2, cardread2 -= 0x01, false);
}
cardB = true;
}
}
if (e.jbutton.button == ViewButton)
{
helpers->WriteByte(StartViewAddress, startviewread += 0x10, false);
@ -784,6 +955,23 @@ void InitialDInputsEnabled(Helpers* helpers)
{
helpers->WriteByte(CoinAddress, ++coinread, false);
}
if (e.jbutton.button == InsertRemoveCardDevice2)
{
if (!cardB)
{
if (cardread == 0x00)
{
helpers->WriteByte(CardAddress, cardread += 0x03, false);
helpers->WriteByte(CardAddress2, cardread2 += 0x01, false);
}
else
{
helpers->WriteByte(CardAddress, cardread -= 0x03, false);
helpers->WriteByte(CardAddress2, cardread2 -= 0x01, false);
}
cardB = true;
}
}
if (e.jbutton.button == ViewButtonDevice2)
{
helpers->WriteByte(StartViewAddress, startviewread += 0x10, false);
@ -818,6 +1006,13 @@ void InitialDInputsEnabled(Helpers* helpers)
{
helpers->WriteByte(StartViewAddress, startviewread -= 0x10, false);
}
if (e.jbutton.button == InsertRemoveCard)
{
if (cardB)
{
cardB = false;
}
}
if (e.jbutton.button == StartButton)
{
helpers->WriteByte(StartViewAddress, startviewread -= 0x80, false);
@ -845,6 +1040,13 @@ void InitialDInputsEnabled(Helpers* helpers)
{
helpers->WriteByte(StartViewAddress, startviewread -= 0x10, false);
}
if (e.jbutton.button == InsertRemoveCardDevice2)
{
if (cardB)
{
cardB = false;
}
}
if (e.jbutton.button == StartButtonDevice2)
{
helpers->WriteByte(StartViewAddress, startviewread -= 0x80, false);