Here's the .dba file
function CheckPhysx()
result = 1
physx$ = GET REGISTRY STRING("HKEY_LOCAL_MACHINE", "SOFTWARE\AGEIA Technologies", "HwSelection")
Program$ = getpath(0x0026)
physxdir = path exist( Program$ + "\AGEIA Technologies\v2.7.3\" )
system$ = getpath(0x0025)
systemdll = File Exist( system$ + "\PhysXDevice.dll" )
if (Len(physx$) = 0) then result = 0
if (physxdir = 0) then result = 0
if (systemdll = 0) then result = 0
endFunction result
Function InstallPhysX()
//ADD REGISTRY INFORMATION
if (len(GET REGISTRY STRING("HKEY_LOCAL_MACHINE", "SOFTWARE\AGEIA Technologies", "HwSelection")) = 0)
CREATE REGISTRY STRING "HKEY_LOCAL_MACHINE", "SOFTWARE\AGEIA Technologies", "PhysX Version", "008ab6fe"
CREATE REGISTRY STRING "HKEY_LOCAL_MACHINE", "SOFTWARE\AGEIA Technologies", "PhysX BuildCL", "00000000"
CREATE REGISTRY STRING "HKEY_LOCAL_MACHINE", "SOFTWARE\AGEIA Technologies", "PhysXCore Path", "C:\\Program Files\\AGEIA Technologies"
CREATE REGISTRY STRING "HKEY_LOCAL_MACHINE", "SOFTWARE\AGEIA Technologies", "HwSelection", "GPU"
endif
//INSTALL PHYSX DLLS TO PROGRAM FILES
Program$ = getpath(0x0026)
if file exist(Program$ + "\AGEIA Technologies\v2.7.3\PhysXCooking.dll") = 0
working$ = Get Dir$()
Set Dir Program$
Make Directory "AGEIA Technologies"
cd "AGEIA Technologies"
Make Directory "v2.7.3"
Copy File working$ + "\Media\Physx\PhysXCooking.dll", Program$ + "\AGEIA Technologies\v2.7.3\PhysXCooking.dll"
Copy File working$ + "\Media\Physx\PhysXCore.dll", Program$ + "\AGEIA Technologies\v2.7.3\PhysXCore.dll"
Set Dir working$
endif
//INSTALL PHYSX DLLS TO SYSTEM32
system$ = getpath(0x0025)
if file exist(system$ + "\physxcudart_20.dll") = 0
working$ = Get Dir$()
Set Dir system$
Copy File working$ + "\Media\Physx\physxcudart_20.dll", system$ + "\physxcudart_20.dll"
Copy File working$ + "\Media\Physx\PhysXDevice.dll", system$ + "\PhysXDevice.dll"
Copy File working$ + "\Media\Physx\PhysXLoader.dll", system$ + "\PhysXLoader.dll"
Set Dir working$
endif
endFunction
//GET PATH FUNCTOIN BY "spooky"
function getpath(nFolder)
p$ as string
if dll exist(1)=0
load dll "shell32.dll", 1
endif
make memblock 1, 512
pszPath = get memblock ptr(1)
make memblock 2, 16
ppidl = get memblock ptr(2)
HRESULT = call dll(1, "SHGetFolderLocation", "", nFolder, "", 0, ppidl)
if HRESULT = 0
Result = call dll(1, "SHGetPathFromIDList", *ppidl, pszPath)
if Result = 1
for b = 1 to 512
m = memblock byte(1, b-1)
if m = 0 then exit
p$ = p$ + chr$(m)
next b
endif
endif
delete memblock 1
delete memblock 2
delete dll 1
endfunction p$
