VOGONS

Common searches


Minimal install for DOSBox/95 gaming

Topic actions

  • This topic is locked. You cannot reply or edit posts.

First post, by truth_deleted

User metadata

A FAQ describes a method to remove setup components from the Win95 versions, and suggests a final 95 footprint of 18 megabytes (mb). The key is to edit "SETUPPP.INF" and "LAYOUT.INF", and remove lines such as MOS.INF, OHARE.INF, and MSMAIL.INF (Exchange client); next, modify line in LAYOUT.INF: setuppp.inf=0,,xxxx where xxxx is the file size of setuppp.inf (4200 in my case); both modified files are then moved to the Win95 installation directory (c:\win95). Also, DirectX6.1 (Intl. version) is an important addition for 95 gaming. After installation, win95 could be further reduced in size by removing unnecessary files (inf and system backup files), some may require edits to win.ini and system.ini. My attempt at this procedure, before deleting additional files, is ~40mb of files (95 retail version).

With Codeholio's ATAPI emulation, the CDROM drive is available within a patched DOSBox along with CD audio. Also, the Explorer could be replaced with WinFile or even a Console with access to batch files -- this would streamline an installation to one or a few games. Another option is to install one game in this minimalist version of 95, then have the game start automatically via autoexec.bat, whether directly or via a batch file. The user would then have the game fully integrated into DOSBox/95. Safe mode would be available by F8 to make any edits to the game files or solve 95 or game specific problems.

Here is a tentative and brief procedure to installing Win95 in a patched DOSBox:
Obtain "Bootable_1.44M.img" from 95 CD
Copy CD directory /Win95 to DOSBox disk image which includes the 2 modified INF files
Also, copy DirectX6.1 and S3 driver to image; S3 driver is obtained by my thread on S3 emulation
Mount both floppy and disk image in DOSBox configuration file (IDE & ISA-PnP off)
Boot to above floppy image (DOS 7.0); Change to drive c:; cd /win95; setup /nm /is
Choose only necessary components (audio/video compression; volume)
Choose (CDROM and) Sound as devices to find
After 1st reboot, enter safe mode and remove S3 display adapter
On next reboot, select no to reboot after it automatically installs a S3 driver
Instead install the S3 driver previously copied to image
Install DirectX6.1 (do not enable updating of other drivers)
Optional: copy Voodoo1 driver to image and install; same for 95 SP1
Include mscdex and oakcdrom drivers in startup files to enable CDROM via ATAPI emulation

Note: there is a PCI driver replacement (PCIIDE.VXD) on the 95 retail CD. This file replaces the PCI.VXD driver to fix a particular issue with the controller; the README file suggests that it uses a minimal amount of resources to accomplish the fix. It may be worth testing this driver in lieu of the default (only requirement is the file replacement).

Compressing disk image: dd (available for win32) can write zeroes to a file on the disk image where the image is mounted as a drive in the host OS. This allows for maximal compression by 7zip; using normal compression, reduced above 95 image to ~20mb.

Reply 1 of 101, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

Did some research awhile back:

3.1
http://www.reocities.com/politalk/win31/slimwin.htm
http://www.4shared.com/file/jZrebPQi/Mini-Win … _Add-On_fo.html
http://arstechnica.com/civis/viewtopic.php?f=15&t=715755

Windows 95
https://web.archive.org/web/20031003220716/ht … t/V6/?postid=52
http://www.reocities.com/politalk/win95/ramwin.htm
https://web.archive.org/web/20030803064537/ht … rinkingwindows/

Windows 98
http://www.xxcopy.com/xxcopy81.htm
http://www.msfn.org/board/topic/140391-window … project-update/
http://hi.baidu.com/hihiworld/item/dcfa3a4e156cef97833ae19e
http://win98livecd.winbuilder.net/index.php?d … r=compressed%2F
98lite http://www.litepc.com/

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

Reply 2 of 101, by truth_deleted

User metadata

Thank you for the insightful information. 😀

I attached a modified SB16 driver for patched DOSBox/95, too; working in 95a, but not known whether required for 95b or higher. Like the S3 driver, both were obtained from your 9x Guide and excellent identification of working drivers.

Attachments

  • Filename
    SB16-DOSbox.zip
    File size
    159.72 KiB
    Downloads
    676 downloads
    File comment
    SB16 driver for DOSBox/Win95a
    File license
    Fair use/fair dealing exception

Reply 3 of 101, by Jorpho

User metadata
Rank l33t++
Rank
l33t++

I've often wondered: just how much of a Windows installation isn't just files copied right off a CD?

Given that every Win9x installation in DOSBox will be running in the same virtual environment, might it be feasible to just write a script that extracts the needed files and then throws in whatever registry and configuration data is needed?

(I'm assuming there's some very good reason this hasn't already been done in the many years that people have been dealing with virtual machines, but I don't know what that reason would be.)

Reply 4 of 101, by truth_deleted

User metadata

One of the links above describes a separate script to install a minimal version of 95, showing a case example. Also, with sufficient testing among different installations, then we will know better which files and registry settings are necessary for a given set of games. It could be worked on now, but it would require others to verify with different games. Another major issue will be standardizing on a dosbox binary. I have binaries which boot a particular 95 install where another build will not.

Reply 5 of 101, by Jarvik7

User metadata
Rank Newbie
Rank
Newbie

Spent a day at work throwing an image together in dosbox svn-daum.
-Win95C
-Plus!95 (only the visual enhancements like full window drag and nicer icons)
-DirectX 8.0a (last version that runs on 95)
-Latest official Voodoo drivers for 9x
-SB16 drivers (built in ones caused a blue screen on boot)
-Useless stuff (IE, MSN, MSMail etc.) stripped out

Together with a copy of the Win95C install files on the disk, the whole 2gb hdd image compresses down to about 200mb with 7zip.
Windows folder itself is about 67mb (was 27mb without directx). I could probably get it smaller but there is no point really.

Current problems:
-Some of the audio tests in dxdiag are heavily distorted. All sound I've encountered in apps otherwise is fine. Maybe fixed with other SB16 drivers.
-Opening a DOS box corrupts the screen and it never recovers (system still otherwise runs but its unusable) - can maybe be fixed by using non-MS drivers for the S3 video. DOS box functionality isn't really needed in any case and I may just totally strip it out to just what's needed to launch Windows.
-IDE controller has a (!) in device manager - using compatibility mode. Can fix with drivers?
-Haven't actually tried out any games yet, as I'm at work.
-No CDROM

Trying out WinME right now, but I can only get it working in safemode. Regular boot crashes dosbox with pagefault overflow. Caused by pnp?

Reply 6 of 101, by Jorpho

User metadata
Rank l33t++
Rank
l33t++
Jarvik7 wrote:

Spent a day at work throwing an image together in dosbox svn-daum.

If you want to tinker with this, you will probably want the latest patch from DOSBox-X branch . (I'm not sure how up-to-date the version included in the latest SVN Daum is.) There has already been much discussion there about pagefault issues.

Reply 7 of 101, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

Jarvik,

It's not so much the filesize (although that is a factor too). It's about gaining the maximum performance possible while still retaining the ability to play games. Of course the cost benefit ratio is pretty high but if someone is bored enough to automate the process (and it's already been done several times over as evidenced above) then everyone can benefit.

Heck I'm running Windows 8 in a VM on my work laptop in virtualbox (because my fancy personal laptop is bricked) and this thing crawls due to how slow this computer is (mostly due to the POS HD) but I can guarantee if I was running 2000/XP in a VM it would be much faster.

It's the same with 9x. Back in the day 95/98 was dog slow which is why everyone complained when IE was integrated which made it even slower and why people hacked 9x to make it faster.

The same with the micro installs of XP+ OS's and officially by Microsoft with their XP+ embedded line.

Frankly as a working adult I've just thrown money at the problem by buying better hardware but in most of cases people can't do that and due to how DOSBox emulation works (dynrec instead of vt-x\amd-v) that isn't going to do much anyway until or if???!! the speed of processors increase significantly.

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

Reply 8 of 101, by Jarvik7

User metadata
Rank Newbie
Rank
Newbie

If the goal is simply for speed, nothing as complicated as a script is needed. All you need is a setuppp.inf posted without any of the cruft. If you pad that to 4550 bytes (for Win95C anyways), you don't even need to extract & edit layout.inf. All the little complicated things like drivers need to be done after first boot anyways, and will be made less necessary as dosbox emulation improves. Those linked filelists are about just making the thing as small as possible, regardless of speed (UPX the binaries etc), and the end result is not very usable.

Any speed improvements beyond not having IE etc. installed will come through hand tweaking the configuration. This would be easier done by sharing some .reg files with the setuppp.inf. That said, on my crappy work Dell core i5, win95 runs super fast anyways, so I don't think anything beyond setuppp.inf is really necessary barring any specific problems with certain games.

If anyone is interested I can paste my setuppp.inf up somewhere. There are probably a few more items that can be removed. For example, I didn't touch anything for networking.

Last edited by Jarvik7 on 2013-12-18, 02:08. Edited 1 time in total.

Reply 9 of 101, by truth_deleted

User metadata

Those are very good additions to establishing a minimal 95 installation (padding setuppp.inf and preparing a .ref file, perhaps also win.ini). Also, if there aren't many modifications to setuppp.inf, then perhaps a list of the removed components would be more concise than showing the entire file.

There is a point where too small a 95 footprint will eliminate function, however, I believe this a worthwhile task. One major reason is that it makes the OS simple and it would be easier to swap files among the different 95 versions (if this is truly possible) and then test the result. Also, if MS Mail and IE4 are not installed, then it may be that the page fault overruns are less frequent where IDE emulation is active. Having a minimal gaming installation will control for problems resulting from unnecessary components, leaving just the game and core OS as remaining factors. Same with the drivers.

As gulikoza also noted earlier, we have a stable 95 configuration where running a set of games. I have rarely had errors unless running particular components, patches, or untested drivers. I am optimistic on this front because "DOSBox Turbo" has offered compatibility with many 95 games over the past several months, and I haven't heard of major problems (for example, a youtube video shows a Jedi Knight playthrough for a long time without error). If the Android/ARM platform works somewhat reliably, then the Windows/x86 platform should certainly exceed that.

Reply 10 of 101, by Jarvik7

User metadata
Rank Newbie
Rank
Newbie

I've not actually gotten any pagefault errors in Win95C (just WinME).

At this point I've removed well over 20 items from inside setuppp.inf, so hard to write what exactly I've removed.

Here it is:
http://pastebucket.com/23342

I'm sure more can be removed (net stuff particularly), but this works fine and custom installs to a c:\windows of about 27mb. The only thing I had to do was manually copy riched32.dll to windows/system/ after installing DirectX8 so dxdiag would start. I think it normally gets installed with wordpad. If anyone knows any other items that can be safely removed (and has tested it), let me know.

Reply 11 of 101, by truth_deleted

User metadata

I was wrong, it is best, as you suggested, to include the entire file since it will be padded to the expected size. 95a seems to work best with the IDE emulation and where navigating the Windows shell; however, 95b+update and 95c have the added capacity of >2gig partition size and installment of D-Tools. I haven't yet determined whether 95(b or c) are as reliable and responsive as 95a; it would be ideal to fully test both versions (a and b/c).

I believe a lot of files can be removed from the /inf directory. That would be the next simple target, if necessary. Also, I would use DirectX6.1 as linked to in the parent post, and DirectX7 if necessary. I don't recommend DX8 since a rare game will require that and work in the current patched DOSBox; also, DX8 will have a larger footprint and its newer files may bring along compatibility problems for the (older) V1 and S3 emulated cards, at least for initial testing.

I've noted the missing riched32.dll file, too; it must be part of Wordpad, but dxdiag could be eventually excluded, at least for typical use, from the minimal OS since it has other problems than mentioned above (for example, the exit error).

Reply 12 of 101, by Jarvik7

User metadata
Rank Newbie
Rank
Newbie

For now I think it would be better to focus on carving out big chunks from setuppp.inf. After that it's a case of diminishing returns.

Removing single files (like unused driver infs, wallpapers, etc.) should be done by editing the individual infs that copy them to the install folder, rather than hand-deleting them. The setup program always looks in /WIN95/ before checking the cabs, regardless of what layout.inf says, so tools for a minimal setup can be distributed as a set of 10 or so inf files total. Any needed dlls like riched32.dll can be re-added to an inf we didn't strip.

The next step after that would be slipstreaming directx/other drivers and maybe defining an automated install profile so the user doesn't have to do anything other than type setup and wait.

Reply 13 of 101, by truth_deleted

User metadata

Those are all great ideas to create (and communicate) a minimal OS installation, especially to slipstream the extra components. I still wonder which OS is best for a minimal setup (in other words, most stable): 95a or 95b/c; also, 95c is not readily available, but 95b with the USB update should be nearly equivalent.

I see now that identifying the setuppp.inf packages and the other setup .inf files are important for knowing which components are easily discarded.

Reply 14 of 101, by truth_deleted

User metadata

Attached is a patch against "setuppp.inf", the setup installation file for 95b (OSR2); it prevents installation of "unnecessary" components, although the MS-DOS prompt is not working yet in 95 (reason unknown). It is an expansion of the work by Jarvik7. Tested GLQuake as working. Windows directory is ~29mb, but 32mb with V1 driver. Suggest installing DirectX6.1 as linked to in parent post. Installation size (without swap file) will probably be ~40mb and the compressed disk image ~20mb (see parent post; 95a has similar size).

These are 95b specific instructions, although the parent post provides a guide for installing DX6 and copying drivers to the disk image:
Use patched DOSBox and disable isapnpbios and IDE emulation
Copy OSR2 \WIN95\ to Hard Disk Image, also include the modified setuppp.inf and SB16 driver for DOSBox (driver attached above)

^ Mount floppy disk image from 95 CD-ROM and mount HDD image; boot floppy image
^ Run setup from HDD image; choose custom add Windows components
^ "Specify which devices to install": only select display, keyboard, mouse, sound
^ Components: select Audio compression, Volume Control
^ Don't install any network components
^ Change S3 to S3 Trio32/64 PCI
^ Also, unselect "Ad Lib" and "Soundblaster" from search; however, if not, and "blue screen" on reboot, then boot into safe mode and remove "Ad Lib Gold Compatible" and "Soundblaster"
^ Manually add the sound device using the driver posted on this thread and choose "Creative SoundBlaster 16 or AWE-32"; on reboot, enter device manager and select "automatic configuration" under the resources tab for this device
^ Optionally, install Voodoo1 driver (+4mb) and increase video color depth to 16-bit

Add line to msdos.sys under [Options]: AutoScan=0
-disable "read only" attribute of file before adding above line
Add line to system.ini under [vcache]: maxfilecache=6144

Attachments

  • Filename
    setuppp.diff
    File size
    5.36 KiB
    Downloads
    386 downloads
    File comment
    setuppp.inf patch
    File license
    Fair use/fair dealing exception

Reply 15 of 101, by Jarvik7

User metadata
Rank Newbie
Rank
Newbie

Looks like the setuppp.inf for B and C are the same. Actually, I noticed that the setuppp.inf in the precopy2 cab from C actually says version B, but it never gets read because there is already one in /WIN95/.

I see you've cut out a bunch of the net* files. On my first attempt I cut them all out but got errors about missing files after booting. This one has no problems?
I see a few other infs that are worth trying to cut, such as winver and wordpad. Maybe net can get cut down more too. I'll try it out tomorrow.

Reply 16 of 101, by truth_deleted

User metadata

I noted, too, that B and C have nearly the same setuppp.inf file. However, C has a line for "localea.inf", while B has "locale.inf".

I verified that the removal of the net* files hasn't caused any obvious errors during booting. I also verified the function of the removed .inf files by scanning the files in the .CABs. That is a good idea to remove those additional components, too.

Using the proper S3 driver from the "S3 emulation" thread will fix the 95 DOS box problem mentioned above. 😀 I recall that these S3 drivers are having the same impact on 95b as in 95a (which is good news).

DirectX6.1 installed in this minimal 95b installation. While installing, chose option to not change the video, audio, or V1 drivers. Windows directory now totals a bit over 40mb (have to test installation of D-tools next).

Reply 18 of 101, by truth_deleted

User metadata

Updated procedure for 95b/gaming installation:

Set dosbox.conf so IDE emulation and ISA-PnP is off
Obtain "Bootable_1.44M.img" from 95b CD-ROM and hard disk image (geometry for that 2gb image is: 512,63,64,1023)
Mount floppy and hard disk image via dosbox.conf
(hints: imgmount 0 c:\dosbox\dos7.IMG -fs none -t floppy; imgmount 2 c:\dosbox\win95b.img -fs none -size 512,63,64,1023)
Boot to floppy image (boot -l a) and run fdisk (choose Y for large disk support) and "format c: /s" to create a fat32 partition on the HDD image
Copy CD directory /Win95 to DOSBox disk image which includes the modified setuppp.inf file (hint: OSFmount for win32 allows file copy between disk image and host drive); attached latest patch for the modified setuppp.inf file.

Boot to floppy image, change to hard drive c: to install; cd /win95; setup /nm /is

During install, choose "No, I want to modify the hardware list", select: display, keyboard, mouse, sound, but then unselect "Ad Lib" and "Soundblaster"; also, under "Computer Settings" during Setup, choose "Change..." to modify Display from S3 to S3 Trio32/64 PCI (will change driver yet again once fully installed)

Install only these components: audio/video compression; volume control

Install drivers specified for patched DOSBox: this S3 (Update driver via System Properties), this SB16 (via "Add New Hardware" but it will install an incompatible, built-in driver; after SB16 error, reboot into safe mode and update it as per hint below), and Voodoo1 (via System Properties).

(hint: to manually install recommended SB16 driver: Add New Hardware and answer No to Windows searching for hardware, next choose Other devices, click "Have disk...", browse to SB16 driver directory, and then choose "Creative Sound Blaster 16 or AWE-32".)

Install DirectX6.1 but do not install new driver for audio, video, or sound; reboot and increase display color depth to 16-bit

95b Windows directory ~43mb, includes all above drivers and components.

Add line to msdos.sys under [Options]: AutoScan=0
-first, unhide files in Explorer properties
-second, disable "read only" attribute of file before edit
Add line to system.ini under [vcache]: MaxFileCache=4096
Edit Resource properties for Joystick device: change to "Basic Configuration 0" so I/O port is at 201 - 201.

To install D-Tools 3.47 (CD eject and audio functions) in this minimal 95 gaming installation, the following are required: copy riched32.dll from WIN95_05.CAB to /WINDOWS/SYSTEM; add new hardware device "Microsoft MCI CD Audio", the USB supplement update; the Installer 2.0 patch (InstMsiA.exe); and IE4. Ensure the S3 driver is installed according to above.

With D-Tools and required updates, 95b occupies ~80mb on disk (maximal 7zip compression reduced size to ~25mb).

(If any DMA errors from order of driver installation, such as from SB16 on non-standard IRQ, then: via System Properties, restrict the settings for the "Direct memory access controller" device: Reserve 64k for DMA buffer and Restrict DMA transfers to below 16mb; also turn off Use IRQ Steering on PCI "bus" device. Another solution is to uninstall SB16, reboot, and then search for it via Add New Hardware.)

Attachments

  • Filename
    setuppp_v2.diff
    File size
    5.77 KiB
    Downloads
    429 downloads
    File comment
    setuppp.inf patch (version 2)
    File license
    Fair use/fair dealing exception

Reply 19 of 101, by Jarvik7

User metadata
Rank Newbie
Rank
Newbie

I've taken your diff of my initial setuppp.inf and cut it down even further. I'll post up a copy once I'm done toying with it.
Either multilng or locale or both are required. Stripping them both out made first boot get stuck saying "path is too long".

Presently my windows folder is 27.1mb without adding on the 3rd party drivers.
After a bit of hand deleting I got it down to 24.4 without losing anything important.

For DTools, are you sure IE4 is required? That makes a lot of the effort stripping out cruft for naught. DTools might be complaining without need, or maybe it can be shut up with a few DLLs instead of a full install.

-Update-
Just took a look at your newer diff. I see you added the MFC dll back in. Was this required by something? In any case, you can add riched32.dll below that in the same section and it should get copied automatically, saving a manual step in the install.

-Update2-
It looks like setuppp.inf doesn't need to be padded! I just successfully installed with a 4505byte sized inf. It looks like all the guides on the internets are wrong or only apply to win95a.

Last edited by Jarvik7 on 2013-12-20, 07:19. Edited 2 times in total.