Current version

v1.10.4 (stable)

Navigation

Main page
Archived news
Downloads
Documentation
   Capture
   Compiling
   Processing
   Crashes
Features
Filters
Plugin SDK
Knowledge base
Donate
Contact info
Forum
 
Other projects
   Altirra

Search

Archives

01 Dec - 31 Dec 2013
01 Oct - 31 Oct 2013
01 Aug - 31 Aug 2013
01 May - 31 May 2013
01 Mar - 31 Mar 2013
01 Feb - 29 Feb 2013
01 Dec - 31 Dec 2012
01 Nov - 30 Nov 2012
01 Oct - 31 Oct 2012
01 Sep - 30 Sep 2012
01 Aug - 31 Aug 2012
01 June - 30 June 2012
01 May - 31 May 2012
01 Apr - 30 Apr 2012
01 Dec - 31 Dec 2011
01 Nov - 30 Nov 2011
01 Oct - 31 Oct 2011
01 Sep - 30 Sep 2011
01 Aug - 31 Aug 2011
01 Jul - 31 Jul 2011
01 June - 30 June 2011
01 May - 31 May 2011
01 Apr - 30 Apr 2011
01 Mar - 31 Mar 2011
01 Feb - 29 Feb 2011
01 Jan - 31 Jan 2011
01 Dec - 31 Dec 2010
01 Nov - 30 Nov 2010
01 Oct - 31 Oct 2010
01 Sep - 30 Sep 2010
01 Aug - 31 Aug 2010
01 Jul - 31 Jul 2010
01 June - 30 June 2010
01 May - 31 May 2010
01 Apr - 30 Apr 2010
01 Mar - 31 Mar 2010
01 Feb - 29 Feb 2010
01 Jan - 31 Jan 2010
01 Dec - 31 Dec 2009
01 Nov - 30 Nov 2009
01 Oct - 31 Oct 2009
01 Sep - 30 Sep 2009
01 Aug - 31 Aug 2009
01 Jul - 31 Jul 2009
01 June - 30 June 2009
01 May - 31 May 2009
01 Apr - 30 Apr 2009
01 Mar - 31 Mar 2009
01 Feb - 29 Feb 2009
01 Jan - 31 Jan 2009
01 Dec - 31 Dec 2008
01 Nov - 30 Nov 2008
01 Oct - 31 Oct 2008
01 Sep - 30 Sep 2008
01 Aug - 31 Aug 2008
01 Jul - 31 Jul 2008
01 June - 30 June 2008
01 May - 31 May 2008
01 Apr - 30 Apr 2008
01 Mar - 31 Mar 2008
01 Feb - 29 Feb 2008
01 Jan - 31 Jan 2008
01 Dec - 31 Dec 2007
01 Nov - 30 Nov 2007
01 Oct - 31 Oct 2007
01 Sep - 30 Sep 2007
01 Aug - 31 Aug 2007
01 Jul - 31 Jul 2007
01 June - 30 June 2007
01 May - 31 May 2007
01 Apr - 30 Apr 2007
01 Mar - 31 Mar 2007
01 Feb - 29 Feb 2007
01 Jan - 31 Jan 2007
01 Dec - 31 Dec 2006
01 Nov - 30 Nov 2006
01 Oct - 31 Oct 2006
01 Sep - 30 Sep 2006
01 Aug - 31 Aug 2006
01 Jul - 31 Jul 2006
01 June - 30 June 2006
01 May - 31 May 2006
01 Apr - 30 Apr 2006
01 Mar - 31 Mar 2006
01 Feb - 29 Feb 2006
01 Jan - 31 Jan 2006
01 Dec - 31 Dec 2005
01 Nov - 30 Nov 2005
01 Oct - 31 Oct 2005
01 Sep - 30 Sep 2005
01 Aug - 31 Aug 2005
01 Jul - 31 Jul 2005
01 June - 30 June 2005
01 May - 31 May 2005
01 Apr - 30 Apr 2005
01 Mar - 31 Mar 2005
01 Feb - 29 Feb 2005
01 Jan - 31 Jan 2005
01 Dec - 31 Dec 2004
01 Nov - 30 Nov 2004
01 Oct - 31 Oct 2004
01 Sep - 30 Sep 2004
01 Aug - 31 Aug 2004

Stuff

Powered by Pivot  
XML: RSS feed 
XML: Atom feed 

§ When guessing the CPU speed, remember to put in a clamp

Got this while trying to install Adaptec GameBridge video capture drivers on my new system:

[Your system CPU speed is -22.8 GHz.]

If you write code to measure the CPU speed, do remember to put in a check for ridiculous values. At least there is a "Continue Anyway" button.

Comments

Comments posted:


I remember a long time ago trying to install some sound card drivers or utilities that refused to install on anything worse than a Pentium 90 MHz. I had an AMD K6-2 at 300 or 400, no utilities for me.

jfs - 18 04 08 - 05:22


Not to mention that equating clock-rate and CPU speed is silly. On my Core2Duo system I installed a game from a few years ago and it warned me that my CPU might not be fast enough, despite my CPU being faster than anything which was available when the game was made. :) (Since the C2D's clock-rate is lower than CPUs of the time the game was made, due to the C2D being far more efficient at calculations per clock tick.)

Leo Davidson (link) - 18 04 08 - 06:55


Oh yes, great. I have the game "Gunman Chronicles" which uses the HalfLife engine, which complains that I have -1000-something MB of RAM but it needs at least 16 (If you haven't guessed, I have 3 GB). And it does not have a "continue anyway" button. In addition there is an additional check so you can only use OpenGL when there is more than 32 MB RAM.
Now add to this a copy protection and you have a game that is unusable for 90% of users in the near future and unusable for 100% unless they take some laws not quite as seriously...

Reimar - 18 04 08 - 10:54


Its like people making their database columns like this:

FirstName varchar(10)

or

EMailMessageText varchar(500)

they dont realize that they impose unnecessary restrictions on the user. a varchar only takes as much space as needed (plus an extra byte). the appropriate choice here would have been like varchar(50) and varchar(max). if performance would have been no concern of course nvarchar would be even better. i have also seen ridiculous restrictions on the size of textboxes or the maximum number of search results (desktop search, not websearch).

Tobias Rieper - 18 04 08 - 11:17


I have a vague memory of once having to, for similar reasons, patch an installshield script to get some program installed. I think I actually cheated and inverted the comparison because I didn't know the opcode for "NOP".

eloj - 18 04 08 - 14:46


There's a game from the Windows 98 era which on a full install required over 4GB of disk. Of course, back then the necessary APIs didn't tell you if you had over 4GB of space available (or InstallShield couldn't handle it - can't remember which). IIRC the installer put up a prompt which went something like "I can't actually work out if you've got enough space, so I'll trust you if you say Continue".

Torkell (link) - 18 04 08 - 15:28


I want a CPU with negative clock speeds, if it means it would start with a finished calculation and work backwards.

I remember a similar situation where Metal Gear Solid PC would check how much memory is available, and refuse to start if you didn't have enough. However, my running with a fixed size swapfile caused it to overflow for some reason, causing it to fail the check even when I had many times the amount it required.

StarCreator (link) - 18 04 08 - 19:12


For XP, there are boot.ini switches that tell the kernel to ignore memory in the system and can be used to work around some installation issues.

DirectX installation is also a bugfest -- I had one game that would not install on Windows 2000 because it said that I only had DirectX 0. Of course, thanks to the moronic D3DX versioning and redist scheme, we have a whole new class of DX installation problems right now....

Phaeron - 18 04 08 - 22:58


@Leo Davidson:

I wrote an article recently about Half-Life engine and memory size detection error:
http://www.levicki.net/articles/tips/200..
You might want to read it, it is pretty easy to fix. Just make a mental note that it is not only Valve to blame but Microsoft as well.

Igor Levicki (link) - 20 04 08 - 20:55


@Igor Levicki:
You confused the names, the author is the one written below.
I know the solution, actually mine is easier (just do mov eax, 7fffffffh instead of replacing all comparisons, 2GB is sure enough for such an old game).
But that is the solution that as I said unfortunately has some legal problems. Not that I think it will cause anyone problems, but it is still an ugly solution.

Reimar - 21 04 08 - 10:09


Some of my CPU info tools return a 16GHz+ cpu... when I have a dual core 2.1GHz.
Sometime I wonder who code it and how he did it...

Simbou - 21 04 08 - 12:51


IANAL, but I doubt you'd have to worry about patching your local copy of Half-Life to run on your own system with 2GB+ of memory. Actually, I'm surprised that Microsoft hasn't done this already with an AppCompat shim -- there might be a flag you can set in the Registry to enable memory size clamping.

In any case, my preferred solution for a problem like this is a pre-loader that hot-patches GlobalMemoryStatus() instead. It won't work if there's something loaded that checksums process memory (PunkBuster), but in that event you're pretty much screwed and can't patch anything and would have to resort to boot.ini options instead.

If you haven't done so already, you might want to let the MSDN guys know about this discrepancy... I'm told that eventually they sometimes actually do update the docs based on feedback....

Phaeron - 21 04 08 - 15:11


Avery, sorry about that name mistake, I know it is below but sometimes I get confused.

I admit your solution is simpler but mine is technically correct -- the intent of my article was education.

As for reporting, I told Larry about it on January 27th, 2008. He agreed that documentation needs clarification and that it is an appcompat issue for Windows XP x64. What he did with that piece of info is another thing. Feel free to report it if you want.

As for legal issues -- AFAIK you have the right to reverse-engineer and fix something you own in case it ceases to work after the original vendor stops providing or refuses to provide support for it.

Igor Levicki (link) - 21 04 08 - 19:46


"Thereís a game from the Windows 98 era which on a full install required over 4GB of disk. Of course, back then the necessary APIs didnít tell you if you had over 4GB of space available (or InstallShield couldnít handle it Ė canít remember which)."
It is InstallShield, because by then GetDiskFreeSpaceEx existed. And even before GetDiskFreeSpaceEx, you can multiply the results to get the full 64-bit free space. Note that versions of Windows that have GetDiskFreeSpaceEx caps the results of this multiplication to 4 GB because of installers truncating the result to 32-bit.

Yuhong Bao - 22 04 08 - 11:33

Comment form


Please keep comments on-topic for this entry. If you have unrelated comments about VirtualDub, the forum is a better place to post them.
Name:  
Remember personal info?

Email (Optional):
Your email address is only revealed to the blog owner and is not shown to the public.
URL (Optional):
Comment: /

An authentication dialog may appear when you click Post Comment. Simply type in "post" as the user and "now" as the password. I have had to do this to stop automated comment spam.



Small print: All html tags except <b> and <i> will be removed from your comment. You can make links by just typing the url or mail-address.