Tendo City

Full Version: Full-Screen DOS Mode in Vista
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
http://www.columbia.edu/~em36/wpdos/vista.html#steps

Quote:What to do if you absolutely must run WPDOS under Windows Vista

Note: Before performing the steps described here, you may need to disable Vista's User Access Control (UAC) security feature until you have completed making the changes. If Windows will not let you open the relevant files, or bothers you with prompts, download and run TweakUAC and turn off UAC or switch it to "quiet mode"; when you are finished making and testing the changes suggested here, run the utility again to restore UAC.

Follow these steps very carefully before attempting to run WPDOS with Windows Vista:

(1) On your Windows Vista computer, click on the Vista "pearl" where the Start Menu was in earlier versions, and enter the word "COMMAND" (no quotation marks); a DOS prompt should open. Press Alt-Enter, which normally switches between windowed and full-screen mode. If you get an error message saying "This system does not support fullscreen mode", then proceed to step (2), after entering "exit" to close the window. Otherwise, enter "exit" to close the command prompt, and proceed to step (3).

(2) If you want to be able to use WPDOS in its traditional 25-line full-screen mode, and you got an error message when you tried the experiment in step (1), then you must use Vista's "Standard VGA Graphics Adapter" video driver (as described in the next paragraph) instead of whatever driver you or Windows installed for use with your video hardware. (Alternatively, if your hardware makes this possible you may want to install the Windows XP driver for your video hardware as described below).

How to install the Standard VGA Graphics Adapter in Vista: Right-click on the Windows desktop; choose Personalize from the pop-up menu; choose Display Settings from the Personalize dialog; on the Monitor tab, click Advanced Settings...; on the Adapter tab, click Properties; on the Driver tab, click Update Driver...; click on "Browse My Computer for Driver Software"; click on "Let me pick from a list of device drivers on my computer"; in the "Select a device driver" list, scroll down to Standard VGA Graphics Adapter and highlight (select) it; click Next. If your monitor goes blank, wait five minutes, then power down your computer and restart it normally. If your monitor does not go blank, wait while the driver is installed; click Close; then continue to press Close or OK or otherwise close dialog boxes until you are back to the desktop. If you are prompted to restart your computer, do so. You probably should do so anyway. (If you want to reverse this procedure, follow the same instructions, but let Windows automatically install the appropriate software for your system instead of browsing your computer for driver software.)

(3) If, and only if, you do not use a US-English keyboard layout in WP, you must modify the Autoexec.nt file on your Vista system to that DOS applications such as WPDOS use the keyboard that you need. Download this desktop shortcut EditAutoexec.nt to your Vista desktop or some other convenient location (you may need to right-click on the links and select Save link as...). Double-click on either shortcut to edit the associated file in Windows Notepad; go the foot of the file and add this line (replacing xx with the two-letter abbreviation of your keyboard layout, for example, uk or nl):
kb16 xx

Close and save the file. The change that you made will apply to the next DOS application you launch; you do not need to reboot your computer. Important: If you use any program that uses a special Autoexec.nt file, you must make this change in all such files (as in the examples noted elsewhere on this page under Expanded (EMS) memory under Vista.

(4) Install WPDOS to your Vista computer. Install a desktop shortcut for WPDOS following the advice elsewhere on this site. Note that the shortcut will appear on the desktop as a plain white rectangle, no matter which icon you may select in the shortcut properties sheet. Specify on the Window tab that the program should open in either a window or full-screen, depending on which you prefer.

(5) Run WP. If it seems impossibly slow, install Tame now; otherwise, you may install Tame later. After selecting a printer, use Shift-F1/Display and choose Auto-Select so that WP will chose its IBM VGA 640x480 graphics driver. Now use Shift-F7, 6 (in WPDOS 5.1) or Shift-F7, 7 (in WPDOS 6.x) to switch to print preview; you may have to wait as long as a minute before the preview appears. When it appears, press F7 to return to text mode; you may have to wait as long as a minute. If the wait is intolerable, and you want to avoid it in the future, close WPDOS and rename all the .VRS files in the WPDOS directory (rename them to something like .VR9 so that you can restore them in the future if you need to); if the .VRS files are renamed, WPDOS cannot try to switch to graphics mode, and will display only a brief error message if you attempt to do so.

By following these procedures, WPDOS will be fully usable, but you may prefer to run WPDOS under Windows XP.

You need to switch back to your normal drivers for Windows to work properly, of course. So it's a switch thing -- go to these drivers, run DOS, then go back to normal drivers so you can use Windows normally.

Why not use DOSBox? That'd be far too easy... :D (plus, I like getting the real thing working...)

So here's the question. If the Sound Blaster X-Fi has no DOS support (which it does not), why do I near music (MIDI, I think) in SimCity 2000 for DOS?
Some old DOS games supported using the Windows Sound System. Even Vista apparently still has the old "Windows Sound System" hooks from 3.x.
Hexxagon also has sound. Raptor too, when it's set to General MIDI music. No sound though, of course; Soundblaster sound doesn't work. And I can't get General MIDI working in TIE Fighter... hmm...
Remember that every single one of the DOS games had to be designed with it's own sound system.

"General MIDI" basically means exactly that. It's talking in the same language Vista understands and midi is midi.

...except for sometimes. Remember, each one is coded in it's own way.
Hexxagon doesn't have a sound configuration utility. Ingame, you choose between No Sound, PC Speaker, and Soundblaster. All three options work as they should in Vista... which is really odd, given that in everything else I've tried I never get more than MIDI (SC2k for instance has background music, but not sound effects).

I mean, DOS games can't see Windows. Either they can see the sound drivers or they can't... and they should all be able to see the same things. "Every game is different" isn't the answer. They're all using the same resources that come from the same sound card, a Creative X-Fi, and the X-Fi has no real DOS sound support, unlike the SB Live.

A Black Falcon Wrote:You need to switch back to your normal drivers for Windows to work properly, of course. So it's a switch thing -- go to these drivers, run DOS, then go back to normal drivers so you can use Windows normally.

Why not use DOSBox? That'd be far too easy... :D (plus, I like getting the real thing working...)
They are NOT all using the same resources, that's the thing you have to understand.

They are all different IS the answer. Here's the situation. Depending on the "setup" a game has (and some have no setup options and just go on automatic) it'll try to access various hardware. Most of the time, it's through a direct communication with the hardware. That is, it cuts out the middleman and just gives very specific machine code instructions to the sound card.

That is WHY X-Fi "has no built in sound card support". The old machine codes are no longer applicable with X-Fi. Actually, that's been true since at least Audigy. The only reason Audigy could support DOS sound (the kind I was describing before) was because it had a special driver coded specifically for it to translate the machine code instructions into something the windows OS could understand and then send to the card.

Now here's the thing. There ARE DOS games that use MIDI in various ways. Some of them have a special option in their sound setup called "Microsoft Sound System", and this sound option will not use direct machine code access but instead attempt to access the MS sound system.

Any game that has this support WILL have sound support.

Your confusion seems to be the whole "X-Fi doesn't support DOS" thing. Well, no, it doesn't. But, it DOES accept any data from the Windows sound system, and as I said, that sound option will NOT try to access the sound card directly, but go through MS's system. In other words, the sound card not only "supports" that but has no choice BUT to support it. It can't tell the difference because the main question is: what does the MS sound system support? Clearly it hasn't changed it's input ever since that system was set into place and still supports old DOS games in that way.
Oh yes, CD Audio works fine in DOS games. But I'd have expected that, as it has nothing to do with the Soundblaster card. I was just playing Caesar II... didn't miss those constant "Plebs are needed!"s. :D

Quote:(and some have no setup options and just go on automatic)

Yeah, for instance as I said Hexxagon has no setup besides "Soundblaster or PC Speaker" in the ingame menu, and while Raptor does let you choose, you don't configure, just choose the source, such as General Midi. Caesar II's CD Audio works, but the sound effects -- set up to soundblaster -- don't work. Simcity 2000's music works but not sound. I'm not sure what it's set to though, you can only configure sound when you install the game and I don't have the install disk right now.

Quote:Now here's the thing. There ARE DOS games that use MIDI in various ways. Some of them have a special option in their sound setup called "Microsoft Sound System", and this sound option will not use direct machine code access but instead attempt to access the MS sound system.

My point is that, even if this is the cause (I'm not sure), you cannot identify it by what the games call it ingame, in the config program, or anything else, as far as I can tell. You just have to try it and see whether sound works in that game...

Quote:Actually, that's been true since at least Audigy. The only reason Audigy could support DOS sound (the kind I was describing before) was because it had a special driver coded specifically for it to translate the machine code instructions into something the windows OS could understand and then send to the card.

Yeah, I know that. You need something older than an Audigy for real backwards compatibility.
Well if it wasn't the case, why would you be hearing audio? One thing to keep in mind is all those various cards used their own unique machine codes. Creative kept it simple by using the old machine codes and just adding on to that (I think even from the start they started out with the adlib card machine codes), but if it was another company? Better hope your game supported it.

There's also a million apps out there that will take those machine codes and translate them on the fly into something the MS sound system can do something with. I'm sure you are familiar with stuff like VMsound and so on.

Yes, labelling is misleading, and it's because of the inconsistancy and how each game had to be coded independantly to support these modes.
It's just that actual Soundblaster sound has to come through the usual connectors -- a SB card or similar connected to the right IRQ, DMA, and port -- and, as far as I know, the Live isn't connected to that... and MIDI generally also comes through a port, and I don't know if this has that either... something MIDI obviously can be accessed from DOS, but there are several different ways to access MIDI, so I don't know which it is.

On another note, as I think I've said before, I also have one Windows program (Win 3.1) that has Midi sound and music where that sound and music doesn't work in Vista: SimTower.

Anyway, yeah, I wasn't expecting sound other than PC Speaker audio. I was expecting no SB audio to work. And mostly, that has been the case -- the SB audio in TIE Fighter, Flying Tigers, Raptor, Caesar II, etc, hasn't worked. Only Hexxagon has working sound effects, of the games I've tried so far... which definitely makes me wonder what it does differently.
ABF I think I failed to get the idea across here.

Let's try a primer course on DirectX.

What exactly IS directx? It's an abstraction layer. Well yeah but that's hardly all that clear is it? Look at it this way. In the old days, in order to use a piece of hardware's features, you had to directly access that piece of hardware. For example, if you wanted to use a sound card's feature set, you had to know the ins and outs of that sound card. You had to know it's machine codes. Without those, you couldn't do anything. However, there are other ways. Drivers do take some of the stress out of that. DOS Drivers in particular allow someone to only need to know the specific codes to communicate with the drivers, and the drivers will then communicate with the hardware.

DirectX takes this to another level. (The same with other abstraction layers like OpenGL.) What DirectX does is communicate with drivers and hardware itself. A programmer only needs to know the codes to use directx. Ideally, this means that no matter WHAT hardware the computer has, the programmer's code is exactly the same. Telling the card to play a sound is done entirely by directx and is invisible to the program. It has no idea the card is even there, or what card is there, or how it would talk to one if they saw it. All it knows how to do is talk to directx. Now I said "ideally" because all this does is remove the need to learn machine code and work with drivers, but a programmer still needs to consider computers with different capabilities, hence low and high graphics modes. Sometimes they have to actually ignore directx in a sense and STILL need to design specifically for different hardware, in the sense of optimized code that runs better, but they should almost never have to directly communicate with a piece of hardware.

Now here's the thing. The old MS sound system is a primitive abstraction layer. It allowed a program to communicate with the layer instead of the hardware directly.

What I am saying is this. Anything that tries communicating with that layer, whether it's DOS or whatever, is going to get through. SB Audigy isn't designed for DOS, but all that means is the old machine codes won't work any more. It doesn't mean DOS games can't use the card in a way unrelated to machine codes, and an abstraction layer clears that up perfectly. WINDOWS is what is talking to the sound card, not the DOS game. The DOS game is just talking to the sound system, and then the sound system talks to the sound card. Since the sound system is part of windows, it knows all about the drivers and how to communicate with the card so long as that card is installed correctly in Windows.

I hope I've explained it well enough.
Anyway though, I find it fascinating that Vista doesn't have fullscreen DOS mode because Microsoft removed it, but because NVidia removed it. Well, Microsoft probably encouraged them to, but what other explanation is there for the fact that the basic Microsoft video driver works with fullscreen DOS mode while NVidia's drivers do not?

Also, my point pretty much was that I wouldn't expect a DOS program to be able to see a Windows service. That just doesn't quite make sense... what would it do then running in real DOS mode instead of a window?
It isn't "seeing" a windows service. It's sending out sound data that a windows service understands, and so it does, because it's sending it through the same channels that MS never decided to get rid of since 3.1.

So anyway, yeah "full screen" should not be impossible at all in Windows. That all you need do is mess a bit with registry settings should make that clear. MS should just out and out fully support it and force NVidia's drivers to get that action going. It's not like that legacy is hurting anything. The new modes don't depend on the old modes after all (unlike other legacy).
One part of the problem is very simple.

NVidia removed all resolutions below 640x480 from their Vista drivers.

This isn't the complete answer, because even DOS games that claim to be in 640x480 crash and fail in NVidia drivers, but it's obviously a big part of it. It's impossible to go below 640x480... but virtually all DOS games use a resolution below that.