1
0
mirror of synced 2025-02-01 04:15:50 +01:00

- Fix Chaos Code (Nesica) running from D:\

- Fix Chaos Code (Nesica) running from D:\, also saves\loads test menu fine
This commit is contained in:
Nezarn 2020-06-30 11:07:57 +02:00
parent 5deeed3338
commit c6254811e4
4 changed files with 47 additions and 3 deletions

View File

@ -297,6 +297,18 @@ static InitFunction initFunction_VampireSavior([]()
#endif
}, GameID::VampireSavior);
static InitFunction initFunction_ChaosCode([]()
{
init_FastIoEmu();
init_RfidEmu();
init_RegHooks();
if (GameDetect::enableNesysEmu)
init_NesysEmu();
#if _M_IX86
init_CryptoPipe(GameDetect::NesicaKey);
#endif
}, GameID::ChaosCode);
static InitFunction initFunction_Theatrhythm([]()
{
uintptr_t imageBase = (uintptr_t)GetModuleHandleA(0);

View File

@ -891,6 +891,22 @@ LPCSTR ParseFileNamesA(LPCSTR lpFileName)
return lpFileName;
}
if (GameDetect::currentGame == GameID::ChaosCode)
{
if (!strncmp(lpFileName, "D:/ChaosCode/save/TYPEX2_RECORD.rcd", 35) || !strncmp(lpFileName, "D:/ChaosCode/save/TYPEX2_SETTING.rcd", 36) || !strncmp(lpFileName, "D:/ChaosCode/save/", 18) || !strncmp(lpFileName, "D:/ChaosCode/", 14))
{
memset(moveBuf, 0, 256);
if (lpFileName[2] == '\\' || lpFileName[2] == '/')
{
sprintf(moveBuf, ".\\OpenParrot\\%s", lpFileName + 3);
}
return moveBuf;
}
return lpFileName;
}
if (!strncmp(lpFileName, "D:", 2) || !strncmp(lpFileName, "d:", 2))
{
memset(moveBuf, 0, 256);
@ -1028,6 +1044,21 @@ LPCWSTR ParseFileNamesW(LPCWSTR lpFileName)
return lpFileName;
}
if (GameDetect::currentGame == GameID::ChaosCode)
{
if (!wcsncmp(lpFileName, L"D:/ChaosCode/save/TYPEX2_RECORD.rcd", 35) || !wcsncmp(lpFileName, L"D:/ChaosCode/save/TYPEX2_SETTING.rcd", 36) || !wcsncmp(lpFileName, L"D:/ChaosCode/save/TYPEX2_SETTING.rcd", 36) || !wcsncmp(lpFileName, L"D:/ChaosCode/save/", 18) || !wcsncmp(lpFileName, L"D:/ChaosCode/", 14))
{
memset(moveBufW, 0, 256);
if (lpFileName[2] == '\\' || lpFileName[2] == '/')
{
swprintf(moveBufW, L".\\OpenParrot\\%s", lpFileName + 3);
}
return moveBufW;
}
return lpFileName;
}
if (!wcsncmp(lpFileName, L"D:", 2) || !wcsncmp(lpFileName, L"d:", 2))
{
memset(moveBufW, 0, 256);

View File

@ -490,12 +490,12 @@ void GameDetect::DetectCurrentGame()
isNesica = true;
break;
case 0xac86efec: //Chaos Code v1.03
currentGame = GameID::Nesica;
currentGame = GameID::ChaosCode;
NesicaKey = NesicaKey::None;
isNesica = true;
break;
case 0xa742a607: //Chaos Code v2.11
currentGame = GameID::Nesica;
currentGame = GameID::ChaosCode;
NesicaKey = NesicaKey::None;
isNesica = true;
break;

View File

@ -79,5 +79,6 @@ enum class GameID
StreetFighter3rdStrike,
RumbleFish2,
KOF98Nesica,
VampireSavior
VampireSavior,
ChaosCode
};