Sol_HSA on 29/2/2004 at 18:15
I've spent the free time I've had for the last four days hacking together an universal VESA driver for windows dos boxes. I'm surprised nobody has tried it before (as far as I know anyway).
I'm not going fullscreen yet, but I have successfully implemented majority of VESA 1.2 functionality plus 320x200x256 VGA mode. Terra Nova runs fine, although I haven't seen the ingame yet as the game requires mouse, and it seems I have to hack support for that separately.
Another couple test programs I've used are Scitech VBETest/Lite, which comes with their display doctor, and the winner demo that I (with my demogroup) wrote for Assembly98, gateways; just about everything seems to work display-wise; some small glitches here and there..
I don't know how long it'll take for me to get enough functionality hacked in for terra nova to work on my PC, but that's the immediate goal anyway.
Sol_HSA on 29/2/2004 at 18:48
For the adventurous, I've posted an alpha at (
http://iki.fi/sol/solvbe_alpha_290204.zip)
Like I mentioned above, this is *not* final by any means.
- windowed only
- 13h (320x200x256 VGA mode), most 8,15,16,24 and 32bit VESA modes should work
- tweaked (modex, modey) modes won't work
- killing the window may cause strange things to happen (kill the console)
- keyboard input only works if console is active (not the graphics display)
- mouse won't work at all
- will write log at c:\solvbe.log
- may pop up all sorts of diagnostic popups
- use at your own peril, but do share the tales of disaster (or success).
If you want to report a bug to me, please toss a mail to jari dot komppa at kolumbus dot fi, include the abovementioned log and a description what happened. Screenshots (under 100k please) may also help. If in doubt, don't send screenshots. =)
Shadowcat on 1/3/2004 at 00:07
Cool bananas!
Could I ask for a quick tutorial on using this?
Do we need to put the .dll into windows\system or will it find it if it's in the same directory as the .exe ?
If we want to install T.N. with this active, do we just run this first and it will set itself up in the background? or is there more to it?
Do the files need to live in the T.N. directory, or can they go anywhere?
thanks :)
Sol_HSA on 1/3/2004 at 07:21
Basically the dll should be on the search path, but I'd put it in the same directory as the executable and then run the executable from said directory. Once I get it solid enough, I might recommend putting the dll to the windows directory =)
As for using, just run it, and then run whatever needs VESA support. The TN:SFC installer should work.. as long as you can navigate with the keyboard, and keep the console focused, things should work.
Just as a note, I'm not sure whether there will be conflicts with vdmsound, as it works with the same principles (ie. overriding virtual dos machine (vdm) functionality).
Sol_HSA on 3/3/2004 at 13:33
The mouse support has proved out to be more of a problem than I expected. Most of the API is easy to implement (such as "give me current mouse coordinates" interrupt), but there's a dreaded FAR callback function that can do the same reporting, and unfortunately TN uses that method.
Also, I found another project that attempts/attempted to do more or less the same thing that I'm doing - EX291 at (
http://www.tortall.net/projects/ece291/.) When I try to use it, it simply crashes on me, though.
It's somewhat frustrating that I can't get any further before I can get this one bug nailed.. *sigh*. Soooo close.. =)
Sol_HSA on 3/3/2004 at 15:53
..anyway, here's a new alpha (
http://iki.fi/sol/solvbe_alpha_030304.zip) - some mouse support added (middle click on the window for it to grab the mouse or release it).
If the application requires the mouse callback feature, it won't work (and may crash spectacularily).
Shadowcat on 3/3/2004 at 23:35
Thanks Sol,
I'm a bit unsure of whether I want to try this out yet, given that it definitely won't work with the one game I'd be interested in using it with :) but I'm appreciating the development efforts!
Sol_HSA on 4/3/2004 at 20:15
Quick status report - I finally figured out the mouse problem. Partially my mistake, partially bad specs.. but it's solved now.
Good news is that the TN ingame, while in 320x200, worked straight away. 320x400 is a tweaked mode and doesn't work currently.
Bad news is that before I write keyboard support, I still can't actually play the game. And since keyboard use in most games is much more low-level than mouse support tends to be, that might take a while (hopefully less time than solving the mouse problem).
Also, the mouse isn't flawless yet.. Anyhow, I might post a new alpha once I get couple of small bugs squashed.
Sol_HSA on 4/3/2004 at 21:36
New alpha:
(
http://iki.fi/sol/solvbe_alpha_040304.zip)
Mouse is pegged to timer interrupt instead of mouse irq, so it relies on the fact that a game reconfigures timer to run *fast*. Possible solutions: rewrite to use the mouse interrupt and generate those whenever we get windows mouse messages, or reconfigure the timer =)
Terra Nova is now "playable" - as long as you don't need to use the keyboard and the mouse at the same time. I just ran through the tutorial missions without trouble (except for the fact that switching focus between the game and console isn't really much fun). To give SolVBE mouse focus, use the middle mouse button (usually mouse wheel in modern mice).
Since the mouse is good enough for TN, I'll focus on the keyboard next, and worry about proper mouse interrupt later.