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.