Shell 95 Update (SH95UPD) Project

Scroll down to the bottom of the page to download SH95UPD


- Ok, firstly, I appologize. As somewhere near September this year I will be taking one of the most important Examinations of my life(GCE 'O' Levels), I will have to halt the development of SH95UPD(Untill late 2009?). Although development is now halted, please continue to post suggestions here.

Thank you all SH95UPD users for your support.

UPDATE 2009/08/27:
Seems like I had overlooked an issue. The implementation of SHGetSpecialFolderPathA in SH95UPD v0.0.7 caused several dialogs in Firefox to break.
Therefore I made it an alias of SHELL32 Ordinal 175 again like in SH95UPD v0.0.6. This seems to be more stable, but doesn't seem to be a proper implementation.


        This project implements functions not found in the windows 95 shell from windows 98, allowing the users of 98lite (sleek), ROM, ROM2 to be able to once again run programs that would only work with the Windows 98 shell and not with the windows 95 shell.

SH95UPD is based on the KernelEX project, and is basically a stripped down version of KernelEX 0.3.2a. Currently it only tampers with Shell32.dll, adding functions present from the IE4 shell update to it.

This project neither requires nor includes files from Windows 98, and does not distribute any copyrighted files.

It is designed so that KernelEX can be installed over it, with almost no loss of functionality.

NOTE: Installing this patch over a system without a Windows 95 shell should not have any effect.

NOTE 2: SH95UPD has NOT been tested on more than 1 computer.

Starting with the Release candidate v0.0.2B, the SH95Version function is no longer included. Hence Kernel32.dll is now unpatched.

If you are installing SH95UPD v0.0.6 over a system with an older version of SH95UPD, please uninstall the older version before proceeding.

Please note that you would still need to hex edit DESK.cpl and replace all occurances of SHELL32.dll with SHELL32.w98 (Or the name of your Win98 SHELL32.DLL). This problem seems to be a fault with 1 of the Win95 SHELL32.dll's internal functions, and is currently being addressed. However, this should be the *only* file you would ever need to hex edit again.

SH95UPD v0.0.6 is last build of SH95UPD to be based on KernelEx 0.32a, newer builds are now based on KernelEx 0.36.

        SH95UPD v0.0.7 is a major rewrite of SH95UPD v0.0.6. It had many functions added and rewritten, hence may have many new bugs.
        Please discuss any new bugs that were not present in v0.0.6 but present after the installation of v0.0.7 at the SH95UPD thread at MSFN.
        Also, if you install KernelEx over SH95UPD, please discuss any problems you experience at the SH95UPD thread before posting at the KernelEx thread.
        as some of the problems you experience with KernelEx may not be caused by KernelEx's implementations, but are actually caused by SH95UPD.

What's new in v0.07A?
-Made SHGetSpecialFolderPathA a alias of SHELL32 Ordinal 175 again - the new implementation broke Firefox's "Save Page" dialog and a few other dialogs.

What was planned but not implemented?
-The uninstaller of SH95UPD was not seperated. This would result in a smaller footprint on your system.
-The SHELL32 Ordinal 194 problem (The problem with the Windows 98 DESK.CPL) was not fixed. This seems to be a real challenge though.

***PLEASE READ THE README FILE CAREFULLY*** (File now missing though...)

Credit goes to Xeno86 and (x).

Known issues:

-Programs linking to Ordinal194 expecting SHCreatePropSheetExtArrayEx would run RealShellExecuteExA instead (Microsoft had changed the ordinal numbers in shell32 4.7x)

-SHGetSettings does not return the real values from registry.

Currently inplemented functions:


SHGetSpecialFolderPathA (Alias of Shell32 Ordinal 175)
SHGetSpecialFolderPathW (Alias of Shell32 Ordinal 175)
SHGetNewLinkInfo (Alias of Shell32 Ordinal 179)
SHExitWindowsEx (Now a full implementation)
SHGetPathFromIDListW (Alias of SHGetFileFromIDListA)
SHGetFileInfoW (Alias of SHGetFileInfoA)
DllGetVersion (Now returns its version as 4.72.3612 instead of 4.0.1212)
SHGetDataFromIDListW (Alias SHGetDataFromIDListA)
DllInstall (Dummy function)
DllRegisterServer (Dummy function)
DllUnregisterServer (Dummy function)


- Windows 95*, Windows 98 Standard Edition, Windows 98 Second Edition or Windows Millienium
- Any locale and kernel version
- Windows 95 Shell (Any version, but must be pre-OSR2.5)

*The use of SH95UPD on Windows 95 is untested.

Due to the facts that:
1. I now have a lot of other responsibilities to fulfill
2. my skills at programming are not very good
3. I am not very knowledgeable about the inner workings of Windows
    expect this project to slow down, have bugs, and/or even halt. I would distribute the source code soon after I clean it up.

- I only released this project, hoping that it will be useful to others.
- As this project is not very heavily tested on more than 1 system, there may be undiscovered bugs present.


SH95UPD v0.0.7A 2009/08/27
-Made SHGetSpecialFolderPathA an alias of SHELL32 Ordinal 175 again. The new implementation caused Firefox's "Save Page" dialog and a few other dialogs to break.

SH95UPD v0.0.7 2009/08/26
-Rewritten SH95UPD to use the KernelEx 0.3.6 architecture.

Functions added:
-SHGetSettings (Rough version that returns dummy values)

-SHFlushSFCache (Dummy function)

Rewritten: (Rewritten to convert unicode data to ANSI and executing the internal SHELL32 ANSI versions)
-SHExitWindowsEx (Further optimised the code for size and speed)

SH95UPD v0.0.6 07/04/2009
SHGetSpecialFolderPathA/W are now an aliases of Shell32 Ordinal 175
ShGetNewLinkInfo is now an alias of Shell32 Ordinal 179
DllGetVersion now returns its version as 4.72.3612 instead of 4.0.1212, hence programs would not complain that SHELL32.DLL is too old(Or as version 4.0)
SH95UPD's main executable is now UPX'ed! Hence file size is cut down from ~90KB to ~36KB

SH95UPD v0.0.5 30/10/2008

-Added the folowing dummy functions:
-Modified DllGetVersion to return its version as 4.0.1212 instead of 6.0.2800 as it seems to cause problems.

SH95UPD v0.0.4A 20/07/2008

-Removed SHFlushSFCache (Causes problems)

SH95UPD v0.0.4 13/07/2008

-Added the following functions:
SHFlushSFCache (Dummy function)
SHGetDataFromIDListW (Alias SHGetDataFromIDListA)

SH95UPD v0.0.3 12/05/2008

-Added SHGetPathFromIDListW and SHGetFileInfoW
-Fully implemented SHExitWindowsEx

SH95UPD v0.0.2B 03/05/2008

-Removed the SH95Version function, hence no patchingg done to KERNEL32.DLL
-Optimized the code being patched into SHELL32.DLL, hence a smaller patch.

SH95UPD v0.0.2 20/04/2008

-Implemented more functions in SHELL32.DLL:
-SHGetNewLinkInfo (Only a dummy function)
-Some bugfixes and optimizations
-Changed compiler to GCC, resulting in smaller program and more relible.

SH95UPD v0.0.1A 27/04/2008

-Improved relibility while installing
-Now installable under Windows 95 (Untested, can someone verify this?)
-Added SH95Version to KERNEL32.DLL

SH95UPD v0.0.1A 26/04/2008

-Initial release.
-Implemented the following functions:



Download SH95UPD

Latest field test version is v0.0.7A, latest stable version is v0.0.6

Version 0.0.7A (2009/08/27):

Version 0.0.6:

Source code for SH95UPD v0.0.6: SH95UPDv006_src.7z

*IMPORTANT: This is a rushed release of the source code as I am pressed for time. Please discuss any compilation problems, suggestions and bugs in SH95UPD's main thread @ MSFN here:
The source code has been compressed with 7-zip to reduce file size.

These files have been scanned and deemed to be virus free by AVG 7.5(Free Edition)

Please do not hot-link to the files as the file's names will change with every release.

Note to users who create derivative works based on SH95UPD:
You need to release your source code to the public, as failing to do so would be a violation of KernelEx's GNU GPL licence.

Rejoice 98lite users!!! =)

Page last updated: 2009/04/07

Home Page Projects Other Links

Hosted by