VOGONS


First post, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t

Most of the Windows programs released before 2000s checked the availability of Windows 95/98/ME. This was usually done to ensure that the product was run on a consumer Windows rather than Windows NT which was supported limited things at the time.

In the present day, executing these installers requiring the check of Win9x can be difficult. InstallShield installers execute a different file rather than the main executable to launch the installation process, but setting compatibility mode on a non-executable directly is difficult. Still there are different ways in which you can install those programs:

  1. Easiest: Inherit compatibility mode through a different application

    Works up to all versions of Windows till Windows 10 and occasionally on Windows 11 21H2 (because of bad EmulateHeap shim)

    This works by setting a Windows compatibility mode on another application, such as the autorun application. Use that application to launch the setup file. The compatibility settings that are set in the autorun application is inherited over to the installation process.

  2. Most reliable: Using a batch script

    The batch script was accumulated by SourceForge user @dippy-dipper2. It has been improved and available here. This is the most reliable way because it doesn't rely on another application to execute the main setup program, neither requires the necessity to apply compatibility mode on any program.

  3. Most advanced: Using isfixload on OTVDM

    This is applicable on 16-bit InstallShield processes only. This tweak works by applying the Windows 95 compatibility mode on itself. More information is here.
Last edited by BEEN_Nath_58 on 2026-01-10, 18:14. Edited 3 times in total.

previously known as Discrete_BOB_058

Reply 1 of 10, by MANI

User metadata
Rank Newbie
Rank
Newbie
BEEN_Nath_58 wrote on 2023-06-26, 05:58:
Most of the Windows programs released before 2000s checked the availability of Windows 95/98/ME. This was usually done to ensure […]
Show full quote

Most of the Windows programs released before 2000s checked the availability of Windows 95/98/ME. This was usually done to ensure that the product was run on a consumer Windows rather than Windows NT which was supported limited things at the time.

In the present day, executing these installers requiring the check of Win9x can be difficult. InstallShield installers execute a different file rather than the main executable to launch the installation process, but setting compatibility mode on a non-executable directly is difficult. Still there are different ways in which you can install those programs:

  1. Easiest: Inherit compatibility mode through a different application

    Works up to all versions of Windows till Windows 10 and occasionally on Windows 11 21H2 (because of bad EmulateHeap shim)

    This works by setting a Windows compatibility mode on another application, such as the autorun application. Use that application to launch the setup file. The compatibility settings that are set in the autorun application is inherited over to the installation process.

  2. Most reliable: Using a batch script

    The batch script was accumulated by SourceForge user @dippy-dipper2 and is available here. This is the most reliable way because it doesn't rely on another application to execute the main setup program, neither requires the necessity to apply compatibility mode on any program.

  3. Most advanced: Using isfixload on OTVDM

    This is applicable on 16-bit InstallShield processes only. This tweak works by applying the Windows 95 compatibility mode on itself. More information is here.

The batch script by @dippy-dipper2 is a lifesaver! It’s especially useful for installers that refuse to launch even with compatibility settings. Just make sure to run the script as administrator. I’ve used it to install some old productivity tools that wouldn’t work otherwise.

Reply 2 of 10, by willow

User metadata
Rank Member
Rank
Member

How use the batch script ? I don't understand how do.
Thanks by advance

Reply 3 of 10, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t
willow wrote on 2025-04-28, 20:20:

How use the batch script ? I don't understand how do.
Thanks by advance

Save the code as a batch file and execute it

previously known as Discrete_BOB_058

Reply 4 of 10, by filipetolhuizen

User metadata
Rank Oldbie
Rank
Oldbie

Windows version lie shim can be used without full OS compatibility mode by using MS Application Compatibility Toolkit. It can be found on the Windows ADK package.

Reply 5 of 10, by MustiFB82

User metadata
Rank Newbie
Rank
Newbie

I have a question, Does Windows 98SE supports 1 GB ram or not? Because I have received computer which has ATI 9550 GP with 256 MB and 2GB RAM,80 GB HDD. It has Windows XP but I want to use ME or 98SE for software usage.

They say Windows 98/ME/2000 has only 512 MB support but some users have more than 1 GB. Will I have any problem when installing fresh Win98SE/ME?

And mainboard has 2 slots with 1 GB RAM with ddr 400 pc3200 each.(2x1 GB=2 GB) If I use one 1GB only, how will it effect perfomance?

Reply 6 of 10, by filipetolhuizen

User metadata
Rank Oldbie
Rank
Oldbie

I remember installing Win98SE on a 1GB machine successfully, but didn't test it properly due to the lack of essential drivers (they became available later, but I had already moved to XP). There is also a collection of patches to address issues running Win9x with 1GB+ of RAM which can be found elsewhere on this forum.

Reply 7 of 10, by chinny22

User metadata
Rank l33t++
Rank
l33t++

Win98/ME doesn't make use of more than 512MB but does work with 1GB.
Depending on the system it may need some hacks like the Rloew PATCHMEM.exe
You can install windows and only install the patch if you get errors.

Win2k will support upto 4GB no problem.

If you're running Win98 I doubt you will notice any speed penalty for not running ram in pairs

Reply 8 of 10, by Audiovid3o

User metadata
Rank Newbie
Rank
Newbie
MustiFB82 wrote on 2025-12-05, 13:43:

I have a question, Does Windows 98SE supports 1 GB ram or not? Because I have received computer which has ATI 9550 GP with 256 MB and 2GB RAM,80 GB HDD. It has Windows XP but I want to use ME or 98SE for software usage.

They say Windows 98/ME/2000 has only 512 MB support but some users have more than 1 GB. Will I have any problem when installing fresh Win98SE/ME?

And mainboard has 2 slots with 1 GB RAM with ddr 400 pc3200 each.(2x1 GB=2 GB) If I use one 1GB only, how will it effect perfomance?

There are patched installers of windows 98 se that allow for you to have higher than the 512mb limit of ram

Reply 9 of 10, by yliopp Larvanto

User metadata
Rank Newbie
Rank
Newbie

There is a serious limitation in the original batch script in that if the folder path or filename contains spaces it will fail to run.

To remedy this you can edit the line:

start %%~I

into:

start "" "%%~I"

Here is the modified batch in full:
(I also added a color change if permissions are inadequate "color cF". Although one could also add a little bit more complexity to the batch file to make it self elevate too...)

<# : win95lie.cmd
:: launches a File... Open sort of file chooser and outputs choice(s) to the console

@echo off
setlocal

color 3F

TITLE Run with Windows 95 version lie ACT layer

goto check_Permissions

:check_Permissions
echo Administrative permissions required. Detecting permissions...

net session >nul 2>&1
if %errorLevel% == 0 (
echo Success: Administrative permissions confirmed.
) else (
color cF
echo Failure: Current permissions inadequate.
pause
exit
)

for /f "delims=" %%I in ('powershell -noprofile "iex (${%~f0} | out-string)"') do (

:: Add extra compatibility layers here if needed delimited by spaces.
set __COMPAT_LAYER=Layer_Win95VersionLie
start "" "%%~I"
)
goto :EOF

: end Batch portion / begin PowerShell hybrid chimera #>

Add-Type -AssemblyName System.Windows.Forms
$f = new-object Windows.Forms.OpenFileDialog
$f.InitialDirectory = [Environment]::GetFolderPath('MyDocuments')
$f.Filter = "Executable Files (*.exe)|*.exe|All Files (*.*)|*.*"
$f.ShowHelp = $true
$f.Multiselect = $true
[void]$f.ShowDialog()
if ($f.Multiselect) { $f.FileNames } else { $f.FileName }

You can also edit "set __COMPAT_LAYER=" to suit your needs.
Here are for example some possible compatibility layers/modes that could be useful:

Layer_Win95VersionLie
Layer_Force640x480x8
Layer_ForceDirectDrawEmulation
DWM8And16BitMitigation
16BitColor
256Color
FaultTolerantHeap
Installer
IgnoreFreeLibrary

- The full list can be viewed from MS Compatibility Administrator Tool (Look for the "Compatibility modes" section). That is part of the "Windows ADK" (adksetup) package for ApplicationCompatibilityToolkit.

One could further modify the batch to make it even more user friendly by having a list of selectable compatibility layers that can be picked instead of needing to manually edit the batch file.

Reply 10 of 10, by BEEN_Nath_58

User metadata
Rank l33t
Rank
l33t
yliopp Larvanto wrote on 2026-01-10, 17:46:
There is a serious limitation in the original batch script in that if the folder path or filename contains spaces it will fail t […]
Show full quote

There is a serious limitation in the original batch script in that if the folder path or filename contains spaces it will fail to run.

To remedy this you can edit the line:

start %%~I

into:

start "" "%%~I"

Here is the modified batch in full:
(I also added a color change if permissions are inadequate "color cF". Although one could also add a little bit more complexity to the batch file to make it self elevate too...)

<# : win95lie.cmd
:: launches a File... Open sort of file chooser and outputs choice(s) to the console

@echo off
setlocal

color 3F

TITLE Run with Windows 95 version lie ACT layer

goto check_Permissions

:check_Permissions
echo Administrative permissions required. Detecting permissions...

net session >nul 2>&1
if %errorLevel% == 0 (
echo Success: Administrative permissions confirmed.
) else (
color cF
echo Failure: Current permissions inadequate.
pause
exit
)

for /f "delims=" %%I in ('powershell -noprofile "iex (${%~f0} | out-string)"') do (

:: Add extra compatibility layers here if needed delimited by spaces.
set __COMPAT_LAYER=Layer_Win95VersionLie
start "" "%%~I"
)
goto :EOF

: end Batch portion / begin PowerShell hybrid chimera #>

Add-Type -AssemblyName System.Windows.Forms
$f = new-object Windows.Forms.OpenFileDialog
$f.InitialDirectory = [Environment]::GetFolderPath('MyDocuments')
$f.Filter = "Executable Files (*.exe)|*.exe|All Files (*.*)|*.*"
$f.ShowHelp = $true
$f.Multiselect = $true
[void]$f.ShowDialog()
if ($f.Multiselect) { $f.FileNames } else { $f.FileName }

You can also edit "set __COMPAT_LAYER=" to suit your needs.
Here are for example some possible compatibility layers/modes that could be useful:

Layer_Win95VersionLie
Layer_Force640x480x8
Layer_ForceDirectDrawEmulation
DWM8And16BitMitigation
16BitColor
256Color
FaultTolerantHeap
Installer
IgnoreFreeLibrary

- The full list can be viewed from MS Compatibility Administrator Tool (Look for the "Compatibility modes" section). That is part of the "Windows ADK" (adksetup) package for ApplicationCompatibilityToolkit.

One could further modify the batch to make it even more user friendly by having a list of selectable compatibility layers that can be picked instead of needing to manually edit the batch file.

Thank you, I will update my post

previously known as Discrete_BOB_058