3

This might be better suited for SuperUser.SE, but it also might be too game-specific.

I recently installed Tom Clancy's H.A.W.X., a game from 2009, on my new laptop.

My laptop carries an i7 2.5 GHz core with a GeForce 840M (around 1GHz, 2GB memory). In other words, it should be very well capable of running this game. During the install however, I got the following message:

Image insinuating my videocard has only 32MB video memory where 128 is required.

Ofcourse, I blame Windows 8.1. Old software on newer operating systems has caused unusual errors in the past. But should I be worried? Should I fix the error causing this?

Do note the game has not failed in any obvious ways while playing yet (except for randomly launching my missiles, which is a known bug).

5
  • 1
    It does not look like the issue is fatal to the installation process. Did installing it actually succeed and if so, have you tried playing the game?
    – Colin D
    Feb 3 '15 at 19:20
  • I've you tried running the install with a different compatibility mode? Feb 3 '15 at 19:35
  • As far as I can see, the game runs fine. @JonathanDrapeau How would compatibility mode change the way of finding hardware?
    – Mast
    Feb 3 '15 at 19:42
  • 1
    The installer might be calling a old api for the video memory that might work in another mode. If the game runs fine regardless, it's a bit pointless to try. Feb 3 '15 at 19:46
  • Note the question is not about whether the game will run fine but rather about if it will cause any problems whatsoever. Although I should've explicitly stated the game runs fine.
    – Mast
    Feb 3 '15 at 19:48
2

A lot of older video games used to query the driver and ask how much free video memory it had. Video memory sizes are large enough now that for some older games, it's causing the result to "wrap around" to a smaller value or occasionally even a negative value.

Unless there are runtime checks to get available video memory that are running into issues, this shouldn't be a problem.

6
  • 1
    Specifically, the largest number that can be stored in a signed 32-bit integer is 2,147,483,647, or one byte short of 2GB. As a result, when the the driver says "I've got 2,147,483,648 bytes of video RAM", the program hears "I've got -2,147,483,648 bytes of video RAM", which is clearly far less than the 33,554,432 bytes the program is looking for.
    – Mark
    Feb 3 '15 at 21:56
  • Why would it have to be signed? RAM doesn't come in a negative form, so unsigned it would have 4GB before overflow. I'm not sure how that 1 byte turns into 32M either.
    – Mast
    Feb 4 '15 at 13:30
  • @Mast, tons of APIs returned signed values. Even if the API returned an unsigned value, tons of developers used to just use "short", "int", or "long" instead of their unsigned equivalent to store the values. Source: Worked in game development for a decade.
    – RomSteady
    Feb 4 '15 at 14:58
  • That explains something. It still doesn't turn 1 byte into 32M though. If you have an explanation for that, you're golden.
    – Mast
    Feb 4 '15 at 15:38
  • 1
    The hardware detection are not standardized. They can do whatever they want, and sometimes they can do really stupid things. At least they still let you install and run even though the tests failed. Some games don't let you do that.
    – Nelson
    Mar 10 '16 at 11:33
2

Turns out it had nothing to do with wrapping.

During the installation, it must have noticed both my video card and my on-board video chipset. My chipset is a HD Graphics 4600. Strong enough to run the game flawless on default settings (although the FPS drop very quickly at 1080p).

I suspect my chipset has 32MB video RAM. In the graphics options, I can't select my video card, only my chipset.

This only occurs on the DX10 version of the game though. The DX9 version can find the card just fine (and does not find the chipset for some reason).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.