Working on "DOS" VGA.

Morten Rønne morten.roenne at
Thu Apr 1 03:17:45 CDT 2010

Hi Wine-devel

My name is Morten and I would like for some of my old DOS/WIN95 games to 
work with wine. :)

I know that I most likely could solve this by using DOSbox and/or DOSemu.
But I don't consider either of them user friendly in it's raw form.
And I hope in the future it could be more of a Go to this menu item, 
click a few choices and then play game thing.

So I have been looking into what one of them is needing (XCOM Apocalypse).

The first thing that needs work is the VGA screen driver. The game needs 
one of the unsupported video modes.
After looking further into it, I can see that the current screen driver, 
needs to be more of an emulator than just a copy of the framebuffer/RAM 
window  to/from the DirectDraw surface.

But since I need to do a lot rewrite of the code, to get a emulator into 
things,  I would of course like to test all the stuff that I don't touch 
(in term of videomodes). But there isn't a test catalog in 
dlls/krnl386.exe16. That could of course be due to the fact that it is 
pretty hard to write test for that old platform and get proper test on a 
live version.
Or am I missing something here?

Looking over the list of videomodes, I can see that a lot of them says 
Is that really true or do they simply not break?
Again is there anyway to test that those modes are truely supported in 
my code change (and in the current code)?

Another problem that I am facing at a later stage is that most of the 
games needs to be installed in win95 mode.
But I think that most people will run with something like XP, Vista or 
Win7 as default mode.
That will break most of the old installers as DOS version becomes 5.0 or 
something "silly" like that.
So I am thinking about having to create a wrapper program where you can 
install your old programs through so the mode gets set correctly during 
install. And perhaps also creates some proper shortcuts in the menu.
And perhaps even into the new game database that new windows version have.
And thoughts/ideas on this?

Another way to handle this would be to do something like a MD5 on the 
install.exe (hoping that they differ) and then look up in the AppDB, to 
see which mode to use as installer mode (and run mode). Yes, that would 
most likely require changes to AppDB. But I can see a use for this even 
for the above wrapper program (Autodetect using AppDB).

Once I get a new VGA "driver" running, I will most likely start looking 
into INT10h and others that try to interface to the VGA "driver".

Best Regards
Morten Rønne

More information about the wine-devel mailing list