Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Bug Reports / PhysX() and Get DX Version$() no longer work with DBP update 7.2

Author
Message
TinTin
17
Years of Service
User Offline
Joined: 16th May 2006
Location: BORG Drone Ship - Being Assimilated near Roda Beta (28)
Posted: 5th Mar 2009 21:05
Run the following code...

(1) Get DX Version$() doesn\'t return anything, it used to return the DX Version installed.
(2) The compiler says that variable PhysX does not exist in program.
If you remove the brackets it just returns 0 even though I\'ve got a PhysX card installed.


And before you ask I\'ve installed all the latest .dll\'s, uninstalled/deleted and reinstalled, I\'ve tried everything.

Cyberspace was becoming overcrowded and slummy so I decided to move. These nice chaps gave me a lift.
HowDo
21
Years of Service
User Offline
Joined: 28th Nov 2002
Location: United Kingdom
Posted: 6th Mar 2009 12:49
Above code works ok on my system.
I get 9.0c for DX and 0 for physx as I have no physx chip.

Dark Physics makes any hot drink go cold.
TinTin
17
Years of Service
User Offline
Joined: 16th May 2006
Location: BORG Drone Ship - Being Assimilated near Roda Beta (28)
Posted: 6th Mar 2009 18:04 Edited at: 6th Mar 2009 18:27
Cheer's HowDo, did you use PhysX or PhysX()?
Come to think of it why would you have the PhysiX dll's if you don't have a card?

It's wierd, my application compiled ok last year and that verision is still working. I've just added another function,(unrelated) and now it appears that all the PhysX commands don't work, I havn't changed any of the PhysX code.

I'm running under Vista so I've got both DX9c and DX10 installed but nothig gets returned from Get DX Version$()

Edit Ok, Get DX Version$() works when I run DBP in compatability mode for XPSP2 and returns v9.0c...

Edit 2 Fixed the problem, somehow my DarkPhysics instalation got un-activated, I've now re-activated it and all is well again. Hurrah!!

Cyberspace was becoming overcrowded and slummy so I decided to move. These nice chaps gave me a lift.
HowDo
21
Years of Service
User Offline
Joined: 28th Nov 2002
Location: United Kingdom
Posted: 7th Mar 2009 11:04
Well done , because its a pain when you are trying to get it going again when it had worked before.

Dark Physics makes any hot drink go cold.
James H
17
Years of Service
Recently Online
Joined: 21st Apr 2007
Location: St Helens
Posted: 7th Mar 2009 15:03 Edited at: 7th Mar 2009 15:04
I don`t know of any issues caused by using compatability mode XP but there is a limit on memory size for memblocks using compatability mode for win98. Just thought I`d raise that issue in case anyone does know of any issues that are caused by compatability mode.
Although DBP doesn`t officially support Vista afaik, I think it should remain as compatable as possible. The last working upgrade without the need to use compatabilty mode that reports DX version is dbpro_upgrade_7_0_beta9 - it doesn`t however report the version of 9 I have but reports DX10, which although is correct, is also pointless as DBP doesn`t support DX10 - can`t think of a single reason to need to know this yet. Even if there was no such thing as DX10, using compatability mode only reports 9.0c (dbpro_upgrade_7_2.). There are so many versions of 9.0c, latest version of dark physics requires november 08 version of dx9c, here the end users program would fail if they have earlier version say june 08, even though a check for version dx9c was made.
TinTin
17
Years of Service
User Offline
Joined: 16th May 2006
Location: BORG Drone Ship - Being Assimilated near Roda Beta (28)
Posted: 8th Mar 2009 14:54
Don't know if this is 100% true, but I remember hearing from somewhere that all revisions of DirectX were backward compatible. So, if your using Vista with DX10 and were runing an application written for DX6 then it should still work.
I believe that with each new release of DirectX all MS do is add new functionality (ie. support for Shader 3) and possibly improve the performance of the older functions, fix a few bugs! etc...

Cyberspace was becoming overcrowded and slummy so I decided to move. These nice chaps gave me a lift.
James H
17
Years of Service
Recently Online
Joined: 21st Apr 2007
Location: St Helens
Posted: 8th Mar 2009 15:27
Might not be so true with Vista - comes shipped with outdated version of dx9 and dx10. Updating never included updates for 9 when I first did it automatically, just updated 10 unless I did it by downloading the redistributable(s) for 9. That was well over a year ago so maybe things are different now - always downloaded the redistributables since. This aside, I think I remember having to have an earlier version than the latest of dx9c for dark physics, could be wrong though.
Virtual Nomad
Moderator
18
Years of Service
User Offline
Joined: 14th Dec 2005
Location: SF Bay Area, USA
Posted: 25th Mar 2009 15:18
get dx version$() also stopped working for me with recent upgrade to 7.2. vista home premium 64. i don't want to run in compatability mode just to get this command to work...

while we're on the subject, what's the point of using this command? won't the app not run if you don't have current directx?

James H
17
Years of Service
Recently Online
Joined: 21st Apr 2007
Location: St Helens
Posted: 25th Mar 2009 16:59
If the programs recommended specs are a specific version of 9c and the end user has an earlier version of 9c but is unaware of this, the program can be coded to inform the user, rather than have the user contact me about how the program fails even though the user has the right specs to the best of their knowledge. As it stands this cannot be done without specific dx version being reported.
TinTin
17
Years of Service
User Offline
Joined: 16th May 2006
Location: BORG Drone Ship - Being Assimilated near Roda Beta (28)
Posted: 25th Mar 2009 20:20
That's the reason I'd have given...

I'd also say that if you distribute the DX Runtime with your application, you could get it to automaticaly run the DX setup program as many games do.

there is also the functionality of loading different media,libraries etc. depending on the version if DX installed to optomise performance.

However, as a fix, I've made DarkBasic run in compatability mode for XP as DarkBasic hasn't been updated to take advantage of DX10 yet. C'mon Lee get your finger out...

Cyberspace was becoming overcrowded and slummy so I decided to move. These nice chaps gave me a lift.
James H
17
Years of Service
Recently Online
Joined: 21st Apr 2007
Location: St Helens
Posted: 26th Mar 2009 14:14
Although I agree that DX could be shipped with the product(and auto installed) as many games do, I do feel it should be an option not a must(ie if the users machine needs it then install it rather than wait for the additional time to install it when it might not be needed, not to mention time taken for a restart). After all system software is the users responsability? Ok so its in my interest to get this done for the user, however if a user was to recieve a corrupt copy either by download or a hard copy, is there a chance an attempted installation that failed part way through can damage the systems setup? If so then the coder could be responsable for any costs incurred by the user?(what is written in dbp shouldn`t affect system stability?) I really don`t know/am unsure of this, either way a decision needs making as to wether this command is needed at all, if it is then really it should be fully functional and give us the exact version of DX.
Interestingly(or not) the system software required to use dark physics falls into this area - note how nvidia put the responsability of the installation on the user when it could probably be included in there drivers as an optional install. Point being here that drivers downloaded are kept to a minimum size this way, I really can`t see too many products made using dbp being made available as hard copies as opposed to a download(though this is not concrete), so why should I pay for the extra 90 odd mb`s for dx if it can be helped? Maybe I have this all wrong, but a little clarity would be nice
IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 29th Jun 2010 14:04
Fixed in 7.5.

The way that DBPro gets the DX version did not work for Vista and Windows 7 unless running in compatibility mode, and getting the latest version installed also does not work for those either (it reports DX10 or DX11). An alternate method has been used that determines the version of DX9 that is use from the registry.

TinTin
17
Years of Service
User Offline
Joined: 16th May 2006
Location: BORG Drone Ship - Being Assimilated near Roda Beta (28)
Posted: 29th Jun 2010 22:02
It Now Reports DX9c, which is what DBPro currently uses on my PC, and not what the latest version of DX is installed on my PC.


Cyberspace was becoming overcrowded and slummy so I decided to move. These nice chaps gave me a lift.
IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 30th Jun 2010 00:13
That's correct - what's the point in it reporting the presence of a version of DirectX that you can't use with DBPro?

TBH, I can't see the point of such a function in the first place, as DBPro can't run without the correct version of DX9.0c installed anyway, and any other version of DirectX that is installed is completely irrelevant to it.

TinTin
17
Years of Service
User Offline
Joined: 16th May 2006
Location: BORG Drone Ship - Being Assimilated near Roda Beta (28)
Posted: 30th Jun 2010 20:53 Edited at: 30th Jun 2010 21:00
@IanM...
Yeah, I know that this is the version that has to be installed for DBPro to work, but as has been said before, If I decide to distribute my application, and somewhere someone decided to buy it, I'm thinking off all the good advertisment my application would get, should it report they are running DX9c instead of the DX11 installed and the application won't run. (I'd demand a refund and tell my mates not to bother with this crap) However, if it reported the correct versions installed i.e. DX11 & DX9c then the app would run, if it just detected DX11 it would say it needed DX9c installed as well.

On a side note, I remember Lee saying he was going to utilize the same dll's as FPS and GDK which support DX10, then this function will need updated once again to report the correct versions installed.

All other professional software packages that use DX correctly check the version installed and, I don't see why DBPro should be less 'Proffesional'


Cyberspace was becoming overcrowded and slummy so I decided to move. These nice chaps gave me a lift.
IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 1st Jul 2010 23:42 Edited at: 1st Jul 2010 23:43
Quote: "I'm thinking off all the good advertisment my application would get, should it report they are running DX9c instead of the DX11 installed and the application won't run"

Are you under the impression that it's simply hard-coded to return DX9.0c? That's not the case at all.

Quote: "However, if it reported the correct versions installed i.e. DX11 & DX9c then the app would run, if it just detected DX11 it would say it needed DX9c installed as well."

That reads as if you expect it to return a string containing every version of DirectX installed - is that what you mean? If so, then that's kinda moving the goal-posts a little, and certainly not what the function does, or has ever done. In addition, when you run your program on an XP system, it still works in exactly the same way as it always did - I haven't changed that.

Quote: "this function will need updated once again to report the correct versions installed."

Yes, and that would be a very very small part of the changes required. It's certainly nothing that needs to be worried about at this point.

This function does check and report the relevant version of DirectX installed.

You haven't explained exactly why it's important that a program that uses only DX9.0c needs to report that DX10 or DX11 is installed on a particular system.

TinTin
17
Years of Service
User Offline
Joined: 16th May 2006
Location: BORG Drone Ship - Being Assimilated near Roda Beta (28)
Posted: 2nd Jul 2010 19:44
@IanM
It's not that it uses DX9.0c or has to report DX10 or DX11, and I know Microsofts DX backward compatability isn't all it was hyped up to.

I have several friends, all with a variety of OS's XP, Vista, 7.
The XP guys don't have a problem, Vista & 7 guys do as DX9.0c isnt installed with those OS's.

If I create a multiplayer blast fest of our local village to share between friends, It won't run on the Vista & 7's because DX9.0c isn't installed but they know DX10 or DX11 is.

XP is probably my favorite MSOS but it's gradualy being phased out, even Vista is becoming obsolete in favour of 7. So reporting the correct 'Version' or 'Versions' installed, would be great. (Similar to the way we can detect multiple Graphics Cards!)

It would also be great to be able to create applications that dont require DX at all,i.e. a console or windows application. this would require possibly one additional function command to the list, something like 'InitDX(verison)',which if the version wasn't installed would return 'FALSE', this could be capped to DX9.0c for the current DBPro configuration.

I can live with this limitation at the moment, as DBPro only uses DX9.0c and the not working under Vista has been fixed. My only question is.. On a Virgin Vista setup with only DX10 what will it report?


Cyberspace was becoming overcrowded and slummy so I decided to move. These nice chaps gave me a lift.
IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 2nd Jul 2010 20:26
Quote: "On a Virgin Vista setup with only DX10 what will it report?"

It'll fail before it gets to any of your code - that's the point I was making when I said this:
Quote: "TBH, I can't see the point of such a function in the first place, as DBPro can't run without the correct version of DX9.0c installed anyway, and any other version of DirectX that is installed is completely irrelevant to it."


You'll get an error message that read something like 'Unable to create Direct3D interface'. I don't have any systems without DX9 installed, so I am unable to test that right now.

TinTin
17
Years of Service
User Offline
Joined: 16th May 2006
Location: BORG Drone Ship - Being Assimilated near Roda Beta (28)
Posted: 5th Jul 2010 19:54
Your starting to see my point, rather than failing, wouldn't it be better to use the GetDXVersion$() to exit the app gracefully with a popup saying that you need to install DX9.0c.


Cyberspace was becoming overcrowded and slummy so I decided to move. These nice chaps gave me a lift.
IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 5th Jul 2010 21:24
But you're still missing my point: If the right version of DX is not installed, the DBPro application doesn't even complete its startup (it fails at almost the very first step), and never gets to your code.

TinTin
17
Years of Service
User Offline
Joined: 16th May 2006
Location: BORG Drone Ship - Being Assimilated near Roda Beta (28)
Posted: 6th Jul 2010 21:21
I'm sure (I hope) that's not the case. Even with a basic knowledge of C++, anyone can make an application that reports that it requires a certain version of DirectX. I'd be amazed if DBPro didn't.

Like yourself, I've already got DX9.0c installed on my machine, so can't verify this.


Cyberspace was becoming overcrowded and slummy so I decided to move. These nice chaps gave me a lift.

Login to post a reply

Server time is: 2024-04-25 12:42:01
Your offset time is: 2024-04-25 12:42:01