VOGONS


Dosbox Win95 - disk size 2GB limit hack?

Topic actions

Reply 20 of 66, by gdjacobs

User metadata
Rank l33t++
Rank
l33t++

First option is to boot partition and disk management tools as you would with bare metal. Alternately, you can create a second "drive" as a raw file with the size you want to end up with, mount it in parallel with your existing volume and copy files between them or clone the old drive across.

All hail the Great Capacitor Brand Finder

Reply 21 of 66, by Kisai

User metadata
Rank Member
Rank
Member
ruthan wrote:

Hello,
i have some Win95x image (i think that it is Bochs) for Dosbox too boot Windows95 and play Win95 games on modern computer that is nice, but annoying is that image is only 2GB big, suppose that is some Dosbox filesystem limit,
is possible somehow fix it and use bigger HDD file? I know that i could create multiple files but its annoying.

I was 14 when the original Win95 came out, and it ran on 386's with 4-8MB of ram, and the largest hard drive tended to have was 120MB, MB not GB. I had to reinstall that OS so many times that I memorized the serial number.

DOSBOX is not meant to run Win95, as it's designed to emulate a DOS environment, and thus it has very limited ability to support "booters", such as what would be required to boot an OS like Win95 or OS/2, or even Linux.

The line in the sand for dosbox was drawn at "software that runs under DOS", and it will be exceptionally painful to run anything requiring Windows 95, but there's also nearly no need to run Win95 at all because you can run Win32 programs in Windows XP/Vista/7/8/8.1/10 anyway. For software that is utterly broken on NT, it's usually because of CD copy-protection. There are "glide wrappers" (thanks UltraHLE for driving that need) to make games that use the glide API work on current operating systems. That leaves a few edge-cases that can't run on a current version of Windows.

For alternatives. VMWare Workstation Player gutted the old operating system support several versions ago (only version 5 or earlier.), so it's a pain in the butt to track down.

I'd suggest instead Virtualbox (it's based on QEMU), it emulates a Pentium II/III or intel C2D series grades of hardware, and supports virtualization if you have hardware virtualization support (eg intel i7-4770 non-K) so you use your actual GPU or USB devices in the guest OS.

Bochs is another alternative which also emulates Socket-7 era hardware, but does not do virtualization.

Pick what generation of hardware you really need to emulate.

The original question was about the disk size, and that limitation is imposed by the FAT16 hard drive, and nothing you can do with the original retail version of Win95 is going to fix that. If you really really need to access more disk space I'd suggest instead setting up the networking and have it connect to a SMB share on your real system. You will need to install TCP/IP manually in Win95, and this is beyond the scope of the question.

Reply 22 of 66, by Jorpho

User metadata
Rank l33t++
Rank
l33t++
Kisai wrote:

it has very limited ability to support "booters", such as what would be required to boot an OS like Win95 or OS/2, or even Linux.

When I think "booters", I think of ancient PC software that ran off bootable floppy disks that were not technically DOS – and those work just fine in DOSBox most of the time. So do bootable DOS images.

The line in the sand for dosbox was drawn at "software that runs under DOS", and it will be exceptionally painful to run anything requiring Windows 95, but there's also nearly no need to run Win95 at all because you can run Win32 programs in Windows XP/Vista/7/8/8.1/10 anyway. For software that is utterly broken on NT, it's usually because of CD copy-protection. There are "glide wrappers" (thanks UltraHLE for driving that need) to make games that use the glide API work on current operating systems. That leaves a few edge-cases that can't run on a current version of Windows.

More than a few, really – the big sticking point is Win9x games that require hardware 3D acceleration, and of course the occasional Win16 program designed for Win9x. But wrappers for old versions of DirectX are getting better all the time, and most of those Win16 programs are installers, for which there are convenient replacements.

For alternatives. VMWare Workstation Player gutted the old operating system support several versions ago (only version 5 or earlier.), so it's a pain in the butt to track down.

The "VMware Tools" from old versions of VMware still work just fine in the latest versions, I understand.

I'd suggest instead Virtualbox (it's based on QEMU), it emulates a Pentium II/III or intel C2D series grades of hardware, and supports virtualization if you have hardware virtualization support (eg intel i7-4770 non-K) so you use your actual GPU or USB devices in the guest OS.

You can only virtualize your GPU if your guest OS is Windows 2000 or later. Win9x required too much direct access to the hardware. That's what makes DOSBox with Voodoo emulation unique. (Actually, Bochs also has Voodoo emulation, but not in the downloadable binaries, last time I checked – plus Bochs isn't quite as fast or user-friendly.)

Reply 23 of 66, by leileilol

User metadata
Rank l33t++
Rank
l33t++

VirtualBox's guest additions (required to use the additional virtualization features) only work for XP at the least IIRC. You'll be stuck in VGA for Win9x with no acceleration whatsoever, and on top of that, activating virtualization for the CPU will just GPF it to hell.

There's also the unsaid issue of input locking issues in these virtualization software as they're designed for IT pros dealing with files, spreadsheets, access, databases, security, etcetera... and not gaming, which require locked mice iin the center of their windows in context, less latency on input presses, etc.

Mainline PCem does support Mobile Pentium MMX 300MHz, but you'd really really really need a nice highest of the highest end computer for it (at the time of this writing - sarah's focused on the recompiler optimisations currently). The 3dfx Voodoo software emulation there is much faster than the DOSbox patch too, and it does support harddrive images up to 8GB and running Windows 9X on them. The only real problem is preparing to use it before playing games on it, as it emulates a personal computer 😀 that means for pure dos gaming you'd have to bring your own memory extenders and manage memory and get your sound card working, and you're going to have to fdisk/format either way

Bochs is a popular crapshoot suggestion because of its wide marketing from being very portable, like K-Meleon

apsosig.png
long live PCem

Reply 24 of 66, by Kisai

User metadata
Rank Member
Rank
Member
leileilol wrote:

VirtualBox's guest additions (required to use the additional virtualization features) only work for XP at the least IIRC. You'll be stuck in VGA for Win9x with no acceleration whatsoever, and on top of that, activating virtualization for the CPU will just GPF it to hell.

There's also the unsaid issue of input locking issues in these virtualization software as they're designed for IT pros dealing with files, spreadsheets, access, databases, security, etcetera... and not gaming, which require locked mice iin the center of their windows in context, less latency on input presses, etc.

Mainline PCem does support Mobile Pentium MMX 300MHz, but you'd really really really need a nice highest of the highest end computer for it (at the time of this writing - sarah's focused on the recompiler optimisations currently). The 3dfx Voodoo software emulation there is much faster than the DOSbox patch too, and it does support harddrive images up to 8GB and running Windows 9X on them. The only real problem is preparing to use it before playing games on it, as it emulates a personal computer 😀 that means for pure dos gaming you'd have to bring your own memory extenders and manage memory and get your sound card working, and you're going to have to fdisk/format either way

The entire "center window input locking" often requires a relative mouse feature to be turned on to make it useable for games.

I had a thought about this (disk space question) earlier today and rebuilt the SDL2 r3998 dosbox with the debugger enabled (the dosbox debugger) and installed Windows 95 OEM on a drive image mount and tried to see what I can get to work. It is is a much worse crapshoot than I figured it was.

- I think the best way to actually get Win95 in some kind of "supported" shape would require dosbox to emulate all the needed DOS 7 bits(apparently the -LFN patch adds a bunch of this, but I'm not using that build) win95 actually uses. This at best would let it run in compatibility mode and function the same way Win3.x does. eg, dangerously. That would at least let the MSCDEX in DOSBOX work in theory. When Win95 is in compatibility mode it has poorer disk access, but if you're emulating it on a system that is 100 times faster, probably a moot point. Though I think it would also freak out at seeing disks in the GB size.

- in Auto mode, it looks like the Normal core is used, but Pentium_Slow the Full core is used, the latter seems to crash if the S3 driver is installed, or runs in VGA 16 color mode with no problems. If it's in normal core, the graphics rendering is really messed up.

- I think we're going about this all wrong anyway. If you're going to emulate Win 3.1/3.11 or 95/95B you'd want to install video and sound drivers that communicate with the GDI/x11, DX or openal/opengl api in the host-os and not try to emulate the physical hardware itself.

Seems like it's more difficult to setup Win95 in dosbox than the actual hardware emulators.

As far as games go, I can't actually think of anything that needs Win95 that I have, and I could not get Win95 to a state where it was operable for more than 10 seconds (as soon as the start menu was clicked, several pages of invalid opcode's appeared and then the debugger crashed) Running the same build without the debugger, crashed it in the same place, so *shrug*.

I'm not looking for help with this (I'm guessing there's a load of hacks in the ykhwong-daum build that enables it to function better,) but I think DOSBOX is a long way from ever being able to just run stock Win95 and be able to anything practical with it, so it's probably better to find a wrapper solution (eg dgvoodoo2) if you want to play games.

Reply 25 of 66, by Carlos S. M.

User metadata
Rank Oldbie
Rank
Oldbie

VirtualPC 2007 SP1 can still be used, but you need the VirtualPC 2004 additions and your host OS must be Windows 7 or older

i don't recoemnd VPC2007 for does because it might run too fast depending of your host CPU

What is your biggest Pentium 4 Collection?
Socket 423/478 Motherboards with Universal AGP Slot
Socket 478 Motherboards with PCI-E Slots
LGA 775 Motherboards with AGP Slots
Experiences and thoughts with Socket 423 systems

Reply 26 of 66, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie
Carlos S. M. wrote:

VirtualPC 2007 SP1 can still be used, but you need the VirtualPC 2004 additions and your host OS must be Windows 7 or older

i don't recoemnd VPC2007 for does because it might run too fast depending of your host CPU

Ok, but is there OpenGL support? If yes, would be some glide wrapper working?

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 27 of 66, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie
gdjacobs wrote:

First option is to boot partition and disk management tools as you would with bare metal. Alternately, you can create a second "drive" as a raw file with the size you want to end up with, mount it in parallel with your existing volume and copy files between them or clone the old drive across.

As far as i understand these bochs images is not possible, because this image is one 1 file in dosbox until i boot it and after boot it doesnt see any other dosbox folder of drive, so its not possible, how mounted 2 images, or you would need, mount bochs image inside booted Win95 image.

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 28 of 66, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

I was 14 when the original Win95 came out, and it ran on 386's with 4-8MB of ram, and the largest hard drive tended to have was 120MB, MB not GB. I had to reinstall that OS so many times that I memorized the serial number.

DOSBOX is not meant to run Win95, as it's designed to emulate a DOS environment, and thus it has very limited ability to support "booters", such as what would be required to boot an OS like Win95 or OS/2, or even Linux.

Well i was 11, but i used Win95 until, Windows 98 came out, and at that moment i had bigger that 2 GB, but it doesnt matters.. Technically is Windows until ME / or XP, some GUI above Dos layer.
There is lots of CD games from this era, which had possibility to be installed / run from HDD so 1 game could easily took 500 MB.

Humans also wasnt designed to fly, but we make it.

For Win95-Win98 era, especially for Direct3D and DirectX games is really hard to find some other solution and lots of people is already familiar with Dosbox, so it make sense to do it.
I would glady donate some Dosbox to Winbox upgrade development.

Other idea is multi file image, even in case of vmware could be one virtual machine hdd image splited into multiple files on filesystem.

To be honest, I dont care about original topic, it could be adjusted, i care only about new knowledge.

But ok back to original question, Dos runned quite when on FAT32, why is Dosbox only FAT16 and how can say, how much work would be add FAT32 support?

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 29 of 66, by Serious Callers Only

User metadata
Rank Member
Rank
Member

This is one of those things that unfortunately will never happen without FAT32 image support (and this will still be fragile compared to the punishment that we habitually place on dos games on dosbox or unusuable compared to mounting a local dir as a drive/cd) or some very heroic reimplementation of windows low level apis that might just as well be a new emulator.

There was recently announced a windows 3.11 reimplementation in r/emulation. Personally, i think they have the wrong target. Win95 is much more troublesome to run on emulators. Well, discounting wine, which i don't count being not-portable as it is.

The mismatch problem is that windows 3.11 is still running on top of DOS drivers, and therefore, still running Dosbox/freedos replacements, where windows 95 replaces everything to the point of 'quitting to dosmode' loads its own version of dos in dosbox, not the emulator own. It fully expects to mess with hdd low level details like partitions, fdsk, goddamn scandisk etc, and that is something that can't be stubbed out by dosbox.
Maybe some day there will be a 'windows box' that is as usable for gaming as dosbox (virtualbox/bosch doesn't count imo), but i wouldn't hold my breath with how everyone wants to 'run' windows, not 'reimplement' it.

Ideally, dosbox would figure out a way to present a view of a 'f32 disk image' to windows that is nothing of the sort and fool it when it asks for stuff like cylinders counts to calculate space, ignore its stupidity when it asks to relocate pages with scandisk, boot etc, while underneath it all it's actually a normal filesystem dir that can grow. That would be revolutionary for dosbox. Trouble is, no one never did this, not even virtualbox and others. It sounds harder than it looks and it already looks hard. It might actually require replacements for those and other system executables in windows 95 itself, which is something purists would frown at.
Moreover since a project like this would need both 'halves' one in dosbox the other in windows env compatible system executables that communicate with dosbox on the down-low, its a additional barrier to this happening. It's neither a dosbox project aim to help windows95 run better nor immediately obvious that a person looking to make windows95 system replacement would want to tie his work to dosbox instead of say, virtualbox, with a patch that almost certainly wouldn't be accepted for not being the conservative approach of 'slap bosch image FAT32 support in dosbox for windows to boot and dosbox DOS to ignore' (though as this hasn't happened yet, i doubt it would be smooth sailing either).

Reply 30 of 66, by leileilol

User metadata
Rank l33t++
Rank
l33t++
ruthan wrote:
Carlos S. M. wrote:

VirtualPC 2007 SP1 can still be used, but you need the VirtualPC 2004 additions and your host OS must be Windows 7 or older

i don't recoemnd VPC2007 for does because it might run too fast depending of your host CPU

Ok, but is there OpenGL support? If yes, would be some glide wrapper working?

VirtualPC 2004/2007 has no 3d acceleration of any kind whatsoever.

apsosig.png
long live PCem

Reply 31 of 66, by Serious Callers Only

User metadata
Rank Member
Rank
Member

Btw, just a aside another filesystem thing i've been wanting for a while but lost hope for is dosbox support for mounting a folder as a cd to be extended to support:
1. changing 'cds' <- fundamental, and strangely missing
2. supporting cues for audio files tracks... one of the main reasons to use this is to save space, and saving space means turning audio into mp3/flac. (the other reason is de-duplication, which is MOAR space saving).

Reply 32 of 66, by Jorpho

User metadata
Rank l33t++
Rank
l33t++
ruthan wrote:

As far as i understand these bochs images is not possible, because this image is one 1 file in dosbox until i boot it and after boot it doesnt see any other dosbox folder of drive, so its not possible, how mounted 2 images, or you would need, mount bochs image inside booted Win95 image.

Your posts are very hard to understand.

You can use IMGMOUNT in DOSBox to mount multiple hard drive images on different drive letters, and then use "boot -l <driveletter>" to boot one of the mounted images. So yes, you can have two mounted images.

Serious Callers Only wrote:

There was recently announced a windows 3.11 reimplementation in r/emulation. Personally, i think they have the wrong target. Win95 is much more troublesome to run on emulators. Well, discounting wine, which i don't count being not-portable as it is.

That's actually very intriguing! Win95 might be more troublesome to run on emulators, but then many programs that run in Win95 can be persuaded to run under Windows 7x64 and later. 16-bit Windows programs won't run at all.

Ideally, dosbox would figure out a way to present a view of a 'f32 disk image' to windows that is nothing of the sort and fool it when it asks for stuff like cylinders counts to calculate space, ignore its stupidity when it asks to relocate pages with scandisk, boot etc

DOSBox-X already provides significantly better IDE emulation than standard DOSBox, if you missed it.

Serious Callers Only wrote:

1. changing 'cds' <- fundamental, and strangely missing

You can use the IMGMOUNT command with multiple CD images as arguments, and then toggle between them using CTRL-F4. The same trick works with floppy images, but only in the SVN version.

2. supporting cues for audio files tracks... one of the main reasons to use this is to save space, and saving space means turning audio into mp3/flac. (the other reason is de-duplication, which is MOAR space saving).

This is also already supported, but only for .ogg files. There has been some discussion in other threads about extending this support. (It all ultimately relies on SDL.)

Reply 33 of 66, by Kisai

User metadata
Rank Member
Rank
Member
ruthan wrote:

But ok back to original question, Dos runned quite when on FAT32, why is Dosbox only FAT16 and how can say, how much work would be add FAT32 support?

When you emulate a full machine, you are emulating the raw hard drive geometry. This means emulating LBA. DOS/Win95B needs to actually be able to do a fat32 format of the virtual disk. DOSBOX only gets to install Win95 to the point where it avoids Scandisk, and it's done by intentionally telling the installer to skip that step. DOSBOX's regular mode just translates files from the underlying file system to a virtual filesystem. The imgmount on the other hand emulates drive CHS drive geometry (int13, bios_disk.cpp .)

For Windows to not use compatibility mode, it needs to be able to load it's own disk drivers. You can get away with loading dos himem.sys, emm386.exe, smartdrv, mscdex, and so forth under Win95 because Win95 has this compatibility mode. Most of the time when people upgrade from Windows 3.1 to 95, this is the state their system is left in. So the most logical way of getting Win95 to use a larger disk is to keep Win95 in compatibility mode. DOS-mode boot-sector viruses were one way Win95 was forced into compatibility mode.

https://support.microsoft.com/en-us/kb/130179

MS-DOS Compatibility mode may be in use for any of the following reasons: An "unsafe" device driver, memory-resident program, o […]
Show full quote

MS-DOS Compatibility mode may be in use for any of the following reasons:
An "unsafe" device driver, memory-resident program, or virus hooked the INT21h or INT13h chain before Windows is loaded.
The hard disk controller in your computer was not detected by Windows.
The hard disk controller was removed from the current configuration in Device Manager.
There is a resource conflict between the hard disk controller and another hardware device.
The Windows protected-mode driver is missing or damaged.
The Windows 32-bit protected-mode disk drivers detected an unsupportable configuration or incompatible hardware.
You are running Windows Millennium Edition (Me) and have used Drive Copy 2.0 by Powerquest to copy the contents of one hard disk to another hard disk.

https://support.microsoft.com/en-us/kb/126855

Windows 95 and Windows 98 support the use of Integrated Drive Electronics (IDE) hard disks that are larger than 504 MB (1024 cyl […]
Show full quote

Windows 95 and Windows 98 support the use of Integrated Drive Electronics (IDE) hard disks that are larger than 504 MB (1024 cylinders) by using any one of the following methods:
ROM BIOS support for INT13h extensions (for example: Logical Block Addressing, or LBA).
Hard disk bus adapter (hard disk controller) support for INT13h extensions (for example: LBA)
Using only the first 1024 cylinders of the drive
Real-mode driver support for geometry translation
In addition, the Windows 95 and Windows 98 protected-mode IDE disk driver (Esdi_506.pdr) is used to provide 32-bit disk access when you use any of the first three methods in the preceding list. When you use a real-mode driver to provide geometry translation, 32-bit disk access is provided by Esdi_506.pdr only if you use version 6.03 (or later) of the OnTrack Disk Manager XBIOS drivers. For more information about or assistance with Disk Manager, please contact OnTrack Technical Support.

Microsoft's own documentation points out the problem.

This also again goes back to why a virtual machine (eg bochs, VirtualPC, VirtualBox, VmWare, etc) are better solutions, because they emulate hardware. DOSBOX emulates an x86 PC DOS. When it boots an image it no longer emulates the DOS part, only the BIOS and other hardware (Eg Sound Blaster, S3 Video card) thus the mount commands and cd-rom extensions are no longer possible.

Reply 34 of 66, by DosFreak

User metadata
Rank l33t++
Rank
l33t++
Serious Callers Only wrote:

Ideally, dosbox would figure out a way to present a view of a 'f32 disk image' to windows that is nothing of the sort and fool it when it asks for stuff like cylinders counts to calculate space, ignore its stupidity when it asks to relocate pages with scandisk, boot etc, while underneath it all it's actually a normal filesystem dir that can grow. That would be revolutionary for dosbox. Trouble is, no one never did this, not even virtualbox and others. It sounds harder than it looks and it already looks hard. It might actually require replacements for those and other system executables in windows 95 itself, which is something purists would frown at.
Moreover since a project like this would need both 'halves' one in dosbox the other in windows env compatible system executables that communicate with dosbox on the down-low, its a additional barrier to this happening. It's neither a dosbox project aim to help windows95 run better nor immediately obvious that a person looking to make windows95 system replacement would want to tie his work to dosbox instead of say, virtualbox, with a patch that almost certainly wouldn't be accepted for not being the conservative approach of 'slap bosch image FAT32 support in dosbox for windows to boot and dosbox DOS to ignore' (though as this hasn't happened yet, i doubt it would be smooth sailing either).

If/When Dosbox (or a fork) officially supports 9x it would only be using an image as it does currently. Host file access would be via shared folder similar to VirtualPC or NE2000 support. There is no reason to have file system access similar to how DOSBox currently does it for Windows 9x in DOSBox.

*The above statement is my own and not to be taken as anything to do with future plans of DOSBox.

How To Ask Questions The Smart Way
Make your games work offline

Reply 35 of 66, by Jorpho

User metadata
Rank l33t++
Rank
l33t++
DosFreak wrote:

There is no reason to have file system access similar to how DOSBox currently does it for Windows 9x in DOSBox.

Sure there is – manipulating disk images is awkward and inconvenient. (Unless maybe if you pay for Winimage, which unfortunately isn't free.)

Reply 36 of 66, by collector

User metadata
Rank l33t
Rank
l33t

Winimage can be downloaded and used for free it, but it is limited until you buy it and get a registration number. I forget what those limitations are.

The Sierra Help Pages -- New Sierra Game Installers -- Sierra Game Patches -- New Non-Sierra Game Installers

Reply 37 of 66, by gulikoza

User metadata
Rank Oldbie
Rank
Oldbie

VHD images can be mounted in Windows 7 & up without any additional software. I've written a patch to add support for VHD in DOSBox. There's also a patch in DOSBox-X to support qcow2 images...

Image handling can therefore be improved a lot.
There's literally no way Win9x could run off host mounted directory as DosFreak said.
There are also some patches floating around to get above 2 GB and even 8 GB limit. I've personally played with 12 GB image in DOSBox 😀

http://www.si-gamer.net/gulikoza

Reply 38 of 66, by Jorpho

User metadata
Rank l33t++
Rank
l33t++
gulikoza wrote:

There's literally no way Win9x could run off host mounted directory as DosFreak said.

Well, you could conceivably write something that effectively copies the host-mounted directory into a temporary disk image – but that would get ugly and kludgy.