11

NEW!

I was trying to post here yesterday, but it kept giving me an error. I have discovered that it actually is not using DirectX at all, but GDI or whatever is the non-DX graphics in Windows (not OpenGL Or any other hardware-related API). Sorry about that. I really did think it was DX.

I have a bunch of Windows 32-bit fullscreen EXEs that were compiled for the Windows XP era and use some version of DirectX for settings the graphics mode: 320x240x8. It is hardcoded, native (not faked in any way), and the binaries cannot be touched, recompiled or modified in any way (don't ask).

I'm trying to get these to run on Windows 7 64-bit and later (it doesn't even run on XP without the right card and driver, just to clear up any confusion). They only run if the video card and its driver specifically supports this mode, which is extremely rare, regardless of whether it's run on XP or 7. The 32/64-bit versions seem to have no impact either.

I have been on this problem for a long time, asking experts for help numerous times and getting all kinds of potential solution, which I've tried one by one. Each of them fail with the same error: can't set video mode. The problem is always that it cannot set the video mode. The obvious solution is that it cannot attempt to set the video mode, because it is not supported. So I need some kind of small EXE that I can bundle with these EXEs and which can be set up to "wrap around" it and fool it into thinking that it's actually set the mode, whereas it's actually running in some kind of emulated video window.

I have tried "Wine on Windows", various utilities that "change the resolution" (including DXWIN and D3DWindower), running it inside a VM, compatibility settings, etc. Just about anything you immediately think of. Nothing works at all. But the VM thing wouldn't be good even if it did work, because this has to be "distributable" as well.

Can anyone help me? Is this even possible to solve at all? It seems so bizarre that it's not possible to "trick" the programs into thinking that they actually did get to set the video mode.

I hope that a true expert will be able to come up with some solution.

10
  • The fact you said you can't recomplied etc, implies programming experience - are you able to 'wrap' the software within software? EG, create new software with a 320x240 window (much like a View)?
    – Dave
    Sep 25, 2012 at 8:02
  • Well, not really anymore... I'd much prefer a standardized solution. Sep 25, 2012 at 9:26
  • Maybe you should post this on SO and ask for specific advice regarding how best to code the wrapper (if such an approach is even feasible).
    – Karan
    Sep 26, 2012 at 2:02
  • @Karan: his question on SO was closed as off-topic and he was asked to post here. stackoverflow.com/questions/12576136/… Sep 26, 2012 at 2:32
  • 1
    Are you sure it’s using DX and not an older OGL or Glide?
    – Synetech
    Sep 30, 2012 at 16:43

2 Answers 2

2
+25

Totally not what its actually meant to do, and I can't tell if it'll work without having the actual files in question but you might be able to emulate an older graphics card with 3danalyzer.It emulates a 4000 and 5000 series nvidia card which a relatively old and may work.

3
  • Doesn't work. Sorry. Nothing seems to work. Sep 27, 2012 at 23:07
  • 1
    @user1696157 What happened when you tried running it? What emulated vendor/device IDs did you try? Something appropriate for when the application was new? Did you enable debug logging? What does the log say?
    – John Lyon
    Sep 28, 2012 at 6:13
  • 1
    would you happen to have a example file that we could try - assuming its something redistributable? Its pretty hard to troubleshoot blind.
    – Journeyman Geek
    Sep 28, 2012 at 7:02
2

The PowerStrip utility ($29.95 with trial) can add custom resolutions for your monitor. For crazy ones (such as yours), it is unknown what it will look like.

The wiki article Custom display modes shows how this is done, and even mentions specifically custom resolutions like 320x200 and 320x240.

In your place I would maybe try it first in a virtual machine, just in case (although I don't really know if it will function correctly in a VM). This will allow you not to destroy your computer display for nothing, as well as see the monitor screen in its real (small) size rather than splattered all over your monitor.

If your Windows is 32-bit and your video card is VGA, maybe this old article can also help: Tweaked VGA Modes.

[EDIT]

Another possibility is to use regedit and position to this key :
HKEY_CURRENT_CONFIG\System\CurrentControlSet\Control\VIDEO\{video-card}\0000,
change the following keys : DefautlSettings.XResolution, DefautlSettings.YResolution, then reboot.

If nothing works, then your video card might be one of these that do not support custom resolutions, either added via driver, PowerStrip or in regedit. It would help us to know the model of your card.

9
  • 1
    I tried your suggestions, but it doesn't work at all. :( Sep 27, 2012 at 23:00
  • 1
    I added some more info. In what way didn't PowerStrip work for you?
    – harrymc
    Sep 28, 2012 at 7:24
  • 1
    It didn't work as in "didn't work at all". Sep 28, 2012 at 17:51
  • 1
    Well... I didn't dare to test those last fishy programs in the actual computer, actually. But it shouldn't be a difference... Sep 29, 2012 at 1:12
  • 1
    If the problem is with your video card, then this might yet work with an emulated card of another make. PowerStrip or the regedit hack should work if the conditions are right.
    – harrymc
    Sep 29, 2012 at 5:47

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .