1
0
mirror of synced 2024-11-30 20:54:28 +01:00

- Add workaround for idmacdrv dll

- Add workaround for idmacdrv dll, still needs to be properly fixed (compiler bug?)
- Rumble Fish 2: disable dx9 window wrapper for now (causes crash)
This commit is contained in:
Nezarn 2020-06-20 09:19:50 +02:00
parent 1e126b7828
commit f1c6e765fb
2 changed files with 16 additions and 1 deletions

View File

@ -84,7 +84,7 @@ extern linb::ini config;
static InitFunction initFunc([]()
{
if (GameDetect::currentGame == GameID::BG4 || GameDetect::currentGame == GameID::BG4_Eng || GameDetect::currentGame == GameID::JLeague || GameDetect::currentGame == GameID::TER)
if (GameDetect::currentGame == GameID::BG4 || GameDetect::currentGame == GameID::BG4_Eng || GameDetect::currentGame == GameID::JLeague || GameDetect::currentGame == GameID::TER || GameDetect::currentGame == GameID::RumbleFish2)
return;
if (GameDetect::currentGame == GameID::TroubleWitches && !ToBool(config["General"]["Windowed"]))
{

View File

@ -35,61 +35,73 @@ bool initOK = false;
extern "C" __declspec(dllexport) DWORD __cdecl iDmacDrvOpen(int deviceId, LPVOID outBuffer, LPVOID lpSomeFlag)
{
int workaround = 0; // TODO: proper fix crash and remove these workaround ints
return 0;
}
extern "C" __declspec(dllexport) DWORD __cdecl iDmacDrvClose(int deviceId, LPVOID lpWriteAccess)
{
int workaround = 1;
return 0;
}
extern "C" __declspec(dllexport) int __cdecl iDmacDrvDmaRead(int a1, LPVOID lp, UINT_PTR ucb, LPVOID a4)
{
int workaround = 2;
return 0;
}
extern "C" __declspec(dllexport) int __cdecl iDmacDrvDmaWrite(int a1, void *lp, UINT_PTR ucb, LPVOID a4)
{
int workaround = 3;
return 0;
}
extern "C" __declspec(dllexport) int __cdecl iDmacDrvRegisterRead(int DeviceId, DWORD CommandCode, LPVOID OutBuffer, LPVOID DeviceResult)
{
int workaround = 4;
return 0;
}
extern "C" __declspec(dllexport) int __cdecl iDmacDrvRegisterWrite(int deviceId, DWORD CommandCode, int unused, LPVOID DeviceResult)
{
int workaround = 5;
return 0;
}
extern "C" __declspec(dllexport) int __cdecl iDmacDrvRegisterBufferRead(int a1, DWORD BytesReturned, LPVOID lp, UINT_PTR ucb, LPVOID a5)
{
int workaround = 6;
return 0;
}
extern "C" __declspec(dllexport) int __cdecl iDmacDrvRegisterBufferWrite(int a1, DWORD BytesReturned, void *lp, UINT_PTR ucb, LPVOID a5)
{
int workaround = 7;
return 0;
}
extern "C" __declspec(dllexport) int __cdecl iDmacDrvMemoryRead(int a1, DWORD BytesReturned, LPVOID lp, LPVOID a4)
{
int workaround = 8;
return 0;
}
extern "C" __declspec(dllexport) int __cdecl iDmacDrvMemoryWrite(int a1, DWORD BytesReturned, int a3, LPVOID lp)
{
int workaround = 9;
return 0;
}
extern "C" __declspec(dllexport) int __cdecl iDmacDrvMemoryBufferRead(int a1, DWORD BytesReturned, LPVOID lp, UINT_PTR ucb, LPVOID a5)
{
int workaround = 10;
return 0;
}
extern "C" __declspec(dllexport) int __cdecl iDmacDrvMemoryBufferWrite(int a1, int a2, void *lp, UINT_PTR ucb, LPVOID a5)
{
int workaround = 11;
return 0;
}
@ -97,11 +109,13 @@ extern "C" __declspec(dllexport) int __cdecl iDmacDrvMemoryBufferWrite(int a1, i
extern "C" __declspec(dllexport) int __cdecl iDmacDrvMemoryReadExt(int a1, DWORD BytesReturned, int a3, LPVOID lp, DWORD nOutBufferSize, LPVOID a6)
{
int workaround = 12;
return 0;
}
extern "C" __declspec(dllexport) int __cdecl iDmacDrvMemoryWriteExt(int a1, int a2, int a3, void *Src, rsize_t DstSize, LPVOID lp)
{
int workaround = 13;
return 0;
}
@ -109,6 +123,7 @@ extern "C" __declspec(dllexport) int __cdecl iDmacDrvMemoryWriteExt(int a1, int
extern "C" __declspec(dllexport) int __cdecl iDmacDrvProgramDownload()
{
int workaround = 14;
return 0;
}