Read configured LLE components from EmuShared

This commit is contained in:
PatrickvL 2016-12-29 16:06:28 +01:00
parent 8e4a9397bc
commit b9315e3e0d
4 changed files with 18 additions and 4 deletions

View File

@ -461,6 +461,12 @@ extern "C" CXBXKRNL_API void CxbxKrnlInit
strncpy_s((PSTR)DummyKernel->SectionHeader.Name, 8, "DONGS", 8);
}
// Read which components need to be LLE'ed :
int CxbxLLE_Flags;
g_EmuShared->GetFlagsLLE(&CxbxLLE_Flags);
bLLE_APU = (CxbxLLE_Flags & LLE_APU) > 0;
bLLE_GPU = (CxbxLLE_Flags & LLE_GPU) > 0;
// Initialize devices :
char szBuffer[MAX_PATH];
SHGetSpecialFolderPath(NULL, szBuffer, CSIDL_APPDATA, TRUE);

View File

@ -40,6 +40,11 @@
#include <memory.h>
enum {
LLE_APU = 1 << 0,
LLE_GPU = 1 << 1,
};
// ******************************************************************
// * EmuShared : Shared memory
// ******************************************************************

View File

@ -61,6 +61,10 @@ static bool bCacheInp = false;
static std::vector<void *> vCacheInp;
static std::vector<void*>::const_iterator vCacheInpIter;
// Set these for experimental APU(sound) / GPU (graphics) LLE
bool bLLE_APU = false;
bool bLLE_GPU = false;
void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHeader)
{
Xbe::Certificate *pCertificate = (Xbe::Certificate*)pXbeHeader->dwCertificateAddr;
@ -162,10 +166,6 @@ void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHead
uint32 LastUnResolvedXRefs = UnResolvedXRefs+1;
uint32 OrigUnResolvedXRefs = UnResolvedXRefs;
// Set these for experimental APU(sound) / GPU (graphics) LLE
bool bLLE_APU = false;
bool bLLE_GPU = false;
for(int p=0;UnResolvedXRefs < LastUnResolvedXRefs;p++)
{
DbgPrintf("HLE: Starting pass #%d...\n", p+1);

View File

@ -34,6 +34,9 @@
#ifndef HLEINTERCEPT_H
#define HLEINTERCEPT_H
extern bool bLLE_APU;
extern bool bLLE_GPU;
void EmuHLEIntercept(Xbe::LibraryVersion *LibraryVersion, Xbe::Header *XbeHeader);
#endif