joncampbell123 / dosbox-x

DOSBox-X fork of the DOSBox project
GNU General Public License v2.0
2.6k stars 375 forks source link

How to get 1366 x 768 resolution on Windows 95/98/ME #1187

Open WindowsNinetyTen opened 5 years ago

WindowsNinetyTen commented 5 years ago

Is there a way to get 1366 x 768 resolution on Windws 95/98/ME and use 32-bit color at the same time?

joncampbell123 commented 5 years ago

That's up to the S3 driver what resolutions are supported. Additionally video modes are limited by video memory. S3 emulation maxes out at 8MB and I think the Win95 drivers may max out at 4MB.

joncampbell123 commented 5 years ago

You might try the VBEMP driver, since DOSBox-X does offer 1280x720 through the VESA BIOS

joncampbell123 commented 4 years ago

You might be able to get 1366x768 in Windows 95 if you run VESAMOED to change one of the VESA modes before booting Windows 95.

For example, you could re-use mode 0x100 (640 x 400 x 256-color) to represent 1366 x 768:

VESAMOED -mode 0x100 -fmt LIN8 -w 1366 -h 768

Then use the VBEMP driver which should pick up on the mode and offer it as a choice.

KormaX-of-DOS commented 4 years ago

How to get this work without Windows? I have Intel Sandybridge/Ivybridge Graphics Chipset A that offers 381-383 VESA modes automatically and DOS programs can use it as any other mode. You said my issue about doing the same inside your program is a duplicate of this, but how do I actually access these modes after initializing Dosbox-x? Programs that see this mode in real DOS, don't see it inside your program.

KormaX-of-DOS commented 4 years ago

@emendelson Intel Sandybridge/Ivybridge Graphics Chipset A. Not only it work'ed', but it work's', in present tense, and it is used by modern DOS programs, such as Links browser, Pixel32 image editor, and I even use Jonathan Campbells DOSBox-X in this mode with HX extender as HXGUI ia also able to utilize these modes. It is supported by the old SEA image viewer program but even Blood can (partially) take advantage on it.

joncampbell123 commented 4 years ago

@KormaX-of-DOS In the issue I linked to I mention that there is an open source video driver for Windows 9x/ME called VBEMP that uses the VESA BIOS extensions to provide working SVGA modes. DOSBox-X can be configured to offer 1366x768 as a VESA BIOS mode and therefore VBEMP should offer it to Windows as an option.

KormaX-of-DOS commented 4 years ago

I see. It still doesn't work for my main purpose, but it's not your fault. Thanks for implementing this, because it's still very useful. Unfortunately my goal to display the VESA frame saved into a file from real hardware inside DOSBox-X doesn't work because I suspect VideoThief saves a bitwise data including just about everything including the LFB enable bit, and if it's not the same, it won't use bank switching, but simply exits with an error message. It's my job now to investigate the files in question and find another way to save a bitmap. Thanks for your help.

WindowsNinetyTen commented 4 years ago

DOSBox-X can be configured to offer 1366x768 as a VESA BIOS mode and therefore VBEMP should offer it to Windows as an option.

Would that be done using the dosbox.conf file?

joncampbell123 commented 4 years ago

Yes. You'll need to set the width/height limits to zero, enable "HD" modes and nonstandard modes, and increase vmemsize to do it.

WindowsNinetyTen commented 4 years ago

Where are the nonstandard modes?

joncampbell123 commented 4 years ago

Look in the [dosbox] section for the allow ... vesa modes.

The nonstandard modes are called "unusual".

Enable the unusual modes and the HD modes and set the width limit and height limit to 0 to disable the limits.

WindowsNinetyTen commented 4 years ago

Okay. I also got an idea about a "DOSBox-X Tools" thing, similar to VMWare Tools and VirtualBox Guest Additions.

WindowsNinetyTen commented 4 years ago

However, I enabled the unusal and HD modes and set the width limit to 0, but when I try to increase the resolution on Windows 98, the colors still go down to 256 colors.

joncampbell123 commented 4 years ago

Adjust the vmemsize setting to increase it, which is in megabytes. Sizes supported are 1, 2, 4, and 8. 16 is supported as well though only for use through the VESA BIOS. 16 megabytes is a hack that may not be compatible with Windows and Windows 3.1 is known to handle it poorly because S3 cards/chipsets of that era did not have that much video RAM.

WindowsNinetyTen commented 4 years ago

Okay. I was talking about both 1366 x 768 resolution and 32-bit color at the same time. However, the resolution still goes down colors as it's increased. And yep, you're right about Windows 3.1, because with the aforementioned settings, is the cursor just a black box which doesn't work.