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); 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 : // Initialize devices :
char szBuffer[MAX_PATH]; char szBuffer[MAX_PATH];
SHGetSpecialFolderPath(NULL, szBuffer, CSIDL_APPDATA, TRUE); SHGetSpecialFolderPath(NULL, szBuffer, CSIDL_APPDATA, TRUE);

View File

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

View File

@ -61,6 +61,10 @@ static bool bCacheInp = false;
static std::vector<void *> vCacheInp; static std::vector<void *> vCacheInp;
static std::vector<void*>::const_iterator vCacheInpIter; 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) void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHeader)
{ {
Xbe::Certificate *pCertificate = (Xbe::Certificate*)pXbeHeader->dwCertificateAddr; Xbe::Certificate *pCertificate = (Xbe::Certificate*)pXbeHeader->dwCertificateAddr;
@ -162,10 +166,6 @@ void EmuHLEIntercept(Xbe::LibraryVersion *pLibraryVersion, Xbe::Header *pXbeHead
uint32 LastUnResolvedXRefs = UnResolvedXRefs+1; uint32 LastUnResolvedXRefs = UnResolvedXRefs+1;
uint32 OrigUnResolvedXRefs = UnResolvedXRefs; 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++) for(int p=0;UnResolvedXRefs < LastUnResolvedXRefs;p++)
{ {
DbgPrintf("HLE: Starting pass #%d...\n", p+1); DbgPrintf("HLE: Starting pass #%d...\n", p+1);

View File

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