- Fix Vampire Savior (Nesica) when running from D:\
- Fix Vampire Savior (Nesica) when running from D:\ , saves\loads test menu settings properly
This commit is contained in:
parent
012642229e
commit
5deeed3338
@ -287,6 +287,16 @@ static InitFunction initFunction_KOF98Nesica([]()
|
|||||||
#endif
|
#endif
|
||||||
}, GameID::KOF98Nesica);
|
}, GameID::KOF98Nesica);
|
||||||
|
|
||||||
|
static InitFunction initFunction_VampireSavior([]()
|
||||||
|
{
|
||||||
|
init_FastIoEmu();
|
||||||
|
init_RfidEmu();
|
||||||
|
init_RegHooks();
|
||||||
|
#if _M_IX86
|
||||||
|
init_CryptoPipe(GameDetect::NesicaKey);
|
||||||
|
#endif
|
||||||
|
}, GameID::VampireSavior);
|
||||||
|
|
||||||
static InitFunction initFunction_Theatrhythm([]()
|
static InitFunction initFunction_Theatrhythm([]()
|
||||||
{
|
{
|
||||||
uintptr_t imageBase = (uintptr_t)GetModuleHandleA(0);
|
uintptr_t imageBase = (uintptr_t)GetModuleHandleA(0);
|
||||||
|
@ -777,14 +777,11 @@ LPCSTR ParseFileNamesA(LPCSTR lpFileName)
|
|||||||
{
|
{
|
||||||
if (GameDetect::currentGame == GameID::HyperStreetFighterII)
|
if (GameDetect::currentGame == GameID::HyperStreetFighterII)
|
||||||
{
|
{
|
||||||
//info(true, "ParseFileNamesA: %s", lpFileName);
|
|
||||||
|
|
||||||
if (!strncmp(lpFileName, "D:\\3", 4))
|
if (!strncmp(lpFileName, "D:\\3", 4))
|
||||||
{
|
{
|
||||||
memset(moveBuf, 0, 256);
|
memset(moveBuf, 0, 256);
|
||||||
if (lpFileName[3] == '3')
|
if (lpFileName[3] == '3')
|
||||||
{
|
{
|
||||||
//info(true, "ParseFileNamesA: %s -> .\\OpenParrot\\%s", lpFileName, lpFileName + 3);
|
|
||||||
sprintf(moveBuf, ".\\OpenParrot\\%s", lpFileName + 3);
|
sprintf(moveBuf, ".\\OpenParrot\\%s", lpFileName + 3);
|
||||||
}
|
}
|
||||||
return moveBuf;
|
return moveBuf;
|
||||||
@ -795,14 +792,11 @@ LPCSTR ParseFileNamesA(LPCSTR lpFileName)
|
|||||||
|
|
||||||
if (GameDetect::currentGame == GameID::StreetFigherZero3)
|
if (GameDetect::currentGame == GameID::StreetFigherZero3)
|
||||||
{
|
{
|
||||||
//info(true, "ParseFileNamesA: %s", lpFileName);
|
|
||||||
|
|
||||||
if (!strncmp(lpFileName, "D:\\c", 4))
|
if (!strncmp(lpFileName, "D:\\c", 4))
|
||||||
{
|
{
|
||||||
memset(moveBuf, 0, 256);
|
memset(moveBuf, 0, 256);
|
||||||
if (lpFileName[3] == 'c')
|
if (lpFileName[3] == 'c')
|
||||||
{
|
{
|
||||||
//info(true, "ParseFileNamesA: %s -> .\\OpenParrot\\%s", lpFileName, lpFileName + 3);
|
|
||||||
sprintf(moveBuf, ".\\OpenParrot\\%s", lpFileName + 3);
|
sprintf(moveBuf, ".\\OpenParrot\\%s", lpFileName + 3);
|
||||||
}
|
}
|
||||||
return moveBuf;
|
return moveBuf;
|
||||||
@ -813,14 +807,11 @@ LPCSTR ParseFileNamesA(LPCSTR lpFileName)
|
|||||||
|
|
||||||
if (GameDetect::currentGame == GameID::StreetFighter3rdStrike)
|
if (GameDetect::currentGame == GameID::StreetFighter3rdStrike)
|
||||||
{
|
{
|
||||||
//info(true, "ParseFileNamesA: %s", lpFileName);
|
|
||||||
|
|
||||||
if (!strncmp(lpFileName, "D:\\9", 4))
|
if (!strncmp(lpFileName, "D:\\9", 4))
|
||||||
{
|
{
|
||||||
memset(moveBuf, 0, 256);
|
memset(moveBuf, 0, 256);
|
||||||
if (lpFileName[3] == '9')
|
if (lpFileName[3] == '9')
|
||||||
{
|
{
|
||||||
//info(true, "ParseFileNamesA: %s -> .\\OpenParrot\\%s", lpFileName, lpFileName + 3);
|
|
||||||
sprintf(moveBuf, ".\\OpenParrot\\%s", lpFileName + 3);
|
sprintf(moveBuf, ".\\OpenParrot\\%s", lpFileName + 3);
|
||||||
}
|
}
|
||||||
return moveBuf;
|
return moveBuf;
|
||||||
@ -831,14 +822,11 @@ LPCSTR ParseFileNamesA(LPCSTR lpFileName)
|
|||||||
|
|
||||||
if (GameDetect::currentGame == GameID::RumbleFish2)
|
if (GameDetect::currentGame == GameID::RumbleFish2)
|
||||||
{
|
{
|
||||||
//info(true, "ParseFileNamesA: %s", lpFileName);
|
|
||||||
|
|
||||||
if (!strncmp(lpFileName, "D:\\eb342", 8))
|
if (!strncmp(lpFileName, "D:\\eb342", 8))
|
||||||
{
|
{
|
||||||
memset(moveBuf, 0, 256);
|
memset(moveBuf, 0, 256);
|
||||||
if (lpFileName[3] == 'e')
|
if (lpFileName[3] == 'e')
|
||||||
{
|
{
|
||||||
//info(true, "ParseFileNamesA: %s -> .\\OpenParrot\\%s", lpFileName, lpFileName + 3);
|
|
||||||
sprintf(moveBuf, ".\\OpenParrot\\%s", lpFileName + 3);
|
sprintf(moveBuf, ".\\OpenParrot\\%s", lpFileName + 3);
|
||||||
}
|
}
|
||||||
return moveBuf;
|
return moveBuf;
|
||||||
@ -851,13 +839,10 @@ LPCSTR ParseFileNamesA(LPCSTR lpFileName)
|
|||||||
{
|
{
|
||||||
if (!strncmp(lpFileName, "d:/SettingKOF98UM", 17) || !strncmp(lpFileName, "d:/RankingKOF98UM", 17) || !strncmp(lpFileName, "d:/CoinFileKOF98UM", 18))
|
if (!strncmp(lpFileName, "d:/SettingKOF98UM", 17) || !strncmp(lpFileName, "d:/RankingKOF98UM", 17) || !strncmp(lpFileName, "d:/CoinFileKOF98UM", 18))
|
||||||
{
|
{
|
||||||
//info(true, "ParseFileNamesA !!!!!SettingKOF98UM!!!: %s", lpFileName, lpFileName); // OK
|
|
||||||
|
|
||||||
memset(moveBuf, 0, 256);
|
memset(moveBuf, 0, 256);
|
||||||
if (lpFileName[2] == '\\' || lpFileName[2] == '/')
|
if (lpFileName[2] == '\\' || lpFileName[2] == '/')
|
||||||
{
|
{
|
||||||
sprintf(moveBuf, ".\\OpenParrot\\%s", lpFileName + 3);
|
sprintf(moveBuf, ".\\OpenParrot\\%s", lpFileName + 3);
|
||||||
//info(true, "ParseFileNamesA: %s -> .\\OpenParrot\\%s", lpFileName, lpFileName + 3);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return moveBuf;
|
return moveBuf;
|
||||||
@ -865,11 +850,8 @@ LPCSTR ParseFileNamesA(LPCSTR lpFileName)
|
|||||||
|
|
||||||
if (!strncmp(lpFileName, "SettingKOF98UM*.txt", 19) || !strncmp(lpFileName, "RankingKOF98UM*.txt", 19) || !strncmp(lpFileName, "CoinFileKOF98UM*.txt", 20))
|
if (!strncmp(lpFileName, "SettingKOF98UM*.txt", 19) || !strncmp(lpFileName, "RankingKOF98UM*.txt", 19) || !strncmp(lpFileName, "CoinFileKOF98UM*.txt", 20))
|
||||||
{
|
{
|
||||||
//info(true, "ParseFileNamesA ASTERISK: %s", lpFileName, lpFileName); // OK
|
|
||||||
|
|
||||||
memset(moveBuf, 0, 256);
|
memset(moveBuf, 0, 256);
|
||||||
sprintf(moveBuf, ".\\OpenParrot\\%s", lpFileName);
|
sprintf(moveBuf, ".\\OpenParrot\\%s", lpFileName);
|
||||||
//info(true, "ParseFileNamesA ASTERISK: %s -> .\\OpenParrot\\%s", lpFileName, lpFileName);
|
|
||||||
|
|
||||||
return moveBuf;
|
return moveBuf;
|
||||||
}
|
}
|
||||||
@ -893,6 +875,22 @@ LPCSTR ParseFileNamesA(LPCSTR lpFileName)
|
|||||||
return lpFileName;
|
return lpFileName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (GameDetect::currentGame == GameID::VampireSavior)
|
||||||
|
{
|
||||||
|
if (!strncmp(lpFileName, "D:\\0343d7a98baf803c268e7ed73239464b", 35))
|
||||||
|
{
|
||||||
|
memset(moveBuf, 0, 256);
|
||||||
|
if (lpFileName[3] == '0')
|
||||||
|
{
|
||||||
|
sprintf(moveBuf, ".\\OpenParrot\\%s", lpFileName + 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
return moveBuf;
|
||||||
|
}
|
||||||
|
|
||||||
|
return lpFileName;
|
||||||
|
}
|
||||||
|
|
||||||
if (!strncmp(lpFileName, "D:", 2) || !strncmp(lpFileName, "d:", 2))
|
if (!strncmp(lpFileName, "D:", 2) || !strncmp(lpFileName, "d:", 2))
|
||||||
{
|
{
|
||||||
memset(moveBuf, 0, 256);
|
memset(moveBuf, 0, 256);
|
||||||
@ -1014,6 +1012,22 @@ LPCWSTR ParseFileNamesW(LPCWSTR lpFileName)
|
|||||||
return lpFileName;
|
return lpFileName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (GameDetect::currentGame == GameID::VampireSavior)
|
||||||
|
{
|
||||||
|
if (!wcsncmp(lpFileName, L"D:\\0343d7a98baf803c268e7ed73239464b", 35))
|
||||||
|
{
|
||||||
|
memset(moveBufW, 0, 256);
|
||||||
|
if (lpFileName[3] == '0')
|
||||||
|
{
|
||||||
|
swprintf(moveBufW, L".\\OpenParrot\\%s", lpFileName + 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
return moveBufW;
|
||||||
|
}
|
||||||
|
|
||||||
|
return lpFileName;
|
||||||
|
}
|
||||||
|
|
||||||
if (!wcsncmp(lpFileName, L"D:", 2) || !wcsncmp(lpFileName, L"d:", 2))
|
if (!wcsncmp(lpFileName, L"D:", 2) || !wcsncmp(lpFileName, L"d:", 2))
|
||||||
{
|
{
|
||||||
memset(moveBufW, 0, 256);
|
memset(moveBufW, 0, 256);
|
||||||
|
@ -161,10 +161,9 @@ void GameDetect::DetectCurrentGame()
|
|||||||
break;
|
break;
|
||||||
case 0x19ba6a0c: // Vampire Savior - The Lord of Vampire
|
case 0x19ba6a0c: // Vampire Savior - The Lord of Vampire
|
||||||
case 0x7cc54950: // Test.exe
|
case 0x7cc54950: // Test.exe
|
||||||
currentGame = GameID::Nesica;
|
currentGame = GameID::VampireSavior;
|
||||||
NesicaKey = NesicaKey::None;
|
NesicaKey = NesicaKey::None;
|
||||||
isNesica = true;
|
isNesica = true;
|
||||||
GameDetect::enableNesysEmu = false;
|
|
||||||
break;
|
break;
|
||||||
case 0xf6e33d2b: // Exception
|
case 0xf6e33d2b: // Exception
|
||||||
currentGame = GameID::Nesica;
|
currentGame = GameID::Nesica;
|
||||||
|
@ -78,5 +78,6 @@ enum class GameID
|
|||||||
StreetFigherZero3,
|
StreetFigherZero3,
|
||||||
StreetFighter3rdStrike,
|
StreetFighter3rdStrike,
|
||||||
RumbleFish2,
|
RumbleFish2,
|
||||||
KOF98Nesica
|
KOF98Nesica,
|
||||||
|
VampireSavior
|
||||||
};
|
};
|
Loading…
x
Reference in New Issue
Block a user